aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/DocBook/libata.tmpl49
-rw-r--r--Documentation/HOWTO2
-rw-r--r--Documentation/cgroups/cgroups.txt3
-rw-r--r--Documentation/feature-removal-schedule.txt23
-rw-r--r--Documentation/filesystems/proc.txt3
-rw-r--r--Documentation/i2c/writing-clients5
-rw-r--r--Documentation/input/elantech.txt8
-rw-r--r--Documentation/kernel-parameters.txt2
-rw-r--r--Documentation/spi/spidev_test.c2
-rw-r--r--Documentation/stable_kernel_rules.txt9
-rw-r--r--MAINTAINERS13
-rw-r--r--Makefile2
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/boot/compressed/head.S10
-rw-r--r--arch/arm/configs/bcmring_defconfig126
-rw-r--r--arch/arm/configs/imote2_defconfig172
-rw-r--r--arch/arm/configs/n8x0_defconfig1
-rw-r--r--arch/arm/configs/omap_zoom2_defconfig2
-rw-r--r--arch/arm/configs/omap_zoom3_defconfig2
-rw-r--r--arch/arm/configs/rx51_defconfig3
-rw-r--r--arch/arm/include/asm/assembler.h12
-rw-r--r--arch/arm/include/asm/elf.h2
-rw-r--r--arch/arm/include/asm/futex.h16
-rw-r--r--arch/arm/include/asm/uaccess.h40
-rw-r--r--arch/arm/kernel/entry-armv.S12
-rw-r--r--arch/arm/kernel/ftrace.c8
-rw-r--r--arch/arm/kernel/process.c8
-rw-r--r--arch/arm/kernel/smp.c6
-rw-r--r--arch/arm/lib/backtrace.S4
-rw-r--r--arch/arm/lib/clear_user.S4
-rw-r--r--arch/arm/lib/copy_from_user.S4
-rw-r--r--arch/arm/lib/copy_to_user.S4
-rw-r--r--arch/arm/lib/csumpartialcopyuser.S4
-rw-r--r--arch/arm/lib/getuser.S4
-rw-r--r--arch/arm/lib/putuser.S4
-rw-r--r--arch/arm/lib/strncpy_from_user.S4
-rw-r--r--arch/arm/lib/strnlen_user.S4
-rw-r--r--arch/arm/lib/uaccess.S8
-rw-r--r--arch/arm/mach-mx5/clock-mx51.c1
-rw-r--r--arch/arm/mach-omap1/timer32k.c15
-rw-r--r--arch/arm/mach-omap2/Kconfig6
-rw-r--r--arch/arm/mach-omap2/board-3630sdp.c1
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c4
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c39
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c8
-rw-r--r--arch/arm/mach-omap2/board-n8x0.c18
-rw-r--r--arch/arm/mach-omap2/board-sdp-flash.c8
-rw-r--r--arch/arm/mach-omap2/board-zoom-debugboard.c2
-rw-r--r--arch/arm/mach-omap2/board-zoom-peripherals.c1
-rw-r--r--arch/arm/mach-omap2/clock3xxx_data.c2
-rw-r--r--arch/arm/mach-omap2/clock44xx_data.c8
-rw-r--r--arch/arm/mach-omap2/clockdomain.c6
-rw-r--r--arch/arm/mach-omap2/devices.c2
-rw-r--r--arch/arm/mach-omap2/gpmc-nand.c3
-rw-r--r--arch/arm/mach-omap2/include/mach/entry-macro.S2
-rw-r--r--arch/arm/mach-omap2/omap-headsmp.S6
-rw-r--r--arch/arm/mach-omap2/omap44xx-smc.S2
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c3
-rw-r--r--arch/arm/mach-omap2/powerdomain.c2
-rw-r--r--arch/arm/mach-omap2/prcm.c4
-rw-r--r--arch/arm/mach-omap2/serial.c35
-rw-r--r--arch/arm/mach-pxa/include/mach/colibri.h1
-rw-r--r--arch/arm/mach-pxa/include/mach/hardware.h2
-rw-r--r--arch/arm/mach-pxa/include/mach/regs-u2d.h3
-rw-r--r--arch/arm/mach-pxa/raumfeld.c5
-rw-r--r--arch/arm/mach-pxa/spitz.c2
-rw-r--r--arch/arm/mach-pxa/viper.c5
-rw-r--r--arch/arm/mach-realview/core.c2
-rw-r--r--arch/arm/mach-sa1100/Kconfig4
-rw-r--r--arch/arm/mach-sa1100/cpu-sa1110.c3
-rw-r--r--arch/arm/mm/alignment.c24
-rw-r--r--arch/arm/mm/init.c14
-rw-r--r--arch/arm/mm/proc-sa1100.S2
-rw-r--r--arch/arm/nwfpe/entry.S8
-rw-r--r--arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h8
-rw-r--r--arch/arm/plat-omap/common.c22
-rw-r--r--arch/arm/plat-omap/dma.c9
-rw-r--r--arch/arm/plat-omap/gpio.c6
-rw-r--r--arch/arm/plat-omap/include/plat/irqs.h2
-rw-r--r--arch/arm/plat-omap/include/plat/mcbsp.h2
-rw-r--r--arch/arm/plat-omap/include/plat/nand.h7
-rw-r--r--arch/arm/plat-omap/include/plat/omap44xx.h2
-rw-r--r--arch/arm/plat-omap/include/plat/omap_hwmod.h2
-rw-r--r--arch/arm/plat-omap/include/plat/usb.h2
-rw-r--r--arch/arm/plat-pxa/dma.c2
-rw-r--r--arch/arm/tools/mach-types57
-rw-r--r--arch/avr32/kernel/ptrace.c2
-rw-r--r--arch/ia64/kvm/kvm-ia64.c9
-rw-r--r--arch/m68k/include/asm/mcfuart.h5
-rw-r--r--arch/m68knommu/Makefile2
-rw-r--r--arch/m68knommu/kernel/entry.S2
-rw-r--r--arch/m68knommu/platform/68360/ints.c1
-rw-r--r--arch/microblaze/configs/mmu_defconfig58
-rw-r--r--arch/microblaze/configs/nommu_defconfig39
-rw-r--r--arch/microblaze/include/asm/cache.h2
-rw-r--r--arch/microblaze/include/asm/dma.h6
-rw-r--r--arch/microblaze/include/asm/exceptions.h6
-rw-r--r--arch/microblaze/include/asm/io.h2
-rw-r--r--arch/microblaze/include/asm/page.h12
-rw-r--r--arch/microblaze/include/asm/pci.h8
-rw-r--r--arch/microblaze/include/asm/pgalloc.h16
-rw-r--r--arch/microblaze/include/asm/pgtable.h35
-rw-r--r--arch/microblaze/kernel/asm-offsets.c1
-rw-r--r--arch/microblaze/kernel/cpu/cache.c72
-rw-r--r--arch/microblaze/kernel/cpu/mb.c10
-rw-r--r--arch/microblaze/kernel/dma.c2
-rw-r--r--arch/microblaze/kernel/exceptions.c2
-rw-r--r--arch/microblaze/kernel/head.S3
-rw-r--r--arch/microblaze/kernel/irq.c3
-rw-r--r--arch/microblaze/kernel/misc.S36
-rw-r--r--arch/microblaze/kernel/traps.c34
-rw-r--r--arch/microblaze/kernel/vmlinux.lds.S3
-rw-r--r--arch/microblaze/mm/consistent.c190
-rw-r--r--arch/microblaze/mm/fault.c13
-rw-r--r--arch/microblaze/mm/pgtable.c51
-rw-r--r--arch/microblaze/pci/pci-common.c17
-rw-r--r--arch/mips/Kconfig31
-rw-r--r--arch/mips/Makefile13
-rw-r--r--arch/mips/alchemy/devboards/db1200/setup.c10
-rw-r--r--arch/mips/configs/bcm63xx_defconfig418
-rw-r--r--arch/mips/include/asm/cmpxchg.h2
-rw-r--r--arch/mips/include/asm/mach-loongson/loongson.h2
-rw-r--r--arch/mips/include/asm/pgtable-64.h9
-rw-r--r--arch/mips/include/asm/ptrace.h4
-rw-r--r--arch/mips/include/asm/stackframe.h2
-rw-r--r--arch/mips/include/asm/uasm.h18
-rw-r--r--arch/mips/jazz/setup.c12
-rw-r--r--arch/mips/kernel/traps.c16
-rw-r--r--arch/mips/loongson/common/machtype.c2
-rw-r--r--arch/mips/loongson/common/mem.c4
-rw-r--r--arch/mips/loongson/common/reset.c20
-rw-r--r--arch/mips/loongson/common/setup.c15
-rw-r--r--arch/mips/loongson/lemote-2f/irq.c2
-rw-r--r--arch/mips/mm/tlbex.c140
-rw-r--r--arch/mips/nxp/pnx8550/common/reset.c2
-rw-r--r--arch/mips/pci/pci-sb1250.c3
-rw-r--r--arch/mips/sgi-ip22/ip22-berr.c2
-rw-r--r--arch/mips/sgi-ip22/ip28-berr.c2
-rw-r--r--arch/mips/sibyte/swarm/setup.c17
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/kmeter1_defconfig28
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig49
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig50
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig45
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig49
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig43
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig46
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig45
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig46
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig51
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig44
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig23
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig25
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig34
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig31
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig31
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig25
-rw-r--r--arch/powerpc/configs/85xx/socrates_defconfig51
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig51
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig48
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig47
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/xes_mpc85xx_defconfig59
-rw-r--r--arch/powerpc/configs/86xx/gef_ppc9a_defconfig102
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc310_defconfig53
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig96
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig34
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig48
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig40
-rw-r--r--arch/powerpc/configs/adder875_defconfig18
-rw-r--r--arch/powerpc/configs/c2k_defconfig55
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig20
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig17
-rw-r--r--arch/powerpc/configs/linkstation_defconfig48
-rw-r--r--arch/powerpc/configs/mgcoge_defconfig31
-rw-r--r--arch/powerpc/configs/mgsuvd_defconfig19
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig26
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig23
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig124
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig62
-rw-r--r--arch/powerpc/configs/mpc85xx_smp_defconfig64
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig20
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig57
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig20
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig22
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig52
-rw-r--r--arch/powerpc/configs/ps3_defconfig189
-rw-r--r--arch/powerpc/configs/storcenter_defconfig33
-rw-r--r--arch/powerpc/include/asm/hw_irq.h38
-rw-r--r--arch/powerpc/include/asm/page.h15
-rw-r--r--arch/powerpc/kernel/asm-offsets.c1
-rw-r--r--arch/powerpc/kernel/dma-swiotlb.c5
-rw-r--r--arch/powerpc/kernel/entry_64.S9
-rw-r--r--arch/powerpc/kernel/irq.c6
-rw-r--r--arch/powerpc/kernel/prom_init.c3
-rw-r--r--arch/powerpc/kernel/time.c60
-rw-r--r--arch/powerpc/kvm/book3s.c5
-rw-r--r--arch/powerpc/mm/fsl_booke_mmu.c9
-rw-r--r--arch/powerpc/mm/numa.c17
-rw-r--r--arch/powerpc/platforms/85xx/Kconfig4
-rw-r--r--arch/powerpc/platforms/86xx/Kconfig4
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-memory.c7
-rw-r--r--arch/powerpc/sysdev/cpm1.c14
-rw-r--r--arch/powerpc/sysdev/cpm2.c11
-rw-r--r--arch/s390/include/asm/vdso.h1
-rw-r--r--arch/s390/kernel/asm-offsets.c1
-rw-r--r--arch/s390/kernel/head31.S2
-rw-r--r--arch/s390/kernel/head64.S2
-rw-r--r--arch/s390/kernel/ptrace.c5
-rw-r--r--arch/s390/kernel/swsusp_asm64.S3
-rw-r--r--arch/s390/kernel/time.c1
-rw-r--r--arch/s390/kernel/vdso32/clock_gettime.S12
-rw-r--r--arch/s390/kernel/vdso32/gettimeofday.S6
-rw-r--r--arch/s390/kernel/vdso64/clock_gettime.S4
-rw-r--r--arch/s390/kernel/vdso64/gettimeofday.S2
-rw-r--r--arch/sh/configs/rts7751r2d1_defconfig2
-rw-r--r--arch/sh/configs/rts7751r2dplus_defconfig2
-rw-r--r--arch/sh/drivers/pci/pci-sh7751.c5
-rw-r--r--arch/sh/include/cpu-sh4/cpu/dma-register.h2
-rw-r--r--arch/um/drivers/line.c1
-rw-r--r--arch/um/os-Linux/helper.c1
-rw-r--r--arch/x86/include/asm/io.h1
-rw-r--r--arch/x86/kernel/apb_timer.c2
-rw-r--r--arch/x86/kernel/apic/io_apic.c3
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k8.c3
-rw-r--r--arch/x86/kernel/cpu/intel.c21
-rw-r--r--arch/x86/kernel/cpu/vmware.c2
-rw-r--r--arch/x86/kernel/kprobes.c27
-rw-r--r--arch/x86/kernel/process_64.c4
-rw-r--r--arch/x86/kvm/mmu.c11
-rw-r--r--arch/x86/kvm/svm.c25
-rw-r--r--arch/x86/kvm/vmx.c24
-rw-r--r--arch/x86/kvm/x86.c48
-rw-r--r--arch/x86/lib/rwsem_64.S2
-rw-r--r--arch/x86/mm/ioremap.c14
-rw-r--r--arch/x86/mm/pgtable_32.c2
-rw-r--r--arch/x86/pci/acpi.c84
-rw-r--r--arch/x86/pci/i386.c3
-rw-r--r--block/blk-cgroup.c8
-rw-r--r--block/blk-timeout.c12
-rw-r--r--block/cfq-iosched.c2
-rw-r--r--crypto/async_tx/async_raid6_recov.c21
-rw-r--r--crypto/authenc.c16
-rw-r--r--drivers/Makefile2
-rw-r--r--drivers/acpi/acpi_pad.c2
-rw-r--r--drivers/acpi/bus.c2
-rw-r--r--drivers/acpi/hest.c4
-rw-r--r--drivers/acpi/power_meter.c2
-rw-r--r--drivers/acpi/sbshc.c2
-rw-r--r--drivers/acpi/sleep.c56
-rw-r--r--drivers/ata/libata-eh.c5
-rw-r--r--drivers/ata/pata_pcmcia.c4
-rw-r--r--drivers/block/drbd/drbd_main.c1
-rw-r--r--drivers/block/drbd/drbd_receiver.c3
-rw-r--r--drivers/block/drbd/drbd_worker.c2
-rw-r--r--drivers/block/pktcdvd.c17
-rw-r--r--drivers/char/isicom.c9
-rw-r--r--drivers/char/istallion.c2
-rw-r--r--drivers/char/mxser.c3
-rw-r--r--drivers/char/riscom8.c1
-rw-r--r--drivers/char/stallion.c7
-rw-r--r--drivers/cpufreq/cpufreq.c19
-rw-r--r--drivers/cpufreq/cpufreq_conservative.c8
-rw-r--r--drivers/cpuidle/governors/menu.c9
-rw-r--r--drivers/dma/shdma.c27
-rw-r--r--drivers/dma/txx9dmac.c2
-rw-r--r--drivers/edac/edac_mce_amd.c5
-rw-r--r--drivers/firewire/core-iso.c14
-rw-r--r--drivers/firewire/ohci.c23
-rw-r--r--drivers/gpio/gpiolib.c3
-rw-r--r--drivers/gpio/it8761e_gpio.c18
-rw-r--r--drivers/gpio/pca953x.c14
-rw-r--r--drivers/gpio/pl061.c14
-rw-r--r--drivers/gpu/drm/drm_irq.c1
-rw-r--r--drivers/gpu/drm/drm_memory.c2
-rw-r--r--drivers/gpu/drm/drm_sysfs.c21
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c14
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c5
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h10
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c151
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c22
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c16
-rw-r--r--drivers/gpu/drm/i915/i915_opregion.c54
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h13
-rw-r--r--drivers/gpu/drm/i915/intel_display.c11
-rw-r--r--drivers/gpu/drm/radeon/atombios.h2
-rw-r--r--drivers/gpu/drm/radeon/r100.c2
-rw-r--r--drivers/gpu/drm/radeon/r100_track.h2
-rw-r--r--drivers/gpu/drm/radeon/r300.c7
-rw-r--r--drivers/gpu/drm/radeon/r300_cmdbuf.c2
-rw-r--r--drivers/gpu/drm/radeon/r420.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_agp.c10
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_cp.c9
-rw-r--r--drivers/gpu/drm/radeon/radeon_display.c8
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_encoders.c63
-rw-r--r--drivers/gpu/drm/radeon/radeon_kms.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_legacy_encoders.c12
-rw-r--r--drivers/gpu/drm/radeon/radeon_mode.h2
-rw-r--r--drivers/gpu/drm/radeon/radeon_state.c19
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo.c30
-rw-r--r--drivers/gpu/drm/ttm/ttm_lock.c5
-rw-r--r--drivers/gpu/drm/via/via_video.c2
-rw-r--r--drivers/gpu/vga/vga_switcheroo.c6
-rw-r--r--drivers/hid/hid-cherry.c1
-rw-r--r--drivers/hid/hid-core.c10
-rw-r--r--drivers/hid/hid-ids.h1
-rw-r--r--drivers/hid/hid-ntrig.c72
-rw-r--r--drivers/hid/hid-sony.c2
-rw-r--r--drivers/hid/hid-wacom.c1
-rw-r--r--drivers/hid/usbhid/hid-core.c13
-rw-r--r--drivers/hwmon/applesmc.c61
-rw-r--r--drivers/hwmon/asc7621.c63
-rw-r--r--drivers/hwmon/asus_atk0110.c4
-rw-r--r--drivers/hwmon/hp_accel.c6
-rw-r--r--drivers/i2c/busses/i2c-imx.c6
-rw-r--r--drivers/i2c/busses/i2c-octeon.c4
-rw-r--r--drivers/i2c/busses/i2c-omap.c10
-rw-r--r--drivers/i2c/busses/i2c-pnx.c8
-rw-r--r--drivers/i2c/busses/i2c-stu300.c2
-rw-r--r--drivers/i2c/i2c-core.c63
-rw-r--r--drivers/ide/ide-cs.c4
-rw-r--r--drivers/input/joydev.c18
-rw-r--r--drivers/input/joystick/iforce/iforce-main.c6
-rw-r--r--drivers/input/joystick/iforce/iforce-usb.c1
-rw-r--r--drivers/input/misc/ati_remote.c14
-rw-r--r--drivers/input/mouse/alps.c1
-rw-r--r--drivers/input/mouse/elantech.c104
-rw-r--r--drivers/input/mouse/elantech.h5
-rw-r--r--drivers/input/mouse/psmouse-base.c32
-rw-r--r--drivers/input/mouse/psmouse.h1
-rw-r--r--drivers/input/mouse/synaptics.c35
-rw-r--r--drivers/input/mouse/synaptics.h4
-rw-r--r--drivers/input/touchscreen/ad7877.c15
-rw-r--r--drivers/input/touchscreen/eeti_ts.c56
-rw-r--r--drivers/md/md.c10
-rw-r--r--drivers/md/raid5.c54
-rw-r--r--drivers/media/common/saa7146_fops.c11
-rw-r--r--drivers/media/common/saa7146_video.c8
-rw-r--r--drivers/media/dvb/frontends/stv090x.c4
-rw-r--r--drivers/media/dvb/ttpci/budget.c3
-rw-r--r--drivers/media/video/Kconfig4
-rw-r--r--drivers/media/video/Makefile2
-rw-r--r--drivers/media/video/davinci/vpfe_capture.c38
-rw-r--r--drivers/media/video/gspca/sn9c20x.c2
-rw-r--r--drivers/media/video/gspca/spca508.c1
-rw-r--r--drivers/media/video/gspca/spca561.c1
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx.c2
-rw-r--r--drivers/media/video/hexium_gemini.c3
-rw-r--r--drivers/media/video/hexium_orion.c4
-rw-r--r--drivers/media/video/mx1_camera.c8
-rw-r--r--drivers/media/video/mxb.c17
-rw-r--r--drivers/media/video/omap24xxcam.c2
-rw-r--r--drivers/media/video/pxa_camera.c11
-rw-r--r--drivers/media/video/sh_mobile_ceu_camera.c2
-rw-r--r--drivers/misc/Kconfig16
-rw-r--r--drivers/misc/Makefile1
-rw-r--r--drivers/misc/vmware_balloon.c832
-rw-r--r--drivers/mmc/host/atmel-mci.c18
-rw-r--r--drivers/mtd/Makefile2
-rw-r--r--drivers/mtd/internal.h17
-rw-r--r--drivers/mtd/mtdbdi.c43
-rw-r--r--drivers/mtd/mtdcore.c79
-rw-r--r--drivers/mtd/mtdsuper.c2
-rw-r--r--drivers/mtd/nand/orion_nand.c8
-rw-r--r--drivers/net/8139too.c2
-rw-r--r--drivers/net/Makefile1
-rw-r--r--drivers/net/arm/ep93xx_eth.c10
-rw-r--r--drivers/net/bnx2.c48
-rw-r--r--drivers/net/can/usb/ems_usb.c8
-rw-r--r--drivers/net/cxgb3/ael1002.c2
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c2
-rw-r--r--drivers/net/e100.c10
-rw-r--r--drivers/net/e1000e/82571.c20
-rw-r--r--drivers/net/e1000e/e1000.h5
-rw-r--r--drivers/net/e1000e/netdev.c73
-rw-r--r--drivers/net/fec.c2
-rw-r--r--drivers/net/fsl_pq_mdio.c20
-rw-r--r--drivers/net/gianfar.c14
-rw-r--r--drivers/net/ixgbe/ixgbe_82599.c62
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c22
-rw-r--r--drivers/net/ixgbe/ixgbe_type.h2
-rw-r--r--drivers/net/ks8851.c12
-rw-r--r--drivers/net/pcmcia/3c574_cs.c7
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c31
-rw-r--r--drivers/net/phy/Kconfig5
-rw-r--r--drivers/net/phy/Makefile1
-rw-r--r--drivers/net/phy/mdio-octeon.c10
-rw-r--r--drivers/net/phy/micrel.c105
-rw-r--r--drivers/net/ppp_generic.c34
-rw-r--r--drivers/net/r8169.c54
-rw-r--r--drivers/net/sb1250-mac.c67
-rw-r--r--drivers/net/sfc/efx.c4
-rw-r--r--drivers/net/sfc/falcon.c4
-rw-r--r--drivers/net/sfc/falcon_boards.c13
-rw-r--r--drivers/net/sfc/nic.h2
-rw-r--r--drivers/net/sfc/siena.c13
-rw-r--r--drivers/net/tg3.c1
-rw-r--r--drivers/net/usb/Kconfig21
-rw-r--r--drivers/net/usb/Makefile2
-rw-r--r--drivers/net/usb/cdc_ether.c1
-rw-r--r--drivers/net/usb/dm9601.c2
-rw-r--r--drivers/net/usb/ipheth.c569
-rw-r--r--drivers/net/usb/kaweth.c1
-rw-r--r--drivers/net/usb/sierra_net.c1004
-rw-r--r--drivers/net/veth.c1
-rw-r--r--drivers/net/wireless/ath/ar9170/usb.c11
-rw-r--r--drivers/net/wireless/ath/ar9170/usb.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c54
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c3
-rw-r--r--drivers/net/wireless/p54/p54pci.c2
-rw-r--r--drivers/of/of_mdio.c2
-rw-r--r--drivers/pci/hotplug/rpadlpar_core.c3
-rw-r--r--drivers/pci/hotplug/rpaphp_core.c3
-rw-r--r--drivers/pci/pci.c6
-rw-r--r--drivers/pci/pcie/aer/aerdrv.c10
-rw-r--r--drivers/pci/probe.c23
-rw-r--r--drivers/pci/setup-bus.c114
-rw-r--r--drivers/pcmcia/cs.c16
-rw-r--r--drivers/pcmcia/db1xxx_ss.c16
-rw-r--r--drivers/pcmcia/ds.c55
-rw-r--r--drivers/pcmcia/pcmcia_ioctl.c7
-rw-r--r--drivers/platform/x86/Kconfig1
-rw-r--r--drivers/platform/x86/asus-laptop.c8
-rw-r--r--drivers/platform/x86/dell-wmi.c3
-rw-r--r--drivers/platform/x86/eeepc-laptop.c3
-rw-r--r--drivers/platform/x86/eeepc-wmi.c333
-rw-r--r--drivers/pnp/pnpacpi/rsparser.c26
-rw-r--r--drivers/pnp/resource.c4
-rw-r--r--drivers/regulator/max8925-regulator.c2
-rw-r--r--drivers/regulator/mc13783-regulator.c3
-rw-r--r--drivers/s390/block/dasd.c20
-rw-r--r--drivers/s390/block/dasd_3990_erp.c7
-rw-r--r--drivers/s390/char/zcore.c6
-rw-r--r--drivers/s390/cio/chsc.c29
-rw-r--r--drivers/s390/cio/chsc_sch.c2
-rw-r--r--drivers/s390/cio/cio.c18
-rw-r--r--drivers/s390/cio/css.c16
-rw-r--r--drivers/s390/cio/device_fsm.c2
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c6
-rw-r--r--drivers/scsi/advansys.c50
-rw-r--r--drivers/scsi/be2iscsi/be_mgmt.c1
-rw-r--r--drivers/scsi/bnx2i/bnx2i.h2
-rw-r--r--drivers/scsi/bnx2i/bnx2i_init.c13
-rw-r--r--drivers/scsi/bnx2i/bnx2i_iscsi.c13
-rw-r--r--drivers/scsi/dpt_i2o.c15
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.c29
-rw-r--r--drivers/scsi/iscsi_tcp.c2
-rw-r--r--drivers/scsi/libiscsi.c2
-rw-r--r--drivers/scsi/libsas/sas_ata.c4
-rw-r--r--drivers/scsi/libsas/sas_scsi_host.c4
-rw-r--r--drivers/scsi/lpfc/lpfc_bsg.c4
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c1
-rw-r--r--drivers/scsi/qla4xxx/ql4_mbx.c2
-rw-r--r--drivers/scsi/scsi_debug.c3
-rw-r--r--drivers/scsi/scsi_error.c15
-rw-r--r--drivers/scsi/sd.c1
-rw-r--r--drivers/scsi/wd7000.c2
-rw-r--r--drivers/serial/8250_pnp.c2
-rw-r--r--drivers/serial/mcf.c6
-rw-r--r--drivers/serial/mpc52xx_uart.c33
-rw-r--r--drivers/serial/pmac_zilog.c4
-rw-r--r--drivers/serial/serial_ks8695.c1
-rw-r--r--drivers/spi/omap2_mcspi.c5
-rw-r--r--drivers/spi/spi.c8
-rw-r--r--drivers/staging/dt3155/dt3155_drv.c18
-rw-r--r--drivers/staging/hv/Hv.c2
-rw-r--r--drivers/staging/hv/RndisFilter.c1
-rw-r--r--drivers/staging/hv/netvsc_drv.c3
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_core.c2
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_ring.c3
-rw-r--r--drivers/staging/iio/adc/max1363_core.c2
-rw-r--r--drivers/staging/iio/industrialio-core.c3
-rw-r--r--drivers/staging/iio/light/tsl2563.c2
-rw-r--r--drivers/staging/iio/ring_sw.c2
-rw-r--r--drivers/staging/octeon/cvmx-helper-board.c8
-rw-r--r--drivers/staging/rt2860/usb_main_dev.c1
-rw-r--r--drivers/staging/rtl8192su/r8192U_core.c3
-rw-r--r--drivers/staging/usbip/usbip_event.c3
-rw-r--r--drivers/staging/vme/bridges/vme_tsi148.c3
-rw-r--r--drivers/usb/class/cdc-acm.c3
-rw-r--r--drivers/usb/core/Kconfig2
-rw-r--r--drivers/usb/core/driver.c49
-rw-r--r--drivers/usb/core/generic.c2
-rw-r--r--drivers/usb/core/inode.c4
-rw-r--r--drivers/usb/core/usb.c20
-rw-r--r--drivers/usb/gadget/s3c-hsotg.c7
-rw-r--r--drivers/usb/host/ehci-hcd.c1
-rw-r--r--drivers/usb/host/ehci-hub.c2
-rw-r--r--drivers/usb/host/ehci-mem.c2
-rw-r--r--drivers/usb/host/ehci-omap.c6
-rw-r--r--drivers/usb/host/ehci-sched.c40
-rw-r--r--drivers/usb/host/ehci.h5
-rw-r--r--drivers/usb/host/ohci-at91.c2
-rw-r--r--drivers/usb/host/ohci-da8xx.c2
-rw-r--r--drivers/usb/host/ohci-hub.c2
-rw-r--r--drivers/usb/host/oxu210hp-hcd.c6
-rw-r--r--drivers/usb/host/sl811-hcd.c6
-rw-r--r--drivers/usb/host/xhci-mem.c65
-rw-r--r--drivers/usb/host/xhci.h4
-rw-r--r--drivers/usb/misc/usbsevseg.c15
-rw-r--r--drivers/usb/musb/Kconfig2
-rw-r--r--drivers/usb/musb/Makefile2
-rw-r--r--drivers/usb/musb/blackfin.c8
-rw-r--r--drivers/usb/musb/davinci.c2
-rw-r--r--drivers/usb/musb/musb_core.c77
-rw-r--r--drivers/usb/musb/musb_core.h2
-rw-r--r--drivers/usb/musb/musb_host.c1
-rw-r--r--drivers/usb/musb/omap2430.c3
-rw-r--r--drivers/usb/musb/tusb6010.c13
-rw-r--r--drivers/usb/musb/tusb6010_omap.c22
-rw-r--r--drivers/usb/serial/option.c10
-rw-r--r--drivers/usb/serial/pl2303.c2
-rw-r--r--drivers/usb/serial/pl2303.h5
-rw-r--r--drivers/usb/serial/qcaux.c10
-rw-r--r--drivers/usb/serial/sierra.c1
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c26
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.h3
-rw-r--r--drivers/usb/wusbcore/devconnect.c2
-rw-r--r--drivers/video/bfin-t350mcqb-fb.c15
-rw-r--r--drivers/video/efifb.c3
-rw-r--r--drivers/video/sh_mobile_lcdcfb.c27
-rw-r--r--drivers/virtio/virtio_balloon.c3
-rw-r--r--drivers/w1/masters/omap_hdq.c1
-rw-r--r--drivers/w1/slaves/w1_therm.c5
-rw-r--r--drivers/watchdog/booke_wdt.c2
-rw-r--r--drivers/watchdog/ep93xx_wdt.c2
-rw-r--r--drivers/watchdog/sb_wdog.c4
-rw-r--r--drivers/watchdog/sbc_fitpc2_wdt.c14
-rw-r--r--fs/9p/v9fs.c10
-rw-r--r--fs/9p/v9fs.h2
-rw-r--r--fs/9p/vfs_super.c1
-rw-r--r--fs/afs/internal.h2
-rw-r--r--fs/afs/mntpt.c24
-rw-r--r--fs/afs/super.c1
-rw-r--r--fs/afs/volume.c7
-rw-r--r--fs/autofs4/root.c5
-rw-r--r--fs/binfmt_elf_fdpic.c7
-rw-r--r--fs/binfmt_flat.c2
-rw-r--r--fs/block_dev.c17
-rw-r--r--fs/btrfs/disk-io.c12
-rw-r--r--fs/cachefiles/internal.h1
-rw-r--r--fs/cachefiles/namei.c98
-rw-r--r--fs/cachefiles/security.c4
-rw-r--r--fs/ceph/addr.c8
-rw-r--r--fs/ceph/auth.c1
-rw-r--r--fs/ceph/auth_none.h2
-rw-r--r--fs/ceph/auth_x.c32
-rw-r--r--fs/ceph/caps.c21
-rw-r--r--fs/ceph/dir.c9
-rw-r--r--fs/ceph/file.c3
-rw-r--r--fs/ceph/inode.c8
-rw-r--r--fs/ceph/mds_client.c34
-rw-r--r--fs/ceph/messenger.c39
-rw-r--r--fs/ceph/messenger.h1
-rw-r--r--fs/ceph/osd_client.c26
-rw-r--r--fs/ceph/osd_client.h3
-rw-r--r--fs/ceph/osdmap.c29
-rw-r--r--fs/ceph/osdmap.h2
-rw-r--r--fs/ceph/rados.h1
-rw-r--r--fs/ceph/snap.c24
-rw-r--r--fs/ceph/super.c30
-rw-r--r--fs/ceph/super.h1
-rw-r--r--fs/cifs/cifs_fs_sb.h3
-rw-r--r--fs/cifs/cifsfs.c10
-rw-r--r--fs/cifs/cifsglob.h1
-rw-r--r--fs/cifs/inode.c21
-rw-r--r--fs/coda/inode.c8
-rw-r--r--fs/compat.c2
-rw-r--r--fs/compat_ioctl.c3
-rw-r--r--fs/ecryptfs/ecryptfs_kernel.h2
-rw-r--r--fs/ecryptfs/main.c10
-rw-r--r--fs/ecryptfs/super.c1
-rw-r--r--fs/exec.c2
-rw-r--r--fs/exofs/exofs.h2
-rw-r--r--fs/exofs/super.c8
-rw-r--r--fs/ext4/extents.c1
-rw-r--r--fs/ext4/inode.c3
-rw-r--r--fs/ext4/mballoc.c21
-rw-r--r--fs/ioctl.c92
-rw-r--r--fs/jfs/inode.c2
-rw-r--r--fs/jfs/jfs_dmap.c16
-rw-r--r--fs/jfs/jfs_dmap.h6
-rw-r--r--fs/jfs/jfs_inode.h1
-rw-r--r--fs/jfs/namei.c4
-rw-r--r--fs/jfs/resize.c6
-rw-r--r--fs/jfs/symlink.c14
-rw-r--r--fs/logfs/gc.c8
-rw-r--r--fs/logfs/journal.c29
-rw-r--r--fs/logfs/logfs.h15
-rw-r--r--fs/logfs/readwrite.c75
-rw-r--r--fs/logfs/segment.c8
-rw-r--r--fs/logfs/super.c11
-rw-r--r--fs/namei.c6
-rw-r--r--fs/ncpfs/inode.c8
-rw-r--r--fs/nfs/client.c2
-rw-r--r--fs/nfs/delegation.c86
-rw-r--r--fs/nfs/dir.c4
-rw-r--r--fs/nfs/nfs4proc.c5
-rw-r--r--fs/nfs/super.c3
-rw-r--r--fs/nfs/write.c55
-rw-r--r--fs/nfsd/nfs4xdr.c8
-rw-r--r--fs/nilfs2/super.c1
-rw-r--r--fs/notify/inotify/Kconfig1
-rw-r--r--fs/ocfs2/buffer_head_io.c2
-rw-r--r--fs/ocfs2/dlm/dlmast.c5
-rw-r--r--fs/ocfs2/dlmfs/dlmfs.c14
-rw-r--r--fs/ocfs2/file.c32
-rw-r--r--fs/ocfs2/inode.c68
-rw-r--r--fs/ocfs2/inode.h2
-rw-r--r--fs/ocfs2/namei.c58
-rw-r--r--fs/ocfs2/refcounttree.c3
-rw-r--r--fs/proc/array.c3
-rw-r--r--fs/proc/base.c2
-rw-r--r--fs/proc/task_mmu.c19
-rw-r--r--fs/reiserfs/dir.c2
-rw-r--r--fs/reiserfs/xattr.c19
-rw-r--r--fs/smbfs/inode.c8
-rw-r--r--fs/squashfs/block.c5
-rw-r--r--fs/squashfs/super.c4
-rw-r--r--fs/squashfs/zlib_wrapper.c3
-rw-r--r--fs/super.c9
-rw-r--r--fs/sync.c3
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c5
-rw-r--r--fs/xfs/linux-2.6/xfs_sync.c112
-rw-r--r--fs/xfs/linux-2.6/xfs_sync.h7
-rw-r--r--fs/xfs/quota/xfs_qm_syscalls.c3
-rw-r--r--fs/xfs/xfs_ag.h1
-rw-r--r--fs/xfs/xfs_dfrag.c22
-rw-r--r--fs/xfs/xfs_mount.h1
-rw-r--r--include/asm-generic/dma-mapping-common.h4
-rw-r--r--include/drm/ttm/ttm_bo_driver.h28
-rw-r--r--include/linux/backing-dev.h2
-rw-r--r--include/linux/cgroup.h1
-rw-r--r--include/linux/coda_psdev.h3
-rw-r--r--include/linux/firewire-cdev.h2
-rw-r--r--include/linux/firewire-constants.h2
-rw-r--r--include/linux/fs.h5
-rw-r--r--include/linux/i2c.h2
-rw-r--r--include/linux/kvm_host.h7
-rw-r--r--include/linux/ncp_fs_sb.h2
-rw-r--r--include/linux/nfs_fs.h1
-rw-r--r--include/linux/poison.h9
-rw-r--r--include/linux/rcupdate.h2
-rw-r--r--include/linux/regulator/consumer.h8
-rw-r--r--include/linux/sched.h1
-rw-r--r--include/linux/smb_fs_sb.h3
-rw-r--r--include/linux/usb.h18
-rw-r--r--include/media/saa7146_vv.h1
-rw-r--r--include/net/sctp/command.h1
-rw-r--r--include/net/sctp/sctp.h1
-rw-r--r--include/net/sctp/sm.h1
-rw-r--r--include/net/sctp/structs.h4
-rw-r--r--include/net/sock.h2
-rw-r--r--include/pcmcia/ds.h7
-rw-r--r--include/pcmcia/ss.h8
-rw-r--r--init/initramfs.c3
-rw-r--r--ipc/mqueue.c2
-rw-r--r--kernel/acct.c17
-rw-r--r--kernel/cgroup.c62
-rw-r--r--kernel/cgroup_freezer.c5
-rw-r--r--kernel/cred.c4
-rw-r--r--kernel/fork.c2
-rw-r--r--kernel/kexec.c6
-rw-r--r--kernel/perf_event.c2
-rw-r--r--kernel/rcupdate.c11
-rw-r--r--kernel/sched.c18
-rw-r--r--kernel/sched_debug.c2
-rw-r--r--kernel/sys.c2
-rw-r--r--kernel/workqueue.c2
-rw-r--r--lib/decompress_unlzo.c22
-rw-r--r--lib/flex_array.c2
-rw-r--r--lib/rwsem.c5
-rw-r--r--lib/vsprintf.c1
-rw-r--r--mm/backing-dev.c34
-rw-r--r--mm/hugetlb.c7
-rw-r--r--mm/ksm.c12
-rw-r--r--mm/memcontrol.c6
-rw-r--r--mm/mmap.c3
-rw-r--r--mm/rmap.c18
-rw-r--r--mm/slub.c2
-rw-r--r--net/bluetooth/l2cap.c5
-rw-r--r--net/bridge/br_multicast.c8
-rw-r--r--net/core/dev.c13
-rw-r--r--net/core/rtnetlink.c5
-rw-r--r--net/ieee802154/af_ieee802154.c3
-rw-r--r--net/ipv4/arp.c6
-rw-r--r--net/ipv4/ipmr.c3
-rw-r--r--net/ipv4/udp.c6
-rw-r--r--net/ipv6/af_inet6.c2
-rw-r--r--net/ipv6/datagram.c8
-rw-r--r--net/ipv6/ip6_output.c2
-rw-r--r--net/ipv6/route.c2
-rw-r--r--net/ipv6/tcp_ipv6.c2
-rw-r--r--net/ipv6/xfrm6_policy.c2
-rw-r--r--net/llc/llc_sap.c2
-rw-r--r--net/mac80211/agg-tx.c1
-rw-r--r--net/mac80211/mlme.c5
-rw-r--r--net/rds/rdma_transport.c2
-rw-r--r--net/sctp/associola.c6
-rw-r--r--net/sctp/endpointola.c1
-rw-r--r--net/sctp/input.c22
-rw-r--r--net/sctp/sm_make_chunk.c94
-rw-r--r--net/sctp/sm_sideeffect.c61
-rw-r--r--net/sctp/sm_statefuns.c8
-rw-r--r--net/sctp/socket.c14
-rw-r--r--net/sctp/transport.c2
-rw-r--r--net/sunrpc/auth.c2
-rw-r--r--net/x25/af_x25.c1
-rw-r--r--security/inode.c4
-rw-r--r--security/keys/gc.c9
-rw-r--r--security/keys/keyring.c41
-rw-r--r--security/keys/request_key.c24
-rw-r--r--security/keys/user_defined.c3
-rw-r--r--sound/core/pcm_native.c7
-rw-r--r--sound/core/timer.c5
-rw-r--r--sound/isa/sb/es968.c2
-rw-r--r--sound/pci/hda/hda_intel.c1
-rw-r--r--sound/pci/hda/patch_analog.c9
-rw-r--r--sound/pci/hda/patch_cirrus.c2
-rw-r--r--sound/pci/hda/patch_conexant.c12
-rw-r--r--sound/pci/hda/patch_realtek.c3
-rw-r--r--sound/pci/hda/patch_sigmatel.c25
-rw-r--r--sound/pci/ice1712/maya44.c6
-rw-r--r--sound/pci/maestro3.c9
-rw-r--r--sound/pci/oxygen/xonar_cs43xx.c3
-rw-r--r--sound/soc/txx9/txx9aclc-ac97.c1
-rw-r--r--sound/soc/txx9/txx9aclc-generic.c1
-rw-r--r--tools/perf/util/trace-event-parse.c2
-rw-r--r--virt/kvm/kvm_main.c17
743 files changed, 9920 insertions, 4321 deletions
diff --git a/Documentation/DocBook/libata.tmpl b/Documentation/DocBook/libata.tmpl
index ba9975771503..ff3e5bec1c24 100644
--- a/Documentation/DocBook/libata.tmpl
+++ b/Documentation/DocBook/libata.tmpl
@@ -107,10 +107,6 @@ void (*dev_config) (struct ata_port *, struct ata_device *);
107 issue of SET FEATURES - XFER MODE, and prior to operation. 107 issue of SET FEATURES - XFER MODE, and prior to operation.
108 </para> 108 </para>
109 <para> 109 <para>
110 Called by ata_device_add() after ata_dev_identify() determines
111 a device is present.
112 </para>
113 <para>
114 This entry may be specified as NULL in ata_port_operations. 110 This entry may be specified as NULL in ata_port_operations.
115 </para> 111 </para>
116 112
@@ -154,8 +150,8 @@ unsigned int (*mode_filter) (struct ata_port *, struct ata_device *, unsigned in
154 150
155 <sect2><title>Taskfile read/write</title> 151 <sect2><title>Taskfile read/write</title>
156 <programlisting> 152 <programlisting>
157void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); 153void (*sff_tf_load) (struct ata_port *ap, struct ata_taskfile *tf);
158void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); 154void (*sff_tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
159 </programlisting> 155 </programlisting>
160 156
161 <para> 157 <para>
@@ -164,36 +160,35 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
164 hardware registers / DMA buffers, to obtain the current set of 160 hardware registers / DMA buffers, to obtain the current set of
165 taskfile register values. 161 taskfile register values.
166 Most drivers for taskfile-based hardware (PIO or MMIO) use 162 Most drivers for taskfile-based hardware (PIO or MMIO) use
167 ata_tf_load() and ata_tf_read() for these hooks. 163 ata_sff_tf_load() and ata_sff_tf_read() for these hooks.
168 </para> 164 </para>
169 165
170 </sect2> 166 </sect2>
171 167
172 <sect2><title>PIO data read/write</title> 168 <sect2><title>PIO data read/write</title>
173 <programlisting> 169 <programlisting>
174void (*data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); 170void (*sff_data_xfer) (struct ata_device *, unsigned char *, unsigned int, int);
175 </programlisting> 171 </programlisting>
176 172
177 <para> 173 <para>
178All bmdma-style drivers must implement this hook. This is the low-level 174All bmdma-style drivers must implement this hook. This is the low-level
179operation that actually copies the data bytes during a PIO data 175operation that actually copies the data bytes during a PIO data
180transfer. 176transfer.
181Typically the driver 177Typically the driver will choose one of ata_sff_data_xfer_noirq(),
182will choose one of ata_pio_data_xfer_noirq(), ata_pio_data_xfer(), or 178ata_sff_data_xfer(), or ata_sff_data_xfer32().
183ata_mmio_data_xfer().
184 </para> 179 </para>
185 180
186 </sect2> 181 </sect2>
187 182
188 <sect2><title>ATA command execute</title> 183 <sect2><title>ATA command execute</title>
189 <programlisting> 184 <programlisting>
190void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); 185void (*sff_exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
191 </programlisting> 186 </programlisting>
192 187
193 <para> 188 <para>
194 causes an ATA command, previously loaded with 189 causes an ATA command, previously loaded with
195 ->tf_load(), to be initiated in hardware. 190 ->tf_load(), to be initiated in hardware.
196 Most drivers for taskfile-based hardware use ata_exec_command() 191 Most drivers for taskfile-based hardware use ata_sff_exec_command()
197 for this hook. 192 for this hook.
198 </para> 193 </para>
199 194
@@ -218,8 +213,8 @@ command.
218 213
219 <sect2><title>Read specific ATA shadow registers</title> 214 <sect2><title>Read specific ATA shadow registers</title>
220 <programlisting> 215 <programlisting>
221u8 (*check_status)(struct ata_port *ap); 216u8 (*sff_check_status)(struct ata_port *ap);
222u8 (*check_altstatus)(struct ata_port *ap); 217u8 (*sff_check_altstatus)(struct ata_port *ap);
223 </programlisting> 218 </programlisting>
224 219
225 <para> 220 <para>
@@ -227,20 +222,14 @@ u8 (*check_altstatus)(struct ata_port *ap);
227 hardware. On some hardware, reading the Status register has 222 hardware. On some hardware, reading the Status register has
228 the side effect of clearing the interrupt condition. 223 the side effect of clearing the interrupt condition.
229 Most drivers for taskfile-based hardware use 224 Most drivers for taskfile-based hardware use
230 ata_check_status() for this hook. 225 ata_sff_check_status() for this hook.
231 </para>
232 <para>
233 Note that because this is called from ata_device_add(), at
234 least a dummy function that clears device interrupts must be
235 provided for all drivers, even if the controller doesn't
236 actually have a taskfile status register.
237 </para> 226 </para>
238 227
239 </sect2> 228 </sect2>
240 229
241 <sect2><title>Select ATA device on bus</title> 230 <sect2><title>Select ATA device on bus</title>
242 <programlisting> 231 <programlisting>
243void (*dev_select)(struct ata_port *ap, unsigned int device); 232void (*sff_dev_select)(struct ata_port *ap, unsigned int device);
244 </programlisting> 233 </programlisting>
245 234
246 <para> 235 <para>
@@ -251,9 +240,7 @@ void (*dev_select)(struct ata_port *ap, unsigned int device);
251 </para> 240 </para>
252 <para> 241 <para>
253 Most drivers for taskfile-based hardware use 242 Most drivers for taskfile-based hardware use
254 ata_std_dev_select() for this hook. Controllers which do not 243 ata_sff_dev_select() for this hook.
255 support second drives on a port (such as SATA contollers) will
256 use ata_noop_dev_select().
257 </para> 244 </para>
258 245
259 </sect2> 246 </sect2>
@@ -441,13 +428,13 @@ void (*irq_clear) (struct ata_port *);
441 to struct ata_host_set. 428 to struct ata_host_set.
442 </para> 429 </para>
443 <para> 430 <para>
444 Most legacy IDE drivers use ata_interrupt() for the 431 Most legacy IDE drivers use ata_sff_interrupt() for the
445 irq_handler hook, which scans all ports in the host_set, 432 irq_handler hook, which scans all ports in the host_set,
446 determines which queued command was active (if any), and calls 433 determines which queued command was active (if any), and calls
447 ata_host_intr(ap,qc). 434 ata_sff_host_intr(ap,qc).
448 </para> 435 </para>
449 <para> 436 <para>
450 Most legacy IDE drivers use ata_bmdma_irq_clear() for the 437 Most legacy IDE drivers use ata_sff_irq_clear() for the
451 irq_clear() hook, which simply clears the interrupt and error 438 irq_clear() hook, which simply clears the interrupt and error
452 flags in the DMA status register. 439 flags in the DMA status register.
453 </para> 440 </para>
@@ -496,10 +483,6 @@ void (*host_stop) (struct ata_host_set *host_set);
496 data from port at this time. 483 data from port at this time.
497 </para> 484 </para>
498 <para> 485 <para>
499 Many drivers use ata_port_stop() as this hook, which frees the
500 PRD table.
501 </para>
502 <para>
503 ->host_stop() is called after all ->port_stop() calls 486 ->host_stop() is called after all ->port_stop() calls
504have completed. The hook must finalize hardware shutdown, release DMA 487have completed. The hook must finalize hardware shutdown, release DMA
505and other resources, etc. 488and other resources, etc.
diff --git a/Documentation/HOWTO b/Documentation/HOWTO
index f5395af88a41..40ada93b820a 100644
--- a/Documentation/HOWTO
+++ b/Documentation/HOWTO
@@ -234,7 +234,7 @@ process is as follows:
234 Linus, usually the patches that have already been included in the 234 Linus, usually the patches that have already been included in the
235 -next kernel for a few weeks. The preferred way to submit big changes 235 -next kernel for a few weeks. The preferred way to submit big changes
236 is using git (the kernel's source management tool, more information 236 is using git (the kernel's source management tool, more information
237 can be found at http://git.or.cz/) but plain patches are also just 237 can be found at http://git-scm.com/) but plain patches are also just
238 fine. 238 fine.
239 - After two weeks a -rc1 kernel is released it is now possible to push 239 - After two weeks a -rc1 kernel is released it is now possible to push
240 only patches that do not include new features that could affect the 240 only patches that do not include new features that could affect the
diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt
index fd588ff0e296..a1ca5924faff 100644
--- a/Documentation/cgroups/cgroups.txt
+++ b/Documentation/cgroups/cgroups.txt
@@ -235,8 +235,7 @@ containing the following files describing that cgroup:
235 - cgroup.procs: list of tgids in the cgroup. This list is not 235 - cgroup.procs: list of tgids in the cgroup. This list is not
236 guaranteed to be sorted or free of duplicate tgids, and userspace 236 guaranteed to be sorted or free of duplicate tgids, and userspace
237 should sort/uniquify the list if this property is required. 237 should sort/uniquify the list if this property is required.
238 Writing a tgid into this file moves all threads with that tgid into 238 This is a read-only file, for now.
239 this cgroup.
240 - notify_on_release flag: run the release agent on exit? 239 - notify_on_release flag: run the release agent on exit?
241 - release_agent: the path to use for release notifications (this file 240 - release_agent: the path to use for release notifications (this file
242 exists in the top cgroup only) 241 exists in the top cgroup only)
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index ed511af0f79a..05df0b7514b6 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -589,3 +589,26 @@ Why: Useful in 2003, implementation is a hack.
589 Generally invoked by accident today. 589 Generally invoked by accident today.
590 Seen as doing more harm than good. 590 Seen as doing more harm than good.
591Who: Len Brown <len.brown@intel.com> 591Who: Len Brown <len.brown@intel.com>
592
593----------------------------
594
595What: video4linux /dev/vtx teletext API support
596When: 2.6.35
597Files: drivers/media/video/saa5246a.c drivers/media/video/saa5249.c
598 include/linux/videotext.h
599Why: The vtx device nodes have been superseded by vbi device nodes
600 for many years. No applications exist that use the vtx support.
601 Of the two i2c drivers that actually support this API the saa5249
602 has been impossible to use for a year now and no known hardware
603 that supports this device exists. The saa5246a is theoretically
604 supported by the old mxb boards, but it never actually worked.
605
606 In summary: there is no hardware that can use this API and there
607 are no applications actually implementing this API.
608
609 The vtx support still reserves minors 192-223 and we would really
610 like to reuse those for upcoming new functionality. In the unlikely
611 event that new hardware appears that wants to use the functionality
612 provided by the vtx API, then that functionality should be build
613 around the sliced VBI API instead.
614Who: Hans Verkuil <hverkuil@xs4all.nl>
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index a4f30faa4f1f..1e359b62c40a 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -316,7 +316,7 @@ address perms offset dev inode pathname
31608049000-0804a000 rw-p 00001000 03:00 8312 /opt/test 31608049000-0804a000 rw-p 00001000 03:00 8312 /opt/test
3170804a000-0806b000 rw-p 00000000 00:00 0 [heap] 3170804a000-0806b000 rw-p 00000000 00:00 0 [heap]
318a7cb1000-a7cb2000 ---p 00000000 00:00 0 318a7cb1000-a7cb2000 ---p 00000000 00:00 0
319a7cb2000-a7eb2000 rw-p 00000000 00:00 0 [threadstack:001ff4b4] 319a7cb2000-a7eb2000 rw-p 00000000 00:00 0
320a7eb2000-a7eb3000 ---p 00000000 00:00 0 320a7eb2000-a7eb3000 ---p 00000000 00:00 0
321a7eb3000-a7ed5000 rw-p 00000000 00:00 0 321a7eb3000-a7ed5000 rw-p 00000000 00:00 0
322a7ed5000-a8008000 r-xp 00000000 03:00 4222 /lib/libc.so.6 322a7ed5000-a8008000 r-xp 00000000 03:00 4222 /lib/libc.so.6
@@ -352,7 +352,6 @@ is not associated with a file:
352 [stack] = the stack of the main process 352 [stack] = the stack of the main process
353 [vdso] = the "virtual dynamic shared object", 353 [vdso] = the "virtual dynamic shared object",
354 the kernel system call handler 354 the kernel system call handler
355 [threadstack:xxxxxxxx] = the stack of the thread, xxxxxxxx is the stack size
356 355
357 or if empty, the mapping is anonymous. 356 or if empty, the mapping is anonymous.
358 357
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index 3219ee0dbfef..5ebf5af1d716 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -74,6 +74,11 @@ structure at all. You should use this to keep device-specific data.
74 /* retrieve the value */ 74 /* retrieve the value */
75 void *i2c_get_clientdata(const struct i2c_client *client); 75 void *i2c_get_clientdata(const struct i2c_client *client);
76 76
77Note that starting with kernel 2.6.34, you don't have to set the `data' field
78to NULL in remove() or if probe() failed anymore. The i2c-core does this
79automatically on these occasions. Those are also the only times the core will
80touch this field.
81
77 82
78Accessing the client 83Accessing the client
79==================== 84====================
diff --git a/Documentation/input/elantech.txt b/Documentation/input/elantech.txt
index a10c3b6ba7c4..56941ae1f5db 100644
--- a/Documentation/input/elantech.txt
+++ b/Documentation/input/elantech.txt
@@ -333,14 +333,14 @@ byte 0:
333byte 1: 333byte 1:
334 334
335 bit 7 6 5 4 3 2 1 0 335 bit 7 6 5 4 3 2 1 0
336 x15 x14 x13 x12 x11 x10 x9 x8 336 . . . . . x10 x9 x8
337 337
338byte 2: 338byte 2:
339 339
340 bit 7 6 5 4 3 2 1 0 340 bit 7 6 5 4 3 2 1 0
341 x7 x6 x5 x4 x4 x2 x1 x0 341 x7 x6 x5 x4 x4 x2 x1 x0
342 342
343 x15..x0 = absolute x value (horizontal) 343 x10..x0 = absolute x value (horizontal)
344 344
345byte 3: 345byte 3:
346 346
@@ -350,14 +350,14 @@ byte 3:
350byte 4: 350byte 4:
351 351
352 bit 7 6 5 4 3 2 1 0 352 bit 7 6 5 4 3 2 1 0
353 y15 y14 y13 y12 y11 y10 y8 y8 353 . . . . . . y9 y8
354 354
355byte 5: 355byte 5:
356 356
357 bit 7 6 5 4 3 2 1 0 357 bit 7 6 5 4 3 2 1 0
358 y7 y6 y5 y4 y3 y2 y1 y0 358 y7 y6 y5 y4 y3 y2 y1 y0
359 359
360 y15..y0 = absolute y value (vertical) 360 y9..y0 = absolute y value (vertical)
361 361
362 362
3634.2.2 Two finger touch 3634.2.2 Two finger touch
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index e2202e93b148..839b21b0699a 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1194,7 +1194,7 @@ and is between 256 and 4096 characters. It is defined in the file
1194 1194
1195 libata.force= [LIBATA] Force configurations. The format is comma 1195 libata.force= [LIBATA] Force configurations. The format is comma
1196 separated list of "[ID:]VAL" where ID is 1196 separated list of "[ID:]VAL" where ID is
1197 PORT[:DEVICE]. PORT and DEVICE are decimal numbers 1197 PORT[.DEVICE]. PORT and DEVICE are decimal numbers
1198 matching port, link or device. Basically, it matches 1198 matching port, link or device. Basically, it matches
1199 the ATA ID string printed on console by libata. If 1199 the ATA ID string printed on console by libata. If
1200 the whole ID part is omitted, the last PORT and DEVICE 1200 the whole ID part is omitted, the last PORT and DEVICE
diff --git a/Documentation/spi/spidev_test.c b/Documentation/spi/spidev_test.c
index 10abd3773e49..16feda901469 100644
--- a/Documentation/spi/spidev_test.c
+++ b/Documentation/spi/spidev_test.c
@@ -58,7 +58,7 @@ static void transfer(int fd)
58 }; 58 };
59 59
60 ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); 60 ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
61 if (ret == 1) 61 if (ret < 1)
62 pabort("can't send spi message"); 62 pabort("can't send spi message");
63 63
64 for (ret = 0; ret < ARRAY_SIZE(tx); ret++) { 64 for (ret = 0; ret < ARRAY_SIZE(tx); ret++) {
diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt
index 5effa5bd993b..e213f45cf9d7 100644
--- a/Documentation/stable_kernel_rules.txt
+++ b/Documentation/stable_kernel_rules.txt
@@ -18,16 +18,15 @@ Rules on what kind of patches are accepted, and which ones are not, into the
18 - It cannot contain any "trivial" fixes in it (spelling changes, 18 - It cannot contain any "trivial" fixes in it (spelling changes,
19 whitespace cleanups, etc). 19 whitespace cleanups, etc).
20 - It must follow the Documentation/SubmittingPatches rules. 20 - It must follow the Documentation/SubmittingPatches rules.
21 - It or an equivalent fix must already exist in Linus' tree. Quote the 21 - It or an equivalent fix must already exist in Linus' tree (upstream).
22 respective commit ID in Linus' tree in your patch submission to -stable.
23 22
24 23
25Procedure for submitting patches to the -stable tree: 24Procedure for submitting patches to the -stable tree:
26 25
27 - Send the patch, after verifying that it follows the above rules, to 26 - Send the patch, after verifying that it follows the above rules, to
28 stable@kernel.org. 27 stable@kernel.org. You must note the upstream commit ID in the changelog
29 - To have the patch automatically included in the stable tree, add the 28 of your submission.
30 the tag 29 - To have the patch automatically included in the stable tree, add the tag
31 Cc: stable@kernel.org 30 Cc: stable@kernel.org
32 in the sign-off area. Once the patch is merged it will be applied to 31 in the sign-off area. Once the patch is merged it will be applied to
33 the stable tree without anything else needing to be done by the author 32 the stable tree without anything else needing to be done by the author
diff --git a/MAINTAINERS b/MAINTAINERS
index a0e3c3a47a51..d5b0b1b6dc52 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1960,7 +1960,7 @@ F: lib/kobj*
1960 1960
1961DRM DRIVERS 1961DRM DRIVERS
1962M: David Airlie <airlied@linux.ie> 1962M: David Airlie <airlied@linux.ie>
1963L: dri-devel@lists.sourceforge.net 1963L: dri-devel@lists.freedesktop.org
1964T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git 1964T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git
1965S: Maintained 1965S: Maintained
1966F: drivers/gpu/drm/ 1966F: drivers/gpu/drm/
@@ -4482,17 +4482,17 @@ S: Maintained
4482F: drivers/ata/sata_promise.* 4482F: drivers/ata/sata_promise.*
4483 4483
4484PS3 NETWORK SUPPORT 4484PS3 NETWORK SUPPORT
4485M: Geoff Levand <geoffrey.levand@am.sony.com> 4485M: Geoff Levand <geoff@infradead.org>
4486L: netdev@vger.kernel.org 4486L: netdev@vger.kernel.org
4487L: cbe-oss-dev@ozlabs.org 4487L: cbe-oss-dev@ozlabs.org
4488S: Supported 4488S: Maintained
4489F: drivers/net/ps3_gelic_net.* 4489F: drivers/net/ps3_gelic_net.*
4490 4490
4491PS3 PLATFORM SUPPORT 4491PS3 PLATFORM SUPPORT
4492M: Geoff Levand <geoffrey.levand@am.sony.com> 4492M: Geoff Levand <geoff@infradead.org>
4493L: linuxppc-dev@ozlabs.org 4493L: linuxppc-dev@ozlabs.org
4494L: cbe-oss-dev@ozlabs.org 4494L: cbe-oss-dev@ozlabs.org
4495S: Supported 4495S: Maintained
4496F: arch/powerpc/boot/ps3* 4496F: arch/powerpc/boot/ps3*
4497F: arch/powerpc/include/asm/lv1call.h 4497F: arch/powerpc/include/asm/lv1call.h
4498F: arch/powerpc/include/asm/ps3*.h 4498F: arch/powerpc/include/asm/ps3*.h
@@ -4791,12 +4791,11 @@ F: drivers/s390/crypto/
4791 4791
4792S390 ZFCP DRIVER 4792S390 ZFCP DRIVER
4793M: Christof Schmitt <christof.schmitt@de.ibm.com> 4793M: Christof Schmitt <christof.schmitt@de.ibm.com>
4794M: Martin Peschke <mp3@de.ibm.com> 4794M: Swen Schillig <swen@vnet.ibm.com>
4795M: linux390@de.ibm.com 4795M: linux390@de.ibm.com
4796L: linux-s390@vger.kernel.org 4796L: linux-s390@vger.kernel.org
4797W: http://www.ibm.com/developerworks/linux/linux390/ 4797W: http://www.ibm.com/developerworks/linux/linux390/
4798S: Supported 4798S: Supported
4799F: Documentation/s390/zfcpdump.txt
4800F: drivers/s390/scsi/zfcp_* 4799F: drivers/s390/scsi/zfcp_*
4801 4800
4802S390 IUCV NETWORK LAYER 4801S390 IUCV NETWORK LAYER
diff --git a/Makefile b/Makefile
index fa1db9001754..701bc65b3952 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 34 3SUBLEVEL = 34
4EXTRAVERSION = -rc5 4EXTRAVERSION = -rc7
5NAME = Sheep on Meth 5NAME = Sheep on Meth
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c5408bf1bf43..92622eb5cc0d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -253,6 +253,7 @@ config ARCH_REALVIEW
253 select GENERIC_TIME 253 select GENERIC_TIME
254 select GENERIC_CLOCKEVENTS 254 select GENERIC_CLOCKEVENTS
255 select ARCH_WANT_OPTIONAL_GPIOLIB 255 select ARCH_WANT_OPTIONAL_GPIOLIB
256 select GPIO_PL061 if GPIOLIB
256 help 257 help
257 This enables support for ARM Ltd RealView boards. 258 This enables support for ARM Ltd RealView boards.
258 259
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 6ab6b337a913..c5191b1532e8 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -685,8 +685,8 @@ proc_types:
685 W(b) __armv4_mmu_cache_off 685 W(b) __armv4_mmu_cache_off
686 W(b) __armv4_mmu_cache_flush 686 W(b) __armv4_mmu_cache_flush
687 687
688 .word 0x56056930 688 .word 0x56056900
689 .word 0xff0ffff0 @ PXA935 689 .word 0xffffff00 @ PXA9xx
690 W(b) __armv4_mmu_cache_on 690 W(b) __armv4_mmu_cache_on
691 W(b) __armv4_mmu_cache_off 691 W(b) __armv4_mmu_cache_off
692 W(b) __armv4_mmu_cache_flush 692 W(b) __armv4_mmu_cache_flush
@@ -697,12 +697,6 @@ proc_types:
697 W(b) __armv4_mmu_cache_off 697 W(b) __armv4_mmu_cache_off
698 W(b) __armv5tej_mmu_cache_flush 698 W(b) __armv5tej_mmu_cache_flush
699 699
700 .word 0x56056930
701 .word 0xff0ffff0 @ PXA935
702 W(b) __armv4_mmu_cache_on
703 W(b) __armv4_mmu_cache_off
704 W(b) __armv4_mmu_cache_flush
705
706 .word 0x56050000 @ Feroceon 700 .word 0x56050000 @ Feroceon
707 .word 0xff0f0000 701 .word 0xff0f0000
708 W(b) __armv4_mmu_cache_on 702 W(b) __armv4_mmu_cache_on
diff --git a/arch/arm/configs/bcmring_defconfig b/arch/arm/configs/bcmring_defconfig
index 1e12167c89b7..6ac6693299bc 100644
--- a/arch/arm/configs/bcmring_defconfig
+++ b/arch/arm/configs/bcmring_defconfig
@@ -1,13 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31-rc3 3# Linux kernel version: 2.6.34-rc2
4# Fri Jul 17 12:07:28 2009 4# Mon Mar 29 12:01:41 2010
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_TIME=y 8CONFIG_GENERIC_TIME=y
9CONFIG_GENERIC_CLOCKEVENTS=y 9CONFIG_GENERIC_CLOCKEVENTS=y
10CONFIG_MMU=y 10CONFIG_HAVE_PROC_CPU=y
11CONFIG_GENERIC_HARDIRQS=y 11CONFIG_GENERIC_HARDIRQS=y
12CONFIG_STACKTRACE_SUPPORT=y 12CONFIG_STACKTRACE_SUPPORT=y
13CONFIG_HAVE_LATENCYTOP_SUPPORT=y 13CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -18,6 +18,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_RWSEM_GENERIC_SPINLOCK=y 18CONFIG_RWSEM_GENERIC_SPINLOCK=y
19CONFIG_GENERIC_HWEIGHT=y 19CONFIG_GENERIC_HWEIGHT=y
20CONFIG_GENERIC_CALIBRATE_DELAY=y 20CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_NEED_DMA_MAP_STATE=y
21CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 22CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
22CONFIG_VECTORS_BASE=0xffff0000 23CONFIG_VECTORS_BASE=0xffff0000
23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -32,6 +33,12 @@ CONFIG_LOCK_KERNEL=y
32CONFIG_INIT_ENV_ARG_LIMIT=32 33CONFIG_INIT_ENV_ARG_LIMIT=32
33CONFIG_LOCALVERSION="" 34CONFIG_LOCALVERSION=""
34# CONFIG_LOCALVERSION_AUTO is not set 35# CONFIG_LOCALVERSION_AUTO is not set
36CONFIG_HAVE_KERNEL_GZIP=y
37CONFIG_HAVE_KERNEL_LZO=y
38CONFIG_KERNEL_GZIP=y
39# CONFIG_KERNEL_BZIP2 is not set
40# CONFIG_KERNEL_LZMA is not set
41# CONFIG_KERNEL_LZO is not set
35# CONFIG_SWAP is not set 42# CONFIG_SWAP is not set
36CONFIG_SYSVIPC=y 43CONFIG_SYSVIPC=y
37CONFIG_SYSVIPC_SYSCTL=y 44CONFIG_SYSVIPC_SYSCTL=y
@@ -43,21 +50,22 @@ CONFIG_SYSVIPC_SYSCTL=y
43# 50#
44# RCU Subsystem 51# RCU Subsystem
45# 52#
46CONFIG_CLASSIC_RCU=y 53CONFIG_TREE_RCU=y
47# CONFIG_TREE_RCU is not set 54# CONFIG_TREE_PREEMPT_RCU is not set
48# CONFIG_PREEMPT_RCU is not set 55# CONFIG_TINY_RCU is not set
56# CONFIG_RCU_TRACE is not set
57CONFIG_RCU_FANOUT=32
58# CONFIG_RCU_FANOUT_EXACT is not set
49# CONFIG_TREE_RCU_TRACE is not set 59# CONFIG_TREE_RCU_TRACE is not set
50# CONFIG_PREEMPT_RCU_TRACE is not set
51# CONFIG_IKCONFIG is not set 60# CONFIG_IKCONFIG is not set
52CONFIG_LOG_BUF_SHIFT=17 61CONFIG_LOG_BUF_SHIFT=17
53# CONFIG_GROUP_SCHED is not set
54# CONFIG_CGROUPS is not set
55# CONFIG_SYSFS_DEPRECATED_V2 is not set 62# CONFIG_SYSFS_DEPRECATED_V2 is not set
56# CONFIG_RELAY is not set 63# CONFIG_RELAY is not set
57# CONFIG_NAMESPACES is not set 64# CONFIG_NAMESPACES is not set
58# CONFIG_BLK_DEV_INITRD is not set 65# CONFIG_BLK_DEV_INITRD is not set
59CONFIG_CC_OPTIMIZE_FOR_SIZE=y 66CONFIG_CC_OPTIMIZE_FOR_SIZE=y
60CONFIG_SYSCTL=y 67CONFIG_SYSCTL=y
68CONFIG_ANON_INODES=y
61CONFIG_EMBEDDED=y 69CONFIG_EMBEDDED=y
62CONFIG_UID16=y 70CONFIG_UID16=y
63CONFIG_SYSCTL_SYSCALL=y 71CONFIG_SYSCTL_SYSCALL=y
@@ -75,19 +83,21 @@ CONFIG_FUTEX=y
75# CONFIG_EVENTFD is not set 83# CONFIG_EVENTFD is not set
76CONFIG_SHMEM=y 84CONFIG_SHMEM=y
77# CONFIG_AIO is not set 85# CONFIG_AIO is not set
86CONFIG_HAVE_PERF_EVENTS=y
87CONFIG_PERF_USE_VMALLOC=y
78 88
79# 89#
80# Performance Counters 90# Kernel Performance Events And Counters
81# 91#
92CONFIG_PERF_EVENTS=y
93CONFIG_PERF_COUNTERS=y
82# CONFIG_VM_EVENT_COUNTERS is not set 94# CONFIG_VM_EVENT_COUNTERS is not set
83# CONFIG_SLUB_DEBUG is not set 95# CONFIG_SLUB_DEBUG is not set
84# CONFIG_STRIP_ASM_SYMS is not set
85# CONFIG_COMPAT_BRK is not set 96# CONFIG_COMPAT_BRK is not set
86# CONFIG_SLAB is not set 97# CONFIG_SLAB is not set
87CONFIG_SLUB=y 98CONFIG_SLUB=y
88# CONFIG_SLOB is not set 99# CONFIG_SLOB is not set
89# CONFIG_PROFILING is not set 100# CONFIG_PROFILING is not set
90# CONFIG_MARKERS is not set
91CONFIG_HAVE_OPROFILE=y 101CONFIG_HAVE_OPROFILE=y
92# CONFIG_KPROBES is not set 102# CONFIG_KPROBES is not set
93CONFIG_HAVE_KPROBES=y 103CONFIG_HAVE_KPROBES=y
@@ -115,24 +125,53 @@ CONFIG_LBDAF=y
115# IO Schedulers 125# IO Schedulers
116# 126#
117CONFIG_IOSCHED_NOOP=y 127CONFIG_IOSCHED_NOOP=y
118# CONFIG_IOSCHED_AS is not set
119# CONFIG_IOSCHED_DEADLINE is not set 128# CONFIG_IOSCHED_DEADLINE is not set
120# CONFIG_IOSCHED_CFQ is not set 129# CONFIG_IOSCHED_CFQ is not set
121# CONFIG_DEFAULT_AS is not set
122# CONFIG_DEFAULT_DEADLINE is not set 130# CONFIG_DEFAULT_DEADLINE is not set
123# CONFIG_DEFAULT_CFQ is not set 131# CONFIG_DEFAULT_CFQ is not set
124CONFIG_DEFAULT_NOOP=y 132CONFIG_DEFAULT_NOOP=y
125CONFIG_DEFAULT_IOSCHED="noop" 133CONFIG_DEFAULT_IOSCHED="noop"
134# CONFIG_INLINE_SPIN_TRYLOCK is not set
135# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
136# CONFIG_INLINE_SPIN_LOCK is not set
137# CONFIG_INLINE_SPIN_LOCK_BH is not set
138# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
139# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
140# CONFIG_INLINE_SPIN_UNLOCK is not set
141# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
142# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
143# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
144# CONFIG_INLINE_READ_TRYLOCK is not set
145# CONFIG_INLINE_READ_LOCK is not set
146# CONFIG_INLINE_READ_LOCK_BH is not set
147# CONFIG_INLINE_READ_LOCK_IRQ is not set
148# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
149# CONFIG_INLINE_READ_UNLOCK is not set
150# CONFIG_INLINE_READ_UNLOCK_BH is not set
151# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
152# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
153# CONFIG_INLINE_WRITE_TRYLOCK is not set
154# CONFIG_INLINE_WRITE_LOCK is not set
155# CONFIG_INLINE_WRITE_LOCK_BH is not set
156# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
157# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
158# CONFIG_INLINE_WRITE_UNLOCK is not set
159# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
160# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
161# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
162# CONFIG_MUTEX_SPIN_ON_OWNER is not set
126# CONFIG_FREEZER is not set 163# CONFIG_FREEZER is not set
127 164
128# 165#
129# System Type 166# System Type
130# 167#
168CONFIG_MMU=y
131# CONFIG_ARCH_AAEC2000 is not set 169# CONFIG_ARCH_AAEC2000 is not set
132# CONFIG_ARCH_INTEGRATOR is not set 170# CONFIG_ARCH_INTEGRATOR is not set
133# CONFIG_ARCH_REALVIEW is not set 171# CONFIG_ARCH_REALVIEW is not set
134# CONFIG_ARCH_VERSATILE is not set 172# CONFIG_ARCH_VERSATILE is not set
135# CONFIG_ARCH_AT91 is not set 173# CONFIG_ARCH_AT91 is not set
174CONFIG_ARCH_BCMRING=y
136# CONFIG_ARCH_CLPS711X is not set 175# CONFIG_ARCH_CLPS711X is not set
137# CONFIG_ARCH_GEMINI is not set 176# CONFIG_ARCH_GEMINI is not set
138# CONFIG_ARCH_EBSA110 is not set 177# CONFIG_ARCH_EBSA110 is not set
@@ -149,6 +188,7 @@ CONFIG_DEFAULT_IOSCHED="noop"
149# CONFIG_ARCH_IXP2000 is not set 188# CONFIG_ARCH_IXP2000 is not set
150# CONFIG_ARCH_IXP4XX is not set 189# CONFIG_ARCH_IXP4XX is not set
151# CONFIG_ARCH_L7200 is not set 190# CONFIG_ARCH_L7200 is not set
191# CONFIG_ARCH_DOVE is not set
152# CONFIG_ARCH_KIRKWOOD is not set 192# CONFIG_ARCH_KIRKWOOD is not set
153# CONFIG_ARCH_LOKI is not set 193# CONFIG_ARCH_LOKI is not set
154# CONFIG_ARCH_MV78XX0 is not set 194# CONFIG_ARCH_MV78XX0 is not set
@@ -157,19 +197,26 @@ CONFIG_DEFAULT_IOSCHED="noop"
157# CONFIG_ARCH_KS8695 is not set 197# CONFIG_ARCH_KS8695 is not set
158# CONFIG_ARCH_NS9XXX is not set 198# CONFIG_ARCH_NS9XXX is not set
159# CONFIG_ARCH_W90X900 is not set 199# CONFIG_ARCH_W90X900 is not set
200# CONFIG_ARCH_NUC93X is not set
160# CONFIG_ARCH_PNX4008 is not set 201# CONFIG_ARCH_PNX4008 is not set
161# CONFIG_ARCH_PXA is not set 202# CONFIG_ARCH_PXA is not set
162# CONFIG_ARCH_MSM is not set 203# CONFIG_ARCH_MSM is not set
204# CONFIG_ARCH_SHMOBILE is not set
163# CONFIG_ARCH_RPC is not set 205# CONFIG_ARCH_RPC is not set
164# CONFIG_ARCH_SA1100 is not set 206# CONFIG_ARCH_SA1100 is not set
165# CONFIG_ARCH_S3C2410 is not set 207# CONFIG_ARCH_S3C2410 is not set
166# CONFIG_ARCH_S3C64XX is not set 208# CONFIG_ARCH_S3C64XX is not set
209# CONFIG_ARCH_S5P6440 is not set
210# CONFIG_ARCH_S5P6442 is not set
211# CONFIG_ARCH_S5PC1XX is not set
212# CONFIG_ARCH_S5PV210 is not set
167# CONFIG_ARCH_SHARK is not set 213# CONFIG_ARCH_SHARK is not set
168# CONFIG_ARCH_LH7A40X is not set 214# CONFIG_ARCH_LH7A40X is not set
169# CONFIG_ARCH_U300 is not set 215# CONFIG_ARCH_U300 is not set
216# CONFIG_ARCH_U8500 is not set
217# CONFIG_ARCH_NOMADIK is not set
170# CONFIG_ARCH_DAVINCI is not set 218# CONFIG_ARCH_DAVINCI is not set
171# CONFIG_ARCH_OMAP is not set 219# CONFIG_ARCH_OMAP is not set
172CONFIG_ARCH_BCMRING=y
173# CONFIG_ARCH_FPGA11107 is not set 220# CONFIG_ARCH_FPGA11107 is not set
174CONFIG_ARCH_BCM11107=y 221CONFIG_ARCH_BCM11107=y
175 222
@@ -185,7 +232,7 @@ CONFIG_CPU_V6=y
185CONFIG_CPU_32v6K=y 232CONFIG_CPU_32v6K=y
186CONFIG_CPU_32v6=y 233CONFIG_CPU_32v6=y
187CONFIG_CPU_ABRT_EV6=y 234CONFIG_CPU_ABRT_EV6=y
188CONFIG_CPU_PABRT_NOIFAR=y 235CONFIG_CPU_PABRT_V6=y
189CONFIG_CPU_CACHE_V6=y 236CONFIG_CPU_CACHE_V6=y
190CONFIG_CPU_CACHE_VIPT=y 237CONFIG_CPU_CACHE_VIPT=y
191CONFIG_CPU_COPY_V6=y 238CONFIG_CPU_COPY_V6=y
@@ -201,6 +248,8 @@ CONFIG_ARM_THUMB=y
201# CONFIG_CPU_ICACHE_DISABLE is not set 248# CONFIG_CPU_ICACHE_DISABLE is not set
202# CONFIG_CPU_DCACHE_DISABLE is not set 249# CONFIG_CPU_DCACHE_DISABLE is not set
203# CONFIG_CPU_BPREDICT_DISABLE is not set 250# CONFIG_CPU_BPREDICT_DISABLE is not set
251CONFIG_ARM_L1_CACHE_SHIFT=5
252CONFIG_CPU_HAS_PMU=y
204# CONFIG_ARM_ERRATA_411920 is not set 253# CONFIG_ARM_ERRATA_411920 is not set
205CONFIG_COMMON_CLKDEV=y 254CONFIG_COMMON_CLKDEV=y
206 255
@@ -222,6 +271,8 @@ CONFIG_VMSPLIT_3G=y
222# CONFIG_VMSPLIT_2G is not set 271# CONFIG_VMSPLIT_2G is not set
223# CONFIG_VMSPLIT_1G is not set 272# CONFIG_VMSPLIT_1G is not set
224CONFIG_PAGE_OFFSET=0xC0000000 273CONFIG_PAGE_OFFSET=0xC0000000
274# CONFIG_PREEMPT_NONE is not set
275# CONFIG_PREEMPT_VOLUNTARY is not set
225CONFIG_PREEMPT=y 276CONFIG_PREEMPT=y
226CONFIG_HZ=100 277CONFIG_HZ=100
227CONFIG_AEABI=y 278CONFIG_AEABI=y
@@ -229,6 +280,7 @@ CONFIG_AEABI=y
229# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set 280# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
230# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set 281# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
231# CONFIG_HIGHMEM is not set 282# CONFIG_HIGHMEM is not set
283CONFIG_HW_PERF_EVENTS=y
232CONFIG_SELECT_MEMORY_MODEL=y 284CONFIG_SELECT_MEMORY_MODEL=y
233CONFIG_FLATMEM_MANUAL=y 285CONFIG_FLATMEM_MANUAL=y
234# CONFIG_DISCONTIGMEM_MANUAL is not set 286# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -240,8 +292,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
240# CONFIG_PHYS_ADDR_T_64BIT is not set 292# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=0 293CONFIG_ZONE_DMA_FLAG=0
242CONFIG_VIRT_TO_BUS=y 294CONFIG_VIRT_TO_BUS=y
243CONFIG_HAVE_MLOCK=y 295# CONFIG_KSM is not set
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y
245CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 296CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
246CONFIG_ALIGNMENT_TRAP=y 297CONFIG_ALIGNMENT_TRAP=y
247CONFIG_UACCESS_WITH_MEMCPY=y 298CONFIG_UACCESS_WITH_MEMCPY=y
@@ -335,9 +386,9 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
335# CONFIG_CONNECTOR is not set 386# CONFIG_CONNECTOR is not set
336CONFIG_MTD=y 387CONFIG_MTD=y
337# CONFIG_MTD_DEBUG is not set 388# CONFIG_MTD_DEBUG is not set
389# CONFIG_MTD_TESTS is not set
338CONFIG_MTD_CONCAT=y 390CONFIG_MTD_CONCAT=y
339CONFIG_MTD_PARTITIONS=y 391CONFIG_MTD_PARTITIONS=y
340# CONFIG_MTD_TESTS is not set
341# CONFIG_MTD_REDBOOT_PARTS is not set 392# CONFIG_MTD_REDBOOT_PARTS is not set
342CONFIG_MTD_CMDLINE_PARTS=y 393CONFIG_MTD_CMDLINE_PARTS=y
343# CONFIG_MTD_AFS_PARTS is not set 394# CONFIG_MTD_AFS_PARTS is not set
@@ -433,6 +484,10 @@ CONFIG_MTD_NAND_BCM_UMI_HWCS=y
433CONFIG_BLK_DEV=y 484CONFIG_BLK_DEV=y
434# CONFIG_BLK_DEV_COW_COMMON is not set 485# CONFIG_BLK_DEV_COW_COMMON is not set
435# CONFIG_BLK_DEV_LOOP is not set 486# CONFIG_BLK_DEV_LOOP is not set
487
488#
489# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
490#
436# CONFIG_BLK_DEV_NBD is not set 491# CONFIG_BLK_DEV_NBD is not set
437# CONFIG_BLK_DEV_RAM is not set 492# CONFIG_BLK_DEV_RAM is not set
438# CONFIG_CDROM_PKTCDVD is not set 493# CONFIG_CDROM_PKTCDVD is not set
@@ -444,6 +499,7 @@ CONFIG_HAVE_IDE=y
444# 499#
445# SCSI device support 500# SCSI device support
446# 501#
502CONFIG_SCSI_MOD=y
447# CONFIG_RAID_ATTRS is not set 503# CONFIG_RAID_ATTRS is not set
448# CONFIG_SCSI is not set 504# CONFIG_SCSI is not set
449# CONFIG_SCSI_DMA is not set 505# CONFIG_SCSI_DMA is not set
@@ -452,6 +508,7 @@ CONFIG_HAVE_IDE=y
452# CONFIG_MD is not set 508# CONFIG_MD is not set
453# CONFIG_NETDEVICES is not set 509# CONFIG_NETDEVICES is not set
454# CONFIG_ISDN is not set 510# CONFIG_ISDN is not set
511# CONFIG_PHONE is not set
455 512
456# 513#
457# Input device support 514# Input device support
@@ -459,6 +516,7 @@ CONFIG_HAVE_IDE=y
459CONFIG_INPUT=y 516CONFIG_INPUT=y
460# CONFIG_INPUT_FF_MEMLESS is not set 517# CONFIG_INPUT_FF_MEMLESS is not set
461# CONFIG_INPUT_POLLDEV is not set 518# CONFIG_INPUT_POLLDEV is not set
519# CONFIG_INPUT_SPARSEKMAP is not set
462 520
463# 521#
464# Userland interfaces 522# Userland interfaces
@@ -508,6 +566,7 @@ CONFIG_SERIAL_AMBA_PL011=y
508CONFIG_SERIAL_AMBA_PL011_CONSOLE=y 566CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
509CONFIG_SERIAL_CORE=y 567CONFIG_SERIAL_CORE=y
510CONFIG_SERIAL_CORE_CONSOLE=y 568CONFIG_SERIAL_CORE_CONSOLE=y
569# CONFIG_SERIAL_TIMBERDALE is not set
511CONFIG_UNIX98_PTYS=y 570CONFIG_UNIX98_PTYS=y
512# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 571# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
513CONFIG_LEGACY_PTYS=y 572CONFIG_LEGACY_PTYS=y
@@ -519,13 +578,17 @@ CONFIG_LEGACY_PTY_COUNT=64
519# CONFIG_TCG_TPM is not set 578# CONFIG_TCG_TPM is not set
520# CONFIG_I2C is not set 579# CONFIG_I2C is not set
521# CONFIG_SPI is not set 580# CONFIG_SPI is not set
581
582#
583# PPS support
584#
585# CONFIG_PPS is not set
522CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 586CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
523# CONFIG_GPIOLIB is not set 587# CONFIG_GPIOLIB is not set
524# CONFIG_W1 is not set 588# CONFIG_W1 is not set
525# CONFIG_POWER_SUPPLY is not set 589# CONFIG_POWER_SUPPLY is not set
526# CONFIG_HWMON is not set 590# CONFIG_HWMON is not set
527# CONFIG_THERMAL is not set 591# CONFIG_THERMAL is not set
528# CONFIG_THERMAL_HWMON is not set
529# CONFIG_WATCHDOG is not set 592# CONFIG_WATCHDOG is not set
530CONFIG_SSB_POSSIBLE=y 593CONFIG_SSB_POSSIBLE=y
531 594
@@ -541,6 +604,7 @@ CONFIG_SSB_POSSIBLE=y
541# CONFIG_MFD_SM501 is not set 604# CONFIG_MFD_SM501 is not set
542# CONFIG_HTC_PASIC3 is not set 605# CONFIG_HTC_PASIC3 is not set
543# CONFIG_MFD_TMIO is not set 606# CONFIG_MFD_TMIO is not set
607# CONFIG_REGULATOR is not set
544# CONFIG_MEDIA_SUPPORT is not set 608# CONFIG_MEDIA_SUPPORT is not set
545 609
546# 610#
@@ -566,14 +630,17 @@ CONFIG_DUMMY_CONSOLE=y
566# CONFIG_USB_SUPPORT is not set 630# CONFIG_USB_SUPPORT is not set
567# CONFIG_MMC is not set 631# CONFIG_MMC is not set
568# CONFIG_MEMSTICK is not set 632# CONFIG_MEMSTICK is not set
569# CONFIG_ACCESSIBILITY is not set
570# CONFIG_NEW_LEDS is not set 633# CONFIG_NEW_LEDS is not set
634# CONFIG_ACCESSIBILITY is not set
571CONFIG_RTC_LIB=y 635CONFIG_RTC_LIB=y
572# CONFIG_RTC_CLASS is not set 636# CONFIG_RTC_CLASS is not set
573# CONFIG_DMADEVICES is not set 637# CONFIG_DMADEVICES is not set
574# CONFIG_AUXDISPLAY is not set 638# CONFIG_AUXDISPLAY is not set
575# CONFIG_REGULATOR is not set
576# CONFIG_UIO is not set 639# CONFIG_UIO is not set
640
641#
642# TI VLYNQ
643#
577# CONFIG_STAGING is not set 644# CONFIG_STAGING is not set
578 645
579# 646#
@@ -589,9 +656,12 @@ CONFIG_FS_POSIX_ACL=y
589# CONFIG_GFS2_FS is not set 656# CONFIG_GFS2_FS is not set
590# CONFIG_OCFS2_FS is not set 657# CONFIG_OCFS2_FS is not set
591# CONFIG_BTRFS_FS is not set 658# CONFIG_BTRFS_FS is not set
659# CONFIG_NILFS2_FS is not set
592# CONFIG_FILE_LOCKING is not set 660# CONFIG_FILE_LOCKING is not set
593# CONFIG_FSNOTIFY is not set 661# CONFIG_FSNOTIFY is not set
662# CONFIG_DNOTIFY is not set
594# CONFIG_INOTIFY is not set 663# CONFIG_INOTIFY is not set
664# CONFIG_INOTIFY_USER is not set
595# CONFIG_QUOTA is not set 665# CONFIG_QUOTA is not set
596# CONFIG_AUTOFS_FS is not set 666# CONFIG_AUTOFS_FS is not set
597# CONFIG_AUTOFS4_FS is not set 667# CONFIG_AUTOFS4_FS is not set
@@ -647,6 +717,7 @@ CONFIG_JFFS2_ZLIB=y
647# CONFIG_JFFS2_LZO is not set 717# CONFIG_JFFS2_LZO is not set
648CONFIG_JFFS2_RTIME=y 718CONFIG_JFFS2_RTIME=y
649# CONFIG_JFFS2_RUBIN is not set 719# CONFIG_JFFS2_RUBIN is not set
720# CONFIG_LOGFS is not set
650# CONFIG_CRAMFS is not set 721# CONFIG_CRAMFS is not set
651# CONFIG_SQUASHFS is not set 722# CONFIG_SQUASHFS is not set
652# CONFIG_VXFS_FS is not set 723# CONFIG_VXFS_FS is not set
@@ -657,7 +728,6 @@ CONFIG_JFFS2_RTIME=y
657# CONFIG_ROMFS_FS is not set 728# CONFIG_ROMFS_FS is not set
658# CONFIG_SYSV_FS is not set 729# CONFIG_SYSV_FS is not set
659# CONFIG_UFS_FS is not set 730# CONFIG_UFS_FS is not set
660# CONFIG_NILFS2_FS is not set
661# CONFIG_NETWORK_FILESYSTEMS is not set 731# CONFIG_NETWORK_FILESYSTEMS is not set
662 732
663# 733#
@@ -675,11 +745,12 @@ CONFIG_MSDOS_PARTITION=y
675CONFIG_ENABLE_MUST_CHECK=y 745CONFIG_ENABLE_MUST_CHECK=y
676CONFIG_FRAME_WARN=1024 746CONFIG_FRAME_WARN=1024
677CONFIG_MAGIC_SYSRQ=y 747CONFIG_MAGIC_SYSRQ=y
748# CONFIG_STRIP_ASM_SYMS is not set
678# CONFIG_UNUSED_SYMBOLS is not set 749# CONFIG_UNUSED_SYMBOLS is not set
679# CONFIG_DEBUG_FS is not set 750# CONFIG_DEBUG_FS is not set
680CONFIG_HEADERS_CHECK=y 751CONFIG_HEADERS_CHECK=y
681# CONFIG_DEBUG_KERNEL is not set 752# CONFIG_DEBUG_KERNEL is not set
682# CONFIG_DEBUG_BUGVERBOSE is not set 753CONFIG_DEBUG_BUGVERBOSE=y
683# CONFIG_DEBUG_MEMORY_INIT is not set 754# CONFIG_DEBUG_MEMORY_INIT is not set
684CONFIG_FRAME_POINTER=y 755CONFIG_FRAME_POINTER=y
685# CONFIG_RCU_CPU_STALL_DETECTOR is not set 756# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -693,6 +764,7 @@ CONFIG_TRACING_SUPPORT=y
693CONFIG_HAVE_ARCH_KGDB=y 764CONFIG_HAVE_ARCH_KGDB=y
694# CONFIG_ARM_UNWIND is not set 765# CONFIG_ARM_UNWIND is not set
695# CONFIG_DEBUG_USER is not set 766# CONFIG_DEBUG_USER is not set
767# CONFIG_OC_ETM is not set
696 768
697# 769#
698# Security options 770# Security options
@@ -700,7 +772,11 @@ CONFIG_HAVE_ARCH_KGDB=y
700# CONFIG_KEYS is not set 772# CONFIG_KEYS is not set
701# CONFIG_SECURITY is not set 773# CONFIG_SECURITY is not set
702# CONFIG_SECURITYFS is not set 774# CONFIG_SECURITYFS is not set
703# CONFIG_SECURITY_FILE_CAPABILITIES is not set 775# CONFIG_DEFAULT_SECURITY_SELINUX is not set
776# CONFIG_DEFAULT_SECURITY_SMACK is not set
777# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
778CONFIG_DEFAULT_SECURITY_DAC=y
779CONFIG_DEFAULT_SECURITY=""
704# CONFIG_CRYPTO is not set 780# CONFIG_CRYPTO is not set
705# CONFIG_BINARY_PRINTF is not set 781# CONFIG_BINARY_PRINTF is not set
706 782
diff --git a/arch/arm/configs/imote2_defconfig b/arch/arm/configs/imote2_defconfig
index 95d2becfc664..21f2bff8a363 100644
--- a/arch/arm/configs/imote2_defconfig
+++ b/arch/arm/configs/imote2_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.33-rc8 3# Linux kernel version: 2.6.34-rc2
4# Sat Feb 13 21:48:53 2010 4# Thu Apr 8 14:49:08 2010
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y 8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y 9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y 10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_HAVE_PROC_CPU=y
11CONFIG_GENERIC_HARDIRQS=y 12CONFIG_GENERIC_HARDIRQS=y
12CONFIG_STACKTRACE_SUPPORT=y 13CONFIG_STACKTRACE_SUPPORT=y
13CONFIG_HAVE_LATENCYTOP_SUPPORT=y 14CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -19,6 +20,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
19CONFIG_ARCH_HAS_CPUFREQ=y 20CONFIG_ARCH_HAS_CPUFREQ=y
20CONFIG_GENERIC_HWEIGHT=y 21CONFIG_GENERIC_HWEIGHT=y
21CONFIG_GENERIC_CALIBRATE_DELAY=y 22CONFIG_GENERIC_CALIBRATE_DELAY=y
23CONFIG_NEED_DMA_MAP_STATE=y
22CONFIG_ARCH_MTD_XIP=y 24CONFIG_ARCH_MTD_XIP=y
23CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 25CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
24CONFIG_VECTORS_BASE=0xffff0000 26CONFIG_VECTORS_BASE=0xffff0000
@@ -60,11 +62,6 @@ CONFIG_RCU_FANOUT=32
60# CONFIG_TREE_RCU_TRACE is not set 62# CONFIG_TREE_RCU_TRACE is not set
61# CONFIG_IKCONFIG is not set 63# CONFIG_IKCONFIG is not set
62CONFIG_LOG_BUF_SHIFT=14 64CONFIG_LOG_BUF_SHIFT=14
63CONFIG_GROUP_SCHED=y
64CONFIG_FAIR_GROUP_SCHED=y
65# CONFIG_RT_GROUP_SCHED is not set
66CONFIG_USER_SCHED=y
67# CONFIG_CGROUP_SCHED is not set
68# CONFIG_CGROUPS is not set 65# CONFIG_CGROUPS is not set
69CONFIG_SYSFS_DEPRECATED=y 66CONFIG_SYSFS_DEPRECATED=y
70CONFIG_SYSFS_DEPRECATED_V2=y 67CONFIG_SYSFS_DEPRECATED_V2=y
@@ -97,10 +94,14 @@ CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 94CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 95CONFIG_SHMEM=y
99CONFIG_AIO=y 96CONFIG_AIO=y
97CONFIG_HAVE_PERF_EVENTS=y
98CONFIG_PERF_USE_VMALLOC=y
100 99
101# 100#
102# Kernel Performance Events And Counters 101# Kernel Performance Events And Counters
103# 102#
103# CONFIG_PERF_EVENTS is not set
104# CONFIG_PERF_COUNTERS is not set
104CONFIG_VM_EVENT_COUNTERS=y 105CONFIG_VM_EVENT_COUNTERS=y
105# CONFIG_COMPAT_BRK is not set 106# CONFIG_COMPAT_BRK is not set
106CONFIG_SLAB=y 107CONFIG_SLAB=y
@@ -184,6 +185,7 @@ CONFIG_MMU=y
184# CONFIG_ARCH_REALVIEW is not set 185# CONFIG_ARCH_REALVIEW is not set
185# CONFIG_ARCH_VERSATILE is not set 186# CONFIG_ARCH_VERSATILE is not set
186# CONFIG_ARCH_AT91 is not set 187# CONFIG_ARCH_AT91 is not set
188# CONFIG_ARCH_BCMRING is not set
187# CONFIG_ARCH_CLPS711X is not set 189# CONFIG_ARCH_CLPS711X is not set
188# CONFIG_ARCH_GEMINI is not set 190# CONFIG_ARCH_GEMINI is not set
189# CONFIG_ARCH_EBSA110 is not set 191# CONFIG_ARCH_EBSA110 is not set
@@ -193,7 +195,6 @@ CONFIG_MMU=y
193# CONFIG_ARCH_STMP3XXX is not set 195# CONFIG_ARCH_STMP3XXX is not set
194# CONFIG_ARCH_NETX is not set 196# CONFIG_ARCH_NETX is not set
195# CONFIG_ARCH_H720X is not set 197# CONFIG_ARCH_H720X is not set
196# CONFIG_ARCH_NOMADIK is not set
197# CONFIG_ARCH_IOP13XX is not set 198# CONFIG_ARCH_IOP13XX is not set
198# CONFIG_ARCH_IOP32X is not set 199# CONFIG_ARCH_IOP32X is not set
199# CONFIG_ARCH_IOP33X is not set 200# CONFIG_ARCH_IOP33X is not set
@@ -210,21 +211,26 @@ CONFIG_MMU=y
210# CONFIG_ARCH_KS8695 is not set 211# CONFIG_ARCH_KS8695 is not set
211# CONFIG_ARCH_NS9XXX is not set 212# CONFIG_ARCH_NS9XXX is not set
212# CONFIG_ARCH_W90X900 is not set 213# CONFIG_ARCH_W90X900 is not set
214# CONFIG_ARCH_NUC93X is not set
213# CONFIG_ARCH_PNX4008 is not set 215# CONFIG_ARCH_PNX4008 is not set
214CONFIG_ARCH_PXA=y 216CONFIG_ARCH_PXA=y
215# CONFIG_ARCH_MSM is not set 217# CONFIG_ARCH_MSM is not set
218# CONFIG_ARCH_SHMOBILE is not set
216# CONFIG_ARCH_RPC is not set 219# CONFIG_ARCH_RPC is not set
217# CONFIG_ARCH_SA1100 is not set 220# CONFIG_ARCH_SA1100 is not set
218# CONFIG_ARCH_S3C2410 is not set 221# CONFIG_ARCH_S3C2410 is not set
219# CONFIG_ARCH_S3C64XX is not set 222# CONFIG_ARCH_S3C64XX is not set
223# CONFIG_ARCH_S5P6440 is not set
224# CONFIG_ARCH_S5P6442 is not set
220# CONFIG_ARCH_S5PC1XX is not set 225# CONFIG_ARCH_S5PC1XX is not set
226# CONFIG_ARCH_S5PV210 is not set
221# CONFIG_ARCH_SHARK is not set 227# CONFIG_ARCH_SHARK is not set
222# CONFIG_ARCH_LH7A40X is not set 228# CONFIG_ARCH_LH7A40X is not set
223# CONFIG_ARCH_U300 is not set 229# CONFIG_ARCH_U300 is not set
230# CONFIG_ARCH_U8500 is not set
231# CONFIG_ARCH_NOMADIK is not set
224# CONFIG_ARCH_DAVINCI is not set 232# CONFIG_ARCH_DAVINCI is not set
225# CONFIG_ARCH_OMAP is not set 233# CONFIG_ARCH_OMAP is not set
226# CONFIG_ARCH_BCMRING is not set
227# CONFIG_ARCH_U8500 is not set
228 234
229# 235#
230# Intel PXA2xx/PXA3xx Implementations 236# Intel PXA2xx/PXA3xx Implementations
@@ -253,6 +259,7 @@ CONFIG_ARCH_PXA=y
253# CONFIG_MACH_EM_X270 is not set 259# CONFIG_MACH_EM_X270 is not set
254# CONFIG_MACH_EXEDA is not set 260# CONFIG_MACH_EXEDA is not set
255# CONFIG_MACH_CM_X300 is not set 261# CONFIG_MACH_CM_X300 is not set
262# CONFIG_MACH_CAPC7117 is not set
256# CONFIG_ARCH_GUMSTIX is not set 263# CONFIG_ARCH_GUMSTIX is not set
257CONFIG_MACH_INTELMOTE2=y 264CONFIG_MACH_INTELMOTE2=y
258# CONFIG_MACH_STARGATE2 is not set 265# CONFIG_MACH_STARGATE2 is not set
@@ -275,7 +282,11 @@ CONFIG_MACH_INTELMOTE2=y
275# CONFIG_PXA_EZX is not set 282# CONFIG_PXA_EZX is not set
276# CONFIG_MACH_MP900C is not set 283# CONFIG_MACH_MP900C is not set
277# CONFIG_ARCH_PXA_PALM is not set 284# CONFIG_ARCH_PXA_PALM is not set
285# CONFIG_MACH_RAUMFELD_RC is not set
286# CONFIG_MACH_RAUMFELD_CONNECTOR is not set
287# CONFIG_MACH_RAUMFELD_SPEAKER is not set
278# CONFIG_PXA_SHARPSL is not set 288# CONFIG_PXA_SHARPSL is not set
289# CONFIG_MACH_ICONTROL is not set
279# CONFIG_ARCH_PXA_ESERIES is not set 290# CONFIG_ARCH_PXA_ESERIES is not set
280CONFIG_PXA27x=y 291CONFIG_PXA27x=y
281CONFIG_PXA_SSP=y 292CONFIG_PXA_SSP=y
@@ -302,6 +313,7 @@ CONFIG_ARM_THUMB=y
302CONFIG_ARM_L1_CACHE_SHIFT=5 313CONFIG_ARM_L1_CACHE_SHIFT=5
303CONFIG_IWMMXT=y 314CONFIG_IWMMXT=y
304CONFIG_XSCALE_PMU=y 315CONFIG_XSCALE_PMU=y
316CONFIG_CPU_HAS_PMU=y
305CONFIG_COMMON_CLKDEV=y 317CONFIG_COMMON_CLKDEV=y
306 318
307# 319#
@@ -352,7 +364,7 @@ CONFIG_ALIGNMENT_TRAP=y
352# 364#
353CONFIG_ZBOOT_ROM_TEXT=0x0 365CONFIG_ZBOOT_ROM_TEXT=0x0
354CONFIG_ZBOOT_ROM_BSS=0x0 366CONFIG_ZBOOT_ROM_BSS=0x0
355CONFIG_CMDLINE="console=tty1 root=/dev/mmcblk0p2 rootfstype=ext2 rootdelay=3 ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0 debug" 367CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS2,115200 mem=32M"
356# CONFIG_XIP_KERNEL is not set 368# CONFIG_XIP_KERNEL is not set
357CONFIG_KEXEC=y 369CONFIG_KEXEC=y
358CONFIG_ATAGS_PROC=y 370CONFIG_ATAGS_PROC=y
@@ -360,24 +372,8 @@ CONFIG_ATAGS_PROC=y
360# 372#
361# CPU Power Management 373# CPU Power Management
362# 374#
363CONFIG_CPU_FREQ=y 375# CONFIG_CPU_FREQ is not set
364CONFIG_CPU_FREQ_TABLE=y 376# CONFIG_CPU_IDLE is not set
365CONFIG_CPU_FREQ_DEBUG=y
366CONFIG_CPU_FREQ_STAT=y
367# CONFIG_CPU_FREQ_STAT_DETAILS is not set
368CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
369# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
370# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
371# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
372# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
373CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
374CONFIG_CPU_FREQ_GOV_POWERSAVE=m
375CONFIG_CPU_FREQ_GOV_USERSPACE=m
376CONFIG_CPU_FREQ_GOV_ONDEMAND=m
377CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
378CONFIG_CPU_IDLE=y
379CONFIG_CPU_IDLE_GOV_LADDER=y
380CONFIG_CPU_IDLE_GOV_MENU=y
381 377
382# 378#
383# Floating point emulation 379# Floating point emulation
@@ -409,6 +405,7 @@ CONFIG_SUSPEND=y
409CONFIG_SUSPEND_FREEZER=y 405CONFIG_SUSPEND_FREEZER=y
410CONFIG_APM_EMULATION=y 406CONFIG_APM_EMULATION=y
411CONFIG_PM_RUNTIME=y 407CONFIG_PM_RUNTIME=y
408CONFIG_PM_OPS=y
412CONFIG_ARCH_SUSPEND_POSSIBLE=y 409CONFIG_ARCH_SUSPEND_POSSIBLE=y
413CONFIG_NET=y 410CONFIG_NET=y
414 411
@@ -416,7 +413,6 @@ CONFIG_NET=y
416# Networking options 413# Networking options
417# 414#
418CONFIG_PACKET=y 415CONFIG_PACKET=y
419CONFIG_PACKET_MMAP=y
420CONFIG_UNIX=y 416CONFIG_UNIX=y
421CONFIG_XFRM=y 417CONFIG_XFRM=y
422# CONFIG_XFRM_USER is not set 418# CONFIG_XFRM_USER is not set
@@ -506,6 +502,7 @@ CONFIG_NF_CT_NETLINK=m
506CONFIG_NETFILTER_XTABLES=m 502CONFIG_NETFILTER_XTABLES=m
507CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 503CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
508# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 504# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
505# CONFIG_NETFILTER_XT_TARGET_CT is not set
509# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 506# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
510CONFIG_NETFILTER_XT_TARGET_HL=m 507CONFIG_NETFILTER_XT_TARGET_HL=m
511CONFIG_NETFILTER_XT_TARGET_LED=m 508CONFIG_NETFILTER_XT_TARGET_LED=m
@@ -622,6 +619,7 @@ CONFIG_IP6_NF_RAW=m
622# CONFIG_ATM is not set 619# CONFIG_ATM is not set
623CONFIG_STP=m 620CONFIG_STP=m
624CONFIG_BRIDGE=m 621CONFIG_BRIDGE=m
622# CONFIG_BRIDGE_IGMP_SNOOPING is not set
625# CONFIG_NET_DSA is not set 623# CONFIG_NET_DSA is not set
626# CONFIG_VLAN_8021Q is not set 624# CONFIG_VLAN_8021Q is not set
627# CONFIG_DECNET is not set 625# CONFIG_DECNET is not set
@@ -646,32 +644,7 @@ CONFIG_NET_CLS_ROUTE=y
646# CONFIG_HAMRADIO is not set 644# CONFIG_HAMRADIO is not set
647# CONFIG_CAN is not set 645# CONFIG_CAN is not set
648# CONFIG_IRDA is not set 646# CONFIG_IRDA is not set
649CONFIG_BT=y 647# CONFIG_BT is not set
650CONFIG_BT_L2CAP=y
651CONFIG_BT_SCO=y
652CONFIG_BT_RFCOMM=y
653CONFIG_BT_RFCOMM_TTY=y
654CONFIG_BT_BNEP=y
655CONFIG_BT_BNEP_MC_FILTER=y
656CONFIG_BT_BNEP_PROTO_FILTER=y
657CONFIG_BT_HIDP=y
658
659#
660# Bluetooth device drivers
661#
662CONFIG_BT_HCIBTUSB=m
663CONFIG_BT_HCIBTSDIO=m
664CONFIG_BT_HCIUART=y
665CONFIG_BT_HCIUART_H4=y
666# CONFIG_BT_HCIUART_BCSP is not set
667# CONFIG_BT_HCIUART_LL is not set
668CONFIG_BT_HCIBCM203X=m
669CONFIG_BT_HCIBPA10X=m
670CONFIG_BT_HCIBFUSB=m
671CONFIG_BT_HCIVHCI=m
672CONFIG_BT_MRVL=m
673CONFIG_BT_MRVL_SDIO=m
674# CONFIG_BT_ATH3K is not set
675# CONFIG_AF_RXRPC is not set 648# CONFIG_AF_RXRPC is not set
676CONFIG_FIB_RULES=y 649CONFIG_FIB_RULES=y
677# CONFIG_WIRELESS is not set 650# CONFIG_WIRELESS is not set
@@ -687,7 +660,8 @@ CONFIG_FIB_RULES=y
687# Generic Driver Options 660# Generic Driver Options
688# 661#
689CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 662CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
690# CONFIG_DEVTMPFS is not set 663CONFIG_DEVTMPFS=y
664CONFIG_DEVTMPFS_MOUNT=y
691CONFIG_STANDALONE=y 665CONFIG_STANDALONE=y
692CONFIG_PREVENT_FIRMWARE_BUILD=y 666CONFIG_PREVENT_FIRMWARE_BUILD=y
693CONFIG_FW_LOADER=m 667CONFIG_FW_LOADER=m
@@ -703,9 +677,9 @@ CONFIG_MTD=y
703# CONFIG_MTD_CONCAT is not set 677# CONFIG_MTD_CONCAT is not set
704CONFIG_MTD_PARTITIONS=y 678CONFIG_MTD_PARTITIONS=y
705# CONFIG_MTD_REDBOOT_PARTS is not set 679# CONFIG_MTD_REDBOOT_PARTS is not set
706# CONFIG_MTD_CMDLINE_PARTS is not set 680CONFIG_MTD_CMDLINE_PARTS=y
707# CONFIG_MTD_AFS_PARTS is not set 681CONFIG_MTD_AFS_PARTS=y
708# CONFIG_MTD_AR7_PARTS is not set 682CONFIG_MTD_AR7_PARTS=y
709 683
710# 684#
711# User Modules And Translation Layers 685# User Modules And Translation Layers
@@ -812,6 +786,7 @@ CONFIG_HAVE_IDE=y
812# 786#
813# SCSI device support 787# SCSI device support
814# 788#
789CONFIG_SCSI_MOD=y
815# CONFIG_RAID_ATTRS is not set 790# CONFIG_RAID_ATTRS is not set
816# CONFIG_SCSI is not set 791# CONFIG_SCSI is not set
817# CONFIG_SCSI_DMA is not set 792# CONFIG_SCSI_DMA is not set
@@ -965,6 +940,7 @@ CONFIG_SERIAL_PXA=y
965CONFIG_SERIAL_PXA_CONSOLE=y 940CONFIG_SERIAL_PXA_CONSOLE=y
966CONFIG_SERIAL_CORE=y 941CONFIG_SERIAL_CORE=y
967CONFIG_SERIAL_CORE_CONSOLE=y 942CONFIG_SERIAL_CORE_CONSOLE=y
943# CONFIG_SERIAL_TIMBERDALE is not set
968CONFIG_UNIX98_PTYS=y 944CONFIG_UNIX98_PTYS=y
969# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 945# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
970CONFIG_LEGACY_PTYS=y 946CONFIG_LEGACY_PTYS=y
@@ -993,6 +969,7 @@ CONFIG_I2C_HELPER_AUTO=y
993CONFIG_I2C_PXA=y 969CONFIG_I2C_PXA=y
994# CONFIG_I2C_PXA_SLAVE is not set 970# CONFIG_I2C_PXA_SLAVE is not set
995# CONFIG_I2C_SIMTEC is not set 971# CONFIG_I2C_SIMTEC is not set
972# CONFIG_I2C_XILINX is not set
996 973
997# 974#
998# External I2C/SMBus adapter drivers 975# External I2C/SMBus adapter drivers
@@ -1006,15 +983,9 @@ CONFIG_I2C_PXA=y
1006# 983#
1007# CONFIG_I2C_PCA_PLATFORM is not set 984# CONFIG_I2C_PCA_PLATFORM is not set
1008# CONFIG_I2C_STUB is not set 985# CONFIG_I2C_STUB is not set
1009
1010#
1011# Miscellaneous I2C Chip support
1012#
1013# CONFIG_SENSORS_TSL2550 is not set
1014# CONFIG_I2C_DEBUG_CORE is not set 986# CONFIG_I2C_DEBUG_CORE is not set
1015# CONFIG_I2C_DEBUG_ALGO is not set 987# CONFIG_I2C_DEBUG_ALGO is not set
1016# CONFIG_I2C_DEBUG_BUS is not set 988# CONFIG_I2C_DEBUG_BUS is not set
1017# CONFIG_I2C_DEBUG_CHIP is not set
1018CONFIG_SPI=y 989CONFIG_SPI=y
1019# CONFIG_SPI_DEBUG is not set 990# CONFIG_SPI_DEBUG is not set
1020CONFIG_SPI_MASTER=y 991CONFIG_SPI_MASTER=y
@@ -1046,10 +1017,12 @@ CONFIG_GPIO_SYSFS=y
1046# 1017#
1047# Memory mapped GPIO expanders: 1018# Memory mapped GPIO expanders:
1048# 1019#
1020# CONFIG_GPIO_IT8761E is not set
1049 1021
1050# 1022#
1051# I2C GPIO expanders: 1023# I2C GPIO expanders:
1052# 1024#
1025# CONFIG_GPIO_MAX7300 is not set
1053# CONFIG_GPIO_MAX732X is not set 1026# CONFIG_GPIO_MAX732X is not set
1054# CONFIG_GPIO_PCA953X is not set 1027# CONFIG_GPIO_PCA953X is not set
1055# CONFIG_GPIO_PCF857X is not set 1028# CONFIG_GPIO_PCF857X is not set
@@ -1093,10 +1066,12 @@ CONFIG_SSB_POSSIBLE=y
1093# Multifunction device drivers 1066# Multifunction device drivers
1094# 1067#
1095# CONFIG_MFD_CORE is not set 1068# CONFIG_MFD_CORE is not set
1069# CONFIG_MFD_88PM860X is not set
1096# CONFIG_MFD_SM501 is not set 1070# CONFIG_MFD_SM501 is not set
1097# CONFIG_MFD_ASIC3 is not set 1071# CONFIG_MFD_ASIC3 is not set
1098# CONFIG_HTC_EGPIO is not set 1072# CONFIG_HTC_EGPIO is not set
1099# CONFIG_HTC_PASIC3 is not set 1073# CONFIG_HTC_PASIC3 is not set
1074# CONFIG_HTC_I2CPLD is not set
1100# CONFIG_TPS65010 is not set 1075# CONFIG_TPS65010 is not set
1101# CONFIG_TWL4030_CORE is not set 1076# CONFIG_TWL4030_CORE is not set
1102# CONFIG_MFD_TMIO is not set 1077# CONFIG_MFD_TMIO is not set
@@ -1105,22 +1080,25 @@ CONFIG_SSB_POSSIBLE=y
1105# CONFIG_MFD_TC6393XB is not set 1080# CONFIG_MFD_TC6393XB is not set
1106CONFIG_PMIC_DA903X=y 1081CONFIG_PMIC_DA903X=y
1107# CONFIG_PMIC_ADP5520 is not set 1082# CONFIG_PMIC_ADP5520 is not set
1083# CONFIG_MFD_MAX8925 is not set
1108# CONFIG_MFD_WM8400 is not set 1084# CONFIG_MFD_WM8400 is not set
1109# CONFIG_MFD_WM831X is not set 1085# CONFIG_MFD_WM831X is not set
1110# CONFIG_MFD_WM8350_I2C is not set 1086# CONFIG_MFD_WM8350_I2C is not set
1087# CONFIG_MFD_WM8994 is not set
1111# CONFIG_MFD_PCF50633 is not set 1088# CONFIG_MFD_PCF50633 is not set
1112# CONFIG_MFD_MC13783 is not set 1089# CONFIG_MFD_MC13783 is not set
1113# CONFIG_AB3100_CORE is not set 1090# CONFIG_AB3100_CORE is not set
1114# CONFIG_EZX_PCAP is not set 1091# CONFIG_EZX_PCAP is not set
1115# CONFIG_MFD_88PM8607 is not set
1116# CONFIG_AB4500_CORE is not set 1092# CONFIG_AB4500_CORE is not set
1117CONFIG_REGULATOR=y 1093CONFIG_REGULATOR=y
1118CONFIG_REGULATOR_DEBUG=y 1094CONFIG_REGULATOR_DEBUG=y
1095# CONFIG_REGULATOR_DUMMY is not set
1119# CONFIG_REGULATOR_FIXED_VOLTAGE is not set 1096# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1120CONFIG_REGULATOR_VIRTUAL_CONSUMER=y 1097CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
1121CONFIG_REGULATOR_USERSPACE_CONSUMER=y 1098CONFIG_REGULATOR_USERSPACE_CONSUMER=y
1122# CONFIG_REGULATOR_BQ24022 is not set 1099# CONFIG_REGULATOR_BQ24022 is not set
1123# CONFIG_REGULATOR_MAX1586 is not set 1100# CONFIG_REGULATOR_MAX1586 is not set
1101# CONFIG_REGULATOR_MAX8649 is not set
1124# CONFIG_REGULATOR_MAX8660 is not set 1102# CONFIG_REGULATOR_MAX8660 is not set
1125CONFIG_REGULATOR_DA903X=y 1103CONFIG_REGULATOR_DA903X=y
1126# CONFIG_REGULATOR_LP3971 is not set 1104# CONFIG_REGULATOR_LP3971 is not set
@@ -1218,6 +1196,7 @@ CONFIG_VIDEO_IR_I2C=y
1218# CONFIG_VIDEO_SAA7191 is not set 1196# CONFIG_VIDEO_SAA7191 is not set
1219# CONFIG_VIDEO_TVP514X is not set 1197# CONFIG_VIDEO_TVP514X is not set
1220# CONFIG_VIDEO_TVP5150 is not set 1198# CONFIG_VIDEO_TVP5150 is not set
1199# CONFIG_VIDEO_TVP7002 is not set
1221# CONFIG_VIDEO_VPX3220 is not set 1200# CONFIG_VIDEO_VPX3220 is not set
1222 1201
1223# 1202#
@@ -1264,15 +1243,7 @@ CONFIG_SOC_CAMERA_MT9M111=y
1264CONFIG_VIDEO_PXA27x=y 1243CONFIG_VIDEO_PXA27x=y
1265# CONFIG_VIDEO_SH_MOBILE_CEU is not set 1244# CONFIG_VIDEO_SH_MOBILE_CEU is not set
1266# CONFIG_V4L_USB_DRIVERS is not set 1245# CONFIG_V4L_USB_DRIVERS is not set
1267CONFIG_RADIO_ADAPTERS=y 1246# CONFIG_RADIO_ADAPTERS is not set
1268# CONFIG_I2C_SI4713 is not set
1269# CONFIG_RADIO_SI4713 is not set
1270# CONFIG_USB_DSBR is not set
1271# CONFIG_RADIO_SI470X is not set
1272# CONFIG_USB_MR800 is not set
1273CONFIG_RADIO_TEA5764=y
1274CONFIG_RADIO_TEA5764_XTAL=y
1275# CONFIG_RADIO_TEF6862 is not set
1276# CONFIG_DAB is not set 1247# CONFIG_DAB is not set
1277 1248
1278# 1249#
@@ -1398,8 +1369,6 @@ CONFIG_HID=y
1398# 1369#
1399# Special HID drivers 1370# Special HID drivers
1400# 1371#
1401CONFIG_HID_APPLE=m
1402# CONFIG_HID_WACOM is not set
1403CONFIG_USB_SUPPORT=y 1372CONFIG_USB_SUPPORT=y
1404CONFIG_USB_ARCH_HAS_HCD=y 1373CONFIG_USB_ARCH_HAS_HCD=y
1405CONFIG_USB_ARCH_HAS_OHCI=y 1374CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1477,7 +1446,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1477# CONFIG_USB_RIO500 is not set 1446# CONFIG_USB_RIO500 is not set
1478# CONFIG_USB_LEGOTOWER is not set 1447# CONFIG_USB_LEGOTOWER is not set
1479# CONFIG_USB_LCD is not set 1448# CONFIG_USB_LCD is not set
1480# CONFIG_USB_BERRY_CHARGE is not set
1481# CONFIG_USB_LED is not set 1449# CONFIG_USB_LED is not set
1482# CONFIG_USB_CYPRESS_CY7C63 is not set 1450# CONFIG_USB_CYPRESS_CY7C63 is not set
1483# CONFIG_USB_CYTHERM is not set 1451# CONFIG_USB_CYTHERM is not set
@@ -1489,7 +1457,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1489# CONFIG_USB_IOWARRIOR is not set 1457# CONFIG_USB_IOWARRIOR is not set
1490# CONFIG_USB_TEST is not set 1458# CONFIG_USB_TEST is not set
1491# CONFIG_USB_ISIGHTFW is not set 1459# CONFIG_USB_ISIGHTFW is not set
1492# CONFIG_USB_VST is not set
1493CONFIG_USB_GADGET=y 1460CONFIG_USB_GADGET=y
1494# CONFIG_USB_GADGET_DEBUG is not set 1461# CONFIG_USB_GADGET_DEBUG is not set
1495# CONFIG_USB_GADGET_DEBUG_FILES is not set 1462# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1529,6 +1496,7 @@ CONFIG_USB_ETH=y
1529# CONFIG_USB_MIDI_GADGET is not set 1496# CONFIG_USB_MIDI_GADGET is not set
1530# CONFIG_USB_G_PRINTER is not set 1497# CONFIG_USB_G_PRINTER is not set
1531# CONFIG_USB_CDC_COMPOSITE is not set 1498# CONFIG_USB_CDC_COMPOSITE is not set
1499# CONFIG_USB_G_NOKIA is not set
1532# CONFIG_USB_G_MULTI is not set 1500# CONFIG_USB_G_MULTI is not set
1533 1501
1534# 1502#
@@ -1555,8 +1523,6 @@ CONFIG_SDIO_UART=m
1555# 1523#
1556CONFIG_MMC_PXA=y 1524CONFIG_MMC_PXA=y
1557# CONFIG_MMC_SDHCI is not set 1525# CONFIG_MMC_SDHCI is not set
1558# CONFIG_MMC_AT91 is not set
1559# CONFIG_MMC_ATMELMCI is not set
1560CONFIG_MMC_SPI=y 1526CONFIG_MMC_SPI=y
1561# CONFIG_MEMSTICK is not set 1527# CONFIG_MEMSTICK is not set
1562CONFIG_NEW_LEDS=y 1528CONFIG_NEW_LEDS=y
@@ -1574,11 +1540,11 @@ CONFIG_LEDS_LP3944=y
1574# CONFIG_LEDS_REGULATOR is not set 1540# CONFIG_LEDS_REGULATOR is not set
1575# CONFIG_LEDS_BD2802 is not set 1541# CONFIG_LEDS_BD2802 is not set
1576# CONFIG_LEDS_LT3593 is not set 1542# CONFIG_LEDS_LT3593 is not set
1543CONFIG_LEDS_TRIGGERS=y
1577 1544
1578# 1545#
1579# LED Triggers 1546# LED Triggers
1580# 1547#
1581CONFIG_LEDS_TRIGGERS=y
1582CONFIG_LEDS_TRIGGER_TIMER=y 1548CONFIG_LEDS_TRIGGER_TIMER=y
1583CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1549CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1584CONFIG_LEDS_TRIGGER_BACKLIGHT=y 1550CONFIG_LEDS_TRIGGER_BACKLIGHT=y
@@ -1656,7 +1622,7 @@ CONFIG_RTC_INTF_DEV=y
1656# on-CPU RTC drivers 1622# on-CPU RTC drivers
1657# 1623#
1658# CONFIG_RTC_DRV_SA1100 is not set 1624# CONFIG_RTC_DRV_SA1100 is not set
1659# CONFIG_RTC_DRV_PXA is not set 1625CONFIG_RTC_DRV_PXA=y
1660# CONFIG_DMADEVICES is not set 1626# CONFIG_DMADEVICES is not set
1661# CONFIG_AUXDISPLAY is not set 1627# CONFIG_AUXDISPLAY is not set
1662# CONFIG_UIO is not set 1628# CONFIG_UIO is not set
@@ -1681,19 +1647,10 @@ CONFIG_EXT3_FS_XATTR=y
1681CONFIG_JBD=m 1647CONFIG_JBD=m
1682# CONFIG_JBD_DEBUG is not set 1648# CONFIG_JBD_DEBUG is not set
1683CONFIG_FS_MBCACHE=m 1649CONFIG_FS_MBCACHE=m
1684CONFIG_REISERFS_FS=m 1650# CONFIG_REISERFS_FS is not set
1685# CONFIG_REISERFS_CHECK is not set
1686# CONFIG_REISERFS_PROC_INFO is not set
1687CONFIG_REISERFS_FS_XATTR=y
1688CONFIG_REISERFS_FS_POSIX_ACL=y
1689CONFIG_REISERFS_FS_SECURITY=y
1690# CONFIG_JFS_FS is not set 1651# CONFIG_JFS_FS is not set
1691CONFIG_FS_POSIX_ACL=y 1652CONFIG_FS_POSIX_ACL=y
1692CONFIG_XFS_FS=m 1653# CONFIG_XFS_FS is not set
1693# CONFIG_XFS_QUOTA is not set
1694# CONFIG_XFS_POSIX_ACL is not set
1695# CONFIG_XFS_RT is not set
1696# CONFIG_XFS_DEBUG is not set
1697# CONFIG_OCFS2_FS is not set 1654# CONFIG_OCFS2_FS is not set
1698# CONFIG_BTRFS_FS is not set 1655# CONFIG_BTRFS_FS is not set
1699# CONFIG_NILFS2_FS is not set 1656# CONFIG_NILFS2_FS is not set
@@ -1716,9 +1673,7 @@ CONFIG_CUSE=m
1716# 1673#
1717# CD-ROM/DVD Filesystems 1674# CD-ROM/DVD Filesystems
1718# 1675#
1719CONFIG_ISO9660_FS=m 1676# CONFIG_ISO9660_FS is not set
1720CONFIG_JOLIET=y
1721CONFIG_ZISOFS=y
1722# CONFIG_UDF_FS is not set 1677# CONFIG_UDF_FS is not set
1723 1678
1724# 1679#
@@ -1750,12 +1705,14 @@ CONFIG_MISC_FILESYSTEMS=y
1750# CONFIG_BEFS_FS is not set 1705# CONFIG_BEFS_FS is not set
1751# CONFIG_BFS_FS is not set 1706# CONFIG_BFS_FS is not set
1752# CONFIG_EFS_FS is not set 1707# CONFIG_EFS_FS is not set
1753CONFIG_JFFS2_FS=m 1708CONFIG_JFFS2_FS=y
1754CONFIG_JFFS2_FS_DEBUG=0 1709CONFIG_JFFS2_FS_DEBUG=0
1755CONFIG_JFFS2_FS_WRITEBUFFER=y 1710CONFIG_JFFS2_FS_WRITEBUFFER=y
1756# CONFIG_JFFS2_FS_WBUF_VERIFY is not set 1711CONFIG_JFFS2_FS_WBUF_VERIFY=y
1757# CONFIG_JFFS2_SUMMARY is not set 1712CONFIG_JFFS2_SUMMARY=y
1758# CONFIG_JFFS2_FS_XATTR is not set 1713CONFIG_JFFS2_FS_XATTR=y
1714CONFIG_JFFS2_FS_POSIX_ACL=y
1715CONFIG_JFFS2_FS_SECURITY=y
1759CONFIG_JFFS2_COMPRESSION_OPTIONS=y 1716CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1760CONFIG_JFFS2_ZLIB=y 1717CONFIG_JFFS2_ZLIB=y
1761CONFIG_JFFS2_LZO=y 1718CONFIG_JFFS2_LZO=y
@@ -1765,6 +1722,7 @@ CONFIG_JFFS2_RUBIN=y
1765CONFIG_JFFS2_CMODE_PRIORITY=y 1722CONFIG_JFFS2_CMODE_PRIORITY=y
1766# CONFIG_JFFS2_CMODE_SIZE is not set 1723# CONFIG_JFFS2_CMODE_SIZE is not set
1767# CONFIG_JFFS2_CMODE_FAVOURLZO is not set 1724# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1725# CONFIG_LOGFS is not set
1768CONFIG_CRAMFS=m 1726CONFIG_CRAMFS=m
1769CONFIG_SQUASHFS=m 1727CONFIG_SQUASHFS=m
1770# CONFIG_SQUASHFS_EMBEDDED is not set 1728# CONFIG_SQUASHFS_EMBEDDED is not set
@@ -1802,6 +1760,7 @@ CONFIG_SUNRPC=y
1802# CONFIG_RPCSEC_GSS_SPKM3 is not set 1760# CONFIG_RPCSEC_GSS_SPKM3 is not set
1803CONFIG_SMB_FS=m 1761CONFIG_SMB_FS=m
1804# CONFIG_SMB_NLS_DEFAULT is not set 1762# CONFIG_SMB_NLS_DEFAULT is not set
1763# CONFIG_CEPH_FS is not set
1805CONFIG_CIFS=m 1764CONFIG_CIFS=m
1806CONFIG_CIFS_STATS=y 1765CONFIG_CIFS_STATS=y
1807# CONFIG_CIFS_STATS2 is not set 1766# CONFIG_CIFS_STATS2 is not set
@@ -1895,6 +1854,7 @@ CONFIG_DEBUG_SPINLOCK=y
1895CONFIG_DEBUG_MUTEXES=y 1854CONFIG_DEBUG_MUTEXES=y
1896CONFIG_DEBUG_LOCK_ALLOC=y 1855CONFIG_DEBUG_LOCK_ALLOC=y
1897CONFIG_PROVE_LOCKING=y 1856CONFIG_PROVE_LOCKING=y
1857# CONFIG_PROVE_RCU is not set
1898CONFIG_LOCKDEP=y 1858CONFIG_LOCKDEP=y
1899# CONFIG_LOCK_STAT is not set 1859# CONFIG_LOCK_STAT is not set
1900# CONFIG_DEBUG_LOCKDEP is not set 1860# CONFIG_DEBUG_LOCKDEP is not set
@@ -1918,6 +1878,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1918# CONFIG_BACKTRACE_SELF_TEST is not set 1878# CONFIG_BACKTRACE_SELF_TEST is not set
1919# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1879# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1920# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1880# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1881# CONFIG_LKDTM is not set
1921# CONFIG_FAULT_INJECTION is not set 1882# CONFIG_FAULT_INJECTION is not set
1922# CONFIG_LATENCYTOP is not set 1883# CONFIG_LATENCYTOP is not set
1923# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1884# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -2061,9 +2022,9 @@ CONFIG_CRC32=y
2061CONFIG_CRC7=y 2022CONFIG_CRC7=y
2062CONFIG_LIBCRC32C=m 2023CONFIG_LIBCRC32C=m
2063CONFIG_ZLIB_INFLATE=y 2024CONFIG_ZLIB_INFLATE=y
2064CONFIG_ZLIB_DEFLATE=m 2025CONFIG_ZLIB_DEFLATE=y
2065CONFIG_LZO_COMPRESS=m 2026CONFIG_LZO_COMPRESS=y
2066CONFIG_LZO_DECOMPRESS=m 2027CONFIG_LZO_DECOMPRESS=y
2067CONFIG_DECOMPRESS_GZIP=y 2028CONFIG_DECOMPRESS_GZIP=y
2068CONFIG_DECOMPRESS_BZIP2=y 2029CONFIG_DECOMPRESS_BZIP2=y
2069CONFIG_DECOMPRESS_LZMA=y 2030CONFIG_DECOMPRESS_LZMA=y
@@ -2075,3 +2036,4 @@ CONFIG_HAS_IOMEM=y
2075CONFIG_HAS_IOPORT=y 2036CONFIG_HAS_IOPORT=y
2076CONFIG_HAS_DMA=y 2037CONFIG_HAS_DMA=y
2077CONFIG_NLATTR=y 2038CONFIG_NLATTR=y
2039CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig
index 216ad00948af..9405e32783de 100644
--- a/arch/arm/configs/n8x0_defconfig
+++ b/arch/arm/configs/n8x0_defconfig
@@ -1058,7 +1058,6 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
1058# CONFIG_ROMFS_FS is not set 1058# CONFIG_ROMFS_FS is not set
1059# CONFIG_SYSV_FS is not set 1059# CONFIG_SYSV_FS is not set
1060# CONFIG_UFS_FS is not set 1060# CONFIG_UFS_FS is not set
1061# CONFIG_NILFS2_FS is not set
1062CONFIG_NETWORK_FILESYSTEMS=y 1061CONFIG_NETWORK_FILESYSTEMS=y
1063# CONFIG_NFS_FS is not set 1062# CONFIG_NFS_FS is not set
1064# CONFIG_NFSD is not set 1063# CONFIG_NFSD is not set
diff --git a/arch/arm/configs/omap_zoom2_defconfig b/arch/arm/configs/omap_zoom2_defconfig
index f5c6e11cf189..881faea03d79 100644
--- a/arch/arm/configs/omap_zoom2_defconfig
+++ b/arch/arm/configs/omap_zoom2_defconfig
@@ -661,7 +661,7 @@ CONFIG_DEVKMEM=y
661CONFIG_SERIAL_8250=y 661CONFIG_SERIAL_8250=y
662CONFIG_SERIAL_8250_CONSOLE=y 662CONFIG_SERIAL_8250_CONSOLE=y
663CONFIG_SERIAL_8250_NR_UARTS=32 663CONFIG_SERIAL_8250_NR_UARTS=32
664CONFIG_SERIAL_8250_RUNTIME_UARTS=4 664CONFIG_SERIAL_8250_RUNTIME_UARTS=1
665CONFIG_SERIAL_8250_EXTENDED=y 665CONFIG_SERIAL_8250_EXTENDED=y
666CONFIG_SERIAL_8250_MANY_PORTS=y 666CONFIG_SERIAL_8250_MANY_PORTS=y
667CONFIG_SERIAL_8250_SHARE_IRQ=y 667CONFIG_SERIAL_8250_SHARE_IRQ=y
diff --git a/arch/arm/configs/omap_zoom3_defconfig b/arch/arm/configs/omap_zoom3_defconfig
index ea9a5012d332..5e55b550a408 100644
--- a/arch/arm/configs/omap_zoom3_defconfig
+++ b/arch/arm/configs/omap_zoom3_defconfig
@@ -680,7 +680,7 @@ CONFIG_DEVKMEM=y
680CONFIG_SERIAL_8250=y 680CONFIG_SERIAL_8250=y
681CONFIG_SERIAL_8250_CONSOLE=y 681CONFIG_SERIAL_8250_CONSOLE=y
682CONFIG_SERIAL_8250_NR_UARTS=32 682CONFIG_SERIAL_8250_NR_UARTS=32
683CONFIG_SERIAL_8250_RUNTIME_UARTS=4 683CONFIG_SERIAL_8250_RUNTIME_UARTS=1
684CONFIG_SERIAL_8250_EXTENDED=y 684CONFIG_SERIAL_8250_EXTENDED=y
685CONFIG_SERIAL_8250_MANY_PORTS=y 685CONFIG_SERIAL_8250_MANY_PORTS=y
686CONFIG_SERIAL_8250_SHARE_IRQ=y 686CONFIG_SERIAL_8250_SHARE_IRQ=y
diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig
index 45135ffadc57..473f9e13f08b 100644
--- a/arch/arm/configs/rx51_defconfig
+++ b/arch/arm/configs/rx51_defconfig
@@ -59,8 +59,6 @@ CONFIG_FAIR_GROUP_SCHED=y
59CONFIG_USER_SCHED=y 59CONFIG_USER_SCHED=y
60# CONFIG_CGROUP_SCHED is not set 60# CONFIG_CGROUP_SCHED is not set
61# CONFIG_CGROUPS is not set 61# CONFIG_CGROUPS is not set
62CONFIG_SYSFS_DEPRECATED=y
63CONFIG_SYSFS_DEPRECATED_V2=y
64# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
65# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
66CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
@@ -480,7 +478,6 @@ CONFIG_BT_HIDP=m
480# CONFIG_BT_HCIBFUSB is not set 478# CONFIG_BT_HCIBFUSB is not set
481# CONFIG_BT_HCIVHCI is not set 479# CONFIG_BT_HCIVHCI is not set
482# CONFIG_AF_RXRPC is not set 480# CONFIG_AF_RXRPC is not set
483# CONFIG_PHONET is not set
484CONFIG_WIRELESS=y 481CONFIG_WIRELESS=y
485CONFIG_CFG80211=y 482CONFIG_CFG80211=y
486# CONFIG_CFG80211_REG_DEBUG is not set 483# CONFIG_CFG80211_REG_DEBUG is not set
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
index 00f46d9ce299..6e8f05c8a1c8 100644
--- a/arch/arm/include/asm/assembler.h
+++ b/arch/arm/include/asm/assembler.h
@@ -149,10 +149,10 @@
149 149
150#define USER(x...) \ 150#define USER(x...) \
1519999: x; \ 1519999: x; \
152 .section __ex_table,"a"; \ 152 .pushsection __ex_table,"a"; \
153 .align 3; \ 153 .align 3; \
154 .long 9999b,9001f; \ 154 .long 9999b,9001f; \
155 .previous 155 .popsection
156 156
157/* 157/*
158 * SMP data memory barrier 158 * SMP data memory barrier
@@ -193,10 +193,10 @@
193 .error "Unsupported inc macro argument" 193 .error "Unsupported inc macro argument"
194 .endif 194 .endif
195 195
196 .section __ex_table,"a" 196 .pushsection __ex_table,"a"
197 .align 3 197 .align 3
198 .long 9999b, \abort 198 .long 9999b, \abort
199 .previous 199 .popsection
200 .endm 200 .endm
201 201
202 .macro usracc, instr, reg, ptr, inc, cond, rept, abort 202 .macro usracc, instr, reg, ptr, inc, cond, rept, abort
@@ -234,10 +234,10 @@
234 .error "Unsupported inc macro argument" 234 .error "Unsupported inc macro argument"
235 .endif 235 .endif
236 236
237 .section __ex_table,"a" 237 .pushsection __ex_table,"a"
238 .align 3 238 .align 3
239 .long 9999b, \abort 239 .long 9999b, \abort
240 .previous 240 .popsection
241 .endr 241 .endr
242 .endm 242 .endm
243 243
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
index bff056489cc1..51662feb9f1d 100644
--- a/arch/arm/include/asm/elf.h
+++ b/arch/arm/include/asm/elf.h
@@ -9,6 +9,8 @@
9#include <asm/ptrace.h> 9#include <asm/ptrace.h>
10#include <asm/user.h> 10#include <asm/user.h>
11 11
12struct task_struct;
13
12typedef unsigned long elf_greg_t; 14typedef unsigned long elf_greg_t;
13typedef unsigned long elf_freg_t[3]; 15typedef unsigned long elf_freg_t[3];
14 16
diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
index bfcc15929a7f..540a044153a5 100644
--- a/arch/arm/include/asm/futex.h
+++ b/arch/arm/include/asm/futex.h
@@ -21,14 +21,14 @@
21 "2: strt %0, [%2]\n" \ 21 "2: strt %0, [%2]\n" \
22 " mov %0, #0\n" \ 22 " mov %0, #0\n" \
23 "3:\n" \ 23 "3:\n" \
24 " .section __ex_table,\"a\"\n" \ 24 " .pushsection __ex_table,\"a\"\n" \
25 " .align 3\n" \ 25 " .align 3\n" \
26 " .long 1b, 4f, 2b, 4f\n" \ 26 " .long 1b, 4f, 2b, 4f\n" \
27 " .previous\n" \ 27 " .popsection\n" \
28 " .section .fixup,\"ax\"\n" \ 28 " .pushsection .fixup,\"ax\"\n" \
29 "4: mov %0, %4\n" \ 29 "4: mov %0, %4\n" \
30 " b 3b\n" \ 30 " b 3b\n" \
31 " .previous" \ 31 " .popsection" \
32 : "=&r" (ret), "=&r" (oldval) \ 32 : "=&r" (ret), "=&r" (oldval) \
33 : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \ 33 : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \
34 : "cc", "memory") 34 : "cc", "memory")
@@ -102,14 +102,14 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
102 " it eq @ explicit IT needed for the 2b label\n" 102 " it eq @ explicit IT needed for the 2b label\n"
103 "2: streqt %2, [%3]\n" 103 "2: streqt %2, [%3]\n"
104 "3:\n" 104 "3:\n"
105 " .section __ex_table,\"a\"\n" 105 " .pushsection __ex_table,\"a\"\n"
106 " .align 3\n" 106 " .align 3\n"
107 " .long 1b, 4f, 2b, 4f\n" 107 " .long 1b, 4f, 2b, 4f\n"
108 " .previous\n" 108 " .popsection\n"
109 " .section .fixup,\"ax\"\n" 109 " .pushsection .fixup,\"ax\"\n"
110 "4: mov %0, %4\n" 110 "4: mov %0, %4\n"
111 " b 3b\n" 111 " b 3b\n"
112 " .previous" 112 " .popsection"
113 : "=&r" (val) 113 : "=&r" (val)
114 : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT) 114 : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT)
115 : "cc", "memory"); 115 : "cc", "memory");
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
index 1d6bd40a4322..33e4a48fe103 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -229,16 +229,16 @@ do { \
229 __asm__ __volatile__( \ 229 __asm__ __volatile__( \
230 "1: ldrbt %1,[%2]\n" \ 230 "1: ldrbt %1,[%2]\n" \
231 "2:\n" \ 231 "2:\n" \
232 " .section .fixup,\"ax\"\n" \ 232 " .pushsection .fixup,\"ax\"\n" \
233 " .align 2\n" \ 233 " .align 2\n" \
234 "3: mov %0, %3\n" \ 234 "3: mov %0, %3\n" \
235 " mov %1, #0\n" \ 235 " mov %1, #0\n" \
236 " b 2b\n" \ 236 " b 2b\n" \
237 " .previous\n" \ 237 " .popsection\n" \
238 " .section __ex_table,\"a\"\n" \ 238 " .pushsection __ex_table,\"a\"\n" \
239 " .align 3\n" \ 239 " .align 3\n" \
240 " .long 1b, 3b\n" \ 240 " .long 1b, 3b\n" \
241 " .previous" \ 241 " .popsection" \
242 : "+r" (err), "=&r" (x) \ 242 : "+r" (err), "=&r" (x) \
243 : "r" (addr), "i" (-EFAULT) \ 243 : "r" (addr), "i" (-EFAULT) \
244 : "cc") 244 : "cc")
@@ -265,16 +265,16 @@ do { \
265 __asm__ __volatile__( \ 265 __asm__ __volatile__( \
266 "1: ldrt %1,[%2]\n" \ 266 "1: ldrt %1,[%2]\n" \
267 "2:\n" \ 267 "2:\n" \
268 " .section .fixup,\"ax\"\n" \ 268 " .pushsection .fixup,\"ax\"\n" \
269 " .align 2\n" \ 269 " .align 2\n" \
270 "3: mov %0, %3\n" \ 270 "3: mov %0, %3\n" \
271 " mov %1, #0\n" \ 271 " mov %1, #0\n" \
272 " b 2b\n" \ 272 " b 2b\n" \
273 " .previous\n" \ 273 " .popsection\n" \
274 " .section __ex_table,\"a\"\n" \ 274 " .pushsection __ex_table,\"a\"\n" \
275 " .align 3\n" \ 275 " .align 3\n" \
276 " .long 1b, 3b\n" \ 276 " .long 1b, 3b\n" \
277 " .previous" \ 277 " .popsection" \
278 : "+r" (err), "=&r" (x) \ 278 : "+r" (err), "=&r" (x) \
279 : "r" (addr), "i" (-EFAULT) \ 279 : "r" (addr), "i" (-EFAULT) \
280 : "cc") 280 : "cc")
@@ -310,15 +310,15 @@ do { \
310 __asm__ __volatile__( \ 310 __asm__ __volatile__( \
311 "1: strbt %1,[%2]\n" \ 311 "1: strbt %1,[%2]\n" \
312 "2:\n" \ 312 "2:\n" \
313 " .section .fixup,\"ax\"\n" \ 313 " .pushsection .fixup,\"ax\"\n" \
314 " .align 2\n" \ 314 " .align 2\n" \
315 "3: mov %0, %3\n" \ 315 "3: mov %0, %3\n" \
316 " b 2b\n" \ 316 " b 2b\n" \
317 " .previous\n" \ 317 " .popsection\n" \
318 " .section __ex_table,\"a\"\n" \ 318 " .pushsection __ex_table,\"a\"\n" \
319 " .align 3\n" \ 319 " .align 3\n" \
320 " .long 1b, 3b\n" \ 320 " .long 1b, 3b\n" \
321 " .previous" \ 321 " .popsection" \
322 : "+r" (err) \ 322 : "+r" (err) \
323 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ 323 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \
324 : "cc") 324 : "cc")
@@ -343,15 +343,15 @@ do { \
343 __asm__ __volatile__( \ 343 __asm__ __volatile__( \
344 "1: strt %1,[%2]\n" \ 344 "1: strt %1,[%2]\n" \
345 "2:\n" \ 345 "2:\n" \
346 " .section .fixup,\"ax\"\n" \ 346 " .pushsection .fixup,\"ax\"\n" \
347 " .align 2\n" \ 347 " .align 2\n" \
348 "3: mov %0, %3\n" \ 348 "3: mov %0, %3\n" \
349 " b 2b\n" \ 349 " b 2b\n" \
350 " .previous\n" \ 350 " .popsection\n" \
351 " .section __ex_table,\"a\"\n" \ 351 " .pushsection __ex_table,\"a\"\n" \
352 " .align 3\n" \ 352 " .align 3\n" \
353 " .long 1b, 3b\n" \ 353 " .long 1b, 3b\n" \
354 " .previous" \ 354 " .popsection" \
355 : "+r" (err) \ 355 : "+r" (err) \
356 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ 356 : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \
357 : "cc") 357 : "cc")
@@ -371,16 +371,16 @@ do { \
371 THUMB( "1: strt " __reg_oper1 ", [%1]\n" ) \ 371 THUMB( "1: strt " __reg_oper1 ", [%1]\n" ) \
372 THUMB( "2: strt " __reg_oper0 ", [%1, #4]\n" ) \ 372 THUMB( "2: strt " __reg_oper0 ", [%1, #4]\n" ) \
373 "3:\n" \ 373 "3:\n" \
374 " .section .fixup,\"ax\"\n" \ 374 " .pushsection .fixup,\"ax\"\n" \
375 " .align 2\n" \ 375 " .align 2\n" \
376 "4: mov %0, %3\n" \ 376 "4: mov %0, %3\n" \
377 " b 3b\n" \ 377 " b 3b\n" \
378 " .previous\n" \ 378 " .popsection\n" \
379 " .section __ex_table,\"a\"\n" \ 379 " .pushsection __ex_table,\"a\"\n" \
380 " .align 3\n" \ 380 " .align 3\n" \
381 " .long 1b, 4b\n" \ 381 " .long 1b, 4b\n" \
382 " .long 2b, 4b\n" \ 382 " .long 2b, 4b\n" \
383 " .previous" \ 383 " .popsection" \
384 : "+r" (err), "+r" (__pu_addr) \ 384 : "+r" (err), "+r" (__pu_addr) \
385 : "r" (x), "i" (-EFAULT) \ 385 : "r" (x), "i" (-EFAULT) \
386 : "cc") 386 : "cc")
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 6c5cf369183b..7ee48e7f8f31 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -523,16 +523,16 @@ ENDPROC(__und_usr)
523/* 523/*
524 * The out of line fixup for the ldrt above. 524 * The out of line fixup for the ldrt above.
525 */ 525 */
526 .section .fixup, "ax" 526 .pushsection .fixup, "ax"
5274: mov pc, r9 5274: mov pc, r9
528 .previous 528 .popsection
529 .section __ex_table,"a" 529 .pushsection __ex_table,"a"
530 .long 1b, 4b 530 .long 1b, 4b
531#if __LINUX_ARM_ARCH__ >= 7 531#if __LINUX_ARM_ARCH__ >= 7
532 .long 2b, 4b 532 .long 2b, 4b
533 .long 3b, 4b 533 .long 3b, 4b
534#endif 534#endif
535 .previous 535 .popsection
536 536
537/* 537/*
538 * Check whether the instruction is a co-processor instruction. 538 * Check whether the instruction is a co-processor instruction.
@@ -676,10 +676,10 @@ do_fpe:
676 * lr = unrecognised FP instruction return address 676 * lr = unrecognised FP instruction return address
677 */ 677 */
678 678
679 .data 679 .pushsection .data
680ENTRY(fp_enter) 680ENTRY(fp_enter)
681 .word no_fp 681 .word no_fp
682 .previous 682 .popsection
683 683
684ENTRY(no_fp) 684ENTRY(no_fp)
685 mov pc, lr 685 mov pc, lr
diff --git a/arch/arm/kernel/ftrace.c b/arch/arm/kernel/ftrace.c
index c63842766229..0298286ad4ad 100644
--- a/arch/arm/kernel/ftrace.c
+++ b/arch/arm/kernel/ftrace.c
@@ -62,15 +62,15 @@ int ftrace_modify_code(unsigned long pc, unsigned char *old_code,
62 " movne %0, #2 \n" 62 " movne %0, #2 \n"
63 "3:\n" 63 "3:\n"
64 64
65 ".section .fixup, \"ax\"\n" 65 ".pushsection .fixup, \"ax\"\n"
66 "4: mov %0, #1 \n" 66 "4: mov %0, #1 \n"
67 " b 3b \n" 67 " b 3b \n"
68 ".previous\n" 68 ".popsection\n"
69 69
70 ".section __ex_table, \"a\"\n" 70 ".pushsection __ex_table, \"a\"\n"
71 " .long 1b, 4b \n" 71 " .long 1b, 4b \n"
72 " .long 2b, 4b \n" 72 " .long 2b, 4b \n"
73 ".previous\n" 73 ".popsection\n"
74 74
75 : "=r"(err), "=r"(replaced) 75 : "=r"(err), "=r"(replaced)
76 : "r"(pc), "r"(new), "r"(old), "0"(err), "1"(replaced) 76 : "r"(pc), "r"(new), "r"(old), "0"(err), "1"(replaced)
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 0e12e0acbf26..acf5e6fdb6dc 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -355,7 +355,7 @@ EXPORT_SYMBOL(dump_fpu);
355 * the thread function, and r3 points to the exit function. 355 * the thread function, and r3 points to the exit function.
356 */ 356 */
357extern void kernel_thread_helper(void); 357extern void kernel_thread_helper(void);
358asm( ".section .text\n" 358asm( ".pushsection .text\n"
359" .align\n" 359" .align\n"
360" .type kernel_thread_helper, #function\n" 360" .type kernel_thread_helper, #function\n"
361"kernel_thread_helper:\n" 361"kernel_thread_helper:\n"
@@ -363,11 +363,11 @@ asm( ".section .text\n"
363" mov lr, r3\n" 363" mov lr, r3\n"
364" mov pc, r2\n" 364" mov pc, r2\n"
365" .size kernel_thread_helper, . - kernel_thread_helper\n" 365" .size kernel_thread_helper, . - kernel_thread_helper\n"
366" .previous"); 366" .popsection");
367 367
368#ifdef CONFIG_ARM_UNWIND 368#ifdef CONFIG_ARM_UNWIND
369extern void kernel_thread_exit(long code); 369extern void kernel_thread_exit(long code);
370asm( ".section .text\n" 370asm( ".pushsection .text\n"
371" .align\n" 371" .align\n"
372" .type kernel_thread_exit, #function\n" 372" .type kernel_thread_exit, #function\n"
373"kernel_thread_exit:\n" 373"kernel_thread_exit:\n"
@@ -377,7 +377,7 @@ asm( ".section .text\n"
377" nop\n" 377" nop\n"
378" .fnend\n" 378" .fnend\n"
379" .size kernel_thread_exit, . - kernel_thread_exit\n" 379" .size kernel_thread_exit, . - kernel_thread_exit\n"
380" .previous"); 380" .popsection");
381#else 381#else
382#define kernel_thread_exit do_exit 382#define kernel_thread_exit do_exit
383#endif 383#endif
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 577543f3857f..a01194e583ff 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -86,6 +86,12 @@ int __cpuinit __cpu_up(unsigned int cpu)
86 return PTR_ERR(idle); 86 return PTR_ERR(idle);
87 } 87 }
88 ci->idle = idle; 88 ci->idle = idle;
89 } else {
90 /*
91 * Since this idle thread is being re-used, call
92 * init_idle() to reinitialize the thread structure.
93 */
94 init_idle(idle, cpu);
89 } 95 }
90 96
91 /* 97 /*
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S
index aaf7220d9e30..a673297b0cf1 100644
--- a/arch/arm/lib/backtrace.S
+++ b/arch/arm/lib/backtrace.S
@@ -110,13 +110,13 @@ no_frame: ldmfd sp!, {r4 - r8, pc}
110ENDPROC(__backtrace) 110ENDPROC(__backtrace)
111ENDPROC(c_backtrace) 111ENDPROC(c_backtrace)
112 112
113 .section __ex_table,"a" 113 .pushsection __ex_table,"a"
114 .align 3 114 .align 3
115 .long 1001b, 1006b 115 .long 1001b, 1006b
116 .long 1002b, 1006b 116 .long 1002b, 1006b
117 .long 1003b, 1006b 117 .long 1003b, 1006b
118 .long 1004b, 1006b 118 .long 1004b, 1006b
119 .previous 119 .popsection
120 120
121#define instr r4 121#define instr r4
122#define reg r5 122#define reg r5
diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S
index 1279abd8b886..5e3f99620c04 100644
--- a/arch/arm/lib/clear_user.S
+++ b/arch/arm/lib/clear_user.S
@@ -46,8 +46,8 @@ USER( strnebt r2, [r0])
46 ldmfd sp!, {r1, pc} 46 ldmfd sp!, {r1, pc}
47ENDPROC(__clear_user) 47ENDPROC(__clear_user)
48 48
49 .section .fixup,"ax" 49 .pushsection .fixup,"ax"
50 .align 0 50 .align 0
519001: ldmfd sp!, {r0, pc} 519001: ldmfd sp!, {r0, pc}
52 .previous 52 .popsection
53 53
diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S
index e4fe124acedc..66a477a3e3cc 100644
--- a/arch/arm/lib/copy_from_user.S
+++ b/arch/arm/lib/copy_from_user.S
@@ -90,7 +90,7 @@ ENTRY(__copy_from_user)
90 90
91ENDPROC(__copy_from_user) 91ENDPROC(__copy_from_user)
92 92
93 .section .fixup,"ax" 93 .pushsection .fixup,"ax"
94 .align 0 94 .align 0
95 copy_abort_preamble 95 copy_abort_preamble
96 ldmfd sp!, {r1, r2} 96 ldmfd sp!, {r1, r2}
@@ -100,5 +100,5 @@ ENDPROC(__copy_from_user)
100 bl __memzero 100 bl __memzero
101 ldr r0, [sp], #4 101 ldr r0, [sp], #4
102 copy_abort_end 102 copy_abort_end
103 .previous 103 .popsection
104 104
diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S
index 1a71e1584442..027b69bdbad1 100644
--- a/arch/arm/lib/copy_to_user.S
+++ b/arch/arm/lib/copy_to_user.S
@@ -94,12 +94,12 @@ WEAK(__copy_to_user)
94 94
95ENDPROC(__copy_to_user) 95ENDPROC(__copy_to_user)
96 96
97 .section .fixup,"ax" 97 .pushsection .fixup,"ax"
98 .align 0 98 .align 0
99 copy_abort_preamble 99 copy_abort_preamble
100 ldmfd sp!, {r1, r2, r3} 100 ldmfd sp!, {r1, r2, r3}
101 sub r0, r0, r1 101 sub r0, r0, r1
102 rsb r0, r0, r2 102 rsb r0, r0, r2
103 copy_abort_end 103 copy_abort_end
104 .previous 104 .popsection
105 105
diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
index fd0e9dcd9fdc..59ff6fdc1e63 100644
--- a/arch/arm/lib/csumpartialcopyuser.S
+++ b/arch/arm/lib/csumpartialcopyuser.S
@@ -68,7 +68,7 @@
68 * so properly, we would have to add in whatever registers were loaded before 68 * so properly, we would have to add in whatever registers were loaded before
69 * the fault, which, with the current asm above is not predictable. 69 * the fault, which, with the current asm above is not predictable.
70 */ 70 */
71 .section .fixup,"ax" 71 .pushsection .fixup,"ax"
72 .align 4 72 .align 4
739001: mov r4, #-EFAULT 739001: mov r4, #-EFAULT
74 ldr r5, [fp, #4] @ *err_ptr 74 ldr r5, [fp, #4] @ *err_ptr
@@ -80,4 +80,4 @@
80 strneb r0, [r1], #1 80 strneb r0, [r1], #1
81 bne 9002b 81 bne 9002b
82 load_regs 82 load_regs
83 .previous 83 .popsection
diff --git a/arch/arm/lib/getuser.S b/arch/arm/lib/getuser.S
index a1814d927122..b1631a7dbe75 100644
--- a/arch/arm/lib/getuser.S
+++ b/arch/arm/lib/getuser.S
@@ -64,9 +64,9 @@ __get_user_bad:
64 mov pc, lr 64 mov pc, lr
65ENDPROC(__get_user_bad) 65ENDPROC(__get_user_bad)
66 66
67.section __ex_table, "a" 67.pushsection __ex_table, "a"
68 .long 1b, __get_user_bad 68 .long 1b, __get_user_bad
69 .long 2b, __get_user_bad 69 .long 2b, __get_user_bad
70 .long 3b, __get_user_bad 70 .long 3b, __get_user_bad
71 .long 4b, __get_user_bad 71 .long 4b, __get_user_bad
72.previous 72.popsection
diff --git a/arch/arm/lib/putuser.S b/arch/arm/lib/putuser.S
index 02fedbf07c0d..5a01a23c6c06 100644
--- a/arch/arm/lib/putuser.S
+++ b/arch/arm/lib/putuser.S
@@ -81,11 +81,11 @@ __put_user_bad:
81 mov pc, lr 81 mov pc, lr
82ENDPROC(__put_user_bad) 82ENDPROC(__put_user_bad)
83 83
84.section __ex_table, "a" 84.pushsection __ex_table, "a"
85 .long 1b, __put_user_bad 85 .long 1b, __put_user_bad
86 .long 2b, __put_user_bad 86 .long 2b, __put_user_bad
87 .long 3b, __put_user_bad 87 .long 3b, __put_user_bad
88 .long 4b, __put_user_bad 88 .long 4b, __put_user_bad
89 .long 5b, __put_user_bad 89 .long 5b, __put_user_bad
90 .long 6b, __put_user_bad 90 .long 6b, __put_user_bad
91.previous 91.popsection
diff --git a/arch/arm/lib/strncpy_from_user.S b/arch/arm/lib/strncpy_from_user.S
index 1c9814f346c6..f202d7bd1647 100644
--- a/arch/arm/lib/strncpy_from_user.S
+++ b/arch/arm/lib/strncpy_from_user.S
@@ -33,11 +33,11 @@ ENTRY(__strncpy_from_user)
33 mov pc, lr 33 mov pc, lr
34ENDPROC(__strncpy_from_user) 34ENDPROC(__strncpy_from_user)
35 35
36 .section .fixup,"ax" 36 .pushsection .fixup,"ax"
37 .align 0 37 .align 0
389001: mov r3, #0 389001: mov r3, #0
39 strb r3, [r0, #0] @ null terminate 39 strb r3, [r0, #0] @ null terminate
40 mov r0, #-EFAULT 40 mov r0, #-EFAULT
41 mov pc, lr 41 mov pc, lr
42 .previous 42 .popsection
43 43
diff --git a/arch/arm/lib/strnlen_user.S b/arch/arm/lib/strnlen_user.S
index 7855b2906659..0ecbb459c4f1 100644
--- a/arch/arm/lib/strnlen_user.S
+++ b/arch/arm/lib/strnlen_user.S
@@ -33,8 +33,8 @@ ENTRY(__strnlen_user)
33 mov pc, lr 33 mov pc, lr
34ENDPROC(__strnlen_user) 34ENDPROC(__strnlen_user)
35 35
36 .section .fixup,"ax" 36 .pushsection .fixup,"ax"
37 .align 0 37 .align 0
389001: mov r0, #0 389001: mov r0, #0
39 mov pc, lr 39 mov pc, lr
40 .previous 40 .popsection
diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S
index ffdd27498cee..fee9f6f88adb 100644
--- a/arch/arm/lib/uaccess.S
+++ b/arch/arm/lib/uaccess.S
@@ -279,10 +279,10 @@ USER( strgtbt r3, [r0], #1) @ May fault
279 b .Lc2u_finished 279 b .Lc2u_finished
280ENDPROC(__copy_to_user) 280ENDPROC(__copy_to_user)
281 281
282 .section .fixup,"ax" 282 .pushsection .fixup,"ax"
283 .align 0 283 .align 0
2849001: ldmfd sp!, {r0, r4 - r7, pc} 2849001: ldmfd sp!, {r0, r4 - r7, pc}
285 .previous 285 .popsection
286 286
287/* Prototype: unsigned long __copy_from_user(void *to,const void *from,unsigned long n); 287/* Prototype: unsigned long __copy_from_user(void *to,const void *from,unsigned long n);
288 * Purpose : copy a block from user memory to kernel memory 288 * Purpose : copy a block from user memory to kernel memory
@@ -545,7 +545,7 @@ USER( ldrgtbt r3, [r1], #1) @ May fault
545 b .Lcfu_finished 545 b .Lcfu_finished
546ENDPROC(__copy_from_user) 546ENDPROC(__copy_from_user)
547 547
548 .section .fixup,"ax" 548 .pushsection .fixup,"ax"
549 .align 0 549 .align 0
550 /* 550 /*
551 * We took an exception. r0 contains a pointer to 551 * We took an exception. r0 contains a pointer to
@@ -559,5 +559,5 @@ ENDPROC(__copy_from_user)
559 blne __memzero 559 blne __memzero
560 mov r0, r4 560 mov r0, r4
561 ldmfd sp!, {r4 - r7, pc} 561 ldmfd sp!, {r4 - r7, pc}
562 .previous 562 .popsection
563 563
diff --git a/arch/arm/mach-mx5/clock-mx51.c b/arch/arm/mach-mx5/clock-mx51.c
index 8f85f73b83a8..1ee6ce4087b8 100644
--- a/arch/arm/mach-mx5/clock-mx51.c
+++ b/arch/arm/mach-mx5/clock-mx51.c
@@ -16,6 +16,7 @@
16#include <linux/io.h> 16#include <linux/io.h>
17 17
18#include <asm/clkdev.h> 18#include <asm/clkdev.h>
19#include <asm/div64.h>
19 20
20#include <mach/hardware.h> 21#include <mach/hardware.h>
21#include <mach/common.h> 22#include <mach/common.h>
diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c
index 9ad118563f7d..20cfbcc6c60c 100644
--- a/arch/arm/mach-omap1/timer32k.c
+++ b/arch/arm/mach-omap1/timer32k.c
@@ -68,12 +68,6 @@ struct sys_timer omap_timer;
68 * --------------------------------------------------------------------------- 68 * ---------------------------------------------------------------------------
69 */ 69 */
70 70
71#if defined(CONFIG_ARCH_OMAP16XX)
72#define TIMER_32K_SYNCHRONIZED 0xfffbc410
73#else
74#error OMAP 32KHz timer does not currently work on 15XX!
75#endif
76
77/* 16xx specific defines */ 71/* 16xx specific defines */
78#define OMAP1_32K_TIMER_BASE 0xfffb9000 72#define OMAP1_32K_TIMER_BASE 0xfffb9000
79#define OMAP1_32K_TIMER_CR 0x08 73#define OMAP1_32K_TIMER_CR 0x08
@@ -150,15 +144,6 @@ static struct clock_event_device clockevent_32k_timer = {
150 .set_mode = omap_32k_timer_set_mode, 144 .set_mode = omap_32k_timer_set_mode,
151}; 145};
152 146
153/*
154 * The 32KHz synchronized timer is an additional timer on 16xx.
155 * It is always running.
156 */
157static inline unsigned long omap_32k_sync_timer_read(void)
158{
159 return omap_readl(TIMER_32K_SYNCHRONIZED);
160}
161
162static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id) 147static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id)
163{ 148{
164 struct clock_event_device *evt = &clockevent_32k_timer; 149 struct clock_event_device *evt = &clockevent_32k_timer;
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index a8a3d1e23e26..2455dcc744a0 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -59,8 +59,10 @@ config MACH_OMAP3_BEAGLE
59 select OMAP_PACKAGE_CBB 59 select OMAP_PACKAGE_CBB
60 60
61config MACH_DEVKIT8000 61config MACH_DEVKIT8000
62 bool "DEVKIT8000 board" 62 bool "DEVKIT8000 board"
63 depends on ARCH_OMAP3 63 depends on ARCH_OMAP3
64 select OMAP_PACKAGE_CUS
65 select OMAP_MUX
64 66
65config MACH_OMAP_LDP 67config MACH_OMAP_LDP
66 bool "OMAP3 LDP board" 68 bool "OMAP3 LDP board"
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c
index a0a2a113465c..504d2bd222fe 100644
--- a/arch/arm/mach-omap2/board-3630sdp.c
+++ b/arch/arm/mach-omap2/board-3630sdp.c
@@ -96,6 +96,7 @@ static struct omap_board_mux board_mux[] __initdata = {
96static void __init omap_sdp_init(void) 96static void __init omap_sdp_init(void)
97{ 97{
98 omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); 98 omap3_mux_init(board_mux, OMAP_PACKAGE_CBP);
99 omap_serial_init();
99 zoom_peripherals_init(); 100 zoom_peripherals_init();
100 board_smc91x_init(); 101 board_smc91x_init();
101 enable_board_wakeup_source(); 102 enable_board_wakeup_source();
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 6ae880585d54..c1c4389fbd8f 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -294,9 +294,9 @@ static struct omap_board_mux board_mux[] __initdata = {
294 294
295static void __init am3517_evm_init(void) 295static void __init am3517_evm_init(void)
296{ 296{
297 am3517_evm_i2c_init();
298
299 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); 297 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
298
299 am3517_evm_i2c_init();
300 platform_add_devices(am3517_evm_devices, 300 platform_add_devices(am3517_evm_devices,
301 ARRAY_SIZE(am3517_evm_devices)); 301 ARRAY_SIZE(am3517_evm_devices));
302 302
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 5bfc13b3176c..47e3af2166d4 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -50,7 +50,6 @@
50#include <linux/input/matrix_keypad.h> 50#include <linux/input/matrix_keypad.h>
51#include <linux/spi/spi.h> 51#include <linux/spi/spi.h>
52#include <linux/spi/ads7846.h> 52#include <linux/spi/ads7846.h>
53#include <linux/usb/otg.h>
54#include <linux/dm9000.h> 53#include <linux/dm9000.h>
55#include <linux/interrupt.h> 54#include <linux/interrupt.h>
56 55
@@ -269,20 +268,6 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
269 devkit8000_vmmc1_supply.dev = mmc[0].dev; 268 devkit8000_vmmc1_supply.dev = mmc[0].dev;
270 devkit8000_vsim_supply.dev = mmc[0].dev; 269 devkit8000_vsim_supply.dev = mmc[0].dev;
271 270
272 /* REVISIT: need ehci-omap hooks for external VBUS
273 * power switch and overcurrent detect
274 */
275
276 gpio_request(gpio + 1, "EHCI_nOC");
277 gpio_direction_input(gpio + 1);
278
279 /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
280 gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");
281 gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1);
282
283 /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
284 gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
285
286 return 0; 271 return 0;
287} 272}
288 273
@@ -303,7 +288,7 @@ static struct regulator_consumer_supply devkit8000_vpll2_supplies[] = {
303 .dev = &devkit8000_lcd_device.dev, 288 .dev = &devkit8000_lcd_device.dev,
304 }, 289 },
305 { 290 {
306 .supply = "vdss_dsi", 291 .supply = "vdds_dsi",
307 .dev = &devkit8000_dss_device.dev, 292 .dev = &devkit8000_dss_device.dev,
308 } 293 }
309}; 294};
@@ -639,17 +624,21 @@ static struct omap_musb_board_data musb_board_data = {
639static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 624static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
640 625
641 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 626 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
642 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 627 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
643 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 628 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
644 629
645 .phy_reset = true, 630 .phy_reset = true,
646 .reset_gpio_port[0] = -EINVAL, 631 .reset_gpio_port[0] = -EINVAL,
647 .reset_gpio_port[1] = 147, 632 .reset_gpio_port[1] = -EINVAL,
648 .reset_gpio_port[2] = -EINVAL 633 .reset_gpio_port[2] = -EINVAL
649}; 634};
650 635
651static void __init devkit8000_init(void) 636static void __init devkit8000_init(void)
652{ 637{
638 omap_serial_init();
639
640 omap_dm9000_init();
641
653 devkit8000_i2c_init(); 642 devkit8000_i2c_init();
654 platform_add_devices(devkit8000_devices, 643 platform_add_devices(devkit8000_devices,
655 ARRAY_SIZE(devkit8000_devices)); 644 ARRAY_SIZE(devkit8000_devices));
@@ -659,25 +648,15 @@ static void __init devkit8000_init(void)
659 spi_register_board_info(devkit8000_spi_board_info, 648 spi_register_board_info(devkit8000_spi_board_info,
660 ARRAY_SIZE(devkit8000_spi_board_info)); 649 ARRAY_SIZE(devkit8000_spi_board_info));
661 650
662 omap_serial_init();
663
664 omap_dm9000_init();
665
666 devkit8000_ads7846_init(); 651 devkit8000_ads7846_init();
667 652
668 omap_mux_init_gpio(170, OMAP_PIN_INPUT);
669
670 gpio_request(170, "DVI_nPD");
671 /* REVISIT leave DVI powered down until it's needed ... */
672 gpio_direction_output(170, true);
673
674 usb_musb_init(&musb_board_data); 653 usb_musb_init(&musb_board_data);
675 usb_ehci_init(&ehci_pdata); 654 usb_ehci_init(&ehci_pdata);
676 devkit8000_flash_init(); 655 devkit8000_flash_init();
677 656
678 /* Ensure SDRC pins are mux'd for self-refresh */ 657 /* Ensure SDRC pins are mux'd for self-refresh */
679 omap_mux_init_signal("sdr_cke0", OMAP_PIN_OUTPUT); 658 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
680 omap_mux_init_signal("sdr_cke1", OMAP_PIN_OUTPUT); 659 omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
681} 660}
682 661
683static void __init devkit8000_map_io(void) 662static void __init devkit8000_map_io(void)
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 3c7789d45051..d55c57b761a9 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -458,13 +458,13 @@ static struct omap_musb_board_data musb_board_data = {
458}; 458};
459 459
460static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 460static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
461 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 461 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
462 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 462 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
463 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 463 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
464 464
465 .phy_reset = true, 465 .phy_reset = true,
466 .reset_gpio_port[0] = -EINVAL, 466 .reset_gpio_port[0] = IGEP2_GPIO_USBH_NRESET,
467 .reset_gpio_port[1] = IGEP2_GPIO_USBH_NRESET, 467 .reset_gpio_port[1] = -EINVAL,
468 .reset_gpio_port[2] = -EINVAL, 468 .reset_gpio_port[2] = -EINVAL,
469}; 469};
470 470
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index da9bcb898991..3ccc34ebdcc7 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -216,7 +216,7 @@ static void __init n8x0_onenand_init(void) {}
216 */ 216 */
217#define N8X0_SLOT_SWITCH_GPIO 96 217#define N8X0_SLOT_SWITCH_GPIO 96
218#define N810_EMMC_VSD_GPIO 23 218#define N810_EMMC_VSD_GPIO 23
219#define NN810_EMMC_VIO_GPIO 9 219#define N810_EMMC_VIO_GPIO 9
220 220
221static int n8x0_mmc_switch_slot(struct device *dev, int slot) 221static int n8x0_mmc_switch_slot(struct device *dev, int slot)
222{ 222{
@@ -304,10 +304,10 @@ static void n810_set_power_emmc(struct device *dev,
304 if (power_on) { 304 if (power_on) {
305 gpio_set_value(N810_EMMC_VSD_GPIO, 1); 305 gpio_set_value(N810_EMMC_VSD_GPIO, 1);
306 msleep(1); 306 msleep(1);
307 gpio_set_value(NN810_EMMC_VIO_GPIO, 1); 307 gpio_set_value(N810_EMMC_VIO_GPIO, 1);
308 msleep(1); 308 msleep(1);
309 } else { 309 } else {
310 gpio_set_value(NN810_EMMC_VIO_GPIO, 0); 310 gpio_set_value(N810_EMMC_VIO_GPIO, 0);
311 msleep(50); 311 msleep(50);
312 gpio_set_value(N810_EMMC_VSD_GPIO, 0); 312 gpio_set_value(N810_EMMC_VSD_GPIO, 0);
313 msleep(50); 313 msleep(50);
@@ -468,7 +468,7 @@ static void n8x0_mmc_cleanup(struct device *dev)
468 468
469 if (machine_is_nokia_n810()) { 469 if (machine_is_nokia_n810()) {
470 gpio_free(N810_EMMC_VSD_GPIO); 470 gpio_free(N810_EMMC_VSD_GPIO);
471 gpio_free(NN810_EMMC_VIO_GPIO); 471 gpio_free(N810_EMMC_VIO_GPIO);
472 } 472 }
473} 473}
474 474
@@ -529,7 +529,7 @@ void __init n8x0_mmc_init(void)
529 529
530 err = gpio_request(N8X0_SLOT_SWITCH_GPIO, "MMC slot switch"); 530 err = gpio_request(N8X0_SLOT_SWITCH_GPIO, "MMC slot switch");
531 if (err) 531 if (err)
532 return err; 532 return;
533 533
534 gpio_direction_output(N8X0_SLOT_SWITCH_GPIO, 0); 534 gpio_direction_output(N8X0_SLOT_SWITCH_GPIO, 0);
535 535
@@ -537,17 +537,17 @@ void __init n8x0_mmc_init(void)
537 err = gpio_request(N810_EMMC_VSD_GPIO, "MMC slot 2 Vddf"); 537 err = gpio_request(N810_EMMC_VSD_GPIO, "MMC slot 2 Vddf");
538 if (err) { 538 if (err) {
539 gpio_free(N8X0_SLOT_SWITCH_GPIO); 539 gpio_free(N8X0_SLOT_SWITCH_GPIO);
540 return err; 540 return;
541 } 541 }
542 gpio_direction_output(N810_EMMC_VSD_GPIO, 0); 542 gpio_direction_output(N810_EMMC_VSD_GPIO, 0);
543 543
544 err = gpio_request(NN810_EMMC_VIO_GPIO, "MMC slot 2 Vdd"); 544 err = gpio_request(N810_EMMC_VIO_GPIO, "MMC slot 2 Vdd");
545 if (err) { 545 if (err) {
546 gpio_free(N8X0_SLOT_SWITCH_GPIO); 546 gpio_free(N8X0_SLOT_SWITCH_GPIO);
547 gpio_free(N810_EMMC_VSD_GPIO); 547 gpio_free(N810_EMMC_VSD_GPIO);
548 return err; 548 return;
549 } 549 }
550 gpio_direction_output(NN810_EMMC_VIO_GPIO, 0); 550 gpio_direction_output(N810_EMMC_VIO_GPIO, 0);
551 } 551 }
552 552
553 mmc_data[0] = &mmc1_data; 553 mmc_data[0] = &mmc1_data;
diff --git a/arch/arm/mach-omap2/board-sdp-flash.c b/arch/arm/mach-omap2/board-sdp-flash.c
index b1b88deec7f2..2d026328e385 100644
--- a/arch/arm/mach-omap2/board-sdp-flash.c
+++ b/arch/arm/mach-omap2/board-sdp-flash.c
@@ -253,20 +253,20 @@ void __init sdp_flash_init(struct flash_partitions sdp_partition_info[])
253 } 253 }
254 254
255 if (norcs > GPMC_CS_NUM) 255 if (norcs > GPMC_CS_NUM)
256 printk(KERN_INFO "OneNAND: Unable to find configuration " 256 printk(KERN_INFO "NOR: Unable to find configuration "
257 " in GPMC\n "); 257 "in GPMC\n");
258 else 258 else
259 board_nor_init(sdp_partition_info[0], norcs); 259 board_nor_init(sdp_partition_info[0], norcs);
260 260
261 if (onenandcs > GPMC_CS_NUM) 261 if (onenandcs > GPMC_CS_NUM)
262 printk(KERN_INFO "OneNAND: Unable to find configuration " 262 printk(KERN_INFO "OneNAND: Unable to find configuration "
263 " in GPMC\n "); 263 "in GPMC\n");
264 else 264 else
265 board_onenand_init(sdp_partition_info[1], onenandcs); 265 board_onenand_init(sdp_partition_info[1], onenandcs);
266 266
267 if (nandcs > GPMC_CS_NUM) 267 if (nandcs > GPMC_CS_NUM)
268 printk(KERN_INFO "NAND: Unable to find configuration " 268 printk(KERN_INFO "NAND: Unable to find configuration "
269 " in GPMC\n "); 269 "in GPMC\n");
270 else 270 else
271 board_nand_init(sdp_partition_info[2], nandcs); 271 board_nand_init(sdp_partition_info[2], nandcs);
272} 272}
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
index bb4018b60642..e15d2e87cfc1 100644
--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
+++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
@@ -96,7 +96,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
96 96
97static struct platform_device zoom_debugboard_serial_device = { 97static struct platform_device zoom_debugboard_serial_device = {
98 .name = "serial8250", 98 .name = "serial8250",
99 .id = 3, 99 .id = PLAT8250_DEV_PLATFORM,
100 .dev = { 100 .dev = {
101 .platform_data = serial_platform_data, 101 .platform_data = serial_platform_data,
102 }, 102 },
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
index ca95d8d64136..6b3984964cc5 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -280,7 +280,6 @@ static void enable_board_wakeup_source(void)
280void __init zoom_peripherals_init(void) 280void __init zoom_peripherals_init(void)
281{ 281{
282 omap_i2c_init(); 282 omap_i2c_init();
283 omap_serial_init();
284 usb_musb_init(&musb_board_data); 283 usb_musb_init(&musb_board_data);
285 enable_board_wakeup_source(); 284 enable_board_wakeup_source();
286} 285}
diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-omap2/clock3xxx_data.c
index d5153b6bd6cb..9cba5560519b 100644
--- a/arch/arm/mach-omap2/clock3xxx_data.c
+++ b/arch/arm/mach-omap2/clock3xxx_data.c
@@ -895,7 +895,7 @@ static struct clk dpll4_m4x2_ck = {
895 .ops = &clkops_omap2_dflt_wait, 895 .ops = &clkops_omap2_dflt_wait,
896 .parent = &dpll4_m4_ck, 896 .parent = &dpll4_m4_ck,
897 .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), 897 .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN),
898 .enable_bit = OMAP3430_PWRDN_CAM_SHIFT, 898 .enable_bit = OMAP3430_PWRDN_DSS1_SHIFT,
899 .flags = INVERT_ENABLE, 899 .flags = INVERT_ENABLE,
900 .clkdm_name = "dpll4_clkdm", 900 .clkdm_name = "dpll4_clkdm",
901 .recalc = &omap3_clkoutx2_recalc, 901 .recalc = &omap3_clkoutx2_recalc,
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c
index 28b107967c86..a5c0c9c8e496 100644
--- a/arch/arm/mach-omap2/clock44xx_data.c
+++ b/arch/arm/mach-omap2/clock44xx_data.c
@@ -2671,10 +2671,10 @@ static struct omap_clk omap44xx_clks[] = {
2671 CLK("omap-mcbsp.2", "ick", &dummy_ck, CK_443X), 2671 CLK("omap-mcbsp.2", "ick", &dummy_ck, CK_443X),
2672 CLK("omap-mcbsp.3", "ick", &dummy_ck, CK_443X), 2672 CLK("omap-mcbsp.3", "ick", &dummy_ck, CK_443X),
2673 CLK("omap-mcbsp.4", "ick", &dummy_ck, CK_443X), 2673 CLK("omap-mcbsp.4", "ick", &dummy_ck, CK_443X),
2674 CLK("omap-mcspi.1", "ick", &dummy_ck, CK_443X), 2674 CLK("omap2_mcspi.1", "ick", &dummy_ck, CK_443X),
2675 CLK("omap-mcspi.2", "ick", &dummy_ck, CK_443X), 2675 CLK("omap2_mcspi.2", "ick", &dummy_ck, CK_443X),
2676 CLK("omap-mcspi.3", "ick", &dummy_ck, CK_443X), 2676 CLK("omap2_mcspi.3", "ick", &dummy_ck, CK_443X),
2677 CLK("omap-mcspi.4", "ick", &dummy_ck, CK_443X), 2677 CLK("omap2_mcspi.4", "ick", &dummy_ck, CK_443X),
2678 CLK(NULL, "uart1_ick", &dummy_ck, CK_443X), 2678 CLK(NULL, "uart1_ick", &dummy_ck, CK_443X),
2679 CLK(NULL, "uart2_ick", &dummy_ck, CK_443X), 2679 CLK(NULL, "uart2_ick", &dummy_ck, CK_443X),
2680 CLK(NULL, "uart3_ick", &dummy_ck, CK_443X), 2680 CLK(NULL, "uart3_ick", &dummy_ck, CK_443X),
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c
index b87ad66f083e..6e568ec995ee 100644
--- a/arch/arm/mach-omap2/clockdomain.c
+++ b/arch/arm/mach-omap2/clockdomain.c
@@ -240,7 +240,7 @@ static void _omap2_clkdm_set_hwsup(struct clockdomain *clkdm, int enable)
240 bits = OMAP24XX_CLKSTCTRL_ENABLE_AUTO; 240 bits = OMAP24XX_CLKSTCTRL_ENABLE_AUTO;
241 else 241 else
242 bits = OMAP24XX_CLKSTCTRL_DISABLE_AUTO; 242 bits = OMAP24XX_CLKSTCTRL_DISABLE_AUTO;
243 } else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { 243 } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
244 if (enable) 244 if (enable)
245 bits = OMAP34XX_CLKSTCTRL_ENABLE_AUTO; 245 bits = OMAP34XX_CLKSTCTRL_ENABLE_AUTO;
246 else 246 else
@@ -812,7 +812,7 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm)
812 cm_set_mod_reg_bits(OMAP24XX_FORCESTATE, 812 cm_set_mod_reg_bits(OMAP24XX_FORCESTATE,
813 clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL); 813 clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL);
814 814
815 } else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { 815 } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
816 816
817 u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_SLEEP << 817 u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_SLEEP <<
818 __ffs(clkdm->clktrctrl_mask)); 818 __ffs(clkdm->clktrctrl_mask));
@@ -856,7 +856,7 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
856 cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE, 856 cm_clear_mod_reg_bits(OMAP24XX_FORCESTATE,
857 clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL); 857 clkdm->pwrdm.ptr->prcm_offs, OMAP2_PM_PWSTCTRL);
858 858
859 } else if (cpu_is_omap34xx() | cpu_is_omap44xx()) { 859 } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
860 860
861 u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_WAKEUP << 861 u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_WAKEUP <<
862 __ffs(clkdm->clktrctrl_mask)); 862 __ffs(clkdm->clktrctrl_mask));
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 23e4d7733610..2271b9bd1f50 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -726,7 +726,7 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
726 if (!cpu_is_omap44xx()) 726 if (!cpu_is_omap44xx())
727 return; 727 return;
728 base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET; 728 base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
729 irq = OMAP44XX_IRQ_MMC4; 729 irq = OMAP44XX_IRQ_MMC5;
730 break; 730 break;
731 default: 731 default:
732 continue; 732 continue;
diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
index 64d74f05abbe..e57fb29ff855 100644
--- a/arch/arm/mach-omap2/gpmc-nand.c
+++ b/arch/arm/mach-omap2/gpmc-nand.c
@@ -39,6 +39,9 @@ static int omap2_nand_gpmc_retime(void)
39 struct gpmc_timings t; 39 struct gpmc_timings t;
40 int err; 40 int err;
41 41
42 if (!gpmc_nand_data->gpmc_t)
43 return 0;
44
42 memset(&t, 0, sizeof(t)); 45 memset(&t, 0, sizeof(t));
43 t.sync_clk = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->sync_clk); 46 t.sync_clk = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->sync_clk);
44 t.cs_on = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->cs_on); 47 t.cs_on = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->cs_on);
diff --git a/arch/arm/mach-omap2/include/mach/entry-macro.S b/arch/arm/mach-omap2/include/mach/entry-macro.S
index ff25c7e4e606..50fd74916643 100644
--- a/arch/arm/mach-omap2/include/mach/entry-macro.S
+++ b/arch/arm/mach-omap2/include/mach/entry-macro.S
@@ -52,7 +52,7 @@ omap_irq_base: .word 0
52 52
53 mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision 53 mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision
54 and \tmp, \tmp, #0x000f0000 @ only check architecture 54 and \tmp, \tmp, #0x000f0000 @ only check architecture
55 cmp \tmp, #0x00060000 @ is v6? 55 cmp \tmp, #0x00070000 @ is v6?
56 beq 2400f @ found v6 so it's omap24xx 56 beq 2400f @ found v6 so it's omap24xx
57 mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision 57 mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision
58 and \tmp, \tmp, #0x000000f0 @ check cortex 8 or 9 58 and \tmp, \tmp, #0x000000f0 @ check cortex 8 or 9
diff --git a/arch/arm/mach-omap2/omap-headsmp.S b/arch/arm/mach-omap2/omap-headsmp.S
index aa3f65c2ac97..ef0e7a00dd6c 100644
--- a/arch/arm/mach-omap2/omap-headsmp.S
+++ b/arch/arm/mach-omap2/omap-headsmp.S
@@ -33,7 +33,7 @@
33ENTRY(omap_secondary_startup) 33ENTRY(omap_secondary_startup)
34hold: ldr r12,=0x103 34hold: ldr r12,=0x103
35 dsb 35 dsb
36 smc @ read from AuxCoreBoot0 36 smc #0 @ read from AuxCoreBoot0
37 mov r0, r0, lsr #9 37 mov r0, r0, lsr #9
38 mrc p15, 0, r4, c0, c0, 5 38 mrc p15, 0, r4, c0, c0, 5
39 and r4, r4, #0x0f 39 and r4, r4, #0x0f
@@ -52,7 +52,7 @@ ENTRY(omap_modify_auxcoreboot0)
52 stmfd sp!, {r1-r12, lr} 52 stmfd sp!, {r1-r12, lr}
53 ldr r12, =0x104 53 ldr r12, =0x104
54 dsb 54 dsb
55 smc 55 smc #0
56 ldmfd sp!, {r1-r12, pc} 56 ldmfd sp!, {r1-r12, pc}
57END(omap_modify_auxcoreboot0) 57END(omap_modify_auxcoreboot0)
58 58
@@ -60,6 +60,6 @@ ENTRY(omap_auxcoreboot_addr)
60 stmfd sp!, {r2-r12, lr} 60 stmfd sp!, {r2-r12, lr}
61 ldr r12, =0x105 61 ldr r12, =0x105
62 dsb 62 dsb
63 smc 63 smc #0
64 ldmfd sp!, {r2-r12, pc} 64 ldmfd sp!, {r2-r12, pc}
65END(omap_auxcoreboot_addr) 65END(omap_auxcoreboot_addr)
diff --git a/arch/arm/mach-omap2/omap44xx-smc.S b/arch/arm/mach-omap2/omap44xx-smc.S
index 89bb2b141473..f61c7771ca47 100644
--- a/arch/arm/mach-omap2/omap44xx-smc.S
+++ b/arch/arm/mach-omap2/omap44xx-smc.S
@@ -27,6 +27,6 @@ ENTRY(omap_smc1)
27 mov r12, r0 27 mov r12, r0
28 mov r0, r1 28 mov r0, r1
29 dsb 29 dsb
30 smc 30 smc #0
31 ldmfd sp!, {r2-r12, pc} 31 ldmfd sp!, {r2-r12, pc}
32END(omap_smc1) 32END(omap_smc1)
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index c6649472ce0d..e436dcb19795 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1511,6 +1511,9 @@ struct powerdomain *omap_hwmod_get_pwrdm(struct omap_hwmod *oh)
1511 c = oh->slaves[oh->_mpu_port_index]->_clk; 1511 c = oh->slaves[oh->_mpu_port_index]->_clk;
1512 } 1512 }
1513 1513
1514 if (!c->clkdm)
1515 return NULL;
1516
1514 return c->clkdm->pwrdm.ptr; 1517 return c->clkdm->pwrdm.ptr;
1515 1518
1516} 1519}
diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
index 9a0fb385622b..ebfce7d1a5d3 100644
--- a/arch/arm/mach-omap2/powerdomain.c
+++ b/arch/arm/mach-omap2/powerdomain.c
@@ -222,7 +222,7 @@ void pwrdm_init(struct powerdomain **pwrdm_list)
222{ 222{
223 struct powerdomain **p = NULL; 223 struct powerdomain **p = NULL;
224 224
225 if (cpu_is_omap24xx() | cpu_is_omap34xx()) { 225 if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
226 pwrstctrl_reg_offs = OMAP2_PM_PWSTCTRL; 226 pwrstctrl_reg_offs = OMAP2_PM_PWSTCTRL;
227 pwrstst_reg_offs = OMAP2_PM_PWSTST; 227 pwrstst_reg_offs = OMAP2_PM_PWSTST;
228 } else if (cpu_is_omap44xx()) { 228 } else if (cpu_is_omap44xx()) {
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index 9537f6f2352d..07a60f1204ca 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -123,7 +123,7 @@ struct omap3_prcm_regs prcm_context;
123u32 omap_prcm_get_reset_sources(void) 123u32 omap_prcm_get_reset_sources(void)
124{ 124{
125 /* XXX This presumably needs modification for 34XX */ 125 /* XXX This presumably needs modification for 34XX */
126 if (cpu_is_omap24xx() | cpu_is_omap34xx()) 126 if (cpu_is_omap24xx() || cpu_is_omap34xx())
127 return prm_read_mod_reg(WKUP_MOD, OMAP2_RM_RSTST) & 0x7f; 127 return prm_read_mod_reg(WKUP_MOD, OMAP2_RM_RSTST) & 0x7f;
128 if (cpu_is_omap44xx()) 128 if (cpu_is_omap44xx())
129 return prm_read_mod_reg(WKUP_MOD, OMAP4_RM_RSTST) & 0x7f; 129 return prm_read_mod_reg(WKUP_MOD, OMAP4_RM_RSTST) & 0x7f;
@@ -157,7 +157,7 @@ void omap_prcm_arch_reset(char mode, const char *cmd)
157 else 157 else
158 WARN_ON(1); 158 WARN_ON(1);
159 159
160 if (cpu_is_omap24xx() | cpu_is_omap34xx()) 160 if (cpu_is_omap24xx() || cpu_is_omap34xx())
161 prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs, 161 prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs,
162 OMAP2_RM_RSTCTRL); 162 OMAP2_RM_RSTCTRL);
163 if (cpu_is_omap44xx()) 163 if (cpu_is_omap44xx())
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index da77930480e9..3771254dfa81 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -115,7 +115,6 @@ static struct plat_serial8250_port serial_platform_data2[] = {
115 } 115 }
116}; 116};
117 117
118#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
119static struct plat_serial8250_port serial_platform_data3[] = { 118static struct plat_serial8250_port serial_platform_data3[] = {
120 { 119 {
121 .irq = 70, 120 .irq = 70,
@@ -128,23 +127,12 @@ static struct plat_serial8250_port serial_platform_data3[] = {
128 } 127 }
129}; 128};
130 129
131static inline void omap2_set_globals_uart4(struct omap_globals *omap2_globals)
132{
133 serial_platform_data3[0].mapbase = omap2_globals->uart4_phys;
134}
135#else
136static inline void omap2_set_globals_uart4(struct omap_globals *omap2_globals)
137{
138}
139#endif
140
141void __init omap2_set_globals_uart(struct omap_globals *omap2_globals) 130void __init omap2_set_globals_uart(struct omap_globals *omap2_globals)
142{ 131{
143 serial_platform_data0[0].mapbase = omap2_globals->uart1_phys; 132 serial_platform_data0[0].mapbase = omap2_globals->uart1_phys;
144 serial_platform_data1[0].mapbase = omap2_globals->uart2_phys; 133 serial_platform_data1[0].mapbase = omap2_globals->uart2_phys;
145 serial_platform_data2[0].mapbase = omap2_globals->uart3_phys; 134 serial_platform_data2[0].mapbase = omap2_globals->uart3_phys;
146 if (cpu_is_omap3630() || cpu_is_omap44xx()) 135 serial_platform_data3[0].mapbase = omap2_globals->uart4_phys;
147 omap2_set_globals_uart4(omap2_globals);
148} 136}
149 137
150static inline unsigned int __serial_read_reg(struct uart_port *up, 138static inline unsigned int __serial_read_reg(struct uart_port *up,
@@ -550,7 +538,7 @@ static ssize_t sleep_timeout_store(struct device *dev,
550 unsigned int value; 538 unsigned int value;
551 539
552 if (sscanf(buf, "%u", &value) != 1) { 540 if (sscanf(buf, "%u", &value) != 1) {
553 printk(KERN_ERR "sleep_timeout_store: Invalid value\n"); 541 dev_err(dev, "sleep_timeout_store: Invalid value\n");
554 return -EINVAL; 542 return -EINVAL;
555 } 543 }
556 544
@@ -664,27 +652,33 @@ void __init omap_serial_early_init(void)
664 struct device *dev = &pdev->dev; 652 struct device *dev = &pdev->dev;
665 struct plat_serial8250_port *p = dev->platform_data; 653 struct plat_serial8250_port *p = dev->platform_data;
666 654
655 /* Don't map zero-based physical address */
656 if (p->mapbase == 0) {
657 dev_warn(dev, "no physical address for uart#%d,"
658 " so skipping early_init...\n", i);
659 continue;
660 }
667 /* 661 /*
668 * Module 4KB + L4 interconnect 4KB 662 * Module 4KB + L4 interconnect 4KB
669 * Static mapping, never released 663 * Static mapping, never released
670 */ 664 */
671 p->membase = ioremap(p->mapbase, SZ_8K); 665 p->membase = ioremap(p->mapbase, SZ_8K);
672 if (!p->membase) { 666 if (!p->membase) {
673 printk(KERN_ERR "ioremap failed for uart%i\n", i + 1); 667 dev_err(dev, "ioremap failed for uart%i\n", i + 1);
674 continue; 668 continue;
675 } 669 }
676 670
677 sprintf(name, "uart%d_ick", i + 1); 671 sprintf(name, "uart%d_ick", i + 1);
678 uart->ick = clk_get(NULL, name); 672 uart->ick = clk_get(NULL, name);
679 if (IS_ERR(uart->ick)) { 673 if (IS_ERR(uart->ick)) {
680 printk(KERN_ERR "Could not get uart%d_ick\n", i + 1); 674 dev_err(dev, "Could not get uart%d_ick\n", i + 1);
681 uart->ick = NULL; 675 uart->ick = NULL;
682 } 676 }
683 677
684 sprintf(name, "uart%d_fck", i+1); 678 sprintf(name, "uart%d_fck", i+1);
685 uart->fck = clk_get(NULL, name); 679 uart->fck = clk_get(NULL, name);
686 if (IS_ERR(uart->fck)) { 680 if (IS_ERR(uart->fck)) {
687 printk(KERN_ERR "Could not get uart%d_fck\n", i + 1); 681 dev_err(dev, "Could not get uart%d_fck\n", i + 1);
688 uart->fck = NULL; 682 uart->fck = NULL;
689 } 683 }
690 684
@@ -727,6 +721,13 @@ void __init omap_serial_init_port(int port)
727 pdev = &uart->pdev; 721 pdev = &uart->pdev;
728 dev = &pdev->dev; 722 dev = &pdev->dev;
729 723
724 /* Don't proceed if there's no clocks available */
725 if (unlikely(!uart->ick || !uart->fck)) {
726 WARN(1, "%s: can't init uart%d, no clocks available\n",
727 kobject_name(&dev->kobj), port);
728 return;
729 }
730
730 omap_uart_enable_clocks(uart); 731 omap_uart_enable_clocks(uart);
731 732
732 omap_uart_reset(uart); 733 omap_uart_reset(uart);
diff --git a/arch/arm/mach-pxa/include/mach/colibri.h b/arch/arm/mach-pxa/include/mach/colibri.h
index 811743c56147..5f2ba8d9015c 100644
--- a/arch/arm/mach-pxa/include/mach/colibri.h
+++ b/arch/arm/mach-pxa/include/mach/colibri.h
@@ -2,6 +2,7 @@
2#define _COLIBRI_H_ 2#define _COLIBRI_H_
3 3
4#include <net/ax88796.h> 4#include <net/ax88796.h>
5#include <mach/mfp.h>
5 6
6/* 7/*
7 * common settings for all modules 8 * common settings for all modules
diff --git a/arch/arm/mach-pxa/include/mach/hardware.h b/arch/arm/mach-pxa/include/mach/hardware.h
index 7515757d6911..3d8d8cb09685 100644
--- a/arch/arm/mach-pxa/include/mach/hardware.h
+++ b/arch/arm/mach-pxa/include/mach/hardware.h
@@ -202,7 +202,7 @@
202#define __cpu_is_pxa950(id) \ 202#define __cpu_is_pxa950(id) \
203 ({ \ 203 ({ \
204 unsigned int _id = (id) >> 4 & 0xfff; \ 204 unsigned int _id = (id) >> 4 & 0xfff; \
205 id == 0x697; \ 205 _id == 0x697; \
206 }) 206 })
207#else 207#else
208#define __cpu_is_pxa950(id) (0) 208#define __cpu_is_pxa950(id) (0)
diff --git a/arch/arm/mach-pxa/include/mach/regs-u2d.h b/arch/arm/mach-pxa/include/mach/regs-u2d.h
index 44b0b20b69a4..c15c0c57de08 100644
--- a/arch/arm/mach-pxa/include/mach/regs-u2d.h
+++ b/arch/arm/mach-pxa/include/mach/regs-u2d.h
@@ -166,7 +166,8 @@
166#define U2DMACSR_BUSERRTYPE (7 << 10) /* PX Bus Error Type */ 166#define U2DMACSR_BUSERRTYPE (7 << 10) /* PX Bus Error Type */
167#define U2DMACSR_EORINTR (1 << 9) /* End Of Receive */ 167#define U2DMACSR_EORINTR (1 << 9) /* End Of Receive */
168#define U2DMACSR_REQPEND (1 << 8) /* Request Pending */ 168#define U2DMACSR_REQPEND (1 << 8) /* Request Pending */
169#define U2DMACSR_RASINTR (1 << 4) /* Request After Channel Stopped (read / write 1 clear) */#define U2DMACSR_STOPINTR (1 << 3) /* Stop Interrupt (read only) */ 169#define U2DMACSR_RASINTR (1 << 4) /* Request After Channel Stopped (read / write 1 clear) */
170#define U2DMACSR_STOPINTR (1 << 3) /* Stop Interrupt (read only) */
170#define U2DMACSR_ENDINTR (1 << 2) /* End Interrupt (read / write 1 clear) */ 171#define U2DMACSR_ENDINTR (1 << 2) /* End Interrupt (read / write 1 clear) */
171#define U2DMACSR_STARTINTR (1 << 1) /* Start Interrupt (read / write 1 clear) */ 172#define U2DMACSR_STARTINTR (1 << 1) /* Start Interrupt (read / write 1 clear) */
172#define U2DMACSR_BUSERRINTR (1 << 0) /* Bus Error Interrupt (read / write 1 clear) */ 173#define U2DMACSR_BUSERRINTR (1 << 0) /* Bus Error Interrupt (read / write 1 clear) */
diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c
index 44bb675e47f1..d12667bd9ebe 100644
--- a/arch/arm/mach-pxa/raumfeld.c
+++ b/arch/arm/mach-pxa/raumfeld.c
@@ -983,7 +983,7 @@ static void __init raumfeld_common_init(void)
983 int i; 983 int i;
984 984
985 for (i = 0; i < ARRAY_SIZE(gpio_keys_button); i++) 985 for (i = 0; i < ARRAY_SIZE(gpio_keys_button); i++)
986 if (!strcmp(gpio_keys_button[i].desc, "on/off button")) 986 if (!strcmp(gpio_keys_button[i].desc, "on_off button"))
987 gpio_keys_button[i].active_low = 1; 987 gpio_keys_button[i].active_low = 1;
988 } 988 }
989 989
@@ -1009,8 +1009,7 @@ static void __init raumfeld_common_init(void)
1009 gpio_direction_output(GPIO_W2W_PDN, 0); 1009 gpio_direction_output(GPIO_W2W_PDN, 0);
1010 1010
1011 /* this can be used to switch off the device */ 1011 /* this can be used to switch off the device */
1012 ret = gpio_request(GPIO_SHUTDOWN_SUPPLY, 1012 ret = gpio_request(GPIO_SHUTDOWN_SUPPLY, "supply shutdown");
1013 "supply shutdown");
1014 if (ret < 0) 1013 if (ret < 0)
1015 pr_warning("Unable to request GPIO_SHUTDOWN_SUPPLY\n"); 1014 pr_warning("Unable to request GPIO_SHUTDOWN_SUPPLY\n");
1016 else 1015 else
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index 19b5109d9808..01bdd7500df4 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -363,7 +363,7 @@ static struct gpio_keys_button spitz_gpio_keys[] = {
363 .type = EV_PWR, 363 .type = EV_PWR,
364 .code = KEY_SUSPEND, 364 .code = KEY_SUSPEND,
365 .gpio = SPITZ_GPIO_ON_KEY, 365 .gpio = SPITZ_GPIO_ON_KEY,
366 .desc = "On/Off", 366 .desc = "On Off",
367 .wakeup = 1, 367 .wakeup = 1,
368 }, 368 },
369 /* Two buttons detecting the lid state */ 369 /* Two buttons detecting the lid state */
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c
index 9e0c5c3988a1..e90114a7e246 100644
--- a/arch/arm/mach-pxa/viper.c
+++ b/arch/arm/mach-pxa/viper.c
@@ -34,6 +34,7 @@
34#include <linux/pm.h> 34#include <linux/pm.h>
35#include <linux/sched.h> 35#include <linux/sched.h>
36#include <linux/gpio.h> 36#include <linux/gpio.h>
37#include <linux/jiffies.h>
37#include <linux/i2c-gpio.h> 38#include <linux/i2c-gpio.h>
38#include <linux/serial_8250.h> 39#include <linux/serial_8250.h>
39#include <linux/smc91x.h> 40#include <linux/smc91x.h>
@@ -454,7 +455,7 @@ static struct i2c_gpio_platform_data i2c_bus_data = {
454 .sda_pin = VIPER_RTC_I2C_SDA_GPIO, 455 .sda_pin = VIPER_RTC_I2C_SDA_GPIO,
455 .scl_pin = VIPER_RTC_I2C_SCL_GPIO, 456 .scl_pin = VIPER_RTC_I2C_SCL_GPIO,
456 .udelay = 10, 457 .udelay = 10,
457 .timeout = 100, 458 .timeout = HZ,
458}; 459};
459 460
460static struct platform_device i2c_bus_device = { 461static struct platform_device i2c_bus_device = {
@@ -779,7 +780,7 @@ static void __init viper_tpm_init(void)
779 .sda_pin = VIPER_TPM_I2C_SDA_GPIO, 780 .sda_pin = VIPER_TPM_I2C_SDA_GPIO,
780 .scl_pin = VIPER_TPM_I2C_SCL_GPIO, 781 .scl_pin = VIPER_TPM_I2C_SCL_GPIO,
781 .udelay = 10, 782 .udelay = 10,
782 .timeout = 100, 783 .timeout = HZ,
783 }; 784 };
784 char *errstr; 785 char *errstr;
785 786
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index f2dbce5f3cd4..d5a95738f85b 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -254,7 +254,7 @@ static unsigned int realview_mmc_status(struct device *dev)
254 else 254 else
255 mask = 2; 255 mask = 2;
256 256
257 return readl(REALVIEW_SYSMCI) & mask; 257 return !(readl(REALVIEW_SYSMCI) & mask);
258} 258}
259 259
260struct mmci_platform_data realview_mmc0_plat_data = { 260struct mmci_platform_data realview_mmc0_plat_data = {
diff --git a/arch/arm/mach-sa1100/Kconfig b/arch/arm/mach-sa1100/Kconfig
index b17d52f7cc48..fd4c52b7ccb6 100644
--- a/arch/arm/mach-sa1100/Kconfig
+++ b/arch/arm/mach-sa1100/Kconfig
@@ -57,7 +57,7 @@ config SA1100_COLLIE
57config SA1100_H3100 57config SA1100_H3100
58 bool "Compaq iPAQ H3100" 58 bool "Compaq iPAQ H3100"
59 select HTC_EGPIO 59 select HTC_EGPIO
60 select CPU_FREQ_SA1100 60 select CPU_FREQ_SA1110
61 help 61 help
62 Say Y here if you intend to run this kernel on the Compaq iPAQ 62 Say Y here if you intend to run this kernel on the Compaq iPAQ
63 H3100 handheld computer. Information about this machine and the 63 H3100 handheld computer. Information about this machine and the
@@ -68,7 +68,7 @@ config SA1100_H3100
68config SA1100_H3600 68config SA1100_H3600
69 bool "Compaq iPAQ H3600/H3700" 69 bool "Compaq iPAQ H3600/H3700"
70 select HTC_EGPIO 70 select HTC_EGPIO
71 select CPU_FREQ_SA1100 71 select CPU_FREQ_SA1110
72 help 72 help
73 Say Y here if you intend to run this kernel on the Compaq iPAQ 73 Say Y here if you intend to run this kernel on the Compaq iPAQ
74 H3600 handheld computer. Information about this machine and the 74 H3600 handheld computer. Information about this machine and the
diff --git a/arch/arm/mach-sa1100/cpu-sa1110.c b/arch/arm/mach-sa1100/cpu-sa1110.c
index 63b32b68b296..7252874d328b 100644
--- a/arch/arm/mach-sa1100/cpu-sa1110.c
+++ b/arch/arm/mach-sa1100/cpu-sa1110.c
@@ -363,6 +363,9 @@ static int __init sa1110_clk_init(void)
363 struct sdram_params *sdram; 363 struct sdram_params *sdram;
364 const char *name = sdram_name; 364 const char *name = sdram_name;
365 365
366 if (!cpu_is_sa1110())
367 return -ENODEV;
368
366 if (!name[0]) { 369 if (!name[0]) {
367 if (machine_is_assabet()) 370 if (machine_is_assabet())
368 name = "TC59SM716-CL3"; 371 name = "TC59SM716-CL3";
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
index edddd66faac6..a2ab51fa73e2 100644
--- a/arch/arm/mm/alignment.c
+++ b/arch/arm/mm/alignment.c
@@ -166,15 +166,15 @@ union offset_union {
166 THUMB( "1: "ins" %1, [%2]\n" ) \ 166 THUMB( "1: "ins" %1, [%2]\n" ) \
167 THUMB( " add %2, %2, #1\n" ) \ 167 THUMB( " add %2, %2, #1\n" ) \
168 "2:\n" \ 168 "2:\n" \
169 " .section .fixup,\"ax\"\n" \ 169 " .pushsection .fixup,\"ax\"\n" \
170 " .align 2\n" \ 170 " .align 2\n" \
171 "3: mov %0, #1\n" \ 171 "3: mov %0, #1\n" \
172 " b 2b\n" \ 172 " b 2b\n" \
173 " .previous\n" \ 173 " .popsection\n" \
174 " .section __ex_table,\"a\"\n" \ 174 " .pushsection __ex_table,\"a\"\n" \
175 " .align 3\n" \ 175 " .align 3\n" \
176 " .long 1b, 3b\n" \ 176 " .long 1b, 3b\n" \
177 " .previous\n" \ 177 " .popsection\n" \
178 : "=r" (err), "=&r" (val), "=r" (addr) \ 178 : "=r" (err), "=&r" (val), "=r" (addr) \
179 : "0" (err), "2" (addr)) 179 : "0" (err), "2" (addr))
180 180
@@ -226,16 +226,16 @@ union offset_union {
226 " mov %1, %1, "NEXT_BYTE"\n" \ 226 " mov %1, %1, "NEXT_BYTE"\n" \
227 "2: "ins" %1, [%2]\n" \ 227 "2: "ins" %1, [%2]\n" \
228 "3:\n" \ 228 "3:\n" \
229 " .section .fixup,\"ax\"\n" \ 229 " .pushsection .fixup,\"ax\"\n" \
230 " .align 2\n" \ 230 " .align 2\n" \
231 "4: mov %0, #1\n" \ 231 "4: mov %0, #1\n" \
232 " b 3b\n" \ 232 " b 3b\n" \
233 " .previous\n" \ 233 " .popsection\n" \
234 " .section __ex_table,\"a\"\n" \ 234 " .pushsection __ex_table,\"a\"\n" \
235 " .align 3\n" \ 235 " .align 3\n" \
236 " .long 1b, 4b\n" \ 236 " .long 1b, 4b\n" \
237 " .long 2b, 4b\n" \ 237 " .long 2b, 4b\n" \
238 " .previous\n" \ 238 " .popsection\n" \
239 : "=r" (err), "=&r" (v), "=&r" (a) \ 239 : "=r" (err), "=&r" (v), "=&r" (a) \
240 : "0" (err), "1" (v), "2" (a)); \ 240 : "0" (err), "1" (v), "2" (a)); \
241 if (err) \ 241 if (err) \
@@ -266,18 +266,18 @@ union offset_union {
266 " mov %1, %1, "NEXT_BYTE"\n" \ 266 " mov %1, %1, "NEXT_BYTE"\n" \
267 "4: "ins" %1, [%2]\n" \ 267 "4: "ins" %1, [%2]\n" \
268 "5:\n" \ 268 "5:\n" \
269 " .section .fixup,\"ax\"\n" \ 269 " .pushsection .fixup,\"ax\"\n" \
270 " .align 2\n" \ 270 " .align 2\n" \
271 "6: mov %0, #1\n" \ 271 "6: mov %0, #1\n" \
272 " b 5b\n" \ 272 " b 5b\n" \
273 " .previous\n" \ 273 " .popsection\n" \
274 " .section __ex_table,\"a\"\n" \ 274 " .pushsection __ex_table,\"a\"\n" \
275 " .align 3\n" \ 275 " .align 3\n" \
276 " .long 1b, 6b\n" \ 276 " .long 1b, 6b\n" \
277 " .long 2b, 6b\n" \ 277 " .long 2b, 6b\n" \
278 " .long 3b, 6b\n" \ 278 " .long 3b, 6b\n" \
279 " .long 4b, 6b\n" \ 279 " .long 4b, 6b\n" \
280 " .previous\n" \ 280 " .popsection\n" \
281 : "=r" (err), "=&r" (v), "=&r" (a) \ 281 : "=r" (err), "=&r" (v), "=&r" (a) \
282 : "0" (err), "1" (v), "2" (a)); \ 282 : "0" (err), "1" (v), "2" (a)); \
283 if (err) \ 283 if (err) \
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 83db12a68d56..0ed29bfeba1c 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -86,9 +86,6 @@ void show_mem(void)
86 printk("Mem-info:\n"); 86 printk("Mem-info:\n");
87 show_free_areas(); 87 show_free_areas();
88 for_each_online_node(node) { 88 for_each_online_node(node) {
89 pg_data_t *n = NODE_DATA(node);
90 struct page *map = pgdat_page_nr(n, 0) - n->node_start_pfn;
91
92 for_each_nodebank (i,mi,node) { 89 for_each_nodebank (i,mi,node) {
93 struct membank *bank = &mi->bank[i]; 90 struct membank *bank = &mi->bank[i];
94 unsigned int pfn1, pfn2; 91 unsigned int pfn1, pfn2;
@@ -97,8 +94,8 @@ void show_mem(void)
97 pfn1 = bank_pfn_start(bank); 94 pfn1 = bank_pfn_start(bank);
98 pfn2 = bank_pfn_end(bank); 95 pfn2 = bank_pfn_end(bank);
99 96
100 page = map + pfn1; 97 page = pfn_to_page(pfn1);
101 end = map + pfn2; 98 end = pfn_to_page(pfn2 - 1) + 1;
102 99
103 do { 100 do {
104 total++; 101 total++;
@@ -603,9 +600,6 @@ void __init mem_init(void)
603 reserved_pages = free_pages = 0; 600 reserved_pages = free_pages = 0;
604 601
605 for_each_online_node(node) { 602 for_each_online_node(node) {
606 pg_data_t *n = NODE_DATA(node);
607 struct page *map = pgdat_page_nr(n, 0) - n->node_start_pfn;
608
609 for_each_nodebank(i, &meminfo, node) { 603 for_each_nodebank(i, &meminfo, node) {
610 struct membank *bank = &meminfo.bank[i]; 604 struct membank *bank = &meminfo.bank[i];
611 unsigned int pfn1, pfn2; 605 unsigned int pfn1, pfn2;
@@ -614,8 +608,8 @@ void __init mem_init(void)
614 pfn1 = bank_pfn_start(bank); 608 pfn1 = bank_pfn_start(bank);
615 pfn2 = bank_pfn_end(bank); 609 pfn2 = bank_pfn_end(bank);
616 610
617 page = map + pfn1; 611 page = pfn_to_page(pfn1);
618 end = map + pfn2; 612 end = pfn_to_page(pfn2 - 1) + 1;
619 613
620 do { 614 do {
621 if (PageReserved(page)) 615 if (PageReserved(page))
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S
index ee7700242c19..5c47760c2064 100644
--- a/arch/arm/mm/proc-sa1100.S
+++ b/arch/arm/mm/proc-sa1100.S
@@ -45,7 +45,7 @@ ENTRY(cpu_sa1100_proc_init)
45 mcr p15, 0, r0, c9, c0, 5 @ Allow read-buffer operations from userland 45 mcr p15, 0, r0, c9, c0, 5 @ Allow read-buffer operations from userland
46 mov pc, lr 46 mov pc, lr
47 47
48 .previous 48 .section .text
49 49
50/* 50/*
51 * cpu_sa1100_proc_fin() 51 * cpu_sa1100_proc_fin()
diff --git a/arch/arm/nwfpe/entry.S b/arch/arm/nwfpe/entry.S
index 48bca0db4607..cafa18354339 100644
--- a/arch/arm/nwfpe/entry.S
+++ b/arch/arm/nwfpe/entry.S
@@ -111,12 +111,12 @@ next:
111 @ to fault. Emit the appropriate exception gunk to fix things up. 111 @ to fault. Emit the appropriate exception gunk to fix things up.
112 @ ??? For some reason, faults can happen at .Lx2 even with a 112 @ ??? For some reason, faults can happen at .Lx2 even with a
113 @ plain LDR instruction. Weird, but it seems harmless. 113 @ plain LDR instruction. Weird, but it seems harmless.
114 .section .fixup,"ax" 114 .pushsection .fixup,"ax"
115 .align 2 115 .align 2
116.Lfix: mov pc, r9 @ let the user eat segfaults 116.Lfix: mov pc, r9 @ let the user eat segfaults
117 .previous 117 .popsection
118 118
119 .section __ex_table,"a" 119 .pushsection __ex_table,"a"
120 .align 3 120 .align 3
121 .long .Lx1, .Lfix 121 .long .Lx1, .Lfix
122 .previous 122 .popsection
diff --git a/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h b/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h
index 07be8ad7ec37..7c4870bd5a21 100644
--- a/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h
+++ b/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h
@@ -31,7 +31,13 @@
31#define DMA_MODE_WRITE 1 31#define DMA_MODE_WRITE 1
32#define DMA_MODE_MASK 1 32#define DMA_MODE_MASK 1
33 33
34#define DMA_BASE IO_ADDRESS(DMA_BASE_ADDR) 34#define MX1_DMA_REG(offset) MX1_IO_ADDRESS(MX1_DMA_BASE_ADDR + (offset))
35
36/* DMA Interrupt Mask Register */
37#define MX1_DMA_DIMR MX1_DMA_REG(0x08)
38
39/* Channel Control Register */
40#define MX1_DMA_CCR(x) MX1_DMA_REG(0x8c + ((x) << 6))
35 41
36#define IMX_DMA_MEMSIZE_32 (0 << 4) 42#define IMX_DMA_MEMSIZE_32 (0 << 4)
37#define IMX_DMA_MEMSIZE_8 (1 << 4) 43#define IMX_DMA_MEMSIZE_8 (1 << 4)
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index 088c1a03b946..f12f0e39ddf2 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -44,9 +44,6 @@
44 44
45#define NO_LENGTH_CHECK 0xffffffff 45#define NO_LENGTH_CHECK 0xffffffff
46 46
47unsigned char omap_bootloader_tag[512];
48int omap_bootloader_tag_len;
49
50struct omap_board_config_kernel *omap_board_config; 47struct omap_board_config_kernel *omap_board_config;
51int omap_board_config_size; 48int omap_board_config_size;
52 49
@@ -100,10 +97,17 @@ EXPORT_SYMBOL(omap_get_var_config);
100 97
101#include <linux/clocksource.h> 98#include <linux/clocksource.h>
102 99
100/*
101 * offset_32k holds the init time counter value. It is then subtracted
102 * from every counter read to achieve a counter that counts time from the
103 * kernel boot (needed for sched_clock()).
104 */
105static u32 offset_32k __read_mostly;
106
103#ifdef CONFIG_ARCH_OMAP16XX 107#ifdef CONFIG_ARCH_OMAP16XX
104static cycle_t omap16xx_32k_read(struct clocksource *cs) 108static cycle_t omap16xx_32k_read(struct clocksource *cs)
105{ 109{
106 return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED); 110 return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED) - offset_32k;
107} 111}
108#else 112#else
109#define omap16xx_32k_read NULL 113#define omap16xx_32k_read NULL
@@ -112,7 +116,7 @@ static cycle_t omap16xx_32k_read(struct clocksource *cs)
112#ifdef CONFIG_ARCH_OMAP2420 116#ifdef CONFIG_ARCH_OMAP2420
113static cycle_t omap2420_32k_read(struct clocksource *cs) 117static cycle_t omap2420_32k_read(struct clocksource *cs)
114{ 118{
115 return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10); 119 return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10) - offset_32k;
116} 120}
117#else 121#else
118#define omap2420_32k_read NULL 122#define omap2420_32k_read NULL
@@ -121,7 +125,7 @@ static cycle_t omap2420_32k_read(struct clocksource *cs)
121#ifdef CONFIG_ARCH_OMAP2430 125#ifdef CONFIG_ARCH_OMAP2430
122static cycle_t omap2430_32k_read(struct clocksource *cs) 126static cycle_t omap2430_32k_read(struct clocksource *cs)
123{ 127{
124 return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10); 128 return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10) - offset_32k;
125} 129}
126#else 130#else
127#define omap2430_32k_read NULL 131#define omap2430_32k_read NULL
@@ -130,7 +134,7 @@ static cycle_t omap2430_32k_read(struct clocksource *cs)
130#ifdef CONFIG_ARCH_OMAP3 134#ifdef CONFIG_ARCH_OMAP3
131static cycle_t omap34xx_32k_read(struct clocksource *cs) 135static cycle_t omap34xx_32k_read(struct clocksource *cs)
132{ 136{
133 return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10); 137 return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10) - offset_32k;
134} 138}
135#else 139#else
136#define omap34xx_32k_read NULL 140#define omap34xx_32k_read NULL
@@ -139,7 +143,7 @@ static cycle_t omap34xx_32k_read(struct clocksource *cs)
139#ifdef CONFIG_ARCH_OMAP4 143#ifdef CONFIG_ARCH_OMAP4
140static cycle_t omap44xx_32k_read(struct clocksource *cs) 144static cycle_t omap44xx_32k_read(struct clocksource *cs)
141{ 145{
142 return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10); 146 return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10) - offset_32k;
143} 147}
144#else 148#else
145#define omap44xx_32k_read NULL 149#define omap44xx_32k_read NULL
@@ -227,6 +231,8 @@ static int __init omap_init_clocksource_32k(void)
227 clocksource_32k.mult = clocksource_hz2mult(32768, 231 clocksource_32k.mult = clocksource_hz2mult(32768,
228 clocksource_32k.shift); 232 clocksource_32k.shift);
229 233
234 offset_32k = clocksource_32k.read(&clocksource_32k);
235
230 if (clocksource_register(&clocksource_32k)) 236 if (clocksource_register(&clocksource_32k))
231 printk(err, clocksource_32k.name); 237 printk(err, clocksource_32k.name);
232 } 238 }
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 5c6c342c53f5..1d959965ff52 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -937,6 +937,15 @@ void omap_start_dma(int lch)
937{ 937{
938 u32 l; 938 u32 l;
939 939
940 /*
941 * The CPC/CDAC register needs to be initialized to zero
942 * before starting dma transfer.
943 */
944 if (cpu_is_omap15xx())
945 dma_write(0, CPC(lch));
946 else
947 dma_write(0, CDAC(lch));
948
940 if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { 949 if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) {
941 int next_lch, cur_lch; 950 int next_lch, cur_lch;
942 char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; 951 char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT];
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 76a347b3ce07..45a225d09125 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
798 case METHOD_MPUIO: 798 case METHOD_MPUIO:
799 reg += OMAP_MPUIO_GPIO_INT_EDGE; 799 reg += OMAP_MPUIO_GPIO_INT_EDGE;
800 l = __raw_readl(reg); 800 l = __raw_readl(reg);
801 if (trigger & IRQ_TYPE_EDGE_BOTH) 801 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
802 bank->toggle_mask |= 1 << gpio; 802 bank->toggle_mask |= 1 << gpio;
803 if (trigger & IRQ_TYPE_EDGE_RISING) 803 if (trigger & IRQ_TYPE_EDGE_RISING)
804 l |= 1 << gpio; 804 l |= 1 << gpio;
@@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
812 case METHOD_GPIO_1510: 812 case METHOD_GPIO_1510:
813 reg += OMAP1510_GPIO_INT_CONTROL; 813 reg += OMAP1510_GPIO_INT_CONTROL;
814 l = __raw_readl(reg); 814 l = __raw_readl(reg);
815 if (trigger & IRQ_TYPE_EDGE_BOTH) 815 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
816 bank->toggle_mask |= 1 << gpio; 816 bank->toggle_mask |= 1 << gpio;
817 if (trigger & IRQ_TYPE_EDGE_RISING) 817 if (trigger & IRQ_TYPE_EDGE_RISING)
818 l |= 1 << gpio; 818 l |= 1 << gpio;
@@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
846 case METHOD_GPIO_7XX: 846 case METHOD_GPIO_7XX:
847 reg += OMAP7XX_GPIO_INT_CONTROL; 847 reg += OMAP7XX_GPIO_INT_CONTROL;
848 l = __raw_readl(reg); 848 l = __raw_readl(reg);
849 if (trigger & IRQ_TYPE_EDGE_BOTH) 849 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
850 bank->toggle_mask |= 1 << gpio; 850 bank->toggle_mask |= 1 << gpio;
851 if (trigger & IRQ_TYPE_EDGE_RISING) 851 if (trigger & IRQ_TYPE_EDGE_RISING)
852 l |= 1 << gpio; 852 l |= 1 << gpio;
diff --git a/arch/arm/plat-omap/include/plat/irqs.h b/arch/arm/plat-omap/include/plat/irqs.h
index b65088a869e9..401701977dbb 100644
--- a/arch/arm/plat-omap/include/plat/irqs.h
+++ b/arch/arm/plat-omap/include/plat/irqs.h
@@ -345,8 +345,6 @@
345#define INT_34XX_MMC3_IRQ 94 345#define INT_34XX_MMC3_IRQ 94
346#define INT_34XX_GPT12_IRQ 95 346#define INT_34XX_GPT12_IRQ 95
347 347
348#define INT_34XX_BENCH_MPU_EMUL 3
349
350#define INT_35XX_HECC0_IRQ 24 348#define INT_35XX_HECC0_IRQ 24
351#define INT_35XX_HECC1_IRQ 28 349#define INT_35XX_HECC1_IRQ 28
352#define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67 350#define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67
diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-omap/include/plat/mcbsp.h
index 39748354ce45..7de903d7c1ce 100644
--- a/arch/arm/plat-omap/include/plat/mcbsp.h
+++ b/arch/arm/plat-omap/include/plat/mcbsp.h
@@ -59,7 +59,7 @@
59#define OMAP44XX_MCBSP1_BASE 0x49022000 59#define OMAP44XX_MCBSP1_BASE 0x49022000
60#define OMAP44XX_MCBSP2_BASE 0x49024000 60#define OMAP44XX_MCBSP2_BASE 0x49024000
61#define OMAP44XX_MCBSP3_BASE 0x49026000 61#define OMAP44XX_MCBSP3_BASE 0x49026000
62#define OMAP44XX_MCBSP4_BASE 0x48074000 62#define OMAP44XX_MCBSP4_BASE 0x48096000
63 63
64#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) 64#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
65 65
diff --git a/arch/arm/plat-omap/include/plat/nand.h b/arch/arm/plat-omap/include/plat/nand.h
index 6ba88d2630d9..f8efd5466b1d 100644
--- a/arch/arm/plat-omap/include/plat/nand.h
+++ b/arch/arm/plat-omap/include/plat/nand.h
@@ -29,4 +29,11 @@ struct omap_nand_platform_data {
29/* size (4 KiB) for IO mapping */ 29/* size (4 KiB) for IO mapping */
30#define NAND_IO_SIZE SZ_4K 30#define NAND_IO_SIZE SZ_4K
31 31
32#if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
32extern int gpmc_nand_init(struct omap_nand_platform_data *d); 33extern int gpmc_nand_init(struct omap_nand_platform_data *d);
34#else
35static inline int gpmc_nand_init(struct omap_nand_platform_data *d)
36{
37 return 0;
38}
39#endif
diff --git a/arch/arm/plat-omap/include/plat/omap44xx.h b/arch/arm/plat-omap/include/plat/omap44xx.h
index 2302474a3748..b3ef1a7f53cc 100644
--- a/arch/arm/plat-omap/include/plat/omap44xx.h
+++ b/arch/arm/plat-omap/include/plat/omap44xx.h
@@ -32,7 +32,7 @@
32#define OMAP4430_PRM_BASE 0x4a306000 32#define OMAP4430_PRM_BASE 0x4a306000
33#define OMAP44XX_GPMC_BASE 0x50000000 33#define OMAP44XX_GPMC_BASE 0x50000000
34#define OMAP443X_SCM_BASE 0x4a002000 34#define OMAP443X_SCM_BASE 0x4a002000
35#define OMAP443X_CTRL_BASE OMAP443X_SCM_BASE 35#define OMAP443X_CTRL_BASE 0x4a100000
36#define OMAP44XX_IC_BASE 0x48200000 36#define OMAP44XX_IC_BASE 0x48200000
37#define OMAP44XX_IVA_INTC_BASE 0x40000000 37#define OMAP44XX_IVA_INTC_BASE 0x40000000
38#define IRQ_SIR_IRQ 0x0040 38#define IRQ_SIR_IRQ 0x0040
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index 440b4164f2f6..36d6ea56ab51 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -294,8 +294,8 @@ struct omap_hwmod_class_sysconfig {
294 u16 rev_offs; 294 u16 rev_offs;
295 u16 sysc_offs; 295 u16 sysc_offs;
296 u16 syss_offs; 296 u16 syss_offs;
297 u16 sysc_flags;
297 u8 idlemodes; 298 u8 idlemodes;
298 u8 sysc_flags;
299 u8 clockact; 299 u8 clockact;
300 struct omap_hwmod_sysc_fields *sysc_fields; 300 struct omap_hwmod_sysc_fields *sysc_fields;
301}; 301};
diff --git a/arch/arm/plat-omap/include/plat/usb.h b/arch/arm/plat-omap/include/plat/usb.h
index 568578db93b6..876ca8d5e927 100644
--- a/arch/arm/plat-omap/include/plat/usb.h
+++ b/arch/arm/plat-omap/include/plat/usb.h
@@ -46,7 +46,7 @@ struct ehci_hcd_omap_platform_data {
46struct omap_musb_board_data { 46struct omap_musb_board_data {
47 u8 interface_type; 47 u8 interface_type;
48 u8 mode; 48 u8 mode;
49 u8 power; 49 u16 power;
50}; 50};
51 51
52enum musb_interface {MUSB_INTERFACE_ULPI, MUSB_INTERFACE_UTMI}; 52enum musb_interface {MUSB_INTERFACE_ULPI, MUSB_INTERFACE_UTMI};
diff --git a/arch/arm/plat-pxa/dma.c b/arch/arm/plat-pxa/dma.c
index 742350e0f2a7..2d3c19d7c7b1 100644
--- a/arch/arm/plat-pxa/dma.c
+++ b/arch/arm/plat-pxa/dma.c
@@ -245,7 +245,7 @@ static void pxa_dma_init_debugfs(void)
245 245
246 dbgfs_chan = kmalloc(sizeof(*dbgfs_state) * num_dma_channels, 246 dbgfs_chan = kmalloc(sizeof(*dbgfs_state) * num_dma_channels,
247 GFP_KERNEL); 247 GFP_KERNEL);
248 if (!dbgfs_state) 248 if (!dbgfs_chan)
249 goto err_alloc; 249 goto err_alloc;
250 250
251 chandir = debugfs_create_dir("channels", dbgfs_root); 251 chandir = debugfs_create_dir("channels", dbgfs_root);
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index 1536f1784cac..8f10d24ae625 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -12,7 +12,7 @@
12# 12#
13# http://www.arm.linux.org.uk/developer/machines/?action=new 13# http://www.arm.linux.org.uk/developer/machines/?action=new
14# 14#
15# Last update: Sat Mar 20 15:35:41 2010 15# Last update: Sat May 1 10:36:42 2010
16# 16#
17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
18# 18#
@@ -2749,3 +2749,58 @@ stamp9g45 MACH_STAMP9G45 STAMP9G45 2761
2749h6053 MACH_H6053 H6053 2762 2749h6053 MACH_H6053 H6053 2762
2750smint01 MACH_SMINT01 SMINT01 2763 2750smint01 MACH_SMINT01 SMINT01 2763
2751prtlvt2 MACH_PRTLVT2 PRTLVT2 2764 2751prtlvt2 MACH_PRTLVT2 PRTLVT2 2764
2752ap420 MACH_AP420 AP420 2765
2753htcshift MACH_HTCSHIFT HTCSHIFT 2766
2754davinci_dm365_fc MACH_DAVINCI_DM365_FC DAVINCI_DM365_FC 2767
2755msm8x55_surf MACH_MSM8X55_SURF MSM8X55_SURF 2768
2756msm8x55_ffa MACH_MSM8X55_FFA MSM8X55_FFA 2769
2757esl_vamana MACH_ESL_VAMANA ESL_VAMANA 2770
2758sbc35 MACH_SBC35 SBC35 2771
2759mpx6446 MACH_MPX6446 MPX6446 2772
2760oreo_controller MACH_OREO_CONTROLLER OREO_CONTROLLER 2773
2761kopin_models MACH_KOPIN_MODELS KOPIN_MODELS 2774
2762ttc_vision2 MACH_TTC_VISION2 TTC_VISION2 2775
2763cns3420vb MACH_CNS3420VB CNS3420VB 2776
2764lpc2 MACH_LPC2 LPC2 2777
2765olympus MACH_OLYMPUS OLYMPUS 2778
2766vortex MACH_VORTEX VORTEX 2779
2767s5pc200 MACH_S5PC200 S5PC200 2780
2768ecucore_9263 MACH_ECUCORE_9263 ECUCORE_9263 2781
2769smdkc200 MACH_SMDKC200 SMDKC200 2782
2770emsiso_sx27 MACH_EMSISO_SX27 EMSISO_SX27 2783
2771apx_som9g45_ek MACH_APX_SOM9G45_EK APX_SOM9G45_EK 2784
2772songshan MACH_SONGSHAN SONGSHAN 2785
2773tianshan MACH_TIANSHAN TIANSHAN 2786
2774vpx500 MACH_VPX500 VPX500 2787
2775am3517sam MACH_AM3517SAM AM3517SAM 2788
2776skat91_sim508 MACH_SKAT91_SIM508 SKAT91_SIM508 2789
2777skat91_s3e MACH_SKAT91_S3E SKAT91_S3E 2790
2778omap4_panda MACH_OMAP4_PANDA OMAP4_PANDA 2791
2779df7220 MACH_DF7220 DF7220 2792
2780nemini MACH_NEMINI NEMINI 2793
2781t8200 MACH_T8200 T8200 2794
2782apf51 MACH_APF51 APF51 2795
2783dr_rc_unit MACH_DR_RC_UNIT DR_RC_UNIT 2796
2784bordeaux MACH_BORDEAUX BORDEAUX 2797
2785catania_b MACH_CATANIA_B CATANIA_B 2798
2786mx51_ocean MACH_MX51_OCEAN MX51_OCEAN 2799
2787ti8168evm MACH_TI8168EVM TI8168EVM 2800
2788neocoreomap MACH_NEOCOREOMAP NEOCOREOMAP 2801
2789withings_wbp MACH_WITHINGS_WBP WITHINGS_WBP 2802
2790dbps MACH_DBPS DBPS 2803
2791sbc9261 MACH_SBC9261 SBC9261 2804
2792pcbfp0001 MACH_PCBFP0001 PCBFP0001 2805
2793speedy MACH_SPEEDY SPEEDY 2806
2794chrysaor MACH_CHRYSAOR CHRYSAOR 2807
2795tango MACH_TANGO TANGO 2808
2796synology_dsx11 MACH_SYNOLOGY_DSX11 SYNOLOGY_DSX11 2809
2797hanlin_v3ext MACH_HANLIN_V3EXT HANLIN_V3EXT 2810
2798hanlin_v5 MACH_HANLIN_V5 HANLIN_V5 2811
2799hanlin_v3plus MACH_HANLIN_V3PLUS HANLIN_V3PLUS 2812
2800iriver_story MACH_IRIVER_STORY IRIVER_STORY 2813
2801irex_iliad MACH_IREX_ILIAD IREX_ILIAD 2814
2802irex_dr1000 MACH_IREX_DR1000 IREX_DR1000 2815
2803teton_bga MACH_TETON_BGA TETON_BGA 2816
2804snapper9g45 MACH_SNAPPER9G45 SNAPPER9G45 2817
2805tam3517 MACH_TAM3517 TAM3517 2818
2806pdc100 MACH_PDC100 PDC100 2819
diff --git a/arch/avr32/kernel/ptrace.c b/arch/avr32/kernel/ptrace.c
index dd5b882aab40..5e73c25f8f85 100644
--- a/arch/avr32/kernel/ptrace.c
+++ b/arch/avr32/kernel/ptrace.c
@@ -28,7 +28,7 @@ static struct pt_regs *get_user_regs(struct task_struct *tsk)
28 THREAD_SIZE - sizeof(struct pt_regs)); 28 THREAD_SIZE - sizeof(struct pt_regs));
29} 29}
30 30
31static void user_enable_single_step(struct task_struct *tsk) 31void user_enable_single_step(struct task_struct *tsk)
32{ 32{
33 pr_debug("user_enable_single_step: pid=%u, PC=0x%08lx, SR=0x%08lx\n", 33 pr_debug("user_enable_single_step: pid=%u, PC=0x%08lx, SR=0x%08lx\n",
34 tsk->pid, task_pt_regs(tsk)->pc, task_pt_regs(tsk)->sr); 34 tsk->pid, task_pt_regs(tsk)->pc, task_pt_regs(tsk)->sr);
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 73c5c2b05f64..7f3c0a2e60cd 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -1802,7 +1802,8 @@ static int kvm_ia64_sync_dirty_log(struct kvm *kvm,
1802{ 1802{
1803 struct kvm_memory_slot *memslot; 1803 struct kvm_memory_slot *memslot;
1804 int r, i; 1804 int r, i;
1805 long n, base; 1805 long base;
1806 unsigned long n;
1806 unsigned long *dirty_bitmap = (unsigned long *)(kvm->arch.vm_base + 1807 unsigned long *dirty_bitmap = (unsigned long *)(kvm->arch.vm_base +
1807 offsetof(struct kvm_vm_data, kvm_mem_dirty_log)); 1808 offsetof(struct kvm_vm_data, kvm_mem_dirty_log));
1808 1809
@@ -1815,7 +1816,7 @@ static int kvm_ia64_sync_dirty_log(struct kvm *kvm,
1815 if (!memslot->dirty_bitmap) 1816 if (!memslot->dirty_bitmap)
1816 goto out; 1817 goto out;
1817 1818
1818 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 1819 n = kvm_dirty_bitmap_bytes(memslot);
1819 base = memslot->base_gfn / BITS_PER_LONG; 1820 base = memslot->base_gfn / BITS_PER_LONG;
1820 1821
1821 for (i = 0; i < n/sizeof(long); ++i) { 1822 for (i = 0; i < n/sizeof(long); ++i) {
@@ -1831,7 +1832,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1831 struct kvm_dirty_log *log) 1832 struct kvm_dirty_log *log)
1832{ 1833{
1833 int r; 1834 int r;
1834 int n; 1835 unsigned long n;
1835 struct kvm_memory_slot *memslot; 1836 struct kvm_memory_slot *memslot;
1836 int is_dirty = 0; 1837 int is_dirty = 0;
1837 1838
@@ -1850,7 +1851,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1850 if (is_dirty) { 1851 if (is_dirty) {
1851 kvm_flush_remote_tlbs(kvm); 1852 kvm_flush_remote_tlbs(kvm);
1852 memslot = &kvm->memslots->memslots[log->slot]; 1853 memslot = &kvm->memslots->memslots[log->slot];
1853 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 1854 n = kvm_dirty_bitmap_bytes(memslot);
1854 memset(memslot->dirty_bitmap, 0, n); 1855 memset(memslot->dirty_bitmap, 0, n);
1855 } 1856 }
1856 r = 0; 1857 r = 0;
diff --git a/arch/m68k/include/asm/mcfuart.h b/arch/m68k/include/asm/mcfuart.h
index ef2293873612..01a8716c5fc5 100644
--- a/arch/m68k/include/asm/mcfuart.h
+++ b/arch/m68k/include/asm/mcfuart.h
@@ -212,5 +212,10 @@ struct mcf_platform_uart {
212#define MCFUART_URF_RXS 0xc0 /* Receiver status */ 212#define MCFUART_URF_RXS 0xc0 /* Receiver status */
213#endif 213#endif
214 214
215#if defined(CONFIG_M5272)
216#define MCFUART_TXFIFOSIZE 25
217#else
218#define MCFUART_TXFIFOSIZE 1
219#endif
215/****************************************************************************/ 220/****************************************************************************/
216#endif /* mcfuart_h */ 221#endif /* mcfuart_h */
diff --git a/arch/m68knommu/Makefile b/arch/m68knommu/Makefile
index ce404bc9ccbd..14042574ac21 100644
--- a/arch/m68knommu/Makefile
+++ b/arch/m68knommu/Makefile
@@ -94,7 +94,7 @@ cflags-$(CONFIG_M520x) := $(call cc-option,-mcpu=5208,-m5200)
94cflags-$(CONFIG_M523x) := $(call cc-option,-mcpu=523x,-m5307) 94cflags-$(CONFIG_M523x) := $(call cc-option,-mcpu=523x,-m5307)
95cflags-$(CONFIG_M5249) := $(call cc-option,-mcpu=5249,-m5200) 95cflags-$(CONFIG_M5249) := $(call cc-option,-mcpu=5249,-m5200)
96cflags-$(CONFIG_M5271) := $(call cc-option,-mcpu=5271,-m5307) 96cflags-$(CONFIG_M5271) := $(call cc-option,-mcpu=5271,-m5307)
97cflags-$(CONFIG_M5272) := $(call cc-option,-mcpu=5271,-m5200) 97cflags-$(CONFIG_M5272) := $(call cc-option,-mcpu=5272,-m5307)
98cflags-$(CONFIG_M5275) := $(call cc-option,-mcpu=5275,-m5307) 98cflags-$(CONFIG_M5275) := $(call cc-option,-mcpu=5275,-m5307)
99cflags-$(CONFIG_M528x) := $(call cc-option,-m528x,-m5307) 99cflags-$(CONFIG_M528x) := $(call cc-option,-m528x,-m5307)
100cflags-$(CONFIG_M5307) := $(call cc-option,-m5307,-m5200) 100cflags-$(CONFIG_M5307) := $(call cc-option,-m5307,-m5200)
diff --git a/arch/m68knommu/kernel/entry.S b/arch/m68knommu/kernel/entry.S
index 56043ade3941..aff6f57ef8b5 100644
--- a/arch/m68knommu/kernel/entry.S
+++ b/arch/m68knommu/kernel/entry.S
@@ -145,6 +145,6 @@ ENTRY(ret_from_user_signal)
145 trap #0 145 trap #0
146 146
147ENTRY(ret_from_user_rt_signal) 147ENTRY(ret_from_user_rt_signal)
148 move #__NR_rt_sigreturn,%d0 148 movel #__NR_rt_sigreturn,%d0
149 trap #0 149 trap #0
150 150
diff --git a/arch/m68knommu/platform/68360/ints.c b/arch/m68knommu/platform/68360/ints.c
index 1143f77caca4..6f22970d8c20 100644
--- a/arch/m68knommu/platform/68360/ints.c
+++ b/arch/m68knommu/platform/68360/ints.c
@@ -107,7 +107,6 @@ void init_IRQ(void)
107 _ramvec[vba+CPMVEC_PIO_PC7] = inthandler; /* pio - pc7 */ 107 _ramvec[vba+CPMVEC_PIO_PC7] = inthandler; /* pio - pc7 */
108 _ramvec[vba+CPMVEC_PIO_PC6] = inthandler; /* pio - pc6 */ 108 _ramvec[vba+CPMVEC_PIO_PC6] = inthandler; /* pio - pc6 */
109 _ramvec[vba+CPMVEC_TIMER3] = inthandler; /* timer 3 */ 109 _ramvec[vba+CPMVEC_TIMER3] = inthandler; /* timer 3 */
110 _ramvec[vba+CPMVEC_RISCTIMER] = inthandler; /* reserved */
111 _ramvec[vba+CPMVEC_PIO_PC5] = inthandler; /* pio - pc5 */ 110 _ramvec[vba+CPMVEC_PIO_PC5] = inthandler; /* pio - pc5 */
112 _ramvec[vba+CPMVEC_PIO_PC4] = inthandler; /* pio - pc4 */ 111 _ramvec[vba+CPMVEC_PIO_PC4] = inthandler; /* pio - pc4 */
113 _ramvec[vba+CPMVEC_RESERVED2] = inthandler; /* reserved */ 112 _ramvec[vba+CPMVEC_RESERVED2] = inthandler; /* reserved */
diff --git a/arch/microblaze/configs/mmu_defconfig b/arch/microblaze/configs/mmu_defconfig
index 6fced1fe3bf0..3c91cf6192c6 100644
--- a/arch/microblaze/configs/mmu_defconfig
+++ b/arch/microblaze/configs/mmu_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.33-rc6 3# Linux kernel version: 2.6.34-rc6
4# Wed Feb 3 10:02:59 2010 4# Thu May 6 11:22:14 2010
5# 5#
6CONFIG_MICROBLAZE=y 6CONFIG_MICROBLAZE=y
7# CONFIG_SWAP is not set 7# CONFIG_SWAP is not set
@@ -22,8 +22,6 @@ CONFIG_GENERIC_CSUM=y
22CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 24CONFIG_HAVE_LATENCYTOP_SUPPORT=y
25# CONFIG_PCI is not set
26CONFIG_NO_DMA=y
27CONFIG_DTC=y 25CONFIG_DTC=y
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29CONFIG_CONSTRUCTORS=y 27CONFIG_CONSTRUCTORS=y
@@ -56,7 +54,6 @@ CONFIG_RCU_FANOUT=32
56CONFIG_IKCONFIG=y 54CONFIG_IKCONFIG=y
57CONFIG_IKCONFIG_PROC=y 55CONFIG_IKCONFIG_PROC=y
58CONFIG_LOG_BUF_SHIFT=17 56CONFIG_LOG_BUF_SHIFT=17
59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set 57# CONFIG_CGROUPS is not set
61CONFIG_SYSFS_DEPRECATED=y 58CONFIG_SYSFS_DEPRECATED=y
62CONFIG_SYSFS_DEPRECATED_V2=y 59CONFIG_SYSFS_DEPRECATED_V2=y
@@ -106,6 +103,8 @@ CONFIG_SLAB=y
106# CONFIG_SLOB is not set 103# CONFIG_SLOB is not set
107# CONFIG_PROFILING is not set 104# CONFIG_PROFILING is not set
108CONFIG_HAVE_OPROFILE=y 105CONFIG_HAVE_OPROFILE=y
106CONFIG_HAVE_DMA_ATTRS=y
107CONFIG_HAVE_DMA_API_DEBUG=y
109 108
110# 109#
111# GCOV-based kernel profiling 110# GCOV-based kernel profiling
@@ -245,13 +244,20 @@ CONFIG_BINFMT_ELF=y
245# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 244# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
246# CONFIG_HAVE_AOUT is not set 245# CONFIG_HAVE_AOUT is not set
247# CONFIG_BINFMT_MISC is not set 246# CONFIG_BINFMT_MISC is not set
247
248#
249# Bus Options
250#
251# CONFIG_PCI is not set
252# CONFIG_PCI_DOMAINS is not set
253# CONFIG_PCI_SYSCALL is not set
254# CONFIG_ARCH_SUPPORTS_MSI is not set
248CONFIG_NET=y 255CONFIG_NET=y
249 256
250# 257#
251# Networking options 258# Networking options
252# 259#
253CONFIG_PACKET=y 260CONFIG_PACKET=y
254# CONFIG_PACKET_MMAP is not set
255CONFIG_UNIX=y 261CONFIG_UNIX=y
256CONFIG_XFRM=y 262CONFIG_XFRM=y
257# CONFIG_XFRM_USER is not set 263# CONFIG_XFRM_USER is not set
@@ -341,7 +347,9 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
341# CONFIG_SYS_HYPERVISOR is not set 347# CONFIG_SYS_HYPERVISOR is not set
342# CONFIG_CONNECTOR is not set 348# CONFIG_CONNECTOR is not set
343# CONFIG_MTD is not set 349# CONFIG_MTD is not set
350CONFIG_OF_FLATTREE=y
344CONFIG_OF_DEVICE=y 351CONFIG_OF_DEVICE=y
352CONFIG_OF_MDIO=y
345# CONFIG_PARPORT is not set 353# CONFIG_PARPORT is not set
346CONFIG_BLK_DEV=y 354CONFIG_BLK_DEV=y
347# CONFIG_BLK_DEV_COW_COMMON is not set 355# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -370,6 +378,7 @@ CONFIG_MISC_DEVICES=y
370# 378#
371# SCSI device support 379# SCSI device support
372# 380#
381CONFIG_SCSI_MOD=y
373# CONFIG_RAID_ATTRS is not set 382# CONFIG_RAID_ATTRS is not set
374# CONFIG_SCSI is not set 383# CONFIG_SCSI is not set
375# CONFIG_SCSI_DMA is not set 384# CONFIG_SCSI_DMA is not set
@@ -383,9 +392,30 @@ CONFIG_NETDEVICES=y
383# CONFIG_EQUALIZER is not set 392# CONFIG_EQUALIZER is not set
384# CONFIG_TUN is not set 393# CONFIG_TUN is not set
385# CONFIG_VETH is not set 394# CONFIG_VETH is not set
386# CONFIG_PHYLIB is not set 395CONFIG_PHYLIB=y
396
397#
398# MII PHY device drivers
399#
400# CONFIG_MARVELL_PHY is not set
401# CONFIG_DAVICOM_PHY is not set
402# CONFIG_QSEMI_PHY is not set
403# CONFIG_LXT_PHY is not set
404# CONFIG_CICADA_PHY is not set
405# CONFIG_VITESSE_PHY is not set
406# CONFIG_SMSC_PHY is not set
407# CONFIG_BROADCOM_PHY is not set
408# CONFIG_ICPLUS_PHY is not set
409# CONFIG_REALTEK_PHY is not set
410# CONFIG_NATIONAL_PHY is not set
411# CONFIG_STE10XP is not set
412# CONFIG_LSI_ET1011C_PHY is not set
413# CONFIG_MICREL_PHY is not set
414# CONFIG_FIXED_PHY is not set
415# CONFIG_MDIO_BITBANG is not set
387CONFIG_NET_ETHERNET=y 416CONFIG_NET_ETHERNET=y
388# CONFIG_MII is not set 417# CONFIG_MII is not set
418# CONFIG_ETHOC is not set
389# CONFIG_DNET is not set 419# CONFIG_DNET is not set
390# CONFIG_IBM_NEW_EMAC_ZMII is not set 420# CONFIG_IBM_NEW_EMAC_ZMII is not set
391# CONFIG_IBM_NEW_EMAC_RGMII is not set 421# CONFIG_IBM_NEW_EMAC_RGMII is not set
@@ -394,6 +424,7 @@ CONFIG_NET_ETHERNET=y
394# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set 424# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
395# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 425# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
396# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 426# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
427# CONFIG_B44 is not set
397# CONFIG_KS8842 is not set 428# CONFIG_KS8842 is not set
398# CONFIG_KS8851_MLL is not set 429# CONFIG_KS8851_MLL is not set
399CONFIG_XILINX_EMACLITE=y 430CONFIG_XILINX_EMACLITE=y
@@ -444,6 +475,7 @@ CONFIG_SERIAL_UARTLITE=y
444CONFIG_SERIAL_UARTLITE_CONSOLE=y 475CONFIG_SERIAL_UARTLITE_CONSOLE=y
445CONFIG_SERIAL_CORE=y 476CONFIG_SERIAL_CORE=y
446CONFIG_SERIAL_CORE_CONSOLE=y 477CONFIG_SERIAL_CORE_CONSOLE=y
478# CONFIG_SERIAL_TIMBERDALE is not set
447# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 479# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
448CONFIG_UNIX98_PTYS=y 480CONFIG_UNIX98_PTYS=y
449# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 481# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -471,6 +503,12 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
471# CONFIG_HWMON is not set 503# CONFIG_HWMON is not set
472# CONFIG_THERMAL is not set 504# CONFIG_THERMAL is not set
473# CONFIG_WATCHDOG is not set 505# CONFIG_WATCHDOG is not set
506CONFIG_SSB_POSSIBLE=y
507
508#
509# Sonics Silicon Backplane
510#
511# CONFIG_SSB is not set
474 512
475# 513#
476# Multifunction device drivers 514# Multifunction device drivers
@@ -502,6 +540,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
502# CONFIG_NEW_LEDS is not set 540# CONFIG_NEW_LEDS is not set
503# CONFIG_ACCESSIBILITY is not set 541# CONFIG_ACCESSIBILITY is not set
504# CONFIG_RTC_CLASS is not set 542# CONFIG_RTC_CLASS is not set
543# CONFIG_DMADEVICES is not set
505# CONFIG_AUXDISPLAY is not set 544# CONFIG_AUXDISPLAY is not set
506# CONFIG_UIO is not set 545# CONFIG_UIO is not set
507 546
@@ -572,6 +611,7 @@ CONFIG_MISC_FILESYSTEMS=y
572# CONFIG_BEFS_FS is not set 611# CONFIG_BEFS_FS is not set
573# CONFIG_BFS_FS is not set 612# CONFIG_BFS_FS is not set
574# CONFIG_EFS_FS is not set 613# CONFIG_EFS_FS is not set
614# CONFIG_LOGFS is not set
575# CONFIG_CRAMFS is not set 615# CONFIG_CRAMFS is not set
576# CONFIG_SQUASHFS is not set 616# CONFIG_SQUASHFS is not set
577# CONFIG_VXFS_FS is not set 617# CONFIG_VXFS_FS is not set
@@ -595,6 +635,7 @@ CONFIG_SUNRPC=y
595# CONFIG_RPCSEC_GSS_KRB5 is not set 635# CONFIG_RPCSEC_GSS_KRB5 is not set
596# CONFIG_RPCSEC_GSS_SPKM3 is not set 636# CONFIG_RPCSEC_GSS_SPKM3 is not set
597# CONFIG_SMB_FS is not set 637# CONFIG_SMB_FS is not set
638# CONFIG_CEPH_FS is not set
598CONFIG_CIFS=y 639CONFIG_CIFS=y
599CONFIG_CIFS_STATS=y 640CONFIG_CIFS_STATS=y
600CONFIG_CIFS_STATS2=y 641CONFIG_CIFS_STATS2=y
@@ -696,6 +737,7 @@ CONFIG_SCHED_DEBUG=y
696# CONFIG_DEBUG_OBJECTS is not set 737# CONFIG_DEBUG_OBJECTS is not set
697CONFIG_DEBUG_SLAB=y 738CONFIG_DEBUG_SLAB=y
698# CONFIG_DEBUG_SLAB_LEAK is not set 739# CONFIG_DEBUG_SLAB_LEAK is not set
740# CONFIG_DEBUG_KMEMLEAK is not set
699CONFIG_DEBUG_SPINLOCK=y 741CONFIG_DEBUG_SPINLOCK=y
700# CONFIG_DEBUG_MUTEXES is not set 742# CONFIG_DEBUG_MUTEXES is not set
701# CONFIG_DEBUG_LOCK_ALLOC is not set 743# CONFIG_DEBUG_LOCK_ALLOC is not set
@@ -741,6 +783,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
741# CONFIG_KMEMTRACE is not set 783# CONFIG_KMEMTRACE is not set
742# CONFIG_WORKQUEUE_TRACER is not set 784# CONFIG_WORKQUEUE_TRACER is not set
743# CONFIG_BLK_DEV_IO_TRACE is not set 785# CONFIG_BLK_DEV_IO_TRACE is not set
786# CONFIG_DMA_API_DEBUG is not set
744# CONFIG_SAMPLES is not set 787# CONFIG_SAMPLES is not set
745CONFIG_EARLY_PRINTK=y 788CONFIG_EARLY_PRINTK=y
746# CONFIG_HEART_BEAT is not set 789# CONFIG_HEART_BEAT is not set
@@ -862,5 +905,6 @@ CONFIG_ZLIB_INFLATE=y
862CONFIG_DECOMPRESS_GZIP=y 905CONFIG_DECOMPRESS_GZIP=y
863CONFIG_HAS_IOMEM=y 906CONFIG_HAS_IOMEM=y
864CONFIG_HAS_IOPORT=y 907CONFIG_HAS_IOPORT=y
908CONFIG_HAS_DMA=y
865CONFIG_HAVE_LMB=y 909CONFIG_HAVE_LMB=y
866CONFIG_NLATTR=y 910CONFIG_NLATTR=y
diff --git a/arch/microblaze/configs/nommu_defconfig b/arch/microblaze/configs/nommu_defconfig
index ce2da535246a..dd3a494257f4 100644
--- a/arch/microblaze/configs/nommu_defconfig
+++ b/arch/microblaze/configs/nommu_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.33-rc6 3# Linux kernel version: 2.6.34-rc6
4# Wed Feb 3 10:03:21 2010 4# Thu May 6 11:25:12 2010
5# 5#
6CONFIG_MICROBLAZE=y 6CONFIG_MICROBLAZE=y
7# CONFIG_SWAP is not set 7# CONFIG_SWAP is not set
@@ -22,8 +22,6 @@ CONFIG_GENERIC_CSUM=y
22CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
23CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
24CONFIG_HAVE_LATENCYTOP_SUPPORT=y 24CONFIG_HAVE_LATENCYTOP_SUPPORT=y
25# CONFIG_PCI is not set
26CONFIG_NO_DMA=y
27CONFIG_DTC=y 25CONFIG_DTC=y
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29CONFIG_CONSTRUCTORS=y 27CONFIG_CONSTRUCTORS=y
@@ -58,7 +56,6 @@ CONFIG_RCU_FANOUT=32
58CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
59CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
60CONFIG_LOG_BUF_SHIFT=17 58CONFIG_LOG_BUF_SHIFT=17
61# CONFIG_GROUP_SCHED is not set
62# CONFIG_CGROUPS is not set 59# CONFIG_CGROUPS is not set
63CONFIG_SYSFS_DEPRECATED=y 60CONFIG_SYSFS_DEPRECATED=y
64CONFIG_SYSFS_DEPRECATED_V2=y 61CONFIG_SYSFS_DEPRECATED_V2=y
@@ -96,6 +93,8 @@ CONFIG_SLAB=y
96# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set 93# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set
97# CONFIG_PROFILING is not set 94# CONFIG_PROFILING is not set
98CONFIG_HAVE_OPROFILE=y 95CONFIG_HAVE_OPROFILE=y
96CONFIG_HAVE_DMA_ATTRS=y
97CONFIG_HAVE_DMA_API_DEBUG=y
99 98
100# 99#
101# GCOV-based kernel profiling 100# GCOV-based kernel profiling
@@ -209,11 +208,14 @@ CONFIG_PROC_DEVICETREE=y
209# 208#
210# Advanced setup 209# Advanced setup
211# 210#
211# CONFIG_ADVANCED_OPTIONS is not set
212 212
213# 213#
214# Default settings for advanced configuration options are used 214# Default settings for advanced configuration options are used
215# 215#
216CONFIG_LOWMEM_SIZE=0x30000000
216CONFIG_KERNEL_START=0x90000000 217CONFIG_KERNEL_START=0x90000000
218CONFIG_TASK_SIZE=0x80000000
217CONFIG_SELECT_MEMORY_MODEL=y 219CONFIG_SELECT_MEMORY_MODEL=y
218CONFIG_FLATMEM_MANUAL=y 220CONFIG_FLATMEM_MANUAL=y
219# CONFIG_DISCONTIGMEM_MANUAL is not set 221# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -235,13 +237,20 @@ CONFIG_BINFMT_FLAT=y
235# CONFIG_BINFMT_SHARED_FLAT is not set 237# CONFIG_BINFMT_SHARED_FLAT is not set
236# CONFIG_HAVE_AOUT is not set 238# CONFIG_HAVE_AOUT is not set
237# CONFIG_BINFMT_MISC is not set 239# CONFIG_BINFMT_MISC is not set
240
241#
242# Bus Options
243#
244# CONFIG_PCI is not set
245# CONFIG_PCI_DOMAINS is not set
246# CONFIG_PCI_SYSCALL is not set
247# CONFIG_ARCH_SUPPORTS_MSI is not set
238CONFIG_NET=y 248CONFIG_NET=y
239 249
240# 250#
241# Networking options 251# Networking options
242# 252#
243CONFIG_PACKET=y 253CONFIG_PACKET=y
244# CONFIG_PACKET_MMAP is not set
245CONFIG_UNIX=y 254CONFIG_UNIX=y
246CONFIG_XFRM=y 255CONFIG_XFRM=y
247# CONFIG_XFRM_USER is not set 256# CONFIG_XFRM_USER is not set
@@ -413,6 +422,7 @@ CONFIG_MTD_UCLINUX=y
413# UBI - Unsorted block images 422# UBI - Unsorted block images
414# 423#
415# CONFIG_MTD_UBI is not set 424# CONFIG_MTD_UBI is not set
425CONFIG_OF_FLATTREE=y
416CONFIG_OF_DEVICE=y 426CONFIG_OF_DEVICE=y
417# CONFIG_PARPORT is not set 427# CONFIG_PARPORT is not set
418CONFIG_BLK_DEV=y 428CONFIG_BLK_DEV=y
@@ -442,6 +452,7 @@ CONFIG_MISC_DEVICES=y
442# 452#
443# SCSI device support 453# SCSI device support
444# 454#
455CONFIG_SCSI_MOD=y
445# CONFIG_RAID_ATTRS is not set 456# CONFIG_RAID_ATTRS is not set
446# CONFIG_SCSI is not set 457# CONFIG_SCSI is not set
447# CONFIG_SCSI_DMA is not set 458# CONFIG_SCSI_DMA is not set
@@ -458,6 +469,7 @@ CONFIG_NETDEVICES=y
458# CONFIG_PHYLIB is not set 469# CONFIG_PHYLIB is not set
459CONFIG_NET_ETHERNET=y 470CONFIG_NET_ETHERNET=y
460# CONFIG_MII is not set 471# CONFIG_MII is not set
472# CONFIG_ETHOC is not set
461# CONFIG_DNET is not set 473# CONFIG_DNET is not set
462# CONFIG_IBM_NEW_EMAC_ZMII is not set 474# CONFIG_IBM_NEW_EMAC_ZMII is not set
463# CONFIG_IBM_NEW_EMAC_RGMII is not set 475# CONFIG_IBM_NEW_EMAC_RGMII is not set
@@ -466,6 +478,7 @@ CONFIG_NET_ETHERNET=y
466# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set 478# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
467# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 479# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
468# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 480# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
481# CONFIG_B44 is not set
469# CONFIG_KS8842 is not set 482# CONFIG_KS8842 is not set
470# CONFIG_KS8851_MLL is not set 483# CONFIG_KS8851_MLL is not set
471# CONFIG_XILINX_EMACLITE is not set 484# CONFIG_XILINX_EMACLITE is not set
@@ -516,6 +529,7 @@ CONFIG_SERIAL_UARTLITE=y
516CONFIG_SERIAL_UARTLITE_CONSOLE=y 529CONFIG_SERIAL_UARTLITE_CONSOLE=y
517CONFIG_SERIAL_CORE=y 530CONFIG_SERIAL_CORE=y
518CONFIG_SERIAL_CORE_CONSOLE=y 531CONFIG_SERIAL_CORE_CONSOLE=y
532# CONFIG_SERIAL_TIMBERDALE is not set
519# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 533# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
520CONFIG_UNIX98_PTYS=y 534CONFIG_UNIX98_PTYS=y
521# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 535# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -544,6 +558,12 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
544# CONFIG_HWMON is not set 558# CONFIG_HWMON is not set
545# CONFIG_THERMAL is not set 559# CONFIG_THERMAL is not set
546# CONFIG_WATCHDOG is not set 560# CONFIG_WATCHDOG is not set
561CONFIG_SSB_POSSIBLE=y
562
563#
564# Sonics Silicon Backplane
565#
566# CONFIG_SSB is not set
547 567
548# 568#
549# Multifunction device drivers 569# Multifunction device drivers
@@ -593,6 +613,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
593# CONFIG_NEW_LEDS is not set 613# CONFIG_NEW_LEDS is not set
594# CONFIG_ACCESSIBILITY is not set 614# CONFIG_ACCESSIBILITY is not set
595# CONFIG_RTC_CLASS is not set 615# CONFIG_RTC_CLASS is not set
616# CONFIG_DMADEVICES is not set
596# CONFIG_AUXDISPLAY is not set 617# CONFIG_AUXDISPLAY is not set
597# CONFIG_UIO is not set 618# CONFIG_UIO is not set
598 619
@@ -661,6 +682,7 @@ CONFIG_MISC_FILESYSTEMS=y
661# CONFIG_BFS_FS is not set 682# CONFIG_BFS_FS is not set
662# CONFIG_EFS_FS is not set 683# CONFIG_EFS_FS is not set
663# CONFIG_JFFS2_FS is not set 684# CONFIG_JFFS2_FS is not set
685# CONFIG_LOGFS is not set
664CONFIG_CRAMFS=y 686CONFIG_CRAMFS=y
665# CONFIG_SQUASHFS is not set 687# CONFIG_SQUASHFS is not set
666# CONFIG_VXFS_FS is not set 688# CONFIG_VXFS_FS is not set
@@ -689,6 +711,7 @@ CONFIG_SUNRPC=y
689# CONFIG_RPCSEC_GSS_KRB5 is not set 711# CONFIG_RPCSEC_GSS_KRB5 is not set
690# CONFIG_RPCSEC_GSS_SPKM3 is not set 712# CONFIG_RPCSEC_GSS_SPKM3 is not set
691# CONFIG_SMB_FS is not set 713# CONFIG_SMB_FS is not set
714# CONFIG_CEPH_FS is not set
692# CONFIG_CIFS is not set 715# CONFIG_CIFS is not set
693# CONFIG_NCP_FS is not set 716# CONFIG_NCP_FS is not set
694# CONFIG_CODA_FS is not set 717# CONFIG_CODA_FS is not set
@@ -733,6 +756,7 @@ CONFIG_DEBUG_OBJECTS_TIMERS=y
733# CONFIG_DEBUG_OBJECTS_WORK is not set 756# CONFIG_DEBUG_OBJECTS_WORK is not set
734CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 757CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
735# CONFIG_DEBUG_SLAB is not set 758# CONFIG_DEBUG_SLAB is not set
759# CONFIG_DEBUG_KMEMLEAK is not set
736# CONFIG_DEBUG_RT_MUTEXES is not set 760# CONFIG_DEBUG_RT_MUTEXES is not set
737# CONFIG_RT_MUTEX_TESTER is not set 761# CONFIG_RT_MUTEX_TESTER is not set
738# CONFIG_DEBUG_SPINLOCK is not set 762# CONFIG_DEBUG_SPINLOCK is not set
@@ -758,6 +782,7 @@ CONFIG_DEBUG_SG=y
758# CONFIG_BACKTRACE_SELF_TEST is not set 782# CONFIG_BACKTRACE_SELF_TEST is not set
759# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 783# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
760# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 784# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
785# CONFIG_LKDTM is not set
761# CONFIG_FAULT_INJECTION is not set 786# CONFIG_FAULT_INJECTION is not set
762# CONFIG_LATENCYTOP is not set 787# CONFIG_LATENCYTOP is not set
763CONFIG_SYSCTL_SYSCALL_CHECK=y 788CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -782,6 +807,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
782# CONFIG_WORKQUEUE_TRACER is not set 807# CONFIG_WORKQUEUE_TRACER is not set
783# CONFIG_BLK_DEV_IO_TRACE is not set 808# CONFIG_BLK_DEV_IO_TRACE is not set
784# CONFIG_DYNAMIC_DEBUG is not set 809# CONFIG_DYNAMIC_DEBUG is not set
810# CONFIG_DMA_API_DEBUG is not set
785# CONFIG_SAMPLES is not set 811# CONFIG_SAMPLES is not set
786CONFIG_EARLY_PRINTK=y 812CONFIG_EARLY_PRINTK=y
787# CONFIG_HEART_BEAT is not set 813# CONFIG_HEART_BEAT is not set
@@ -901,5 +927,6 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
901CONFIG_ZLIB_INFLATE=y 927CONFIG_ZLIB_INFLATE=y
902CONFIG_HAS_IOMEM=y 928CONFIG_HAS_IOMEM=y
903CONFIG_HAS_IOPORT=y 929CONFIG_HAS_IOPORT=y
930CONFIG_HAS_DMA=y
904CONFIG_HAVE_LMB=y 931CONFIG_HAVE_LMB=y
905CONFIG_NLATTR=y 932CONFIG_NLATTR=y
diff --git a/arch/microblaze/include/asm/cache.h b/arch/microblaze/include/asm/cache.h
index e52210891d78..4efe96a036f7 100644
--- a/arch/microblaze/include/asm/cache.h
+++ b/arch/microblaze/include/asm/cache.h
@@ -15,7 +15,7 @@
15 15
16#include <asm/registers.h> 16#include <asm/registers.h>
17 17
18#define L1_CACHE_SHIFT 2 18#define L1_CACHE_SHIFT 5
19/* word-granular cache in microblaze */ 19/* word-granular cache in microblaze */
20#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) 20#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
21 21
diff --git a/arch/microblaze/include/asm/dma.h b/arch/microblaze/include/asm/dma.h
index 08c073badf19..0d73d0c6de37 100644
--- a/arch/microblaze/include/asm/dma.h
+++ b/arch/microblaze/include/asm/dma.h
@@ -18,4 +18,10 @@
18#define MAX_DMA_ADDRESS (CONFIG_KERNEL_START + memory_size - 1) 18#define MAX_DMA_ADDRESS (CONFIG_KERNEL_START + memory_size - 1)
19#endif 19#endif
20 20
21#ifdef CONFIG_PCI
22extern int isa_dma_bridge_buggy;
23#else
24#define isa_dma_bridge_buggy (0)
25#endif
26
21#endif /* _ASM_MICROBLAZE_DMA_H */ 27#endif /* _ASM_MICROBLAZE_DMA_H */
diff --git a/arch/microblaze/include/asm/exceptions.h b/arch/microblaze/include/asm/exceptions.h
index 90731df9e574..4c7b5d037c88 100644
--- a/arch/microblaze/include/asm/exceptions.h
+++ b/arch/microblaze/include/asm/exceptions.h
@@ -64,12 +64,6 @@ asmlinkage void full_exception(struct pt_regs *regs, unsigned int type,
64void die(const char *str, struct pt_regs *fp, long err); 64void die(const char *str, struct pt_regs *fp, long err);
65void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr); 65void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr);
66 66
67#ifdef CONFIG_MMU
68void __bug(const char *file, int line, void *data);
69int bad_trap(int trap_num, struct pt_regs *regs);
70int debug_trap(struct pt_regs *regs);
71#endif /* CONFIG_MMU */
72
73#if defined(CONFIG_KGDB) 67#if defined(CONFIG_KGDB)
74void (*debugger)(struct pt_regs *regs); 68void (*debugger)(struct pt_regs *regs);
75int (*debugger_bpt)(struct pt_regs *regs); 69int (*debugger_bpt)(struct pt_regs *regs);
diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
index e45a6eea92e0..00b5398d08c7 100644
--- a/arch/microblaze/include/asm/io.h
+++ b/arch/microblaze/include/asm/io.h
@@ -139,8 +139,6 @@ static inline void writel(unsigned int v, volatile void __iomem *addr)
139 139
140#ifdef CONFIG_MMU 140#ifdef CONFIG_MMU
141 141
142#define mm_ptov(addr) ((void *)__phys_to_virt(addr))
143#define mm_vtop(addr) ((unsigned long)__virt_to_phys(addr))
144#define phys_to_virt(addr) ((void *)__phys_to_virt(addr)) 142#define phys_to_virt(addr) ((void *)__phys_to_virt(addr))
145#define virt_to_phys(addr) ((unsigned long)__virt_to_phys(addr)) 143#define virt_to_phys(addr) ((unsigned long)__virt_to_phys(addr))
146#define virt_to_bus(addr) ((unsigned long)__virt_to_phys(addr)) 144#define virt_to_bus(addr) ((unsigned long)__virt_to_phys(addr))
diff --git a/arch/microblaze/include/asm/page.h b/arch/microblaze/include/asm/page.h
index 2dd1d04129e0..de493f86d28f 100644
--- a/arch/microblaze/include/asm/page.h
+++ b/arch/microblaze/include/asm/page.h
@@ -31,6 +31,9 @@
31 31
32#ifndef __ASSEMBLY__ 32#ifndef __ASSEMBLY__
33 33
34/* MS be sure that SLAB allocates aligned objects */
35#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES
36
34#define PAGE_UP(addr) (((addr)+((PAGE_SIZE)-1))&(~((PAGE_SIZE)-1))) 37#define PAGE_UP(addr) (((addr)+((PAGE_SIZE)-1))&(~((PAGE_SIZE)-1)))
35#define PAGE_DOWN(addr) ((addr)&(~((PAGE_SIZE)-1))) 38#define PAGE_DOWN(addr) ((addr)&(~((PAGE_SIZE)-1)))
36 39
@@ -70,14 +73,7 @@ typedef unsigned long pte_basic_t;
70 73
71#endif /* CONFIG_MMU */ 74#endif /* CONFIG_MMU */
72 75
73# ifndef CONFIG_MMU 76# define copy_page(to, from) memcpy((to), (from), PAGE_SIZE)
74# define copy_page(to, from) memcpy((to), (from), PAGE_SIZE)
75# define get_user_page(vaddr) __get_free_page(GFP_KERNEL)
76# define free_user_page(page, addr) free_page(addr)
77# else /* CONFIG_MMU */
78extern void copy_page(void *to, void *from);
79# endif /* CONFIG_MMU */
80
81# define clear_page(pgaddr) memset((pgaddr), 0, PAGE_SIZE) 77# define clear_page(pgaddr) memset((pgaddr), 0, PAGE_SIZE)
82 78
83# define clear_user_page(pgaddr, vaddr, page) memset((pgaddr), 0, PAGE_SIZE) 79# define clear_user_page(pgaddr, vaddr, page) memset((pgaddr), 0, PAGE_SIZE)
diff --git a/arch/microblaze/include/asm/pci.h b/arch/microblaze/include/asm/pci.h
index bdd65aaee30d..5a388eeeb28f 100644
--- a/arch/microblaze/include/asm/pci.h
+++ b/arch/microblaze/include/asm/pci.h
@@ -94,14 +94,6 @@ extern int pci_mmap_legacy_page_range(struct pci_bus *bus,
94 94
95#define HAVE_PCI_LEGACY 1 95#define HAVE_PCI_LEGACY 1
96 96
97/* pci_unmap_{page,single} is a nop so... */
98#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME)
99#define DECLARE_PCI_UNMAP_LEN(LEN_NAME)
100#define pci_unmap_addr(PTR, ADDR_NAME) (0)
101#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0)
102#define pci_unmap_len(PTR, LEN_NAME) (0)
103#define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0)
104
105/* The PCI address space does equal the physical memory 97/* The PCI address space does equal the physical memory
106 * address space (no IOMMU). The IDE and SCSI device layers use 98 * address space (no IOMMU). The IDE and SCSI device layers use
107 * this boolean for bounce buffer decisions. 99 * this boolean for bounce buffer decisions.
diff --git a/arch/microblaze/include/asm/pgalloc.h b/arch/microblaze/include/asm/pgalloc.h
index f44b0d696fe2..c614a893f8a3 100644
--- a/arch/microblaze/include/asm/pgalloc.h
+++ b/arch/microblaze/include/asm/pgalloc.h
@@ -108,21 +108,7 @@ extern inline void free_pgd_slow(pgd_t *pgd)
108#define pmd_alloc_one_fast(mm, address) ({ BUG(); ((pmd_t *)1); }) 108#define pmd_alloc_one_fast(mm, address) ({ BUG(); ((pmd_t *)1); })
109#define pmd_alloc_one(mm, address) ({ BUG(); ((pmd_t *)2); }) 109#define pmd_alloc_one(mm, address) ({ BUG(); ((pmd_t *)2); })
110 110
111static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, 111extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr);
112 unsigned long address)
113{
114 pte_t *pte;
115 extern void *early_get_page(void);
116 if (mem_init_done) {
117 pte = (pte_t *)__get_free_page(GFP_KERNEL |
118 __GFP_REPEAT | __GFP_ZERO);
119 } else {
120 pte = (pte_t *)early_get_page();
121 if (pte)
122 clear_page(pte);
123 }
124 return pte;
125}
126 112
127static inline struct page *pte_alloc_one(struct mm_struct *mm, 113static inline struct page *pte_alloc_one(struct mm_struct *mm,
128 unsigned long address) 114 unsigned long address)
diff --git a/arch/microblaze/include/asm/pgtable.h b/arch/microblaze/include/asm/pgtable.h
index dd2bb60651c7..ca2d92871545 100644
--- a/arch/microblaze/include/asm/pgtable.h
+++ b/arch/microblaze/include/asm/pgtable.h
@@ -512,15 +512,6 @@ static inline pmd_t *pmd_offset(pgd_t *dir, unsigned long address)
512extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; 512extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
513 513
514/* 514/*
515 * When flushing the tlb entry for a page, we also need to flush the hash
516 * table entry. flush_hash_page is assembler (for speed) in hashtable.S.
517 */
518extern int flush_hash_page(unsigned context, unsigned long va, pte_t *ptep);
519
520/* Add an HPTE to the hash table */
521extern void add_hash_page(unsigned context, unsigned long va, pte_t *ptep);
522
523/*
524 * Encode and decode a swap entry. 515 * Encode and decode a swap entry.
525 * Note that the bits we use in a PTE for representing a swap entry 516 * Note that the bits we use in a PTE for representing a swap entry
526 * must not include the _PAGE_PRESENT bit, or the _PAGE_HASHPTE bit 517 * must not include the _PAGE_PRESENT bit, or the _PAGE_HASHPTE bit
@@ -533,15 +524,7 @@ extern void add_hash_page(unsigned context, unsigned long va, pte_t *ptep);
533#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> 2 }) 524#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> 2 })
534#define __swp_entry_to_pte(x) ((pte_t) { (x).val << 2 }) 525#define __swp_entry_to_pte(x) ((pte_t) { (x).val << 2 })
535 526
536
537/* CONFIG_APUS */
538/* For virtual address to physical address conversion */
539extern void cache_clear(__u32 addr, int length);
540extern void cache_push(__u32 addr, int length);
541extern int mm_end_of_chunk(unsigned long addr, int len);
542extern unsigned long iopa(unsigned long addr); 527extern unsigned long iopa(unsigned long addr);
543/* extern unsigned long mm_ptov(unsigned long addr) \
544 __attribute__ ((const)); TBD */
545 528
546/* Values for nocacheflag and cmode */ 529/* Values for nocacheflag and cmode */
547/* These are not used by the APUS kernel_map, but prevents 530/* These are not used by the APUS kernel_map, but prevents
@@ -552,18 +535,6 @@ extern unsigned long iopa(unsigned long addr);
552#define IOMAP_NOCACHE_NONSER 2 535#define IOMAP_NOCACHE_NONSER 2
553#define IOMAP_NO_COPYBACK 3 536#define IOMAP_NO_COPYBACK 3
554 537
555/*
556 * Map some physical address range into the kernel address space.
557 */
558extern unsigned long kernel_map(unsigned long paddr, unsigned long size,
559 int nocacheflag, unsigned long *memavailp);
560
561/*
562 * Set cache mode of (kernel space) address range.
563 */
564extern void kernel_set_cachemode(unsigned long address, unsigned long size,
565 unsigned int cmode);
566
567/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */ 538/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
568#define kern_addr_valid(addr) (1) 539#define kern_addr_valid(addr) (1)
569 540
@@ -577,10 +548,6 @@ extern void kernel_set_cachemode(unsigned long address, unsigned long size,
577void do_page_fault(struct pt_regs *regs, unsigned long address, 548void do_page_fault(struct pt_regs *regs, unsigned long address,
578 unsigned long error_code); 549 unsigned long error_code);
579 550
580void __init io_block_mapping(unsigned long virt, phys_addr_t phys,
581 unsigned int size, int flags);
582
583void __init adjust_total_lowmem(void);
584void mapin_ram(void); 551void mapin_ram(void);
585int map_page(unsigned long va, phys_addr_t pa, int flags); 552int map_page(unsigned long va, phys_addr_t pa, int flags);
586 553
@@ -601,7 +568,7 @@ void __init *early_get_page(void);
601extern unsigned long ioremap_bot, ioremap_base; 568extern unsigned long ioremap_bot, ioremap_base;
602 569
603void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle); 570void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle);
604void consistent_free(void *vaddr); 571void consistent_free(size_t size, void *vaddr);
605void consistent_sync(void *vaddr, size_t size, int direction); 572void consistent_sync(void *vaddr, size_t size, int direction);
606void consistent_sync_page(struct page *page, unsigned long offset, 573void consistent_sync_page(struct page *page, unsigned long offset,
607 size_t size, int direction); 574 size_t size, int direction);
diff --git a/arch/microblaze/kernel/asm-offsets.c b/arch/microblaze/kernel/asm-offsets.c
index 0071260a672c..c1b459c97571 100644
--- a/arch/microblaze/kernel/asm-offsets.c
+++ b/arch/microblaze/kernel/asm-offsets.c
@@ -16,6 +16,7 @@
16#include <linux/hardirq.h> 16#include <linux/hardirq.h>
17#include <linux/thread_info.h> 17#include <linux/thread_info.h>
18#include <linux/kbuild.h> 18#include <linux/kbuild.h>
19#include <asm/cpuinfo.h>
19 20
20int main(int argc, char *argv[]) 21int main(int argc, char *argv[])
21{ 22{
diff --git a/arch/microblaze/kernel/cpu/cache.c b/arch/microblaze/kernel/cpu/cache.c
index f04d8a86dead..21c3a92394de 100644
--- a/arch/microblaze/kernel/cpu/cache.c
+++ b/arch/microblaze/kernel/cpu/cache.c
@@ -96,13 +96,16 @@ static inline void __disable_dcache_nomsr(void)
96} 96}
97 97
98 98
99/* Helper macro for computing the limits of cache range loops */ 99/* Helper macro for computing the limits of cache range loops
100 *
101 * End address can be unaligned which is OK for C implementation.
102 * ASM implementation align it in ASM macros
103 */
100#define CACHE_LOOP_LIMITS(start, end, cache_line_length, cache_size) \ 104#define CACHE_LOOP_LIMITS(start, end, cache_line_length, cache_size) \
101do { \ 105do { \
102 int align = ~(cache_line_length - 1); \ 106 int align = ~(cache_line_length - 1); \
103 end = min(start + cache_size, end); \ 107 end = min(start + cache_size, end); \
104 start &= align; \ 108 start &= align; \
105 end = ((end & align) + cache_line_length); \
106} while (0); 109} while (0);
107 110
108/* 111/*
@@ -111,9 +114,9 @@ do { \
111 */ 114 */
112#define CACHE_ALL_LOOP(cache_size, line_length, op) \ 115#define CACHE_ALL_LOOP(cache_size, line_length, op) \
113do { \ 116do { \
114 unsigned int len = cache_size; \ 117 unsigned int len = cache_size - line_length; \
115 int step = -line_length; \ 118 int step = -line_length; \
116 BUG_ON(step >= 0); \ 119 WARN_ON(step >= 0); \
117 \ 120 \
118 __asm__ __volatile__ (" 1: " #op " %0, r0; \ 121 __asm__ __volatile__ (" 1: " #op " %0, r0; \
119 bgtid %0, 1b; \ 122 bgtid %0, 1b; \
@@ -122,26 +125,21 @@ do { \
122 : "memory"); \ 125 : "memory"); \
123} while (0); 126} while (0);
124 127
125 128/* Used for wdc.flush/clear which can use rB for offset which is not possible
126#define CACHE_ALL_LOOP2(cache_size, line_length, op) \ 129 * to use for simple wdc or wic.
127do { \ 130 *
128 unsigned int len = cache_size; \ 131 * start address is cache aligned
129 int step = -line_length; \ 132 * end address is not aligned, if end is aligned then I have to substract
130 BUG_ON(step >= 0); \ 133 * cacheline length because I can't flush/invalidate the next cacheline.
131 \ 134 * If is not, I align it because I will flush/invalidate whole line.
132 __asm__ __volatile__ (" 1: " #op " r0, %0; \ 135 */
133 bgtid %0, 1b; \
134 addk %0, %0, %1; \
135 " : : "r" (len), "r" (step) \
136 : "memory"); \
137} while (0);
138
139/* for wdc.flush/clear */
140#define CACHE_RANGE_LOOP_2(start, end, line_length, op) \ 136#define CACHE_RANGE_LOOP_2(start, end, line_length, op) \
141do { \ 137do { \
142 int step = -line_length; \ 138 int step = -line_length; \
139 int align = ~(line_length - 1); \
140 end = ((end & align) == end) ? end - line_length : end & align; \
143 int count = end - start; \ 141 int count = end - start; \
144 BUG_ON(count <= 0); \ 142 WARN_ON(count < 0); \
145 \ 143 \
146 __asm__ __volatile__ (" 1: " #op " %0, %1; \ 144 __asm__ __volatile__ (" 1: " #op " %0, %1; \
147 bgtid %1, 1b; \ 145 bgtid %1, 1b; \
@@ -154,7 +152,9 @@ do { \
154#define CACHE_RANGE_LOOP_1(start, end, line_length, op) \ 152#define CACHE_RANGE_LOOP_1(start, end, line_length, op) \
155do { \ 153do { \
156 int volatile temp; \ 154 int volatile temp; \
157 BUG_ON(end - start <= 0); \ 155 int align = ~(line_length - 1); \
156 end = ((end & align) == end) ? end - line_length : end & align; \
157 WARN_ON(end - start < 0); \
158 \ 158 \
159 __asm__ __volatile__ (" 1: " #op " %1, r0; \ 159 __asm__ __volatile__ (" 1: " #op " %1, r0; \
160 cmpu %0, %1, %2; \ 160 cmpu %0, %1, %2; \
@@ -360,8 +360,12 @@ static void __invalidate_dcache_all_noirq_wt(void)
360#endif 360#endif
361} 361}
362 362
363/* FIXME this is weird - should be only wdc but not work 363/* FIXME It is blindly invalidation as is expected
364 * MS: I am getting bus errors and other weird things */ 364 * but can't be called on noMMU in microblaze_cache_init below
365 *
366 * MS: noMMU kernel won't boot if simple wdc is used
367 * The reason should be that there are discared data which kernel needs
368 */
365static void __invalidate_dcache_all_wb(void) 369static void __invalidate_dcache_all_wb(void)
366{ 370{
367#ifndef ASM_LOOP 371#ifndef ASM_LOOP
@@ -369,12 +373,12 @@ static void __invalidate_dcache_all_wb(void)
369#endif 373#endif
370 pr_debug("%s\n", __func__); 374 pr_debug("%s\n", __func__);
371#ifdef ASM_LOOP 375#ifdef ASM_LOOP
372 CACHE_ALL_LOOP2(cpuinfo.dcache_size, cpuinfo.dcache_line_length, 376 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length,
373 wdc.clear) 377 wdc)
374#else 378#else
375 for (i = 0; i < cpuinfo.dcache_size; 379 for (i = 0; i < cpuinfo.dcache_size;
376 i += cpuinfo.dcache_line_length) 380 i += cpuinfo.dcache_line_length)
377 __asm__ __volatile__ ("wdc.clear %0, r0;" \ 381 __asm__ __volatile__ ("wdc %0, r0;" \
378 : : "r" (i)); 382 : : "r" (i));
379#endif 383#endif
380} 384}
@@ -393,7 +397,7 @@ static void __invalidate_dcache_range_wb(unsigned long start,
393#ifdef ASM_LOOP 397#ifdef ASM_LOOP
394 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.clear); 398 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.clear);
395#else 399#else
396 for (i = start; i < end; i += cpuinfo.icache_line_length) 400 for (i = start; i < end; i += cpuinfo.dcache_line_length)
397 __asm__ __volatile__ ("wdc.clear %0, r0;" \ 401 __asm__ __volatile__ ("wdc.clear %0, r0;" \
398 : : "r" (i)); 402 : : "r" (i));
399#endif 403#endif
@@ -413,7 +417,7 @@ static void __invalidate_dcache_range_nomsr_wt(unsigned long start,
413#ifdef ASM_LOOP 417#ifdef ASM_LOOP
414 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); 418 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc);
415#else 419#else
416 for (i = start; i < end; i += cpuinfo.icache_line_length) 420 for (i = start; i < end; i += cpuinfo.dcache_line_length)
417 __asm__ __volatile__ ("wdc %0, r0;" \ 421 __asm__ __volatile__ ("wdc %0, r0;" \
418 : : "r" (i)); 422 : : "r" (i));
419#endif 423#endif
@@ -437,7 +441,7 @@ static void __invalidate_dcache_range_msr_irq_wt(unsigned long start,
437#ifdef ASM_LOOP 441#ifdef ASM_LOOP
438 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); 442 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc);
439#else 443#else
440 for (i = start; i < end; i += cpuinfo.icache_line_length) 444 for (i = start; i < end; i += cpuinfo.dcache_line_length)
441 __asm__ __volatile__ ("wdc %0, r0;" \ 445 __asm__ __volatile__ ("wdc %0, r0;" \
442 : : "r" (i)); 446 : : "r" (i));
443#endif 447#endif
@@ -465,7 +469,7 @@ static void __invalidate_dcache_range_nomsr_irq(unsigned long start,
465#ifdef ASM_LOOP 469#ifdef ASM_LOOP
466 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); 470 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc);
467#else 471#else
468 for (i = start; i < end; i += cpuinfo.icache_line_length) 472 for (i = start; i < end; i += cpuinfo.dcache_line_length)
469 __asm__ __volatile__ ("wdc %0, r0;" \ 473 __asm__ __volatile__ ("wdc %0, r0;" \
470 : : "r" (i)); 474 : : "r" (i));
471#endif 475#endif
@@ -504,7 +508,7 @@ static void __flush_dcache_range_wb(unsigned long start, unsigned long end)
504#ifdef ASM_LOOP 508#ifdef ASM_LOOP
505 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.flush); 509 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.flush);
506#else 510#else
507 for (i = start; i < end; i += cpuinfo.icache_line_length) 511 for (i = start; i < end; i += cpuinfo.dcache_line_length)
508 __asm__ __volatile__ ("wdc.flush %0, r0;" \ 512 __asm__ __volatile__ ("wdc.flush %0, r0;" \
509 : : "r" (i)); 513 : : "r" (i));
510#endif 514#endif
@@ -650,7 +654,11 @@ void microblaze_cache_init(void)
650 } 654 }
651 } 655 }
652 } 656 }
653 invalidate_dcache(); 657/* FIXME Invalidation is done in U-BOOT
658 * WT cache: Data is already written to main memory
659 * WB cache: Discard data on noMMU which caused that kernel doesn't boot
660 */
661 /* invalidate_dcache(); */
654 enable_dcache(); 662 enable_dcache();
655 663
656 invalidate_icache(); 664 invalidate_icache();
diff --git a/arch/microblaze/kernel/cpu/mb.c b/arch/microblaze/kernel/cpu/mb.c
index 0c912b2a8e03..4216eb1eaa32 100644
--- a/arch/microblaze/kernel/cpu/mb.c
+++ b/arch/microblaze/kernel/cpu/mb.c
@@ -98,15 +98,17 @@ static int show_cpuinfo(struct seq_file *m, void *v)
98 98
99 if (cpuinfo.use_icache) 99 if (cpuinfo.use_icache)
100 count += seq_printf(m, 100 count += seq_printf(m,
101 "Icache:\t\t%ukB\n", 101 "Icache:\t\t%ukB\tline length:\t%dB\n",
102 cpuinfo.icache_size >> 10); 102 cpuinfo.icache_size >> 10,
103 cpuinfo.icache_line_length);
103 else 104 else
104 count += seq_printf(m, "Icache:\t\tno\n"); 105 count += seq_printf(m, "Icache:\t\tno\n");
105 106
106 if (cpuinfo.use_dcache) { 107 if (cpuinfo.use_dcache) {
107 count += seq_printf(m, 108 count += seq_printf(m,
108 "Dcache:\t\t%ukB\n", 109 "Dcache:\t\t%ukB\tline length:\t%dB\n",
109 cpuinfo.dcache_size >> 10); 110 cpuinfo.dcache_size >> 10,
111 cpuinfo.dcache_line_length);
110 if (cpuinfo.dcache_wb) 112 if (cpuinfo.dcache_wb)
111 count += seq_printf(m, "\t\twrite-back\n"); 113 count += seq_printf(m, "\t\twrite-back\n");
112 else 114 else
diff --git a/arch/microblaze/kernel/dma.c b/arch/microblaze/kernel/dma.c
index ce72dd4967cf..9dcd90b5df55 100644
--- a/arch/microblaze/kernel/dma.c
+++ b/arch/microblaze/kernel/dma.c
@@ -74,7 +74,7 @@ static void dma_direct_free_coherent(struct device *dev, size_t size,
74 void *vaddr, dma_addr_t dma_handle) 74 void *vaddr, dma_addr_t dma_handle)
75{ 75{
76#ifdef NOT_COHERENT_CACHE 76#ifdef NOT_COHERENT_CACHE
77 consistent_free(vaddr); 77 consistent_free(size, vaddr);
78#else 78#else
79 free_pages((unsigned long)vaddr, get_order(size)); 79 free_pages((unsigned long)vaddr, get_order(size));
80#endif 80#endif
diff --git a/arch/microblaze/kernel/exceptions.c b/arch/microblaze/kernel/exceptions.c
index d9f70f83097f..02cbdfe5aa8d 100644
--- a/arch/microblaze/kernel/exceptions.c
+++ b/arch/microblaze/kernel/exceptions.c
@@ -121,7 +121,7 @@ asmlinkage void full_exception(struct pt_regs *regs, unsigned int type,
121 } 121 }
122 printk(KERN_WARNING "Divide by zero exception " \ 122 printk(KERN_WARNING "Divide by zero exception " \
123 "in kernel mode.\n"); 123 "in kernel mode.\n");
124 die("Divide by exception", regs, SIGBUS); 124 die("Divide by zero exception", regs, SIGBUS);
125 break; 125 break;
126 case MICROBLAZE_FPU_EXCEPTION: 126 case MICROBLAZE_FPU_EXCEPTION:
127 pr_debug(KERN_WARNING "FPU exception\n"); 127 pr_debug(KERN_WARNING "FPU exception\n");
diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
index da6a5f5dc766..1bf739888260 100644
--- a/arch/microblaze/kernel/head.S
+++ b/arch/microblaze/kernel/head.S
@@ -28,6 +28,7 @@
28 * for more details. 28 * for more details.
29 */ 29 */
30 30
31#include <linux/init.h>
31#include <linux/linkage.h> 32#include <linux/linkage.h>
32#include <asm/thread_info.h> 33#include <asm/thread_info.h>
33#include <asm/page.h> 34#include <asm/page.h>
@@ -49,7 +50,7 @@ swapper_pg_dir:
49 50
50#endif /* CONFIG_MMU */ 51#endif /* CONFIG_MMU */
51 52
52 .text 53 __HEAD
53ENTRY(_start) 54ENTRY(_start)
54#if CONFIG_KERNEL_BASE_ADDR == 0 55#if CONFIG_KERNEL_BASE_ADDR == 0
55 brai TOPHYS(real_start) 56 brai TOPHYS(real_start)
diff --git a/arch/microblaze/kernel/irq.c b/arch/microblaze/kernel/irq.c
index 6f39e2c001f3..8f120aca123d 100644
--- a/arch/microblaze/kernel/irq.c
+++ b/arch/microblaze/kernel/irq.c
@@ -9,6 +9,7 @@
9 */ 9 */
10 10
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/ftrace.h>
12#include <linux/kernel.h> 13#include <linux/kernel.h>
13#include <linux/hardirq.h> 14#include <linux/hardirq.h>
14#include <linux/interrupt.h> 15#include <linux/interrupt.h>
@@ -32,7 +33,7 @@ EXPORT_SYMBOL_GPL(irq_of_parse_and_map);
32 33
33static u32 concurrent_irq; 34static u32 concurrent_irq;
34 35
35void do_IRQ(struct pt_regs *regs) 36void __irq_entry do_IRQ(struct pt_regs *regs)
36{ 37{
37 unsigned int irq; 38 unsigned int irq;
38 struct pt_regs *old_regs = set_irq_regs(regs); 39 struct pt_regs *old_regs = set_irq_regs(regs);
diff --git a/arch/microblaze/kernel/misc.S b/arch/microblaze/kernel/misc.S
index 7cf86498326c..0fb5fc6c1fc2 100644
--- a/arch/microblaze/kernel/misc.S
+++ b/arch/microblaze/kernel/misc.S
@@ -93,39 +93,3 @@ early_console_reg_tlb_alloc:
93 nop 93 nop
94 94
95 .size early_console_reg_tlb_alloc, . - early_console_reg_tlb_alloc 95 .size early_console_reg_tlb_alloc, . - early_console_reg_tlb_alloc
96
97/*
98 * Copy a whole page (4096 bytes).
99 */
100#define COPY_16_BYTES \
101 lwi r7, r6, 0; \
102 lwi r8, r6, 4; \
103 lwi r9, r6, 8; \
104 lwi r10, r6, 12; \
105 swi r7, r5, 0; \
106 swi r8, r5, 4; \
107 swi r9, r5, 8; \
108 swi r10, r5, 12
109
110
111/* FIXME DCACHE_LINE_BYTES (CONFIG_XILINX_MICROBLAZE0_DCACHE_LINE_LEN * 4)*/
112#define DCACHE_LINE_BYTES (4 * 4)
113
114.globl copy_page;
115.type copy_page, @function
116.align 4;
117copy_page:
118 ori r11, r0, (PAGE_SIZE/DCACHE_LINE_BYTES) - 1
119_copy_page_loop:
120 COPY_16_BYTES
121#if DCACHE_LINE_BYTES >= 32
122 COPY_16_BYTES
123#endif
124 addik r6, r6, DCACHE_LINE_BYTES
125 addik r5, r5, DCACHE_LINE_BYTES
126 bneid r11, _copy_page_loop
127 addik r11, r11, -1
128 rtsd r15, 8
129 nop
130
131 .size copy_page, . - copy_page
diff --git a/arch/microblaze/kernel/traps.c b/arch/microblaze/kernel/traps.c
index 5e4570ef515c..75e49202a5ed 100644
--- a/arch/microblaze/kernel/traps.c
+++ b/arch/microblaze/kernel/traps.c
@@ -95,37 +95,3 @@ void dump_stack(void)
95 show_stack(NULL, NULL); 95 show_stack(NULL, NULL);
96} 96}
97EXPORT_SYMBOL(dump_stack); 97EXPORT_SYMBOL(dump_stack);
98
99#ifdef CONFIG_MMU
100void __bug(const char *file, int line, void *data)
101{
102 if (data)
103 printk(KERN_CRIT "kernel BUG at %s:%d (data = %p)!\n",
104 file, line, data);
105 else
106 printk(KERN_CRIT "kernel BUG at %s:%d!\n", file, line);
107
108 machine_halt();
109}
110
111int bad_trap(int trap_num, struct pt_regs *regs)
112{
113 printk(KERN_CRIT
114 "unimplemented trap %d called at 0x%08lx, pid %d!\n",
115 trap_num, regs->pc, current->pid);
116 return -ENOSYS;
117}
118
119int debug_trap(struct pt_regs *regs)
120{
121 int i;
122 printk(KERN_CRIT "debug trap\n");
123 for (i = 0; i < 32; i++) {
124 /* printk("r%i:%08X\t",i,regs->gpr[i]); */
125 if ((i % 4) == 3)
126 printk(KERN_CRIT "\n");
127 }
128 printk(KERN_CRIT "pc:%08lX\tmsr:%08lX\n", regs->pc, regs->msr);
129 return -ENOSYS;
130}
131#endif
diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S
index 5ef619aad634..db72d7124602 100644
--- a/arch/microblaze/kernel/vmlinux.lds.S
+++ b/arch/microblaze/kernel/vmlinux.lds.S
@@ -24,7 +24,8 @@ SECTIONS {
24 .text : AT(ADDR(.text) - LOAD_OFFSET) { 24 .text : AT(ADDR(.text) - LOAD_OFFSET) {
25 _text = . ; 25 _text = . ;
26 _stext = . ; 26 _stext = . ;
27 *(.text .text.*) 27 HEAD_TEXT
28 TEXT_TEXT
28 *(.fixup) 29 *(.fixup)
29 EXIT_TEXT 30 EXIT_TEXT
30 EXIT_CALL 31 EXIT_CALL
diff --git a/arch/microblaze/mm/consistent.c b/arch/microblaze/mm/consistent.c
index f956e24fe49c..5a59dad62bd2 100644
--- a/arch/microblaze/mm/consistent.c
+++ b/arch/microblaze/mm/consistent.c
@@ -42,11 +42,12 @@
42#include <linux/uaccess.h> 42#include <linux/uaccess.h>
43#include <asm/pgtable.h> 43#include <asm/pgtable.h>
44#include <asm/cpuinfo.h> 44#include <asm/cpuinfo.h>
45#include <asm/tlbflush.h>
45 46
46#ifndef CONFIG_MMU 47#ifndef CONFIG_MMU
47
48/* I have to use dcache values because I can't relate on ram size */ 48/* I have to use dcache values because I can't relate on ram size */
49#define UNCACHED_SHADOW_MASK (cpuinfo.dcache_high - cpuinfo.dcache_base + 1) 49# define UNCACHED_SHADOW_MASK (cpuinfo.dcache_high - cpuinfo.dcache_base + 1)
50#endif
50 51
51/* 52/*
52 * Consistent memory allocators. Used for DMA devices that want to 53 * Consistent memory allocators. Used for DMA devices that want to
@@ -60,71 +61,16 @@
60 */ 61 */
61void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle) 62void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle)
62{ 63{
63 struct page *page, *end, *free; 64 unsigned long order, vaddr;
64 unsigned long order; 65 void *ret;
65 void *ret, *virt; 66 unsigned int i, err = 0;
66 67 struct page *page, *end;
67 if (in_interrupt())
68 BUG();
69
70 size = PAGE_ALIGN(size);
71 order = get_order(size);
72
73 page = alloc_pages(gfp, order);
74 if (!page)
75 goto no_page;
76
77 /* We could do with a page_to_phys and page_to_bus here. */
78 virt = page_address(page);
79 ret = ioremap(virt_to_phys(virt), size);
80 if (!ret)
81 goto no_remap;
82
83 /*
84 * Here's the magic! Note if the uncached shadow is not implemented,
85 * it's up to the calling code to also test that condition and make
86 * other arranegments, such as manually flushing the cache and so on.
87 */
88#ifdef CONFIG_XILINX_UNCACHED_SHADOW
89 ret = (void *)((unsigned) ret | UNCACHED_SHADOW_MASK);
90#endif
91 /* dma_handle is same as physical (shadowed) address */
92 *dma_handle = (dma_addr_t)ret;
93
94 /*
95 * free wasted pages. We skip the first page since we know
96 * that it will have count = 1 and won't require freeing.
97 * We also mark the pages in use as reserved so that
98 * remap_page_range works.
99 */
100 page = virt_to_page(virt);
101 free = page + (size >> PAGE_SHIFT);
102 end = page + (1 << order);
103
104 for (; page < end; page++) {
105 init_page_count(page);
106 if (page >= free)
107 __free_page(page);
108 else
109 SetPageReserved(page);
110 }
111
112 return ret;
113no_remap:
114 __free_pages(page, order);
115no_page:
116 return NULL;
117}
118
119#else
120 68
121void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle) 69#ifdef CONFIG_MMU
122{
123 int order, err, i;
124 unsigned long page, va, flags;
125 phys_addr_t pa; 70 phys_addr_t pa;
126 struct vm_struct *area; 71 struct vm_struct *area;
127 void *ret; 72 unsigned long va;
73#endif
128 74
129 if (in_interrupt()) 75 if (in_interrupt())
130 BUG(); 76 BUG();
@@ -133,71 +79,133 @@ void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle)
133 size = PAGE_ALIGN(size); 79 size = PAGE_ALIGN(size);
134 order = get_order(size); 80 order = get_order(size);
135 81
136 page = __get_free_pages(gfp, order); 82 vaddr = __get_free_pages(gfp, order);
137 if (!page) { 83 if (!vaddr)
138 BUG();
139 return NULL; 84 return NULL;
140 }
141 85
142 /* 86 /*
143 * we need to ensure that there are no cachelines in use, 87 * we need to ensure that there are no cachelines in use,
144 * or worse dirty in this area. 88 * or worse dirty in this area.
145 */ 89 */
146 flush_dcache_range(virt_to_phys(page), virt_to_phys(page) + size); 90 flush_dcache_range(virt_to_phys((void *)vaddr),
91 virt_to_phys((void *)vaddr) + size);
147 92
93#ifndef CONFIG_MMU
94 ret = (void *)vaddr;
95 /*
96 * Here's the magic! Note if the uncached shadow is not implemented,
97 * it's up to the calling code to also test that condition and make
98 * other arranegments, such as manually flushing the cache and so on.
99 */
100# ifdef CONFIG_XILINX_UNCACHED_SHADOW
101 ret = (void *)((unsigned) ret | UNCACHED_SHADOW_MASK);
102# endif
103 if ((unsigned int)ret > cpuinfo.dcache_base &&
104 (unsigned int)ret < cpuinfo.dcache_high)
105 printk(KERN_WARNING
106 "ERROR: Your cache coherent area is CACHED!!!\n");
107
108 /* dma_handle is same as physical (shadowed) address */
109 *dma_handle = (dma_addr_t)ret;
110#else
148 /* Allocate some common virtual space to map the new pages. */ 111 /* Allocate some common virtual space to map the new pages. */
149 area = get_vm_area(size, VM_ALLOC); 112 area = get_vm_area(size, VM_ALLOC);
150 if (area == NULL) { 113 if (!area) {
151 free_pages(page, order); 114 free_pages(vaddr, order);
152 return NULL; 115 return NULL;
153 } 116 }
154 va = (unsigned long) area->addr; 117 va = (unsigned long) area->addr;
155 ret = (void *)va; 118 ret = (void *)va;
156 119
157 /* This gives us the real physical address of the first page. */ 120 /* This gives us the real physical address of the first page. */
158 *dma_handle = pa = virt_to_bus((void *)page); 121 *dma_handle = pa = virt_to_bus((void *)vaddr);
159 122#endif
160 /* MS: This is the whole magic - use cache inhibit pages */
161 flags = _PAGE_KERNEL | _PAGE_NO_CACHE;
162 123
163 /* 124 /*
164 * Set refcount=1 on all pages in an order>0 125 * free wasted pages. We skip the first page since we know
165 * allocation so that vfree() will actually 126 * that it will have count = 1 and won't require freeing.
166 * free all pages that were allocated. 127 * We also mark the pages in use as reserved so that
128 * remap_page_range works.
167 */ 129 */
168 if (order > 0) { 130 page = virt_to_page(vaddr);
169 struct page *rpage = virt_to_page(page); 131 end = page + (1 << order);
170 for (i = 1; i < (1 << order); i++) 132
171 init_page_count(rpage+i); 133 split_page(page, order);
134
135 for (i = 0; i < size && err == 0; i += PAGE_SIZE) {
136#ifdef CONFIG_MMU
137 /* MS: This is the whole magic - use cache inhibit pages */
138 err = map_page(va + i, pa + i, _PAGE_KERNEL | _PAGE_NO_CACHE);
139#endif
140
141 SetPageReserved(page);
142 page++;
172 } 143 }
173 144
174 err = 0; 145 /* Free the otherwise unused pages. */
175 for (i = 0; i < size && err == 0; i += PAGE_SIZE) 146 while (page < end) {
176 err = map_page(va+i, pa+i, flags); 147 __free_page(page);
148 page++;
149 }
177 150
178 if (err) { 151 if (err) {
179 vfree((void *)va); 152 free_pages(vaddr, order);
180 return NULL; 153 return NULL;
181 } 154 }
182 155
183 return ret; 156 return ret;
184} 157}
185#endif /* CONFIG_MMU */
186EXPORT_SYMBOL(consistent_alloc); 158EXPORT_SYMBOL(consistent_alloc);
187 159
188/* 160/*
189 * free page(s) as defined by the above mapping. 161 * free page(s) as defined by the above mapping.
190 */ 162 */
191void consistent_free(void *vaddr) 163void consistent_free(size_t size, void *vaddr)
192{ 164{
165 struct page *page;
166
193 if (in_interrupt()) 167 if (in_interrupt())
194 BUG(); 168 BUG();
195 169
170 size = PAGE_ALIGN(size);
171
172#ifndef CONFIG_MMU
196 /* Clear SHADOW_MASK bit in address, and free as per usual */ 173 /* Clear SHADOW_MASK bit in address, and free as per usual */
197#ifdef CONFIG_XILINX_UNCACHED_SHADOW 174# ifdef CONFIG_XILINX_UNCACHED_SHADOW
198 vaddr = (void *)((unsigned)vaddr & ~UNCACHED_SHADOW_MASK); 175 vaddr = (void *)((unsigned)vaddr & ~UNCACHED_SHADOW_MASK);
176# endif
177 page = virt_to_page(vaddr);
178
179 do {
180 ClearPageReserved(page);
181 __free_page(page);
182 page++;
183 } while (size -= PAGE_SIZE);
184#else
185 do {
186 pte_t *ptep;
187 unsigned long pfn;
188
189 ptep = pte_offset_kernel(pmd_offset(pgd_offset_k(
190 (unsigned int)vaddr),
191 (unsigned int)vaddr),
192 (unsigned int)vaddr);
193 if (!pte_none(*ptep) && pte_present(*ptep)) {
194 pfn = pte_pfn(*ptep);
195 pte_clear(&init_mm, (unsigned int)vaddr, ptep);
196 if (pfn_valid(pfn)) {
197 page = pfn_to_page(pfn);
198
199 ClearPageReserved(page);
200 __free_page(page);
201 }
202 }
203 vaddr += PAGE_SIZE;
204 } while (size -= PAGE_SIZE);
205
206 /* flush tlb */
207 flush_tlb_all();
199#endif 208#endif
200 vfree(vaddr);
201} 209}
202EXPORT_SYMBOL(consistent_free); 210EXPORT_SYMBOL(consistent_free);
203 211
@@ -221,7 +229,7 @@ void consistent_sync(void *vaddr, size_t size, int direction)
221 case PCI_DMA_NONE: 229 case PCI_DMA_NONE:
222 BUG(); 230 BUG();
223 case PCI_DMA_FROMDEVICE: /* invalidate only */ 231 case PCI_DMA_FROMDEVICE: /* invalidate only */
224 flush_dcache_range(start, end); 232 invalidate_dcache_range(start, end);
225 break; 233 break;
226 case PCI_DMA_TODEVICE: /* writeback only */ 234 case PCI_DMA_TODEVICE: /* writeback only */
227 flush_dcache_range(start, end); 235 flush_dcache_range(start, end);
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c
index 7af87f4b2c2c..bab922993185 100644
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -273,16 +273,11 @@ bad_area_nosemaphore:
273 * us unable to handle the page fault gracefully. 273 * us unable to handle the page fault gracefully.
274 */ 274 */
275out_of_memory: 275out_of_memory:
276 if (current->pid == 1) {
277 yield();
278 down_read(&mm->mmap_sem);
279 goto survive;
280 }
281 up_read(&mm->mmap_sem); 276 up_read(&mm->mmap_sem);
282 printk(KERN_WARNING "VM: killing process %s\n", current->comm); 277 if (!user_mode(regs))
283 if (user_mode(regs)) 278 bad_page_fault(regs, address, SIGKILL);
284 do_exit(SIGKILL); 279 else
285 bad_page_fault(regs, address, SIGKILL); 280 pagefault_out_of_memory();
286 return; 281 return;
287 282
288do_sigbus: 283do_sigbus:
diff --git a/arch/microblaze/mm/pgtable.c b/arch/microblaze/mm/pgtable.c
index d31312cde6ea..784557fb28cf 100644
--- a/arch/microblaze/mm/pgtable.c
+++ b/arch/microblaze/mm/pgtable.c
@@ -161,24 +161,6 @@ int map_page(unsigned long va, phys_addr_t pa, int flags)
161 return err; 161 return err;
162} 162}
163 163
164void __init adjust_total_lowmem(void)
165{
166/* TBD */
167#if 0
168 unsigned long max_low_mem = MAX_LOW_MEM;
169
170 if (total_lowmem > max_low_mem) {
171 total_lowmem = max_low_mem;
172#ifndef CONFIG_HIGHMEM
173 printk(KERN_INFO "Warning, memory limited to %ld Mb, use "
174 "CONFIG_HIGHMEM to reach %ld Mb\n",
175 max_low_mem >> 20, total_memory >> 20);
176 total_memory = total_lowmem;
177#endif /* CONFIG_HIGHMEM */
178 }
179#endif
180}
181
182/* 164/*
183 * Map in all of physical memory starting at CONFIG_KERNEL_START. 165 * Map in all of physical memory starting at CONFIG_KERNEL_START.
184 */ 166 */
@@ -206,24 +188,6 @@ void __init mapin_ram(void)
206/* is x a power of 2? */ 188/* is x a power of 2? */
207#define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0)) 189#define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0))
208 190
209/*
210 * Set up a mapping for a block of I/O.
211 * virt, phys, size must all be page-aligned.
212 * This should only be called before ioremap is called.
213 */
214void __init io_block_mapping(unsigned long virt, phys_addr_t phys,
215 unsigned int size, int flags)
216{
217 int i;
218
219 if (virt > CONFIG_KERNEL_START && virt < ioremap_bot)
220 ioremap_bot = ioremap_base = virt;
221
222 /* Put it in the page tables. */
223 for (i = 0; i < size; i += PAGE_SIZE)
224 map_page(virt + i, phys + i, flags);
225}
226
227/* Scan the real Linux page tables and return a PTE pointer for 191/* Scan the real Linux page tables and return a PTE pointer for
228 * a virtual address in a context. 192 * a virtual address in a context.
229 * Returns true (1) if PTE was found, zero otherwise. The pointer to 193 * Returns true (1) if PTE was found, zero otherwise. The pointer to
@@ -274,3 +238,18 @@ unsigned long iopa(unsigned long addr)
274 238
275 return pa; 239 return pa;
276} 240}
241
242__init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
243 unsigned long address)
244{
245 pte_t *pte;
246 if (mem_init_done) {
247 pte = (pte_t *)__get_free_page(GFP_KERNEL |
248 __GFP_REPEAT | __GFP_ZERO);
249 } else {
250 pte = (pte_t *)early_get_page();
251 if (pte)
252 clear_page(pte);
253 }
254 return pte;
255}
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c
index 740bb32ec57e..01c8c97c15b7 100644
--- a/arch/microblaze/pci/pci-common.c
+++ b/arch/microblaze/pci/pci-common.c
@@ -1025,7 +1025,7 @@ static void __devinit pcibios_fixup_bridge(struct pci_bus *bus)
1025 1025
1026 struct pci_dev *dev = bus->self; 1026 struct pci_dev *dev = bus->self;
1027 1027
1028 for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) { 1028 pci_bus_for_each_resource(bus, res, i) {
1029 res = bus->resource[i]; 1029 res = bus->resource[i];
1030 if (!res) 1030 if (!res)
1031 continue; 1031 continue;
@@ -1131,21 +1131,20 @@ static int skip_isa_ioresource_align(struct pci_dev *dev)
1131 * but we want to try to avoid allocating at 0x2900-0x2bff 1131 * but we want to try to avoid allocating at 0x2900-0x2bff
1132 * which might have be mirrored at 0x0100-0x03ff.. 1132 * which might have be mirrored at 0x0100-0x03ff..
1133 */ 1133 */
1134void pcibios_align_resource(void *data, struct resource *res, 1134resource_size_t pcibios_align_resource(void *data, const struct resource *res,
1135 resource_size_t size, resource_size_t align) 1135 resource_size_t size, resource_size_t align)
1136{ 1136{
1137 struct pci_dev *dev = data; 1137 struct pci_dev *dev = data;
1138 resource_size_t start = res->start;
1138 1139
1139 if (res->flags & IORESOURCE_IO) { 1140 if (res->flags & IORESOURCE_IO) {
1140 resource_size_t start = res->start;
1141
1142 if (skip_isa_ioresource_align(dev)) 1141 if (skip_isa_ioresource_align(dev))
1143 return; 1142 return start;
1144 if (start & 0x300) { 1143 if (start & 0x300)
1145 start = (start + 0x3ff) & ~0x3ff; 1144 start = (start + 0x3ff) & ~0x3ff;
1146 res->start = start;
1147 }
1148 } 1145 }
1146
1147 return start;
1149} 1148}
1150EXPORT_SYMBOL(pcibios_align_resource); 1149EXPORT_SYMBOL(pcibios_align_resource);
1151 1150
@@ -1228,7 +1227,7 @@ void pcibios_allocate_bus_resources(struct pci_bus *bus)
1228 pr_debug("PCI: Allocating bus resources for %04x:%02x...\n", 1227 pr_debug("PCI: Allocating bus resources for %04x:%02x...\n",
1229 pci_domain_nr(bus), bus->number); 1228 pci_domain_nr(bus), bus->number);
1230 1229
1231 for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) { 1230 pci_bus_for_each_resource(bus, res, i) {
1232 res = bus->resource[i]; 1231 res = bus->resource[i];
1233 if (!res || !res->flags 1232 if (!res || !res->flags
1234 || res->start > res->end || res->parent) 1233 || res->start > res->end || res->parent)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 29e86923d1bf..7e6fd1cbd3f8 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -49,7 +49,7 @@ config AR7
49 family: TNETD7100, 7200 and 7300. 49 family: TNETD7100, 7200 and 7300.
50 50
51config BCM47XX 51config BCM47XX
52 bool "BCM47XX based boards" 52 bool "Broadcom BCM47XX based boards"
53 select CEVT_R4K 53 select CEVT_R4K
54 select CSRC_R4K 54 select CSRC_R4K
55 select DMA_NONCOHERENT 55 select DMA_NONCOHERENT
@@ -509,6 +509,7 @@ config SIBYTE_SWARM
509 bool "Sibyte BCM91250A-SWARM" 509 bool "Sibyte BCM91250A-SWARM"
510 select BOOT_ELF32 510 select BOOT_ELF32
511 select DMA_COHERENT 511 select DMA_COHERENT
512 select HAVE_PATA_PLATFORM
512 select NR_CPUS_DEFAULT_2 513 select NR_CPUS_DEFAULT_2
513 select SIBYTE_SB1250 514 select SIBYTE_SB1250
514 select SWAP_IO_SPACE 515 select SWAP_IO_SPACE
@@ -523,6 +524,7 @@ config SIBYTE_LITTLESUR
523 depends on EXPERIMENTAL 524 depends on EXPERIMENTAL
524 select BOOT_ELF32 525 select BOOT_ELF32
525 select DMA_COHERENT 526 select DMA_COHERENT
527 select HAVE_PATA_PLATFORM
526 select NR_CPUS_DEFAULT_2 528 select NR_CPUS_DEFAULT_2
527 select SIBYTE_SB1250 529 select SIBYTE_SB1250
528 select SWAP_IO_SPACE 530 select SWAP_IO_SPACE
@@ -1305,6 +1307,33 @@ config CPU_CAVIUM_OCTEON
1305 1307
1306endchoice 1308endchoice
1307 1309
1310if CPU_LOONGSON2F
1311config CPU_NOP_WORKAROUNDS
1312 bool
1313
1314config CPU_JUMP_WORKAROUNDS
1315 bool
1316
1317config CPU_LOONGSON2F_WORKAROUNDS
1318 bool "Loongson 2F Workarounds"
1319 default y
1320 select CPU_NOP_WORKAROUNDS
1321 select CPU_JUMP_WORKAROUNDS
1322 help
1323 Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
1324 require workarounds. Without workarounds the system may hang
1325 unexpectedly. For more information please refer to the gas
1326 -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
1327
1328 Loongson 2F03 and later have fixed these issues and no workarounds
1329 are needed. The workarounds have no significant side effect on them
1330 but may decrease the performance of the system so this option should
1331 be disabled unless the kernel is intended to be run on 2F01 or 2F02
1332 systems.
1333
1334 If unsure, please say Y.
1335endif # CPU_LOONGSON2F
1336
1308config SYS_SUPPORTS_ZBOOT 1337config SYS_SUPPORTS_ZBOOT
1309 bool 1338 bool
1310 select HAVE_KERNEL_GZIP 1339 select HAVE_KERNEL_GZIP
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 2f2eac233322..0b9c01add0a0 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -136,6 +136,19 @@ cflags-$(CONFIG_CPU_LOONGSON2E) += \
136 $(call cc-option,-march=loongson2e,-march=r4600) 136 $(call cc-option,-march=loongson2e,-march=r4600)
137cflags-$(CONFIG_CPU_LOONGSON2F) += \ 137cflags-$(CONFIG_CPU_LOONGSON2F) += \
138 $(call cc-option,-march=loongson2f,-march=r4600) 138 $(call cc-option,-march=loongson2f,-march=r4600)
139# enable the workarounds for loongson2f
140ifdef CONFIG_CPU_LOONGSON2F_WORKAROUNDS
141 ifeq ($(call as-option,-Wa$(comma)-mfix-loongson2f-nop,),)
142 $(error only binutils >= 2.20.2 have needed option -mfix-loongson2f-nop)
143 else
144 cflags-$(CONFIG_CPU_NOP_WORKAROUNDS) += -Wa$(comma)-mfix-loongson2f-nop
145 endif
146 ifeq ($(call as-option,-Wa$(comma)-mfix-loongson2f-jump,),)
147 $(error only binutils >= 2.20.2 have needed option -mfix-loongson2f-jump)
148 else
149 cflags-$(CONFIG_CPU_JUMP_WORKAROUNDS) += -Wa$(comma)-mfix-loongson2f-jump
150 endif
151endif
139 152
140cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 153cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \
141 -Wa,-mips32 -Wa,--trap 154 -Wa,-mips32 -Wa,--trap
diff --git a/arch/mips/alchemy/devboards/db1200/setup.c b/arch/mips/alchemy/devboards/db1200/setup.c
index be7e92ea01f3..887619547553 100644
--- a/arch/mips/alchemy/devboards/db1200/setup.c
+++ b/arch/mips/alchemy/devboards/db1200/setup.c
@@ -66,12 +66,16 @@ static int __init db1200_arch_init(void)
66 set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW); 66 set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
67 bcsr_init_irq(DB1200_INT_BEGIN, DB1200_INT_END, AU1200_GPIO7_INT); 67 bcsr_init_irq(DB1200_INT_BEGIN, DB1200_INT_END, AU1200_GPIO7_INT);
68 68
69 /* do not autoenable these: CPLD has broken edge int handling, 69 /* insert/eject pairs: one of both is always screaming. To avoid
70 * and the CD handler setup requires manual enabling to work 70 * issues they must not be automatically enabled when initially
71 * around that. 71 * requested.
72 */ 72 */
73 irq_to_desc(DB1200_SD0_INSERT_INT)->status |= IRQ_NOAUTOEN; 73 irq_to_desc(DB1200_SD0_INSERT_INT)->status |= IRQ_NOAUTOEN;
74 irq_to_desc(DB1200_SD0_EJECT_INT)->status |= IRQ_NOAUTOEN; 74 irq_to_desc(DB1200_SD0_EJECT_INT)->status |= IRQ_NOAUTOEN;
75 irq_to_desc(DB1200_PC0_INSERT_INT)->status |= IRQ_NOAUTOEN;
76 irq_to_desc(DB1200_PC0_EJECT_INT)->status |= IRQ_NOAUTOEN;
77 irq_to_desc(DB1200_PC1_INSERT_INT)->status |= IRQ_NOAUTOEN;
78 irq_to_desc(DB1200_PC1_EJECT_INT)->status |= IRQ_NOAUTOEN;
75 79
76 return 0; 80 return 0;
77} 81}
diff --git a/arch/mips/configs/bcm63xx_defconfig b/arch/mips/configs/bcm63xx_defconfig
index 7fee0273c829..6389ca0fdc6c 100644
--- a/arch/mips/configs/bcm63xx_defconfig
+++ b/arch/mips/configs/bcm63xx_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.30-rc6 3# Linux kernel version: 2.6.34-rc2
4# Sun May 31 20:17:18 2009 4# Tue Mar 23 10:36:32 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -9,13 +9,14 @@ CONFIG_MIPS=y
9# Machine selection 9# Machine selection
10# 10#
11# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_AR7 is not set
12# CONFIG_BCM47XX is not set 13# CONFIG_BCM47XX is not set
13CONFIG_BCM63XX=y 14CONFIG_BCM63XX=y
14# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
16# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set 18# CONFIG_LASAT is not set
18# CONFIG_LEMOTE_FULONG is not set 19# CONFIG_MACH_LOONGSON is not set
19# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
20# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
21# CONFIG_NEC_MARKEINS is not set 22# CONFIG_NEC_MARKEINS is not set
@@ -26,6 +27,7 @@ CONFIG_BCM63XX=y
26# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
27# CONFIG_PMC_MSP is not set 28# CONFIG_PMC_MSP is not set
28# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_POWERTV is not set
29# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
30# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set 33# CONFIG_SGI_IP28 is not set
@@ -45,13 +47,17 @@ CONFIG_BCM63XX=y
45# CONFIG_WR_PPMC is not set 47# CONFIG_WR_PPMC is not set
46# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set 48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
47# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set 49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
48 51
49# 52#
50# CPU support 53# CPU support
51# 54#
55CONFIG_BCM63XX_CPU_6338=y
56CONFIG_BCM63XX_CPU_6345=y
52CONFIG_BCM63XX_CPU_6348=y 57CONFIG_BCM63XX_CPU_6348=y
53CONFIG_BCM63XX_CPU_6358=y 58CONFIG_BCM63XX_CPU_6358=y
54CONFIG_BOARD_BCM963XX=y 59CONFIG_BOARD_BCM963XX=y
60CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 61CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 62# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 63# CONFIG_ARCH_HAS_ILOG2_U64 is not set
@@ -69,10 +75,8 @@ CONFIG_CEVT_R4K=y
69CONFIG_CSRC_R4K_LIB=y 75CONFIG_CSRC_R4K_LIB=y
70CONFIG_CSRC_R4K=y 76CONFIG_CSRC_R4K=y
71CONFIG_DMA_NONCOHERENT=y 77CONFIG_DMA_NONCOHERENT=y
72CONFIG_DMA_NEED_PCI_MAP_STATE=y 78CONFIG_NEED_DMA_MAP_STATE=y
73CONFIG_EARLY_PRINTK=y
74CONFIG_SYS_HAS_EARLY_PRINTK=y 79CONFIG_SYS_HAS_EARLY_PRINTK=y
75# CONFIG_HOTPLUG_CPU is not set
76# CONFIG_NO_IOPORT is not set 80# CONFIG_NO_IOPORT is not set
77CONFIG_GENERIC_GPIO=y 81CONFIG_GENERIC_GPIO=y
78CONFIG_CPU_BIG_ENDIAN=y 82CONFIG_CPU_BIG_ENDIAN=y
@@ -85,7 +89,8 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
85# 89#
86# CPU selection 90# CPU selection
87# 91#
88# CONFIG_CPU_LOONGSON2 is not set 92# CONFIG_CPU_LOONGSON2E is not set
93# CONFIG_CPU_LOONGSON2F is not set
89CONFIG_CPU_MIPS32_R1=y 94CONFIG_CPU_MIPS32_R1=y
90# CONFIG_CPU_MIPS32_R2 is not set 95# CONFIG_CPU_MIPS32_R2 is not set
91# CONFIG_CPU_MIPS64_R1 is not set 96# CONFIG_CPU_MIPS64_R1 is not set
@@ -128,7 +133,7 @@ CONFIG_CPU_HAS_PREFETCH=y
128CONFIG_MIPS_MT_DISABLED=y 133CONFIG_MIPS_MT_DISABLED=y
129# CONFIG_MIPS_MT_SMP is not set 134# CONFIG_MIPS_MT_SMP is not set
130# CONFIG_MIPS_MT_SMTC is not set 135# CONFIG_MIPS_MT_SMTC is not set
131CONFIG_CPU_HAS_LLSC=y 136# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
132CONFIG_CPU_HAS_SYNC=y 137CONFIG_CPU_HAS_SYNC=y
133CONFIG_GENERIC_HARDIRQS=y 138CONFIG_GENERIC_HARDIRQS=y
134CONFIG_GENERIC_IRQ_PROBE=y 139CONFIG_GENERIC_IRQ_PROBE=y
@@ -146,9 +151,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
146# CONFIG_PHYS_ADDR_T_64BIT is not set 151# CONFIG_PHYS_ADDR_T_64BIT is not set
147CONFIG_ZONE_DMA_FLAG=0 152CONFIG_ZONE_DMA_FLAG=0
148CONFIG_VIRT_TO_BUS=y 153CONFIG_VIRT_TO_BUS=y
149CONFIG_UNEVICTABLE_LRU=y 154# CONFIG_KSM is not set
150CONFIG_HAVE_MLOCK=y 155CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
151CONFIG_HAVE_MLOCKED_PAGE_BIT=y
152CONFIG_TICK_ONESHOT=y 156CONFIG_TICK_ONESHOT=y
153CONFIG_NO_HZ=y 157CONFIG_NO_HZ=y
154# CONFIG_HIGH_RES_TIMERS is not set 158# CONFIG_HIGH_RES_TIMERS is not set
@@ -170,6 +174,7 @@ CONFIG_PREEMPT_NONE=y
170CONFIG_LOCKDEP_SUPPORT=y 174CONFIG_LOCKDEP_SUPPORT=y
171CONFIG_STACKTRACE_SUPPORT=y 175CONFIG_STACKTRACE_SUPPORT=y
172CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 176CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
177CONFIG_CONSTRUCTORS=y
173 178
174# 179#
175# General setup 180# General setup
@@ -189,15 +194,12 @@ CONFIG_LOCALVERSION=""
189# 194#
190# RCU Subsystem 195# RCU Subsystem
191# 196#
192CONFIG_CLASSIC_RCU=y
193# CONFIG_TREE_RCU is not set 197# CONFIG_TREE_RCU is not set
194# CONFIG_PREEMPT_RCU is not set 198# CONFIG_TREE_PREEMPT_RCU is not set
199CONFIG_TINY_RCU=y
195# CONFIG_TREE_RCU_TRACE is not set 200# CONFIG_TREE_RCU_TRACE is not set
196# CONFIG_PREEMPT_RCU_TRACE is not set
197# CONFIG_IKCONFIG is not set 201# CONFIG_IKCONFIG is not set
198CONFIG_LOG_BUF_SHIFT=17 202CONFIG_LOG_BUF_SHIFT=17
199# CONFIG_GROUP_SCHED is not set
200# CONFIG_CGROUPS is not set
201CONFIG_SYSFS_DEPRECATED=y 203CONFIG_SYSFS_DEPRECATED=y
202CONFIG_SYSFS_DEPRECATED_V2=y 204CONFIG_SYSFS_DEPRECATED_V2=y
203# CONFIG_RELAY is not set 205# CONFIG_RELAY is not set
@@ -205,11 +207,11 @@ CONFIG_SYSFS_DEPRECATED_V2=y
205# CONFIG_BLK_DEV_INITRD is not set 207# CONFIG_BLK_DEV_INITRD is not set
206CONFIG_CC_OPTIMIZE_FOR_SIZE=y 208CONFIG_CC_OPTIMIZE_FOR_SIZE=y
207CONFIG_SYSCTL=y 209CONFIG_SYSCTL=y
210CONFIG_ANON_INODES=y
208CONFIG_EMBEDDED=y 211CONFIG_EMBEDDED=y
209CONFIG_SYSCTL_SYSCALL=y 212CONFIG_SYSCTL_SYSCALL=y
210CONFIG_KALLSYMS=y 213CONFIG_KALLSYMS=y
211# CONFIG_KALLSYMS_EXTRA_PASS is not set 214# CONFIG_KALLSYMS_EXTRA_PASS is not set
212# CONFIG_STRIP_ASM_SYMS is not set
213CONFIG_HOTPLUG=y 215CONFIG_HOTPLUG=y
214CONFIG_PRINTK=y 216CONFIG_PRINTK=y
215CONFIG_BUG=y 217CONFIG_BUG=y
@@ -223,6 +225,10 @@ CONFIG_BASE_FULL=y
223# CONFIG_EVENTFD is not set 225# CONFIG_EVENTFD is not set
224# CONFIG_SHMEM is not set 226# CONFIG_SHMEM is not set
225# CONFIG_AIO is not set 227# CONFIG_AIO is not set
228
229#
230# Kernel Performance Events And Counters
231#
226# CONFIG_VM_EVENT_COUNTERS is not set 232# CONFIG_VM_EVENT_COUNTERS is not set
227CONFIG_PCI_QUIRKS=y 233CONFIG_PCI_QUIRKS=y
228# CONFIG_SLUB_DEBUG is not set 234# CONFIG_SLUB_DEBUG is not set
@@ -231,14 +237,17 @@ CONFIG_COMPAT_BRK=y
231CONFIG_SLUB=y 237CONFIG_SLUB=y
232# CONFIG_SLOB is not set 238# CONFIG_SLOB is not set
233# CONFIG_PROFILING is not set 239# CONFIG_PROFILING is not set
234# CONFIG_MARKERS is not set
235CONFIG_HAVE_OPROFILE=y 240CONFIG_HAVE_OPROFILE=y
241
242#
243# GCOV-based kernel profiling
244#
236# CONFIG_SLOW_WORK is not set 245# CONFIG_SLOW_WORK is not set
237# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 246CONFIG_HAVE_GENERIC_DMA_COHERENT=y
238CONFIG_BASE_SMALL=0 247CONFIG_BASE_SMALL=0
239# CONFIG_MODULES is not set 248# CONFIG_MODULES is not set
240CONFIG_BLOCK=y 249CONFIG_BLOCK=y
241# CONFIG_LBD is not set 250CONFIG_LBDAF=y
242# CONFIG_BLK_DEV_BSG is not set 251# CONFIG_BLK_DEV_BSG is not set
243# CONFIG_BLK_DEV_INTEGRITY is not set 252# CONFIG_BLK_DEV_INTEGRITY is not set
244 253
@@ -246,14 +255,41 @@ CONFIG_BLOCK=y
246# IO Schedulers 255# IO Schedulers
247# 256#
248CONFIG_IOSCHED_NOOP=y 257CONFIG_IOSCHED_NOOP=y
249# CONFIG_IOSCHED_AS is not set
250# CONFIG_IOSCHED_DEADLINE is not set 258# CONFIG_IOSCHED_DEADLINE is not set
251# CONFIG_IOSCHED_CFQ is not set 259# CONFIG_IOSCHED_CFQ is not set
252# CONFIG_DEFAULT_AS is not set
253# CONFIG_DEFAULT_DEADLINE is not set 260# CONFIG_DEFAULT_DEADLINE is not set
254# CONFIG_DEFAULT_CFQ is not set 261# CONFIG_DEFAULT_CFQ is not set
255CONFIG_DEFAULT_NOOP=y 262CONFIG_DEFAULT_NOOP=y
256CONFIG_DEFAULT_IOSCHED="noop" 263CONFIG_DEFAULT_IOSCHED="noop"
264# CONFIG_INLINE_SPIN_TRYLOCK is not set
265# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
266# CONFIG_INLINE_SPIN_LOCK is not set
267# CONFIG_INLINE_SPIN_LOCK_BH is not set
268# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
269# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
270CONFIG_INLINE_SPIN_UNLOCK=y
271# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
272CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
273# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
274# CONFIG_INLINE_READ_TRYLOCK is not set
275# CONFIG_INLINE_READ_LOCK is not set
276# CONFIG_INLINE_READ_LOCK_BH is not set
277# CONFIG_INLINE_READ_LOCK_IRQ is not set
278# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
279CONFIG_INLINE_READ_UNLOCK=y
280# CONFIG_INLINE_READ_UNLOCK_BH is not set
281CONFIG_INLINE_READ_UNLOCK_IRQ=y
282# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
283# CONFIG_INLINE_WRITE_TRYLOCK is not set
284# CONFIG_INLINE_WRITE_LOCK is not set
285# CONFIG_INLINE_WRITE_LOCK_BH is not set
286# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
287# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
288CONFIG_INLINE_WRITE_UNLOCK=y
289# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
290CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
291# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
292# CONFIG_MUTEX_SPIN_ON_OWNER is not set
257# CONFIG_FREEZER is not set 293# CONFIG_FREEZER is not set
258 294
259# 295#
@@ -263,15 +299,12 @@ CONFIG_HW_HAS_PCI=y
263CONFIG_PCI=y 299CONFIG_PCI=y
264CONFIG_PCI_DOMAINS=y 300CONFIG_PCI_DOMAINS=y
265# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
266# CONFIG_PCI_LEGACY is not set
267# CONFIG_PCI_STUB is not set 302# CONFIG_PCI_STUB is not set
268# CONFIG_PCI_IOV is not set 303# CONFIG_PCI_IOV is not set
269CONFIG_MMU=y 304CONFIG_MMU=y
270CONFIG_PCCARD=y 305CONFIG_PCCARD=y
271# CONFIG_PCMCIA_DEBUG is not set
272CONFIG_PCMCIA=y 306CONFIG_PCMCIA=y
273CONFIG_PCMCIA_LOAD_CIS=y 307CONFIG_PCMCIA_LOAD_CIS=y
274CONFIG_PCMCIA_IOCTL=y
275CONFIG_CARDBUS=y 308CONFIG_CARDBUS=y
276 309
277# 310#
@@ -295,6 +328,7 @@ CONFIG_TRAD_SIGNALS=y
295# 328#
296# Power management options 329# Power management options
297# 330#
331CONFIG_ARCH_HIBERNATION_POSSIBLE=y
298CONFIG_ARCH_SUSPEND_POSSIBLE=y 332CONFIG_ARCH_SUSPEND_POSSIBLE=y
299# CONFIG_PM is not set 333# CONFIG_PM is not set
300CONFIG_NET=y 334CONFIG_NET=y
@@ -333,6 +367,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_NETFILTER is not set 367# CONFIG_NETFILTER is not set
334# CONFIG_IP_DCCP is not set 368# CONFIG_IP_DCCP is not set
335# CONFIG_IP_SCTP is not set 369# CONFIG_IP_SCTP is not set
370# CONFIG_RDS is not set
336# CONFIG_TIPC is not set 371# CONFIG_TIPC is not set
337# CONFIG_ATM is not set 372# CONFIG_ATM is not set
338# CONFIG_BRIDGE is not set 373# CONFIG_BRIDGE is not set
@@ -347,6 +382,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_ECONET is not set 382# CONFIG_ECONET is not set
348# CONFIG_WAN_ROUTER is not set 383# CONFIG_WAN_ROUTER is not set
349# CONFIG_PHONET is not set 384# CONFIG_PHONET is not set
385# CONFIG_IEEE802154 is not set
350# CONFIG_NET_SCHED is not set 386# CONFIG_NET_SCHED is not set
351# CONFIG_DCB is not set 387# CONFIG_DCB is not set
352 388
@@ -359,7 +395,27 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_IRDA is not set 395# CONFIG_IRDA is not set
360# CONFIG_BT is not set 396# CONFIG_BT is not set
361# CONFIG_AF_RXRPC is not set 397# CONFIG_AF_RXRPC is not set
362# CONFIG_WIRELESS is not set 398CONFIG_WIRELESS=y
399CONFIG_WEXT_CORE=y
400CONFIG_WEXT_PROC=y
401CONFIG_CFG80211=y
402CONFIG_NL80211_TESTMODE=y
403# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
404# CONFIG_CFG80211_REG_DEBUG is not set
405CONFIG_CFG80211_DEFAULT_PS=y
406# CONFIG_CFG80211_INTERNAL_REGDB is not set
407CONFIG_CFG80211_WEXT=y
408CONFIG_WIRELESS_EXT_SYSFS=y
409# CONFIG_LIB80211 is not set
410CONFIG_MAC80211=y
411# CONFIG_MAC80211_RC_PID is not set
412CONFIG_MAC80211_RC_MINSTREL=y
413# CONFIG_MAC80211_RC_DEFAULT_PID is not set
414CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
415CONFIG_MAC80211_RC_DEFAULT="minstrel"
416# CONFIG_MAC80211_MESH is not set
417CONFIG_MAC80211_LEDS=y
418# CONFIG_MAC80211_DEBUG_MENU is not set
363# CONFIG_WIMAX is not set 419# CONFIG_WIMAX is not set
364# CONFIG_RFKILL is not set 420# CONFIG_RFKILL is not set
365# CONFIG_NET_9P is not set 421# CONFIG_NET_9P is not set
@@ -471,6 +527,7 @@ CONFIG_HAVE_IDE=y
471# 527#
472# SCSI device support 528# SCSI device support
473# 529#
530CONFIG_SCSI_MOD=y
474# CONFIG_RAID_ATTRS is not set 531# CONFIG_RAID_ATTRS is not set
475# CONFIG_SCSI is not set 532# CONFIG_SCSI is not set
476# CONFIG_SCSI_DMA is not set 533# CONFIG_SCSI_DMA is not set
@@ -484,13 +541,16 @@ CONFIG_HAVE_IDE=y
484# 541#
485 542
486# 543#
487# Enable only one of the two stacks, unless you know what you are doing 544# You can enable one or both FireWire driver stacks.
545#
546
547#
548# The newer stack is recommended.
488# 549#
489# CONFIG_FIREWIRE is not set 550# CONFIG_FIREWIRE is not set
490# CONFIG_IEEE1394 is not set 551# CONFIG_IEEE1394 is not set
491# CONFIG_I2O is not set 552# CONFIG_I2O is not set
492CONFIG_NETDEVICES=y 553CONFIG_NETDEVICES=y
493CONFIG_COMPAT_NET_DEV_OPS=y
494# CONFIG_DUMMY is not set 554# CONFIG_DUMMY is not set
495# CONFIG_BONDING is not set 555# CONFIG_BONDING is not set
496# CONFIG_MACVLAN is not set 556# CONFIG_MACVLAN is not set
@@ -529,6 +589,7 @@ CONFIG_MII=y
529# CONFIG_SMC91X is not set 589# CONFIG_SMC91X is not set
530# CONFIG_DM9000 is not set 590# CONFIG_DM9000 is not set
531# CONFIG_ETHOC is not set 591# CONFIG_ETHOC is not set
592# CONFIG_SMSC911X is not set
532# CONFIG_DNET is not set 593# CONFIG_DNET is not set
533# CONFIG_NET_TULIP is not set 594# CONFIG_NET_TULIP is not set
534# CONFIG_HP100 is not set 595# CONFIG_HP100 is not set
@@ -541,17 +602,48 @@ CONFIG_MII=y
541# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 602# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
542# CONFIG_NET_PCI is not set 603# CONFIG_NET_PCI is not set
543# CONFIG_B44 is not set 604# CONFIG_B44 is not set
605# CONFIG_KS8842 is not set
606# CONFIG_KS8851_MLL is not set
544# CONFIG_ATL2 is not set 607# CONFIG_ATL2 is not set
545CONFIG_BCM63XX_ENET=y 608CONFIG_BCM63XX_ENET=y
546# CONFIG_NETDEV_1000 is not set 609# CONFIG_NETDEV_1000 is not set
547# CONFIG_NETDEV_10000 is not set 610# CONFIG_NETDEV_10000 is not set
548# CONFIG_TR is not set 611# CONFIG_TR is not set
549 612CONFIG_WLAN=y
550# 613# CONFIG_PCMCIA_RAYCS is not set
551# Wireless LAN 614# CONFIG_LIBERTAS_THINFIRM is not set
552# 615# CONFIG_ATMEL is not set
553# CONFIG_WLAN_PRE80211 is not set 616# CONFIG_AT76C50X_USB is not set
554# CONFIG_WLAN_80211 is not set 617# CONFIG_AIRO_CS is not set
618# CONFIG_PCMCIA_WL3501 is not set
619# CONFIG_PRISM54 is not set
620# CONFIG_USB_ZD1201 is not set
621# CONFIG_USB_NET_RNDIS_WLAN is not set
622# CONFIG_RTL8180 is not set
623# CONFIG_RTL8187 is not set
624# CONFIG_ADM8211 is not set
625# CONFIG_MAC80211_HWSIM is not set
626# CONFIG_MWL8K is not set
627# CONFIG_ATH_COMMON is not set
628CONFIG_B43=y
629CONFIG_B43_PCI_AUTOSELECT=y
630CONFIG_B43_PCICORE_AUTOSELECT=y
631# CONFIG_B43_PCMCIA is not set
632CONFIG_B43_PIO=y
633# CONFIG_B43_PHY_LP is not set
634CONFIG_B43_LEDS=y
635# CONFIG_B43_DEBUG is not set
636# CONFIG_B43LEGACY is not set
637# CONFIG_HOSTAP is not set
638# CONFIG_IPW2100 is not set
639# CONFIG_IPW2200 is not set
640# CONFIG_IWLWIFI is not set
641# CONFIG_LIBERTAS is not set
642# CONFIG_HERMES is not set
643# CONFIG_P54_COMMON is not set
644# CONFIG_RT2X00 is not set
645# CONFIG_WL12XX is not set
646# CONFIG_ZD1211RW is not set
555 647
556# 648#
557# Enable WiMAX (Networking options) to see the WiMAX drivers 649# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -574,6 +666,7 @@ CONFIG_BCM63XX_ENET=y
574# CONFIG_NETCONSOLE is not set 666# CONFIG_NETCONSOLE is not set
575# CONFIG_NETPOLL is not set 667# CONFIG_NETPOLL is not set
576# CONFIG_NET_POLL_CONTROLLER is not set 668# CONFIG_NET_POLL_CONTROLLER is not set
669# CONFIG_VMXNET3 is not set
577# CONFIG_ISDN is not set 670# CONFIG_ISDN is not set
578# CONFIG_PHONE is not set 671# CONFIG_PHONE is not set
579 672
@@ -607,6 +700,7 @@ CONFIG_BCM63XX_ENET=y
607CONFIG_SERIAL_CORE=y 700CONFIG_SERIAL_CORE=y
608CONFIG_SERIAL_CORE_CONSOLE=y 701CONFIG_SERIAL_CORE_CONSOLE=y
609# CONFIG_SERIAL_JSM is not set 702# CONFIG_SERIAL_JSM is not set
703# CONFIG_SERIAL_TIMBERDALE is not set
610CONFIG_SERIAL_BCM63XX=y 704CONFIG_SERIAL_BCM63XX=y
611CONFIG_SERIAL_BCM63XX_CONSOLE=y 705CONFIG_SERIAL_BCM63XX_CONSOLE=y
612# CONFIG_UNIX98_PTYS is not set 706# CONFIG_UNIX98_PTYS is not set
@@ -629,6 +723,11 @@ CONFIG_LEGACY_PTY_COUNT=256
629CONFIG_DEVPORT=y 723CONFIG_DEVPORT=y
630# CONFIG_I2C is not set 724# CONFIG_I2C is not set
631# CONFIG_SPI is not set 725# CONFIG_SPI is not set
726
727#
728# PPS support
729#
730# CONFIG_PPS is not set
632CONFIG_ARCH_REQUIRE_GPIOLIB=y 731CONFIG_ARCH_REQUIRE_GPIOLIB=y
633CONFIG_GPIOLIB=y 732CONFIG_GPIOLIB=y
634# CONFIG_GPIO_SYSFS is not set 733# CONFIG_GPIO_SYSFS is not set
@@ -636,6 +735,8 @@ CONFIG_GPIOLIB=y
636# 735#
637# Memory mapped GPIO expanders: 736# Memory mapped GPIO expanders:
638# 737#
738# CONFIG_GPIO_IT8761E is not set
739# CONFIG_GPIO_SCH is not set
639 740
640# 741#
641# I2C GPIO expanders: 742# I2C GPIO expanders:
@@ -644,16 +745,21 @@ CONFIG_GPIOLIB=y
644# 745#
645# PCI GPIO expanders: 746# PCI GPIO expanders:
646# 747#
748# CONFIG_GPIO_CS5535 is not set
647# CONFIG_GPIO_BT8XX is not set 749# CONFIG_GPIO_BT8XX is not set
750# CONFIG_GPIO_LANGWELL is not set
648 751
649# 752#
650# SPI GPIO expanders: 753# SPI GPIO expanders:
651# 754#
755
756#
757# AC97 GPIO expanders:
758#
652# CONFIG_W1 is not set 759# CONFIG_W1 is not set
653# CONFIG_POWER_SUPPLY is not set 760# CONFIG_POWER_SUPPLY is not set
654# CONFIG_HWMON is not set 761# CONFIG_HWMON is not set
655# CONFIG_THERMAL is not set 762# CONFIG_THERMAL is not set
656# CONFIG_THERMAL_HWMON is not set
657# CONFIG_WATCHDOG is not set 763# CONFIG_WATCHDOG is not set
658CONFIG_SSB_POSSIBLE=y 764CONFIG_SSB_POSSIBLE=y
659 765
@@ -662,15 +768,16 @@ CONFIG_SSB_POSSIBLE=y
662# 768#
663CONFIG_SSB=y 769CONFIG_SSB=y
664CONFIG_SSB_SPROM=y 770CONFIG_SSB_SPROM=y
771CONFIG_SSB_BLOCKIO=y
665CONFIG_SSB_PCIHOST_POSSIBLE=y 772CONFIG_SSB_PCIHOST_POSSIBLE=y
666CONFIG_SSB_PCIHOST=y 773CONFIG_SSB_PCIHOST=y
667# CONFIG_SSB_B43_PCI_BRIDGE is not set 774CONFIG_SSB_B43_PCI_BRIDGE=y
668CONFIG_SSB_PCMCIAHOST_POSSIBLE=y 775CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
669# CONFIG_SSB_PCMCIAHOST is not set 776# CONFIG_SSB_PCMCIAHOST is not set
670# CONFIG_SSB_SILENT is not set 777# CONFIG_SSB_SILENT is not set
671# CONFIG_SSB_DEBUG is not set 778# CONFIG_SSB_DEBUG is not set
672CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y 779CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
673# CONFIG_SSB_DRIVER_PCICORE is not set 780CONFIG_SSB_DRIVER_PCICORE=y
674# CONFIG_SSB_DRIVER_MIPS is not set 781# CONFIG_SSB_DRIVER_MIPS is not set
675 782
676# 783#
@@ -680,27 +787,15 @@ CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
680# CONFIG_MFD_SM501 is not set 787# CONFIG_MFD_SM501 is not set
681# CONFIG_HTC_PASIC3 is not set 788# CONFIG_HTC_PASIC3 is not set
682# CONFIG_MFD_TMIO is not set 789# CONFIG_MFD_TMIO is not set
790# CONFIG_MFD_TIMBERDALE is not set
791# CONFIG_LPC_SCH is not set
683# CONFIG_REGULATOR is not set 792# CONFIG_REGULATOR is not set
684 793# CONFIG_MEDIA_SUPPORT is not set
685#
686# Multimedia devices
687#
688
689#
690# Multimedia core support
691#
692# CONFIG_VIDEO_DEV is not set
693# CONFIG_DVB_CORE is not set
694# CONFIG_VIDEO_MEDIA is not set
695
696#
697# Multimedia drivers
698#
699# CONFIG_DAB is not set
700 794
701# 795#
702# Graphics support 796# Graphics support
703# 797#
798# CONFIG_VGA_ARB is not set
704# CONFIG_DRM is not set 799# CONFIG_DRM is not set
705# CONFIG_VGASTATE is not set 800# CONFIG_VGASTATE is not set
706# CONFIG_VIDEO_OUTPUT_CONTROL is not set 801# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -710,11 +805,7 @@ CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
710# 805#
711# Display device support 806# Display device support
712# 807#
713CONFIG_DISPLAY_SUPPORT=y 808# CONFIG_DISPLAY_SUPPORT is not set
714
715#
716# Display hardware drivers
717#
718# CONFIG_SOUND is not set 809# CONFIG_SOUND is not set
719CONFIG_USB_SUPPORT=y 810CONFIG_USB_SUPPORT=y
720CONFIG_USB_ARCH_HAS_HCD=y 811CONFIG_USB_ARCH_HAS_HCD=y
@@ -741,13 +832,14 @@ CONFIG_USB=y
741# USB Host Controller Drivers 832# USB Host Controller Drivers
742# 833#
743# CONFIG_USB_C67X00_HCD is not set 834# CONFIG_USB_C67X00_HCD is not set
835# CONFIG_USB_XHCI_HCD is not set
744CONFIG_USB_EHCI_HCD=y 836CONFIG_USB_EHCI_HCD=y
745# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 837# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
746# CONFIG_USB_EHCI_TT_NEWSCHED is not set 838# CONFIG_USB_EHCI_TT_NEWSCHED is not set
747CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
748# CONFIG_USB_OXU210HP_HCD is not set 839# CONFIG_USB_OXU210HP_HCD is not set
749# CONFIG_USB_ISP116X_HCD is not set 840# CONFIG_USB_ISP116X_HCD is not set
750# CONFIG_USB_ISP1760_HCD is not set 841# CONFIG_USB_ISP1760_HCD is not set
842# CONFIG_USB_ISP1362_HCD is not set
751CONFIG_USB_OHCI_HCD=y 843CONFIG_USB_OHCI_HCD=y
752# CONFIG_USB_OHCI_HCD_SSB is not set 844# CONFIG_USB_OHCI_HCD_SSB is not set
753CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y 845CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
@@ -796,7 +888,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
796# CONFIG_USB_RIO500 is not set 888# CONFIG_USB_RIO500 is not set
797# CONFIG_USB_LEGOTOWER is not set 889# CONFIG_USB_LEGOTOWER is not set
798# CONFIG_USB_LCD is not set 890# CONFIG_USB_LCD is not set
799# CONFIG_USB_BERRY_CHARGE is not set
800# CONFIG_USB_LED is not set 891# CONFIG_USB_LED is not set
801# CONFIG_USB_CYPRESS_CY7C63 is not set 892# CONFIG_USB_CYPRESS_CY7C63 is not set
802# CONFIG_USB_CYTHERM is not set 893# CONFIG_USB_CYTHERM is not set
@@ -807,8 +898,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
807# CONFIG_USB_LD is not set 898# CONFIG_USB_LD is not set
808# CONFIG_USB_TRANCEVIBRATOR is not set 899# CONFIG_USB_TRANCEVIBRATOR is not set
809# CONFIG_USB_IOWARRIOR is not set 900# CONFIG_USB_IOWARRIOR is not set
901# CONFIG_USB_TEST is not set
810# CONFIG_USB_ISIGHTFW is not set 902# CONFIG_USB_ISIGHTFW is not set
811# CONFIG_USB_VST is not set
812# CONFIG_USB_GADGET is not set 903# CONFIG_USB_GADGET is not set
813 904
814# 905#
@@ -819,7 +910,29 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
819# CONFIG_UWB is not set 910# CONFIG_UWB is not set
820# CONFIG_MMC is not set 911# CONFIG_MMC is not set
821# CONFIG_MEMSTICK is not set 912# CONFIG_MEMSTICK is not set
822# CONFIG_NEW_LEDS is not set 913CONFIG_NEW_LEDS=y
914CONFIG_LEDS_CLASS=y
915
916#
917# LED drivers
918#
919CONFIG_LEDS_GPIO=y
920CONFIG_LEDS_GPIO_PLATFORM=y
921# CONFIG_LEDS_LT3593 is not set
922CONFIG_LEDS_TRIGGERS=y
923
924#
925# LED Triggers
926#
927CONFIG_LEDS_TRIGGER_TIMER=y
928# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
929# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
930CONFIG_LEDS_TRIGGER_GPIO=y
931CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
932
933#
934# iptables trigger is under Netfilter config (LED target)
935#
823# CONFIG_ACCESSIBILITY is not set 936# CONFIG_ACCESSIBILITY is not set
824# CONFIG_INFINIBAND is not set 937# CONFIG_INFINIBAND is not set
825CONFIG_RTC_LIB=y 938CONFIG_RTC_LIB=y
@@ -827,6 +940,10 @@ CONFIG_RTC_LIB=y
827# CONFIG_DMADEVICES is not set 940# CONFIG_DMADEVICES is not set
828# CONFIG_AUXDISPLAY is not set 941# CONFIG_AUXDISPLAY is not set
829# CONFIG_UIO is not set 942# CONFIG_UIO is not set
943
944#
945# TI VLYNQ
946#
830# CONFIG_STAGING is not set 947# CONFIG_STAGING is not set
831 948
832# 949#
@@ -838,12 +955,16 @@ CONFIG_RTC_LIB=y
838# CONFIG_REISERFS_FS is not set 955# CONFIG_REISERFS_FS is not set
839# CONFIG_JFS_FS is not set 956# CONFIG_JFS_FS is not set
840# CONFIG_FS_POSIX_ACL is not set 957# CONFIG_FS_POSIX_ACL is not set
841# CONFIG_FILE_LOCKING is not set
842# CONFIG_XFS_FS is not set 958# CONFIG_XFS_FS is not set
959# CONFIG_GFS2_FS is not set
843# CONFIG_OCFS2_FS is not set 960# CONFIG_OCFS2_FS is not set
844# CONFIG_BTRFS_FS is not set 961# CONFIG_BTRFS_FS is not set
962# CONFIG_NILFS2_FS is not set
963# CONFIG_FILE_LOCKING is not set
964CONFIG_FSNOTIFY=y
845# CONFIG_DNOTIFY is not set 965# CONFIG_DNOTIFY is not set
846# CONFIG_INOTIFY is not set 966# CONFIG_INOTIFY is not set
967CONFIG_INOTIFY_USER=y
847# CONFIG_QUOTA is not set 968# CONFIG_QUOTA is not set
848# CONFIG_AUTOFS_FS is not set 969# CONFIG_AUTOFS_FS is not set
849# CONFIG_AUTOFS4_FS is not set 970# CONFIG_AUTOFS4_FS is not set
@@ -875,8 +996,6 @@ CONFIG_PROC_KCORE=y
875CONFIG_PROC_SYSCTL=y 996CONFIG_PROC_SYSCTL=y
876CONFIG_PROC_PAGE_MONITOR=y 997CONFIG_PROC_PAGE_MONITOR=y
877CONFIG_SYSFS=y 998CONFIG_SYSFS=y
878CONFIG_TMPFS=y
879# CONFIG_TMPFS_POSIX_ACL is not set
880# CONFIG_HUGETLB_PAGE is not set 999# CONFIG_HUGETLB_PAGE is not set
881# CONFIG_CONFIGFS_FS is not set 1000# CONFIG_CONFIGFS_FS is not set
882CONFIG_MISC_FILESYSTEMS=y 1001CONFIG_MISC_FILESYSTEMS=y
@@ -888,6 +1007,7 @@ CONFIG_MISC_FILESYSTEMS=y
888# CONFIG_BFS_FS is not set 1007# CONFIG_BFS_FS is not set
889# CONFIG_EFS_FS is not set 1008# CONFIG_EFS_FS is not set
890# CONFIG_JFFS2_FS is not set 1009# CONFIG_JFFS2_FS is not set
1010# CONFIG_LOGFS is not set
891# CONFIG_CRAMFS is not set 1011# CONFIG_CRAMFS is not set
892# CONFIG_SQUASHFS is not set 1012# CONFIG_SQUASHFS is not set
893# CONFIG_VXFS_FS is not set 1013# CONFIG_VXFS_FS is not set
@@ -898,7 +1018,6 @@ CONFIG_MISC_FILESYSTEMS=y
898# CONFIG_ROMFS_FS is not set 1018# CONFIG_ROMFS_FS is not set
899# CONFIG_SYSV_FS is not set 1019# CONFIG_SYSV_FS is not set
900# CONFIG_UFS_FS is not set 1020# CONFIG_UFS_FS is not set
901# CONFIG_NILFS2_FS is not set
902# CONFIG_NETWORK_FILESYSTEMS is not set 1021# CONFIG_NETWORK_FILESYSTEMS is not set
903 1022
904# 1023#
@@ -906,7 +1025,46 @@ CONFIG_MISC_FILESYSTEMS=y
906# 1025#
907# CONFIG_PARTITION_ADVANCED is not set 1026# CONFIG_PARTITION_ADVANCED is not set
908CONFIG_MSDOS_PARTITION=y 1027CONFIG_MSDOS_PARTITION=y
909# CONFIG_NLS is not set 1028CONFIG_NLS=y
1029CONFIG_NLS_DEFAULT="iso8859-1"
1030# CONFIG_NLS_CODEPAGE_437 is not set
1031# CONFIG_NLS_CODEPAGE_737 is not set
1032# CONFIG_NLS_CODEPAGE_775 is not set
1033# CONFIG_NLS_CODEPAGE_850 is not set
1034# CONFIG_NLS_CODEPAGE_852 is not set
1035# CONFIG_NLS_CODEPAGE_855 is not set
1036# CONFIG_NLS_CODEPAGE_857 is not set
1037# CONFIG_NLS_CODEPAGE_860 is not set
1038# CONFIG_NLS_CODEPAGE_861 is not set
1039# CONFIG_NLS_CODEPAGE_862 is not set
1040# CONFIG_NLS_CODEPAGE_863 is not set
1041# CONFIG_NLS_CODEPAGE_864 is not set
1042# CONFIG_NLS_CODEPAGE_865 is not set
1043# CONFIG_NLS_CODEPAGE_866 is not set
1044# CONFIG_NLS_CODEPAGE_869 is not set
1045# CONFIG_NLS_CODEPAGE_936 is not set
1046# CONFIG_NLS_CODEPAGE_950 is not set
1047# CONFIG_NLS_CODEPAGE_932 is not set
1048# CONFIG_NLS_CODEPAGE_949 is not set
1049# CONFIG_NLS_CODEPAGE_874 is not set
1050# CONFIG_NLS_ISO8859_8 is not set
1051# CONFIG_NLS_CODEPAGE_1250 is not set
1052# CONFIG_NLS_CODEPAGE_1251 is not set
1053# CONFIG_NLS_ASCII is not set
1054# CONFIG_NLS_ISO8859_1 is not set
1055# CONFIG_NLS_ISO8859_2 is not set
1056# CONFIG_NLS_ISO8859_3 is not set
1057# CONFIG_NLS_ISO8859_4 is not set
1058# CONFIG_NLS_ISO8859_5 is not set
1059# CONFIG_NLS_ISO8859_6 is not set
1060# CONFIG_NLS_ISO8859_7 is not set
1061# CONFIG_NLS_ISO8859_9 is not set
1062# CONFIG_NLS_ISO8859_13 is not set
1063# CONFIG_NLS_ISO8859_14 is not set
1064# CONFIG_NLS_ISO8859_15 is not set
1065# CONFIG_NLS_KOI8_R is not set
1066# CONFIG_NLS_KOI8_U is not set
1067# CONFIG_NLS_UTF8 is not set
910# CONFIG_DLM is not set 1068# CONFIG_DLM is not set
911 1069
912# 1070#
@@ -918,29 +1076,23 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
918CONFIG_ENABLE_MUST_CHECK=y 1076CONFIG_ENABLE_MUST_CHECK=y
919CONFIG_FRAME_WARN=1024 1077CONFIG_FRAME_WARN=1024
920CONFIG_MAGIC_SYSRQ=y 1078CONFIG_MAGIC_SYSRQ=y
1079# CONFIG_STRIP_ASM_SYMS is not set
921# CONFIG_UNUSED_SYMBOLS is not set 1080# CONFIG_UNUSED_SYMBOLS is not set
922# CONFIG_DEBUG_FS is not set 1081# CONFIG_DEBUG_FS is not set
923# CONFIG_HEADERS_CHECK is not set 1082# CONFIG_HEADERS_CHECK is not set
924# CONFIG_DEBUG_KERNEL is not set 1083# CONFIG_DEBUG_KERNEL is not set
925# CONFIG_DEBUG_MEMORY_INIT is not set 1084# CONFIG_DEBUG_MEMORY_INIT is not set
926# CONFIG_RCU_CPU_STALL_DETECTOR is not set
927CONFIG_SYSCTL_SYSCALL_CHECK=y 1085CONFIG_SYSCTL_SYSCALL_CHECK=y
1086CONFIG_HAVE_FUNCTION_TRACER=y
1087CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1088CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1089CONFIG_HAVE_DYNAMIC_FTRACE=y
1090CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
928CONFIG_TRACING_SUPPORT=y 1091CONFIG_TRACING_SUPPORT=y
929 1092# CONFIG_FTRACE is not set
930#
931# Tracers
932#
933# CONFIG_IRQSOFF_TRACER is not set
934# CONFIG_SCHED_TRACER is not set
935# CONFIG_CONTEXT_SWITCH_TRACER is not set
936# CONFIG_EVENT_TRACER is not set
937# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set
939# CONFIG_KMEMTRACE is not set
940# CONFIG_WORKQUEUE_TRACER is not set
941# CONFIG_BLK_DEV_IO_TRACE is not set
942# CONFIG_SAMPLES is not set 1093# CONFIG_SAMPLES is not set
943CONFIG_HAVE_ARCH_KGDB=y 1094CONFIG_HAVE_ARCH_KGDB=y
1095CONFIG_EARLY_PRINTK=y
944CONFIG_CMDLINE_BOOL=y 1096CONFIG_CMDLINE_BOOL=y
945CONFIG_CMDLINE="console=ttyS0,115200" 1097CONFIG_CMDLINE="console=ttyS0,115200"
946# CONFIG_CMDLINE_OVERRIDE is not set 1098# CONFIG_CMDLINE_OVERRIDE is not set
@@ -951,8 +1103,108 @@ CONFIG_CMDLINE="console=ttyS0,115200"
951# CONFIG_KEYS is not set 1103# CONFIG_KEYS is not set
952# CONFIG_SECURITY is not set 1104# CONFIG_SECURITY is not set
953# CONFIG_SECURITYFS is not set 1105# CONFIG_SECURITYFS is not set
954# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1106# CONFIG_DEFAULT_SECURITY_SELINUX is not set
955# CONFIG_CRYPTO is not set 1107# CONFIG_DEFAULT_SECURITY_SMACK is not set
1108# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1109CONFIG_DEFAULT_SECURITY_DAC=y
1110CONFIG_DEFAULT_SECURITY=""
1111CONFIG_CRYPTO=y
1112
1113#
1114# Crypto core or helper
1115#
1116# CONFIG_CRYPTO_FIPS is not set
1117CONFIG_CRYPTO_ALGAPI=y
1118CONFIG_CRYPTO_ALGAPI2=y
1119CONFIG_CRYPTO_AEAD2=y
1120CONFIG_CRYPTO_BLKCIPHER=y
1121CONFIG_CRYPTO_BLKCIPHER2=y
1122CONFIG_CRYPTO_HASH2=y
1123CONFIG_CRYPTO_RNG=y
1124CONFIG_CRYPTO_RNG2=y
1125CONFIG_CRYPTO_PCOMP=y
1126CONFIG_CRYPTO_MANAGER=y
1127CONFIG_CRYPTO_MANAGER2=y
1128# CONFIG_CRYPTO_GF128MUL is not set
1129# CONFIG_CRYPTO_NULL is not set
1130CONFIG_CRYPTO_WORKQUEUE=y
1131# CONFIG_CRYPTO_CRYPTD is not set
1132# CONFIG_CRYPTO_AUTHENC is not set
1133
1134#
1135# Authenticated Encryption with Associated Data
1136#
1137# CONFIG_CRYPTO_CCM is not set
1138# CONFIG_CRYPTO_GCM is not set
1139# CONFIG_CRYPTO_SEQIV is not set
1140
1141#
1142# Block modes
1143#
1144# CONFIG_CRYPTO_CBC is not set
1145# CONFIG_CRYPTO_CTR is not set
1146# CONFIG_CRYPTO_CTS is not set
1147CONFIG_CRYPTO_ECB=y
1148# CONFIG_CRYPTO_LRW is not set
1149# CONFIG_CRYPTO_PCBC is not set
1150# CONFIG_CRYPTO_XTS is not set
1151
1152#
1153# Hash modes
1154#
1155# CONFIG_CRYPTO_HMAC is not set
1156# CONFIG_CRYPTO_XCBC is not set
1157# CONFIG_CRYPTO_VMAC is not set
1158
1159#
1160# Digest
1161#
1162# CONFIG_CRYPTO_CRC32C is not set
1163# CONFIG_CRYPTO_GHASH is not set
1164# CONFIG_CRYPTO_MD4 is not set
1165# CONFIG_CRYPTO_MD5 is not set
1166# CONFIG_CRYPTO_MICHAEL_MIC is not set
1167# CONFIG_CRYPTO_RMD128 is not set
1168# CONFIG_CRYPTO_RMD160 is not set
1169# CONFIG_CRYPTO_RMD256 is not set
1170# CONFIG_CRYPTO_RMD320 is not set
1171# CONFIG_CRYPTO_SHA1 is not set
1172# CONFIG_CRYPTO_SHA256 is not set
1173# CONFIG_CRYPTO_SHA512 is not set
1174# CONFIG_CRYPTO_TGR192 is not set
1175# CONFIG_CRYPTO_WP512 is not set
1176
1177#
1178# Ciphers
1179#
1180CONFIG_CRYPTO_AES=y
1181# CONFIG_CRYPTO_ANUBIS is not set
1182CONFIG_CRYPTO_ARC4=y
1183# CONFIG_CRYPTO_BLOWFISH is not set
1184# CONFIG_CRYPTO_CAMELLIA is not set
1185# CONFIG_CRYPTO_CAST5 is not set
1186# CONFIG_CRYPTO_CAST6 is not set
1187# CONFIG_CRYPTO_DES is not set
1188# CONFIG_CRYPTO_FCRYPT is not set
1189# CONFIG_CRYPTO_KHAZAD is not set
1190# CONFIG_CRYPTO_SALSA20 is not set
1191# CONFIG_CRYPTO_SEED is not set
1192# CONFIG_CRYPTO_SERPENT is not set
1193# CONFIG_CRYPTO_TEA is not set
1194# CONFIG_CRYPTO_TWOFISH is not set
1195
1196#
1197# Compression
1198#
1199# CONFIG_CRYPTO_DEFLATE is not set
1200# CONFIG_CRYPTO_ZLIB is not set
1201# CONFIG_CRYPTO_LZO is not set
1202
1203#
1204# Random Number Generation
1205#
1206CONFIG_CRYPTO_ANSI_CPRNG=y
1207# CONFIG_CRYPTO_HW is not set
956# CONFIG_BINARY_PRINTF is not set 1208# CONFIG_BINARY_PRINTF is not set
957 1209
958# 1210#
diff --git a/arch/mips/include/asm/cmpxchg.h b/arch/mips/include/asm/cmpxchg.h
index ed9aaaaf0749..2d28017e95d0 100644
--- a/arch/mips/include/asm/cmpxchg.h
+++ b/arch/mips/include/asm/cmpxchg.h
@@ -16,7 +16,7 @@
16({ \ 16({ \
17 __typeof(*(m)) __ret; \ 17 __typeof(*(m)) __ret; \
18 \ 18 \
19 if (kernel_uses_llsc && R10000_LLSC_WAR) { \ 19 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
20 __asm__ __volatile__( \ 20 __asm__ __volatile__( \
21 " .set push \n" \ 21 " .set push \n" \
22 " .set noat \n" \ 22 " .set noat \n" \
diff --git a/arch/mips/include/asm/mach-loongson/loongson.h b/arch/mips/include/asm/mach-loongson/loongson.h
index 1cf7b1401ee4..fcdbe3a4ce1f 100644
--- a/arch/mips/include/asm/mach-loongson/loongson.h
+++ b/arch/mips/include/asm/mach-loongson/loongson.h
@@ -307,7 +307,7 @@ extern unsigned long _loongson_addrwincfg_base;
307 */ 307 */
308#define LOONGSON_ADDRWIN_CFG(s, d, w, src, dst, size) do {\ 308#define LOONGSON_ADDRWIN_CFG(s, d, w, src, dst, size) do {\
309 s##_WIN##w##_BASE = (src); \ 309 s##_WIN##w##_BASE = (src); \
310 s##_WIN##w##_MMAP = (src) | ADDRWIN_MAP_DST_##d; \ 310 s##_WIN##w##_MMAP = (dst) | ADDRWIN_MAP_DST_##d; \
311 s##_WIN##w##_MASK = ~(size-1); \ 311 s##_WIN##w##_MASK = ~(size-1); \
312} while (0) 312} while (0)
313 313
diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h
index 26dc69d792a6..1be4b0fa30da 100644
--- a/arch/mips/include/asm/pgtable-64.h
+++ b/arch/mips/include/asm/pgtable-64.h
@@ -120,9 +120,14 @@
120#endif 120#endif
121#define FIRST_USER_ADDRESS 0UL 121#define FIRST_USER_ADDRESS 0UL
122 122
123#define VMALLOC_START MAP_BASE 123/*
124 * TLB refill handlers also map the vmalloc area into xuseg. Avoid
125 * the first couple of pages so NULL pointer dereferences will still
126 * reliably trap.
127 */
128#define VMALLOC_START (MAP_BASE + (2 * PAGE_SIZE))
124#define VMALLOC_END \ 129#define VMALLOC_END \
125 (VMALLOC_START + \ 130 (MAP_BASE + \
126 min(PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, \ 131 min(PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, \
127 (1UL << cpu_vmbits)) - (1UL << 32)) 132 (1UL << cpu_vmbits)) - (1UL << 32))
128 133
diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h
index ce47118e52b7..cdc6a46efd98 100644
--- a/arch/mips/include/asm/ptrace.h
+++ b/arch/mips/include/asm/ptrace.h
@@ -142,9 +142,9 @@ extern int ptrace_set_watch_regs(struct task_struct *child,
142 142
143extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit); 143extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit);
144 144
145extern NORET_TYPE void die(const char *, const struct pt_regs *) ATTRIB_NORET; 145extern NORET_TYPE void die(const char *, struct pt_regs *) ATTRIB_NORET;
146 146
147static inline void die_if_kernel(const char *str, const struct pt_regs *regs) 147static inline void die_if_kernel(const char *str, struct pt_regs *regs)
148{ 148{
149 if (unlikely(!user_mode(regs))) 149 if (unlikely(!user_mode(regs)))
150 die(str, regs); 150 die(str, regs);
diff --git a/arch/mips/include/asm/stackframe.h b/arch/mips/include/asm/stackframe.h
index c8419129e770..58730c5ce4bf 100644
--- a/arch/mips/include/asm/stackframe.h
+++ b/arch/mips/include/asm/stackframe.h
@@ -121,7 +121,7 @@
121 .endm 121 .endm
122#else 122#else
123 .macro get_saved_sp /* Uniprocessor variation */ 123 .macro get_saved_sp /* Uniprocessor variation */
124#ifdef CONFIG_CPU_LOONGSON2F 124#ifdef CONFIG_CPU_JUMP_WORKAROUNDS
125 /* 125 /*
126 * Clear BTB (branch target buffer), forbid RAS (return address 126 * Clear BTB (branch target buffer), forbid RAS (return address
127 * stack) to workaround the Out-of-order Issue in Loongson2F 127 * stack) to workaround the Out-of-order Issue in Loongson2F
diff --git a/arch/mips/include/asm/uasm.h b/arch/mips/include/asm/uasm.h
index 11a8b5252549..697e40c06497 100644
--- a/arch/mips/include/asm/uasm.h
+++ b/arch/mips/include/asm/uasm.h
@@ -167,6 +167,24 @@ static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \
167#define uasm_i_ssnop(buf) uasm_i_sll(buf, 0, 0, 1) 167#define uasm_i_ssnop(buf) uasm_i_sll(buf, 0, 0, 1)
168#define uasm_i_ehb(buf) uasm_i_sll(buf, 0, 0, 3) 168#define uasm_i_ehb(buf) uasm_i_sll(buf, 0, 0, 3)
169 169
170static inline void uasm_i_dsrl_safe(u32 **p, unsigned int a1,
171 unsigned int a2, unsigned int a3)
172{
173 if (a3 < 32)
174 uasm_i_dsrl(p, a1, a2, a3);
175 else
176 uasm_i_dsrl32(p, a1, a2, a3 - 32);
177}
178
179static inline void uasm_i_dsll_safe(u32 **p, unsigned int a1,
180 unsigned int a2, unsigned int a3)
181{
182 if (a3 < 32)
183 uasm_i_dsll(p, a1, a2, a3);
184 else
185 uasm_i_dsll32(p, a1, a2, a3 - 32);
186}
187
170/* Handle relocations. */ 188/* Handle relocations. */
171struct uasm_reloc { 189struct uasm_reloc {
172 u32 *addr; 190 u32 *addr;
diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c
index 7043f6b9ff3c..0d0f054a02f4 100644
--- a/arch/mips/jazz/setup.c
+++ b/arch/mips/jazz/setup.c
@@ -76,15 +76,9 @@ void __init plat_mem_setup(void)
76 76
77#ifdef CONFIG_VT 77#ifdef CONFIG_VT
78 screen_info = (struct screen_info) { 78 screen_info = (struct screen_info) {
79 0, 0, /* orig-x, orig-y */ 79 .orig_video_cols = 160,
80 0, /* unused */ 80 .orig_video_lines = 64,
81 0, /* orig_video_page */ 81 .orig_video_points = 16,
82 0, /* orig_video_mode */
83 160, /* orig_video_cols */
84 0, 0, 0, /* unused, ega_bx, unused */
85 64, /* orig_video_lines */
86 0, /* orig_video_isVGA */
87 16 /* orig_video_points */
88 }; 82 };
89#endif 83#endif
90 84
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 1a4dd657ccb9..d612c6dcb746 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -352,9 +352,10 @@ void show_registers(const struct pt_regs *regs)
352 352
353static DEFINE_SPINLOCK(die_lock); 353static DEFINE_SPINLOCK(die_lock);
354 354
355void __noreturn die(const char * str, const struct pt_regs * regs) 355void __noreturn die(const char * str, struct pt_regs * regs)
356{ 356{
357 static int die_counter; 357 static int die_counter;
358 int sig = SIGSEGV;
358#ifdef CONFIG_MIPS_MT_SMTC 359#ifdef CONFIG_MIPS_MT_SMTC
359 unsigned long dvpret = dvpe(); 360 unsigned long dvpret = dvpe();
360#endif /* CONFIG_MIPS_MT_SMTC */ 361#endif /* CONFIG_MIPS_MT_SMTC */
@@ -365,6 +366,10 @@ void __noreturn die(const char * str, const struct pt_regs * regs)
365#ifdef CONFIG_MIPS_MT_SMTC 366#ifdef CONFIG_MIPS_MT_SMTC
366 mips_mt_regdump(dvpret); 367 mips_mt_regdump(dvpret);
367#endif /* CONFIG_MIPS_MT_SMTC */ 368#endif /* CONFIG_MIPS_MT_SMTC */
369
370 if (notify_die(DIE_OOPS, str, regs, 0, current->thread.trap_no, SIGSEGV) == NOTIFY_STOP)
371 sig = 0;
372
368 printk("%s[#%d]:\n", str, ++die_counter); 373 printk("%s[#%d]:\n", str, ++die_counter);
369 show_registers(regs); 374 show_registers(regs);
370 add_taint(TAINT_DIE); 375 add_taint(TAINT_DIE);
@@ -379,7 +384,7 @@ void __noreturn die(const char * str, const struct pt_regs * regs)
379 panic("Fatal exception"); 384 panic("Fatal exception");
380 } 385 }
381 386
382 do_exit(SIGSEGV); 387 do_exit(sig);
383} 388}
384 389
385extern struct exception_table_entry __start___dbe_table[]; 390extern struct exception_table_entry __start___dbe_table[];
@@ -1557,12 +1562,7 @@ static char panic_null_cerr[] __cpuinitdata =
1557void __cpuinit set_uncached_handler(unsigned long offset, void *addr, 1562void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
1558 unsigned long size) 1563 unsigned long size)
1559{ 1564{
1560#ifdef CONFIG_32BIT 1565 unsigned long uncached_ebase = CKSEG1ADDR(ebase);
1561 unsigned long uncached_ebase = KSEG1ADDR(ebase);
1562#endif
1563#ifdef CONFIG_64BIT
1564 unsigned long uncached_ebase = TO_UNCAC(ebase);
1565#endif
1566 1566
1567 if (!addr) 1567 if (!addr)
1568 panic(panic_null_cerr); 1568 panic(panic_null_cerr);
diff --git a/arch/mips/loongson/common/machtype.c b/arch/mips/loongson/common/machtype.c
index 853f184b793e..81fbe6b73f91 100644
--- a/arch/mips/loongson/common/machtype.c
+++ b/arch/mips/loongson/common/machtype.c
@@ -24,7 +24,7 @@ static const char *system_types[] = {
24 [MACH_LEMOTE_FL2F] "lemote-fuloong-2f-box", 24 [MACH_LEMOTE_FL2F] "lemote-fuloong-2f-box",
25 [MACH_LEMOTE_ML2F7] "lemote-mengloong-2f-7inches", 25 [MACH_LEMOTE_ML2F7] "lemote-mengloong-2f-7inches",
26 [MACH_LEMOTE_YL2F89] "lemote-yeeloong-2f-8.9inches", 26 [MACH_LEMOTE_YL2F89] "lemote-yeeloong-2f-8.9inches",
27 [MACH_DEXXON_GDIUM2F10] "dexxon-gidum-2f-10inches", 27 [MACH_DEXXON_GDIUM2F10] "dexxon-gdium-2f",
28 [MACH_LEMOTE_NAS] "lemote-nas-2f", 28 [MACH_LEMOTE_NAS] "lemote-nas-2f",
29 [MACH_LEMOTE_LL2F] "lemote-lynloong-2f", 29 [MACH_LEMOTE_LL2F] "lemote-lynloong-2f",
30 [MACH_LOONGSON_END] NULL, 30 [MACH_LOONGSON_END] NULL,
diff --git a/arch/mips/loongson/common/mem.c b/arch/mips/loongson/common/mem.c
index ec2f7964a0b0..30eba6001205 100644
--- a/arch/mips/loongson/common/mem.c
+++ b/arch/mips/loongson/common/mem.c
@@ -75,7 +75,7 @@ pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
75 unsigned long end = offset + size; 75 unsigned long end = offset + size;
76 76
77 if (__uncached_access(file, offset)) { 77 if (__uncached_access(file, offset)) {
78 if (((uca_start && offset) >= uca_start) && 78 if (uca_start && (offset >= uca_start) &&
79 (end <= uca_end)) 79 (end <= uca_end))
80 return __pgprot((pgprot_val(vma_prot) & 80 return __pgprot((pgprot_val(vma_prot) &
81 ~_CACHE_MASK) | 81 ~_CACHE_MASK) |
@@ -96,7 +96,7 @@ static int __init find_vga_mem_init(void)
96 return 0; 96 return 0;
97 97
98 for_each_pci_dev(dev) { 98 for_each_pci_dev(dev) {
99 if ((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA) { 99 if ((dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) {
100 for (idx = 0; idx < PCI_NUM_RESOURCES; idx++) { 100 for (idx = 0; idx < PCI_NUM_RESOURCES; idx++) {
101 r = &dev->resource[idx]; 101 r = &dev->resource[idx];
102 if (!r->start && r->end) 102 if (!r->start && r->end)
diff --git a/arch/mips/loongson/common/reset.c b/arch/mips/loongson/common/reset.c
index 4bd9c18b07a5..9e10d6225d9b 100644
--- a/arch/mips/loongson/common/reset.c
+++ b/arch/mips/loongson/common/reset.c
@@ -16,13 +16,31 @@
16 16
17#include <loongson.h> 17#include <loongson.h>
18 18
19static inline void loongson_reboot(void)
20{
21#ifndef CONFIG_CPU_JUMP_WORKAROUNDS
22 ((void (*)(void))ioremap_nocache(LOONGSON_BOOT_BASE, 4)) ();
23#else
24 void (*func)(void);
25
26 func = (void *)ioremap_nocache(LOONGSON_BOOT_BASE, 4);
27
28 __asm__ __volatile__(
29 " .set noat \n"
30 " jr %[func] \n"
31 " .set at \n"
32 : /* No outputs */
33 : [func] "r" (func));
34#endif
35}
36
19static void loongson_restart(char *command) 37static void loongson_restart(char *command)
20{ 38{
21 /* do preparation for reboot */ 39 /* do preparation for reboot */
22 mach_prepare_reboot(); 40 mach_prepare_reboot();
23 41
24 /* reboot via jumping to boot base address */ 42 /* reboot via jumping to boot base address */
25 ((void (*)(void))ioremap_nocache(LOONGSON_BOOT_BASE, 4)) (); 43 loongson_reboot();
26} 44}
27 45
28static void loongson_poweroff(void) 46static void loongson_poweroff(void)
diff --git a/arch/mips/loongson/common/setup.c b/arch/mips/loongson/common/setup.c
index 4cd2aa9a342c..27d826bc7103 100644
--- a/arch/mips/loongson/common/setup.c
+++ b/arch/mips/loongson/common/setup.c
@@ -41,15 +41,12 @@ void __init plat_mem_setup(void)
41 conswitchp = &vga_con; 41 conswitchp = &vga_con;
42 42
43 screen_info = (struct screen_info) { 43 screen_info = (struct screen_info) {
44 0, 25, /* orig-x, orig-y */ 44 .orig_x = 0,
45 0, /* unused */ 45 .orig_y = 25,
46 0, /* orig-video-page */ 46 .orig_video_cols = 80,
47 0, /* orig-video-mode */ 47 .orig_video_lines = 25,
48 80, /* orig-video-cols */ 48 .orig_video_isVGA = VIDEO_TYPE_VGAC,
49 0, 0, 0, /* ega_ax, ega_bx, ega_cx */ 49 .orig_video_points = 16,
50 25, /* orig-video-lines */
51 VIDEO_TYPE_VGAC, /* orig-video-isVGA */
52 16 /* orig-video-points */
53 }; 50 };
54#elif defined(CONFIG_DUMMY_CONSOLE) 51#elif defined(CONFIG_DUMMY_CONSOLE)
55 conswitchp = &dummy_con; 52 conswitchp = &dummy_con;
diff --git a/arch/mips/loongson/lemote-2f/irq.c b/arch/mips/loongson/lemote-2f/irq.c
index 882dfcd42c00..1d8b4d28a058 100644
--- a/arch/mips/loongson/lemote-2f/irq.c
+++ b/arch/mips/loongson/lemote-2f/irq.c
@@ -79,7 +79,7 @@ void mach_irq_dispatch(unsigned int pending)
79 if (pending & CAUSEF_IP7) 79 if (pending & CAUSEF_IP7)
80 do_IRQ(LOONGSON_TIMER_IRQ); 80 do_IRQ(LOONGSON_TIMER_IRQ);
81 else if (pending & CAUSEF_IP6) { /* North Bridge, Perf counter */ 81 else if (pending & CAUSEF_IP6) { /* North Bridge, Perf counter */
82#ifdef CONFIG_OPROFILE 82#if defined(CONFIG_OPROFILE) || defined(CONFIG_OPROFILE_MODULE)
83 do_IRQ(LOONGSON2_PERFCNT_IRQ); 83 do_IRQ(LOONGSON2_PERFCNT_IRQ);
84#endif 84#endif
85 bonito_irqdispatch(); 85 bonito_irqdispatch();
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index d1f68aadbc4c..86f004dc8355 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -31,6 +31,16 @@
31#include <asm/war.h> 31#include <asm/war.h>
32#include <asm/uasm.h> 32#include <asm/uasm.h>
33 33
34/*
35 * TLB load/store/modify handlers.
36 *
37 * Only the fastpath gets synthesized at runtime, the slowpath for
38 * do_page_fault remains normal asm.
39 */
40extern void tlb_do_page_fault_0(void);
41extern void tlb_do_page_fault_1(void);
42
43
34static inline int r45k_bvahwbug(void) 44static inline int r45k_bvahwbug(void)
35{ 45{
36 /* XXX: We should probe for the presence of this bug, but we don't. */ 46 /* XXX: We should probe for the presence of this bug, but we don't. */
@@ -83,6 +93,7 @@ enum label_id {
83 label_nopage_tlbm, 93 label_nopage_tlbm,
84 label_smp_pgtable_change, 94 label_smp_pgtable_change,
85 label_r3000_write_probe_fail, 95 label_r3000_write_probe_fail,
96 label_large_segbits_fault,
86#ifdef CONFIG_HUGETLB_PAGE 97#ifdef CONFIG_HUGETLB_PAGE
87 label_tlb_huge_update, 98 label_tlb_huge_update,
88#endif 99#endif
@@ -101,6 +112,7 @@ UASM_L_LA(_nopage_tlbs)
101UASM_L_LA(_nopage_tlbm) 112UASM_L_LA(_nopage_tlbm)
102UASM_L_LA(_smp_pgtable_change) 113UASM_L_LA(_smp_pgtable_change)
103UASM_L_LA(_r3000_write_probe_fail) 114UASM_L_LA(_r3000_write_probe_fail)
115UASM_L_LA(_large_segbits_fault)
104#ifdef CONFIG_HUGETLB_PAGE 116#ifdef CONFIG_HUGETLB_PAGE
105UASM_L_LA(_tlb_huge_update) 117UASM_L_LA(_tlb_huge_update)
106#endif 118#endif
@@ -157,6 +169,10 @@ static u32 tlb_handler[128] __cpuinitdata;
157static struct uasm_label labels[128] __cpuinitdata; 169static struct uasm_label labels[128] __cpuinitdata;
158static struct uasm_reloc relocs[128] __cpuinitdata; 170static struct uasm_reloc relocs[128] __cpuinitdata;
159 171
172#ifdef CONFIG_64BIT
173static int check_for_high_segbits __cpuinitdata;
174#endif
175
160#ifndef CONFIG_MIPS_PGD_C0_CONTEXT 176#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
161/* 177/*
162 * CONFIG_MIPS_PGD_C0_CONTEXT implies 64 bit and lack of pgd_current, 178 * CONFIG_MIPS_PGD_C0_CONTEXT implies 64 bit and lack of pgd_current,
@@ -408,7 +424,7 @@ static __cpuinit __maybe_unused void build_convert_pte_to_entrylo(u32 **p,
408 UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC)); 424 UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
409 } else { 425 } else {
410#ifdef CONFIG_64BIT_PHYS_ADDR 426#ifdef CONFIG_64BIT_PHYS_ADDR
411 uasm_i_dsrl(p, reg, reg, ilog2(_PAGE_GLOBAL)); 427 uasm_i_dsrl_safe(p, reg, reg, ilog2(_PAGE_GLOBAL));
412#else 428#else
413 UASM_i_SRL(p, reg, reg, ilog2(_PAGE_GLOBAL)); 429 UASM_i_SRL(p, reg, reg, ilog2(_PAGE_GLOBAL));
414#endif 430#endif
@@ -532,7 +548,24 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
532 * The vmalloc handling is not in the hotpath. 548 * The vmalloc handling is not in the hotpath.
533 */ 549 */
534 uasm_i_dmfc0(p, tmp, C0_BADVADDR); 550 uasm_i_dmfc0(p, tmp, C0_BADVADDR);
535 uasm_il_bltz(p, r, tmp, label_vmalloc); 551
552 if (check_for_high_segbits) {
553 /*
554 * The kernel currently implicitely assumes that the
555 * MIPS SEGBITS parameter for the processor is
556 * (PGDIR_SHIFT+PGDIR_BITS) or less, and will never
557 * allocate virtual addresses outside the maximum
558 * range for SEGBITS = (PGDIR_SHIFT+PGDIR_BITS). But
559 * that doesn't prevent user code from accessing the
560 * higher xuseg addresses. Here, we make sure that
561 * everything but the lower xuseg addresses goes down
562 * the module_alloc/vmalloc path.
563 */
564 uasm_i_dsrl_safe(p, ptr, tmp, PGDIR_SHIFT + PGD_ORDER + PAGE_SHIFT - 3);
565 uasm_il_bnez(p, r, ptr, label_vmalloc);
566 } else {
567 uasm_il_bltz(p, r, tmp, label_vmalloc);
568 }
536 /* No uasm_i_nop needed here, since the next insn doesn't touch TMP. */ 569 /* No uasm_i_nop needed here, since the next insn doesn't touch TMP. */
537 570
538#ifdef CONFIG_MIPS_PGD_C0_CONTEXT 571#ifdef CONFIG_MIPS_PGD_C0_CONTEXT
@@ -549,14 +582,14 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
549 * SMTC uses TCBind value as "CPU" index 582 * SMTC uses TCBind value as "CPU" index
550 */ 583 */
551 uasm_i_mfc0(p, ptr, C0_TCBIND); 584 uasm_i_mfc0(p, ptr, C0_TCBIND);
552 uasm_i_dsrl(p, ptr, ptr, 19); 585 uasm_i_dsrl_safe(p, ptr, ptr, 19);
553# else 586# else
554 /* 587 /*
555 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3 588 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3
556 * stored in CONTEXT. 589 * stored in CONTEXT.
557 */ 590 */
558 uasm_i_dmfc0(p, ptr, C0_CONTEXT); 591 uasm_i_dmfc0(p, ptr, C0_CONTEXT);
559 uasm_i_dsrl(p, ptr, ptr, 23); 592 uasm_i_dsrl_safe(p, ptr, ptr, 23);
560# endif 593# endif
561 UASM_i_LA_mostly(p, tmp, pgdc); 594 UASM_i_LA_mostly(p, tmp, pgdc);
562 uasm_i_daddu(p, ptr, ptr, tmp); 595 uasm_i_daddu(p, ptr, ptr, tmp);
@@ -569,44 +602,78 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
569 602
570 uasm_l_vmalloc_done(l, *p); 603 uasm_l_vmalloc_done(l, *p);
571 604
572 if (PGDIR_SHIFT - 3 < 32) /* get pgd offset in bytes */ 605 /* get pgd offset in bytes */
573 uasm_i_dsrl(p, tmp, tmp, PGDIR_SHIFT-3); 606 uasm_i_dsrl_safe(p, tmp, tmp, PGDIR_SHIFT - 3);
574 else
575 uasm_i_dsrl32(p, tmp, tmp, PGDIR_SHIFT - 3 - 32);
576 607
577 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3); 608 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3);
578 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */ 609 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */
579#ifndef __PAGETABLE_PMD_FOLDED 610#ifndef __PAGETABLE_PMD_FOLDED
580 uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */ 611 uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */
581 uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */ 612 uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */
582 uasm_i_dsrl(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */ 613 uasm_i_dsrl_safe(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */
583 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3); 614 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3);
584 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */ 615 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */
585#endif 616#endif
586} 617}
587 618
619enum vmalloc64_mode {not_refill, refill};
588/* 620/*
589 * BVADDR is the faulting address, PTR is scratch. 621 * BVADDR is the faulting address, PTR is scratch.
590 * PTR will hold the pgd for vmalloc. 622 * PTR will hold the pgd for vmalloc.
591 */ 623 */
592static void __cpuinit 624static void __cpuinit
593build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 625build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
594 unsigned int bvaddr, unsigned int ptr) 626 unsigned int bvaddr, unsigned int ptr,
627 enum vmalloc64_mode mode)
595{ 628{
596 long swpd = (long)swapper_pg_dir; 629 long swpd = (long)swapper_pg_dir;
630 int single_insn_swpd;
631 int did_vmalloc_branch = 0;
632
633 single_insn_swpd = uasm_in_compat_space_p(swpd) && !uasm_rel_lo(swpd);
597 634
598 uasm_l_vmalloc(l, *p); 635 uasm_l_vmalloc(l, *p);
599 636
600 if (uasm_in_compat_space_p(swpd) && !uasm_rel_lo(swpd)) { 637 if (mode == refill && check_for_high_segbits) {
601 uasm_il_b(p, r, label_vmalloc_done); 638 if (single_insn_swpd) {
602 uasm_i_lui(p, ptr, uasm_rel_hi(swpd)); 639 uasm_il_bltz(p, r, bvaddr, label_vmalloc_done);
603 } else { 640 uasm_i_lui(p, ptr, uasm_rel_hi(swpd));
604 UASM_i_LA_mostly(p, ptr, swpd); 641 did_vmalloc_branch = 1;
605 uasm_il_b(p, r, label_vmalloc_done); 642 /* fall through */
606 if (uasm_in_compat_space_p(swpd)) 643 } else {
607 uasm_i_addiu(p, ptr, ptr, uasm_rel_lo(swpd)); 644 uasm_il_bgez(p, r, bvaddr, label_large_segbits_fault);
608 else 645 }
609 uasm_i_daddiu(p, ptr, ptr, uasm_rel_lo(swpd)); 646 }
647 if (!did_vmalloc_branch) {
648 if (uasm_in_compat_space_p(swpd) && !uasm_rel_lo(swpd)) {
649 uasm_il_b(p, r, label_vmalloc_done);
650 uasm_i_lui(p, ptr, uasm_rel_hi(swpd));
651 } else {
652 UASM_i_LA_mostly(p, ptr, swpd);
653 uasm_il_b(p, r, label_vmalloc_done);
654 if (uasm_in_compat_space_p(swpd))
655 uasm_i_addiu(p, ptr, ptr, uasm_rel_lo(swpd));
656 else
657 uasm_i_daddiu(p, ptr, ptr, uasm_rel_lo(swpd));
658 }
659 }
660 if (mode == refill && check_for_high_segbits) {
661 uasm_l_large_segbits_fault(l, *p);
662 /*
663 * We get here if we are an xsseg address, or if we are
664 * an xuseg address above (PGDIR_SHIFT+PGDIR_BITS) boundary.
665 *
666 * Ignoring xsseg (assume disabled so would generate
667 * (address errors?), the only remaining possibility
668 * is the upper xuseg addresses. On processors with
669 * TLB_SEGBITS <= PGDIR_SHIFT+PGDIR_BITS, these
670 * addresses would have taken an address error. We try
671 * to mimic that here by taking a load/istream page
672 * fault.
673 */
674 UASM_i_LA(p, ptr, (unsigned long)tlb_do_page_fault_0);
675 uasm_i_jr(p, ptr);
676 uasm_i_nop(p);
610 } 677 }
611} 678}
612 679
@@ -720,9 +787,9 @@ static void __cpuinit build_update_entries(u32 **p, unsigned int tmp,
720 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */ 787 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
721 UASM_i_ROTR(p, ptep, ptep, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC)); 788 UASM_i_ROTR(p, ptep, ptep, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
722 } else { 789 } else {
723 uasm_i_dsrl(p, tmp, tmp, ilog2(_PAGE_GLOBAL)); /* convert to entrylo0 */ 790 uasm_i_dsrl_safe(p, tmp, tmp, ilog2(_PAGE_GLOBAL)); /* convert to entrylo0 */
724 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */ 791 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
725 uasm_i_dsrl(p, ptep, ptep, ilog2(_PAGE_GLOBAL)); /* convert to entrylo1 */ 792 uasm_i_dsrl_safe(p, ptep, ptep, ilog2(_PAGE_GLOBAL)); /* convert to entrylo1 */
726 } 793 }
727 UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */ 794 UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */
728 } else { 795 } else {
@@ -793,9 +860,9 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)
793 uasm_i_dmfc0(&p, K0, C0_BADVADDR); 860 uasm_i_dmfc0(&p, K0, C0_BADVADDR);
794 uasm_i_dmfc0(&p, K1, C0_ENTRYHI); 861 uasm_i_dmfc0(&p, K1, C0_ENTRYHI);
795 uasm_i_xor(&p, K0, K0, K1); 862 uasm_i_xor(&p, K0, K0, K1);
796 uasm_i_dsrl32(&p, K1, K0, 62 - 32); 863 uasm_i_dsrl_safe(&p, K1, K0, 62);
797 uasm_i_dsrl(&p, K0, K0, 12 + 1); 864 uasm_i_dsrl_safe(&p, K0, K0, 12 + 1);
798 uasm_i_dsll32(&p, K0, K0, 64 + 12 + 1 - segbits - 32); 865 uasm_i_dsll_safe(&p, K0, K0, 64 + 12 + 1 - segbits);
799 uasm_i_or(&p, K0, K0, K1); 866 uasm_i_or(&p, K0, K0, K1);
800 uasm_il_bnez(&p, &r, K0, label_leave); 867 uasm_il_bnez(&p, &r, K0, label_leave);
801 /* No need for uasm_i_nop */ 868 /* No need for uasm_i_nop */
@@ -825,7 +892,7 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)
825#endif 892#endif
826 893
827#ifdef CONFIG_64BIT 894#ifdef CONFIG_64BIT
828 build_get_pgd_vmalloc64(&p, &l, &r, K0, K1); 895 build_get_pgd_vmalloc64(&p, &l, &r, K0, K1, refill);
829#endif 896#endif
830 897
831 /* 898 /*
@@ -935,15 +1002,6 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)
935} 1002}
936 1003
937/* 1004/*
938 * TLB load/store/modify handlers.
939 *
940 * Only the fastpath gets synthesized at runtime, the slowpath for
941 * do_page_fault remains normal asm.
942 */
943extern void tlb_do_page_fault_0(void);
944extern void tlb_do_page_fault_1(void);
945
946/*
947 * 128 instructions for the fastpath handler is generous and should 1005 * 128 instructions for the fastpath handler is generous and should
948 * never be exceeded. 1006 * never be exceeded.
949 */ 1007 */
@@ -1302,7 +1360,7 @@ build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l,
1302 uasm_i_eret(p); /* return from trap */ 1360 uasm_i_eret(p); /* return from trap */
1303 1361
1304#ifdef CONFIG_64BIT 1362#ifdef CONFIG_64BIT
1305 build_get_pgd_vmalloc64(p, l, r, tmp, ptr); 1363 build_get_pgd_vmalloc64(p, l, r, tmp, ptr, not_refill);
1306#endif 1364#endif
1307} 1365}
1308 1366
@@ -1322,9 +1380,9 @@ static void __cpuinit build_r4000_tlb_load_handler(void)
1322 uasm_i_dmfc0(&p, K0, C0_BADVADDR); 1380 uasm_i_dmfc0(&p, K0, C0_BADVADDR);
1323 uasm_i_dmfc0(&p, K1, C0_ENTRYHI); 1381 uasm_i_dmfc0(&p, K1, C0_ENTRYHI);
1324 uasm_i_xor(&p, K0, K0, K1); 1382 uasm_i_xor(&p, K0, K0, K1);
1325 uasm_i_dsrl32(&p, K1, K0, 62 - 32); 1383 uasm_i_dsrl_safe(&p, K1, K0, 62);
1326 uasm_i_dsrl(&p, K0, K0, 12 + 1); 1384 uasm_i_dsrl_safe(&p, K0, K0, 12 + 1);
1327 uasm_i_dsll32(&p, K0, K0, 64 + 12 + 1 - segbits - 32); 1385 uasm_i_dsll_safe(&p, K0, K0, 64 + 12 + 1 - segbits);
1328 uasm_i_or(&p, K0, K0, K1); 1386 uasm_i_or(&p, K0, K0, K1);
1329 uasm_il_bnez(&p, &r, K0, label_leave); 1387 uasm_il_bnez(&p, &r, K0, label_leave);
1330 /* No need for uasm_i_nop */ 1388 /* No need for uasm_i_nop */
@@ -1526,6 +1584,10 @@ void __cpuinit build_tlb_refill_handler(void)
1526 */ 1584 */
1527 static int run_once = 0; 1585 static int run_once = 0;
1528 1586
1587#ifdef CONFIG_64BIT
1588 check_for_high_segbits = current_cpu_data.vmbits > (PGDIR_SHIFT + PGD_ORDER + PAGE_SHIFT - 3);
1589#endif
1590
1529 switch (current_cpu_type()) { 1591 switch (current_cpu_type()) {
1530 case CPU_R2000: 1592 case CPU_R2000:
1531 case CPU_R3000: 1593 case CPU_R3000:
diff --git a/arch/mips/nxp/pnx8550/common/reset.c b/arch/mips/nxp/pnx8550/common/reset.c
index 76bc3ec634ee..fadd8744a6bc 100644
--- a/arch/mips/nxp/pnx8550/common/reset.c
+++ b/arch/mips/nxp/pnx8550/common/reset.c
@@ -20,6 +20,8 @@
20 * Reset the PNX8550 board. 20 * Reset the PNX8550 board.
21 * 21 *
22 */ 22 */
23#include <linux/kernel.h>
24
23#include <asm/reboot.h> 25#include <asm/reboot.h>
24#include <glb.h> 26#include <glb.h>
25 27
diff --git a/arch/mips/pci/pci-sb1250.c b/arch/mips/pci/pci-sb1250.c
index ada24e6f951f..1711e8e101bc 100644
--- a/arch/mips/pci/pci-sb1250.c
+++ b/arch/mips/pci/pci-sb1250.c
@@ -37,6 +37,7 @@
37#include <linux/mm.h> 37#include <linux/mm.h>
38#include <linux/console.h> 38#include <linux/console.h>
39#include <linux/tty.h> 39#include <linux/tty.h>
40#include <linux/vt.h>
40 41
41#include <asm/io.h> 42#include <asm/io.h>
42 43
@@ -254,7 +255,7 @@ static int __init sb1250_pcibios_init(void)
254 * XXX ehs: Should this happen in PCI Device mode? 255 * XXX ehs: Should this happen in PCI Device mode?
255 */ 256 */
256 io_map_base = ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 1024 * 1024); 257 io_map_base = ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 1024 * 1024);
257 sb1250_controller.io_map_base = io_map_base; 258 sb1250_controller.io_map_base = (unsigned long)io_map_base;
258 set_io_port_base((unsigned long)io_map_base); 259 set_io_port_base((unsigned long)io_map_base);
259 260
260#ifdef CONFIG_SIBYTE_HAS_LDT 261#ifdef CONFIG_SIBYTE_HAS_LDT
diff --git a/arch/mips/sgi-ip22/ip22-berr.c b/arch/mips/sgi-ip22/ip22-berr.c
index de6a0cc32fea..911d3999c0c7 100644
--- a/arch/mips/sgi-ip22/ip22-berr.c
+++ b/arch/mips/sgi-ip22/ip22-berr.c
@@ -89,7 +89,7 @@ static void print_buserr(void)
89void ip22_be_interrupt(int irq) 89void ip22_be_interrupt(int irq)
90{ 90{
91 const int field = 2 * sizeof(unsigned long); 91 const int field = 2 * sizeof(unsigned long);
92 const struct pt_regs *regs = get_irq_regs(); 92 struct pt_regs *regs = get_irq_regs();
93 93
94 save_and_clear_buserr(); 94 save_and_clear_buserr();
95 print_buserr(); 95 print_buserr();
diff --git a/arch/mips/sgi-ip22/ip28-berr.c b/arch/mips/sgi-ip22/ip28-berr.c
index 30e12e2ec4b5..88c684e05a3d 100644
--- a/arch/mips/sgi-ip22/ip28-berr.c
+++ b/arch/mips/sgi-ip22/ip28-berr.c
@@ -453,7 +453,7 @@ mips_be_fatal:
453 453
454void ip22_be_interrupt(int irq) 454void ip22_be_interrupt(int irq)
455{ 455{
456 const struct pt_regs *regs = get_irq_regs(); 456 struct pt_regs *regs = get_irq_regs();
457 457
458 count_be_interrupt++; 458 count_be_interrupt++;
459 459
diff --git a/arch/mips/sibyte/swarm/setup.c b/arch/mips/sibyte/swarm/setup.c
index 5277aac96b0f..c308989fc464 100644
--- a/arch/mips/sibyte/swarm/setup.c
+++ b/arch/mips/sibyte/swarm/setup.c
@@ -145,15 +145,14 @@ void __init plat_mem_setup(void)
145 145
146#ifdef CONFIG_VT 146#ifdef CONFIG_VT
147 screen_info = (struct screen_info) { 147 screen_info = (struct screen_info) {
148 0, 0, /* orig-x, orig-y */ 148 .orig_video_page = 52,
149 0, /* unused */ 149 .orig_video_mode = 3,
150 52, /* orig_video_page */ 150 .orig_video_cols = 80,
151 3, /* orig_video_mode */ 151 .flags = 12,
152 80, /* orig_video_cols */ 152 .orig_video_ega_bx = 3,
153 4626, 3, 9, /* unused, ega_bx, unused */ 153 .orig_video_lines = 25,
154 25, /* orig_video_lines */ 154 .orig_video_isVGA = 0x22,
155 0x22, /* orig_video_isVGA */ 155 .orig_video_points = 16,
156 16 /* orig_video_points */
157 }; 156 };
158 /* XXXKW for CFE, get lines/cols from environment */ 157 /* XXXKW for CFE, get lines/cols from environment */
159#endif 158#endif
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index baa2bbb6c096..04f16268e1c3 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:14 2010 4# Mon Apr 19 23:16:38 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,14 +97,8 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
@@ -112,6 +106,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 106CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 107# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 108# CONFIG_RD_LZMA is not set
109# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 112CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368CONFIG_XFRM_USER=m 362CONFIG_XFRM_USER=m
@@ -543,6 +537,8 @@ CONFIG_MTD_PHYSMAP_OF=y
543# UBI - Unsorted block images 537# UBI - Unsorted block images
544# 538#
545# CONFIG_MTD_UBI is not set 539# CONFIG_MTD_UBI is not set
540CONFIG_OF_FLATTREE=y
541CONFIG_OF_DYNAMIC=y
546CONFIG_OF_DEVICE=y 542CONFIG_OF_DEVICE=y
547CONFIG_OF_I2C=y 543CONFIG_OF_I2C=y
548CONFIG_OF_MDIO=y 544CONFIG_OF_MDIO=y
@@ -579,6 +575,7 @@ CONFIG_MISC_DEVICES=y
579# CONFIG_ENCLOSURE_SERVICES is not set 575# CONFIG_ENCLOSURE_SERVICES is not set
580# CONFIG_HP_ILO is not set 576# CONFIG_HP_ILO is not set
581# CONFIG_ISL29003 is not set 577# CONFIG_ISL29003 is not set
578# CONFIG_SENSORS_TSL2550 is not set
582# CONFIG_DS1682 is not set 579# CONFIG_DS1682 is not set
583# CONFIG_C2PORT is not set 580# CONFIG_C2PORT is not set
584 581
@@ -596,6 +593,7 @@ CONFIG_HAVE_IDE=y
596# 593#
597# SCSI device support 594# SCSI device support
598# 595#
596CONFIG_SCSI_MOD=y
599# CONFIG_RAID_ATTRS is not set 597# CONFIG_RAID_ATTRS is not set
600# CONFIG_SCSI is not set 598# CONFIG_SCSI is not set
601# CONFIG_SCSI_DMA is not set 599# CONFIG_SCSI_DMA is not set
@@ -788,6 +786,7 @@ CONFIG_SERIAL_CORE=y
788CONFIG_SERIAL_CORE_CONSOLE=y 786CONFIG_SERIAL_CORE_CONSOLE=y
789# CONFIG_SERIAL_JSM is not set 787# CONFIG_SERIAL_JSM is not set
790# CONFIG_SERIAL_OF_PLATFORM is not set 788# CONFIG_SERIAL_OF_PLATFORM is not set
789# CONFIG_SERIAL_TIMBERDALE is not set
791# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 790# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
792CONFIG_UNIX98_PTYS=y 791CONFIG_UNIX98_PTYS=y
793# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 792# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -836,6 +835,7 @@ CONFIG_I2C_HELPER_AUTO=y
836CONFIG_I2C_MPC=y 835CONFIG_I2C_MPC=y
837# CONFIG_I2C_OCORES is not set 836# CONFIG_I2C_OCORES is not set
838# CONFIG_I2C_SIMTEC is not set 837# CONFIG_I2C_SIMTEC is not set
838# CONFIG_I2C_XILINX is not set
839 839
840# 840#
841# External I2C/SMBus adapter drivers 841# External I2C/SMBus adapter drivers
@@ -849,15 +849,9 @@ CONFIG_I2C_MPC=y
849# 849#
850# CONFIG_I2C_PCA_PLATFORM is not set 850# CONFIG_I2C_PCA_PLATFORM is not set
851# CONFIG_I2C_STUB is not set 851# CONFIG_I2C_STUB is not set
852
853#
854# Miscellaneous I2C Chip support
855#
856# CONFIG_SENSORS_TSL2550 is not set
857# CONFIG_I2C_DEBUG_CORE is not set 852# CONFIG_I2C_DEBUG_CORE is not set
858# CONFIG_I2C_DEBUG_ALGO is not set 853# CONFIG_I2C_DEBUG_ALGO is not set
859# CONFIG_I2C_DEBUG_BUS is not set 854# CONFIG_I2C_DEBUG_BUS is not set
860# CONFIG_I2C_DEBUG_CHIP is not set
861# CONFIG_SPI is not set 855# CONFIG_SPI is not set
862 856
863# 857#
@@ -883,10 +877,11 @@ CONFIG_HWMON=y
883# CONFIG_SENSORS_ADM1029 is not set 877# CONFIG_SENSORS_ADM1029 is not set
884# CONFIG_SENSORS_ADM1031 is not set 878# CONFIG_SENSORS_ADM1031 is not set
885# CONFIG_SENSORS_ADM9240 is not set 879# CONFIG_SENSORS_ADM9240 is not set
880# CONFIG_SENSORS_ADT7411 is not set
886# CONFIG_SENSORS_ADT7462 is not set 881# CONFIG_SENSORS_ADT7462 is not set
887# CONFIG_SENSORS_ADT7470 is not set 882# CONFIG_SENSORS_ADT7470 is not set
888# CONFIG_SENSORS_ADT7473 is not set
889# CONFIG_SENSORS_ADT7475 is not set 883# CONFIG_SENSORS_ADT7475 is not set
884# CONFIG_SENSORS_ASC7621 is not set
890# CONFIG_SENSORS_ATXP1 is not set 885# CONFIG_SENSORS_ATXP1 is not set
891# CONFIG_SENSORS_DS1621 is not set 886# CONFIG_SENSORS_DS1621 is not set
892# CONFIG_SENSORS_I5K_AMB is not set 887# CONFIG_SENSORS_I5K_AMB is not set
@@ -923,6 +918,7 @@ CONFIG_HWMON=y
923# CONFIG_SENSORS_SMSC47M192 is not set 918# CONFIG_SENSORS_SMSC47M192 is not set
924# CONFIG_SENSORS_SMSC47B397 is not set 919# CONFIG_SENSORS_SMSC47B397 is not set
925# CONFIG_SENSORS_ADS7828 is not set 920# CONFIG_SENSORS_ADS7828 is not set
921# CONFIG_SENSORS_AMC6821 is not set
926# CONFIG_SENSORS_THMC50 is not set 922# CONFIG_SENSORS_THMC50 is not set
927# CONFIG_SENSORS_TMP401 is not set 923# CONFIG_SENSORS_TMP401 is not set
928# CONFIG_SENSORS_TMP421 is not set 924# CONFIG_SENSORS_TMP421 is not set
@@ -971,18 +967,21 @@ CONFIG_SSB_POSSIBLE=y
971# Multifunction device drivers 967# Multifunction device drivers
972# 968#
973# CONFIG_MFD_CORE is not set 969# CONFIG_MFD_CORE is not set
970# CONFIG_MFD_88PM860X is not set
974# CONFIG_MFD_SM501 is not set 971# CONFIG_MFD_SM501 is not set
975# CONFIG_HTC_PASIC3 is not set 972# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TWL4030_CORE is not set 973# CONFIG_TWL4030_CORE is not set
977# CONFIG_MFD_TMIO is not set 974# CONFIG_MFD_TMIO is not set
978# CONFIG_PMIC_DA903X is not set 975# CONFIG_PMIC_DA903X is not set
979# CONFIG_PMIC_ADP5520 is not set 976# CONFIG_PMIC_ADP5520 is not set
977# CONFIG_MFD_MAX8925 is not set
980# CONFIG_MFD_WM8400 is not set 978# CONFIG_MFD_WM8400 is not set
981# CONFIG_MFD_WM831X is not set 979# CONFIG_MFD_WM831X is not set
982# CONFIG_MFD_WM8350_I2C is not set 980# CONFIG_MFD_WM8350_I2C is not set
981# CONFIG_MFD_WM8994 is not set
983# CONFIG_MFD_PCF50633 is not set 982# CONFIG_MFD_PCF50633 is not set
984# CONFIG_AB3100_CORE is not set 983# CONFIG_AB3100_CORE is not set
985# CONFIG_MFD_88PM8607 is not set 984# CONFIG_LPC_SCH is not set
986# CONFIG_REGULATOR is not set 985# CONFIG_REGULATOR is not set
987# CONFIG_MEDIA_SUPPORT is not set 986# CONFIG_MEDIA_SUPPORT is not set
988 987
@@ -991,6 +990,7 @@ CONFIG_SSB_POSSIBLE=y
991# 990#
992# CONFIG_AGP is not set 991# CONFIG_AGP is not set
993CONFIG_VGA_ARB=y 992CONFIG_VGA_ARB=y
993CONFIG_VGA_ARB_MAX_GPUS=16
994# CONFIG_DRM is not set 994# CONFIG_DRM is not set
995# CONFIG_VGASTATE is not set 995# CONFIG_VGASTATE is not set
996CONFIG_VIDEO_OUTPUT_CONTROL=m 996CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1083,7 +1083,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1083# CONFIG_USB_RIO500 is not set 1083# CONFIG_USB_RIO500 is not set
1084# CONFIG_USB_LEGOTOWER is not set 1084# CONFIG_USB_LEGOTOWER is not set
1085# CONFIG_USB_LCD is not set 1085# CONFIG_USB_LCD is not set
1086# CONFIG_USB_BERRY_CHARGE is not set
1087# CONFIG_USB_LED is not set 1086# CONFIG_USB_LED is not set
1088# CONFIG_USB_CYPRESS_CY7C63 is not set 1087# CONFIG_USB_CYPRESS_CY7C63 is not set
1089# CONFIG_USB_CYTHERM is not set 1088# CONFIG_USB_CYTHERM is not set
@@ -1096,7 +1095,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1096# CONFIG_USB_IOWARRIOR is not set 1095# CONFIG_USB_IOWARRIOR is not set
1097# CONFIG_USB_TEST is not set 1096# CONFIG_USB_TEST is not set
1098# CONFIG_USB_ISIGHTFW is not set 1097# CONFIG_USB_ISIGHTFW is not set
1099# CONFIG_USB_VST is not set
1100# CONFIG_USB_GADGET is not set 1098# CONFIG_USB_GADGET is not set
1101 1099
1102# 1100#
@@ -1259,6 +1257,7 @@ CONFIG_JFFS2_ZLIB=y
1259# CONFIG_JFFS2_LZO is not set 1257# CONFIG_JFFS2_LZO is not set
1260CONFIG_JFFS2_RTIME=y 1258CONFIG_JFFS2_RTIME=y
1261# CONFIG_JFFS2_RUBIN is not set 1259# CONFIG_JFFS2_RUBIN is not set
1260# CONFIG_LOGFS is not set
1262# CONFIG_CRAMFS is not set 1261# CONFIG_CRAMFS is not set
1263# CONFIG_SQUASHFS is not set 1262# CONFIG_SQUASHFS is not set
1264# CONFIG_VXFS_FS is not set 1263# CONFIG_VXFS_FS is not set
@@ -1285,6 +1284,7 @@ CONFIG_SUNRPC_GSS=y
1285CONFIG_RPCSEC_GSS_KRB5=y 1284CONFIG_RPCSEC_GSS_KRB5=y
1286# CONFIG_RPCSEC_GSS_SPKM3 is not set 1285# CONFIG_RPCSEC_GSS_SPKM3 is not set
1287# CONFIG_SMB_FS is not set 1286# CONFIG_SMB_FS is not set
1287# CONFIG_CEPH_FS is not set
1288# CONFIG_CIFS is not set 1288# CONFIG_CIFS is not set
1289# CONFIG_NCP_FS is not set 1289# CONFIG_NCP_FS is not set
1290# CONFIG_CODA_FS is not set 1290# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/kmeter1_defconfig b/arch/powerpc/configs/83xx/kmeter1_defconfig
index 8b1aa806e548..1843ee11823b 100644
--- a/arch/powerpc/configs/83xx/kmeter1_defconfig
+++ b/arch/powerpc/configs/83xx/kmeter1_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:14 2010 4# Mon Apr 19 23:16:39 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,7 +98,6 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 98# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 99# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 100CONFIG_LOG_BUF_SHIFT=14
101# CONFIG_GROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 101# CONFIG_CGROUPS is not set
103# CONFIG_SYSFS_DEPRECATED_V2 is not set 102# CONFIG_SYSFS_DEPRECATED_V2 is not set
104# CONFIG_RELAY is not set 103# CONFIG_RELAY is not set
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_GENERIC_ISA_DMA=y 321CONFIG_GENERIC_ISA_DMA=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_PPC_PCI_CHOICE=y 323CONFIG_PPC_PCI_CHOICE=y
@@ -346,7 +346,6 @@ CONFIG_NET=y
346# Networking options 346# Networking options
347# 347#
348CONFIG_PACKET=y 348CONFIG_PACKET=y
349# CONFIG_PACKET_MMAP is not set
350CONFIG_UNIX=y 349CONFIG_UNIX=y
351# CONFIG_NET_KEY is not set 350# CONFIG_NET_KEY is not set
352CONFIG_INET=y 351CONFIG_INET=y
@@ -387,6 +386,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
387# CONFIG_ATM is not set 386# CONFIG_ATM is not set
388CONFIG_STP=m 387CONFIG_STP=m
389CONFIG_BRIDGE=m 388CONFIG_BRIDGE=m
389CONFIG_BRIDGE_IGMP_SNOOPING=y
390# CONFIG_NET_DSA is not set 390# CONFIG_NET_DSA is not set
391CONFIG_VLAN_8021Q=y 391CONFIG_VLAN_8021Q=y
392# CONFIG_VLAN_8021Q_GVRP is not set 392# CONFIG_VLAN_8021Q_GVRP is not set
@@ -539,6 +539,8 @@ CONFIG_MTD_UBI_DEBUG=y
539# CONFIG_MTD_UBI_DEBUG_MSG_EBA is not set 539# CONFIG_MTD_UBI_DEBUG_MSG_EBA is not set
540# CONFIG_MTD_UBI_DEBUG_MSG_WL is not set 540# CONFIG_MTD_UBI_DEBUG_MSG_WL is not set
541# CONFIG_MTD_UBI_DEBUG_MSG_IO is not set 541# CONFIG_MTD_UBI_DEBUG_MSG_IO is not set
542CONFIG_OF_FLATTREE=y
543CONFIG_OF_DYNAMIC=y
542CONFIG_OF_DEVICE=y 544CONFIG_OF_DEVICE=y
543CONFIG_OF_I2C=y 545CONFIG_OF_I2C=y
544CONFIG_OF_MDIO=y 546CONFIG_OF_MDIO=y
@@ -563,6 +565,7 @@ CONFIG_HAVE_IDE=y
563# 565#
564# SCSI device support 566# SCSI device support
565# 567#
568CONFIG_SCSI_MOD=y
566# CONFIG_RAID_ATTRS is not set 569# CONFIG_RAID_ATTRS is not set
567# CONFIG_SCSI is not set 570# CONFIG_SCSI is not set
568# CONFIG_SCSI_DMA is not set 571# CONFIG_SCSI_DMA is not set
@@ -690,6 +693,7 @@ CONFIG_SERIAL_CORE=y
690CONFIG_SERIAL_CORE_CONSOLE=y 693CONFIG_SERIAL_CORE_CONSOLE=y
691# CONFIG_SERIAL_OF_PLATFORM is not set 694# CONFIG_SERIAL_OF_PLATFORM is not set
692# CONFIG_SERIAL_QE is not set 695# CONFIG_SERIAL_QE is not set
696# CONFIG_SERIAL_TIMBERDALE is not set
693# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 697# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
694CONFIG_UNIX98_PTYS=y 698CONFIG_UNIX98_PTYS=y
695# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 699# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -720,6 +724,7 @@ CONFIG_I2C_HELPER_AUTO=y
720CONFIG_I2C_MPC=y 724CONFIG_I2C_MPC=y
721# CONFIG_I2C_OCORES is not set 725# CONFIG_I2C_OCORES is not set
722# CONFIG_I2C_SIMTEC is not set 726# CONFIG_I2C_SIMTEC is not set
727# CONFIG_I2C_XILINX is not set
723 728
724# 729#
725# External I2C/SMBus adapter drivers 730# External I2C/SMBus adapter drivers
@@ -732,15 +737,9 @@ CONFIG_I2C_MPC=y
732# 737#
733# CONFIG_I2C_PCA_PLATFORM is not set 738# CONFIG_I2C_PCA_PLATFORM is not set
734# CONFIG_I2C_STUB is not set 739# CONFIG_I2C_STUB is not set
735
736#
737# Miscellaneous I2C Chip support
738#
739# CONFIG_SENSORS_TSL2550 is not set
740# CONFIG_I2C_DEBUG_CORE is not set 740# CONFIG_I2C_DEBUG_CORE is not set
741# CONFIG_I2C_DEBUG_ALGO is not set 741# CONFIG_I2C_DEBUG_ALGO is not set
742# CONFIG_I2C_DEBUG_BUS is not set 742# CONFIG_I2C_DEBUG_BUS is not set
743# CONFIG_I2C_DEBUG_CHIP is not set
744# CONFIG_SPI is not set 743# CONFIG_SPI is not set
745 744
746# 745#
@@ -765,18 +764,20 @@ CONFIG_SSB_POSSIBLE=y
765# Multifunction device drivers 764# Multifunction device drivers
766# 765#
767# CONFIG_MFD_CORE is not set 766# CONFIG_MFD_CORE is not set
767# CONFIG_MFD_88PM860X is not set
768# CONFIG_MFD_SM501 is not set 768# CONFIG_MFD_SM501 is not set
769# CONFIG_HTC_PASIC3 is not set 769# CONFIG_HTC_PASIC3 is not set
770# CONFIG_TWL4030_CORE is not set 770# CONFIG_TWL4030_CORE is not set
771# CONFIG_MFD_TMIO is not set 771# CONFIG_MFD_TMIO is not set
772# CONFIG_PMIC_DA903X is not set 772# CONFIG_PMIC_DA903X is not set
773# CONFIG_PMIC_ADP5520 is not set 773# CONFIG_PMIC_ADP5520 is not set
774# CONFIG_MFD_MAX8925 is not set
774# CONFIG_MFD_WM8400 is not set 775# CONFIG_MFD_WM8400 is not set
775# CONFIG_MFD_WM831X is not set 776# CONFIG_MFD_WM831X is not set
776# CONFIG_MFD_WM8350_I2C is not set 777# CONFIG_MFD_WM8350_I2C is not set
778# CONFIG_MFD_WM8994 is not set
777# CONFIG_MFD_PCF50633 is not set 779# CONFIG_MFD_PCF50633 is not set
778# CONFIG_AB3100_CORE is not set 780# CONFIG_AB3100_CORE is not set
779# CONFIG_MFD_88PM8607 is not set
780# CONFIG_REGULATOR is not set 781# CONFIG_REGULATOR is not set
781# CONFIG_MEDIA_SUPPORT is not set 782# CONFIG_MEDIA_SUPPORT is not set
782 783
@@ -805,8 +806,6 @@ CONFIG_SSB_POSSIBLE=y
805CONFIG_UIO=y 806CONFIG_UIO=y
806# CONFIG_UIO_PDRV is not set 807# CONFIG_UIO_PDRV is not set
807# CONFIG_UIO_PDRV_GENIRQ is not set 808# CONFIG_UIO_PDRV_GENIRQ is not set
808# CONFIG_UIO_SMX is not set
809# CONFIG_UIO_SERCOS3 is not set
810 809
811# 810#
812# TI VLYNQ 811# TI VLYNQ
@@ -887,6 +886,7 @@ CONFIG_JFFS2_ZLIB=y
887CONFIG_JFFS2_RTIME=y 886CONFIG_JFFS2_RTIME=y
888# CONFIG_JFFS2_RUBIN is not set 887# CONFIG_JFFS2_RUBIN is not set
889# CONFIG_UBIFS_FS is not set 888# CONFIG_UBIFS_FS is not set
889# CONFIG_LOGFS is not set
890# CONFIG_CRAMFS is not set 890# CONFIG_CRAMFS is not set
891# CONFIG_SQUASHFS is not set 891# CONFIG_SQUASHFS is not set
892# CONFIG_VXFS_FS is not set 892# CONFIG_VXFS_FS is not set
@@ -911,6 +911,7 @@ CONFIG_SUNRPC=y
911# CONFIG_RPCSEC_GSS_KRB5 is not set 911# CONFIG_RPCSEC_GSS_KRB5 is not set
912# CONFIG_RPCSEC_GSS_SPKM3 is not set 912# CONFIG_RPCSEC_GSS_SPKM3 is not set
913# CONFIG_SMB_FS is not set 913# CONFIG_SMB_FS is not set
914# CONFIG_CEPH_FS is not set
914# CONFIG_CIFS is not set 915# CONFIG_CIFS is not set
915# CONFIG_NCP_FS is not set 916# CONFIG_NCP_FS is not set
916# CONFIG_CODA_FS is not set 917# CONFIG_CODA_FS is not set
@@ -976,6 +977,7 @@ CONFIG_DEBUG_FS=y
976CONFIG_DEBUG_BUGVERBOSE=y 977CONFIG_DEBUG_BUGVERBOSE=y
977# CONFIG_DEBUG_MEMORY_INIT is not set 978# CONFIG_DEBUG_MEMORY_INIT is not set
978# CONFIG_RCU_CPU_STALL_DETECTOR is not set 979# CONFIG_RCU_CPU_STALL_DETECTOR is not set
980# CONFIG_LKDTM is not set
979# CONFIG_LATENCYTOP is not set 981# CONFIG_LATENCYTOP is not set
980CONFIG_SYSCTL_SYSCALL_CHECK=y 982CONFIG_SYSCTL_SYSCALL_CHECK=y
981CONFIG_HAVE_FUNCTION_TRACER=y 983CONFIG_HAVE_FUNCTION_TRACER=y
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index 2f2d98558e44..78ae3bf1e9c5 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:15 2010 4# Mon Apr 19 23:16:40 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_DEBUG is not set 334# CONFIG_PCI_DEBUG is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -556,6 +550,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
556# UBI - Unsorted block images 550# UBI - Unsorted block images
557# 551#
558# CONFIG_MTD_UBI is not set 552# CONFIG_MTD_UBI is not set
553CONFIG_OF_FLATTREE=y
554CONFIG_OF_DYNAMIC=y
559CONFIG_OF_DEVICE=y 555CONFIG_OF_DEVICE=y
560CONFIG_OF_I2C=y 556CONFIG_OF_I2C=y
561CONFIG_OF_SPI=y 557CONFIG_OF_SPI=y
@@ -593,6 +589,7 @@ CONFIG_MISC_DEVICES=y
593# CONFIG_ENCLOSURE_SERVICES is not set 589# CONFIG_ENCLOSURE_SERVICES is not set
594# CONFIG_HP_ILO is not set 590# CONFIG_HP_ILO is not set
595# CONFIG_ISL29003 is not set 591# CONFIG_ISL29003 is not set
592# CONFIG_SENSORS_TSL2550 is not set
596# CONFIG_DS1682 is not set 593# CONFIG_DS1682 is not set
597# CONFIG_TI_DAC7512 is not set 594# CONFIG_TI_DAC7512 is not set
598# CONFIG_C2PORT is not set 595# CONFIG_C2PORT is not set
@@ -612,6 +609,7 @@ CONFIG_HAVE_IDE=y
612# 609#
613# SCSI device support 610# SCSI device support
614# 611#
612CONFIG_SCSI_MOD=y
615# CONFIG_RAID_ATTRS is not set 613# CONFIG_RAID_ATTRS is not set
616CONFIG_SCSI=y 614CONFIG_SCSI=y
617CONFIG_SCSI_DMA=y 615CONFIG_SCSI_DMA=y
@@ -772,6 +770,7 @@ CONFIG_NET_PCI=y
772# CONFIG_PCNET32 is not set 770# CONFIG_PCNET32 is not set
773# CONFIG_AMD8111_ETH is not set 771# CONFIG_AMD8111_ETH is not set
774# CONFIG_ADAPTEC_STARFIRE is not set 772# CONFIG_ADAPTEC_STARFIRE is not set
773# CONFIG_KSZ884X_PCI is not set
775# CONFIG_B44 is not set 774# CONFIG_B44 is not set
776# CONFIG_FORCEDETH is not set 775# CONFIG_FORCEDETH is not set
777CONFIG_E100=y 776CONFIG_E100=y
@@ -824,6 +823,8 @@ CONFIG_NETDEV_10000=y
824# CONFIG_CHELSIO_T1 is not set 823# CONFIG_CHELSIO_T1 is not set
825CONFIG_CHELSIO_T3_DEPENDS=y 824CONFIG_CHELSIO_T3_DEPENDS=y
826# CONFIG_CHELSIO_T3 is not set 825# CONFIG_CHELSIO_T3 is not set
826CONFIG_CHELSIO_T4_DEPENDS=y
827# CONFIG_CHELSIO_T4 is not set
827# CONFIG_ENIC is not set 828# CONFIG_ENIC is not set
828# CONFIG_IXGBE is not set 829# CONFIG_IXGBE is not set
829# CONFIG_IXGB is not set 830# CONFIG_IXGB is not set
@@ -836,6 +837,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
836# CONFIG_MLX4_CORE is not set 837# CONFIG_MLX4_CORE is not set
837# CONFIG_TEHUTI is not set 838# CONFIG_TEHUTI is not set
838# CONFIG_BNX2X is not set 839# CONFIG_BNX2X is not set
840# CONFIG_QLCNIC is not set
839# CONFIG_QLGE is not set 841# CONFIG_QLGE is not set
840# CONFIG_SFC is not set 842# CONFIG_SFC is not set
841# CONFIG_BE2NET is not set 843# CONFIG_BE2NET is not set
@@ -931,6 +933,7 @@ CONFIG_SERIAL_CORE=y
931CONFIG_SERIAL_CORE_CONSOLE=y 933CONFIG_SERIAL_CORE_CONSOLE=y
932# CONFIG_SERIAL_JSM is not set 934# CONFIG_SERIAL_JSM is not set
933# CONFIG_SERIAL_OF_PLATFORM is not set 935# CONFIG_SERIAL_OF_PLATFORM is not set
936# CONFIG_SERIAL_TIMBERDALE is not set
934# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 937# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
935CONFIG_UNIX98_PTYS=y 938CONFIG_UNIX98_PTYS=y
936# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 939# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -980,6 +983,7 @@ CONFIG_I2C_HELPER_AUTO=y
980CONFIG_I2C_MPC=y 983CONFIG_I2C_MPC=y
981# CONFIG_I2C_OCORES is not set 984# CONFIG_I2C_OCORES is not set
982# CONFIG_I2C_SIMTEC is not set 985# CONFIG_I2C_SIMTEC is not set
986# CONFIG_I2C_XILINX is not set
983 987
984# 988#
985# External I2C/SMBus adapter drivers 989# External I2C/SMBus adapter drivers
@@ -993,15 +997,9 @@ CONFIG_I2C_MPC=y
993# 997#
994# CONFIG_I2C_PCA_PLATFORM is not set 998# CONFIG_I2C_PCA_PLATFORM is not set
995# CONFIG_I2C_STUB is not set 999# CONFIG_I2C_STUB is not set
996
997#
998# Miscellaneous I2C Chip support
999#
1000# CONFIG_SENSORS_TSL2550 is not set
1001# CONFIG_I2C_DEBUG_CORE is not set 1000# CONFIG_I2C_DEBUG_CORE is not set
1002# CONFIG_I2C_DEBUG_ALGO is not set 1001# CONFIG_I2C_DEBUG_ALGO is not set
1003# CONFIG_I2C_DEBUG_BUS is not set 1002# CONFIG_I2C_DEBUG_BUS is not set
1004# CONFIG_I2C_DEBUG_CHIP is not set
1005CONFIG_SPI=y 1003CONFIG_SPI=y
1006# CONFIG_SPI_DEBUG is not set 1004# CONFIG_SPI_DEBUG is not set
1007CONFIG_SPI_MASTER=y 1005CONFIG_SPI_MASTER=y
@@ -1044,10 +1042,11 @@ CONFIG_HWMON=y
1044# CONFIG_SENSORS_ADM1029 is not set 1042# CONFIG_SENSORS_ADM1029 is not set
1045# CONFIG_SENSORS_ADM1031 is not set 1043# CONFIG_SENSORS_ADM1031 is not set
1046# CONFIG_SENSORS_ADM9240 is not set 1044# CONFIG_SENSORS_ADM9240 is not set
1045# CONFIG_SENSORS_ADT7411 is not set
1047# CONFIG_SENSORS_ADT7462 is not set 1046# CONFIG_SENSORS_ADT7462 is not set
1048# CONFIG_SENSORS_ADT7470 is not set 1047# CONFIG_SENSORS_ADT7470 is not set
1049# CONFIG_SENSORS_ADT7473 is not set
1050# CONFIG_SENSORS_ADT7475 is not set 1048# CONFIG_SENSORS_ADT7475 is not set
1049# CONFIG_SENSORS_ASC7621 is not set
1051# CONFIG_SENSORS_ATXP1 is not set 1050# CONFIG_SENSORS_ATXP1 is not set
1052# CONFIG_SENSORS_DS1621 is not set 1051# CONFIG_SENSORS_DS1621 is not set
1053# CONFIG_SENSORS_I5K_AMB is not set 1052# CONFIG_SENSORS_I5K_AMB is not set
@@ -1086,6 +1085,7 @@ CONFIG_HWMON=y
1086# CONFIG_SENSORS_SMSC47M192 is not set 1085# CONFIG_SENSORS_SMSC47M192 is not set
1087# CONFIG_SENSORS_SMSC47B397 is not set 1086# CONFIG_SENSORS_SMSC47B397 is not set
1088# CONFIG_SENSORS_ADS7828 is not set 1087# CONFIG_SENSORS_ADS7828 is not set
1088# CONFIG_SENSORS_AMC6821 is not set
1089# CONFIG_SENSORS_THMC50 is not set 1089# CONFIG_SENSORS_THMC50 is not set
1090# CONFIG_SENSORS_TMP401 is not set 1090# CONFIG_SENSORS_TMP401 is not set
1091# CONFIG_SENSORS_TMP421 is not set 1091# CONFIG_SENSORS_TMP421 is not set
@@ -1134,21 +1134,24 @@ CONFIG_SSB_POSSIBLE=y
1134# Multifunction device drivers 1134# Multifunction device drivers
1135# 1135#
1136# CONFIG_MFD_CORE is not set 1136# CONFIG_MFD_CORE is not set
1137# CONFIG_MFD_88PM860X is not set
1137# CONFIG_MFD_SM501 is not set 1138# CONFIG_MFD_SM501 is not set
1138# CONFIG_HTC_PASIC3 is not set 1139# CONFIG_HTC_PASIC3 is not set
1139# CONFIG_TWL4030_CORE is not set 1140# CONFIG_TWL4030_CORE is not set
1140# CONFIG_MFD_TMIO is not set 1141# CONFIG_MFD_TMIO is not set
1141# CONFIG_PMIC_DA903X is not set 1142# CONFIG_PMIC_DA903X is not set
1142# CONFIG_PMIC_ADP5520 is not set 1143# CONFIG_PMIC_ADP5520 is not set
1144# CONFIG_MFD_MAX8925 is not set
1143# CONFIG_MFD_WM8400 is not set 1145# CONFIG_MFD_WM8400 is not set
1144# CONFIG_MFD_WM831X is not set 1146# CONFIG_MFD_WM831X is not set
1145# CONFIG_MFD_WM8350_I2C is not set 1147# CONFIG_MFD_WM8350_I2C is not set
1148# CONFIG_MFD_WM8994 is not set
1146# CONFIG_MFD_PCF50633 is not set 1149# CONFIG_MFD_PCF50633 is not set
1147# CONFIG_MFD_MC13783 is not set 1150# CONFIG_MFD_MC13783 is not set
1148# CONFIG_AB3100_CORE is not set 1151# CONFIG_AB3100_CORE is not set
1149# CONFIG_EZX_PCAP is not set 1152# CONFIG_EZX_PCAP is not set
1150# CONFIG_MFD_88PM8607 is not set
1151# CONFIG_AB4500_CORE is not set 1153# CONFIG_AB4500_CORE is not set
1154# CONFIG_LPC_SCH is not set
1152# CONFIG_REGULATOR is not set 1155# CONFIG_REGULATOR is not set
1153# CONFIG_MEDIA_SUPPORT is not set 1156# CONFIG_MEDIA_SUPPORT is not set
1154 1157
@@ -1157,6 +1160,7 @@ CONFIG_SSB_POSSIBLE=y
1157# 1160#
1158# CONFIG_AGP is not set 1161# CONFIG_AGP is not set
1159CONFIG_VGA_ARB=y 1162CONFIG_VGA_ARB=y
1163CONFIG_VGA_ARB_MAX_GPUS=16
1160# CONFIG_DRM is not set 1164# CONFIG_DRM is not set
1161# CONFIG_VGASTATE is not set 1165# CONFIG_VGASTATE is not set
1162CONFIG_VIDEO_OUTPUT_CONTROL=m 1166CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1289,7 +1293,6 @@ CONFIG_USB_STORAGE=y
1289# CONFIG_USB_RIO500 is not set 1293# CONFIG_USB_RIO500 is not set
1290# CONFIG_USB_LEGOTOWER is not set 1294# CONFIG_USB_LEGOTOWER is not set
1291# CONFIG_USB_LCD is not set 1295# CONFIG_USB_LCD is not set
1292# CONFIG_USB_BERRY_CHARGE is not set
1293# CONFIG_USB_LED is not set 1296# CONFIG_USB_LED is not set
1294# CONFIG_USB_CYPRESS_CY7C63 is not set 1297# CONFIG_USB_CYPRESS_CY7C63 is not set
1295# CONFIG_USB_CYTHERM is not set 1298# CONFIG_USB_CYTHERM is not set
@@ -1302,7 +1305,6 @@ CONFIG_USB_STORAGE=y
1302# CONFIG_USB_IOWARRIOR is not set 1305# CONFIG_USB_IOWARRIOR is not set
1303# CONFIG_USB_TEST is not set 1306# CONFIG_USB_TEST is not set
1304# CONFIG_USB_ISIGHTFW is not set 1307# CONFIG_USB_ISIGHTFW is not set
1305# CONFIG_USB_VST is not set
1306CONFIG_USB_GADGET=y 1308CONFIG_USB_GADGET=y
1307# CONFIG_USB_GADGET_DEBUG is not set 1309# CONFIG_USB_GADGET_DEBUG is not set
1308# CONFIG_USB_GADGET_DEBUG_FILES is not set 1310# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1341,6 +1343,7 @@ CONFIG_USB_ETH_RNDIS=y
1341# CONFIG_USB_MIDI_GADGET is not set 1343# CONFIG_USB_MIDI_GADGET is not set
1342# CONFIG_USB_G_PRINTER is not set 1344# CONFIG_USB_G_PRINTER is not set
1343# CONFIG_USB_CDC_COMPOSITE is not set 1345# CONFIG_USB_CDC_COMPOSITE is not set
1346# CONFIG_USB_G_NOKIA is not set
1344# CONFIG_USB_G_MULTI is not set 1347# CONFIG_USB_G_MULTI is not set
1345 1348
1346# 1349#
@@ -1511,6 +1514,7 @@ CONFIG_JFFS2_ZLIB=y
1511# CONFIG_JFFS2_LZO is not set 1514# CONFIG_JFFS2_LZO is not set
1512CONFIG_JFFS2_RTIME=y 1515CONFIG_JFFS2_RTIME=y
1513# CONFIG_JFFS2_RUBIN is not set 1516# CONFIG_JFFS2_RUBIN is not set
1517# CONFIG_LOGFS is not set
1514# CONFIG_CRAMFS is not set 1518# CONFIG_CRAMFS is not set
1515# CONFIG_SQUASHFS is not set 1519# CONFIG_SQUASHFS is not set
1516# CONFIG_VXFS_FS is not set 1520# CONFIG_VXFS_FS is not set
@@ -1537,6 +1541,7 @@ CONFIG_SUNRPC_GSS=y
1537CONFIG_RPCSEC_GSS_KRB5=y 1541CONFIG_RPCSEC_GSS_KRB5=y
1538# CONFIG_RPCSEC_GSS_SPKM3 is not set 1542# CONFIG_RPCSEC_GSS_SPKM3 is not set
1539# CONFIG_SMB_FS is not set 1543# CONFIG_SMB_FS is not set
1544# CONFIG_CEPH_FS is not set
1540# CONFIG_CIFS is not set 1545# CONFIG_CIFS is not set
1541# CONFIG_NCP_FS is not set 1546# CONFIG_NCP_FS is not set
1542# CONFIG_CODA_FS is not set 1547# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index 633e61194603..cccb71393aca 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:16 2010 4# Mon Apr 19 23:16:40 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_DEBUG is not set 334# CONFIG_PCI_DEBUG is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -556,6 +550,8 @@ CONFIG_MTD_NAND_IDS=y
556# UBI - Unsorted block images 550# UBI - Unsorted block images
557# 551#
558# CONFIG_MTD_UBI is not set 552# CONFIG_MTD_UBI is not set
553CONFIG_OF_FLATTREE=y
554CONFIG_OF_DYNAMIC=y
559CONFIG_OF_DEVICE=y 555CONFIG_OF_DEVICE=y
560CONFIG_OF_I2C=y 556CONFIG_OF_I2C=y
561CONFIG_OF_SPI=y 557CONFIG_OF_SPI=y
@@ -593,6 +589,7 @@ CONFIG_MISC_DEVICES=y
593# CONFIG_ENCLOSURE_SERVICES is not set 589# CONFIG_ENCLOSURE_SERVICES is not set
594# CONFIG_HP_ILO is not set 590# CONFIG_HP_ILO is not set
595# CONFIG_ISL29003 is not set 591# CONFIG_ISL29003 is not set
592# CONFIG_SENSORS_TSL2550 is not set
596# CONFIG_DS1682 is not set 593# CONFIG_DS1682 is not set
597# CONFIG_TI_DAC7512 is not set 594# CONFIG_TI_DAC7512 is not set
598# CONFIG_C2PORT is not set 595# CONFIG_C2PORT is not set
@@ -612,6 +609,7 @@ CONFIG_HAVE_IDE=y
612# 609#
613# SCSI device support 610# SCSI device support
614# 611#
612CONFIG_SCSI_MOD=y
615# CONFIG_RAID_ATTRS is not set 613# CONFIG_RAID_ATTRS is not set
616CONFIG_SCSI=y 614CONFIG_SCSI=y
617CONFIG_SCSI_DMA=y 615CONFIG_SCSI_DMA=y
@@ -735,6 +733,7 @@ CONFIG_ATA_SFF=y
735# CONFIG_PATA_IT821X is not set 733# CONFIG_PATA_IT821X is not set
736# CONFIG_PATA_IT8213 is not set 734# CONFIG_PATA_IT8213 is not set
737# CONFIG_PATA_JMICRON is not set 735# CONFIG_PATA_JMICRON is not set
736# CONFIG_PATA_LEGACY is not set
738# CONFIG_PATA_TRIFLEX is not set 737# CONFIG_PATA_TRIFLEX is not set
739# CONFIG_PATA_MARVELL is not set 738# CONFIG_PATA_MARVELL is not set
740# CONFIG_PATA_MPIIX is not set 739# CONFIG_PATA_MPIIX is not set
@@ -837,6 +836,7 @@ CONFIG_NET_PCI=y
837# CONFIG_PCNET32 is not set 836# CONFIG_PCNET32 is not set
838# CONFIG_AMD8111_ETH is not set 837# CONFIG_AMD8111_ETH is not set
839# CONFIG_ADAPTEC_STARFIRE is not set 838# CONFIG_ADAPTEC_STARFIRE is not set
839# CONFIG_KSZ884X_PCI is not set
840# CONFIG_B44 is not set 840# CONFIG_B44 is not set
841# CONFIG_FORCEDETH is not set 841# CONFIG_FORCEDETH is not set
842CONFIG_E100=y 842CONFIG_E100=y
@@ -889,6 +889,8 @@ CONFIG_NETDEV_10000=y
889# CONFIG_CHELSIO_T1 is not set 889# CONFIG_CHELSIO_T1 is not set
890CONFIG_CHELSIO_T3_DEPENDS=y 890CONFIG_CHELSIO_T3_DEPENDS=y
891# CONFIG_CHELSIO_T3 is not set 891# CONFIG_CHELSIO_T3 is not set
892CONFIG_CHELSIO_T4_DEPENDS=y
893# CONFIG_CHELSIO_T4 is not set
892# CONFIG_ENIC is not set 894# CONFIG_ENIC is not set
893# CONFIG_IXGBE is not set 895# CONFIG_IXGBE is not set
894# CONFIG_IXGB is not set 896# CONFIG_IXGB is not set
@@ -901,6 +903,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
901# CONFIG_MLX4_CORE is not set 903# CONFIG_MLX4_CORE is not set
902# CONFIG_TEHUTI is not set 904# CONFIG_TEHUTI is not set
903# CONFIG_BNX2X is not set 905# CONFIG_BNX2X is not set
906# CONFIG_QLCNIC is not set
904# CONFIG_QLGE is not set 907# CONFIG_QLGE is not set
905# CONFIG_SFC is not set 908# CONFIG_SFC is not set
906# CONFIG_BE2NET is not set 909# CONFIG_BE2NET is not set
@@ -996,6 +999,7 @@ CONFIG_SERIAL_CORE=y
996CONFIG_SERIAL_CORE_CONSOLE=y 999CONFIG_SERIAL_CORE_CONSOLE=y
997# CONFIG_SERIAL_JSM is not set 1000# CONFIG_SERIAL_JSM is not set
998# CONFIG_SERIAL_OF_PLATFORM is not set 1001# CONFIG_SERIAL_OF_PLATFORM is not set
1002# CONFIG_SERIAL_TIMBERDALE is not set
999# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1003# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1000CONFIG_UNIX98_PTYS=y 1004CONFIG_UNIX98_PTYS=y
1001# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1005# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1045,6 +1049,7 @@ CONFIG_I2C_HELPER_AUTO=y
1045CONFIG_I2C_MPC=y 1049CONFIG_I2C_MPC=y
1046# CONFIG_I2C_OCORES is not set 1050# CONFIG_I2C_OCORES is not set
1047# CONFIG_I2C_SIMTEC is not set 1051# CONFIG_I2C_SIMTEC is not set
1052# CONFIG_I2C_XILINX is not set
1048 1053
1049# 1054#
1050# External I2C/SMBus adapter drivers 1055# External I2C/SMBus adapter drivers
@@ -1058,15 +1063,9 @@ CONFIG_I2C_MPC=y
1058# 1063#
1059# CONFIG_I2C_PCA_PLATFORM is not set 1064# CONFIG_I2C_PCA_PLATFORM is not set
1060# CONFIG_I2C_STUB is not set 1065# CONFIG_I2C_STUB is not set
1061
1062#
1063# Miscellaneous I2C Chip support
1064#
1065# CONFIG_SENSORS_TSL2550 is not set
1066# CONFIG_I2C_DEBUG_CORE is not set 1066# CONFIG_I2C_DEBUG_CORE is not set
1067# CONFIG_I2C_DEBUG_ALGO is not set 1067# CONFIG_I2C_DEBUG_ALGO is not set
1068# CONFIG_I2C_DEBUG_BUS is not set 1068# CONFIG_I2C_DEBUG_BUS is not set
1069# CONFIG_I2C_DEBUG_CHIP is not set
1070CONFIG_SPI=y 1069CONFIG_SPI=y
1071# CONFIG_SPI_DEBUG is not set 1070# CONFIG_SPI_DEBUG is not set
1072CONFIG_SPI_MASTER=y 1071CONFIG_SPI_MASTER=y
@@ -1109,10 +1108,11 @@ CONFIG_HWMON=y
1109# CONFIG_SENSORS_ADM1029 is not set 1108# CONFIG_SENSORS_ADM1029 is not set
1110# CONFIG_SENSORS_ADM1031 is not set 1109# CONFIG_SENSORS_ADM1031 is not set
1111# CONFIG_SENSORS_ADM9240 is not set 1110# CONFIG_SENSORS_ADM9240 is not set
1111# CONFIG_SENSORS_ADT7411 is not set
1112# CONFIG_SENSORS_ADT7462 is not set 1112# CONFIG_SENSORS_ADT7462 is not set
1113# CONFIG_SENSORS_ADT7470 is not set 1113# CONFIG_SENSORS_ADT7470 is not set
1114# CONFIG_SENSORS_ADT7473 is not set
1115# CONFIG_SENSORS_ADT7475 is not set 1114# CONFIG_SENSORS_ADT7475 is not set
1115# CONFIG_SENSORS_ASC7621 is not set
1116# CONFIG_SENSORS_ATXP1 is not set 1116# CONFIG_SENSORS_ATXP1 is not set
1117# CONFIG_SENSORS_DS1621 is not set 1117# CONFIG_SENSORS_DS1621 is not set
1118# CONFIG_SENSORS_I5K_AMB is not set 1118# CONFIG_SENSORS_I5K_AMB is not set
@@ -1151,6 +1151,7 @@ CONFIG_HWMON=y
1151# CONFIG_SENSORS_SMSC47M192 is not set 1151# CONFIG_SENSORS_SMSC47M192 is not set
1152# CONFIG_SENSORS_SMSC47B397 is not set 1152# CONFIG_SENSORS_SMSC47B397 is not set
1153# CONFIG_SENSORS_ADS7828 is not set 1153# CONFIG_SENSORS_ADS7828 is not set
1154# CONFIG_SENSORS_AMC6821 is not set
1154# CONFIG_SENSORS_THMC50 is not set 1155# CONFIG_SENSORS_THMC50 is not set
1155# CONFIG_SENSORS_TMP401 is not set 1156# CONFIG_SENSORS_TMP401 is not set
1156# CONFIG_SENSORS_TMP421 is not set 1157# CONFIG_SENSORS_TMP421 is not set
@@ -1199,21 +1200,24 @@ CONFIG_SSB_POSSIBLE=y
1199# Multifunction device drivers 1200# Multifunction device drivers
1200# 1201#
1201# CONFIG_MFD_CORE is not set 1202# CONFIG_MFD_CORE is not set
1203# CONFIG_MFD_88PM860X is not set
1202# CONFIG_MFD_SM501 is not set 1204# CONFIG_MFD_SM501 is not set
1203# CONFIG_HTC_PASIC3 is not set 1205# CONFIG_HTC_PASIC3 is not set
1204# CONFIG_TWL4030_CORE is not set 1206# CONFIG_TWL4030_CORE is not set
1205# CONFIG_MFD_TMIO is not set 1207# CONFIG_MFD_TMIO is not set
1206# CONFIG_PMIC_DA903X is not set 1208# CONFIG_PMIC_DA903X is not set
1207# CONFIG_PMIC_ADP5520 is not set 1209# CONFIG_PMIC_ADP5520 is not set
1210# CONFIG_MFD_MAX8925 is not set
1208# CONFIG_MFD_WM8400 is not set 1211# CONFIG_MFD_WM8400 is not set
1209# CONFIG_MFD_WM831X is not set 1212# CONFIG_MFD_WM831X is not set
1210# CONFIG_MFD_WM8350_I2C is not set 1213# CONFIG_MFD_WM8350_I2C is not set
1214# CONFIG_MFD_WM8994 is not set
1211# CONFIG_MFD_PCF50633 is not set 1215# CONFIG_MFD_PCF50633 is not set
1212# CONFIG_MFD_MC13783 is not set 1216# CONFIG_MFD_MC13783 is not set
1213# CONFIG_AB3100_CORE is not set 1217# CONFIG_AB3100_CORE is not set
1214# CONFIG_EZX_PCAP is not set 1218# CONFIG_EZX_PCAP is not set
1215# CONFIG_MFD_88PM8607 is not set
1216# CONFIG_AB4500_CORE is not set 1219# CONFIG_AB4500_CORE is not set
1220# CONFIG_LPC_SCH is not set
1217# CONFIG_REGULATOR is not set 1221# CONFIG_REGULATOR is not set
1218# CONFIG_MEDIA_SUPPORT is not set 1222# CONFIG_MEDIA_SUPPORT is not set
1219 1223
@@ -1222,6 +1226,7 @@ CONFIG_SSB_POSSIBLE=y
1222# 1226#
1223# CONFIG_AGP is not set 1227# CONFIG_AGP is not set
1224CONFIG_VGA_ARB=y 1228CONFIG_VGA_ARB=y
1229CONFIG_VGA_ARB_MAX_GPUS=16
1225# CONFIG_DRM is not set 1230# CONFIG_DRM is not set
1226# CONFIG_VGASTATE is not set 1231# CONFIG_VGASTATE is not set
1227CONFIG_VIDEO_OUTPUT_CONTROL=m 1232CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1354,7 +1359,6 @@ CONFIG_USB_STORAGE=y
1354# CONFIG_USB_RIO500 is not set 1359# CONFIG_USB_RIO500 is not set
1355# CONFIG_USB_LEGOTOWER is not set 1360# CONFIG_USB_LEGOTOWER is not set
1356# CONFIG_USB_LCD is not set 1361# CONFIG_USB_LCD is not set
1357# CONFIG_USB_BERRY_CHARGE is not set
1358# CONFIG_USB_LED is not set 1362# CONFIG_USB_LED is not set
1359# CONFIG_USB_CYPRESS_CY7C63 is not set 1363# CONFIG_USB_CYPRESS_CY7C63 is not set
1360# CONFIG_USB_CYTHERM is not set 1364# CONFIG_USB_CYTHERM is not set
@@ -1367,7 +1371,6 @@ CONFIG_USB_STORAGE=y
1367# CONFIG_USB_IOWARRIOR is not set 1371# CONFIG_USB_IOWARRIOR is not set
1368# CONFIG_USB_TEST is not set 1372# CONFIG_USB_TEST is not set
1369# CONFIG_USB_ISIGHTFW is not set 1373# CONFIG_USB_ISIGHTFW is not set
1370# CONFIG_USB_VST is not set
1371CONFIG_USB_GADGET=y 1374CONFIG_USB_GADGET=y
1372# CONFIG_USB_GADGET_DEBUG is not set 1375# CONFIG_USB_GADGET_DEBUG is not set
1373# CONFIG_USB_GADGET_DEBUG_FILES is not set 1376# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1406,6 +1409,7 @@ CONFIG_USB_ETH_RNDIS=y
1406# CONFIG_USB_MIDI_GADGET is not set 1409# CONFIG_USB_MIDI_GADGET is not set
1407# CONFIG_USB_G_PRINTER is not set 1410# CONFIG_USB_G_PRINTER is not set
1408# CONFIG_USB_CDC_COMPOSITE is not set 1411# CONFIG_USB_CDC_COMPOSITE is not set
1412# CONFIG_USB_G_NOKIA is not set
1409# CONFIG_USB_G_MULTI is not set 1413# CONFIG_USB_G_MULTI is not set
1410 1414
1411# 1415#
@@ -1576,6 +1580,7 @@ CONFIG_JFFS2_ZLIB=y
1576# CONFIG_JFFS2_LZO is not set 1580# CONFIG_JFFS2_LZO is not set
1577CONFIG_JFFS2_RTIME=y 1581CONFIG_JFFS2_RTIME=y
1578# CONFIG_JFFS2_RUBIN is not set 1582# CONFIG_JFFS2_RUBIN is not set
1583# CONFIG_LOGFS is not set
1579# CONFIG_CRAMFS is not set 1584# CONFIG_CRAMFS is not set
1580# CONFIG_SQUASHFS is not set 1585# CONFIG_SQUASHFS is not set
1581# CONFIG_VXFS_FS is not set 1586# CONFIG_VXFS_FS is not set
@@ -1602,6 +1607,7 @@ CONFIG_SUNRPC_GSS=y
1602CONFIG_RPCSEC_GSS_KRB5=y 1607CONFIG_RPCSEC_GSS_KRB5=y
1603# CONFIG_RPCSEC_GSS_SPKM3 is not set 1608# CONFIG_RPCSEC_GSS_SPKM3 is not set
1604# CONFIG_SMB_FS is not set 1609# CONFIG_SMB_FS is not set
1610# CONFIG_CEPH_FS is not set
1605# CONFIG_CIFS is not set 1611# CONFIG_CIFS is not set
1606# CONFIG_NCP_FS is not set 1612# CONFIG_NCP_FS is not set
1607# CONFIG_CODA_FS is not set 1613# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 0b4262bd4917..74cb27aa9d17 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:17 2010 4# Mon Apr 19 23:16:41 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -457,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
458# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
459# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
460CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
461CONFIG_OF_I2C=y 457CONFIG_OF_I2C=y
462CONFIG_OF_MDIO=y 458CONFIG_OF_MDIO=y
@@ -492,6 +488,7 @@ CONFIG_MISC_DEVICES=y
492# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
493# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
494# CONFIG_ISL29003 is not set 490# CONFIG_ISL29003 is not set
491# CONFIG_SENSORS_TSL2550 is not set
495# CONFIG_DS1682 is not set 492# CONFIG_DS1682 is not set
496# CONFIG_C2PORT is not set 493# CONFIG_C2PORT is not set
497 494
@@ -509,6 +506,7 @@ CONFIG_HAVE_IDE=y
509# 506#
510# SCSI device support 507# SCSI device support
511# 508#
509CONFIG_SCSI_MOD=y
512# CONFIG_RAID_ATTRS is not set 510# CONFIG_RAID_ATTRS is not set
513CONFIG_SCSI=y 511CONFIG_SCSI=y
514CONFIG_SCSI_DMA=y 512CONFIG_SCSI_DMA=y
@@ -693,6 +691,8 @@ CONFIG_NETDEV_10000=y
693# CONFIG_CHELSIO_T1 is not set 691# CONFIG_CHELSIO_T1 is not set
694CONFIG_CHELSIO_T3_DEPENDS=y 692CONFIG_CHELSIO_T3_DEPENDS=y
695# CONFIG_CHELSIO_T3 is not set 693# CONFIG_CHELSIO_T3 is not set
694CONFIG_CHELSIO_T4_DEPENDS=y
695# CONFIG_CHELSIO_T4 is not set
696# CONFIG_ENIC is not set 696# CONFIG_ENIC is not set
697# CONFIG_IXGBE is not set 697# CONFIG_IXGBE is not set
698# CONFIG_IXGB is not set 698# CONFIG_IXGB is not set
@@ -705,6 +705,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
705# CONFIG_MLX4_CORE is not set 705# CONFIG_MLX4_CORE is not set
706# CONFIG_TEHUTI is not set 706# CONFIG_TEHUTI is not set
707# CONFIG_BNX2X is not set 707# CONFIG_BNX2X is not set
708# CONFIG_QLCNIC is not set
708# CONFIG_QLGE is not set 709# CONFIG_QLGE is not set
709# CONFIG_SFC is not set 710# CONFIG_SFC is not set
710# CONFIG_BE2NET is not set 711# CONFIG_BE2NET is not set
@@ -790,6 +791,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
790# CONFIG_SERIAL_JSM is not set 791# CONFIG_SERIAL_JSM is not set
791# CONFIG_SERIAL_OF_PLATFORM is not set 792# CONFIG_SERIAL_OF_PLATFORM is not set
792# CONFIG_SERIAL_QE is not set 793# CONFIG_SERIAL_QE is not set
794# CONFIG_SERIAL_TIMBERDALE is not set
793# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 795# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
794CONFIG_UNIX98_PTYS=y 796CONFIG_UNIX98_PTYS=y
795# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 797# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -839,6 +841,7 @@ CONFIG_I2C_HELPER_AUTO=y
839CONFIG_I2C_MPC=y 841CONFIG_I2C_MPC=y
840# CONFIG_I2C_OCORES is not set 842# CONFIG_I2C_OCORES is not set
841# CONFIG_I2C_SIMTEC is not set 843# CONFIG_I2C_SIMTEC is not set
844# CONFIG_I2C_XILINX is not set
842 845
843# 846#
844# External I2C/SMBus adapter drivers 847# External I2C/SMBus adapter drivers
@@ -851,15 +854,9 @@ CONFIG_I2C_MPC=y
851# 854#
852# CONFIG_I2C_PCA_PLATFORM is not set 855# CONFIG_I2C_PCA_PLATFORM is not set
853# CONFIG_I2C_STUB is not set 856# CONFIG_I2C_STUB is not set
854
855#
856# Miscellaneous I2C Chip support
857#
858# CONFIG_SENSORS_TSL2550 is not set
859# CONFIG_I2C_DEBUG_CORE is not set 857# CONFIG_I2C_DEBUG_CORE is not set
860# CONFIG_I2C_DEBUG_ALGO is not set 858# CONFIG_I2C_DEBUG_ALGO is not set
861# CONFIG_I2C_DEBUG_BUS is not set 859# CONFIG_I2C_DEBUG_BUS is not set
862# CONFIG_I2C_DEBUG_CHIP is not set
863# CONFIG_SPI is not set 860# CONFIG_SPI is not set
864 861
865# 862#
@@ -885,10 +882,11 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_ADM1029 is not set 882# CONFIG_SENSORS_ADM1029 is not set
886# CONFIG_SENSORS_ADM1031 is not set 883# CONFIG_SENSORS_ADM1031 is not set
887# CONFIG_SENSORS_ADM9240 is not set 884# CONFIG_SENSORS_ADM9240 is not set
885# CONFIG_SENSORS_ADT7411 is not set
888# CONFIG_SENSORS_ADT7462 is not set 886# CONFIG_SENSORS_ADT7462 is not set
889# CONFIG_SENSORS_ADT7470 is not set 887# CONFIG_SENSORS_ADT7470 is not set
890# CONFIG_SENSORS_ADT7473 is not set
891# CONFIG_SENSORS_ADT7475 is not set 888# CONFIG_SENSORS_ADT7475 is not set
889# CONFIG_SENSORS_ASC7621 is not set
892# CONFIG_SENSORS_ATXP1 is not set 890# CONFIG_SENSORS_ATXP1 is not set
893# CONFIG_SENSORS_DS1621 is not set 891# CONFIG_SENSORS_DS1621 is not set
894# CONFIG_SENSORS_I5K_AMB is not set 892# CONFIG_SENSORS_I5K_AMB is not set
@@ -925,6 +923,7 @@ CONFIG_HWMON=y
925# CONFIG_SENSORS_SMSC47M192 is not set 923# CONFIG_SENSORS_SMSC47M192 is not set
926# CONFIG_SENSORS_SMSC47B397 is not set 924# CONFIG_SENSORS_SMSC47B397 is not set
927# CONFIG_SENSORS_ADS7828 is not set 925# CONFIG_SENSORS_ADS7828 is not set
926# CONFIG_SENSORS_AMC6821 is not set
928# CONFIG_SENSORS_THMC50 is not set 927# CONFIG_SENSORS_THMC50 is not set
929# CONFIG_SENSORS_TMP401 is not set 928# CONFIG_SENSORS_TMP401 is not set
930# CONFIG_SENSORS_TMP421 is not set 929# CONFIG_SENSORS_TMP421 is not set
@@ -967,18 +966,21 @@ CONFIG_SSB_POSSIBLE=y
967# Multifunction device drivers 966# Multifunction device drivers
968# 967#
969# CONFIG_MFD_CORE is not set 968# CONFIG_MFD_CORE is not set
969# CONFIG_MFD_88PM860X is not set
970# CONFIG_MFD_SM501 is not set 970# CONFIG_MFD_SM501 is not set
971# CONFIG_HTC_PASIC3 is not set 971# CONFIG_HTC_PASIC3 is not set
972# CONFIG_TWL4030_CORE is not set 972# CONFIG_TWL4030_CORE is not set
973# CONFIG_MFD_TMIO is not set 973# CONFIG_MFD_TMIO is not set
974# CONFIG_PMIC_DA903X is not set 974# CONFIG_PMIC_DA903X is not set
975# CONFIG_PMIC_ADP5520 is not set 975# CONFIG_PMIC_ADP5520 is not set
976# CONFIG_MFD_MAX8925 is not set
976# CONFIG_MFD_WM8400 is not set 977# CONFIG_MFD_WM8400 is not set
977# CONFIG_MFD_WM831X is not set 978# CONFIG_MFD_WM831X is not set
978# CONFIG_MFD_WM8350_I2C is not set 979# CONFIG_MFD_WM8350_I2C is not set
980# CONFIG_MFD_WM8994 is not set
979# CONFIG_MFD_PCF50633 is not set 981# CONFIG_MFD_PCF50633 is not set
980# CONFIG_AB3100_CORE is not set 982# CONFIG_AB3100_CORE is not set
981# CONFIG_MFD_88PM8607 is not set 983# CONFIG_LPC_SCH is not set
982# CONFIG_REGULATOR is not set 984# CONFIG_REGULATOR is not set
983# CONFIG_MEDIA_SUPPORT is not set 985# CONFIG_MEDIA_SUPPORT is not set
984 986
@@ -987,6 +989,7 @@ CONFIG_SSB_POSSIBLE=y
987# 989#
988# CONFIG_AGP is not set 990# CONFIG_AGP is not set
989CONFIG_VGA_ARB=y 991CONFIG_VGA_ARB=y
992CONFIG_VGA_ARB_MAX_GPUS=16
990# CONFIG_DRM is not set 993# CONFIG_DRM is not set
991# CONFIG_VGASTATE is not set 994# CONFIG_VGASTATE is not set
992CONFIG_VIDEO_OUTPUT_CONTROL=m 995CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1171,6 +1174,7 @@ CONFIG_MISC_FILESYSTEMS=y
1171# CONFIG_BEFS_FS is not set 1174# CONFIG_BEFS_FS is not set
1172# CONFIG_BFS_FS is not set 1175# CONFIG_BFS_FS is not set
1173# CONFIG_EFS_FS is not set 1176# CONFIG_EFS_FS is not set
1177# CONFIG_LOGFS is not set
1174# CONFIG_CRAMFS is not set 1178# CONFIG_CRAMFS is not set
1175# CONFIG_SQUASHFS is not set 1179# CONFIG_SQUASHFS is not set
1176# CONFIG_VXFS_FS is not set 1180# CONFIG_VXFS_FS is not set
@@ -1197,6 +1201,7 @@ CONFIG_SUNRPC_GSS=y
1197CONFIG_RPCSEC_GSS_KRB5=y 1201CONFIG_RPCSEC_GSS_KRB5=y
1198# CONFIG_RPCSEC_GSS_SPKM3 is not set 1202# CONFIG_RPCSEC_GSS_SPKM3 is not set
1199# CONFIG_SMB_FS is not set 1203# CONFIG_SMB_FS is not set
1204# CONFIG_CEPH_FS is not set
1200# CONFIG_CIFS is not set 1205# CONFIG_CIFS is not set
1201# CONFIG_NCP_FS is not set 1206# CONFIG_NCP_FS is not set
1202# CONFIG_CODA_FS is not set 1207# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index 155af009f7b5..10412a9c7f90 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:18 2010 4# Mon Apr 19 23:16:42 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -457,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
458# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
459# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
460CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
461CONFIG_OF_I2C=y 457CONFIG_OF_I2C=y
462CONFIG_OF_SPI=y 458CONFIG_OF_SPI=y
@@ -494,6 +490,7 @@ CONFIG_MISC_DEVICES=y
494# CONFIG_ENCLOSURE_SERVICES is not set 490# CONFIG_ENCLOSURE_SERVICES is not set
495# CONFIG_HP_ILO is not set 491# CONFIG_HP_ILO is not set
496# CONFIG_ISL29003 is not set 492# CONFIG_ISL29003 is not set
493# CONFIG_SENSORS_TSL2550 is not set
497# CONFIG_DS1682 is not set 494# CONFIG_DS1682 is not set
498# CONFIG_TI_DAC7512 is not set 495# CONFIG_TI_DAC7512 is not set
499# CONFIG_C2PORT is not set 496# CONFIG_C2PORT is not set
@@ -514,6 +511,7 @@ CONFIG_HAVE_IDE=y
514# 511#
515# SCSI device support 512# SCSI device support
516# 513#
514CONFIG_SCSI_MOD=y
517# CONFIG_RAID_ATTRS is not set 515# CONFIG_RAID_ATTRS is not set
518CONFIG_SCSI=y 516CONFIG_SCSI=y
519CONFIG_SCSI_DMA=y 517CONFIG_SCSI_DMA=y
@@ -700,6 +698,8 @@ CONFIG_NETDEV_10000=y
700# CONFIG_CHELSIO_T1 is not set 698# CONFIG_CHELSIO_T1 is not set
701CONFIG_CHELSIO_T3_DEPENDS=y 699CONFIG_CHELSIO_T3_DEPENDS=y
702# CONFIG_CHELSIO_T3 is not set 700# CONFIG_CHELSIO_T3 is not set
701CONFIG_CHELSIO_T4_DEPENDS=y
702# CONFIG_CHELSIO_T4 is not set
703# CONFIG_ENIC is not set 703# CONFIG_ENIC is not set
704# CONFIG_IXGBE is not set 704# CONFIG_IXGBE is not set
705# CONFIG_IXGB is not set 705# CONFIG_IXGB is not set
@@ -712,6 +712,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
712# CONFIG_MLX4_CORE is not set 712# CONFIG_MLX4_CORE is not set
713# CONFIG_TEHUTI is not set 713# CONFIG_TEHUTI is not set
714# CONFIG_BNX2X is not set 714# CONFIG_BNX2X is not set
715# CONFIG_QLCNIC is not set
715# CONFIG_QLGE is not set 716# CONFIG_QLGE is not set
716# CONFIG_SFC is not set 717# CONFIG_SFC is not set
717# CONFIG_BE2NET is not set 718# CONFIG_BE2NET is not set
@@ -808,6 +809,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
808# CONFIG_SERIAL_JSM is not set 809# CONFIG_SERIAL_JSM is not set
809# CONFIG_SERIAL_OF_PLATFORM is not set 810# CONFIG_SERIAL_OF_PLATFORM is not set
810# CONFIG_SERIAL_QE is not set 811# CONFIG_SERIAL_QE is not set
812# CONFIG_SERIAL_TIMBERDALE is not set
811# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 813# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
812CONFIG_UNIX98_PTYS=y 814CONFIG_UNIX98_PTYS=y
813# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 815# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -859,6 +861,7 @@ CONFIG_I2C_HELPER_AUTO=y
859CONFIG_I2C_MPC=y 861CONFIG_I2C_MPC=y
860# CONFIG_I2C_OCORES is not set 862# CONFIG_I2C_OCORES is not set
861# CONFIG_I2C_SIMTEC is not set 863# CONFIG_I2C_SIMTEC is not set
864# CONFIG_I2C_XILINX is not set
862 865
863# 866#
864# External I2C/SMBus adapter drivers 867# External I2C/SMBus adapter drivers
@@ -872,15 +875,9 @@ CONFIG_I2C_MPC=y
872# 875#
873# CONFIG_I2C_PCA_PLATFORM is not set 876# CONFIG_I2C_PCA_PLATFORM is not set
874# CONFIG_I2C_STUB is not set 877# CONFIG_I2C_STUB is not set
875
876#
877# Miscellaneous I2C Chip support
878#
879# CONFIG_SENSORS_TSL2550 is not set
880# CONFIG_I2C_DEBUG_CORE is not set 878# CONFIG_I2C_DEBUG_CORE is not set
881# CONFIG_I2C_DEBUG_ALGO is not set 879# CONFIG_I2C_DEBUG_ALGO is not set
882# CONFIG_I2C_DEBUG_BUS is not set 880# CONFIG_I2C_DEBUG_BUS is not set
883# CONFIG_I2C_DEBUG_CHIP is not set
884CONFIG_SPI=y 881CONFIG_SPI=y
885CONFIG_SPI_MASTER=y 882CONFIG_SPI_MASTER=y
886 883
@@ -922,10 +919,11 @@ CONFIG_HWMON=y
922# CONFIG_SENSORS_ADM1029 is not set 919# CONFIG_SENSORS_ADM1029 is not set
923# CONFIG_SENSORS_ADM1031 is not set 920# CONFIG_SENSORS_ADM1031 is not set
924# CONFIG_SENSORS_ADM9240 is not set 921# CONFIG_SENSORS_ADM9240 is not set
922# CONFIG_SENSORS_ADT7411 is not set
925# CONFIG_SENSORS_ADT7462 is not set 923# CONFIG_SENSORS_ADT7462 is not set
926# CONFIG_SENSORS_ADT7470 is not set 924# CONFIG_SENSORS_ADT7470 is not set
927# CONFIG_SENSORS_ADT7473 is not set
928# CONFIG_SENSORS_ADT7475 is not set 925# CONFIG_SENSORS_ADT7475 is not set
926# CONFIG_SENSORS_ASC7621 is not set
929# CONFIG_SENSORS_ATXP1 is not set 927# CONFIG_SENSORS_ATXP1 is not set
930# CONFIG_SENSORS_DS1621 is not set 928# CONFIG_SENSORS_DS1621 is not set
931# CONFIG_SENSORS_I5K_AMB is not set 929# CONFIG_SENSORS_I5K_AMB is not set
@@ -964,6 +962,7 @@ CONFIG_HWMON=y
964# CONFIG_SENSORS_SMSC47M192 is not set 962# CONFIG_SENSORS_SMSC47M192 is not set
965# CONFIG_SENSORS_SMSC47B397 is not set 963# CONFIG_SENSORS_SMSC47B397 is not set
966# CONFIG_SENSORS_ADS7828 is not set 964# CONFIG_SENSORS_ADS7828 is not set
965# CONFIG_SENSORS_AMC6821 is not set
967# CONFIG_SENSORS_THMC50 is not set 966# CONFIG_SENSORS_THMC50 is not set
968# CONFIG_SENSORS_TMP401 is not set 967# CONFIG_SENSORS_TMP401 is not set
969# CONFIG_SENSORS_TMP421 is not set 968# CONFIG_SENSORS_TMP421 is not set
@@ -1012,21 +1011,24 @@ CONFIG_SSB_POSSIBLE=y
1012# Multifunction device drivers 1011# Multifunction device drivers
1013# 1012#
1014# CONFIG_MFD_CORE is not set 1013# CONFIG_MFD_CORE is not set
1014# CONFIG_MFD_88PM860X is not set
1015# CONFIG_MFD_SM501 is not set 1015# CONFIG_MFD_SM501 is not set
1016# CONFIG_HTC_PASIC3 is not set 1016# CONFIG_HTC_PASIC3 is not set
1017# CONFIG_TWL4030_CORE is not set 1017# CONFIG_TWL4030_CORE is not set
1018# CONFIG_MFD_TMIO is not set 1018# CONFIG_MFD_TMIO is not set
1019# CONFIG_PMIC_DA903X is not set 1019# CONFIG_PMIC_DA903X is not set
1020# CONFIG_PMIC_ADP5520 is not set 1020# CONFIG_PMIC_ADP5520 is not set
1021# CONFIG_MFD_MAX8925 is not set
1021# CONFIG_MFD_WM8400 is not set 1022# CONFIG_MFD_WM8400 is not set
1022# CONFIG_MFD_WM831X is not set 1023# CONFIG_MFD_WM831X is not set
1023# CONFIG_MFD_WM8350_I2C is not set 1024# CONFIG_MFD_WM8350_I2C is not set
1025# CONFIG_MFD_WM8994 is not set
1024# CONFIG_MFD_PCF50633 is not set 1026# CONFIG_MFD_PCF50633 is not set
1025# CONFIG_MFD_MC13783 is not set 1027# CONFIG_MFD_MC13783 is not set
1026# CONFIG_AB3100_CORE is not set 1028# CONFIG_AB3100_CORE is not set
1027# CONFIG_EZX_PCAP is not set 1029# CONFIG_EZX_PCAP is not set
1028# CONFIG_MFD_88PM8607 is not set
1029# CONFIG_AB4500_CORE is not set 1030# CONFIG_AB4500_CORE is not set
1031# CONFIG_LPC_SCH is not set
1030# CONFIG_REGULATOR is not set 1032# CONFIG_REGULATOR is not set
1031# CONFIG_MEDIA_SUPPORT is not set 1033# CONFIG_MEDIA_SUPPORT is not set
1032 1034
@@ -1035,6 +1037,7 @@ CONFIG_SSB_POSSIBLE=y
1035# 1037#
1036# CONFIG_AGP is not set 1038# CONFIG_AGP is not set
1037CONFIG_VGA_ARB=y 1039CONFIG_VGA_ARB=y
1040CONFIG_VGA_ARB_MAX_GPUS=16
1038# CONFIG_DRM is not set 1041# CONFIG_DRM is not set
1039# CONFIG_VGASTATE is not set 1042# CONFIG_VGASTATE is not set
1040CONFIG_VIDEO_OUTPUT_CONTROL=m 1043CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1166,7 +1169,6 @@ CONFIG_USB_STORAGE=y
1166# CONFIG_USB_RIO500 is not set 1169# CONFIG_USB_RIO500 is not set
1167# CONFIG_USB_LEGOTOWER is not set 1170# CONFIG_USB_LEGOTOWER is not set
1168# CONFIG_USB_LCD is not set 1171# CONFIG_USB_LCD is not set
1169# CONFIG_USB_BERRY_CHARGE is not set
1170# CONFIG_USB_LED is not set 1172# CONFIG_USB_LED is not set
1171# CONFIG_USB_CYPRESS_CY7C63 is not set 1173# CONFIG_USB_CYPRESS_CY7C63 is not set
1172# CONFIG_USB_CYTHERM is not set 1174# CONFIG_USB_CYTHERM is not set
@@ -1179,7 +1181,6 @@ CONFIG_USB_STORAGE=y
1179# CONFIG_USB_IOWARRIOR is not set 1181# CONFIG_USB_IOWARRIOR is not set
1180# CONFIG_USB_TEST is not set 1182# CONFIG_USB_TEST is not set
1181# CONFIG_USB_ISIGHTFW is not set 1183# CONFIG_USB_ISIGHTFW is not set
1182# CONFIG_USB_VST is not set
1183# CONFIG_USB_GADGET is not set 1184# CONFIG_USB_GADGET is not set
1184 1185
1185# 1186#
@@ -1204,8 +1205,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1204# 1205#
1205# CONFIG_MMC_SDHCI is not set 1206# CONFIG_MMC_SDHCI is not set
1206# CONFIG_MMC_WBSD is not set 1207# CONFIG_MMC_WBSD is not set
1207# CONFIG_MMC_AT91 is not set
1208# CONFIG_MMC_ATMELMCI is not set
1209# CONFIG_MMC_TIFM_SD is not set 1208# CONFIG_MMC_TIFM_SD is not set
1210CONFIG_MMC_SPI=y 1209CONFIG_MMC_SPI=y
1211# CONFIG_MMC_CB710 is not set 1210# CONFIG_MMC_CB710 is not set
@@ -1298,6 +1297,7 @@ CONFIG_MISC_FILESYSTEMS=y
1298# CONFIG_BEFS_FS is not set 1297# CONFIG_BEFS_FS is not set
1299# CONFIG_BFS_FS is not set 1298# CONFIG_BFS_FS is not set
1300# CONFIG_EFS_FS is not set 1299# CONFIG_EFS_FS is not set
1300# CONFIG_LOGFS is not set
1301# CONFIG_CRAMFS is not set 1301# CONFIG_CRAMFS is not set
1302# CONFIG_SQUASHFS is not set 1302# CONFIG_SQUASHFS is not set
1303# CONFIG_VXFS_FS is not set 1303# CONFIG_VXFS_FS is not set
@@ -1324,6 +1324,7 @@ CONFIG_SUNRPC_GSS=y
1324CONFIG_RPCSEC_GSS_KRB5=y 1324CONFIG_RPCSEC_GSS_KRB5=y
1325# CONFIG_RPCSEC_GSS_SPKM3 is not set 1325# CONFIG_RPCSEC_GSS_SPKM3 is not set
1326# CONFIG_SMB_FS is not set 1326# CONFIG_SMB_FS is not set
1327# CONFIG_CEPH_FS is not set
1327# CONFIG_CIFS is not set 1328# CONFIG_CIFS is not set
1328# CONFIG_NCP_FS is not set 1329# CONFIG_NCP_FS is not set
1329# CONFIG_CODA_FS is not set 1330# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index ff45f4904488..7b31fc3f3545 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:19 2010 4# Mon Apr 19 23:16:43 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367# CONFIG_XFRM_USER is not set 361# CONFIG_XFRM_USER is not set
@@ -540,6 +534,8 @@ CONFIG_MTD_PHYSMAP=y
540# UBI - Unsorted block images 534# UBI - Unsorted block images
541# 535#
542# CONFIG_MTD_UBI is not set 536# CONFIG_MTD_UBI is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
544CONFIG_OF_I2C=y 540CONFIG_OF_I2C=y
545CONFIG_OF_SPI=y 541CONFIG_OF_SPI=y
@@ -577,6 +573,7 @@ CONFIG_MISC_DEVICES=y
577# CONFIG_ENCLOSURE_SERVICES is not set 573# CONFIG_ENCLOSURE_SERVICES is not set
578# CONFIG_HP_ILO is not set 574# CONFIG_HP_ILO is not set
579# CONFIG_ISL29003 is not set 575# CONFIG_ISL29003 is not set
576# CONFIG_SENSORS_TSL2550 is not set
580# CONFIG_DS1682 is not set 577# CONFIG_DS1682 is not set
581# CONFIG_TI_DAC7512 is not set 578# CONFIG_TI_DAC7512 is not set
582# CONFIG_C2PORT is not set 579# CONFIG_C2PORT is not set
@@ -644,6 +641,7 @@ CONFIG_IDE_PROC_FS=y
644# 641#
645# SCSI device support 642# SCSI device support
646# 643#
644CONFIG_SCSI_MOD=y
647# CONFIG_RAID_ATTRS is not set 645# CONFIG_RAID_ATTRS is not set
648CONFIG_SCSI=y 646CONFIG_SCSI=y
649CONFIG_SCSI_DMA=y 647CONFIG_SCSI_DMA=y
@@ -767,6 +765,7 @@ CONFIG_SATA_SIL=y
767# CONFIG_PATA_IT821X is not set 765# CONFIG_PATA_IT821X is not set
768# CONFIG_PATA_IT8213 is not set 766# CONFIG_PATA_IT8213 is not set
769# CONFIG_PATA_JMICRON is not set 767# CONFIG_PATA_JMICRON is not set
768# CONFIG_PATA_LEGACY is not set
770# CONFIG_PATA_TRIFLEX is not set 769# CONFIG_PATA_TRIFLEX is not set
771# CONFIG_PATA_MARVELL is not set 770# CONFIG_PATA_MARVELL is not set
772# CONFIG_PATA_MPIIX is not set 771# CONFIG_PATA_MPIIX is not set
@@ -880,6 +879,8 @@ CONFIG_NETDEV_10000=y
880# CONFIG_CHELSIO_T1 is not set 879# CONFIG_CHELSIO_T1 is not set
881CONFIG_CHELSIO_T3_DEPENDS=y 880CONFIG_CHELSIO_T3_DEPENDS=y
882# CONFIG_CHELSIO_T3 is not set 881# CONFIG_CHELSIO_T3 is not set
882CONFIG_CHELSIO_T4_DEPENDS=y
883# CONFIG_CHELSIO_T4 is not set
883# CONFIG_ENIC is not set 884# CONFIG_ENIC is not set
884# CONFIG_IXGBE is not set 885# CONFIG_IXGBE is not set
885# CONFIG_IXGB is not set 886# CONFIG_IXGB is not set
@@ -892,6 +893,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
892# CONFIG_MLX4_CORE is not set 893# CONFIG_MLX4_CORE is not set
893# CONFIG_TEHUTI is not set 894# CONFIG_TEHUTI is not set
894# CONFIG_BNX2X is not set 895# CONFIG_BNX2X is not set
896# CONFIG_QLCNIC is not set
895# CONFIG_QLGE is not set 897# CONFIG_QLGE is not set
896# CONFIG_SFC is not set 898# CONFIG_SFC is not set
897# CONFIG_BE2NET is not set 899# CONFIG_BE2NET is not set
@@ -966,6 +968,7 @@ CONFIG_SERIAL_CORE=y
966CONFIG_SERIAL_CORE_CONSOLE=y 968CONFIG_SERIAL_CORE_CONSOLE=y
967# CONFIG_SERIAL_JSM is not set 969# CONFIG_SERIAL_JSM is not set
968# CONFIG_SERIAL_OF_PLATFORM is not set 970# CONFIG_SERIAL_OF_PLATFORM is not set
971# CONFIG_SERIAL_TIMBERDALE is not set
969# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 972# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
970CONFIG_UNIX98_PTYS=y 973CONFIG_UNIX98_PTYS=y
971# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 974# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1015,6 +1018,7 @@ CONFIG_I2C_HELPER_AUTO=y
1015CONFIG_I2C_MPC=y 1018CONFIG_I2C_MPC=y
1016# CONFIG_I2C_OCORES is not set 1019# CONFIG_I2C_OCORES is not set
1017# CONFIG_I2C_SIMTEC is not set 1020# CONFIG_I2C_SIMTEC is not set
1021# CONFIG_I2C_XILINX is not set
1018 1022
1019# 1023#
1020# External I2C/SMBus adapter drivers 1024# External I2C/SMBus adapter drivers
@@ -1028,15 +1032,9 @@ CONFIG_I2C_MPC=y
1028# 1032#
1029# CONFIG_I2C_PCA_PLATFORM is not set 1033# CONFIG_I2C_PCA_PLATFORM is not set
1030# CONFIG_I2C_STUB is not set 1034# CONFIG_I2C_STUB is not set
1031
1032#
1033# Miscellaneous I2C Chip support
1034#
1035# CONFIG_SENSORS_TSL2550 is not set
1036# CONFIG_I2C_DEBUG_CORE is not set 1035# CONFIG_I2C_DEBUG_CORE is not set
1037# CONFIG_I2C_DEBUG_ALGO is not set 1036# CONFIG_I2C_DEBUG_ALGO is not set
1038# CONFIG_I2C_DEBUG_BUS is not set 1037# CONFIG_I2C_DEBUG_BUS is not set
1039# CONFIG_I2C_DEBUG_CHIP is not set
1040CONFIG_SPI=y 1038CONFIG_SPI=y
1041CONFIG_SPI_MASTER=y 1039CONFIG_SPI_MASTER=y
1042 1040
@@ -1095,21 +1093,24 @@ CONFIG_SSB_POSSIBLE=y
1095# Multifunction device drivers 1093# Multifunction device drivers
1096# 1094#
1097# CONFIG_MFD_CORE is not set 1095# CONFIG_MFD_CORE is not set
1096# CONFIG_MFD_88PM860X is not set
1098# CONFIG_MFD_SM501 is not set 1097# CONFIG_MFD_SM501 is not set
1099# CONFIG_HTC_PASIC3 is not set 1098# CONFIG_HTC_PASIC3 is not set
1100# CONFIG_TWL4030_CORE is not set 1099# CONFIG_TWL4030_CORE is not set
1101# CONFIG_MFD_TMIO is not set 1100# CONFIG_MFD_TMIO is not set
1102# CONFIG_PMIC_DA903X is not set 1101# CONFIG_PMIC_DA903X is not set
1103# CONFIG_PMIC_ADP5520 is not set 1102# CONFIG_PMIC_ADP5520 is not set
1103# CONFIG_MFD_MAX8925 is not set
1104# CONFIG_MFD_WM8400 is not set 1104# CONFIG_MFD_WM8400 is not set
1105# CONFIG_MFD_WM831X is not set 1105# CONFIG_MFD_WM831X is not set
1106# CONFIG_MFD_WM8350_I2C is not set 1106# CONFIG_MFD_WM8350_I2C is not set
1107# CONFIG_MFD_WM8994 is not set
1107# CONFIG_MFD_PCF50633 is not set 1108# CONFIG_MFD_PCF50633 is not set
1108# CONFIG_MFD_MC13783 is not set 1109# CONFIG_MFD_MC13783 is not set
1109# CONFIG_AB3100_CORE is not set 1110# CONFIG_AB3100_CORE is not set
1110# CONFIG_EZX_PCAP is not set 1111# CONFIG_EZX_PCAP is not set
1111# CONFIG_MFD_88PM8607 is not set
1112# CONFIG_AB4500_CORE is not set 1112# CONFIG_AB4500_CORE is not set
1113# CONFIG_LPC_SCH is not set
1113# CONFIG_REGULATOR is not set 1114# CONFIG_REGULATOR is not set
1114# CONFIG_MEDIA_SUPPORT is not set 1115# CONFIG_MEDIA_SUPPORT is not set
1115 1116
@@ -1118,6 +1119,7 @@ CONFIG_SSB_POSSIBLE=y
1118# 1119#
1119# CONFIG_AGP is not set 1120# CONFIG_AGP is not set
1120CONFIG_VGA_ARB=y 1121CONFIG_VGA_ARB=y
1122CONFIG_VGA_ARB_MAX_GPUS=16
1121# CONFIG_DRM is not set 1123# CONFIG_DRM is not set
1122# CONFIG_VGASTATE is not set 1124# CONFIG_VGASTATE is not set
1123CONFIG_VIDEO_OUTPUT_CONTROL=m 1125CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1222,7 +1224,6 @@ CONFIG_USB_STORAGE=y
1222# CONFIG_USB_RIO500 is not set 1224# CONFIG_USB_RIO500 is not set
1223# CONFIG_USB_LEGOTOWER is not set 1225# CONFIG_USB_LEGOTOWER is not set
1224# CONFIG_USB_LCD is not set 1226# CONFIG_USB_LCD is not set
1225# CONFIG_USB_BERRY_CHARGE is not set
1226# CONFIG_USB_LED is not set 1227# CONFIG_USB_LED is not set
1227# CONFIG_USB_CYPRESS_CY7C63 is not set 1228# CONFIG_USB_CYPRESS_CY7C63 is not set
1228# CONFIG_USB_CYTHERM is not set 1229# CONFIG_USB_CYTHERM is not set
@@ -1235,7 +1236,6 @@ CONFIG_USB_STORAGE=y
1235# CONFIG_USB_IOWARRIOR is not set 1236# CONFIG_USB_IOWARRIOR is not set
1236# CONFIG_USB_TEST is not set 1237# CONFIG_USB_TEST is not set
1237# CONFIG_USB_ISIGHTFW is not set 1238# CONFIG_USB_ISIGHTFW is not set
1238# CONFIG_USB_VST is not set
1239# CONFIG_USB_GADGET is not set 1239# CONFIG_USB_GADGET is not set
1240 1240
1241# 1241#
@@ -1399,6 +1399,7 @@ CONFIG_MISC_FILESYSTEMS=y
1399# CONFIG_BFS_FS is not set 1399# CONFIG_BFS_FS is not set
1400# CONFIG_EFS_FS is not set 1400# CONFIG_EFS_FS is not set
1401# CONFIG_JFFS2_FS is not set 1401# CONFIG_JFFS2_FS is not set
1402# CONFIG_LOGFS is not set
1402# CONFIG_CRAMFS is not set 1403# CONFIG_CRAMFS is not set
1403# CONFIG_SQUASHFS is not set 1404# CONFIG_SQUASHFS is not set
1404# CONFIG_VXFS_FS is not set 1405# CONFIG_VXFS_FS is not set
@@ -1425,6 +1426,7 @@ CONFIG_SUNRPC_GSS=y
1425CONFIG_RPCSEC_GSS_KRB5=y 1426CONFIG_RPCSEC_GSS_KRB5=y
1426# CONFIG_RPCSEC_GSS_SPKM3 is not set 1427# CONFIG_RPCSEC_GSS_SPKM3 is not set
1427# CONFIG_SMB_FS is not set 1428# CONFIG_SMB_FS is not set
1429# CONFIG_CEPH_FS is not set
1428# CONFIG_CIFS is not set 1430# CONFIG_CIFS is not set
1429# CONFIG_NCP_FS is not set 1431# CONFIG_NCP_FS is not set
1430# CONFIG_CODA_FS is not set 1432# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 28d8ff3e8fca..41401a9b355e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:20 2010 4# Mon Apr 19 23:16:44 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367# CONFIG_XFRM_USER is not set 361# CONFIG_XFRM_USER is not set
@@ -540,6 +534,8 @@ CONFIG_MTD_PHYSMAP=y
540# UBI - Unsorted block images 534# UBI - Unsorted block images
541# 535#
542# CONFIG_MTD_UBI is not set 536# CONFIG_MTD_UBI is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
544CONFIG_OF_I2C=y 540CONFIG_OF_I2C=y
545CONFIG_OF_SPI=y 541CONFIG_OF_SPI=y
@@ -577,6 +573,7 @@ CONFIG_MISC_DEVICES=y
577# CONFIG_ENCLOSURE_SERVICES is not set 573# CONFIG_ENCLOSURE_SERVICES is not set
578# CONFIG_HP_ILO is not set 574# CONFIG_HP_ILO is not set
579# CONFIG_ISL29003 is not set 575# CONFIG_ISL29003 is not set
576# CONFIG_SENSORS_TSL2550 is not set
580# CONFIG_DS1682 is not set 577# CONFIG_DS1682 is not set
581# CONFIG_TI_DAC7512 is not set 578# CONFIG_TI_DAC7512 is not set
582# CONFIG_C2PORT is not set 579# CONFIG_C2PORT is not set
@@ -596,6 +593,7 @@ CONFIG_HAVE_IDE=y
596# 593#
597# SCSI device support 594# SCSI device support
598# 595#
596CONFIG_SCSI_MOD=y
599# CONFIG_RAID_ATTRS is not set 597# CONFIG_RAID_ATTRS is not set
600CONFIG_SCSI=y 598CONFIG_SCSI=y
601CONFIG_SCSI_DMA=y 599CONFIG_SCSI_DMA=y
@@ -756,6 +754,8 @@ CONFIG_NETDEV_10000=y
756# CONFIG_CHELSIO_T1 is not set 754# CONFIG_CHELSIO_T1 is not set
757CONFIG_CHELSIO_T3_DEPENDS=y 755CONFIG_CHELSIO_T3_DEPENDS=y
758# CONFIG_CHELSIO_T3 is not set 756# CONFIG_CHELSIO_T3 is not set
757CONFIG_CHELSIO_T4_DEPENDS=y
758# CONFIG_CHELSIO_T4 is not set
759# CONFIG_ENIC is not set 759# CONFIG_ENIC is not set
760# CONFIG_IXGBE is not set 760# CONFIG_IXGBE is not set
761# CONFIG_IXGB is not set 761# CONFIG_IXGB is not set
@@ -768,6 +768,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
768# CONFIG_MLX4_CORE is not set 768# CONFIG_MLX4_CORE is not set
769# CONFIG_TEHUTI is not set 769# CONFIG_TEHUTI is not set
770# CONFIG_BNX2X is not set 770# CONFIG_BNX2X is not set
771# CONFIG_QLCNIC is not set
771# CONFIG_QLGE is not set 772# CONFIG_QLGE is not set
772# CONFIG_SFC is not set 773# CONFIG_SFC is not set
773# CONFIG_BE2NET is not set 774# CONFIG_BE2NET is not set
@@ -842,6 +843,7 @@ CONFIG_SERIAL_CORE=y
842CONFIG_SERIAL_CORE_CONSOLE=y 843CONFIG_SERIAL_CORE_CONSOLE=y
843# CONFIG_SERIAL_JSM is not set 844# CONFIG_SERIAL_JSM is not set
844# CONFIG_SERIAL_OF_PLATFORM is not set 845# CONFIG_SERIAL_OF_PLATFORM is not set
846# CONFIG_SERIAL_TIMBERDALE is not set
845# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 847# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
846CONFIG_UNIX98_PTYS=y 848CONFIG_UNIX98_PTYS=y
847# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 849# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -891,6 +893,7 @@ CONFIG_I2C_HELPER_AUTO=y
891CONFIG_I2C_MPC=y 893CONFIG_I2C_MPC=y
892# CONFIG_I2C_OCORES is not set 894# CONFIG_I2C_OCORES is not set
893# CONFIG_I2C_SIMTEC is not set 895# CONFIG_I2C_SIMTEC is not set
896# CONFIG_I2C_XILINX is not set
894 897
895# 898#
896# External I2C/SMBus adapter drivers 899# External I2C/SMBus adapter drivers
@@ -904,15 +907,9 @@ CONFIG_I2C_MPC=y
904# 907#
905# CONFIG_I2C_PCA_PLATFORM is not set 908# CONFIG_I2C_PCA_PLATFORM is not set
906# CONFIG_I2C_STUB is not set 909# CONFIG_I2C_STUB is not set
907
908#
909# Miscellaneous I2C Chip support
910#
911# CONFIG_SENSORS_TSL2550 is not set
912# CONFIG_I2C_DEBUG_CORE is not set 910# CONFIG_I2C_DEBUG_CORE is not set
913# CONFIG_I2C_DEBUG_ALGO is not set 911# CONFIG_I2C_DEBUG_ALGO is not set
914# CONFIG_I2C_DEBUG_BUS is not set 912# CONFIG_I2C_DEBUG_BUS is not set
915# CONFIG_I2C_DEBUG_CHIP is not set
916CONFIG_SPI=y 913CONFIG_SPI=y
917CONFIG_SPI_MASTER=y 914CONFIG_SPI_MASTER=y
918 915
@@ -971,21 +968,24 @@ CONFIG_SSB_POSSIBLE=y
971# Multifunction device drivers 968# Multifunction device drivers
972# 969#
973# CONFIG_MFD_CORE is not set 970# CONFIG_MFD_CORE is not set
971# CONFIG_MFD_88PM860X is not set
974# CONFIG_MFD_SM501 is not set 972# CONFIG_MFD_SM501 is not set
975# CONFIG_HTC_PASIC3 is not set 973# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TWL4030_CORE is not set 974# CONFIG_TWL4030_CORE is not set
977# CONFIG_MFD_TMIO is not set 975# CONFIG_MFD_TMIO is not set
978# CONFIG_PMIC_DA903X is not set 976# CONFIG_PMIC_DA903X is not set
979# CONFIG_PMIC_ADP5520 is not set 977# CONFIG_PMIC_ADP5520 is not set
978# CONFIG_MFD_MAX8925 is not set
980# CONFIG_MFD_WM8400 is not set 979# CONFIG_MFD_WM8400 is not set
981# CONFIG_MFD_WM831X is not set 980# CONFIG_MFD_WM831X is not set
982# CONFIG_MFD_WM8350_I2C is not set 981# CONFIG_MFD_WM8350_I2C is not set
982# CONFIG_MFD_WM8994 is not set
983# CONFIG_MFD_PCF50633 is not set 983# CONFIG_MFD_PCF50633 is not set
984# CONFIG_MFD_MC13783 is not set 984# CONFIG_MFD_MC13783 is not set
985# CONFIG_AB3100_CORE is not set 985# CONFIG_AB3100_CORE is not set
986# CONFIG_EZX_PCAP is not set 986# CONFIG_EZX_PCAP is not set
987# CONFIG_MFD_88PM8607 is not set
988# CONFIG_AB4500_CORE is not set 987# CONFIG_AB4500_CORE is not set
988# CONFIG_LPC_SCH is not set
989# CONFIG_REGULATOR is not set 989# CONFIG_REGULATOR is not set
990# CONFIG_MEDIA_SUPPORT is not set 990# CONFIG_MEDIA_SUPPORT is not set
991 991
@@ -994,6 +994,7 @@ CONFIG_SSB_POSSIBLE=y
994# 994#
995# CONFIG_AGP is not set 995# CONFIG_AGP is not set
996CONFIG_VGA_ARB=y 996CONFIG_VGA_ARB=y
997CONFIG_VGA_ARB_MAX_GPUS=16
997# CONFIG_DRM is not set 998# CONFIG_DRM is not set
998# CONFIG_VGASTATE is not set 999# CONFIG_VGASTATE is not set
999CONFIG_VIDEO_OUTPUT_CONTROL=m 1000CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1098,7 +1099,6 @@ CONFIG_USB_STORAGE=y
1098# CONFIG_USB_RIO500 is not set 1099# CONFIG_USB_RIO500 is not set
1099# CONFIG_USB_LEGOTOWER is not set 1100# CONFIG_USB_LEGOTOWER is not set
1100# CONFIG_USB_LCD is not set 1101# CONFIG_USB_LCD is not set
1101# CONFIG_USB_BERRY_CHARGE is not set
1102# CONFIG_USB_LED is not set 1102# CONFIG_USB_LED is not set
1103# CONFIG_USB_CYPRESS_CY7C63 is not set 1103# CONFIG_USB_CYPRESS_CY7C63 is not set
1104# CONFIG_USB_CYTHERM is not set 1104# CONFIG_USB_CYTHERM is not set
@@ -1111,7 +1111,6 @@ CONFIG_USB_STORAGE=y
1111# CONFIG_USB_IOWARRIOR is not set 1111# CONFIG_USB_IOWARRIOR is not set
1112# CONFIG_USB_TEST is not set 1112# CONFIG_USB_TEST is not set
1113# CONFIG_USB_ISIGHTFW is not set 1113# CONFIG_USB_ISIGHTFW is not set
1114# CONFIG_USB_VST is not set
1115# CONFIG_USB_GADGET is not set 1114# CONFIG_USB_GADGET is not set
1116 1115
1117# 1116#
@@ -1275,6 +1274,7 @@ CONFIG_MISC_FILESYSTEMS=y
1275# CONFIG_BFS_FS is not set 1274# CONFIG_BFS_FS is not set
1276# CONFIG_EFS_FS is not set 1275# CONFIG_EFS_FS is not set
1277# CONFIG_JFFS2_FS is not set 1276# CONFIG_JFFS2_FS is not set
1277# CONFIG_LOGFS is not set
1278# CONFIG_CRAMFS is not set 1278# CONFIG_CRAMFS is not set
1279# CONFIG_SQUASHFS is not set 1279# CONFIG_SQUASHFS is not set
1280# CONFIG_VXFS_FS is not set 1280# CONFIG_VXFS_FS is not set
@@ -1301,6 +1301,7 @@ CONFIG_SUNRPC_GSS=y
1301CONFIG_RPCSEC_GSS_KRB5=y 1301CONFIG_RPCSEC_GSS_KRB5=y
1302# CONFIG_RPCSEC_GSS_SPKM3 is not set 1302# CONFIG_RPCSEC_GSS_SPKM3 is not set
1303# CONFIG_SMB_FS is not set 1303# CONFIG_SMB_FS is not set
1304# CONFIG_CEPH_FS is not set
1304# CONFIG_CIFS is not set 1305# CONFIG_CIFS is not set
1305# CONFIG_NCP_FS is not set 1306# CONFIG_NCP_FS is not set
1306# CONFIG_CODA_FS is not set 1307# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 6252ab5bf181..dc176b676dce 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:21 2010 4# Mon Apr 19 23:16:45 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367CONFIG_XFRM_USER=m 361CONFIG_XFRM_USER=m
@@ -456,6 +450,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
456# CONFIG_SYS_HYPERVISOR is not set 450# CONFIG_SYS_HYPERVISOR is not set
457# CONFIG_CONNECTOR is not set 451# CONFIG_CONNECTOR is not set
458# CONFIG_MTD is not set 452# CONFIG_MTD is not set
453CONFIG_OF_FLATTREE=y
454CONFIG_OF_DYNAMIC=y
459CONFIG_OF_DEVICE=y 455CONFIG_OF_DEVICE=y
460CONFIG_OF_I2C=y 456CONFIG_OF_I2C=y
461CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
@@ -491,6 +487,7 @@ CONFIG_MISC_DEVICES=y
491# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
492# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
493# CONFIG_ISL29003 is not set 489# CONFIG_ISL29003 is not set
490# CONFIG_SENSORS_TSL2550 is not set
494# CONFIG_DS1682 is not set 491# CONFIG_DS1682 is not set
495# CONFIG_C2PORT is not set 492# CONFIG_C2PORT is not set
496 493
@@ -508,6 +505,7 @@ CONFIG_HAVE_IDE=y
508# 505#
509# SCSI device support 506# SCSI device support
510# 507#
508CONFIG_SCSI_MOD=y
511# CONFIG_RAID_ATTRS is not set 509# CONFIG_RAID_ATTRS is not set
512# CONFIG_SCSI is not set 510# CONFIG_SCSI is not set
513# CONFIG_SCSI_DMA is not set 511# CONFIG_SCSI_DMA is not set
@@ -580,6 +578,7 @@ CONFIG_NET_PCI=y
580# CONFIG_PCNET32 is not set 578# CONFIG_PCNET32 is not set
581# CONFIG_AMD8111_ETH is not set 579# CONFIG_AMD8111_ETH is not set
582# CONFIG_ADAPTEC_STARFIRE is not set 580# CONFIG_ADAPTEC_STARFIRE is not set
581# CONFIG_KSZ884X_PCI is not set
583# CONFIG_B44 is not set 582# CONFIG_B44 is not set
584# CONFIG_FORCEDETH is not set 583# CONFIG_FORCEDETH is not set
585CONFIG_E100=y 584CONFIG_E100=y
@@ -631,6 +630,8 @@ CONFIG_NETDEV_10000=y
631# CONFIG_CHELSIO_T1 is not set 630# CONFIG_CHELSIO_T1 is not set
632CONFIG_CHELSIO_T3_DEPENDS=y 631CONFIG_CHELSIO_T3_DEPENDS=y
633# CONFIG_CHELSIO_T3 is not set 632# CONFIG_CHELSIO_T3 is not set
633CONFIG_CHELSIO_T4_DEPENDS=y
634# CONFIG_CHELSIO_T4 is not set
634# CONFIG_ENIC is not set 635# CONFIG_ENIC is not set
635# CONFIG_IXGBE is not set 636# CONFIG_IXGBE is not set
636# CONFIG_IXGB is not set 637# CONFIG_IXGB is not set
@@ -643,6 +644,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
643# CONFIG_MLX4_CORE is not set 644# CONFIG_MLX4_CORE is not set
644# CONFIG_TEHUTI is not set 645# CONFIG_TEHUTI is not set
645# CONFIG_BNX2X is not set 646# CONFIG_BNX2X is not set
647# CONFIG_QLCNIC is not set
646# CONFIG_QLGE is not set 648# CONFIG_QLGE is not set
647# CONFIG_SFC is not set 649# CONFIG_SFC is not set
648# CONFIG_BE2NET is not set 650# CONFIG_BE2NET is not set
@@ -726,6 +728,7 @@ CONFIG_SERIAL_CORE=y
726CONFIG_SERIAL_CORE_CONSOLE=y 728CONFIG_SERIAL_CORE_CONSOLE=y
727# CONFIG_SERIAL_JSM is not set 729# CONFIG_SERIAL_JSM is not set
728# CONFIG_SERIAL_OF_PLATFORM is not set 730# CONFIG_SERIAL_OF_PLATFORM is not set
731# CONFIG_SERIAL_TIMBERDALE is not set
729# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 732# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
730CONFIG_UNIX98_PTYS=y 733CONFIG_UNIX98_PTYS=y
731# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 734# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -774,6 +777,7 @@ CONFIG_I2C_HELPER_AUTO=y
774CONFIG_I2C_MPC=y 777CONFIG_I2C_MPC=y
775# CONFIG_I2C_OCORES is not set 778# CONFIG_I2C_OCORES is not set
776# CONFIG_I2C_SIMTEC is not set 779# CONFIG_I2C_SIMTEC is not set
780# CONFIG_I2C_XILINX is not set
777 781
778# 782#
779# External I2C/SMBus adapter drivers 783# External I2C/SMBus adapter drivers
@@ -786,15 +790,9 @@ CONFIG_I2C_MPC=y
786# 790#
787# CONFIG_I2C_PCA_PLATFORM is not set 791# CONFIG_I2C_PCA_PLATFORM is not set
788# CONFIG_I2C_STUB is not set 792# CONFIG_I2C_STUB is not set
789
790#
791# Miscellaneous I2C Chip support
792#
793# CONFIG_SENSORS_TSL2550 is not set
794# CONFIG_I2C_DEBUG_CORE is not set 793# CONFIG_I2C_DEBUG_CORE is not set
795# CONFIG_I2C_DEBUG_ALGO is not set 794# CONFIG_I2C_DEBUG_ALGO is not set
796# CONFIG_I2C_DEBUG_BUS is not set 795# CONFIG_I2C_DEBUG_BUS is not set
797# CONFIG_I2C_DEBUG_CHIP is not set
798# CONFIG_SPI is not set 796# CONFIG_SPI is not set
799 797
800# 798#
@@ -820,10 +818,11 @@ CONFIG_HWMON=y
820# CONFIG_SENSORS_ADM1029 is not set 818# CONFIG_SENSORS_ADM1029 is not set
821# CONFIG_SENSORS_ADM1031 is not set 819# CONFIG_SENSORS_ADM1031 is not set
822# CONFIG_SENSORS_ADM9240 is not set 820# CONFIG_SENSORS_ADM9240 is not set
821# CONFIG_SENSORS_ADT7411 is not set
823# CONFIG_SENSORS_ADT7462 is not set 822# CONFIG_SENSORS_ADT7462 is not set
824# CONFIG_SENSORS_ADT7470 is not set 823# CONFIG_SENSORS_ADT7470 is not set
825# CONFIG_SENSORS_ADT7473 is not set
826# CONFIG_SENSORS_ADT7475 is not set 824# CONFIG_SENSORS_ADT7475 is not set
825# CONFIG_SENSORS_ASC7621 is not set
827# CONFIG_SENSORS_ATXP1 is not set 826# CONFIG_SENSORS_ATXP1 is not set
828# CONFIG_SENSORS_DS1621 is not set 827# CONFIG_SENSORS_DS1621 is not set
829# CONFIG_SENSORS_I5K_AMB is not set 828# CONFIG_SENSORS_I5K_AMB is not set
@@ -860,6 +859,7 @@ CONFIG_HWMON=y
860# CONFIG_SENSORS_SMSC47M192 is not set 859# CONFIG_SENSORS_SMSC47M192 is not set
861# CONFIG_SENSORS_SMSC47B397 is not set 860# CONFIG_SENSORS_SMSC47B397 is not set
862# CONFIG_SENSORS_ADS7828 is not set 861# CONFIG_SENSORS_ADS7828 is not set
862# CONFIG_SENSORS_AMC6821 is not set
863# CONFIG_SENSORS_THMC50 is not set 863# CONFIG_SENSORS_THMC50 is not set
864# CONFIG_SENSORS_TMP401 is not set 864# CONFIG_SENSORS_TMP401 is not set
865# CONFIG_SENSORS_TMP421 is not set 865# CONFIG_SENSORS_TMP421 is not set
@@ -902,18 +902,21 @@ CONFIG_SSB_POSSIBLE=y
902# Multifunction device drivers 902# Multifunction device drivers
903# 903#
904# CONFIG_MFD_CORE is not set 904# CONFIG_MFD_CORE is not set
905# CONFIG_MFD_88PM860X is not set
905# CONFIG_MFD_SM501 is not set 906# CONFIG_MFD_SM501 is not set
906# CONFIG_HTC_PASIC3 is not set 907# CONFIG_HTC_PASIC3 is not set
907# CONFIG_TWL4030_CORE is not set 908# CONFIG_TWL4030_CORE is not set
908# CONFIG_MFD_TMIO is not set 909# CONFIG_MFD_TMIO is not set
909# CONFIG_PMIC_DA903X is not set 910# CONFIG_PMIC_DA903X is not set
910# CONFIG_PMIC_ADP5520 is not set 911# CONFIG_PMIC_ADP5520 is not set
912# CONFIG_MFD_MAX8925 is not set
911# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
912# CONFIG_MFD_WM831X is not set 914# CONFIG_MFD_WM831X is not set
913# CONFIG_MFD_WM8350_I2C is not set 915# CONFIG_MFD_WM8350_I2C is not set
916# CONFIG_MFD_WM8994 is not set
914# CONFIG_MFD_PCF50633 is not set 917# CONFIG_MFD_PCF50633 is not set
915# CONFIG_AB3100_CORE is not set 918# CONFIG_AB3100_CORE is not set
916# CONFIG_MFD_88PM8607 is not set 919# CONFIG_LPC_SCH is not set
917# CONFIG_REGULATOR is not set 920# CONFIG_REGULATOR is not set
918# CONFIG_MEDIA_SUPPORT is not set 921# CONFIG_MEDIA_SUPPORT is not set
919 922
@@ -922,6 +925,7 @@ CONFIG_SSB_POSSIBLE=y
922# 925#
923# CONFIG_AGP is not set 926# CONFIG_AGP is not set
924CONFIG_VGA_ARB=y 927CONFIG_VGA_ARB=y
928CONFIG_VGA_ARB_MAX_GPUS=16
925# CONFIG_DRM is not set 929# CONFIG_DRM is not set
926# CONFIG_VGASTATE is not set 930# CONFIG_VGASTATE is not set
927CONFIG_VIDEO_OUTPUT_CONTROL=m 931CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1106,6 +1110,7 @@ CONFIG_MISC_FILESYSTEMS=y
1106# CONFIG_BEFS_FS is not set 1110# CONFIG_BEFS_FS is not set
1107# CONFIG_BFS_FS is not set 1111# CONFIG_BFS_FS is not set
1108# CONFIG_EFS_FS is not set 1112# CONFIG_EFS_FS is not set
1113# CONFIG_LOGFS is not set
1109# CONFIG_CRAMFS is not set 1114# CONFIG_CRAMFS is not set
1110# CONFIG_SQUASHFS is not set 1115# CONFIG_SQUASHFS is not set
1111# CONFIG_VXFS_FS is not set 1116# CONFIG_VXFS_FS is not set
@@ -1132,6 +1137,7 @@ CONFIG_SUNRPC_GSS=y
1132CONFIG_RPCSEC_GSS_KRB5=y 1137CONFIG_RPCSEC_GSS_KRB5=y
1133# CONFIG_RPCSEC_GSS_SPKM3 is not set 1138# CONFIG_RPCSEC_GSS_SPKM3 is not set
1134# CONFIG_SMB_FS is not set 1139# CONFIG_SMB_FS is not set
1140# CONFIG_CEPH_FS is not set
1135# CONFIG_CIFS is not set 1141# CONFIG_CIFS is not set
1136# CONFIG_NCP_FS is not set 1142# CONFIG_NCP_FS is not set
1137# CONFIG_CODA_FS is not set 1143# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 78227378e678..f512972c7176 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:21 2010 4# Mon Apr 19 23:16:46 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -323,6 +318,7 @@ CONFIG_ISA_DMA_API=y
323# Bus options 318# Bus options
324# 319#
325CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
326CONFIG_GENERIC_ISA_DMA=y 322CONFIG_GENERIC_ISA_DMA=y
327CONFIG_PPC_INDIRECT_PCI=y 323CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 324CONFIG_FSL_SOC=y
@@ -334,7 +330,6 @@ CONFIG_PCI_SYSCALL=y
334# CONFIG_PCIEPORTBUS is not set 330# CONFIG_PCIEPORTBUS is not set
335CONFIG_ARCH_SUPPORTS_MSI=y 331CONFIG_ARCH_SUPPORTS_MSI=y
336# CONFIG_PCI_MSI is not set 332# CONFIG_PCI_MSI is not set
337# CONFIG_PCI_LEGACY is not set
338# CONFIG_PCI_STUB is not set 333# CONFIG_PCI_STUB is not set
339# CONFIG_PCI_IOV is not set 334# CONFIG_PCI_IOV is not set
340# CONFIG_PCCARD is not set 335# CONFIG_PCCARD is not set
@@ -360,7 +355,6 @@ CONFIG_NET=y
360# Networking options 355# Networking options
361# 356#
362CONFIG_PACKET=y 357CONFIG_PACKET=y
363# CONFIG_PACKET_MMAP is not set
364CONFIG_UNIX=y 358CONFIG_UNIX=y
365CONFIG_XFRM=y 359CONFIG_XFRM=y
366# CONFIG_XFRM_USER is not set 360# CONFIG_XFRM_USER is not set
@@ -538,6 +532,8 @@ CONFIG_MTD_PHYSMAP_OF=y
538# UBI - Unsorted block images 532# UBI - Unsorted block images
539# 533#
540# CONFIG_MTD_UBI is not set 534# CONFIG_MTD_UBI is not set
535CONFIG_OF_FLATTREE=y
536CONFIG_OF_DYNAMIC=y
541CONFIG_OF_DEVICE=y 537CONFIG_OF_DEVICE=y
542CONFIG_OF_I2C=y 538CONFIG_OF_I2C=y
543CONFIG_OF_MDIO=y 539CONFIG_OF_MDIO=y
@@ -573,6 +569,7 @@ CONFIG_MISC_DEVICES=y
573# CONFIG_ENCLOSURE_SERVICES is not set 569# CONFIG_ENCLOSURE_SERVICES is not set
574# CONFIG_HP_ILO is not set 570# CONFIG_HP_ILO is not set
575# CONFIG_ISL29003 is not set 571# CONFIG_ISL29003 is not set
572# CONFIG_SENSORS_TSL2550 is not set
576# CONFIG_DS1682 is not set 573# CONFIG_DS1682 is not set
577# CONFIG_C2PORT is not set 574# CONFIG_C2PORT is not set
578 575
@@ -590,6 +587,7 @@ CONFIG_HAVE_IDE=y
590# 587#
591# SCSI device support 588# SCSI device support
592# 589#
590CONFIG_SCSI_MOD=y
593# CONFIG_RAID_ATTRS is not set 591# CONFIG_RAID_ATTRS is not set
594CONFIG_SCSI=y 592CONFIG_SCSI=y
595CONFIG_SCSI_DMA=y 593CONFIG_SCSI_DMA=y
@@ -774,6 +772,8 @@ CONFIG_NETDEV_10000=y
774# CONFIG_CHELSIO_T1 is not set 772# CONFIG_CHELSIO_T1 is not set
775CONFIG_CHELSIO_T3_DEPENDS=y 773CONFIG_CHELSIO_T3_DEPENDS=y
776# CONFIG_CHELSIO_T3 is not set 774# CONFIG_CHELSIO_T3 is not set
775CONFIG_CHELSIO_T4_DEPENDS=y
776# CONFIG_CHELSIO_T4 is not set
777# CONFIG_ENIC is not set 777# CONFIG_ENIC is not set
778# CONFIG_IXGBE is not set 778# CONFIG_IXGBE is not set
779# CONFIG_IXGB is not set 779# CONFIG_IXGB is not set
@@ -786,6 +786,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
786# CONFIG_MLX4_CORE is not set 786# CONFIG_MLX4_CORE is not set
787# CONFIG_TEHUTI is not set 787# CONFIG_TEHUTI is not set
788# CONFIG_BNX2X is not set 788# CONFIG_BNX2X is not set
789# CONFIG_QLCNIC is not set
789# CONFIG_QLGE is not set 790# CONFIG_QLGE is not set
790# CONFIG_SFC is not set 791# CONFIG_SFC is not set
791# CONFIG_BE2NET is not set 792# CONFIG_BE2NET is not set
@@ -871,6 +872,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
871# CONFIG_SERIAL_JSM is not set 872# CONFIG_SERIAL_JSM is not set
872# CONFIG_SERIAL_OF_PLATFORM is not set 873# CONFIG_SERIAL_OF_PLATFORM is not set
873# CONFIG_SERIAL_QE is not set 874# CONFIG_SERIAL_QE is not set
875# CONFIG_SERIAL_TIMBERDALE is not set
874# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 876# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
875CONFIG_UNIX98_PTYS=y 877CONFIG_UNIX98_PTYS=y
876# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 878# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -920,6 +922,7 @@ CONFIG_I2C_HELPER_AUTO=y
920CONFIG_I2C_MPC=y 922CONFIG_I2C_MPC=y
921# CONFIG_I2C_OCORES is not set 923# CONFIG_I2C_OCORES is not set
922# CONFIG_I2C_SIMTEC is not set 924# CONFIG_I2C_SIMTEC is not set
925# CONFIG_I2C_XILINX is not set
923 926
924# 927#
925# External I2C/SMBus adapter drivers 928# External I2C/SMBus adapter drivers
@@ -932,15 +935,9 @@ CONFIG_I2C_MPC=y
932# 935#
933# CONFIG_I2C_PCA_PLATFORM is not set 936# CONFIG_I2C_PCA_PLATFORM is not set
934# CONFIG_I2C_STUB is not set 937# CONFIG_I2C_STUB is not set
935
936#
937# Miscellaneous I2C Chip support
938#
939# CONFIG_SENSORS_TSL2550 is not set
940# CONFIG_I2C_DEBUG_CORE is not set 938# CONFIG_I2C_DEBUG_CORE is not set
941# CONFIG_I2C_DEBUG_ALGO is not set 939# CONFIG_I2C_DEBUG_ALGO is not set
942# CONFIG_I2C_DEBUG_BUS is not set 940# CONFIG_I2C_DEBUG_BUS is not set
943# CONFIG_I2C_DEBUG_CHIP is not set
944# CONFIG_SPI is not set 941# CONFIG_SPI is not set
945 942
946# 943#
@@ -966,10 +963,11 @@ CONFIG_HWMON=y
966# CONFIG_SENSORS_ADM1029 is not set 963# CONFIG_SENSORS_ADM1029 is not set
967# CONFIG_SENSORS_ADM1031 is not set 964# CONFIG_SENSORS_ADM1031 is not set
968# CONFIG_SENSORS_ADM9240 is not set 965# CONFIG_SENSORS_ADM9240 is not set
966# CONFIG_SENSORS_ADT7411 is not set
969# CONFIG_SENSORS_ADT7462 is not set 967# CONFIG_SENSORS_ADT7462 is not set
970# CONFIG_SENSORS_ADT7470 is not set 968# CONFIG_SENSORS_ADT7470 is not set
971# CONFIG_SENSORS_ADT7473 is not set
972# CONFIG_SENSORS_ADT7475 is not set 969# CONFIG_SENSORS_ADT7475 is not set
970# CONFIG_SENSORS_ASC7621 is not set
973# CONFIG_SENSORS_ATXP1 is not set 971# CONFIG_SENSORS_ATXP1 is not set
974# CONFIG_SENSORS_DS1621 is not set 972# CONFIG_SENSORS_DS1621 is not set
975# CONFIG_SENSORS_I5K_AMB is not set 973# CONFIG_SENSORS_I5K_AMB is not set
@@ -1006,6 +1004,7 @@ CONFIG_HWMON=y
1006# CONFIG_SENSORS_SMSC47M192 is not set 1004# CONFIG_SENSORS_SMSC47M192 is not set
1007# CONFIG_SENSORS_SMSC47B397 is not set 1005# CONFIG_SENSORS_SMSC47B397 is not set
1008# CONFIG_SENSORS_ADS7828 is not set 1006# CONFIG_SENSORS_ADS7828 is not set
1007# CONFIG_SENSORS_AMC6821 is not set
1009# CONFIG_SENSORS_THMC50 is not set 1008# CONFIG_SENSORS_THMC50 is not set
1010# CONFIG_SENSORS_TMP401 is not set 1009# CONFIG_SENSORS_TMP401 is not set
1011# CONFIG_SENSORS_TMP421 is not set 1010# CONFIG_SENSORS_TMP421 is not set
@@ -1048,18 +1047,21 @@ CONFIG_SSB_POSSIBLE=y
1048# Multifunction device drivers 1047# Multifunction device drivers
1049# 1048#
1050# CONFIG_MFD_CORE is not set 1049# CONFIG_MFD_CORE is not set
1050# CONFIG_MFD_88PM860X is not set
1051# CONFIG_MFD_SM501 is not set 1051# CONFIG_MFD_SM501 is not set
1052# CONFIG_HTC_PASIC3 is not set 1052# CONFIG_HTC_PASIC3 is not set
1053# CONFIG_TWL4030_CORE is not set 1053# CONFIG_TWL4030_CORE is not set
1054# CONFIG_MFD_TMIO is not set 1054# CONFIG_MFD_TMIO is not set
1055# CONFIG_PMIC_DA903X is not set 1055# CONFIG_PMIC_DA903X is not set
1056# CONFIG_PMIC_ADP5520 is not set 1056# CONFIG_PMIC_ADP5520 is not set
1057# CONFIG_MFD_MAX8925 is not set
1057# CONFIG_MFD_WM8400 is not set 1058# CONFIG_MFD_WM8400 is not set
1058# CONFIG_MFD_WM831X is not set 1059# CONFIG_MFD_WM831X is not set
1059# CONFIG_MFD_WM8350_I2C is not set 1060# CONFIG_MFD_WM8350_I2C is not set
1061# CONFIG_MFD_WM8994 is not set
1060# CONFIG_MFD_PCF50633 is not set 1062# CONFIG_MFD_PCF50633 is not set
1061# CONFIG_AB3100_CORE is not set 1063# CONFIG_AB3100_CORE is not set
1062# CONFIG_MFD_88PM8607 is not set 1064# CONFIG_LPC_SCH is not set
1063# CONFIG_REGULATOR is not set 1065# CONFIG_REGULATOR is not set
1064# CONFIG_MEDIA_SUPPORT is not set 1066# CONFIG_MEDIA_SUPPORT is not set
1065 1067
@@ -1068,6 +1070,7 @@ CONFIG_SSB_POSSIBLE=y
1068# 1070#
1069# CONFIG_AGP is not set 1071# CONFIG_AGP is not set
1070CONFIG_VGA_ARB=y 1072CONFIG_VGA_ARB=y
1073CONFIG_VGA_ARB_MAX_GPUS=16
1071# CONFIG_DRM is not set 1074# CONFIG_DRM is not set
1072# CONFIG_VGASTATE is not set 1075# CONFIG_VGASTATE is not set
1073CONFIG_VIDEO_OUTPUT_CONTROL=m 1076CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1253,6 +1256,7 @@ CONFIG_MISC_FILESYSTEMS=y
1253# CONFIG_BFS_FS is not set 1256# CONFIG_BFS_FS is not set
1254# CONFIG_EFS_FS is not set 1257# CONFIG_EFS_FS is not set
1255# CONFIG_JFFS2_FS is not set 1258# CONFIG_JFFS2_FS is not set
1259# CONFIG_LOGFS is not set
1256# CONFIG_CRAMFS is not set 1260# CONFIG_CRAMFS is not set
1257# CONFIG_SQUASHFS is not set 1261# CONFIG_SQUASHFS is not set
1258# CONFIG_VXFS_FS is not set 1262# CONFIG_VXFS_FS is not set
@@ -1279,6 +1283,7 @@ CONFIG_SUNRPC_GSS=y
1279CONFIG_RPCSEC_GSS_KRB5=y 1283CONFIG_RPCSEC_GSS_KRB5=y
1280# CONFIG_RPCSEC_GSS_SPKM3 is not set 1284# CONFIG_RPCSEC_GSS_SPKM3 is not set
1281# CONFIG_SMB_FS is not set 1285# CONFIG_SMB_FS is not set
1286# CONFIG_CEPH_FS is not set
1282# CONFIG_CIFS is not set 1287# CONFIG_CIFS is not set
1283# CONFIG_NCP_FS is not set 1288# CONFIG_NCP_FS is not set
1284# CONFIG_CODA_FS is not set 1289# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index 9451d6e5c802..77abfe8ff198 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:23 2010 4# Mon Apr 19 23:16:47 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,14 +97,8 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101CONFIG_FAIR_GROUP_SCHED=y
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
@@ -112,6 +106,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 106CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 107# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 108# CONFIG_RD_LZMA is not set
109# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 112CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -323,6 +318,7 @@ CONFIG_ISA_DMA_API=y
323# Bus options 318# Bus options
324# 319#
325CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
326CONFIG_GENERIC_ISA_DMA=y 322CONFIG_GENERIC_ISA_DMA=y
327CONFIG_PPC_INDIRECT_PCI=y 323CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 324CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -550,6 +544,8 @@ CONFIG_MTD_PHYSMAP_OF=y
550# UBI - Unsorted block images 544# UBI - Unsorted block images
551# 545#
552# CONFIG_MTD_UBI is not set 546# CONFIG_MTD_UBI is not set
547CONFIG_OF_FLATTREE=y
548CONFIG_OF_DYNAMIC=y
553CONFIG_OF_DEVICE=y 549CONFIG_OF_DEVICE=y
554CONFIG_OF_GPIO=y 550CONFIG_OF_GPIO=y
555CONFIG_OF_I2C=y 551CONFIG_OF_I2C=y
@@ -587,6 +583,7 @@ CONFIG_MISC_DEVICES=y
587# CONFIG_ENCLOSURE_SERVICES is not set 583# CONFIG_ENCLOSURE_SERVICES is not set
588# CONFIG_HP_ILO is not set 584# CONFIG_HP_ILO is not set
589# CONFIG_ISL29003 is not set 585# CONFIG_ISL29003 is not set
586# CONFIG_SENSORS_TSL2550 is not set
590# CONFIG_DS1682 is not set 587# CONFIG_DS1682 is not set
591# CONFIG_TI_DAC7512 is not set 588# CONFIG_TI_DAC7512 is not set
592# CONFIG_C2PORT is not set 589# CONFIG_C2PORT is not set
@@ -606,6 +603,7 @@ CONFIG_HAVE_IDE=y
606# 603#
607# SCSI device support 604# SCSI device support
608# 605#
606CONFIG_SCSI_MOD=y
609# CONFIG_RAID_ATTRS is not set 607# CONFIG_RAID_ATTRS is not set
610# CONFIG_SCSI is not set 608# CONFIG_SCSI is not set
611# CONFIG_SCSI_DMA is not set 609# CONFIG_SCSI_DMA is not set
@@ -774,6 +772,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
774# CONFIG_SERIAL_JSM is not set 772# CONFIG_SERIAL_JSM is not set
775# CONFIG_SERIAL_OF_PLATFORM is not set 773# CONFIG_SERIAL_OF_PLATFORM is not set
776CONFIG_SERIAL_QE=y 774CONFIG_SERIAL_QE=y
775# CONFIG_SERIAL_TIMBERDALE is not set
777# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 776# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
778CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
779# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -825,6 +824,7 @@ CONFIG_I2C_HELPER_AUTO=y
825CONFIG_I2C_MPC=y 824CONFIG_I2C_MPC=y
826# CONFIG_I2C_OCORES is not set 825# CONFIG_I2C_OCORES is not set
827# CONFIG_I2C_SIMTEC is not set 826# CONFIG_I2C_SIMTEC is not set
827# CONFIG_I2C_XILINX is not set
828 828
829# 829#
830# External I2C/SMBus adapter drivers 830# External I2C/SMBus adapter drivers
@@ -837,15 +837,9 @@ CONFIG_I2C_MPC=y
837# 837#
838# CONFIG_I2C_PCA_PLATFORM is not set 838# CONFIG_I2C_PCA_PLATFORM is not set
839# CONFIG_I2C_STUB is not set 839# CONFIG_I2C_STUB is not set
840
841#
842# Miscellaneous I2C Chip support
843#
844# CONFIG_SENSORS_TSL2550 is not set
845# CONFIG_I2C_DEBUG_CORE is not set 840# CONFIG_I2C_DEBUG_CORE is not set
846# CONFIG_I2C_DEBUG_ALGO is not set 841# CONFIG_I2C_DEBUG_ALGO is not set
847# CONFIG_I2C_DEBUG_BUS is not set 842# CONFIG_I2C_DEBUG_BUS is not set
848# CONFIG_I2C_DEBUG_CHIP is not set
849CONFIG_SPI=y 843CONFIG_SPI=y
850CONFIG_SPI_MASTER=y 844CONFIG_SPI_MASTER=y
851 845
@@ -876,14 +870,18 @@ CONFIG_GPIOLIB=y
876# 870#
877# Memory mapped GPIO expanders: 871# Memory mapped GPIO expanders:
878# 872#
873# CONFIG_GPIO_IT8761E is not set
879# CONFIG_GPIO_XILINX is not set 874# CONFIG_GPIO_XILINX is not set
875# CONFIG_GPIO_SCH is not set
880 876
881# 877#
882# I2C GPIO expanders: 878# I2C GPIO expanders:
883# 879#
880# CONFIG_GPIO_MAX7300 is not set
884# CONFIG_GPIO_MAX732X is not set 881# CONFIG_GPIO_MAX732X is not set
885# CONFIG_GPIO_PCA953X is not set 882# CONFIG_GPIO_PCA953X is not set
886# CONFIG_GPIO_PCF857X is not set 883# CONFIG_GPIO_PCF857X is not set
884# CONFIG_GPIO_ADP5588 is not set
887 885
888# 886#
889# PCI GPIO expanders: 887# PCI GPIO expanders:
@@ -932,22 +930,27 @@ CONFIG_SSB_POSSIBLE=y
932# Multifunction device drivers 930# Multifunction device drivers
933# 931#
934# CONFIG_MFD_CORE is not set 932# CONFIG_MFD_CORE is not set
933# CONFIG_MFD_88PM860X is not set
935# CONFIG_MFD_SM501 is not set 934# CONFIG_MFD_SM501 is not set
936# CONFIG_HTC_PASIC3 is not set 935# CONFIG_HTC_PASIC3 is not set
936# CONFIG_HTC_I2CPLD is not set
937# CONFIG_TPS65010 is not set 937# CONFIG_TPS65010 is not set
938# CONFIG_TWL4030_CORE is not set 938# CONFIG_TWL4030_CORE is not set
939# CONFIG_MFD_TMIO is not set 939# CONFIG_MFD_TMIO is not set
940# CONFIG_PMIC_DA903X is not set 940# CONFIG_PMIC_DA903X is not set
941# CONFIG_PMIC_ADP5520 is not set 941# CONFIG_PMIC_ADP5520 is not set
942# CONFIG_MFD_MAX8925 is not set
942# CONFIG_MFD_WM8400 is not set 943# CONFIG_MFD_WM8400 is not set
943# CONFIG_MFD_WM831X is not set 944# CONFIG_MFD_WM831X is not set
944# CONFIG_MFD_WM8350_I2C is not set 945# CONFIG_MFD_WM8350_I2C is not set
946# CONFIG_MFD_WM8994 is not set
945# CONFIG_MFD_PCF50633 is not set 947# CONFIG_MFD_PCF50633 is not set
946# CONFIG_MFD_MC13783 is not set 948# CONFIG_MFD_MC13783 is not set
947# CONFIG_AB3100_CORE is not set 949# CONFIG_AB3100_CORE is not set
948# CONFIG_EZX_PCAP is not set 950# CONFIG_EZX_PCAP is not set
949# CONFIG_MFD_88PM8607 is not set
950# CONFIG_AB4500_CORE is not set 951# CONFIG_AB4500_CORE is not set
952# CONFIG_MFD_TIMBERDALE is not set
953# CONFIG_LPC_SCH is not set
951# CONFIG_REGULATOR is not set 954# CONFIG_REGULATOR is not set
952# CONFIG_MEDIA_SUPPORT is not set 955# CONFIG_MEDIA_SUPPORT is not set
953 956
@@ -956,6 +959,7 @@ CONFIG_SSB_POSSIBLE=y
956# 959#
957# CONFIG_AGP is not set 960# CONFIG_AGP is not set
958CONFIG_VGA_ARB=y 961CONFIG_VGA_ARB=y
962CONFIG_VGA_ARB_MAX_GPUS=16
959# CONFIG_DRM is not set 963# CONFIG_DRM is not set
960# CONFIG_VGASTATE is not set 964# CONFIG_VGASTATE is not set
961# CONFIG_VIDEO_OUTPUT_CONTROL is not set 965# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1145,6 +1149,7 @@ CONFIG_JFFS2_ZLIB=y
1145# CONFIG_JFFS2_LZO is not set 1149# CONFIG_JFFS2_LZO is not set
1146CONFIG_JFFS2_RTIME=y 1150CONFIG_JFFS2_RTIME=y
1147# CONFIG_JFFS2_RUBIN is not set 1151# CONFIG_JFFS2_RUBIN is not set
1152# CONFIG_LOGFS is not set
1148# CONFIG_CRAMFS is not set 1153# CONFIG_CRAMFS is not set
1149# CONFIG_SQUASHFS is not set 1154# CONFIG_SQUASHFS is not set
1150# CONFIG_VXFS_FS is not set 1155# CONFIG_VXFS_FS is not set
@@ -1171,6 +1176,7 @@ CONFIG_SUNRPC_GSS=y
1171CONFIG_RPCSEC_GSS_KRB5=y 1176CONFIG_RPCSEC_GSS_KRB5=y
1172# CONFIG_RPCSEC_GSS_SPKM3 is not set 1177# CONFIG_RPCSEC_GSS_SPKM3 is not set
1173# CONFIG_SMB_FS is not set 1178# CONFIG_SMB_FS is not set
1179# CONFIG_CEPH_FS is not set
1174# CONFIG_CIFS is not set 1180# CONFIG_CIFS is not set
1175# CONFIG_NCP_FS is not set 1181# CONFIG_NCP_FS is not set
1176# CONFIG_CODA_FS is not set 1182# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index f67b70d0b292..0cdb41418d58 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:22 2010 4# Mon Apr 19 23:16:47 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367CONFIG_XFRM_USER=m 361CONFIG_XFRM_USER=m
@@ -456,6 +450,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
456# CONFIG_SYS_HYPERVISOR is not set 450# CONFIG_SYS_HYPERVISOR is not set
457# CONFIG_CONNECTOR is not set 451# CONFIG_CONNECTOR is not set
458# CONFIG_MTD is not set 452# CONFIG_MTD is not set
453CONFIG_OF_FLATTREE=y
454CONFIG_OF_DYNAMIC=y
459CONFIG_OF_DEVICE=y 455CONFIG_OF_DEVICE=y
460CONFIG_OF_I2C=y 456CONFIG_OF_I2C=y
461CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
@@ -491,6 +487,7 @@ CONFIG_MISC_DEVICES=y
491# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
492# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
493# CONFIG_ISL29003 is not set 489# CONFIG_ISL29003 is not set
490# CONFIG_SENSORS_TSL2550 is not set
494# CONFIG_DS1682 is not set 491# CONFIG_DS1682 is not set
495# CONFIG_C2PORT is not set 492# CONFIG_C2PORT is not set
496 493
@@ -508,6 +505,7 @@ CONFIG_HAVE_IDE=y
508# 505#
509# SCSI device support 506# SCSI device support
510# 507#
508CONFIG_SCSI_MOD=y
511# CONFIG_RAID_ATTRS is not set 509# CONFIG_RAID_ATTRS is not set
512CONFIG_SCSI=y 510CONFIG_SCSI=y
513CONFIG_SCSI_DMA=y 511CONFIG_SCSI_DMA=y
@@ -631,6 +629,7 @@ CONFIG_ATA_SFF=y
631# CONFIG_PATA_IT821X is not set 629# CONFIG_PATA_IT821X is not set
632# CONFIG_PATA_IT8213 is not set 630# CONFIG_PATA_IT8213 is not set
633# CONFIG_PATA_JMICRON is not set 631# CONFIG_PATA_JMICRON is not set
632# CONFIG_PATA_LEGACY is not set
634# CONFIG_PATA_TRIFLEX is not set 633# CONFIG_PATA_TRIFLEX is not set
635# CONFIG_PATA_MARVELL is not set 634# CONFIG_PATA_MARVELL is not set
636# CONFIG_PATA_MPIIX is not set 635# CONFIG_PATA_MPIIX is not set
@@ -755,6 +754,8 @@ CONFIG_NETDEV_10000=y
755# CONFIG_CHELSIO_T1 is not set 754# CONFIG_CHELSIO_T1 is not set
756CONFIG_CHELSIO_T3_DEPENDS=y 755CONFIG_CHELSIO_T3_DEPENDS=y
757# CONFIG_CHELSIO_T3 is not set 756# CONFIG_CHELSIO_T3 is not set
757CONFIG_CHELSIO_T4_DEPENDS=y
758# CONFIG_CHELSIO_T4 is not set
758# CONFIG_ENIC is not set 759# CONFIG_ENIC is not set
759# CONFIG_IXGBE is not set 760# CONFIG_IXGBE is not set
760# CONFIG_IXGB is not set 761# CONFIG_IXGB is not set
@@ -767,6 +768,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
767# CONFIG_MLX4_CORE is not set 768# CONFIG_MLX4_CORE is not set
768# CONFIG_TEHUTI is not set 769# CONFIG_TEHUTI is not set
769# CONFIG_BNX2X is not set 770# CONFIG_BNX2X is not set
771# CONFIG_QLCNIC is not set
770# CONFIG_QLGE is not set 772# CONFIG_QLGE is not set
771# CONFIG_SFC is not set 773# CONFIG_SFC is not set
772# CONFIG_BE2NET is not set 774# CONFIG_BE2NET is not set
@@ -851,6 +853,7 @@ CONFIG_SERIAL_CORE=y
851CONFIG_SERIAL_CORE_CONSOLE=y 853CONFIG_SERIAL_CORE_CONSOLE=y
852# CONFIG_SERIAL_JSM is not set 854# CONFIG_SERIAL_JSM is not set
853# CONFIG_SERIAL_OF_PLATFORM is not set 855# CONFIG_SERIAL_OF_PLATFORM is not set
856# CONFIG_SERIAL_TIMBERDALE is not set
854# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 857# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
855CONFIG_UNIX98_PTYS=y 858CONFIG_UNIX98_PTYS=y
856# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 859# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -901,6 +904,7 @@ CONFIG_I2C_HELPER_AUTO=y
901CONFIG_I2C_MPC=y 904CONFIG_I2C_MPC=y
902# CONFIG_I2C_OCORES is not set 905# CONFIG_I2C_OCORES is not set
903# CONFIG_I2C_SIMTEC is not set 906# CONFIG_I2C_SIMTEC is not set
907# CONFIG_I2C_XILINX is not set
904 908
905# 909#
906# External I2C/SMBus adapter drivers 910# External I2C/SMBus adapter drivers
@@ -913,15 +917,9 @@ CONFIG_I2C_MPC=y
913# 917#
914# CONFIG_I2C_PCA_PLATFORM is not set 918# CONFIG_I2C_PCA_PLATFORM is not set
915# CONFIG_I2C_STUB is not set 919# CONFIG_I2C_STUB is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 920# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 921# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 922# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 923# CONFIG_SPI is not set
926 924
927# 925#
@@ -947,10 +945,11 @@ CONFIG_HWMON=y
947# CONFIG_SENSORS_ADM1029 is not set 945# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 946# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 947# CONFIG_SENSORS_ADM9240 is not set
948# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 949# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 950# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 951# CONFIG_SENSORS_ADT7475 is not set
952# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 953# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 954# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 955# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +986,7 @@ CONFIG_HWMON=y
987# CONFIG_SENSORS_SMSC47M192 is not set 986# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 987# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 988# CONFIG_SENSORS_ADS7828 is not set
989# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 990# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 991# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 992# CONFIG_SENSORS_TMP421 is not set
@@ -1029,18 +1029,21 @@ CONFIG_SSB_POSSIBLE=y
1029# Multifunction device drivers 1029# Multifunction device drivers
1030# 1030#
1031# CONFIG_MFD_CORE is not set 1031# CONFIG_MFD_CORE is not set
1032# CONFIG_MFD_88PM860X is not set
1032# CONFIG_MFD_SM501 is not set 1033# CONFIG_MFD_SM501 is not set
1033# CONFIG_HTC_PASIC3 is not set 1034# CONFIG_HTC_PASIC3 is not set
1034# CONFIG_TWL4030_CORE is not set 1035# CONFIG_TWL4030_CORE is not set
1035# CONFIG_MFD_TMIO is not set 1036# CONFIG_MFD_TMIO is not set
1036# CONFIG_PMIC_DA903X is not set 1037# CONFIG_PMIC_DA903X is not set
1037# CONFIG_PMIC_ADP5520 is not set 1038# CONFIG_PMIC_ADP5520 is not set
1039# CONFIG_MFD_MAX8925 is not set
1038# CONFIG_MFD_WM8400 is not set 1040# CONFIG_MFD_WM8400 is not set
1039# CONFIG_MFD_WM831X is not set 1041# CONFIG_MFD_WM831X is not set
1040# CONFIG_MFD_WM8350_I2C is not set 1042# CONFIG_MFD_WM8350_I2C is not set
1043# CONFIG_MFD_WM8994 is not set
1041# CONFIG_MFD_PCF50633 is not set 1044# CONFIG_MFD_PCF50633 is not set
1042# CONFIG_AB3100_CORE is not set 1045# CONFIG_AB3100_CORE is not set
1043# CONFIG_MFD_88PM8607 is not set 1046# CONFIG_LPC_SCH is not set
1044# CONFIG_REGULATOR is not set 1047# CONFIG_REGULATOR is not set
1045# CONFIG_MEDIA_SUPPORT is not set 1048# CONFIG_MEDIA_SUPPORT is not set
1046 1049
@@ -1049,6 +1052,7 @@ CONFIG_SSB_POSSIBLE=y
1049# 1052#
1050# CONFIG_AGP is not set 1053# CONFIG_AGP is not set
1051CONFIG_VGA_ARB=y 1054CONFIG_VGA_ARB=y
1055CONFIG_VGA_ARB_MAX_GPUS=16
1052# CONFIG_DRM is not set 1056# CONFIG_DRM is not set
1053# CONFIG_VGASTATE is not set 1057# CONFIG_VGASTATE is not set
1054CONFIG_VIDEO_OUTPUT_CONTROL=m 1058CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1175,6 +1179,7 @@ CONFIG_MISC_FILESYSTEMS=y
1175# CONFIG_BEFS_FS is not set 1179# CONFIG_BEFS_FS is not set
1176# CONFIG_BFS_FS is not set 1180# CONFIG_BFS_FS is not set
1177# CONFIG_EFS_FS is not set 1181# CONFIG_EFS_FS is not set
1182# CONFIG_LOGFS is not set
1178# CONFIG_CRAMFS is not set 1183# CONFIG_CRAMFS is not set
1179# CONFIG_SQUASHFS is not set 1184# CONFIG_SQUASHFS is not set
1180# CONFIG_VXFS_FS is not set 1185# CONFIG_VXFS_FS is not set
@@ -1201,6 +1206,7 @@ CONFIG_SUNRPC_GSS=y
1201CONFIG_RPCSEC_GSS_KRB5=y 1206CONFIG_RPCSEC_GSS_KRB5=y
1202# CONFIG_RPCSEC_GSS_SPKM3 is not set 1207# CONFIG_RPCSEC_GSS_SPKM3 is not set
1203# CONFIG_SMB_FS is not set 1208# CONFIG_SMB_FS is not set
1209# CONFIG_CEPH_FS is not set
1204# CONFIG_CIFS is not set 1210# CONFIG_CIFS is not set
1205# CONFIG_NCP_FS is not set 1211# CONFIG_NCP_FS is not set
1206# CONFIG_CODA_FS is not set 1212# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index a84fd1194e2b..e69ed1b61425 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:24 2010 4# Mon Apr 19 23:16:48 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366# CONFIG_NET_KEY is not set 360# CONFIG_NET_KEY is not set
367CONFIG_INET=y 361CONFIG_INET=y
@@ -451,6 +445,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
451# CONFIG_SYS_HYPERVISOR is not set 445# CONFIG_SYS_HYPERVISOR is not set
452# CONFIG_CONNECTOR is not set 446# CONFIG_CONNECTOR is not set
453# CONFIG_MTD is not set 447# CONFIG_MTD is not set
448CONFIG_OF_FLATTREE=y
449CONFIG_OF_DYNAMIC=y
454CONFIG_OF_DEVICE=y 450CONFIG_OF_DEVICE=y
455CONFIG_OF_I2C=y 451CONFIG_OF_I2C=y
456CONFIG_OF_MDIO=y 452CONFIG_OF_MDIO=y
@@ -487,6 +483,7 @@ CONFIG_MISC_DEVICES=y
487# CONFIG_ENCLOSURE_SERVICES is not set 483# CONFIG_ENCLOSURE_SERVICES is not set
488# CONFIG_HP_ILO is not set 484# CONFIG_HP_ILO is not set
489# CONFIG_ISL29003 is not set 485# CONFIG_ISL29003 is not set
486# CONFIG_SENSORS_TSL2550 is not set
490# CONFIG_DS1682 is not set 487# CONFIG_DS1682 is not set
491# CONFIG_C2PORT is not set 488# CONFIG_C2PORT is not set
492 489
@@ -504,6 +501,7 @@ CONFIG_HAVE_IDE=y
504# 501#
505# SCSI device support 502# SCSI device support
506# 503#
504CONFIG_SCSI_MOD=y
507# CONFIG_RAID_ATTRS is not set 505# CONFIG_RAID_ATTRS is not set
508CONFIG_SCSI=y 506CONFIG_SCSI=y
509CONFIG_SCSI_DMA=y 507CONFIG_SCSI_DMA=y
@@ -626,6 +624,7 @@ CONFIG_ATA_SFF=y
626# CONFIG_PATA_IT821X is not set 624# CONFIG_PATA_IT821X is not set
627# CONFIG_PATA_IT8213 is not set 625# CONFIG_PATA_IT8213 is not set
628# CONFIG_PATA_JMICRON is not set 626# CONFIG_PATA_JMICRON is not set
627# CONFIG_PATA_LEGACY is not set
629# CONFIG_PATA_TRIFLEX is not set 628# CONFIG_PATA_TRIFLEX is not set
630# CONFIG_PATA_MARVELL is not set 629# CONFIG_PATA_MARVELL is not set
631# CONFIG_PATA_MPIIX is not set 630# CONFIG_PATA_MPIIX is not set
@@ -850,6 +849,7 @@ CONFIG_SERIAL_CORE=y
850CONFIG_SERIAL_CORE_CONSOLE=y 849CONFIG_SERIAL_CORE_CONSOLE=y
851# CONFIG_SERIAL_JSM is not set 850# CONFIG_SERIAL_JSM is not set
852# CONFIG_SERIAL_OF_PLATFORM is not set 851# CONFIG_SERIAL_OF_PLATFORM is not set
852# CONFIG_SERIAL_TIMBERDALE is not set
853# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 853# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
854CONFIG_UNIX98_PTYS=y 854CONFIG_UNIX98_PTYS=y
855# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 855# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -900,6 +900,7 @@ CONFIG_I2C_HELPER_AUTO=y
900CONFIG_I2C_MPC=y 900CONFIG_I2C_MPC=y
901# CONFIG_I2C_OCORES is not set 901# CONFIG_I2C_OCORES is not set
902# CONFIG_I2C_SIMTEC is not set 902# CONFIG_I2C_SIMTEC is not set
903# CONFIG_I2C_XILINX is not set
903 904
904# 905#
905# External I2C/SMBus adapter drivers 906# External I2C/SMBus adapter drivers
@@ -913,15 +914,9 @@ CONFIG_I2C_MPC=y
913# 914#
914# CONFIG_I2C_PCA_PLATFORM is not set 915# CONFIG_I2C_PCA_PLATFORM is not set
915# CONFIG_I2C_STUB is not set 916# CONFIG_I2C_STUB is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 917# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 918# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 919# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 920# CONFIG_SPI is not set
926 921
927# 922#
@@ -947,10 +942,11 @@ CONFIG_HWMON=y
947# CONFIG_SENSORS_ADM1029 is not set 942# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 943# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 944# CONFIG_SENSORS_ADM9240 is not set
945# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 946# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 947# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 948# CONFIG_SENSORS_ADT7475 is not set
949# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 950# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 951# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 952# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +983,7 @@ CONFIG_HWMON=y
987# CONFIG_SENSORS_SMSC47M192 is not set 983# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 984# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 985# CONFIG_SENSORS_ADS7828 is not set
986# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 987# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 988# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 989# CONFIG_SENSORS_TMP421 is not set
@@ -1034,18 +1031,21 @@ CONFIG_SSB_POSSIBLE=y
1034# Multifunction device drivers 1031# Multifunction device drivers
1035# 1032#
1036# CONFIG_MFD_CORE is not set 1033# CONFIG_MFD_CORE is not set
1034# CONFIG_MFD_88PM860X is not set
1037# CONFIG_MFD_SM501 is not set 1035# CONFIG_MFD_SM501 is not set
1038# CONFIG_HTC_PASIC3 is not set 1036# CONFIG_HTC_PASIC3 is not set
1039# CONFIG_TWL4030_CORE is not set 1037# CONFIG_TWL4030_CORE is not set
1040# CONFIG_MFD_TMIO is not set 1038# CONFIG_MFD_TMIO is not set
1041# CONFIG_PMIC_DA903X is not set 1039# CONFIG_PMIC_DA903X is not set
1042# CONFIG_PMIC_ADP5520 is not set 1040# CONFIG_PMIC_ADP5520 is not set
1041# CONFIG_MFD_MAX8925 is not set
1043# CONFIG_MFD_WM8400 is not set 1042# CONFIG_MFD_WM8400 is not set
1044# CONFIG_MFD_WM831X is not set 1043# CONFIG_MFD_WM831X is not set
1045# CONFIG_MFD_WM8350_I2C is not set 1044# CONFIG_MFD_WM8350_I2C is not set
1045# CONFIG_MFD_WM8994 is not set
1046# CONFIG_MFD_PCF50633 is not set 1046# CONFIG_MFD_PCF50633 is not set
1047# CONFIG_AB3100_CORE is not set 1047# CONFIG_AB3100_CORE is not set
1048# CONFIG_MFD_88PM8607 is not set 1048# CONFIG_LPC_SCH is not set
1049# CONFIG_REGULATOR is not set 1049# CONFIG_REGULATOR is not set
1050# CONFIG_MEDIA_SUPPORT is not set 1050# CONFIG_MEDIA_SUPPORT is not set
1051 1051
@@ -1054,6 +1054,7 @@ CONFIG_SSB_POSSIBLE=y
1054# 1054#
1055# CONFIG_AGP is not set 1055# CONFIG_AGP is not set
1056CONFIG_VGA_ARB=y 1056CONFIG_VGA_ARB=y
1057CONFIG_VGA_ARB_MAX_GPUS=16
1057# CONFIG_DRM is not set 1058# CONFIG_DRM is not set
1058# CONFIG_VGASTATE is not set 1059# CONFIG_VGASTATE is not set
1059CONFIG_VIDEO_OUTPUT_CONTROL=m 1060CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1079,6 +1080,7 @@ CONFIG_USB_HID=y
1079# 1080#
1080# Special HID drivers 1081# Special HID drivers
1081# 1082#
1083# CONFIG_HID_3M_PCT is not set
1082CONFIG_HID_A4TECH=y 1084CONFIG_HID_A4TECH=y
1083CONFIG_HID_APPLE=y 1085CONFIG_HID_APPLE=y
1084CONFIG_HID_BELKIN=y 1086CONFIG_HID_BELKIN=y
@@ -1094,14 +1096,19 @@ CONFIG_HID_GYRATION=y
1094CONFIG_HID_LOGITECH=y 1096CONFIG_HID_LOGITECH=y
1095# CONFIG_LOGITECH_FF is not set 1097# CONFIG_LOGITECH_FF is not set
1096# CONFIG_LOGIRUMBLEPAD2_FF is not set 1098# CONFIG_LOGIRUMBLEPAD2_FF is not set
1099# CONFIG_LOGIG940_FF is not set
1097CONFIG_HID_MICROSOFT=y 1100CONFIG_HID_MICROSOFT=y
1101# CONFIG_HID_MOSART is not set
1098CONFIG_HID_MONTEREY=y 1102CONFIG_HID_MONTEREY=y
1099# CONFIG_HID_NTRIG is not set 1103# CONFIG_HID_NTRIG is not set
1104# CONFIG_HID_ORTEK is not set
1100CONFIG_HID_PANTHERLORD=y 1105CONFIG_HID_PANTHERLORD=y
1101# CONFIG_PANTHERLORD_FF is not set 1106# CONFIG_PANTHERLORD_FF is not set
1102CONFIG_HID_PETALYNX=y 1107CONFIG_HID_PETALYNX=y
1108# CONFIG_HID_QUANTA is not set
1103CONFIG_HID_SAMSUNG=y 1109CONFIG_HID_SAMSUNG=y
1104CONFIG_HID_SONY=y 1110CONFIG_HID_SONY=y
1111# CONFIG_HID_STANTUM is not set
1105CONFIG_HID_SUNPLUS=y 1112CONFIG_HID_SUNPLUS=y
1106# CONFIG_HID_GREENASIA is not set 1113# CONFIG_HID_GREENASIA is not set
1107# CONFIG_HID_SMARTJOYPLUS is not set 1114# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1190,7 +1197,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1190# CONFIG_USB_RIO500 is not set 1197# CONFIG_USB_RIO500 is not set
1191# CONFIG_USB_LEGOTOWER is not set 1198# CONFIG_USB_LEGOTOWER is not set
1192# CONFIG_USB_LCD is not set 1199# CONFIG_USB_LCD is not set
1193# CONFIG_USB_BERRY_CHARGE is not set
1194# CONFIG_USB_LED is not set 1200# CONFIG_USB_LED is not set
1195# CONFIG_USB_CYPRESS_CY7C63 is not set 1201# CONFIG_USB_CYPRESS_CY7C63 is not set
1196# CONFIG_USB_CYTHERM is not set 1202# CONFIG_USB_CYTHERM is not set
@@ -1203,7 +1209,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1203# CONFIG_USB_IOWARRIOR is not set 1209# CONFIG_USB_IOWARRIOR is not set
1204# CONFIG_USB_TEST is not set 1210# CONFIG_USB_TEST is not set
1205# CONFIG_USB_ISIGHTFW is not set 1211# CONFIG_USB_ISIGHTFW is not set
1206# CONFIG_USB_VST is not set
1207# CONFIG_USB_GADGET is not set 1212# CONFIG_USB_GADGET is not set
1208 1213
1209# 1214#
@@ -1297,6 +1302,7 @@ CONFIG_MISC_FILESYSTEMS=y
1297# CONFIG_BEFS_FS is not set 1302# CONFIG_BEFS_FS is not set
1298# CONFIG_BFS_FS is not set 1303# CONFIG_BFS_FS is not set
1299# CONFIG_EFS_FS is not set 1304# CONFIG_EFS_FS is not set
1305# CONFIG_LOGFS is not set
1300# CONFIG_CRAMFS is not set 1306# CONFIG_CRAMFS is not set
1301# CONFIG_SQUASHFS is not set 1307# CONFIG_SQUASHFS is not set
1302# CONFIG_VXFS_FS is not set 1308# CONFIG_VXFS_FS is not set
@@ -1323,6 +1329,7 @@ CONFIG_SUNRPC_GSS=y
1323CONFIG_RPCSEC_GSS_KRB5=y 1329CONFIG_RPCSEC_GSS_KRB5=y
1324# CONFIG_RPCSEC_GSS_SPKM3 is not set 1330# CONFIG_RPCSEC_GSS_SPKM3 is not set
1325# CONFIG_SMB_FS is not set 1331# CONFIG_SMB_FS is not set
1332# CONFIG_CEPH_FS is not set
1326# CONFIG_CIFS is not set 1333# CONFIG_CIFS is not set
1327# CONFIG_NCP_FS is not set 1334# CONFIG_NCP_FS is not set
1328# CONFIG_CODA_FS is not set 1335# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 72c2067137b9..56e3995d898f 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:25 2010 4# Mon Apr 19 23:16:49 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -322,6 +317,7 @@ CONFIG_ISA_DMA_API=y
322# Bus options 317# Bus options
323# 318#
324CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
325CONFIG_GENERIC_ISA_DMA=y 321CONFIG_GENERIC_ISA_DMA=y
326CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
327CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
@@ -333,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
333# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
334CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
335# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
336# CONFIG_PCI_LEGACY is not set
337# CONFIG_PCI_STUB is not set 332# CONFIG_PCI_STUB is not set
338# CONFIG_PCI_IOV is not set 333# CONFIG_PCI_IOV is not set
339# CONFIG_PCCARD is not set 334# CONFIG_PCCARD is not set
@@ -359,7 +354,6 @@ CONFIG_NET=y
359# Networking options 354# Networking options
360# 355#
361CONFIG_PACKET=y 356CONFIG_PACKET=y
362# CONFIG_PACKET_MMAP is not set
363CONFIG_UNIX=y 357CONFIG_UNIX=y
364CONFIG_XFRM=y 358CONFIG_XFRM=y
365CONFIG_XFRM_USER=m 359CONFIG_XFRM_USER=m
@@ -537,6 +531,8 @@ CONFIG_MTD_PHYSMAP_OF=y
537# UBI - Unsorted block images 531# UBI - Unsorted block images
538# 532#
539# CONFIG_MTD_UBI is not set 533# CONFIG_MTD_UBI is not set
534CONFIG_OF_FLATTREE=y
535CONFIG_OF_DYNAMIC=y
540CONFIG_OF_DEVICE=y 536CONFIG_OF_DEVICE=y
541CONFIG_OF_I2C=y 537CONFIG_OF_I2C=y
542CONFIG_OF_MDIO=y 538CONFIG_OF_MDIO=y
@@ -573,6 +569,7 @@ CONFIG_MISC_DEVICES=y
573# CONFIG_ENCLOSURE_SERVICES is not set 569# CONFIG_ENCLOSURE_SERVICES is not set
574# CONFIG_HP_ILO is not set 570# CONFIG_HP_ILO is not set
575# CONFIG_ISL29003 is not set 571# CONFIG_ISL29003 is not set
572# CONFIG_SENSORS_TSL2550 is not set
576# CONFIG_DS1682 is not set 573# CONFIG_DS1682 is not set
577# CONFIG_C2PORT is not set 574# CONFIG_C2PORT is not set
578 575
@@ -590,6 +587,7 @@ CONFIG_HAVE_IDE=y
590# 587#
591# SCSI device support 588# SCSI device support
592# 589#
590CONFIG_SCSI_MOD=y
593# CONFIG_RAID_ATTRS is not set 591# CONFIG_RAID_ATTRS is not set
594CONFIG_SCSI=y 592CONFIG_SCSI=y
595CONFIG_SCSI_DMA=y 593CONFIG_SCSI_DMA=y
@@ -812,6 +810,7 @@ CONFIG_SERIAL_CORE=y
812CONFIG_SERIAL_CORE_CONSOLE=y 810CONFIG_SERIAL_CORE_CONSOLE=y
813# CONFIG_SERIAL_JSM is not set 811# CONFIG_SERIAL_JSM is not set
814# CONFIG_SERIAL_OF_PLATFORM is not set 812# CONFIG_SERIAL_OF_PLATFORM is not set
813# CONFIG_SERIAL_TIMBERDALE is not set
815# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 814# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
816CONFIG_UNIX98_PTYS=y 815CONFIG_UNIX98_PTYS=y
817# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 816# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -862,6 +861,7 @@ CONFIG_I2C_HELPER_AUTO=y
862CONFIG_I2C_MPC=y 861CONFIG_I2C_MPC=y
863# CONFIG_I2C_OCORES is not set 862# CONFIG_I2C_OCORES is not set
864# CONFIG_I2C_SIMTEC is not set 863# CONFIG_I2C_SIMTEC is not set
864# CONFIG_I2C_XILINX is not set
865 865
866# 866#
867# External I2C/SMBus adapter drivers 867# External I2C/SMBus adapter drivers
@@ -875,15 +875,9 @@ CONFIG_I2C_MPC=y
875# 875#
876# CONFIG_I2C_PCA_PLATFORM is not set 876# CONFIG_I2C_PCA_PLATFORM is not set
877# CONFIG_I2C_STUB is not set 877# CONFIG_I2C_STUB is not set
878
879#
880# Miscellaneous I2C Chip support
881#
882# CONFIG_SENSORS_TSL2550 is not set
883# CONFIG_I2C_DEBUG_CORE is not set 878# CONFIG_I2C_DEBUG_CORE is not set
884# CONFIG_I2C_DEBUG_ALGO is not set 879# CONFIG_I2C_DEBUG_ALGO is not set
885# CONFIG_I2C_DEBUG_BUS is not set 880# CONFIG_I2C_DEBUG_BUS is not set
886# CONFIG_I2C_DEBUG_CHIP is not set
887# CONFIG_SPI is not set 881# CONFIG_SPI is not set
888 882
889# 883#
@@ -909,10 +903,11 @@ CONFIG_HWMON=y
909# CONFIG_SENSORS_ADM1029 is not set 903# CONFIG_SENSORS_ADM1029 is not set
910# CONFIG_SENSORS_ADM1031 is not set 904# CONFIG_SENSORS_ADM1031 is not set
911# CONFIG_SENSORS_ADM9240 is not set 905# CONFIG_SENSORS_ADM9240 is not set
906# CONFIG_SENSORS_ADT7411 is not set
912# CONFIG_SENSORS_ADT7462 is not set 907# CONFIG_SENSORS_ADT7462 is not set
913# CONFIG_SENSORS_ADT7470 is not set 908# CONFIG_SENSORS_ADT7470 is not set
914# CONFIG_SENSORS_ADT7473 is not set
915# CONFIG_SENSORS_ADT7475 is not set 909# CONFIG_SENSORS_ADT7475 is not set
910# CONFIG_SENSORS_ASC7621 is not set
916# CONFIG_SENSORS_ATXP1 is not set 911# CONFIG_SENSORS_ATXP1 is not set
917# CONFIG_SENSORS_DS1621 is not set 912# CONFIG_SENSORS_DS1621 is not set
918# CONFIG_SENSORS_I5K_AMB is not set 913# CONFIG_SENSORS_I5K_AMB is not set
@@ -949,6 +944,7 @@ CONFIG_HWMON=y
949# CONFIG_SENSORS_SMSC47M192 is not set 944# CONFIG_SENSORS_SMSC47M192 is not set
950# CONFIG_SENSORS_SMSC47B397 is not set 945# CONFIG_SENSORS_SMSC47B397 is not set
951# CONFIG_SENSORS_ADS7828 is not set 946# CONFIG_SENSORS_ADS7828 is not set
947# CONFIG_SENSORS_AMC6821 is not set
952# CONFIG_SENSORS_THMC50 is not set 948# CONFIG_SENSORS_THMC50 is not set
953# CONFIG_SENSORS_TMP401 is not set 949# CONFIG_SENSORS_TMP401 is not set
954# CONFIG_SENSORS_TMP421 is not set 950# CONFIG_SENSORS_TMP421 is not set
@@ -996,18 +992,21 @@ CONFIG_SSB_POSSIBLE=y
996# Multifunction device drivers 992# Multifunction device drivers
997# 993#
998# CONFIG_MFD_CORE is not set 994# CONFIG_MFD_CORE is not set
995# CONFIG_MFD_88PM860X is not set
999# CONFIG_MFD_SM501 is not set 996# CONFIG_MFD_SM501 is not set
1000# CONFIG_HTC_PASIC3 is not set 997# CONFIG_HTC_PASIC3 is not set
1001# CONFIG_TWL4030_CORE is not set 998# CONFIG_TWL4030_CORE is not set
1002# CONFIG_MFD_TMIO is not set 999# CONFIG_MFD_TMIO is not set
1003# CONFIG_PMIC_DA903X is not set 1000# CONFIG_PMIC_DA903X is not set
1004# CONFIG_PMIC_ADP5520 is not set 1001# CONFIG_PMIC_ADP5520 is not set
1002# CONFIG_MFD_MAX8925 is not set
1005# CONFIG_MFD_WM8400 is not set 1003# CONFIG_MFD_WM8400 is not set
1006# CONFIG_MFD_WM831X is not set 1004# CONFIG_MFD_WM831X is not set
1007# CONFIG_MFD_WM8350_I2C is not set 1005# CONFIG_MFD_WM8350_I2C is not set
1006# CONFIG_MFD_WM8994 is not set
1008# CONFIG_MFD_PCF50633 is not set 1007# CONFIG_MFD_PCF50633 is not set
1009# CONFIG_AB3100_CORE is not set 1008# CONFIG_AB3100_CORE is not set
1010# CONFIG_MFD_88PM8607 is not set 1009# CONFIG_LPC_SCH is not set
1011# CONFIG_REGULATOR is not set 1010# CONFIG_REGULATOR is not set
1012# CONFIG_MEDIA_SUPPORT is not set 1011# CONFIG_MEDIA_SUPPORT is not set
1013 1012
@@ -1016,6 +1015,7 @@ CONFIG_SSB_POSSIBLE=y
1016# 1015#
1017# CONFIG_AGP is not set 1016# CONFIG_AGP is not set
1018CONFIG_VGA_ARB=y 1017CONFIG_VGA_ARB=y
1018CONFIG_VGA_ARB_MAX_GPUS=16
1019# CONFIG_DRM is not set 1019# CONFIG_DRM is not set
1020# CONFIG_VGASTATE is not set 1020# CONFIG_VGASTATE is not set
1021# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1021# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1140,7 +1140,6 @@ CONFIG_USB_STORAGE=y
1140# CONFIG_USB_RIO500 is not set 1140# CONFIG_USB_RIO500 is not set
1141# CONFIG_USB_LEGOTOWER is not set 1141# CONFIG_USB_LEGOTOWER is not set
1142# CONFIG_USB_LCD is not set 1142# CONFIG_USB_LCD is not set
1143# CONFIG_USB_BERRY_CHARGE is not set
1144# CONFIG_USB_LED is not set 1143# CONFIG_USB_LED is not set
1145# CONFIG_USB_CYPRESS_CY7C63 is not set 1144# CONFIG_USB_CYPRESS_CY7C63 is not set
1146# CONFIG_USB_CYTHERM is not set 1145# CONFIG_USB_CYTHERM is not set
@@ -1153,7 +1152,6 @@ CONFIG_USB_STORAGE=y
1153# CONFIG_USB_IOWARRIOR is not set 1152# CONFIG_USB_IOWARRIOR is not set
1154# CONFIG_USB_TEST is not set 1153# CONFIG_USB_TEST is not set
1155# CONFIG_USB_ISIGHTFW is not set 1154# CONFIG_USB_ISIGHTFW is not set
1156# CONFIG_USB_VST is not set
1157# CONFIG_USB_GADGET is not set 1155# CONFIG_USB_GADGET is not set
1158 1156
1159# 1157#
@@ -1245,6 +1243,7 @@ CONFIG_MISC_FILESYSTEMS=y
1245# CONFIG_BFS_FS is not set 1243# CONFIG_BFS_FS is not set
1246# CONFIG_EFS_FS is not set 1244# CONFIG_EFS_FS is not set
1247# CONFIG_JFFS2_FS is not set 1245# CONFIG_JFFS2_FS is not set
1246# CONFIG_LOGFS is not set
1248# CONFIG_CRAMFS is not set 1247# CONFIG_CRAMFS is not set
1249# CONFIG_SQUASHFS is not set 1248# CONFIG_SQUASHFS is not set
1250# CONFIG_VXFS_FS is not set 1249# CONFIG_VXFS_FS is not set
@@ -1271,6 +1270,7 @@ CONFIG_SUNRPC_GSS=y
1271CONFIG_RPCSEC_GSS_KRB5=y 1270CONFIG_RPCSEC_GSS_KRB5=y
1272# CONFIG_RPCSEC_GSS_SPKM3 is not set 1271# CONFIG_RPCSEC_GSS_SPKM3 is not set
1273# CONFIG_SMB_FS is not set 1272# CONFIG_SMB_FS is not set
1273# CONFIG_CEPH_FS is not set
1274# CONFIG_CIFS is not set 1274# CONFIG_CIFS is not set
1275# CONFIG_NCP_FS is not set 1275# CONFIG_NCP_FS is not set
1276# CONFIG_CODA_FS is not set 1276# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 21dad38b156f..f67a8d1cd0b0 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:26 2010 4# Mon Apr 19 23:16:50 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,10 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102# CONFIG_GROUP_SCHED is not set
103# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -110,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
110CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
111# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
112# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
113# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
114CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
115CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -315,6 +318,7 @@ CONFIG_ISA_DMA_API=y
315# Bus options 318# Bus options
316# 319#
317CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
318CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
319CONFIG_PPC_PCI_CHOICE=y 323CONFIG_PPC_PCI_CHOICE=y
320# CONFIG_PCI is not set 324# CONFIG_PCI is not set
@@ -345,7 +349,6 @@ CONFIG_NET=y
345# Networking options 349# Networking options
346# 350#
347CONFIG_PACKET=y 351CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 352CONFIG_UNIX=y
350CONFIG_XFRM=y 353CONFIG_XFRM=y
351# CONFIG_XFRM_USER is not set 354# CONFIG_XFRM_USER is not set
@@ -522,6 +525,8 @@ CONFIG_MTD_PHYSMAP_OF=y
522# UBI - Unsorted block images 525# UBI - Unsorted block images
523# 526#
524# CONFIG_MTD_UBI is not set 527# CONFIG_MTD_UBI is not set
528CONFIG_OF_FLATTREE=y
529CONFIG_OF_DYNAMIC=y
525CONFIG_OF_DEVICE=y 530CONFIG_OF_DEVICE=y
526CONFIG_OF_GPIO=y 531CONFIG_OF_GPIO=y
527CONFIG_OF_MDIO=y 532CONFIG_OF_MDIO=y
@@ -575,6 +580,7 @@ CONFIG_IDE_PROC_FS=y
575# 580#
576# SCSI device support 581# SCSI device support
577# 582#
583CONFIG_SCSI_MOD=y
578# CONFIG_RAID_ATTRS is not set 584# CONFIG_RAID_ATTRS is not set
579# CONFIG_SCSI is not set 585# CONFIG_SCSI is not set
580# CONFIG_SCSI_DMA is not set 586# CONFIG_SCSI_DMA is not set
@@ -701,6 +707,7 @@ CONFIG_SERIAL_CORE=y
701CONFIG_SERIAL_CORE_CONSOLE=y 707CONFIG_SERIAL_CORE_CONSOLE=y
702CONFIG_SERIAL_CPM=y 708CONFIG_SERIAL_CPM=y
703CONFIG_SERIAL_CPM_CONSOLE=y 709CONFIG_SERIAL_CPM_CONSOLE=y
710# CONFIG_SERIAL_TIMBERDALE is not set
704# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 711# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
705CONFIG_UNIX98_PTYS=y 712CONFIG_UNIX98_PTYS=y
706# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 713# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -732,6 +739,7 @@ CONFIG_GPIOLIB=y
732# 739#
733# Memory mapped GPIO expanders: 740# Memory mapped GPIO expanders:
734# 741#
742# CONFIG_GPIO_IT8761E is not set
735# CONFIG_GPIO_XILINX is not set 743# CONFIG_GPIO_XILINX is not set
736 744
737# 745#
@@ -915,6 +923,7 @@ CONFIG_MISC_FILESYSTEMS=y
915# CONFIG_BFS_FS is not set 923# CONFIG_BFS_FS is not set
916# CONFIG_EFS_FS is not set 924# CONFIG_EFS_FS is not set
917# CONFIG_JFFS2_FS is not set 925# CONFIG_JFFS2_FS is not set
926# CONFIG_LOGFS is not set
918# CONFIG_CRAMFS is not set 927# CONFIG_CRAMFS is not set
919# CONFIG_SQUASHFS is not set 928# CONFIG_SQUASHFS is not set
920# CONFIG_VXFS_FS is not set 929# CONFIG_VXFS_FS is not set
@@ -937,6 +946,7 @@ CONFIG_SUNRPC=y
937# CONFIG_RPCSEC_GSS_KRB5 is not set 946# CONFIG_RPCSEC_GSS_KRB5 is not set
938# CONFIG_RPCSEC_GSS_SPKM3 is not set 947# CONFIG_RPCSEC_GSS_SPKM3 is not set
939# CONFIG_SMB_FS is not set 948# CONFIG_SMB_FS is not set
949# CONFIG_CEPH_FS is not set
940# CONFIG_CIFS is not set 950# CONFIG_CIFS is not set
941# CONFIG_NCP_FS is not set 951# CONFIG_NCP_FS is not set
942# CONFIG_CODA_FS is not set 952# CONFIG_CODA_FS is not set
@@ -1036,6 +1046,7 @@ CONFIG_DEBUG_MUTEXES=y
1036# CONFIG_BACKTRACE_SELF_TEST is not set 1046# CONFIG_BACKTRACE_SELF_TEST is not set
1037# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1047# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1038# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1048# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1049# CONFIG_LKDTM is not set
1039# CONFIG_FAULT_INJECTION is not set 1050# CONFIG_FAULT_INJECTION is not set
1040# CONFIG_LATENCYTOP is not set 1051# CONFIG_LATENCYTOP is not set
1041CONFIG_SYSCTL_SYSCALL_CHECK=y 1052CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index 5db54cd274c6..61b122a25cdb 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:27 2010 4# Mon Apr 19 23:16:51 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -316,6 +315,7 @@ CONFIG_ISA_DMA_API=y
316# Bus options 315# Bus options
317# 316#
318CONFIG_ZONE_DMA=y 317CONFIG_ZONE_DMA=y
318# CONFIG_NEED_DMA_MAP_STATE is not set
319CONFIG_FSL_SOC=y 319CONFIG_FSL_SOC=y
320CONFIG_PPC_PCI_CHOICE=y 320CONFIG_PPC_PCI_CHOICE=y
321# CONFIG_PCI is not set 321# CONFIG_PCI is not set
@@ -346,7 +346,6 @@ CONFIG_NET=y
346# Networking options 346# Networking options
347# 347#
348CONFIG_PACKET=y 348CONFIG_PACKET=y
349# CONFIG_PACKET_MMAP is not set
350CONFIG_UNIX=y 349CONFIG_UNIX=y
351CONFIG_XFRM=y 350CONFIG_XFRM=y
352CONFIG_XFRM_USER=y 351CONFIG_XFRM_USER=y
@@ -443,6 +442,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
443# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
444# CONFIG_CONNECTOR is not set 443# CONFIG_CONNECTOR is not set
445# CONFIG_MTD is not set 444# CONFIG_MTD is not set
445CONFIG_OF_FLATTREE=y
446CONFIG_OF_DYNAMIC=y
446CONFIG_OF_DEVICE=y 447CONFIG_OF_DEVICE=y
447CONFIG_OF_MDIO=y 448CONFIG_OF_MDIO=y
448# CONFIG_PARPORT is not set 449# CONFIG_PARPORT is not set
@@ -477,6 +478,7 @@ CONFIG_HAVE_IDE=y
477# 478#
478# SCSI device support 479# SCSI device support
479# 480#
481CONFIG_SCSI_MOD=y
480# CONFIG_RAID_ATTRS is not set 482# CONFIG_RAID_ATTRS is not set
481# CONFIG_SCSI is not set 483# CONFIG_SCSI is not set
482# CONFIG_SCSI_DMA is not set 484# CONFIG_SCSI_DMA is not set
@@ -602,6 +604,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
602CONFIG_SERIAL_CORE=y 604CONFIG_SERIAL_CORE=y
603CONFIG_SERIAL_CORE_CONSOLE=y 605CONFIG_SERIAL_CORE_CONSOLE=y
604# CONFIG_SERIAL_OF_PLATFORM is not set 606# CONFIG_SERIAL_OF_PLATFORM is not set
607# CONFIG_SERIAL_TIMBERDALE is not set
605# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 608# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
606CONFIG_UNIX98_PTYS=y 609CONFIG_UNIX98_PTYS=y
607# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 610# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -788,6 +791,7 @@ CONFIG_MISC_FILESYSTEMS=y
788# CONFIG_BEFS_FS is not set 791# CONFIG_BEFS_FS is not set
789# CONFIG_BFS_FS is not set 792# CONFIG_BFS_FS is not set
790# CONFIG_EFS_FS is not set 793# CONFIG_EFS_FS is not set
794# CONFIG_LOGFS is not set
791# CONFIG_CRAMFS is not set 795# CONFIG_CRAMFS is not set
792# CONFIG_SQUASHFS is not set 796# CONFIG_SQUASHFS is not set
793# CONFIG_VXFS_FS is not set 797# CONFIG_VXFS_FS is not set
@@ -810,6 +814,7 @@ CONFIG_SUNRPC=y
810# CONFIG_RPCSEC_GSS_KRB5 is not set 814# CONFIG_RPCSEC_GSS_KRB5 is not set
811# CONFIG_RPCSEC_GSS_SPKM3 is not set 815# CONFIG_RPCSEC_GSS_SPKM3 is not set
812# CONFIG_SMB_FS is not set 816# CONFIG_SMB_FS is not set
817# CONFIG_CEPH_FS is not set
813# CONFIG_CIFS is not set 818# CONFIG_CIFS is not set
814# CONFIG_NCP_FS is not set 819# CONFIG_NCP_FS is not set
815# CONFIG_CODA_FS is not set 820# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 76c7018c5cd2..a5ceaa4b5e42 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:28 2010 4# Mon Apr 19 23:16:52 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103# CONFIG_FAIR_GROUP_SCHED is not set
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -319,6 +318,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 318# Bus options
320# 319#
321CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
322CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
323CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
324CONFIG_FSL_PCI=y 324CONFIG_FSL_PCI=y
@@ -329,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
329# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
330CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
331# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
332# CONFIG_PCI_LEGACY is not set
333CONFIG_PCI_DEBUG=y 332CONFIG_PCI_DEBUG=y
334# CONFIG_PCI_STUB is not set 333# CONFIG_PCI_STUB is not set
335# CONFIG_PCI_IOV is not set 334# CONFIG_PCI_IOV is not set
@@ -358,7 +357,6 @@ CONFIG_NET=y
358# Networking options 357# Networking options
359# 358#
360CONFIG_PACKET=y 359CONFIG_PACKET=y
361# CONFIG_PACKET_MMAP is not set
362CONFIG_UNIX=y 360CONFIG_UNIX=y
363CONFIG_XFRM=y 361CONFIG_XFRM=y
364# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -455,6 +453,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
455# CONFIG_SYS_HYPERVISOR is not set 453# CONFIG_SYS_HYPERVISOR is not set
456# CONFIG_CONNECTOR is not set 454# CONFIG_CONNECTOR is not set
457# CONFIG_MTD is not set 455# CONFIG_MTD is not set
456CONFIG_OF_FLATTREE=y
457CONFIG_OF_DYNAMIC=y
458CONFIG_OF_DEVICE=y 458CONFIG_OF_DEVICE=y
459CONFIG_OF_GPIO=y 459CONFIG_OF_GPIO=y
460CONFIG_OF_MDIO=y 460CONFIG_OF_MDIO=y
@@ -500,6 +500,7 @@ CONFIG_HAVE_IDE=y
500# 500#
501# SCSI device support 501# SCSI device support
502# 502#
503CONFIG_SCSI_MOD=y
503# CONFIG_RAID_ATTRS is not set 504# CONFIG_RAID_ATTRS is not set
504# CONFIG_SCSI is not set 505# CONFIG_SCSI is not set
505# CONFIG_SCSI_DMA is not set 506# CONFIG_SCSI_DMA is not set
@@ -609,6 +610,8 @@ CONFIG_NETDEV_10000=y
609# CONFIG_CHELSIO_T1 is not set 610# CONFIG_CHELSIO_T1 is not set
610CONFIG_CHELSIO_T3_DEPENDS=y 611CONFIG_CHELSIO_T3_DEPENDS=y
611# CONFIG_CHELSIO_T3 is not set 612# CONFIG_CHELSIO_T3 is not set
613CONFIG_CHELSIO_T4_DEPENDS=y
614# CONFIG_CHELSIO_T4 is not set
612# CONFIG_ENIC is not set 615# CONFIG_ENIC is not set
613# CONFIG_IXGBE is not set 616# CONFIG_IXGBE is not set
614# CONFIG_IXGB is not set 617# CONFIG_IXGB is not set
@@ -621,6 +624,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
621# CONFIG_MLX4_CORE is not set 624# CONFIG_MLX4_CORE is not set
622# CONFIG_TEHUTI is not set 625# CONFIG_TEHUTI is not set
623# CONFIG_BNX2X is not set 626# CONFIG_BNX2X is not set
627# CONFIG_QLCNIC is not set
624# CONFIG_QLGE is not set 628# CONFIG_QLGE is not set
625# CONFIG_SFC is not set 629# CONFIG_SFC is not set
626# CONFIG_BE2NET is not set 630# CONFIG_BE2NET is not set
@@ -700,6 +704,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
700CONFIG_SERIAL_CPM=y 704CONFIG_SERIAL_CPM=y
701CONFIG_SERIAL_CPM_CONSOLE=y 705CONFIG_SERIAL_CPM_CONSOLE=y
702# CONFIG_SERIAL_JSM is not set 706# CONFIG_SERIAL_JSM is not set
707# CONFIG_SERIAL_TIMBERDALE is not set
703# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 708# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
704CONFIG_UNIX98_PTYS=y 709CONFIG_UNIX98_PTYS=y
705# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 710# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -733,7 +738,9 @@ CONFIG_GPIOLIB=y
733# 738#
734# Memory mapped GPIO expanders: 739# Memory mapped GPIO expanders:
735# 740#
741# CONFIG_GPIO_IT8761E is not set
736# CONFIG_GPIO_XILINX is not set 742# CONFIG_GPIO_XILINX is not set
743# CONFIG_GPIO_SCH is not set
737 744
738# 745#
739# I2C GPIO expanders: 746# I2C GPIO expanders:
@@ -793,6 +800,8 @@ CONFIG_SSB_POSSIBLE=y
793# CONFIG_MFD_SM501 is not set 800# CONFIG_MFD_SM501 is not set
794# CONFIG_HTC_PASIC3 is not set 801# CONFIG_HTC_PASIC3 is not set
795# CONFIG_MFD_TMIO is not set 802# CONFIG_MFD_TMIO is not set
803# CONFIG_MFD_TIMBERDALE is not set
804# CONFIG_LPC_SCH is not set
796# CONFIG_REGULATOR is not set 805# CONFIG_REGULATOR is not set
797# CONFIG_MEDIA_SUPPORT is not set 806# CONFIG_MEDIA_SUPPORT is not set
798 807
@@ -801,6 +810,7 @@ CONFIG_SSB_POSSIBLE=y
801# 810#
802# CONFIG_AGP is not set 811# CONFIG_AGP is not set
803CONFIG_VGA_ARB=y 812CONFIG_VGA_ARB=y
813CONFIG_VGA_ARB_MAX_GPUS=16
804# CONFIG_DRM is not set 814# CONFIG_DRM is not set
805# CONFIG_VGASTATE is not set 815# CONFIG_VGASTATE is not set
806CONFIG_VIDEO_OUTPUT_CONTROL=y 816CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -927,6 +937,7 @@ CONFIG_MISC_FILESYSTEMS=y
927# CONFIG_BEFS_FS is not set 937# CONFIG_BEFS_FS is not set
928# CONFIG_BFS_FS is not set 938# CONFIG_BFS_FS is not set
929# CONFIG_EFS_FS is not set 939# CONFIG_EFS_FS is not set
940# CONFIG_LOGFS is not set
930# CONFIG_CRAMFS is not set 941# CONFIG_CRAMFS is not set
931# CONFIG_SQUASHFS is not set 942# CONFIG_SQUASHFS is not set
932# CONFIG_VXFS_FS is not set 943# CONFIG_VXFS_FS is not set
@@ -949,6 +960,7 @@ CONFIG_SUNRPC=y
949# CONFIG_RPCSEC_GSS_KRB5 is not set 960# CONFIG_RPCSEC_GSS_KRB5 is not set
950# CONFIG_RPCSEC_GSS_SPKM3 is not set 961# CONFIG_RPCSEC_GSS_SPKM3 is not set
951# CONFIG_SMB_FS is not set 962# CONFIG_SMB_FS is not set
963# CONFIG_CEPH_FS is not set
952# CONFIG_CIFS is not set 964# CONFIG_CIFS is not set
953# CONFIG_NCP_FS is not set 965# CONFIG_NCP_FS is not set
954# CONFIG_CODA_FS is not set 966# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index fab8adacbf79..4adb4eba2d4f 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:29 2010 4# Mon Apr 19 23:16:53 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -317,6 +316,7 @@ CONFIG_ISA_DMA_API=y
317# Bus options 316# Bus options
318# 317#
319CONFIG_ZONE_DMA=y 318CONFIG_ZONE_DMA=y
319# CONFIG_NEED_DMA_MAP_STATE is not set
320CONFIG_PPC_INDIRECT_PCI=y 320CONFIG_PPC_INDIRECT_PCI=y
321CONFIG_FSL_SOC=y 321CONFIG_FSL_SOC=y
322CONFIG_FSL_PCI=y 322CONFIG_FSL_PCI=y
@@ -327,7 +327,6 @@ CONFIG_PCI_SYSCALL=y
327# CONFIG_PCIEPORTBUS is not set 327# CONFIG_PCIEPORTBUS is not set
328CONFIG_ARCH_SUPPORTS_MSI=y 328CONFIG_ARCH_SUPPORTS_MSI=y
329# CONFIG_PCI_MSI is not set 329# CONFIG_PCI_MSI is not set
330# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_DEBUG is not set 330# CONFIG_PCI_DEBUG is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
@@ -356,7 +355,6 @@ CONFIG_NET=y
356# Networking options 355# Networking options
357# 356#
358CONFIG_PACKET=y 357CONFIG_PACKET=y
359# CONFIG_PACKET_MMAP is not set
360CONFIG_UNIX=y 358CONFIG_UNIX=y
361CONFIG_XFRM=y 359CONFIG_XFRM=y
362CONFIG_XFRM_USER=y 360CONFIG_XFRM_USER=y
@@ -453,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
453# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
454# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
455# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
456CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
457CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
458# CONFIG_PARPORT is not set 458# CONFIG_PARPORT is not set
@@ -552,6 +552,7 @@ CONFIG_BLK_DEV_IDEDMA=y
552# 552#
553# SCSI device support 553# SCSI device support
554# 554#
555CONFIG_SCSI_MOD=y
555# CONFIG_RAID_ATTRS is not set 556# CONFIG_RAID_ATTRS is not set
556# CONFIG_SCSI is not set 557# CONFIG_SCSI is not set
557# CONFIG_SCSI_DMA is not set 558# CONFIG_SCSI_DMA is not set
@@ -657,6 +658,8 @@ CONFIG_NETDEV_10000=y
657# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
658CONFIG_CHELSIO_T3_DEPENDS=y 659CONFIG_CHELSIO_T3_DEPENDS=y
659# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
661CONFIG_CHELSIO_T4_DEPENDS=y
662# CONFIG_CHELSIO_T4 is not set
660# CONFIG_ENIC is not set 663# CONFIG_ENIC is not set
661# CONFIG_IXGBE is not set 664# CONFIG_IXGBE is not set
662# CONFIG_IXGB is not set 665# CONFIG_IXGB is not set
@@ -669,6 +672,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
669# CONFIG_MLX4_CORE is not set 672# CONFIG_MLX4_CORE is not set
670# CONFIG_TEHUTI is not set 673# CONFIG_TEHUTI is not set
671# CONFIG_BNX2X is not set 674# CONFIG_BNX2X is not set
675# CONFIG_QLCNIC is not set
672# CONFIG_QLGE is not set 676# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 677# CONFIG_SFC is not set
674# CONFIG_BE2NET is not set 678# CONFIG_BE2NET is not set
@@ -753,6 +757,7 @@ CONFIG_SERIAL_CORE=y
753CONFIG_SERIAL_CORE_CONSOLE=y 757CONFIG_SERIAL_CORE_CONSOLE=y
754# CONFIG_SERIAL_JSM is not set 758# CONFIG_SERIAL_JSM is not set
755# CONFIG_SERIAL_OF_PLATFORM is not set 759# CONFIG_SERIAL_OF_PLATFORM is not set
760# CONFIG_SERIAL_TIMBERDALE is not set
756# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 761# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
757CONFIG_UNIX98_PTYS=y 762CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 763# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -817,6 +822,7 @@ CONFIG_SSB_POSSIBLE=y
817# CONFIG_MFD_SM501 is not set 822# CONFIG_MFD_SM501 is not set
818# CONFIG_HTC_PASIC3 is not set 823# CONFIG_HTC_PASIC3 is not set
819# CONFIG_MFD_TMIO is not set 824# CONFIG_MFD_TMIO is not set
825# CONFIG_LPC_SCH is not set
820# CONFIG_REGULATOR is not set 826# CONFIG_REGULATOR is not set
821# CONFIG_MEDIA_SUPPORT is not set 827# CONFIG_MEDIA_SUPPORT is not set
822 828
@@ -825,6 +831,7 @@ CONFIG_SSB_POSSIBLE=y
825# 831#
826# CONFIG_AGP is not set 832# CONFIG_AGP is not set
827CONFIG_VGA_ARB=y 833CONFIG_VGA_ARB=y
834CONFIG_VGA_ARB_MAX_GPUS=16
828# CONFIG_DRM is not set 835# CONFIG_DRM is not set
829# CONFIG_VGASTATE is not set 836# CONFIG_VGASTATE is not set
830CONFIG_VIDEO_OUTPUT_CONTROL=y 837CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -951,6 +958,7 @@ CONFIG_MISC_FILESYSTEMS=y
951# CONFIG_BEFS_FS is not set 958# CONFIG_BEFS_FS is not set
952# CONFIG_BFS_FS is not set 959# CONFIG_BFS_FS is not set
953# CONFIG_EFS_FS is not set 960# CONFIG_EFS_FS is not set
961# CONFIG_LOGFS is not set
954# CONFIG_CRAMFS is not set 962# CONFIG_CRAMFS is not set
955# CONFIG_SQUASHFS is not set 963# CONFIG_SQUASHFS is not set
956# CONFIG_VXFS_FS is not set 964# CONFIG_VXFS_FS is not set
@@ -973,6 +981,7 @@ CONFIG_SUNRPC=y
973# CONFIG_RPCSEC_GSS_KRB5 is not set 981# CONFIG_RPCSEC_GSS_KRB5 is not set
974# CONFIG_RPCSEC_GSS_SPKM3 is not set 982# CONFIG_RPCSEC_GSS_SPKM3 is not set
975# CONFIG_SMB_FS is not set 983# CONFIG_SMB_FS is not set
984# CONFIG_CEPH_FS is not set
976# CONFIG_CIFS is not set 985# CONFIG_CIFS is not set
977# CONFIG_NCP_FS is not set 986# CONFIG_NCP_FS is not set
978# CONFIG_CODA_FS is not set 987# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index 8290385e9b94..3de8450cd551 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:29 2010 4# Mon Apr 19 23:16:54 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -314,6 +313,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 313# Bus options
315# 314#
316CONFIG_ZONE_DMA=y 315CONFIG_ZONE_DMA=y
316# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_PPC_INDIRECT_PCI=y 317CONFIG_PPC_INDIRECT_PCI=y
318CONFIG_FSL_SOC=y 318CONFIG_FSL_SOC=y
319CONFIG_FSL_PCI=y 319CONFIG_FSL_PCI=y
@@ -324,7 +324,6 @@ CONFIG_PCI_SYSCALL=y
324# CONFIG_PCIEPORTBUS is not set 324# CONFIG_PCIEPORTBUS is not set
325CONFIG_ARCH_SUPPORTS_MSI=y 325CONFIG_ARCH_SUPPORTS_MSI=y
326# CONFIG_PCI_MSI is not set 326# CONFIG_PCI_MSI is not set
327# CONFIG_PCI_LEGACY is not set
328# CONFIG_PCI_STUB is not set 327# CONFIG_PCI_STUB is not set
329# CONFIG_PCI_IOV is not set 328# CONFIG_PCI_IOV is not set
330# CONFIG_PCCARD is not set 329# CONFIG_PCCARD is not set
@@ -352,7 +351,6 @@ CONFIG_NET=y
352# Networking options 351# Networking options
353# 352#
354CONFIG_PACKET=y 353CONFIG_PACKET=y
355# CONFIG_PACKET_MMAP is not set
356CONFIG_UNIX=y 354CONFIG_UNIX=y
357CONFIG_XFRM=y 355CONFIG_XFRM=y
358CONFIG_XFRM_USER=y 356CONFIG_XFRM_USER=y
@@ -447,6 +445,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
447# CONFIG_SYS_HYPERVISOR is not set 445# CONFIG_SYS_HYPERVISOR is not set
448# CONFIG_CONNECTOR is not set 446# CONFIG_CONNECTOR is not set
449# CONFIG_MTD is not set 447# CONFIG_MTD is not set
448CONFIG_OF_FLATTREE=y
449CONFIG_OF_DYNAMIC=y
450CONFIG_OF_DEVICE=y 450CONFIG_OF_DEVICE=y
451CONFIG_OF_MDIO=y 451CONFIG_OF_MDIO=y
452# CONFIG_PARPORT is not set 452# CONFIG_PARPORT is not set
@@ -491,6 +491,7 @@ CONFIG_HAVE_IDE=y
491# 491#
492# SCSI device support 492# SCSI device support
493# 493#
494CONFIG_SCSI_MOD=y
494# CONFIG_RAID_ATTRS is not set 495# CONFIG_RAID_ATTRS is not set
495# CONFIG_SCSI is not set 496# CONFIG_SCSI is not set
496# CONFIG_SCSI_DMA is not set 497# CONFIG_SCSI_DMA is not set
@@ -596,6 +597,8 @@ CONFIG_NETDEV_10000=y
596# CONFIG_CHELSIO_T1 is not set 597# CONFIG_CHELSIO_T1 is not set
597CONFIG_CHELSIO_T3_DEPENDS=y 598CONFIG_CHELSIO_T3_DEPENDS=y
598# CONFIG_CHELSIO_T3 is not set 599# CONFIG_CHELSIO_T3 is not set
600CONFIG_CHELSIO_T4_DEPENDS=y
601# CONFIG_CHELSIO_T4 is not set
599# CONFIG_ENIC is not set 602# CONFIG_ENIC is not set
600# CONFIG_IXGBE is not set 603# CONFIG_IXGBE is not set
601# CONFIG_IXGB is not set 604# CONFIG_IXGB is not set
@@ -608,6 +611,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
608# CONFIG_MLX4_CORE is not set 611# CONFIG_MLX4_CORE is not set
609# CONFIG_TEHUTI is not set 612# CONFIG_TEHUTI is not set
610# CONFIG_BNX2X is not set 613# CONFIG_BNX2X is not set
614# CONFIG_QLCNIC is not set
611# CONFIG_QLGE is not set 615# CONFIG_QLGE is not set
612# CONFIG_SFC is not set 616# CONFIG_SFC is not set
613# CONFIG_BE2NET is not set 617# CONFIG_BE2NET is not set
@@ -692,6 +696,7 @@ CONFIG_SERIAL_CORE=y
692CONFIG_SERIAL_CORE_CONSOLE=y 696CONFIG_SERIAL_CORE_CONSOLE=y
693# CONFIG_SERIAL_JSM is not set 697# CONFIG_SERIAL_JSM is not set
694# CONFIG_SERIAL_OF_PLATFORM is not set 698# CONFIG_SERIAL_OF_PLATFORM is not set
699# CONFIG_SERIAL_TIMBERDALE is not set
695# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 700# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
696CONFIG_UNIX98_PTYS=y 701CONFIG_UNIX98_PTYS=y
697# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 702# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -756,6 +761,7 @@ CONFIG_SSB_POSSIBLE=y
756# CONFIG_MFD_SM501 is not set 761# CONFIG_MFD_SM501 is not set
757# CONFIG_HTC_PASIC3 is not set 762# CONFIG_HTC_PASIC3 is not set
758# CONFIG_MFD_TMIO is not set 763# CONFIG_MFD_TMIO is not set
764# CONFIG_LPC_SCH is not set
759# CONFIG_REGULATOR is not set 765# CONFIG_REGULATOR is not set
760# CONFIG_MEDIA_SUPPORT is not set 766# CONFIG_MEDIA_SUPPORT is not set
761 767
@@ -764,6 +770,7 @@ CONFIG_SSB_POSSIBLE=y
764# 770#
765# CONFIG_AGP is not set 771# CONFIG_AGP is not set
766CONFIG_VGA_ARB=y 772CONFIG_VGA_ARB=y
773CONFIG_VGA_ARB_MAX_GPUS=16
767# CONFIG_DRM is not set 774# CONFIG_DRM is not set
768# CONFIG_VGASTATE is not set 775# CONFIG_VGASTATE is not set
769CONFIG_VIDEO_OUTPUT_CONTROL=y 776CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -856,6 +863,7 @@ CONFIG_MISC_FILESYSTEMS=y
856# CONFIG_BEFS_FS is not set 863# CONFIG_BEFS_FS is not set
857# CONFIG_BFS_FS is not set 864# CONFIG_BFS_FS is not set
858# CONFIG_EFS_FS is not set 865# CONFIG_EFS_FS is not set
866# CONFIG_LOGFS is not set
859# CONFIG_CRAMFS is not set 867# CONFIG_CRAMFS is not set
860# CONFIG_SQUASHFS is not set 868# CONFIG_SQUASHFS is not set
861# CONFIG_VXFS_FS is not set 869# CONFIG_VXFS_FS is not set
@@ -878,6 +886,7 @@ CONFIG_SUNRPC=y
878# CONFIG_RPCSEC_GSS_KRB5 is not set 886# CONFIG_RPCSEC_GSS_KRB5 is not set
879# CONFIG_RPCSEC_GSS_SPKM3 is not set 887# CONFIG_RPCSEC_GSS_SPKM3 is not set
880# CONFIG_SMB_FS is not set 888# CONFIG_SMB_FS is not set
889# CONFIG_CEPH_FS is not set
881# CONFIG_CIFS is not set 890# CONFIG_CIFS is not set
882# CONFIG_NCP_FS is not set 891# CONFIG_NCP_FS is not set
883# CONFIG_CODA_FS is not set 892# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index 2499b5ba7141..bd467fe13932 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:30 2010 4# Mon Apr 19 23:16:54 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -314,6 +313,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 313# Bus options
315# 314#
316CONFIG_ZONE_DMA=y 315CONFIG_ZONE_DMA=y
316# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_FSL_SOC=y 317CONFIG_FSL_SOC=y
318CONFIG_PPC_PCI_CHOICE=y 318CONFIG_PPC_PCI_CHOICE=y
319# CONFIG_PCI is not set 319# CONFIG_PCI is not set
@@ -344,7 +344,6 @@ CONFIG_NET=y
344# Networking options 344# Networking options
345# 345#
346CONFIG_PACKET=y 346CONFIG_PACKET=y
347# CONFIG_PACKET_MMAP is not set
348CONFIG_UNIX=y 347CONFIG_UNIX=y
349CONFIG_XFRM=y 348CONFIG_XFRM=y
350CONFIG_XFRM_USER=y 349CONFIG_XFRM_USER=y
@@ -441,6 +440,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
441# CONFIG_SYS_HYPERVISOR is not set 440# CONFIG_SYS_HYPERVISOR is not set
442# CONFIG_CONNECTOR is not set 441# CONFIG_CONNECTOR is not set
443# CONFIG_MTD is not set 442# CONFIG_MTD is not set
443CONFIG_OF_FLATTREE=y
444CONFIG_OF_DYNAMIC=y
444CONFIG_OF_DEVICE=y 445CONFIG_OF_DEVICE=y
445CONFIG_OF_MDIO=y 446CONFIG_OF_MDIO=y
446# CONFIG_PARPORT is not set 447# CONFIG_PARPORT is not set
@@ -475,6 +476,7 @@ CONFIG_HAVE_IDE=y
475# 476#
476# SCSI device support 477# SCSI device support
477# 478#
479CONFIG_SCSI_MOD=y
478# CONFIG_RAID_ATTRS is not set 480# CONFIG_RAID_ATTRS is not set
479# CONFIG_SCSI is not set 481# CONFIG_SCSI is not set
480# CONFIG_SCSI_DMA is not set 482# CONFIG_SCSI_DMA is not set
@@ -600,6 +602,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
600CONFIG_SERIAL_CORE=y 602CONFIG_SERIAL_CORE=y
601CONFIG_SERIAL_CORE_CONSOLE=y 603CONFIG_SERIAL_CORE_CONSOLE=y
602# CONFIG_SERIAL_OF_PLATFORM is not set 604# CONFIG_SERIAL_OF_PLATFORM is not set
605# CONFIG_SERIAL_TIMBERDALE is not set
603# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 606# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
604CONFIG_UNIX98_PTYS=y 607CONFIG_UNIX98_PTYS=y
605# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 608# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -815,6 +818,7 @@ CONFIG_MISC_FILESYSTEMS=y
815# CONFIG_BEFS_FS is not set 818# CONFIG_BEFS_FS is not set
816# CONFIG_BFS_FS is not set 819# CONFIG_BFS_FS is not set
817# CONFIG_EFS_FS is not set 820# CONFIG_EFS_FS is not set
821# CONFIG_LOGFS is not set
818# CONFIG_CRAMFS is not set 822# CONFIG_CRAMFS is not set
819# CONFIG_SQUASHFS is not set 823# CONFIG_SQUASHFS is not set
820# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
@@ -837,6 +841,7 @@ CONFIG_SUNRPC=y
837# CONFIG_RPCSEC_GSS_KRB5 is not set 841# CONFIG_RPCSEC_GSS_KRB5 is not set
838# CONFIG_RPCSEC_GSS_SPKM3 is not set 842# CONFIG_RPCSEC_GSS_SPKM3 is not set
839# CONFIG_SMB_FS is not set 843# CONFIG_SMB_FS is not set
844# CONFIG_CEPH_FS is not set
840# CONFIG_CIFS is not set 845# CONFIG_CIFS is not set
841# CONFIG_NCP_FS is not set 846# CONFIG_NCP_FS is not set
842# CONFIG_CODA_FS is not set 847# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/socrates_defconfig b/arch/powerpc/configs/85xx/socrates_defconfig
index e2edb79cfd1a..9803e031165c 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:31 2010 4# Mon Apr 19 23:16:55 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=16 104CONFIG_LOG_BUF_SHIFT=16
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -319,6 +318,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 318# Bus options
320# 319#
321CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
322CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
323CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
324CONFIG_FSL_PCI=y 324CONFIG_FSL_PCI=y
@@ -329,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
329# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
330CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
331# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
332CONFIG_PCI_LEGACY=y
333# CONFIG_PCI_STUB is not set 332# CONFIG_PCI_STUB is not set
334# CONFIG_PCI_IOV is not set 333# CONFIG_PCI_IOV is not set
335# CONFIG_HAS_RAPIDIO is not set 334# CONFIG_HAS_RAPIDIO is not set
@@ -355,7 +354,6 @@ CONFIG_NET=y
355# Networking options 354# Networking options
356# 355#
357CONFIG_PACKET=y 356CONFIG_PACKET=y
358# CONFIG_PACKET_MMAP is not set
359CONFIG_UNIX=y 357CONFIG_UNIX=y
360CONFIG_XFRM=y 358CONFIG_XFRM=y
361# CONFIG_XFRM_USER is not set 359# CONFIG_XFRM_USER is not set
@@ -554,6 +552,8 @@ CONFIG_MTD_NAND_SOCRATES=y
554# UBI - Unsorted block images 552# UBI - Unsorted block images
555# 553#
556# CONFIG_MTD_UBI is not set 554# CONFIG_MTD_UBI is not set
555CONFIG_OF_FLATTREE=y
556CONFIG_OF_DYNAMIC=y
557CONFIG_OF_DEVICE=y 557CONFIG_OF_DEVICE=y
558CONFIG_OF_I2C=y 558CONFIG_OF_I2C=y
559CONFIG_OF_SPI=y 559CONFIG_OF_SPI=y
@@ -591,6 +591,7 @@ CONFIG_MISC_DEVICES=y
591# CONFIG_ENCLOSURE_SERVICES is not set 591# CONFIG_ENCLOSURE_SERVICES is not set
592# CONFIG_HP_ILO is not set 592# CONFIG_HP_ILO is not set
593# CONFIG_ISL29003 is not set 593# CONFIG_ISL29003 is not set
594# CONFIG_SENSORS_TSL2550 is not set
594# CONFIG_DS1682 is not set 595# CONFIG_DS1682 is not set
595# CONFIG_TI_DAC7512 is not set 596# CONFIG_TI_DAC7512 is not set
596# CONFIG_C2PORT is not set 597# CONFIG_C2PORT is not set
@@ -610,6 +611,7 @@ CONFIG_HAVE_IDE=y
610# 611#
611# SCSI device support 612# SCSI device support
612# 613#
614CONFIG_SCSI_MOD=y
613# CONFIG_RAID_ATTRS is not set 615# CONFIG_RAID_ATTRS is not set
614CONFIG_SCSI=y 616CONFIG_SCSI=y
615CONFIG_SCSI_DMA=y 617CONFIG_SCSI_DMA=y
@@ -867,6 +869,7 @@ CONFIG_SERIAL_CORE=y
867CONFIG_SERIAL_CORE_CONSOLE=y 869CONFIG_SERIAL_CORE_CONSOLE=y
868# CONFIG_SERIAL_JSM is not set 870# CONFIG_SERIAL_JSM is not set
869# CONFIG_SERIAL_OF_PLATFORM is not set 871# CONFIG_SERIAL_OF_PLATFORM is not set
872# CONFIG_SERIAL_TIMBERDALE is not set
870# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 873# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
871CONFIG_UNIX98_PTYS=y 874CONFIG_UNIX98_PTYS=y
872# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 875# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -916,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
916CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
917# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
918# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
919 923
920# 924#
921# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -929,15 +933,9 @@ CONFIG_I2C_MPC=y
929# 933#
930# CONFIG_I2C_PCA_PLATFORM is not set 934# CONFIG_I2C_PCA_PLATFORM is not set
931# CONFIG_I2C_STUB is not set 935# CONFIG_I2C_STUB is not set
932
933#
934# Miscellaneous I2C Chip support
935#
936# CONFIG_SENSORS_TSL2550 is not set
937# CONFIG_I2C_DEBUG_CORE is not set 936# CONFIG_I2C_DEBUG_CORE is not set
938# CONFIG_I2C_DEBUG_ALGO is not set 937# CONFIG_I2C_DEBUG_ALGO is not set
939# CONFIG_I2C_DEBUG_BUS is not set 938# CONFIG_I2C_DEBUG_BUS is not set
940# CONFIG_I2C_DEBUG_CHIP is not set
941CONFIG_SPI=y 939CONFIG_SPI=y
942CONFIG_SPI_MASTER=y 940CONFIG_SPI_MASTER=y
943 941
@@ -979,10 +977,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
979# CONFIG_SENSORS_ADM1029 is not set 977# CONFIG_SENSORS_ADM1029 is not set
980# CONFIG_SENSORS_ADM1031 is not set 978# CONFIG_SENSORS_ADM1031 is not set
981# CONFIG_SENSORS_ADM9240 is not set 979# CONFIG_SENSORS_ADM9240 is not set
980# CONFIG_SENSORS_ADT7411 is not set
982# CONFIG_SENSORS_ADT7462 is not set 981# CONFIG_SENSORS_ADT7462 is not set
983# CONFIG_SENSORS_ADT7470 is not set 982# CONFIG_SENSORS_ADT7470 is not set
984# CONFIG_SENSORS_ADT7473 is not set
985# CONFIG_SENSORS_ADT7475 is not set 983# CONFIG_SENSORS_ADT7475 is not set
984# CONFIG_SENSORS_ASC7621 is not set
986# CONFIG_SENSORS_ATXP1 is not set 985# CONFIG_SENSORS_ATXP1 is not set
987# CONFIG_SENSORS_DS1621 is not set 986# CONFIG_SENSORS_DS1621 is not set
988# CONFIG_SENSORS_I5K_AMB is not set 987# CONFIG_SENSORS_I5K_AMB is not set
@@ -1021,6 +1020,7 @@ CONFIG_SENSORS_LM75=y
1021# CONFIG_SENSORS_SMSC47M192 is not set 1020# CONFIG_SENSORS_SMSC47M192 is not set
1022# CONFIG_SENSORS_SMSC47B397 is not set 1021# CONFIG_SENSORS_SMSC47B397 is not set
1023# CONFIG_SENSORS_ADS7828 is not set 1022# CONFIG_SENSORS_ADS7828 is not set
1023# CONFIG_SENSORS_AMC6821 is not set
1024# CONFIG_SENSORS_THMC50 is not set 1024# CONFIG_SENSORS_THMC50 is not set
1025# CONFIG_SENSORS_TMP401 is not set 1025# CONFIG_SENSORS_TMP401 is not set
1026# CONFIG_SENSORS_TMP421 is not set 1026# CONFIG_SENSORS_TMP421 is not set
@@ -1050,21 +1050,24 @@ CONFIG_SSB_POSSIBLE=y
1050# Multifunction device drivers 1050# Multifunction device drivers
1051# 1051#
1052# CONFIG_MFD_CORE is not set 1052# CONFIG_MFD_CORE is not set
1053# CONFIG_MFD_88PM860X is not set
1053# CONFIG_MFD_SM501 is not set 1054# CONFIG_MFD_SM501 is not set
1054# CONFIG_HTC_PASIC3 is not set 1055# CONFIG_HTC_PASIC3 is not set
1055# CONFIG_TWL4030_CORE is not set 1056# CONFIG_TWL4030_CORE is not set
1056# CONFIG_MFD_TMIO is not set 1057# CONFIG_MFD_TMIO is not set
1057# CONFIG_PMIC_DA903X is not set 1058# CONFIG_PMIC_DA903X is not set
1058# CONFIG_PMIC_ADP5520 is not set 1059# CONFIG_PMIC_ADP5520 is not set
1060# CONFIG_MFD_MAX8925 is not set
1059# CONFIG_MFD_WM8400 is not set 1061# CONFIG_MFD_WM8400 is not set
1060# CONFIG_MFD_WM831X is not set 1062# CONFIG_MFD_WM831X is not set
1061# CONFIG_MFD_WM8350_I2C is not set 1063# CONFIG_MFD_WM8350_I2C is not set
1064# CONFIG_MFD_WM8994 is not set
1062# CONFIG_MFD_PCF50633 is not set 1065# CONFIG_MFD_PCF50633 is not set
1063# CONFIG_MFD_MC13783 is not set 1066# CONFIG_MFD_MC13783 is not set
1064# CONFIG_AB3100_CORE is not set 1067# CONFIG_AB3100_CORE is not set
1065# CONFIG_EZX_PCAP is not set 1068# CONFIG_EZX_PCAP is not set
1066# CONFIG_MFD_88PM8607 is not set
1067# CONFIG_AB4500_CORE is not set 1069# CONFIG_AB4500_CORE is not set
1070# CONFIG_LPC_SCH is not set
1068# CONFIG_REGULATOR is not set 1071# CONFIG_REGULATOR is not set
1069# CONFIG_MEDIA_SUPPORT is not set 1072# CONFIG_MEDIA_SUPPORT is not set
1070 1073
@@ -1073,6 +1076,7 @@ CONFIG_SSB_POSSIBLE=y
1073# 1076#
1074# CONFIG_AGP is not set 1077# CONFIG_AGP is not set
1075CONFIG_VGA_ARB=y 1078CONFIG_VGA_ARB=y
1079CONFIG_VGA_ARB_MAX_GPUS=16
1076# CONFIG_DRM is not set 1080# CONFIG_DRM is not set
1077# CONFIG_VGASTATE is not set 1081# CONFIG_VGASTATE is not set
1078# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1082# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1180,6 +1184,7 @@ CONFIG_USB_HID=y
1180# 1184#
1181# Special HID drivers 1185# Special HID drivers
1182# 1186#
1187# CONFIG_HID_3M_PCT is not set
1183# CONFIG_HID_A4TECH is not set 1188# CONFIG_HID_A4TECH is not set
1184# CONFIG_HID_APPLE is not set 1189# CONFIG_HID_APPLE is not set
1185# CONFIG_HID_BELKIN is not set 1190# CONFIG_HID_BELKIN is not set
@@ -1194,12 +1199,16 @@ CONFIG_USB_HID=y
1194# CONFIG_HID_KENSINGTON is not set 1199# CONFIG_HID_KENSINGTON is not set
1195# CONFIG_HID_LOGITECH is not set 1200# CONFIG_HID_LOGITECH is not set
1196# CONFIG_HID_MICROSOFT is not set 1201# CONFIG_HID_MICROSOFT is not set
1202# CONFIG_HID_MOSART is not set
1197# CONFIG_HID_MONTEREY is not set 1203# CONFIG_HID_MONTEREY is not set
1198# CONFIG_HID_NTRIG is not set 1204# CONFIG_HID_NTRIG is not set
1205# CONFIG_HID_ORTEK is not set
1199# CONFIG_HID_PANTHERLORD is not set 1206# CONFIG_HID_PANTHERLORD is not set
1200# CONFIG_HID_PETALYNX is not set 1207# CONFIG_HID_PETALYNX is not set
1208# CONFIG_HID_QUANTA is not set
1201# CONFIG_HID_SAMSUNG is not set 1209# CONFIG_HID_SAMSUNG is not set
1202# CONFIG_HID_SONY is not set 1210# CONFIG_HID_SONY is not set
1211# CONFIG_HID_STANTUM is not set
1203# CONFIG_HID_SUNPLUS is not set 1212# CONFIG_HID_SUNPLUS is not set
1204# CONFIG_HID_GREENASIA is not set 1213# CONFIG_HID_GREENASIA is not set
1205# CONFIG_HID_SMARTJOYPLUS is not set 1214# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1307,7 +1316,6 @@ CONFIG_USB_STORAGE=y
1307# CONFIG_USB_RIO500 is not set 1316# CONFIG_USB_RIO500 is not set
1308# CONFIG_USB_LEGOTOWER is not set 1317# CONFIG_USB_LEGOTOWER is not set
1309# CONFIG_USB_LCD is not set 1318# CONFIG_USB_LCD is not set
1310# CONFIG_USB_BERRY_CHARGE is not set
1311# CONFIG_USB_LED is not set 1319# CONFIG_USB_LED is not set
1312# CONFIG_USB_CYPRESS_CY7C63 is not set 1320# CONFIG_USB_CYPRESS_CY7C63 is not set
1313# CONFIG_USB_CYTHERM is not set 1321# CONFIG_USB_CYTHERM is not set
@@ -1320,7 +1328,6 @@ CONFIG_USB_STORAGE=y
1320# CONFIG_USB_IOWARRIOR is not set 1328# CONFIG_USB_IOWARRIOR is not set
1321# CONFIG_USB_TEST is not set 1329# CONFIG_USB_TEST is not set
1322# CONFIG_USB_ISIGHTFW is not set 1330# CONFIG_USB_ISIGHTFW is not set
1323# CONFIG_USB_VST is not set
1324# CONFIG_USB_GADGET is not set 1331# CONFIG_USB_GADGET is not set
1325 1332
1326# 1333#
@@ -1491,6 +1498,7 @@ CONFIG_JFFS2_ZLIB=y
1491# CONFIG_JFFS2_LZO is not set 1498# CONFIG_JFFS2_LZO is not set
1492CONFIG_JFFS2_RTIME=y 1499CONFIG_JFFS2_RTIME=y
1493# CONFIG_JFFS2_RUBIN is not set 1500# CONFIG_JFFS2_RUBIN is not set
1501# CONFIG_LOGFS is not set
1494CONFIG_CRAMFS=y 1502CONFIG_CRAMFS=y
1495# CONFIG_SQUASHFS is not set 1503# CONFIG_SQUASHFS is not set
1496# CONFIG_VXFS_FS is not set 1504# CONFIG_VXFS_FS is not set
@@ -1515,6 +1523,7 @@ CONFIG_SUNRPC=y
1515# CONFIG_RPCSEC_GSS_KRB5 is not set 1523# CONFIG_RPCSEC_GSS_KRB5 is not set
1516# CONFIG_RPCSEC_GSS_SPKM3 is not set 1524# CONFIG_RPCSEC_GSS_SPKM3 is not set
1517# CONFIG_SMB_FS is not set 1525# CONFIG_SMB_FS is not set
1526# CONFIG_CEPH_FS is not set
1518# CONFIG_CIFS is not set 1527# CONFIG_CIFS is not set
1519# CONFIG_NCP_FS is not set 1528# CONFIG_NCP_FS is not set
1520# CONFIG_CODA_FS is not set 1529# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index ce313259df14..880ab7aaf202 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:32 2010 4# Mon Apr 19 23:16:56 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -324,6 +323,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 323# Bus options
325# 324#
326CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
329CONFIG_FSL_PCI=y 329CONFIG_FSL_PCI=y
@@ -334,7 +334,6 @@ CONFIG_PCI_SYSCALL=y
334# CONFIG_PCIEPORTBUS is not set 334# CONFIG_PCIEPORTBUS is not set
335CONFIG_ARCH_SUPPORTS_MSI=y 335CONFIG_ARCH_SUPPORTS_MSI=y
336# CONFIG_PCI_MSI is not set 336# CONFIG_PCI_MSI is not set
337# CONFIG_PCI_LEGACY is not set
338# CONFIG_PCI_DEBUG is not set 337# CONFIG_PCI_DEBUG is not set
339# CONFIG_PCI_STUB is not set 338# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 339# CONFIG_PCI_IOV is not set
@@ -363,7 +362,6 @@ CONFIG_NET=y
363# Networking options 362# Networking options
364# 363#
365CONFIG_PACKET=y 364CONFIG_PACKET=y
366# CONFIG_PACKET_MMAP is not set
367CONFIG_UNIX=y 365CONFIG_UNIX=y
368CONFIG_XFRM=y 366CONFIG_XFRM=y
369# CONFIG_XFRM_USER is not set 367# CONFIG_XFRM_USER is not set
@@ -520,6 +518,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
520# CONFIG_SYS_HYPERVISOR is not set 518# CONFIG_SYS_HYPERVISOR is not set
521# CONFIG_CONNECTOR is not set 519# CONFIG_CONNECTOR is not set
522# CONFIG_MTD is not set 520# CONFIG_MTD is not set
521CONFIG_OF_FLATTREE=y
522CONFIG_OF_DYNAMIC=y
523CONFIG_OF_DEVICE=y 523CONFIG_OF_DEVICE=y
524CONFIG_OF_GPIO=y 524CONFIG_OF_GPIO=y
525CONFIG_OF_I2C=m 525CONFIG_OF_I2C=m
@@ -563,6 +563,7 @@ CONFIG_MISC_DEVICES=y
563# CONFIG_ENCLOSURE_SERVICES is not set 563# CONFIG_ENCLOSURE_SERVICES is not set
564# CONFIG_HP_ILO is not set 564# CONFIG_HP_ILO is not set
565# CONFIG_ISL29003 is not set 565# CONFIG_ISL29003 is not set
566# CONFIG_SENSORS_TSL2550 is not set
566# CONFIG_DS1682 is not set 567# CONFIG_DS1682 is not set
567# CONFIG_C2PORT is not set 568# CONFIG_C2PORT is not set
568 569
@@ -630,6 +631,7 @@ CONFIG_IDE_PROC_FS=y
630# 631#
631# SCSI device support 632# SCSI device support
632# 633#
634CONFIG_SCSI_MOD=m
633# CONFIG_RAID_ATTRS is not set 635# CONFIG_RAID_ATTRS is not set
634CONFIG_SCSI=m 636CONFIG_SCSI=m
635CONFIG_SCSI_DMA=y 637CONFIG_SCSI_DMA=y
@@ -817,6 +819,8 @@ CONFIG_NETDEV_10000=y
817# CONFIG_CHELSIO_T1 is not set 819# CONFIG_CHELSIO_T1 is not set
818CONFIG_CHELSIO_T3_DEPENDS=y 820CONFIG_CHELSIO_T3_DEPENDS=y
819# CONFIG_CHELSIO_T3 is not set 821# CONFIG_CHELSIO_T3 is not set
822CONFIG_CHELSIO_T4_DEPENDS=y
823# CONFIG_CHELSIO_T4 is not set
820# CONFIG_ENIC is not set 824# CONFIG_ENIC is not set
821# CONFIG_IXGBE is not set 825# CONFIG_IXGBE is not set
822# CONFIG_IXGB is not set 826# CONFIG_IXGB is not set
@@ -829,6 +833,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
829# CONFIG_MLX4_CORE is not set 833# CONFIG_MLX4_CORE is not set
830# CONFIG_TEHUTI is not set 834# CONFIG_TEHUTI is not set
831# CONFIG_BNX2X is not set 835# CONFIG_BNX2X is not set
836# CONFIG_QLCNIC is not set
832# CONFIG_QLGE is not set 837# CONFIG_QLGE is not set
833# CONFIG_SFC is not set 838# CONFIG_SFC is not set
834# CONFIG_BE2NET is not set 839# CONFIG_BE2NET is not set
@@ -947,6 +952,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
947CONFIG_SERIAL_CPM=y 952CONFIG_SERIAL_CPM=y
948CONFIG_SERIAL_CPM_CONSOLE=y 953CONFIG_SERIAL_CPM_CONSOLE=y
949# CONFIG_SERIAL_JSM is not set 954# CONFIG_SERIAL_JSM is not set
955# CONFIG_SERIAL_TIMBERDALE is not set
950# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 956# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
951CONFIG_UNIX98_PTYS=y 957CONFIG_UNIX98_PTYS=y
952# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 958# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1004,6 +1010,7 @@ CONFIG_I2C_ALGOBIT=m
1004# CONFIG_I2C_MPC is not set 1010# CONFIG_I2C_MPC is not set
1005# CONFIG_I2C_OCORES is not set 1011# CONFIG_I2C_OCORES is not set
1006# CONFIG_I2C_SIMTEC is not set 1012# CONFIG_I2C_SIMTEC is not set
1013# CONFIG_I2C_XILINX is not set
1007 1014
1008# 1015#
1009# External I2C/SMBus adapter drivers 1016# External I2C/SMBus adapter drivers
@@ -1017,15 +1024,9 @@ CONFIG_I2C_ALGOBIT=m
1017# 1024#
1018# CONFIG_I2C_PCA_PLATFORM is not set 1025# CONFIG_I2C_PCA_PLATFORM is not set
1019# CONFIG_I2C_STUB is not set 1026# CONFIG_I2C_STUB is not set
1020
1021#
1022# Miscellaneous I2C Chip support
1023#
1024# CONFIG_SENSORS_TSL2550 is not set
1025# CONFIG_I2C_DEBUG_CORE is not set 1027# CONFIG_I2C_DEBUG_CORE is not set
1026# CONFIG_I2C_DEBUG_ALGO is not set 1028# CONFIG_I2C_DEBUG_ALGO is not set
1027# CONFIG_I2C_DEBUG_BUS is not set 1029# CONFIG_I2C_DEBUG_BUS is not set
1028# CONFIG_I2C_DEBUG_CHIP is not set
1029# CONFIG_SPI is not set 1030# CONFIG_SPI is not set
1030 1031
1031# 1032#
@@ -1041,14 +1042,18 @@ CONFIG_GPIOLIB=y
1041# 1042#
1042# Memory mapped GPIO expanders: 1043# Memory mapped GPIO expanders:
1043# 1044#
1045# CONFIG_GPIO_IT8761E is not set
1044# CONFIG_GPIO_XILINX is not set 1046# CONFIG_GPIO_XILINX is not set
1047# CONFIG_GPIO_SCH is not set
1045 1048
1046# 1049#
1047# I2C GPIO expanders: 1050# I2C GPIO expanders:
1048# 1051#
1052# CONFIG_GPIO_MAX7300 is not set
1049# CONFIG_GPIO_MAX732X is not set 1053# CONFIG_GPIO_MAX732X is not set
1050# CONFIG_GPIO_PCA953X is not set 1054# CONFIG_GPIO_PCA953X is not set
1051# CONFIG_GPIO_PCF857X is not set 1055# CONFIG_GPIO_PCF857X is not set
1056# CONFIG_GPIO_ADP5588 is not set
1052 1057
1053# 1058#
1054# PCI GPIO expanders: 1059# PCI GPIO expanders:
@@ -1081,10 +1086,11 @@ CONFIG_HWMON=y
1081# CONFIG_SENSORS_ADM1029 is not set 1086# CONFIG_SENSORS_ADM1029 is not set
1082# CONFIG_SENSORS_ADM1031 is not set 1087# CONFIG_SENSORS_ADM1031 is not set
1083# CONFIG_SENSORS_ADM9240 is not set 1088# CONFIG_SENSORS_ADM9240 is not set
1089# CONFIG_SENSORS_ADT7411 is not set
1084# CONFIG_SENSORS_ADT7462 is not set 1090# CONFIG_SENSORS_ADT7462 is not set
1085# CONFIG_SENSORS_ADT7470 is not set 1091# CONFIG_SENSORS_ADT7470 is not set
1086# CONFIG_SENSORS_ADT7473 is not set
1087# CONFIG_SENSORS_ADT7475 is not set 1092# CONFIG_SENSORS_ADT7475 is not set
1093# CONFIG_SENSORS_ASC7621 is not set
1088# CONFIG_SENSORS_ATXP1 is not set 1094# CONFIG_SENSORS_ATXP1 is not set
1089# CONFIG_SENSORS_DS1621 is not set 1095# CONFIG_SENSORS_DS1621 is not set
1090# CONFIG_SENSORS_I5K_AMB is not set 1096# CONFIG_SENSORS_I5K_AMB is not set
@@ -1122,6 +1128,7 @@ CONFIG_HWMON=y
1122# CONFIG_SENSORS_SMSC47M192 is not set 1128# CONFIG_SENSORS_SMSC47M192 is not set
1123# CONFIG_SENSORS_SMSC47B397 is not set 1129# CONFIG_SENSORS_SMSC47B397 is not set
1124# CONFIG_SENSORS_ADS7828 is not set 1130# CONFIG_SENSORS_ADS7828 is not set
1131# CONFIG_SENSORS_AMC6821 is not set
1125# CONFIG_SENSORS_THMC50 is not set 1132# CONFIG_SENSORS_THMC50 is not set
1126# CONFIG_SENSORS_TMP401 is not set 1133# CONFIG_SENSORS_TMP401 is not set
1127# CONFIG_SENSORS_TMP421 is not set 1134# CONFIG_SENSORS_TMP421 is not set
@@ -1155,9 +1162,10 @@ CONFIG_SSB_POSSIBLE=y
1155# CONFIG_TPS65010 is not set 1162# CONFIG_TPS65010 is not set
1156# CONFIG_MFD_TMIO is not set 1163# CONFIG_MFD_TMIO is not set
1157# CONFIG_MFD_WM8400 is not set 1164# CONFIG_MFD_WM8400 is not set
1158# CONFIG_MFD_WM8350_I2C is not set 1165# CONFIG_MFD_WM8994 is not set
1159# CONFIG_MFD_PCF50633 is not set 1166# CONFIG_MFD_PCF50633 is not set
1160# CONFIG_AB3100_CORE is not set 1167# CONFIG_MFD_TIMBERDALE is not set
1168# CONFIG_LPC_SCH is not set
1161# CONFIG_REGULATOR is not set 1169# CONFIG_REGULATOR is not set
1162# CONFIG_MEDIA_SUPPORT is not set 1170# CONFIG_MEDIA_SUPPORT is not set
1163 1171
@@ -1166,6 +1174,7 @@ CONFIG_SSB_POSSIBLE=y
1166# 1174#
1167CONFIG_AGP=m 1175CONFIG_AGP=m
1168CONFIG_VGA_ARB=y 1176CONFIG_VGA_ARB=y
1177CONFIG_VGA_ARB_MAX_GPUS=16
1169CONFIG_DRM=m 1178CONFIG_DRM=m
1170# CONFIG_DRM_TDFX is not set 1179# CONFIG_DRM_TDFX is not set
1171# CONFIG_DRM_R128 is not set 1180# CONFIG_DRM_R128 is not set
@@ -1308,6 +1317,7 @@ CONFIG_MISC_FILESYSTEMS=y
1308# CONFIG_BEFS_FS is not set 1317# CONFIG_BEFS_FS is not set
1309# CONFIG_BFS_FS is not set 1318# CONFIG_BFS_FS is not set
1310# CONFIG_EFS_FS is not set 1319# CONFIG_EFS_FS is not set
1320# CONFIG_LOGFS is not set
1311CONFIG_CRAMFS=m 1321CONFIG_CRAMFS=m
1312# CONFIG_SQUASHFS is not set 1322# CONFIG_SQUASHFS is not set
1313# CONFIG_VXFS_FS is not set 1323# CONFIG_VXFS_FS is not set
@@ -1333,6 +1343,7 @@ CONFIG_SUNRPC=y
1333# CONFIG_RPCSEC_GSS_SPKM3 is not set 1343# CONFIG_RPCSEC_GSS_SPKM3 is not set
1334CONFIG_SMB_FS=m 1344CONFIG_SMB_FS=m
1335# CONFIG_SMB_NLS_DEFAULT is not set 1345# CONFIG_SMB_NLS_DEFAULT is not set
1346# CONFIG_CEPH_FS is not set
1336# CONFIG_CIFS is not set 1347# CONFIG_CIFS is not set
1337# CONFIG_NCP_FS is not set 1348# CONFIG_NCP_FS is not set
1338# CONFIG_CODA_FS is not set 1349# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index 0824b4667229..230aa2fc0629 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:33 2010 4# Mon Apr 19 23:16:57 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -315,6 +314,7 @@ CONFIG_ISA_DMA_API=y
315# Bus options 314# Bus options
316# 315#
317CONFIG_ZONE_DMA=y 316CONFIG_ZONE_DMA=y
317# CONFIG_NEED_DMA_MAP_STATE is not set
318CONFIG_PPC_INDIRECT_PCI=y 318CONFIG_PPC_INDIRECT_PCI=y
319CONFIG_FSL_SOC=y 319CONFIG_FSL_SOC=y
320CONFIG_FSL_PCI=y 320CONFIG_FSL_PCI=y
@@ -325,7 +325,6 @@ CONFIG_PCI_SYSCALL=y
325# CONFIG_PCIEPORTBUS is not set 325# CONFIG_PCIEPORTBUS is not set
326CONFIG_ARCH_SUPPORTS_MSI=y 326CONFIG_ARCH_SUPPORTS_MSI=y
327# CONFIG_PCI_MSI is not set 327# CONFIG_PCI_MSI is not set
328# CONFIG_PCI_LEGACY is not set
329# CONFIG_PCI_STUB is not set 328# CONFIG_PCI_STUB is not set
330# CONFIG_PCI_IOV is not set 329# CONFIG_PCI_IOV is not set
331# CONFIG_HAS_RAPIDIO is not set 330# CONFIG_HAS_RAPIDIO is not set
@@ -351,7 +350,6 @@ CONFIG_NET=y
351# Networking options 350# Networking options
352# 351#
353CONFIG_PACKET=y 352CONFIG_PACKET=y
354# CONFIG_PACKET_MMAP is not set
355CONFIG_UNIX=y 353CONFIG_UNIX=y
356CONFIG_XFRM=y 354CONFIG_XFRM=y
357# CONFIG_XFRM_USER is not set 355# CONFIG_XFRM_USER is not set
@@ -525,6 +523,8 @@ CONFIG_MTD_CFI_UTIL=y
525# UBI - Unsorted block images 523# UBI - Unsorted block images
526# 524#
527# CONFIG_MTD_UBI is not set 525# CONFIG_MTD_UBI is not set
526CONFIG_OF_FLATTREE=y
527CONFIG_OF_DYNAMIC=y
528CONFIG_OF_DEVICE=y 528CONFIG_OF_DEVICE=y
529CONFIG_OF_I2C=y 529CONFIG_OF_I2C=y
530CONFIG_OF_MDIO=y 530CONFIG_OF_MDIO=y
@@ -560,6 +560,7 @@ CONFIG_MISC_DEVICES=y
560# CONFIG_ENCLOSURE_SERVICES is not set 560# CONFIG_ENCLOSURE_SERVICES is not set
561# CONFIG_HP_ILO is not set 561# CONFIG_HP_ILO is not set
562# CONFIG_ISL29003 is not set 562# CONFIG_ISL29003 is not set
563# CONFIG_SENSORS_TSL2550 is not set
563# CONFIG_DS1682 is not set 564# CONFIG_DS1682 is not set
564# CONFIG_C2PORT is not set 565# CONFIG_C2PORT is not set
565 566
@@ -632,6 +633,7 @@ CONFIG_BLK_DEV_IDEDMA=y
632# 633#
633# SCSI device support 634# SCSI device support
634# 635#
636CONFIG_SCSI_MOD=y
635# CONFIG_RAID_ATTRS is not set 637# CONFIG_RAID_ATTRS is not set
636# CONFIG_SCSI is not set 638# CONFIG_SCSI is not set
637# CONFIG_SCSI_DMA is not set 639# CONFIG_SCSI_DMA is not set
@@ -704,6 +706,7 @@ CONFIG_NET_PCI=y
704# CONFIG_PCNET32 is not set 706# CONFIG_PCNET32 is not set
705# CONFIG_AMD8111_ETH is not set 707# CONFIG_AMD8111_ETH is not set
706# CONFIG_ADAPTEC_STARFIRE is not set 708# CONFIG_ADAPTEC_STARFIRE is not set
709# CONFIG_KSZ884X_PCI is not set
707# CONFIG_B44 is not set 710# CONFIG_B44 is not set
708# CONFIG_FORCEDETH is not set 711# CONFIG_FORCEDETH is not set
709CONFIG_E100=y 712CONFIG_E100=y
@@ -755,6 +758,8 @@ CONFIG_NETDEV_10000=y
755# CONFIG_CHELSIO_T1 is not set 758# CONFIG_CHELSIO_T1 is not set
756CONFIG_CHELSIO_T3_DEPENDS=y 759CONFIG_CHELSIO_T3_DEPENDS=y
757# CONFIG_CHELSIO_T3 is not set 760# CONFIG_CHELSIO_T3 is not set
761CONFIG_CHELSIO_T4_DEPENDS=y
762# CONFIG_CHELSIO_T4 is not set
758# CONFIG_ENIC is not set 763# CONFIG_ENIC is not set
759# CONFIG_IXGBE is not set 764# CONFIG_IXGBE is not set
760# CONFIG_IXGB is not set 765# CONFIG_IXGB is not set
@@ -767,6 +772,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
767# CONFIG_MLX4_CORE is not set 772# CONFIG_MLX4_CORE is not set
768# CONFIG_TEHUTI is not set 773# CONFIG_TEHUTI is not set
769# CONFIG_BNX2X is not set 774# CONFIG_BNX2X is not set
775# CONFIG_QLCNIC is not set
770# CONFIG_QLGE is not set 776# CONFIG_QLGE is not set
771# CONFIG_SFC is not set 777# CONFIG_SFC is not set
772# CONFIG_BE2NET is not set 778# CONFIG_BE2NET is not set
@@ -851,6 +857,7 @@ CONFIG_SERIAL_CORE=y
851CONFIG_SERIAL_CORE_CONSOLE=y 857CONFIG_SERIAL_CORE_CONSOLE=y
852# CONFIG_SERIAL_JSM is not set 858# CONFIG_SERIAL_JSM is not set
853# CONFIG_SERIAL_OF_PLATFORM is not set 859# CONFIG_SERIAL_OF_PLATFORM is not set
860# CONFIG_SERIAL_TIMBERDALE is not set
854# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
855CONFIG_UNIX98_PTYS=y 862CONFIG_UNIX98_PTYS=y
856# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -902,6 +909,7 @@ CONFIG_I2C_HELPER_AUTO=y
902CONFIG_I2C_MPC=y 909CONFIG_I2C_MPC=y
903# CONFIG_I2C_OCORES is not set 910# CONFIG_I2C_OCORES is not set
904# CONFIG_I2C_SIMTEC is not set 911# CONFIG_I2C_SIMTEC is not set
912# CONFIG_I2C_XILINX is not set
905 913
906# 914#
907# External I2C/SMBus adapter drivers 915# External I2C/SMBus adapter drivers
@@ -913,15 +921,9 @@ CONFIG_I2C_MPC=y
913# Other I2C/SMBus bus drivers 921# Other I2C/SMBus bus drivers
914# 922#
915# CONFIG_I2C_PCA_PLATFORM is not set 923# CONFIG_I2C_PCA_PLATFORM is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 924# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 925# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 926# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 927# CONFIG_SPI is not set
926 928
927# 929#
@@ -947,10 +949,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
947# CONFIG_SENSORS_ADM1029 is not set 949# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 950# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 951# CONFIG_SENSORS_ADM9240 is not set
952# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 953# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 954# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 955# CONFIG_SENSORS_ADT7475 is not set
956# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 957# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 958# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 959# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +990,7 @@ CONFIG_SENSORS_LM75=y
987# CONFIG_SENSORS_SMSC47M192 is not set 990# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 991# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 992# CONFIG_SENSORS_ADS7828 is not set
993# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 994# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 995# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 996# CONFIG_SENSORS_TMP421 is not set
@@ -1015,18 +1019,21 @@ CONFIG_SSB_POSSIBLE=y
1015# Multifunction device drivers 1019# Multifunction device drivers
1016# 1020#
1017# CONFIG_MFD_CORE is not set 1021# CONFIG_MFD_CORE is not set
1022# CONFIG_MFD_88PM860X is not set
1018# CONFIG_MFD_SM501 is not set 1023# CONFIG_MFD_SM501 is not set
1019# CONFIG_HTC_PASIC3 is not set 1024# CONFIG_HTC_PASIC3 is not set
1020# CONFIG_TWL4030_CORE is not set 1025# CONFIG_TWL4030_CORE is not set
1021# CONFIG_MFD_TMIO is not set 1026# CONFIG_MFD_TMIO is not set
1022# CONFIG_PMIC_DA903X is not set 1027# CONFIG_PMIC_DA903X is not set
1023# CONFIG_PMIC_ADP5520 is not set 1028# CONFIG_PMIC_ADP5520 is not set
1029# CONFIG_MFD_MAX8925 is not set
1024# CONFIG_MFD_WM8400 is not set 1030# CONFIG_MFD_WM8400 is not set
1025# CONFIG_MFD_WM831X is not set 1031# CONFIG_MFD_WM831X is not set
1026# CONFIG_MFD_WM8350_I2C is not set 1032# CONFIG_MFD_WM8350_I2C is not set
1033# CONFIG_MFD_WM8994 is not set
1027# CONFIG_MFD_PCF50633 is not set 1034# CONFIG_MFD_PCF50633 is not set
1028# CONFIG_AB3100_CORE is not set 1035# CONFIG_AB3100_CORE is not set
1029# CONFIG_MFD_88PM8607 is not set 1036# CONFIG_LPC_SCH is not set
1030# CONFIG_REGULATOR is not set 1037# CONFIG_REGULATOR is not set
1031# CONFIG_MEDIA_SUPPORT is not set 1038# CONFIG_MEDIA_SUPPORT is not set
1032 1039
@@ -1035,6 +1042,7 @@ CONFIG_SSB_POSSIBLE=y
1035# 1042#
1036# CONFIG_AGP is not set 1043# CONFIG_AGP is not set
1037CONFIG_VGA_ARB=y 1044CONFIG_VGA_ARB=y
1045CONFIG_VGA_ARB_MAX_GPUS=16
1038# CONFIG_DRM is not set 1046# CONFIG_DRM is not set
1039# CONFIG_VGASTATE is not set 1047# CONFIG_VGASTATE is not set
1040# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1048# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1172,6 +1180,7 @@ CONFIG_JFFS2_ZLIB=y
1172# CONFIG_JFFS2_LZO is not set 1180# CONFIG_JFFS2_LZO is not set
1173CONFIG_JFFS2_RTIME=y 1181CONFIG_JFFS2_RTIME=y
1174# CONFIG_JFFS2_RUBIN is not set 1182# CONFIG_JFFS2_RUBIN is not set
1183# CONFIG_LOGFS is not set
1175CONFIG_CRAMFS=y 1184CONFIG_CRAMFS=y
1176# CONFIG_SQUASHFS is not set 1185# CONFIG_SQUASHFS is not set
1177# CONFIG_VXFS_FS is not set 1186# CONFIG_VXFS_FS is not set
@@ -1194,6 +1203,7 @@ CONFIG_SUNRPC=y
1194# CONFIG_RPCSEC_GSS_KRB5 is not set 1203# CONFIG_RPCSEC_GSS_KRB5 is not set
1195# CONFIG_RPCSEC_GSS_SPKM3 is not set 1204# CONFIG_RPCSEC_GSS_SPKM3 is not set
1196# CONFIG_SMB_FS is not set 1205# CONFIG_SMB_FS is not set
1206# CONFIG_CEPH_FS is not set
1197# CONFIG_CIFS is not set 1207# CONFIG_CIFS is not set
1198# CONFIG_NCP_FS is not set 1208# CONFIG_NCP_FS is not set
1199# CONFIG_CODA_FS is not set 1209# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index 2137be4100ed..dbe04b981b87 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:34 2010 4# Mon Apr 19 23:16:58 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index 5cc89aac3fec..845efa79dd20 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:35 2010 4# Mon Apr 19 23:16:59 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -324,6 +323,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 323# Bus options
325# 324#
326CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
329CONFIG_FSL_PCI=y 329CONFIG_FSL_PCI=y
@@ -339,7 +339,6 @@ CONFIG_PCIEAER=y
339# CONFIG_PCIEASPM is not set 339# CONFIG_PCIEASPM is not set
340CONFIG_ARCH_SUPPORTS_MSI=y 340CONFIG_ARCH_SUPPORTS_MSI=y
341# CONFIG_PCI_MSI is not set 341# CONFIG_PCI_MSI is not set
342# CONFIG_PCI_LEGACY is not set
343# CONFIG_PCI_DEBUG is not set 342# CONFIG_PCI_DEBUG is not set
344# CONFIG_PCI_STUB is not set 343# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 344# CONFIG_PCI_IOV is not set
@@ -368,7 +367,6 @@ CONFIG_NET=y
368# Networking options 367# Networking options
369# 368#
370CONFIG_PACKET=y 369CONFIG_PACKET=y
371# CONFIG_PACKET_MMAP is not set
372CONFIG_UNIX=y 370CONFIG_UNIX=y
373CONFIG_XFRM=y 371CONFIG_XFRM=y
374CONFIG_XFRM_USER=y 372CONFIG_XFRM_USER=y
@@ -559,6 +557,8 @@ CONFIG_MTD_NAND_FSL_UPM=y
559# UBI - Unsorted block images 557# UBI - Unsorted block images
560# 558#
561# CONFIG_MTD_UBI is not set 559# CONFIG_MTD_UBI is not set
560CONFIG_OF_FLATTREE=y
561CONFIG_OF_DYNAMIC=y
562CONFIG_OF_DEVICE=y 562CONFIG_OF_DEVICE=y
563CONFIG_OF_I2C=y 563CONFIG_OF_I2C=y
564CONFIG_OF_MDIO=y 564CONFIG_OF_MDIO=y
@@ -594,6 +594,7 @@ CONFIG_MISC_DEVICES=y
594# CONFIG_ENCLOSURE_SERVICES is not set 594# CONFIG_ENCLOSURE_SERVICES is not set
595# CONFIG_HP_ILO is not set 595# CONFIG_HP_ILO is not set
596# CONFIG_ISL29003 is not set 596# CONFIG_ISL29003 is not set
597# CONFIG_SENSORS_TSL2550 is not set
597# CONFIG_DS1682 is not set 598# CONFIG_DS1682 is not set
598# CONFIG_C2PORT is not set 599# CONFIG_C2PORT is not set
599 600
@@ -611,6 +612,7 @@ CONFIG_HAVE_IDE=y
611# 612#
612# SCSI device support 613# SCSI device support
613# 614#
615CONFIG_SCSI_MOD=y
614# CONFIG_RAID_ATTRS is not set 616# CONFIG_RAID_ATTRS is not set
615# CONFIG_SCSI is not set 617# CONFIG_SCSI is not set
616# CONFIG_SCSI_DMA is not set 618# CONFIG_SCSI_DMA is not set
@@ -716,6 +718,8 @@ CONFIG_NETDEV_10000=y
716# CONFIG_CHELSIO_T1 is not set 718# CONFIG_CHELSIO_T1 is not set
717CONFIG_CHELSIO_T3_DEPENDS=y 719CONFIG_CHELSIO_T3_DEPENDS=y
718# CONFIG_CHELSIO_T3 is not set 720# CONFIG_CHELSIO_T3 is not set
721CONFIG_CHELSIO_T4_DEPENDS=y
722# CONFIG_CHELSIO_T4 is not set
719# CONFIG_ENIC is not set 723# CONFIG_ENIC is not set
720# CONFIG_IXGBE is not set 724# CONFIG_IXGBE is not set
721# CONFIG_IXGB is not set 725# CONFIG_IXGB is not set
@@ -728,6 +732,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
728# CONFIG_MLX4_CORE is not set 732# CONFIG_MLX4_CORE is not set
729# CONFIG_TEHUTI is not set 733# CONFIG_TEHUTI is not set
730# CONFIG_BNX2X is not set 734# CONFIG_BNX2X is not set
735# CONFIG_QLCNIC is not set
731# CONFIG_QLGE is not set 736# CONFIG_QLGE is not set
732# CONFIG_SFC is not set 737# CONFIG_SFC is not set
733# CONFIG_BE2NET is not set 738# CONFIG_BE2NET is not set
@@ -812,6 +817,7 @@ CONFIG_SERIAL_CORE=y
812CONFIG_SERIAL_CORE_CONSOLE=y 817CONFIG_SERIAL_CORE_CONSOLE=y
813# CONFIG_SERIAL_JSM is not set 818# CONFIG_SERIAL_JSM is not set
814# CONFIG_SERIAL_OF_PLATFORM is not set 819# CONFIG_SERIAL_OF_PLATFORM is not set
820# CONFIG_SERIAL_TIMBERDALE is not set
815# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 821# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
816CONFIG_UNIX98_PTYS=y 822CONFIG_UNIX98_PTYS=y
817# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 823# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -860,6 +866,7 @@ CONFIG_I2C_HELPER_AUTO=y
860CONFIG_I2C_MPC=y 866CONFIG_I2C_MPC=y
861# CONFIG_I2C_OCORES is not set 867# CONFIG_I2C_OCORES is not set
862# CONFIG_I2C_SIMTEC is not set 868# CONFIG_I2C_SIMTEC is not set
869# CONFIG_I2C_XILINX is not set
863 870
864# 871#
865# External I2C/SMBus adapter drivers 872# External I2C/SMBus adapter drivers
@@ -872,15 +879,9 @@ CONFIG_I2C_MPC=y
872# 879#
873# CONFIG_I2C_PCA_PLATFORM is not set 880# CONFIG_I2C_PCA_PLATFORM is not set
874# CONFIG_I2C_STUB is not set 881# CONFIG_I2C_STUB is not set
875
876#
877# Miscellaneous I2C Chip support
878#
879# CONFIG_SENSORS_TSL2550 is not set
880# CONFIG_I2C_DEBUG_CORE is not set 882# CONFIG_I2C_DEBUG_CORE is not set
881# CONFIG_I2C_DEBUG_ALGO is not set 883# CONFIG_I2C_DEBUG_ALGO is not set
882# CONFIG_I2C_DEBUG_BUS is not set 884# CONFIG_I2C_DEBUG_BUS is not set
883# CONFIG_I2C_DEBUG_CHIP is not set
884# CONFIG_SPI is not set 885# CONFIG_SPI is not set
885 886
886# 887#
@@ -906,10 +907,11 @@ CONFIG_HWMON=y
906# CONFIG_SENSORS_ADM1029 is not set 907# CONFIG_SENSORS_ADM1029 is not set
907# CONFIG_SENSORS_ADM1031 is not set 908# CONFIG_SENSORS_ADM1031 is not set
908# CONFIG_SENSORS_ADM9240 is not set 909# CONFIG_SENSORS_ADM9240 is not set
910# CONFIG_SENSORS_ADT7411 is not set
909# CONFIG_SENSORS_ADT7462 is not set 911# CONFIG_SENSORS_ADT7462 is not set
910# CONFIG_SENSORS_ADT7470 is not set 912# CONFIG_SENSORS_ADT7470 is not set
911# CONFIG_SENSORS_ADT7473 is not set
912# CONFIG_SENSORS_ADT7475 is not set 913# CONFIG_SENSORS_ADT7475 is not set
914# CONFIG_SENSORS_ASC7621 is not set
913# CONFIG_SENSORS_ATXP1 is not set 915# CONFIG_SENSORS_ATXP1 is not set
914# CONFIG_SENSORS_DS1621 is not set 916# CONFIG_SENSORS_DS1621 is not set
915# CONFIG_SENSORS_I5K_AMB is not set 917# CONFIG_SENSORS_I5K_AMB is not set
@@ -946,6 +948,7 @@ CONFIG_SENSORS_LM75=y
946# CONFIG_SENSORS_SMSC47M192 is not set 948# CONFIG_SENSORS_SMSC47M192 is not set
947# CONFIG_SENSORS_SMSC47B397 is not set 949# CONFIG_SENSORS_SMSC47B397 is not set
948# CONFIG_SENSORS_ADS7828 is not set 950# CONFIG_SENSORS_ADS7828 is not set
951# CONFIG_SENSORS_AMC6821 is not set
949# CONFIG_SENSORS_THMC50 is not set 952# CONFIG_SENSORS_THMC50 is not set
950# CONFIG_SENSORS_TMP401 is not set 953# CONFIG_SENSORS_TMP401 is not set
951# CONFIG_SENSORS_TMP421 is not set 954# CONFIG_SENSORS_TMP421 is not set
@@ -974,18 +977,21 @@ CONFIG_SSB_POSSIBLE=y
974# Multifunction device drivers 977# Multifunction device drivers
975# 978#
976# CONFIG_MFD_CORE is not set 979# CONFIG_MFD_CORE is not set
980# CONFIG_MFD_88PM860X is not set
977# CONFIG_MFD_SM501 is not set 981# CONFIG_MFD_SM501 is not set
978# CONFIG_HTC_PASIC3 is not set 982# CONFIG_HTC_PASIC3 is not set
979# CONFIG_TWL4030_CORE is not set 983# CONFIG_TWL4030_CORE is not set
980# CONFIG_MFD_TMIO is not set 984# CONFIG_MFD_TMIO is not set
981# CONFIG_PMIC_DA903X is not set 985# CONFIG_PMIC_DA903X is not set
982# CONFIG_PMIC_ADP5520 is not set 986# CONFIG_PMIC_ADP5520 is not set
987# CONFIG_MFD_MAX8925 is not set
983# CONFIG_MFD_WM8400 is not set 988# CONFIG_MFD_WM8400 is not set
984# CONFIG_MFD_WM831X is not set 989# CONFIG_MFD_WM831X is not set
985# CONFIG_MFD_WM8350_I2C is not set 990# CONFIG_MFD_WM8350_I2C is not set
991# CONFIG_MFD_WM8994 is not set
986# CONFIG_MFD_PCF50633 is not set 992# CONFIG_MFD_PCF50633 is not set
987# CONFIG_AB3100_CORE is not set 993# CONFIG_AB3100_CORE is not set
988# CONFIG_MFD_88PM8607 is not set 994# CONFIG_LPC_SCH is not set
989# CONFIG_REGULATOR is not set 995# CONFIG_REGULATOR is not set
990# CONFIG_MEDIA_SUPPORT is not set 996# CONFIG_MEDIA_SUPPORT is not set
991 997
@@ -994,6 +1000,7 @@ CONFIG_SSB_POSSIBLE=y
994# 1000#
995# CONFIG_AGP is not set 1001# CONFIG_AGP is not set
996CONFIG_VGA_ARB=y 1002CONFIG_VGA_ARB=y
1003CONFIG_VGA_ARB_MAX_GPUS=16
997# CONFIG_DRM is not set 1004# CONFIG_DRM is not set
998# CONFIG_VGASTATE is not set 1005# CONFIG_VGASTATE is not set
999CONFIG_VIDEO_OUTPUT_CONTROL=y 1006CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1162,6 +1169,7 @@ CONFIG_JFFS2_ZLIB=y
1162# CONFIG_JFFS2_LZO is not set 1169# CONFIG_JFFS2_LZO is not set
1163CONFIG_JFFS2_RTIME=y 1170CONFIG_JFFS2_RTIME=y
1164# CONFIG_JFFS2_RUBIN is not set 1171# CONFIG_JFFS2_RUBIN is not set
1172# CONFIG_LOGFS is not set
1165# CONFIG_CRAMFS is not set 1173# CONFIG_CRAMFS is not set
1166# CONFIG_SQUASHFS is not set 1174# CONFIG_SQUASHFS is not set
1167# CONFIG_VXFS_FS is not set 1175# CONFIG_VXFS_FS is not set
@@ -1184,6 +1192,7 @@ CONFIG_SUNRPC=y
1184# CONFIG_RPCSEC_GSS_KRB5 is not set 1192# CONFIG_RPCSEC_GSS_KRB5 is not set
1185# CONFIG_RPCSEC_GSS_SPKM3 is not set 1193# CONFIG_RPCSEC_GSS_SPKM3 is not set
1186# CONFIG_SMB_FS is not set 1194# CONFIG_SMB_FS is not set
1195# CONFIG_CEPH_FS is not set
1187# CONFIG_CIFS is not set 1196# CONFIG_CIFS is not set
1188# CONFIG_NCP_FS is not set 1197# CONFIG_NCP_FS is not set
1189# CONFIG_CODA_FS is not set 1198# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index e7b9148e58cf..b958136a12f0 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:36 2010 4# Mon Apr 19 23:17:00 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index a998e401bbfc..008bc9754927 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:36 2010 4# Mon Apr 19 23:17:01 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig b/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig
index fc656af04ea1..2cf80dba0286 100644
--- a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig
+++ b/arch/powerpc/configs/85xx/xes_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:37 2010 4# Mon Apr 19 23:17:01 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -69,6 +69,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
69# CONFIG_PPC_DCR_NATIVE is not set 69# CONFIG_PPC_DCR_NATIVE is not set
70# CONFIG_PPC_DCR_MMIO is not set 70# CONFIG_PPC_DCR_MMIO is not set
71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
72CONFIG_PPC_ADV_DEBUG_REGS=y
73CONFIG_PPC_ADV_DEBUG_IACS=2
74CONFIG_PPC_ADV_DEBUG_DACS=2
75CONFIG_PPC_ADV_DEBUG_DVCS=0
72CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 76CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
73CONFIG_CONSTRUCTORS=y 77CONFIG_CONSTRUCTORS=y
74 78
@@ -104,10 +108,8 @@ CONFIG_RCU_FANOUT=32
104CONFIG_IKCONFIG=y 108CONFIG_IKCONFIG=y
105CONFIG_IKCONFIG_PROC=y 109CONFIG_IKCONFIG_PROC=y
106CONFIG_LOG_BUF_SHIFT=14 110CONFIG_LOG_BUF_SHIFT=14
107# CONFIG_GROUP_SCHED is not set
108# CONFIG_CGROUPS is not set 111# CONFIG_CGROUPS is not set
109CONFIG_SYSFS_DEPRECATED=y 112# CONFIG_SYSFS_DEPRECATED_V2 is not set
110CONFIG_SYSFS_DEPRECATED_V2=y
111# CONFIG_RELAY is not set 113# CONFIG_RELAY is not set
112# CONFIG_NAMESPACES is not set 114# CONFIG_NAMESPACES is not set
113CONFIG_BLK_DEV_INITRD=y 115CONFIG_BLK_DEV_INITRD=y
@@ -115,6 +117,7 @@ CONFIG_INITRAMFS_SOURCE=""
115CONFIG_RD_GZIP=y 117CONFIG_RD_GZIP=y
116# CONFIG_RD_BZIP2 is not set 118# CONFIG_RD_BZIP2 is not set
117# CONFIG_RD_LZMA is not set 119# CONFIG_RD_LZMA is not set
120# CONFIG_RD_LZO is not set
118# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 121# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
119CONFIG_SYSCTL=y 122CONFIG_SYSCTL=y
120CONFIG_ANON_INODES=y 123CONFIG_ANON_INODES=y
@@ -328,6 +331,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 331# Bus options
329# 332#
330CONFIG_ZONE_DMA=y 333CONFIG_ZONE_DMA=y
334# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_PPC_INDIRECT_PCI=y 335CONFIG_PPC_INDIRECT_PCI=y
332CONFIG_FSL_SOC=y 336CONFIG_FSL_SOC=y
333CONFIG_FSL_PCI=y 337CONFIG_FSL_PCI=y
@@ -343,7 +347,6 @@ CONFIG_PCIEAER=y
343# CONFIG_PCIEASPM is not set 347# CONFIG_PCIEASPM is not set
344CONFIG_ARCH_SUPPORTS_MSI=y 348CONFIG_ARCH_SUPPORTS_MSI=y
345CONFIG_PCI_MSI=y 349CONFIG_PCI_MSI=y
346CONFIG_PCI_LEGACY=y
347# CONFIG_PCI_DEBUG is not set 350# CONFIG_PCI_DEBUG is not set
348# CONFIG_PCI_STUB is not set 351# CONFIG_PCI_STUB is not set
349# CONFIG_PCI_IOV is not set 352# CONFIG_PCI_IOV is not set
@@ -375,7 +378,6 @@ CONFIG_NET=y
375# Networking options 378# Networking options
376# 379#
377CONFIG_PACKET=y 380CONFIG_PACKET=y
378# CONFIG_PACKET_MMAP is not set
379CONFIG_UNIX=y 381CONFIG_UNIX=y
380CONFIG_XFRM=y 382CONFIG_XFRM=y
381CONFIG_XFRM_USER=y 383CONFIG_XFRM_USER=y
@@ -600,6 +602,8 @@ CONFIG_MTD_NAND_FSL_UPM=y
600# UBI - Unsorted block images 602# UBI - Unsorted block images
601# 603#
602# CONFIG_MTD_UBI is not set 604# CONFIG_MTD_UBI is not set
605CONFIG_OF_FLATTREE=y
606CONFIG_OF_DYNAMIC=y
603CONFIG_OF_DEVICE=y 607CONFIG_OF_DEVICE=y
604CONFIG_OF_GPIO=y 608CONFIG_OF_GPIO=y
605CONFIG_OF_I2C=y 609CONFIG_OF_I2C=y
@@ -637,6 +641,7 @@ CONFIG_MISC_DEVICES=y
637# CONFIG_ENCLOSURE_SERVICES is not set 641# CONFIG_ENCLOSURE_SERVICES is not set
638# CONFIG_HP_ILO is not set 642# CONFIG_HP_ILO is not set
639# CONFIG_ISL29003 is not set 643# CONFIG_ISL29003 is not set
644# CONFIG_SENSORS_TSL2550 is not set
640# CONFIG_DS1682 is not set 645# CONFIG_DS1682 is not set
641# CONFIG_C2PORT is not set 646# CONFIG_C2PORT is not set
642 647
@@ -654,6 +659,7 @@ CONFIG_HAVE_IDE=y
654# 659#
655# SCSI device support 660# SCSI device support
656# 661#
662CONFIG_SCSI_MOD=y
657# CONFIG_RAID_ATTRS is not set 663# CONFIG_RAID_ATTRS is not set
658CONFIG_SCSI=y 664CONFIG_SCSI=y
659CONFIG_SCSI_DMA=y 665CONFIG_SCSI_DMA=y
@@ -777,6 +783,7 @@ CONFIG_PATA_ALI=y
777# CONFIG_PATA_IT821X is not set 783# CONFIG_PATA_IT821X is not set
778# CONFIG_PATA_IT8213 is not set 784# CONFIG_PATA_IT8213 is not set
779# CONFIG_PATA_JMICRON is not set 785# CONFIG_PATA_JMICRON is not set
786# CONFIG_PATA_LEGACY is not set
780# CONFIG_PATA_TRIFLEX is not set 787# CONFIG_PATA_TRIFLEX is not set
781# CONFIG_PATA_MARVELL is not set 788# CONFIG_PATA_MARVELL is not set
782# CONFIG_PATA_MPIIX is not set 789# CONFIG_PATA_MPIIX is not set
@@ -1004,6 +1011,7 @@ CONFIG_SERIAL_CORE=y
1004CONFIG_SERIAL_CORE_CONSOLE=y 1011CONFIG_SERIAL_CORE_CONSOLE=y
1005# CONFIG_SERIAL_JSM is not set 1012# CONFIG_SERIAL_JSM is not set
1006# CONFIG_SERIAL_OF_PLATFORM is not set 1013# CONFIG_SERIAL_OF_PLATFORM is not set
1014# CONFIG_SERIAL_TIMBERDALE is not set
1007# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1015# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1008CONFIG_UNIX98_PTYS=y 1016CONFIG_UNIX98_PTYS=y
1009# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1017# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1053,6 +1061,7 @@ CONFIG_I2C_HELPER_AUTO=y
1053CONFIG_I2C_MPC=y 1061CONFIG_I2C_MPC=y
1054# CONFIG_I2C_OCORES is not set 1062# CONFIG_I2C_OCORES is not set
1055# CONFIG_I2C_SIMTEC is not set 1063# CONFIG_I2C_SIMTEC is not set
1064# CONFIG_I2C_XILINX is not set
1056 1065
1057# 1066#
1058# External I2C/SMBus adapter drivers 1067# External I2C/SMBus adapter drivers
@@ -1066,15 +1075,9 @@ CONFIG_I2C_MPC=y
1066# 1075#
1067# CONFIG_I2C_PCA_PLATFORM is not set 1076# CONFIG_I2C_PCA_PLATFORM is not set
1068# CONFIG_I2C_STUB is not set 1077# CONFIG_I2C_STUB is not set
1069
1070#
1071# Miscellaneous I2C Chip support
1072#
1073# CONFIG_SENSORS_TSL2550 is not set
1074# CONFIG_I2C_DEBUG_CORE is not set 1078# CONFIG_I2C_DEBUG_CORE is not set
1075# CONFIG_I2C_DEBUG_ALGO is not set 1079# CONFIG_I2C_DEBUG_ALGO is not set
1076# CONFIG_I2C_DEBUG_BUS is not set 1080# CONFIG_I2C_DEBUG_BUS is not set
1077# CONFIG_I2C_DEBUG_CHIP is not set
1078# CONFIG_SPI is not set 1081# CONFIG_SPI is not set
1079 1082
1080# 1083#
@@ -1090,14 +1093,19 @@ CONFIG_GPIO_SYSFS=y
1090# 1093#
1091# Memory mapped GPIO expanders: 1094# Memory mapped GPIO expanders:
1092# 1095#
1096# CONFIG_GPIO_IT8761E is not set
1093# CONFIG_GPIO_XILINX is not set 1097# CONFIG_GPIO_XILINX is not set
1098# CONFIG_GPIO_SCH is not set
1094 1099
1095# 1100#
1096# I2C GPIO expanders: 1101# I2C GPIO expanders:
1097# 1102#
1103# CONFIG_GPIO_MAX7300 is not set
1098# CONFIG_GPIO_MAX732X is not set 1104# CONFIG_GPIO_MAX732X is not set
1099CONFIG_GPIO_PCA953X=y 1105CONFIG_GPIO_PCA953X=y
1106# CONFIG_GPIO_PCA953X_IRQ is not set
1100# CONFIG_GPIO_PCF857X is not set 1107# CONFIG_GPIO_PCF857X is not set
1108# CONFIG_GPIO_ADP5588 is not set
1101 1109
1102# 1110#
1103# PCI GPIO expanders: 1111# PCI GPIO expanders:
@@ -1130,10 +1138,11 @@ CONFIG_HWMON=y
1130# CONFIG_SENSORS_ADM1029 is not set 1138# CONFIG_SENSORS_ADM1029 is not set
1131# CONFIG_SENSORS_ADM1031 is not set 1139# CONFIG_SENSORS_ADM1031 is not set
1132# CONFIG_SENSORS_ADM9240 is not set 1140# CONFIG_SENSORS_ADM9240 is not set
1141# CONFIG_SENSORS_ADT7411 is not set
1133# CONFIG_SENSORS_ADT7462 is not set 1142# CONFIG_SENSORS_ADT7462 is not set
1134# CONFIG_SENSORS_ADT7470 is not set 1143# CONFIG_SENSORS_ADT7470 is not set
1135# CONFIG_SENSORS_ADT7473 is not set
1136# CONFIG_SENSORS_ADT7475 is not set 1144# CONFIG_SENSORS_ADT7475 is not set
1145# CONFIG_SENSORS_ASC7621 is not set
1137# CONFIG_SENSORS_ATXP1 is not set 1146# CONFIG_SENSORS_ATXP1 is not set
1138CONFIG_SENSORS_DS1621=y 1147CONFIG_SENSORS_DS1621=y
1139# CONFIG_SENSORS_I5K_AMB is not set 1148# CONFIG_SENSORS_I5K_AMB is not set
@@ -1171,6 +1180,7 @@ CONFIG_SENSORS_LM90=y
1171# CONFIG_SENSORS_SMSC47M192 is not set 1180# CONFIG_SENSORS_SMSC47M192 is not set
1172# CONFIG_SENSORS_SMSC47B397 is not set 1181# CONFIG_SENSORS_SMSC47B397 is not set
1173# CONFIG_SENSORS_ADS7828 is not set 1182# CONFIG_SENSORS_ADS7828 is not set
1183# CONFIG_SENSORS_AMC6821 is not set
1174# CONFIG_SENSORS_THMC50 is not set 1184# CONFIG_SENSORS_THMC50 is not set
1175# CONFIG_SENSORS_TMP401 is not set 1185# CONFIG_SENSORS_TMP401 is not set
1176# CONFIG_SENSORS_TMP421 is not set 1186# CONFIG_SENSORS_TMP421 is not set
@@ -1218,19 +1228,24 @@ CONFIG_SSB_POSSIBLE=y
1218# Multifunction device drivers 1228# Multifunction device drivers
1219# 1229#
1220# CONFIG_MFD_CORE is not set 1230# CONFIG_MFD_CORE is not set
1231# CONFIG_MFD_88PM860X is not set
1221# CONFIG_MFD_SM501 is not set 1232# CONFIG_MFD_SM501 is not set
1222# CONFIG_HTC_PASIC3 is not set 1233# CONFIG_HTC_PASIC3 is not set
1234# CONFIG_HTC_I2CPLD is not set
1223# CONFIG_TPS65010 is not set 1235# CONFIG_TPS65010 is not set
1224# CONFIG_TWL4030_CORE is not set 1236# CONFIG_TWL4030_CORE is not set
1225# CONFIG_MFD_TMIO is not set 1237# CONFIG_MFD_TMIO is not set
1226# CONFIG_PMIC_DA903X is not set 1238# CONFIG_PMIC_DA903X is not set
1227# CONFIG_PMIC_ADP5520 is not set 1239# CONFIG_PMIC_ADP5520 is not set
1240# CONFIG_MFD_MAX8925 is not set
1228# CONFIG_MFD_WM8400 is not set 1241# CONFIG_MFD_WM8400 is not set
1229# CONFIG_MFD_WM831X is not set 1242# CONFIG_MFD_WM831X is not set
1230# CONFIG_MFD_WM8350_I2C is not set 1243# CONFIG_MFD_WM8350_I2C is not set
1244# CONFIG_MFD_WM8994 is not set
1231# CONFIG_MFD_PCF50633 is not set 1245# CONFIG_MFD_PCF50633 is not set
1232# CONFIG_AB3100_CORE is not set 1246# CONFIG_AB3100_CORE is not set
1233# CONFIG_MFD_88PM8607 is not set 1247# CONFIG_MFD_TIMBERDALE is not set
1248# CONFIG_LPC_SCH is not set
1234# CONFIG_REGULATOR is not set 1249# CONFIG_REGULATOR is not set
1235# CONFIG_MEDIA_SUPPORT is not set 1250# CONFIG_MEDIA_SUPPORT is not set
1236 1251
@@ -1239,6 +1254,7 @@ CONFIG_SSB_POSSIBLE=y
1239# 1254#
1240# CONFIG_AGP is not set 1255# CONFIG_AGP is not set
1241CONFIG_VGA_ARB=y 1256CONFIG_VGA_ARB=y
1257CONFIG_VGA_ARB_MAX_GPUS=16
1242# CONFIG_DRM is not set 1258# CONFIG_DRM is not set
1243# CONFIG_VGASTATE is not set 1259# CONFIG_VGASTATE is not set
1244CONFIG_VIDEO_OUTPUT_CONTROL=y 1260CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1271,6 +1287,7 @@ CONFIG_USB_HID=y
1271# 1287#
1272# Special HID drivers 1288# Special HID drivers
1273# 1289#
1290# CONFIG_HID_3M_PCT is not set
1274# CONFIG_HID_A4TECH is not set 1291# CONFIG_HID_A4TECH is not set
1275# CONFIG_HID_APPLE is not set 1292# CONFIG_HID_APPLE is not set
1276# CONFIG_HID_BELKIN is not set 1293# CONFIG_HID_BELKIN is not set
@@ -1285,12 +1302,16 @@ CONFIG_USB_HID=y
1285# CONFIG_HID_KENSINGTON is not set 1302# CONFIG_HID_KENSINGTON is not set
1286# CONFIG_HID_LOGITECH is not set 1303# CONFIG_HID_LOGITECH is not set
1287# CONFIG_HID_MICROSOFT is not set 1304# CONFIG_HID_MICROSOFT is not set
1305# CONFIG_HID_MOSART is not set
1288# CONFIG_HID_MONTEREY is not set 1306# CONFIG_HID_MONTEREY is not set
1289# CONFIG_HID_NTRIG is not set 1307# CONFIG_HID_NTRIG is not set
1308# CONFIG_HID_ORTEK is not set
1290# CONFIG_HID_PANTHERLORD is not set 1309# CONFIG_HID_PANTHERLORD is not set
1291# CONFIG_HID_PETALYNX is not set 1310# CONFIG_HID_PETALYNX is not set
1311# CONFIG_HID_QUANTA is not set
1292# CONFIG_HID_SAMSUNG is not set 1312# CONFIG_HID_SAMSUNG is not set
1293# CONFIG_HID_SONY is not set 1313# CONFIG_HID_SONY is not set
1314# CONFIG_HID_STANTUM is not set
1294# CONFIG_HID_SUNPLUS is not set 1315# CONFIG_HID_SUNPLUS is not set
1295# CONFIG_HID_GREENASIA is not set 1316# CONFIG_HID_GREENASIA is not set
1296# CONFIG_HID_SMARTJOYPLUS is not set 1317# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1386,7 +1407,6 @@ CONFIG_USB_STORAGE=y
1386# CONFIG_USB_RIO500 is not set 1407# CONFIG_USB_RIO500 is not set
1387# CONFIG_USB_LEGOTOWER is not set 1408# CONFIG_USB_LEGOTOWER is not set
1388# CONFIG_USB_LCD is not set 1409# CONFIG_USB_LCD is not set
1389# CONFIG_USB_BERRY_CHARGE is not set
1390# CONFIG_USB_LED is not set 1410# CONFIG_USB_LED is not set
1391# CONFIG_USB_CYPRESS_CY7C63 is not set 1411# CONFIG_USB_CYPRESS_CY7C63 is not set
1392# CONFIG_USB_CYTHERM is not set 1412# CONFIG_USB_CYTHERM is not set
@@ -1398,7 +1418,6 @@ CONFIG_USB_STORAGE=y
1398# CONFIG_USB_IOWARRIOR is not set 1418# CONFIG_USB_IOWARRIOR is not set
1399# CONFIG_USB_TEST is not set 1419# CONFIG_USB_TEST is not set
1400# CONFIG_USB_ISIGHTFW is not set 1420# CONFIG_USB_ISIGHTFW is not set
1401# CONFIG_USB_VST is not set
1402# CONFIG_USB_GADGET is not set 1421# CONFIG_USB_GADGET is not set
1403 1422
1404# 1423#
@@ -1423,11 +1442,11 @@ CONFIG_LEDS_GPIO_OF=y
1423CONFIG_LEDS_PCA955X=y 1442CONFIG_LEDS_PCA955X=y
1424# CONFIG_LEDS_BD2802 is not set 1443# CONFIG_LEDS_BD2802 is not set
1425# CONFIG_LEDS_LT3593 is not set 1444# CONFIG_LEDS_LT3593 is not set
1445CONFIG_LEDS_TRIGGERS=y
1426 1446
1427# 1447#
1428# LED Triggers 1448# LED Triggers
1429# 1449#
1430CONFIG_LEDS_TRIGGERS=y
1431CONFIG_LEDS_TRIGGER_TIMER=y 1450CONFIG_LEDS_TRIGGER_TIMER=y
1432CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1451CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1433# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set 1452# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
@@ -1506,6 +1525,7 @@ CONFIG_RTC_DRV_CMOS=y
1506# 1525#
1507# CONFIG_RTC_DRV_GENERIC is not set 1526# CONFIG_RTC_DRV_GENERIC is not set
1508CONFIG_DMADEVICES=y 1527CONFIG_DMADEVICES=y
1528# CONFIG_DMADEVICES_DEBUG is not set
1509 1529
1510# 1530#
1511# DMA Devices 1531# DMA Devices
@@ -1614,6 +1634,7 @@ CONFIG_JFFS2_ZLIB=y
1614# CONFIG_JFFS2_LZO is not set 1634# CONFIG_JFFS2_LZO is not set
1615CONFIG_JFFS2_RTIME=y 1635CONFIG_JFFS2_RTIME=y
1616# CONFIG_JFFS2_RUBIN is not set 1636# CONFIG_JFFS2_RUBIN is not set
1637# CONFIG_LOGFS is not set
1617# CONFIG_CRAMFS is not set 1638# CONFIG_CRAMFS is not set
1618# CONFIG_SQUASHFS is not set 1639# CONFIG_SQUASHFS is not set
1619# CONFIG_VXFS_FS is not set 1640# CONFIG_VXFS_FS is not set
@@ -1641,6 +1662,7 @@ CONFIG_SUNRPC=y
1641# CONFIG_RPCSEC_GSS_KRB5 is not set 1662# CONFIG_RPCSEC_GSS_KRB5 is not set
1642# CONFIG_RPCSEC_GSS_SPKM3 is not set 1663# CONFIG_RPCSEC_GSS_SPKM3 is not set
1643# CONFIG_SMB_FS is not set 1664# CONFIG_SMB_FS is not set
1665# CONFIG_CEPH_FS is not set
1644# CONFIG_CIFS is not set 1666# CONFIG_CIFS is not set
1645# CONFIG_NCP_FS is not set 1667# CONFIG_NCP_FS is not set
1646# CONFIG_CODA_FS is not set 1668# CONFIG_CODA_FS is not set
@@ -1851,6 +1873,7 @@ CONFIG_CRYPTO_MANAGER=y
1851CONFIG_CRYPTO_MANAGER2=y 1873CONFIG_CRYPTO_MANAGER2=y
1852# CONFIG_CRYPTO_GF128MUL is not set 1874# CONFIG_CRYPTO_GF128MUL is not set
1853# CONFIG_CRYPTO_NULL is not set 1875# CONFIG_CRYPTO_NULL is not set
1876# CONFIG_CRYPTO_PCRYPT is not set
1854CONFIG_CRYPTO_WORKQUEUE=y 1877CONFIG_CRYPTO_WORKQUEUE=y
1855# CONFIG_CRYPTO_CRYPTD is not set 1878# CONFIG_CRYPTO_CRYPTD is not set
1856# CONFIG_CRYPTO_AUTHENC is not set 1879# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
index 622d84f48aba..183c59c6d896 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:43 2010 4# Mon Apr 19 23:17:07 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,11 +102,6 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106CONFIG_SYSFS_DEPRECATED=y
112CONFIG_SYSFS_DEPRECATED_V2=y 107CONFIG_SYSFS_DEPRECATED_V2=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -325,6 +321,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 321# Bus options
326# 322#
327CONFIG_ZONE_DMA=y 323CONFIG_ZONE_DMA=y
324# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 325CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 326CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 327CONFIG_FSL_SOC=y
@@ -340,13 +337,11 @@ CONFIG_PCIEAER=y
340# CONFIG_PCIEASPM is not set 337# CONFIG_PCIEASPM is not set
341CONFIG_ARCH_SUPPORTS_MSI=y 338CONFIG_ARCH_SUPPORTS_MSI=y
342# CONFIG_PCI_MSI is not set 339# CONFIG_PCI_MSI is not set
343# CONFIG_PCI_LEGACY is not set
344# CONFIG_PCI_STUB is not set 340# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 341# CONFIG_PCI_IOV is not set
346CONFIG_PCCARD=y 342CONFIG_PCCARD=y
347CONFIG_PCMCIA=y 343CONFIG_PCMCIA=y
348# CONFIG_PCMCIA_LOAD_CIS is not set 344# CONFIG_PCMCIA_LOAD_CIS is not set
349# CONFIG_PCMCIA_IOCTL is not set
350# CONFIG_CARDBUS is not set 345# CONFIG_CARDBUS is not set
351 346
352# 347#
@@ -382,7 +377,6 @@ CONFIG_NET=y
382# Networking options 377# Networking options
383# 378#
384CONFIG_PACKET=y 379CONFIG_PACKET=y
385CONFIG_PACKET_MMAP=y
386CONFIG_UNIX=y 380CONFIG_UNIX=y
387CONFIG_XFRM=y 381CONFIG_XFRM=y
388CONFIG_XFRM_USER=m 382CONFIG_XFRM_USER=m
@@ -592,6 +586,8 @@ CONFIG_MTD_PHYSMAP_OF=y
592# UBI - Unsorted block images 586# UBI - Unsorted block images
593# 587#
594# CONFIG_MTD_UBI is not set 588# CONFIG_MTD_UBI is not set
589CONFIG_OF_FLATTREE=y
590CONFIG_OF_DYNAMIC=y
595CONFIG_OF_DEVICE=y 591CONFIG_OF_DEVICE=y
596CONFIG_OF_GPIO=y 592CONFIG_OF_GPIO=y
597CONFIG_OF_I2C=y 593CONFIG_OF_I2C=y
@@ -629,6 +625,7 @@ CONFIG_MISC_DEVICES=y
629# CONFIG_ENCLOSURE_SERVICES is not set 625# CONFIG_ENCLOSURE_SERVICES is not set
630# CONFIG_HP_ILO is not set 626# CONFIG_HP_ILO is not set
631# CONFIG_ISL29003 is not set 627# CONFIG_ISL29003 is not set
628# CONFIG_SENSORS_TSL2550 is not set
632CONFIG_DS1682=y 629CONFIG_DS1682=y
633# CONFIG_C2PORT is not set 630# CONFIG_C2PORT is not set
634 631
@@ -695,6 +692,7 @@ CONFIG_IDE_PROC_FS=y
695# 692#
696# SCSI device support 693# SCSI device support
697# 694#
695CONFIG_SCSI_MOD=y
698# CONFIG_RAID_ATTRS is not set 696# CONFIG_RAID_ATTRS is not set
699CONFIG_SCSI=y 697CONFIG_SCSI=y
700CONFIG_SCSI_DMA=y 698CONFIG_SCSI_DMA=y
@@ -819,6 +817,7 @@ CONFIG_SATA_SIL=y
819# CONFIG_PATA_IT821X is not set 817# CONFIG_PATA_IT821X is not set
820# CONFIG_PATA_IT8213 is not set 818# CONFIG_PATA_IT8213 is not set
821# CONFIG_PATA_JMICRON is not set 819# CONFIG_PATA_JMICRON is not set
820# CONFIG_PATA_LEGACY is not set
822# CONFIG_PATA_TRIFLEX is not set 821# CONFIG_PATA_TRIFLEX is not set
823# CONFIG_PATA_MARVELL is not set 822# CONFIG_PATA_MARVELL is not set
824# CONFIG_PATA_MPIIX is not set 823# CONFIG_PATA_MPIIX is not set
@@ -1059,6 +1058,7 @@ CONFIG_SERIAL_CORE=y
1059CONFIG_SERIAL_CORE_CONSOLE=y 1058CONFIG_SERIAL_CORE_CONSOLE=y
1060# CONFIG_SERIAL_JSM is not set 1059# CONFIG_SERIAL_JSM is not set
1061# CONFIG_SERIAL_OF_PLATFORM is not set 1060# CONFIG_SERIAL_OF_PLATFORM is not set
1061# CONFIG_SERIAL_TIMBERDALE is not set
1062# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1062# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1063CONFIG_UNIX98_PTYS=y 1063CONFIG_UNIX98_PTYS=y
1064# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1064# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1116,6 +1116,7 @@ CONFIG_I2C_HELPER_AUTO=y
1116CONFIG_I2C_MPC=y 1116CONFIG_I2C_MPC=y
1117# CONFIG_I2C_OCORES is not set 1117# CONFIG_I2C_OCORES is not set
1118# CONFIG_I2C_SIMTEC is not set 1118# CONFIG_I2C_SIMTEC is not set
1119# CONFIG_I2C_XILINX is not set
1119 1120
1120# 1121#
1121# External I2C/SMBus adapter drivers 1122# External I2C/SMBus adapter drivers
@@ -1129,15 +1130,9 @@ CONFIG_I2C_MPC=y
1129# 1130#
1130# CONFIG_I2C_PCA_PLATFORM is not set 1131# CONFIG_I2C_PCA_PLATFORM is not set
1131# CONFIG_I2C_STUB is not set 1132# CONFIG_I2C_STUB is not set
1132
1133#
1134# Miscellaneous I2C Chip support
1135#
1136# CONFIG_SENSORS_TSL2550 is not set
1137# CONFIG_I2C_DEBUG_CORE is not set 1133# CONFIG_I2C_DEBUG_CORE is not set
1138# CONFIG_I2C_DEBUG_ALGO is not set 1134# CONFIG_I2C_DEBUG_ALGO is not set
1139# CONFIG_I2C_DEBUG_BUS is not set 1135# CONFIG_I2C_DEBUG_BUS is not set
1140# CONFIG_I2C_DEBUG_CHIP is not set
1141# CONFIG_SPI is not set 1136# CONFIG_SPI is not set
1142 1137
1143# 1138#
@@ -1152,14 +1147,18 @@ CONFIG_GPIO_SYSFS=y
1152# 1147#
1153# Memory mapped GPIO expanders: 1148# Memory mapped GPIO expanders:
1154# 1149#
1150# CONFIG_GPIO_IT8761E is not set
1155# CONFIG_GPIO_XILINX is not set 1151# CONFIG_GPIO_XILINX is not set
1152# CONFIG_GPIO_SCH is not set
1156 1153
1157# 1154#
1158# I2C GPIO expanders: 1155# I2C GPIO expanders:
1159# 1156#
1157# CONFIG_GPIO_MAX7300 is not set
1160# CONFIG_GPIO_MAX732X is not set 1158# CONFIG_GPIO_MAX732X is not set
1161# CONFIG_GPIO_PCA953X is not set 1159# CONFIG_GPIO_PCA953X is not set
1162# CONFIG_GPIO_PCF857X is not set 1160# CONFIG_GPIO_PCF857X is not set
1161# CONFIG_GPIO_ADP5588 is not set
1163 1162
1164# 1163#
1165# PCI GPIO expanders: 1164# PCI GPIO expanders:
@@ -1192,10 +1191,11 @@ CONFIG_HWMON=y
1192# CONFIG_SENSORS_ADM1029 is not set 1191# CONFIG_SENSORS_ADM1029 is not set
1193# CONFIG_SENSORS_ADM1031 is not set 1192# CONFIG_SENSORS_ADM1031 is not set
1194# CONFIG_SENSORS_ADM9240 is not set 1193# CONFIG_SENSORS_ADM9240 is not set
1194# CONFIG_SENSORS_ADT7411 is not set
1195# CONFIG_SENSORS_ADT7462 is not set 1195# CONFIG_SENSORS_ADT7462 is not set
1196# CONFIG_SENSORS_ADT7470 is not set 1196# CONFIG_SENSORS_ADT7470 is not set
1197# CONFIG_SENSORS_ADT7473 is not set
1198# CONFIG_SENSORS_ADT7475 is not set 1197# CONFIG_SENSORS_ADT7475 is not set
1198# CONFIG_SENSORS_ASC7621 is not set
1199# CONFIG_SENSORS_ATXP1 is not set 1199# CONFIG_SENSORS_ATXP1 is not set
1200# CONFIG_SENSORS_DS1621 is not set 1200# CONFIG_SENSORS_DS1621 is not set
1201# CONFIG_SENSORS_I5K_AMB is not set 1201# CONFIG_SENSORS_I5K_AMB is not set
@@ -1233,6 +1233,7 @@ CONFIG_SENSORS_LM92=y
1233# CONFIG_SENSORS_SMSC47M192 is not set 1233# CONFIG_SENSORS_SMSC47M192 is not set
1234# CONFIG_SENSORS_SMSC47B397 is not set 1234# CONFIG_SENSORS_SMSC47B397 is not set
1235# CONFIG_SENSORS_ADS7828 is not set 1235# CONFIG_SENSORS_ADS7828 is not set
1236# CONFIG_SENSORS_AMC6821 is not set
1236# CONFIG_SENSORS_THMC50 is not set 1237# CONFIG_SENSORS_THMC50 is not set
1237# CONFIG_SENSORS_TMP401 is not set 1238# CONFIG_SENSORS_TMP401 is not set
1238# CONFIG_SENSORS_TMP421 is not set 1239# CONFIG_SENSORS_TMP421 is not set
@@ -1281,19 +1282,24 @@ CONFIG_SSB_POSSIBLE=y
1281# Multifunction device drivers 1282# Multifunction device drivers
1282# 1283#
1283# CONFIG_MFD_CORE is not set 1284# CONFIG_MFD_CORE is not set
1285# CONFIG_MFD_88PM860X is not set
1284# CONFIG_MFD_SM501 is not set 1286# CONFIG_MFD_SM501 is not set
1285# CONFIG_HTC_PASIC3 is not set 1287# CONFIG_HTC_PASIC3 is not set
1288# CONFIG_HTC_I2CPLD is not set
1286# CONFIG_TPS65010 is not set 1289# CONFIG_TPS65010 is not set
1287# CONFIG_TWL4030_CORE is not set 1290# CONFIG_TWL4030_CORE is not set
1288# CONFIG_MFD_TMIO is not set 1291# CONFIG_MFD_TMIO is not set
1289# CONFIG_PMIC_DA903X is not set 1292# CONFIG_PMIC_DA903X is not set
1290# CONFIG_PMIC_ADP5520 is not set 1293# CONFIG_PMIC_ADP5520 is not set
1294# CONFIG_MFD_MAX8925 is not set
1291# CONFIG_MFD_WM8400 is not set 1295# CONFIG_MFD_WM8400 is not set
1292# CONFIG_MFD_WM831X is not set 1296# CONFIG_MFD_WM831X is not set
1293# CONFIG_MFD_WM8350_I2C is not set 1297# CONFIG_MFD_WM8350_I2C is not set
1298# CONFIG_MFD_WM8994 is not set
1294# CONFIG_MFD_PCF50633 is not set 1299# CONFIG_MFD_PCF50633 is not set
1295# CONFIG_AB3100_CORE is not set 1300# CONFIG_AB3100_CORE is not set
1296# CONFIG_MFD_88PM8607 is not set 1301# CONFIG_MFD_TIMBERDALE is not set
1302# CONFIG_LPC_SCH is not set
1297# CONFIG_REGULATOR is not set 1303# CONFIG_REGULATOR is not set
1298# CONFIG_MEDIA_SUPPORT is not set 1304# CONFIG_MEDIA_SUPPORT is not set
1299 1305
@@ -1302,6 +1308,7 @@ CONFIG_SSB_POSSIBLE=y
1302# 1308#
1303# CONFIG_AGP is not set 1309# CONFIG_AGP is not set
1304CONFIG_VGA_ARB=y 1310CONFIG_VGA_ARB=y
1311CONFIG_VGA_ARB_MAX_GPUS=16
1305# CONFIG_DRM is not set 1312# CONFIG_DRM is not set
1306# CONFIG_VGASTATE is not set 1313# CONFIG_VGASTATE is not set
1307CONFIG_VIDEO_OUTPUT_CONTROL=m 1314CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1334,6 +1341,7 @@ CONFIG_USB_HID=y
1334# 1341#
1335# Special HID drivers 1342# Special HID drivers
1336# 1343#
1344# CONFIG_HID_3M_PCT is not set
1337CONFIG_HID_A4TECH=y 1345CONFIG_HID_A4TECH=y
1338CONFIG_HID_APPLE=y 1346CONFIG_HID_APPLE=y
1339CONFIG_HID_BELKIN=y 1347CONFIG_HID_BELKIN=y
@@ -1349,14 +1357,19 @@ CONFIG_HID_GYRATION=y
1349CONFIG_HID_LOGITECH=y 1357CONFIG_HID_LOGITECH=y
1350# CONFIG_LOGITECH_FF is not set 1358# CONFIG_LOGITECH_FF is not set
1351# CONFIG_LOGIRUMBLEPAD2_FF is not set 1359# CONFIG_LOGIRUMBLEPAD2_FF is not set
1360# CONFIG_LOGIG940_FF is not set
1352CONFIG_HID_MICROSOFT=y 1361CONFIG_HID_MICROSOFT=y
1362# CONFIG_HID_MOSART is not set
1353CONFIG_HID_MONTEREY=y 1363CONFIG_HID_MONTEREY=y
1354# CONFIG_HID_NTRIG is not set 1364# CONFIG_HID_NTRIG is not set
1365# CONFIG_HID_ORTEK is not set
1355CONFIG_HID_PANTHERLORD=y 1366CONFIG_HID_PANTHERLORD=y
1356# CONFIG_PANTHERLORD_FF is not set 1367# CONFIG_PANTHERLORD_FF is not set
1357CONFIG_HID_PETALYNX=y 1368CONFIG_HID_PETALYNX=y
1369# CONFIG_HID_QUANTA is not set
1358CONFIG_HID_SAMSUNG=y 1370CONFIG_HID_SAMSUNG=y
1359CONFIG_HID_SONY=y 1371CONFIG_HID_SONY=y
1372# CONFIG_HID_STANTUM is not set
1360CONFIG_HID_SUNPLUS=y 1373CONFIG_HID_SUNPLUS=y
1361# CONFIG_HID_GREENASIA is not set 1374# CONFIG_HID_GREENASIA is not set
1362# CONFIG_HID_SMARTJOYPLUS is not set 1375# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1463,7 +1476,6 @@ CONFIG_USB_STORAGE=y
1463# CONFIG_USB_RIO500 is not set 1476# CONFIG_USB_RIO500 is not set
1464# CONFIG_USB_LEGOTOWER is not set 1477# CONFIG_USB_LEGOTOWER is not set
1465# CONFIG_USB_LCD is not set 1478# CONFIG_USB_LCD is not set
1466# CONFIG_USB_BERRY_CHARGE is not set
1467# CONFIG_USB_LED is not set 1479# CONFIG_USB_LED is not set
1468# CONFIG_USB_CYPRESS_CY7C63 is not set 1480# CONFIG_USB_CYPRESS_CY7C63 is not set
1469# CONFIG_USB_CYTHERM is not set 1481# CONFIG_USB_CYTHERM is not set
@@ -1476,7 +1488,6 @@ CONFIG_USB_STORAGE=y
1476# CONFIG_USB_IOWARRIOR is not set 1488# CONFIG_USB_IOWARRIOR is not set
1477# CONFIG_USB_TEST is not set 1489# CONFIG_USB_TEST is not set
1478# CONFIG_USB_ISIGHTFW is not set 1490# CONFIG_USB_ISIGHTFW is not set
1479# CONFIG_USB_VST is not set
1480# CONFIG_USB_GADGET is not set 1491# CONFIG_USB_GADGET is not set
1481 1492
1482# 1493#
@@ -1560,43 +1571,35 @@ CONFIG_RTC_DRV_RX8581=y
1560CONFIG_STAGING=y 1571CONFIG_STAGING=y
1561# CONFIG_STAGING_EXCLUDE_BUILD is not set 1572# CONFIG_STAGING_EXCLUDE_BUILD is not set
1562# CONFIG_ET131X is not set 1573# CONFIG_ET131X is not set
1563# CONFIG_ME4000 is not set
1564# CONFIG_MEILHAUS is not set
1565# CONFIG_USB_IP_COMMON is not set 1574# CONFIG_USB_IP_COMMON is not set
1575# CONFIG_PRISM2_USB is not set
1566# CONFIG_ECHO is not set 1576# CONFIG_ECHO is not set
1567# CONFIG_COMEDI is not set 1577# CONFIG_COMEDI is not set
1568# CONFIG_ASUS_OLED is not set 1578# CONFIG_ASUS_OLED is not set
1569# CONFIG_ALTERA_PCIE_CHDMA is not set 1579# CONFIG_R8187SE is not set
1570# CONFIG_INPUT_MIMIO is not set 1580# CONFIG_RTL8192SU is not set
1581# CONFIG_RTL8192U is not set
1582# CONFIG_RTL8192E is not set
1571# CONFIG_TRANZPORT is not set 1583# CONFIG_TRANZPORT is not set
1572 1584
1573# 1585#
1574# Android
1575#
1576# CONFIG_ANDROID is not set
1577# CONFIG_DST is not set
1578# CONFIG_POHMELFS is not set
1579# CONFIG_B3DFG is not set
1580# CONFIG_IDE_PHISON is not set
1581# CONFIG_PLAN9AUTH is not set
1582# CONFIG_HECI is not set
1583# CONFIG_USB_CPC is not set
1584
1585#
1586# Qualcomm MSM Camera And Video 1586# Qualcomm MSM Camera And Video
1587# 1587#
1588 1588
1589# 1589#
1590# Camera Sensor Selection 1590# Camera Sensor Selection
1591# 1591#
1592# CONFIG_HYPERV_STORAGE is not set 1592# CONFIG_INPUT_GPIO is not set
1593# CONFIG_HYPERV_BLOCK is not set 1593# CONFIG_POHMELFS is not set
1594# CONFIG_HYPERV_NET is not set 1594# CONFIG_IDE_PHISON is not set
1595# CONFIG_VT6655 is not set
1596# CONFIG_VT6656 is not set
1595CONFIG_VME_BUS=y 1597CONFIG_VME_BUS=y
1596 1598
1597# 1599#
1598# VME Bridge Drivers 1600# VME Bridge Drivers
1599# 1601#
1602# CONFIG_VME_CA91CX42 is not set
1600CONFIG_VME_TSI148=y 1603CONFIG_VME_TSI148=y
1601 1604
1602# 1605#
@@ -1605,6 +1608,24 @@ CONFIG_VME_TSI148=y
1605# CONFIG_VME_USER is not set 1608# CONFIG_VME_USER is not set
1606 1609
1607# 1610#
1611# VME Board Drivers
1612#
1613# CONFIG_VMIVME_7805 is not set
1614
1615#
1616# RAR Register Driver
1617#
1618# CONFIG_RAR_REGISTER is not set
1619# CONFIG_IIO is not set
1620# CONFIG_RAMZSWAP is not set
1621# CONFIG_BATMAN_ADV is not set
1622# CONFIG_STRIP is not set
1623# CONFIG_PCMCIA_WAVELAN is not set
1624# CONFIG_PCMCIA_NETWAVE is not set
1625# CONFIG_DT3155 is not set
1626# CONFIG_CRYSTALHD is not set
1627
1628#
1608# File systems 1629# File systems
1609# 1630#
1610CONFIG_EXT2_FS=y 1631CONFIG_EXT2_FS=y
@@ -1693,6 +1714,7 @@ CONFIG_JFFS2_ZLIB=y
1693# CONFIG_JFFS2_LZO is not set 1714# CONFIG_JFFS2_LZO is not set
1694CONFIG_JFFS2_RTIME=y 1715CONFIG_JFFS2_RTIME=y
1695# CONFIG_JFFS2_RUBIN is not set 1716# CONFIG_JFFS2_RUBIN is not set
1717# CONFIG_LOGFS is not set
1696# CONFIG_CRAMFS is not set 1718# CONFIG_CRAMFS is not set
1697# CONFIG_SQUASHFS is not set 1719# CONFIG_SQUASHFS is not set
1698# CONFIG_VXFS_FS is not set 1720# CONFIG_VXFS_FS is not set
@@ -1719,6 +1741,7 @@ CONFIG_SUNRPC_GSS=y
1719CONFIG_RPCSEC_GSS_KRB5=y 1741CONFIG_RPCSEC_GSS_KRB5=y
1720# CONFIG_RPCSEC_GSS_SPKM3 is not set 1742# CONFIG_RPCSEC_GSS_SPKM3 is not set
1721# CONFIG_SMB_FS is not set 1743# CONFIG_SMB_FS is not set
1744# CONFIG_CEPH_FS is not set
1722CONFIG_CIFS=m 1745CONFIG_CIFS=m
1723# CONFIG_CIFS_STATS is not set 1746# CONFIG_CIFS_STATS is not set
1724# CONFIG_CIFS_WEAK_PW_HASH is not set 1747# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1864,6 +1887,7 @@ CONFIG_CRYPTO_MANAGER=y
1864CONFIG_CRYPTO_MANAGER2=y 1887CONFIG_CRYPTO_MANAGER2=y
1865# CONFIG_CRYPTO_GF128MUL is not set 1888# CONFIG_CRYPTO_GF128MUL is not set
1866# CONFIG_CRYPTO_NULL is not set 1889# CONFIG_CRYPTO_NULL is not set
1890# CONFIG_CRYPTO_PCRYPT is not set
1867CONFIG_CRYPTO_WORKQUEUE=y 1891CONFIG_CRYPTO_WORKQUEUE=y
1868# CONFIG_CRYPTO_CRYPTD is not set 1892# CONFIG_CRYPTO_CRYPTD is not set
1869CONFIG_CRYPTO_AUTHENC=m 1893CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig
index eb58dec11a61..1524d948a2ba 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:41 2010 4# Mon Apr 19 23:17:05 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,11 +102,6 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106CONFIG_SYSFS_DEPRECATED=y
112CONFIG_SYSFS_DEPRECATED_V2=y 107CONFIG_SYSFS_DEPRECATED_V2=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -325,6 +321,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 321# Bus options
326# 322#
327CONFIG_ZONE_DMA=y 323CONFIG_ZONE_DMA=y
324# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 325CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 326CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 327CONFIG_FSL_SOC=y
@@ -340,13 +337,11 @@ CONFIG_PCIEAER=y
340# CONFIG_PCIEASPM is not set 337# CONFIG_PCIEASPM is not set
341CONFIG_ARCH_SUPPORTS_MSI=y 338CONFIG_ARCH_SUPPORTS_MSI=y
342# CONFIG_PCI_MSI is not set 339# CONFIG_PCI_MSI is not set
343# CONFIG_PCI_LEGACY is not set
344# CONFIG_PCI_STUB is not set 340# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 341# CONFIG_PCI_IOV is not set
346CONFIG_PCCARD=y 342CONFIG_PCCARD=y
347CONFIG_PCMCIA=y 343CONFIG_PCMCIA=y
348# CONFIG_PCMCIA_LOAD_CIS is not set 344# CONFIG_PCMCIA_LOAD_CIS is not set
349# CONFIG_PCMCIA_IOCTL is not set
350# CONFIG_CARDBUS is not set 345# CONFIG_CARDBUS is not set
351 346
352# 347#
@@ -382,7 +377,6 @@ CONFIG_NET=y
382# Networking options 377# Networking options
383# 378#
384CONFIG_PACKET=y 379CONFIG_PACKET=y
385CONFIG_PACKET_MMAP=y
386CONFIG_UNIX=y 380CONFIG_UNIX=y
387CONFIG_XFRM=y 381CONFIG_XFRM=y
388CONFIG_XFRM_USER=m 382CONFIG_XFRM_USER=m
@@ -592,6 +586,8 @@ CONFIG_MTD_PHYSMAP_OF=y
592# UBI - Unsorted block images 586# UBI - Unsorted block images
593# 587#
594# CONFIG_MTD_UBI is not set 588# CONFIG_MTD_UBI is not set
589CONFIG_OF_FLATTREE=y
590CONFIG_OF_DYNAMIC=y
595CONFIG_OF_DEVICE=y 591CONFIG_OF_DEVICE=y
596CONFIG_OF_GPIO=y 592CONFIG_OF_GPIO=y
597CONFIG_OF_I2C=y 593CONFIG_OF_I2C=y
@@ -629,6 +625,7 @@ CONFIG_MISC_DEVICES=y
629# CONFIG_ENCLOSURE_SERVICES is not set 625# CONFIG_ENCLOSURE_SERVICES is not set
630# CONFIG_HP_ILO is not set 626# CONFIG_HP_ILO is not set
631# CONFIG_ISL29003 is not set 627# CONFIG_ISL29003 is not set
628# CONFIG_SENSORS_TSL2550 is not set
632CONFIG_DS1682=y 629CONFIG_DS1682=y
633# CONFIG_C2PORT is not set 630# CONFIG_C2PORT is not set
634 631
@@ -695,6 +692,7 @@ CONFIG_IDE_PROC_FS=y
695# 692#
696# SCSI device support 693# SCSI device support
697# 694#
695CONFIG_SCSI_MOD=y
698# CONFIG_RAID_ATTRS is not set 696# CONFIG_RAID_ATTRS is not set
699CONFIG_SCSI=y 697CONFIG_SCSI=y
700CONFIG_SCSI_DMA=y 698CONFIG_SCSI_DMA=y
@@ -1001,6 +999,7 @@ CONFIG_SERIAL_CORE=y
1001CONFIG_SERIAL_CORE_CONSOLE=y 999CONFIG_SERIAL_CORE_CONSOLE=y
1002# CONFIG_SERIAL_JSM is not set 1000# CONFIG_SERIAL_JSM is not set
1003# CONFIG_SERIAL_OF_PLATFORM is not set 1001# CONFIG_SERIAL_OF_PLATFORM is not set
1002# CONFIG_SERIAL_TIMBERDALE is not set
1004# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1003# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1005CONFIG_UNIX98_PTYS=y 1004CONFIG_UNIX98_PTYS=y
1006# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1005# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1058,6 +1057,7 @@ CONFIG_I2C_HELPER_AUTO=y
1058CONFIG_I2C_MPC=y 1057CONFIG_I2C_MPC=y
1059# CONFIG_I2C_OCORES is not set 1058# CONFIG_I2C_OCORES is not set
1060# CONFIG_I2C_SIMTEC is not set 1059# CONFIG_I2C_SIMTEC is not set
1060# CONFIG_I2C_XILINX is not set
1061 1061
1062# 1062#
1063# External I2C/SMBus adapter drivers 1063# External I2C/SMBus adapter drivers
@@ -1071,15 +1071,9 @@ CONFIG_I2C_MPC=y
1071# 1071#
1072# CONFIG_I2C_PCA_PLATFORM is not set 1072# CONFIG_I2C_PCA_PLATFORM is not set
1073# CONFIG_I2C_STUB is not set 1073# CONFIG_I2C_STUB is not set
1074
1075#
1076# Miscellaneous I2C Chip support
1077#
1078# CONFIG_SENSORS_TSL2550 is not set
1079# CONFIG_I2C_DEBUG_CORE is not set 1074# CONFIG_I2C_DEBUG_CORE is not set
1080# CONFIG_I2C_DEBUG_ALGO is not set 1075# CONFIG_I2C_DEBUG_ALGO is not set
1081# CONFIG_I2C_DEBUG_BUS is not set 1076# CONFIG_I2C_DEBUG_BUS is not set
1082# CONFIG_I2C_DEBUG_CHIP is not set
1083# CONFIG_SPI is not set 1077# CONFIG_SPI is not set
1084 1078
1085# 1079#
@@ -1094,14 +1088,18 @@ CONFIG_GPIO_SYSFS=y
1094# 1088#
1095# Memory mapped GPIO expanders: 1089# Memory mapped GPIO expanders:
1096# 1090#
1091# CONFIG_GPIO_IT8761E is not set
1097# CONFIG_GPIO_XILINX is not set 1092# CONFIG_GPIO_XILINX is not set
1093# CONFIG_GPIO_SCH is not set
1098 1094
1099# 1095#
1100# I2C GPIO expanders: 1096# I2C GPIO expanders:
1101# 1097#
1098# CONFIG_GPIO_MAX7300 is not set
1102# CONFIG_GPIO_MAX732X is not set 1099# CONFIG_GPIO_MAX732X is not set
1103# CONFIG_GPIO_PCA953X is not set 1100# CONFIG_GPIO_PCA953X is not set
1104# CONFIG_GPIO_PCF857X is not set 1101# CONFIG_GPIO_PCF857X is not set
1102# CONFIG_GPIO_ADP5588 is not set
1105 1103
1106# 1104#
1107# PCI GPIO expanders: 1105# PCI GPIO expanders:
@@ -1134,10 +1132,11 @@ CONFIG_HWMON=y
1134# CONFIG_SENSORS_ADM1029 is not set 1132# CONFIG_SENSORS_ADM1029 is not set
1135# CONFIG_SENSORS_ADM1031 is not set 1133# CONFIG_SENSORS_ADM1031 is not set
1136# CONFIG_SENSORS_ADM9240 is not set 1134# CONFIG_SENSORS_ADM9240 is not set
1135# CONFIG_SENSORS_ADT7411 is not set
1137# CONFIG_SENSORS_ADT7462 is not set 1136# CONFIG_SENSORS_ADT7462 is not set
1138# CONFIG_SENSORS_ADT7470 is not set 1137# CONFIG_SENSORS_ADT7470 is not set
1139# CONFIG_SENSORS_ADT7473 is not set
1140# CONFIG_SENSORS_ADT7475 is not set 1138# CONFIG_SENSORS_ADT7475 is not set
1139# CONFIG_SENSORS_ASC7621 is not set
1141# CONFIG_SENSORS_ATXP1 is not set 1140# CONFIG_SENSORS_ATXP1 is not set
1142# CONFIG_SENSORS_DS1621 is not set 1141# CONFIG_SENSORS_DS1621 is not set
1143# CONFIG_SENSORS_I5K_AMB is not set 1142# CONFIG_SENSORS_I5K_AMB is not set
@@ -1175,6 +1174,7 @@ CONFIG_SENSORS_LM92=y
1175# CONFIG_SENSORS_SMSC47M192 is not set 1174# CONFIG_SENSORS_SMSC47M192 is not set
1176# CONFIG_SENSORS_SMSC47B397 is not set 1175# CONFIG_SENSORS_SMSC47B397 is not set
1177# CONFIG_SENSORS_ADS7828 is not set 1176# CONFIG_SENSORS_ADS7828 is not set
1177# CONFIG_SENSORS_AMC6821 is not set
1178# CONFIG_SENSORS_THMC50 is not set 1178# CONFIG_SENSORS_THMC50 is not set
1179# CONFIG_SENSORS_TMP401 is not set 1179# CONFIG_SENSORS_TMP401 is not set
1180# CONFIG_SENSORS_TMP421 is not set 1180# CONFIG_SENSORS_TMP421 is not set
@@ -1223,19 +1223,24 @@ CONFIG_SSB_POSSIBLE=y
1223# Multifunction device drivers 1223# Multifunction device drivers
1224# 1224#
1225# CONFIG_MFD_CORE is not set 1225# CONFIG_MFD_CORE is not set
1226# CONFIG_MFD_88PM860X is not set
1226# CONFIG_MFD_SM501 is not set 1227# CONFIG_MFD_SM501 is not set
1227# CONFIG_HTC_PASIC3 is not set 1228# CONFIG_HTC_PASIC3 is not set
1229# CONFIG_HTC_I2CPLD is not set
1228# CONFIG_TPS65010 is not set 1230# CONFIG_TPS65010 is not set
1229# CONFIG_TWL4030_CORE is not set 1231# CONFIG_TWL4030_CORE is not set
1230# CONFIG_MFD_TMIO is not set 1232# CONFIG_MFD_TMIO is not set
1231# CONFIG_PMIC_DA903X is not set 1233# CONFIG_PMIC_DA903X is not set
1232# CONFIG_PMIC_ADP5520 is not set 1234# CONFIG_PMIC_ADP5520 is not set
1235# CONFIG_MFD_MAX8925 is not set
1233# CONFIG_MFD_WM8400 is not set 1236# CONFIG_MFD_WM8400 is not set
1234# CONFIG_MFD_WM831X is not set 1237# CONFIG_MFD_WM831X is not set
1235# CONFIG_MFD_WM8350_I2C is not set 1238# CONFIG_MFD_WM8350_I2C is not set
1239# CONFIG_MFD_WM8994 is not set
1236# CONFIG_MFD_PCF50633 is not set 1240# CONFIG_MFD_PCF50633 is not set
1237# CONFIG_AB3100_CORE is not set 1241# CONFIG_AB3100_CORE is not set
1238# CONFIG_MFD_88PM8607 is not set 1242# CONFIG_MFD_TIMBERDALE is not set
1243# CONFIG_LPC_SCH is not set
1239# CONFIG_REGULATOR is not set 1244# CONFIG_REGULATOR is not set
1240# CONFIG_MEDIA_SUPPORT is not set 1245# CONFIG_MEDIA_SUPPORT is not set
1241 1246
@@ -1244,6 +1249,7 @@ CONFIG_SSB_POSSIBLE=y
1244# 1249#
1245# CONFIG_AGP is not set 1250# CONFIG_AGP is not set
1246CONFIG_VGA_ARB=y 1251CONFIG_VGA_ARB=y
1252CONFIG_VGA_ARB_MAX_GPUS=16
1247# CONFIG_DRM is not set 1253# CONFIG_DRM is not set
1248# CONFIG_VGASTATE is not set 1254# CONFIG_VGASTATE is not set
1249CONFIG_VIDEO_OUTPUT_CONTROL=m 1255CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1276,6 +1282,7 @@ CONFIG_USB_HID=y
1276# 1282#
1277# Special HID drivers 1283# Special HID drivers
1278# 1284#
1285# CONFIG_HID_3M_PCT is not set
1279CONFIG_HID_A4TECH=y 1286CONFIG_HID_A4TECH=y
1280CONFIG_HID_APPLE=y 1287CONFIG_HID_APPLE=y
1281CONFIG_HID_BELKIN=y 1288CONFIG_HID_BELKIN=y
@@ -1291,14 +1298,19 @@ CONFIG_HID_GYRATION=y
1291CONFIG_HID_LOGITECH=y 1298CONFIG_HID_LOGITECH=y
1292# CONFIG_LOGITECH_FF is not set 1299# CONFIG_LOGITECH_FF is not set
1293# CONFIG_LOGIRUMBLEPAD2_FF is not set 1300# CONFIG_LOGIRUMBLEPAD2_FF is not set
1301# CONFIG_LOGIG940_FF is not set
1294CONFIG_HID_MICROSOFT=y 1302CONFIG_HID_MICROSOFT=y
1303# CONFIG_HID_MOSART is not set
1295CONFIG_HID_MONTEREY=y 1304CONFIG_HID_MONTEREY=y
1296# CONFIG_HID_NTRIG is not set 1305# CONFIG_HID_NTRIG is not set
1306# CONFIG_HID_ORTEK is not set
1297CONFIG_HID_PANTHERLORD=y 1307CONFIG_HID_PANTHERLORD=y
1298# CONFIG_PANTHERLORD_FF is not set 1308# CONFIG_PANTHERLORD_FF is not set
1299CONFIG_HID_PETALYNX=y 1309CONFIG_HID_PETALYNX=y
1310# CONFIG_HID_QUANTA is not set
1300CONFIG_HID_SAMSUNG=y 1311CONFIG_HID_SAMSUNG=y
1301CONFIG_HID_SONY=y 1312CONFIG_HID_SONY=y
1313# CONFIG_HID_STANTUM is not set
1302CONFIG_HID_SUNPLUS=y 1314CONFIG_HID_SUNPLUS=y
1303# CONFIG_HID_GREENASIA is not set 1315# CONFIG_HID_GREENASIA is not set
1304# CONFIG_HID_SMARTJOYPLUS is not set 1316# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1405,7 +1417,6 @@ CONFIG_USB_STORAGE=y
1405# CONFIG_USB_RIO500 is not set 1417# CONFIG_USB_RIO500 is not set
1406# CONFIG_USB_LEGOTOWER is not set 1418# CONFIG_USB_LEGOTOWER is not set
1407# CONFIG_USB_LCD is not set 1419# CONFIG_USB_LCD is not set
1408# CONFIG_USB_BERRY_CHARGE is not set
1409# CONFIG_USB_LED is not set 1420# CONFIG_USB_LED is not set
1410# CONFIG_USB_CYPRESS_CY7C63 is not set 1421# CONFIG_USB_CYPRESS_CY7C63 is not set
1411# CONFIG_USB_CYTHERM is not set 1422# CONFIG_USB_CYTHERM is not set
@@ -1418,7 +1429,6 @@ CONFIG_USB_STORAGE=y
1418# CONFIG_USB_IOWARRIOR is not set 1429# CONFIG_USB_IOWARRIOR is not set
1419# CONFIG_USB_TEST is not set 1430# CONFIG_USB_TEST is not set
1420# CONFIG_USB_ISIGHTFW is not set 1431# CONFIG_USB_ISIGHTFW is not set
1421# CONFIG_USB_VST is not set
1422# CONFIG_USB_GADGET is not set 1432# CONFIG_USB_GADGET is not set
1423 1433
1424# 1434#
@@ -1590,6 +1600,7 @@ CONFIG_JFFS2_ZLIB=y
1590# CONFIG_JFFS2_LZO is not set 1600# CONFIG_JFFS2_LZO is not set
1591CONFIG_JFFS2_RTIME=y 1601CONFIG_JFFS2_RTIME=y
1592# CONFIG_JFFS2_RUBIN is not set 1602# CONFIG_JFFS2_RUBIN is not set
1603# CONFIG_LOGFS is not set
1593# CONFIG_CRAMFS is not set 1604# CONFIG_CRAMFS is not set
1594# CONFIG_SQUASHFS is not set 1605# CONFIG_SQUASHFS is not set
1595# CONFIG_VXFS_FS is not set 1606# CONFIG_VXFS_FS is not set
@@ -1616,6 +1627,7 @@ CONFIG_SUNRPC_GSS=y
1616CONFIG_RPCSEC_GSS_KRB5=y 1627CONFIG_RPCSEC_GSS_KRB5=y
1617# CONFIG_RPCSEC_GSS_SPKM3 is not set 1628# CONFIG_RPCSEC_GSS_SPKM3 is not set
1618# CONFIG_SMB_FS is not set 1629# CONFIG_SMB_FS is not set
1630# CONFIG_CEPH_FS is not set
1619CONFIG_CIFS=m 1631CONFIG_CIFS=m
1620# CONFIG_CIFS_STATS is not set 1632# CONFIG_CIFS_STATS is not set
1621# CONFIG_CIFS_WEAK_PW_HASH is not set 1633# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1761,6 +1773,7 @@ CONFIG_CRYPTO_MANAGER=y
1761CONFIG_CRYPTO_MANAGER2=y 1773CONFIG_CRYPTO_MANAGER2=y
1762# CONFIG_CRYPTO_GF128MUL is not set 1774# CONFIG_CRYPTO_GF128MUL is not set
1763# CONFIG_CRYPTO_NULL is not set 1775# CONFIG_CRYPTO_NULL is not set
1776# CONFIG_CRYPTO_PCRYPT is not set
1764CONFIG_CRYPTO_WORKQUEUE=y 1777CONFIG_CRYPTO_WORKQUEUE=y
1765# CONFIG_CRYPTO_CRYPTD is not set 1778# CONFIG_CRYPTO_CRYPTD is not set
1766CONFIG_CRYPTO_AUTHENC=m 1779CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 62c2b81a4a8f..767c204c0603 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:42 2010 4# Mon Apr 19 23:17:06 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,11 +102,6 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106CONFIG_SYSFS_DEPRECATED=y
112CONFIG_SYSFS_DEPRECATED_V2=y 107CONFIG_SYSFS_DEPRECATED_V2=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -326,6 +322,7 @@ CONFIG_ISA_DMA_API=y
326# Bus options 322# Bus options
327# 323#
328CONFIG_ZONE_DMA=y 324CONFIG_ZONE_DMA=y
325# CONFIG_NEED_DMA_MAP_STATE is not set
329CONFIG_GENERIC_ISA_DMA=y 326CONFIG_GENERIC_ISA_DMA=y
330CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
331CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
@@ -341,7 +338,6 @@ CONFIG_PCIEAER=y
341# CONFIG_PCIEASPM is not set 338# CONFIG_PCIEASPM is not set
342CONFIG_ARCH_SUPPORTS_MSI=y 339CONFIG_ARCH_SUPPORTS_MSI=y
343# CONFIG_PCI_MSI is not set 340# CONFIG_PCI_MSI is not set
344# CONFIG_PCI_LEGACY is not set
345CONFIG_PCI_DEBUG=y 341CONFIG_PCI_DEBUG=y
346# CONFIG_PCI_STUB is not set 342# CONFIG_PCI_STUB is not set
347# CONFIG_PCI_IOV is not set 343# CONFIG_PCI_IOV is not set
@@ -369,7 +365,6 @@ CONFIG_NET=y
369# Networking options 365# Networking options
370# 366#
371CONFIG_PACKET=y 367CONFIG_PACKET=y
372CONFIG_PACKET_MMAP=y
373CONFIG_UNIX=y 368CONFIG_UNIX=y
374CONFIG_XFRM=y 369CONFIG_XFRM=y
375CONFIG_XFRM_USER=m 370CONFIG_XFRM_USER=m
@@ -552,6 +547,7 @@ CONFIG_ATM_BR2684=m
552# CONFIG_ATM_BR2684_IPFILTER is not set 547# CONFIG_ATM_BR2684_IPFILTER is not set
553CONFIG_STP=m 548CONFIG_STP=m
554CONFIG_BRIDGE=m 549CONFIG_BRIDGE=m
550CONFIG_BRIDGE_IGMP_SNOOPING=y
555# CONFIG_NET_DSA is not set 551# CONFIG_NET_DSA is not set
556CONFIG_VLAN_8021Q=m 552CONFIG_VLAN_8021Q=m
557# CONFIG_VLAN_8021Q_GVRP is not set 553# CONFIG_VLAN_8021Q_GVRP is not set
@@ -728,6 +724,8 @@ CONFIG_MTD_PHYSMAP_OF=y
728# UBI - Unsorted block images 724# UBI - Unsorted block images
729# 725#
730# CONFIG_MTD_UBI is not set 726# CONFIG_MTD_UBI is not set
727CONFIG_OF_FLATTREE=y
728CONFIG_OF_DYNAMIC=y
731CONFIG_OF_DEVICE=y 729CONFIG_OF_DEVICE=y
732CONFIG_OF_GPIO=y 730CONFIG_OF_GPIO=y
733CONFIG_OF_I2C=y 731CONFIG_OF_I2C=y
@@ -765,6 +763,7 @@ CONFIG_MISC_DEVICES=y
765# CONFIG_ENCLOSURE_SERVICES is not set 763# CONFIG_ENCLOSURE_SERVICES is not set
766# CONFIG_HP_ILO is not set 764# CONFIG_HP_ILO is not set
767# CONFIG_ISL29003 is not set 765# CONFIG_ISL29003 is not set
766# CONFIG_SENSORS_TSL2550 is not set
768CONFIG_DS1682=y 767CONFIG_DS1682=y
769# CONFIG_C2PORT is not set 768# CONFIG_C2PORT is not set
770 769
@@ -782,6 +781,7 @@ CONFIG_HAVE_IDE=y
782# 781#
783# SCSI device support 782# SCSI device support
784# 783#
784CONFIG_SCSI_MOD=y
785# CONFIG_RAID_ATTRS is not set 785# CONFIG_RAID_ATTRS is not set
786CONFIG_SCSI=y 786CONFIG_SCSI=y
787CONFIG_SCSI_DMA=y 787CONFIG_SCSI_DMA=y
@@ -905,6 +905,7 @@ CONFIG_SATA_SIL=y
905# CONFIG_PATA_IT821X is not set 905# CONFIG_PATA_IT821X is not set
906# CONFIG_PATA_IT8213 is not set 906# CONFIG_PATA_IT8213 is not set
907# CONFIG_PATA_JMICRON is not set 907# CONFIG_PATA_JMICRON is not set
908# CONFIG_PATA_LEGACY is not set
908# CONFIG_PATA_TRIFLEX is not set 909# CONFIG_PATA_TRIFLEX is not set
909# CONFIG_PATA_MARVELL is not set 910# CONFIG_PATA_MARVELL is not set
910# CONFIG_PATA_MPIIX is not set 911# CONFIG_PATA_MPIIX is not set
@@ -1155,6 +1156,7 @@ CONFIG_SERIAL_CORE=y
1155CONFIG_SERIAL_CORE_CONSOLE=y 1156CONFIG_SERIAL_CORE_CONSOLE=y
1156# CONFIG_SERIAL_JSM is not set 1157# CONFIG_SERIAL_JSM is not set
1157# CONFIG_SERIAL_OF_PLATFORM is not set 1158# CONFIG_SERIAL_OF_PLATFORM is not set
1159# CONFIG_SERIAL_TIMBERDALE is not set
1158# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1160# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1159CONFIG_UNIX98_PTYS=y 1161CONFIG_UNIX98_PTYS=y
1160# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1162# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1204,6 +1206,7 @@ CONFIG_I2C_HELPER_AUTO=y
1204CONFIG_I2C_MPC=y 1206CONFIG_I2C_MPC=y
1205# CONFIG_I2C_OCORES is not set 1207# CONFIG_I2C_OCORES is not set
1206# CONFIG_I2C_SIMTEC is not set 1208# CONFIG_I2C_SIMTEC is not set
1209# CONFIG_I2C_XILINX is not set
1207 1210
1208# 1211#
1209# External I2C/SMBus adapter drivers 1212# External I2C/SMBus adapter drivers
@@ -1217,15 +1220,9 @@ CONFIG_I2C_MPC=y
1217# 1220#
1218# CONFIG_I2C_PCA_PLATFORM is not set 1221# CONFIG_I2C_PCA_PLATFORM is not set
1219# CONFIG_I2C_STUB is not set 1222# CONFIG_I2C_STUB is not set
1220
1221#
1222# Miscellaneous I2C Chip support
1223#
1224# CONFIG_SENSORS_TSL2550 is not set
1225# CONFIG_I2C_DEBUG_CORE is not set 1223# CONFIG_I2C_DEBUG_CORE is not set
1226# CONFIG_I2C_DEBUG_ALGO is not set 1224# CONFIG_I2C_DEBUG_ALGO is not set
1227# CONFIG_I2C_DEBUG_BUS is not set 1225# CONFIG_I2C_DEBUG_BUS is not set
1228# CONFIG_I2C_DEBUG_CHIP is not set
1229# CONFIG_SPI is not set 1226# CONFIG_SPI is not set
1230 1227
1231# 1228#
@@ -1241,14 +1238,18 @@ CONFIG_GPIOLIB=y
1241# 1238#
1242# Memory mapped GPIO expanders: 1239# Memory mapped GPIO expanders:
1243# 1240#
1241# CONFIG_GPIO_IT8761E is not set
1244# CONFIG_GPIO_XILINX is not set 1242# CONFIG_GPIO_XILINX is not set
1243# CONFIG_GPIO_SCH is not set
1245 1244
1246# 1245#
1247# I2C GPIO expanders: 1246# I2C GPIO expanders:
1248# 1247#
1248# CONFIG_GPIO_MAX7300 is not set
1249# CONFIG_GPIO_MAX732X is not set 1249# CONFIG_GPIO_MAX732X is not set
1250# CONFIG_GPIO_PCA953X is not set 1250# CONFIG_GPIO_PCA953X is not set
1251# CONFIG_GPIO_PCF857X is not set 1251# CONFIG_GPIO_PCF857X is not set
1252# CONFIG_GPIO_ADP5588 is not set
1252 1253
1253# 1254#
1254# PCI GPIO expanders: 1255# PCI GPIO expanders:
@@ -1281,10 +1282,11 @@ CONFIG_HWMON=y
1281# CONFIG_SENSORS_ADM1029 is not set 1282# CONFIG_SENSORS_ADM1029 is not set
1282# CONFIG_SENSORS_ADM1031 is not set 1283# CONFIG_SENSORS_ADM1031 is not set
1283# CONFIG_SENSORS_ADM9240 is not set 1284# CONFIG_SENSORS_ADM9240 is not set
1285# CONFIG_SENSORS_ADT7411 is not set
1284# CONFIG_SENSORS_ADT7462 is not set 1286# CONFIG_SENSORS_ADT7462 is not set
1285# CONFIG_SENSORS_ADT7470 is not set 1287# CONFIG_SENSORS_ADT7470 is not set
1286# CONFIG_SENSORS_ADT7473 is not set
1287# CONFIG_SENSORS_ADT7475 is not set 1288# CONFIG_SENSORS_ADT7475 is not set
1289# CONFIG_SENSORS_ASC7621 is not set
1288# CONFIG_SENSORS_ATXP1 is not set 1290# CONFIG_SENSORS_ATXP1 is not set
1289# CONFIG_SENSORS_DS1621 is not set 1291# CONFIG_SENSORS_DS1621 is not set
1290# CONFIG_SENSORS_I5K_AMB is not set 1292# CONFIG_SENSORS_I5K_AMB is not set
@@ -1322,6 +1324,7 @@ CONFIG_SENSORS_LM92=y
1322# CONFIG_SENSORS_SMSC47M192 is not set 1324# CONFIG_SENSORS_SMSC47M192 is not set
1323# CONFIG_SENSORS_SMSC47B397 is not set 1325# CONFIG_SENSORS_SMSC47B397 is not set
1324# CONFIG_SENSORS_ADS7828 is not set 1326# CONFIG_SENSORS_ADS7828 is not set
1327# CONFIG_SENSORS_AMC6821 is not set
1325# CONFIG_SENSORS_THMC50 is not set 1328# CONFIG_SENSORS_THMC50 is not set
1326# CONFIG_SENSORS_TMP401 is not set 1329# CONFIG_SENSORS_TMP401 is not set
1327# CONFIG_SENSORS_TMP421 is not set 1330# CONFIG_SENSORS_TMP421 is not set
@@ -1370,19 +1373,24 @@ CONFIG_SSB_POSSIBLE=y
1370# Multifunction device drivers 1373# Multifunction device drivers
1371# 1374#
1372# CONFIG_MFD_CORE is not set 1375# CONFIG_MFD_CORE is not set
1376# CONFIG_MFD_88PM860X is not set
1373# CONFIG_MFD_SM501 is not set 1377# CONFIG_MFD_SM501 is not set
1374# CONFIG_HTC_PASIC3 is not set 1378# CONFIG_HTC_PASIC3 is not set
1379# CONFIG_HTC_I2CPLD is not set
1375# CONFIG_TPS65010 is not set 1380# CONFIG_TPS65010 is not set
1376# CONFIG_TWL4030_CORE is not set 1381# CONFIG_TWL4030_CORE is not set
1377# CONFIG_MFD_TMIO is not set 1382# CONFIG_MFD_TMIO is not set
1378# CONFIG_PMIC_DA903X is not set 1383# CONFIG_PMIC_DA903X is not set
1379# CONFIG_PMIC_ADP5520 is not set 1384# CONFIG_PMIC_ADP5520 is not set
1385# CONFIG_MFD_MAX8925 is not set
1380# CONFIG_MFD_WM8400 is not set 1386# CONFIG_MFD_WM8400 is not set
1381# CONFIG_MFD_WM831X is not set 1387# CONFIG_MFD_WM831X is not set
1382# CONFIG_MFD_WM8350_I2C is not set 1388# CONFIG_MFD_WM8350_I2C is not set
1389# CONFIG_MFD_WM8994 is not set
1383# CONFIG_MFD_PCF50633 is not set 1390# CONFIG_MFD_PCF50633 is not set
1384# CONFIG_AB3100_CORE is not set 1391# CONFIG_AB3100_CORE is not set
1385# CONFIG_MFD_88PM8607 is not set 1392# CONFIG_MFD_TIMBERDALE is not set
1393# CONFIG_LPC_SCH is not set
1386# CONFIG_REGULATOR is not set 1394# CONFIG_REGULATOR is not set
1387# CONFIG_MEDIA_SUPPORT is not set 1395# CONFIG_MEDIA_SUPPORT is not set
1388 1396
@@ -1391,6 +1399,7 @@ CONFIG_SSB_POSSIBLE=y
1391# 1399#
1392# CONFIG_AGP is not set 1400# CONFIG_AGP is not set
1393CONFIG_VGA_ARB=y 1401CONFIG_VGA_ARB=y
1402CONFIG_VGA_ARB_MAX_GPUS=16
1394# CONFIG_DRM is not set 1403# CONFIG_DRM is not set
1395# CONFIG_VGASTATE is not set 1404# CONFIG_VGASTATE is not set
1396CONFIG_VIDEO_OUTPUT_CONTROL=m 1405CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1423,6 +1432,7 @@ CONFIG_USB_HID=y
1423# 1432#
1424# Special HID drivers 1433# Special HID drivers
1425# 1434#
1435# CONFIG_HID_3M_PCT is not set
1426CONFIG_HID_A4TECH=y 1436CONFIG_HID_A4TECH=y
1427CONFIG_HID_APPLE=y 1437CONFIG_HID_APPLE=y
1428CONFIG_HID_BELKIN=y 1438CONFIG_HID_BELKIN=y
@@ -1438,14 +1448,19 @@ CONFIG_HID_GYRATION=y
1438CONFIG_HID_LOGITECH=y 1448CONFIG_HID_LOGITECH=y
1439# CONFIG_LOGITECH_FF is not set 1449# CONFIG_LOGITECH_FF is not set
1440# CONFIG_LOGIRUMBLEPAD2_FF is not set 1450# CONFIG_LOGIRUMBLEPAD2_FF is not set
1451# CONFIG_LOGIG940_FF is not set
1441CONFIG_HID_MICROSOFT=y 1452CONFIG_HID_MICROSOFT=y
1453# CONFIG_HID_MOSART is not set
1442CONFIG_HID_MONTEREY=y 1454CONFIG_HID_MONTEREY=y
1443# CONFIG_HID_NTRIG is not set 1455# CONFIG_HID_NTRIG is not set
1456# CONFIG_HID_ORTEK is not set
1444CONFIG_HID_PANTHERLORD=y 1457CONFIG_HID_PANTHERLORD=y
1445# CONFIG_PANTHERLORD_FF is not set 1458# CONFIG_PANTHERLORD_FF is not set
1446CONFIG_HID_PETALYNX=y 1459CONFIG_HID_PETALYNX=y
1460# CONFIG_HID_QUANTA is not set
1447CONFIG_HID_SAMSUNG=y 1461CONFIG_HID_SAMSUNG=y
1448CONFIG_HID_SONY=y 1462CONFIG_HID_SONY=y
1463# CONFIG_HID_STANTUM is not set
1449CONFIG_HID_SUNPLUS=y 1464CONFIG_HID_SUNPLUS=y
1450# CONFIG_HID_GREENASIA is not set 1465# CONFIG_HID_GREENASIA is not set
1451# CONFIG_HID_SMARTJOYPLUS is not set 1466# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1552,7 +1567,6 @@ CONFIG_USB_STORAGE=y
1552# CONFIG_USB_RIO500 is not set 1567# CONFIG_USB_RIO500 is not set
1553# CONFIG_USB_LEGOTOWER is not set 1568# CONFIG_USB_LEGOTOWER is not set
1554# CONFIG_USB_LCD is not set 1569# CONFIG_USB_LCD is not set
1555# CONFIG_USB_BERRY_CHARGE is not set
1556# CONFIG_USB_LED is not set 1570# CONFIG_USB_LED is not set
1557# CONFIG_USB_CYPRESS_CY7C63 is not set 1571# CONFIG_USB_CYPRESS_CY7C63 is not set
1558# CONFIG_USB_CYTHERM is not set 1572# CONFIG_USB_CYTHERM is not set
@@ -1565,7 +1579,6 @@ CONFIG_USB_STORAGE=y
1565# CONFIG_USB_IOWARRIOR is not set 1579# CONFIG_USB_IOWARRIOR is not set
1566# CONFIG_USB_TEST is not set 1580# CONFIG_USB_TEST is not set
1567# CONFIG_USB_ISIGHTFW is not set 1581# CONFIG_USB_ISIGHTFW is not set
1568# CONFIG_USB_VST is not set
1569# CONFIG_USB_ATM is not set 1582# CONFIG_USB_ATM is not set
1570# CONFIG_USB_GADGET is not set 1583# CONFIG_USB_GADGET is not set
1571 1584
@@ -1650,29 +1663,29 @@ CONFIG_RTC_DRV_RX8581=y
1650CONFIG_STAGING=y 1663CONFIG_STAGING=y
1651# CONFIG_STAGING_EXCLUDE_BUILD is not set 1664# CONFIG_STAGING_EXCLUDE_BUILD is not set
1652# CONFIG_ET131X is not set 1665# CONFIG_ET131X is not set
1653# CONFIG_ME4000 is not set
1654# CONFIG_MEILHAUS is not set
1655# CONFIG_USB_IP_COMMON is not set 1666# CONFIG_USB_IP_COMMON is not set
1667# CONFIG_PRISM2_USB is not set
1656# CONFIG_ECHO is not set 1668# CONFIG_ECHO is not set
1657# CONFIG_COMEDI is not set 1669# CONFIG_COMEDI is not set
1658# CONFIG_ASUS_OLED is not set 1670# CONFIG_ASUS_OLED is not set
1659# CONFIG_ALTERA_PCIE_CHDMA is not set 1671# CONFIG_R8187SE is not set
1660# CONFIG_INPUT_MIMIO is not set 1672# CONFIG_RTL8192SU is not set
1673# CONFIG_RTL8192U is not set
1674# CONFIG_RTL8192E is not set
1661# CONFIG_TRANZPORT is not set 1675# CONFIG_TRANZPORT is not set
1662 1676
1663# 1677#
1664# Android 1678# Qualcomm MSM Camera And Video
1679#
1680
1681#
1682# Camera Sensor Selection
1665# 1683#
1666# CONFIG_ANDROID is not set 1684# CONFIG_INPUT_GPIO is not set
1667# CONFIG_DST is not set
1668# CONFIG_POHMELFS is not set 1685# CONFIG_POHMELFS is not set
1669# CONFIG_B3DFG is not set
1670# CONFIG_IDE_PHISON is not set 1686# CONFIG_IDE_PHISON is not set
1671# CONFIG_PLAN9AUTH is not set
1672# CONFIG_HECI is not set
1673# CONFIG_VT6655 is not set 1687# CONFIG_VT6655 is not set
1674# CONFIG_USB_CPC is not set 1688# CONFIG_VT6656 is not set
1675# CONFIG_RDC_17F3101X is not set
1676CONFIG_VME_BUS=y 1689CONFIG_VME_BUS=y
1677 1690
1678# 1691#
@@ -1687,6 +1700,22 @@ CONFIG_VME_TSI148=y
1687# CONFIG_VME_USER is not set 1700# CONFIG_VME_USER is not set
1688 1701
1689# 1702#
1703# VME Board Drivers
1704#
1705# CONFIG_VMIVME_7805 is not set
1706
1707#
1708# RAR Register Driver
1709#
1710# CONFIG_RAR_REGISTER is not set
1711# CONFIG_IIO is not set
1712# CONFIG_RAMZSWAP is not set
1713# CONFIG_BATMAN_ADV is not set
1714# CONFIG_STRIP is not set
1715# CONFIG_DT3155 is not set
1716# CONFIG_CRYSTALHD is not set
1717
1718#
1690# File systems 1719# File systems
1691# 1720#
1692CONFIG_EXT2_FS=y 1721CONFIG_EXT2_FS=y
@@ -1772,6 +1801,7 @@ CONFIG_JFFS2_ZLIB=y
1772# CONFIG_JFFS2_LZO is not set 1801# CONFIG_JFFS2_LZO is not set
1773CONFIG_JFFS2_RTIME=y 1802CONFIG_JFFS2_RTIME=y
1774# CONFIG_JFFS2_RUBIN is not set 1803# CONFIG_JFFS2_RUBIN is not set
1804# CONFIG_LOGFS is not set
1775# CONFIG_CRAMFS is not set 1805# CONFIG_CRAMFS is not set
1776# CONFIG_SQUASHFS is not set 1806# CONFIG_SQUASHFS is not set
1777# CONFIG_VXFS_FS is not set 1807# CONFIG_VXFS_FS is not set
@@ -1798,6 +1828,7 @@ CONFIG_SUNRPC_GSS=y
1798CONFIG_RPCSEC_GSS_KRB5=y 1828CONFIG_RPCSEC_GSS_KRB5=y
1799# CONFIG_RPCSEC_GSS_SPKM3 is not set 1829# CONFIG_RPCSEC_GSS_SPKM3 is not set
1800# CONFIG_SMB_FS is not set 1830# CONFIG_SMB_FS is not set
1831# CONFIG_CEPH_FS is not set
1801CONFIG_CIFS=m 1832CONFIG_CIFS=m
1802# CONFIG_CIFS_STATS is not set 1833# CONFIG_CIFS_STATS is not set
1803# CONFIG_CIFS_WEAK_PW_HASH is not set 1834# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1870,7 +1901,7 @@ CONFIG_CRC32=y
1870# CONFIG_CRC7 is not set 1901# CONFIG_CRC7 is not set
1871CONFIG_LIBCRC32C=m 1902CONFIG_LIBCRC32C=m
1872CONFIG_ZLIB_INFLATE=y 1903CONFIG_ZLIB_INFLATE=y
1873CONFIG_ZLIB_DEFLATE=m 1904CONFIG_ZLIB_DEFLATE=y
1874CONFIG_DECOMPRESS_GZIP=y 1905CONFIG_DECOMPRESS_GZIP=y
1875CONFIG_HAS_IOMEM=y 1906CONFIG_HAS_IOMEM=y
1876CONFIG_HAS_IOPORT=y 1907CONFIG_HAS_IOPORT=y
@@ -2006,6 +2037,7 @@ CONFIG_CRYPTO_MANAGER=y
2006CONFIG_CRYPTO_MANAGER2=y 2037CONFIG_CRYPTO_MANAGER2=y
2007# CONFIG_CRYPTO_GF128MUL is not set 2038# CONFIG_CRYPTO_GF128MUL is not set
2008CONFIG_CRYPTO_NULL=m 2039CONFIG_CRYPTO_NULL=m
2040# CONFIG_CRYPTO_PCRYPT is not set
2009CONFIG_CRYPTO_WORKQUEUE=y 2041CONFIG_CRYPTO_WORKQUEUE=y
2010# CONFIG_CRYPTO_CRYPTD is not set 2042# CONFIG_CRYPTO_CRYPTD is not set
2011CONFIG_CRYPTO_AUTHENC=m 2043CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index aab3baebab8c..55b9e4e867ac 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:39 2010 4# Mon Apr 19 23:17:03 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,11 +97,6 @@ CONFIG_RCU_FANOUT=32
97CONFIG_IKCONFIG=y 97CONFIG_IKCONFIG=y
98CONFIG_IKCONFIG_PROC=y 98CONFIG_IKCONFIG_PROC=y
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101CONFIG_SYSFS_DEPRECATED=y
107CONFIG_SYSFS_DEPRECATED_V2=y 102CONFIG_SYSFS_DEPRECATED_V2=y
@@ -112,6 +107,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 107CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 108# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 109# CONFIG_RD_LZMA is not set
110# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 111# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 112CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 113CONFIG_ANON_INODES=y
@@ -320,6 +316,7 @@ CONFIG_ISA_DMA_API=y
320# Bus options 316# Bus options
321# 317#
322CONFIG_ZONE_DMA=y 318CONFIG_ZONE_DMA=y
319# CONFIG_NEED_DMA_MAP_STATE is not set
323CONFIG_GENERIC_ISA_DMA=y 320CONFIG_GENERIC_ISA_DMA=y
324CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
325CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
@@ -335,7 +332,6 @@ CONFIG_PCIEAER=y
335# CONFIG_PCIEASPM is not set 332# CONFIG_PCIEASPM is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339CONFIG_PCI_DEBUG=y 335CONFIG_PCI_DEBUG=y
340# CONFIG_PCI_STUB is not set 336# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 337# CONFIG_PCI_IOV is not set
@@ -362,7 +358,6 @@ CONFIG_NET=y
362# Networking options 358# Networking options
363# 359#
364CONFIG_PACKET=y 360CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 361CONFIG_UNIX=y
367CONFIG_XFRM=y 362CONFIG_XFRM=y
368CONFIG_XFRM_USER=y 363CONFIG_XFRM_USER=y
@@ -571,6 +566,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
571# UBI - Unsorted block images 566# UBI - Unsorted block images
572# 567#
573# CONFIG_MTD_UBI is not set 568# CONFIG_MTD_UBI is not set
569CONFIG_OF_FLATTREE=y
570CONFIG_OF_DYNAMIC=y
574CONFIG_OF_DEVICE=y 571CONFIG_OF_DEVICE=y
575CONFIG_OF_I2C=y 572CONFIG_OF_I2C=y
576# CONFIG_PARPORT is not set 573# CONFIG_PARPORT is not set
@@ -605,6 +602,7 @@ CONFIG_MISC_DEVICES=y
605# CONFIG_ENCLOSURE_SERVICES is not set 602# CONFIG_ENCLOSURE_SERVICES is not set
606# CONFIG_HP_ILO is not set 603# CONFIG_HP_ILO is not set
607# CONFIG_ISL29003 is not set 604# CONFIG_ISL29003 is not set
605# CONFIG_SENSORS_TSL2550 is not set
608# CONFIG_DS1682 is not set 606# CONFIG_DS1682 is not set
609# CONFIG_C2PORT is not set 607# CONFIG_C2PORT is not set
610 608
@@ -670,6 +668,7 @@ CONFIG_IDE_PROC_FS=y
670# 668#
671# SCSI device support 669# SCSI device support
672# 670#
671CONFIG_SCSI_MOD=y
673# CONFIG_RAID_ATTRS is not set 672# CONFIG_RAID_ATTRS is not set
674CONFIG_SCSI=y 673CONFIG_SCSI=y
675CONFIG_SCSI_DMA=y 674CONFIG_SCSI_DMA=y
@@ -792,6 +791,7 @@ CONFIG_PATA_ALI=y
792# CONFIG_PATA_IT821X is not set 791# CONFIG_PATA_IT821X is not set
793# CONFIG_PATA_IT8213 is not set 792# CONFIG_PATA_IT8213 is not set
794# CONFIG_PATA_JMICRON is not set 793# CONFIG_PATA_JMICRON is not set
794# CONFIG_PATA_LEGACY is not set
795# CONFIG_PATA_TRIFLEX is not set 795# CONFIG_PATA_TRIFLEX is not set
796# CONFIG_PATA_MARVELL is not set 796# CONFIG_PATA_MARVELL is not set
797# CONFIG_PATA_MPIIX is not set 797# CONFIG_PATA_MPIIX is not set
@@ -970,6 +970,7 @@ CONFIG_SERIAL_CORE=y
970CONFIG_SERIAL_CORE_CONSOLE=y 970CONFIG_SERIAL_CORE_CONSOLE=y
971# CONFIG_SERIAL_JSM is not set 971# CONFIG_SERIAL_JSM is not set
972# CONFIG_SERIAL_OF_PLATFORM is not set 972# CONFIG_SERIAL_OF_PLATFORM is not set
973# CONFIG_SERIAL_TIMBERDALE is not set
973# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 974# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
974CONFIG_UNIX98_PTYS=y 975CONFIG_UNIX98_PTYS=y
975# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 976# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1017,6 +1018,7 @@ CONFIG_I2C_HELPER_AUTO=y
1017CONFIG_I2C_MPC=y 1018CONFIG_I2C_MPC=y
1018# CONFIG_I2C_OCORES is not set 1019# CONFIG_I2C_OCORES is not set
1019# CONFIG_I2C_SIMTEC is not set 1020# CONFIG_I2C_SIMTEC is not set
1021# CONFIG_I2C_XILINX is not set
1020 1022
1021# 1023#
1022# External I2C/SMBus adapter drivers 1024# External I2C/SMBus adapter drivers
@@ -1029,15 +1031,9 @@ CONFIG_I2C_MPC=y
1029# 1031#
1030# CONFIG_I2C_PCA_PLATFORM is not set 1032# CONFIG_I2C_PCA_PLATFORM is not set
1031# CONFIG_I2C_STUB is not set 1033# CONFIG_I2C_STUB is not set
1032
1033#
1034# Miscellaneous I2C Chip support
1035#
1036# CONFIG_SENSORS_TSL2550 is not set
1037# CONFIG_I2C_DEBUG_CORE is not set 1034# CONFIG_I2C_DEBUG_CORE is not set
1038# CONFIG_I2C_DEBUG_ALGO is not set 1035# CONFIG_I2C_DEBUG_ALGO is not set
1039# CONFIG_I2C_DEBUG_BUS is not set 1036# CONFIG_I2C_DEBUG_BUS is not set
1040# CONFIG_I2C_DEBUG_CHIP is not set
1041# CONFIG_SPI is not set 1037# CONFIG_SPI is not set
1042 1038
1043# 1039#
@@ -1062,18 +1058,21 @@ CONFIG_SSB_POSSIBLE=y
1062# Multifunction device drivers 1058# Multifunction device drivers
1063# 1059#
1064# CONFIG_MFD_CORE is not set 1060# CONFIG_MFD_CORE is not set
1061# CONFIG_MFD_88PM860X is not set
1065# CONFIG_MFD_SM501 is not set 1062# CONFIG_MFD_SM501 is not set
1066# CONFIG_HTC_PASIC3 is not set 1063# CONFIG_HTC_PASIC3 is not set
1067# CONFIG_TWL4030_CORE is not set 1064# CONFIG_TWL4030_CORE is not set
1068# CONFIG_MFD_TMIO is not set 1065# CONFIG_MFD_TMIO is not set
1069# CONFIG_PMIC_DA903X is not set 1066# CONFIG_PMIC_DA903X is not set
1070# CONFIG_PMIC_ADP5520 is not set 1067# CONFIG_PMIC_ADP5520 is not set
1068# CONFIG_MFD_MAX8925 is not set
1071# CONFIG_MFD_WM8400 is not set 1069# CONFIG_MFD_WM8400 is not set
1072# CONFIG_MFD_WM831X is not set 1070# CONFIG_MFD_WM831X is not set
1073# CONFIG_MFD_WM8350_I2C is not set 1071# CONFIG_MFD_WM8350_I2C is not set
1072# CONFIG_MFD_WM8994 is not set
1074# CONFIG_MFD_PCF50633 is not set 1073# CONFIG_MFD_PCF50633 is not set
1075# CONFIG_AB3100_CORE is not set 1074# CONFIG_AB3100_CORE is not set
1076# CONFIG_MFD_88PM8607 is not set 1075# CONFIG_LPC_SCH is not set
1077# CONFIG_REGULATOR is not set 1076# CONFIG_REGULATOR is not set
1078# CONFIG_MEDIA_SUPPORT is not set 1077# CONFIG_MEDIA_SUPPORT is not set
1079 1078
@@ -1082,6 +1081,7 @@ CONFIG_SSB_POSSIBLE=y
1082# 1081#
1083# CONFIG_AGP is not set 1082# CONFIG_AGP is not set
1084CONFIG_VGA_ARB=y 1083CONFIG_VGA_ARB=y
1084CONFIG_VGA_ARB_MAX_GPUS=16
1085# CONFIG_DRM is not set 1085# CONFIG_DRM is not set
1086# CONFIG_VGASTATE is not set 1086# CONFIG_VGASTATE is not set
1087CONFIG_VIDEO_OUTPUT_CONTROL=y 1087CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1434,6 +1434,7 @@ CONFIG_MISC_FILESYSTEMS=y
1434# CONFIG_BFS_FS is not set 1434# CONFIG_BFS_FS is not set
1435# CONFIG_EFS_FS is not set 1435# CONFIG_EFS_FS is not set
1436# CONFIG_JFFS2_FS is not set 1436# CONFIG_JFFS2_FS is not set
1437# CONFIG_LOGFS is not set
1437# CONFIG_CRAMFS is not set 1438# CONFIG_CRAMFS is not set
1438# CONFIG_SQUASHFS is not set 1439# CONFIG_SQUASHFS is not set
1439# CONFIG_VXFS_FS is not set 1440# CONFIG_VXFS_FS is not set
@@ -1461,6 +1462,7 @@ CONFIG_SUNRPC=y
1461# CONFIG_RPCSEC_GSS_KRB5 is not set 1462# CONFIG_RPCSEC_GSS_KRB5 is not set
1462# CONFIG_RPCSEC_GSS_SPKM3 is not set 1463# CONFIG_RPCSEC_GSS_SPKM3 is not set
1463# CONFIG_SMB_FS is not set 1464# CONFIG_SMB_FS is not set
1465# CONFIG_CEPH_FS is not set
1464# CONFIG_CIFS is not set 1466# CONFIG_CIFS is not set
1465# CONFIG_NCP_FS is not set 1467# CONFIG_NCP_FS is not set
1466# CONFIG_CODA_FS is not set 1468# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 727a8c8d15b5..1be38eb05783 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:40 2010 4# Mon Apr 19 23:17:04 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,15 +97,11 @@ CONFIG_TREE_RCU=y
97# CONFIG_RCU_TRACE is not set 97# CONFIG_RCU_TRACE is not set
98CONFIG_RCU_FANOUT=32 98CONFIG_RCU_FANOUT=32
99# CONFIG_RCU_FANOUT_EXACT is not set 99# CONFIG_RCU_FANOUT_EXACT is not set
100# CONFIG_RCU_FAST_NO_HZ is not set
100# CONFIG_TREE_RCU_TRACE is not set 101# CONFIG_TREE_RCU_TRACE is not set
101CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
102CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
103CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
104CONFIG_GROUP_SCHED=y
105# CONFIG_FAIR_GROUP_SCHED is not set
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 106CONFIG_SYSFS_DEPRECATED=y
111CONFIG_SYSFS_DEPRECATED_V2=y 107CONFIG_SYSFS_DEPRECATED_V2=y
@@ -116,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
117# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
118# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
119# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
120CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -326,6 +323,7 @@ CONFIG_ISA_DMA_API=y
326# Bus options 323# Bus options
327# 324#
328CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
329CONFIG_GENERIC_ISA_DMA=y 327CONFIG_GENERIC_ISA_DMA=y
330CONFIG_PPC_INDIRECT_PCI=y 328CONFIG_PPC_INDIRECT_PCI=y
331CONFIG_FSL_SOC=y 329CONFIG_FSL_SOC=y
@@ -337,7 +335,6 @@ CONFIG_PCI_SYSCALL=y
337# CONFIG_PCIEPORTBUS is not set 335# CONFIG_PCIEPORTBUS is not set
338CONFIG_ARCH_SUPPORTS_MSI=y 336CONFIG_ARCH_SUPPORTS_MSI=y
339# CONFIG_PCI_MSI is not set 337# CONFIG_PCI_MSI is not set
340# CONFIG_PCI_LEGACY is not set
341# CONFIG_PCI_DEBUG is not set 338# CONFIG_PCI_DEBUG is not set
342# CONFIG_PCI_STUB is not set 339# CONFIG_PCI_STUB is not set
343# CONFIG_PCI_IOV is not set 340# CONFIG_PCI_IOV is not set
@@ -365,7 +362,6 @@ CONFIG_NET=y
365# Networking options 362# Networking options
366# 363#
367CONFIG_PACKET=y 364CONFIG_PACKET=y
368# CONFIG_PACKET_MMAP is not set
369CONFIG_UNIX=y 365CONFIG_UNIX=y
370CONFIG_XFRM=y 366CONFIG_XFRM=y
371CONFIG_XFRM_USER=y 367CONFIG_XFRM_USER=y
@@ -498,6 +494,8 @@ CONFIG_EXTRA_FIRMWARE=""
498# CONFIG_SYS_HYPERVISOR is not set 494# CONFIG_SYS_HYPERVISOR is not set
499# CONFIG_CONNECTOR is not set 495# CONFIG_CONNECTOR is not set
500# CONFIG_MTD is not set 496# CONFIG_MTD is not set
497CONFIG_OF_FLATTREE=y
498CONFIG_OF_DYNAMIC=y
501CONFIG_OF_DEVICE=y 499CONFIG_OF_DEVICE=y
502CONFIG_OF_I2C=y 500CONFIG_OF_I2C=y
503CONFIG_OF_MDIO=y 501CONFIG_OF_MDIO=y
@@ -534,6 +532,7 @@ CONFIG_MISC_DEVICES=y
534# CONFIG_ENCLOSURE_SERVICES is not set 532# CONFIG_ENCLOSURE_SERVICES is not set
535# CONFIG_HP_ILO is not set 533# CONFIG_HP_ILO is not set
536# CONFIG_ISL29003 is not set 534# CONFIG_ISL29003 is not set
535# CONFIG_SENSORS_TSL2550 is not set
537# CONFIG_DS1682 is not set 536# CONFIG_DS1682 is not set
538# CONFIG_C2PORT is not set 537# CONFIG_C2PORT is not set
539 538
@@ -551,6 +550,7 @@ CONFIG_HAVE_IDE=y
551# 550#
552# SCSI device support 551# SCSI device support
553# 552#
553CONFIG_SCSI_MOD=y
554# CONFIG_RAID_ATTRS is not set 554# CONFIG_RAID_ATTRS is not set
555CONFIG_SCSI=y 555CONFIG_SCSI=y
556CONFIG_SCSI_DMA=y 556CONFIG_SCSI_DMA=y
@@ -675,6 +675,7 @@ CONFIG_PATA_ALI=y
675# CONFIG_PATA_IT821X is not set 675# CONFIG_PATA_IT821X is not set
676# CONFIG_PATA_IT8213 is not set 676# CONFIG_PATA_IT8213 is not set
677# CONFIG_PATA_JMICRON is not set 677# CONFIG_PATA_JMICRON is not set
678# CONFIG_PATA_LEGACY is not set
678# CONFIG_PATA_TRIFLEX is not set 679# CONFIG_PATA_TRIFLEX is not set
679# CONFIG_PATA_MARVELL is not set 680# CONFIG_PATA_MARVELL is not set
680# CONFIG_PATA_MPIIX is not set 681# CONFIG_PATA_MPIIX is not set
@@ -799,6 +800,8 @@ CONFIG_NETDEV_10000=y
799# CONFIG_CHELSIO_T1 is not set 800# CONFIG_CHELSIO_T1 is not set
800CONFIG_CHELSIO_T3_DEPENDS=y 801CONFIG_CHELSIO_T3_DEPENDS=y
801# CONFIG_CHELSIO_T3 is not set 802# CONFIG_CHELSIO_T3 is not set
803CONFIG_CHELSIO_T4_DEPENDS=y
804# CONFIG_CHELSIO_T4 is not set
802# CONFIG_ENIC is not set 805# CONFIG_ENIC is not set
803# CONFIG_IXGBE is not set 806# CONFIG_IXGBE is not set
804# CONFIG_IXGB is not set 807# CONFIG_IXGB is not set
@@ -811,6 +814,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
811# CONFIG_MLX4_CORE is not set 814# CONFIG_MLX4_CORE is not set
812# CONFIG_TEHUTI is not set 815# CONFIG_TEHUTI is not set
813# CONFIG_BNX2X is not set 816# CONFIG_BNX2X is not set
817# CONFIG_QLCNIC is not set
814# CONFIG_QLGE is not set 818# CONFIG_QLGE is not set
815# CONFIG_SFC is not set 819# CONFIG_SFC is not set
816# CONFIG_BE2NET is not set 820# CONFIG_BE2NET is not set
@@ -920,6 +924,7 @@ CONFIG_SERIAL_CORE=y
920CONFIG_SERIAL_CORE_CONSOLE=y 924CONFIG_SERIAL_CORE_CONSOLE=y
921# CONFIG_SERIAL_JSM is not set 925# CONFIG_SERIAL_JSM is not set
922# CONFIG_SERIAL_OF_PLATFORM is not set 926# CONFIG_SERIAL_OF_PLATFORM is not set
927# CONFIG_SERIAL_TIMBERDALE is not set
923# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 928# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
924CONFIG_UNIX98_PTYS=y 929CONFIG_UNIX98_PTYS=y
925# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 930# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -968,6 +973,7 @@ CONFIG_I2C_HELPER_AUTO=y
968CONFIG_I2C_MPC=y 973CONFIG_I2C_MPC=y
969# CONFIG_I2C_OCORES is not set 974# CONFIG_I2C_OCORES is not set
970# CONFIG_I2C_SIMTEC is not set 975# CONFIG_I2C_SIMTEC is not set
976# CONFIG_I2C_XILINX is not set
971 977
972# 978#
973# External I2C/SMBus adapter drivers 979# External I2C/SMBus adapter drivers
@@ -981,15 +987,9 @@ CONFIG_I2C_MPC=y
981# 987#
982# CONFIG_I2C_PCA_PLATFORM is not set 988# CONFIG_I2C_PCA_PLATFORM is not set
983# CONFIG_I2C_STUB is not set 989# CONFIG_I2C_STUB is not set
984
985#
986# Miscellaneous I2C Chip support
987#
988# CONFIG_SENSORS_TSL2550 is not set
989# CONFIG_I2C_DEBUG_CORE is not set 990# CONFIG_I2C_DEBUG_CORE is not set
990# CONFIG_I2C_DEBUG_ALGO is not set 991# CONFIG_I2C_DEBUG_ALGO is not set
991# CONFIG_I2C_DEBUG_BUS is not set 992# CONFIG_I2C_DEBUG_BUS is not set
992# CONFIG_I2C_DEBUG_CHIP is not set
993# CONFIG_SPI is not set 993# CONFIG_SPI is not set
994 994
995# 995#
@@ -1014,18 +1014,21 @@ CONFIG_SSB_POSSIBLE=y
1014# Multifunction device drivers 1014# Multifunction device drivers
1015# 1015#
1016# CONFIG_MFD_CORE is not set 1016# CONFIG_MFD_CORE is not set
1017# CONFIG_MFD_88PM860X is not set
1017# CONFIG_MFD_SM501 is not set 1018# CONFIG_MFD_SM501 is not set
1018# CONFIG_HTC_PASIC3 is not set 1019# CONFIG_HTC_PASIC3 is not set
1019# CONFIG_TWL4030_CORE is not set 1020# CONFIG_TWL4030_CORE is not set
1020# CONFIG_MFD_TMIO is not set 1021# CONFIG_MFD_TMIO is not set
1021# CONFIG_PMIC_DA903X is not set 1022# CONFIG_PMIC_DA903X is not set
1022# CONFIG_PMIC_ADP5520 is not set 1023# CONFIG_PMIC_ADP5520 is not set
1024# CONFIG_MFD_MAX8925 is not set
1023# CONFIG_MFD_WM8400 is not set 1025# CONFIG_MFD_WM8400 is not set
1024# CONFIG_MFD_WM831X is not set 1026# CONFIG_MFD_WM831X is not set
1025# CONFIG_MFD_WM8350_I2C is not set 1027# CONFIG_MFD_WM8350_I2C is not set
1028# CONFIG_MFD_WM8994 is not set
1026# CONFIG_MFD_PCF50633 is not set 1029# CONFIG_MFD_PCF50633 is not set
1027# CONFIG_AB3100_CORE is not set 1030# CONFIG_AB3100_CORE is not set
1028# CONFIG_MFD_88PM8607 is not set 1031# CONFIG_LPC_SCH is not set
1029# CONFIG_REGULATOR is not set 1032# CONFIG_REGULATOR is not set
1030# CONFIG_MEDIA_SUPPORT is not set 1033# CONFIG_MEDIA_SUPPORT is not set
1031 1034
@@ -1034,6 +1037,7 @@ CONFIG_SSB_POSSIBLE=y
1034# 1037#
1035# CONFIG_AGP is not set 1038# CONFIG_AGP is not set
1036CONFIG_VGA_ARB=y 1039CONFIG_VGA_ARB=y
1040CONFIG_VGA_ARB_MAX_GPUS=16
1037# CONFIG_DRM is not set 1041# CONFIG_DRM is not set
1038# CONFIG_VGASTATE is not set 1042# CONFIG_VGASTATE is not set
1039CONFIG_VIDEO_OUTPUT_CONTROL=y 1043CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1151,6 +1155,7 @@ CONFIG_SND_INTEL8X0=y
1151CONFIG_SND_PPC=y 1155CONFIG_SND_PPC=y
1152CONFIG_SND_USB=y 1156CONFIG_SND_USB=y
1153# CONFIG_SND_USB_AUDIO is not set 1157# CONFIG_SND_USB_AUDIO is not set
1158# CONFIG_SND_USB_UA101 is not set
1154# CONFIG_SND_USB_USX2Y is not set 1159# CONFIG_SND_USB_USX2Y is not set
1155# CONFIG_SND_USB_CAIAQ is not set 1160# CONFIG_SND_USB_CAIAQ is not set
1156# CONFIG_SND_SOC is not set 1161# CONFIG_SND_SOC is not set
@@ -1170,6 +1175,7 @@ CONFIG_USB_HID=y
1170# 1175#
1171# Special HID drivers 1176# Special HID drivers
1172# 1177#
1178# CONFIG_HID_3M_PCT is not set
1173CONFIG_HID_A4TECH=y 1179CONFIG_HID_A4TECH=y
1174CONFIG_HID_APPLE=y 1180CONFIG_HID_APPLE=y
1175CONFIG_HID_BELKIN=y 1181CONFIG_HID_BELKIN=y
@@ -1185,14 +1191,19 @@ CONFIG_HID_GYRATION=y
1185CONFIG_HID_LOGITECH=y 1191CONFIG_HID_LOGITECH=y
1186# CONFIG_LOGITECH_FF is not set 1192# CONFIG_LOGITECH_FF is not set
1187# CONFIG_LOGIRUMBLEPAD2_FF is not set 1193# CONFIG_LOGIRUMBLEPAD2_FF is not set
1194# CONFIG_LOGIG940_FF is not set
1188CONFIG_HID_MICROSOFT=y 1195CONFIG_HID_MICROSOFT=y
1196# CONFIG_HID_MOSART is not set
1189CONFIG_HID_MONTEREY=y 1197CONFIG_HID_MONTEREY=y
1190# CONFIG_HID_NTRIG is not set 1198# CONFIG_HID_NTRIG is not set
1199# CONFIG_HID_ORTEK is not set
1191CONFIG_HID_PANTHERLORD=y 1200CONFIG_HID_PANTHERLORD=y
1192# CONFIG_PANTHERLORD_FF is not set 1201# CONFIG_PANTHERLORD_FF is not set
1193CONFIG_HID_PETALYNX=y 1202CONFIG_HID_PETALYNX=y
1203# CONFIG_HID_QUANTA is not set
1194CONFIG_HID_SAMSUNG=y 1204CONFIG_HID_SAMSUNG=y
1195CONFIG_HID_SONY=y 1205CONFIG_HID_SONY=y
1206# CONFIG_HID_STANTUM is not set
1196CONFIG_HID_SUNPLUS=y 1207CONFIG_HID_SUNPLUS=y
1197# CONFIG_HID_GREENASIA is not set 1208# CONFIG_HID_GREENASIA is not set
1198# CONFIG_HID_SMARTJOYPLUS is not set 1209# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1300,7 +1311,6 @@ CONFIG_USB_STORAGE=y
1300# CONFIG_USB_RIO500 is not set 1311# CONFIG_USB_RIO500 is not set
1301# CONFIG_USB_LEGOTOWER is not set 1312# CONFIG_USB_LEGOTOWER is not set
1302# CONFIG_USB_LCD is not set 1313# CONFIG_USB_LCD is not set
1303# CONFIG_USB_BERRY_CHARGE is not set
1304# CONFIG_USB_LED is not set 1314# CONFIG_USB_LED is not set
1305# CONFIG_USB_CYPRESS_CY7C63 is not set 1315# CONFIG_USB_CYPRESS_CY7C63 is not set
1306# CONFIG_USB_CYTHERM is not set 1316# CONFIG_USB_CYTHERM is not set
@@ -1313,7 +1323,6 @@ CONFIG_USB_STORAGE=y
1313# CONFIG_USB_IOWARRIOR is not set 1323# CONFIG_USB_IOWARRIOR is not set
1314# CONFIG_USB_TEST is not set 1324# CONFIG_USB_TEST is not set
1315# CONFIG_USB_ISIGHTFW is not set 1325# CONFIG_USB_ISIGHTFW is not set
1316# CONFIG_USB_VST is not set
1317# CONFIG_USB_GADGET is not set 1326# CONFIG_USB_GADGET is not set
1318 1327
1319# 1328#
@@ -1475,6 +1484,7 @@ CONFIG_BEFS_FS=m
1475# CONFIG_BEFS_DEBUG is not set 1484# CONFIG_BEFS_DEBUG is not set
1476CONFIG_BFS_FS=m 1485CONFIG_BFS_FS=m
1477CONFIG_EFS_FS=m 1486CONFIG_EFS_FS=m
1487# CONFIG_LOGFS is not set
1478CONFIG_CRAMFS=y 1488CONFIG_CRAMFS=y
1479# CONFIG_SQUASHFS is not set 1489# CONFIG_SQUASHFS is not set
1480CONFIG_VXFS_FS=m 1490CONFIG_VXFS_FS=m
@@ -1506,6 +1516,7 @@ CONFIG_SUNRPC_GSS=y
1506CONFIG_RPCSEC_GSS_KRB5=y 1516CONFIG_RPCSEC_GSS_KRB5=y
1507# CONFIG_RPCSEC_GSS_SPKM3 is not set 1517# CONFIG_RPCSEC_GSS_SPKM3 is not set
1508# CONFIG_SMB_FS is not set 1518# CONFIG_SMB_FS is not set
1519# CONFIG_CEPH_FS is not set
1509# CONFIG_CIFS is not set 1520# CONFIG_CIFS is not set
1510# CONFIG_NCP_FS is not set 1521# CONFIG_NCP_FS is not set
1511# CONFIG_CODA_FS is not set 1522# CONFIG_CODA_FS is not set
@@ -1717,6 +1728,7 @@ CONFIG_CRYPTO_MANAGER=y
1717CONFIG_CRYPTO_MANAGER2=y 1728CONFIG_CRYPTO_MANAGER2=y
1718# CONFIG_CRYPTO_GF128MUL is not set 1729# CONFIG_CRYPTO_GF128MUL is not set
1719# CONFIG_CRYPTO_NULL is not set 1730# CONFIG_CRYPTO_NULL is not set
1731# CONFIG_CRYPTO_PCRYPT is not set
1720CONFIG_CRYPTO_WORKQUEUE=y 1732CONFIG_CRYPTO_WORKQUEUE=y
1721# CONFIG_CRYPTO_CRYPTD is not set 1733# CONFIG_CRYPTO_CRYPTD is not set
1722# CONFIG_CRYPTO_AUTHENC is not set 1734# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index 4fb04dd2cde3..a63009457323 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:38 2010 4# Mon Apr 19 23:17:02 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -101,11 +101,6 @@ CONFIG_RCU_FANOUT=32
101CONFIG_IKCONFIG=y 101CONFIG_IKCONFIG=y
102CONFIG_IKCONFIG_PROC=y 102CONFIG_IKCONFIG_PROC=y
103CONFIG_LOG_BUF_SHIFT=14 103CONFIG_LOG_BUF_SHIFT=14
104CONFIG_GROUP_SCHED=y
105CONFIG_FAIR_GROUP_SCHED=y
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 105CONFIG_SYSFS_DEPRECATED=y
111CONFIG_SYSFS_DEPRECATED_V2=y 106CONFIG_SYSFS_DEPRECATED_V2=y
@@ -116,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
117# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
118# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
119# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
120CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -327,6 +323,7 @@ CONFIG_ISA_DMA_API=y
327# Bus options 323# Bus options
328# 324#
329CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
330CONFIG_GENERIC_ISA_DMA=y 327CONFIG_GENERIC_ISA_DMA=y
331CONFIG_PPC_INDIRECT_PCI=y 328CONFIG_PPC_INDIRECT_PCI=y
332CONFIG_FSL_SOC=y 329CONFIG_FSL_SOC=y
@@ -342,7 +339,6 @@ CONFIG_PCIEAER=y
342# CONFIG_PCIEASPM is not set 339# CONFIG_PCIEASPM is not set
343CONFIG_ARCH_SUPPORTS_MSI=y 340CONFIG_ARCH_SUPPORTS_MSI=y
344# CONFIG_PCI_MSI is not set 341# CONFIG_PCI_MSI is not set
345# CONFIG_PCI_LEGACY is not set
346# CONFIG_PCI_DEBUG is not set 342# CONFIG_PCI_DEBUG is not set
347# CONFIG_PCI_STUB is not set 343# CONFIG_PCI_STUB is not set
348# CONFIG_PCI_IOV is not set 344# CONFIG_PCI_IOV is not set
@@ -369,7 +365,6 @@ CONFIG_NET=y
369# Networking options 365# Networking options
370# 366#
371CONFIG_PACKET=y 367CONFIG_PACKET=y
372CONFIG_PACKET_MMAP=y
373CONFIG_UNIX=y 368CONFIG_UNIX=y
374CONFIG_XFRM=y 369CONFIG_XFRM=y
375CONFIG_XFRM_USER=m 370CONFIG_XFRM_USER=m
@@ -552,6 +547,7 @@ CONFIG_ATM_BR2684=m
552# CONFIG_ATM_BR2684_IPFILTER is not set 547# CONFIG_ATM_BR2684_IPFILTER is not set
553CONFIG_STP=m 548CONFIG_STP=m
554CONFIG_BRIDGE=m 549CONFIG_BRIDGE=m
550CONFIG_BRIDGE_IGMP_SNOOPING=y
555# CONFIG_NET_DSA is not set 551# CONFIG_NET_DSA is not set
556CONFIG_VLAN_8021Q=m 552CONFIG_VLAN_8021Q=m
557# CONFIG_VLAN_8021Q_GVRP is not set 553# CONFIG_VLAN_8021Q_GVRP is not set
@@ -733,6 +729,8 @@ CONFIG_MTD_PHYSMAP_OF=y
733# UBI - Unsorted block images 729# UBI - Unsorted block images
734# 730#
735# CONFIG_MTD_UBI is not set 731# CONFIG_MTD_UBI is not set
732CONFIG_OF_FLATTREE=y
733CONFIG_OF_DYNAMIC=y
736CONFIG_OF_DEVICE=y 734CONFIG_OF_DEVICE=y
737CONFIG_OF_I2C=y 735CONFIG_OF_I2C=y
738CONFIG_OF_MDIO=y 736CONFIG_OF_MDIO=y
@@ -768,6 +766,7 @@ CONFIG_MISC_DEVICES=y
768# CONFIG_ENCLOSURE_SERVICES is not set 766# CONFIG_ENCLOSURE_SERVICES is not set
769# CONFIG_HP_ILO is not set 767# CONFIG_HP_ILO is not set
770# CONFIG_ISL29003 is not set 768# CONFIG_ISL29003 is not set
769# CONFIG_SENSORS_TSL2550 is not set
771# CONFIG_DS1682 is not set 770# CONFIG_DS1682 is not set
772# CONFIG_C2PORT is not set 771# CONFIG_C2PORT is not set
773 772
@@ -785,6 +784,7 @@ CONFIG_HAVE_IDE=y
785# 784#
786# SCSI device support 785# SCSI device support
787# 786#
787CONFIG_SCSI_MOD=y
788# CONFIG_RAID_ATTRS is not set 788# CONFIG_RAID_ATTRS is not set
789# CONFIG_SCSI is not set 789# CONFIG_SCSI is not set
790# CONFIG_SCSI_DMA is not set 790# CONFIG_SCSI_DMA is not set
@@ -1024,6 +1024,7 @@ CONFIG_SERIAL_CORE=y
1024CONFIG_SERIAL_CORE_CONSOLE=y 1024CONFIG_SERIAL_CORE_CONSOLE=y
1025# CONFIG_SERIAL_JSM is not set 1025# CONFIG_SERIAL_JSM is not set
1026# CONFIG_SERIAL_OF_PLATFORM is not set 1026# CONFIG_SERIAL_OF_PLATFORM is not set
1027# CONFIG_SERIAL_TIMBERDALE is not set
1027# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1028# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1028CONFIG_UNIX98_PTYS=y 1029CONFIG_UNIX98_PTYS=y
1029# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1030# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1074,6 +1075,7 @@ CONFIG_I2C_HELPER_AUTO=y
1074CONFIG_I2C_MPC=y 1075CONFIG_I2C_MPC=y
1075# CONFIG_I2C_OCORES is not set 1076# CONFIG_I2C_OCORES is not set
1076# CONFIG_I2C_SIMTEC is not set 1077# CONFIG_I2C_SIMTEC is not set
1078# CONFIG_I2C_XILINX is not set
1077 1079
1078# 1080#
1079# External I2C/SMBus adapter drivers 1081# External I2C/SMBus adapter drivers
@@ -1086,15 +1088,9 @@ CONFIG_I2C_MPC=y
1086# 1088#
1087# CONFIG_I2C_PCA_PLATFORM is not set 1089# CONFIG_I2C_PCA_PLATFORM is not set
1088# CONFIG_I2C_STUB is not set 1090# CONFIG_I2C_STUB is not set
1089
1090#
1091# Miscellaneous I2C Chip support
1092#
1093# CONFIG_SENSORS_TSL2550 is not set
1094# CONFIG_I2C_DEBUG_CORE is not set 1091# CONFIG_I2C_DEBUG_CORE is not set
1095# CONFIG_I2C_DEBUG_ALGO is not set 1092# CONFIG_I2C_DEBUG_ALGO is not set
1096# CONFIG_I2C_DEBUG_BUS is not set 1093# CONFIG_I2C_DEBUG_BUS is not set
1097# CONFIG_I2C_DEBUG_CHIP is not set
1098# CONFIG_SPI is not set 1094# CONFIG_SPI is not set
1099 1095
1100# 1096#
@@ -1120,10 +1116,11 @@ CONFIG_HWMON=y
1120# CONFIG_SENSORS_ADM1029 is not set 1116# CONFIG_SENSORS_ADM1029 is not set
1121# CONFIG_SENSORS_ADM1031 is not set 1117# CONFIG_SENSORS_ADM1031 is not set
1122# CONFIG_SENSORS_ADM9240 is not set 1118# CONFIG_SENSORS_ADM9240 is not set
1119# CONFIG_SENSORS_ADT7411 is not set
1123# CONFIG_SENSORS_ADT7462 is not set 1120# CONFIG_SENSORS_ADT7462 is not set
1124# CONFIG_SENSORS_ADT7470 is not set 1121# CONFIG_SENSORS_ADT7470 is not set
1125# CONFIG_SENSORS_ADT7473 is not set
1126# CONFIG_SENSORS_ADT7475 is not set 1122# CONFIG_SENSORS_ADT7475 is not set
1123# CONFIG_SENSORS_ASC7621 is not set
1127# CONFIG_SENSORS_ATXP1 is not set 1124# CONFIG_SENSORS_ATXP1 is not set
1128# CONFIG_SENSORS_DS1621 is not set 1125# CONFIG_SENSORS_DS1621 is not set
1129# CONFIG_SENSORS_I5K_AMB is not set 1126# CONFIG_SENSORS_I5K_AMB is not set
@@ -1160,6 +1157,7 @@ CONFIG_HWMON=y
1160# CONFIG_SENSORS_SMSC47M192 is not set 1157# CONFIG_SENSORS_SMSC47M192 is not set
1161# CONFIG_SENSORS_SMSC47B397 is not set 1158# CONFIG_SENSORS_SMSC47B397 is not set
1162# CONFIG_SENSORS_ADS7828 is not set 1159# CONFIG_SENSORS_ADS7828 is not set
1160# CONFIG_SENSORS_AMC6821 is not set
1163# CONFIG_SENSORS_THMC50 is not set 1161# CONFIG_SENSORS_THMC50 is not set
1164# CONFIG_SENSORS_TMP401 is not set 1162# CONFIG_SENSORS_TMP401 is not set
1165# CONFIG_SENSORS_TMP421 is not set 1163# CONFIG_SENSORS_TMP421 is not set
@@ -1202,18 +1200,21 @@ CONFIG_SSB_POSSIBLE=y
1202# Multifunction device drivers 1200# Multifunction device drivers
1203# 1201#
1204# CONFIG_MFD_CORE is not set 1202# CONFIG_MFD_CORE is not set
1203# CONFIG_MFD_88PM860X is not set
1205# CONFIG_MFD_SM501 is not set 1204# CONFIG_MFD_SM501 is not set
1206# CONFIG_HTC_PASIC3 is not set 1205# CONFIG_HTC_PASIC3 is not set
1207# CONFIG_TWL4030_CORE is not set 1206# CONFIG_TWL4030_CORE is not set
1208# CONFIG_MFD_TMIO is not set 1207# CONFIG_MFD_TMIO is not set
1209# CONFIG_PMIC_DA903X is not set 1208# CONFIG_PMIC_DA903X is not set
1210# CONFIG_PMIC_ADP5520 is not set 1209# CONFIG_PMIC_ADP5520 is not set
1210# CONFIG_MFD_MAX8925 is not set
1211# CONFIG_MFD_WM8400 is not set 1211# CONFIG_MFD_WM8400 is not set
1212# CONFIG_MFD_WM831X is not set 1212# CONFIG_MFD_WM831X is not set
1213# CONFIG_MFD_WM8350_I2C is not set 1213# CONFIG_MFD_WM8350_I2C is not set
1214# CONFIG_MFD_WM8994 is not set
1214# CONFIG_MFD_PCF50633 is not set 1215# CONFIG_MFD_PCF50633 is not set
1215# CONFIG_AB3100_CORE is not set 1216# CONFIG_AB3100_CORE is not set
1216# CONFIG_MFD_88PM8607 is not set 1217# CONFIG_LPC_SCH is not set
1217# CONFIG_REGULATOR is not set 1218# CONFIG_REGULATOR is not set
1218# CONFIG_MEDIA_SUPPORT is not set 1219# CONFIG_MEDIA_SUPPORT is not set
1219 1220
@@ -1222,6 +1223,7 @@ CONFIG_SSB_POSSIBLE=y
1222# 1223#
1223# CONFIG_AGP is not set 1224# CONFIG_AGP is not set
1224CONFIG_VGA_ARB=y 1225CONFIG_VGA_ARB=y
1226CONFIG_VGA_ARB_MAX_GPUS=16
1225# CONFIG_DRM is not set 1227# CONFIG_DRM is not set
1226# CONFIG_VGASTATE is not set 1228# CONFIG_VGASTATE is not set
1227CONFIG_VIDEO_OUTPUT_CONTROL=m 1229CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1376,6 +1378,7 @@ CONFIG_MISC_FILESYSTEMS=y
1376# CONFIG_BFS_FS is not set 1378# CONFIG_BFS_FS is not set
1377# CONFIG_EFS_FS is not set 1379# CONFIG_EFS_FS is not set
1378# CONFIG_JFFS2_FS is not set 1380# CONFIG_JFFS2_FS is not set
1381# CONFIG_LOGFS is not set
1379# CONFIG_CRAMFS is not set 1382# CONFIG_CRAMFS is not set
1380# CONFIG_SQUASHFS is not set 1383# CONFIG_SQUASHFS is not set
1381# CONFIG_VXFS_FS is not set 1384# CONFIG_VXFS_FS is not set
@@ -1408,6 +1411,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
1408CONFIG_SMB_FS=m 1411CONFIG_SMB_FS=m
1409CONFIG_SMB_NLS_DEFAULT=y 1412CONFIG_SMB_NLS_DEFAULT=y
1410CONFIG_SMB_NLS_REMOTE="cp437" 1413CONFIG_SMB_NLS_REMOTE="cp437"
1414# CONFIG_CEPH_FS is not set
1411CONFIG_CIFS=m 1415CONFIG_CIFS=m
1412# CONFIG_CIFS_STATS is not set 1416# CONFIG_CIFS_STATS is not set
1413# CONFIG_CIFS_WEAK_PW_HASH is not set 1417# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1540,6 +1544,7 @@ CONFIG_DEBUG_INFO=y
1540# CONFIG_BACKTRACE_SELF_TEST is not set 1544# CONFIG_BACKTRACE_SELF_TEST is not set
1541# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1545# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1542# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1546# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1547# CONFIG_LKDTM is not set
1543# CONFIG_FAULT_INJECTION is not set 1548# CONFIG_FAULT_INJECTION is not set
1544# CONFIG_LATENCYTOP is not set 1549# CONFIG_LATENCYTOP is not set
1545CONFIG_SYSCTL_SYSCALL_CHECK=y 1550CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -1618,6 +1623,7 @@ CONFIG_CRYPTO_MANAGER=y
1618CONFIG_CRYPTO_MANAGER2=y 1623CONFIG_CRYPTO_MANAGER2=y
1619# CONFIG_CRYPTO_GF128MUL is not set 1624# CONFIG_CRYPTO_GF128MUL is not set
1620CONFIG_CRYPTO_NULL=m 1625CONFIG_CRYPTO_NULL=m
1626# CONFIG_CRYPTO_PCRYPT is not set
1621CONFIG_CRYPTO_WORKQUEUE=y 1627CONFIG_CRYPTO_WORKQUEUE=y
1622# CONFIG_CRYPTO_CRYPTD is not set 1628# CONFIG_CRYPTO_CRYPTD is not set
1623CONFIG_CRYPTO_AUTHENC=m 1629CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index 5c1dc768bbd8..9f89d5c9c0be 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:58 2010 4# Mon Apr 19 23:16:22 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -91,11 +91,6 @@ CONFIG_RCU_FANOUT=32
91# CONFIG_TREE_RCU_TRACE is not set 91# CONFIG_TREE_RCU_TRACE is not set
92# CONFIG_IKCONFIG is not set 92# CONFIG_IKCONFIG is not set
93CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
94CONFIG_GROUP_SCHED=y
95CONFIG_FAIR_GROUP_SCHED=y
96# CONFIG_RT_GROUP_SCHED is not set
97CONFIG_USER_SCHED=y
98# CONFIG_CGROUP_SCHED is not set
99# CONFIG_CGROUPS is not set 94# CONFIG_CGROUPS is not set
100CONFIG_SYSFS_DEPRECATED=y 95CONFIG_SYSFS_DEPRECATED=y
101CONFIG_SYSFS_DEPRECATED_V2=y 96CONFIG_SYSFS_DEPRECATED_V2=y
@@ -307,6 +302,7 @@ CONFIG_ISA_DMA_API=y
307# Bus options 302# Bus options
308# 303#
309CONFIG_ZONE_DMA=y 304CONFIG_ZONE_DMA=y
305CONFIG_NEED_DMA_MAP_STATE=y
310CONFIG_FSL_SOC=y 306CONFIG_FSL_SOC=y
311# CONFIG_PCI is not set 307# CONFIG_PCI is not set
312# CONFIG_PCI_DOMAINS is not set 308# CONFIG_PCI_DOMAINS is not set
@@ -336,7 +332,6 @@ CONFIG_NET=y
336# Networking options 332# Networking options
337# 333#
338CONFIG_PACKET=y 334CONFIG_PACKET=y
339# CONFIG_PACKET_MMAP is not set
340CONFIG_UNIX=y 335CONFIG_UNIX=y
341# CONFIG_NET_KEY is not set 336# CONFIG_NET_KEY is not set
342CONFIG_INET=y 337CONFIG_INET=y
@@ -505,6 +500,8 @@ CONFIG_MTD_PHYSMAP_OF=y
505# UBI - Unsorted block images 500# UBI - Unsorted block images
506# 501#
507# CONFIG_MTD_UBI is not set 502# CONFIG_MTD_UBI is not set
503CONFIG_OF_FLATTREE=y
504CONFIG_OF_DYNAMIC=y
508CONFIG_OF_DEVICE=y 505CONFIG_OF_DEVICE=y
509CONFIG_OF_MDIO=y 506CONFIG_OF_MDIO=y
510# CONFIG_PARPORT is not set 507# CONFIG_PARPORT is not set
@@ -516,6 +513,7 @@ CONFIG_HAVE_IDE=y
516# 513#
517# SCSI device support 514# SCSI device support
518# 515#
516CONFIG_SCSI_MOD=y
519# CONFIG_RAID_ATTRS is not set 517# CONFIG_RAID_ATTRS is not set
520# CONFIG_SCSI is not set 518# CONFIG_SCSI is not set
521# CONFIG_SCSI_DMA is not set 519# CONFIG_SCSI_DMA is not set
@@ -664,6 +662,7 @@ CONFIG_SERIAL_CORE=y
664CONFIG_SERIAL_CORE_CONSOLE=y 662CONFIG_SERIAL_CORE_CONSOLE=y
665CONFIG_SERIAL_CPM=y 663CONFIG_SERIAL_CPM=y
666CONFIG_SERIAL_CPM_CONSOLE=y 664CONFIG_SERIAL_CPM_CONSOLE=y
665# CONFIG_SERIAL_TIMBERDALE is not set
667# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 666# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
668CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
669# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 668# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -802,6 +801,7 @@ CONFIG_MISC_FILESYSTEMS=y
802# CONFIG_BFS_FS is not set 801# CONFIG_BFS_FS is not set
803# CONFIG_EFS_FS is not set 802# CONFIG_EFS_FS is not set
804# CONFIG_JFFS2_FS is not set 803# CONFIG_JFFS2_FS is not set
804# CONFIG_LOGFS is not set
805CONFIG_CRAMFS=y 805CONFIG_CRAMFS=y
806# CONFIG_SQUASHFS is not set 806# CONFIG_SQUASHFS is not set
807# CONFIG_VXFS_FS is not set 807# CONFIG_VXFS_FS is not set
@@ -826,6 +826,7 @@ CONFIG_SUNRPC=y
826# CONFIG_RPCSEC_GSS_KRB5 is not set 826# CONFIG_RPCSEC_GSS_KRB5 is not set
827# CONFIG_RPCSEC_GSS_SPKM3 is not set 827# CONFIG_RPCSEC_GSS_SPKM3 is not set
828# CONFIG_SMB_FS is not set 828# CONFIG_SMB_FS is not set
829# CONFIG_CEPH_FS is not set
829# CONFIG_CIFS is not set 830# CONFIG_CIFS is not set
830# CONFIG_NCP_FS is not set 831# CONFIG_NCP_FS is not set
831# CONFIG_CODA_FS is not set 832# CONFIG_CODA_FS is not set
@@ -924,6 +925,7 @@ CONFIG_DEBUG_INFO=y
924# CONFIG_BACKTRACE_SELF_TEST is not set 925# CONFIG_BACKTRACE_SELF_TEST is not set
925# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 926# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
926# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 927# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
928# CONFIG_LKDTM is not set
927# CONFIG_FAULT_INJECTION is not set 929# CONFIG_FAULT_INJECTION is not set
928# CONFIG_LATENCYTOP is not set 930# CONFIG_LATENCYTOP is not set
929# CONFIG_SYSCTL_SYSCALL_CHECK is not set 931# CONFIG_SYSCTL_SYSCALL_CHECK is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 72137cd881da..4ab6074db3cf 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:59 2010 4# Mon Apr 19 23:16:23 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -101,11 +101,6 @@ CONFIG_RCU_FANOUT=32
101# CONFIG_TREE_RCU_TRACE is not set 101# CONFIG_TREE_RCU_TRACE is not set
102# CONFIG_IKCONFIG is not set 102# CONFIG_IKCONFIG is not set
103CONFIG_LOG_BUF_SHIFT=17 103CONFIG_LOG_BUF_SHIFT=17
104CONFIG_GROUP_SCHED=y
105CONFIG_FAIR_GROUP_SCHED=y
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 105CONFIG_SYSFS_DEPRECATED=y
111CONFIG_SYSFS_DEPRECATED_V2=y 106CONFIG_SYSFS_DEPRECATED_V2=y
@@ -121,6 +116,7 @@ CONFIG_INITRAMFS_SOURCE=""
121CONFIG_RD_GZIP=y 116CONFIG_RD_GZIP=y
122CONFIG_RD_BZIP2=y 117CONFIG_RD_BZIP2=y
123CONFIG_RD_LZMA=y 118CONFIG_RD_LZMA=y
119CONFIG_RD_LZO=y
124CONFIG_CC_OPTIMIZE_FOR_SIZE=y 120CONFIG_CC_OPTIMIZE_FOR_SIZE=y
125CONFIG_SYSCTL=y 121CONFIG_SYSCTL=y
126CONFIG_ANON_INODES=y 122CONFIG_ANON_INODES=y
@@ -147,7 +143,6 @@ CONFIG_HAVE_PERF_EVENTS=y
147# Kernel Performance Events And Counters 143# Kernel Performance Events And Counters
148# 144#
149CONFIG_PERF_EVENTS=y 145CONFIG_PERF_EVENTS=y
150CONFIG_EVENT_PROFILE=y
151# CONFIG_PERF_COUNTERS is not set 146# CONFIG_PERF_COUNTERS is not set
152# CONFIG_DEBUG_PERF_USE_VMALLOC is not set 147# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
153CONFIG_VM_EVENT_COUNTERS=y 148CONFIG_VM_EVENT_COUNTERS=y
@@ -158,7 +153,6 @@ CONFIG_COMPAT_BRK=y
158CONFIG_SLUB=y 153CONFIG_SLUB=y
159# CONFIG_SLOB is not set 154# CONFIG_SLOB is not set
160CONFIG_PROFILING=y 155CONFIG_PROFILING=y
161CONFIG_TRACEPOINTS=y
162CONFIG_OPROFILE=m 156CONFIG_OPROFILE=m
163CONFIG_HAVE_OPROFILE=y 157CONFIG_HAVE_OPROFILE=y
164CONFIG_KPROBES=y 158CONFIG_KPROBES=y
@@ -357,6 +351,7 @@ CONFIG_ISA_DMA_API=y
357# Bus options 351# Bus options
358# 352#
359CONFIG_ZONE_DMA=y 353CONFIG_ZONE_DMA=y
354CONFIG_NEED_DMA_MAP_STATE=y
360CONFIG_GENERIC_ISA_DMA=y 355CONFIG_GENERIC_ISA_DMA=y
361CONFIG_PPC_INDIRECT_PCI=y 356CONFIG_PPC_INDIRECT_PCI=y
362CONFIG_PCI=y 357CONFIG_PCI=y
@@ -365,7 +360,6 @@ CONFIG_PCI_SYSCALL=y
365# CONFIG_PCIEPORTBUS is not set 360# CONFIG_PCIEPORTBUS is not set
366CONFIG_ARCH_SUPPORTS_MSI=y 361CONFIG_ARCH_SUPPORTS_MSI=y
367CONFIG_PCI_MSI=y 362CONFIG_PCI_MSI=y
368# CONFIG_PCI_LEGACY is not set
369# CONFIG_PCI_DEBUG is not set 363# CONFIG_PCI_DEBUG is not set
370# CONFIG_PCI_STUB is not set 364# CONFIG_PCI_STUB is not set
371# CONFIG_PCI_IOV is not set 365# CONFIG_PCI_IOV is not set
@@ -396,7 +390,6 @@ CONFIG_NET=y
396# Networking options 390# Networking options
397# 391#
398CONFIG_PACKET=y 392CONFIG_PACKET=y
399CONFIG_PACKET_MMAP=y
400CONFIG_UNIX=y 393CONFIG_UNIX=y
401CONFIG_XFRM=y 394CONFIG_XFRM=y
402CONFIG_XFRM_USER=y 395CONFIG_XFRM_USER=y
@@ -527,6 +520,7 @@ CONFIG_IP_VS_PROTO_UDP=y
527CONFIG_IP_VS_PROTO_AH_ESP=y 520CONFIG_IP_VS_PROTO_AH_ESP=y
528CONFIG_IP_VS_PROTO_ESP=y 521CONFIG_IP_VS_PROTO_ESP=y
529CONFIG_IP_VS_PROTO_AH=y 522CONFIG_IP_VS_PROTO_AH=y
523# CONFIG_IP_VS_PROTO_SCTP is not set
530 524
531# 525#
532# IPVS scheduler 526# IPVS scheduler
@@ -630,6 +624,7 @@ CONFIG_ATM_BR2684=m
630# CONFIG_ATM_BR2684_IPFILTER is not set 624# CONFIG_ATM_BR2684_IPFILTER is not set
631CONFIG_STP=m 625CONFIG_STP=m
632CONFIG_BRIDGE=m 626CONFIG_BRIDGE=m
627CONFIG_BRIDGE_IGMP_SNOOPING=y
633# CONFIG_NET_DSA is not set 628# CONFIG_NET_DSA is not set
634CONFIG_VLAN_8021Q=m 629CONFIG_VLAN_8021Q=m
635# CONFIG_VLAN_8021Q_GVRP is not set 630# CONFIG_VLAN_8021Q_GVRP is not set
@@ -690,7 +685,6 @@ CONFIG_NET_SCH_FIFO=y
690# 685#
691# CONFIG_NET_PKTGEN is not set 686# CONFIG_NET_PKTGEN is not set
692# CONFIG_NET_TCPPROBE is not set 687# CONFIG_NET_TCPPROBE is not set
693# CONFIG_NET_DROP_MONITOR is not set
694# CONFIG_HAMRADIO is not set 688# CONFIG_HAMRADIO is not set
695# CONFIG_CAN is not set 689# CONFIG_CAN is not set
696# CONFIG_IRDA is not set 690# CONFIG_IRDA is not set
@@ -833,6 +827,8 @@ CONFIG_MTD_PHYSMAP_OF=y
833# UBI - Unsorted block images 827# UBI - Unsorted block images
834# 828#
835# CONFIG_MTD_UBI is not set 829# CONFIG_MTD_UBI is not set
830CONFIG_OF_FLATTREE=y
831CONFIG_OF_DYNAMIC=y
836CONFIG_OF_DEVICE=y 832CONFIG_OF_DEVICE=y
837CONFIG_OF_I2C=m 833CONFIG_OF_I2C=m
838CONFIG_OF_MDIO=y 834CONFIG_OF_MDIO=y
@@ -867,6 +863,7 @@ CONFIG_HAVE_IDE=y
867# 863#
868# SCSI device support 864# SCSI device support
869# 865#
866CONFIG_SCSI_MOD=m
870# CONFIG_RAID_ATTRS is not set 867# CONFIG_RAID_ATTRS is not set
871CONFIG_SCSI=m 868CONFIG_SCSI=m
872CONFIG_SCSI_DMA=y 869CONFIG_SCSI_DMA=y
@@ -1179,6 +1176,7 @@ CONFIG_SERIAL_MPSC_CONSOLE=y
1179CONFIG_SERIAL_CORE=y 1176CONFIG_SERIAL_CORE=y
1180CONFIG_SERIAL_CORE_CONSOLE=y 1177CONFIG_SERIAL_CORE_CONSOLE=y
1181# CONFIG_SERIAL_JSM is not set 1178# CONFIG_SERIAL_JSM is not set
1179# CONFIG_SERIAL_TIMBERDALE is not set
1182# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1180# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1183CONFIG_UNIX98_PTYS=y 1181CONFIG_UNIX98_PTYS=y
1184# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1182# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1231,6 +1229,7 @@ CONFIG_I2C_HELPER_AUTO=y
1231CONFIG_I2C_MV64XXX=m 1229CONFIG_I2C_MV64XXX=m
1232# CONFIG_I2C_OCORES is not set 1230# CONFIG_I2C_OCORES is not set
1233# CONFIG_I2C_SIMTEC is not set 1231# CONFIG_I2C_SIMTEC is not set
1232# CONFIG_I2C_XILINX is not set
1234 1233
1235# 1234#
1236# External I2C/SMBus adapter drivers 1235# External I2C/SMBus adapter drivers
@@ -1244,15 +1243,9 @@ CONFIG_I2C_MV64XXX=m
1244# 1243#
1245# CONFIG_I2C_PCA_PLATFORM is not set 1244# CONFIG_I2C_PCA_PLATFORM is not set
1246# CONFIG_I2C_STUB is not set 1245# CONFIG_I2C_STUB is not set
1247
1248#
1249# Miscellaneous I2C Chip support
1250#
1251# CONFIG_SENSORS_TSL2550 is not set
1252# CONFIG_I2C_DEBUG_CORE is not set 1246# CONFIG_I2C_DEBUG_CORE is not set
1253# CONFIG_I2C_DEBUG_ALGO is not set 1247# CONFIG_I2C_DEBUG_ALGO is not set
1254# CONFIG_I2C_DEBUG_BUS is not set 1248# CONFIG_I2C_DEBUG_BUS is not set
1255# CONFIG_I2C_DEBUG_CHIP is not set
1256# CONFIG_SPI is not set 1249# CONFIG_SPI is not set
1257 1250
1258# 1251#
@@ -1278,10 +1271,11 @@ CONFIG_SENSORS_ADM1026=m
1278# CONFIG_SENSORS_ADM1029 is not set 1271# CONFIG_SENSORS_ADM1029 is not set
1279CONFIG_SENSORS_ADM1031=m 1272CONFIG_SENSORS_ADM1031=m
1280# CONFIG_SENSORS_ADM9240 is not set 1273# CONFIG_SENSORS_ADM9240 is not set
1274# CONFIG_SENSORS_ADT7411 is not set
1281# CONFIG_SENSORS_ADT7462 is not set 1275# CONFIG_SENSORS_ADT7462 is not set
1282# CONFIG_SENSORS_ADT7470 is not set 1276# CONFIG_SENSORS_ADT7470 is not set
1283# CONFIG_SENSORS_ADT7473 is not set
1284# CONFIG_SENSORS_ADT7475 is not set 1277# CONFIG_SENSORS_ADT7475 is not set
1278# CONFIG_SENSORS_ASC7621 is not set
1285# CONFIG_SENSORS_ATXP1 is not set 1279# CONFIG_SENSORS_ATXP1 is not set
1286CONFIG_SENSORS_DS1621=m 1280CONFIG_SENSORS_DS1621=m
1287# CONFIG_SENSORS_I5K_AMB is not set 1281# CONFIG_SENSORS_I5K_AMB is not set
@@ -1318,6 +1312,7 @@ CONFIG_SENSORS_SMSC47M1=m
1318# CONFIG_SENSORS_SMSC47M192 is not set 1312# CONFIG_SENSORS_SMSC47M192 is not set
1319CONFIG_SENSORS_SMSC47B397=m 1313CONFIG_SENSORS_SMSC47B397=m
1320# CONFIG_SENSORS_ADS7828 is not set 1314# CONFIG_SENSORS_ADS7828 is not set
1315# CONFIG_SENSORS_AMC6821 is not set
1321# CONFIG_SENSORS_THMC50 is not set 1316# CONFIG_SENSORS_THMC50 is not set
1322# CONFIG_SENSORS_TMP401 is not set 1317# CONFIG_SENSORS_TMP401 is not set
1323# CONFIG_SENSORS_TMP421 is not set 1318# CONFIG_SENSORS_TMP421 is not set
@@ -1369,9 +1364,9 @@ CONFIG_SSB_POSSIBLE=y
1369# CONFIG_HTC_PASIC3 is not set 1364# CONFIG_HTC_PASIC3 is not set
1370# CONFIG_MFD_TMIO is not set 1365# CONFIG_MFD_TMIO is not set
1371# CONFIG_MFD_WM8400 is not set 1366# CONFIG_MFD_WM8400 is not set
1372# CONFIG_MFD_WM8350_I2C is not set 1367# CONFIG_MFD_WM8994 is not set
1373# CONFIG_MFD_PCF50633 is not set 1368# CONFIG_MFD_PCF50633 is not set
1374# CONFIG_AB3100_CORE is not set 1369# CONFIG_LPC_SCH is not set
1375# CONFIG_REGULATOR is not set 1370# CONFIG_REGULATOR is not set
1376# CONFIG_MEDIA_SUPPORT is not set 1371# CONFIG_MEDIA_SUPPORT is not set
1377 1372
@@ -1380,6 +1375,7 @@ CONFIG_SSB_POSSIBLE=y
1380# 1375#
1381# CONFIG_AGP is not set 1376# CONFIG_AGP is not set
1382CONFIG_VGA_ARB=y 1377CONFIG_VGA_ARB=y
1378CONFIG_VGA_ARB_MAX_GPUS=16
1383# CONFIG_DRM is not set 1379# CONFIG_DRM is not set
1384# CONFIG_VGASTATE is not set 1380# CONFIG_VGASTATE is not set
1385# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1381# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1413,7 +1409,6 @@ CONFIG_USB=m
1413CONFIG_USB_DEVICEFS=y 1409CONFIG_USB_DEVICEFS=y
1414# CONFIG_USB_DEVICE_CLASS is not set 1410# CONFIG_USB_DEVICE_CLASS is not set
1415# CONFIG_USB_DYNAMIC_MINORS is not set 1411# CONFIG_USB_DYNAMIC_MINORS is not set
1416CONFIG_USB_SUSPEND=y
1417# CONFIG_USB_OTG is not set 1412# CONFIG_USB_OTG is not set
1418CONFIG_USB_MON=m 1413CONFIG_USB_MON=m
1419# CONFIG_USB_WUSB is not set 1414# CONFIG_USB_WUSB is not set
@@ -1535,6 +1530,7 @@ CONFIG_USB_SERIAL_MCT_U232=m
1535# CONFIG_USB_SERIAL_NAVMAN is not set 1530# CONFIG_USB_SERIAL_NAVMAN is not set
1536CONFIG_USB_SERIAL_PL2303=m 1531CONFIG_USB_SERIAL_PL2303=m
1537# CONFIG_USB_SERIAL_OTI6858 is not set 1532# CONFIG_USB_SERIAL_OTI6858 is not set
1533# CONFIG_USB_SERIAL_QCAUX is not set
1538# CONFIG_USB_SERIAL_QUALCOMM is not set 1534# CONFIG_USB_SERIAL_QUALCOMM is not set
1539# CONFIG_USB_SERIAL_SPCP8X5 is not set 1535# CONFIG_USB_SERIAL_SPCP8X5 is not set
1540# CONFIG_USB_SERIAL_HP4X is not set 1536# CONFIG_USB_SERIAL_HP4X is not set
@@ -1549,6 +1545,7 @@ CONFIG_USB_SERIAL_XIRCOM=m
1549# CONFIG_USB_SERIAL_OPTION is not set 1545# CONFIG_USB_SERIAL_OPTION is not set
1550CONFIG_USB_SERIAL_OMNINET=m 1546CONFIG_USB_SERIAL_OMNINET=m
1551# CONFIG_USB_SERIAL_OPTICON is not set 1547# CONFIG_USB_SERIAL_OPTICON is not set
1548# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
1552# CONFIG_USB_SERIAL_DEBUG is not set 1549# CONFIG_USB_SERIAL_DEBUG is not set
1553 1550
1554# 1551#
@@ -1561,7 +1558,6 @@ CONFIG_USB_EMI62=m
1561CONFIG_USB_RIO500=m 1558CONFIG_USB_RIO500=m
1562CONFIG_USB_LEGOTOWER=m 1559CONFIG_USB_LEGOTOWER=m
1563CONFIG_USB_LCD=m 1560CONFIG_USB_LCD=m
1564# CONFIG_USB_BERRY_CHARGE is not set
1565CONFIG_USB_LED=m 1561CONFIG_USB_LED=m
1566# CONFIG_USB_CYPRESS_CY7C63 is not set 1562# CONFIG_USB_CYPRESS_CY7C63 is not set
1567# CONFIG_USB_CYTHERM is not set 1563# CONFIG_USB_CYTHERM is not set
@@ -1574,7 +1570,6 @@ CONFIG_USB_LED=m
1574# CONFIG_USB_IOWARRIOR is not set 1570# CONFIG_USB_IOWARRIOR is not set
1575CONFIG_USB_TEST=m 1571CONFIG_USB_TEST=m
1576# CONFIG_USB_ISIGHTFW is not set 1572# CONFIG_USB_ISIGHTFW is not set
1577# CONFIG_USB_VST is not set
1578CONFIG_USB_ATM=m 1573CONFIG_USB_ATM=m
1579CONFIG_USB_SPEEDTOUCH=m 1574CONFIG_USB_SPEEDTOUCH=m
1580# CONFIG_USB_CXACRU is not set 1575# CONFIG_USB_CXACRU is not set
@@ -1611,6 +1606,7 @@ CONFIG_INFINIBAND_SRP=m
1611# CONFIG_EDAC is not set 1606# CONFIG_EDAC is not set
1612# CONFIG_RTC_CLASS is not set 1607# CONFIG_RTC_CLASS is not set
1613CONFIG_DMADEVICES=y 1608CONFIG_DMADEVICES=y
1609# CONFIG_DMADEVICES_DEBUG is not set
1614 1610
1615# 1611#
1616# DMA Devices 1612# DMA Devices
@@ -1714,6 +1710,7 @@ CONFIG_JFFS2_ZLIB=y
1714# CONFIG_JFFS2_LZO is not set 1710# CONFIG_JFFS2_LZO is not set
1715CONFIG_JFFS2_RTIME=y 1711CONFIG_JFFS2_RTIME=y
1716# CONFIG_JFFS2_RUBIN is not set 1712# CONFIG_JFFS2_RUBIN is not set
1713# CONFIG_LOGFS is not set
1717CONFIG_CRAMFS=m 1714CONFIG_CRAMFS=m
1718# CONFIG_SQUASHFS is not set 1715# CONFIG_SQUASHFS is not set
1719CONFIG_VXFS_FS=m 1716CONFIG_VXFS_FS=m
@@ -1742,6 +1739,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m
1742CONFIG_RPCSEC_GSS_KRB5=y 1739CONFIG_RPCSEC_GSS_KRB5=y
1743CONFIG_RPCSEC_GSS_SPKM3=m 1740CONFIG_RPCSEC_GSS_SPKM3=m
1744# CONFIG_SMB_FS is not set 1741# CONFIG_SMB_FS is not set
1742# CONFIG_CEPH_FS is not set
1745CONFIG_CIFS=m 1743CONFIG_CIFS=m
1746# CONFIG_CIFS_STATS is not set 1744# CONFIG_CIFS_STATS is not set
1747# CONFIG_CIFS_WEAK_PW_HASH is not set 1745# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1817,7 +1815,7 @@ CONFIG_NLS_KOI8_R=m
1817CONFIG_NLS_KOI8_U=m 1815CONFIG_NLS_KOI8_U=m
1818CONFIG_NLS_UTF8=m 1816CONFIG_NLS_UTF8=m
1819# CONFIG_DLM is not set 1817# CONFIG_DLM is not set
1820CONFIG_BINARY_PRINTF=y 1818# CONFIG_BINARY_PRINTF is not set
1821 1819
1822# 1820#
1823# Library routines 1821# Library routines
@@ -1833,9 +1831,11 @@ CONFIG_CRC32=y
1833CONFIG_LIBCRC32C=m 1831CONFIG_LIBCRC32C=m
1834CONFIG_ZLIB_INFLATE=y 1832CONFIG_ZLIB_INFLATE=y
1835CONFIG_ZLIB_DEFLATE=y 1833CONFIG_ZLIB_DEFLATE=y
1834CONFIG_LZO_DECOMPRESS=y
1836CONFIG_DECOMPRESS_GZIP=y 1835CONFIG_DECOMPRESS_GZIP=y
1837CONFIG_DECOMPRESS_BZIP2=y 1836CONFIG_DECOMPRESS_BZIP2=y
1838CONFIG_DECOMPRESS_LZMA=y 1837CONFIG_DECOMPRESS_LZMA=y
1838CONFIG_DECOMPRESS_LZO=y
1839CONFIG_HAS_IOMEM=y 1839CONFIG_HAS_IOMEM=y
1840CONFIG_HAS_IOPORT=y 1840CONFIG_HAS_IOPORT=y
1841CONFIG_HAS_DMA=y 1841CONFIG_HAS_DMA=y
@@ -1880,7 +1880,6 @@ CONFIG_DEBUG_SPINLOCK=y
1880# CONFIG_LOCK_STAT is not set 1880# CONFIG_LOCK_STAT is not set
1881CONFIG_DEBUG_SPINLOCK_SLEEP=y 1881CONFIG_DEBUG_SPINLOCK_SLEEP=y
1882# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1882# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1883CONFIG_STACKTRACE=y
1884# CONFIG_DEBUG_KOBJECT is not set 1883# CONFIG_DEBUG_KOBJECT is not set
1885CONFIG_DEBUG_HIGHMEM=y 1884CONFIG_DEBUG_HIGHMEM=y
1886CONFIG_DEBUG_BUGVERBOSE=y 1885CONFIG_DEBUG_BUGVERBOSE=y
@@ -1903,16 +1902,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1903# CONFIG_LATENCYTOP is not set 1902# CONFIG_LATENCYTOP is not set
1904CONFIG_SYSCTL_SYSCALL_CHECK=y 1903CONFIG_SYSCTL_SYSCALL_CHECK=y
1905# CONFIG_DEBUG_PAGEALLOC is not set 1904# CONFIG_DEBUG_PAGEALLOC is not set
1906CONFIG_NOP_TRACER=y
1907CONFIG_HAVE_FUNCTION_TRACER=y 1905CONFIG_HAVE_FUNCTION_TRACER=y
1908CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1906CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1909CONFIG_HAVE_DYNAMIC_FTRACE=y 1907CONFIG_HAVE_DYNAMIC_FTRACE=y
1910CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1908CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1911CONFIG_RING_BUFFER=y 1909CONFIG_RING_BUFFER=y
1912CONFIG_EVENT_TRACING=y
1913CONFIG_CONTEXT_SWITCH_TRACER=y
1914CONFIG_RING_BUFFER_ALLOW_SWAP=y 1910CONFIG_RING_BUFFER_ALLOW_SWAP=y
1915CONFIG_TRACING=y
1916CONFIG_TRACING_SUPPORT=y 1911CONFIG_TRACING_SUPPORT=y
1917CONFIG_FTRACE=y 1912CONFIG_FTRACE=y
1918# CONFIG_FUNCTION_TRACER is not set 1913# CONFIG_FUNCTION_TRACER is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index 79105413884e..81e904e9f392 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:59 2010 4# Mon Apr 19 23:16:24 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -298,6 +298,7 @@ CONFIG_ISA_DMA_API=y
298# Bus options 298# Bus options
299# 299#
300CONFIG_ZONE_DMA=y 300CONFIG_ZONE_DMA=y
301# CONFIG_NEED_DMA_MAP_STATE is not set
301CONFIG_PPC_INDIRECT_PCI=y 302CONFIG_PPC_INDIRECT_PCI=y
302CONFIG_FSL_SOC=y 303CONFIG_FSL_SOC=y
303CONFIG_PPC_PCI_CHOICE=y 304CONFIG_PPC_PCI_CHOICE=y
@@ -308,7 +309,6 @@ CONFIG_PCI_8260=y
308# CONFIG_PCIEPORTBUS is not set 309# CONFIG_PCIEPORTBUS is not set
309CONFIG_ARCH_SUPPORTS_MSI=y 310CONFIG_ARCH_SUPPORTS_MSI=y
310# CONFIG_PCI_MSI is not set 311# CONFIG_PCI_MSI is not set
311# CONFIG_PCI_LEGACY is not set
312# CONFIG_PCI_DEBUG is not set 312# CONFIG_PCI_DEBUG is not set
313# CONFIG_PCI_STUB is not set 313# CONFIG_PCI_STUB is not set
314# CONFIG_PCI_IOV is not set 314# CONFIG_PCI_IOV is not set
@@ -335,7 +335,6 @@ CONFIG_NET=y
335# Networking options 335# Networking options
336# 336#
337CONFIG_PACKET=y 337CONFIG_PACKET=y
338# CONFIG_PACKET_MMAP is not set
339CONFIG_UNIX=y 338CONFIG_UNIX=y
340CONFIG_XFRM=y 339CONFIG_XFRM=y
341# CONFIG_XFRM_USER is not set 340# CONFIG_XFRM_USER is not set
@@ -537,6 +536,8 @@ CONFIG_MTD_PHYSMAP_OF=y
537# UBI - Unsorted block images 536# UBI - Unsorted block images
538# 537#
539# CONFIG_MTD_UBI is not set 538# CONFIG_MTD_UBI is not set
539CONFIG_OF_FLATTREE=y
540CONFIG_OF_DYNAMIC=y
540CONFIG_OF_DEVICE=y 541CONFIG_OF_DEVICE=y
541CONFIG_OF_GPIO=y 542CONFIG_OF_GPIO=y
542CONFIG_OF_MDIO=y 543CONFIG_OF_MDIO=y
@@ -566,6 +567,7 @@ CONFIG_HAVE_IDE=y
566# 567#
567# SCSI device support 568# SCSI device support
568# 569#
570CONFIG_SCSI_MOD=y
569# CONFIG_RAID_ATTRS is not set 571# CONFIG_RAID_ATTRS is not set
570# CONFIG_SCSI is not set 572# CONFIG_SCSI is not set
571# CONFIG_SCSI_DMA is not set 573# CONFIG_SCSI_DMA is not set
@@ -671,6 +673,8 @@ CONFIG_NETDEV_10000=y
671# CONFIG_CHELSIO_T1 is not set 673# CONFIG_CHELSIO_T1 is not set
672CONFIG_CHELSIO_T3_DEPENDS=y 674CONFIG_CHELSIO_T3_DEPENDS=y
673# CONFIG_CHELSIO_T3 is not set 675# CONFIG_CHELSIO_T3 is not set
676CONFIG_CHELSIO_T4_DEPENDS=y
677# CONFIG_CHELSIO_T4 is not set
674# CONFIG_ENIC is not set 678# CONFIG_ENIC is not set
675# CONFIG_IXGBE is not set 679# CONFIG_IXGBE is not set
676# CONFIG_IXGB is not set 680# CONFIG_IXGB is not set
@@ -683,6 +687,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
683# CONFIG_MLX4_CORE is not set 687# CONFIG_MLX4_CORE is not set
684# CONFIG_TEHUTI is not set 688# CONFIG_TEHUTI is not set
685# CONFIG_BNX2X is not set 689# CONFIG_BNX2X is not set
690# CONFIG_QLCNIC is not set
686# CONFIG_QLGE is not set 691# CONFIG_QLGE is not set
687# CONFIG_SFC is not set 692# CONFIG_SFC is not set
688# CONFIG_BE2NET is not set 693# CONFIG_BE2NET is not set
@@ -737,6 +742,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
737CONFIG_SERIAL_CPM=y 742CONFIG_SERIAL_CPM=y
738CONFIG_SERIAL_CPM_CONSOLE=y 743CONFIG_SERIAL_CPM_CONSOLE=y
739# CONFIG_SERIAL_JSM is not set 744# CONFIG_SERIAL_JSM is not set
745# CONFIG_SERIAL_TIMBERDALE is not set
740# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 746# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
741CONFIG_UNIX98_PTYS=y 747CONFIG_UNIX98_PTYS=y
742# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 748# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -765,7 +771,9 @@ CONFIG_GPIOLIB=y
765# 771#
766# Memory mapped GPIO expanders: 772# Memory mapped GPIO expanders:
767# 773#
774# CONFIG_GPIO_IT8761E is not set
768# CONFIG_GPIO_XILINX is not set 775# CONFIG_GPIO_XILINX is not set
776# CONFIG_GPIO_SCH is not set
769 777
770# 778#
771# I2C GPIO expanders: 779# I2C GPIO expanders:
@@ -804,6 +812,8 @@ CONFIG_SSB_POSSIBLE=y
804# CONFIG_MFD_SM501 is not set 812# CONFIG_MFD_SM501 is not set
805# CONFIG_HTC_PASIC3 is not set 813# CONFIG_HTC_PASIC3 is not set
806# CONFIG_MFD_TMIO is not set 814# CONFIG_MFD_TMIO is not set
815# CONFIG_MFD_TIMBERDALE is not set
816# CONFIG_LPC_SCH is not set
807# CONFIG_REGULATOR is not set 817# CONFIG_REGULATOR is not set
808# CONFIG_MEDIA_SUPPORT is not set 818# CONFIG_MEDIA_SUPPORT is not set
809 819
@@ -812,6 +822,7 @@ CONFIG_SSB_POSSIBLE=y
812# 822#
813# CONFIG_AGP is not set 823# CONFIG_AGP is not set
814CONFIG_VGA_ARB=y 824CONFIG_VGA_ARB=y
825CONFIG_VGA_ARB_MAX_GPUS=16
815# CONFIG_DRM is not set 826# CONFIG_DRM is not set
816# CONFIG_VGASTATE is not set 827# CONFIG_VGASTATE is not set
817# CONFIG_VIDEO_OUTPUT_CONTROL is not set 828# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -869,6 +880,7 @@ CONFIG_AUTOFS4_FS=y
869# 880#
870# Caches 881# Caches
871# 882#
883# CONFIG_FSCACHE is not set
872 884
873# 885#
874# CD-ROM/DVD Filesystems 886# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index 58f7ca71a59d..c5af46ef5f40 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:00 2010 4# Mon Apr 19 23:16:24 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -90,11 +90,6 @@ CONFIG_RCU_FANOUT=32
90# CONFIG_TREE_RCU_TRACE is not set 90# CONFIG_TREE_RCU_TRACE is not set
91# CONFIG_IKCONFIG is not set 91# CONFIG_IKCONFIG is not set
92CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
93CONFIG_GROUP_SCHED=y
94# CONFIG_FAIR_GROUP_SCHED is not set
95# CONFIG_RT_GROUP_SCHED is not set
96CONFIG_USER_SCHED=y
97# CONFIG_CGROUP_SCHED is not set
98# CONFIG_CGROUPS is not set 93# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 94CONFIG_SYSFS_DEPRECATED=y
100CONFIG_SYSFS_DEPRECATED_V2=y 95CONFIG_SYSFS_DEPRECATED_V2=y
@@ -306,6 +301,7 @@ CONFIG_ISA_DMA_API=y
306# Bus options 301# Bus options
307# 302#
308CONFIG_ZONE_DMA=y 303CONFIG_ZONE_DMA=y
304CONFIG_NEED_DMA_MAP_STATE=y
309CONFIG_FSL_SOC=y 305CONFIG_FSL_SOC=y
310# CONFIG_PCI is not set 306# CONFIG_PCI is not set
311# CONFIG_PCI_DOMAINS is not set 307# CONFIG_PCI_DOMAINS is not set
@@ -335,7 +331,6 @@ CONFIG_NET=y
335# Networking options 331# Networking options
336# 332#
337CONFIG_PACKET=y 333CONFIG_PACKET=y
338# CONFIG_PACKET_MMAP is not set
339CONFIG_UNIX=y 334CONFIG_UNIX=y
340# CONFIG_NET_KEY is not set 335# CONFIG_NET_KEY is not set
341CONFIG_INET=y 336CONFIG_INET=y
@@ -504,6 +499,8 @@ CONFIG_MTD_PHYSMAP_OF=y
504# UBI - Unsorted block images 499# UBI - Unsorted block images
505# 500#
506# CONFIG_MTD_UBI is not set 501# CONFIG_MTD_UBI is not set
502CONFIG_OF_FLATTREE=y
503CONFIG_OF_DYNAMIC=y
507CONFIG_OF_DEVICE=y 504CONFIG_OF_DEVICE=y
508CONFIG_OF_MDIO=y 505CONFIG_OF_MDIO=y
509# CONFIG_PARPORT is not set 506# CONFIG_PARPORT is not set
@@ -515,6 +512,7 @@ CONFIG_HAVE_IDE=y
515# 512#
516# SCSI device support 513# SCSI device support
517# 514#
515CONFIG_SCSI_MOD=y
518# CONFIG_RAID_ATTRS is not set 516# CONFIG_RAID_ATTRS is not set
519# CONFIG_SCSI is not set 517# CONFIG_SCSI is not set
520# CONFIG_SCSI_DMA is not set 518# CONFIG_SCSI_DMA is not set
@@ -616,6 +614,7 @@ CONFIG_SERIAL_CORE=y
616CONFIG_SERIAL_CORE_CONSOLE=y 614CONFIG_SERIAL_CORE_CONSOLE=y
617CONFIG_SERIAL_CPM=y 615CONFIG_SERIAL_CPM=y
618CONFIG_SERIAL_CPM_CONSOLE=y 616CONFIG_SERIAL_CPM_CONSOLE=y
617# CONFIG_SERIAL_TIMBERDALE is not set
619# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 618# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
620CONFIG_UNIX98_PTYS=y 619CONFIG_UNIX98_PTYS=y
621# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 620# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -753,6 +752,7 @@ CONFIG_MISC_FILESYSTEMS=y
753# CONFIG_BFS_FS is not set 752# CONFIG_BFS_FS is not set
754# CONFIG_EFS_FS is not set 753# CONFIG_EFS_FS is not set
755# CONFIG_JFFS2_FS is not set 754# CONFIG_JFFS2_FS is not set
755# CONFIG_LOGFS is not set
756CONFIG_CRAMFS=y 756CONFIG_CRAMFS=y
757# CONFIG_SQUASHFS is not set 757# CONFIG_SQUASHFS is not set
758# CONFIG_VXFS_FS is not set 758# CONFIG_VXFS_FS is not set
@@ -777,6 +777,7 @@ CONFIG_SUNRPC=y
777# CONFIG_RPCSEC_GSS_KRB5 is not set 777# CONFIG_RPCSEC_GSS_KRB5 is not set
778# CONFIG_RPCSEC_GSS_SPKM3 is not set 778# CONFIG_RPCSEC_GSS_SPKM3 is not set
779# CONFIG_SMB_FS is not set 779# CONFIG_SMB_FS is not set
780# CONFIG_CEPH_FS is not set
780# CONFIG_CIFS is not set 781# CONFIG_CIFS is not set
781# CONFIG_NCP_FS is not set 782# CONFIG_NCP_FS is not set
782# CONFIG_CODA_FS is not set 783# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 9a0c981277eb..588a2add393f 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:01 2010 4# Mon Apr 19 23:16:25 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,11 +96,6 @@ CONFIG_RCU_FANOUT=32
96CONFIG_IKCONFIG=y 96CONFIG_IKCONFIG=y
97CONFIG_IKCONFIG_PROC=y 97CONFIG_IKCONFIG_PROC=y
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100CONFIG_SYSFS_DEPRECATED=y
106CONFIG_SYSFS_DEPRECATED_V2=y 101CONFIG_SYSFS_DEPRECATED_V2=y
@@ -116,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
117CONFIG_RD_BZIP2=y 112CONFIG_RD_BZIP2=y
118CONFIG_RD_LZMA=y 113CONFIG_RD_LZMA=y
114CONFIG_RD_LZO=y
119CONFIG_CC_OPTIMIZE_FOR_SIZE=y 115CONFIG_CC_OPTIMIZE_FOR_SIZE=y
120CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -328,6 +324,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 324# Bus options
329# 325#
330CONFIG_ZONE_DMA=y 326CONFIG_ZONE_DMA=y
327# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_GENERIC_ISA_DMA=y 328CONFIG_GENERIC_ISA_DMA=y
332CONFIG_PPC_INDIRECT_PCI=y 329CONFIG_PPC_INDIRECT_PCI=y
333CONFIG_FSL_SOC=y 330CONFIG_FSL_SOC=y
@@ -337,7 +334,6 @@ CONFIG_PCI_SYSCALL=y
337# CONFIG_PCIEPORTBUS is not set 334# CONFIG_PCIEPORTBUS is not set
338CONFIG_ARCH_SUPPORTS_MSI=y 335CONFIG_ARCH_SUPPORTS_MSI=y
339# CONFIG_PCI_MSI is not set 336# CONFIG_PCI_MSI is not set
340# CONFIG_PCI_LEGACY is not set
341# CONFIG_PCI_DEBUG is not set 337# CONFIG_PCI_DEBUG is not set
342# CONFIG_PCI_STUB is not set 338# CONFIG_PCI_STUB is not set
343# CONFIG_PCI_IOV is not set 339# CONFIG_PCI_IOV is not set
@@ -364,7 +360,6 @@ CONFIG_NET=y
364# Networking options 360# Networking options
365# 361#
366CONFIG_PACKET=y 362CONFIG_PACKET=y
367CONFIG_PACKET_MMAP=y
368CONFIG_UNIX=y 363CONFIG_UNIX=y
369CONFIG_XFRM=y 364CONFIG_XFRM=y
370# CONFIG_XFRM_USER is not set 365# CONFIG_XFRM_USER is not set
@@ -433,6 +428,7 @@ CONFIG_NF_CONNTRACK_TFTP=m
433CONFIG_NETFILTER_XTABLES=m 428CONFIG_NETFILTER_XTABLES=m
434# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 429# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
435# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 430# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
431# CONFIG_NETFILTER_XT_TARGET_CT is not set
436# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 432# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
437CONFIG_NETFILTER_XT_TARGET_HL=m 433CONFIG_NETFILTER_XT_TARGET_HL=m
438# CONFIG_NETFILTER_XT_TARGET_MARK is not set 434# CONFIG_NETFILTER_XT_TARGET_MARK is not set
@@ -665,6 +661,8 @@ CONFIG_MTD_PHYSMAP=y
665# UBI - Unsorted block images 661# UBI - Unsorted block images
666# 662#
667# CONFIG_MTD_UBI is not set 663# CONFIG_MTD_UBI is not set
664CONFIG_OF_FLATTREE=y
665CONFIG_OF_DYNAMIC=y
668CONFIG_OF_DEVICE=y 666CONFIG_OF_DEVICE=y
669CONFIG_OF_I2C=y 667CONFIG_OF_I2C=y
670# CONFIG_PARPORT is not set 668# CONFIG_PARPORT is not set
@@ -700,6 +698,7 @@ CONFIG_MISC_DEVICES=y
700# CONFIG_ENCLOSURE_SERVICES is not set 698# CONFIG_ENCLOSURE_SERVICES is not set
701# CONFIG_HP_ILO is not set 699# CONFIG_HP_ILO is not set
702# CONFIG_ISL29003 is not set 700# CONFIG_ISL29003 is not set
701# CONFIG_SENSORS_TSL2550 is not set
703# CONFIG_DS1682 is not set 702# CONFIG_DS1682 is not set
704# CONFIG_C2PORT is not set 703# CONFIG_C2PORT is not set
705 704
@@ -717,6 +716,7 @@ CONFIG_HAVE_IDE=y
717# 716#
718# SCSI device support 717# SCSI device support
719# 718#
719CONFIG_SCSI_MOD=y
720# CONFIG_RAID_ATTRS is not set 720# CONFIG_RAID_ATTRS is not set
721CONFIG_SCSI=y 721CONFIG_SCSI=y
722CONFIG_SCSI_DMA=y 722CONFIG_SCSI_DMA=y
@@ -840,6 +840,7 @@ CONFIG_ATA_SFF=y
840CONFIG_PATA_IT821X=y 840CONFIG_PATA_IT821X=y
841# CONFIG_PATA_IT8213 is not set 841# CONFIG_PATA_IT8213 is not set
842# CONFIG_PATA_JMICRON is not set 842# CONFIG_PATA_JMICRON is not set
843# CONFIG_PATA_LEGACY is not set
843# CONFIG_PATA_TRIFLEX is not set 844# CONFIG_PATA_TRIFLEX is not set
844# CONFIG_PATA_MARVELL is not set 845# CONFIG_PATA_MARVELL is not set
845# CONFIG_PATA_MPIIX is not set 846# CONFIG_PATA_MPIIX is not set
@@ -954,6 +955,8 @@ CONFIG_NETDEV_10000=y
954# CONFIG_CHELSIO_T1 is not set 955# CONFIG_CHELSIO_T1 is not set
955CONFIG_CHELSIO_T3_DEPENDS=y 956CONFIG_CHELSIO_T3_DEPENDS=y
956# CONFIG_CHELSIO_T3 is not set 957# CONFIG_CHELSIO_T3 is not set
958CONFIG_CHELSIO_T4_DEPENDS=y
959# CONFIG_CHELSIO_T4 is not set
957# CONFIG_ENIC is not set 960# CONFIG_ENIC is not set
958# CONFIG_IXGBE is not set 961# CONFIG_IXGBE is not set
959# CONFIG_IXGB is not set 962# CONFIG_IXGB is not set
@@ -966,6 +969,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
966# CONFIG_MLX4_CORE is not set 969# CONFIG_MLX4_CORE is not set
967# CONFIG_TEHUTI is not set 970# CONFIG_TEHUTI is not set
968# CONFIG_BNX2X is not set 971# CONFIG_BNX2X is not set
972# CONFIG_QLCNIC is not set
969# CONFIG_QLGE is not set 973# CONFIG_QLGE is not set
970# CONFIG_SFC is not set 974# CONFIG_SFC is not set
971# CONFIG_BE2NET is not set 975# CONFIG_BE2NET is not set
@@ -1082,6 +1086,7 @@ CONFIG_SERIAL_CORE=y
1082CONFIG_SERIAL_CORE_CONSOLE=y 1086CONFIG_SERIAL_CORE_CONSOLE=y
1083# CONFIG_SERIAL_JSM is not set 1087# CONFIG_SERIAL_JSM is not set
1084# CONFIG_SERIAL_OF_PLATFORM is not set 1088# CONFIG_SERIAL_OF_PLATFORM is not set
1089# CONFIG_SERIAL_TIMBERDALE is not set
1085# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1090# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1086CONFIG_UNIX98_PTYS=y 1091CONFIG_UNIX98_PTYS=y
1087# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1092# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1131,6 +1136,7 @@ CONFIG_I2C_HELPER_AUTO=y
1131CONFIG_I2C_MPC=y 1136CONFIG_I2C_MPC=y
1132# CONFIG_I2C_OCORES is not set 1137# CONFIG_I2C_OCORES is not set
1133# CONFIG_I2C_SIMTEC is not set 1138# CONFIG_I2C_SIMTEC is not set
1139# CONFIG_I2C_XILINX is not set
1134 1140
1135# 1141#
1136# External I2C/SMBus adapter drivers 1142# External I2C/SMBus adapter drivers
@@ -1144,15 +1150,9 @@ CONFIG_I2C_MPC=y
1144# 1150#
1145# CONFIG_I2C_PCA_PLATFORM is not set 1151# CONFIG_I2C_PCA_PLATFORM is not set
1146# CONFIG_I2C_STUB is not set 1152# CONFIG_I2C_STUB is not set
1147
1148#
1149# Miscellaneous I2C Chip support
1150#
1151# CONFIG_SENSORS_TSL2550 is not set
1152# CONFIG_I2C_DEBUG_CORE is not set 1153# CONFIG_I2C_DEBUG_CORE is not set
1153# CONFIG_I2C_DEBUG_ALGO is not set 1154# CONFIG_I2C_DEBUG_ALGO is not set
1154# CONFIG_I2C_DEBUG_BUS is not set 1155# CONFIG_I2C_DEBUG_BUS is not set
1155# CONFIG_I2C_DEBUG_CHIP is not set
1156# CONFIG_SPI is not set 1156# CONFIG_SPI is not set
1157 1157
1158# 1158#
@@ -1178,10 +1178,11 @@ CONFIG_HWMON=y
1178# CONFIG_SENSORS_ADM1029 is not set 1178# CONFIG_SENSORS_ADM1029 is not set
1179# CONFIG_SENSORS_ADM1031 is not set 1179# CONFIG_SENSORS_ADM1031 is not set
1180# CONFIG_SENSORS_ADM9240 is not set 1180# CONFIG_SENSORS_ADM9240 is not set
1181# CONFIG_SENSORS_ADT7411 is not set
1181# CONFIG_SENSORS_ADT7462 is not set 1182# CONFIG_SENSORS_ADT7462 is not set
1182# CONFIG_SENSORS_ADT7470 is not set 1183# CONFIG_SENSORS_ADT7470 is not set
1183# CONFIG_SENSORS_ADT7473 is not set
1184# CONFIG_SENSORS_ADT7475 is not set 1184# CONFIG_SENSORS_ADT7475 is not set
1185# CONFIG_SENSORS_ASC7621 is not set
1185# CONFIG_SENSORS_ATXP1 is not set 1186# CONFIG_SENSORS_ATXP1 is not set
1186# CONFIG_SENSORS_DS1621 is not set 1187# CONFIG_SENSORS_DS1621 is not set
1187# CONFIG_SENSORS_I5K_AMB is not set 1188# CONFIG_SENSORS_I5K_AMB is not set
@@ -1218,6 +1219,7 @@ CONFIG_HWMON=y
1218# CONFIG_SENSORS_SMSC47M192 is not set 1219# CONFIG_SENSORS_SMSC47M192 is not set
1219# CONFIG_SENSORS_SMSC47B397 is not set 1220# CONFIG_SENSORS_SMSC47B397 is not set
1220# CONFIG_SENSORS_ADS7828 is not set 1221# CONFIG_SENSORS_ADS7828 is not set
1222# CONFIG_SENSORS_AMC6821 is not set
1221# CONFIG_SENSORS_THMC50 is not set 1223# CONFIG_SENSORS_THMC50 is not set
1222# CONFIG_SENSORS_TMP401 is not set 1224# CONFIG_SENSORS_TMP401 is not set
1223# CONFIG_SENSORS_TMP421 is not set 1225# CONFIG_SENSORS_TMP421 is not set
@@ -1246,18 +1248,21 @@ CONFIG_SSB_POSSIBLE=y
1246# Multifunction device drivers 1248# Multifunction device drivers
1247# 1249#
1248# CONFIG_MFD_CORE is not set 1250# CONFIG_MFD_CORE is not set
1251# CONFIG_MFD_88PM860X is not set
1249# CONFIG_MFD_SM501 is not set 1252# CONFIG_MFD_SM501 is not set
1250# CONFIG_HTC_PASIC3 is not set 1253# CONFIG_HTC_PASIC3 is not set
1251# CONFIG_TWL4030_CORE is not set 1254# CONFIG_TWL4030_CORE is not set
1252# CONFIG_MFD_TMIO is not set 1255# CONFIG_MFD_TMIO is not set
1253# CONFIG_PMIC_DA903X is not set 1256# CONFIG_PMIC_DA903X is not set
1254# CONFIG_PMIC_ADP5520 is not set 1257# CONFIG_PMIC_ADP5520 is not set
1258# CONFIG_MFD_MAX8925 is not set
1255# CONFIG_MFD_WM8400 is not set 1259# CONFIG_MFD_WM8400 is not set
1256# CONFIG_MFD_WM831X is not set 1260# CONFIG_MFD_WM831X is not set
1257# CONFIG_MFD_WM8350_I2C is not set 1261# CONFIG_MFD_WM8350_I2C is not set
1262# CONFIG_MFD_WM8994 is not set
1258# CONFIG_MFD_PCF50633 is not set 1263# CONFIG_MFD_PCF50633 is not set
1259# CONFIG_AB3100_CORE is not set 1264# CONFIG_AB3100_CORE is not set
1260# CONFIG_MFD_88PM8607 is not set 1265# CONFIG_LPC_SCH is not set
1261# CONFIG_REGULATOR is not set 1266# CONFIG_REGULATOR is not set
1262# CONFIG_MEDIA_SUPPORT is not set 1267# CONFIG_MEDIA_SUPPORT is not set
1263 1268
@@ -1266,6 +1271,7 @@ CONFIG_SSB_POSSIBLE=y
1266# 1271#
1267# CONFIG_AGP is not set 1272# CONFIG_AGP is not set
1268CONFIG_VGA_ARB=y 1273CONFIG_VGA_ARB=y
1274CONFIG_VGA_ARB_MAX_GPUS=16
1269# CONFIG_DRM is not set 1275# CONFIG_DRM is not set
1270# CONFIG_VGASTATE is not set 1276# CONFIG_VGASTATE is not set
1271CONFIG_VIDEO_OUTPUT_CONTROL=m 1277CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1417,6 +1423,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1417# CONFIG_USB_SERIAL_NAVMAN is not set 1423# CONFIG_USB_SERIAL_NAVMAN is not set
1418# CONFIG_USB_SERIAL_PL2303 is not set 1424# CONFIG_USB_SERIAL_PL2303 is not set
1419# CONFIG_USB_SERIAL_OTI6858 is not set 1425# CONFIG_USB_SERIAL_OTI6858 is not set
1426# CONFIG_USB_SERIAL_QCAUX is not set
1420# CONFIG_USB_SERIAL_QUALCOMM is not set 1427# CONFIG_USB_SERIAL_QUALCOMM is not set
1421# CONFIG_USB_SERIAL_SPCP8X5 is not set 1428# CONFIG_USB_SERIAL_SPCP8X5 is not set
1422# CONFIG_USB_SERIAL_HP4X is not set 1429# CONFIG_USB_SERIAL_HP4X is not set
@@ -1430,6 +1437,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1430# CONFIG_USB_SERIAL_OPTION is not set 1437# CONFIG_USB_SERIAL_OPTION is not set
1431# CONFIG_USB_SERIAL_OMNINET is not set 1438# CONFIG_USB_SERIAL_OMNINET is not set
1432# CONFIG_USB_SERIAL_OPTICON is not set 1439# CONFIG_USB_SERIAL_OPTICON is not set
1440# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
1433# CONFIG_USB_SERIAL_DEBUG is not set 1441# CONFIG_USB_SERIAL_DEBUG is not set
1434 1442
1435# 1443#
@@ -1442,7 +1450,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1442# CONFIG_USB_RIO500 is not set 1450# CONFIG_USB_RIO500 is not set
1443# CONFIG_USB_LEGOTOWER is not set 1451# CONFIG_USB_LEGOTOWER is not set
1444# CONFIG_USB_LCD is not set 1452# CONFIG_USB_LCD is not set
1445# CONFIG_USB_BERRY_CHARGE is not set
1446# CONFIG_USB_LED is not set 1453# CONFIG_USB_LED is not set
1447# CONFIG_USB_CYPRESS_CY7C63 is not set 1454# CONFIG_USB_CYPRESS_CY7C63 is not set
1448# CONFIG_USB_CYTHERM is not set 1455# CONFIG_USB_CYTHERM is not set
@@ -1455,7 +1462,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1455# CONFIG_USB_IOWARRIOR is not set 1462# CONFIG_USB_IOWARRIOR is not set
1456# CONFIG_USB_TEST is not set 1463# CONFIG_USB_TEST is not set
1457# CONFIG_USB_ISIGHTFW is not set 1464# CONFIG_USB_ISIGHTFW is not set
1458# CONFIG_USB_VST is not set
1459# CONFIG_USB_GADGET is not set 1465# CONFIG_USB_GADGET is not set
1460 1466
1461# 1467#
@@ -1620,6 +1626,7 @@ CONFIG_MISC_FILESYSTEMS=y
1620# CONFIG_BFS_FS is not set 1626# CONFIG_BFS_FS is not set
1621# CONFIG_EFS_FS is not set 1627# CONFIG_EFS_FS is not set
1622# CONFIG_JFFS2_FS is not set 1628# CONFIG_JFFS2_FS is not set
1629# CONFIG_LOGFS is not set
1623# CONFIG_CRAMFS is not set 1630# CONFIG_CRAMFS is not set
1624# CONFIG_SQUASHFS is not set 1631# CONFIG_SQUASHFS is not set
1625# CONFIG_VXFS_FS is not set 1632# CONFIG_VXFS_FS is not set
@@ -1651,6 +1658,7 @@ CONFIG_SUNRPC_GSS=y
1651CONFIG_RPCSEC_GSS_KRB5=y 1658CONFIG_RPCSEC_GSS_KRB5=y
1652# CONFIG_RPCSEC_GSS_SPKM3 is not set 1659# CONFIG_RPCSEC_GSS_SPKM3 is not set
1653# CONFIG_SMB_FS is not set 1660# CONFIG_SMB_FS is not set
1661# CONFIG_CEPH_FS is not set
1654CONFIG_CIFS=m 1662CONFIG_CIFS=m
1655# CONFIG_CIFS_STATS is not set 1663# CONFIG_CIFS_STATS is not set
1656# CONFIG_CIFS_WEAK_PW_HASH is not set 1664# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1723,9 +1731,11 @@ CONFIG_CRC32=y
1723CONFIG_LIBCRC32C=m 1731CONFIG_LIBCRC32C=m
1724CONFIG_ZLIB_INFLATE=y 1732CONFIG_ZLIB_INFLATE=y
1725CONFIG_ZLIB_DEFLATE=m 1733CONFIG_ZLIB_DEFLATE=m
1734CONFIG_LZO_DECOMPRESS=y
1726CONFIG_DECOMPRESS_GZIP=y 1735CONFIG_DECOMPRESS_GZIP=y
1727CONFIG_DECOMPRESS_BZIP2=y 1736CONFIG_DECOMPRESS_BZIP2=y
1728CONFIG_DECOMPRESS_LZMA=y 1737CONFIG_DECOMPRESS_LZMA=y
1738CONFIG_DECOMPRESS_LZO=y
1729CONFIG_TEXTSEARCH=y 1739CONFIG_TEXTSEARCH=y
1730CONFIG_TEXTSEARCH_KMP=m 1740CONFIG_TEXTSEARCH_KMP=m
1731CONFIG_HAS_IOMEM=y 1741CONFIG_HAS_IOMEM=y
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig
index 4c2c877f9363..0cbd56fe2e1e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:02 2010 4# Mon Apr 19 23:16:26 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -105,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
108CONFIG_CC_OPTIMIZE_FOR_SIZE=y 109CONFIG_CC_OPTIMIZE_FOR_SIZE=y
109CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -311,6 +312,7 @@ CONFIG_ISA_DMA_API=y
311# 312#
312# CONFIG_ISA is not set 313# CONFIG_ISA is not set
313CONFIG_ZONE_DMA=y 314CONFIG_ZONE_DMA=y
315# CONFIG_NEED_DMA_MAP_STATE is not set
314CONFIG_PPC_INDIRECT_PCI=y 316CONFIG_PPC_INDIRECT_PCI=y
315CONFIG_FSL_SOC=y 317CONFIG_FSL_SOC=y
316CONFIG_PPC_PCI_CHOICE=y 318CONFIG_PPC_PCI_CHOICE=y
@@ -321,7 +323,6 @@ CONFIG_PCI_8260=y
321# CONFIG_PCIEPORTBUS is not set 323# CONFIG_PCIEPORTBUS is not set
322CONFIG_ARCH_SUPPORTS_MSI=y 324CONFIG_ARCH_SUPPORTS_MSI=y
323# CONFIG_PCI_MSI is not set 325# CONFIG_PCI_MSI is not set
324# CONFIG_PCI_LEGACY is not set
325# CONFIG_PCI_DEBUG is not set 326# CONFIG_PCI_DEBUG is not set
326# CONFIG_PCI_STUB is not set 327# CONFIG_PCI_STUB is not set
327# CONFIG_PCI_IOV is not set 328# CONFIG_PCI_IOV is not set
@@ -348,7 +349,6 @@ CONFIG_NET=y
348# Networking options 349# Networking options
349# 350#
350CONFIG_PACKET=y 351CONFIG_PACKET=y
351# CONFIG_PACKET_MMAP is not set
352CONFIG_UNIX=y 352CONFIG_UNIX=y
353CONFIG_XFRM=y 353CONFIG_XFRM=y
354# CONFIG_XFRM_USER is not set 354# CONFIG_XFRM_USER is not set
@@ -536,6 +536,8 @@ CONFIG_MTD_PHYSMAP_OF=y
536# UBI - Unsorted block images 536# UBI - Unsorted block images
537# 537#
538# CONFIG_MTD_UBI is not set 538# CONFIG_MTD_UBI is not set
539CONFIG_OF_FLATTREE=y
540CONFIG_OF_DYNAMIC=y
539CONFIG_OF_DEVICE=y 541CONFIG_OF_DEVICE=y
540CONFIG_OF_GPIO=y 542CONFIG_OF_GPIO=y
541CONFIG_OF_I2C=y 543CONFIG_OF_I2C=y
@@ -570,6 +572,7 @@ CONFIG_HAVE_IDE=y
570# 572#
571# SCSI device support 573# SCSI device support
572# 574#
575CONFIG_SCSI_MOD=y
573# CONFIG_RAID_ATTRS is not set 576# CONFIG_RAID_ATTRS is not set
574# CONFIG_SCSI is not set 577# CONFIG_SCSI is not set
575# CONFIG_SCSI_DMA is not set 578# CONFIG_SCSI_DMA is not set
@@ -704,6 +707,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
704CONFIG_SERIAL_CPM=y 707CONFIG_SERIAL_CPM=y
705CONFIG_SERIAL_CPM_CONSOLE=y 708CONFIG_SERIAL_CPM_CONSOLE=y
706# CONFIG_SERIAL_JSM is not set 709# CONFIG_SERIAL_JSM is not set
710# CONFIG_SERIAL_TIMBERDALE is not set
707# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 711# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
708CONFIG_UNIX98_PTYS=y 712CONFIG_UNIX98_PTYS=y
709# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 713# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -769,14 +773,9 @@ CONFIG_I2C_CPM=y
769# Other I2C/SMBus bus drivers 773# Other I2C/SMBus bus drivers
770# 774#
771# CONFIG_I2C_PCA_PLATFORM is not set 775# CONFIG_I2C_PCA_PLATFORM is not set
772
773#
774# Miscellaneous I2C Chip support
775#
776# CONFIG_I2C_DEBUG_CORE is not set 776# CONFIG_I2C_DEBUG_CORE is not set
777# CONFIG_I2C_DEBUG_ALGO is not set 777# CONFIG_I2C_DEBUG_ALGO is not set
778# CONFIG_I2C_DEBUG_BUS is not set 778# CONFIG_I2C_DEBUG_BUS is not set
779# CONFIG_I2C_DEBUG_CHIP is not set
780# CONFIG_SPI is not set 779# CONFIG_SPI is not set
781 780
782# 781#
@@ -790,14 +789,18 @@ CONFIG_GPIOLIB=y
790# 789#
791# Memory mapped GPIO expanders: 790# Memory mapped GPIO expanders:
792# 791#
792# CONFIG_GPIO_IT8761E is not set
793# CONFIG_GPIO_XILINX is not set 793# CONFIG_GPIO_XILINX is not set
794# CONFIG_GPIO_SCH is not set
794 795
795# 796#
796# I2C GPIO expanders: 797# I2C GPIO expanders:
797# 798#
799# CONFIG_GPIO_MAX7300 is not set
798# CONFIG_GPIO_MAX732X is not set 800# CONFIG_GPIO_MAX732X is not set
799# CONFIG_GPIO_PCA953X is not set 801# CONFIG_GPIO_PCA953X is not set
800# CONFIG_GPIO_PCF857X is not set 802# CONFIG_GPIO_PCF857X is not set
803# CONFIG_GPIO_ADP5588 is not set
801 804
802# 805#
803# PCI GPIO expanders: 806# PCI GPIO expanders:
@@ -829,19 +832,24 @@ CONFIG_SSB_POSSIBLE=y
829# Multifunction device drivers 832# Multifunction device drivers
830# 833#
831# CONFIG_MFD_CORE is not set 834# CONFIG_MFD_CORE is not set
835# CONFIG_MFD_88PM860X is not set
832# CONFIG_MFD_SM501 is not set 836# CONFIG_MFD_SM501 is not set
833# CONFIG_HTC_PASIC3 is not set 837# CONFIG_HTC_PASIC3 is not set
838# CONFIG_HTC_I2CPLD is not set
834# CONFIG_TPS65010 is not set 839# CONFIG_TPS65010 is not set
835# CONFIG_TWL4030_CORE is not set 840# CONFIG_TWL4030_CORE is not set
836# CONFIG_MFD_TMIO is not set 841# CONFIG_MFD_TMIO is not set
837# CONFIG_PMIC_DA903X is not set 842# CONFIG_PMIC_DA903X is not set
838# CONFIG_PMIC_ADP5520 is not set 843# CONFIG_PMIC_ADP5520 is not set
844# CONFIG_MFD_MAX8925 is not set
839# CONFIG_MFD_WM8400 is not set 845# CONFIG_MFD_WM8400 is not set
840# CONFIG_MFD_WM831X is not set 846# CONFIG_MFD_WM831X is not set
841# CONFIG_MFD_WM8350_I2C is not set 847# CONFIG_MFD_WM8350_I2C is not set
848# CONFIG_MFD_WM8994 is not set
842# CONFIG_MFD_PCF50633 is not set 849# CONFIG_MFD_PCF50633 is not set
843# CONFIG_AB3100_CORE is not set 850# CONFIG_AB3100_CORE is not set
844# CONFIG_MFD_88PM8607 is not set 851# CONFIG_MFD_TIMBERDALE is not set
852# CONFIG_LPC_SCH is not set
845# CONFIG_REGULATOR is not set 853# CONFIG_REGULATOR is not set
846# CONFIG_MEDIA_SUPPORT is not set 854# CONFIG_MEDIA_SUPPORT is not set
847 855
@@ -850,6 +858,7 @@ CONFIG_SSB_POSSIBLE=y
850# 858#
851# CONFIG_AGP is not set 859# CONFIG_AGP is not set
852CONFIG_VGA_ARB=y 860CONFIG_VGA_ARB=y
861CONFIG_VGA_ARB_MAX_GPUS=16
853# CONFIG_DRM is not set 862# CONFIG_DRM is not set
854# CONFIG_VGASTATE is not set 863# CONFIG_VGASTATE is not set
855# CONFIG_VIDEO_OUTPUT_CONTROL is not set 864# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -908,6 +917,7 @@ CONFIG_AUTOFS4_FS=y
908# 917#
909# Caches 918# Caches
910# 919#
920# CONFIG_FSCACHE is not set
911 921
912# 922#
913# CD-ROM/DVD Filesystems 923# CD-ROM/DVD Filesystems
@@ -1100,6 +1110,7 @@ CONFIG_DEBUG_INFO=y
1100# CONFIG_BACKTRACE_SELF_TEST is not set 1110# CONFIG_BACKTRACE_SELF_TEST is not set
1101# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1111# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1102# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1112# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1113# CONFIG_LKDTM is not set
1103# CONFIG_FAULT_INJECTION is not set 1114# CONFIG_FAULT_INJECTION is not set
1104# CONFIG_LATENCYTOP is not set 1115# CONFIG_LATENCYTOP is not set
1105CONFIG_SYSCTL_SYSCALL_CHECK=y 1116CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig
index 9e090f2c7e36..c1be26151021 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:03 2010 4# Mon Apr 19 23:16:27 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -89,11 +89,6 @@ CONFIG_RCU_FANOUT=32
89# CONFIG_TREE_RCU_TRACE is not set 89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
91CONFIG_LOG_BUF_SHIFT=17 91CONFIG_LOG_BUF_SHIFT=17
92CONFIG_GROUP_SCHED=y
93CONFIG_FAIR_GROUP_SCHED=y
94# CONFIG_RT_GROUP_SCHED is not set
95CONFIG_USER_SCHED=y
96# CONFIG_CGROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 92# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 93CONFIG_SYSFS_DEPRECATED=y
99CONFIG_SYSFS_DEPRECATED_V2=y 94CONFIG_SYSFS_DEPRECATED_V2=y
@@ -104,6 +99,7 @@ CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y 99CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set 100# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set 101# CONFIG_RD_LZMA is not set
102# CONFIG_RD_LZO is not set
107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 103# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
108CONFIG_SYSCTL=y 104CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y 105CONFIG_ANON_INODES=y
@@ -309,6 +305,7 @@ CONFIG_ISA_DMA_API=y
309# Bus options 305# Bus options
310# 306#
311CONFIG_ZONE_DMA=y 307CONFIG_ZONE_DMA=y
308CONFIG_NEED_DMA_MAP_STATE=y
312CONFIG_FSL_SOC=y 309CONFIG_FSL_SOC=y
313# CONFIG_PCI is not set 310# CONFIG_PCI is not set
314# CONFIG_PCI_DOMAINS is not set 311# CONFIG_PCI_DOMAINS is not set
@@ -337,7 +334,6 @@ CONFIG_NET=y
337# Networking options 334# Networking options
338# 335#
339CONFIG_PACKET=y 336CONFIG_PACKET=y
340# CONFIG_PACKET_MMAP is not set
341CONFIG_UNIX=y 337CONFIG_UNIX=y
342CONFIG_XFRM=y 338CONFIG_XFRM=y
343# CONFIG_XFRM_USER is not set 339# CONFIG_XFRM_USER is not set
@@ -515,6 +511,8 @@ CONFIG_MTD_PHYSMAP_OF=y
515# UBI - Unsorted block images 511# UBI - Unsorted block images
516# 512#
517# CONFIG_MTD_UBI is not set 513# CONFIG_MTD_UBI is not set
514CONFIG_OF_FLATTREE=y
515CONFIG_OF_DYNAMIC=y
518CONFIG_OF_DEVICE=y 516CONFIG_OF_DEVICE=y
519CONFIG_OF_MDIO=y 517CONFIG_OF_MDIO=y
520# CONFIG_PARPORT is not set 518# CONFIG_PARPORT is not set
@@ -542,6 +540,7 @@ CONFIG_HAVE_IDE=y
542# 540#
543# SCSI device support 541# SCSI device support
544# 542#
543CONFIG_SCSI_MOD=y
545# CONFIG_RAID_ATTRS is not set 544# CONFIG_RAID_ATTRS is not set
546# CONFIG_SCSI is not set 545# CONFIG_SCSI is not set
547# CONFIG_SCSI_DMA is not set 546# CONFIG_SCSI_DMA is not set
@@ -643,6 +642,7 @@ CONFIG_SERIAL_CORE=y
643CONFIG_SERIAL_CORE_CONSOLE=y 642CONFIG_SERIAL_CORE_CONSOLE=y
644CONFIG_SERIAL_CPM=y 643CONFIG_SERIAL_CPM=y
645CONFIG_SERIAL_CPM_CONSOLE=y 644CONFIG_SERIAL_CPM_CONSOLE=y
645# CONFIG_SERIAL_TIMBERDALE is not set
646# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 646# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
647CONFIG_UNIX98_PTYS=y 647CONFIG_UNIX98_PTYS=y
648# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 648# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -801,6 +801,7 @@ CONFIG_JFFS2_ZLIB=y
801# CONFIG_JFFS2_LZO is not set 801# CONFIG_JFFS2_LZO is not set
802CONFIG_JFFS2_RTIME=y 802CONFIG_JFFS2_RTIME=y
803# CONFIG_JFFS2_RUBIN is not set 803# CONFIG_JFFS2_RUBIN is not set
804# CONFIG_LOGFS is not set
804CONFIG_CRAMFS=y 805CONFIG_CRAMFS=y
805# CONFIG_SQUASHFS is not set 806# CONFIG_SQUASHFS is not set
806# CONFIG_VXFS_FS is not set 807# CONFIG_VXFS_FS is not set
@@ -825,6 +826,7 @@ CONFIG_SUNRPC=y
825# CONFIG_RPCSEC_GSS_KRB5 is not set 826# CONFIG_RPCSEC_GSS_KRB5 is not set
826# CONFIG_RPCSEC_GSS_SPKM3 is not set 827# CONFIG_RPCSEC_GSS_SPKM3 is not set
827# CONFIG_SMB_FS is not set 828# CONFIG_SMB_FS is not set
829# CONFIG_CEPH_FS is not set
828# CONFIG_CIFS is not set 830# CONFIG_CIFS is not set
829# CONFIG_NCP_FS is not set 831# CONFIG_NCP_FS is not set
830# CONFIG_CODA_FS is not set 832# CONFIG_CODA_FS is not set
@@ -892,6 +894,7 @@ CONFIG_DEBUG_FS=y
892# CONFIG_DEBUG_KERNEL is not set 894# CONFIG_DEBUG_KERNEL is not set
893# CONFIG_DEBUG_MEMORY_INIT is not set 895# CONFIG_DEBUG_MEMORY_INIT is not set
894# CONFIG_RCU_CPU_STALL_DETECTOR is not set 896# CONFIG_RCU_CPU_STALL_DETECTOR is not set
897# CONFIG_LKDTM is not set
895# CONFIG_LATENCYTOP is not set 898# CONFIG_LATENCYTOP is not set
896# CONFIG_SYSCTL_SYSCALL_CHECK is not set 899# CONFIG_SYSCTL_SYSCALL_CHECK is not set
897CONFIG_HAVE_FUNCTION_TRACER=y 900CONFIG_HAVE_FUNCTION_TRACER=y
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index 1315b775a6d2..27c63ceeb45a 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:04 2010 4# Mon Apr 19 23:16:28 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,11 +94,6 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98# CONFIG_FAIR_GROUP_SCHED is not set
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98CONFIG_SYSFS_DEPRECATED=y
104CONFIG_SYSFS_DEPRECATED_V2=y 99CONFIG_SYSFS_DEPRECATED_V2=y
@@ -109,6 +104,7 @@ CONFIG_INITRAMFS_SOURCE=""
109CONFIG_RD_GZIP=y 104CONFIG_RD_GZIP=y
110# CONFIG_RD_BZIP2 is not set 105# CONFIG_RD_BZIP2 is not set
111# CONFIG_RD_LZMA is not set 106# CONFIG_RD_LZMA is not set
107# CONFIG_RD_LZO is not set
112# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
113CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
114CONFIG_ANON_INODES=y 110CONFIG_ANON_INODES=y
@@ -311,6 +307,7 @@ CONFIG_ISA_DMA_API=y
311# Bus options 307# Bus options
312# 308#
313CONFIG_ZONE_DMA=y 309CONFIG_ZONE_DMA=y
310# CONFIG_NEED_DMA_MAP_STATE is not set
314CONFIG_GENERIC_ISA_DMA=y 311CONFIG_GENERIC_ISA_DMA=y
315# CONFIG_PPC_INDIRECT_PCI is not set 312# CONFIG_PPC_INDIRECT_PCI is not set
316CONFIG_PCI=y 313CONFIG_PCI=y
@@ -319,7 +316,6 @@ CONFIG_PCI_SYSCALL=y
319# CONFIG_PCIEPORTBUS is not set 316# CONFIG_PCIEPORTBUS is not set
320CONFIG_ARCH_SUPPORTS_MSI=y 317CONFIG_ARCH_SUPPORTS_MSI=y
321# CONFIG_PCI_MSI is not set 318# CONFIG_PCI_MSI is not set
322# CONFIG_PCI_LEGACY is not set
323# CONFIG_PCI_STUB is not set 319# CONFIG_PCI_STUB is not set
324# CONFIG_PCI_IOV is not set 320# CONFIG_PCI_IOV is not set
325# CONFIG_PCCARD is not set 321# CONFIG_PCCARD is not set
@@ -345,7 +341,6 @@ CONFIG_NET=y
345# Networking options 341# Networking options
346# 342#
347CONFIG_PACKET=y 343CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 344CONFIG_UNIX=y
350CONFIG_XFRM=y 345CONFIG_XFRM=y
351CONFIG_XFRM_USER=y 346CONFIG_XFRM_USER=y
@@ -440,6 +435,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
440# CONFIG_SYS_HYPERVISOR is not set 435# CONFIG_SYS_HYPERVISOR is not set
441# CONFIG_CONNECTOR is not set 436# CONFIG_CONNECTOR is not set
442# CONFIG_MTD is not set 437# CONFIG_MTD is not set
438CONFIG_OF_FLATTREE=y
439CONFIG_OF_DYNAMIC=y
443CONFIG_OF_DEVICE=y 440CONFIG_OF_DEVICE=y
444CONFIG_OF_MDIO=y 441CONFIG_OF_MDIO=y
445# CONFIG_PARPORT is not set 442# CONFIG_PARPORT is not set
@@ -484,6 +481,7 @@ CONFIG_HAVE_IDE=y
484# 481#
485# SCSI device support 482# SCSI device support
486# 483#
484CONFIG_SCSI_MOD=y
487# CONFIG_RAID_ATTRS is not set 485# CONFIG_RAID_ATTRS is not set
488CONFIG_SCSI=y 486CONFIG_SCSI=y
489CONFIG_SCSI_DMA=y 487CONFIG_SCSI_DMA=y
@@ -605,6 +603,7 @@ CONFIG_SATA_MV=y
605# CONFIG_PATA_IT821X is not set 603# CONFIG_PATA_IT821X is not set
606# CONFIG_PATA_IT8213 is not set 604# CONFIG_PATA_IT8213 is not set
607# CONFIG_PATA_JMICRON is not set 605# CONFIG_PATA_JMICRON is not set
606# CONFIG_PATA_LEGACY is not set
608# CONFIG_PATA_TRIFLEX is not set 607# CONFIG_PATA_TRIFLEX is not set
609# CONFIG_PATA_MARVELL is not set 608# CONFIG_PATA_MARVELL is not set
610# CONFIG_PATA_MPIIX is not set 609# CONFIG_PATA_MPIIX is not set
@@ -696,6 +695,7 @@ CONFIG_NET_PCI=y
696# CONFIG_PCNET32 is not set 695# CONFIG_PCNET32 is not set
697# CONFIG_AMD8111_ETH is not set 696# CONFIG_AMD8111_ETH is not set
698# CONFIG_ADAPTEC_STARFIRE is not set 697# CONFIG_ADAPTEC_STARFIRE is not set
698# CONFIG_KSZ884X_PCI is not set
699# CONFIG_B44 is not set 699# CONFIG_B44 is not set
700# CONFIG_FORCEDETH is not set 700# CONFIG_FORCEDETH is not set
701CONFIG_E100=y 701CONFIG_E100=y
@@ -750,6 +750,8 @@ CONFIG_NETDEV_10000=y
750# CONFIG_CHELSIO_T1 is not set 750# CONFIG_CHELSIO_T1 is not set
751CONFIG_CHELSIO_T3_DEPENDS=y 751CONFIG_CHELSIO_T3_DEPENDS=y
752# CONFIG_CHELSIO_T3 is not set 752# CONFIG_CHELSIO_T3 is not set
753CONFIG_CHELSIO_T4_DEPENDS=y
754# CONFIG_CHELSIO_T4 is not set
753# CONFIG_ENIC is not set 755# CONFIG_ENIC is not set
754# CONFIG_IXGBE is not set 756# CONFIG_IXGBE is not set
755# CONFIG_IXGB is not set 757# CONFIG_IXGB is not set
@@ -762,6 +764,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_MLX4_CORE is not set 764# CONFIG_MLX4_CORE is not set
763# CONFIG_TEHUTI is not set 765# CONFIG_TEHUTI is not set
764# CONFIG_BNX2X is not set 766# CONFIG_BNX2X is not set
767# CONFIG_QLCNIC is not set
765# CONFIG_QLGE is not set 768# CONFIG_QLGE is not set
766# CONFIG_SFC is not set 769# CONFIG_SFC is not set
767# CONFIG_BE2NET is not set 770# CONFIG_BE2NET is not set
@@ -846,6 +849,7 @@ CONFIG_SERIAL_CORE=y
846CONFIG_SERIAL_CORE_CONSOLE=y 849CONFIG_SERIAL_CORE_CONSOLE=y
847# CONFIG_SERIAL_JSM is not set 850# CONFIG_SERIAL_JSM is not set
848# CONFIG_SERIAL_OF_PLATFORM is not set 851# CONFIG_SERIAL_OF_PLATFORM is not set
852# CONFIG_SERIAL_TIMBERDALE is not set
849# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 853# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
850CONFIG_UNIX98_PTYS=y 854CONFIG_UNIX98_PTYS=y
851# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 855# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -910,6 +914,7 @@ CONFIG_SSB_POSSIBLE=y
910# CONFIG_MFD_SM501 is not set 914# CONFIG_MFD_SM501 is not set
911# CONFIG_HTC_PASIC3 is not set 915# CONFIG_HTC_PASIC3 is not set
912# CONFIG_MFD_TMIO is not set 916# CONFIG_MFD_TMIO is not set
917# CONFIG_LPC_SCH is not set
913# CONFIG_REGULATOR is not set 918# CONFIG_REGULATOR is not set
914# CONFIG_MEDIA_SUPPORT is not set 919# CONFIG_MEDIA_SUPPORT is not set
915 920
@@ -918,6 +923,7 @@ CONFIG_SSB_POSSIBLE=y
918# 923#
919# CONFIG_AGP is not set 924# CONFIG_AGP is not set
920CONFIG_VGA_ARB=y 925CONFIG_VGA_ARB=y
926CONFIG_VGA_ARB_MAX_GPUS=16
921# CONFIG_DRM is not set 927# CONFIG_DRM is not set
922# CONFIG_VGASTATE is not set 928# CONFIG_VGASTATE is not set
923CONFIG_VIDEO_OUTPUT_CONTROL=y 929CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1044,6 +1050,7 @@ CONFIG_MISC_FILESYSTEMS=y
1044# CONFIG_BEFS_FS is not set 1050# CONFIG_BEFS_FS is not set
1045# CONFIG_BFS_FS is not set 1051# CONFIG_BFS_FS is not set
1046# CONFIG_EFS_FS is not set 1052# CONFIG_EFS_FS is not set
1053# CONFIG_LOGFS is not set
1047# CONFIG_CRAMFS is not set 1054# CONFIG_CRAMFS is not set
1048# CONFIG_SQUASHFS is not set 1055# CONFIG_SQUASHFS is not set
1049# CONFIG_VXFS_FS is not set 1056# CONFIG_VXFS_FS is not set
@@ -1066,6 +1073,7 @@ CONFIG_SUNRPC=y
1066# CONFIG_RPCSEC_GSS_KRB5 is not set 1073# CONFIG_RPCSEC_GSS_KRB5 is not set
1067# CONFIG_RPCSEC_GSS_SPKM3 is not set 1074# CONFIG_RPCSEC_GSS_SPKM3 is not set
1068# CONFIG_SMB_FS is not set 1075# CONFIG_SMB_FS is not set
1076# CONFIG_CEPH_FS is not set
1069# CONFIG_CIFS is not set 1077# CONFIG_CIFS is not set
1070# CONFIG_NCP_FS is not set 1078# CONFIG_NCP_FS is not set
1071# CONFIG_CODA_FS is not set 1079# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index 9073778d3575..6875fb89377e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:05 2010 4# Mon Apr 19 23:16:29 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y
96CONFIG_IKCONFIG_PROC=y 96CONFIG_IKCONFIG_PROC=y
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98# CONFIG_CGROUPS is not set 98# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 99# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 100# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
103# CONFIG_BLK_DEV_INITRD is not set 102# CONFIG_BLK_DEV_INITRD is not set
@@ -301,6 +300,7 @@ CONFIG_ISA_DMA_API=y
301# Bus options 300# Bus options
302# 301#
303CONFIG_ZONE_DMA=y 302CONFIG_ZONE_DMA=y
303# CONFIG_NEED_DMA_MAP_STATE is not set
304CONFIG_PPC_INDIRECT_PCI=y 304CONFIG_PPC_INDIRECT_PCI=y
305CONFIG_FSL_SOC=y 305CONFIG_FSL_SOC=y
306CONFIG_PPC_PCI_CHOICE=y 306CONFIG_PPC_PCI_CHOICE=y
@@ -311,7 +311,6 @@ CONFIG_PCI_8260=y
311# CONFIG_PCIEPORTBUS is not set 311# CONFIG_PCIEPORTBUS is not set
312CONFIG_ARCH_SUPPORTS_MSI=y 312CONFIG_ARCH_SUPPORTS_MSI=y
313# CONFIG_PCI_MSI is not set 313# CONFIG_PCI_MSI is not set
314# CONFIG_PCI_LEGACY is not set
315# CONFIG_PCI_DEBUG is not set 314# CONFIG_PCI_DEBUG is not set
316# CONFIG_PCI_STUB is not set 315# CONFIG_PCI_STUB is not set
317# CONFIG_PCI_IOV is not set 316# CONFIG_PCI_IOV is not set
@@ -338,7 +337,6 @@ CONFIG_NET=y
338# Networking options 337# Networking options
339# 338#
340CONFIG_PACKET=y 339CONFIG_PACKET=y
341# CONFIG_PACKET_MMAP is not set
342CONFIG_UNIX=y 340CONFIG_UNIX=y
343CONFIG_XFRM=y 341CONFIG_XFRM=y
344# CONFIG_XFRM_USER is not set 342# CONFIG_XFRM_USER is not set
@@ -540,6 +538,8 @@ CONFIG_MTD_PHYSMAP_OF=y
540# UBI - Unsorted block images 538# UBI - Unsorted block images
541# 539#
542# CONFIG_MTD_UBI is not set 540# CONFIG_MTD_UBI is not set
541CONFIG_OF_FLATTREE=y
542CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 543CONFIG_OF_DEVICE=y
544CONFIG_OF_GPIO=y 544CONFIG_OF_GPIO=y
545CONFIG_OF_MDIO=y 545CONFIG_OF_MDIO=y
@@ -569,6 +569,7 @@ CONFIG_HAVE_IDE=y
569# 569#
570# SCSI device support 570# SCSI device support
571# 571#
572CONFIG_SCSI_MOD=y
572# CONFIG_RAID_ATTRS is not set 573# CONFIG_RAID_ATTRS is not set
573# CONFIG_SCSI is not set 574# CONFIG_SCSI is not set
574# CONFIG_SCSI_DMA is not set 575# CONFIG_SCSI_DMA is not set
@@ -674,6 +675,8 @@ CONFIG_NETDEV_10000=y
674# CONFIG_CHELSIO_T1 is not set 675# CONFIG_CHELSIO_T1 is not set
675CONFIG_CHELSIO_T3_DEPENDS=y 676CONFIG_CHELSIO_T3_DEPENDS=y
676# CONFIG_CHELSIO_T3 is not set 677# CONFIG_CHELSIO_T3 is not set
678CONFIG_CHELSIO_T4_DEPENDS=y
679# CONFIG_CHELSIO_T4 is not set
677# CONFIG_ENIC is not set 680# CONFIG_ENIC is not set
678# CONFIG_IXGBE is not set 681# CONFIG_IXGBE is not set
679# CONFIG_IXGB is not set 682# CONFIG_IXGB is not set
@@ -686,6 +689,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
686# CONFIG_MLX4_CORE is not set 689# CONFIG_MLX4_CORE is not set
687# CONFIG_TEHUTI is not set 690# CONFIG_TEHUTI is not set
688# CONFIG_BNX2X is not set 691# CONFIG_BNX2X is not set
692# CONFIG_QLCNIC is not set
689# CONFIG_QLGE is not set 693# CONFIG_QLGE is not set
690# CONFIG_SFC is not set 694# CONFIG_SFC is not set
691# CONFIG_BE2NET is not set 695# CONFIG_BE2NET is not set
@@ -797,6 +801,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
797CONFIG_SERIAL_CPM=y 801CONFIG_SERIAL_CPM=y
798CONFIG_SERIAL_CPM_CONSOLE=y 802CONFIG_SERIAL_CPM_CONSOLE=y
799# CONFIG_SERIAL_JSM is not set 803# CONFIG_SERIAL_JSM is not set
804# CONFIG_SERIAL_TIMBERDALE is not set
800# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 805# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
801CONFIG_UNIX98_PTYS=y 806CONFIG_UNIX98_PTYS=y
802# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 807# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -825,7 +830,9 @@ CONFIG_GPIOLIB=y
825# 830#
826# Memory mapped GPIO expanders: 831# Memory mapped GPIO expanders:
827# 832#
833# CONFIG_GPIO_IT8761E is not set
828# CONFIG_GPIO_XILINX is not set 834# CONFIG_GPIO_XILINX is not set
835# CONFIG_GPIO_SCH is not set
829 836
830# 837#
831# I2C GPIO expanders: 838# I2C GPIO expanders:
@@ -864,6 +871,8 @@ CONFIG_SSB_POSSIBLE=y
864# CONFIG_MFD_SM501 is not set 871# CONFIG_MFD_SM501 is not set
865# CONFIG_HTC_PASIC3 is not set 872# CONFIG_HTC_PASIC3 is not set
866# CONFIG_MFD_TMIO is not set 873# CONFIG_MFD_TMIO is not set
874# CONFIG_MFD_TIMBERDALE is not set
875# CONFIG_LPC_SCH is not set
867# CONFIG_REGULATOR is not set 876# CONFIG_REGULATOR is not set
868# CONFIG_MEDIA_SUPPORT is not set 877# CONFIG_MEDIA_SUPPORT is not set
869 878
@@ -872,6 +881,7 @@ CONFIG_SSB_POSSIBLE=y
872# 881#
873# CONFIG_AGP is not set 882# CONFIG_AGP is not set
874CONFIG_VGA_ARB=y 883CONFIG_VGA_ARB=y
884CONFIG_VGA_ARB_MAX_GPUS=16
875# CONFIG_DRM is not set 885# CONFIG_DRM is not set
876# CONFIG_VGASTATE is not set 886# CONFIG_VGASTATE is not set
877# CONFIG_VIDEO_OUTPUT_CONTROL is not set 887# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -933,6 +943,7 @@ CONFIG_AUTOFS4_FS=y
933# 943#
934# Caches 944# Caches
935# 945#
946# CONFIG_FSCACHE is not set
936 947
937# 948#
938# CD-ROM/DVD Filesystems 949# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 05bec4835687..bbe5ae61d979 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:06 2010 4# Mon Apr 19 23:16:30 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,14 +98,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 98# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 99# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 100CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 101# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 102# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 103# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 104# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 105CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +107,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 107CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 108# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 109# CONFIG_RD_LZMA is not set
110# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 111# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 112CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 113CONFIG_ANON_INODES=y
@@ -126,7 +121,7 @@ CONFIG_BUG=y
126CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
127CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
128CONFIG_FUTEX=y 123CONFIG_FUTEX=y
129# CONFIG_EPOLL is not set 124CONFIG_EPOLL=y
130CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
131CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
132CONFIG_EVENTFD=y 127CONFIG_EVENTFD=y
@@ -331,6 +326,7 @@ CONFIG_ISA_DMA_API=y
331# Bus options 326# Bus options
332# 327#
333CONFIG_ZONE_DMA=y 328CONFIG_ZONE_DMA=y
329# CONFIG_NEED_DMA_MAP_STATE is not set
334CONFIG_GENERIC_ISA_DMA=y 330CONFIG_GENERIC_ISA_DMA=y
335CONFIG_PPC_INDIRECT_PCI=y 331CONFIG_PPC_INDIRECT_PCI=y
336CONFIG_FSL_SOC=y 332CONFIG_FSL_SOC=y
@@ -344,7 +340,6 @@ CONFIG_PCI_SYSCALL=y
344# CONFIG_PCIEPORTBUS is not set 340# CONFIG_PCIEPORTBUS is not set
345CONFIG_ARCH_SUPPORTS_MSI=y 341CONFIG_ARCH_SUPPORTS_MSI=y
346# CONFIG_PCI_MSI is not set 342# CONFIG_PCI_MSI is not set
347# CONFIG_PCI_LEGACY is not set
348# CONFIG_PCI_STUB is not set 343# CONFIG_PCI_STUB is not set
349# CONFIG_PCI_IOV is not set 344# CONFIG_PCI_IOV is not set
350# CONFIG_PCCARD is not set 345# CONFIG_PCCARD is not set
@@ -370,7 +365,6 @@ CONFIG_NET=y
370# Networking options 365# Networking options
371# 366#
372CONFIG_PACKET=y 367CONFIG_PACKET=y
373# CONFIG_PACKET_MMAP is not set
374CONFIG_UNIX=y 368CONFIG_UNIX=y
375CONFIG_XFRM=y 369CONFIG_XFRM=y
376CONFIG_XFRM_USER=m 370CONFIG_XFRM_USER=m
@@ -560,6 +554,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
560# UBI - Unsorted block images 554# UBI - Unsorted block images
561# 555#
562# CONFIG_MTD_UBI is not set 556# CONFIG_MTD_UBI is not set
557CONFIG_OF_FLATTREE=y
558CONFIG_OF_DYNAMIC=y
563CONFIG_OF_DEVICE=y 559CONFIG_OF_DEVICE=y
564CONFIG_OF_GPIO=y 560CONFIG_OF_GPIO=y
565CONFIG_OF_I2C=y 561CONFIG_OF_I2C=y
@@ -597,6 +593,7 @@ CONFIG_MISC_DEVICES=y
597# CONFIG_ENCLOSURE_SERVICES is not set 593# CONFIG_ENCLOSURE_SERVICES is not set
598# CONFIG_HP_ILO is not set 594# CONFIG_HP_ILO is not set
599# CONFIG_ISL29003 is not set 595# CONFIG_ISL29003 is not set
596# CONFIG_SENSORS_TSL2550 is not set
600# CONFIG_DS1682 is not set 597# CONFIG_DS1682 is not set
601# CONFIG_C2PORT is not set 598# CONFIG_C2PORT is not set
602 599
@@ -614,6 +611,7 @@ CONFIG_HAVE_IDE=y
614# 611#
615# SCSI device support 612# SCSI device support
616# 613#
614CONFIG_SCSI_MOD=y
617# CONFIG_RAID_ATTRS is not set 615# CONFIG_RAID_ATTRS is not set
618CONFIG_SCSI=y 616CONFIG_SCSI=y
619CONFIG_SCSI_DMA=y 617CONFIG_SCSI_DMA=y
@@ -712,7 +710,7 @@ CONFIG_ATA_SFF=y
712# CONFIG_SATA_QSTOR is not set 710# CONFIG_SATA_QSTOR is not set
713# CONFIG_SATA_PROMISE is not set 711# CONFIG_SATA_PROMISE is not set
714# CONFIG_SATA_SX4 is not set 712# CONFIG_SATA_SX4 is not set
715# CONFIG_SATA_SIL is not set 713CONFIG_SATA_SIL=y
716# CONFIG_SATA_SIS is not set 714# CONFIG_SATA_SIS is not set
717# CONFIG_SATA_ULI is not set 715# CONFIG_SATA_ULI is not set
718# CONFIG_SATA_VIA is not set 716# CONFIG_SATA_VIA is not set
@@ -737,6 +735,7 @@ CONFIG_ATA_SFF=y
737# CONFIG_PATA_IT821X is not set 735# CONFIG_PATA_IT821X is not set
738# CONFIG_PATA_IT8213 is not set 736# CONFIG_PATA_IT8213 is not set
739# CONFIG_PATA_JMICRON is not set 737# CONFIG_PATA_JMICRON is not set
738# CONFIG_PATA_LEGACY is not set
740# CONFIG_PATA_TRIFLEX is not set 739# CONFIG_PATA_TRIFLEX is not set
741# CONFIG_PATA_MARVELL is not set 740# CONFIG_PATA_MARVELL is not set
742# CONFIG_PATA_MPIIX is not set 741# CONFIG_PATA_MPIIX is not set
@@ -863,6 +862,8 @@ CONFIG_NETDEV_10000=y
863# CONFIG_CHELSIO_T1 is not set 862# CONFIG_CHELSIO_T1 is not set
864CONFIG_CHELSIO_T3_DEPENDS=y 863CONFIG_CHELSIO_T3_DEPENDS=y
865# CONFIG_CHELSIO_T3 is not set 864# CONFIG_CHELSIO_T3 is not set
865CONFIG_CHELSIO_T4_DEPENDS=y
866# CONFIG_CHELSIO_T4 is not set
866# CONFIG_ENIC is not set 867# CONFIG_ENIC is not set
867# CONFIG_IXGBE is not set 868# CONFIG_IXGBE is not set
868# CONFIG_IXGB is not set 869# CONFIG_IXGB is not set
@@ -875,6 +876,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
875# CONFIG_MLX4_CORE is not set 876# CONFIG_MLX4_CORE is not set
876# CONFIG_TEHUTI is not set 877# CONFIG_TEHUTI is not set
877# CONFIG_BNX2X is not set 878# CONFIG_BNX2X is not set
879# CONFIG_QLCNIC is not set
878# CONFIG_QLGE is not set 880# CONFIG_QLGE is not set
879# CONFIG_SFC is not set 881# CONFIG_SFC is not set
880# CONFIG_BE2NET is not set 882# CONFIG_BE2NET is not set
@@ -970,6 +972,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
970# CONFIG_SERIAL_JSM is not set 972# CONFIG_SERIAL_JSM is not set
971# CONFIG_SERIAL_OF_PLATFORM is not set 973# CONFIG_SERIAL_OF_PLATFORM is not set
972# CONFIG_SERIAL_QE is not set 974# CONFIG_SERIAL_QE is not set
975# CONFIG_SERIAL_TIMBERDALE is not set
973# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 976# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
974CONFIG_UNIX98_PTYS=y 977CONFIG_UNIX98_PTYS=y
975# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 978# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -980,8 +983,6 @@ CONFIG_LEGACY_PTY_COUNT=256
980CONFIG_HW_RANDOM=y 983CONFIG_HW_RANDOM=y
981# CONFIG_HW_RANDOM_TIMERIOMEM is not set 984# CONFIG_HW_RANDOM_TIMERIOMEM is not set
982# CONFIG_NVRAM is not set 985# CONFIG_NVRAM is not set
983CONFIG_GEN_RTC=y
984# CONFIG_GEN_RTC_X is not set
985# CONFIG_R3964 is not set 986# CONFIG_R3964 is not set
986# CONFIG_APPLICOM is not set 987# CONFIG_APPLICOM is not set
987# CONFIG_RAW_DRIVER is not set 988# CONFIG_RAW_DRIVER is not set
@@ -1022,6 +1023,7 @@ CONFIG_I2C_HELPER_AUTO=y
1022CONFIG_I2C_MPC=y 1023CONFIG_I2C_MPC=y
1023# CONFIG_I2C_OCORES is not set 1024# CONFIG_I2C_OCORES is not set
1024# CONFIG_I2C_SIMTEC is not set 1025# CONFIG_I2C_SIMTEC is not set
1026# CONFIG_I2C_XILINX is not set
1025 1027
1026# 1028#
1027# External I2C/SMBus adapter drivers 1029# External I2C/SMBus adapter drivers
@@ -1035,15 +1037,9 @@ CONFIG_I2C_MPC=y
1035# 1037#
1036# CONFIG_I2C_PCA_PLATFORM is not set 1038# CONFIG_I2C_PCA_PLATFORM is not set
1037# CONFIG_I2C_STUB is not set 1039# CONFIG_I2C_STUB is not set
1038
1039#
1040# Miscellaneous I2C Chip support
1041#
1042# CONFIG_SENSORS_TSL2550 is not set
1043# CONFIG_I2C_DEBUG_CORE is not set 1040# CONFIG_I2C_DEBUG_CORE is not set
1044# CONFIG_I2C_DEBUG_ALGO is not set 1041# CONFIG_I2C_DEBUG_ALGO is not set
1045# CONFIG_I2C_DEBUG_BUS is not set 1042# CONFIG_I2C_DEBUG_BUS is not set
1046# CONFIG_I2C_DEBUG_CHIP is not set
1047# CONFIG_SPI is not set 1043# CONFIG_SPI is not set
1048 1044
1049# 1045#
@@ -1058,14 +1054,18 @@ CONFIG_GPIOLIB=y
1058# 1054#
1059# Memory mapped GPIO expanders: 1055# Memory mapped GPIO expanders:
1060# 1056#
1057# CONFIG_GPIO_IT8761E is not set
1061# CONFIG_GPIO_XILINX is not set 1058# CONFIG_GPIO_XILINX is not set
1059# CONFIG_GPIO_SCH is not set
1062 1060
1063# 1061#
1064# I2C GPIO expanders: 1062# I2C GPIO expanders:
1065# 1063#
1064# CONFIG_GPIO_MAX7300 is not set
1066# CONFIG_GPIO_MAX732X is not set 1065# CONFIG_GPIO_MAX732X is not set
1067# CONFIG_GPIO_PCA953X is not set 1066# CONFIG_GPIO_PCA953X is not set
1068# CONFIG_GPIO_PCF857X is not set 1067# CONFIG_GPIO_PCF857X is not set
1068# CONFIG_GPIO_ADP5588 is not set
1069 1069
1070# 1070#
1071# PCI GPIO expanders: 1071# PCI GPIO expanders:
@@ -1098,10 +1098,11 @@ CONFIG_HWMON=y
1098# CONFIG_SENSORS_ADM1029 is not set 1098# CONFIG_SENSORS_ADM1029 is not set
1099# CONFIG_SENSORS_ADM1031 is not set 1099# CONFIG_SENSORS_ADM1031 is not set
1100# CONFIG_SENSORS_ADM9240 is not set 1100# CONFIG_SENSORS_ADM9240 is not set
1101# CONFIG_SENSORS_ADT7411 is not set
1101# CONFIG_SENSORS_ADT7462 is not set 1102# CONFIG_SENSORS_ADT7462 is not set
1102# CONFIG_SENSORS_ADT7470 is not set 1103# CONFIG_SENSORS_ADT7470 is not set
1103# CONFIG_SENSORS_ADT7473 is not set
1104# CONFIG_SENSORS_ADT7475 is not set 1104# CONFIG_SENSORS_ADT7475 is not set
1105# CONFIG_SENSORS_ASC7621 is not set
1105# CONFIG_SENSORS_ATXP1 is not set 1106# CONFIG_SENSORS_ATXP1 is not set
1106# CONFIG_SENSORS_DS1621 is not set 1107# CONFIG_SENSORS_DS1621 is not set
1107# CONFIG_SENSORS_I5K_AMB is not set 1108# CONFIG_SENSORS_I5K_AMB is not set
@@ -1139,6 +1140,7 @@ CONFIG_HWMON=y
1139# CONFIG_SENSORS_SMSC47M192 is not set 1140# CONFIG_SENSORS_SMSC47M192 is not set
1140# CONFIG_SENSORS_SMSC47B397 is not set 1141# CONFIG_SENSORS_SMSC47B397 is not set
1141# CONFIG_SENSORS_ADS7828 is not set 1142# CONFIG_SENSORS_ADS7828 is not set
1143# CONFIG_SENSORS_AMC6821 is not set
1142# CONFIG_SENSORS_THMC50 is not set 1144# CONFIG_SENSORS_THMC50 is not set
1143# CONFIG_SENSORS_TMP401 is not set 1145# CONFIG_SENSORS_TMP401 is not set
1144# CONFIG_SENSORS_TMP421 is not set 1146# CONFIG_SENSORS_TMP421 is not set
@@ -1186,19 +1188,24 @@ CONFIG_SSB_POSSIBLE=y
1186# Multifunction device drivers 1188# Multifunction device drivers
1187# 1189#
1188# CONFIG_MFD_CORE is not set 1190# CONFIG_MFD_CORE is not set
1191# CONFIG_MFD_88PM860X is not set
1189# CONFIG_MFD_SM501 is not set 1192# CONFIG_MFD_SM501 is not set
1190# CONFIG_HTC_PASIC3 is not set 1193# CONFIG_HTC_PASIC3 is not set
1194# CONFIG_HTC_I2CPLD is not set
1191# CONFIG_TPS65010 is not set 1195# CONFIG_TPS65010 is not set
1192# CONFIG_TWL4030_CORE is not set 1196# CONFIG_TWL4030_CORE is not set
1193# CONFIG_MFD_TMIO is not set 1197# CONFIG_MFD_TMIO is not set
1194# CONFIG_PMIC_DA903X is not set 1198# CONFIG_PMIC_DA903X is not set
1195# CONFIG_PMIC_ADP5520 is not set 1199# CONFIG_PMIC_ADP5520 is not set
1200# CONFIG_MFD_MAX8925 is not set
1196# CONFIG_MFD_WM8400 is not set 1201# CONFIG_MFD_WM8400 is not set
1197# CONFIG_MFD_WM831X is not set 1202# CONFIG_MFD_WM831X is not set
1198# CONFIG_MFD_WM8350_I2C is not set 1203# CONFIG_MFD_WM8350_I2C is not set
1204# CONFIG_MFD_WM8994 is not set
1199# CONFIG_MFD_PCF50633 is not set 1205# CONFIG_MFD_PCF50633 is not set
1200# CONFIG_AB3100_CORE is not set 1206# CONFIG_AB3100_CORE is not set
1201# CONFIG_MFD_88PM8607 is not set 1207# CONFIG_MFD_TIMBERDALE is not set
1208# CONFIG_LPC_SCH is not set
1202# CONFIG_REGULATOR is not set 1209# CONFIG_REGULATOR is not set
1203# CONFIG_MEDIA_SUPPORT is not set 1210# CONFIG_MEDIA_SUPPORT is not set
1204 1211
@@ -1207,6 +1214,7 @@ CONFIG_SSB_POSSIBLE=y
1207# 1214#
1208# CONFIG_AGP is not set 1215# CONFIG_AGP is not set
1209CONFIG_VGA_ARB=y 1216CONFIG_VGA_ARB=y
1217CONFIG_VGA_ARB_MAX_GPUS=16
1210# CONFIG_DRM is not set 1218# CONFIG_DRM is not set
1211# CONFIG_VGASTATE is not set 1219# CONFIG_VGASTATE is not set
1212CONFIG_VIDEO_OUTPUT_CONTROL=m 1220CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1232,6 +1240,7 @@ CONFIG_USB_HID=y
1232# 1240#
1233# Special HID drivers 1241# Special HID drivers
1234# 1242#
1243# CONFIG_HID_3M_PCT is not set
1235CONFIG_HID_A4TECH=y 1244CONFIG_HID_A4TECH=y
1236CONFIG_HID_APPLE=y 1245CONFIG_HID_APPLE=y
1237CONFIG_HID_BELKIN=y 1246CONFIG_HID_BELKIN=y
@@ -1247,14 +1256,19 @@ CONFIG_HID_GYRATION=y
1247CONFIG_HID_LOGITECH=y 1256CONFIG_HID_LOGITECH=y
1248# CONFIG_LOGITECH_FF is not set 1257# CONFIG_LOGITECH_FF is not set
1249# CONFIG_LOGIRUMBLEPAD2_FF is not set 1258# CONFIG_LOGIRUMBLEPAD2_FF is not set
1259# CONFIG_LOGIG940_FF is not set
1250CONFIG_HID_MICROSOFT=y 1260CONFIG_HID_MICROSOFT=y
1261# CONFIG_HID_MOSART is not set
1251CONFIG_HID_MONTEREY=y 1262CONFIG_HID_MONTEREY=y
1252# CONFIG_HID_NTRIG is not set 1263# CONFIG_HID_NTRIG is not set
1264# CONFIG_HID_ORTEK is not set
1253CONFIG_HID_PANTHERLORD=y 1265CONFIG_HID_PANTHERLORD=y
1254# CONFIG_PANTHERLORD_FF is not set 1266# CONFIG_PANTHERLORD_FF is not set
1255CONFIG_HID_PETALYNX=y 1267CONFIG_HID_PETALYNX=y
1268# CONFIG_HID_QUANTA is not set
1256CONFIG_HID_SAMSUNG=y 1269CONFIG_HID_SAMSUNG=y
1257CONFIG_HID_SONY=y 1270CONFIG_HID_SONY=y
1271# CONFIG_HID_STANTUM is not set
1258CONFIG_HID_SUNPLUS=y 1272CONFIG_HID_SUNPLUS=y
1259# CONFIG_HID_GREENASIA is not set 1273# CONFIG_HID_GREENASIA is not set
1260# CONFIG_HID_SMARTJOYPLUS is not set 1274# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1344,7 +1358,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1344# CONFIG_USB_RIO500 is not set 1358# CONFIG_USB_RIO500 is not set
1345# CONFIG_USB_LEGOTOWER is not set 1359# CONFIG_USB_LEGOTOWER is not set
1346# CONFIG_USB_LCD is not set 1360# CONFIG_USB_LCD is not set
1347# CONFIG_USB_BERRY_CHARGE is not set
1348# CONFIG_USB_LED is not set 1361# CONFIG_USB_LED is not set
1349# CONFIG_USB_CYPRESS_CY7C63 is not set 1362# CONFIG_USB_CYPRESS_CY7C63 is not set
1350# CONFIG_USB_CYTHERM is not set 1363# CONFIG_USB_CYTHERM is not set
@@ -1357,7 +1370,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1357# CONFIG_USB_IOWARRIOR is not set 1370# CONFIG_USB_IOWARRIOR is not set
1358# CONFIG_USB_TEST is not set 1371# CONFIG_USB_TEST is not set
1359# CONFIG_USB_ISIGHTFW is not set 1372# CONFIG_USB_ISIGHTFW is not set
1360# CONFIG_USB_VST is not set
1361# CONFIG_USB_GADGET is not set 1373# CONFIG_USB_GADGET is not set
1362 1374
1363# 1375#
@@ -1372,7 +1384,65 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1372# CONFIG_ACCESSIBILITY is not set 1384# CONFIG_ACCESSIBILITY is not set
1373# CONFIG_INFINIBAND is not set 1385# CONFIG_INFINIBAND is not set
1374# CONFIG_EDAC is not set 1386# CONFIG_EDAC is not set
1375# CONFIG_RTC_CLASS is not set 1387CONFIG_RTC_LIB=y
1388CONFIG_RTC_CLASS=y
1389CONFIG_RTC_HCTOSYS=y
1390CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1391# CONFIG_RTC_DEBUG is not set
1392
1393#
1394# RTC interfaces
1395#
1396CONFIG_RTC_INTF_SYSFS=y
1397CONFIG_RTC_INTF_PROC=y
1398CONFIG_RTC_INTF_DEV=y
1399# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1400# CONFIG_RTC_DRV_TEST is not set
1401
1402#
1403# I2C RTC drivers
1404#
1405CONFIG_RTC_DRV_DS1307=y
1406CONFIG_RTC_DRV_DS1374=y
1407# CONFIG_RTC_DRV_DS1672 is not set
1408# CONFIG_RTC_DRV_MAX6900 is not set
1409# CONFIG_RTC_DRV_RS5C372 is not set
1410# CONFIG_RTC_DRV_ISL1208 is not set
1411# CONFIG_RTC_DRV_X1205 is not set
1412# CONFIG_RTC_DRV_PCF8563 is not set
1413# CONFIG_RTC_DRV_PCF8583 is not set
1414# CONFIG_RTC_DRV_M41T80 is not set
1415# CONFIG_RTC_DRV_BQ32K is not set
1416# CONFIG_RTC_DRV_S35390A is not set
1417# CONFIG_RTC_DRV_FM3130 is not set
1418# CONFIG_RTC_DRV_RX8581 is not set
1419# CONFIG_RTC_DRV_RX8025 is not set
1420
1421#
1422# SPI RTC drivers
1423#
1424
1425#
1426# Platform RTC drivers
1427#
1428# CONFIG_RTC_DRV_CMOS is not set
1429# CONFIG_RTC_DRV_DS1286 is not set
1430# CONFIG_RTC_DRV_DS1511 is not set
1431# CONFIG_RTC_DRV_DS1553 is not set
1432# CONFIG_RTC_DRV_DS1742 is not set
1433# CONFIG_RTC_DRV_STK17TA8 is not set
1434# CONFIG_RTC_DRV_M48T86 is not set
1435# CONFIG_RTC_DRV_M48T35 is not set
1436# CONFIG_RTC_DRV_M48T59 is not set
1437# CONFIG_RTC_DRV_MSM6242 is not set
1438# CONFIG_RTC_DRV_BQ4802 is not set
1439# CONFIG_RTC_DRV_RP5C01 is not set
1440# CONFIG_RTC_DRV_V3020 is not set
1441
1442#
1443# on-CPU RTC drivers
1444#
1445# CONFIG_RTC_DRV_GENERIC is not set
1376# CONFIG_DMADEVICES is not set 1446# CONFIG_DMADEVICES is not set
1377# CONFIG_AUXDISPLAY is not set 1447# CONFIG_AUXDISPLAY is not set
1378# CONFIG_UIO is not set 1448# CONFIG_UIO is not set
@@ -1453,6 +1523,7 @@ CONFIG_MISC_FILESYSTEMS=y
1453# CONFIG_BFS_FS is not set 1523# CONFIG_BFS_FS is not set
1454# CONFIG_EFS_FS is not set 1524# CONFIG_EFS_FS is not set
1455# CONFIG_JFFS2_FS is not set 1525# CONFIG_JFFS2_FS is not set
1526# CONFIG_LOGFS is not set
1456# CONFIG_CRAMFS is not set 1527# CONFIG_CRAMFS is not set
1457# CONFIG_SQUASHFS is not set 1528# CONFIG_SQUASHFS is not set
1458# CONFIG_VXFS_FS is not set 1529# CONFIG_VXFS_FS is not set
@@ -1479,6 +1550,7 @@ CONFIG_SUNRPC_GSS=y
1479CONFIG_RPCSEC_GSS_KRB5=y 1550CONFIG_RPCSEC_GSS_KRB5=y
1480# CONFIG_RPCSEC_GSS_SPKM3 is not set 1551# CONFIG_RPCSEC_GSS_SPKM3 is not set
1481# CONFIG_SMB_FS is not set 1552# CONFIG_SMB_FS is not set
1553# CONFIG_CEPH_FS is not set
1482# CONFIG_CIFS is not set 1554# CONFIG_CIFS is not set
1483# CONFIG_NCP_FS is not set 1555# CONFIG_NCP_FS is not set
1484# CONFIG_CODA_FS is not set 1556# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index 8f35f8049c92..cfebef9f9123 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:06 2010 4# Mon Apr 19 23:16:31 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -103,14 +107,8 @@ CONFIG_RCU_FANOUT=32
103CONFIG_IKCONFIG=y 107CONFIG_IKCONFIG=y
104CONFIG_IKCONFIG_PROC=y 108CONFIG_IKCONFIG_PROC=y
105CONFIG_LOG_BUF_SHIFT=14 109CONFIG_LOG_BUF_SHIFT=14
106CONFIG_GROUP_SCHED=y
107# CONFIG_FAIR_GROUP_SCHED is not set
108# CONFIG_RT_GROUP_SCHED is not set
109CONFIG_USER_SCHED=y
110# CONFIG_CGROUP_SCHED is not set
111# CONFIG_CGROUPS is not set 110# CONFIG_CGROUPS is not set
112CONFIG_SYSFS_DEPRECATED=y 111# CONFIG_SYSFS_DEPRECATED_V2 is not set
113CONFIG_SYSFS_DEPRECATED_V2=y
114# CONFIG_RELAY is not set 112# CONFIG_RELAY is not set
115# CONFIG_NAMESPACES is not set 113# CONFIG_NAMESPACES is not set
116CONFIG_BLK_DEV_INITRD=y 114CONFIG_BLK_DEV_INITRD=y
@@ -118,6 +116,7 @@ CONFIG_INITRAMFS_SOURCE=""
118CONFIG_RD_GZIP=y 116CONFIG_RD_GZIP=y
119# CONFIG_RD_BZIP2 is not set 117# CONFIG_RD_BZIP2 is not set
120# CONFIG_RD_LZMA is not set 118# CONFIG_RD_LZMA is not set
119# CONFIG_RD_LZO is not set
121# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
122CONFIG_SYSCTL=y 121CONFIG_SYSCTL=y
123CONFIG_ANON_INODES=y 122CONFIG_ANON_INODES=y
@@ -334,6 +333,7 @@ CONFIG_ISA_DMA_API=y
334# Bus options 333# Bus options
335# 334#
336CONFIG_ZONE_DMA=y 335CONFIG_ZONE_DMA=y
336# CONFIG_NEED_DMA_MAP_STATE is not set
337CONFIG_GENERIC_ISA_DMA=y 337CONFIG_GENERIC_ISA_DMA=y
338CONFIG_PPC_INDIRECT_PCI=y 338CONFIG_PPC_INDIRECT_PCI=y
339CONFIG_FSL_SOC=y 339CONFIG_FSL_SOC=y
@@ -345,7 +345,6 @@ CONFIG_PCI_SYSCALL=y
345# CONFIG_PCIEPORTBUS is not set 345# CONFIG_PCIEPORTBUS is not set
346CONFIG_ARCH_SUPPORTS_MSI=y 346CONFIG_ARCH_SUPPORTS_MSI=y
347CONFIG_PCI_MSI=y 347CONFIG_PCI_MSI=y
348# CONFIG_PCI_LEGACY is not set
349# CONFIG_PCI_DEBUG is not set 348# CONFIG_PCI_DEBUG is not set
350# CONFIG_PCI_STUB is not set 349# CONFIG_PCI_STUB is not set
351# CONFIG_PCI_IOV is not set 350# CONFIG_PCI_IOV is not set
@@ -376,7 +375,6 @@ CONFIG_NET=y
376# Networking options 375# Networking options
377# 376#
378CONFIG_PACKET=y 377CONFIG_PACKET=y
379# CONFIG_PACKET_MMAP is not set
380CONFIG_UNIX=y 378CONFIG_UNIX=y
381CONFIG_XFRM=y 379CONFIG_XFRM=y
382CONFIG_XFRM_USER=y 380CONFIG_XFRM_USER=y
@@ -509,6 +507,8 @@ CONFIG_EXTRA_FIRMWARE=""
509# CONFIG_SYS_HYPERVISOR is not set 507# CONFIG_SYS_HYPERVISOR is not set
510# CONFIG_CONNECTOR is not set 508# CONFIG_CONNECTOR is not set
511# CONFIG_MTD is not set 509# CONFIG_MTD is not set
510CONFIG_OF_FLATTREE=y
511CONFIG_OF_DYNAMIC=y
512CONFIG_OF_DEVICE=y 512CONFIG_OF_DEVICE=y
513CONFIG_OF_GPIO=y 513CONFIG_OF_GPIO=y
514CONFIG_OF_I2C=y 514CONFIG_OF_I2C=y
@@ -546,6 +546,7 @@ CONFIG_MISC_DEVICES=y
546# CONFIG_ENCLOSURE_SERVICES is not set 546# CONFIG_ENCLOSURE_SERVICES is not set
547# CONFIG_HP_ILO is not set 547# CONFIG_HP_ILO is not set
548# CONFIG_ISL29003 is not set 548# CONFIG_ISL29003 is not set
549# CONFIG_SENSORS_TSL2550 is not set
549# CONFIG_DS1682 is not set 550# CONFIG_DS1682 is not set
550# CONFIG_C2PORT is not set 551# CONFIG_C2PORT is not set
551 552
@@ -563,6 +564,7 @@ CONFIG_HAVE_IDE=y
563# 564#
564# SCSI device support 565# SCSI device support
565# 566#
567CONFIG_SCSI_MOD=y
566# CONFIG_RAID_ATTRS is not set 568# CONFIG_RAID_ATTRS is not set
567CONFIG_SCSI=y 569CONFIG_SCSI=y
568CONFIG_SCSI_DMA=y 570CONFIG_SCSI_DMA=y
@@ -687,6 +689,7 @@ CONFIG_PATA_ALI=y
687# CONFIG_PATA_IT821X is not set 689# CONFIG_PATA_IT821X is not set
688# CONFIG_PATA_IT8213 is not set 690# CONFIG_PATA_IT8213 is not set
689# CONFIG_PATA_JMICRON is not set 691# CONFIG_PATA_JMICRON is not set
692# CONFIG_PATA_LEGACY is not set
690# CONFIG_PATA_TRIFLEX is not set 693# CONFIG_PATA_TRIFLEX is not set
691# CONFIG_PATA_MARVELL is not set 694# CONFIG_PATA_MARVELL is not set
692# CONFIG_PATA_MPIIX is not set 695# CONFIG_PATA_MPIIX is not set
@@ -817,8 +820,11 @@ CONFIG_NETDEV_10000=y
817# CONFIG_CHELSIO_T1 is not set 820# CONFIG_CHELSIO_T1 is not set
818CONFIG_CHELSIO_T3_DEPENDS=y 821CONFIG_CHELSIO_T3_DEPENDS=y
819# CONFIG_CHELSIO_T3 is not set 822# CONFIG_CHELSIO_T3 is not set
823CONFIG_CHELSIO_T4_DEPENDS=y
824# CONFIG_CHELSIO_T4 is not set
820# CONFIG_ENIC is not set 825# CONFIG_ENIC is not set
821# CONFIG_IXGBE is not set 826# CONFIG_IXGBE is not set
827# CONFIG_IXGBEVF is not set
822# CONFIG_IXGB is not set 828# CONFIG_IXGB is not set
823# CONFIG_S2IO is not set 829# CONFIG_S2IO is not set
824# CONFIG_VXGE is not set 830# CONFIG_VXGE is not set
@@ -829,6 +835,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
829# CONFIG_MLX4_CORE is not set 835# CONFIG_MLX4_CORE is not set
830# CONFIG_TEHUTI is not set 836# CONFIG_TEHUTI is not set
831# CONFIG_BNX2X is not set 837# CONFIG_BNX2X is not set
838# CONFIG_QLCNIC is not set
832# CONFIG_QLGE is not set 839# CONFIG_QLGE is not set
833# CONFIG_SFC is not set 840# CONFIG_SFC is not set
834# CONFIG_BE2NET is not set 841# CONFIG_BE2NET is not set
@@ -941,6 +948,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
941# CONFIG_SERIAL_JSM is not set 948# CONFIG_SERIAL_JSM is not set
942# CONFIG_SERIAL_OF_PLATFORM is not set 949# CONFIG_SERIAL_OF_PLATFORM is not set
943CONFIG_SERIAL_QE=m 950CONFIG_SERIAL_QE=m
951# CONFIG_SERIAL_TIMBERDALE is not set
944# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 952# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
945CONFIG_UNIX98_PTYS=y 953CONFIG_UNIX98_PTYS=y
946# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 954# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -993,6 +1001,7 @@ CONFIG_I2C_CPM=m
993CONFIG_I2C_MPC=y 1001CONFIG_I2C_MPC=y
994# CONFIG_I2C_OCORES is not set 1002# CONFIG_I2C_OCORES is not set
995# CONFIG_I2C_SIMTEC is not set 1003# CONFIG_I2C_SIMTEC is not set
1004# CONFIG_I2C_XILINX is not set
996 1005
997# 1006#
998# External I2C/SMBus adapter drivers 1007# External I2C/SMBus adapter drivers
@@ -1006,15 +1015,9 @@ CONFIG_I2C_MPC=y
1006# 1015#
1007# CONFIG_I2C_PCA_PLATFORM is not set 1016# CONFIG_I2C_PCA_PLATFORM is not set
1008# CONFIG_I2C_STUB is not set 1017# CONFIG_I2C_STUB is not set
1009
1010#
1011# Miscellaneous I2C Chip support
1012#
1013# CONFIG_SENSORS_TSL2550 is not set
1014# CONFIG_I2C_DEBUG_CORE is not set 1018# CONFIG_I2C_DEBUG_CORE is not set
1015# CONFIG_I2C_DEBUG_ALGO is not set 1019# CONFIG_I2C_DEBUG_ALGO is not set
1016# CONFIG_I2C_DEBUG_BUS is not set 1020# CONFIG_I2C_DEBUG_BUS is not set
1017# CONFIG_I2C_DEBUG_CHIP is not set
1018# CONFIG_SPI is not set 1021# CONFIG_SPI is not set
1019 1022
1020# 1023#
@@ -1030,14 +1033,18 @@ CONFIG_GPIOLIB=y
1030# 1033#
1031# Memory mapped GPIO expanders: 1034# Memory mapped GPIO expanders:
1032# 1035#
1036# CONFIG_GPIO_IT8761E is not set
1033# CONFIG_GPIO_XILINX is not set 1037# CONFIG_GPIO_XILINX is not set
1038# CONFIG_GPIO_SCH is not set
1034 1039
1035# 1040#
1036# I2C GPIO expanders: 1041# I2C GPIO expanders:
1037# 1042#
1043# CONFIG_GPIO_MAX7300 is not set
1038# CONFIG_GPIO_MAX732X is not set 1044# CONFIG_GPIO_MAX732X is not set
1039# CONFIG_GPIO_PCA953X is not set 1045# CONFIG_GPIO_PCA953X is not set
1040# CONFIG_GPIO_PCF857X is not set 1046# CONFIG_GPIO_PCF857X is not set
1047# CONFIG_GPIO_ADP5588 is not set
1041 1048
1042# 1049#
1043# PCI GPIO expanders: 1050# PCI GPIO expanders:
@@ -1069,20 +1076,25 @@ CONFIG_SSB_POSSIBLE=y
1069# Multifunction device drivers 1076# Multifunction device drivers
1070# 1077#
1071# CONFIG_MFD_CORE is not set 1078# CONFIG_MFD_CORE is not set
1079# CONFIG_MFD_88PM860X is not set
1072# CONFIG_MFD_SM501 is not set 1080# CONFIG_MFD_SM501 is not set
1073# CONFIG_HTC_PASIC3 is not set 1081# CONFIG_HTC_PASIC3 is not set
1082# CONFIG_HTC_I2CPLD is not set
1074# CONFIG_UCB1400_CORE is not set 1083# CONFIG_UCB1400_CORE is not set
1075# CONFIG_TPS65010 is not set 1084# CONFIG_TPS65010 is not set
1076# CONFIG_TWL4030_CORE is not set 1085# CONFIG_TWL4030_CORE is not set
1077# CONFIG_MFD_TMIO is not set 1086# CONFIG_MFD_TMIO is not set
1078# CONFIG_PMIC_DA903X is not set 1087# CONFIG_PMIC_DA903X is not set
1079# CONFIG_PMIC_ADP5520 is not set 1088# CONFIG_PMIC_ADP5520 is not set
1089# CONFIG_MFD_MAX8925 is not set
1080# CONFIG_MFD_WM8400 is not set 1090# CONFIG_MFD_WM8400 is not set
1081# CONFIG_MFD_WM831X is not set 1091# CONFIG_MFD_WM831X is not set
1082# CONFIG_MFD_WM8350_I2C is not set 1092# CONFIG_MFD_WM8350_I2C is not set
1093# CONFIG_MFD_WM8994 is not set
1083# CONFIG_MFD_PCF50633 is not set 1094# CONFIG_MFD_PCF50633 is not set
1084# CONFIG_AB3100_CORE is not set 1095# CONFIG_AB3100_CORE is not set
1085# CONFIG_MFD_88PM8607 is not set 1096# CONFIG_MFD_TIMBERDALE is not set
1097# CONFIG_LPC_SCH is not set
1086# CONFIG_REGULATOR is not set 1098# CONFIG_REGULATOR is not set
1087# CONFIG_MEDIA_SUPPORT is not set 1099# CONFIG_MEDIA_SUPPORT is not set
1088 1100
@@ -1091,6 +1103,7 @@ CONFIG_SSB_POSSIBLE=y
1091# 1103#
1092# CONFIG_AGP is not set 1104# CONFIG_AGP is not set
1093CONFIG_VGA_ARB=y 1105CONFIG_VGA_ARB=y
1106CONFIG_VGA_ARB_MAX_GPUS=16
1094# CONFIG_DRM is not set 1107# CONFIG_DRM is not set
1095# CONFIG_VGASTATE is not set 1108# CONFIG_VGASTATE is not set
1096CONFIG_VIDEO_OUTPUT_CONTROL=y 1109CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1208,6 +1221,7 @@ CONFIG_SND_INTEL8X0=y
1208CONFIG_SND_PPC=y 1221CONFIG_SND_PPC=y
1209CONFIG_SND_USB=y 1222CONFIG_SND_USB=y
1210# CONFIG_SND_USB_AUDIO is not set 1223# CONFIG_SND_USB_AUDIO is not set
1224# CONFIG_SND_USB_UA101 is not set
1211# CONFIG_SND_USB_USX2Y is not set 1225# CONFIG_SND_USB_USX2Y is not set
1212# CONFIG_SND_USB_CAIAQ is not set 1226# CONFIG_SND_USB_CAIAQ is not set
1213# CONFIG_SND_SOC is not set 1227# CONFIG_SND_SOC is not set
@@ -1227,6 +1241,7 @@ CONFIG_USB_HID=y
1227# 1241#
1228# Special HID drivers 1242# Special HID drivers
1229# 1243#
1244# CONFIG_HID_3M_PCT is not set
1230CONFIG_HID_A4TECH=y 1245CONFIG_HID_A4TECH=y
1231CONFIG_HID_APPLE=y 1246CONFIG_HID_APPLE=y
1232CONFIG_HID_BELKIN=y 1247CONFIG_HID_BELKIN=y
@@ -1242,14 +1257,19 @@ CONFIG_HID_GYRATION=y
1242CONFIG_HID_LOGITECH=y 1257CONFIG_HID_LOGITECH=y
1243# CONFIG_LOGITECH_FF is not set 1258# CONFIG_LOGITECH_FF is not set
1244# CONFIG_LOGIRUMBLEPAD2_FF is not set 1259# CONFIG_LOGIRUMBLEPAD2_FF is not set
1260# CONFIG_LOGIG940_FF is not set
1245CONFIG_HID_MICROSOFT=y 1261CONFIG_HID_MICROSOFT=y
1262# CONFIG_HID_MOSART is not set
1246CONFIG_HID_MONTEREY=y 1263CONFIG_HID_MONTEREY=y
1247# CONFIG_HID_NTRIG is not set 1264# CONFIG_HID_NTRIG is not set
1265# CONFIG_HID_ORTEK is not set
1248CONFIG_HID_PANTHERLORD=y 1266CONFIG_HID_PANTHERLORD=y
1249# CONFIG_PANTHERLORD_FF is not set 1267# CONFIG_PANTHERLORD_FF is not set
1250CONFIG_HID_PETALYNX=y 1268CONFIG_HID_PETALYNX=y
1269# CONFIG_HID_QUANTA is not set
1251CONFIG_HID_SAMSUNG=y 1270CONFIG_HID_SAMSUNG=y
1252CONFIG_HID_SONY=y 1271CONFIG_HID_SONY=y
1272# CONFIG_HID_STANTUM is not set
1253CONFIG_HID_SUNPLUS=y 1273CONFIG_HID_SUNPLUS=y
1254# CONFIG_HID_GREENASIA is not set 1274# CONFIG_HID_GREENASIA is not set
1255# CONFIG_HID_SMARTJOYPLUS is not set 1275# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1358,7 +1378,6 @@ CONFIG_USB_STORAGE=y
1358# CONFIG_USB_RIO500 is not set 1378# CONFIG_USB_RIO500 is not set
1359# CONFIG_USB_LEGOTOWER is not set 1379# CONFIG_USB_LEGOTOWER is not set
1360# CONFIG_USB_LCD is not set 1380# CONFIG_USB_LCD is not set
1361# CONFIG_USB_BERRY_CHARGE is not set
1362# CONFIG_USB_LED is not set 1381# CONFIG_USB_LED is not set
1363# CONFIG_USB_CYPRESS_CY7C63 is not set 1382# CONFIG_USB_CYPRESS_CY7C63 is not set
1364# CONFIG_USB_CYTHERM is not set 1383# CONFIG_USB_CYTHERM is not set
@@ -1371,7 +1390,6 @@ CONFIG_USB_STORAGE=y
1371# CONFIG_USB_IOWARRIOR is not set 1390# CONFIG_USB_IOWARRIOR is not set
1372# CONFIG_USB_TEST is not set 1391# CONFIG_USB_TEST is not set
1373# CONFIG_USB_ISIGHTFW is not set 1392# CONFIG_USB_ISIGHTFW is not set
1374# CONFIG_USB_VST is not set
1375# CONFIG_USB_GADGET is not set 1393# CONFIG_USB_GADGET is not set
1376 1394
1377# 1395#
@@ -1452,6 +1470,7 @@ CONFIG_RTC_DRV_CMOS=y
1452# 1470#
1453# CONFIG_RTC_DRV_GENERIC is not set 1471# CONFIG_RTC_DRV_GENERIC is not set
1454CONFIG_DMADEVICES=y 1472CONFIG_DMADEVICES=y
1473# CONFIG_DMADEVICES_DEBUG is not set
1455 1474
1456# 1475#
1457# DMA Devices 1476# DMA Devices
@@ -1554,6 +1573,7 @@ CONFIG_BEFS_FS=m
1554# CONFIG_BEFS_DEBUG is not set 1573# CONFIG_BEFS_DEBUG is not set
1555CONFIG_BFS_FS=m 1574CONFIG_BFS_FS=m
1556CONFIG_EFS_FS=m 1575CONFIG_EFS_FS=m
1576# CONFIG_LOGFS is not set
1557CONFIG_CRAMFS=y 1577CONFIG_CRAMFS=y
1558# CONFIG_SQUASHFS is not set 1578# CONFIG_SQUASHFS is not set
1559CONFIG_VXFS_FS=m 1579CONFIG_VXFS_FS=m
@@ -1585,6 +1605,7 @@ CONFIG_SUNRPC_GSS=y
1585CONFIG_RPCSEC_GSS_KRB5=y 1605CONFIG_RPCSEC_GSS_KRB5=y
1586# CONFIG_RPCSEC_GSS_SPKM3 is not set 1606# CONFIG_RPCSEC_GSS_SPKM3 is not set
1587# CONFIG_SMB_FS is not set 1607# CONFIG_SMB_FS is not set
1608# CONFIG_CEPH_FS is not set
1588# CONFIG_CIFS is not set 1609# CONFIG_CIFS is not set
1589# CONFIG_NCP_FS is not set 1610# CONFIG_NCP_FS is not set
1590# CONFIG_CODA_FS is not set 1611# CONFIG_CODA_FS is not set
@@ -1730,6 +1751,7 @@ CONFIG_DEBUG_INFO=y
1730# CONFIG_BACKTRACE_SELF_TEST is not set 1751# CONFIG_BACKTRACE_SELF_TEST is not set
1731# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1752# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1732# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1753# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1754# CONFIG_LKDTM is not set
1733# CONFIG_FAULT_INJECTION is not set 1755# CONFIG_FAULT_INJECTION is not set
1734# CONFIG_LATENCYTOP is not set 1756# CONFIG_LATENCYTOP is not set
1735CONFIG_SYSCTL_SYSCALL_CHECK=y 1757CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/mpc85xx_smp_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig
index 8755ea3c7f5f..f5451d80f19b 100644
--- a/arch/powerpc/configs/mpc85xx_smp_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:07 2010 4# Mon Apr 19 23:16:31 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -69,6 +69,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
69# CONFIG_PPC_DCR_NATIVE is not set 69# CONFIG_PPC_DCR_NATIVE is not set
70# CONFIG_PPC_DCR_MMIO is not set 70# CONFIG_PPC_DCR_MMIO is not set
71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
72CONFIG_PPC_ADV_DEBUG_REGS=y
73CONFIG_PPC_ADV_DEBUG_IACS=2
74CONFIG_PPC_ADV_DEBUG_DACS=2
75CONFIG_PPC_ADV_DEBUG_DVCS=0
72CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 76CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
73CONFIG_CONSTRUCTORS=y 77CONFIG_CONSTRUCTORS=y
74 78
@@ -100,18 +104,13 @@ CONFIG_TREE_RCU=y
100# CONFIG_RCU_TRACE is not set 104# CONFIG_RCU_TRACE is not set
101CONFIG_RCU_FANOUT=32 105CONFIG_RCU_FANOUT=32
102# CONFIG_RCU_FANOUT_EXACT is not set 106# CONFIG_RCU_FANOUT_EXACT is not set
107# CONFIG_RCU_FAST_NO_HZ is not set
103# CONFIG_TREE_RCU_TRACE is not set 108# CONFIG_TREE_RCU_TRACE is not set
104CONFIG_IKCONFIG=y 109CONFIG_IKCONFIG=y
105CONFIG_IKCONFIG_PROC=y 110CONFIG_IKCONFIG_PROC=y
106CONFIG_LOG_BUF_SHIFT=14 111CONFIG_LOG_BUF_SHIFT=14
107CONFIG_GROUP_SCHED=y
108# CONFIG_FAIR_GROUP_SCHED is not set
109# CONFIG_RT_GROUP_SCHED is not set
110CONFIG_USER_SCHED=y
111# CONFIG_CGROUP_SCHED is not set
112# CONFIG_CGROUPS is not set 112# CONFIG_CGROUPS is not set
113CONFIG_SYSFS_DEPRECATED=y 113# CONFIG_SYSFS_DEPRECATED_V2 is not set
114CONFIG_SYSFS_DEPRECATED_V2=y
115# CONFIG_RELAY is not set 114# CONFIG_RELAY is not set
116# CONFIG_NAMESPACES is not set 115# CONFIG_NAMESPACES is not set
117CONFIG_BLK_DEV_INITRD=y 116CONFIG_BLK_DEV_INITRD=y
@@ -119,6 +118,7 @@ CONFIG_INITRAMFS_SOURCE=""
119CONFIG_RD_GZIP=y 118CONFIG_RD_GZIP=y
120# CONFIG_RD_BZIP2 is not set 119# CONFIG_RD_BZIP2 is not set
121# CONFIG_RD_LZMA is not set 120# CONFIG_RD_LZMA is not set
121# CONFIG_RD_LZO is not set
122# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 122# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
123CONFIG_SYSCTL=y 123CONFIG_SYSCTL=y
124CONFIG_ANON_INODES=y 124CONFIG_ANON_INODES=y
@@ -338,6 +338,7 @@ CONFIG_ISA_DMA_API=y
338# Bus options 338# Bus options
339# 339#
340CONFIG_ZONE_DMA=y 340CONFIG_ZONE_DMA=y
341# CONFIG_NEED_DMA_MAP_STATE is not set
341CONFIG_GENERIC_ISA_DMA=y 342CONFIG_GENERIC_ISA_DMA=y
342CONFIG_PPC_INDIRECT_PCI=y 343CONFIG_PPC_INDIRECT_PCI=y
343CONFIG_FSL_SOC=y 344CONFIG_FSL_SOC=y
@@ -349,7 +350,6 @@ CONFIG_PCI_SYSCALL=y
349# CONFIG_PCIEPORTBUS is not set 350# CONFIG_PCIEPORTBUS is not set
350CONFIG_ARCH_SUPPORTS_MSI=y 351CONFIG_ARCH_SUPPORTS_MSI=y
351CONFIG_PCI_MSI=y 352CONFIG_PCI_MSI=y
352# CONFIG_PCI_LEGACY is not set
353# CONFIG_PCI_DEBUG is not set 353# CONFIG_PCI_DEBUG is not set
354# CONFIG_PCI_STUB is not set 354# CONFIG_PCI_STUB is not set
355# CONFIG_PCI_IOV is not set 355# CONFIG_PCI_IOV is not set
@@ -380,7 +380,6 @@ CONFIG_NET=y
380# Networking options 380# Networking options
381# 381#
382CONFIG_PACKET=y 382CONFIG_PACKET=y
383# CONFIG_PACKET_MMAP is not set
384CONFIG_UNIX=y 383CONFIG_UNIX=y
385CONFIG_XFRM=y 384CONFIG_XFRM=y
386CONFIG_XFRM_USER=y 385CONFIG_XFRM_USER=y
@@ -513,6 +512,8 @@ CONFIG_EXTRA_FIRMWARE=""
513# CONFIG_SYS_HYPERVISOR is not set 512# CONFIG_SYS_HYPERVISOR is not set
514# CONFIG_CONNECTOR is not set 513# CONFIG_CONNECTOR is not set
515# CONFIG_MTD is not set 514# CONFIG_MTD is not set
515CONFIG_OF_FLATTREE=y
516CONFIG_OF_DYNAMIC=y
516CONFIG_OF_DEVICE=y 517CONFIG_OF_DEVICE=y
517CONFIG_OF_GPIO=y 518CONFIG_OF_GPIO=y
518CONFIG_OF_I2C=y 519CONFIG_OF_I2C=y
@@ -550,6 +551,7 @@ CONFIG_MISC_DEVICES=y
550# CONFIG_ENCLOSURE_SERVICES is not set 551# CONFIG_ENCLOSURE_SERVICES is not set
551# CONFIG_HP_ILO is not set 552# CONFIG_HP_ILO is not set
552# CONFIG_ISL29003 is not set 553# CONFIG_ISL29003 is not set
554# CONFIG_SENSORS_TSL2550 is not set
553# CONFIG_DS1682 is not set 555# CONFIG_DS1682 is not set
554# CONFIG_C2PORT is not set 556# CONFIG_C2PORT is not set
555 557
@@ -567,6 +569,7 @@ CONFIG_HAVE_IDE=y
567# 569#
568# SCSI device support 570# SCSI device support
569# 571#
572CONFIG_SCSI_MOD=y
570# CONFIG_RAID_ATTRS is not set 573# CONFIG_RAID_ATTRS is not set
571CONFIG_SCSI=y 574CONFIG_SCSI=y
572CONFIG_SCSI_DMA=y 575CONFIG_SCSI_DMA=y
@@ -691,6 +694,7 @@ CONFIG_PATA_ALI=y
691# CONFIG_PATA_IT821X is not set 694# CONFIG_PATA_IT821X is not set
692# CONFIG_PATA_IT8213 is not set 695# CONFIG_PATA_IT8213 is not set
693# CONFIG_PATA_JMICRON is not set 696# CONFIG_PATA_JMICRON is not set
697# CONFIG_PATA_LEGACY is not set
694# CONFIG_PATA_TRIFLEX is not set 698# CONFIG_PATA_TRIFLEX is not set
695# CONFIG_PATA_MARVELL is not set 699# CONFIG_PATA_MARVELL is not set
696# CONFIG_PATA_MPIIX is not set 700# CONFIG_PATA_MPIIX is not set
@@ -821,8 +825,11 @@ CONFIG_NETDEV_10000=y
821# CONFIG_CHELSIO_T1 is not set 825# CONFIG_CHELSIO_T1 is not set
822CONFIG_CHELSIO_T3_DEPENDS=y 826CONFIG_CHELSIO_T3_DEPENDS=y
823# CONFIG_CHELSIO_T3 is not set 827# CONFIG_CHELSIO_T3 is not set
828CONFIG_CHELSIO_T4_DEPENDS=y
829# CONFIG_CHELSIO_T4 is not set
824# CONFIG_ENIC is not set 830# CONFIG_ENIC is not set
825# CONFIG_IXGBE is not set 831# CONFIG_IXGBE is not set
832# CONFIG_IXGBEVF is not set
826# CONFIG_IXGB is not set 833# CONFIG_IXGB is not set
827# CONFIG_S2IO is not set 834# CONFIG_S2IO is not set
828# CONFIG_VXGE is not set 835# CONFIG_VXGE is not set
@@ -833,6 +840,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
833# CONFIG_MLX4_CORE is not set 840# CONFIG_MLX4_CORE is not set
834# CONFIG_TEHUTI is not set 841# CONFIG_TEHUTI is not set
835# CONFIG_BNX2X is not set 842# CONFIG_BNX2X is not set
843# CONFIG_QLCNIC is not set
836# CONFIG_QLGE is not set 844# CONFIG_QLGE is not set
837# CONFIG_SFC is not set 845# CONFIG_SFC is not set
838# CONFIG_BE2NET is not set 846# CONFIG_BE2NET is not set
@@ -945,6 +953,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
945# CONFIG_SERIAL_JSM is not set 953# CONFIG_SERIAL_JSM is not set
946# CONFIG_SERIAL_OF_PLATFORM is not set 954# CONFIG_SERIAL_OF_PLATFORM is not set
947CONFIG_SERIAL_QE=m 955CONFIG_SERIAL_QE=m
956# CONFIG_SERIAL_TIMBERDALE is not set
948# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 957# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
949CONFIG_UNIX98_PTYS=y 958CONFIG_UNIX98_PTYS=y
950# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 959# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -997,6 +1006,7 @@ CONFIG_I2C_CPM=m
997CONFIG_I2C_MPC=y 1006CONFIG_I2C_MPC=y
998# CONFIG_I2C_OCORES is not set 1007# CONFIG_I2C_OCORES is not set
999# CONFIG_I2C_SIMTEC is not set 1008# CONFIG_I2C_SIMTEC is not set
1009# CONFIG_I2C_XILINX is not set
1000 1010
1001# 1011#
1002# External I2C/SMBus adapter drivers 1012# External I2C/SMBus adapter drivers
@@ -1010,15 +1020,9 @@ CONFIG_I2C_MPC=y
1010# 1020#
1011# CONFIG_I2C_PCA_PLATFORM is not set 1021# CONFIG_I2C_PCA_PLATFORM is not set
1012# CONFIG_I2C_STUB is not set 1022# CONFIG_I2C_STUB is not set
1013
1014#
1015# Miscellaneous I2C Chip support
1016#
1017# CONFIG_SENSORS_TSL2550 is not set
1018# CONFIG_I2C_DEBUG_CORE is not set 1023# CONFIG_I2C_DEBUG_CORE is not set
1019# CONFIG_I2C_DEBUG_ALGO is not set 1024# CONFIG_I2C_DEBUG_ALGO is not set
1020# CONFIG_I2C_DEBUG_BUS is not set 1025# CONFIG_I2C_DEBUG_BUS is not set
1021# CONFIG_I2C_DEBUG_CHIP is not set
1022# CONFIG_SPI is not set 1026# CONFIG_SPI is not set
1023 1027
1024# 1028#
@@ -1034,14 +1038,18 @@ CONFIG_GPIOLIB=y
1034# 1038#
1035# Memory mapped GPIO expanders: 1039# Memory mapped GPIO expanders:
1036# 1040#
1041# CONFIG_GPIO_IT8761E is not set
1037# CONFIG_GPIO_XILINX is not set 1042# CONFIG_GPIO_XILINX is not set
1043# CONFIG_GPIO_SCH is not set
1038 1044
1039# 1045#
1040# I2C GPIO expanders: 1046# I2C GPIO expanders:
1041# 1047#
1048# CONFIG_GPIO_MAX7300 is not set
1042# CONFIG_GPIO_MAX732X is not set 1049# CONFIG_GPIO_MAX732X is not set
1043# CONFIG_GPIO_PCA953X is not set 1050# CONFIG_GPIO_PCA953X is not set
1044# CONFIG_GPIO_PCF857X is not set 1051# CONFIG_GPIO_PCF857X is not set
1052# CONFIG_GPIO_ADP5588 is not set
1045 1053
1046# 1054#
1047# PCI GPIO expanders: 1055# PCI GPIO expanders:
@@ -1073,20 +1081,25 @@ CONFIG_SSB_POSSIBLE=y
1073# Multifunction device drivers 1081# Multifunction device drivers
1074# 1082#
1075# CONFIG_MFD_CORE is not set 1083# CONFIG_MFD_CORE is not set
1084# CONFIG_MFD_88PM860X is not set
1076# CONFIG_MFD_SM501 is not set 1085# CONFIG_MFD_SM501 is not set
1077# CONFIG_HTC_PASIC3 is not set 1086# CONFIG_HTC_PASIC3 is not set
1087# CONFIG_HTC_I2CPLD is not set
1078# CONFIG_UCB1400_CORE is not set 1088# CONFIG_UCB1400_CORE is not set
1079# CONFIG_TPS65010 is not set 1089# CONFIG_TPS65010 is not set
1080# CONFIG_TWL4030_CORE is not set 1090# CONFIG_TWL4030_CORE is not set
1081# CONFIG_MFD_TMIO is not set 1091# CONFIG_MFD_TMIO is not set
1082# CONFIG_PMIC_DA903X is not set 1092# CONFIG_PMIC_DA903X is not set
1083# CONFIG_PMIC_ADP5520 is not set 1093# CONFIG_PMIC_ADP5520 is not set
1094# CONFIG_MFD_MAX8925 is not set
1084# CONFIG_MFD_WM8400 is not set 1095# CONFIG_MFD_WM8400 is not set
1085# CONFIG_MFD_WM831X is not set 1096# CONFIG_MFD_WM831X is not set
1086# CONFIG_MFD_WM8350_I2C is not set 1097# CONFIG_MFD_WM8350_I2C is not set
1098# CONFIG_MFD_WM8994 is not set
1087# CONFIG_MFD_PCF50633 is not set 1099# CONFIG_MFD_PCF50633 is not set
1088# CONFIG_AB3100_CORE is not set 1100# CONFIG_AB3100_CORE is not set
1089# CONFIG_MFD_88PM8607 is not set 1101# CONFIG_MFD_TIMBERDALE is not set
1102# CONFIG_LPC_SCH is not set
1090# CONFIG_REGULATOR is not set 1103# CONFIG_REGULATOR is not set
1091# CONFIG_MEDIA_SUPPORT is not set 1104# CONFIG_MEDIA_SUPPORT is not set
1092 1105
@@ -1095,6 +1108,7 @@ CONFIG_SSB_POSSIBLE=y
1095# 1108#
1096# CONFIG_AGP is not set 1109# CONFIG_AGP is not set
1097CONFIG_VGA_ARB=y 1110CONFIG_VGA_ARB=y
1111CONFIG_VGA_ARB_MAX_GPUS=16
1098# CONFIG_DRM is not set 1112# CONFIG_DRM is not set
1099# CONFIG_VGASTATE is not set 1113# CONFIG_VGASTATE is not set
1100CONFIG_VIDEO_OUTPUT_CONTROL=y 1114CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1212,6 +1226,7 @@ CONFIG_SND_INTEL8X0=y
1212CONFIG_SND_PPC=y 1226CONFIG_SND_PPC=y
1213CONFIG_SND_USB=y 1227CONFIG_SND_USB=y
1214# CONFIG_SND_USB_AUDIO is not set 1228# CONFIG_SND_USB_AUDIO is not set
1229# CONFIG_SND_USB_UA101 is not set
1215# CONFIG_SND_USB_USX2Y is not set 1230# CONFIG_SND_USB_USX2Y is not set
1216# CONFIG_SND_USB_CAIAQ is not set 1231# CONFIG_SND_USB_CAIAQ is not set
1217# CONFIG_SND_SOC is not set 1232# CONFIG_SND_SOC is not set
@@ -1231,6 +1246,7 @@ CONFIG_USB_HID=y
1231# 1246#
1232# Special HID drivers 1247# Special HID drivers
1233# 1248#
1249# CONFIG_HID_3M_PCT is not set
1234CONFIG_HID_A4TECH=y 1250CONFIG_HID_A4TECH=y
1235CONFIG_HID_APPLE=y 1251CONFIG_HID_APPLE=y
1236CONFIG_HID_BELKIN=y 1252CONFIG_HID_BELKIN=y
@@ -1246,14 +1262,19 @@ CONFIG_HID_GYRATION=y
1246CONFIG_HID_LOGITECH=y 1262CONFIG_HID_LOGITECH=y
1247# CONFIG_LOGITECH_FF is not set 1263# CONFIG_LOGITECH_FF is not set
1248# CONFIG_LOGIRUMBLEPAD2_FF is not set 1264# CONFIG_LOGIRUMBLEPAD2_FF is not set
1265# CONFIG_LOGIG940_FF is not set
1249CONFIG_HID_MICROSOFT=y 1266CONFIG_HID_MICROSOFT=y
1267# CONFIG_HID_MOSART is not set
1250CONFIG_HID_MONTEREY=y 1268CONFIG_HID_MONTEREY=y
1251# CONFIG_HID_NTRIG is not set 1269# CONFIG_HID_NTRIG is not set
1270# CONFIG_HID_ORTEK is not set
1252CONFIG_HID_PANTHERLORD=y 1271CONFIG_HID_PANTHERLORD=y
1253# CONFIG_PANTHERLORD_FF is not set 1272# CONFIG_PANTHERLORD_FF is not set
1254CONFIG_HID_PETALYNX=y 1273CONFIG_HID_PETALYNX=y
1274# CONFIG_HID_QUANTA is not set
1255CONFIG_HID_SAMSUNG=y 1275CONFIG_HID_SAMSUNG=y
1256CONFIG_HID_SONY=y 1276CONFIG_HID_SONY=y
1277# CONFIG_HID_STANTUM is not set
1257CONFIG_HID_SUNPLUS=y 1278CONFIG_HID_SUNPLUS=y
1258# CONFIG_HID_GREENASIA is not set 1279# CONFIG_HID_GREENASIA is not set
1259# CONFIG_HID_SMARTJOYPLUS is not set 1280# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1362,7 +1383,6 @@ CONFIG_USB_STORAGE=y
1362# CONFIG_USB_RIO500 is not set 1383# CONFIG_USB_RIO500 is not set
1363# CONFIG_USB_LEGOTOWER is not set 1384# CONFIG_USB_LEGOTOWER is not set
1364# CONFIG_USB_LCD is not set 1385# CONFIG_USB_LCD is not set
1365# CONFIG_USB_BERRY_CHARGE is not set
1366# CONFIG_USB_LED is not set 1386# CONFIG_USB_LED is not set
1367# CONFIG_USB_CYPRESS_CY7C63 is not set 1387# CONFIG_USB_CYPRESS_CY7C63 is not set
1368# CONFIG_USB_CYTHERM is not set 1388# CONFIG_USB_CYTHERM is not set
@@ -1375,7 +1395,6 @@ CONFIG_USB_STORAGE=y
1375# CONFIG_USB_IOWARRIOR is not set 1395# CONFIG_USB_IOWARRIOR is not set
1376# CONFIG_USB_TEST is not set 1396# CONFIG_USB_TEST is not set
1377# CONFIG_USB_ISIGHTFW is not set 1397# CONFIG_USB_ISIGHTFW is not set
1378# CONFIG_USB_VST is not set
1379# CONFIG_USB_GADGET is not set 1398# CONFIG_USB_GADGET is not set
1380 1399
1381# 1400#
@@ -1456,6 +1475,7 @@ CONFIG_RTC_DRV_CMOS=y
1456# 1475#
1457# CONFIG_RTC_DRV_GENERIC is not set 1476# CONFIG_RTC_DRV_GENERIC is not set
1458CONFIG_DMADEVICES=y 1477CONFIG_DMADEVICES=y
1478# CONFIG_DMADEVICES_DEBUG is not set
1459 1479
1460# 1480#
1461# DMA Devices 1481# DMA Devices
@@ -1558,6 +1578,7 @@ CONFIG_BEFS_FS=m
1558# CONFIG_BEFS_DEBUG is not set 1578# CONFIG_BEFS_DEBUG is not set
1559CONFIG_BFS_FS=m 1579CONFIG_BFS_FS=m
1560CONFIG_EFS_FS=m 1580CONFIG_EFS_FS=m
1581# CONFIG_LOGFS is not set
1561CONFIG_CRAMFS=y 1582CONFIG_CRAMFS=y
1562# CONFIG_SQUASHFS is not set 1583# CONFIG_SQUASHFS is not set
1563CONFIG_VXFS_FS=m 1584CONFIG_VXFS_FS=m
@@ -1589,6 +1610,7 @@ CONFIG_SUNRPC_GSS=y
1589CONFIG_RPCSEC_GSS_KRB5=y 1610CONFIG_RPCSEC_GSS_KRB5=y
1590# CONFIG_RPCSEC_GSS_SPKM3 is not set 1611# CONFIG_RPCSEC_GSS_SPKM3 is not set
1591# CONFIG_SMB_FS is not set 1612# CONFIG_SMB_FS is not set
1613# CONFIG_CEPH_FS is not set
1592# CONFIG_CIFS is not set 1614# CONFIG_CIFS is not set
1593# CONFIG_NCP_FS is not set 1615# CONFIG_NCP_FS is not set
1594# CONFIG_CODA_FS is not set 1616# CONFIG_CODA_FS is not set
@@ -1734,6 +1756,7 @@ CONFIG_DEBUG_INFO=y
1734# CONFIG_BACKTRACE_SELF_TEST is not set 1756# CONFIG_BACKTRACE_SELF_TEST is not set
1735# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1757# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1736# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1758# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1759# CONFIG_LKDTM is not set
1737# CONFIG_FAULT_INJECTION is not set 1760# CONFIG_FAULT_INJECTION is not set
1738# CONFIG_LATENCYTOP is not set 1761# CONFIG_LATENCYTOP is not set
1739CONFIG_SYSCTL_SYSCALL_CHECK=y 1762CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -1806,6 +1829,7 @@ CONFIG_CRYPTO_MANAGER=y
1806CONFIG_CRYPTO_MANAGER2=y 1829CONFIG_CRYPTO_MANAGER2=y
1807# CONFIG_CRYPTO_GF128MUL is not set 1830# CONFIG_CRYPTO_GF128MUL is not set
1808# CONFIG_CRYPTO_NULL is not set 1831# CONFIG_CRYPTO_NULL is not set
1832# CONFIG_CRYPTO_PCRYPT is not set
1809CONFIG_CRYPTO_WORKQUEUE=y 1833CONFIG_CRYPTO_WORKQUEUE=y
1810# CONFIG_CRYPTO_CRYPTD is not set 1834# CONFIG_CRYPTO_CRYPTD is not set
1811CONFIG_CRYPTO_AUTHENC=y 1835CONFIG_CRYPTO_AUTHENC=y
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 3f6b11b6f4f3..d8d3d1d60c84 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:08 2010 4# Mon Apr 19 23:16:32 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -89,14 +89,8 @@ CONFIG_RCU_FANOUT=32
89# CONFIG_TREE_RCU_TRACE is not set 89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
91CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
92CONFIG_GROUP_SCHED=y
93# CONFIG_FAIR_GROUP_SCHED is not set
94# CONFIG_RT_GROUP_SCHED is not set
95CONFIG_USER_SCHED=y
96# CONFIG_CGROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 92# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 93# CONFIG_SYSFS_DEPRECATED_V2 is not set
99CONFIG_SYSFS_DEPRECATED_V2=y
100# CONFIG_RELAY is not set 94# CONFIG_RELAY is not set
101# CONFIG_NAMESPACES is not set 95# CONFIG_NAMESPACES is not set
102# CONFIG_BLK_DEV_INITRD is not set 96# CONFIG_BLK_DEV_INITRD is not set
@@ -305,6 +299,7 @@ CONFIG_ISA_DMA_API=y
305# Bus options 299# Bus options
306# 300#
307CONFIG_ZONE_DMA=y 301CONFIG_ZONE_DMA=y
302CONFIG_NEED_DMA_MAP_STATE=y
308CONFIG_FSL_SOC=y 303CONFIG_FSL_SOC=y
309# CONFIG_PCI is not set 304# CONFIG_PCI is not set
310# CONFIG_PCI_DOMAINS is not set 305# CONFIG_PCI_DOMAINS is not set
@@ -333,7 +328,6 @@ CONFIG_NET=y
333# Networking options 328# Networking options
334# 329#
335CONFIG_PACKET=y 330CONFIG_PACKET=y
336# CONFIG_PACKET_MMAP is not set
337CONFIG_UNIX=y 331CONFIG_UNIX=y
338CONFIG_XFRM=y 332CONFIG_XFRM=y
339# CONFIG_XFRM_USER is not set 333# CONFIG_XFRM_USER is not set
@@ -425,6 +419,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
425# CONFIG_SYS_HYPERVISOR is not set 419# CONFIG_SYS_HYPERVISOR is not set
426# CONFIG_CONNECTOR is not set 420# CONFIG_CONNECTOR is not set
427# CONFIG_MTD is not set 421# CONFIG_MTD is not set
422CONFIG_OF_FLATTREE=y
423CONFIG_OF_DYNAMIC=y
428CONFIG_OF_DEVICE=y 424CONFIG_OF_DEVICE=y
429CONFIG_OF_MDIO=y 425CONFIG_OF_MDIO=y
430# CONFIG_PARPORT is not set 426# CONFIG_PARPORT is not set
@@ -456,6 +452,7 @@ CONFIG_HAVE_IDE=y
456# 452#
457# SCSI device support 453# SCSI device support
458# 454#
455CONFIG_SCSI_MOD=y
459# CONFIG_RAID_ATTRS is not set 456# CONFIG_RAID_ATTRS is not set
460# CONFIG_SCSI is not set 457# CONFIG_SCSI is not set
461# CONFIG_SCSI_DMA is not set 458# CONFIG_SCSI_DMA is not set
@@ -607,6 +604,7 @@ CONFIG_SERIAL_CORE=y
607CONFIG_SERIAL_CORE_CONSOLE=y 604CONFIG_SERIAL_CORE_CONSOLE=y
608CONFIG_SERIAL_CPM=y 605CONFIG_SERIAL_CPM=y
609CONFIG_SERIAL_CPM_CONSOLE=y 606CONFIG_SERIAL_CPM_CONSOLE=y
607# CONFIG_SERIAL_TIMBERDALE is not set
610# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 608# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
611CONFIG_UNIX98_PTYS=y 609CONFIG_UNIX98_PTYS=y
612# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 610# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -795,6 +793,7 @@ CONFIG_MISC_FILESYSTEMS=y
795# CONFIG_BEFS_FS is not set 793# CONFIG_BEFS_FS is not set
796# CONFIG_BFS_FS is not set 794# CONFIG_BFS_FS is not set
797# CONFIG_EFS_FS is not set 795# CONFIG_EFS_FS is not set
796# CONFIG_LOGFS is not set
798CONFIG_CRAMFS=y 797CONFIG_CRAMFS=y
799# CONFIG_SQUASHFS is not set 798# CONFIG_SQUASHFS is not set
800# CONFIG_VXFS_FS is not set 799# CONFIG_VXFS_FS is not set
@@ -819,6 +818,7 @@ CONFIG_SUNRPC=y
819# CONFIG_RPCSEC_GSS_KRB5 is not set 818# CONFIG_RPCSEC_GSS_KRB5 is not set
820# CONFIG_RPCSEC_GSS_SPKM3 is not set 819# CONFIG_RPCSEC_GSS_SPKM3 is not set
821# CONFIG_SMB_FS is not set 820# CONFIG_SMB_FS is not set
821# CONFIG_CEPH_FS is not set
822# CONFIG_CIFS is not set 822# CONFIG_CIFS is not set
823# CONFIG_NCP_FS is not set 823# CONFIG_NCP_FS is not set
824# CONFIG_CODA_FS is not set 824# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index 41884c97a4f3..624eae9a7e20 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:09 2010 4# Mon Apr 19 23:16:33 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,18 +98,13 @@ CONFIG_TREE_RCU=y
98# CONFIG_RCU_TRACE is not set 98# CONFIG_RCU_TRACE is not set
99CONFIG_RCU_FANOUT=32 99CONFIG_RCU_FANOUT=32
100# CONFIG_RCU_FANOUT_EXACT is not set 100# CONFIG_RCU_FANOUT_EXACT is not set
101# CONFIG_RCU_FAST_NO_HZ is not set
101# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
102CONFIG_IKCONFIG=y 103CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 104CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106# CONFIG_FAIR_GROUP_SCHED is not set
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
112CONFIG_SYSFS_DEPRECATED_V2=y
113# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
114# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
115CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -328,6 +324,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 324# Bus options
329# 325#
330CONFIG_ZONE_DMA=y 326CONFIG_ZONE_DMA=y
327# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_GENERIC_ISA_DMA=y 328CONFIG_GENERIC_ISA_DMA=y
332CONFIG_PPC_INDIRECT_PCI=y 329CONFIG_PPC_INDIRECT_PCI=y
333CONFIG_FSL_SOC=y 330CONFIG_FSL_SOC=y
@@ -339,7 +336,6 @@ CONFIG_PCI_SYSCALL=y
339# CONFIG_PCIEPORTBUS is not set 336# CONFIG_PCIEPORTBUS is not set
340CONFIG_ARCH_SUPPORTS_MSI=y 337CONFIG_ARCH_SUPPORTS_MSI=y
341# CONFIG_PCI_MSI is not set 338# CONFIG_PCI_MSI is not set
342# CONFIG_PCI_LEGACY is not set
343# CONFIG_PCI_DEBUG is not set 339# CONFIG_PCI_DEBUG is not set
344# CONFIG_PCI_STUB is not set 340# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 341# CONFIG_PCI_IOV is not set
@@ -367,7 +363,6 @@ CONFIG_NET=y
367# Networking options 363# Networking options
368# 364#
369CONFIG_PACKET=y 365CONFIG_PACKET=y
370# CONFIG_PACKET_MMAP is not set
371CONFIG_UNIX=y 366CONFIG_UNIX=y
372CONFIG_XFRM=y 367CONFIG_XFRM=y
373CONFIG_XFRM_USER=y 368CONFIG_XFRM_USER=y
@@ -500,6 +495,8 @@ CONFIG_EXTRA_FIRMWARE=""
500# CONFIG_SYS_HYPERVISOR is not set 495# CONFIG_SYS_HYPERVISOR is not set
501# CONFIG_CONNECTOR is not set 496# CONFIG_CONNECTOR is not set
502# CONFIG_MTD is not set 497# CONFIG_MTD is not set
498CONFIG_OF_FLATTREE=y
499CONFIG_OF_DYNAMIC=y
503CONFIG_OF_DEVICE=y 500CONFIG_OF_DEVICE=y
504CONFIG_OF_GPIO=y 501CONFIG_OF_GPIO=y
505CONFIG_OF_I2C=y 502CONFIG_OF_I2C=y
@@ -537,6 +534,7 @@ CONFIG_MISC_DEVICES=y
537# CONFIG_ENCLOSURE_SERVICES is not set 534# CONFIG_ENCLOSURE_SERVICES is not set
538# CONFIG_HP_ILO is not set 535# CONFIG_HP_ILO is not set
539# CONFIG_ISL29003 is not set 536# CONFIG_ISL29003 is not set
537# CONFIG_SENSORS_TSL2550 is not set
540# CONFIG_DS1682 is not set 538# CONFIG_DS1682 is not set
541# CONFIG_C2PORT is not set 539# CONFIG_C2PORT is not set
542 540
@@ -554,6 +552,7 @@ CONFIG_HAVE_IDE=y
554# 552#
555# SCSI device support 553# SCSI device support
556# 554#
555CONFIG_SCSI_MOD=y
557# CONFIG_RAID_ATTRS is not set 556# CONFIG_RAID_ATTRS is not set
558CONFIG_SCSI=y 557CONFIG_SCSI=y
559CONFIG_SCSI_DMA=y 558CONFIG_SCSI_DMA=y
@@ -678,6 +677,7 @@ CONFIG_PATA_ALI=y
678# CONFIG_PATA_IT821X is not set 677# CONFIG_PATA_IT821X is not set
679# CONFIG_PATA_IT8213 is not set 678# CONFIG_PATA_IT8213 is not set
680# CONFIG_PATA_JMICRON is not set 679# CONFIG_PATA_JMICRON is not set
680# CONFIG_PATA_LEGACY is not set
681# CONFIG_PATA_TRIFLEX is not set 681# CONFIG_PATA_TRIFLEX is not set
682# CONFIG_PATA_MARVELL is not set 682# CONFIG_PATA_MARVELL is not set
683# CONFIG_PATA_MPIIX is not set 683# CONFIG_PATA_MPIIX is not set
@@ -802,6 +802,8 @@ CONFIG_NETDEV_10000=y
802# CONFIG_CHELSIO_T1 is not set 802# CONFIG_CHELSIO_T1 is not set
803CONFIG_CHELSIO_T3_DEPENDS=y 803CONFIG_CHELSIO_T3_DEPENDS=y
804# CONFIG_CHELSIO_T3 is not set 804# CONFIG_CHELSIO_T3 is not set
805CONFIG_CHELSIO_T4_DEPENDS=y
806# CONFIG_CHELSIO_T4 is not set
805# CONFIG_ENIC is not set 807# CONFIG_ENIC is not set
806# CONFIG_IXGBE is not set 808# CONFIG_IXGBE is not set
807# CONFIG_IXGB is not set 809# CONFIG_IXGB is not set
@@ -814,6 +816,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
814# CONFIG_MLX4_CORE is not set 816# CONFIG_MLX4_CORE is not set
815# CONFIG_TEHUTI is not set 817# CONFIG_TEHUTI is not set
816# CONFIG_BNX2X is not set 818# CONFIG_BNX2X is not set
819# CONFIG_QLCNIC is not set
817# CONFIG_QLGE is not set 820# CONFIG_QLGE is not set
818# CONFIG_SFC is not set 821# CONFIG_SFC is not set
819# CONFIG_BE2NET is not set 822# CONFIG_BE2NET is not set
@@ -923,6 +926,7 @@ CONFIG_SERIAL_CORE=y
923CONFIG_SERIAL_CORE_CONSOLE=y 926CONFIG_SERIAL_CORE_CONSOLE=y
924# CONFIG_SERIAL_JSM is not set 927# CONFIG_SERIAL_JSM is not set
925# CONFIG_SERIAL_OF_PLATFORM is not set 928# CONFIG_SERIAL_OF_PLATFORM is not set
929# CONFIG_SERIAL_TIMBERDALE is not set
926# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 930# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
927CONFIG_UNIX98_PTYS=y 931CONFIG_UNIX98_PTYS=y
928# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 932# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -972,6 +976,7 @@ CONFIG_I2C_HELPER_AUTO=y
972CONFIG_I2C_MPC=y 976CONFIG_I2C_MPC=y
973# CONFIG_I2C_OCORES is not set 977# CONFIG_I2C_OCORES is not set
974# CONFIG_I2C_SIMTEC is not set 978# CONFIG_I2C_SIMTEC is not set
979# CONFIG_I2C_XILINX is not set
975 980
976# 981#
977# External I2C/SMBus adapter drivers 982# External I2C/SMBus adapter drivers
@@ -985,15 +990,9 @@ CONFIG_I2C_MPC=y
985# 990#
986# CONFIG_I2C_PCA_PLATFORM is not set 991# CONFIG_I2C_PCA_PLATFORM is not set
987# CONFIG_I2C_STUB is not set 992# CONFIG_I2C_STUB is not set
988
989#
990# Miscellaneous I2C Chip support
991#
992# CONFIG_SENSORS_TSL2550 is not set
993# CONFIG_I2C_DEBUG_CORE is not set 993# CONFIG_I2C_DEBUG_CORE is not set
994# CONFIG_I2C_DEBUG_ALGO is not set 994# CONFIG_I2C_DEBUG_ALGO is not set
995# CONFIG_I2C_DEBUG_BUS is not set 995# CONFIG_I2C_DEBUG_BUS is not set
996# CONFIG_I2C_DEBUG_CHIP is not set
997# CONFIG_SPI is not set 996# CONFIG_SPI is not set
998 997
999# 998#
@@ -1009,14 +1008,18 @@ CONFIG_GPIOLIB=y
1009# 1008#
1010# Memory mapped GPIO expanders: 1009# Memory mapped GPIO expanders:
1011# 1010#
1011# CONFIG_GPIO_IT8761E is not set
1012# CONFIG_GPIO_XILINX is not set 1012# CONFIG_GPIO_XILINX is not set
1013# CONFIG_GPIO_SCH is not set
1013 1014
1014# 1015#
1015# I2C GPIO expanders: 1016# I2C GPIO expanders:
1016# 1017#
1018# CONFIG_GPIO_MAX7300 is not set
1017# CONFIG_GPIO_MAX732X is not set 1019# CONFIG_GPIO_MAX732X is not set
1018# CONFIG_GPIO_PCA953X is not set 1020# CONFIG_GPIO_PCA953X is not set
1019# CONFIG_GPIO_PCF857X is not set 1021# CONFIG_GPIO_PCF857X is not set
1022# CONFIG_GPIO_ADP5588 is not set
1020 1023
1021# 1024#
1022# PCI GPIO expanders: 1025# PCI GPIO expanders:
@@ -1048,20 +1051,25 @@ CONFIG_SSB_POSSIBLE=y
1048# Multifunction device drivers 1051# Multifunction device drivers
1049# 1052#
1050# CONFIG_MFD_CORE is not set 1053# CONFIG_MFD_CORE is not set
1054# CONFIG_MFD_88PM860X is not set
1051# CONFIG_MFD_SM501 is not set 1055# CONFIG_MFD_SM501 is not set
1052# CONFIG_HTC_PASIC3 is not set 1056# CONFIG_HTC_PASIC3 is not set
1057# CONFIG_HTC_I2CPLD is not set
1053# CONFIG_UCB1400_CORE is not set 1058# CONFIG_UCB1400_CORE is not set
1054# CONFIG_TPS65010 is not set 1059# CONFIG_TPS65010 is not set
1055# CONFIG_TWL4030_CORE is not set 1060# CONFIG_TWL4030_CORE is not set
1056# CONFIG_MFD_TMIO is not set 1061# CONFIG_MFD_TMIO is not set
1057# CONFIG_PMIC_DA903X is not set 1062# CONFIG_PMIC_DA903X is not set
1058# CONFIG_PMIC_ADP5520 is not set 1063# CONFIG_PMIC_ADP5520 is not set
1064# CONFIG_MFD_MAX8925 is not set
1059# CONFIG_MFD_WM8400 is not set 1065# CONFIG_MFD_WM8400 is not set
1060# CONFIG_MFD_WM831X is not set 1066# CONFIG_MFD_WM831X is not set
1061# CONFIG_MFD_WM8350_I2C is not set 1067# CONFIG_MFD_WM8350_I2C is not set
1068# CONFIG_MFD_WM8994 is not set
1062# CONFIG_MFD_PCF50633 is not set 1069# CONFIG_MFD_PCF50633 is not set
1063# CONFIG_AB3100_CORE is not set 1070# CONFIG_AB3100_CORE is not set
1064# CONFIG_MFD_88PM8607 is not set 1071# CONFIG_MFD_TIMBERDALE is not set
1072# CONFIG_LPC_SCH is not set
1065# CONFIG_REGULATOR is not set 1073# CONFIG_REGULATOR is not set
1066# CONFIG_MEDIA_SUPPORT is not set 1074# CONFIG_MEDIA_SUPPORT is not set
1067 1075
@@ -1070,6 +1078,7 @@ CONFIG_SSB_POSSIBLE=y
1070# 1078#
1071# CONFIG_AGP is not set 1079# CONFIG_AGP is not set
1072CONFIG_VGA_ARB=y 1080CONFIG_VGA_ARB=y
1081CONFIG_VGA_ARB_MAX_GPUS=16
1073# CONFIG_DRM is not set 1082# CONFIG_DRM is not set
1074# CONFIG_VGASTATE is not set 1083# CONFIG_VGASTATE is not set
1075CONFIG_VIDEO_OUTPUT_CONTROL=y 1084CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1187,6 +1196,7 @@ CONFIG_SND_INTEL8X0=y
1187CONFIG_SND_PPC=y 1196CONFIG_SND_PPC=y
1188CONFIG_SND_USB=y 1197CONFIG_SND_USB=y
1189# CONFIG_SND_USB_AUDIO is not set 1198# CONFIG_SND_USB_AUDIO is not set
1199# CONFIG_SND_USB_UA101 is not set
1190# CONFIG_SND_USB_USX2Y is not set 1200# CONFIG_SND_USB_USX2Y is not set
1191# CONFIG_SND_USB_CAIAQ is not set 1201# CONFIG_SND_USB_CAIAQ is not set
1192# CONFIG_SND_SOC is not set 1202# CONFIG_SND_SOC is not set
@@ -1206,6 +1216,7 @@ CONFIG_USB_HID=y
1206# 1216#
1207# Special HID drivers 1217# Special HID drivers
1208# 1218#
1219# CONFIG_HID_3M_PCT is not set
1209CONFIG_HID_A4TECH=y 1220CONFIG_HID_A4TECH=y
1210CONFIG_HID_APPLE=y 1221CONFIG_HID_APPLE=y
1211CONFIG_HID_BELKIN=y 1222CONFIG_HID_BELKIN=y
@@ -1221,14 +1232,19 @@ CONFIG_HID_GYRATION=y
1221CONFIG_HID_LOGITECH=y 1232CONFIG_HID_LOGITECH=y
1222# CONFIG_LOGITECH_FF is not set 1233# CONFIG_LOGITECH_FF is not set
1223# CONFIG_LOGIRUMBLEPAD2_FF is not set 1234# CONFIG_LOGIRUMBLEPAD2_FF is not set
1235# CONFIG_LOGIG940_FF is not set
1224CONFIG_HID_MICROSOFT=y 1236CONFIG_HID_MICROSOFT=y
1237# CONFIG_HID_MOSART is not set
1225CONFIG_HID_MONTEREY=y 1238CONFIG_HID_MONTEREY=y
1226# CONFIG_HID_NTRIG is not set 1239# CONFIG_HID_NTRIG is not set
1240# CONFIG_HID_ORTEK is not set
1227CONFIG_HID_PANTHERLORD=y 1241CONFIG_HID_PANTHERLORD=y
1228# CONFIG_PANTHERLORD_FF is not set 1242# CONFIG_PANTHERLORD_FF is not set
1229CONFIG_HID_PETALYNX=y 1243CONFIG_HID_PETALYNX=y
1244# CONFIG_HID_QUANTA is not set
1230CONFIG_HID_SAMSUNG=y 1245CONFIG_HID_SAMSUNG=y
1231CONFIG_HID_SONY=y 1246CONFIG_HID_SONY=y
1247# CONFIG_HID_STANTUM is not set
1232CONFIG_HID_SUNPLUS=y 1248CONFIG_HID_SUNPLUS=y
1233# CONFIG_HID_GREENASIA is not set 1249# CONFIG_HID_GREENASIA is not set
1234# CONFIG_HID_SMARTJOYPLUS is not set 1250# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1336,7 +1352,6 @@ CONFIG_USB_STORAGE=y
1336# CONFIG_USB_RIO500 is not set 1352# CONFIG_USB_RIO500 is not set
1337# CONFIG_USB_LEGOTOWER is not set 1353# CONFIG_USB_LEGOTOWER is not set
1338# CONFIG_USB_LCD is not set 1354# CONFIG_USB_LCD is not set
1339# CONFIG_USB_BERRY_CHARGE is not set
1340# CONFIG_USB_LED is not set 1355# CONFIG_USB_LED is not set
1341# CONFIG_USB_CYPRESS_CY7C63 is not set 1356# CONFIG_USB_CYPRESS_CY7C63 is not set
1342# CONFIG_USB_CYTHERM is not set 1357# CONFIG_USB_CYTHERM is not set
@@ -1349,7 +1364,6 @@ CONFIG_USB_STORAGE=y
1349# CONFIG_USB_IOWARRIOR is not set 1364# CONFIG_USB_IOWARRIOR is not set
1350# CONFIG_USB_TEST is not set 1365# CONFIG_USB_TEST is not set
1351# CONFIG_USB_ISIGHTFW is not set 1366# CONFIG_USB_ISIGHTFW is not set
1352# CONFIG_USB_VST is not set
1353# CONFIG_USB_GADGET is not set 1367# CONFIG_USB_GADGET is not set
1354 1368
1355# 1369#
@@ -1512,6 +1526,7 @@ CONFIG_BEFS_FS=m
1512# CONFIG_BEFS_DEBUG is not set 1526# CONFIG_BEFS_DEBUG is not set
1513CONFIG_BFS_FS=m 1527CONFIG_BFS_FS=m
1514CONFIG_EFS_FS=m 1528CONFIG_EFS_FS=m
1529# CONFIG_LOGFS is not set
1515CONFIG_CRAMFS=y 1530CONFIG_CRAMFS=y
1516# CONFIG_SQUASHFS is not set 1531# CONFIG_SQUASHFS is not set
1517CONFIG_VXFS_FS=m 1532CONFIG_VXFS_FS=m
@@ -1543,6 +1558,7 @@ CONFIG_SUNRPC_GSS=y
1543CONFIG_RPCSEC_GSS_KRB5=y 1558CONFIG_RPCSEC_GSS_KRB5=y
1544# CONFIG_RPCSEC_GSS_SPKM3 is not set 1559# CONFIG_RPCSEC_GSS_SPKM3 is not set
1545# CONFIG_SMB_FS is not set 1560# CONFIG_SMB_FS is not set
1561# CONFIG_CEPH_FS is not set
1546# CONFIG_CIFS is not set 1562# CONFIG_CIFS is not set
1547# CONFIG_NCP_FS is not set 1563# CONFIG_NCP_FS is not set
1548# CONFIG_CODA_FS is not set 1564# CONFIG_CODA_FS is not set
@@ -1754,6 +1770,7 @@ CONFIG_CRYPTO_MANAGER=y
1754CONFIG_CRYPTO_MANAGER2=y 1770CONFIG_CRYPTO_MANAGER2=y
1755# CONFIG_CRYPTO_GF128MUL is not set 1771# CONFIG_CRYPTO_GF128MUL is not set
1756# CONFIG_CRYPTO_NULL is not set 1772# CONFIG_CRYPTO_NULL is not set
1773# CONFIG_CRYPTO_PCRYPT is not set
1757CONFIG_CRYPTO_WORKQUEUE=y 1774CONFIG_CRYPTO_WORKQUEUE=y
1758# CONFIG_CRYPTO_CRYPTD is not set 1775# CONFIG_CRYPTO_CRYPTD is not set
1759# CONFIG_CRYPTO_AUTHENC is not set 1776# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 6b9e6bd2c98d..45bd499630d0 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:10 2010 4# Mon Apr 19 23:16:34 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -90,14 +90,8 @@ CONFIG_RCU_FANOUT=32
90# CONFIG_TREE_RCU_TRACE is not set 90# CONFIG_TREE_RCU_TRACE is not set
91# CONFIG_IKCONFIG is not set 91# CONFIG_IKCONFIG is not set
92CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
93CONFIG_GROUP_SCHED=y
94# CONFIG_FAIR_GROUP_SCHED is not set
95# CONFIG_RT_GROUP_SCHED is not set
96CONFIG_USER_SCHED=y
97# CONFIG_CGROUP_SCHED is not set
98# CONFIG_CGROUPS is not set 93# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 94# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 95# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
103# CONFIG_BLK_DEV_INITRD is not set 97# CONFIG_BLK_DEV_INITRD is not set
@@ -313,6 +307,7 @@ CONFIG_ISA_DMA_API=y
313# Bus options 307# Bus options
314# 308#
315CONFIG_ZONE_DMA=y 309CONFIG_ZONE_DMA=y
310CONFIG_NEED_DMA_MAP_STATE=y
316CONFIG_FSL_SOC=y 311CONFIG_FSL_SOC=y
317# CONFIG_PCI is not set 312# CONFIG_PCI is not set
318# CONFIG_PCI_DOMAINS is not set 313# CONFIG_PCI_DOMAINS is not set
@@ -342,7 +337,6 @@ CONFIG_NET=y
342# Networking options 337# Networking options
343# 338#
344CONFIG_PACKET=y 339CONFIG_PACKET=y
345# CONFIG_PACKET_MMAP is not set
346CONFIG_UNIX=y 340CONFIG_UNIX=y
347# CONFIG_NET_KEY is not set 341# CONFIG_NET_KEY is not set
348CONFIG_INET=y 342CONFIG_INET=y
@@ -515,6 +509,8 @@ CONFIG_MTD_PHYSMAP_OF=y
515# UBI - Unsorted block images 509# UBI - Unsorted block images
516# 510#
517# CONFIG_MTD_UBI is not set 511# CONFIG_MTD_UBI is not set
512CONFIG_OF_FLATTREE=y
513CONFIG_OF_DYNAMIC=y
518CONFIG_OF_DEVICE=y 514CONFIG_OF_DEVICE=y
519CONFIG_OF_MDIO=y 515CONFIG_OF_MDIO=y
520# CONFIG_PARPORT is not set 516# CONFIG_PARPORT is not set
@@ -526,6 +522,7 @@ CONFIG_HAVE_IDE=y
526# 522#
527# SCSI device support 523# SCSI device support
528# 524#
525CONFIG_SCSI_MOD=y
529# CONFIG_RAID_ATTRS is not set 526# CONFIG_RAID_ATTRS is not set
530# CONFIG_SCSI is not set 527# CONFIG_SCSI is not set
531# CONFIG_SCSI_DMA is not set 528# CONFIG_SCSI_DMA is not set
@@ -627,6 +624,7 @@ CONFIG_SERIAL_CORE=y
627CONFIG_SERIAL_CORE_CONSOLE=y 624CONFIG_SERIAL_CORE_CONSOLE=y
628CONFIG_SERIAL_CPM=y 625CONFIG_SERIAL_CPM=y
629CONFIG_SERIAL_CPM_CONSOLE=y 626CONFIG_SERIAL_CPM_CONSOLE=y
627# CONFIG_SERIAL_TIMBERDALE is not set
630# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 628# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
631CONFIG_UNIX98_PTYS=y 629CONFIG_UNIX98_PTYS=y
632# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 630# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -764,6 +762,7 @@ CONFIG_MISC_FILESYSTEMS=y
764# CONFIG_BFS_FS is not set 762# CONFIG_BFS_FS is not set
765# CONFIG_EFS_FS is not set 763# CONFIG_EFS_FS is not set
766# CONFIG_JFFS2_FS is not set 764# CONFIG_JFFS2_FS is not set
765# CONFIG_LOGFS is not set
767CONFIG_CRAMFS=y 766CONFIG_CRAMFS=y
768# CONFIG_SQUASHFS is not set 767# CONFIG_SQUASHFS is not set
769# CONFIG_VXFS_FS is not set 768# CONFIG_VXFS_FS is not set
@@ -788,6 +787,7 @@ CONFIG_SUNRPC=y
788# CONFIG_RPCSEC_GSS_KRB5 is not set 787# CONFIG_RPCSEC_GSS_KRB5 is not set
789# CONFIG_RPCSEC_GSS_SPKM3 is not set 788# CONFIG_RPCSEC_GSS_SPKM3 is not set
790# CONFIG_SMB_FS is not set 789# CONFIG_SMB_FS is not set
790# CONFIG_CEPH_FS is not set
791# CONFIG_CIFS is not set 791# CONFIG_CIFS is not set
792# CONFIG_NCP_FS is not set 792# CONFIG_NCP_FS is not set
793# CONFIG_CODA_FS is not set 793# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index 5d06f2cb8e5e..68c175ea427a 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:11 2010 4# Mon Apr 19 23:16:35 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -105,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
108CONFIG_CC_OPTIMIZE_FOR_SIZE=y 109CONFIG_CC_OPTIMIZE_FOR_SIZE=y
109CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -304,6 +305,7 @@ CONFIG_ISA_DMA_API=y
304# Bus options 305# Bus options
305# 306#
306CONFIG_ZONE_DMA=y 307CONFIG_ZONE_DMA=y
308# CONFIG_NEED_DMA_MAP_STATE is not set
307CONFIG_PPC_INDIRECT_PCI=y 309CONFIG_PPC_INDIRECT_PCI=y
308CONFIG_FSL_SOC=y 310CONFIG_FSL_SOC=y
309CONFIG_PPC_PCI_CHOICE=y 311CONFIG_PPC_PCI_CHOICE=y
@@ -315,7 +317,6 @@ CONFIG_PCI_8260=y
315# CONFIG_PCIEPORTBUS is not set 317# CONFIG_PCIEPORTBUS is not set
316CONFIG_ARCH_SUPPORTS_MSI=y 318CONFIG_ARCH_SUPPORTS_MSI=y
317# CONFIG_PCI_MSI is not set 319# CONFIG_PCI_MSI is not set
318# CONFIG_PCI_LEGACY is not set
319# CONFIG_PCI_DEBUG is not set 320# CONFIG_PCI_DEBUG is not set
320# CONFIG_PCI_STUB is not set 321# CONFIG_PCI_STUB is not set
321# CONFIG_PCI_IOV is not set 322# CONFIG_PCI_IOV is not set
@@ -342,7 +343,6 @@ CONFIG_NET=y
342# Networking options 343# Networking options
343# 344#
344CONFIG_PACKET=y 345CONFIG_PACKET=y
345# CONFIG_PACKET_MMAP is not set
346CONFIG_UNIX=y 346CONFIG_UNIX=y
347CONFIG_XFRM=y 347CONFIG_XFRM=y
348# CONFIG_XFRM_USER is not set 348# CONFIG_XFRM_USER is not set
@@ -544,6 +544,8 @@ CONFIG_MTD_PHYSMAP_OF=y
544# UBI - Unsorted block images 544# UBI - Unsorted block images
545# 545#
546# CONFIG_MTD_UBI is not set 546# CONFIG_MTD_UBI is not set
547CONFIG_OF_FLATTREE=y
548CONFIG_OF_DYNAMIC=y
547CONFIG_OF_DEVICE=y 549CONFIG_OF_DEVICE=y
548CONFIG_OF_GPIO=y 550CONFIG_OF_GPIO=y
549CONFIG_OF_MDIO=y 551CONFIG_OF_MDIO=y
@@ -629,6 +631,7 @@ CONFIG_IDE_PROC_FS=y
629# 631#
630# SCSI device support 632# SCSI device support
631# 633#
634CONFIG_SCSI_MOD=y
632# CONFIG_RAID_ATTRS is not set 635# CONFIG_RAID_ATTRS is not set
633# CONFIG_SCSI is not set 636# CONFIG_SCSI is not set
634# CONFIG_SCSI_DMA is not set 637# CONFIG_SCSI_DMA is not set
@@ -734,6 +737,8 @@ CONFIG_NETDEV_10000=y
734# CONFIG_CHELSIO_T1 is not set 737# CONFIG_CHELSIO_T1 is not set
735CONFIG_CHELSIO_T3_DEPENDS=y 738CONFIG_CHELSIO_T3_DEPENDS=y
736# CONFIG_CHELSIO_T3 is not set 739# CONFIG_CHELSIO_T3 is not set
740CONFIG_CHELSIO_T4_DEPENDS=y
741# CONFIG_CHELSIO_T4 is not set
737# CONFIG_ENIC is not set 742# CONFIG_ENIC is not set
738# CONFIG_IXGBE is not set 743# CONFIG_IXGBE is not set
739# CONFIG_IXGB is not set 744# CONFIG_IXGB is not set
@@ -746,6 +751,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
746# CONFIG_MLX4_CORE is not set 751# CONFIG_MLX4_CORE is not set
747# CONFIG_TEHUTI is not set 752# CONFIG_TEHUTI is not set
748# CONFIG_BNX2X is not set 753# CONFIG_BNX2X is not set
754# CONFIG_QLCNIC is not set
749# CONFIG_QLGE is not set 755# CONFIG_QLGE is not set
750# CONFIG_SFC is not set 756# CONFIG_SFC is not set
751# CONFIG_BE2NET is not set 757# CONFIG_BE2NET is not set
@@ -859,6 +865,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
859CONFIG_SERIAL_CPM=y 865CONFIG_SERIAL_CPM=y
860CONFIG_SERIAL_CPM_CONSOLE=y 866CONFIG_SERIAL_CPM_CONSOLE=y
861# CONFIG_SERIAL_JSM is not set 867# CONFIG_SERIAL_JSM is not set
868# CONFIG_SERIAL_TIMBERDALE is not set
862# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 869# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
863CONFIG_UNIX98_PTYS=y 870CONFIG_UNIX98_PTYS=y
864# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 871# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -887,7 +894,9 @@ CONFIG_GPIOLIB=y
887# 894#
888# Memory mapped GPIO expanders: 895# Memory mapped GPIO expanders:
889# 896#
897# CONFIG_GPIO_IT8761E is not set
890# CONFIG_GPIO_XILINX is not set 898# CONFIG_GPIO_XILINX is not set
899# CONFIG_GPIO_SCH is not set
891 900
892# 901#
893# I2C GPIO expanders: 902# I2C GPIO expanders:
@@ -926,6 +935,8 @@ CONFIG_SSB_POSSIBLE=y
926# CONFIG_MFD_SM501 is not set 935# CONFIG_MFD_SM501 is not set
927# CONFIG_HTC_PASIC3 is not set 936# CONFIG_HTC_PASIC3 is not set
928# CONFIG_MFD_TMIO is not set 937# CONFIG_MFD_TMIO is not set
938# CONFIG_MFD_TIMBERDALE is not set
939# CONFIG_LPC_SCH is not set
929# CONFIG_REGULATOR is not set 940# CONFIG_REGULATOR is not set
930# CONFIG_MEDIA_SUPPORT is not set 941# CONFIG_MEDIA_SUPPORT is not set
931 942
@@ -934,6 +945,7 @@ CONFIG_SSB_POSSIBLE=y
934# 945#
935# CONFIG_AGP is not set 946# CONFIG_AGP is not set
936CONFIG_VGA_ARB=y 947CONFIG_VGA_ARB=y
948CONFIG_VGA_ARB_MAX_GPUS=16
937# CONFIG_DRM is not set 949# CONFIG_DRM is not set
938# CONFIG_VGASTATE is not set 950# CONFIG_VGASTATE is not set
939CONFIG_VIDEO_OUTPUT_CONTROL=y 951CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -996,6 +1008,7 @@ CONFIG_USB_ETH_RNDIS=y
996# CONFIG_USB_MIDI_GADGET is not set 1008# CONFIG_USB_MIDI_GADGET is not set
997# CONFIG_USB_G_PRINTER is not set 1009# CONFIG_USB_G_PRINTER is not set
998# CONFIG_USB_CDC_COMPOSITE is not set 1010# CONFIG_USB_CDC_COMPOSITE is not set
1011# CONFIG_USB_G_NOKIA is not set
999# CONFIG_USB_G_MULTI is not set 1012# CONFIG_USB_G_MULTI is not set
1000 1013
1001# 1014#
@@ -1051,6 +1064,7 @@ CONFIG_AUTOFS4_FS=y
1051# 1064#
1052# Caches 1065# Caches
1053# 1066#
1067# CONFIG_FSCACHE is not set
1054 1068
1055# 1069#
1056# CD-ROM/DVD Filesystems 1070# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index 57ab5748a34d..93f4505b5ac2 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:12 2010 4# Mon Apr 19 23:16:36 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,11 +97,6 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101CONFIG_SYSFS_DEPRECATED=y
107CONFIG_SYSFS_DEPRECATED_V2=y 102CONFIG_SYSFS_DEPRECATED_V2=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118CONFIG_RD_BZIP2=y 113CONFIG_RD_BZIP2=y
119CONFIG_RD_LZMA=y 114CONFIG_RD_LZMA=y
115CONFIG_RD_LZO=y
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -319,6 +315,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 315# Bus options
320# 316#
321CONFIG_ZONE_DMA=y 317CONFIG_ZONE_DMA=y
318CONFIG_NEED_DMA_MAP_STATE=y
322CONFIG_GENERIC_ISA_DMA=y 319CONFIG_GENERIC_ISA_DMA=y
323CONFIG_PPC_INDIRECT_PCI=y 320CONFIG_PPC_INDIRECT_PCI=y
324CONFIG_PCI=y 321CONFIG_PCI=y
@@ -327,7 +324,6 @@ CONFIG_PCI_SYSCALL=y
327# CONFIG_PCIEPORTBUS is not set 324# CONFIG_PCIEPORTBUS is not set
328CONFIG_ARCH_SUPPORTS_MSI=y 325CONFIG_ARCH_SUPPORTS_MSI=y
329# CONFIG_PCI_MSI is not set 326# CONFIG_PCI_MSI is not set
330# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_STUB is not set 327# CONFIG_PCI_STUB is not set
332# CONFIG_PCI_IOV is not set 328# CONFIG_PCI_IOV is not set
333# CONFIG_PCCARD is not set 329# CONFIG_PCCARD is not set
@@ -354,7 +350,6 @@ CONFIG_NET=y
354# Networking options 350# Networking options
355# 351#
356CONFIG_PACKET=y 352CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 353CONFIG_UNIX=y
359CONFIG_XFRM=y 354CONFIG_XFRM=y
360CONFIG_XFRM_USER=y 355CONFIG_XFRM_USER=y
@@ -533,6 +528,8 @@ CONFIG_MTD_PHYSMAP_OF=y
533# UBI - Unsorted block images 528# UBI - Unsorted block images
534# 529#
535# CONFIG_MTD_UBI is not set 530# CONFIG_MTD_UBI is not set
531CONFIG_OF_FLATTREE=y
532CONFIG_OF_DYNAMIC=y
536CONFIG_OF_DEVICE=y 533CONFIG_OF_DEVICE=y
537CONFIG_OF_I2C=y 534CONFIG_OF_I2C=y
538CONFIG_OF_MDIO=y 535CONFIG_OF_MDIO=y
@@ -569,6 +566,7 @@ CONFIG_MISC_DEVICES=y
569# CONFIG_ENCLOSURE_SERVICES is not set 566# CONFIG_ENCLOSURE_SERVICES is not set
570# CONFIG_HP_ILO is not set 567# CONFIG_HP_ILO is not set
571# CONFIG_ISL29003 is not set 568# CONFIG_ISL29003 is not set
569# CONFIG_SENSORS_TSL2550 is not set
572# CONFIG_DS1682 is not set 570# CONFIG_DS1682 is not set
573# CONFIG_C2PORT is not set 571# CONFIG_C2PORT is not set
574 572
@@ -640,6 +638,7 @@ CONFIG_BLK_DEV_IDEDMA=y
640# 638#
641# SCSI device support 639# SCSI device support
642# 640#
641CONFIG_SCSI_MOD=y
643# CONFIG_RAID_ATTRS is not set 642# CONFIG_RAID_ATTRS is not set
644CONFIG_SCSI=y 643CONFIG_SCSI=y
645CONFIG_SCSI_DMA=y 644CONFIG_SCSI_DMA=y
@@ -761,6 +760,7 @@ CONFIG_SATA_MV=y
761# CONFIG_PATA_IT821X is not set 760# CONFIG_PATA_IT821X is not set
762# CONFIG_PATA_IT8213 is not set 761# CONFIG_PATA_IT8213 is not set
763# CONFIG_PATA_JMICRON is not set 762# CONFIG_PATA_JMICRON is not set
763# CONFIG_PATA_LEGACY is not set
764# CONFIG_PATA_TRIFLEX is not set 764# CONFIG_PATA_TRIFLEX is not set
765# CONFIG_PATA_MARVELL is not set 765# CONFIG_PATA_MARVELL is not set
766# CONFIG_PATA_MPIIX is not set 766# CONFIG_PATA_MPIIX is not set
@@ -854,6 +854,7 @@ CONFIG_NET_PCI=y
854# CONFIG_PCNET32 is not set 854# CONFIG_PCNET32 is not set
855# CONFIG_AMD8111_ETH is not set 855# CONFIG_AMD8111_ETH is not set
856# CONFIG_ADAPTEC_STARFIRE is not set 856# CONFIG_ADAPTEC_STARFIRE is not set
857# CONFIG_KSZ884X_PCI is not set
857# CONFIG_B44 is not set 858# CONFIG_B44 is not set
858# CONFIG_FORCEDETH is not set 859# CONFIG_FORCEDETH is not set
859CONFIG_E100=y 860CONFIG_E100=y
@@ -907,6 +908,8 @@ CONFIG_NETDEV_10000=y
907# CONFIG_CHELSIO_T1 is not set 908# CONFIG_CHELSIO_T1 is not set
908CONFIG_CHELSIO_T3_DEPENDS=y 909CONFIG_CHELSIO_T3_DEPENDS=y
909# CONFIG_CHELSIO_T3 is not set 910# CONFIG_CHELSIO_T3 is not set
911CONFIG_CHELSIO_T4_DEPENDS=y
912# CONFIG_CHELSIO_T4 is not set
910# CONFIG_ENIC is not set 913# CONFIG_ENIC is not set
911# CONFIG_IXGBE is not set 914# CONFIG_IXGBE is not set
912# CONFIG_IXGB is not set 915# CONFIG_IXGB is not set
@@ -919,6 +922,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
919# CONFIG_MLX4_CORE is not set 922# CONFIG_MLX4_CORE is not set
920# CONFIG_TEHUTI is not set 923# CONFIG_TEHUTI is not set
921# CONFIG_BNX2X is not set 924# CONFIG_BNX2X is not set
925# CONFIG_QLCNIC is not set
922# CONFIG_QLGE is not set 926# CONFIG_QLGE is not set
923# CONFIG_SFC is not set 927# CONFIG_SFC is not set
924# CONFIG_BE2NET is not set 928# CONFIG_BE2NET is not set
@@ -1016,6 +1020,7 @@ CONFIG_SERIAL_MPSC_CONSOLE=y
1016CONFIG_SERIAL_CORE=y 1020CONFIG_SERIAL_CORE=y
1017CONFIG_SERIAL_CORE_CONSOLE=y 1021CONFIG_SERIAL_CORE_CONSOLE=y
1018# CONFIG_SERIAL_JSM is not set 1022# CONFIG_SERIAL_JSM is not set
1023# CONFIG_SERIAL_TIMBERDALE is not set
1019# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1024# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1020CONFIG_UNIX98_PTYS=y 1025CONFIG_UNIX98_PTYS=y
1021# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1026# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1065,6 +1070,7 @@ CONFIG_I2C_HELPER_AUTO=y
1065CONFIG_I2C_MV64XXX=y 1070CONFIG_I2C_MV64XXX=y
1066# CONFIG_I2C_OCORES is not set 1071# CONFIG_I2C_OCORES is not set
1067# CONFIG_I2C_SIMTEC is not set 1072# CONFIG_I2C_SIMTEC is not set
1073# CONFIG_I2C_XILINX is not set
1068 1074
1069# 1075#
1070# External I2C/SMBus adapter drivers 1076# External I2C/SMBus adapter drivers
@@ -1077,15 +1083,9 @@ CONFIG_I2C_MV64XXX=y
1077# Other I2C/SMBus bus drivers 1083# Other I2C/SMBus bus drivers
1078# 1084#
1079# CONFIG_I2C_PCA_PLATFORM is not set 1085# CONFIG_I2C_PCA_PLATFORM is not set
1080
1081#
1082# Miscellaneous I2C Chip support
1083#
1084# CONFIG_SENSORS_TSL2550 is not set
1085# CONFIG_I2C_DEBUG_CORE is not set 1086# CONFIG_I2C_DEBUG_CORE is not set
1086# CONFIG_I2C_DEBUG_ALGO is not set 1087# CONFIG_I2C_DEBUG_ALGO is not set
1087# CONFIG_I2C_DEBUG_BUS is not set 1088# CONFIG_I2C_DEBUG_BUS is not set
1088# CONFIG_I2C_DEBUG_CHIP is not set
1089# CONFIG_SPI is not set 1089# CONFIG_SPI is not set
1090 1090
1091# 1091#
@@ -1111,10 +1111,11 @@ CONFIG_HWMON=y
1111# CONFIG_SENSORS_ADM1029 is not set 1111# CONFIG_SENSORS_ADM1029 is not set
1112# CONFIG_SENSORS_ADM1031 is not set 1112# CONFIG_SENSORS_ADM1031 is not set
1113# CONFIG_SENSORS_ADM9240 is not set 1113# CONFIG_SENSORS_ADM9240 is not set
1114# CONFIG_SENSORS_ADT7411 is not set
1114# CONFIG_SENSORS_ADT7462 is not set 1115# CONFIG_SENSORS_ADT7462 is not set
1115# CONFIG_SENSORS_ADT7470 is not set 1116# CONFIG_SENSORS_ADT7470 is not set
1116# CONFIG_SENSORS_ADT7473 is not set
1117# CONFIG_SENSORS_ADT7475 is not set 1117# CONFIG_SENSORS_ADT7475 is not set
1118# CONFIG_SENSORS_ASC7621 is not set
1118# CONFIG_SENSORS_ATXP1 is not set 1119# CONFIG_SENSORS_ATXP1 is not set
1119# CONFIG_SENSORS_DS1621 is not set 1120# CONFIG_SENSORS_DS1621 is not set
1120# CONFIG_SENSORS_I5K_AMB is not set 1121# CONFIG_SENSORS_I5K_AMB is not set
@@ -1151,6 +1152,7 @@ CONFIG_HWMON=y
1151# CONFIG_SENSORS_SMSC47M192 is not set 1152# CONFIG_SENSORS_SMSC47M192 is not set
1152# CONFIG_SENSORS_SMSC47B397 is not set 1153# CONFIG_SENSORS_SMSC47B397 is not set
1153# CONFIG_SENSORS_ADS7828 is not set 1154# CONFIG_SENSORS_ADS7828 is not set
1155# CONFIG_SENSORS_AMC6821 is not set
1154# CONFIG_SENSORS_THMC50 is not set 1156# CONFIG_SENSORS_THMC50 is not set
1155# CONFIG_SENSORS_TMP401 is not set 1157# CONFIG_SENSORS_TMP401 is not set
1156# CONFIG_SENSORS_TMP421 is not set 1158# CONFIG_SENSORS_TMP421 is not set
@@ -1179,18 +1181,21 @@ CONFIG_SSB_POSSIBLE=y
1179# Multifunction device drivers 1181# Multifunction device drivers
1180# 1182#
1181# CONFIG_MFD_CORE is not set 1183# CONFIG_MFD_CORE is not set
1184# CONFIG_MFD_88PM860X is not set
1182# CONFIG_MFD_SM501 is not set 1185# CONFIG_MFD_SM501 is not set
1183# CONFIG_HTC_PASIC3 is not set 1186# CONFIG_HTC_PASIC3 is not set
1184# CONFIG_TWL4030_CORE is not set 1187# CONFIG_TWL4030_CORE is not set
1185# CONFIG_MFD_TMIO is not set 1188# CONFIG_MFD_TMIO is not set
1186# CONFIG_PMIC_DA903X is not set 1189# CONFIG_PMIC_DA903X is not set
1187# CONFIG_PMIC_ADP5520 is not set 1190# CONFIG_PMIC_ADP5520 is not set
1191# CONFIG_MFD_MAX8925 is not set
1188# CONFIG_MFD_WM8400 is not set 1192# CONFIG_MFD_WM8400 is not set
1189# CONFIG_MFD_WM831X is not set 1193# CONFIG_MFD_WM831X is not set
1190# CONFIG_MFD_WM8350_I2C is not set 1194# CONFIG_MFD_WM8350_I2C is not set
1195# CONFIG_MFD_WM8994 is not set
1191# CONFIG_MFD_PCF50633 is not set 1196# CONFIG_MFD_PCF50633 is not set
1192# CONFIG_AB3100_CORE is not set 1197# CONFIG_AB3100_CORE is not set
1193# CONFIG_MFD_88PM8607 is not set 1198# CONFIG_LPC_SCH is not set
1194# CONFIG_REGULATOR is not set 1199# CONFIG_REGULATOR is not set
1195# CONFIG_MEDIA_SUPPORT is not set 1200# CONFIG_MEDIA_SUPPORT is not set
1196 1201
@@ -1199,6 +1204,7 @@ CONFIG_SSB_POSSIBLE=y
1199# 1204#
1200# CONFIG_AGP is not set 1205# CONFIG_AGP is not set
1201CONFIG_VGA_ARB=y 1206CONFIG_VGA_ARB=y
1207CONFIG_VGA_ARB_MAX_GPUS=16
1202# CONFIG_DRM is not set 1208# CONFIG_DRM is not set
1203# CONFIG_VGASTATE is not set 1209# CONFIG_VGASTATE is not set
1204CONFIG_VIDEO_OUTPUT_CONTROL=y 1210CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1231,6 +1237,7 @@ CONFIG_USB_HID=y
1231# 1237#
1232# Special HID drivers 1238# Special HID drivers
1233# 1239#
1240# CONFIG_HID_3M_PCT is not set
1234CONFIG_HID_A4TECH=y 1241CONFIG_HID_A4TECH=y
1235CONFIG_HID_APPLE=y 1242CONFIG_HID_APPLE=y
1236CONFIG_HID_BELKIN=y 1243CONFIG_HID_BELKIN=y
@@ -1247,14 +1254,19 @@ CONFIG_HID_KENSINGTON=y
1247CONFIG_HID_LOGITECH=y 1254CONFIG_HID_LOGITECH=y
1248# CONFIG_LOGITECH_FF is not set 1255# CONFIG_LOGITECH_FF is not set
1249# CONFIG_LOGIRUMBLEPAD2_FF is not set 1256# CONFIG_LOGIRUMBLEPAD2_FF is not set
1257# CONFIG_LOGIG940_FF is not set
1250CONFIG_HID_MICROSOFT=y 1258CONFIG_HID_MICROSOFT=y
1259# CONFIG_HID_MOSART is not set
1251CONFIG_HID_MONTEREY=y 1260CONFIG_HID_MONTEREY=y
1252CONFIG_HID_NTRIG=y 1261CONFIG_HID_NTRIG=y
1262CONFIG_HID_ORTEK=y
1253CONFIG_HID_PANTHERLORD=y 1263CONFIG_HID_PANTHERLORD=y
1254# CONFIG_PANTHERLORD_FF is not set 1264# CONFIG_PANTHERLORD_FF is not set
1255CONFIG_HID_PETALYNX=y 1265CONFIG_HID_PETALYNX=y
1266# CONFIG_HID_QUANTA is not set
1256CONFIG_HID_SAMSUNG=y 1267CONFIG_HID_SAMSUNG=y
1257CONFIG_HID_SONY=y 1268CONFIG_HID_SONY=y
1269# CONFIG_HID_STANTUM is not set
1258CONFIG_HID_SUNPLUS=y 1270CONFIG_HID_SUNPLUS=y
1259CONFIG_HID_GREENASIA=y 1271CONFIG_HID_GREENASIA=y
1260# CONFIG_GREENASIA_FF is not set 1272# CONFIG_GREENASIA_FF is not set
@@ -1350,7 +1362,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1350# CONFIG_USB_RIO500 is not set 1362# CONFIG_USB_RIO500 is not set
1351# CONFIG_USB_LEGOTOWER is not set 1363# CONFIG_USB_LEGOTOWER is not set
1352# CONFIG_USB_LCD is not set 1364# CONFIG_USB_LCD is not set
1353# CONFIG_USB_BERRY_CHARGE is not set
1354# CONFIG_USB_LED is not set 1365# CONFIG_USB_LED is not set
1355# CONFIG_USB_CYPRESS_CY7C63 is not set 1366# CONFIG_USB_CYPRESS_CY7C63 is not set
1356# CONFIG_USB_CYTHERM is not set 1367# CONFIG_USB_CYTHERM is not set
@@ -1363,7 +1374,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1363# CONFIG_USB_IOWARRIOR is not set 1374# CONFIG_USB_IOWARRIOR is not set
1364# CONFIG_USB_TEST is not set 1375# CONFIG_USB_TEST is not set
1365# CONFIG_USB_ISIGHTFW is not set 1376# CONFIG_USB_ISIGHTFW is not set
1366# CONFIG_USB_VST is not set
1367# CONFIG_USB_GADGET is not set 1377# CONFIG_USB_GADGET is not set
1368 1378
1369# 1379#
@@ -1516,6 +1526,7 @@ CONFIG_MISC_FILESYSTEMS=y
1516# CONFIG_BFS_FS is not set 1526# CONFIG_BFS_FS is not set
1517# CONFIG_EFS_FS is not set 1527# CONFIG_EFS_FS is not set
1518# CONFIG_JFFS2_FS is not set 1528# CONFIG_JFFS2_FS is not set
1529# CONFIG_LOGFS is not set
1519# CONFIG_CRAMFS is not set 1530# CONFIG_CRAMFS is not set
1520# CONFIG_SQUASHFS is not set 1531# CONFIG_SQUASHFS is not set
1521# CONFIG_VXFS_FS is not set 1532# CONFIG_VXFS_FS is not set
@@ -1538,6 +1549,7 @@ CONFIG_SUNRPC=y
1538# CONFIG_RPCSEC_GSS_KRB5 is not set 1549# CONFIG_RPCSEC_GSS_KRB5 is not set
1539# CONFIG_RPCSEC_GSS_SPKM3 is not set 1550# CONFIG_RPCSEC_GSS_SPKM3 is not set
1540# CONFIG_SMB_FS is not set 1551# CONFIG_SMB_FS is not set
1552# CONFIG_CEPH_FS is not set
1541# CONFIG_CIFS is not set 1553# CONFIG_CIFS is not set
1542# CONFIG_NCP_FS is not set 1554# CONFIG_NCP_FS is not set
1543# CONFIG_CODA_FS is not set 1555# CONFIG_CODA_FS is not set
@@ -1620,9 +1632,11 @@ CONFIG_CRC32=y
1620# CONFIG_CRC7 is not set 1632# CONFIG_CRC7 is not set
1621# CONFIG_LIBCRC32C is not set 1633# CONFIG_LIBCRC32C is not set
1622CONFIG_ZLIB_INFLATE=y 1634CONFIG_ZLIB_INFLATE=y
1635CONFIG_LZO_DECOMPRESS=y
1623CONFIG_DECOMPRESS_GZIP=y 1636CONFIG_DECOMPRESS_GZIP=y
1624CONFIG_DECOMPRESS_BZIP2=y 1637CONFIG_DECOMPRESS_BZIP2=y
1625CONFIG_DECOMPRESS_LZMA=y 1638CONFIG_DECOMPRESS_LZMA=y
1639CONFIG_DECOMPRESS_LZO=y
1626CONFIG_HAS_IOMEM=y 1640CONFIG_HAS_IOMEM=y
1627CONFIG_HAS_IOPORT=y 1641CONFIG_HAS_IOPORT=y
1628CONFIG_HAS_DMA=y 1642CONFIG_HAS_DMA=y
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index 32f7058bb173..3808bc2be86f 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_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.31-rc7 3# Linux kernel version: 2.6.34-rc4
4# Mon Aug 24 17:38:50 2009 4# Thu Apr 15 11:32:15 2010
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -9,6 +9,7 @@ CONFIG_PPC64=y
9# Processor support 9# Processor support
10# 10#
11CONFIG_PPC_BOOK3S_64=y 11CONFIG_PPC_BOOK3S_64=y
12# CONFIG_PPC_BOOK3E_64 is not set
12CONFIG_PPC_BOOK3S=y 13CONFIG_PPC_BOOK3S=y
13# CONFIG_POWER4_ONLY is not set 14# CONFIG_POWER4_ONLY is not set
14CONFIG_POWER3=y 15CONFIG_POWER3=y
@@ -35,7 +36,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y
35CONFIG_GENERIC_HARDIRQS=y 36CONFIG_GENERIC_HARDIRQS=y
36CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 37CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
37CONFIG_HAVE_SETUP_PER_CPU_AREA=y 38CONFIG_HAVE_SETUP_PER_CPU_AREA=y
39CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
38CONFIG_IRQ_PER_CPU=y 40CONFIG_IRQ_PER_CPU=y
41CONFIG_NR_IRQS=512
39CONFIG_STACKTRACE_SUPPORT=y 42CONFIG_STACKTRACE_SUPPORT=y
40CONFIG_HAVE_LATENCYTOP_SUPPORT=y 43CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y 44CONFIG_TRACE_IRQFLAGS_SUPPORT=y
@@ -60,6 +63,7 @@ CONFIG_AUDIT_ARCH=y
60CONFIG_GENERIC_BUG=y 63CONFIG_GENERIC_BUG=y
61CONFIG_DTC=y 64CONFIG_DTC=y
62# CONFIG_DEFAULT_UIMAGE is not set 65# CONFIG_DEFAULT_UIMAGE is not set
66CONFIG_ARCH_HIBERNATION_POSSIBLE=y
63# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
64# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
65CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
@@ -86,14 +90,15 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
86# 90#
87# RCU Subsystem 91# RCU Subsystem
88# 92#
89CONFIG_CLASSIC_RCU=y 93CONFIG_TREE_RCU=y
90# CONFIG_TREE_RCU is not set 94# CONFIG_TREE_PREEMPT_RCU is not set
91# CONFIG_PREEMPT_RCU is not set 95# CONFIG_TINY_RCU is not set
96# CONFIG_RCU_TRACE is not set
97CONFIG_RCU_FANOUT=64
98# CONFIG_RCU_FANOUT_EXACT is not set
92# CONFIG_TREE_RCU_TRACE is not set 99# CONFIG_TREE_RCU_TRACE is not set
93# CONFIG_PREEMPT_RCU_TRACE is not set
94# CONFIG_IKCONFIG is not set 100# CONFIG_IKCONFIG is not set
95CONFIG_LOG_BUF_SHIFT=17 101CONFIG_LOG_BUF_SHIFT=17
96# CONFIG_GROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 102# CONFIG_CGROUPS is not set
98# CONFIG_SYSFS_DEPRECATED_V2 is not set 103# CONFIG_SYSFS_DEPRECATED_V2 is not set
99# CONFIG_RELAY is not set 104# CONFIG_RELAY is not set
@@ -108,6 +113,7 @@ CONFIG_INITRAMFS_SOURCE=""
108CONFIG_RD_GZIP=y 113CONFIG_RD_GZIP=y
109# CONFIG_RD_BZIP2 is not set 114# CONFIG_RD_BZIP2 is not set
110# CONFIG_RD_LZMA is not set 115# CONFIG_RD_LZMA is not set
116# CONFIG_RD_LZO is not set
111CONFIG_CC_OPTIMIZE_FOR_SIZE=y 117CONFIG_CC_OPTIMIZE_FOR_SIZE=y
112CONFIG_SYSCTL=y 118CONFIG_SYSCTL=y
113CONFIG_ANON_INODES=y 119CONFIG_ANON_INODES=y
@@ -128,21 +134,19 @@ CONFIG_TIMERFD=y
128CONFIG_EVENTFD=y 134CONFIG_EVENTFD=y
129CONFIG_SHMEM=y 135CONFIG_SHMEM=y
130CONFIG_AIO=y 136CONFIG_AIO=y
131CONFIG_HAVE_PERF_COUNTERS=y 137CONFIG_HAVE_PERF_EVENTS=y
132 138
133# 139#
134# Performance Counters 140# Kernel Performance Events And Counters
135# 141#
142# CONFIG_PERF_EVENTS is not set
136# CONFIG_PERF_COUNTERS is not set 143# CONFIG_PERF_COUNTERS is not set
137CONFIG_VM_EVENT_COUNTERS=y 144CONFIG_VM_EVENT_COUNTERS=y
138# CONFIG_STRIP_ASM_SYMS is not set
139# CONFIG_COMPAT_BRK is not set 145# CONFIG_COMPAT_BRK is not set
140CONFIG_SLAB=y 146CONFIG_SLAB=y
141# CONFIG_SLUB is not set 147# CONFIG_SLUB is not set
142# CONFIG_SLOB is not set 148# CONFIG_SLOB is not set
143CONFIG_PROFILING=y 149CONFIG_PROFILING=y
144CONFIG_TRACEPOINTS=y
145CONFIG_MARKERS=y
146CONFIG_OPROFILE=m 150CONFIG_OPROFILE=m
147CONFIG_HAVE_OPROFILE=y 151CONFIG_HAVE_OPROFILE=y
148# CONFIG_KPROBES is not set 152# CONFIG_KPROBES is not set
@@ -154,12 +158,14 @@ CONFIG_HAVE_KRETPROBES=y
154CONFIG_HAVE_ARCH_TRACEHOOK=y 158CONFIG_HAVE_ARCH_TRACEHOOK=y
155CONFIG_HAVE_DMA_ATTRS=y 159CONFIG_HAVE_DMA_ATTRS=y
156CONFIG_USE_GENERIC_SMP_HELPERS=y 160CONFIG_USE_GENERIC_SMP_HELPERS=y
161CONFIG_HAVE_DMA_API_DEBUG=y
157 162
158# 163#
159# GCOV-based kernel profiling 164# GCOV-based kernel profiling
160# 165#
161# CONFIG_GCOV_KERNEL is not set 166# CONFIG_GCOV_KERNEL is not set
162# CONFIG_SLOW_WORK is not set 167CONFIG_SLOW_WORK=y
168# CONFIG_SLOW_WORK_DEBUG is not set
163# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 169# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
164CONFIG_SLABINFO=y 170CONFIG_SLABINFO=y
165CONFIG_RT_MUTEXES=y 171CONFIG_RT_MUTEXES=y
@@ -180,14 +186,41 @@ CONFIG_BLOCK_COMPAT=y
180# IO Schedulers 186# IO Schedulers
181# 187#
182CONFIG_IOSCHED_NOOP=y 188CONFIG_IOSCHED_NOOP=y
183CONFIG_IOSCHED_AS=y
184CONFIG_IOSCHED_DEADLINE=y 189CONFIG_IOSCHED_DEADLINE=y
185CONFIG_IOSCHED_CFQ=y 190CONFIG_IOSCHED_CFQ=y
186CONFIG_DEFAULT_AS=y
187# CONFIG_DEFAULT_DEADLINE is not set 191# CONFIG_DEFAULT_DEADLINE is not set
188# CONFIG_DEFAULT_CFQ is not set 192CONFIG_DEFAULT_CFQ=y
189# CONFIG_DEFAULT_NOOP is not set 193# CONFIG_DEFAULT_NOOP is not set
190CONFIG_DEFAULT_IOSCHED="anticipatory" 194CONFIG_DEFAULT_IOSCHED="cfq"
195# CONFIG_INLINE_SPIN_TRYLOCK is not set
196# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
197# CONFIG_INLINE_SPIN_LOCK is not set
198# CONFIG_INLINE_SPIN_LOCK_BH is not set
199# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
200# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
201# CONFIG_INLINE_SPIN_UNLOCK is not set
202# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
203# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
204# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
205# CONFIG_INLINE_READ_TRYLOCK is not set
206# CONFIG_INLINE_READ_LOCK is not set
207# CONFIG_INLINE_READ_LOCK_BH is not set
208# CONFIG_INLINE_READ_LOCK_IRQ is not set
209# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
210# CONFIG_INLINE_READ_UNLOCK is not set
211# CONFIG_INLINE_READ_UNLOCK_BH is not set
212# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
213# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
214# CONFIG_INLINE_WRITE_TRYLOCK is not set
215# CONFIG_INLINE_WRITE_LOCK is not set
216# CONFIG_INLINE_WRITE_LOCK_BH is not set
217# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
218# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
219# CONFIG_INLINE_WRITE_UNLOCK is not set
220# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
221# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
222# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
223# CONFIG_MUTEX_SPIN_ON_OWNER is not set
191# CONFIG_FREEZER is not set 224# CONFIG_FREEZER is not set
192 225
193# 226#
@@ -226,7 +259,6 @@ CONFIG_PPC_CELL=y
226# 259#
227CONFIG_SPU_FS=m 260CONFIG_SPU_FS=m
228CONFIG_SPU_FS_64K_LS=y 261CONFIG_SPU_FS_64K_LS=y
229# CONFIG_SPU_TRACE is not set
230CONFIG_SPU_BASE=y 262CONFIG_SPU_BASE=y
231# CONFIG_PQ2ADS is not set 263# CONFIG_PQ2ADS is not set
232# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set 264# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
@@ -267,7 +299,6 @@ CONFIG_COMPAT_BINFMT_ELF=y
267# CONFIG_HAVE_AOUT is not set 299# CONFIG_HAVE_AOUT is not set
268CONFIG_BINFMT_MISC=y 300CONFIG_BINFMT_MISC=y
269CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 301CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
270# CONFIG_IOMMU_VMERGE is not set
271CONFIG_IOMMU_HELPER=y 302CONFIG_IOMMU_HELPER=y
272# CONFIG_SWIOTLB is not set 303# CONFIG_SWIOTLB is not set
273CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 304CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -276,12 +307,15 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
276CONFIG_KEXEC=y 307CONFIG_KEXEC=y
277# CONFIG_CRASH_DUMP is not set 308# CONFIG_CRASH_DUMP is not set
278# CONFIG_IRQ_ALL_CPUS is not set 309# CONFIG_IRQ_ALL_CPUS is not set
310CONFIG_SPARSE_IRQ=y
279# CONFIG_NUMA is not set 311# CONFIG_NUMA is not set
312CONFIG_MAX_ACTIVE_REGIONS=256
280CONFIG_ARCH_SELECT_MEMORY_MODEL=y 313CONFIG_ARCH_SELECT_MEMORY_MODEL=y
281CONFIG_ARCH_FLATMEM_ENABLE=y 314CONFIG_ARCH_FLATMEM_ENABLE=y
282CONFIG_ARCH_SPARSEMEM_ENABLE=y 315CONFIG_ARCH_SPARSEMEM_ENABLE=y
283CONFIG_ARCH_SPARSEMEM_DEFAULT=y 316CONFIG_ARCH_SPARSEMEM_DEFAULT=y
284CONFIG_ARCH_POPULATES_NODE_MAP=y 317CONFIG_ARCH_POPULATES_NODE_MAP=y
318CONFIG_SYS_SUPPORTS_HUGETLBFS=y
285CONFIG_SELECT_MEMORY_MODEL=y 319CONFIG_SELECT_MEMORY_MODEL=y
286# CONFIG_FLATMEM_MANUAL is not set 320# CONFIG_FLATMEM_MANUAL is not set
287# CONFIG_DISCONTIGMEM_MANUAL is not set 321# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -295,13 +329,12 @@ CONFIG_MEMORY_HOTPLUG=y
295CONFIG_MEMORY_HOTPLUG_SPARSE=y 329CONFIG_MEMORY_HOTPLUG_SPARSE=y
296# CONFIG_MEMORY_HOTREMOVE is not set 330# CONFIG_MEMORY_HOTREMOVE is not set
297CONFIG_PAGEFLAGS_EXTENDED=y 331CONFIG_PAGEFLAGS_EXTENDED=y
298CONFIG_SPLIT_PTLOCK_CPUS=4 332CONFIG_SPLIT_PTLOCK_CPUS=999999
299CONFIG_MIGRATION=y 333CONFIG_MIGRATION=y
300CONFIG_PHYS_ADDR_T_64BIT=y 334CONFIG_PHYS_ADDR_T_64BIT=y
301CONFIG_ZONE_DMA_FLAG=1 335CONFIG_ZONE_DMA_FLAG=1
302CONFIG_BOUNCE=y 336CONFIG_BOUNCE=y
303CONFIG_HAVE_MLOCK=y 337# CONFIG_KSM is not set
304CONFIG_HAVE_MLOCKED_PAGE_BIT=y
305CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 338CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
306CONFIG_ARCH_MEMORY_PROBE=y 339CONFIG_ARCH_MEMORY_PROBE=y
307CONFIG_PPC_HAS_HASH_64K=y 340CONFIG_PPC_HAS_HASH_64K=y
@@ -312,11 +345,15 @@ CONFIG_PPC_4K_PAGES=y
312CONFIG_FORCE_MAX_ZONEORDER=13 345CONFIG_FORCE_MAX_ZONEORDER=13
313CONFIG_SCHED_SMT=y 346CONFIG_SCHED_SMT=y
314CONFIG_PROC_DEVICETREE=y 347CONFIG_PROC_DEVICETREE=y
315# CONFIG_CMDLINE_BOOL is not set 348CONFIG_CMDLINE_BOOL=y
349CONFIG_CMDLINE=""
316CONFIG_EXTRA_TARGETS="" 350CONFIG_EXTRA_TARGETS=""
317CONFIG_PM=y 351CONFIG_PM=y
318CONFIG_PM_DEBUG=y 352CONFIG_PM_DEBUG=y
353# CONFIG_PM_ADVANCED_DEBUG is not set
319# CONFIG_PM_VERBOSE is not set 354# CONFIG_PM_VERBOSE is not set
355# CONFIG_HIBERNATION is not set
356# CONFIG_PM_RUNTIME is not set
320# CONFIG_SECCOMP is not set 357# CONFIG_SECCOMP is not set
321CONFIG_ISA_DMA_API=y 358CONFIG_ISA_DMA_API=y
322 359
@@ -324,6 +361,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 361# Bus options
325# 362#
326CONFIG_ZONE_DMA=y 363CONFIG_ZONE_DMA=y
364CONFIG_NEED_DMA_MAP_STATE=y
327CONFIG_GENERIC_ISA_DMA=y 365CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_PCI_CHOICE=y 366CONFIG_PPC_PCI_CHOICE=y
329# CONFIG_PCI is not set 367# CONFIG_PCI is not set
@@ -337,12 +375,12 @@ CONFIG_PAGE_OFFSET=0xc000000000000000
337CONFIG_KERNEL_START=0xc000000000000000 375CONFIG_KERNEL_START=0xc000000000000000
338CONFIG_PHYSICAL_START=0x00000000 376CONFIG_PHYSICAL_START=0x00000000
339CONFIG_NET=y 377CONFIG_NET=y
378CONFIG_COMPAT_NETLINK_MESSAGES=y
340 379
341# 380#
342# Networking options 381# Networking options
343# 382#
344CONFIG_PACKET=y 383CONFIG_PACKET=y
345CONFIG_PACKET_MMAP=y
346CONFIG_UNIX=y 384CONFIG_UNIX=y
347CONFIG_XFRM=y 385CONFIG_XFRM=y
348# CONFIG_XFRM_USER is not set 386# CONFIG_XFRM_USER is not set
@@ -392,6 +430,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
392CONFIG_INET6_XFRM_MODE_BEET=y 430CONFIG_INET6_XFRM_MODE_BEET=y
393# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 431# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
394CONFIG_IPV6_SIT=y 432CONFIG_IPV6_SIT=y
433# CONFIG_IPV6_SIT_6RD is not set
395CONFIG_IPV6_NDISC_NODETYPE=y 434CONFIG_IPV6_NDISC_NODETYPE=y
396# CONFIG_IPV6_TUNNEL is not set 435# CONFIG_IPV6_TUNNEL is not set
397# CONFIG_IPV6_MULTIPLE_TABLES is not set 436# CONFIG_IPV6_MULTIPLE_TABLES is not set
@@ -400,6 +439,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
400# CONFIG_NETFILTER is not set 439# CONFIG_NETFILTER is not set
401# CONFIG_IP_DCCP is not set 440# CONFIG_IP_DCCP is not set
402# CONFIG_IP_SCTP is not set 441# CONFIG_IP_SCTP is not set
442# CONFIG_RDS is not set
403# CONFIG_TIPC is not set 443# CONFIG_TIPC is not set
404# CONFIG_ATM is not set 444# CONFIG_ATM is not set
405# CONFIG_BRIDGE is not set 445# CONFIG_BRIDGE is not set
@@ -422,7 +462,6 @@ CONFIG_IPV6_NDISC_NODETYPE=y
422# Network testing 462# Network testing
423# 463#
424# CONFIG_NET_PKTGEN is not set 464# CONFIG_NET_PKTGEN is not set
425# CONFIG_NET_DROP_MONITOR is not set
426# CONFIG_HAMRADIO is not set 465# CONFIG_HAMRADIO is not set
427# CONFIG_CAN is not set 466# CONFIG_CAN is not set
428# CONFIG_IRDA is not set 467# CONFIG_IRDA is not set
@@ -445,27 +484,30 @@ CONFIG_BT_HCIBTUSB=m
445# CONFIG_BT_HCIBPA10X is not set 484# CONFIG_BT_HCIBPA10X is not set
446# CONFIG_BT_HCIBFUSB is not set 485# CONFIG_BT_HCIBFUSB is not set
447# CONFIG_BT_HCIVHCI is not set 486# CONFIG_BT_HCIVHCI is not set
487# CONFIG_BT_MRVL is not set
488# CONFIG_BT_ATH3K is not set
448# CONFIG_AF_RXRPC is not set 489# CONFIG_AF_RXRPC is not set
449CONFIG_WIRELESS=y 490CONFIG_WIRELESS=y
491CONFIG_WIRELESS_EXT=y
492CONFIG_WEXT_CORE=y
493CONFIG_WEXT_PROC=y
450CONFIG_CFG80211=m 494CONFIG_CFG80211=m
495# CONFIG_NL80211_TESTMODE is not set
496# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
451# CONFIG_CFG80211_REG_DEBUG is not set 497# CONFIG_CFG80211_REG_DEBUG is not set
498CONFIG_CFG80211_DEFAULT_PS=y
452# CONFIG_CFG80211_DEBUGFS is not set 499# CONFIG_CFG80211_DEBUGFS is not set
453# CONFIG_WIRELESS_OLD_REGULATORY is not set 500# CONFIG_CFG80211_INTERNAL_REGDB is not set
454CONFIG_WIRELESS_EXT=y 501CONFIG_CFG80211_WEXT=y
455# CONFIG_WIRELESS_EXT_SYSFS is not set 502# CONFIG_WIRELESS_EXT_SYSFS is not set
456# CONFIG_LIB80211 is not set 503# CONFIG_LIB80211 is not set
457CONFIG_MAC80211=m 504CONFIG_MAC80211=m
458CONFIG_MAC80211_DEFAULT_PS=y
459CONFIG_MAC80211_DEFAULT_PS_VALUE=1
460
461#
462# Rate control algorithm selection
463#
464CONFIG_MAC80211_RC_PID=y 505CONFIG_MAC80211_RC_PID=y
465# CONFIG_MAC80211_RC_MINSTREL is not set 506# CONFIG_MAC80211_RC_MINSTREL is not set
466CONFIG_MAC80211_RC_DEFAULT_PID=y 507CONFIG_MAC80211_RC_DEFAULT_PID=y
467# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set 508# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
468CONFIG_MAC80211_RC_DEFAULT="pid" 509CONFIG_MAC80211_RC_DEFAULT="pid"
510# CONFIG_MAC80211_MESH is not set
469# CONFIG_MAC80211_LEDS is not set 511# CONFIG_MAC80211_LEDS is not set
470# CONFIG_MAC80211_DEBUGFS is not set 512# CONFIG_MAC80211_DEBUGFS is not set
471# CONFIG_MAC80211_DEBUG_MENU is not set 513# CONFIG_MAC80211_DEBUG_MENU is not set
@@ -481,6 +523,7 @@ CONFIG_MAC80211_RC_DEFAULT="pid"
481# Generic Driver Options 523# Generic Driver Options
482# 524#
483CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 525CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
526# CONFIG_DEVTMPFS is not set
484CONFIG_STANDALONE=y 527CONFIG_STANDALONE=y
485CONFIG_PREVENT_FIRMWARE_BUILD=y 528CONFIG_PREVENT_FIRMWARE_BUILD=y
486CONFIG_FW_LOADER=y 529CONFIG_FW_LOADER=y
@@ -491,6 +534,8 @@ CONFIG_EXTRA_FIRMWARE=""
491# CONFIG_SYS_HYPERVISOR is not set 534# CONFIG_SYS_HYPERVISOR is not set
492# CONFIG_CONNECTOR is not set 535# CONFIG_CONNECTOR is not set
493# CONFIG_MTD is not set 536# CONFIG_MTD is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
494CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
495# CONFIG_PARPORT is not set 540# CONFIG_PARPORT is not set
496CONFIG_BLK_DEV=y 541CONFIG_BLK_DEV=y
@@ -498,6 +543,10 @@ CONFIG_BLK_DEV=y
498# CONFIG_BLK_DEV_COW_COMMON is not set 543# CONFIG_BLK_DEV_COW_COMMON is not set
499CONFIG_BLK_DEV_LOOP=y 544CONFIG_BLK_DEV_LOOP=y
500# CONFIG_BLK_DEV_CRYPTOLOOP is not set 545# CONFIG_BLK_DEV_CRYPTOLOOP is not set
546
547#
548# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
549#
501# CONFIG_BLK_DEV_NBD is not set 550# CONFIG_BLK_DEV_NBD is not set
502# CONFIG_BLK_DEV_UB is not set 551# CONFIG_BLK_DEV_UB is not set
503CONFIG_BLK_DEV_RAM=y 552CONFIG_BLK_DEV_RAM=y
@@ -521,6 +570,7 @@ CONFIG_HAVE_IDE=y
521# 570#
522# SCSI device support 571# SCSI device support
523# 572#
573CONFIG_SCSI_MOD=y
524# CONFIG_RAID_ATTRS is not set 574# CONFIG_RAID_ATTRS is not set
525CONFIG_SCSI=y 575CONFIG_SCSI=y
526CONFIG_SCSI_DMA=y 576CONFIG_SCSI_DMA=y
@@ -590,30 +640,27 @@ CONFIG_MII=m
590# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 640# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
591# CONFIG_B44 is not set 641# CONFIG_B44 is not set
592# CONFIG_KS8842 is not set 642# CONFIG_KS8842 is not set
643# CONFIG_KS8851_MLL is not set
593CONFIG_NETDEV_1000=y 644CONFIG_NETDEV_1000=y
594CONFIG_GELIC_NET=y 645CONFIG_GELIC_NET=y
595CONFIG_GELIC_WIRELESS=y 646CONFIG_GELIC_WIRELESS=y
596# CONFIG_NETDEV_10000 is not set 647# CONFIG_NETDEV_10000 is not set
597 648CONFIG_WLAN=y
598#
599# Wireless LAN
600#
601# CONFIG_WLAN_PRE80211 is not set
602CONFIG_WLAN_80211=y
603# CONFIG_LIBERTAS is not set
604# CONFIG_LIBERTAS_THINFIRM is not set 649# CONFIG_LIBERTAS_THINFIRM is not set
605# CONFIG_AT76C50X_USB is not set 650# CONFIG_AT76C50X_USB is not set
606# CONFIG_USB_ZD1201 is not set 651# CONFIG_USB_ZD1201 is not set
607# CONFIG_USB_NET_RNDIS_WLAN is not set 652# CONFIG_USB_NET_RNDIS_WLAN is not set
608# CONFIG_RTL8187 is not set 653# CONFIG_RTL8187 is not set
609# CONFIG_MAC80211_HWSIM is not set 654# CONFIG_MAC80211_HWSIM is not set
610# CONFIG_P54_COMMON is not set 655# CONFIG_ATH_COMMON is not set
611# CONFIG_AR9170_USB is not set
612# CONFIG_HOSTAP is not set
613# CONFIG_B43 is not set 656# CONFIG_B43 is not set
614# CONFIG_B43LEGACY is not set 657# CONFIG_B43LEGACY is not set
615# CONFIG_ZD1211RW is not set 658# CONFIG_HOSTAP is not set
659# CONFIG_LIBERTAS is not set
660# CONFIG_P54_COMMON is not set
616# CONFIG_RT2X00 is not set 661# CONFIG_RT2X00 is not set
662# CONFIG_WL12XX is not set
663# CONFIG_ZD1211RW is not set
617 664
618# 665#
619# Enable WiMAX (Networking options) to see the WiMAX drivers 666# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -631,6 +678,7 @@ CONFIG_USB_NET_AX8817X=m
631# CONFIG_USB_NET_CDCETHER is not set 678# CONFIG_USB_NET_CDCETHER is not set
632# CONFIG_USB_NET_CDC_EEM is not set 679# CONFIG_USB_NET_CDC_EEM is not set
633# CONFIG_USB_NET_DM9601 is not set 680# CONFIG_USB_NET_DM9601 is not set
681# CONFIG_USB_NET_SMSC75XX is not set
634# CONFIG_USB_NET_SMSC95XX is not set 682# CONFIG_USB_NET_SMSC95XX is not set
635# CONFIG_USB_NET_GL620A is not set 683# CONFIG_USB_NET_GL620A is not set
636# CONFIG_USB_NET_NET1080 is not set 684# CONFIG_USB_NET_NET1080 is not set
@@ -665,6 +713,7 @@ CONFIG_SLHC=m
665CONFIG_INPUT=y 713CONFIG_INPUT=y
666CONFIG_INPUT_FF_MEMLESS=m 714CONFIG_INPUT_FF_MEMLESS=m
667# CONFIG_INPUT_POLLDEV is not set 715# CONFIG_INPUT_POLLDEV is not set
716# CONFIG_INPUT_SPARSEKMAP is not set
668 717
669# 718#
670# Userland interfaces 719# Userland interfaces
@@ -712,6 +761,8 @@ CONFIG_DEVKMEM=y
712# 761#
713# Non-8250 serial port support 762# Non-8250 serial port support
714# 763#
764# CONFIG_SERIAL_TIMBERDALE is not set
765# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
715CONFIG_UNIX98_PTYS=y 766CONFIG_UNIX98_PTYS=y
716# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 767# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
717# CONFIG_LEGACY_PTYS is not set 768# CONFIG_LEGACY_PTYS is not set
@@ -735,7 +786,6 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
735# CONFIG_POWER_SUPPLY is not set 786# CONFIG_POWER_SUPPLY is not set
736# CONFIG_HWMON is not set 787# CONFIG_HWMON is not set
737# CONFIG_THERMAL is not set 788# CONFIG_THERMAL is not set
738# CONFIG_THERMAL_HWMON is not set
739# CONFIG_WATCHDOG is not set 789# CONFIG_WATCHDOG is not set
740CONFIG_SSB_POSSIBLE=y 790CONFIG_SSB_POSSIBLE=y
741 791
@@ -841,13 +891,13 @@ CONFIG_SND_PS3=m
841CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 891CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
842CONFIG_SND_USB=y 892CONFIG_SND_USB=y
843CONFIG_SND_USB_AUDIO=m 893CONFIG_SND_USB_AUDIO=m
894# CONFIG_SND_USB_UA101 is not set
844# CONFIG_SND_USB_USX2Y is not set 895# CONFIG_SND_USB_USX2Y is not set
845# CONFIG_SND_USB_CAIAQ is not set 896# CONFIG_SND_USB_CAIAQ is not set
846# CONFIG_SND_SOC is not set 897# CONFIG_SND_SOC is not set
847# CONFIG_SOUND_PRIME is not set 898# CONFIG_SOUND_PRIME is not set
848CONFIG_HID_SUPPORT=y 899CONFIG_HID_SUPPORT=y
849CONFIG_HID=y 900CONFIG_HID=y
850# CONFIG_HID_DEBUG is not set
851CONFIG_HIDRAW=y 901CONFIG_HIDRAW=y
852 902
853# 903#
@@ -866,6 +916,7 @@ CONFIG_USB_HIDDEV=y
866# 916#
867# Special HID drivers 917# Special HID drivers
868# 918#
919# CONFIG_HID_3M_PCT is not set
869# CONFIG_HID_A4TECH is not set 920# CONFIG_HID_A4TECH is not set
870CONFIG_HID_APPLE=m 921CONFIG_HID_APPLE=m
871CONFIG_HID_BELKIN=m 922CONFIG_HID_BELKIN=m
@@ -876,17 +927,24 @@ CONFIG_HID_CHERRY=m
876CONFIG_HID_EZKEY=m 927CONFIG_HID_EZKEY=m
877# CONFIG_HID_KYE is not set 928# CONFIG_HID_KYE is not set
878# CONFIG_HID_GYRATION is not set 929# CONFIG_HID_GYRATION is not set
930CONFIG_HID_TWINHAN=m
879# CONFIG_HID_KENSINGTON is not set 931# CONFIG_HID_KENSINGTON is not set
880CONFIG_HID_LOGITECH=m 932CONFIG_HID_LOGITECH=m
881# CONFIG_LOGITECH_FF is not set 933# CONFIG_LOGITECH_FF is not set
882# CONFIG_LOGIRUMBLEPAD2_FF is not set 934# CONFIG_LOGIRUMBLEPAD2_FF is not set
935# CONFIG_LOGIG940_FF is not set
936# CONFIG_HID_MAGICMOUSE is not set
883CONFIG_HID_MICROSOFT=m 937CONFIG_HID_MICROSOFT=m
938# CONFIG_HID_MOSART is not set
884# CONFIG_HID_MONTEREY is not set 939# CONFIG_HID_MONTEREY is not set
885# CONFIG_HID_NTRIG is not set 940# CONFIG_HID_NTRIG is not set
941# CONFIG_HID_ORTEK is not set
886# CONFIG_HID_PANTHERLORD is not set 942# CONFIG_HID_PANTHERLORD is not set
887# CONFIG_HID_PETALYNX is not set 943# CONFIG_HID_PETALYNX is not set
944# CONFIG_HID_QUANTA is not set
888# CONFIG_HID_SAMSUNG is not set 945# CONFIG_HID_SAMSUNG is not set
889CONFIG_HID_SONY=m 946CONFIG_HID_SONY=m
947# CONFIG_HID_STANTUM is not set
890CONFIG_HID_SUNPLUS=m 948CONFIG_HID_SUNPLUS=m
891# CONFIG_HID_GREENASIA is not set 949# CONFIG_HID_GREENASIA is not set
892CONFIG_HID_SMARTJOYPLUS=m 950CONFIG_HID_SMARTJOYPLUS=m
@@ -901,7 +959,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
901CONFIG_USB_ARCH_HAS_EHCI=y 959CONFIG_USB_ARCH_HAS_EHCI=y
902CONFIG_USB=m 960CONFIG_USB=m
903# CONFIG_USB_DEBUG is not set 961# CONFIG_USB_DEBUG is not set
904# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set 962CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
905 963
906# 964#
907# Miscellaneous USB options 965# Miscellaneous USB options
@@ -909,7 +967,6 @@ CONFIG_USB=m
909CONFIG_USB_DEVICEFS=y 967CONFIG_USB_DEVICEFS=y
910# CONFIG_USB_DEVICE_CLASS is not set 968# CONFIG_USB_DEVICE_CLASS is not set
911# CONFIG_USB_DYNAMIC_MINORS is not set 969# CONFIG_USB_DYNAMIC_MINORS is not set
912CONFIG_USB_SUSPEND=y
913# CONFIG_USB_OTG is not set 970# CONFIG_USB_OTG is not set
914# CONFIG_USB_OTG_WHITELIST is not set 971# CONFIG_USB_OTG_WHITELIST is not set
915# CONFIG_USB_OTG_BLACKLIST_HUB is not set 972# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -923,12 +980,13 @@ CONFIG_USB_MON=m
923# CONFIG_USB_C67X00_HCD is not set 980# CONFIG_USB_C67X00_HCD is not set
924CONFIG_USB_EHCI_HCD=m 981CONFIG_USB_EHCI_HCD=m
925# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 982# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
926# CONFIG_USB_EHCI_TT_NEWSCHED is not set 983CONFIG_USB_EHCI_TT_NEWSCHED=y
927CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 984CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
928# CONFIG_USB_EHCI_HCD_PPC_OF is not set 985# CONFIG_USB_EHCI_HCD_PPC_OF is not set
929# CONFIG_USB_OXU210HP_HCD is not set 986# CONFIG_USB_OXU210HP_HCD is not set
930# CONFIG_USB_ISP116X_HCD is not set 987# CONFIG_USB_ISP116X_HCD is not set
931# CONFIG_USB_ISP1760_HCD is not set 988# CONFIG_USB_ISP1760_HCD is not set
989# CONFIG_USB_ISP1362_HCD is not set
932CONFIG_USB_OHCI_HCD=m 990CONFIG_USB_OHCI_HCD=m
933# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set 991# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set
934# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 992# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
@@ -995,7 +1053,6 @@ CONFIG_USB_STORAGE=m
995# CONFIG_USB_RIO500 is not set 1053# CONFIG_USB_RIO500 is not set
996# CONFIG_USB_LEGOTOWER is not set 1054# CONFIG_USB_LEGOTOWER is not set
997# CONFIG_USB_LCD is not set 1055# CONFIG_USB_LCD is not set
998# CONFIG_USB_BERRY_CHARGE is not set
999# CONFIG_USB_LED is not set 1056# CONFIG_USB_LED is not set
1000# CONFIG_USB_CYPRESS_CY7C63 is not set 1057# CONFIG_USB_CYPRESS_CY7C63 is not set
1001# CONFIG_USB_CYTHERM is not set 1058# CONFIG_USB_CYTHERM is not set
@@ -1008,7 +1065,6 @@ CONFIG_USB_STORAGE=m
1008# CONFIG_USB_IOWARRIOR is not set 1065# CONFIG_USB_IOWARRIOR is not set
1009# CONFIG_USB_TEST is not set 1066# CONFIG_USB_TEST is not set
1010# CONFIG_USB_ISIGHTFW is not set 1067# CONFIG_USB_ISIGHTFW is not set
1011# CONFIG_USB_VST is not set
1012# CONFIG_USB_GADGET is not set 1068# CONFIG_USB_GADGET is not set
1013 1069
1014# 1070#
@@ -1048,7 +1104,9 @@ CONFIG_RTC_INTF_DEV=y
1048# CONFIG_RTC_DRV_M48T86 is not set 1104# CONFIG_RTC_DRV_M48T86 is not set
1049# CONFIG_RTC_DRV_M48T35 is not set 1105# CONFIG_RTC_DRV_M48T35 is not set
1050# CONFIG_RTC_DRV_M48T59 is not set 1106# CONFIG_RTC_DRV_M48T59 is not set
1107# CONFIG_RTC_DRV_MSM6242 is not set
1051# CONFIG_RTC_DRV_BQ4802 is not set 1108# CONFIG_RTC_DRV_BQ4802 is not set
1109# CONFIG_RTC_DRV_RP5C01 is not set
1052# CONFIG_RTC_DRV_V3020 is not set 1110# CONFIG_RTC_DRV_V3020 is not set
1053 1111
1054# 1112#
@@ -1077,10 +1135,10 @@ CONFIG_EXT3_FS_XATTR=y
1077# CONFIG_EXT3_FS_POSIX_ACL is not set 1135# CONFIG_EXT3_FS_POSIX_ACL is not set
1078# CONFIG_EXT3_FS_SECURITY is not set 1136# CONFIG_EXT3_FS_SECURITY is not set
1079CONFIG_EXT4_FS=y 1137CONFIG_EXT4_FS=y
1080# CONFIG_EXT4DEV_COMPAT is not set
1081CONFIG_EXT4_FS_XATTR=y 1138CONFIG_EXT4_FS_XATTR=y
1082# CONFIG_EXT4_FS_POSIX_ACL is not set 1139# CONFIG_EXT4_FS_POSIX_ACL is not set
1083# CONFIG_EXT4_FS_SECURITY is not set 1140# CONFIG_EXT4_FS_SECURITY is not set
1141# CONFIG_EXT4_DEBUG is not set
1084CONFIG_JBD=m 1142CONFIG_JBD=m
1085# CONFIG_JBD_DEBUG is not set 1143# CONFIG_JBD_DEBUG is not set
1086CONFIG_JBD2=y 1144CONFIG_JBD2=y
@@ -1093,6 +1151,7 @@ CONFIG_FS_MBCACHE=y
1093# CONFIG_GFS2_FS is not set 1151# CONFIG_GFS2_FS is not set
1094# CONFIG_OCFS2_FS is not set 1152# CONFIG_OCFS2_FS is not set
1095# CONFIG_BTRFS_FS is not set 1153# CONFIG_BTRFS_FS is not set
1154# CONFIG_NILFS2_FS is not set
1096CONFIG_FILE_LOCKING=y 1155CONFIG_FILE_LOCKING=y
1097CONFIG_FSNOTIFY=y 1156CONFIG_FSNOTIFY=y
1098CONFIG_DNOTIFY=y 1157CONFIG_DNOTIFY=y
@@ -1154,6 +1213,7 @@ CONFIG_MISC_FILESYSTEMS=y
1154# CONFIG_BEFS_FS is not set 1213# CONFIG_BEFS_FS is not set
1155# CONFIG_BFS_FS is not set 1214# CONFIG_BFS_FS is not set
1156# CONFIG_EFS_FS is not set 1215# CONFIG_EFS_FS is not set
1216# CONFIG_LOGFS is not set
1157# CONFIG_CRAMFS is not set 1217# CONFIG_CRAMFS is not set
1158# CONFIG_SQUASHFS is not set 1218# CONFIG_SQUASHFS is not set
1159# CONFIG_VXFS_FS is not set 1219# CONFIG_VXFS_FS is not set
@@ -1164,7 +1224,6 @@ CONFIG_MISC_FILESYSTEMS=y
1164# CONFIG_ROMFS_FS is not set 1224# CONFIG_ROMFS_FS is not set
1165# CONFIG_SYSV_FS is not set 1225# CONFIG_SYSV_FS is not set
1166# CONFIG_UFS_FS is not set 1226# CONFIG_UFS_FS is not set
1167# CONFIG_NILFS2_FS is not set
1168CONFIG_NETWORK_FILESYSTEMS=y 1227CONFIG_NETWORK_FILESYSTEMS=y
1169CONFIG_NFS_FS=y 1228CONFIG_NFS_FS=y
1170CONFIG_NFS_V3=y 1229CONFIG_NFS_V3=y
@@ -1181,6 +1240,7 @@ CONFIG_SUNRPC_GSS=y
1181CONFIG_RPCSEC_GSS_KRB5=y 1240CONFIG_RPCSEC_GSS_KRB5=y
1182# CONFIG_RPCSEC_GSS_SPKM3 is not set 1241# CONFIG_RPCSEC_GSS_SPKM3 is not set
1183# CONFIG_SMB_FS is not set 1242# CONFIG_SMB_FS is not set
1243# CONFIG_CEPH_FS is not set
1184CONFIG_CIFS=m 1244CONFIG_CIFS=m
1185# CONFIG_CIFS_STATS is not set 1245# CONFIG_CIFS_STATS is not set
1186# CONFIG_CIFS_WEAK_PW_HASH is not set 1246# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1237,7 +1297,7 @@ CONFIG_NLS_ISO8859_1=y
1237# CONFIG_NLS_KOI8_U is not set 1297# CONFIG_NLS_KOI8_U is not set
1238# CONFIG_NLS_UTF8 is not set 1298# CONFIG_NLS_UTF8 is not set
1239# CONFIG_DLM is not set 1299# CONFIG_DLM is not set
1240CONFIG_BINARY_PRINTF=y 1300# CONFIG_BINARY_PRINTF is not set
1241 1301
1242# 1302#
1243# Library routines 1303# Library routines
@@ -1270,6 +1330,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1270CONFIG_ENABLE_MUST_CHECK=y 1330CONFIG_ENABLE_MUST_CHECK=y
1271CONFIG_FRAME_WARN=2048 1331CONFIG_FRAME_WARN=2048
1272CONFIG_MAGIC_SYSRQ=y 1332CONFIG_MAGIC_SYSRQ=y
1333# CONFIG_STRIP_ASM_SYMS is not set
1273# CONFIG_UNUSED_SYMBOLS is not set 1334# CONFIG_UNUSED_SYMBOLS is not set
1274CONFIG_DEBUG_FS=y 1335CONFIG_DEBUG_FS=y
1275# CONFIG_HEADERS_CHECK is not set 1336# CONFIG_HEADERS_CHECK is not set
@@ -1292,6 +1353,7 @@ CONFIG_DEBUG_SPINLOCK=y
1292CONFIG_DEBUG_MUTEXES=y 1353CONFIG_DEBUG_MUTEXES=y
1293CONFIG_DEBUG_LOCK_ALLOC=y 1354CONFIG_DEBUG_LOCK_ALLOC=y
1294CONFIG_PROVE_LOCKING=y 1355CONFIG_PROVE_LOCKING=y
1356# CONFIG_PROVE_RCU is not set
1295CONFIG_LOCKDEP=y 1357CONFIG_LOCKDEP=y
1296# CONFIG_LOCK_STAT is not set 1358# CONFIG_LOCK_STAT is not set
1297CONFIG_DEBUG_LOCKDEP=y 1359CONFIG_DEBUG_LOCKDEP=y
@@ -1308,26 +1370,27 @@ CONFIG_DEBUG_MEMORY_INIT=y
1308CONFIG_DEBUG_LIST=y 1370CONFIG_DEBUG_LIST=y
1309# CONFIG_DEBUG_SG is not set 1371# CONFIG_DEBUG_SG is not set
1310# CONFIG_DEBUG_NOTIFIERS is not set 1372# CONFIG_DEBUG_NOTIFIERS is not set
1373# CONFIG_DEBUG_CREDENTIALS is not set
1311# CONFIG_RCU_TORTURE_TEST is not set 1374# CONFIG_RCU_TORTURE_TEST is not set
1312# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1375# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1313# CONFIG_BACKTRACE_SELF_TEST is not set 1376# CONFIG_BACKTRACE_SELF_TEST is not set
1314# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1377# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1378# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1379# CONFIG_LKDTM is not set
1315# CONFIG_FAULT_INJECTION is not set 1380# CONFIG_FAULT_INJECTION is not set
1316# CONFIG_LATENCYTOP is not set 1381# CONFIG_LATENCYTOP is not set
1317CONFIG_SYSCTL_SYSCALL_CHECK=y 1382CONFIG_SYSCTL_SYSCALL_CHECK=y
1318# CONFIG_DEBUG_PAGEALLOC is not set 1383# CONFIG_DEBUG_PAGEALLOC is not set
1319CONFIG_NOP_TRACER=y
1320CONFIG_HAVE_FUNCTION_TRACER=y 1384CONFIG_HAVE_FUNCTION_TRACER=y
1321CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1385CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1322CONFIG_HAVE_DYNAMIC_FTRACE=y 1386CONFIG_HAVE_DYNAMIC_FTRACE=y
1323CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1387CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1324CONFIG_RING_BUFFER=y 1388CONFIG_RING_BUFFER=y
1325CONFIG_EVENT_TRACING=y 1389CONFIG_RING_BUFFER_ALLOW_SWAP=y
1326CONFIG_CONTEXT_SWITCH_TRACER=y
1327CONFIG_TRACING=y
1328CONFIG_TRACING_SUPPORT=y 1390CONFIG_TRACING_SUPPORT=y
1329# CONFIG_FTRACE is not set 1391# CONFIG_FTRACE is not set
1330# CONFIG_DYNAMIC_DEBUG is not set 1392# CONFIG_DYNAMIC_DEBUG is not set
1393# CONFIG_DMA_API_DEBUG is not set
1331# CONFIG_SAMPLES is not set 1394# CONFIG_SAMPLES is not set
1332CONFIG_HAVE_ARCH_KGDB=y 1395CONFIG_HAVE_ARCH_KGDB=y
1333# CONFIG_KGDB is not set 1396# CONFIG_KGDB is not set
@@ -1352,13 +1415,16 @@ CONFIG_IRQSTACKS=y
1352# CONFIG_KEYS is not set 1415# CONFIG_KEYS is not set
1353# CONFIG_SECURITY is not set 1416# CONFIG_SECURITY is not set
1354# CONFIG_SECURITYFS is not set 1417# CONFIG_SECURITYFS is not set
1355# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1418# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1419# CONFIG_DEFAULT_SECURITY_SMACK is not set
1420# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1421CONFIG_DEFAULT_SECURITY_DAC=y
1422CONFIG_DEFAULT_SECURITY=""
1356CONFIG_CRYPTO=y 1423CONFIG_CRYPTO=y
1357 1424
1358# 1425#
1359# Crypto core or helper 1426# Crypto core or helper
1360# 1427#
1361# CONFIG_CRYPTO_FIPS is not set
1362CONFIG_CRYPTO_ALGAPI=y 1428CONFIG_CRYPTO_ALGAPI=y
1363CONFIG_CRYPTO_ALGAPI2=y 1429CONFIG_CRYPTO_ALGAPI2=y
1364CONFIG_CRYPTO_AEAD=m 1430CONFIG_CRYPTO_AEAD=m
@@ -1374,6 +1440,7 @@ CONFIG_CRYPTO_MANAGER=y
1374CONFIG_CRYPTO_MANAGER2=y 1440CONFIG_CRYPTO_MANAGER2=y
1375CONFIG_CRYPTO_GF128MUL=m 1441CONFIG_CRYPTO_GF128MUL=m
1376# CONFIG_CRYPTO_NULL is not set 1442# CONFIG_CRYPTO_NULL is not set
1443# CONFIG_CRYPTO_PCRYPT is not set
1377CONFIG_CRYPTO_WORKQUEUE=y 1444CONFIG_CRYPTO_WORKQUEUE=y
1378# CONFIG_CRYPTO_CRYPTD is not set 1445# CONFIG_CRYPTO_CRYPTD is not set
1379# CONFIG_CRYPTO_AUTHENC is not set 1446# CONFIG_CRYPTO_AUTHENC is not set
@@ -1402,11 +1469,13 @@ CONFIG_CRYPTO_PCBC=m
1402# 1469#
1403# CONFIG_CRYPTO_HMAC is not set 1470# CONFIG_CRYPTO_HMAC is not set
1404# CONFIG_CRYPTO_XCBC is not set 1471# CONFIG_CRYPTO_XCBC is not set
1472# CONFIG_CRYPTO_VMAC is not set
1405 1473
1406# 1474#
1407# Digest 1475# Digest
1408# 1476#
1409# CONFIG_CRYPTO_CRC32C is not set 1477# CONFIG_CRYPTO_CRC32C is not set
1478CONFIG_CRYPTO_GHASH=m
1410# CONFIG_CRYPTO_MD4 is not set 1479# CONFIG_CRYPTO_MD4 is not set
1411CONFIG_CRYPTO_MD5=y 1480CONFIG_CRYPTO_MD5=y
1412CONFIG_CRYPTO_MICHAEL_MIC=m 1481CONFIG_CRYPTO_MICHAEL_MIC=m
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index f2f832161463..b1625801526e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:13 2010 4# Mon Apr 19 23:16:37 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,11 +94,6 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98CONFIG_FAIR_GROUP_SCHED=y
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98CONFIG_SYSFS_DEPRECATED=y
104CONFIG_SYSFS_DEPRECATED_V2=y 99CONFIG_SYSFS_DEPRECATED_V2=y
@@ -314,6 +309,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 309# Bus options
315# 310#
316CONFIG_ZONE_DMA=y 311CONFIG_ZONE_DMA=y
312# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_GENERIC_ISA_DMA=y 313CONFIG_GENERIC_ISA_DMA=y
318CONFIG_PPC_INDIRECT_PCI=y 314CONFIG_PPC_INDIRECT_PCI=y
319CONFIG_FSL_SOC=y 315CONFIG_FSL_SOC=y
@@ -323,7 +319,6 @@ CONFIG_PCI_SYSCALL=y
323# CONFIG_PCIEPORTBUS is not set 319# CONFIG_PCIEPORTBUS is not set
324CONFIG_ARCH_SUPPORTS_MSI=y 320CONFIG_ARCH_SUPPORTS_MSI=y
325# CONFIG_PCI_MSI is not set 321# CONFIG_PCI_MSI is not set
326# CONFIG_PCI_LEGACY is not set
327# CONFIG_PCI_STUB is not set 322# CONFIG_PCI_STUB is not set
328# CONFIG_PCI_IOV is not set 323# CONFIG_PCI_IOV is not set
329# CONFIG_PCCARD is not set 324# CONFIG_PCCARD is not set
@@ -349,7 +344,6 @@ CONFIG_NET=y
349# Networking options 344# Networking options
350# 345#
351CONFIG_PACKET=m 346CONFIG_PACKET=m
352# CONFIG_PACKET_MMAP is not set
353CONFIG_UNIX=y 347CONFIG_UNIX=y
354# CONFIG_NET_KEY is not set 348# CONFIG_NET_KEY is not set
355CONFIG_INET=y 349CONFIG_INET=y
@@ -524,6 +518,8 @@ CONFIG_MTD_PHYSMAP=y
524# UBI - Unsorted block images 518# UBI - Unsorted block images
525# 519#
526# CONFIG_MTD_UBI is not set 520# CONFIG_MTD_UBI is not set
521CONFIG_OF_FLATTREE=y
522CONFIG_OF_DYNAMIC=y
527CONFIG_OF_DEVICE=y 523CONFIG_OF_DEVICE=y
528CONFIG_OF_I2C=y 524CONFIG_OF_I2C=y
529# CONFIG_PARPORT is not set 525# CONFIG_PARPORT is not set
@@ -555,6 +551,7 @@ CONFIG_MISC_DEVICES=y
555# CONFIG_ENCLOSURE_SERVICES is not set 551# CONFIG_ENCLOSURE_SERVICES is not set
556# CONFIG_HP_ILO is not set 552# CONFIG_HP_ILO is not set
557# CONFIG_ISL29003 is not set 553# CONFIG_ISL29003 is not set
554# CONFIG_SENSORS_TSL2550 is not set
558# CONFIG_DS1682 is not set 555# CONFIG_DS1682 is not set
559# CONFIG_C2PORT is not set 556# CONFIG_C2PORT is not set
560 557
@@ -626,6 +623,7 @@ CONFIG_BLK_DEV_IDEDMA=y
626# 623#
627# SCSI device support 624# SCSI device support
628# 625#
626CONFIG_SCSI_MOD=y
629# CONFIG_RAID_ATTRS is not set 627# CONFIG_RAID_ATTRS is not set
630CONFIG_SCSI=y 628CONFIG_SCSI=y
631CONFIG_SCSI_DMA=y 629CONFIG_SCSI_DMA=y
@@ -846,6 +844,7 @@ CONFIG_SERIAL_CORE=y
846CONFIG_SERIAL_CORE_CONSOLE=y 844CONFIG_SERIAL_CORE_CONSOLE=y
847# CONFIG_SERIAL_JSM is not set 845# CONFIG_SERIAL_JSM is not set
848# CONFIG_SERIAL_OF_PLATFORM is not set 846# CONFIG_SERIAL_OF_PLATFORM is not set
847# CONFIG_SERIAL_TIMBERDALE is not set
849# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 848# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
850CONFIG_UNIX98_PTYS=y 849CONFIG_UNIX98_PTYS=y
851# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 850# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -895,6 +894,7 @@ CONFIG_I2C_HELPER_AUTO=y
895CONFIG_I2C_MPC=y 894CONFIG_I2C_MPC=y
896# CONFIG_I2C_OCORES is not set 895# CONFIG_I2C_OCORES is not set
897# CONFIG_I2C_SIMTEC is not set 896# CONFIG_I2C_SIMTEC is not set
897# CONFIG_I2C_XILINX is not set
898 898
899# 899#
900# External I2C/SMBus adapter drivers 900# External I2C/SMBus adapter drivers
@@ -908,15 +908,9 @@ CONFIG_I2C_MPC=y
908# 908#
909# CONFIG_I2C_PCA_PLATFORM is not set 909# CONFIG_I2C_PCA_PLATFORM is not set
910# CONFIG_I2C_STUB is not set 910# CONFIG_I2C_STUB is not set
911
912#
913# Miscellaneous I2C Chip support
914#
915# CONFIG_SENSORS_TSL2550 is not set
916# CONFIG_I2C_DEBUG_CORE is not set 911# CONFIG_I2C_DEBUG_CORE is not set
917# CONFIG_I2C_DEBUG_ALGO is not set 912# CONFIG_I2C_DEBUG_ALGO is not set
918# CONFIG_I2C_DEBUG_BUS is not set 913# CONFIG_I2C_DEBUG_BUS is not set
919# CONFIG_I2C_DEBUG_CHIP is not set
920# CONFIG_SPI is not set 914# CONFIG_SPI is not set
921 915
922# 916#
@@ -941,18 +935,21 @@ CONFIG_SSB_POSSIBLE=y
941# Multifunction device drivers 935# Multifunction device drivers
942# 936#
943# CONFIG_MFD_CORE is not set 937# CONFIG_MFD_CORE is not set
938# CONFIG_MFD_88PM860X is not set
944# CONFIG_MFD_SM501 is not set 939# CONFIG_MFD_SM501 is not set
945# CONFIG_HTC_PASIC3 is not set 940# CONFIG_HTC_PASIC3 is not set
946# CONFIG_TWL4030_CORE is not set 941# CONFIG_TWL4030_CORE is not set
947# CONFIG_MFD_TMIO is not set 942# CONFIG_MFD_TMIO is not set
948# CONFIG_PMIC_DA903X is not set 943# CONFIG_PMIC_DA903X is not set
949# CONFIG_PMIC_ADP5520 is not set 944# CONFIG_PMIC_ADP5520 is not set
945# CONFIG_MFD_MAX8925 is not set
950# CONFIG_MFD_WM8400 is not set 946# CONFIG_MFD_WM8400 is not set
951# CONFIG_MFD_WM831X is not set 947# CONFIG_MFD_WM831X is not set
952# CONFIG_MFD_WM8350_I2C is not set 948# CONFIG_MFD_WM8350_I2C is not set
949# CONFIG_MFD_WM8994 is not set
953# CONFIG_MFD_PCF50633 is not set 950# CONFIG_MFD_PCF50633 is not set
954# CONFIG_AB3100_CORE is not set 951# CONFIG_AB3100_CORE is not set
955# CONFIG_MFD_88PM8607 is not set 952# CONFIG_LPC_SCH is not set
956# CONFIG_REGULATOR is not set 953# CONFIG_REGULATOR is not set
957# CONFIG_MEDIA_SUPPORT is not set 954# CONFIG_MEDIA_SUPPORT is not set
958 955
@@ -961,6 +958,7 @@ CONFIG_SSB_POSSIBLE=y
961# 958#
962# CONFIG_AGP is not set 959# CONFIG_AGP is not set
963CONFIG_VGA_ARB=y 960CONFIG_VGA_ARB=y
961CONFIG_VGA_ARB_MAX_GPUS=16
964# CONFIG_DRM is not set 962# CONFIG_DRM is not set
965# CONFIG_VGASTATE is not set 963# CONFIG_VGASTATE is not set
966# CONFIG_VIDEO_OUTPUT_CONTROL is not set 964# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1071,7 +1069,6 @@ CONFIG_USB_STORAGE=y
1071# CONFIG_USB_RIO500 is not set 1069# CONFIG_USB_RIO500 is not set
1072# CONFIG_USB_LEGOTOWER is not set 1070# CONFIG_USB_LEGOTOWER is not set
1073# CONFIG_USB_LCD is not set 1071# CONFIG_USB_LCD is not set
1074# CONFIG_USB_BERRY_CHARGE is not set
1075# CONFIG_USB_LED is not set 1072# CONFIG_USB_LED is not set
1076# CONFIG_USB_CYPRESS_CY7C63 is not set 1073# CONFIG_USB_CYPRESS_CY7C63 is not set
1077# CONFIG_USB_CYTHERM is not set 1074# CONFIG_USB_CYTHERM is not set
@@ -1084,7 +1081,6 @@ CONFIG_USB_STORAGE=y
1084# CONFIG_USB_IOWARRIOR is not set 1081# CONFIG_USB_IOWARRIOR is not set
1085# CONFIG_USB_TEST is not set 1082# CONFIG_USB_TEST is not set
1086# CONFIG_USB_ISIGHTFW is not set 1083# CONFIG_USB_ISIGHTFW is not set
1087# CONFIG_USB_VST is not set
1088# CONFIG_USB_GADGET is not set 1084# CONFIG_USB_GADGET is not set
1089 1085
1090# 1086#
@@ -1251,6 +1247,7 @@ CONFIG_JFFS2_ZLIB=y
1251# CONFIG_JFFS2_LZO is not set 1247# CONFIG_JFFS2_LZO is not set
1252CONFIG_JFFS2_RTIME=y 1248CONFIG_JFFS2_RTIME=y
1253# CONFIG_JFFS2_RUBIN is not set 1249# CONFIG_JFFS2_RUBIN is not set
1250# CONFIG_LOGFS is not set
1254# CONFIG_CRAMFS is not set 1251# CONFIG_CRAMFS is not set
1255# CONFIG_SQUASHFS is not set 1252# CONFIG_SQUASHFS is not set
1256# CONFIG_VXFS_FS is not set 1253# CONFIG_VXFS_FS is not set
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index 9f4c9d4f5803..bd100fcf40d0 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -130,43 +130,5 @@ static inline int irqs_disabled_flags(unsigned long flags)
130 */ 130 */
131struct irq_chip; 131struct irq_chip;
132 132
133#ifdef CONFIG_PERF_EVENTS
134
135#ifdef CONFIG_PPC64
136static inline unsigned long test_perf_event_pending(void)
137{
138 unsigned long x;
139
140 asm volatile("lbz %0,%1(13)"
141 : "=r" (x)
142 : "i" (offsetof(struct paca_struct, perf_event_pending)));
143 return x;
144}
145
146static inline void set_perf_event_pending(void)
147{
148 asm volatile("stb %0,%1(13)" : :
149 "r" (1),
150 "i" (offsetof(struct paca_struct, perf_event_pending)));
151}
152
153static inline void clear_perf_event_pending(void)
154{
155 asm volatile("stb %0,%1(13)" : :
156 "r" (0),
157 "i" (offsetof(struct paca_struct, perf_event_pending)));
158}
159#endif /* CONFIG_PPC64 */
160
161#else /* CONFIG_PERF_EVENTS */
162
163static inline unsigned long test_perf_event_pending(void)
164{
165 return 0;
166}
167
168static inline void clear_perf_event_pending(void) {}
169#endif /* CONFIG_PERF_EVENTS */
170
171#endif /* __KERNEL__ */ 133#endif /* __KERNEL__ */
172#endif /* _ASM_POWERPC_HW_IRQ_H */ 134#endif /* _ASM_POWERPC_HW_IRQ_H */
diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
index e96d52a516ba..53b64be40eb2 100644
--- a/arch/powerpc/include/asm/page.h
+++ b/arch/powerpc/include/asm/page.h
@@ -108,8 +108,21 @@ extern phys_addr_t kernstart_addr;
108#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) 108#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
109#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) 109#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
110 110
111#define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - MEMORY_START)) 111/*
112 * On Book-E parts we need __va to parse the device tree and we can't
113 * determine MEMORY_START until then. However we can determine PHYSICAL_START
114 * from information at hand (program counter, TLB lookup).
115 *
116 * On non-Book-E PPC64 PAGE_OFFSET and MEMORY_START are constants so use
117 * the other definitions for __va & __pa.
118 */
119#ifdef CONFIG_BOOKE
120#define __va(x) ((void *)(unsigned long)((phys_addr_t)(x) - PHYSICAL_START + KERNELBASE))
121#define __pa(x) ((unsigned long)(x) + PHYSICAL_START - KERNELBASE)
122#else
123#define __va(x) ((void *)(unsigned long)((phys_addr_t)(x) + PAGE_OFFSET - MEMORY_START))
112#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET + MEMORY_START) 124#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET + MEMORY_START)
125#endif
113 126
114/* 127/*
115 * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI, 128 * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI,
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 957ceb7059c5..c09138d150d4 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -133,7 +133,6 @@ int main(void)
133 DEFINE(PACAKMSR, offsetof(struct paca_struct, kernel_msr)); 133 DEFINE(PACAKMSR, offsetof(struct paca_struct, kernel_msr));
134 DEFINE(PACASOFTIRQEN, offsetof(struct paca_struct, soft_enabled)); 134 DEFINE(PACASOFTIRQEN, offsetof(struct paca_struct, soft_enabled));
135 DEFINE(PACAHARDIRQEN, offsetof(struct paca_struct, hard_enabled)); 135 DEFINE(PACAHARDIRQEN, offsetof(struct paca_struct, hard_enabled));
136 DEFINE(PACAPERFPEND, offsetof(struct paca_struct, perf_event_pending));
137 DEFINE(PACACONTEXTID, offsetof(struct paca_struct, context.id)); 136 DEFINE(PACACONTEXTID, offsetof(struct paca_struct, context.id));
138#ifdef CONFIG_PPC_MM_SLICES 137#ifdef CONFIG_PPC_MM_SLICES
139 DEFINE(PACALOWSLICESPSIZE, offsetof(struct paca_struct, 138 DEFINE(PACALOWSLICESPSIZE, offsetof(struct paca_struct,
diff --git a/arch/powerpc/kernel/dma-swiotlb.c b/arch/powerpc/kernel/dma-swiotlb.c
index 59c928564a03..4ff4da2c238b 100644
--- a/arch/powerpc/kernel/dma-swiotlb.c
+++ b/arch/powerpc/kernel/dma-swiotlb.c
@@ -1,7 +1,8 @@
1/* 1/*
2 * Contains routines needed to support swiotlb for ppc. 2 * Contains routines needed to support swiotlb for ppc.
3 * 3 *
4 * Copyright (C) 2009 Becky Bruce, Freescale Semiconductor 4 * Copyright (C) 2009-2010 Freescale Semiconductor, Inc.
5 * Author: Becky Bruce
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it 7 * 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 * under the terms of the GNU General Public License as published by the
@@ -70,7 +71,7 @@ static int ppc_swiotlb_bus_notify(struct notifier_block *nb,
70 sd->max_direct_dma_addr = 0; 71 sd->max_direct_dma_addr = 0;
71 72
72 /* May need to bounce if the device can't address all of DRAM */ 73 /* May need to bounce if the device can't address all of DRAM */
73 if (dma_get_mask(dev) < lmb_end_of_DRAM()) 74 if ((dma_get_mask(dev) + 1) < lmb_end_of_DRAM())
74 set_dma_ops(dev, &swiotlb_dma_ops); 75 set_dma_ops(dev, &swiotlb_dma_ops);
75 76
76 return NOTIFY_DONE; 77 return NOTIFY_DONE;
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index 07109d843787..42e9d908914a 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -556,15 +556,6 @@ ALT_FW_FTR_SECTION_END_IFCLR(FW_FEATURE_ISERIES)
5562: 5562:
557 TRACE_AND_RESTORE_IRQ(r5); 557 TRACE_AND_RESTORE_IRQ(r5);
558 558
559#ifdef CONFIG_PERF_EVENTS
560 /* check paca->perf_event_pending if we're enabling ints */
561 lbz r3,PACAPERFPEND(r13)
562 and. r3,r3,r5
563 beq 27f
564 bl .perf_event_do_pending
56527:
566#endif /* CONFIG_PERF_EVENTS */
567
568 /* extract EE bit and use it to restore paca->hard_enabled */ 559 /* extract EE bit and use it to restore paca->hard_enabled */
569 ld r3,_MSR(r1) 560 ld r3,_MSR(r1)
570 rldicl r4,r3,49,63 /* r0 = (r3 >> 15) & 1 */ 561 rldicl r4,r3,49,63 /* r0 = (r3 >> 15) & 1 */
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 64f6f2031c22..066bd31551d5 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -53,7 +53,6 @@
53#include <linux/bootmem.h> 53#include <linux/bootmem.h>
54#include <linux/pci.h> 54#include <linux/pci.h>
55#include <linux/debugfs.h> 55#include <linux/debugfs.h>
56#include <linux/perf_event.h>
57 56
58#include <asm/uaccess.h> 57#include <asm/uaccess.h>
59#include <asm/system.h> 58#include <asm/system.h>
@@ -145,11 +144,6 @@ notrace void raw_local_irq_restore(unsigned long en)
145 } 144 }
146#endif /* CONFIG_PPC_STD_MMU_64 */ 145#endif /* CONFIG_PPC_STD_MMU_64 */
147 146
148 if (test_perf_event_pending()) {
149 clear_perf_event_pending();
150 perf_event_do_pending();
151 }
152
153 /* 147 /*
154 * if (get_paca()->hard_enabled) return; 148 * if (get_paca()->hard_enabled) return;
155 * But again we need to take care that gcc gets hard_enabled directly 149 * But again we need to take care that gcc gets hard_enabled directly
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 5f306c4946e5..97d4bd9442d3 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -653,6 +653,7 @@ static void __init early_cmdline_parse(void)
653#else 653#else
654#define OV5_CMO 0x00 654#define OV5_CMO 0x00
655#endif 655#endif
656#define OV5_TYPE1_AFFINITY 0x80 /* Type 1 NUMA affinity */
656 657
657/* Option Vector 6: IBM PAPR hints */ 658/* Option Vector 6: IBM PAPR hints */
658#define OV6_LINUX 0x02 /* Linux is our OS */ 659#define OV6_LINUX 0x02 /* Linux is our OS */
@@ -706,7 +707,7 @@ static unsigned char ibm_architecture_vec[] = {
706 OV5_DONATE_DEDICATE_CPU | OV5_MSI, 707 OV5_DONATE_DEDICATE_CPU | OV5_MSI,
707 0, 708 0,
708 OV5_CMO, 709 OV5_CMO,
709 0, 710 OV5_TYPE1_AFFINITY,
710 0, 711 0,
711 0, 712 0,
712 0, 713 0,
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 1b16b9a3e49a..0441bbdadbd1 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -532,25 +532,60 @@ void __init iSeries_time_init_early(void)
532} 532}
533#endif /* CONFIG_PPC_ISERIES */ 533#endif /* CONFIG_PPC_ISERIES */
534 534
535#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_PPC32) 535#ifdef CONFIG_PERF_EVENTS
536DEFINE_PER_CPU(u8, perf_event_pending);
537 536
538void set_perf_event_pending(void) 537/*
538 * 64-bit uses a byte in the PACA, 32-bit uses a per-cpu variable...
539 */
540#ifdef CONFIG_PPC64
541static inline unsigned long test_perf_event_pending(void)
539{ 542{
540 get_cpu_var(perf_event_pending) = 1; 543 unsigned long x;
541 set_dec(1); 544
542 put_cpu_var(perf_event_pending); 545 asm volatile("lbz %0,%1(13)"
546 : "=r" (x)
547 : "i" (offsetof(struct paca_struct, perf_event_pending)));
548 return x;
543} 549}
544 550
551static inline void set_perf_event_pending_flag(void)
552{
553 asm volatile("stb %0,%1(13)" : :
554 "r" (1),
555 "i" (offsetof(struct paca_struct, perf_event_pending)));
556}
557
558static inline void clear_perf_event_pending(void)
559{
560 asm volatile("stb %0,%1(13)" : :
561 "r" (0),
562 "i" (offsetof(struct paca_struct, perf_event_pending)));
563}
564
565#else /* 32-bit */
566
567DEFINE_PER_CPU(u8, perf_event_pending);
568
569#define set_perf_event_pending_flag() __get_cpu_var(perf_event_pending) = 1
545#define test_perf_event_pending() __get_cpu_var(perf_event_pending) 570#define test_perf_event_pending() __get_cpu_var(perf_event_pending)
546#define clear_perf_event_pending() __get_cpu_var(perf_event_pending) = 0 571#define clear_perf_event_pending() __get_cpu_var(perf_event_pending) = 0
547 572
548#else /* CONFIG_PERF_EVENTS && CONFIG_PPC32 */ 573#endif /* 32 vs 64 bit */
574
575void set_perf_event_pending(void)
576{
577 preempt_disable();
578 set_perf_event_pending_flag();
579 set_dec(1);
580 preempt_enable();
581}
582
583#else /* CONFIG_PERF_EVENTS */
549 584
550#define test_perf_event_pending() 0 585#define test_perf_event_pending() 0
551#define clear_perf_event_pending() 586#define clear_perf_event_pending()
552 587
553#endif /* CONFIG_PERF_EVENTS && CONFIG_PPC32 */ 588#endif /* CONFIG_PERF_EVENTS */
554 589
555/* 590/*
556 * For iSeries shared processors, we have to let the hypervisor 591 * For iSeries shared processors, we have to let the hypervisor
@@ -582,10 +617,6 @@ void timer_interrupt(struct pt_regs * regs)
582 set_dec(DECREMENTER_MAX); 617 set_dec(DECREMENTER_MAX);
583 618
584#ifdef CONFIG_PPC32 619#ifdef CONFIG_PPC32
585 if (test_perf_event_pending()) {
586 clear_perf_event_pending();
587 perf_event_do_pending();
588 }
589 if (atomic_read(&ppc_n_lost_interrupts) != 0) 620 if (atomic_read(&ppc_n_lost_interrupts) != 0)
590 do_IRQ(regs); 621 do_IRQ(regs);
591#endif 622#endif
@@ -604,6 +635,11 @@ void timer_interrupt(struct pt_regs * regs)
604 635
605 calculate_steal_time(); 636 calculate_steal_time();
606 637
638 if (test_perf_event_pending()) {
639 clear_perf_event_pending();
640 perf_event_do_pending();
641 }
642
607#ifdef CONFIG_PPC_ISERIES 643#ifdef CONFIG_PPC_ISERIES
608 if (firmware_has_feature(FW_FEATURE_ISERIES)) 644 if (firmware_has_feature(FW_FEATURE_ISERIES))
609 get_lppaca()->int_dword.fields.decr_int = 0; 645 get_lppaca()->int_dword.fields.decr_int = 0;
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index 25da07fd9f77..604af29b71ed 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -1004,7 +1004,8 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1004 struct kvm_vcpu *vcpu; 1004 struct kvm_vcpu *vcpu;
1005 ulong ga, ga_end; 1005 ulong ga, ga_end;
1006 int is_dirty = 0; 1006 int is_dirty = 0;
1007 int r, n; 1007 int r;
1008 unsigned long n;
1008 1009
1009 mutex_lock(&kvm->slots_lock); 1010 mutex_lock(&kvm->slots_lock);
1010 1011
@@ -1022,7 +1023,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1022 kvm_for_each_vcpu(n, vcpu, kvm) 1023 kvm_for_each_vcpu(n, vcpu, kvm)
1023 kvmppc_mmu_pte_pflush(vcpu, ga, ga_end); 1024 kvmppc_mmu_pte_pflush(vcpu, ga, ga_end);
1024 1025
1025 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 1026 n = kvm_dirty_bitmap_bytes(memslot);
1026 memset(memslot->dirty_bitmap, 0, n); 1027 memset(memslot->dirty_bitmap, 0, n);
1027 } 1028 }
1028 1029
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c
index c5394728bf2e..1ed6b52f3031 100644
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@ -116,7 +116,7 @@ void loadcam_entry(int idx)
116 mtspr(SPRN_MAS2, TLBCAM[idx].MAS2); 116 mtspr(SPRN_MAS2, TLBCAM[idx].MAS2);
117 mtspr(SPRN_MAS3, TLBCAM[idx].MAS3); 117 mtspr(SPRN_MAS3, TLBCAM[idx].MAS3);
118 118
119 if (cur_cpu_spec->cpu_features & MMU_FTR_BIG_PHYS) 119 if (mmu_has_feature(MMU_FTR_BIG_PHYS))
120 mtspr(SPRN_MAS7, TLBCAM[idx].MAS7); 120 mtspr(SPRN_MAS7, TLBCAM[idx].MAS7);
121 121
122 asm volatile("isync;tlbwe;isync" : : : "memory"); 122 asm volatile("isync;tlbwe;isync" : : : "memory");
@@ -152,18 +152,13 @@ static void settlbcam(int index, unsigned long virt, phys_addr_t phys,
152 152
153 TLBCAM[index].MAS3 = (phys & MAS3_RPN) | MAS3_SX | MAS3_SR; 153 TLBCAM[index].MAS3 = (phys & MAS3_RPN) | MAS3_SX | MAS3_SR;
154 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_SW : 0); 154 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_SW : 0);
155 if (cur_cpu_spec->cpu_features & MMU_FTR_BIG_PHYS) 155 if (mmu_has_feature(MMU_FTR_BIG_PHYS))
156 TLBCAM[index].MAS7 = (u64)phys >> 32; 156 TLBCAM[index].MAS7 = (u64)phys >> 32;
157 157
158#ifndef CONFIG_KGDB /* want user access for breakpoints */
159 if (flags & _PAGE_USER) { 158 if (flags & _PAGE_USER) {
160 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR; 159 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR;
161 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0); 160 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0);
162 } 161 }
163#else
164 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR;
165 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0);
166#endif
167 162
168 tlbcam_addrs[index].start = virt; 163 tlbcam_addrs[index].start = virt;
169 tlbcam_addrs[index].limit = virt + size - 1; 164 tlbcam_addrs[index].limit = virt + size - 1;
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 64c00227b997..eaa7633515b7 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -242,10 +242,11 @@ EXPORT_SYMBOL_GPL(of_node_to_nid);
242 */ 242 */
243static int __init find_min_common_depth(void) 243static int __init find_min_common_depth(void)
244{ 244{
245 int depth; 245 int depth, index;
246 const unsigned int *ref_points; 246 const unsigned int *ref_points;
247 struct device_node *rtas_root; 247 struct device_node *rtas_root;
248 unsigned int len; 248 unsigned int len;
249 struct device_node *options;
249 250
250 rtas_root = of_find_node_by_path("/rtas"); 251 rtas_root = of_find_node_by_path("/rtas");
251 252
@@ -258,11 +259,23 @@ static int __init find_min_common_depth(void)
258 * configuration (should be all 0's) and the second is for a normal 259 * configuration (should be all 0's) and the second is for a normal
259 * NUMA configuration. 260 * NUMA configuration.
260 */ 261 */
262 index = 1;
261 ref_points = of_get_property(rtas_root, 263 ref_points = of_get_property(rtas_root,
262 "ibm,associativity-reference-points", &len); 264 "ibm,associativity-reference-points", &len);
263 265
266 /*
267 * For type 1 affinity information we want the first field
268 */
269 options = of_find_node_by_path("/options");
270 if (options) {
271 const char *str;
272 str = of_get_property(options, "ibm,associativity-form", NULL);
273 if (str && !strcmp(str, "1"))
274 index = 0;
275 }
276
264 if ((len >= 2 * sizeof(unsigned int)) && ref_points) { 277 if ((len >= 2 * sizeof(unsigned int)) && ref_points) {
265 depth = ref_points[1]; 278 depth = ref_points[index];
266 } else { 279 } else {
267 dbg("NUMA: ibm,associativity-reference-points not found.\n"); 280 dbg("NUMA: ibm,associativity-reference-points not found.\n");
268 depth = -1; 281 depth = -1;
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index d95121894eb7..3a2ade2e443f 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -51,7 +51,7 @@ config MPC85xx_DS
51 bool "Freescale MPC85xx DS" 51 bool "Freescale MPC85xx DS"
52 select PPC_I8259 52 select PPC_I8259
53 select DEFAULT_UIMAGE 53 select DEFAULT_UIMAGE
54 select FSL_ULI1575 54 select FSL_ULI1575 if PCI
55 select SWIOTLB 55 select SWIOTLB
56 help 56 help
57 This option enables support for the MPC85xx DS (MPC8544 DS) board 57 This option enables support for the MPC85xx DS (MPC8544 DS) board
@@ -60,7 +60,7 @@ config MPC85xx_RDB
60 bool "Freescale MPC85xx RDB" 60 bool "Freescale MPC85xx RDB"
61 select PPC_I8259 61 select PPC_I8259
62 select DEFAULT_UIMAGE 62 select DEFAULT_UIMAGE
63 select FSL_ULI1575 63 select FSL_ULI1575 if PCI
64 select SWIOTLB 64 select SWIOTLB
65 help 65 help
66 This option enables support for the MPC85xx RDB (P2020 RDB) board 66 This option enables support for the MPC85xx RDB (P2020 RDB) board
diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig
index fbe9f3621424..a0b5638c5dc8 100644
--- a/arch/powerpc/platforms/86xx/Kconfig
+++ b/arch/powerpc/platforms/86xx/Kconfig
@@ -13,7 +13,7 @@ config MPC8641_HPCN
13 bool "Freescale MPC8641 HPCN" 13 bool "Freescale MPC8641 HPCN"
14 select PPC_I8259 14 select PPC_I8259
15 select DEFAULT_UIMAGE 15 select DEFAULT_UIMAGE
16 select FSL_ULI1575 16 select FSL_ULI1575 if PCI
17 select HAS_RAPIDIO 17 select HAS_RAPIDIO
18 select SWIOTLB 18 select SWIOTLB
19 help 19 help
@@ -28,7 +28,7 @@ config SBC8641D
28config MPC8610_HPCD 28config MPC8610_HPCD
29 bool "Freescale MPC8610 HPCD" 29 bool "Freescale MPC8610 HPCD"
30 select DEFAULT_UIMAGE 30 select DEFAULT_UIMAGE
31 select FSL_ULI1575 31 select FSL_ULI1575 if PCI
32 help 32 help
33 This option enables support for the MPC8610 HPCD board. 33 This option enables support for the MPC8610 HPCD board.
34 34
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
index 9b21ee68ea50..01e7b5bb3c1d 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -11,6 +11,7 @@
11 11
12#include <linux/of.h> 12#include <linux/of.h>
13#include <linux/lmb.h> 13#include <linux/lmb.h>
14#include <linux/vmalloc.h>
14#include <asm/firmware.h> 15#include <asm/firmware.h>
15#include <asm/machdep.h> 16#include <asm/machdep.h>
16#include <asm/pSeries_reconfig.h> 17#include <asm/pSeries_reconfig.h>
@@ -54,6 +55,12 @@ static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size)
54 */ 55 */
55 start = (unsigned long)__va(base); 56 start = (unsigned long)__va(base);
56 ret = remove_section_mapping(start, start + lmb_size); 57 ret = remove_section_mapping(start, start + lmb_size);
58
59 /* Ensure all vmalloc mappings are flushed in case they also
60 * hit that section of memory
61 */
62 vm_unmap_aliases();
63
57 return ret; 64 return ret;
58} 65}
59 66
diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c
index 4dae3698bf24..8d103ca6d6ab 100644
--- a/arch/powerpc/sysdev/cpm1.c
+++ b/arch/powerpc/sysdev/cpm1.c
@@ -486,9 +486,6 @@ int cpm1_clk_setup(enum cpm_clk_target target, int clock, int mode)
486 return -EINVAL; 486 return -EINVAL;
487 } 487 }
488 488
489 if (reg == &mpc8xx_immr->im_cpm.cp_sicr && mode == CPM_CLK_RX)
490 shift += 3;
491
492 for (i = 0; i < ARRAY_SIZE(clk_map); i++) { 489 for (i = 0; i < ARRAY_SIZE(clk_map); i++) {
493 if (clk_map[i][0] == target && clk_map[i][1] == clock) { 490 if (clk_map[i][0] == target && clk_map[i][1] == clock) {
494 bits = clk_map[i][2]; 491 bits = clk_map[i][2];
@@ -503,6 +500,17 @@ int cpm1_clk_setup(enum cpm_clk_target target, int clock, int mode)
503 500
504 bits <<= shift; 501 bits <<= shift;
505 mask <<= shift; 502 mask <<= shift;
503
504 if (reg == &mpc8xx_immr->im_cpm.cp_sicr) {
505 if (mode == CPM_CLK_RTX) {
506 bits |= bits << 3;
507 mask |= mask << 3;
508 } else if (mode == CPM_CLK_RX) {
509 bits <<= 3;
510 mask <<= 3;
511 }
512 }
513
506 out_be32(reg, (in_be32(reg) & ~mask) | bits); 514 out_be32(reg, (in_be32(reg) & ~mask) | bits);
507 515
508 return 0; 516 return 0;
diff --git a/arch/powerpc/sysdev/cpm2.c b/arch/powerpc/sysdev/cpm2.c
index eb5927212fab..8dc1e24f3c23 100644
--- a/arch/powerpc/sysdev/cpm2.c
+++ b/arch/powerpc/sysdev/cpm2.c
@@ -244,9 +244,6 @@ int cpm2_clk_setup(enum cpm_clk_target target, int clock, int mode)
244 return -EINVAL; 244 return -EINVAL;
245 } 245 }
246 246
247 if (mode == CPM_CLK_RX)
248 shift += 3;
249
250 for (i = 0; i < ARRAY_SIZE(clk_map); i++) { 247 for (i = 0; i < ARRAY_SIZE(clk_map); i++) {
251 if (clk_map[i][0] == target && clk_map[i][1] == clock) { 248 if (clk_map[i][0] == target && clk_map[i][1] == clock) {
252 bits = clk_map[i][2]; 249 bits = clk_map[i][2];
@@ -259,6 +256,14 @@ int cpm2_clk_setup(enum cpm_clk_target target, int clock, int mode)
259 bits <<= shift; 256 bits <<= shift;
260 mask <<= shift; 257 mask <<= shift;
261 258
259 if (mode == CPM_CLK_RTX) {
260 bits |= bits << 3;
261 mask |= mask << 3;
262 } else if (mode == CPM_CLK_RX) {
263 bits <<= 3;
264 mask <<= 3;
265 }
266
262 out_be32(reg, (in_be32(reg) & ~mask) | bits); 267 out_be32(reg, (in_be32(reg) & ~mask) | bits);
263 268
264 cpm2_unmap(im_cpmux); 269 cpm2_unmap(im_cpmux);
diff --git a/arch/s390/include/asm/vdso.h b/arch/s390/include/asm/vdso.h
index 4a76d9480cce..533f35751aeb 100644
--- a/arch/s390/include/asm/vdso.h
+++ b/arch/s390/include/asm/vdso.h
@@ -29,6 +29,7 @@ struct vdso_data {
29 __u32 tz_minuteswest; /* Minutes west of Greenwich 0x30 */ 29 __u32 tz_minuteswest; /* Minutes west of Greenwich 0x30 */
30 __u32 tz_dsttime; /* Type of dst correction 0x34 */ 30 __u32 tz_dsttime; /* Type of dst correction 0x34 */
31 __u32 ectg_available; 31 __u32 ectg_available;
32 __u32 ntp_mult; /* NTP adjusted multiplier 0x3C */
32}; 33};
33 34
34struct vdso_per_cpu_data { 35struct vdso_per_cpu_data {
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index 08db736dded0..a09408952ed0 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -61,6 +61,7 @@ int main(void)
61 DEFINE(__VDSO_WTOM_NSEC, offsetof(struct vdso_data, wtom_clock_nsec)); 61 DEFINE(__VDSO_WTOM_NSEC, offsetof(struct vdso_data, wtom_clock_nsec));
62 DEFINE(__VDSO_TIMEZONE, offsetof(struct vdso_data, tz_minuteswest)); 62 DEFINE(__VDSO_TIMEZONE, offsetof(struct vdso_data, tz_minuteswest));
63 DEFINE(__VDSO_ECTG_OK, offsetof(struct vdso_data, ectg_available)); 63 DEFINE(__VDSO_ECTG_OK, offsetof(struct vdso_data, ectg_available));
64 DEFINE(__VDSO_NTP_MULT, offsetof(struct vdso_data, ntp_mult));
64 DEFINE(__VDSO_ECTG_BASE, offsetof(struct vdso_per_cpu_data, ectg_timer_base)); 65 DEFINE(__VDSO_ECTG_BASE, offsetof(struct vdso_per_cpu_data, ectg_timer_base));
65 DEFINE(__VDSO_ECTG_USER, offsetof(struct vdso_per_cpu_data, ectg_user_time)); 66 DEFINE(__VDSO_ECTG_USER, offsetof(struct vdso_per_cpu_data, ectg_user_time));
66 /* constants used by the vdso */ 67 /* constants used by the vdso */
diff --git a/arch/s390/kernel/head31.S b/arch/s390/kernel/head31.S
index 1bbcc499d455..b8f8dc126102 100644
--- a/arch/s390/kernel/head31.S
+++ b/arch/s390/kernel/head31.S
@@ -82,7 +82,7 @@ startup_continue:
82_ehead: 82_ehead:
83 83
84#ifdef CONFIG_SHARED_KERNEL 84#ifdef CONFIG_SHARED_KERNEL
85 .org 0x100000 85 .org 0x100000 - 0x11000 # head.o ends at 0x11000
86#endif 86#endif
87 87
88# 88#
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S
index 1f70970de0aa..cdef68717416 100644
--- a/arch/s390/kernel/head64.S
+++ b/arch/s390/kernel/head64.S
@@ -80,7 +80,7 @@ startup_continue:
80_ehead: 80_ehead:
81 81
82#ifdef CONFIG_SHARED_KERNEL 82#ifdef CONFIG_SHARED_KERNEL
83 .org 0x100000 83 .org 0x100000 - 0x11000 # head.o ends at 0x11000
84#endif 84#endif
85 85
86# 86#
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
index 33fdc5a79764..9f654da4cecc 100644
--- a/arch/s390/kernel/ptrace.c
+++ b/arch/s390/kernel/ptrace.c
@@ -640,7 +640,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
640 640
641asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) 641asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
642{ 642{
643 long ret; 643 long ret = 0;
644 644
645 /* Do the secure computing check first. */ 645 /* Do the secure computing check first. */
646 secure_computing(regs->gprs[2]); 646 secure_computing(regs->gprs[2]);
@@ -649,7 +649,6 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
649 * The sysc_tracesys code in entry.S stored the system 649 * The sysc_tracesys code in entry.S stored the system
650 * call number to gprs[2]. 650 * call number to gprs[2].
651 */ 651 */
652 ret = regs->gprs[2];
653 if (test_thread_flag(TIF_SYSCALL_TRACE) && 652 if (test_thread_flag(TIF_SYSCALL_TRACE) &&
654 (tracehook_report_syscall_entry(regs) || 653 (tracehook_report_syscall_entry(regs) ||
655 regs->gprs[2] >= NR_syscalls)) { 654 regs->gprs[2] >= NR_syscalls)) {
@@ -671,7 +670,7 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
671 regs->gprs[2], regs->orig_gpr2, 670 regs->gprs[2], regs->orig_gpr2,
672 regs->gprs[3], regs->gprs[4], 671 regs->gprs[3], regs->gprs[4],
673 regs->gprs[5]); 672 regs->gprs[5]);
674 return ret; 673 return ret ?: regs->gprs[2];
675} 674}
676 675
677asmlinkage void do_syscall_trace_exit(struct pt_regs *regs) 676asmlinkage void do_syscall_trace_exit(struct pt_regs *regs)
diff --git a/arch/s390/kernel/swsusp_asm64.S b/arch/s390/kernel/swsusp_asm64.S
index b354427e03b7..c56d3f56d020 100644
--- a/arch/s390/kernel/swsusp_asm64.S
+++ b/arch/s390/kernel/swsusp_asm64.S
@@ -256,6 +256,9 @@ restore_registers:
256 lghi %r2,0 256 lghi %r2,0
257 brasl %r14,arch_set_page_states 257 brasl %r14,arch_set_page_states
258 258
259 /* Reinitialize the channel subsystem */
260 brasl %r14,channel_subsystem_reinit
261
259 /* Return 0 */ 262 /* Return 0 */
260 lmg %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15) 263 lmg %r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)
261 lghi %r2,0 264 lghi %r2,0
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index fba6dec156bf..d906bf19c14a 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -221,6 +221,7 @@ void update_vsyscall(struct timespec *wall_time, struct clocksource *clock,
221 vdso_data->xtime_clock_nsec = wall_time->tv_nsec; 221 vdso_data->xtime_clock_nsec = wall_time->tv_nsec;
222 vdso_data->wtom_clock_sec = wall_to_monotonic.tv_sec; 222 vdso_data->wtom_clock_sec = wall_to_monotonic.tv_sec;
223 vdso_data->wtom_clock_nsec = wall_to_monotonic.tv_nsec; 223 vdso_data->wtom_clock_nsec = wall_to_monotonic.tv_nsec;
224 vdso_data->ntp_mult = mult;
224 smp_wmb(); 225 smp_wmb();
225 ++vdso_data->tb_update_count; 226 ++vdso_data->tb_update_count;
226} 227}
diff --git a/arch/s390/kernel/vdso32/clock_gettime.S b/arch/s390/kernel/vdso32/clock_gettime.S
index 4a98909a8310..969643954273 100644
--- a/arch/s390/kernel/vdso32/clock_gettime.S
+++ b/arch/s390/kernel/vdso32/clock_gettime.S
@@ -38,13 +38,13 @@ __kernel_clock_gettime:
38 sl %r1,__VDSO_XTIME_STAMP+4(%r5) 38 sl %r1,__VDSO_XTIME_STAMP+4(%r5)
39 brc 3,2f 39 brc 3,2f
40 ahi %r0,-1 40 ahi %r0,-1
412: mhi %r0,1000 /* cyc2ns(clock,cycle_delta) */ 412: ms %r0,__VDSO_NTP_MULT(%r5) /* cyc2ns(clock,cycle_delta) */
42 lr %r2,%r0 42 lr %r2,%r0
43 lhi %r0,1000 43 l %r0,__VDSO_NTP_MULT(%r5)
44 ltr %r1,%r1 44 ltr %r1,%r1
45 mr %r0,%r0 45 mr %r0,%r0
46 jnm 3f 46 jnm 3f
47 ahi %r0,1000 47 a %r0,__VDSO_NTP_MULT(%r5)
483: alr %r0,%r2 483: alr %r0,%r2
49 srdl %r0,12 49 srdl %r0,12
50 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 50 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */
@@ -86,13 +86,13 @@ __kernel_clock_gettime:
86 sl %r1,__VDSO_XTIME_STAMP+4(%r5) 86 sl %r1,__VDSO_XTIME_STAMP+4(%r5)
87 brc 3,12f 87 brc 3,12f
88 ahi %r0,-1 88 ahi %r0,-1
8912: mhi %r0,1000 /* cyc2ns(clock,cycle_delta) */ 8912: ms %r0,__VDSO_NTP_MULT(%r5) /* cyc2ns(clock,cycle_delta) */
90 lr %r2,%r0 90 lr %r2,%r0
91 lhi %r0,1000 91 l %r0,__VDSO_NTP_MULT(%r5)
92 ltr %r1,%r1 92 ltr %r1,%r1
93 mr %r0,%r0 93 mr %r0,%r0
94 jnm 13f 94 jnm 13f
95 ahi %r0,1000 95 a %r0,__VDSO_NTP_MULT(%r5)
9613: alr %r0,%r2 9613: alr %r0,%r2
97 srdl %r0,12 97 srdl %r0,12
98 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 98 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */
diff --git a/arch/s390/kernel/vdso32/gettimeofday.S b/arch/s390/kernel/vdso32/gettimeofday.S
index ad8acfc949fb..2d3633175e3b 100644
--- a/arch/s390/kernel/vdso32/gettimeofday.S
+++ b/arch/s390/kernel/vdso32/gettimeofday.S
@@ -35,13 +35,13 @@ __kernel_gettimeofday:
35 sl %r1,__VDSO_XTIME_STAMP+4(%r5) 35 sl %r1,__VDSO_XTIME_STAMP+4(%r5)
36 brc 3,3f 36 brc 3,3f
37 ahi %r0,-1 37 ahi %r0,-1
383: mhi %r0,1000 /* cyc2ns(clock,cycle_delta) */ 383: ms %r0,__VDSO_NTP_MULT(%r5) /* cyc2ns(clock,cycle_delta) */
39 st %r0,24(%r15) 39 st %r0,24(%r15)
40 lhi %r0,1000 40 l %r0,__VDSO_NTP_MULT(%r5)
41 ltr %r1,%r1 41 ltr %r1,%r1
42 mr %r0,%r0 42 mr %r0,%r0
43 jnm 4f 43 jnm 4f
44 ahi %r0,1000 44 a %r0,__VDSO_NTP_MULT(%r5)
454: al %r0,24(%r15) 454: al %r0,24(%r15)
46 srdl %r0,12 46 srdl %r0,12
47 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 47 al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */
diff --git a/arch/s390/kernel/vdso64/clock_gettime.S b/arch/s390/kernel/vdso64/clock_gettime.S
index 49106c6e6f88..f40467884a03 100644
--- a/arch/s390/kernel/vdso64/clock_gettime.S
+++ b/arch/s390/kernel/vdso64/clock_gettime.S
@@ -36,7 +36,7 @@ __kernel_clock_gettime:
36 stck 48(%r15) /* Store TOD clock */ 36 stck 48(%r15) /* Store TOD clock */
37 lg %r1,48(%r15) 37 lg %r1,48(%r15)
38 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ 38 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
39 mghi %r1,1000 39 msgf %r1,__VDSO_NTP_MULT(%r5) /* * NTP adjustment */
40 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */ 40 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */
41 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 41 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime */
42 lg %r0,__VDSO_XTIME_SEC(%r5) 42 lg %r0,__VDSO_XTIME_SEC(%r5)
@@ -64,7 +64,7 @@ __kernel_clock_gettime:
64 stck 48(%r15) /* Store TOD clock */ 64 stck 48(%r15) /* Store TOD clock */
65 lg %r1,48(%r15) 65 lg %r1,48(%r15)
66 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ 66 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
67 mghi %r1,1000 67 msgf %r1,__VDSO_NTP_MULT(%r5) /* * NTP adjustment */
68 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */ 68 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */
69 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime */ 69 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime */
70 lg %r0,__VDSO_XTIME_SEC(%r5) 70 lg %r0,__VDSO_XTIME_SEC(%r5)
diff --git a/arch/s390/kernel/vdso64/gettimeofday.S b/arch/s390/kernel/vdso64/gettimeofday.S
index f873e75634e1..36ee674722ec 100644
--- a/arch/s390/kernel/vdso64/gettimeofday.S
+++ b/arch/s390/kernel/vdso64/gettimeofday.S
@@ -31,7 +31,7 @@ __kernel_gettimeofday:
31 stck 48(%r15) /* Store TOD clock */ 31 stck 48(%r15) /* Store TOD clock */
32 lg %r1,48(%r15) 32 lg %r1,48(%r15)
33 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ 33 sg %r1,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */
34 mghi %r1,1000 34 msgf %r1,__VDSO_NTP_MULT(%r5) /* * NTP adjustment */
35 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */ 35 srlg %r1,%r1,12 /* cyc2ns(clock,cycle_delta) */
36 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime.tv_nsec */ 36 alg %r1,__VDSO_XTIME_NSEC(%r5) /* + xtime.tv_nsec */
37 lg %r0,__VDSO_XTIME_SEC(%r5) /* xtime.tv_sec */ 37 lg %r0,__VDSO_XTIME_SEC(%r5) /* xtime.tv_sec */
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig
index fba1f62d56e7..dba024d72a89 100644
--- a/arch/sh/configs/rts7751r2d1_defconfig
+++ b/arch/sh/configs/rts7751r2d1_defconfig
@@ -877,7 +877,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
877# 877#
878# CONFIG_SERIAL_MAX3100 is not set 878# CONFIG_SERIAL_MAX3100 is not set
879CONFIG_SERIAL_SH_SCI=y 879CONFIG_SERIAL_SH_SCI=y
880CONFIG_SERIAL_SH_SCI_NR_UARTS=1 880CONFIG_SERIAL_SH_SCI_NR_UARTS=2
881CONFIG_SERIAL_SH_SCI_CONSOLE=y 881CONFIG_SERIAL_SH_SCI_CONSOLE=y
882CONFIG_SERIAL_CORE=y 882CONFIG_SERIAL_CORE=y
883CONFIG_SERIAL_CORE_CONSOLE=y 883CONFIG_SERIAL_CORE_CONSOLE=y
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig
index a8d538f06e67..6d511d06cbf6 100644
--- a/arch/sh/configs/rts7751r2dplus_defconfig
+++ b/arch/sh/configs/rts7751r2dplus_defconfig
@@ -963,7 +963,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
963# 963#
964# CONFIG_SERIAL_MAX3100 is not set 964# CONFIG_SERIAL_MAX3100 is not set
965CONFIG_SERIAL_SH_SCI=y 965CONFIG_SERIAL_SH_SCI=y
966CONFIG_SERIAL_SH_SCI_NR_UARTS=1 966CONFIG_SERIAL_SH_SCI_NR_UARTS=2
967CONFIG_SERIAL_SH_SCI_CONSOLE=y 967CONFIG_SERIAL_SH_SCI_CONSOLE=y
968CONFIG_SERIAL_CORE=y 968CONFIG_SERIAL_CORE=y
969CONFIG_SERIAL_CORE_CONSOLE=y 969CONFIG_SERIAL_CORE_CONSOLE=y
diff --git a/arch/sh/drivers/pci/pci-sh7751.c b/arch/sh/drivers/pci/pci-sh7751.c
index 17811e5d287b..f98141b3b7d7 100644
--- a/arch/sh/drivers/pci/pci-sh7751.c
+++ b/arch/sh/drivers/pci/pci-sh7751.c
@@ -17,6 +17,7 @@
17#include <linux/io.h> 17#include <linux/io.h>
18#include "pci-sh4.h" 18#include "pci-sh4.h"
19#include <asm/addrspace.h> 19#include <asm/addrspace.h>
20#include <asm/sizes.h>
20 21
21static int __init __area_sdram_check(struct pci_channel *chan, 22static int __init __area_sdram_check(struct pci_channel *chan,
22 unsigned int area) 23 unsigned int area)
@@ -47,8 +48,8 @@ static int __init __area_sdram_check(struct pci_channel *chan,
47static struct resource sh7751_pci_resources[] = { 48static struct resource sh7751_pci_resources[] = {
48 { 49 {
49 .name = "SH7751_IO", 50 .name = "SH7751_IO",
50 .start = SH7751_PCI_IO_BASE, 51 .start = 0x1000,
51 .end = SH7751_PCI_IO_BASE + SH7751_PCI_IO_SIZE - 1, 52 .end = SZ_4M - 1,
52 .flags = IORESOURCE_IO 53 .flags = IORESOURCE_IO
53 }, { 54 }, {
54 .name = "SH7751_mem", 55 .name = "SH7751_mem",
diff --git a/arch/sh/include/cpu-sh4/cpu/dma-register.h b/arch/sh/include/cpu-sh4/cpu/dma-register.h
index 55f9fec082d4..de2359533994 100644
--- a/arch/sh/include/cpu-sh4/cpu/dma-register.h
+++ b/arch/sh/include/cpu-sh4/cpu/dma-register.h
@@ -76,7 +76,7 @@ enum {
76} 76}
77 77
78#define TS_INDEX2VAL(i) ((((i) & 3) << CHCR_TS_LOW_SHIFT) | \ 78#define TS_INDEX2VAL(i) ((((i) & 3) << CHCR_TS_LOW_SHIFT) | \
79 ((((i) >> 2) & 3) << CHCR_TS_HIGH_SHIFT)) 79 (((i) & 0xc) << CHCR_TS_HIGH_SHIFT))
80 80
81#else /* CONFIG_CPU_SH4A */ 81#else /* CONFIG_CPU_SH4A */
82 82
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c
index 64cda95f59ca..7a656bd8bd3c 100644
--- a/arch/um/drivers/line.c
+++ b/arch/um/drivers/line.c
@@ -6,6 +6,7 @@
6#include "linux/irqreturn.h" 6#include "linux/irqreturn.h"
7#include "linux/kd.h" 7#include "linux/kd.h"
8#include "linux/sched.h" 8#include "linux/sched.h"
9#include "linux/slab.h"
9#include "chan_kern.h" 10#include "chan_kern.h"
10#include "irq_kern.h" 11#include "irq_kern.h"
11#include "irq_user.h" 12#include "irq_user.h"
diff --git a/arch/um/os-Linux/helper.c b/arch/um/os-Linux/helper.c
index 06d6ccf0e444..b6b1096152aa 100644
--- a/arch/um/os-Linux/helper.c
+++ b/arch/um/os-Linux/helper.c
@@ -8,7 +8,6 @@
8#include <errno.h> 8#include <errno.h>
9#include <sched.h> 9#include <sched.h>
10#include <linux/limits.h> 10#include <linux/limits.h>
11#include <linux/slab.h>
12#include <sys/socket.h> 11#include <sys/socket.h>
13#include <sys/wait.h> 12#include <sys/wait.h>
14#include "kern_constants.h" 13#include "kern_constants.h"
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index a1dcfa3ab17d..30a3e9776123 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -347,6 +347,7 @@ extern void __iomem *early_ioremap(resource_size_t phys_addr,
347extern void __iomem *early_memremap(resource_size_t phys_addr, 347extern void __iomem *early_memremap(resource_size_t phys_addr,
348 unsigned long size); 348 unsigned long size);
349extern void early_iounmap(void __iomem *addr, unsigned long size); 349extern void early_iounmap(void __iomem *addr, unsigned long size);
350extern void fixup_early_ioremap(void);
350 351
351#define IO_SPACE_LIMIT 0xffff 352#define IO_SPACE_LIMIT 0xffff
352 353
diff --git a/arch/x86/kernel/apb_timer.c b/arch/x86/kernel/apb_timer.c
index ff469e470059..a35347501d36 100644
--- a/arch/x86/kernel/apb_timer.c
+++ b/arch/x86/kernel/apb_timer.c
@@ -429,7 +429,7 @@ static int apbt_cpuhp_notify(struct notifier_block *n,
429 429
430static __init int apbt_late_init(void) 430static __init int apbt_late_init(void)
431{ 431{
432 if (disable_apbt_percpu) 432 if (disable_apbt_percpu || !apb_timer_block_enabled)
433 return 0; 433 return 0;
434 /* This notifier should be called after workqueue is ready */ 434 /* This notifier should be called after workqueue is ready */
435 hotcpu_notifier(apbt_cpuhp_notify, -20); 435 hotcpu_notifier(apbt_cpuhp_notify, -20);
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 127b8718abfb..eb2789c3f721 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -2545,6 +2545,9 @@ void irq_force_complete_move(int irq)
2545 struct irq_desc *desc = irq_to_desc(irq); 2545 struct irq_desc *desc = irq_to_desc(irq);
2546 struct irq_cfg *cfg = desc->chip_data; 2546 struct irq_cfg *cfg = desc->chip_data;
2547 2547
2548 if (!cfg)
2549 return;
2550
2548 __irq_complete_move(&desc, cfg->vector); 2551 __irq_complete_move(&desc, cfg->vector);
2549} 2552}
2550#else 2553#else
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
index d360b56e9825..b6215b9798e2 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
@@ -929,7 +929,8 @@ static int fill_powernow_table_pstate(struct powernow_k8_data *data,
929 powernow_table[i].index = index; 929 powernow_table[i].index = index;
930 930
931 /* Frequency may be rounded for these */ 931 /* Frequency may be rounded for these */
932 if (boot_cpu_data.x86 == 0x10 || boot_cpu_data.x86 == 0x11) { 932 if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10)
933 || boot_cpu_data.x86 == 0x11) {
933 powernow_table[i].frequency = 934 powernow_table[i].frequency =
934 freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7); 935 freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7);
935 } else 936 } else
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index 7e1cca13af35..1366c7cfd483 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -47,6 +47,27 @@ static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
47 (c->x86 == 0x6 && c->x86_model >= 0x0e)) 47 (c->x86 == 0x6 && c->x86_model >= 0x0e))
48 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); 48 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
49 49
50 /*
51 * Atom erratum AAE44/AAF40/AAG38/AAH41:
52 *
53 * A race condition between speculative fetches and invalidating
54 * a large page. This is worked around in microcode, but we
55 * need the microcode to have already been loaded... so if it is
56 * not, recommend a BIOS update and disable large pages.
57 */
58 if (c->x86 == 6 && c->x86_model == 0x1c && c->x86_mask <= 2) {
59 u32 ucode, junk;
60
61 wrmsr(MSR_IA32_UCODE_REV, 0, 0);
62 sync_core();
63 rdmsr(MSR_IA32_UCODE_REV, junk, ucode);
64
65 if (ucode < 0x20e) {
66 printk(KERN_WARNING "Atom PSE erratum detected, BIOS microcode update recommended\n");
67 clear_cpu_cap(c, X86_FEATURE_PSE);
68 }
69 }
70
50#ifdef CONFIG_X86_64 71#ifdef CONFIG_X86_64
51 set_cpu_cap(c, X86_FEATURE_SYSENTER32); 72 set_cpu_cap(c, X86_FEATURE_SYSENTER32);
52#else 73#else
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index 1cbed97b59cf..dfdb4dba2320 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -22,6 +22,7 @@
22 */ 22 */
23 23
24#include <linux/dmi.h> 24#include <linux/dmi.h>
25#include <linux/module.h>
25#include <asm/div64.h> 26#include <asm/div64.h>
26#include <asm/vmware.h> 27#include <asm/vmware.h>
27#include <asm/x86_init.h> 28#include <asm/x86_init.h>
@@ -101,6 +102,7 @@ int vmware_platform(void)
101 102
102 return 0; 103 return 0;
103} 104}
105EXPORT_SYMBOL(vmware_platform);
104 106
105/* 107/*
106 * VMware hypervisor takes care of exporting a reliable TSC to the guest. 108 * VMware hypervisor takes care of exporting a reliable TSC to the guest.
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
index b43bbaebe2c0..1658efdfb4e5 100644
--- a/arch/x86/kernel/kprobes.c
+++ b/arch/x86/kernel/kprobes.c
@@ -534,20 +534,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
534 struct kprobe_ctlblk *kcb; 534 struct kprobe_ctlblk *kcb;
535 535
536 addr = (kprobe_opcode_t *)(regs->ip - sizeof(kprobe_opcode_t)); 536 addr = (kprobe_opcode_t *)(regs->ip - sizeof(kprobe_opcode_t));
537 if (*addr != BREAKPOINT_INSTRUCTION) {
538 /*
539 * The breakpoint instruction was removed right
540 * after we hit it. Another cpu has removed
541 * either a probepoint or a debugger breakpoint
542 * at this address. In either case, no further
543 * handling of this interrupt is appropriate.
544 * Back up over the (now missing) int3 and run
545 * the original instruction.
546 */
547 regs->ip = (unsigned long)addr;
548 return 1;
549 }
550
551 /* 537 /*
552 * We don't want to be preempted for the entire 538 * We don't want to be preempted for the entire
553 * duration of kprobe processing. We conditionally 539 * duration of kprobe processing. We conditionally
@@ -579,6 +565,19 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
579 setup_singlestep(p, regs, kcb, 0); 565 setup_singlestep(p, regs, kcb, 0);
580 return 1; 566 return 1;
581 } 567 }
568 } else if (*addr != BREAKPOINT_INSTRUCTION) {
569 /*
570 * The breakpoint instruction was removed right
571 * after we hit it. Another cpu has removed
572 * either a probepoint or a debugger breakpoint
573 * at this address. In either case, no further
574 * handling of this interrupt is appropriate.
575 * Back up over the (now missing) int3 and run
576 * the original instruction.
577 */
578 regs->ip = (unsigned long)addr;
579 preempt_enable_no_resched();
580 return 1;
582 } else if (kprobe_running()) { 581 } else if (kprobe_running()) {
583 p = __get_cpu_var(current_kprobe); 582 p = __get_cpu_var(current_kprobe);
584 if (p->break_handler && p->break_handler(p, regs)) { 583 if (p->break_handler && p->break_handler(p, regs)) {
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index dc9690b4c4cc..17cb3295cbf7 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -276,12 +276,12 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
276 276
277 set_tsk_thread_flag(p, TIF_FORK); 277 set_tsk_thread_flag(p, TIF_FORK);
278 278
279 p->thread.fs = me->thread.fs;
280 p->thread.gs = me->thread.gs;
281 p->thread.io_bitmap_ptr = NULL; 279 p->thread.io_bitmap_ptr = NULL;
282 280
283 savesegment(gs, p->thread.gsindex); 281 savesegment(gs, p->thread.gsindex);
282 p->thread.gs = p->thread.gsindex ? 0 : me->thread.gs;
284 savesegment(fs, p->thread.fsindex); 283 savesegment(fs, p->thread.fsindex);
284 p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
285 savesegment(es, p->thread.es); 285 savesegment(es, p->thread.es);
286 savesegment(ds, p->thread.ds); 286 savesegment(ds, p->thread.ds);
287 287
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 48aeee8eefb0..19a8906bcaa2 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1490,8 +1490,8 @@ static int mmu_zap_unsync_children(struct kvm *kvm,
1490 for_each_sp(pages, sp, parents, i) { 1490 for_each_sp(pages, sp, parents, i) {
1491 kvm_mmu_zap_page(kvm, sp); 1491 kvm_mmu_zap_page(kvm, sp);
1492 mmu_pages_clear_parents(&parents); 1492 mmu_pages_clear_parents(&parents);
1493 zapped++;
1493 } 1494 }
1494 zapped += pages.nr;
1495 kvm_mmu_pages_init(parent, &parents, &pages); 1495 kvm_mmu_pages_init(parent, &parents, &pages);
1496 } 1496 }
1497 1497
@@ -1542,14 +1542,16 @@ void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned int kvm_nr_mmu_pages)
1542 */ 1542 */
1543 1543
1544 if (used_pages > kvm_nr_mmu_pages) { 1544 if (used_pages > kvm_nr_mmu_pages) {
1545 while (used_pages > kvm_nr_mmu_pages) { 1545 while (used_pages > kvm_nr_mmu_pages &&
1546 !list_empty(&kvm->arch.active_mmu_pages)) {
1546 struct kvm_mmu_page *page; 1547 struct kvm_mmu_page *page;
1547 1548
1548 page = container_of(kvm->arch.active_mmu_pages.prev, 1549 page = container_of(kvm->arch.active_mmu_pages.prev,
1549 struct kvm_mmu_page, link); 1550 struct kvm_mmu_page, link);
1550 kvm_mmu_zap_page(kvm, page); 1551 used_pages -= kvm_mmu_zap_page(kvm, page);
1551 used_pages--; 1552 used_pages--;
1552 } 1553 }
1554 kvm_nr_mmu_pages = used_pages;
1553 kvm->arch.n_free_mmu_pages = 0; 1555 kvm->arch.n_free_mmu_pages = 0;
1554 } 1556 }
1555 else 1557 else
@@ -1596,7 +1598,8 @@ static void mmu_unshadow(struct kvm *kvm, gfn_t gfn)
1596 && !sp->role.invalid) { 1598 && !sp->role.invalid) {
1597 pgprintk("%s: zap %lx %x\n", 1599 pgprintk("%s: zap %lx %x\n",
1598 __func__, gfn, sp->role.word); 1600 __func__, gfn, sp->role.word);
1599 kvm_mmu_zap_page(kvm, sp); 1601 if (kvm_mmu_zap_page(kvm, sp))
1602 nn = bucket->first;
1600 } 1603 }
1601 } 1604 }
1602} 1605}
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 445c59411ed0..2ba58206812a 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -706,29 +706,28 @@ static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id)
706 if (err) 706 if (err)
707 goto free_svm; 707 goto free_svm;
708 708
709 err = -ENOMEM;
709 page = alloc_page(GFP_KERNEL); 710 page = alloc_page(GFP_KERNEL);
710 if (!page) { 711 if (!page)
711 err = -ENOMEM;
712 goto uninit; 712 goto uninit;
713 }
714 713
715 err = -ENOMEM;
716 msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER); 714 msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER);
717 if (!msrpm_pages) 715 if (!msrpm_pages)
718 goto uninit; 716 goto free_page1;
719 717
720 nested_msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER); 718 nested_msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER);
721 if (!nested_msrpm_pages) 719 if (!nested_msrpm_pages)
722 goto uninit; 720 goto free_page2;
723
724 svm->msrpm = page_address(msrpm_pages);
725 svm_vcpu_init_msrpm(svm->msrpm);
726 721
727 hsave_page = alloc_page(GFP_KERNEL); 722 hsave_page = alloc_page(GFP_KERNEL);
728 if (!hsave_page) 723 if (!hsave_page)
729 goto uninit; 724 goto free_page3;
725
730 svm->nested.hsave = page_address(hsave_page); 726 svm->nested.hsave = page_address(hsave_page);
731 727
728 svm->msrpm = page_address(msrpm_pages);
729 svm_vcpu_init_msrpm(svm->msrpm);
730
732 svm->nested.msrpm = page_address(nested_msrpm_pages); 731 svm->nested.msrpm = page_address(nested_msrpm_pages);
733 732
734 svm->vmcb = page_address(page); 733 svm->vmcb = page_address(page);
@@ -744,6 +743,12 @@ static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id)
744 743
745 return &svm->vcpu; 744 return &svm->vcpu;
746 745
746free_page3:
747 __free_pages(nested_msrpm_pages, MSRPM_ALLOC_ORDER);
748free_page2:
749 __free_pages(msrpm_pages, MSRPM_ALLOC_ORDER);
750free_page1:
751 __free_page(page);
747uninit: 752uninit:
748 kvm_vcpu_uninit(&svm->vcpu); 753 kvm_vcpu_uninit(&svm->vcpu);
749free_svm: 754free_svm:
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 686492ed3079..bc933cfb4e66 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -77,6 +77,8 @@ module_param(emulate_invalid_guest_state, bool, S_IRUGO);
77#define KVM_PMODE_VM_CR4_ALWAYS_ON (X86_CR4_PAE | X86_CR4_VMXE) 77#define KVM_PMODE_VM_CR4_ALWAYS_ON (X86_CR4_PAE | X86_CR4_VMXE)
78#define KVM_RMODE_VM_CR4_ALWAYS_ON (X86_CR4_VME | X86_CR4_PAE | X86_CR4_VMXE) 78#define KVM_RMODE_VM_CR4_ALWAYS_ON (X86_CR4_VME | X86_CR4_PAE | X86_CR4_VMXE)
79 79
80#define RMODE_GUEST_OWNED_EFLAGS_BITS (~(X86_EFLAGS_IOPL | X86_EFLAGS_VM))
81
80/* 82/*
81 * These 2 parameters are used to config the controls for Pause-Loop Exiting: 83 * These 2 parameters are used to config the controls for Pause-Loop Exiting:
82 * ple_gap: upper bound on the amount of time between two successive 84 * ple_gap: upper bound on the amount of time between two successive
@@ -131,7 +133,7 @@ struct vcpu_vmx {
131 } host_state; 133 } host_state;
132 struct { 134 struct {
133 int vm86_active; 135 int vm86_active;
134 u8 save_iopl; 136 ulong save_rflags;
135 struct kvm_save_segment { 137 struct kvm_save_segment {
136 u16 selector; 138 u16 selector;
137 unsigned long base; 139 unsigned long base;
@@ -818,18 +820,23 @@ static void vmx_fpu_deactivate(struct kvm_vcpu *vcpu)
818 820
819static unsigned long vmx_get_rflags(struct kvm_vcpu *vcpu) 821static unsigned long vmx_get_rflags(struct kvm_vcpu *vcpu)
820{ 822{
821 unsigned long rflags; 823 unsigned long rflags, save_rflags;
822 824
823 rflags = vmcs_readl(GUEST_RFLAGS); 825 rflags = vmcs_readl(GUEST_RFLAGS);
824 if (to_vmx(vcpu)->rmode.vm86_active) 826 if (to_vmx(vcpu)->rmode.vm86_active) {
825 rflags &= ~(unsigned long)(X86_EFLAGS_IOPL | X86_EFLAGS_VM); 827 rflags &= RMODE_GUEST_OWNED_EFLAGS_BITS;
828 save_rflags = to_vmx(vcpu)->rmode.save_rflags;
829 rflags |= save_rflags & ~RMODE_GUEST_OWNED_EFLAGS_BITS;
830 }
826 return rflags; 831 return rflags;
827} 832}
828 833
829static void vmx_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags) 834static void vmx_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags)
830{ 835{
831 if (to_vmx(vcpu)->rmode.vm86_active) 836 if (to_vmx(vcpu)->rmode.vm86_active) {
837 to_vmx(vcpu)->rmode.save_rflags = rflags;
832 rflags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM; 838 rflags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM;
839 }
833 vmcs_writel(GUEST_RFLAGS, rflags); 840 vmcs_writel(GUEST_RFLAGS, rflags);
834} 841}
835 842
@@ -1483,8 +1490,8 @@ static void enter_pmode(struct kvm_vcpu *vcpu)
1483 vmcs_write32(GUEST_TR_AR_BYTES, vmx->rmode.tr.ar); 1490 vmcs_write32(GUEST_TR_AR_BYTES, vmx->rmode.tr.ar);
1484 1491
1485 flags = vmcs_readl(GUEST_RFLAGS); 1492 flags = vmcs_readl(GUEST_RFLAGS);
1486 flags &= ~(X86_EFLAGS_IOPL | X86_EFLAGS_VM); 1493 flags &= RMODE_GUEST_OWNED_EFLAGS_BITS;
1487 flags |= (vmx->rmode.save_iopl << IOPL_SHIFT); 1494 flags |= vmx->rmode.save_rflags & ~RMODE_GUEST_OWNED_EFLAGS_BITS;
1488 vmcs_writel(GUEST_RFLAGS, flags); 1495 vmcs_writel(GUEST_RFLAGS, flags);
1489 1496
1490 vmcs_writel(GUEST_CR4, (vmcs_readl(GUEST_CR4) & ~X86_CR4_VME) | 1497 vmcs_writel(GUEST_CR4, (vmcs_readl(GUEST_CR4) & ~X86_CR4_VME) |
@@ -1557,8 +1564,7 @@ static void enter_rmode(struct kvm_vcpu *vcpu)
1557 vmcs_write32(GUEST_TR_AR_BYTES, 0x008b); 1564 vmcs_write32(GUEST_TR_AR_BYTES, 0x008b);
1558 1565
1559 flags = vmcs_readl(GUEST_RFLAGS); 1566 flags = vmcs_readl(GUEST_RFLAGS);
1560 vmx->rmode.save_iopl 1567 vmx->rmode.save_rflags = flags;
1561 = (flags & X86_EFLAGS_IOPL) >> IOPL_SHIFT;
1562 1568
1563 flags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM; 1569 flags |= X86_EFLAGS_IOPL | X86_EFLAGS_VM;
1564 1570
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 24cd0ee896e9..3c4ca98ad27f 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -433,8 +433,6 @@ void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
433 433
434#ifdef CONFIG_X86_64 434#ifdef CONFIG_X86_64
435 if (cr0 & 0xffffffff00000000UL) { 435 if (cr0 & 0xffffffff00000000UL) {
436 printk(KERN_DEBUG "set_cr0: 0x%lx #GP, reserved bits 0x%lx\n",
437 cr0, kvm_read_cr0(vcpu));
438 kvm_inject_gp(vcpu, 0); 436 kvm_inject_gp(vcpu, 0);
439 return; 437 return;
440 } 438 }
@@ -443,14 +441,11 @@ void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
443 cr0 &= ~CR0_RESERVED_BITS; 441 cr0 &= ~CR0_RESERVED_BITS;
444 442
445 if ((cr0 & X86_CR0_NW) && !(cr0 & X86_CR0_CD)) { 443 if ((cr0 & X86_CR0_NW) && !(cr0 & X86_CR0_CD)) {
446 printk(KERN_DEBUG "set_cr0: #GP, CD == 0 && NW == 1\n");
447 kvm_inject_gp(vcpu, 0); 444 kvm_inject_gp(vcpu, 0);
448 return; 445 return;
449 } 446 }
450 447
451 if ((cr0 & X86_CR0_PG) && !(cr0 & X86_CR0_PE)) { 448 if ((cr0 & X86_CR0_PG) && !(cr0 & X86_CR0_PE)) {
452 printk(KERN_DEBUG "set_cr0: #GP, set PG flag "
453 "and a clear PE flag\n");
454 kvm_inject_gp(vcpu, 0); 449 kvm_inject_gp(vcpu, 0);
455 return; 450 return;
456 } 451 }
@@ -461,15 +456,11 @@ void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
461 int cs_db, cs_l; 456 int cs_db, cs_l;
462 457
463 if (!is_pae(vcpu)) { 458 if (!is_pae(vcpu)) {
464 printk(KERN_DEBUG "set_cr0: #GP, start paging "
465 "in long mode while PAE is disabled\n");
466 kvm_inject_gp(vcpu, 0); 459 kvm_inject_gp(vcpu, 0);
467 return; 460 return;
468 } 461 }
469 kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l); 462 kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l);
470 if (cs_l) { 463 if (cs_l) {
471 printk(KERN_DEBUG "set_cr0: #GP, start paging "
472 "in long mode while CS.L == 1\n");
473 kvm_inject_gp(vcpu, 0); 464 kvm_inject_gp(vcpu, 0);
474 return; 465 return;
475 466
@@ -477,8 +468,6 @@ void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
477 } else 468 } else
478#endif 469#endif
479 if (is_pae(vcpu) && !load_pdptrs(vcpu, vcpu->arch.cr3)) { 470 if (is_pae(vcpu) && !load_pdptrs(vcpu, vcpu->arch.cr3)) {
480 printk(KERN_DEBUG "set_cr0: #GP, pdptrs "
481 "reserved bits\n");
482 kvm_inject_gp(vcpu, 0); 471 kvm_inject_gp(vcpu, 0);
483 return; 472 return;
484 } 473 }
@@ -505,28 +494,23 @@ void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
505 unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE; 494 unsigned long pdptr_bits = X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE;
506 495
507 if (cr4 & CR4_RESERVED_BITS) { 496 if (cr4 & CR4_RESERVED_BITS) {
508 printk(KERN_DEBUG "set_cr4: #GP, reserved bits\n");
509 kvm_inject_gp(vcpu, 0); 497 kvm_inject_gp(vcpu, 0);
510 return; 498 return;
511 } 499 }
512 500
513 if (is_long_mode(vcpu)) { 501 if (is_long_mode(vcpu)) {
514 if (!(cr4 & X86_CR4_PAE)) { 502 if (!(cr4 & X86_CR4_PAE)) {
515 printk(KERN_DEBUG "set_cr4: #GP, clearing PAE while "
516 "in long mode\n");
517 kvm_inject_gp(vcpu, 0); 503 kvm_inject_gp(vcpu, 0);
518 return; 504 return;
519 } 505 }
520 } else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE) 506 } else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE)
521 && ((cr4 ^ old_cr4) & pdptr_bits) 507 && ((cr4 ^ old_cr4) & pdptr_bits)
522 && !load_pdptrs(vcpu, vcpu->arch.cr3)) { 508 && !load_pdptrs(vcpu, vcpu->arch.cr3)) {
523 printk(KERN_DEBUG "set_cr4: #GP, pdptrs reserved bits\n");
524 kvm_inject_gp(vcpu, 0); 509 kvm_inject_gp(vcpu, 0);
525 return; 510 return;
526 } 511 }
527 512
528 if (cr4 & X86_CR4_VMXE) { 513 if (cr4 & X86_CR4_VMXE) {
529 printk(KERN_DEBUG "set_cr4: #GP, setting VMXE\n");
530 kvm_inject_gp(vcpu, 0); 514 kvm_inject_gp(vcpu, 0);
531 return; 515 return;
532 } 516 }
@@ -547,21 +531,16 @@ void kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
547 531
548 if (is_long_mode(vcpu)) { 532 if (is_long_mode(vcpu)) {
549 if (cr3 & CR3_L_MODE_RESERVED_BITS) { 533 if (cr3 & CR3_L_MODE_RESERVED_BITS) {
550 printk(KERN_DEBUG "set_cr3: #GP, reserved bits\n");
551 kvm_inject_gp(vcpu, 0); 534 kvm_inject_gp(vcpu, 0);
552 return; 535 return;
553 } 536 }
554 } else { 537 } else {
555 if (is_pae(vcpu)) { 538 if (is_pae(vcpu)) {
556 if (cr3 & CR3_PAE_RESERVED_BITS) { 539 if (cr3 & CR3_PAE_RESERVED_BITS) {
557 printk(KERN_DEBUG
558 "set_cr3: #GP, reserved bits\n");
559 kvm_inject_gp(vcpu, 0); 540 kvm_inject_gp(vcpu, 0);
560 return; 541 return;
561 } 542 }
562 if (is_paging(vcpu) && !load_pdptrs(vcpu, cr3)) { 543 if (is_paging(vcpu) && !load_pdptrs(vcpu, cr3)) {
563 printk(KERN_DEBUG "set_cr3: #GP, pdptrs "
564 "reserved bits\n");
565 kvm_inject_gp(vcpu, 0); 544 kvm_inject_gp(vcpu, 0);
566 return; 545 return;
567 } 546 }
@@ -593,7 +572,6 @@ EXPORT_SYMBOL_GPL(kvm_set_cr3);
593void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr8) 572void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr8)
594{ 573{
595 if (cr8 & CR8_RESERVED_BITS) { 574 if (cr8 & CR8_RESERVED_BITS) {
596 printk(KERN_DEBUG "set_cr8: #GP, reserved bits 0x%lx\n", cr8);
597 kvm_inject_gp(vcpu, 0); 575 kvm_inject_gp(vcpu, 0);
598 return; 576 return;
599 } 577 }
@@ -649,15 +627,12 @@ static u32 emulated_msrs[] = {
649static void set_efer(struct kvm_vcpu *vcpu, u64 efer) 627static void set_efer(struct kvm_vcpu *vcpu, u64 efer)
650{ 628{
651 if (efer & efer_reserved_bits) { 629 if (efer & efer_reserved_bits) {
652 printk(KERN_DEBUG "set_efer: 0x%llx #GP, reserved bits\n",
653 efer);
654 kvm_inject_gp(vcpu, 0); 630 kvm_inject_gp(vcpu, 0);
655 return; 631 return;
656 } 632 }
657 633
658 if (is_paging(vcpu) 634 if (is_paging(vcpu)
659 && (vcpu->arch.efer & EFER_LME) != (efer & EFER_LME)) { 635 && (vcpu->arch.efer & EFER_LME) != (efer & EFER_LME)) {
660 printk(KERN_DEBUG "set_efer: #GP, change LME while paging\n");
661 kvm_inject_gp(vcpu, 0); 636 kvm_inject_gp(vcpu, 0);
662 return; 637 return;
663 } 638 }
@@ -667,7 +642,6 @@ static void set_efer(struct kvm_vcpu *vcpu, u64 efer)
667 642
668 feat = kvm_find_cpuid_entry(vcpu, 0x80000001, 0); 643 feat = kvm_find_cpuid_entry(vcpu, 0x80000001, 0);
669 if (!feat || !(feat->edx & bit(X86_FEATURE_FXSR_OPT))) { 644 if (!feat || !(feat->edx & bit(X86_FEATURE_FXSR_OPT))) {
670 printk(KERN_DEBUG "set_efer: #GP, enable FFXSR w/o CPUID capability\n");
671 kvm_inject_gp(vcpu, 0); 645 kvm_inject_gp(vcpu, 0);
672 return; 646 return;
673 } 647 }
@@ -678,7 +652,6 @@ static void set_efer(struct kvm_vcpu *vcpu, u64 efer)
678 652
679 feat = kvm_find_cpuid_entry(vcpu, 0x80000001, 0); 653 feat = kvm_find_cpuid_entry(vcpu, 0x80000001, 0);
680 if (!feat || !(feat->ecx & bit(X86_FEATURE_SVM))) { 654 if (!feat || !(feat->ecx & bit(X86_FEATURE_SVM))) {
681 printk(KERN_DEBUG "set_efer: #GP, enable SVM w/o SVM\n");
682 kvm_inject_gp(vcpu, 0); 655 kvm_inject_gp(vcpu, 0);
683 return; 656 return;
684 } 657 }
@@ -967,9 +940,13 @@ static int set_msr_mce(struct kvm_vcpu *vcpu, u32 msr, u64 data)
967 if (msr >= MSR_IA32_MC0_CTL && 940 if (msr >= MSR_IA32_MC0_CTL &&
968 msr < MSR_IA32_MC0_CTL + 4 * bank_num) { 941 msr < MSR_IA32_MC0_CTL + 4 * bank_num) {
969 u32 offset = msr - MSR_IA32_MC0_CTL; 942 u32 offset = msr - MSR_IA32_MC0_CTL;
970 /* only 0 or all 1s can be written to IA32_MCi_CTL */ 943 /* only 0 or all 1s can be written to IA32_MCi_CTL
944 * some Linux kernels though clear bit 10 in bank 4 to
945 * workaround a BIOS/GART TBL issue on AMD K8s, ignore
946 * this to avoid an uncatched #GP in the guest
947 */
971 if ((offset & 0x3) == 0 && 948 if ((offset & 0x3) == 0 &&
972 data != 0 && data != ~(u64)0) 949 data != 0 && (data | (1 << 10)) != ~(u64)0)
973 return -1; 950 return -1;
974 vcpu->arch.mce_banks[offset] = data; 951 vcpu->arch.mce_banks[offset] = data;
975 break; 952 break;
@@ -2635,8 +2612,9 @@ static int kvm_vm_ioctl_reinject(struct kvm *kvm,
2635int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, 2612int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
2636 struct kvm_dirty_log *log) 2613 struct kvm_dirty_log *log)
2637{ 2614{
2638 int r, n, i; 2615 int r, i;
2639 struct kvm_memory_slot *memslot; 2616 struct kvm_memory_slot *memslot;
2617 unsigned long n;
2640 unsigned long is_dirty = 0; 2618 unsigned long is_dirty = 0;
2641 unsigned long *dirty_bitmap = NULL; 2619 unsigned long *dirty_bitmap = NULL;
2642 2620
@@ -2651,7 +2629,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
2651 if (!memslot->dirty_bitmap) 2629 if (!memslot->dirty_bitmap)
2652 goto out; 2630 goto out;
2653 2631
2654 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 2632 n = kvm_dirty_bitmap_bytes(memslot);
2655 2633
2656 r = -ENOMEM; 2634 r = -ENOMEM;
2657 dirty_bitmap = vmalloc(n); 2635 dirty_bitmap = vmalloc(n);
@@ -4483,7 +4461,9 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
4483 kvm_set_cr8(vcpu, kvm_run->cr8); 4461 kvm_set_cr8(vcpu, kvm_run->cr8);
4484 4462
4485 if (vcpu->arch.pio.cur_count) { 4463 if (vcpu->arch.pio.cur_count) {
4464 vcpu->srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
4486 r = complete_pio(vcpu); 4465 r = complete_pio(vcpu);
4466 srcu_read_unlock(&vcpu->kvm->srcu, vcpu->srcu_idx);
4487 if (r) 4467 if (r)
4488 goto out; 4468 goto out;
4489 } 4469 }
@@ -5146,6 +5126,7 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason)
5146 int ret = 0; 5126 int ret = 0;
5147 u32 old_tss_base = get_segment_base(vcpu, VCPU_SREG_TR); 5127 u32 old_tss_base = get_segment_base(vcpu, VCPU_SREG_TR);
5148 u16 old_tss_sel = get_segment_selector(vcpu, VCPU_SREG_TR); 5128 u16 old_tss_sel = get_segment_selector(vcpu, VCPU_SREG_TR);
5129 u32 desc_limit;
5149 5130
5150 old_tss_base = kvm_mmu_gva_to_gpa_write(vcpu, old_tss_base, NULL); 5131 old_tss_base = kvm_mmu_gva_to_gpa_write(vcpu, old_tss_base, NULL);
5151 5132
@@ -5168,7 +5149,10 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason)
5168 } 5149 }
5169 } 5150 }
5170 5151
5171 if (!nseg_desc.p || get_desc_limit(&nseg_desc) < 0x67) { 5152 desc_limit = get_desc_limit(&nseg_desc);
5153 if (!nseg_desc.p ||
5154 ((desc_limit < 0x67 && (nseg_desc.type & 8)) ||
5155 desc_limit < 0x2b)) {
5172 kvm_queue_exception_e(vcpu, TS_VECTOR, tss_selector & 0xfffc); 5156 kvm_queue_exception_e(vcpu, TS_VECTOR, tss_selector & 0xfffc);
5173 return 1; 5157 return 1;
5174 } 5158 }
diff --git a/arch/x86/lib/rwsem_64.S b/arch/x86/lib/rwsem_64.S
index 15acecf0d7aa..41fcf00e49df 100644
--- a/arch/x86/lib/rwsem_64.S
+++ b/arch/x86/lib/rwsem_64.S
@@ -60,7 +60,7 @@ ENTRY(call_rwsem_down_write_failed)
60 ENDPROC(call_rwsem_down_write_failed) 60 ENDPROC(call_rwsem_down_write_failed)
61 61
62ENTRY(call_rwsem_wake) 62ENTRY(call_rwsem_wake)
63 decw %dx /* do nothing if still outstanding active readers */ 63 decl %edx /* do nothing if still outstanding active readers */
64 jnz 1f 64 jnz 1f
65 save_common_regs 65 save_common_regs
66 movq %rax,%rdi 66 movq %rax,%rdi
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 5eb1ba74a3a9..12e4d2d3c110 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -448,6 +448,20 @@ static inline void __init early_clear_fixmap(enum fixed_addresses idx)
448static void __iomem *prev_map[FIX_BTMAPS_SLOTS] __initdata; 448static void __iomem *prev_map[FIX_BTMAPS_SLOTS] __initdata;
449static unsigned long prev_size[FIX_BTMAPS_SLOTS] __initdata; 449static unsigned long prev_size[FIX_BTMAPS_SLOTS] __initdata;
450 450
451void __init fixup_early_ioremap(void)
452{
453 int i;
454
455 for (i = 0; i < FIX_BTMAPS_SLOTS; i++) {
456 if (prev_map[i]) {
457 WARN_ON(1);
458 break;
459 }
460 }
461
462 early_ioremap_init();
463}
464
451static int __init check_early_ioremap_leak(void) 465static int __init check_early_ioremap_leak(void)
452{ 466{
453 int count = 0; 467 int count = 0;
diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
index 1a8faf09afed..792854003ed3 100644
--- a/arch/x86/mm/pgtable_32.c
+++ b/arch/x86/mm/pgtable_32.c
@@ -18,6 +18,7 @@
18#include <asm/e820.h> 18#include <asm/e820.h>
19#include <asm/tlb.h> 19#include <asm/tlb.h>
20#include <asm/tlbflush.h> 20#include <asm/tlbflush.h>
21#include <asm/io.h>
21 22
22unsigned int __VMALLOC_RESERVE = 128 << 20; 23unsigned int __VMALLOC_RESERVE = 128 << 20;
23 24
@@ -128,6 +129,7 @@ static int __init parse_reservetop(char *arg)
128 129
129 address = memparse(arg, &arg); 130 address = memparse(arg, &arg);
130 reserve_top_address(address); 131 reserve_top_address(address);
132 fixup_early_ioremap();
131 return 0; 133 return 0;
132} 134}
133early_param("reservetop", parse_reservetop); 135early_param("reservetop", parse_reservetop);
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index c7b1ebfb7da7..31930fd30ea9 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -66,14 +66,44 @@ resource_to_addr(struct acpi_resource *resource,
66 struct acpi_resource_address64 *addr) 66 struct acpi_resource_address64 *addr)
67{ 67{
68 acpi_status status; 68 acpi_status status;
69 69 struct acpi_resource_memory24 *memory24;
70 status = acpi_resource_to_address64(resource, addr); 70 struct acpi_resource_memory32 *memory32;
71 if (ACPI_SUCCESS(status) && 71 struct acpi_resource_fixed_memory32 *fixed_memory32;
72 (addr->resource_type == ACPI_MEMORY_RANGE || 72
73 addr->resource_type == ACPI_IO_RANGE) && 73 memset(addr, 0, sizeof(*addr));
74 addr->address_length > 0 && 74 switch (resource->type) {
75 addr->producer_consumer == ACPI_PRODUCER) { 75 case ACPI_RESOURCE_TYPE_MEMORY24:
76 memory24 = &resource->data.memory24;
77 addr->resource_type = ACPI_MEMORY_RANGE;
78 addr->minimum = memory24->minimum;
79 addr->address_length = memory24->address_length;
80 addr->maximum = addr->minimum + addr->address_length - 1;
81 return AE_OK;
82 case ACPI_RESOURCE_TYPE_MEMORY32:
83 memory32 = &resource->data.memory32;
84 addr->resource_type = ACPI_MEMORY_RANGE;
85 addr->minimum = memory32->minimum;
86 addr->address_length = memory32->address_length;
87 addr->maximum = addr->minimum + addr->address_length - 1;
76 return AE_OK; 88 return AE_OK;
89 case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
90 fixed_memory32 = &resource->data.fixed_memory32;
91 addr->resource_type = ACPI_MEMORY_RANGE;
92 addr->minimum = fixed_memory32->address;
93 addr->address_length = fixed_memory32->address_length;
94 addr->maximum = addr->minimum + addr->address_length - 1;
95 return AE_OK;
96 case ACPI_RESOURCE_TYPE_ADDRESS16:
97 case ACPI_RESOURCE_TYPE_ADDRESS32:
98 case ACPI_RESOURCE_TYPE_ADDRESS64:
99 status = acpi_resource_to_address64(resource, addr);
100 if (ACPI_SUCCESS(status) &&
101 (addr->resource_type == ACPI_MEMORY_RANGE ||
102 addr->resource_type == ACPI_IO_RANGE) &&
103 addr->address_length > 0) {
104 return AE_OK;
105 }
106 break;
77 } 107 }
78 return AE_ERROR; 108 return AE_ERROR;
79} 109}
@@ -91,30 +121,6 @@ count_resource(struct acpi_resource *acpi_res, void *data)
91 return AE_OK; 121 return AE_OK;
92} 122}
93 123
94static void
95align_resource(struct acpi_device *bridge, struct resource *res)
96{
97 int align = (res->flags & IORESOURCE_MEM) ? 16 : 4;
98
99 /*
100 * Host bridge windows are not BARs, but the decoders on the PCI side
101 * that claim this address space have starting alignment and length
102 * constraints, so fix any obvious BIOS goofs.
103 */
104 if (!IS_ALIGNED(res->start, align)) {
105 dev_printk(KERN_DEBUG, &bridge->dev,
106 "host bridge window %pR invalid; "
107 "aligning start to %d-byte boundary\n", res, align);
108 res->start &= ~(align - 1);
109 }
110 if (!IS_ALIGNED(res->end + 1, align)) {
111 dev_printk(KERN_DEBUG, &bridge->dev,
112 "host bridge window %pR invalid; "
113 "aligning end to %d-byte boundary\n", res, align);
114 res->end = ALIGN(res->end, align) - 1;
115 }
116}
117
118static acpi_status 124static acpi_status
119setup_resource(struct acpi_resource *acpi_res, void *data) 125setup_resource(struct acpi_resource *acpi_res, void *data)
120{ 126{
@@ -124,7 +130,7 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
124 acpi_status status; 130 acpi_status status;
125 unsigned long flags; 131 unsigned long flags;
126 struct resource *root, *conflict; 132 struct resource *root, *conflict;
127 u64 start, end, max_len; 133 u64 start, end;
128 134
129 status = resource_to_addr(acpi_res, &addr); 135 status = resource_to_addr(acpi_res, &addr);
130 if (!ACPI_SUCCESS(status)) 136 if (!ACPI_SUCCESS(status))
@@ -141,19 +147,8 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
141 } else 147 } else
142 return AE_OK; 148 return AE_OK;
143 149
144 max_len = addr.maximum - addr.minimum + 1;
145 if (addr.address_length > max_len) {
146 dev_printk(KERN_DEBUG, &info->bridge->dev,
147 "host bridge window length %#llx doesn't fit in "
148 "%#llx-%#llx, trimming\n",
149 (unsigned long long) addr.address_length,
150 (unsigned long long) addr.minimum,
151 (unsigned long long) addr.maximum);
152 addr.address_length = max_len;
153 }
154
155 start = addr.minimum + addr.translation_offset; 150 start = addr.minimum + addr.translation_offset;
156 end = start + addr.address_length - 1; 151 end = addr.maximum + addr.translation_offset;
157 152
158 res = &info->res[info->res_num]; 153 res = &info->res[info->res_num];
159 res->name = info->name; 154 res->name = info->name;
@@ -161,7 +156,6 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
161 res->start = start; 156 res->start = start;
162 res->end = end; 157 res->end = end;
163 res->child = NULL; 158 res->child = NULL;
164 align_resource(info->bridge, res);
165 159
166 if (!pci_use_crs) { 160 if (!pci_use_crs) {
167 dev_printk(KERN_DEBUG, &info->bridge->dev, 161 dev_printk(KERN_DEBUG, &info->bridge->dev,
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index 46fd43f79103..97da2ba9344b 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -72,6 +72,9 @@ pcibios_align_resource(void *data, const struct resource *res,
72 return start; 72 return start;
73 if (start & 0x300) 73 if (start & 0x300)
74 start = (start + 0x3ff) & ~0x3ff; 74 start = (start + 0x3ff) & ~0x3ff;
75 } else if (res->flags & IORESOURCE_MEM) {
76 if (start < BIOS_END)
77 start = BIOS_END;
75 } 78 }
76 return start; 79 return start;
77} 80}
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 5fe03def34b2..2cc682b860ea 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -286,16 +286,16 @@ done:
286static struct cgroup_subsys_state * 286static struct cgroup_subsys_state *
287blkiocg_create(struct cgroup_subsys *subsys, struct cgroup *cgroup) 287blkiocg_create(struct cgroup_subsys *subsys, struct cgroup *cgroup)
288{ 288{
289 struct blkio_cgroup *blkcg, *parent_blkcg; 289 struct blkio_cgroup *blkcg;
290 struct cgroup *parent = cgroup->parent;
290 291
291 if (!cgroup->parent) { 292 if (!parent) {
292 blkcg = &blkio_root_cgroup; 293 blkcg = &blkio_root_cgroup;
293 goto done; 294 goto done;
294 } 295 }
295 296
296 /* Currently we do not support hierarchy deeper than two level (0,1) */ 297 /* Currently we do not support hierarchy deeper than two level (0,1) */
297 parent_blkcg = cgroup_to_blkio_cgroup(cgroup->parent); 298 if (parent != cgroup->top_cgroup)
298 if (css_depth(&parent_blkcg->css) > 0)
299 return ERR_PTR(-EINVAL); 299 return ERR_PTR(-EINVAL);
300 300
301 blkcg = kzalloc(sizeof(*blkcg), GFP_KERNEL); 301 blkcg = kzalloc(sizeof(*blkcg), GFP_KERNEL);
diff --git a/block/blk-timeout.c b/block/blk-timeout.c
index 1ba7e0aca878..4f0c06c7a338 100644
--- a/block/blk-timeout.c
+++ b/block/blk-timeout.c
@@ -109,6 +109,7 @@ void blk_rq_timed_out_timer(unsigned long data)
109 struct request_queue *q = (struct request_queue *) data; 109 struct request_queue *q = (struct request_queue *) data;
110 unsigned long flags, next = 0; 110 unsigned long flags, next = 0;
111 struct request *rq, *tmp; 111 struct request *rq, *tmp;
112 int next_set = 0;
112 113
113 spin_lock_irqsave(q->queue_lock, flags); 114 spin_lock_irqsave(q->queue_lock, flags);
114 115
@@ -122,16 +123,13 @@ void blk_rq_timed_out_timer(unsigned long data)
122 if (blk_mark_rq_complete(rq)) 123 if (blk_mark_rq_complete(rq))
123 continue; 124 continue;
124 blk_rq_timed_out(rq); 125 blk_rq_timed_out(rq);
125 } else if (!next || time_after(next, rq->deadline)) 126 } else if (!next_set || time_after(next, rq->deadline)) {
126 next = rq->deadline; 127 next = rq->deadline;
128 next_set = 1;
129 }
127 } 130 }
128 131
129 /* 132 if (next_set)
130 * next can never be 0 here with the list non-empty, since we always
131 * bump ->deadline to 1 so we can detect if the timer was ever added
132 * or not. See comment in blk_add_timer()
133 */
134 if (next)
135 mod_timer(&q->timeout, round_jiffies_up(next)); 133 mod_timer(&q->timeout, round_jiffies_up(next));
136 134
137 spin_unlock_irqrestore(q->queue_lock, flags); 135 spin_unlock_irqrestore(q->queue_lock, flags);
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 838834be115b..5f127cfb2e92 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -3694,8 +3694,10 @@ static void *cfq_init_queue(struct request_queue *q)
3694 * to make sure that cfq_put_cfqg() does not try to kfree root group 3694 * to make sure that cfq_put_cfqg() does not try to kfree root group
3695 */ 3695 */
3696 atomic_set(&cfqg->ref, 1); 3696 atomic_set(&cfqg->ref, 1);
3697 rcu_read_lock();
3697 blkiocg_add_blkio_group(&blkio_root_cgroup, &cfqg->blkg, (void *)cfqd, 3698 blkiocg_add_blkio_group(&blkio_root_cgroup, &cfqg->blkg, (void *)cfqd,
3698 0); 3699 0);
3700 rcu_read_unlock();
3699#endif 3701#endif
3700 /* 3702 /*
3701 * Not strictly needed (since RB_ROOT just clears the node and we 3703 * Not strictly needed (since RB_ROOT just clears the node and we
diff --git a/crypto/async_tx/async_raid6_recov.c b/crypto/async_tx/async_raid6_recov.c
index 943f2abac9b4..ce038d861eb9 100644
--- a/crypto/async_tx/async_raid6_recov.c
+++ b/crypto/async_tx/async_raid6_recov.c
@@ -324,6 +324,7 @@ struct dma_async_tx_descriptor *
324async_raid6_2data_recov(int disks, size_t bytes, int faila, int failb, 324async_raid6_2data_recov(int disks, size_t bytes, int faila, int failb,
325 struct page **blocks, struct async_submit_ctl *submit) 325 struct page **blocks, struct async_submit_ctl *submit)
326{ 326{
327 void *scribble = submit->scribble;
327 int non_zero_srcs, i; 328 int non_zero_srcs, i;
328 329
329 BUG_ON(faila == failb); 330 BUG_ON(faila == failb);
@@ -332,11 +333,13 @@ async_raid6_2data_recov(int disks, size_t bytes, int faila, int failb,
332 333
333 pr_debug("%s: disks: %d len: %zu\n", __func__, disks, bytes); 334 pr_debug("%s: disks: %d len: %zu\n", __func__, disks, bytes);
334 335
335 /* we need to preserve the contents of 'blocks' for the async 336 /* if a dma resource is not available or a scribble buffer is not
336 * case, so punt to synchronous if a scribble buffer is not available 337 * available punt to the synchronous path. In the 'dma not
338 * available' case be sure to use the scribble buffer to
339 * preserve the content of 'blocks' as the caller intended.
337 */ 340 */
338 if (!submit->scribble) { 341 if (!async_dma_find_channel(DMA_PQ) || !scribble) {
339 void **ptrs = (void **) blocks; 342 void **ptrs = scribble ? scribble : (void **) blocks;
340 343
341 async_tx_quiesce(&submit->depend_tx); 344 async_tx_quiesce(&submit->depend_tx);
342 for (i = 0; i < disks; i++) 345 for (i = 0; i < disks; i++)
@@ -406,11 +409,13 @@ async_raid6_datap_recov(int disks, size_t bytes, int faila,
406 409
407 pr_debug("%s: disks: %d len: %zu\n", __func__, disks, bytes); 410 pr_debug("%s: disks: %d len: %zu\n", __func__, disks, bytes);
408 411
409 /* we need to preserve the contents of 'blocks' for the async 412 /* if a dma resource is not available or a scribble buffer is not
410 * case, so punt to synchronous if a scribble buffer is not available 413 * available punt to the synchronous path. In the 'dma not
414 * available' case be sure to use the scribble buffer to
415 * preserve the content of 'blocks' as the caller intended.
411 */ 416 */
412 if (!scribble) { 417 if (!async_dma_find_channel(DMA_PQ) || !scribble) {
413 void **ptrs = (void **) blocks; 418 void **ptrs = scribble ? scribble : (void **) blocks;
414 419
415 async_tx_quiesce(&submit->depend_tx); 420 async_tx_quiesce(&submit->depend_tx);
416 for (i = 0; i < disks; i++) 421 for (i = 0; i < disks; i++)
diff --git a/crypto/authenc.c b/crypto/authenc.c
index 2bb7348d8d55..05eb32e0d949 100644
--- a/crypto/authenc.c
+++ b/crypto/authenc.c
@@ -46,6 +46,12 @@ struct authenc_request_ctx {
46 char tail[]; 46 char tail[];
47}; 47};
48 48
49static void authenc_request_complete(struct aead_request *req, int err)
50{
51 if (err != -EINPROGRESS)
52 aead_request_complete(req, err);
53}
54
49static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key, 55static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key,
50 unsigned int keylen) 56 unsigned int keylen)
51{ 57{
@@ -142,7 +148,7 @@ static void authenc_geniv_ahash_update_done(struct crypto_async_request *areq,
142 crypto_aead_authsize(authenc), 1); 148 crypto_aead_authsize(authenc), 1);
143 149
144out: 150out:
145 aead_request_complete(req, err); 151 authenc_request_complete(req, err);
146} 152}
147 153
148static void authenc_geniv_ahash_done(struct crypto_async_request *areq, int err) 154static void authenc_geniv_ahash_done(struct crypto_async_request *areq, int err)
@@ -208,7 +214,7 @@ static void authenc_verify_ahash_update_done(struct crypto_async_request *areq,
208 err = crypto_ablkcipher_decrypt(abreq); 214 err = crypto_ablkcipher_decrypt(abreq);
209 215
210out: 216out:
211 aead_request_complete(req, err); 217 authenc_request_complete(req, err);
212} 218}
213 219
214static void authenc_verify_ahash_done(struct crypto_async_request *areq, 220static void authenc_verify_ahash_done(struct crypto_async_request *areq,
@@ -245,7 +251,7 @@ static void authenc_verify_ahash_done(struct crypto_async_request *areq,
245 err = crypto_ablkcipher_decrypt(abreq); 251 err = crypto_ablkcipher_decrypt(abreq);
246 252
247out: 253out:
248 aead_request_complete(req, err); 254 authenc_request_complete(req, err);
249} 255}
250 256
251static u8 *crypto_authenc_ahash_fb(struct aead_request *req, unsigned int flags) 257static u8 *crypto_authenc_ahash_fb(struct aead_request *req, unsigned int flags)
@@ -379,7 +385,7 @@ static void crypto_authenc_encrypt_done(struct crypto_async_request *req,
379 err = crypto_authenc_genicv(areq, iv, 0); 385 err = crypto_authenc_genicv(areq, iv, 0);
380 } 386 }
381 387
382 aead_request_complete(areq, err); 388 authenc_request_complete(areq, err);
383} 389}
384 390
385static int crypto_authenc_encrypt(struct aead_request *req) 391static int crypto_authenc_encrypt(struct aead_request *req)
@@ -420,7 +426,7 @@ static void crypto_authenc_givencrypt_done(struct crypto_async_request *req,
420 err = crypto_authenc_genicv(areq, greq->giv, 0); 426 err = crypto_authenc_genicv(areq, greq->giv, 0);
421 } 427 }
422 428
423 aead_request_complete(areq, err); 429 authenc_request_complete(areq, err);
424} 430}
425 431
426static int crypto_authenc_givencrypt(struct aead_givcrypt_request *req) 432static int crypto_authenc_givencrypt(struct aead_givcrypt_request *req)
diff --git a/drivers/Makefile b/drivers/Makefile
index 34f1e1064dbc..f42a03029b7c 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -17,6 +17,7 @@ obj-$(CONFIG_SFI) += sfi/
17obj-$(CONFIG_PNP) += pnp/ 17obj-$(CONFIG_PNP) += pnp/
18obj-$(CONFIG_ARM_AMBA) += amba/ 18obj-$(CONFIG_ARM_AMBA) += amba/
19 19
20obj-$(CONFIG_VIRTIO) += virtio/
20obj-$(CONFIG_XEN) += xen/ 21obj-$(CONFIG_XEN) += xen/
21 22
22# regulators early, since some subsystems rely on them to initialize 23# regulators early, since some subsystems rely on them to initialize
@@ -108,7 +109,6 @@ obj-$(CONFIG_PPC_PS3) += ps3/
108obj-$(CONFIG_OF) += of/ 109obj-$(CONFIG_OF) += of/
109obj-$(CONFIG_SSB) += ssb/ 110obj-$(CONFIG_SSB) += ssb/
110obj-$(CONFIG_VHOST_NET) += vhost/ 111obj-$(CONFIG_VHOST_NET) += vhost/
111obj-$(CONFIG_VIRTIO) += virtio/
112obj-$(CONFIG_VLYNQ) += vlynq/ 112obj-$(CONFIG_VLYNQ) += vlynq/
113obj-$(CONFIG_STAGING) += staging/ 113obj-$(CONFIG_STAGING) += staging/
114obj-y += platform/ 114obj-y += platform/
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
index 19dacfd43163..62122134693b 100644
--- a/drivers/acpi/acpi_pad.c
+++ b/drivers/acpi/acpi_pad.c
@@ -31,7 +31,7 @@
31#include <acpi/acpi_bus.h> 31#include <acpi/acpi_bus.h>
32#include <acpi/acpi_drivers.h> 32#include <acpi/acpi_drivers.h>
33 33
34#define ACPI_PROCESSOR_AGGREGATOR_CLASS "processor_aggregator" 34#define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad"
35#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator" 35#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
36#define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80 36#define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80
37static DEFINE_MUTEX(isolated_cpus_lock); 37static DEFINE_MUTEX(isolated_cpus_lock);
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 37132dc2da03..743576bf1bd7 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -527,7 +527,7 @@ int acpi_bus_generate_proc_event4(const char *device_class, const char *bus_id,
527 if (!event_is_open) 527 if (!event_is_open)
528 return 0; 528 return 0;
529 529
530 event = kmalloc(sizeof(struct acpi_bus_event), GFP_ATOMIC); 530 event = kzalloc(sizeof(struct acpi_bus_event), GFP_ATOMIC);
531 if (!event) 531 if (!event)
532 return -ENOMEM; 532 return -ENOMEM;
533 533
diff --git a/drivers/acpi/hest.c b/drivers/acpi/hest.c
index 4bb18c980ac6..1c527a192872 100644
--- a/drivers/acpi/hest.c
+++ b/drivers/acpi/hest.c
@@ -123,6 +123,10 @@ int acpi_hest_firmware_first_pci(struct pci_dev *pci)
123{ 123{
124 acpi_status status = AE_NOT_FOUND; 124 acpi_status status = AE_NOT_FOUND;
125 struct acpi_table_header *hest = NULL; 125 struct acpi_table_header *hest = NULL;
126
127 if (acpi_disabled)
128 return 0;
129
126 status = acpi_get_table(ACPI_SIG_HEST, 1, &hest); 130 status = acpi_get_table(ACPI_SIG_HEST, 1, &hest);
127 131
128 if (ACPI_SUCCESS(status)) { 132 if (ACPI_SUCCESS(status)) {
diff --git a/drivers/acpi/power_meter.c b/drivers/acpi/power_meter.c
index e8c32a49f14e..66f67293341e 100644
--- a/drivers/acpi/power_meter.c
+++ b/drivers/acpi/power_meter.c
@@ -35,7 +35,7 @@
35#define ACPI_POWER_METER_NAME "power_meter" 35#define ACPI_POWER_METER_NAME "power_meter"
36ACPI_MODULE_NAME(ACPI_POWER_METER_NAME); 36ACPI_MODULE_NAME(ACPI_POWER_METER_NAME);
37#define ACPI_POWER_METER_DEVICE_NAME "Power Meter" 37#define ACPI_POWER_METER_DEVICE_NAME "Power Meter"
38#define ACPI_POWER_METER_CLASS "power_meter_resource" 38#define ACPI_POWER_METER_CLASS "pwr_meter_resource"
39 39
40#define NUM_SENSORS 17 40#define NUM_SENSORS 17
41 41
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index 36704b887ccf..f8be23b6c129 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -18,7 +18,7 @@
18 18
19#define PREFIX "ACPI: " 19#define PREFIX "ACPI: "
20 20
21#define ACPI_SMB_HC_CLASS "smbus_host_controller" 21#define ACPI_SMB_HC_CLASS "smbus_host_ctl"
22#define ACPI_SMB_HC_DEVICE_NAME "ACPI SMBus HC" 22#define ACPI_SMB_HC_DEVICE_NAME "ACPI SMBus HC"
23 23
24struct acpi_smb_hc { 24struct acpi_smb_hc {
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index f74834a544fd..baa76bbf244a 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -450,6 +450,38 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
450 }, 450 },
451 }, 451 },
452 { 452 {
453 .callback = init_set_sci_en_on_resume,
454 .ident = "Lenovo ThinkPad T410",
455 .matches = {
456 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
457 DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T410"),
458 },
459 },
460 {
461 .callback = init_set_sci_en_on_resume,
462 .ident = "Lenovo ThinkPad T510",
463 .matches = {
464 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
465 DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T510"),
466 },
467 },
468 {
469 .callback = init_set_sci_en_on_resume,
470 .ident = "Lenovo ThinkPad W510",
471 .matches = {
472 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
473 DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W510"),
474 },
475 },
476 {
477 .callback = init_set_sci_en_on_resume,
478 .ident = "Lenovo ThinkPad X201[s]",
479 .matches = {
480 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
481 DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201"),
482 },
483 },
484 {
453 .callback = init_old_suspend_ordering, 485 .callback = init_old_suspend_ordering,
454 .ident = "Panasonic CF51-2L", 486 .ident = "Panasonic CF51-2L",
455 .matches = { 487 .matches = {
@@ -458,6 +490,30 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
458 DMI_MATCH(DMI_BOARD_NAME, "CF51-2L"), 490 DMI_MATCH(DMI_BOARD_NAME, "CF51-2L"),
459 }, 491 },
460 }, 492 },
493 {
494 .callback = init_set_sci_en_on_resume,
495 .ident = "Dell Studio 1558",
496 .matches = {
497 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
498 DMI_MATCH(DMI_PRODUCT_NAME, "Studio 1558"),
499 },
500 },
501 {
502 .callback = init_set_sci_en_on_resume,
503 .ident = "Dell Studio 1557",
504 .matches = {
505 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
506 DMI_MATCH(DMI_PRODUCT_NAME, "Studio 1557"),
507 },
508 },
509 {
510 .callback = init_set_sci_en_on_resume,
511 .ident = "Dell Studio 1555",
512 .matches = {
513 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
514 DMI_MATCH(DMI_PRODUCT_NAME, "Studio 1555"),
515 },
516 },
461 {}, 517 {},
462}; 518};
463#endif /* CONFIG_SUSPEND */ 519#endif /* CONFIG_SUSPEND */
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 9f6cfac0f2cc..228740f356c9 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -879,6 +879,8 @@ static void ata_eh_set_pending(struct ata_port *ap, int fastdrain)
879void ata_qc_schedule_eh(struct ata_queued_cmd *qc) 879void ata_qc_schedule_eh(struct ata_queued_cmd *qc)
880{ 880{
881 struct ata_port *ap = qc->ap; 881 struct ata_port *ap = qc->ap;
882 struct request_queue *q = qc->scsicmd->device->request_queue;
883 unsigned long flags;
882 884
883 WARN_ON(!ap->ops->error_handler); 885 WARN_ON(!ap->ops->error_handler);
884 886
@@ -890,7 +892,9 @@ void ata_qc_schedule_eh(struct ata_queued_cmd *qc)
890 * Note that ATA_QCFLAG_FAILED is unconditionally set after 892 * Note that ATA_QCFLAG_FAILED is unconditionally set after
891 * this function completes. 893 * this function completes.
892 */ 894 */
895 spin_lock_irqsave(q->queue_lock, flags);
893 blk_abort_request(qc->scsicmd->request); 896 blk_abort_request(qc->scsicmd->request);
897 spin_unlock_irqrestore(q->queue_lock, flags);
894} 898}
895 899
896/** 900/**
@@ -1624,6 +1628,7 @@ void ata_eh_analyze_ncq_error(struct ata_link *link)
1624 } 1628 }
1625 1629
1626 /* okay, this error is ours */ 1630 /* okay, this error is ours */
1631 memset(&tf, 0, sizeof(tf));
1627 rc = ata_eh_read_log_10h(dev, &tag, &tf); 1632 rc = ata_eh_read_log_10h(dev, &tag, &tf);
1628 if (rc) { 1633 if (rc) {
1629 ata_link_printk(link, KERN_ERR, "failed to read log page 10h " 1634 ata_link_printk(link, KERN_ERR, "failed to read log page 10h "
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 3c3172d3c34e..d94b8f0bd743 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -424,6 +424,8 @@ static struct pcmcia_device_id pcmcia_devices[] = {
424 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), 424 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420),
425 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), 425 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178),
426 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), 426 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753),
427 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x55d5bffb),
428 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10),
427 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), 429 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e),
428 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), 430 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b),
429 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149), 431 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149),
@@ -444,6 +446,8 @@ static struct pcmcia_device_id pcmcia_devices[] = {
444 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), 446 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
445 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), 447 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2),
446 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), 448 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
449 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x7558f133),
450 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47),
447 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), 451 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852),
448 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), 452 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918),
449 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209), 453 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 67e0fc542249..93d1f9b469d4 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -1695,6 +1695,7 @@ int drbd_send_protocol(struct drbd_conf *mdev)
1695 cf |= CF_DRY_RUN; 1695 cf |= CF_DRY_RUN;
1696 else { 1696 else {
1697 dev_err(DEV, "--dry-run is not supported by peer"); 1697 dev_err(DEV, "--dry-run is not supported by peer");
1698 kfree(p);
1698 return 0; 1699 return 0;
1699 } 1700 }
1700 } 1701 }
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index ed9f1de24a71..3f096e7959b4 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -899,7 +899,8 @@ retry:
899 899
900 drbd_thread_start(&mdev->asender); 900 drbd_thread_start(&mdev->asender);
901 901
902 drbd_send_protocol(mdev); 902 if (!drbd_send_protocol(mdev))
903 return -1;
903 drbd_send_sync_param(mdev, &mdev->sync_conf); 904 drbd_send_sync_param(mdev, &mdev->sync_conf);
904 drbd_send_sizes(mdev, 0); 905 drbd_send_sizes(mdev, 0);
905 drbd_send_uuids(mdev); 906 drbd_send_uuids(mdev);
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index 44bf6d11197e..d48a1dfd7b24 100644
--- a/drivers/block/drbd/drbd_worker.c
+++ b/drivers/block/drbd/drbd_worker.c
@@ -235,7 +235,7 @@ void drbd_endio_pri(struct bio *bio, int error)
235 if (unlikely(error)) { 235 if (unlikely(error)) {
236 what = (bio_data_dir(bio) == WRITE) 236 what = (bio_data_dir(bio) == WRITE)
237 ? write_completed_with_error 237 ? write_completed_with_error
238 : (bio_rw(bio) == READA) 238 : (bio_rw(bio) == READ)
239 ? read_completed_with_error 239 ? read_completed_with_error
240 : read_ahead_completed_with_error; 240 : read_ahead_completed_with_error;
241 } else 241 } else
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index ddf19425245d..8a549db2aa78 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -48,6 +48,7 @@
48#include <linux/module.h> 48#include <linux/module.h>
49#include <linux/types.h> 49#include <linux/types.h>
50#include <linux/kernel.h> 50#include <linux/kernel.h>
51#include <linux/compat.h>
51#include <linux/kthread.h> 52#include <linux/kthread.h>
52#include <linux/errno.h> 53#include <linux/errno.h>
53#include <linux/spinlock.h> 54#include <linux/spinlock.h>
@@ -2984,7 +2985,7 @@ static void pkt_get_status(struct pkt_ctrl_command *ctrl_cmd)
2984 mutex_unlock(&ctl_mutex); 2985 mutex_unlock(&ctl_mutex);
2985} 2986}
2986 2987
2987static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) 2988static long pkt_ctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
2988{ 2989{
2989 void __user *argp = (void __user *)arg; 2990 void __user *argp = (void __user *)arg;
2990 struct pkt_ctrl_command ctrl_cmd; 2991 struct pkt_ctrl_command ctrl_cmd;
@@ -3021,10 +3022,20 @@ static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cm
3021 return ret; 3022 return ret;
3022} 3023}
3023 3024
3025#ifdef CONFIG_COMPAT
3026static long pkt_ctl_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
3027{
3028 return pkt_ctl_ioctl(file, cmd, (unsigned long)compat_ptr(arg));
3029}
3030#endif
3024 3031
3025static const struct file_operations pkt_ctl_fops = { 3032static const struct file_operations pkt_ctl_fops = {
3026 .ioctl = pkt_ctl_ioctl, 3033 .open = nonseekable_open,
3027 .owner = THIS_MODULE, 3034 .unlocked_ioctl = pkt_ctl_ioctl,
3035#ifdef CONFIG_COMPAT
3036 .compat_ioctl = pkt_ctl_compat_ioctl,
3037#endif
3038 .owner = THIS_MODULE,
3028}; 3039};
3029 3040
3030static struct miscdevice pkt_misc = { 3041static struct miscdevice pkt_misc = {
diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c
index 0fa2e4a0835d..c1ab303455cf 100644
--- a/drivers/char/isicom.c
+++ b/drivers/char/isicom.c
@@ -879,8 +879,8 @@ static int isicom_open(struct tty_struct *tty, struct file *filp)
879 if (tport == NULL) 879 if (tport == NULL)
880 return -ENODEV; 880 return -ENODEV;
881 port = container_of(tport, struct isi_port, port); 881 port = container_of(tport, struct isi_port, port);
882 card = &isi_card[BOARD(tty->index)];
883 882
883 tty->driver_data = port;
884 return tty_port_open(tport, tty, filp); 884 return tty_port_open(tport, tty, filp);
885} 885}
886 886
@@ -936,7 +936,12 @@ static void isicom_shutdown(struct tty_port *port)
936static void isicom_close(struct tty_struct *tty, struct file *filp) 936static void isicom_close(struct tty_struct *tty, struct file *filp)
937{ 937{
938 struct isi_port *ip = tty->driver_data; 938 struct isi_port *ip = tty->driver_data;
939 struct tty_port *port = &ip->port; 939 struct tty_port *port;
940
941 if (ip == NULL)
942 return;
943
944 port = &ip->port;
940 if (isicom_paranoia_check(ip, tty->name, "isicom_close")) 945 if (isicom_paranoia_check(ip, tty->name, "isicom_close"))
941 return; 946 return;
942 tty_port_close(port, tty, filp); 947 tty_port_close(port, tty, filp);
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c
index 4cd6c527ee41..4e395c956a09 100644
--- a/drivers/char/istallion.c
+++ b/drivers/char/istallion.c
@@ -827,6 +827,8 @@ static int stli_open(struct tty_struct *tty, struct file *filp)
827 return -ENODEV; 827 return -ENODEV;
828 if (portp->devnr < 1) 828 if (portp->devnr < 1)
829 return -ENODEV; 829 return -ENODEV;
830
831 tty->driver_data = portp;
830 return tty_port_open(&portp->port, tty, filp); 832 return tty_port_open(&portp->port, tty, filp);
831} 833}
832 834
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index 47023053ee85..d2692d443f7b 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -1011,6 +1011,7 @@ static int mxser_open(struct tty_struct *tty, struct file *filp)
1011 if (!info->ioaddr) 1011 if (!info->ioaddr)
1012 return -ENODEV; 1012 return -ENODEV;
1013 1013
1014 tty->driver_data = info;
1014 return tty_port_open(&info->port, tty, filp); 1015 return tty_port_open(&info->port, tty, filp);
1015} 1016}
1016 1017
@@ -1074,7 +1075,7 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
1074 struct mxser_port *info = tty->driver_data; 1075 struct mxser_port *info = tty->driver_data;
1075 struct tty_port *port = &info->port; 1076 struct tty_port *port = &info->port;
1076 1077
1077 if (tty->index == MXSER_PORTS) 1078 if (tty->index == MXSER_PORTS || info == NULL)
1078 return; 1079 return;
1079 if (tty_port_close_start(port, tty, filp) == 0) 1080 if (tty_port_close_start(port, tty, filp) == 0)
1080 return; 1081 return;
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c
index 0a8d1e56c993..b02332a5412f 100644
--- a/drivers/char/riscom8.c
+++ b/drivers/char/riscom8.c
@@ -909,6 +909,7 @@ static int rc_open(struct tty_struct *tty, struct file *filp)
909 if (error) 909 if (error)
910 return error; 910 return error;
911 911
912 tty->driver_data = port;
912 return tty_port_open(&port->port, tty, filp); 913 return tty_port_open(&port->port, tty, filp);
913} 914}
914 915
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c
index 0e511d61f544..6049fd731924 100644
--- a/drivers/char/stallion.c
+++ b/drivers/char/stallion.c
@@ -724,7 +724,6 @@ static int stl_open(struct tty_struct *tty, struct file *filp)
724{ 724{
725 struct stlport *portp; 725 struct stlport *portp;
726 struct stlbrd *brdp; 726 struct stlbrd *brdp;
727 struct tty_port *port;
728 unsigned int minordev, brdnr, panelnr; 727 unsigned int minordev, brdnr, panelnr;
729 int portnr; 728 int portnr;
730 729
@@ -754,7 +753,8 @@ static int stl_open(struct tty_struct *tty, struct file *filp)
754 portp = brdp->panels[panelnr]->ports[portnr]; 753 portp = brdp->panels[panelnr]->ports[portnr];
755 if (portp == NULL) 754 if (portp == NULL)
756 return -ENODEV; 755 return -ENODEV;
757 port = &portp->port; 756
757 tty->driver_data = portp;
758 return tty_port_open(&portp->port, tty, filp); 758 return tty_port_open(&portp->port, tty, filp);
759 759
760} 760}
@@ -841,7 +841,8 @@ static void stl_close(struct tty_struct *tty, struct file *filp)
841 pr_debug("stl_close(tty=%p,filp=%p)\n", tty, filp); 841 pr_debug("stl_close(tty=%p,filp=%p)\n", tty, filp);
842 842
843 portp = tty->driver_data; 843 portp = tty->driver_data;
844 BUG_ON(portp == NULL); 844 if(portp == NULL)
845 return;
845 tty_port_close(&portp->port, tty, filp); 846 tty_port_close(&portp->port, tty, filp);
846} 847}
847 848
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 2d5d575e889d..75d293eeb3ee 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1113,6 +1113,8 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1113 unsigned int cpu = sys_dev->id; 1113 unsigned int cpu = sys_dev->id;
1114 unsigned long flags; 1114 unsigned long flags;
1115 struct cpufreq_policy *data; 1115 struct cpufreq_policy *data;
1116 struct kobject *kobj;
1117 struct completion *cmp;
1116#ifdef CONFIG_SMP 1118#ifdef CONFIG_SMP
1117 struct sys_device *cpu_sys_dev; 1119 struct sys_device *cpu_sys_dev;
1118 unsigned int j; 1120 unsigned int j;
@@ -1141,10 +1143,11 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1141 dprintk("removing link\n"); 1143 dprintk("removing link\n");
1142 cpumask_clear_cpu(cpu, data->cpus); 1144 cpumask_clear_cpu(cpu, data->cpus);
1143 spin_unlock_irqrestore(&cpufreq_driver_lock, flags); 1145 spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
1144 sysfs_remove_link(&sys_dev->kobj, "cpufreq"); 1146 kobj = &sys_dev->kobj;
1145 cpufreq_cpu_put(data); 1147 cpufreq_cpu_put(data);
1146 cpufreq_debug_enable_ratelimit(); 1148 cpufreq_debug_enable_ratelimit();
1147 unlock_policy_rwsem_write(cpu); 1149 unlock_policy_rwsem_write(cpu);
1150 sysfs_remove_link(kobj, "cpufreq");
1148 return 0; 1151 return 0;
1149 } 1152 }
1150#endif 1153#endif
@@ -1181,7 +1184,10 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1181 data->governor->name, CPUFREQ_NAME_LEN); 1184 data->governor->name, CPUFREQ_NAME_LEN);
1182#endif 1185#endif
1183 cpu_sys_dev = get_cpu_sysdev(j); 1186 cpu_sys_dev = get_cpu_sysdev(j);
1184 sysfs_remove_link(&cpu_sys_dev->kobj, "cpufreq"); 1187 kobj = &cpu_sys_dev->kobj;
1188 unlock_policy_rwsem_write(cpu);
1189 sysfs_remove_link(kobj, "cpufreq");
1190 lock_policy_rwsem_write(cpu);
1185 cpufreq_cpu_put(data); 1191 cpufreq_cpu_put(data);
1186 } 1192 }
1187 } 1193 }
@@ -1192,19 +1198,22 @@ static int __cpufreq_remove_dev(struct sys_device *sys_dev)
1192 if (cpufreq_driver->target) 1198 if (cpufreq_driver->target)
1193 __cpufreq_governor(data, CPUFREQ_GOV_STOP); 1199 __cpufreq_governor(data, CPUFREQ_GOV_STOP);
1194 1200
1195 kobject_put(&data->kobj); 1201 kobj = &data->kobj;
1202 cmp = &data->kobj_unregister;
1203 unlock_policy_rwsem_write(cpu);
1204 kobject_put(kobj);
1196 1205
1197 /* we need to make sure that the underlying kobj is actually 1206 /* we need to make sure that the underlying kobj is actually
1198 * not referenced anymore by anybody before we proceed with 1207 * not referenced anymore by anybody before we proceed with
1199 * unloading. 1208 * unloading.
1200 */ 1209 */
1201 dprintk("waiting for dropping of refcount\n"); 1210 dprintk("waiting for dropping of refcount\n");
1202 wait_for_completion(&data->kobj_unregister); 1211 wait_for_completion(cmp);
1203 dprintk("wait complete\n"); 1212 dprintk("wait complete\n");
1204 1213
1214 lock_policy_rwsem_write(cpu);
1205 if (cpufreq_driver->exit) 1215 if (cpufreq_driver->exit)
1206 cpufreq_driver->exit(data); 1216 cpufreq_driver->exit(data);
1207
1208 unlock_policy_rwsem_write(cpu); 1217 unlock_policy_rwsem_write(cpu);
1209 1218
1210 free_cpumask_var(data->related_cpus); 1219 free_cpumask_var(data->related_cpus);
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
index 599a40b25cb0..3a147874a465 100644
--- a/drivers/cpufreq/cpufreq_conservative.c
+++ b/drivers/cpufreq/cpufreq_conservative.c
@@ -444,6 +444,7 @@ static struct attribute_group dbs_attr_group_old = {
444static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info) 444static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
445{ 445{
446 unsigned int load = 0; 446 unsigned int load = 0;
447 unsigned int max_load = 0;
447 unsigned int freq_target; 448 unsigned int freq_target;
448 449
449 struct cpufreq_policy *policy; 450 struct cpufreq_policy *policy;
@@ -501,6 +502,9 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
501 continue; 502 continue;
502 503
503 load = 100 * (wall_time - idle_time) / wall_time; 504 load = 100 * (wall_time - idle_time) / wall_time;
505
506 if (load > max_load)
507 max_load = load;
504 } 508 }
505 509
506 /* 510 /*
@@ -511,7 +515,7 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
511 return; 515 return;
512 516
513 /* Check for frequency increase */ 517 /* Check for frequency increase */
514 if (load > dbs_tuners_ins.up_threshold) { 518 if (max_load > dbs_tuners_ins.up_threshold) {
515 this_dbs_info->down_skip = 0; 519 this_dbs_info->down_skip = 0;
516 520
517 /* if we are already at full speed then break out early */ 521 /* if we are already at full speed then break out early */
@@ -538,7 +542,7 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
538 * can support the current CPU usage without triggering the up 542 * can support the current CPU usage without triggering the up
539 * policy. To be safe, we focus 10 points under the threshold. 543 * policy. To be safe, we focus 10 points under the threshold.
540 */ 544 */
541 if (load < (dbs_tuners_ins.down_threshold - 10)) { 545 if (max_load < (dbs_tuners_ins.down_threshold - 10)) {
542 freq_target = (dbs_tuners_ins.freq_step * policy->max) / 100; 546 freq_target = (dbs_tuners_ins.freq_step * policy->max) / 100;
543 547
544 this_dbs_info->requested_freq -= freq_target; 548 this_dbs_info->requested_freq -= freq_target;
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
index 1aea7157d8ff..f8e57c6303f2 100644
--- a/drivers/cpuidle/governors/menu.c
+++ b/drivers/cpuidle/governors/menu.c
@@ -100,7 +100,6 @@ struct menu_device {
100 int needs_update; 100 int needs_update;
101 101
102 unsigned int expected_us; 102 unsigned int expected_us;
103 unsigned int measured_us;
104 u64 predicted_us; 103 u64 predicted_us;
105 unsigned int exit_us; 104 unsigned int exit_us;
106 unsigned int bucket; 105 unsigned int bucket;
@@ -187,14 +186,14 @@ static int menu_select(struct cpuidle_device *dev)
187 int i; 186 int i;
188 int multiplier; 187 int multiplier;
189 188
190 data->last_state_idx = 0;
191 data->exit_us = 0;
192
193 if (data->needs_update) { 189 if (data->needs_update) {
194 menu_update(dev); 190 menu_update(dev);
195 data->needs_update = 0; 191 data->needs_update = 0;
196 } 192 }
197 193
194 data->last_state_idx = 0;
195 data->exit_us = 0;
196
198 /* Special case when user has set very strict latency requirement */ 197 /* Special case when user has set very strict latency requirement */
199 if (unlikely(latency_req == 0)) 198 if (unlikely(latency_req == 0))
200 return 0; 199 return 0;
@@ -294,7 +293,7 @@ static void menu_update(struct cpuidle_device *dev)
294 new_factor = data->correction_factor[data->bucket] 293 new_factor = data->correction_factor[data->bucket]
295 * (DECAY - 1) / DECAY; 294 * (DECAY - 1) / DECAY;
296 295
297 if (data->expected_us > 0 && data->measured_us < MAX_INTERESTING) 296 if (data->expected_us > 0 && measured_us < MAX_INTERESTING)
298 new_factor += RESOLUTION * measured_us / data->expected_us; 297 new_factor += RESOLUTION * measured_us / data->expected_us;
299 else 298 else
300 /* 299 /*
diff --git a/drivers/dma/shdma.c b/drivers/dma/shdma.c
index 7cc31b3f40d8..6f25a20de99f 100644
--- a/drivers/dma/shdma.c
+++ b/drivers/dma/shdma.c
@@ -290,6 +290,7 @@ static int sh_dmae_alloc_chan_resources(struct dma_chan *chan)
290 struct sh_dmae_chan *sh_chan = to_sh_chan(chan); 290 struct sh_dmae_chan *sh_chan = to_sh_chan(chan);
291 struct sh_desc *desc; 291 struct sh_desc *desc;
292 struct sh_dmae_slave *param = chan->private; 292 struct sh_dmae_slave *param = chan->private;
293 int ret;
293 294
294 pm_runtime_get_sync(sh_chan->dev); 295 pm_runtime_get_sync(sh_chan->dev);
295 296
@@ -301,11 +302,15 @@ static int sh_dmae_alloc_chan_resources(struct dma_chan *chan)
301 struct sh_dmae_slave_config *cfg; 302 struct sh_dmae_slave_config *cfg;
302 303
303 cfg = sh_dmae_find_slave(sh_chan, param->slave_id); 304 cfg = sh_dmae_find_slave(sh_chan, param->slave_id);
304 if (!cfg) 305 if (!cfg) {
305 return -EINVAL; 306 ret = -EINVAL;
307 goto efindslave;
308 }
306 309
307 if (test_and_set_bit(param->slave_id, sh_dmae_slave_used)) 310 if (test_and_set_bit(param->slave_id, sh_dmae_slave_used)) {
308 return -EBUSY; 311 ret = -EBUSY;
312 goto etestused;
313 }
309 314
310 param->config = cfg; 315 param->config = cfg;
311 316
@@ -334,10 +339,20 @@ static int sh_dmae_alloc_chan_resources(struct dma_chan *chan)
334 } 339 }
335 spin_unlock_bh(&sh_chan->desc_lock); 340 spin_unlock_bh(&sh_chan->desc_lock);
336 341
337 if (!sh_chan->descs_allocated) 342 if (!sh_chan->descs_allocated) {
338 pm_runtime_put(sh_chan->dev); 343 ret = -ENOMEM;
344 goto edescalloc;
345 }
339 346
340 return sh_chan->descs_allocated; 347 return sh_chan->descs_allocated;
348
349edescalloc:
350 if (param)
351 clear_bit(param->slave_id, sh_dmae_slave_used);
352etestused:
353efindslave:
354 pm_runtime_put(sh_chan->dev);
355 return ret;
341} 356}
342 357
343/* 358/*
diff --git a/drivers/dma/txx9dmac.c b/drivers/dma/txx9dmac.c
index 3ebc61067e54..75fcf1ac8bb7 100644
--- a/drivers/dma/txx9dmac.c
+++ b/drivers/dma/txx9dmac.c
@@ -1359,3 +1359,5 @@ module_exit(txx9dmac_exit);
1359MODULE_LICENSE("GPL"); 1359MODULE_LICENSE("GPL");
1360MODULE_DESCRIPTION("TXx9 DMA Controller driver"); 1360MODULE_DESCRIPTION("TXx9 DMA Controller driver");
1361MODULE_AUTHOR("Atsushi Nemoto <anemo@mba.ocn.ne.jp>"); 1361MODULE_AUTHOR("Atsushi Nemoto <anemo@mba.ocn.ne.jp>");
1362MODULE_ALIAS("platform:txx9dmac");
1363MODULE_ALIAS("platform:txx9dmac-chan");
diff --git a/drivers/edac/edac_mce_amd.c b/drivers/edac/edac_mce_amd.c
index f5b6d9fe4def..97e64bcdbc06 100644
--- a/drivers/edac/edac_mce_amd.c
+++ b/drivers/edac/edac_mce_amd.c
@@ -294,7 +294,6 @@ wrong_ls_mce:
294void amd_decode_nb_mce(int node_id, struct err_regs *regs, int handle_errors) 294void amd_decode_nb_mce(int node_id, struct err_regs *regs, int handle_errors)
295{ 295{
296 u32 ec = ERROR_CODE(regs->nbsl); 296 u32 ec = ERROR_CODE(regs->nbsl);
297 u32 xec = EXT_ERROR_CODE(regs->nbsl);
298 297
299 if (!handle_errors) 298 if (!handle_errors)
300 return; 299 return;
@@ -324,7 +323,7 @@ void amd_decode_nb_mce(int node_id, struct err_regs *regs, int handle_errors)
324 pr_cont("\n"); 323 pr_cont("\n");
325 } 324 }
326 325
327 pr_emerg("%s.\n", EXT_ERR_MSG(xec)); 326 pr_emerg("%s.\n", EXT_ERR_MSG(regs->nbsl));
328 327
329 if (BUS_ERROR(ec) && nb_bus_decoder) 328 if (BUS_ERROR(ec) && nb_bus_decoder)
330 nb_bus_decoder(node_id, regs); 329 nb_bus_decoder(node_id, regs);
@@ -374,7 +373,7 @@ static int amd_decode_mce(struct notifier_block *nb, unsigned long val,
374 ((m->status & MCI_STATUS_PCC) ? "yes" : "no")); 373 ((m->status & MCI_STATUS_PCC) ? "yes" : "no"));
375 374
376 /* do the two bits[14:13] together */ 375 /* do the two bits[14:13] together */
377 ecc = m->status & (3ULL << 45); 376 ecc = (m->status >> 45) & 0x3;
378 if (ecc) 377 if (ecc)
379 pr_cont(", %sECC Error", ((ecc == 2) ? "C" : "U")); 378 pr_cont(", %sECC Error", ((ecc == 2) ? "C" : "U"));
380 379
diff --git a/drivers/firewire/core-iso.c b/drivers/firewire/core-iso.c
index 3784a47865b7..8f5aebfb29df 100644
--- a/drivers/firewire/core-iso.c
+++ b/drivers/firewire/core-iso.c
@@ -190,7 +190,7 @@ static int manage_bandwidth(struct fw_card *card, int irm_id, int generation,
190 for (try = 0; try < 5; try++) { 190 for (try = 0; try < 5; try++) {
191 new = allocate ? old - bandwidth : old + bandwidth; 191 new = allocate ? old - bandwidth : old + bandwidth;
192 if (new < 0 || new > BANDWIDTH_AVAILABLE_INITIAL) 192 if (new < 0 || new > BANDWIDTH_AVAILABLE_INITIAL)
193 break; 193 return -EBUSY;
194 194
195 data[0] = cpu_to_be32(old); 195 data[0] = cpu_to_be32(old);
196 data[1] = cpu_to_be32(new); 196 data[1] = cpu_to_be32(new);
@@ -218,7 +218,7 @@ static int manage_channel(struct fw_card *card, int irm_id, int generation,
218 u32 channels_mask, u64 offset, bool allocate, __be32 data[2]) 218 u32 channels_mask, u64 offset, bool allocate, __be32 data[2])
219{ 219{
220 __be32 c, all, old; 220 __be32 c, all, old;
221 int i, retry = 5; 221 int i, ret = -EIO, retry = 5;
222 222
223 old = all = allocate ? cpu_to_be32(~0) : 0; 223 old = all = allocate ? cpu_to_be32(~0) : 0;
224 224
@@ -226,6 +226,8 @@ static int manage_channel(struct fw_card *card, int irm_id, int generation,
226 if (!(channels_mask & 1 << i)) 226 if (!(channels_mask & 1 << i))
227 continue; 227 continue;
228 228
229 ret = -EBUSY;
230
229 c = cpu_to_be32(1 << (31 - i)); 231 c = cpu_to_be32(1 << (31 - i));
230 if ((old & c) != (all & c)) 232 if ((old & c) != (all & c))
231 continue; 233 continue;
@@ -251,12 +253,16 @@ static int manage_channel(struct fw_card *card, int irm_id, int generation,
251 253
252 /* 1394-1995 IRM, fall through to retry. */ 254 /* 1394-1995 IRM, fall through to retry. */
253 default: 255 default:
254 if (retry--) 256 if (retry) {
257 retry--;
255 i--; 258 i--;
259 } else {
260 ret = -EIO;
261 }
256 } 262 }
257 } 263 }
258 264
259 return -EIO; 265 return ret;
260} 266}
261 267
262static void deallocate_channel(struct fw_card *card, int irm_id, 268static void deallocate_channel(struct fw_card *card, int irm_id,
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index 0cf4d7f562c5..94b16e0340ae 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -1158,7 +1158,7 @@ static void handle_local_lock(struct fw_ohci *ohci,
1158 struct fw_packet *packet, u32 csr) 1158 struct fw_packet *packet, u32 csr)
1159{ 1159{
1160 struct fw_packet response; 1160 struct fw_packet response;
1161 int tcode, length, ext_tcode, sel; 1161 int tcode, length, ext_tcode, sel, try;
1162 __be32 *payload, lock_old; 1162 __be32 *payload, lock_old;
1163 u32 lock_arg, lock_data; 1163 u32 lock_arg, lock_data;
1164 1164
@@ -1185,21 +1185,26 @@ static void handle_local_lock(struct fw_ohci *ohci,
1185 reg_write(ohci, OHCI1394_CSRCompareData, lock_arg); 1185 reg_write(ohci, OHCI1394_CSRCompareData, lock_arg);
1186 reg_write(ohci, OHCI1394_CSRControl, sel); 1186 reg_write(ohci, OHCI1394_CSRControl, sel);
1187 1187
1188 if (reg_read(ohci, OHCI1394_CSRControl) & 0x80000000) 1188 for (try = 0; try < 20; try++)
1189 lock_old = cpu_to_be32(reg_read(ohci, OHCI1394_CSRData)); 1189 if (reg_read(ohci, OHCI1394_CSRControl) & 0x80000000) {
1190 else 1190 lock_old = cpu_to_be32(reg_read(ohci,
1191 fw_notify("swap not done yet\n"); 1191 OHCI1394_CSRData));
1192 fw_fill_response(&response, packet->header,
1193 RCODE_COMPLETE,
1194 &lock_old, sizeof(lock_old));
1195 goto out;
1196 }
1197
1198 fw_error("swap not done (CSR lock timeout)\n");
1199 fw_fill_response(&response, packet->header, RCODE_BUSY, NULL, 0);
1192 1200
1193 fw_fill_response(&response, packet->header,
1194 RCODE_COMPLETE, &lock_old, sizeof(lock_old));
1195 out: 1201 out:
1196 fw_core_handle_response(&ohci->card, &response); 1202 fw_core_handle_response(&ohci->card, &response);
1197} 1203}
1198 1204
1199static void handle_local_request(struct context *ctx, struct fw_packet *packet) 1205static void handle_local_request(struct context *ctx, struct fw_packet *packet)
1200{ 1206{
1201 u64 offset; 1207 u64 offset, csr;
1202 u32 csr;
1203 1208
1204 if (ctx == &ctx->ohci->at_request_ctx) { 1209 if (ctx == &ctx->ohci->at_request_ctx) {
1205 packet->ack = ACK_PENDING; 1210 packet->ack = ACK_PENDING;
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 76be229c814d..eb0c3fe44b29 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -416,7 +416,8 @@ static int gpio_setup_irq(struct gpio_desc *desc, struct device *dev,
416 return 0; 416 return 0;
417 417
418free_sd: 418free_sd:
419 sysfs_put(pdesc->value_sd); 419 if (pdesc)
420 sysfs_put(pdesc->value_sd);
420free_id: 421free_id:
421 idr_remove(&pdesc_idr, id); 422 idr_remove(&pdesc_idr, id);
422 desc->flags &= GPIO_FLAGS_MASK; 423 desc->flags &= GPIO_FLAGS_MASK;
diff --git a/drivers/gpio/it8761e_gpio.c b/drivers/gpio/it8761e_gpio.c
index 753219cf993a..41a9388f2fde 100644
--- a/drivers/gpio/it8761e_gpio.c
+++ b/drivers/gpio/it8761e_gpio.c
@@ -80,8 +80,8 @@ static int it8761e_gpio_get(struct gpio_chip *gc, unsigned gpio_num)
80 u16 reg; 80 u16 reg;
81 u8 bit; 81 u8 bit;
82 82
83 bit = gpio_num % 7; 83 bit = gpio_num % 8;
84 reg = (gpio_num >= 7) ? gpio_ba + 1 : gpio_ba; 84 reg = (gpio_num >= 8) ? gpio_ba + 1 : gpio_ba;
85 85
86 return !!(inb(reg) & (1 << bit)); 86 return !!(inb(reg) & (1 << bit));
87} 87}
@@ -91,8 +91,8 @@ static int it8761e_gpio_direction_in(struct gpio_chip *gc, unsigned gpio_num)
91 u8 curr_dirs; 91 u8 curr_dirs;
92 u8 io_reg, bit; 92 u8 io_reg, bit;
93 93
94 bit = gpio_num % 7; 94 bit = gpio_num % 8;
95 io_reg = (gpio_num >= 7) ? GPIO2X_IO : GPIO1X_IO; 95 io_reg = (gpio_num >= 8) ? GPIO2X_IO : GPIO1X_IO;
96 96
97 spin_lock(&sio_lock); 97 spin_lock(&sio_lock);
98 98
@@ -116,8 +116,8 @@ static void it8761e_gpio_set(struct gpio_chip *gc,
116 u8 curr_vals, bit; 116 u8 curr_vals, bit;
117 u16 reg; 117 u16 reg;
118 118
119 bit = gpio_num % 7; 119 bit = gpio_num % 8;
120 reg = (gpio_num >= 7) ? gpio_ba + 1 : gpio_ba; 120 reg = (gpio_num >= 8) ? gpio_ba + 1 : gpio_ba;
121 121
122 spin_lock(&sio_lock); 122 spin_lock(&sio_lock);
123 123
@@ -135,8 +135,8 @@ static int it8761e_gpio_direction_out(struct gpio_chip *gc,
135{ 135{
136 u8 curr_dirs, io_reg, bit; 136 u8 curr_dirs, io_reg, bit;
137 137
138 bit = gpio_num % 7; 138 bit = gpio_num % 8;
139 io_reg = (gpio_num >= 7) ? GPIO2X_IO : GPIO1X_IO; 139 io_reg = (gpio_num >= 8) ? GPIO2X_IO : GPIO1X_IO;
140 140
141 it8761e_gpio_set(gc, gpio_num, val); 141 it8761e_gpio_set(gc, gpio_num, val);
142 142
@@ -200,7 +200,7 @@ static int __init it8761e_gpio_init(void)
200 return -EBUSY; 200 return -EBUSY;
201 201
202 it8761e_gpio_chip.base = -1; 202 it8761e_gpio_chip.base = -1;
203 it8761e_gpio_chip.ngpio = 14; 203 it8761e_gpio_chip.ngpio = 16;
204 204
205 err = gpiochip_add(&it8761e_gpio_chip); 205 err = gpiochip_add(&it8761e_gpio_chip);
206 if (err < 0) 206 if (err < 0)
diff --git a/drivers/gpio/pca953x.c b/drivers/gpio/pca953x.c
index 7d521e1d17e1..b827c976dc62 100644
--- a/drivers/gpio/pca953x.c
+++ b/drivers/gpio/pca953x.c
@@ -252,6 +252,18 @@ static void pca953x_irq_bus_lock(unsigned int irq)
252static void pca953x_irq_bus_sync_unlock(unsigned int irq) 252static void pca953x_irq_bus_sync_unlock(unsigned int irq)
253{ 253{
254 struct pca953x_chip *chip = get_irq_chip_data(irq); 254 struct pca953x_chip *chip = get_irq_chip_data(irq);
255 uint16_t new_irqs;
256 uint16_t level;
257
258 /* Look for any newly setup interrupt */
259 new_irqs = chip->irq_trig_fall | chip->irq_trig_raise;
260 new_irqs &= ~chip->reg_direction;
261
262 while (new_irqs) {
263 level = __ffs(new_irqs);
264 pca953x_gpio_direction_input(&chip->gpio_chip, level);
265 new_irqs &= ~(1 << level);
266 }
255 267
256 mutex_unlock(&chip->irq_lock); 268 mutex_unlock(&chip->irq_lock);
257} 269}
@@ -278,7 +290,7 @@ static int pca953x_irq_set_type(unsigned int irq, unsigned int type)
278 else 290 else
279 chip->irq_trig_raise &= ~mask; 291 chip->irq_trig_raise &= ~mask;
280 292
281 return pca953x_gpio_direction_input(&chip->gpio_chip, level); 293 return 0;
282} 294}
283 295
284static struct irq_chip pca953x_irq_chip = { 296static struct irq_chip pca953x_irq_chip = {
diff --git a/drivers/gpio/pl061.c b/drivers/gpio/pl061.c
index 5ad8f778ced4..105701a1f05b 100644
--- a/drivers/gpio/pl061.c
+++ b/drivers/gpio/pl061.c
@@ -91,6 +91,12 @@ static int pl061_direction_output(struct gpio_chip *gc, unsigned offset,
91 gpiodir = readb(chip->base + GPIODIR); 91 gpiodir = readb(chip->base + GPIODIR);
92 gpiodir |= 1 << offset; 92 gpiodir |= 1 << offset;
93 writeb(gpiodir, chip->base + GPIODIR); 93 writeb(gpiodir, chip->base + GPIODIR);
94
95 /*
96 * gpio value is set again, because pl061 doesn't allow to set value of
97 * a gpio pin before configuring it in OUT mode.
98 */
99 writeb(!!value << offset, chip->base + (1 << (offset + 2)));
94 spin_unlock_irqrestore(&chip->lock, flags); 100 spin_unlock_irqrestore(&chip->lock, flags);
95 101
96 return 0; 102 return 0;
@@ -183,7 +189,7 @@ static int pl061_irq_type(unsigned irq, unsigned trigger)
183 gpioibe &= ~(1 << offset); 189 gpioibe &= ~(1 << offset);
184 if (trigger & IRQ_TYPE_EDGE_RISING) 190 if (trigger & IRQ_TYPE_EDGE_RISING)
185 gpioiev |= 1 << offset; 191 gpioiev |= 1 << offset;
186 else 192 else if (trigger & IRQ_TYPE_EDGE_FALLING)
187 gpioiev &= ~(1 << offset); 193 gpioiev &= ~(1 << offset);
188 } 194 }
189 writeb(gpioibe, chip->base + GPIOIBE); 195 writeb(gpioibe, chip->base + GPIOIBE);
@@ -204,7 +210,7 @@ static struct irq_chip pl061_irqchip = {
204 210
205static void pl061_irq_handler(unsigned irq, struct irq_desc *desc) 211static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
206{ 212{
207 struct list_head *chip_list = get_irq_chip_data(irq); 213 struct list_head *chip_list = get_irq_data(irq);
208 struct list_head *ptr; 214 struct list_head *ptr;
209 struct pl061_gpio *chip; 215 struct pl061_gpio *chip;
210 216
@@ -297,9 +303,9 @@ static int __init pl061_probe(struct amba_device *dev, struct amba_id *id)
297 goto iounmap; 303 goto iounmap;
298 } 304 }
299 INIT_LIST_HEAD(chip_list); 305 INIT_LIST_HEAD(chip_list);
300 set_irq_chip_data(irq, chip_list); 306 set_irq_data(irq, chip_list);
301 } else 307 } else
302 chip_list = get_irq_chip_data(irq); 308 chip_list = get_irq_data(irq);
303 list_add(&chip->list, chip_list); 309 list_add(&chip->list, chip_list);
304 310
305 for (i = 0; i < PL061_GPIO_NR; i++) { 311 for (i = 0; i < PL061_GPIO_NR; i++) {
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 3bd872761567..a263b7070fc6 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -476,6 +476,7 @@ void drm_vblank_off(struct drm_device *dev, int crtc)
476 unsigned long irqflags; 476 unsigned long irqflags;
477 477
478 spin_lock_irqsave(&dev->vbl_lock, irqflags); 478 spin_lock_irqsave(&dev->vbl_lock, irqflags);
479 dev->driver->disable_vblank(dev, crtc);
479 DRM_WAKEUP(&dev->vbl_queue[crtc]); 480 DRM_WAKEUP(&dev->vbl_queue[crtc]);
480 dev->vblank_enabled[crtc] = 0; 481 dev->vblank_enabled[crtc] = 0;
481 dev->last_vblank[crtc] = dev->driver->get_vblank_counter(dev, crtc); 482 dev->last_vblank[crtc] = dev->driver->get_vblank_counter(dev, crtc);
diff --git a/drivers/gpu/drm/drm_memory.c b/drivers/gpu/drm/drm_memory.c
index e4865f99989c..7732268eced2 100644
--- a/drivers/gpu/drm/drm_memory.c
+++ b/drivers/gpu/drm/drm_memory.c
@@ -77,7 +77,7 @@ static void *agp_remap(unsigned long offset, unsigned long size,
77 && (agpmem->bound + (agpmem->pages << PAGE_SHIFT)) >= 77 && (agpmem->bound + (agpmem->pages << PAGE_SHIFT)) >=
78 (offset + size)) 78 (offset + size))
79 break; 79 break;
80 if (!agpmem) 80 if (&agpmem->head == &dev->agp->memory)
81 return NULL; 81 return NULL;
82 82
83 /* 83 /*
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index 1a1825b29f5f..25bbd30ed7af 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -354,7 +354,10 @@ static struct bin_attribute edid_attr = {
354int drm_sysfs_connector_add(struct drm_connector *connector) 354int drm_sysfs_connector_add(struct drm_connector *connector)
355{ 355{
356 struct drm_device *dev = connector->dev; 356 struct drm_device *dev = connector->dev;
357 int ret = 0, i, j; 357 int attr_cnt = 0;
358 int opt_cnt = 0;
359 int i;
360 int ret = 0;
358 361
359 /* We shouldn't get called more than once for the same connector */ 362 /* We shouldn't get called more than once for the same connector */
360 BUG_ON(device_is_registered(&connector->kdev)); 363 BUG_ON(device_is_registered(&connector->kdev));
@@ -377,8 +380,8 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
377 380
378 /* Standard attributes */ 381 /* Standard attributes */
379 382
380 for (i = 0; i < ARRAY_SIZE(connector_attrs); i++) { 383 for (attr_cnt = 0; attr_cnt < ARRAY_SIZE(connector_attrs); attr_cnt++) {
381 ret = device_create_file(&connector->kdev, &connector_attrs[i]); 384 ret = device_create_file(&connector->kdev, &connector_attrs[attr_cnt]);
382 if (ret) 385 if (ret)
383 goto err_out_files; 386 goto err_out_files;
384 } 387 }
@@ -394,8 +397,8 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
394 case DRM_MODE_CONNECTOR_SVIDEO: 397 case DRM_MODE_CONNECTOR_SVIDEO:
395 case DRM_MODE_CONNECTOR_Component: 398 case DRM_MODE_CONNECTOR_Component:
396 case DRM_MODE_CONNECTOR_TV: 399 case DRM_MODE_CONNECTOR_TV:
397 for (i = 0; i < ARRAY_SIZE(connector_attrs_opt1); i++) { 400 for (opt_cnt = 0; opt_cnt < ARRAY_SIZE(connector_attrs_opt1); opt_cnt++) {
398 ret = device_create_file(&connector->kdev, &connector_attrs_opt1[i]); 401 ret = device_create_file(&connector->kdev, &connector_attrs_opt1[opt_cnt]);
399 if (ret) 402 if (ret)
400 goto err_out_files; 403 goto err_out_files;
401 } 404 }
@@ -414,10 +417,10 @@ int drm_sysfs_connector_add(struct drm_connector *connector)
414 return 0; 417 return 0;
415 418
416err_out_files: 419err_out_files:
417 if (i > 0) 420 for (i = 0; i < opt_cnt; i++)
418 for (j = 0; j < i; j++) 421 device_remove_file(&connector->kdev, &connector_attrs_opt1[i]);
419 device_remove_file(&connector->kdev, 422 for (i = 0; i < attr_cnt; i++)
420 &connector_attrs[i]); 423 device_remove_file(&connector->kdev, &connector_attrs[i]);
421 device_unregister(&connector->kdev); 424 device_unregister(&connector->kdev);
422 425
423out: 426out:
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 2dc93939507d..c3cfafcbfe7d 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1357,6 +1357,8 @@ static void i915_setup_compression(struct drm_device *dev, int size)
1357 1357
1358 dev_priv->cfb_size = size; 1358 dev_priv->cfb_size = size;
1359 1359
1360 dev_priv->compressed_fb = compressed_fb;
1361
1360 if (IS_GM45(dev)) { 1362 if (IS_GM45(dev)) {
1361 g4x_disable_fbc(dev); 1363 g4x_disable_fbc(dev);
1362 I915_WRITE(DPFC_CB_BASE, compressed_fb->start); 1364 I915_WRITE(DPFC_CB_BASE, compressed_fb->start);
@@ -1364,12 +1366,22 @@ static void i915_setup_compression(struct drm_device *dev, int size)
1364 i8xx_disable_fbc(dev); 1366 i8xx_disable_fbc(dev);
1365 I915_WRITE(FBC_CFB_BASE, cfb_base); 1367 I915_WRITE(FBC_CFB_BASE, cfb_base);
1366 I915_WRITE(FBC_LL_BASE, ll_base); 1368 I915_WRITE(FBC_LL_BASE, ll_base);
1369 dev_priv->compressed_llb = compressed_llb;
1367 } 1370 }
1368 1371
1369 DRM_DEBUG("FBC base 0x%08lx, ll base 0x%08lx, size %dM\n", cfb_base, 1372 DRM_DEBUG("FBC base 0x%08lx, ll base 0x%08lx, size %dM\n", cfb_base,
1370 ll_base, size >> 20); 1373 ll_base, size >> 20);
1371} 1374}
1372 1375
1376static void i915_cleanup_compression(struct drm_device *dev)
1377{
1378 struct drm_i915_private *dev_priv = dev->dev_private;
1379
1380 drm_mm_put_block(dev_priv->compressed_fb);
1381 if (!IS_GM45(dev))
1382 drm_mm_put_block(dev_priv->compressed_llb);
1383}
1384
1373/* true = enable decode, false = disable decoder */ 1385/* true = enable decode, false = disable decoder */
1374static unsigned int i915_vga_set_decode(void *cookie, bool state) 1386static unsigned int i915_vga_set_decode(void *cookie, bool state)
1375{ 1387{
@@ -1787,6 +1799,8 @@ int i915_driver_unload(struct drm_device *dev)
1787 mutex_lock(&dev->struct_mutex); 1799 mutex_lock(&dev->struct_mutex);
1788 i915_gem_cleanup_ringbuffer(dev); 1800 i915_gem_cleanup_ringbuffer(dev);
1789 mutex_unlock(&dev->struct_mutex); 1801 mutex_unlock(&dev->struct_mutex);
1802 if (I915_HAS_FBC(dev) && i915_powersave)
1803 i915_cleanup_compression(dev);
1790 drm_mm_takedown(&dev_priv->vram); 1804 drm_mm_takedown(&dev_priv->vram);
1791 i915_gem_lastclose(dev); 1805 i915_gem_lastclose(dev);
1792 1806
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 0af3dcc85ce9..cc03537bb883 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -69,7 +69,8 @@ const static struct intel_device_info intel_845g_info = {
69}; 69};
70 70
71const static struct intel_device_info intel_i85x_info = { 71const static struct intel_device_info intel_i85x_info = {
72 .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1, 72 .is_i8xx = 1, .is_i85x = 1, .is_mobile = 1,
73 .cursor_needs_physical = 1,
73}; 74};
74 75
75const static struct intel_device_info intel_i865g_info = { 76const static struct intel_device_info intel_i865g_info = {
@@ -151,7 +152,7 @@ const static struct pci_device_id pciidlist[] = {
151 INTEL_VGA_DEVICE(0x3577, &intel_i830_info), 152 INTEL_VGA_DEVICE(0x3577, &intel_i830_info),
152 INTEL_VGA_DEVICE(0x2562, &intel_845g_info), 153 INTEL_VGA_DEVICE(0x2562, &intel_845g_info),
153 INTEL_VGA_DEVICE(0x3582, &intel_i85x_info), 154 INTEL_VGA_DEVICE(0x3582, &intel_i85x_info),
154 INTEL_VGA_DEVICE(0x35e8, &intel_i85x_info), 155 INTEL_VGA_DEVICE(0x358e, &intel_i85x_info),
155 INTEL_VGA_DEVICE(0x2572, &intel_i865g_info), 156 INTEL_VGA_DEVICE(0x2572, &intel_i865g_info),
156 INTEL_VGA_DEVICE(0x2582, &intel_i915g_info), 157 INTEL_VGA_DEVICE(0x2582, &intel_i915g_info),
157 INTEL_VGA_DEVICE(0x258a, &intel_i915g_info), 158 INTEL_VGA_DEVICE(0x258a, &intel_i915g_info),
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 6960849522f8..6e4790065d9e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -195,6 +195,7 @@ struct intel_overlay;
195struct intel_device_info { 195struct intel_device_info {
196 u8 is_mobile : 1; 196 u8 is_mobile : 1;
197 u8 is_i8xx : 1; 197 u8 is_i8xx : 1;
198 u8 is_i85x : 1;
198 u8 is_i915g : 1; 199 u8 is_i915g : 1;
199 u8 is_i9xx : 1; 200 u8 is_i9xx : 1;
200 u8 is_i945gm : 1; 201 u8 is_i945gm : 1;
@@ -235,11 +236,14 @@ typedef struct drm_i915_private {
235 236
236 drm_dma_handle_t *status_page_dmah; 237 drm_dma_handle_t *status_page_dmah;
237 void *hw_status_page; 238 void *hw_status_page;
239 void *seqno_page;
238 dma_addr_t dma_status_page; 240 dma_addr_t dma_status_page;
239 uint32_t counter; 241 uint32_t counter;
240 unsigned int status_gfx_addr; 242 unsigned int status_gfx_addr;
243 unsigned int seqno_gfx_addr;
241 drm_local_map_t hws_map; 244 drm_local_map_t hws_map;
242 struct drm_gem_object *hws_obj; 245 struct drm_gem_object *hws_obj;
246 struct drm_gem_object *seqno_obj;
243 struct drm_gem_object *pwrctx; 247 struct drm_gem_object *pwrctx;
244 248
245 struct resource mch_res; 249 struct resource mch_res;
@@ -630,6 +634,9 @@ typedef struct drm_i915_private {
630 u8 max_delay; 634 u8 max_delay;
631 635
632 enum no_fbc_reason no_fbc_reason; 636 enum no_fbc_reason no_fbc_reason;
637
638 struct drm_mm_node *compressed_fb;
639 struct drm_mm_node *compressed_llb;
633} drm_i915_private_t; 640} drm_i915_private_t;
634 641
635/** driver private structure attached to each drm_gem_object */ 642/** driver private structure attached to each drm_gem_object */
@@ -1070,7 +1077,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
1070 1077
1071#define IS_I830(dev) ((dev)->pci_device == 0x3577) 1078#define IS_I830(dev) ((dev)->pci_device == 0x3577)
1072#define IS_845G(dev) ((dev)->pci_device == 0x2562) 1079#define IS_845G(dev) ((dev)->pci_device == 0x2562)
1073#define IS_I85X(dev) ((dev)->pci_device == 0x3582) 1080#define IS_I85X(dev) (INTEL_INFO(dev)->is_i85x)
1074#define IS_I865G(dev) ((dev)->pci_device == 0x2572) 1081#define IS_I865G(dev) ((dev)->pci_device == 0x2572)
1075#define IS_GEN2(dev) (INTEL_INFO(dev)->is_i8xx) 1082#define IS_GEN2(dev) (INTEL_INFO(dev)->is_i8xx)
1076#define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g) 1083#define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g)
@@ -1135,6 +1142,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
1135 1142
1136#define HAS_PCH_SPLIT(dev) (IS_IRONLAKE(dev) || \ 1143#define HAS_PCH_SPLIT(dev) (IS_IRONLAKE(dev) || \
1137 IS_GEN6(dev)) 1144 IS_GEN6(dev))
1145#define HAS_PIPE_CONTROL(dev) (IS_IRONLAKE(dev) || IS_GEN6(dev))
1138 1146
1139#define PRIMARY_RINGBUFFER_SIZE (128*1024) 1147#define PRIMARY_RINGBUFFER_SIZE (128*1024)
1140 1148
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 80871c62a571..ef3d91dda71a 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1588,6 +1588,13 @@ i915_gem_process_flushing_list(struct drm_device *dev,
1588 } 1588 }
1589} 1589}
1590 1590
1591#define PIPE_CONTROL_FLUSH(addr) \
1592 OUT_RING(GFX_OP_PIPE_CONTROL | PIPE_CONTROL_QW_WRITE | \
1593 PIPE_CONTROL_DEPTH_STALL); \
1594 OUT_RING(addr | PIPE_CONTROL_GLOBAL_GTT); \
1595 OUT_RING(0); \
1596 OUT_RING(0); \
1597
1591/** 1598/**
1592 * Creates a new sequence number, emitting a write of it to the status page 1599 * Creates a new sequence number, emitting a write of it to the status page
1593 * plus an interrupt, which will trigger i915_user_interrupt_handler. 1600 * plus an interrupt, which will trigger i915_user_interrupt_handler.
@@ -1622,13 +1629,47 @@ i915_add_request(struct drm_device *dev, struct drm_file *file_priv,
1622 if (dev_priv->mm.next_gem_seqno == 0) 1629 if (dev_priv->mm.next_gem_seqno == 0)
1623 dev_priv->mm.next_gem_seqno++; 1630 dev_priv->mm.next_gem_seqno++;
1624 1631
1625 BEGIN_LP_RING(4); 1632 if (HAS_PIPE_CONTROL(dev)) {
1626 OUT_RING(MI_STORE_DWORD_INDEX); 1633 u32 scratch_addr = dev_priv->seqno_gfx_addr + 128;
1627 OUT_RING(I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
1628 OUT_RING(seqno);
1629 1634
1630 OUT_RING(MI_USER_INTERRUPT); 1635 /*
1631 ADVANCE_LP_RING(); 1636 * Workaround qword write incoherence by flushing the
1637 * PIPE_NOTIFY buffers out to memory before requesting
1638 * an interrupt.
1639 */
1640 BEGIN_LP_RING(32);
1641 OUT_RING(GFX_OP_PIPE_CONTROL | PIPE_CONTROL_QW_WRITE |
1642 PIPE_CONTROL_WC_FLUSH | PIPE_CONTROL_TC_FLUSH);
1643 OUT_RING(dev_priv->seqno_gfx_addr | PIPE_CONTROL_GLOBAL_GTT);
1644 OUT_RING(seqno);
1645 OUT_RING(0);
1646 PIPE_CONTROL_FLUSH(scratch_addr);
1647 scratch_addr += 128; /* write to separate cachelines */
1648 PIPE_CONTROL_FLUSH(scratch_addr);
1649 scratch_addr += 128;
1650 PIPE_CONTROL_FLUSH(scratch_addr);
1651 scratch_addr += 128;
1652 PIPE_CONTROL_FLUSH(scratch_addr);
1653 scratch_addr += 128;
1654 PIPE_CONTROL_FLUSH(scratch_addr);
1655 scratch_addr += 128;
1656 PIPE_CONTROL_FLUSH(scratch_addr);
1657 OUT_RING(GFX_OP_PIPE_CONTROL | PIPE_CONTROL_QW_WRITE |
1658 PIPE_CONTROL_WC_FLUSH | PIPE_CONTROL_TC_FLUSH |
1659 PIPE_CONTROL_NOTIFY);
1660 OUT_RING(dev_priv->seqno_gfx_addr | PIPE_CONTROL_GLOBAL_GTT);
1661 OUT_RING(seqno);
1662 OUT_RING(0);
1663 ADVANCE_LP_RING();
1664 } else {
1665 BEGIN_LP_RING(4);
1666 OUT_RING(MI_STORE_DWORD_INDEX);
1667 OUT_RING(I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
1668 OUT_RING(seqno);
1669
1670 OUT_RING(MI_USER_INTERRUPT);
1671 ADVANCE_LP_RING();
1672 }
1632 1673
1633 DRM_DEBUG_DRIVER("%d\n", seqno); 1674 DRM_DEBUG_DRIVER("%d\n", seqno);
1634 1675
@@ -1752,7 +1793,10 @@ i915_get_gem_seqno(struct drm_device *dev)
1752{ 1793{
1753 drm_i915_private_t *dev_priv = dev->dev_private; 1794 drm_i915_private_t *dev_priv = dev->dev_private;
1754 1795
1755 return READ_HWSP(dev_priv, I915_GEM_HWS_INDEX); 1796 if (HAS_PIPE_CONTROL(dev))
1797 return ((volatile u32 *)(dev_priv->seqno_page))[0];
1798 else
1799 return READ_HWSP(dev_priv, I915_GEM_HWS_INDEX);
1756} 1800}
1757 1801
1758/** 1802/**
@@ -2362,6 +2406,12 @@ static void i915_write_fence_reg(struct drm_i915_fence_reg *reg)
2362 pitch_val = obj_priv->stride / tile_width; 2406 pitch_val = obj_priv->stride / tile_width;
2363 pitch_val = ffs(pitch_val) - 1; 2407 pitch_val = ffs(pitch_val) - 1;
2364 2408
2409 if (obj_priv->tiling_mode == I915_TILING_Y &&
2410 HAS_128_BYTE_Y_TILING(dev))
2411 WARN_ON(pitch_val > I830_FENCE_MAX_PITCH_VAL);
2412 else
2413 WARN_ON(pitch_val > I915_FENCE_MAX_PITCH_VAL);
2414
2365 val = obj_priv->gtt_offset; 2415 val = obj_priv->gtt_offset;
2366 if (obj_priv->tiling_mode == I915_TILING_Y) 2416 if (obj_priv->tiling_mode == I915_TILING_Y)
2367 val |= 1 << I830_FENCE_TILING_Y_SHIFT; 2417 val |= 1 << I830_FENCE_TILING_Y_SHIFT;
@@ -4546,6 +4596,49 @@ i915_gem_idle(struct drm_device *dev)
4546 return 0; 4596 return 0;
4547} 4597}
4548 4598
4599/*
4600 * 965+ support PIPE_CONTROL commands, which provide finer grained control
4601 * over cache flushing.
4602 */
4603static int
4604i915_gem_init_pipe_control(struct drm_device *dev)
4605{
4606 drm_i915_private_t *dev_priv = dev->dev_private;
4607 struct drm_gem_object *obj;
4608 struct drm_i915_gem_object *obj_priv;
4609 int ret;
4610
4611 obj = drm_gem_object_alloc(dev, 4096);
4612 if (obj == NULL) {
4613 DRM_ERROR("Failed to allocate seqno page\n");
4614 ret = -ENOMEM;
4615 goto err;
4616 }
4617 obj_priv = to_intel_bo(obj);
4618 obj_priv->agp_type = AGP_USER_CACHED_MEMORY;
4619
4620 ret = i915_gem_object_pin(obj, 4096);
4621 if (ret)
4622 goto err_unref;
4623
4624 dev_priv->seqno_gfx_addr = obj_priv->gtt_offset;
4625 dev_priv->seqno_page = kmap(obj_priv->pages[0]);
4626 if (dev_priv->seqno_page == NULL)
4627 goto err_unpin;
4628
4629 dev_priv->seqno_obj = obj;
4630 memset(dev_priv->seqno_page, 0, PAGE_SIZE);
4631
4632 return 0;
4633
4634err_unpin:
4635 i915_gem_object_unpin(obj);
4636err_unref:
4637 drm_gem_object_unreference(obj);
4638err:
4639 return ret;
4640}
4641
4549static int 4642static int
4550i915_gem_init_hws(struct drm_device *dev) 4643i915_gem_init_hws(struct drm_device *dev)
4551{ 4644{
@@ -4563,7 +4656,8 @@ i915_gem_init_hws(struct drm_device *dev)
4563 obj = drm_gem_object_alloc(dev, 4096); 4656 obj = drm_gem_object_alloc(dev, 4096);
4564 if (obj == NULL) { 4657 if (obj == NULL) {
4565 DRM_ERROR("Failed to allocate status page\n"); 4658 DRM_ERROR("Failed to allocate status page\n");
4566 return -ENOMEM; 4659 ret = -ENOMEM;
4660 goto err;
4567 } 4661 }
4568 obj_priv = to_intel_bo(obj); 4662 obj_priv = to_intel_bo(obj);
4569 obj_priv->agp_type = AGP_USER_CACHED_MEMORY; 4663 obj_priv->agp_type = AGP_USER_CACHED_MEMORY;
@@ -4571,7 +4665,7 @@ i915_gem_init_hws(struct drm_device *dev)
4571 ret = i915_gem_object_pin(obj, 4096); 4665 ret = i915_gem_object_pin(obj, 4096);
4572 if (ret != 0) { 4666 if (ret != 0) {
4573 drm_gem_object_unreference(obj); 4667 drm_gem_object_unreference(obj);
4574 return ret; 4668 goto err_unref;
4575 } 4669 }
4576 4670
4577 dev_priv->status_gfx_addr = obj_priv->gtt_offset; 4671 dev_priv->status_gfx_addr = obj_priv->gtt_offset;
@@ -4580,10 +4674,16 @@ i915_gem_init_hws(struct drm_device *dev)
4580 if (dev_priv->hw_status_page == NULL) { 4674 if (dev_priv->hw_status_page == NULL) {
4581 DRM_ERROR("Failed to map status page.\n"); 4675 DRM_ERROR("Failed to map status page.\n");
4582 memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map)); 4676 memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map));
4583 i915_gem_object_unpin(obj); 4677 ret = -EINVAL;
4584 drm_gem_object_unreference(obj); 4678 goto err_unpin;
4585 return -EINVAL;
4586 } 4679 }
4680
4681 if (HAS_PIPE_CONTROL(dev)) {
4682 ret = i915_gem_init_pipe_control(dev);
4683 if (ret)
4684 goto err_unpin;
4685 }
4686
4587 dev_priv->hws_obj = obj; 4687 dev_priv->hws_obj = obj;
4588 memset(dev_priv->hw_status_page, 0, PAGE_SIZE); 4688 memset(dev_priv->hw_status_page, 0, PAGE_SIZE);
4589 if (IS_GEN6(dev)) { 4689 if (IS_GEN6(dev)) {
@@ -4596,6 +4696,30 @@ i915_gem_init_hws(struct drm_device *dev)
4596 DRM_DEBUG_DRIVER("hws offset: 0x%08x\n", dev_priv->status_gfx_addr); 4696 DRM_DEBUG_DRIVER("hws offset: 0x%08x\n", dev_priv->status_gfx_addr);
4597 4697
4598 return 0; 4698 return 0;
4699
4700err_unpin:
4701 i915_gem_object_unpin(obj);
4702err_unref:
4703 drm_gem_object_unreference(obj);
4704err:
4705 return 0;
4706}
4707
4708static void
4709i915_gem_cleanup_pipe_control(struct drm_device *dev)
4710{
4711 drm_i915_private_t *dev_priv = dev->dev_private;
4712 struct drm_gem_object *obj;
4713 struct drm_i915_gem_object *obj_priv;
4714
4715 obj = dev_priv->seqno_obj;
4716 obj_priv = to_intel_bo(obj);
4717 kunmap(obj_priv->pages[0]);
4718 i915_gem_object_unpin(obj);
4719 drm_gem_object_unreference(obj);
4720 dev_priv->seqno_obj = NULL;
4721
4722 dev_priv->seqno_page = NULL;
4599} 4723}
4600 4724
4601static void 4725static void
@@ -4619,6 +4743,9 @@ i915_gem_cleanup_hws(struct drm_device *dev)
4619 memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map)); 4743 memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map));
4620 dev_priv->hw_status_page = NULL; 4744 dev_priv->hw_status_page = NULL;
4621 4745
4746 if (HAS_PIPE_CONTROL(dev))
4747 i915_gem_cleanup_pipe_control(dev);
4748
4622 /* Write high address into HWS_PGA when disabling. */ 4749 /* Write high address into HWS_PGA when disabling. */
4623 I915_WRITE(HWS_PGA, 0x1ffff000); 4750 I915_WRITE(HWS_PGA, 0x1ffff000);
4624} 4751}
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 449157f71610..4bdccefcf2cf 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -202,21 +202,17 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
202 * reg, so dont bother to check the size */ 202 * reg, so dont bother to check the size */
203 if (stride / 128 > I965_FENCE_MAX_PITCH_VAL) 203 if (stride / 128 > I965_FENCE_MAX_PITCH_VAL)
204 return false; 204 return false;
205 } else if (IS_I9XX(dev)) { 205 } else if (IS_GEN3(dev) || IS_GEN2(dev)) {
206 uint32_t pitch_val = ffs(stride / tile_width) - 1; 206 if (stride > 8192)
207
208 /* XXX: For Y tiling, FENCE_MAX_PITCH_VAL is actually 6 (8KB)
209 * instead of 4 (2KB) on 945s.
210 */
211 if (pitch_val > I915_FENCE_MAX_PITCH_VAL ||
212 size > (I830_FENCE_MAX_SIZE_VAL << 20))
213 return false; 207 return false;
214 } else {
215 uint32_t pitch_val = ffs(stride / tile_width) - 1;
216 208
217 if (pitch_val > I830_FENCE_MAX_PITCH_VAL || 209 if (IS_GEN3(dev)) {
218 size > (I830_FENCE_MAX_SIZE_VAL << 19)) 210 if (size > I830_FENCE_MAX_SIZE_VAL << 20)
219 return false; 211 return false;
212 } else {
213 if (size > I830_FENCE_MAX_SIZE_VAL << 19)
214 return false;
215 }
220 } 216 }
221 217
222 /* 965+ just needs multiples of tile width */ 218 /* 965+ just needs multiples of tile width */
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 6421481d6222..df6a9cd82c4d 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -349,7 +349,7 @@ irqreturn_t ironlake_irq_handler(struct drm_device *dev)
349 READ_BREADCRUMB(dev_priv); 349 READ_BREADCRUMB(dev_priv);
350 } 350 }
351 351
352 if (gt_iir & GT_USER_INTERRUPT) { 352 if (gt_iir & GT_PIPE_NOTIFY) {
353 u32 seqno = i915_get_gem_seqno(dev); 353 u32 seqno = i915_get_gem_seqno(dev);
354 dev_priv->mm.irq_gem_seqno = seqno; 354 dev_priv->mm.irq_gem_seqno = seqno;
355 trace_i915_gem_request_complete(dev, seqno); 355 trace_i915_gem_request_complete(dev, seqno);
@@ -456,11 +456,15 @@ i915_error_object_create(struct drm_device *dev,
456 456
457 for (page = 0; page < page_count; page++) { 457 for (page = 0; page < page_count; page++) {
458 void *s, *d = kmalloc(PAGE_SIZE, GFP_ATOMIC); 458 void *s, *d = kmalloc(PAGE_SIZE, GFP_ATOMIC);
459 unsigned long flags;
460
459 if (d == NULL) 461 if (d == NULL)
460 goto unwind; 462 goto unwind;
461 s = kmap_atomic(src_priv->pages[page], KM_USER0); 463 local_irq_save(flags);
464 s = kmap_atomic(src_priv->pages[page], KM_IRQ0);
462 memcpy(d, s, PAGE_SIZE); 465 memcpy(d, s, PAGE_SIZE);
463 kunmap_atomic(s, KM_USER0); 466 kunmap_atomic(s, KM_IRQ0);
467 local_irq_restore(flags);
464 dst->pages[page] = d; 468 dst->pages[page] = d;
465 } 469 }
466 dst->page_count = page_count; 470 dst->page_count = page_count;
@@ -1005,7 +1009,7 @@ void i915_user_irq_get(struct drm_device *dev)
1005 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); 1009 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags);
1006 if (dev->irq_enabled && (++dev_priv->user_irq_refcount == 1)) { 1010 if (dev->irq_enabled && (++dev_priv->user_irq_refcount == 1)) {
1007 if (HAS_PCH_SPLIT(dev)) 1011 if (HAS_PCH_SPLIT(dev))
1008 ironlake_enable_graphics_irq(dev_priv, GT_USER_INTERRUPT); 1012 ironlake_enable_graphics_irq(dev_priv, GT_PIPE_NOTIFY);
1009 else 1013 else
1010 i915_enable_irq(dev_priv, I915_USER_INTERRUPT); 1014 i915_enable_irq(dev_priv, I915_USER_INTERRUPT);
1011 } 1015 }
@@ -1021,7 +1025,7 @@ void i915_user_irq_put(struct drm_device *dev)
1021 BUG_ON(dev->irq_enabled && dev_priv->user_irq_refcount <= 0); 1025 BUG_ON(dev->irq_enabled && dev_priv->user_irq_refcount <= 0);
1022 if (dev->irq_enabled && (--dev_priv->user_irq_refcount == 0)) { 1026 if (dev->irq_enabled && (--dev_priv->user_irq_refcount == 0)) {
1023 if (HAS_PCH_SPLIT(dev)) 1027 if (HAS_PCH_SPLIT(dev))
1024 ironlake_disable_graphics_irq(dev_priv, GT_USER_INTERRUPT); 1028 ironlake_disable_graphics_irq(dev_priv, GT_PIPE_NOTIFY);
1025 else 1029 else
1026 i915_disable_irq(dev_priv, I915_USER_INTERRUPT); 1030 i915_disable_irq(dev_priv, I915_USER_INTERRUPT);
1027 } 1031 }
@@ -1305,7 +1309,7 @@ static int ironlake_irq_postinstall(struct drm_device *dev)
1305 /* enable kind of interrupts always enabled */ 1309 /* enable kind of interrupts always enabled */
1306 u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT | 1310 u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT |
1307 DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE; 1311 DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE;
1308 u32 render_mask = GT_USER_INTERRUPT; 1312 u32 render_mask = GT_PIPE_NOTIFY;
1309 u32 hotplug_mask = SDE_CRT_HOTPLUG | SDE_PORTB_HOTPLUG | 1313 u32 hotplug_mask = SDE_CRT_HOTPLUG | SDE_PORTB_HOTPLUG |
1310 SDE_PORTC_HOTPLUG | SDE_PORTD_HOTPLUG; 1314 SDE_PORTC_HOTPLUG | SDE_PORTD_HOTPLUG;
1311 1315
diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c
index 7cc8410239cb..8fcc75c1aa28 100644
--- a/drivers/gpu/drm/i915/i915_opregion.c
+++ b/drivers/gpu/drm/i915/i915_opregion.c
@@ -382,8 +382,57 @@ static void intel_didl_outputs(struct drm_device *dev)
382 struct drm_i915_private *dev_priv = dev->dev_private; 382 struct drm_i915_private *dev_priv = dev->dev_private;
383 struct intel_opregion *opregion = &dev_priv->opregion; 383 struct intel_opregion *opregion = &dev_priv->opregion;
384 struct drm_connector *connector; 384 struct drm_connector *connector;
385 acpi_handle handle;
386 struct acpi_device *acpi_dev, *acpi_cdev, *acpi_video_bus = NULL;
387 unsigned long long device_id;
388 acpi_status status;
385 int i = 0; 389 int i = 0;
386 390
391 handle = DEVICE_ACPI_HANDLE(&dev->pdev->dev);
392 if (!handle || ACPI_FAILURE(acpi_bus_get_device(handle, &acpi_dev)))
393 return;
394
395 if (acpi_is_video_device(acpi_dev))
396 acpi_video_bus = acpi_dev;
397 else {
398 list_for_each_entry(acpi_cdev, &acpi_dev->children, node) {
399 if (acpi_is_video_device(acpi_cdev)) {
400 acpi_video_bus = acpi_cdev;
401 break;
402 }
403 }
404 }
405
406 if (!acpi_video_bus) {
407 printk(KERN_WARNING "No ACPI video bus found\n");
408 return;
409 }
410
411 list_for_each_entry(acpi_cdev, &acpi_video_bus->children, node) {
412 if (i >= 8) {
413 dev_printk (KERN_ERR, &dev->pdev->dev,
414 "More than 8 outputs detected\n");
415 return;
416 }
417 status =
418 acpi_evaluate_integer(acpi_cdev->handle, "_ADR",
419 NULL, &device_id);
420 if (ACPI_SUCCESS(status)) {
421 if (!device_id)
422 goto blind_set;
423 opregion->acpi->didl[i] = (u32)(device_id & 0x0f0f);
424 i++;
425 }
426 }
427
428end:
429 /* If fewer than 8 outputs, the list must be null terminated */
430 if (i < 8)
431 opregion->acpi->didl[i] = 0;
432 return;
433
434blind_set:
435 i = 0;
387 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { 436 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
388 int output_type = ACPI_OTHER_OUTPUT; 437 int output_type = ACPI_OTHER_OUTPUT;
389 if (i >= 8) { 438 if (i >= 8) {
@@ -416,10 +465,7 @@ static void intel_didl_outputs(struct drm_device *dev)
416 opregion->acpi->didl[i] |= (1<<31) | output_type | i; 465 opregion->acpi->didl[i] |= (1<<31) | output_type | i;
417 i++; 466 i++;
418 } 467 }
419 468 goto end;
420 /* If fewer than 8 outputs, the list must be null terminated */
421 if (i < 8)
422 opregion->acpi->didl[i] = 0;
423} 469}
424 470
425int intel_opregion_init(struct drm_device *dev, int resume) 471int intel_opregion_init(struct drm_device *dev, int resume)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index cbbf59f56dfa..4cbc5210fd30 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -230,6 +230,16 @@
230#define ASYNC_FLIP (1<<22) 230#define ASYNC_FLIP (1<<22)
231#define DISPLAY_PLANE_A (0<<20) 231#define DISPLAY_PLANE_A (0<<20)
232#define DISPLAY_PLANE_B (1<<20) 232#define DISPLAY_PLANE_B (1<<20)
233#define GFX_OP_PIPE_CONTROL ((0x3<<29)|(0x3<<27)|(0x2<<24)|2)
234#define PIPE_CONTROL_QW_WRITE (1<<14)
235#define PIPE_CONTROL_DEPTH_STALL (1<<13)
236#define PIPE_CONTROL_WC_FLUSH (1<<12)
237#define PIPE_CONTROL_IS_FLUSH (1<<11) /* MBZ on Ironlake */
238#define PIPE_CONTROL_TC_FLUSH (1<<10) /* GM45+ only */
239#define PIPE_CONTROL_ISP_DIS (1<<9)
240#define PIPE_CONTROL_NOTIFY (1<<8)
241#define PIPE_CONTROL_GLOBAL_GTT (1<<2) /* in addr dword */
242#define PIPE_CONTROL_STALL_EN (1<<1) /* in addr word, Ironlake+ only */
233 243
234/* 244/*
235 * Fence registers 245 * Fence registers
@@ -241,7 +251,7 @@
241#define I830_FENCE_SIZE_BITS(size) ((ffs((size) >> 19) - 1) << 8) 251#define I830_FENCE_SIZE_BITS(size) ((ffs((size) >> 19) - 1) << 8)
242#define I830_FENCE_PITCH_SHIFT 4 252#define I830_FENCE_PITCH_SHIFT 4
243#define I830_FENCE_REG_VALID (1<<0) 253#define I830_FENCE_REG_VALID (1<<0)
244#define I915_FENCE_MAX_PITCH_VAL 0x10 254#define I915_FENCE_MAX_PITCH_VAL 4
245#define I830_FENCE_MAX_PITCH_VAL 6 255#define I830_FENCE_MAX_PITCH_VAL 6
246#define I830_FENCE_MAX_SIZE_VAL (1<<8) 256#define I830_FENCE_MAX_SIZE_VAL (1<<8)
247 257
@@ -2285,6 +2295,7 @@
2285#define DEIER 0x4400c 2295#define DEIER 0x4400c
2286 2296
2287/* GT interrupt */ 2297/* GT interrupt */
2298#define GT_PIPE_NOTIFY (1 << 4)
2288#define GT_SYNC_STATUS (1 << 2) 2299#define GT_SYNC_STATUS (1 << 2)
2289#define GT_USER_INTERRUPT (1 << 0) 2300#define GT_USER_INTERRUPT (1 << 0)
2290 2301
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e7356fb6c918..c7502b6b1600 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4853,17 +4853,18 @@ static void intel_init_display(struct drm_device *dev)
4853 dev_priv->display.update_wm = g4x_update_wm; 4853 dev_priv->display.update_wm = g4x_update_wm;
4854 else if (IS_I965G(dev)) 4854 else if (IS_I965G(dev))
4855 dev_priv->display.update_wm = i965_update_wm; 4855 dev_priv->display.update_wm = i965_update_wm;
4856 else if (IS_I9XX(dev) || IS_MOBILE(dev)) { 4856 else if (IS_I9XX(dev)) {
4857 dev_priv->display.update_wm = i9xx_update_wm; 4857 dev_priv->display.update_wm = i9xx_update_wm;
4858 dev_priv->display.get_fifo_size = i9xx_get_fifo_size; 4858 dev_priv->display.get_fifo_size = i9xx_get_fifo_size;
4859 } else if (IS_I85X(dev)) {
4860 dev_priv->display.update_wm = i9xx_update_wm;
4861 dev_priv->display.get_fifo_size = i85x_get_fifo_size;
4859 } else { 4862 } else {
4860 if (IS_I85X(dev)) 4863 dev_priv->display.update_wm = i830_update_wm;
4861 dev_priv->display.get_fifo_size = i85x_get_fifo_size; 4864 if (IS_845G(dev))
4862 else if (IS_845G(dev))
4863 dev_priv->display.get_fifo_size = i845_get_fifo_size; 4865 dev_priv->display.get_fifo_size = i845_get_fifo_size;
4864 else 4866 else
4865 dev_priv->display.get_fifo_size = i830_get_fifo_size; 4867 dev_priv->display.get_fifo_size = i830_get_fifo_size;
4866 dev_priv->display.update_wm = i830_update_wm;
4867 } 4868 }
4868} 4869}
4869 4870
diff --git a/drivers/gpu/drm/radeon/atombios.h b/drivers/gpu/drm/radeon/atombios.h
index 6732b5dd8ff4..27e2c715be11 100644
--- a/drivers/gpu/drm/radeon/atombios.h
+++ b/drivers/gpu/drm/radeon/atombios.h
@@ -2912,7 +2912,7 @@ typedef struct _ATOM_ANALOG_TV_INFO_V1_2
2912 UCHAR ucTV_BootUpDefaultStandard; 2912 UCHAR ucTV_BootUpDefaultStandard;
2913 UCHAR ucExt_TV_ASIC_ID; 2913 UCHAR ucExt_TV_ASIC_ID;
2914 UCHAR ucExt_TV_ASIC_SlaveAddr; 2914 UCHAR ucExt_TV_ASIC_SlaveAddr;
2915 ATOM_DTD_FORMAT aModeTimings[MAX_SUPPORTED_TV_TIMING]; 2915 ATOM_DTD_FORMAT aModeTimings[MAX_SUPPORTED_TV_TIMING_V1_2];
2916}ATOM_ANALOG_TV_INFO_V1_2; 2916}ATOM_ANALOG_TV_INFO_V1_2;
2917 2917
2918typedef struct _ATOM_DPCD_INFO 2918typedef struct _ATOM_DPCD_INFO
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index d7388fdb6d0b..cf60c0b3ef15 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -2975,7 +2975,7 @@ int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track)
2975 2975
2976 for (i = 0; i < track->num_cb; i++) { 2976 for (i = 0; i < track->num_cb; i++) {
2977 if (track->cb[i].robj == NULL) { 2977 if (track->cb[i].robj == NULL) {
2978 if (!(track->fastfill || track->color_channel_mask || 2978 if (!(track->zb_cb_clear || track->color_channel_mask ||
2979 track->blend_read_enable)) { 2979 track->blend_read_enable)) {
2980 continue; 2980 continue;
2981 } 2981 }
diff --git a/drivers/gpu/drm/radeon/r100_track.h b/drivers/gpu/drm/radeon/r100_track.h
index fadfe68de9cc..f47cdca1c004 100644
--- a/drivers/gpu/drm/radeon/r100_track.h
+++ b/drivers/gpu/drm/radeon/r100_track.h
@@ -75,7 +75,7 @@ struct r100_cs_track {
75 struct r100_cs_track_texture textures[R300_TRACK_MAX_TEXTURE]; 75 struct r100_cs_track_texture textures[R300_TRACK_MAX_TEXTURE];
76 bool z_enabled; 76 bool z_enabled;
77 bool separate_cube; 77 bool separate_cube;
78 bool fastfill; 78 bool zb_cb_clear;
79 bool blend_read_enable; 79 bool blend_read_enable;
80}; 80};
81 81
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c
index bd75f99bd65e..a5ff8076b423 100644
--- a/drivers/gpu/drm/radeon/r300.c
+++ b/drivers/gpu/drm/radeon/r300.c
@@ -324,13 +324,12 @@ void r300_gpu_init(struct radeon_device *rdev)
324 uint32_t gb_tile_config, tmp; 324 uint32_t gb_tile_config, tmp;
325 325
326 r100_hdp_reset(rdev); 326 r100_hdp_reset(rdev);
327 /* FIXME: rv380 one pipes ? */
328 if ((rdev->family == CHIP_R300 && rdev->pdev->device != 0x4144) || 327 if ((rdev->family == CHIP_R300 && rdev->pdev->device != 0x4144) ||
329 (rdev->family == CHIP_R350)) { 328 (rdev->family == CHIP_R350 && rdev->pdev->device != 0x4148)) {
330 /* r300,r350 */ 329 /* r300,r350 */
331 rdev->num_gb_pipes = 2; 330 rdev->num_gb_pipes = 2;
332 } else { 331 } else {
333 /* rv350,rv370,rv380,r300 AD */ 332 /* rv350,rv370,rv380,r300 AD, r350 AH */
334 rdev->num_gb_pipes = 1; 333 rdev->num_gb_pipes = 1;
335 } 334 }
336 rdev->num_z_pipes = 1; 335 rdev->num_z_pipes = 1;
@@ -1045,7 +1044,7 @@ static int r300_packet0_check(struct radeon_cs_parser *p,
1045 break; 1044 break;
1046 case 0x4d1c: 1045 case 0x4d1c:
1047 /* ZB_BW_CNTL */ 1046 /* ZB_BW_CNTL */
1048 track->fastfill = !!(idx_value & (1 << 2)); 1047 track->zb_cb_clear = !!(idx_value & (1 << 5));
1049 break; 1048 break;
1050 case 0x4e04: 1049 case 0x4e04:
1051 /* RB3D_BLENDCNTL */ 1050 /* RB3D_BLENDCNTL */
diff --git a/drivers/gpu/drm/radeon/r300_cmdbuf.c b/drivers/gpu/drm/radeon/r300_cmdbuf.c
index ea46d558e8f3..c5c2742e4140 100644
--- a/drivers/gpu/drm/radeon/r300_cmdbuf.c
+++ b/drivers/gpu/drm/radeon/r300_cmdbuf.c
@@ -921,7 +921,7 @@ static int r300_scratch(drm_radeon_private_t *dev_priv,
921 921
922 ptr_addr = drm_buffer_read_object(cmdbuf->buffer, 922 ptr_addr = drm_buffer_read_object(cmdbuf->buffer,
923 sizeof(stack_ptr_addr), &stack_ptr_addr); 923 sizeof(stack_ptr_addr), &stack_ptr_addr);
924 ref_age_base = (u32 *)(unsigned long)*ptr_addr; 924 ref_age_base = (u32 *)(unsigned long)get_unaligned(ptr_addr);
925 925
926 for (i=0; i < header.scratch.n_bufs; i++) { 926 for (i=0; i < header.scratch.n_bufs; i++) {
927 buf_idx = drm_buffer_pointer_to_dword(cmdbuf->buffer, 0); 927 buf_idx = drm_buffer_pointer_to_dword(cmdbuf->buffer, 0);
diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c
index 3dc968c9f5a4..c2bda4ad62e7 100644
--- a/drivers/gpu/drm/radeon/r420.c
+++ b/drivers/gpu/drm/radeon/r420.c
@@ -59,6 +59,12 @@ void r420_pipes_init(struct radeon_device *rdev)
59 /* get max number of pipes */ 59 /* get max number of pipes */
60 gb_pipe_select = RREG32(0x402C); 60 gb_pipe_select = RREG32(0x402C);
61 num_pipes = ((gb_pipe_select >> 12) & 3) + 1; 61 num_pipes = ((gb_pipe_select >> 12) & 3) + 1;
62
63 /* SE chips have 1 pipe */
64 if ((rdev->pdev->device == 0x5e4c) ||
65 (rdev->pdev->device == 0x5e4f))
66 num_pipes = 1;
67
62 rdev->num_gb_pipes = num_pipes; 68 rdev->num_gb_pipes = num_pipes;
63 tmp = 0; 69 tmp = 0;
64 switch (num_pipes) { 70 switch (num_pipes) {
diff --git a/drivers/gpu/drm/radeon/radeon_agp.c b/drivers/gpu/drm/radeon/radeon_agp.c
index c4457791dff1..28e473f1f56f 100644
--- a/drivers/gpu/drm/radeon/radeon_agp.c
+++ b/drivers/gpu/drm/radeon/radeon_agp.c
@@ -134,12 +134,10 @@ int radeon_agp_init(struct radeon_device *rdev)
134 int ret; 134 int ret;
135 135
136 /* Acquire AGP. */ 136 /* Acquire AGP. */
137 if (!rdev->ddev->agp->acquired) { 137 ret = drm_agp_acquire(rdev->ddev);
138 ret = drm_agp_acquire(rdev->ddev); 138 if (ret) {
139 if (ret) { 139 DRM_ERROR("Unable to acquire AGP: %d\n", ret);
140 DRM_ERROR("Unable to acquire AGP: %d\n", ret); 140 return ret;
141 return ret;
142 }
143 } 141 }
144 142
145 ret = drm_agp_info(rdev->ddev, &info); 143 ret = drm_agp_info(rdev->ddev, &info);
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index 5673665ff216..9916d825401c 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -1264,7 +1264,7 @@ bool radeon_atom_get_tv_timings(struct radeon_device *rdev, int index,
1264 switch (crev) { 1264 switch (crev) {
1265 case 1: 1265 case 1:
1266 tv_info = (ATOM_ANALOG_TV_INFO *)(mode_info->atom_context->bios + data_offset); 1266 tv_info = (ATOM_ANALOG_TV_INFO *)(mode_info->atom_context->bios + data_offset);
1267 if (index > MAX_SUPPORTED_TV_TIMING) 1267 if (index >= MAX_SUPPORTED_TV_TIMING)
1268 return false; 1268 return false;
1269 1269
1270 mode->crtc_htotal = le16_to_cpu(tv_info->aModeTimings[index].usCRTC_H_Total); 1270 mode->crtc_htotal = le16_to_cpu(tv_info->aModeTimings[index].usCRTC_H_Total);
@@ -1302,7 +1302,7 @@ bool radeon_atom_get_tv_timings(struct radeon_device *rdev, int index,
1302 break; 1302 break;
1303 case 2: 1303 case 2:
1304 tv_info_v1_2 = (ATOM_ANALOG_TV_INFO_V1_2 *)(mode_info->atom_context->bios + data_offset); 1304 tv_info_v1_2 = (ATOM_ANALOG_TV_INFO_V1_2 *)(mode_info->atom_context->bios + data_offset);
1305 if (index > MAX_SUPPORTED_TV_TIMING_V1_2) 1305 if (index >= MAX_SUPPORTED_TV_TIMING_V1_2)
1306 return false; 1306 return false;
1307 1307
1308 dtd_timings = &tv_info_v1_2->aModeTimings[index]; 1308 dtd_timings = &tv_info_v1_2->aModeTimings[index];
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 1331351c5178..4559a53d5e57 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1316,6 +1316,8 @@ radeon_add_legacy_connector(struct drm_device *dev,
1316 radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI"); 1316 radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DVI");
1317 if (!radeon_connector->ddc_bus) 1317 if (!radeon_connector->ddc_bus)
1318 goto failed; 1318 goto failed;
1319 }
1320 if (connector_type == DRM_MODE_CONNECTOR_DVII) {
1319 radeon_connector->dac_load_detect = true; 1321 radeon_connector->dac_load_detect = true;
1320 drm_connector_attach_property(&radeon_connector->base, 1322 drm_connector_attach_property(&radeon_connector->base,
1321 rdev->mode_info.load_detect_property, 1323 rdev->mode_info.load_detect_property,
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
index 419630dd2075..2f042a3c0e62 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -435,14 +435,19 @@ static void radeon_init_pipes(struct drm_device *dev)
435 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R420) { 435 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R420) {
436 gb_pipe_sel = RADEON_READ(R400_GB_PIPE_SELECT); 436 gb_pipe_sel = RADEON_READ(R400_GB_PIPE_SELECT);
437 dev_priv->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1; 437 dev_priv->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1;
438 /* SE cards have 1 pipe */
439 if ((dev->pdev->device == 0x5e4c) ||
440 (dev->pdev->device == 0x5e4f))
441 dev_priv->num_gb_pipes = 1;
438 } else { 442 } else {
439 /* R3xx */ 443 /* R3xx */
440 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R300 && 444 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R300 &&
441 dev->pdev->device != 0x4144) || 445 dev->pdev->device != 0x4144) ||
442 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R350)) { 446 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R350 &&
447 dev->pdev->device != 0x4148)) {
443 dev_priv->num_gb_pipes = 2; 448 dev_priv->num_gb_pipes = 2;
444 } else { 449 } else {
445 /* RV3xx/R300 AD */ 450 /* RV3xx/R300 AD/R350 AH */
446 dev_priv->num_gb_pipes = 1; 451 dev_priv->num_gb_pipes = 1;
447 } 452 }
448 } 453 }
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index b8d672828246..bb1c122cad21 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -86,12 +86,12 @@ static void evergreen_crtc_load_lut(struct drm_crtc *crtc)
86 WREG32(EVERGREEN_DC_LUT_WHITE_OFFSET_GREEN + radeon_crtc->crtc_offset, 0xffff); 86 WREG32(EVERGREEN_DC_LUT_WHITE_OFFSET_GREEN + radeon_crtc->crtc_offset, 0xffff);
87 WREG32(EVERGREEN_DC_LUT_WHITE_OFFSET_RED + radeon_crtc->crtc_offset, 0xffff); 87 WREG32(EVERGREEN_DC_LUT_WHITE_OFFSET_RED + radeon_crtc->crtc_offset, 0xffff);
88 88
89 WREG32(EVERGREEN_DC_LUT_RW_MODE, radeon_crtc->crtc_id); 89 WREG32(EVERGREEN_DC_LUT_RW_MODE + radeon_crtc->crtc_offset, 0);
90 WREG32(EVERGREEN_DC_LUT_WRITE_EN_MASK, 0x00000007); 90 WREG32(EVERGREEN_DC_LUT_WRITE_EN_MASK + radeon_crtc->crtc_offset, 0x00000007);
91 91
92 WREG32(EVERGREEN_DC_LUT_RW_INDEX, 0); 92 WREG32(EVERGREEN_DC_LUT_RW_INDEX + radeon_crtc->crtc_offset, 0);
93 for (i = 0; i < 256; i++) { 93 for (i = 0; i < 256; i++) {
94 WREG32(EVERGREEN_DC_LUT_30_COLOR, 94 WREG32(EVERGREEN_DC_LUT_30_COLOR + radeon_crtc->crtc_offset,
95 (radeon_crtc->lut_r[i] << 20) | 95 (radeon_crtc->lut_r[i] << 20) |
96 (radeon_crtc->lut_g[i] << 10) | 96 (radeon_crtc->lut_g[i] << 10) |
97 (radeon_crtc->lut_b[i] << 0)); 97 (radeon_crtc->lut_b[i] << 0));
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 4b05563d99e1..b3749d47be7b 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -216,6 +216,7 @@ static struct drm_driver driver_old = {
216 .mmap = drm_mmap, 216 .mmap = drm_mmap,
217 .poll = drm_poll, 217 .poll = drm_poll,
218 .fasync = drm_fasync, 218 .fasync = drm_fasync,
219 .read = drm_read,
219#ifdef CONFIG_COMPAT 220#ifdef CONFIG_COMPAT
220 .compat_ioctl = radeon_compat_ioctl, 221 .compat_ioctl = radeon_compat_ioctl,
221#endif 222#endif
@@ -304,6 +305,7 @@ static struct drm_driver kms_driver = {
304 .mmap = radeon_mmap, 305 .mmap = radeon_mmap,
305 .poll = drm_poll, 306 .poll = drm_poll,
306 .fasync = drm_fasync, 307 .fasync = drm_fasync,
308 .read = drm_read,
307#ifdef CONFIG_COMPAT 309#ifdef CONFIG_COMPAT
308 .compat_ioctl = radeon_kms_compat_ioctl, 310 .compat_ioctl = radeon_kms_compat_ioctl,
309#endif 311#endif
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
index 30293bec0801..c5ddaf58563a 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -254,6 +254,53 @@ radeon_get_atom_connector_priv_from_encoder(struct drm_encoder *encoder)
254 return dig_connector; 254 return dig_connector;
255} 255}
256 256
257void radeon_panel_mode_fixup(struct drm_encoder *encoder,
258 struct drm_display_mode *adjusted_mode)
259{
260 struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
261 struct drm_device *dev = encoder->dev;
262 struct radeon_device *rdev = dev->dev_private;
263 struct drm_display_mode *native_mode = &radeon_encoder->native_mode;
264 unsigned hblank = native_mode->htotal - native_mode->hdisplay;
265 unsigned vblank = native_mode->vtotal - native_mode->vdisplay;
266 unsigned hover = native_mode->hsync_start - native_mode->hdisplay;
267 unsigned vover = native_mode->vsync_start - native_mode->vdisplay;
268 unsigned hsync_width = native_mode->hsync_end - native_mode->hsync_start;
269 unsigned vsync_width = native_mode->vsync_end - native_mode->vsync_start;
270
271 adjusted_mode->clock = native_mode->clock;
272 adjusted_mode->flags = native_mode->flags;
273
274 if (ASIC_IS_AVIVO(rdev)) {
275 adjusted_mode->hdisplay = native_mode->hdisplay;
276 adjusted_mode->vdisplay = native_mode->vdisplay;
277 }
278
279 adjusted_mode->htotal = native_mode->hdisplay + hblank;
280 adjusted_mode->hsync_start = native_mode->hdisplay + hover;
281 adjusted_mode->hsync_end = adjusted_mode->hsync_start + hsync_width;
282
283 adjusted_mode->vtotal = native_mode->vdisplay + vblank;
284 adjusted_mode->vsync_start = native_mode->vdisplay + vover;
285 adjusted_mode->vsync_end = adjusted_mode->vsync_start + vsync_width;
286
287 drm_mode_set_crtcinfo(adjusted_mode, CRTC_INTERLACE_HALVE_V);
288
289 if (ASIC_IS_AVIVO(rdev)) {
290 adjusted_mode->crtc_hdisplay = native_mode->hdisplay;
291 adjusted_mode->crtc_vdisplay = native_mode->vdisplay;
292 }
293
294 adjusted_mode->crtc_htotal = adjusted_mode->crtc_hdisplay + hblank;
295 adjusted_mode->crtc_hsync_start = adjusted_mode->crtc_hdisplay + hover;
296 adjusted_mode->crtc_hsync_end = adjusted_mode->crtc_hsync_start + hsync_width;
297
298 adjusted_mode->crtc_vtotal = adjusted_mode->crtc_vdisplay + vblank;
299 adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + vover;
300 adjusted_mode->crtc_vsync_end = adjusted_mode->crtc_vsync_start + vsync_width;
301
302}
303
257static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, 304static bool radeon_atom_mode_fixup(struct drm_encoder *encoder,
258 struct drm_display_mode *mode, 305 struct drm_display_mode *mode,
259 struct drm_display_mode *adjusted_mode) 306 struct drm_display_mode *adjusted_mode)
@@ -275,18 +322,8 @@ static bool radeon_atom_mode_fixup(struct drm_encoder *encoder,
275 adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2; 322 adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2;
276 323
277 /* get the native mode for LVDS */ 324 /* get the native mode for LVDS */
278 if (radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) { 325 if (radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT))
279 struct drm_display_mode *native_mode = &radeon_encoder->native_mode; 326 radeon_panel_mode_fixup(encoder, adjusted_mode);
280 int mode_id = adjusted_mode->base.id;
281 *adjusted_mode = *native_mode;
282 if (!ASIC_IS_AVIVO(rdev)) {
283 adjusted_mode->hdisplay = mode->hdisplay;
284 adjusted_mode->vdisplay = mode->vdisplay;
285 adjusted_mode->crtc_hdisplay = mode->hdisplay;
286 adjusted_mode->crtc_vdisplay = mode->vdisplay;
287 }
288 adjusted_mode->base.id = mode_id;
289 }
290 327
291 /* get the native mode for TV */ 328 /* get the native mode for TV */
292 if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) { 329 if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) {
@@ -1326,7 +1363,7 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
1326 1363
1327 radeon_encoder->pixel_clock = adjusted_mode->clock; 1364 radeon_encoder->pixel_clock = adjusted_mode->clock;
1328 1365
1329 if (ASIC_IS_AVIVO(rdev)) { 1366 if (ASIC_IS_AVIVO(rdev) && !ASIC_IS_DCE4(rdev)) {
1330 if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT | ATOM_DEVICE_TV_SUPPORT)) 1367 if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT | ATOM_DEVICE_TV_SUPPORT))
1331 atombios_yuv_setup(encoder, true); 1368 atombios_yuv_setup(encoder, true);
1332 else 1369 else
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index d3657dcfdd26..c633319f98ed 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -165,7 +165,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
165{ 165{
166 struct radeon_device *rdev = dev->dev_private; 166 struct radeon_device *rdev = dev->dev_private;
167 167
168 if (crtc < 0 || crtc > 1) { 168 if (crtc < 0 || crtc >= rdev->num_crtc) {
169 DRM_ERROR("Invalid crtc %d\n", crtc); 169 DRM_ERROR("Invalid crtc %d\n", crtc);
170 return -EINVAL; 170 return -EINVAL;
171 } 171 }
@@ -177,7 +177,7 @@ int radeon_enable_vblank_kms(struct drm_device *dev, int crtc)
177{ 177{
178 struct radeon_device *rdev = dev->dev_private; 178 struct radeon_device *rdev = dev->dev_private;
179 179
180 if (crtc < 0 || crtc > 1) { 180 if (crtc < 0 || crtc >= rdev->num_crtc) {
181 DRM_ERROR("Invalid crtc %d\n", crtc); 181 DRM_ERROR("Invalid crtc %d\n", crtc);
182 return -EINVAL; 182 return -EINVAL;
183 } 183 }
@@ -191,7 +191,7 @@ void radeon_disable_vblank_kms(struct drm_device *dev, int crtc)
191{ 191{
192 struct radeon_device *rdev = dev->dev_private; 192 struct radeon_device *rdev = dev->dev_private;
193 193
194 if (crtc < 0 || crtc > 1) { 194 if (crtc < 0 || crtc >= rdev->num_crtc) {
195 DRM_ERROR("Invalid crtc %d\n", crtc); 195 DRM_ERROR("Invalid crtc %d\n", crtc);
196 return; 196 return;
197 } 197 }
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
index 2441cca7d775..0274abe17ad9 100644
--- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
@@ -228,16 +228,8 @@ static bool radeon_legacy_mode_fixup(struct drm_encoder *encoder,
228 drm_mode_set_crtcinfo(adjusted_mode, 0); 228 drm_mode_set_crtcinfo(adjusted_mode, 0);
229 229
230 /* get the native mode for LVDS */ 230 /* get the native mode for LVDS */
231 if (radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) { 231 if (radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT))
232 struct drm_display_mode *native_mode = &radeon_encoder->native_mode; 232 radeon_panel_mode_fixup(encoder, adjusted_mode);
233 int mode_id = adjusted_mode->base.id;
234 *adjusted_mode = *native_mode;
235 adjusted_mode->hdisplay = mode->hdisplay;
236 adjusted_mode->vdisplay = mode->vdisplay;
237 adjusted_mode->crtc_hdisplay = mode->hdisplay;
238 adjusted_mode->crtc_vdisplay = mode->vdisplay;
239 adjusted_mode->base.id = mode_id;
240 }
241 233
242 return true; 234 return true;
243} 235}
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
index 0b8e32776b10..5413fcd63086 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
@@ -558,6 +558,8 @@ extern int radeon_static_clocks_init(struct drm_device *dev);
558bool radeon_crtc_scaling_mode_fixup(struct drm_crtc *crtc, 558bool radeon_crtc_scaling_mode_fixup(struct drm_crtc *crtc,
559 struct drm_display_mode *mode, 559 struct drm_display_mode *mode,
560 struct drm_display_mode *adjusted_mode); 560 struct drm_display_mode *adjusted_mode);
561void radeon_panel_mode_fixup(struct drm_encoder *encoder,
562 struct drm_display_mode *adjusted_mode);
561void atom_rv515_force_tv_scaler(struct radeon_device *rdev, struct radeon_crtc *radeon_crtc); 563void atom_rv515_force_tv_scaler(struct radeon_device *rdev, struct radeon_crtc *radeon_crtc);
562 564
563/* legacy tv */ 565/* legacy tv */
diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
index 40ab6d9c3736..cc5316dcf580 100644
--- a/drivers/gpu/drm/radeon/radeon_state.c
+++ b/drivers/gpu/drm/radeon/radeon_state.c
@@ -424,7 +424,7 @@ static __inline__ int radeon_check_and_fixup_packet3(drm_radeon_private_t *
424 if ((*cmd & RADEON_GMC_SRC_PITCH_OFFSET_CNTL) && 424 if ((*cmd & RADEON_GMC_SRC_PITCH_OFFSET_CNTL) &&
425 (*cmd & RADEON_GMC_DST_PITCH_OFFSET_CNTL)) { 425 (*cmd & RADEON_GMC_DST_PITCH_OFFSET_CNTL)) {
426 u32 *cmd3 = drm_buffer_pointer_to_dword(cmdbuf->buffer, 3); 426 u32 *cmd3 = drm_buffer_pointer_to_dword(cmdbuf->buffer, 3);
427 offset = *cmd << 10; 427 offset = *cmd3 << 10;
428 if (radeon_check_and_fixup_offset 428 if (radeon_check_and_fixup_offset
429 (dev_priv, file_priv, &offset)) { 429 (dev_priv, file_priv, &offset)) {
430 DRM_ERROR("Invalid second packet offset\n"); 430 DRM_ERROR("Invalid second packet offset\n");
@@ -2895,9 +2895,12 @@ static int radeon_cp_cmdbuf(struct drm_device *dev, void *data,
2895 return rv; 2895 return rv;
2896 rv = drm_buffer_copy_from_user(cmdbuf->buffer, buffer, 2896 rv = drm_buffer_copy_from_user(cmdbuf->buffer, buffer,
2897 cmdbuf->bufsz); 2897 cmdbuf->bufsz);
2898 if (rv) 2898 if (rv) {
2899 drm_buffer_free(cmdbuf->buffer);
2899 return rv; 2900 return rv;
2900 } 2901 }
2902 } else
2903 goto done;
2901 2904
2902 orig_nbox = cmdbuf->nbox; 2905 orig_nbox = cmdbuf->nbox;
2903 2906
@@ -2905,8 +2908,7 @@ static int radeon_cp_cmdbuf(struct drm_device *dev, void *data,
2905 int temp; 2908 int temp;
2906 temp = r300_do_cp_cmdbuf(dev, file_priv, cmdbuf); 2909 temp = r300_do_cp_cmdbuf(dev, file_priv, cmdbuf);
2907 2910
2908 if (cmdbuf->bufsz != 0) 2911 drm_buffer_free(cmdbuf->buffer);
2909 drm_buffer_free(cmdbuf->buffer);
2910 2912
2911 return temp; 2913 return temp;
2912 } 2914 }
@@ -3012,16 +3014,15 @@ static int radeon_cp_cmdbuf(struct drm_device *dev, void *data,
3012 } 3014 }
3013 } 3015 }
3014 3016
3015 if (cmdbuf->bufsz != 0) 3017 drm_buffer_free(cmdbuf->buffer);
3016 drm_buffer_free(cmdbuf->buffer);
3017 3018
3019 done:
3018 DRM_DEBUG("DONE\n"); 3020 DRM_DEBUG("DONE\n");
3019 COMMIT_RING(); 3021 COMMIT_RING();
3020 return 0; 3022 return 0;
3021 3023
3022 err: 3024 err:
3023 if (cmdbuf->bufsz != 0) 3025 drm_buffer_free(cmdbuf->buffer);
3024 drm_buffer_free(cmdbuf->buffer);
3025 return -EINVAL; 3026 return -EINVAL;
3026} 3027}
3027 3028
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index dd47b2a9a791..0e3754a3a303 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -1716,40 +1716,12 @@ int ttm_bo_wait(struct ttm_buffer_object *bo,
1716} 1716}
1717EXPORT_SYMBOL(ttm_bo_wait); 1717EXPORT_SYMBOL(ttm_bo_wait);
1718 1718
1719void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo)
1720{
1721 atomic_set(&bo->reserved, 0);
1722 wake_up_all(&bo->event_queue);
1723}
1724
1725int ttm_bo_block_reservation(struct ttm_buffer_object *bo, bool interruptible,
1726 bool no_wait)
1727{
1728 int ret;
1729
1730 while (unlikely(atomic_cmpxchg(&bo->reserved, 0, 1) != 0)) {
1731 if (no_wait)
1732 return -EBUSY;
1733 else if (interruptible) {
1734 ret = wait_event_interruptible
1735 (bo->event_queue, atomic_read(&bo->reserved) == 0);
1736 if (unlikely(ret != 0))
1737 return ret;
1738 } else {
1739 wait_event(bo->event_queue,
1740 atomic_read(&bo->reserved) == 0);
1741 }
1742 }
1743 return 0;
1744}
1745
1746int ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait) 1719int ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait)
1747{ 1720{
1748 int ret = 0; 1721 int ret = 0;
1749 1722
1750 /* 1723 /*
1751 * Using ttm_bo_reserve instead of ttm_bo_block_reservation 1724 * Using ttm_bo_reserve makes sure the lru lists are updated.
1752 * makes sure the lru lists are updated.
1753 */ 1725 */
1754 1726
1755 ret = ttm_bo_reserve(bo, true, no_wait, false, 0); 1727 ret = ttm_bo_reserve(bo, true, no_wait, false, 0);
diff --git a/drivers/gpu/drm/ttm/ttm_lock.c b/drivers/gpu/drm/ttm/ttm_lock.c
index 3d172ef04ee1..de41e55a944a 100644
--- a/drivers/gpu/drm/ttm/ttm_lock.c
+++ b/drivers/gpu/drm/ttm/ttm_lock.c
@@ -204,7 +204,6 @@ static int __ttm_vt_unlock(struct ttm_lock *lock)
204 lock->flags &= ~TTM_VT_LOCK; 204 lock->flags &= ~TTM_VT_LOCK;
205 wake_up_all(&lock->queue); 205 wake_up_all(&lock->queue);
206 spin_unlock(&lock->lock); 206 spin_unlock(&lock->lock);
207 printk(KERN_INFO TTM_PFX "vt unlock.\n");
208 207
209 return ret; 208 return ret;
210} 209}
@@ -265,10 +264,8 @@ int ttm_vt_lock(struct ttm_lock *lock,
265 ttm_lock_type, &ttm_vt_lock_remove, NULL); 264 ttm_lock_type, &ttm_vt_lock_remove, NULL);
266 if (ret) 265 if (ret)
267 (void)__ttm_vt_unlock(lock); 266 (void)__ttm_vt_unlock(lock);
268 else { 267 else
269 lock->vt_holder = tfile; 268 lock->vt_holder = tfile;
270 printk(KERN_INFO TTM_PFX "vt lock.\n");
271 }
272 269
273 return ret; 270 return ret;
274} 271}
diff --git a/drivers/gpu/drm/via/via_video.c b/drivers/gpu/drm/via/via_video.c
index 6ec04ac12459..6efac8117c93 100644
--- a/drivers/gpu/drm/via/via_video.c
+++ b/drivers/gpu/drm/via/via_video.c
@@ -75,7 +75,7 @@ int via_decoder_futex(struct drm_device *dev, void *data, struct drm_file *file_
75 75
76 DRM_DEBUG("\n"); 76 DRM_DEBUG("\n");
77 77
78 if (fx->lock > VIA_NR_XVMC_LOCKS) 78 if (fx->lock >= VIA_NR_XVMC_LOCKS)
79 return -EFAULT; 79 return -EFAULT;
80 80
81 lock = (volatile int *)XVMCLOCKPTR(sAPriv, fx->lock); 81 lock = (volatile int *)XVMCLOCKPTR(sAPriv, fx->lock);
diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
index d6d1149d525d..c8768f38511e 100644
--- a/drivers/gpu/vga/vga_switcheroo.c
+++ b/drivers/gpu/vga/vga_switcheroo.c
@@ -276,8 +276,10 @@ vga_switcheroo_debugfs_write(struct file *filp, const char __user *ubuf,
276 276
277 mutex_lock(&vgasr_mutex); 277 mutex_lock(&vgasr_mutex);
278 278
279 if (!vgasr_priv.active) 279 if (!vgasr_priv.active) {
280 return -EINVAL; 280 cnt = -EINVAL;
281 goto out;
282 }
281 283
282 /* pwr off the device not in use */ 284 /* pwr off the device not in use */
283 if (strncmp(usercmd, "OFF", 3) == 0) { 285 if (strncmp(usercmd, "OFF", 3) == 0) {
diff --git a/drivers/hid/hid-cherry.c b/drivers/hid/hid-cherry.c
index 7e597d7f770f..24663a8717b1 100644
--- a/drivers/hid/hid-cherry.c
+++ b/drivers/hid/hid-cherry.c
@@ -59,6 +59,7 @@ static int ch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
59 59
60static const struct hid_device_id ch_devices[] = { 60static const struct hid_device_id ch_devices[] = {
61 { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) }, 61 { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) },
62 { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) },
62 { } 63 { }
63}; 64};
64MODULE_DEVICE_TABLE(hid, ch_devices); 65MODULE_DEVICE_TABLE(hid, ch_devices);
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 2e2aa759d230..143e788b729b 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1043,13 +1043,8 @@ void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
1043 1043
1044 if ((hid->claimed & HID_CLAIMED_HIDDEV) && hid->hiddev_report_event) 1044 if ((hid->claimed & HID_CLAIMED_HIDDEV) && hid->hiddev_report_event)
1045 hid->hiddev_report_event(hid, report); 1045 hid->hiddev_report_event(hid, report);
1046 if (hid->claimed & HID_CLAIMED_HIDRAW) { 1046 if (hid->claimed & HID_CLAIMED_HIDRAW)
1047 /* numbered reports need to be passed with the report num */ 1047 hidraw_report_event(hid, data, size);
1048 if (report_enum->numbered)
1049 hidraw_report_event(hid, data - 1, size + 1);
1050 else
1051 hidraw_report_event(hid, data, size);
1052 }
1053 1048
1054 for (a = 0; a < report->maxfield; a++) 1049 for (a = 0; a < report->maxfield; a++)
1055 hid_input_field(hid, report->field[a], cdata, interrupt); 1050 hid_input_field(hid, report->field[a], cdata, interrupt);
@@ -1296,6 +1291,7 @@ static const struct hid_device_id hid_blacklist[] = {
1296 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, 1291 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
1297 { HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) }, 1292 { HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) },
1298 { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) }, 1293 { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) },
1294 { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) },
1299 { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) }, 1295 { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
1300 { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) }, 1296 { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) },
1301 { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2) }, 1297 { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 797e06470356..09d27649a0f7 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -131,6 +131,7 @@
131 131
132#define USB_VENDOR_ID_CHERRY 0x046a 132#define USB_VENDOR_ID_CHERRY 0x046a
133#define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023 133#define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023
134#define USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR 0x0027
134 135
135#define USB_VENDOR_ID_CHIC 0x05fe 136#define USB_VENDOR_ID_CHIC 0x05fe
136#define USB_DEVICE_ID_CHIC_GAMEPAD 0x0014 137#define USB_DEVICE_ID_CHIC_GAMEPAD 0x0014
diff --git a/drivers/hid/hid-ntrig.c b/drivers/hid/hid-ntrig.c
index 9b24fc510712..4777bbfa1cc2 100644
--- a/drivers/hid/hid-ntrig.c
+++ b/drivers/hid/hid-ntrig.c
@@ -1,8 +1,8 @@
1/* 1/*
2 * HID driver for N-Trig touchscreens 2 * HID driver for N-Trig touchscreens
3 * 3 *
4 * Copyright (c) 2008 Rafi Rubin 4 * Copyright (c) 2008-2010 Rafi Rubin
5 * Copyright (c) 2009 Stephane Chatty 5 * Copyright (c) 2009-2010 Stephane Chatty
6 * 6 *
7 */ 7 */
8 8
@@ -15,6 +15,8 @@
15 15
16#include <linux/device.h> 16#include <linux/device.h>
17#include <linux/hid.h> 17#include <linux/hid.h>
18#include <linux/usb.h>
19#include "usbhid/usbhid.h"
18#include <linux/module.h> 20#include <linux/module.h>
19#include <linux/slab.h> 21#include <linux/slab.h>
20 22
@@ -22,17 +24,16 @@
22 24
23#define NTRIG_DUPLICATE_USAGES 0x001 25#define NTRIG_DUPLICATE_USAGES 0x001
24 26
25#define nt_map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, \
26 EV_KEY, (c))
27
28struct ntrig_data { 27struct ntrig_data {
29 /* Incoming raw values for a single contact */ 28 /* Incoming raw values for a single contact */
30 __u16 x, y, w, h; 29 __u16 x, y, w, h;
31 __u16 id; 30 __u16 id;
32 __u8 confidence; 31
32 bool tipswitch;
33 bool confidence;
34 bool first_contact_touch;
33 35
34 bool reading_mt; 36 bool reading_mt;
35 __u8 first_contact_confidence;
36 37
37 __u8 mt_footer[4]; 38 __u8 mt_footer[4];
38 __u8 mt_foot_count; 39 __u8 mt_foot_count;
@@ -139,9 +140,10 @@ static int ntrig_event (struct hid_device *hid, struct hid_field *field,
139 case 0xff000001: 140 case 0xff000001:
140 /* Tag indicating the start of a multitouch group */ 141 /* Tag indicating the start of a multitouch group */
141 nd->reading_mt = 1; 142 nd->reading_mt = 1;
142 nd->first_contact_confidence = 0; 143 nd->first_contact_touch = 0;
143 break; 144 break;
144 case HID_DG_TIPSWITCH: 145 case HID_DG_TIPSWITCH:
146 nd->tipswitch = value;
145 /* Prevent emission of touch until validated */ 147 /* Prevent emission of touch until validated */
146 return 1; 148 return 1;
147 case HID_DG_CONFIDENCE: 149 case HID_DG_CONFIDENCE:
@@ -169,8 +171,14 @@ static int ntrig_event (struct hid_device *hid, struct hid_field *field,
169 * to emit a normal (X, Y) position 171 * to emit a normal (X, Y) position
170 */ 172 */
171 if (!nd->reading_mt) { 173 if (!nd->reading_mt) {
174 /*
175 * TipSwitch indicates the presence of a
176 * finger in single touch mode.
177 */
178 input_report_key(input, BTN_TOUCH,
179 nd->tipswitch);
172 input_report_key(input, BTN_TOOL_DOUBLETAP, 180 input_report_key(input, BTN_TOOL_DOUBLETAP,
173 (nd->confidence != 0)); 181 nd->tipswitch);
174 input_event(input, EV_ABS, ABS_X, nd->x); 182 input_event(input, EV_ABS, ABS_X, nd->x);
175 input_event(input, EV_ABS, ABS_Y, nd->y); 183 input_event(input, EV_ABS, ABS_Y, nd->y);
176 } 184 }
@@ -209,7 +217,13 @@ static int ntrig_event (struct hid_device *hid, struct hid_field *field,
209 217
210 /* emit a normal (X, Y) for the first point only */ 218 /* emit a normal (X, Y) for the first point only */
211 if (nd->id == 0) { 219 if (nd->id == 0) {
212 nd->first_contact_confidence = nd->confidence; 220 /*
221 * TipSwitch is superfluous in multitouch
222 * mode. The footer events tell us
223 * if there is a finger on the screen or
224 * not.
225 */
226 nd->first_contact_touch = nd->confidence;
213 input_event(input, EV_ABS, ABS_X, nd->x); 227 input_event(input, EV_ABS, ABS_X, nd->x);
214 input_event(input, EV_ABS, ABS_Y, nd->y); 228 input_event(input, EV_ABS, ABS_Y, nd->y);
215 } 229 }
@@ -239,30 +253,11 @@ static int ntrig_event (struct hid_device *hid, struct hid_field *field,
239 253
240 nd->reading_mt = 0; 254 nd->reading_mt = 0;
241 255
242 if (nd->first_contact_confidence) { 256 if (nd->first_contact_touch) {
243 switch (value) { 257 input_report_key(input, BTN_TOOL_DOUBLETAP, 1);
244 case 0: /* for single touch devices */
245 case 1:
246 input_report_key(input,
247 BTN_TOOL_DOUBLETAP, 1);
248 break;
249 case 2:
250 input_report_key(input,
251 BTN_TOOL_TRIPLETAP, 1);
252 break;
253 case 3:
254 default:
255 input_report_key(input,
256 BTN_TOOL_QUADTAP, 1);
257 }
258 input_report_key(input, BTN_TOUCH, 1); 258 input_report_key(input, BTN_TOUCH, 1);
259 } else { 259 } else {
260 input_report_key(input, 260 input_report_key(input, BTN_TOOL_DOUBLETAP, 0);
261 BTN_TOOL_DOUBLETAP, 0);
262 input_report_key(input,
263 BTN_TOOL_TRIPLETAP, 0);
264 input_report_key(input,
265 BTN_TOOL_QUADTAP, 0);
266 input_report_key(input, BTN_TOUCH, 0); 261 input_report_key(input, BTN_TOUCH, 0);
267 } 262 }
268 break; 263 break;
@@ -286,6 +281,7 @@ static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)
286 struct ntrig_data *nd; 281 struct ntrig_data *nd;
287 struct hid_input *hidinput; 282 struct hid_input *hidinput;
288 struct input_dev *input; 283 struct input_dev *input;
284 struct hid_report *report;
289 285
290 if (id->driver_data) 286 if (id->driver_data)
291 hdev->quirks |= HID_QUIRK_MULTI_INPUT; 287 hdev->quirks |= HID_QUIRK_MULTI_INPUT;
@@ -327,13 +323,7 @@ static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)
327 __clear_bit(BTN_TOOL_PEN, input->keybit); 323 __clear_bit(BTN_TOOL_PEN, input->keybit);
328 __clear_bit(BTN_TOOL_FINGER, input->keybit); 324 __clear_bit(BTN_TOOL_FINGER, input->keybit);
329 __clear_bit(BTN_0, input->keybit); 325 __clear_bit(BTN_0, input->keybit);
330 /*
331 * A little something special to enable
332 * two and three finger taps.
333 */
334 __set_bit(BTN_TOOL_DOUBLETAP, input->keybit); 326 __set_bit(BTN_TOOL_DOUBLETAP, input->keybit);
335 __set_bit(BTN_TOOL_TRIPLETAP, input->keybit);
336 __set_bit(BTN_TOOL_QUADTAP, input->keybit);
337 /* 327 /*
338 * The physical touchscreen (single touch) 328 * The physical touchscreen (single touch)
339 * input has a value for physical, whereas 329 * input has a value for physical, whereas
@@ -349,6 +339,12 @@ static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)
349 } 339 }
350 } 340 }
351 341
342 /* This is needed for devices with more recent firmware versions */
343 report = hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0x0a];
344 if (report)
345 usbhid_submit_report(hdev, report, USB_DIR_OUT);
346
347
352 return 0; 348 return 0;
353err_free: 349err_free:
354 kfree(nd); 350 kfree(nd);
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
index 7502a4b2fa86..402d5574b574 100644
--- a/drivers/hid/hid-sony.c
+++ b/drivers/hid/hid-sony.c
@@ -76,7 +76,7 @@ static int sony_set_operational_usb(struct hid_device *hdev)
76 76
77static int sony_set_operational_bt(struct hid_device *hdev) 77static int sony_set_operational_bt(struct hid_device *hdev)
78{ 78{
79 unsigned char buf[] = { 0x53, 0xf4, 0x42, 0x03, 0x00, 0x00 }; 79 unsigned char buf[] = { 0xf4, 0x42, 0x03, 0x00, 0x00 };
80 return hdev->hid_output_raw_report(hdev, buf, sizeof(buf), HID_FEATURE_REPORT); 80 return hdev->hid_output_raw_report(hdev, buf, sizeof(buf), HID_FEATURE_REPORT);
81} 81}
82 82
diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c
index f7700cf49721..f947d8337e21 100644
--- a/drivers/hid/hid-wacom.c
+++ b/drivers/hid/hid-wacom.c
@@ -277,7 +277,6 @@ static int __init wacom_init(void)
277 ret = hid_register_driver(&wacom_driver); 277 ret = hid_register_driver(&wacom_driver);
278 if (ret) 278 if (ret)
279 printk(KERN_ERR "can't register wacom driver\n"); 279 printk(KERN_ERR "can't register wacom driver\n");
280 printk(KERN_ERR "wacom driver registered\n");
281 return ret; 280 return ret;
282} 281}
283 282
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 56d06cd8075b..7b85b696fdab 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -999,13 +999,6 @@ static int usbhid_start(struct hid_device *hid)
999 } 999 }
1000 } 1000 }
1001 1001
1002 init_waitqueue_head(&usbhid->wait);
1003 INIT_WORK(&usbhid->reset_work, hid_reset);
1004 INIT_WORK(&usbhid->restart_work, __usbhid_restart_queues);
1005 setup_timer(&usbhid->io_retry, hid_retry_timeout, (unsigned long) hid);
1006
1007 spin_lock_init(&usbhid->lock);
1008
1009 usbhid->urbctrl = usb_alloc_urb(0, GFP_KERNEL); 1002 usbhid->urbctrl = usb_alloc_urb(0, GFP_KERNEL);
1010 if (!usbhid->urbctrl) { 1003 if (!usbhid->urbctrl) {
1011 ret = -ENOMEM; 1004 ret = -ENOMEM;
@@ -1179,6 +1172,12 @@ static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id *
1179 usbhid->intf = intf; 1172 usbhid->intf = intf;
1180 usbhid->ifnum = interface->desc.bInterfaceNumber; 1173 usbhid->ifnum = interface->desc.bInterfaceNumber;
1181 1174
1175 init_waitqueue_head(&usbhid->wait);
1176 INIT_WORK(&usbhid->reset_work, hid_reset);
1177 INIT_WORK(&usbhid->restart_work, __usbhid_restart_queues);
1178 setup_timer(&usbhid->io_retry, hid_retry_timeout, (unsigned long) hid);
1179 spin_lock_init(&usbhid->lock);
1180
1182 ret = hid_add_device(hid); 1181 ret = hid_add_device(hid);
1183 if (ret) { 1182 if (ret) {
1184 if (ret != -ENODEV) 1183 if (ret != -ENODEV)
diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
index 0f28d91f29d8..f085c18d2905 100644
--- a/drivers/hwmon/applesmc.c
+++ b/drivers/hwmon/applesmc.c
@@ -195,6 +195,9 @@ static unsigned int applesmc_accelerometer;
195/* Indicates whether this computer has light sensors and keyboard backlight. */ 195/* Indicates whether this computer has light sensors and keyboard backlight. */
196static unsigned int applesmc_light; 196static unsigned int applesmc_light;
197 197
198/* The number of fans handled by the driver */
199static unsigned int fans_handled;
200
198/* Indicates which temperature sensors set to use. */ 201/* Indicates which temperature sensors set to use. */
199static unsigned int applesmc_temperature_set; 202static unsigned int applesmc_temperature_set;
200 203
@@ -1492,39 +1495,24 @@ static int __init applesmc_init(void)
1492 1495
1493 /* create fan files */ 1496 /* create fan files */
1494 count = applesmc_get_fan_count(); 1497 count = applesmc_get_fan_count();
1495 if (count < 0) { 1498 if (count < 0)
1496 printk(KERN_ERR "applesmc: Cannot get the number of fans.\n"); 1499 printk(KERN_ERR "applesmc: Cannot get the number of fans.\n");
1497 } else { 1500 else
1498 printk(KERN_INFO "applesmc: %d fans found.\n", count); 1501 printk(KERN_INFO "applesmc: %d fans found.\n", count);
1499 1502
1500 switch (count) { 1503 if (count > 4) {
1501 default: 1504 count = 4;
1502 printk(KERN_WARNING "applesmc: More than 4 fans found," 1505 printk(KERN_WARNING "applesmc: More than 4 fans found,"
1503 " but at most 4 fans are supported" 1506 " but at most 4 fans are supported"
1504 " by the driver.\n"); 1507 " by the driver.\n");
1505 case 4: 1508 }
1506 ret = sysfs_create_group(&pdev->dev.kobj, 1509
1507 &fan_attribute_groups[3]); 1510 while (fans_handled < count) {
1508 if (ret) 1511 ret = sysfs_create_group(&pdev->dev.kobj,
1509 goto out_key_enumeration; 1512 &fan_attribute_groups[fans_handled]);
1510 case 3: 1513 if (ret)
1511 ret = sysfs_create_group(&pdev->dev.kobj, 1514 goto out_fans;
1512 &fan_attribute_groups[2]); 1515 fans_handled++;
1513 if (ret)
1514 goto out_key_enumeration;
1515 case 2:
1516 ret = sysfs_create_group(&pdev->dev.kobj,
1517 &fan_attribute_groups[1]);
1518 if (ret)
1519 goto out_key_enumeration;
1520 case 1:
1521 ret = sysfs_create_group(&pdev->dev.kobj,
1522 &fan_attribute_groups[0]);
1523 if (ret)
1524 goto out_fan_1;
1525 case 0:
1526 ;
1527 }
1528 } 1516 }
1529 1517
1530 for (i = 0; 1518 for (i = 0;
@@ -1593,10 +1581,10 @@ out_accelerometer:
1593 applesmc_release_accelerometer(); 1581 applesmc_release_accelerometer();
1594out_temperature: 1582out_temperature:
1595 sysfs_remove_group(&pdev->dev.kobj, &temperature_attributes_group); 1583 sysfs_remove_group(&pdev->dev.kobj, &temperature_attributes_group);
1596 sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[0]); 1584out_fans:
1597out_fan_1: 1585 while (fans_handled)
1598 sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[1]); 1586 sysfs_remove_group(&pdev->dev.kobj,
1599out_key_enumeration: 1587 &fan_attribute_groups[--fans_handled]);
1600 sysfs_remove_group(&pdev->dev.kobj, &key_enumeration_group); 1588 sysfs_remove_group(&pdev->dev.kobj, &key_enumeration_group);
1601out_name: 1589out_name:
1602 sysfs_remove_file(&pdev->dev.kobj, &dev_attr_name.attr); 1590 sysfs_remove_file(&pdev->dev.kobj, &dev_attr_name.attr);
@@ -1622,8 +1610,9 @@ static void __exit applesmc_exit(void)
1622 if (applesmc_accelerometer) 1610 if (applesmc_accelerometer)
1623 applesmc_release_accelerometer(); 1611 applesmc_release_accelerometer();
1624 sysfs_remove_group(&pdev->dev.kobj, &temperature_attributes_group); 1612 sysfs_remove_group(&pdev->dev.kobj, &temperature_attributes_group);
1625 sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[0]); 1613 while (fans_handled)
1626 sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[1]); 1614 sysfs_remove_group(&pdev->dev.kobj,
1615 &fan_attribute_groups[--fans_handled]);
1627 sysfs_remove_group(&pdev->dev.kobj, &key_enumeration_group); 1616 sysfs_remove_group(&pdev->dev.kobj, &key_enumeration_group);
1628 sysfs_remove_file(&pdev->dev.kobj, &dev_attr_name.attr); 1617 sysfs_remove_file(&pdev->dev.kobj, &dev_attr_name.attr);
1629 platform_device_unregister(pdev); 1618 platform_device_unregister(pdev);
diff --git a/drivers/hwmon/asc7621.c b/drivers/hwmon/asc7621.c
index 7f948105d8ad..0f388adc6187 100644
--- a/drivers/hwmon/asc7621.c
+++ b/drivers/hwmon/asc7621.c
@@ -268,8 +268,11 @@ static ssize_t store_fan16(struct device *dev,
268 if (strict_strtol(buf, 10, &reqval)) 268 if (strict_strtol(buf, 10, &reqval))
269 return -EINVAL; 269 return -EINVAL;
270 270
271 /* If a minimum RPM of zero is requested, then we set the register to
272 0xffff. This value allows the fan to be stopped completely without
273 generating an alarm. */
271 reqval = 274 reqval =
272 (SENSORS_LIMIT((reqval) <= 0 ? 0 : 5400000 / (reqval), 0, 65534)); 275 (reqval <= 0 ? 0xffff : SENSORS_LIMIT(5400000 / reqval, 0, 0xfffe));
273 276
274 mutex_lock(&data->update_lock); 277 mutex_lock(&data->update_lock);
275 data->reg[param->msb[0]] = (reqval >> 8) & 0xff; 278 data->reg[param->msb[0]] = (reqval >> 8) & 0xff;
@@ -285,8 +288,9 @@ static ssize_t store_fan16(struct device *dev,
285 * Voltages are scaled in the device so that the nominal voltage 288 * Voltages are scaled in the device so that the nominal voltage
286 * is 3/4ths of the 0-255 range (i.e. 192). 289 * is 3/4ths of the 0-255 range (i.e. 192).
287 * If all voltages are 'normal' then all voltage registers will 290 * If all voltages are 'normal' then all voltage registers will
288 * read 0xC0. This doesn't help us if we don't have a point of refernce. 291 * read 0xC0.
289 * The data sheet however provides us with the full scale value for each 292 *
293 * The data sheet provides us with the 3/4 scale value for each voltage
290 * which is stored in in_scaling. The sda->index parameter value provides 294 * which is stored in in_scaling. The sda->index parameter value provides
291 * the index into in_scaling. 295 * the index into in_scaling.
292 * 296 *
@@ -295,7 +299,7 @@ static ssize_t store_fan16(struct device *dev,
295 */ 299 */
296 300
297static int asc7621_in_scaling[] = { 301static int asc7621_in_scaling[] = {
298 3320, 3000, 4380, 6640, 16000 302 2500, 2250, 3300, 5000, 12000
299}; 303};
300 304
301static ssize_t show_in10(struct device *dev, struct device_attribute *attr, 305static ssize_t show_in10(struct device *dev, struct device_attribute *attr,
@@ -306,19 +310,12 @@ static ssize_t show_in10(struct device *dev, struct device_attribute *attr,
306 u8 nr = sda->index; 310 u8 nr = sda->index;
307 311
308 mutex_lock(&data->update_lock); 312 mutex_lock(&data->update_lock);
309 regval = (data->reg[param->msb[0]] * asc7621_in_scaling[nr]) / 256; 313 regval = (data->reg[param->msb[0]] << 8) | (data->reg[param->lsb[0]]);
310
311 /* The LSB value is a 2-bit scaling of the MSB's LSbit value.
312 * I.E. If the maximim voltage for this input is 6640 millivolts then
313 * a MSB register value of 0 = 0mv and 255 = 6640mv.
314 * A 1 step change therefore represents 25.9mv (6640 / 256).
315 * The extra 2-bits therefore represent increments of 6.48mv.
316 */
317 regval += ((asc7621_in_scaling[nr] / 256) / 4) *
318 (data->reg[param->lsb[0]] >> 6);
319
320 mutex_unlock(&data->update_lock); 314 mutex_unlock(&data->update_lock);
321 315
316 /* The LSB value is a 2-bit scaling of the MSB's LSbit value. */
317 regval = (regval >> 6) * asc7621_in_scaling[nr] / (0xc0 << 2);
318
322 return sprintf(buf, "%u\n", regval); 319 return sprintf(buf, "%u\n", regval);
323} 320}
324 321
@@ -331,7 +328,7 @@ static ssize_t show_in8(struct device *dev, struct device_attribute *attr,
331 328
332 return sprintf(buf, "%u\n", 329 return sprintf(buf, "%u\n",
333 ((data->reg[param->msb[0]] * 330 ((data->reg[param->msb[0]] *
334 asc7621_in_scaling[nr]) / 256)); 331 asc7621_in_scaling[nr]) / 0xc0));
335} 332}
336 333
337static ssize_t store_in8(struct device *dev, struct device_attribute *attr, 334static ssize_t store_in8(struct device *dev, struct device_attribute *attr,
@@ -344,9 +341,11 @@ static ssize_t store_in8(struct device *dev, struct device_attribute *attr,
344 if (strict_strtol(buf, 10, &reqval)) 341 if (strict_strtol(buf, 10, &reqval))
345 return -EINVAL; 342 return -EINVAL;
346 343
347 reqval = SENSORS_LIMIT(reqval, 0, asc7621_in_scaling[nr]); 344 reqval = SENSORS_LIMIT(reqval, 0, 0xffff);
345
346 reqval = reqval * 0xc0 / asc7621_in_scaling[nr];
348 347
349 reqval = (reqval * 255 + 128) / asc7621_in_scaling[nr]; 348 reqval = SENSORS_LIMIT(reqval, 0, 0xff);
350 349
351 mutex_lock(&data->update_lock); 350 mutex_lock(&data->update_lock);
352 data->reg[param->msb[0]] = reqval; 351 data->reg[param->msb[0]] = reqval;
@@ -846,11 +845,11 @@ static struct asc7621_param asc7621_params[] = {
846 PWRITE(in3_max, 3, PRI_LOW, 0x4b, 0, 0, 0, in8), 845 PWRITE(in3_max, 3, PRI_LOW, 0x4b, 0, 0, 0, in8),
847 PWRITE(in4_max, 4, PRI_LOW, 0x4d, 0, 0, 0, in8), 846 PWRITE(in4_max, 4, PRI_LOW, 0x4d, 0, 0, 0, in8),
848 847
849 PREAD(in0_alarm, 0, PRI_LOW, 0x41, 0, 0x01, 0, bitmask), 848 PREAD(in0_alarm, 0, PRI_HIGH, 0x41, 0, 0x01, 0, bitmask),
850 PREAD(in1_alarm, 1, PRI_LOW, 0x41, 0, 0x01, 1, bitmask), 849 PREAD(in1_alarm, 1, PRI_HIGH, 0x41, 0, 0x01, 1, bitmask),
851 PREAD(in2_alarm, 2, PRI_LOW, 0x41, 0, 0x01, 2, bitmask), 850 PREAD(in2_alarm, 2, PRI_HIGH, 0x41, 0, 0x01, 2, bitmask),
852 PREAD(in3_alarm, 3, PRI_LOW, 0x41, 0, 0x01, 3, bitmask), 851 PREAD(in3_alarm, 3, PRI_HIGH, 0x41, 0, 0x01, 3, bitmask),
853 PREAD(in4_alarm, 4, PRI_LOW, 0x42, 0, 0x01, 0, bitmask), 852 PREAD(in4_alarm, 4, PRI_HIGH, 0x42, 0, 0x01, 0, bitmask),
854 853
855 PREAD(fan1_input, 0, PRI_HIGH, 0x29, 0x28, 0, 0, fan16), 854 PREAD(fan1_input, 0, PRI_HIGH, 0x29, 0x28, 0, 0, fan16),
856 PREAD(fan2_input, 1, PRI_HIGH, 0x2b, 0x2a, 0, 0, fan16), 855 PREAD(fan2_input, 1, PRI_HIGH, 0x2b, 0x2a, 0, 0, fan16),
@@ -862,10 +861,10 @@ static struct asc7621_param asc7621_params[] = {
862 PWRITE(fan3_min, 2, PRI_LOW, 0x59, 0x58, 0, 0, fan16), 861 PWRITE(fan3_min, 2, PRI_LOW, 0x59, 0x58, 0, 0, fan16),
863 PWRITE(fan4_min, 3, PRI_LOW, 0x5b, 0x5a, 0, 0, fan16), 862 PWRITE(fan4_min, 3, PRI_LOW, 0x5b, 0x5a, 0, 0, fan16),
864 863
865 PREAD(fan1_alarm, 0, PRI_LOW, 0x42, 0, 0x01, 0, bitmask), 864 PREAD(fan1_alarm, 0, PRI_HIGH, 0x42, 0, 0x01, 2, bitmask),
866 PREAD(fan2_alarm, 1, PRI_LOW, 0x42, 0, 0x01, 1, bitmask), 865 PREAD(fan2_alarm, 1, PRI_HIGH, 0x42, 0, 0x01, 3, bitmask),
867 PREAD(fan3_alarm, 2, PRI_LOW, 0x42, 0, 0x01, 2, bitmask), 866 PREAD(fan3_alarm, 2, PRI_HIGH, 0x42, 0, 0x01, 4, bitmask),
868 PREAD(fan4_alarm, 3, PRI_LOW, 0x42, 0, 0x01, 3, bitmask), 867 PREAD(fan4_alarm, 3, PRI_HIGH, 0x42, 0, 0x01, 5, bitmask),
869 868
870 PREAD(temp1_input, 0, PRI_HIGH, 0x25, 0x10, 0, 0, temp10), 869 PREAD(temp1_input, 0, PRI_HIGH, 0x25, 0x10, 0, 0, temp10),
871 PREAD(temp2_input, 1, PRI_HIGH, 0x26, 0x15, 0, 0, temp10), 870 PREAD(temp2_input, 1, PRI_HIGH, 0x26, 0x15, 0, 0, temp10),
@@ -886,10 +885,10 @@ static struct asc7621_param asc7621_params[] = {
886 PWRITE(temp3_max, 2, PRI_LOW, 0x53, 0, 0, 0, temp8), 885 PWRITE(temp3_max, 2, PRI_LOW, 0x53, 0, 0, 0, temp8),
887 PWRITE(temp4_max, 3, PRI_LOW, 0x35, 0, 0, 0, temp8), 886 PWRITE(temp4_max, 3, PRI_LOW, 0x35, 0, 0, 0, temp8),
888 887
889 PREAD(temp1_alarm, 0, PRI_LOW, 0x41, 0, 0x01, 4, bitmask), 888 PREAD(temp1_alarm, 0, PRI_HIGH, 0x41, 0, 0x01, 4, bitmask),
890 PREAD(temp2_alarm, 1, PRI_LOW, 0x41, 0, 0x01, 5, bitmask), 889 PREAD(temp2_alarm, 1, PRI_HIGH, 0x41, 0, 0x01, 5, bitmask),
891 PREAD(temp3_alarm, 2, PRI_LOW, 0x41, 0, 0x01, 6, bitmask), 890 PREAD(temp3_alarm, 2, PRI_HIGH, 0x41, 0, 0x01, 6, bitmask),
892 PREAD(temp4_alarm, 3, PRI_LOW, 0x43, 0, 0x01, 0, bitmask), 891 PREAD(temp4_alarm, 3, PRI_HIGH, 0x43, 0, 0x01, 0, bitmask),
893 892
894 PWRITE(temp1_source, 0, PRI_LOW, 0x02, 0, 0x07, 4, bitmask), 893 PWRITE(temp1_source, 0, PRI_LOW, 0x02, 0, 0x07, 4, bitmask),
895 PWRITE(temp2_source, 1, PRI_LOW, 0x02, 0, 0x07, 0, bitmask), 894 PWRITE(temp2_source, 1, PRI_LOW, 0x02, 0, 0x07, 0, bitmask),
@@ -898,7 +897,7 @@ static struct asc7621_param asc7621_params[] = {
898 897
899 PWRITE(temp1_smoothing_enable, 0, PRI_LOW, 0x62, 0, 0x01, 3, bitmask), 898 PWRITE(temp1_smoothing_enable, 0, PRI_LOW, 0x62, 0, 0x01, 3, bitmask),
900 PWRITE(temp2_smoothing_enable, 1, PRI_LOW, 0x63, 0, 0x01, 7, bitmask), 899 PWRITE(temp2_smoothing_enable, 1, PRI_LOW, 0x63, 0, 0x01, 7, bitmask),
901 PWRITE(temp3_smoothing_enable, 2, PRI_LOW, 0x64, 0, 0x01, 3, bitmask), 900 PWRITE(temp3_smoothing_enable, 2, PRI_LOW, 0x63, 0, 0x01, 3, bitmask),
902 PWRITE(temp4_smoothing_enable, 3, PRI_LOW, 0x3c, 0, 0x01, 3, bitmask), 901 PWRITE(temp4_smoothing_enable, 3, PRI_LOW, 0x3c, 0, 0x01, 3, bitmask),
903 902
904 PWRITE(temp1_smoothing_time, 0, PRI_LOW, 0x62, 0, 0x07, 0, temp_st), 903 PWRITE(temp1_smoothing_time, 0, PRI_LOW, 0x62, 0, 0x07, 0, temp_st),
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index 75f3fa55663d..16c420240724 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -1169,15 +1169,19 @@ static int atk_create_files(struct atk_data *data)
1169 int err; 1169 int err;
1170 1170
1171 list_for_each_entry(s, &data->sensor_list, list) { 1171 list_for_each_entry(s, &data->sensor_list, list) {
1172 sysfs_attr_init(&s->input_attr.attr);
1172 err = device_create_file(data->hwmon_dev, &s->input_attr); 1173 err = device_create_file(data->hwmon_dev, &s->input_attr);
1173 if (err) 1174 if (err)
1174 return err; 1175 return err;
1176 sysfs_attr_init(&s->label_attr.attr);
1175 err = device_create_file(data->hwmon_dev, &s->label_attr); 1177 err = device_create_file(data->hwmon_dev, &s->label_attr);
1176 if (err) 1178 if (err)
1177 return err; 1179 return err;
1180 sysfs_attr_init(&s->limit1_attr.attr);
1178 err = device_create_file(data->hwmon_dev, &s->limit1_attr); 1181 err = device_create_file(data->hwmon_dev, &s->limit1_attr);
1179 if (err) 1182 if (err)
1180 return err; 1183 return err;
1184 sysfs_attr_init(&s->limit2_attr.attr);
1181 err = device_create_file(data->hwmon_dev, &s->limit2_attr); 1185 err = device_create_file(data->hwmon_dev, &s->limit2_attr);
1182 if (err) 1186 if (err)
1183 return err; 1187 return err;
diff --git a/drivers/hwmon/hp_accel.c b/drivers/hwmon/hp_accel.c
index be475e844c2a..7580f55e67e3 100644
--- a/drivers/hwmon/hp_accel.c
+++ b/drivers/hwmon/hp_accel.c
@@ -217,6 +217,10 @@ static struct dmi_system_id lis3lv02d_dmi_ids[] = {
217 AXIS_DMI_MATCH("DV7", "HP Pavilion dv7", x_inverted), 217 AXIS_DMI_MATCH("DV7", "HP Pavilion dv7", x_inverted),
218 AXIS_DMI_MATCH("HP8710", "HP Compaq 8710", y_inverted), 218 AXIS_DMI_MATCH("HP8710", "HP Compaq 8710", y_inverted),
219 AXIS_DMI_MATCH("HDX18", "HP HDX 18", x_inverted), 219 AXIS_DMI_MATCH("HDX18", "HP HDX 18", x_inverted),
220 AXIS_DMI_MATCH("HPB432x", "HP ProBook 432", xy_rotated_left),
221 AXIS_DMI_MATCH("HPB442x", "HP ProBook 442", xy_rotated_left),
222 AXIS_DMI_MATCH("HPB452x", "HP ProBook 452", y_inverted),
223 AXIS_DMI_MATCH("HPB522x", "HP ProBook 522", xy_swap),
220 { NULL, } 224 { NULL, }
221/* Laptop models without axis info (yet): 225/* Laptop models without axis info (yet):
222 * "NC6910" "HP Compaq 6910" 226 * "NC6910" "HP Compaq 6910"
@@ -324,8 +328,8 @@ static int lis3lv02d_remove(struct acpi_device *device, int type)
324 lis3lv02d_joystick_disable(); 328 lis3lv02d_joystick_disable();
325 lis3lv02d_poweroff(&lis3_dev); 329 lis3lv02d_poweroff(&lis3_dev);
326 330
327 flush_work(&hpled_led.work);
328 led_classdev_unregister(&hpled_led.led_classdev); 331 led_classdev_unregister(&hpled_led.led_classdev);
332 flush_work(&hpled_led.work);
329 333
330 return lis3lv02d_remove_fs(&lis3_dev); 334 return lis3lv02d_remove_fs(&lis3_dev);
331} 335}
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index f7e27b702375..d1ff9408dc1f 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -146,10 +146,10 @@ static int i2c_imx_bus_busy(struct imx_i2c_struct *i2c_imx, int for_busy)
146 "<%s> I2C Interrupted\n", __func__); 146 "<%s> I2C Interrupted\n", __func__);
147 return -EINTR; 147 return -EINTR;
148 } 148 }
149 if (time_after(jiffies, orig_jiffies + HZ / 1000)) { 149 if (time_after(jiffies, orig_jiffies + msecs_to_jiffies(500))) {
150 dev_dbg(&i2c_imx->adapter.dev, 150 dev_dbg(&i2c_imx->adapter.dev,
151 "<%s> I2C bus is busy\n", __func__); 151 "<%s> I2C bus is busy\n", __func__);
152 return -EIO; 152 return -ETIMEDOUT;
153 } 153 }
154 schedule(); 154 schedule();
155 } 155 }
@@ -444,6 +444,8 @@ static int i2c_imx_xfer(struct i2c_adapter *adapter,
444 result = i2c_imx_read(i2c_imx, &msgs[i]); 444 result = i2c_imx_read(i2c_imx, &msgs[i]);
445 else 445 else
446 result = i2c_imx_write(i2c_imx, &msgs[i]); 446 result = i2c_imx_write(i2c_imx, &msgs[i]);
447 if (result)
448 goto fail0;
447 } 449 }
448 450
449fail0: 451fail0:
diff --git a/drivers/i2c/busses/i2c-octeon.c b/drivers/i2c/busses/i2c-octeon.c
index a2481f40ea1c..0e9f85d0a835 100644
--- a/drivers/i2c/busses/i2c-octeon.c
+++ b/drivers/i2c/busses/i2c-octeon.c
@@ -447,7 +447,7 @@ static struct i2c_adapter octeon_i2c_ops = {
447/** 447/**
448 * octeon_i2c_setclock - Calculate and set clock divisors. 448 * octeon_i2c_setclock - Calculate and set clock divisors.
449 */ 449 */
450static int __init octeon_i2c_setclock(struct octeon_i2c *i2c) 450static int __devinit octeon_i2c_setclock(struct octeon_i2c *i2c)
451{ 451{
452 int tclk, thp_base, inc, thp_idx, mdiv_idx, ndiv_idx, foscl, diff; 452 int tclk, thp_base, inc, thp_idx, mdiv_idx, ndiv_idx, foscl, diff;
453 int thp = 0x18, mdiv = 2, ndiv = 0, delta_hz = 1000000; 453 int thp = 0x18, mdiv = 2, ndiv = 0, delta_hz = 1000000;
@@ -490,7 +490,7 @@ static int __init octeon_i2c_setclock(struct octeon_i2c *i2c)
490 return 0; 490 return 0;
491} 491}
492 492
493static int __init octeon_i2c_initlowlevel(struct octeon_i2c *i2c) 493static int __devinit octeon_i2c_initlowlevel(struct octeon_i2c *i2c)
494{ 494{
495 u8 status; 495 u8 status;
496 int tries; 496 int tries;
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 6bd0f19cd451..389ac6032a7b 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -903,6 +903,11 @@ omap_i2c_probe(struct platform_device *pdev)
903 903
904 platform_set_drvdata(pdev, dev); 904 platform_set_drvdata(pdev, dev);
905 905
906 if (cpu_is_omap7xx())
907 dev->reg_shift = 1;
908 else
909 dev->reg_shift = 2;
910
906 if ((r = omap_i2c_get_clocks(dev)) != 0) 911 if ((r = omap_i2c_get_clocks(dev)) != 0)
907 goto err_iounmap; 912 goto err_iounmap;
908 913
@@ -926,11 +931,6 @@ omap_i2c_probe(struct platform_device *pdev)
926 dev->b_hw = 1; /* Enable hardware fixes */ 931 dev->b_hw = 1; /* Enable hardware fixes */
927 } 932 }
928 933
929 if (cpu_is_omap7xx())
930 dev->reg_shift = 1;
931 else
932 dev->reg_shift = 2;
933
934 /* reset ASAP, clearing any IRQs */ 934 /* reset ASAP, clearing any IRQs */
935 omap_i2c_init(dev); 935 omap_i2c_init(dev);
936 936
diff --git a/drivers/i2c/busses/i2c-pnx.c b/drivers/i2c/busses/i2c-pnx.c
index 247103372a06..a97e3fec8148 100644
--- a/drivers/i2c/busses/i2c-pnx.c
+++ b/drivers/i2c/busses/i2c-pnx.c
@@ -173,6 +173,9 @@ static int i2c_pnx_master_xmit(struct i2c_pnx_algo_data *alg_data)
173 /* We still have something to talk about... */ 173 /* We still have something to talk about... */
174 val = *alg_data->mif.buf++; 174 val = *alg_data->mif.buf++;
175 175
176 if (alg_data->mif.len == 1)
177 val |= stop_bit;
178
176 alg_data->mif.len--; 179 alg_data->mif.len--;
177 iowrite32(val, I2C_REG_TX(alg_data)); 180 iowrite32(val, I2C_REG_TX(alg_data));
178 181
@@ -246,6 +249,9 @@ static int i2c_pnx_master_rcv(struct i2c_pnx_algo_data *alg_data)
246 __func__); 249 __func__);
247 250
248 if (alg_data->mif.len == 1) { 251 if (alg_data->mif.len == 1) {
252 /* Last byte, do not acknowledge next rcv. */
253 val |= stop_bit;
254
249 /* 255 /*
250 * Enable interrupt RFDAIE (data in Rx fifo), 256 * Enable interrupt RFDAIE (data in Rx fifo),
251 * and disable DRMIE (need data for Tx) 257 * and disable DRMIE (need data for Tx)
@@ -633,6 +639,8 @@ static int __devinit i2c_pnx_probe(struct platform_device *pdev)
633 */ 639 */
634 640
635 tmp = ((freq / 1000) / I2C_PNX_SPEED_KHZ) / 2 - 2; 641 tmp = ((freq / 1000) / I2C_PNX_SPEED_KHZ) / 2 - 2;
642 if (tmp > 0x3FF)
643 tmp = 0x3FF;
636 iowrite32(tmp, I2C_REG_CKH(alg_data)); 644 iowrite32(tmp, I2C_REG_CKH(alg_data));
637 iowrite32(tmp, I2C_REG_CKL(alg_data)); 645 iowrite32(tmp, I2C_REG_CKL(alg_data));
638 646
diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c
index 1f5b38be73bc..495be451d326 100644
--- a/drivers/i2c/busses/i2c-stu300.c
+++ b/drivers/i2c/busses/i2c-stu300.c
@@ -498,7 +498,7 @@ static int stu300_set_clk(struct stu300_dev *dev, unsigned long clkrate)
498 int i = 0; 498 int i = 0;
499 499
500 /* Locate the apropriate clock setting */ 500 /* Locate the apropriate clock setting */
501 while (i < ARRAY_SIZE(stu300_clktable) && 501 while (i < ARRAY_SIZE(stu300_clktable) - 1 &&
502 stu300_clktable[i].rate < clkrate) 502 stu300_clktable[i].rate < clkrate)
503 i++; 503 i++;
504 504
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 3202a86f420e..c2258a51fe0c 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -40,12 +40,11 @@
40#include "i2c-core.h" 40#include "i2c-core.h"
41 41
42 42
43/* core_lock protects i2c_adapter_idr, userspace_devices, and guarantees 43/* core_lock protects i2c_adapter_idr, and guarantees
44 that device detection, deletion of detected devices, and attach_adapter 44 that device detection, deletion of detected devices, and attach_adapter
45 and detach_adapter calls are serialized */ 45 and detach_adapter calls are serialized */
46static DEFINE_MUTEX(core_lock); 46static DEFINE_MUTEX(core_lock);
47static DEFINE_IDR(i2c_adapter_idr); 47static DEFINE_IDR(i2c_adapter_idr);
48static LIST_HEAD(userspace_devices);
49 48
50static struct device_type i2c_client_type; 49static struct device_type i2c_client_type;
51static int i2c_check_addr(struct i2c_adapter *adapter, int addr); 50static int i2c_check_addr(struct i2c_adapter *adapter, int addr);
@@ -117,8 +116,10 @@ static int i2c_device_probe(struct device *dev)
117 dev_dbg(dev, "probe\n"); 116 dev_dbg(dev, "probe\n");
118 117
119 status = driver->probe(client, i2c_match_id(driver->id_table, client)); 118 status = driver->probe(client, i2c_match_id(driver->id_table, client));
120 if (status) 119 if (status) {
121 client->driver = NULL; 120 client->driver = NULL;
121 i2c_set_clientdata(client, NULL);
122 }
122 return status; 123 return status;
123} 124}
124 125
@@ -139,8 +140,10 @@ static int i2c_device_remove(struct device *dev)
139 dev->driver = NULL; 140 dev->driver = NULL;
140 status = 0; 141 status = 0;
141 } 142 }
142 if (status == 0) 143 if (status == 0) {
143 client->driver = NULL; 144 client->driver = NULL;
145 i2c_set_clientdata(client, NULL);
146 }
144 return status; 147 return status;
145} 148}
146 149
@@ -538,9 +541,9 @@ i2c_sysfs_new_device(struct device *dev, struct device_attribute *attr,
538 return -EEXIST; 541 return -EEXIST;
539 542
540 /* Keep track of the added device */ 543 /* Keep track of the added device */
541 mutex_lock(&core_lock); 544 i2c_lock_adapter(adap);
542 list_add_tail(&client->detected, &userspace_devices); 545 list_add_tail(&client->detected, &adap->userspace_clients);
543 mutex_unlock(&core_lock); 546 i2c_unlock_adapter(adap);
544 dev_info(dev, "%s: Instantiated device %s at 0x%02hx\n", "new_device", 547 dev_info(dev, "%s: Instantiated device %s at 0x%02hx\n", "new_device",
545 info.type, info.addr); 548 info.type, info.addr);
546 549
@@ -579,9 +582,10 @@ i2c_sysfs_delete_device(struct device *dev, struct device_attribute *attr,
579 582
580 /* Make sure the device was added through sysfs */ 583 /* Make sure the device was added through sysfs */
581 res = -ENOENT; 584 res = -ENOENT;
582 mutex_lock(&core_lock); 585 i2c_lock_adapter(adap);
583 list_for_each_entry_safe(client, next, &userspace_devices, detected) { 586 list_for_each_entry_safe(client, next, &adap->userspace_clients,
584 if (client->addr == addr && client->adapter == adap) { 587 detected) {
588 if (client->addr == addr) {
585 dev_info(dev, "%s: Deleting device %s at 0x%02hx\n", 589 dev_info(dev, "%s: Deleting device %s at 0x%02hx\n",
586 "delete_device", client->name, client->addr); 590 "delete_device", client->name, client->addr);
587 591
@@ -591,7 +595,7 @@ i2c_sysfs_delete_device(struct device *dev, struct device_attribute *attr,
591 break; 595 break;
592 } 596 }
593 } 597 }
594 mutex_unlock(&core_lock); 598 i2c_unlock_adapter(adap);
595 599
596 if (res < 0) 600 if (res < 0)
597 dev_err(dev, "%s: Can't find device in list\n", 601 dev_err(dev, "%s: Can't find device in list\n",
@@ -673,6 +677,7 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
673 } 677 }
674 678
675 rt_mutex_init(&adap->bus_lock); 679 rt_mutex_init(&adap->bus_lock);
680 INIT_LIST_HEAD(&adap->userspace_clients);
676 681
677 /* Set default timeout to 1 second if not already set */ 682 /* Set default timeout to 1 second if not already set */
678 if (adap->timeout == 0) 683 if (adap->timeout == 0)
@@ -875,14 +880,15 @@ int i2c_del_adapter(struct i2c_adapter *adap)
875 return res; 880 return res;
876 881
877 /* Remove devices instantiated from sysfs */ 882 /* Remove devices instantiated from sysfs */
878 list_for_each_entry_safe(client, next, &userspace_devices, detected) { 883 i2c_lock_adapter(adap);
879 if (client->adapter == adap) { 884 list_for_each_entry_safe(client, next, &adap->userspace_clients,
880 dev_dbg(&adap->dev, "Removing %s at 0x%x\n", 885 detected) {
881 client->name, client->addr); 886 dev_dbg(&adap->dev, "Removing %s at 0x%x\n", client->name,
882 list_del(&client->detected); 887 client->addr);
883 i2c_unregister_device(client); 888 list_del(&client->detected);
884 } 889 i2c_unregister_device(client);
885 } 890 }
891 i2c_unlock_adapter(adap);
886 892
887 /* Detach any active clients. This can't fail, thus we do not 893 /* Detach any active clients. This can't fail, thus we do not
888 checking the returned value. */ 894 checking the returned value. */
@@ -1260,12 +1266,23 @@ static int i2c_detect_address(struct i2c_client *temp_client,
1260 return 0; 1266 return 0;
1261 1267
1262 /* Make sure there is something at this address */ 1268 /* Make sure there is something at this address */
1263 if (i2c_smbus_xfer(adapter, addr, 0, 0, 0, I2C_SMBUS_QUICK, NULL) < 0) 1269 if (addr == 0x73 && (adapter->class & I2C_CLASS_HWMON)) {
1264 return 0; 1270 /* Special probe for FSC hwmon chips */
1271 union i2c_smbus_data dummy;
1265 1272
1266 /* Prevent 24RF08 corruption */ 1273 if (i2c_smbus_xfer(adapter, addr, 0, I2C_SMBUS_READ, 0,
1267 if ((addr & ~0x0f) == 0x50) 1274 I2C_SMBUS_BYTE_DATA, &dummy) < 0)
1268 i2c_smbus_xfer(adapter, addr, 0, 0, 0, I2C_SMBUS_QUICK, NULL); 1275 return 0;
1276 } else {
1277 if (i2c_smbus_xfer(adapter, addr, 0, I2C_SMBUS_WRITE, 0,
1278 I2C_SMBUS_QUICK, NULL) < 0)
1279 return 0;
1280
1281 /* Prevent 24RF08 corruption */
1282 if ((addr & ~0x0f) == 0x50)
1283 i2c_smbus_xfer(adapter, addr, 0, I2C_SMBUS_WRITE, 0,
1284 I2C_SMBUS_QUICK, NULL);
1285 }
1269 1286
1270 /* Finally call the custom detection function */ 1287 /* Finally call the custom detection function */
1271 memset(&info, 0, sizeof(struct i2c_board_info)); 1288 memset(&info, 0, sizeof(struct i2c_board_info));
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c
index ab87e4f7cec9..b85450865ff0 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -409,6 +409,8 @@ static struct pcmcia_device_id ide_ids[] = {
409 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420), 409 PCMCIA_DEVICE_PROD_ID12("Hyperstone", "Model1", 0x3d5b9ef5, 0xca6ab420),
410 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178), 410 PCMCIA_DEVICE_PROD_ID12("IBM", "microdrive", 0xb569a6e5, 0xa6d76178),
411 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753), 411 PCMCIA_DEVICE_PROD_ID12("IBM", "IBM17JSSFP20", 0xb569a6e5, 0xf2508753),
412 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 1GB", 0x2e6d1829, 0x55d5bffb),
413 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF CARD 4GB", 0x2e6d1829, 0x531e7d10),
412 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e), 414 PCMCIA_DEVICE_PROD_ID12("KINGSTON", "CF8GB", 0x2e6d1829, 0xacbe682e),
413 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b), 415 PCMCIA_DEVICE_PROD_ID12("IO DATA", "CBIDE2 ", 0x547e66dc, 0x8671043b),
414 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149), 416 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149),
@@ -429,6 +431,8 @@ static struct pcmcia_device_id ide_ids[] = {
429 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), 431 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
430 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), 432 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2),
431 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), 433 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
434 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF133", 0x709b1bf1, 0x7558f133),
435 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS8GCF133", 0x709b1bf1, 0xb2f89b47),
432 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852), 436 PCMCIA_DEVICE_PROD_ID12("WIT", "IDE16", 0x244e5994, 0x3e232852),
433 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918), 437 PCMCIA_DEVICE_PROD_ID12("WEIDA", "TWTTI", 0xcc7cf69c, 0x212bb918),
434 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209), 438 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
index c52bec4d0530..423e0e6031ab 100644
--- a/drivers/input/joydev.c
+++ b/drivers/input/joydev.c
@@ -929,6 +929,24 @@ static const struct input_device_id joydev_ids[] = {
929 .evbit = { BIT_MASK(EV_ABS) }, 929 .evbit = { BIT_MASK(EV_ABS) },
930 .absbit = { BIT_MASK(ABS_THROTTLE) }, 930 .absbit = { BIT_MASK(ABS_THROTTLE) },
931 }, 931 },
932 {
933 .flags = INPUT_DEVICE_ID_MATCH_EVBIT |
934 INPUT_DEVICE_ID_MATCH_KEYBIT,
935 .evbit = { BIT_MASK(EV_KEY) },
936 .keybit = {[BIT_WORD(BTN_JOYSTICK)] = BIT_MASK(BTN_JOYSTICK) },
937 },
938 {
939 .flags = INPUT_DEVICE_ID_MATCH_EVBIT |
940 INPUT_DEVICE_ID_MATCH_KEYBIT,
941 .evbit = { BIT_MASK(EV_KEY) },
942 .keybit = { [BIT_WORD(BTN_GAMEPAD)] = BIT_MASK(BTN_GAMEPAD) },
943 },
944 {
945 .flags = INPUT_DEVICE_ID_MATCH_EVBIT |
946 INPUT_DEVICE_ID_MATCH_KEYBIT,
947 .evbit = { BIT_MASK(EV_KEY) },
948 .keybit = { [BIT_WORD(BTN_TRIGGER_HAPPY)] = BIT_MASK(BTN_TRIGGER_HAPPY) },
949 },
932 { } /* Terminating entry */ 950 { } /* Terminating entry */
933}; 951};
934 952
diff --git a/drivers/input/joystick/iforce/iforce-main.c b/drivers/input/joystick/iforce/iforce-main.c
index b1edd778639c..405febd94f24 100644
--- a/drivers/input/joystick/iforce/iforce-main.c
+++ b/drivers/input/joystick/iforce/iforce-main.c
@@ -54,6 +54,9 @@ static signed short btn_avb_wheel[] =
54static signed short abs_joystick[] = 54static signed short abs_joystick[] =
55{ ABS_X, ABS_Y, ABS_THROTTLE, ABS_HAT0X, ABS_HAT0Y, -1 }; 55{ ABS_X, ABS_Y, ABS_THROTTLE, ABS_HAT0X, ABS_HAT0Y, -1 };
56 56
57static signed short abs_joystick_rudder[] =
58{ ABS_X, ABS_Y, ABS_THROTTLE, ABS_RUDDER, ABS_HAT0X, ABS_HAT0Y, -1 };
59
57static signed short abs_avb_pegasus[] = 60static signed short abs_avb_pegasus[] =
58{ ABS_X, ABS_Y, ABS_THROTTLE, ABS_RUDDER, ABS_HAT0X, ABS_HAT0Y, 61{ ABS_X, ABS_Y, ABS_THROTTLE, ABS_RUDDER, ABS_HAT0X, ABS_HAT0Y,
59 ABS_HAT1X, ABS_HAT1Y, -1 }; 62 ABS_HAT1X, ABS_HAT1Y, -1 };
@@ -76,8 +79,9 @@ static struct iforce_device iforce_device[] = {
76 { 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //? 79 { 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //?
77 { 0x061c, 0xc084, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, 80 { 0x061c, 0xc084, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce },
78 { 0x06f8, 0x0001, "Guillemot Race Leader Force Feedback", btn_wheel, abs_wheel, ff_iforce }, //? 81 { 0x06f8, 0x0001, "Guillemot Race Leader Force Feedback", btn_wheel, abs_wheel, ff_iforce }, //?
82 { 0x06f8, 0x0001, "Guillemot Jet Leader Force Feedback", btn_joystick, abs_joystick_rudder, ff_iforce },
79 { 0x06f8, 0x0004, "Guillemot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //? 83 { 0x06f8, 0x0004, "Guillemot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //?
80 { 0x06f8, 0x0004, "Gullemot Jet Leader 3D", btn_joystick, abs_joystick, ff_iforce }, //? 84 { 0x06f8, 0xa302, "Guillemot Jet Leader 3D", btn_joystick, abs_joystick, ff_iforce }, //?
81 { 0x06d6, 0x29bc, "Trust Force Feedback Race Master", btn_wheel, abs_wheel, ff_iforce }, 85 { 0x06d6, 0x29bc, "Trust Force Feedback Race Master", btn_wheel, abs_wheel, ff_iforce },
82 { 0x0000, 0x0000, "Unknown I-Force Device [%04x:%04x]", btn_joystick, abs_joystick, ff_iforce } 86 { 0x0000, 0x0000, "Unknown I-Force Device [%04x:%04x]", btn_joystick, abs_joystick, ff_iforce }
83}; 87};
diff --git a/drivers/input/joystick/iforce/iforce-usb.c b/drivers/input/joystick/iforce/iforce-usb.c
index b41303d3ec54..6c96631ae5d9 100644
--- a/drivers/input/joystick/iforce/iforce-usb.c
+++ b/drivers/input/joystick/iforce/iforce-usb.c
@@ -212,6 +212,7 @@ static struct usb_device_id iforce_usb_ids [] = {
212 { USB_DEVICE(0x061c, 0xc0a4) }, /* ACT LABS Force RS */ 212 { USB_DEVICE(0x061c, 0xc0a4) }, /* ACT LABS Force RS */
213 { USB_DEVICE(0x061c, 0xc084) }, /* ACT LABS Force RS */ 213 { USB_DEVICE(0x061c, 0xc084) }, /* ACT LABS Force RS */
214 { USB_DEVICE(0x06f8, 0x0001) }, /* Guillemot Race Leader Force Feedback */ 214 { USB_DEVICE(0x06f8, 0x0001) }, /* Guillemot Race Leader Force Feedback */
215 { USB_DEVICE(0x06f8, 0x0003) }, /* Guillemot Jet Leader Force Feedback */
215 { USB_DEVICE(0x06f8, 0x0004) }, /* Guillemot Force Feedback Racing Wheel */ 216 { USB_DEVICE(0x06f8, 0x0004) }, /* Guillemot Force Feedback Racing Wheel */
216 { USB_DEVICE(0x06f8, 0xa302) }, /* Guillemot Jet Leader 3D */ 217 { USB_DEVICE(0x06f8, 0xa302) }, /* Guillemot Jet Leader 3D */
217 { } /* Terminating entry */ 218 { } /* Terminating entry */
diff --git a/drivers/input/misc/ati_remote.c b/drivers/input/misc/ati_remote.c
index 614b65d78fe9..e8bbc619f6df 100644
--- a/drivers/input/misc/ati_remote.c
+++ b/drivers/input/misc/ati_remote.c
@@ -98,10 +98,12 @@
98 * Module and Version Information, Module Parameters 98 * Module and Version Information, Module Parameters
99 */ 99 */
100 100
101#define ATI_REMOTE_VENDOR_ID 0x0bc7 101#define ATI_REMOTE_VENDOR_ID 0x0bc7
102#define ATI_REMOTE_PRODUCT_ID 0x004 102#define LOLA_REMOTE_PRODUCT_ID 0x0002
103#define LOLA_REMOTE_PRODUCT_ID 0x002 103#define LOLA2_REMOTE_PRODUCT_ID 0x0003
104#define MEDION_REMOTE_PRODUCT_ID 0x006 104#define ATI_REMOTE_PRODUCT_ID 0x0004
105#define NVIDIA_REMOTE_PRODUCT_ID 0x0005
106#define MEDION_REMOTE_PRODUCT_ID 0x0006
105 107
106#define DRIVER_VERSION "2.2.1" 108#define DRIVER_VERSION "2.2.1"
107#define DRIVER_AUTHOR "Torrey Hoffman <thoffman@arnor.net>" 109#define DRIVER_AUTHOR "Torrey Hoffman <thoffman@arnor.net>"
@@ -142,8 +144,10 @@ MODULE_PARM_DESC(repeat_delay, "Delay before sending repeats, default = 500 msec
142#define err(format, arg...) printk(KERN_ERR format , ## arg) 144#define err(format, arg...) printk(KERN_ERR format , ## arg)
143 145
144static struct usb_device_id ati_remote_table[] = { 146static struct usb_device_id ati_remote_table[] = {
145 { USB_DEVICE(ATI_REMOTE_VENDOR_ID, ATI_REMOTE_PRODUCT_ID) },
146 { USB_DEVICE(ATI_REMOTE_VENDOR_ID, LOLA_REMOTE_PRODUCT_ID) }, 147 { USB_DEVICE(ATI_REMOTE_VENDOR_ID, LOLA_REMOTE_PRODUCT_ID) },
148 { USB_DEVICE(ATI_REMOTE_VENDOR_ID, LOLA2_REMOTE_PRODUCT_ID) },
149 { USB_DEVICE(ATI_REMOTE_VENDOR_ID, ATI_REMOTE_PRODUCT_ID) },
150 { USB_DEVICE(ATI_REMOTE_VENDOR_ID, NVIDIA_REMOTE_PRODUCT_ID) },
147 { USB_DEVICE(ATI_REMOTE_VENDOR_ID, MEDION_REMOTE_PRODUCT_ID) }, 151 { USB_DEVICE(ATI_REMOTE_VENDOR_ID, MEDION_REMOTE_PRODUCT_ID) },
148 {} /* Terminating entry */ 152 {} /* Terminating entry */
149}; 153};
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 0d22cb9ce42e..99d58764ef03 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -64,7 +64,6 @@ static const struct alps_model_info alps_model_data[] = {
64 { { 0x62, 0x02, 0x14 }, 0xcf, 0xcf, 64 { { 0x62, 0x02, 0x14 }, 0xcf, 0xcf,
65 ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, 65 ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED },
66 { { 0x73, 0x02, 0x50 }, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */ 66 { { 0x73, 0x02, 0x50 }, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */
67 { { 0x73, 0x02, 0x64 }, 0xf8, 0xf8, 0 }, /* HP Pavilion dm3 */
68 { { 0x52, 0x01, 0x14 }, 0xff, 0xff, 67 { { 0x52, 0x01, 0x14 }, 0xff, 0xff,
69 ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */ 68 ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */
70}; 69};
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index a138b5da79f9..112b4ee52ff2 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -25,6 +25,10 @@
25 printk(KERN_DEBUG format, ##arg); \ 25 printk(KERN_DEBUG format, ##arg); \
26 } while (0) 26 } while (0)
27 27
28static bool force_elantech;
29module_param_named(force_elantech, force_elantech, bool, 0644);
30MODULE_PARM_DESC(force_elantech, "Force the Elantech PS/2 protocol extension to be used, 1 = enabled, 0 = disabled (default).");
31
28/* 32/*
29 * Send a Synaptics style sliced query command 33 * Send a Synaptics style sliced query command
30 */ 34 */
@@ -181,14 +185,18 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse)
181 int fingers; 185 int fingers;
182 static int old_fingers; 186 static int old_fingers;
183 187
184 if (etd->fw_version_maj == 0x01) { 188 if (etd->fw_version < 0x020000) {
185 /* byte 0: D U p1 p2 1 p3 R L 189 /*
186 byte 1: f 0 th tw x9 x8 y9 y8 */ 190 * byte 0: D U p1 p2 1 p3 R L
191 * byte 1: f 0 th tw x9 x8 y9 y8
192 */
187 fingers = ((packet[1] & 0x80) >> 7) + 193 fingers = ((packet[1] & 0x80) >> 7) +
188 ((packet[1] & 0x30) >> 4); 194 ((packet[1] & 0x30) >> 4);
189 } else { 195 } else {
190 /* byte 0: n1 n0 p2 p1 1 p3 R L 196 /*
191 byte 1: 0 0 0 0 x9 x8 y9 y8 */ 197 * byte 0: n1 n0 p2 p1 1 p3 R L
198 * byte 1: 0 0 0 0 x9 x8 y9 y8
199 */
192 fingers = (packet[0] & 0xc0) >> 6; 200 fingers = (packet[0] & 0xc0) >> 6;
193 } 201 }
194 202
@@ -202,13 +210,15 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse)
202 210
203 input_report_key(dev, BTN_TOUCH, fingers != 0); 211 input_report_key(dev, BTN_TOUCH, fingers != 0);
204 212
205 /* byte 2: x7 x6 x5 x4 x3 x2 x1 x0 213 /*
206 byte 3: y7 y6 y5 y4 y3 y2 y1 y0 */ 214 * byte 2: x7 x6 x5 x4 x3 x2 x1 x0
215 * byte 3: y7 y6 y5 y4 y3 y2 y1 y0
216 */
207 if (fingers) { 217 if (fingers) {
208 input_report_abs(dev, ABS_X, 218 input_report_abs(dev, ABS_X,
209 ((packet[1] & 0x0c) << 6) | packet[2]); 219 ((packet[1] & 0x0c) << 6) | packet[2]);
210 input_report_abs(dev, ABS_Y, ETP_YMAX_V1 - 220 input_report_abs(dev, ABS_Y,
211 (((packet[1] & 0x03) << 8) | packet[3])); 221 ETP_YMAX_V1 - (((packet[1] & 0x03) << 8) | packet[3]));
212 } 222 }
213 223
214 input_report_key(dev, BTN_TOOL_FINGER, fingers == 1); 224 input_report_key(dev, BTN_TOOL_FINGER, fingers == 1);
@@ -217,7 +227,7 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse)
217 input_report_key(dev, BTN_LEFT, packet[0] & 0x01); 227 input_report_key(dev, BTN_LEFT, packet[0] & 0x01);
218 input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); 228 input_report_key(dev, BTN_RIGHT, packet[0] & 0x02);
219 229
220 if ((etd->fw_version_maj == 0x01) && 230 if (etd->fw_version < 0x020000 &&
221 (etd->capabilities & ETP_CAP_HAS_ROCKER)) { 231 (etd->capabilities & ETP_CAP_HAS_ROCKER)) {
222 /* rocker up */ 232 /* rocker up */
223 input_report_key(dev, BTN_FORWARD, packet[0] & 0x40); 233 input_report_key(dev, BTN_FORWARD, packet[0] & 0x40);
@@ -247,34 +257,47 @@ static void elantech_report_absolute_v2(struct psmouse *psmouse)
247 257
248 switch (fingers) { 258 switch (fingers) {
249 case 1: 259 case 1:
250 /* byte 1: x15 x14 x13 x12 x11 x10 x9 x8 260 /*
251 byte 2: x7 x6 x5 x4 x4 x2 x1 x0 */ 261 * byte 1: . . . . . x10 x9 x8
252 input_report_abs(dev, ABS_X, (packet[1] << 8) | packet[2]); 262 * byte 2: x7 x6 x5 x4 x4 x2 x1 x0
253 /* byte 4: y15 y14 y13 y12 y11 y10 y8 y8 263 */
254 byte 5: y7 y6 y5 y4 y3 y2 y1 y0 */ 264 input_report_abs(dev, ABS_X,
255 input_report_abs(dev, ABS_Y, ETP_YMAX_V2 - 265 ((packet[1] & 0x07) << 8) | packet[2]);
256 ((packet[4] << 8) | packet[5])); 266 /*
267 * byte 4: . . . . . . y9 y8
268 * byte 5: y7 y6 y5 y4 y3 y2 y1 y0
269 */
270 input_report_abs(dev, ABS_Y,
271 ETP_YMAX_V2 - (((packet[4] & 0x03) << 8) | packet[5]));
257 break; 272 break;
258 273
259 case 2: 274 case 2:
260 /* The coordinate of each finger is reported separately with 275 /*
261 a lower resolution for two finger touches */ 276 * The coordinate of each finger is reported separately
262 /* byte 0: . . ay8 ax8 . . . . 277 * with a lower resolution for two finger touches:
263 byte 1: ax7 ax6 ax5 ax4 ax3 ax2 ax1 ax0 */ 278 * byte 0: . . ay8 ax8 . . . .
279 * byte 1: ax7 ax6 ax5 ax4 ax3 ax2 ax1 ax0
280 */
264 x1 = ((packet[0] & 0x10) << 4) | packet[1]; 281 x1 = ((packet[0] & 0x10) << 4) | packet[1];
265 /* byte 2: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 */ 282 /* byte 2: ay7 ay6 ay5 ay4 ay3 ay2 ay1 ay0 */
266 y1 = ETP_2FT_YMAX - (((packet[0] & 0x20) << 3) | packet[2]); 283 y1 = ETP_2FT_YMAX - (((packet[0] & 0x20) << 3) | packet[2]);
267 /* byte 3: . . by8 bx8 . . . . 284 /*
268 byte 4: bx7 bx6 bx5 bx4 bx3 bx2 bx1 bx0 */ 285 * byte 3: . . by8 bx8 . . . .
286 * byte 4: bx7 bx6 bx5 bx4 bx3 bx2 bx1 bx0
287 */
269 x2 = ((packet[3] & 0x10) << 4) | packet[4]; 288 x2 = ((packet[3] & 0x10) << 4) | packet[4];
270 /* byte 5: by7 by8 by5 by4 by3 by2 by1 by0 */ 289 /* byte 5: by7 by8 by5 by4 by3 by2 by1 by0 */
271 y2 = ETP_2FT_YMAX - (((packet[3] & 0x20) << 3) | packet[5]); 290 y2 = ETP_2FT_YMAX - (((packet[3] & 0x20) << 3) | packet[5]);
272 /* For compatibility with the X Synaptics driver scale up one 291 /*
273 coordinate and report as ordinary mouse movent */ 292 * For compatibility with the X Synaptics driver scale up
293 * one coordinate and report as ordinary mouse movent
294 */
274 input_report_abs(dev, ABS_X, x1 << 2); 295 input_report_abs(dev, ABS_X, x1 << 2);
275 input_report_abs(dev, ABS_Y, y1 << 2); 296 input_report_abs(dev, ABS_Y, y1 << 2);
276 /* For compatibility with the proprietary X Elantech driver 297 /*
277 report both coordinates as hat coordinates */ 298 * For compatibility with the proprietary X Elantech driver
299 * report both coordinates as hat coordinates
300 */
278 input_report_abs(dev, ABS_HAT0X, x1); 301 input_report_abs(dev, ABS_HAT0X, x1);
279 input_report_abs(dev, ABS_HAT0Y, y1); 302 input_report_abs(dev, ABS_HAT0Y, y1);
280 input_report_abs(dev, ABS_HAT1X, x2); 303 input_report_abs(dev, ABS_HAT1X, x2);
@@ -298,7 +321,7 @@ static int elantech_check_parity_v1(struct psmouse *psmouse)
298 unsigned char p1, p2, p3; 321 unsigned char p1, p2, p3;
299 322
300 /* Parity bits are placed differently */ 323 /* Parity bits are placed differently */
301 if (etd->fw_version_maj == 0x01) { 324 if (etd->fw_version < 0x020000) {
302 /* byte 0: D U p1 p2 1 p3 R L */ 325 /* byte 0: D U p1 p2 1 p3 R L */
303 p1 = (packet[0] & 0x20) >> 5; 326 p1 = (packet[0] & 0x20) >> 5;
304 p2 = (packet[0] & 0x10) >> 4; 327 p2 = (packet[0] & 0x10) >> 4;
@@ -434,7 +457,7 @@ static void elantech_set_input_params(struct psmouse *psmouse)
434 switch (etd->hw_version) { 457 switch (etd->hw_version) {
435 case 1: 458 case 1:
436 /* Rocker button */ 459 /* Rocker button */
437 if ((etd->fw_version_maj == 0x01) && 460 if (etd->fw_version < 0x020000 &&
438 (etd->capabilities & ETP_CAP_HAS_ROCKER)) { 461 (etd->capabilities & ETP_CAP_HAS_ROCKER)) {
439 __set_bit(BTN_FORWARD, dev->keybit); 462 __set_bit(BTN_FORWARD, dev->keybit);
440 __set_bit(BTN_BACK, dev->keybit); 463 __set_bit(BTN_BACK, dev->keybit);
@@ -596,8 +619,12 @@ int elantech_detect(struct psmouse *psmouse, bool set_properties)
596 param[0], param[1], param[2]); 619 param[0], param[1], param[2]);
597 620
598 if (param[0] == 0 || param[1] != 0) { 621 if (param[0] == 0 || param[1] != 0) {
599 pr_debug("elantech.c: Probably not a real Elantech touchpad. Aborting.\n"); 622 if (!force_elantech) {
600 return -1; 623 pr_debug("elantech.c: Probably not a real Elantech touchpad. Aborting.\n");
624 return -1;
625 }
626
627 pr_debug("elantech.c: Probably not a real Elantech touchpad. Enabling anyway due to force_elantech.\n");
601 } 628 }
602 629
603 if (set_properties) { 630 if (set_properties) {
@@ -659,14 +686,14 @@ int elantech_init(struct psmouse *psmouse)
659 pr_err("elantech.c: failed to query firmware version.\n"); 686 pr_err("elantech.c: failed to query firmware version.\n");
660 goto init_fail; 687 goto init_fail;
661 } 688 }
662 etd->fw_version_maj = param[0]; 689
663 etd->fw_version_min = param[2]; 690 etd->fw_version = (param[0] << 16) | (param[1] << 8) | param[2];
664 691
665 /* 692 /*
666 * Assume every version greater than this is new EeePC style 693 * Assume every version greater than this is new EeePC style
667 * hardware with 6 byte packets 694 * hardware with 6 byte packets
668 */ 695 */
669 if (etd->fw_version_maj >= 0x02 && etd->fw_version_min >= 0x30) { 696 if (etd->fw_version >= 0x020030) {
670 etd->hw_version = 2; 697 etd->hw_version = 2;
671 /* For now show extra debug information */ 698 /* For now show extra debug information */
672 etd->debug = 1; 699 etd->debug = 1;
@@ -676,8 +703,9 @@ int elantech_init(struct psmouse *psmouse)
676 etd->hw_version = 1; 703 etd->hw_version = 1;
677 etd->paritycheck = 1; 704 etd->paritycheck = 1;
678 } 705 }
679 pr_info("elantech.c: assuming hardware version %d, firmware version %d.%d\n", 706
680 etd->hw_version, etd->fw_version_maj, etd->fw_version_min); 707 pr_info("elantech.c: assuming hardware version %d, firmware version %d.%d.%d\n",
708 etd->hw_version, param[0], param[1], param[2]);
681 709
682 if (synaptics_send_cmd(psmouse, ETP_CAPABILITIES_QUERY, param)) { 710 if (synaptics_send_cmd(psmouse, ETP_CAPABILITIES_QUERY, param)) {
683 pr_err("elantech.c: failed to query capabilities.\n"); 711 pr_err("elantech.c: failed to query capabilities.\n");
@@ -692,8 +720,8 @@ int elantech_init(struct psmouse *psmouse)
692 * a touch action starts causing the mouse cursor or scrolled page 720 * a touch action starts causing the mouse cursor or scrolled page
693 * to jump. Enable a workaround. 721 * to jump. Enable a workaround.
694 */ 722 */
695 if (etd->fw_version_maj == 0x02 && etd->fw_version_min == 0x22) { 723 if (etd->fw_version == 0x020022) {
696 pr_info("elantech.c: firmware version 2.34 detected, " 724 pr_info("elantech.c: firmware version 2.0.34 detected, "
697 "enabling jumpy cursor workaround\n"); 725 "enabling jumpy cursor workaround\n");
698 etd->jumpy_cursor = 1; 726 etd->jumpy_cursor = 1;
699 } 727 }
diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h
index feac5f7af966..ac57bde1bb9f 100644
--- a/drivers/input/mouse/elantech.h
+++ b/drivers/input/mouse/elantech.h
@@ -100,11 +100,10 @@ struct elantech_data {
100 unsigned char reg_26; 100 unsigned char reg_26;
101 unsigned char debug; 101 unsigned char debug;
102 unsigned char capabilities; 102 unsigned char capabilities;
103 unsigned char fw_version_maj;
104 unsigned char fw_version_min;
105 unsigned char hw_version;
106 unsigned char paritycheck; 103 unsigned char paritycheck;
107 unsigned char jumpy_cursor; 104 unsigned char jumpy_cursor;
105 unsigned char hw_version;
106 unsigned int fw_version;
108 unsigned char parity[256]; 107 unsigned char parity[256];
109}; 108};
110 109
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
index d8c0c8d6992c..a3c97315a473 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -110,6 +110,7 @@ static struct workqueue_struct *kpsmoused_wq;
110struct psmouse_protocol { 110struct psmouse_protocol {
111 enum psmouse_type type; 111 enum psmouse_type type;
112 bool maxproto; 112 bool maxproto;
113 bool ignore_parity; /* Protocol should ignore parity errors from KBC */
113 const char *name; 114 const char *name;
114 const char *alias; 115 const char *alias;
115 int (*detect)(struct psmouse *, bool); 116 int (*detect)(struct psmouse *, bool);
@@ -288,7 +289,9 @@ static irqreturn_t psmouse_interrupt(struct serio *serio,
288 if (psmouse->state == PSMOUSE_IGNORE) 289 if (psmouse->state == PSMOUSE_IGNORE)
289 goto out; 290 goto out;
290 291
291 if (flags & (SERIO_PARITY|SERIO_TIMEOUT)) { 292 if (unlikely((flags & SERIO_TIMEOUT) ||
293 ((flags & SERIO_PARITY) && !psmouse->ignore_parity))) {
294
292 if (psmouse->state == PSMOUSE_ACTIVATED) 295 if (psmouse->state == PSMOUSE_ACTIVATED)
293 printk(KERN_WARNING "psmouse.c: bad data from KBC -%s%s\n", 296 printk(KERN_WARNING "psmouse.c: bad data from KBC -%s%s\n",
294 flags & SERIO_TIMEOUT ? " timeout" : "", 297 flags & SERIO_TIMEOUT ? " timeout" : "",
@@ -759,6 +762,7 @@ static const struct psmouse_protocol psmouse_protocols[] = {
759 .name = "PS/2", 762 .name = "PS/2",
760 .alias = "bare", 763 .alias = "bare",
761 .maxproto = true, 764 .maxproto = true,
765 .ignore_parity = true,
762 .detect = ps2bare_detect, 766 .detect = ps2bare_detect,
763 }, 767 },
764#ifdef CONFIG_MOUSE_PS2_LOGIPS2PP 768#ifdef CONFIG_MOUSE_PS2_LOGIPS2PP
@@ -786,6 +790,7 @@ static const struct psmouse_protocol psmouse_protocols[] = {
786 .name = "ImPS/2", 790 .name = "ImPS/2",
787 .alias = "imps", 791 .alias = "imps",
788 .maxproto = true, 792 .maxproto = true,
793 .ignore_parity = true,
789 .detect = intellimouse_detect, 794 .detect = intellimouse_detect,
790 }, 795 },
791 { 796 {
@@ -793,6 +798,7 @@ static const struct psmouse_protocol psmouse_protocols[] = {
793 .name = "ImExPS/2", 798 .name = "ImExPS/2",
794 .alias = "exps", 799 .alias = "exps",
795 .maxproto = true, 800 .maxproto = true,
801 .ignore_parity = true,
796 .detect = im_explorer_detect, 802 .detect = im_explorer_detect,
797 }, 803 },
798#ifdef CONFIG_MOUSE_PS2_SYNAPTICS 804#ifdef CONFIG_MOUSE_PS2_SYNAPTICS
@@ -1222,6 +1228,7 @@ static void psmouse_disconnect(struct serio *serio)
1222static int psmouse_switch_protocol(struct psmouse *psmouse, 1228static int psmouse_switch_protocol(struct psmouse *psmouse,
1223 const struct psmouse_protocol *proto) 1229 const struct psmouse_protocol *proto)
1224{ 1230{
1231 const struct psmouse_protocol *selected_proto;
1225 struct input_dev *input_dev = psmouse->dev; 1232 struct input_dev *input_dev = psmouse->dev;
1226 1233
1227 input_dev->dev.parent = &psmouse->ps2dev.serio->dev; 1234 input_dev->dev.parent = &psmouse->ps2dev.serio->dev;
@@ -1245,9 +1252,14 @@ static int psmouse_switch_protocol(struct psmouse *psmouse,
1245 return -1; 1252 return -1;
1246 1253
1247 psmouse->type = proto->type; 1254 psmouse->type = proto->type;
1248 } else 1255 selected_proto = proto;
1256 } else {
1249 psmouse->type = psmouse_extensions(psmouse, 1257 psmouse->type = psmouse_extensions(psmouse,
1250 psmouse_max_proto, true); 1258 psmouse_max_proto, true);
1259 selected_proto = psmouse_protocol_by_type(psmouse->type);
1260 }
1261
1262 psmouse->ignore_parity = selected_proto->ignore_parity;
1251 1263
1252 /* 1264 /*
1253 * If mouse's packet size is 3 there is no point in polling the 1265 * If mouse's packet size is 3 there is no point in polling the
@@ -1267,7 +1279,7 @@ static int psmouse_switch_protocol(struct psmouse *psmouse,
1267 psmouse->resync_time = 0; 1279 psmouse->resync_time = 0;
1268 1280
1269 snprintf(psmouse->devname, sizeof(psmouse->devname), "%s %s %s", 1281 snprintf(psmouse->devname, sizeof(psmouse->devname), "%s %s %s",
1270 psmouse_protocol_by_type(psmouse->type)->name, psmouse->vendor, psmouse->name); 1282 selected_proto->name, psmouse->vendor, psmouse->name);
1271 1283
1272 input_dev->name = psmouse->devname; 1284 input_dev->name = psmouse->devname;
1273 input_dev->phys = psmouse->phys; 1285 input_dev->phys = psmouse->phys;
@@ -1382,6 +1394,7 @@ static int psmouse_reconnect(struct serio *serio)
1382 struct psmouse *psmouse = serio_get_drvdata(serio); 1394 struct psmouse *psmouse = serio_get_drvdata(serio);
1383 struct psmouse *parent = NULL; 1395 struct psmouse *parent = NULL;
1384 struct serio_driver *drv = serio->drv; 1396 struct serio_driver *drv = serio->drv;
1397 unsigned char type;
1385 int rc = -1; 1398 int rc = -1;
1386 1399
1387 if (!drv || !psmouse) { 1400 if (!drv || !psmouse) {
@@ -1401,10 +1414,15 @@ static int psmouse_reconnect(struct serio *serio)
1401 if (psmouse->reconnect) { 1414 if (psmouse->reconnect) {
1402 if (psmouse->reconnect(psmouse)) 1415 if (psmouse->reconnect(psmouse))
1403 goto out; 1416 goto out;
1404 } else if (psmouse_probe(psmouse) < 0 || 1417 } else {
1405 psmouse->type != psmouse_extensions(psmouse, 1418 psmouse_reset(psmouse);
1406 psmouse_max_proto, false)) { 1419
1407 goto out; 1420 if (psmouse_probe(psmouse) < 0)
1421 goto out;
1422
1423 type = psmouse_extensions(psmouse, psmouse_max_proto, false);
1424 if (psmouse->type != type)
1425 goto out;
1408 } 1426 }
1409 1427
1410 /* ok, the device type (and capabilities) match the old one, 1428 /* ok, the device type (and capabilities) match the old one,
diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
index e053bdd137ff..593e910bfc7a 100644
--- a/drivers/input/mouse/psmouse.h
+++ b/drivers/input/mouse/psmouse.h
@@ -47,6 +47,7 @@ struct psmouse {
47 unsigned char pktcnt; 47 unsigned char pktcnt;
48 unsigned char pktsize; 48 unsigned char pktsize;
49 unsigned char type; 49 unsigned char type;
50 bool ignore_parity;
50 bool acks_disable_command; 51 bool acks_disable_command;
51 unsigned int model; 52 unsigned int model;
52 unsigned long last; 53 unsigned long last;
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 026df6010161..ebd7a99efeae 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -137,7 +137,8 @@ static int synaptics_capability(struct psmouse *psmouse)
137 if (synaptics_send_cmd(psmouse, SYN_QUE_CAPABILITIES, cap)) 137 if (synaptics_send_cmd(psmouse, SYN_QUE_CAPABILITIES, cap))
138 return -1; 138 return -1;
139 priv->capabilities = (cap[0] << 16) | (cap[1] << 8) | cap[2]; 139 priv->capabilities = (cap[0] << 16) | (cap[1] << 8) | cap[2];
140 priv->ext_cap = 0; 140 priv->ext_cap = priv->ext_cap_0c = 0;
141
141 if (!SYN_CAP_VALID(priv->capabilities)) 142 if (!SYN_CAP_VALID(priv->capabilities))
142 return -1; 143 return -1;
143 144
@@ -150,7 +151,7 @@ static int synaptics_capability(struct psmouse *psmouse)
150 if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 1) { 151 if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 1) {
151 if (synaptics_send_cmd(psmouse, SYN_QUE_EXT_CAPAB, cap)) { 152 if (synaptics_send_cmd(psmouse, SYN_QUE_EXT_CAPAB, cap)) {
152 printk(KERN_ERR "Synaptics claims to have extended capabilities," 153 printk(KERN_ERR "Synaptics claims to have extended capabilities,"
153 " but I'm not able to read them."); 154 " but I'm not able to read them.\n");
154 } else { 155 } else {
155 priv->ext_cap = (cap[0] << 16) | (cap[1] << 8) | cap[2]; 156 priv->ext_cap = (cap[0] << 16) | (cap[1] << 8) | cap[2];
156 157
@@ -162,6 +163,16 @@ static int synaptics_capability(struct psmouse *psmouse)
162 priv->ext_cap &= 0xff0fff; 163 priv->ext_cap &= 0xff0fff;
163 } 164 }
164 } 165 }
166
167 if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 4) {
168 if (synaptics_send_cmd(psmouse, SYN_QUE_EXT_CAPAB_0C, cap)) {
169 printk(KERN_ERR "Synaptics claims to have extended capability 0x0c,"
170 " but I'm not able to read it.\n");
171 } else {
172 priv->ext_cap_0c = (cap[0] << 16) | (cap[1] << 8) | cap[2];
173 }
174 }
175
165 return 0; 176 return 0;
166} 177}
167 178
@@ -348,7 +359,15 @@ static void synaptics_parse_hw_state(unsigned char buf[], struct synaptics_data
348 hw->left = (buf[0] & 0x01) ? 1 : 0; 359 hw->left = (buf[0] & 0x01) ? 1 : 0;
349 hw->right = (buf[0] & 0x02) ? 1 : 0; 360 hw->right = (buf[0] & 0x02) ? 1 : 0;
350 361
351 if (SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) { 362 if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
363 /*
364 * Clickpad's button is transmitted as middle button,
365 * however, since it is primary button, we will report
366 * it as BTN_LEFT.
367 */
368 hw->left = ((buf[0] ^ buf[3]) & 0x01) ? 1 : 0;
369
370 } else if (SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) {
352 hw->middle = ((buf[0] ^ buf[3]) & 0x01) ? 1 : 0; 371 hw->middle = ((buf[0] ^ buf[3]) & 0x01) ? 1 : 0;
353 if (hw->w == 2) 372 if (hw->w == 2)
354 hw->scroll = (signed char)(buf[1]); 373 hw->scroll = (signed char)(buf[1]);
@@ -593,6 +612,12 @@ static void set_input_params(struct input_dev *dev, struct synaptics_data *priv)
593 612
594 dev->absres[ABS_X] = priv->x_res; 613 dev->absres[ABS_X] = priv->x_res;
595 dev->absres[ABS_Y] = priv->y_res; 614 dev->absres[ABS_Y] = priv->y_res;
615
616 if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
617 /* Clickpads report only left button */
618 __clear_bit(BTN_RIGHT, dev->keybit);
619 __clear_bit(BTN_MIDDLE, dev->keybit);
620 }
596} 621}
597 622
598static void synaptics_disconnect(struct psmouse *psmouse) 623static void synaptics_disconnect(struct psmouse *psmouse)
@@ -697,10 +722,10 @@ int synaptics_init(struct psmouse *psmouse)
697 722
698 priv->pkt_type = SYN_MODEL_NEWABS(priv->model_id) ? SYN_NEWABS : SYN_OLDABS; 723 priv->pkt_type = SYN_MODEL_NEWABS(priv->model_id) ? SYN_NEWABS : SYN_OLDABS;
699 724
700 printk(KERN_INFO "Synaptics Touchpad, model: %ld, fw: %ld.%ld, id: %#lx, caps: %#lx/%#lx\n", 725 printk(KERN_INFO "Synaptics Touchpad, model: %ld, fw: %ld.%ld, id: %#lx, caps: %#lx/%#lx/%#lx\n",
701 SYN_ID_MODEL(priv->identity), 726 SYN_ID_MODEL(priv->identity),
702 SYN_ID_MAJOR(priv->identity), SYN_ID_MINOR(priv->identity), 727 SYN_ID_MAJOR(priv->identity), SYN_ID_MINOR(priv->identity),
703 priv->model_id, priv->capabilities, priv->ext_cap); 728 priv->model_id, priv->capabilities, priv->ext_cap, priv->ext_cap_0c);
704 729
705 set_input_params(psmouse->dev, priv); 730 set_input_params(psmouse->dev, priv);
706 731
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
index f0f40a331dc8..ae37c5d162a4 100644
--- a/drivers/input/mouse/synaptics.h
+++ b/drivers/input/mouse/synaptics.h
@@ -18,6 +18,7 @@
18#define SYN_QUE_SERIAL_NUMBER_SUFFIX 0x07 18#define SYN_QUE_SERIAL_NUMBER_SUFFIX 0x07
19#define SYN_QUE_RESOLUTION 0x08 19#define SYN_QUE_RESOLUTION 0x08
20#define SYN_QUE_EXT_CAPAB 0x09 20#define SYN_QUE_EXT_CAPAB 0x09
21#define SYN_QUE_EXT_CAPAB_0C 0x0c
21 22
22/* synatics modes */ 23/* synatics modes */
23#define SYN_BIT_ABSOLUTE_MODE (1 << 7) 24#define SYN_BIT_ABSOLUTE_MODE (1 << 7)
@@ -48,6 +49,8 @@
48#define SYN_CAP_VALID(c) ((((c) & 0x00ff00) >> 8) == 0x47) 49#define SYN_CAP_VALID(c) ((((c) & 0x00ff00) >> 8) == 0x47)
49#define SYN_EXT_CAP_REQUESTS(c) (((c) & 0x700000) >> 20) 50#define SYN_EXT_CAP_REQUESTS(c) (((c) & 0x700000) >> 20)
50#define SYN_CAP_MULTI_BUTTON_NO(ec) (((ec) & 0x00f000) >> 12) 51#define SYN_CAP_MULTI_BUTTON_NO(ec) (((ec) & 0x00f000) >> 12)
52#define SYN_CAP_PRODUCT_ID(ec) (((ec) & 0xff0000) >> 16)
53#define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100100)
51 54
52/* synaptics modes query bits */ 55/* synaptics modes query bits */
53#define SYN_MODE_ABSOLUTE(m) ((m) & (1 << 7)) 56#define SYN_MODE_ABSOLUTE(m) ((m) & (1 << 7))
@@ -96,6 +99,7 @@ struct synaptics_data {
96 unsigned long int model_id; /* Model-ID */ 99 unsigned long int model_id; /* Model-ID */
97 unsigned long int capabilities; /* Capabilities */ 100 unsigned long int capabilities; /* Capabilities */
98 unsigned long int ext_cap; /* Extended Capabilities */ 101 unsigned long int ext_cap; /* Extended Capabilities */
102 unsigned long int ext_cap_0c; /* Ext Caps from 0x0c query */
99 unsigned long int identity; /* Identification */ 103 unsigned long int identity; /* Identification */
100 int x_res; /* X resolution in units/mm */ 104 int x_res; /* X resolution in units/mm */
101 int y_res; /* Y resolution in units/mm */ 105 int y_res; /* Y resolution in units/mm */
diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c
index e019d53d1ab4..0d2d7e54b465 100644
--- a/drivers/input/touchscreen/ad7877.c
+++ b/drivers/input/touchscreen/ad7877.c
@@ -156,9 +156,14 @@ struct ser_req {
156 u16 reset; 156 u16 reset;
157 u16 ref_on; 157 u16 ref_on;
158 u16 command; 158 u16 command;
159 u16 sample;
160 struct spi_message msg; 159 struct spi_message msg;
161 struct spi_transfer xfer[6]; 160 struct spi_transfer xfer[6];
161
162 /*
163 * DMA (thus cache coherency maintenance) requires the
164 * transfer buffers to live in their own cache lines.
165 */
166 u16 sample ____cacheline_aligned;
162}; 167};
163 168
164struct ad7877 { 169struct ad7877 {
@@ -182,8 +187,6 @@ struct ad7877 {
182 u8 averaging; 187 u8 averaging;
183 u8 pen_down_acc_interval; 188 u8 pen_down_acc_interval;
184 189
185 u16 conversion_data[AD7877_NR_SENSE];
186
187 struct spi_transfer xfer[AD7877_NR_SENSE + 2]; 190 struct spi_transfer xfer[AD7877_NR_SENSE + 2];
188 struct spi_message msg; 191 struct spi_message msg;
189 192
@@ -195,6 +198,12 @@ struct ad7877 {
195 spinlock_t lock; 198 spinlock_t lock;
196 struct timer_list timer; /* P: lock */ 199 struct timer_list timer; /* P: lock */
197 unsigned pending:1; /* P: lock */ 200 unsigned pending:1; /* P: lock */
201
202 /*
203 * DMA (thus cache coherency maintenance) requires the
204 * transfer buffers to live in their own cache lines.
205 */
206 u16 conversion_data[AD7877_NR_SENSE] ____cacheline_aligned;
198}; 207};
199 208
200static int gpio3; 209static int gpio3;
diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c
index 204b8a1a601c..75f8b73010fa 100644
--- a/drivers/input/touchscreen/eeti_ts.c
+++ b/drivers/input/touchscreen/eeti_ts.c
@@ -124,14 +124,25 @@ static irqreturn_t eeti_ts_isr(int irq, void *dev_id)
124 return IRQ_HANDLED; 124 return IRQ_HANDLED;
125} 125}
126 126
127static int eeti_ts_open(struct input_dev *dev) 127static void eeti_ts_start(struct eeti_ts_priv *priv)
128{ 128{
129 struct eeti_ts_priv *priv = input_get_drvdata(dev);
130
131 enable_irq(priv->irq); 129 enable_irq(priv->irq);
132 130
133 /* Read the events once to arm the IRQ */ 131 /* Read the events once to arm the IRQ */
134 eeti_ts_read(&priv->work); 132 eeti_ts_read(&priv->work);
133}
134
135static void eeti_ts_stop(struct eeti_ts_priv *priv)
136{
137 disable_irq(priv->irq);
138 cancel_work_sync(&priv->work);
139}
140
141static int eeti_ts_open(struct input_dev *dev)
142{
143 struct eeti_ts_priv *priv = input_get_drvdata(dev);
144
145 eeti_ts_start(priv);
135 146
136 return 0; 147 return 0;
137} 148}
@@ -140,8 +151,7 @@ static void eeti_ts_close(struct input_dev *dev)
140{ 151{
141 struct eeti_ts_priv *priv = input_get_drvdata(dev); 152 struct eeti_ts_priv *priv = input_get_drvdata(dev);
142 153
143 disable_irq(priv->irq); 154 eeti_ts_stop(priv);
144 cancel_work_sync(&priv->work);
145} 155}
146 156
147static int __devinit eeti_ts_probe(struct i2c_client *client, 157static int __devinit eeti_ts_probe(struct i2c_client *client,
@@ -153,10 +163,12 @@ static int __devinit eeti_ts_probe(struct i2c_client *client,
153 unsigned int irq_flags; 163 unsigned int irq_flags;
154 int err = -ENOMEM; 164 int err = -ENOMEM;
155 165
156 /* In contrast to what's described in the datasheet, there seems 166 /*
167 * In contrast to what's described in the datasheet, there seems
157 * to be no way of probing the presence of that device using I2C 168 * to be no way of probing the presence of that device using I2C
158 * commands. So we need to blindly believe it is there, and wait 169 * commands. So we need to blindly believe it is there, and wait
159 * for interrupts to occur. */ 170 * for interrupts to occur.
171 */
160 172
161 priv = kzalloc(sizeof(*priv), GFP_KERNEL); 173 priv = kzalloc(sizeof(*priv), GFP_KERNEL);
162 if (!priv) { 174 if (!priv) {
@@ -212,9 +224,11 @@ static int __devinit eeti_ts_probe(struct i2c_client *client,
212 goto err2; 224 goto err2;
213 } 225 }
214 226
215 /* Disable the irq for now. It will be enabled once the input device 227 /*
216 * is opened. */ 228 * Disable the device for now. It will be enabled once the
217 disable_irq(priv->irq); 229 * input device is opened.
230 */
231 eeti_ts_stop(priv);
218 232
219 device_init_wakeup(&client->dev, 0); 233 device_init_wakeup(&client->dev, 0);
220 return 0; 234 return 0;
@@ -235,6 +249,12 @@ static int __devexit eeti_ts_remove(struct i2c_client *client)
235 struct eeti_ts_priv *priv = i2c_get_clientdata(client); 249 struct eeti_ts_priv *priv = i2c_get_clientdata(client);
236 250
237 free_irq(priv->irq, priv); 251 free_irq(priv->irq, priv);
252 /*
253 * eeti_ts_stop() leaves IRQ disabled. We need to re-enable it
254 * so that device still works if we reload the driver.
255 */
256 enable_irq(priv->irq);
257
238 input_unregister_device(priv->input); 258 input_unregister_device(priv->input);
239 i2c_set_clientdata(client, NULL); 259 i2c_set_clientdata(client, NULL);
240 kfree(priv); 260 kfree(priv);
@@ -246,6 +266,14 @@ static int __devexit eeti_ts_remove(struct i2c_client *client)
246static int eeti_ts_suspend(struct i2c_client *client, pm_message_t mesg) 266static int eeti_ts_suspend(struct i2c_client *client, pm_message_t mesg)
247{ 267{
248 struct eeti_ts_priv *priv = i2c_get_clientdata(client); 268 struct eeti_ts_priv *priv = i2c_get_clientdata(client);
269 struct input_dev *input_dev = priv->input;
270
271 mutex_lock(&input_dev->mutex);
272
273 if (input_dev->users)
274 eeti_ts_stop(priv);
275
276 mutex_unlock(&input_dev->mutex);
249 277
250 if (device_may_wakeup(&client->dev)) 278 if (device_may_wakeup(&client->dev))
251 enable_irq_wake(priv->irq); 279 enable_irq_wake(priv->irq);
@@ -256,10 +284,18 @@ static int eeti_ts_suspend(struct i2c_client *client, pm_message_t mesg)
256static int eeti_ts_resume(struct i2c_client *client) 284static int eeti_ts_resume(struct i2c_client *client)
257{ 285{
258 struct eeti_ts_priv *priv = i2c_get_clientdata(client); 286 struct eeti_ts_priv *priv = i2c_get_clientdata(client);
287 struct input_dev *input_dev = priv->input;
259 288
260 if (device_may_wakeup(&client->dev)) 289 if (device_may_wakeup(&client->dev))
261 disable_irq_wake(priv->irq); 290 disable_irq_wake(priv->irq);
262 291
292 mutex_lock(&input_dev->mutex);
293
294 if (input_dev->users)
295 eeti_ts_start(priv);
296
297 mutex_unlock(&input_dev->mutex);
298
263 return 0; 299 return 0;
264} 300}
265#else 301#else
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 9712b2e97be4..cefd63daff31 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2109,12 +2109,18 @@ repeat:
2109 if (!mddev->in_sync || mddev->recovery_cp != MaxSector) { /* not clean */ 2109 if (!mddev->in_sync || mddev->recovery_cp != MaxSector) { /* not clean */
2110 /* .. if the array isn't clean, an 'even' event must also go 2110 /* .. if the array isn't clean, an 'even' event must also go
2111 * to spares. */ 2111 * to spares. */
2112 if ((mddev->events&1)==0) 2112 if ((mddev->events&1)==0) {
2113 nospares = 0; 2113 nospares = 0;
2114 sync_req = 2; /* force a second update to get the
2115 * even/odd in sync */
2116 }
2114 } else { 2117 } else {
2115 /* otherwise an 'odd' event must go to spares */ 2118 /* otherwise an 'odd' event must go to spares */
2116 if ((mddev->events&1)) 2119 if ((mddev->events&1)) {
2117 nospares = 0; 2120 nospares = 0;
2121 sync_req = 2; /* force a second update to get the
2122 * even/odd in sync */
2123 }
2118 } 2124 }
2119 } 2125 }
2120 2126
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index e3e9a36ea3b7..15348c393b5d 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -1527,7 +1527,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
1527 1527
1528 clear_bit(R5_UPTODATE, &sh->dev[i].flags); 1528 clear_bit(R5_UPTODATE, &sh->dev[i].flags);
1529 atomic_inc(&rdev->read_errors); 1529 atomic_inc(&rdev->read_errors);
1530 if (conf->mddev->degraded) 1530 if (conf->mddev->degraded >= conf->max_degraded)
1531 printk_rl(KERN_WARNING 1531 printk_rl(KERN_WARNING
1532 "raid5:%s: read error not correctable " 1532 "raid5:%s: read error not correctable "
1533 "(sector %llu on %s).\n", 1533 "(sector %llu on %s).\n",
@@ -1650,8 +1650,8 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1650 int previous, int *dd_idx, 1650 int previous, int *dd_idx,
1651 struct stripe_head *sh) 1651 struct stripe_head *sh)
1652{ 1652{
1653 long stripe; 1653 sector_t stripe, stripe2;
1654 unsigned long chunk_number; 1654 sector_t chunk_number;
1655 unsigned int chunk_offset; 1655 unsigned int chunk_offset;
1656 int pd_idx, qd_idx; 1656 int pd_idx, qd_idx;
1657 int ddf_layout = 0; 1657 int ddf_layout = 0;
@@ -1671,18 +1671,13 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1671 */ 1671 */
1672 chunk_offset = sector_div(r_sector, sectors_per_chunk); 1672 chunk_offset = sector_div(r_sector, sectors_per_chunk);
1673 chunk_number = r_sector; 1673 chunk_number = r_sector;
1674 BUG_ON(r_sector != chunk_number);
1675 1674
1676 /* 1675 /*
1677 * Compute the stripe number 1676 * Compute the stripe number
1678 */ 1677 */
1679 stripe = chunk_number / data_disks; 1678 stripe = chunk_number;
1680 1679 *dd_idx = sector_div(stripe, data_disks);
1681 /* 1680 stripe2 = stripe;
1682 * Compute the data disk and parity disk indexes inside the stripe
1683 */
1684 *dd_idx = chunk_number % data_disks;
1685
1686 /* 1681 /*
1687 * Select the parity disk based on the user selected algorithm. 1682 * Select the parity disk based on the user selected algorithm.
1688 */ 1683 */
@@ -1694,21 +1689,21 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1694 case 5: 1689 case 5:
1695 switch (algorithm) { 1690 switch (algorithm) {
1696 case ALGORITHM_LEFT_ASYMMETRIC: 1691 case ALGORITHM_LEFT_ASYMMETRIC:
1697 pd_idx = data_disks - stripe % raid_disks; 1692 pd_idx = data_disks - sector_div(stripe2, raid_disks);
1698 if (*dd_idx >= pd_idx) 1693 if (*dd_idx >= pd_idx)
1699 (*dd_idx)++; 1694 (*dd_idx)++;
1700 break; 1695 break;
1701 case ALGORITHM_RIGHT_ASYMMETRIC: 1696 case ALGORITHM_RIGHT_ASYMMETRIC:
1702 pd_idx = stripe % raid_disks; 1697 pd_idx = sector_div(stripe2, raid_disks);
1703 if (*dd_idx >= pd_idx) 1698 if (*dd_idx >= pd_idx)
1704 (*dd_idx)++; 1699 (*dd_idx)++;
1705 break; 1700 break;
1706 case ALGORITHM_LEFT_SYMMETRIC: 1701 case ALGORITHM_LEFT_SYMMETRIC:
1707 pd_idx = data_disks - stripe % raid_disks; 1702 pd_idx = data_disks - sector_div(stripe2, raid_disks);
1708 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks; 1703 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
1709 break; 1704 break;
1710 case ALGORITHM_RIGHT_SYMMETRIC: 1705 case ALGORITHM_RIGHT_SYMMETRIC:
1711 pd_idx = stripe % raid_disks; 1706 pd_idx = sector_div(stripe2, raid_disks);
1712 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks; 1707 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
1713 break; 1708 break;
1714 case ALGORITHM_PARITY_0: 1709 case ALGORITHM_PARITY_0:
@@ -1728,7 +1723,7 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1728 1723
1729 switch (algorithm) { 1724 switch (algorithm) {
1730 case ALGORITHM_LEFT_ASYMMETRIC: 1725 case ALGORITHM_LEFT_ASYMMETRIC:
1731 pd_idx = raid_disks - 1 - (stripe % raid_disks); 1726 pd_idx = raid_disks - 1 - sector_div(stripe2, raid_disks);
1732 qd_idx = pd_idx + 1; 1727 qd_idx = pd_idx + 1;
1733 if (pd_idx == raid_disks-1) { 1728 if (pd_idx == raid_disks-1) {
1734 (*dd_idx)++; /* Q D D D P */ 1729 (*dd_idx)++; /* Q D D D P */
@@ -1737,7 +1732,7 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1737 (*dd_idx) += 2; /* D D P Q D */ 1732 (*dd_idx) += 2; /* D D P Q D */
1738 break; 1733 break;
1739 case ALGORITHM_RIGHT_ASYMMETRIC: 1734 case ALGORITHM_RIGHT_ASYMMETRIC:
1740 pd_idx = stripe % raid_disks; 1735 pd_idx = sector_div(stripe2, raid_disks);
1741 qd_idx = pd_idx + 1; 1736 qd_idx = pd_idx + 1;
1742 if (pd_idx == raid_disks-1) { 1737 if (pd_idx == raid_disks-1) {
1743 (*dd_idx)++; /* Q D D D P */ 1738 (*dd_idx)++; /* Q D D D P */
@@ -1746,12 +1741,12 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1746 (*dd_idx) += 2; /* D D P Q D */ 1741 (*dd_idx) += 2; /* D D P Q D */
1747 break; 1742 break;
1748 case ALGORITHM_LEFT_SYMMETRIC: 1743 case ALGORITHM_LEFT_SYMMETRIC:
1749 pd_idx = raid_disks - 1 - (stripe % raid_disks); 1744 pd_idx = raid_disks - 1 - sector_div(stripe2, raid_disks);
1750 qd_idx = (pd_idx + 1) % raid_disks; 1745 qd_idx = (pd_idx + 1) % raid_disks;
1751 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks; 1746 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks;
1752 break; 1747 break;
1753 case ALGORITHM_RIGHT_SYMMETRIC: 1748 case ALGORITHM_RIGHT_SYMMETRIC:
1754 pd_idx = stripe % raid_disks; 1749 pd_idx = sector_div(stripe2, raid_disks);
1755 qd_idx = (pd_idx + 1) % raid_disks; 1750 qd_idx = (pd_idx + 1) % raid_disks;
1756 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks; 1751 *dd_idx = (pd_idx + 2 + *dd_idx) % raid_disks;
1757 break; 1752 break;
@@ -1770,7 +1765,7 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1770 /* Exactly the same as RIGHT_ASYMMETRIC, but or 1765 /* Exactly the same as RIGHT_ASYMMETRIC, but or
1771 * of blocks for computing Q is different. 1766 * of blocks for computing Q is different.
1772 */ 1767 */
1773 pd_idx = stripe % raid_disks; 1768 pd_idx = sector_div(stripe2, raid_disks);
1774 qd_idx = pd_idx + 1; 1769 qd_idx = pd_idx + 1;
1775 if (pd_idx == raid_disks-1) { 1770 if (pd_idx == raid_disks-1) {
1776 (*dd_idx)++; /* Q D D D P */ 1771 (*dd_idx)++; /* Q D D D P */
@@ -1785,7 +1780,8 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1785 * D D D P Q rather than 1780 * D D D P Q rather than
1786 * Q D D D P 1781 * Q D D D P
1787 */ 1782 */
1788 pd_idx = raid_disks - 1 - ((stripe + 1) % raid_disks); 1783 stripe2 += 1;
1784 pd_idx = raid_disks - 1 - sector_div(stripe2, raid_disks);
1789 qd_idx = pd_idx + 1; 1785 qd_idx = pd_idx + 1;
1790 if (pd_idx == raid_disks-1) { 1786 if (pd_idx == raid_disks-1) {
1791 (*dd_idx)++; /* Q D D D P */ 1787 (*dd_idx)++; /* Q D D D P */
@@ -1797,7 +1793,7 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1797 1793
1798 case ALGORITHM_ROTATING_N_CONTINUE: 1794 case ALGORITHM_ROTATING_N_CONTINUE:
1799 /* Same as left_symmetric but Q is before P */ 1795 /* Same as left_symmetric but Q is before P */
1800 pd_idx = raid_disks - 1 - (stripe % raid_disks); 1796 pd_idx = raid_disks - 1 - sector_div(stripe2, raid_disks);
1801 qd_idx = (pd_idx + raid_disks - 1) % raid_disks; 1797 qd_idx = (pd_idx + raid_disks - 1) % raid_disks;
1802 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks; 1798 *dd_idx = (pd_idx + 1 + *dd_idx) % raid_disks;
1803 ddf_layout = 1; 1799 ddf_layout = 1;
@@ -1805,27 +1801,27 @@ static sector_t raid5_compute_sector(raid5_conf_t *conf, sector_t r_sector,
1805 1801
1806 case ALGORITHM_LEFT_ASYMMETRIC_6: 1802 case ALGORITHM_LEFT_ASYMMETRIC_6:
1807 /* RAID5 left_asymmetric, with Q on last device */ 1803 /* RAID5 left_asymmetric, with Q on last device */
1808 pd_idx = data_disks - stripe % (raid_disks-1); 1804 pd_idx = data_disks - sector_div(stripe2, raid_disks-1);
1809 if (*dd_idx >= pd_idx) 1805 if (*dd_idx >= pd_idx)
1810 (*dd_idx)++; 1806 (*dd_idx)++;
1811 qd_idx = raid_disks - 1; 1807 qd_idx = raid_disks - 1;
1812 break; 1808 break;
1813 1809
1814 case ALGORITHM_RIGHT_ASYMMETRIC_6: 1810 case ALGORITHM_RIGHT_ASYMMETRIC_6:
1815 pd_idx = stripe % (raid_disks-1); 1811 pd_idx = sector_div(stripe2, raid_disks-1);
1816 if (*dd_idx >= pd_idx) 1812 if (*dd_idx >= pd_idx)
1817 (*dd_idx)++; 1813 (*dd_idx)++;
1818 qd_idx = raid_disks - 1; 1814 qd_idx = raid_disks - 1;
1819 break; 1815 break;
1820 1816
1821 case ALGORITHM_LEFT_SYMMETRIC_6: 1817 case ALGORITHM_LEFT_SYMMETRIC_6:
1822 pd_idx = data_disks - stripe % (raid_disks-1); 1818 pd_idx = data_disks - sector_div(stripe2, raid_disks-1);
1823 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1); 1819 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1);
1824 qd_idx = raid_disks - 1; 1820 qd_idx = raid_disks - 1;
1825 break; 1821 break;
1826 1822
1827 case ALGORITHM_RIGHT_SYMMETRIC_6: 1823 case ALGORITHM_RIGHT_SYMMETRIC_6:
1828 pd_idx = stripe % (raid_disks-1); 1824 pd_idx = sector_div(stripe2, raid_disks-1);
1829 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1); 1825 *dd_idx = (pd_idx + 1 + *dd_idx) % (raid_disks-1);
1830 qd_idx = raid_disks - 1; 1826 qd_idx = raid_disks - 1;
1831 break; 1827 break;
@@ -1870,14 +1866,14 @@ static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous)
1870 : conf->algorithm; 1866 : conf->algorithm;
1871 sector_t stripe; 1867 sector_t stripe;
1872 int chunk_offset; 1868 int chunk_offset;
1873 int chunk_number, dummy1, dd_idx = i; 1869 sector_t chunk_number;
1870 int dummy1, dd_idx = i;
1874 sector_t r_sector; 1871 sector_t r_sector;
1875 struct stripe_head sh2; 1872 struct stripe_head sh2;
1876 1873
1877 1874
1878 chunk_offset = sector_div(new_sector, sectors_per_chunk); 1875 chunk_offset = sector_div(new_sector, sectors_per_chunk);
1879 stripe = new_sector; 1876 stripe = new_sector;
1880 BUG_ON(new_sector != stripe);
1881 1877
1882 if (i == sh->pd_idx) 1878 if (i == sh->pd_idx)
1883 return 0; 1879 return 0;
@@ -1970,7 +1966,7 @@ static sector_t compute_blocknr(struct stripe_head *sh, int i, int previous)
1970 } 1966 }
1971 1967
1972 chunk_number = stripe * data_disks + i; 1968 chunk_number = stripe * data_disks + i;
1973 r_sector = (sector_t)chunk_number * sectors_per_chunk + chunk_offset; 1969 r_sector = chunk_number * sectors_per_chunk + chunk_offset;
1974 1970
1975 check = raid5_compute_sector(conf, r_sector, 1971 check = raid5_compute_sector(conf, r_sector,
1976 previous, &dummy1, &sh2); 1972 previous, &dummy1, &sh2);
diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c
index fd8e1f45be36..7364b9642d00 100644
--- a/drivers/media/common/saa7146_fops.c
+++ b/drivers/media/common/saa7146_fops.c
@@ -423,15 +423,14 @@ static void vv_callback(struct saa7146_dev *dev, unsigned long status)
423 } 423 }
424} 424}
425 425
426int saa7146_vv_devinit(struct saa7146_dev *dev)
427{
428 return v4l2_device_register(&dev->pci->dev, &dev->v4l2_dev);
429}
430EXPORT_SYMBOL_GPL(saa7146_vv_devinit);
431
432int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv) 426int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
433{ 427{
434 struct saa7146_vv *vv; 428 struct saa7146_vv *vv;
429 int err;
430
431 err = v4l2_device_register(&dev->pci->dev, &dev->v4l2_dev);
432 if (err)
433 return err;
435 434
436 vv = kzalloc(sizeof(struct saa7146_vv), GFP_KERNEL); 435 vv = kzalloc(sizeof(struct saa7146_vv), GFP_KERNEL);
437 if (vv == NULL) { 436 if (vv == NULL) {
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c
index 5ed75263340a..b8b2c551a1e2 100644
--- a/drivers/media/common/saa7146_video.c
+++ b/drivers/media/common/saa7146_video.c
@@ -558,9 +558,11 @@ static int vidioc_s_fbuf(struct file *file, void *fh, struct v4l2_framebuffer *f
558 /* ok, accept it */ 558 /* ok, accept it */
559 vv->ov_fb = *fb; 559 vv->ov_fb = *fb;
560 vv->ov_fmt = fmt; 560 vv->ov_fmt = fmt;
561 if (0 == vv->ov_fb.fmt.bytesperline) 561
562 vv->ov_fb.fmt.bytesperline = 562 if (vv->ov_fb.fmt.bytesperline < vv->ov_fb.fmt.width) {
563 vv->ov_fb.fmt.width * fmt->depth / 8; 563 vv->ov_fb.fmt.bytesperline = vv->ov_fb.fmt.width * fmt->depth / 8;
564 DEB_D(("setting bytesperline to %d\n", vv->ov_fb.fmt.bytesperline));
565 }
564 566
565 mutex_unlock(&dev->lock); 567 mutex_unlock(&dev->lock);
566 return 0; 568 return 0;
diff --git a/drivers/media/dvb/frontends/stv090x.c b/drivers/media/dvb/frontends/stv090x.c
index a3c07fe0e6c4..96972804f4ad 100644
--- a/drivers/media/dvb/frontends/stv090x.c
+++ b/drivers/media/dvb/frontends/stv090x.c
@@ -4470,6 +4470,10 @@ static int stv090x_setup(struct dvb_frontend *fe)
4470 if (stv090x_write_reg(state, STV090x_TSTRES0, 0x00) < 0) 4470 if (stv090x_write_reg(state, STV090x_TSTRES0, 0x00) < 0)
4471 goto err; 4471 goto err;
4472 4472
4473 /* workaround for stuck DiSEqC output */
4474 if (config->diseqc_envelope_mode)
4475 stv090x_send_diseqc_burst(fe, SEC_MINI_A);
4476
4473 return 0; 4477 return 0;
4474err: 4478err:
4475 dprintk(FE_ERROR, 1, "I/O error"); 4479 dprintk(FE_ERROR, 1, "I/O error");
diff --git a/drivers/media/dvb/ttpci/budget.c b/drivers/media/dvb/ttpci/budget.c
index 9fdf26cc6998..1500210c06cf 100644
--- a/drivers/media/dvb/ttpci/budget.c
+++ b/drivers/media/dvb/ttpci/budget.c
@@ -643,9 +643,6 @@ static void frontend_init(struct budget *budget)
643 &budget->i2c_adap, 643 &budget->i2c_adap,
644 &tt1600_isl6423_config); 644 &tt1600_isl6423_config);
645 645
646 } else {
647 dvb_frontend_detach(budget->dvb_frontend);
648 budget->dvb_frontend = NULL;
649 } 646 }
650 } 647 }
651 break; 648 break;
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index f8fc8654693d..9644cf760aaa 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -361,7 +361,7 @@ config VIDEO_SAA717X
361 361
362config VIDEO_SAA7191 362config VIDEO_SAA7191
363 tristate "Philips SAA7191 video decoder" 363 tristate "Philips SAA7191 video decoder"
364 depends on VIDEO_V4L1 && I2C 364 depends on VIDEO_V4L2 && I2C
365 ---help--- 365 ---help---
366 Support for the Philips SAA7191 video decoder. 366 Support for the Philips SAA7191 video decoder.
367 367
@@ -756,7 +756,7 @@ source "drivers/media/video/saa7134/Kconfig"
756 756
757config VIDEO_MXB 757config VIDEO_MXB
758 tristate "Siemens-Nixdorf 'Multimedia eXtension Board'" 758 tristate "Siemens-Nixdorf 'Multimedia eXtension Board'"
759 depends on PCI && VIDEO_V4L1 && I2C 759 depends on PCI && VIDEO_V4L2 && I2C
760 select VIDEO_SAA7146_VV 760 select VIDEO_SAA7146_VV
761 select VIDEO_TUNER 761 select VIDEO_TUNER
762 select VIDEO_SAA711X if VIDEO_HELPER_CHIPS_AUTO 762 select VIDEO_SAA711X if VIDEO_HELPER_CHIPS_AUTO
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index b88b6174a331..c51c386559f2 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -160,8 +160,6 @@ obj-$(CONFIG_VIDEO_MX3) += mx3_camera.o
160obj-$(CONFIG_VIDEO_PXA27x) += pxa_camera.o 160obj-$(CONFIG_VIDEO_PXA27x) += pxa_camera.o
161obj-$(CONFIG_VIDEO_SH_MOBILE_CEU) += sh_mobile_ceu_camera.o 161obj-$(CONFIG_VIDEO_SH_MOBILE_CEU) += sh_mobile_ceu_camera.o
162 162
163obj-$(CONFIG_ARCH_DAVINCI) += davinci/
164
165obj-$(CONFIG_VIDEO_AU0828) += au0828/ 163obj-$(CONFIG_VIDEO_AU0828) += au0828/
166 164
167obj-$(CONFIG_USB_VIDEO_CLASS) += uvc/ 165obj-$(CONFIG_USB_VIDEO_CLASS) += uvc/
diff --git a/drivers/media/video/davinci/vpfe_capture.c b/drivers/media/video/davinci/vpfe_capture.c
index 7cf042f9b377..398dbe71cb82 100644
--- a/drivers/media/video/davinci/vpfe_capture.c
+++ b/drivers/media/video/davinci/vpfe_capture.c
@@ -223,7 +223,6 @@ int vpfe_register_ccdc_device(struct ccdc_hw_device *dev)
223 BUG_ON(!dev->hw_ops.get_frame_format); 223 BUG_ON(!dev->hw_ops.get_frame_format);
224 BUG_ON(!dev->hw_ops.get_pixel_format); 224 BUG_ON(!dev->hw_ops.get_pixel_format);
225 BUG_ON(!dev->hw_ops.set_pixel_format); 225 BUG_ON(!dev->hw_ops.set_pixel_format);
226 BUG_ON(!dev->hw_ops.set_params);
227 BUG_ON(!dev->hw_ops.set_image_window); 226 BUG_ON(!dev->hw_ops.set_image_window);
228 BUG_ON(!dev->hw_ops.get_image_window); 227 BUG_ON(!dev->hw_ops.get_image_window);
229 BUG_ON(!dev->hw_ops.get_line_length); 228 BUG_ON(!dev->hw_ops.get_line_length);
@@ -1689,11 +1688,12 @@ static long vpfe_param_handler(struct file *file, void *priv,
1689 struct vpfe_device *vpfe_dev = video_drvdata(file); 1688 struct vpfe_device *vpfe_dev = video_drvdata(file);
1690 int ret = 0; 1689 int ret = 0;
1691 1690
1692 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev, "vpfe_param_handler\n"); 1691 v4l2_dbg(2, debug, &vpfe_dev->v4l2_dev, "vpfe_param_handler\n");
1693 1692
1694 if (vpfe_dev->started) { 1693 if (vpfe_dev->started) {
1695 /* only allowed if streaming is not started */ 1694 /* only allowed if streaming is not started */
1696 v4l2_err(&vpfe_dev->v4l2_dev, "device already started\n"); 1695 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
1696 "device already started\n");
1697 return -EBUSY; 1697 return -EBUSY;
1698 } 1698 }
1699 1699
@@ -1705,16 +1705,23 @@ static long vpfe_param_handler(struct file *file, void *priv,
1705 case VPFE_CMD_S_CCDC_RAW_PARAMS: 1705 case VPFE_CMD_S_CCDC_RAW_PARAMS:
1706 v4l2_warn(&vpfe_dev->v4l2_dev, 1706 v4l2_warn(&vpfe_dev->v4l2_dev,
1707 "VPFE_CMD_S_CCDC_RAW_PARAMS: experimental ioctl\n"); 1707 "VPFE_CMD_S_CCDC_RAW_PARAMS: experimental ioctl\n");
1708 ret = ccdc_dev->hw_ops.set_params(param); 1708 if (ccdc_dev->hw_ops.set_params) {
1709 if (ret) { 1709 ret = ccdc_dev->hw_ops.set_params(param);
1710 v4l2_err(&vpfe_dev->v4l2_dev, 1710 if (ret) {
1711 "Error in setting parameters in CCDC\n"); 1711 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
1712 goto unlock_out; 1712 "Error setting parameters in CCDC\n");
1713 } 1713 goto unlock_out;
1714 if (vpfe_get_ccdc_image_format(vpfe_dev, &vpfe_dev->fmt) < 0) { 1714 }
1715 v4l2_err(&vpfe_dev->v4l2_dev, 1715 if (vpfe_get_ccdc_image_format(vpfe_dev,
1716 "Invalid image format at CCDC\n"); 1716 &vpfe_dev->fmt) < 0) {
1717 goto unlock_out; 1717 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
1718 "Invalid image format at CCDC\n");
1719 goto unlock_out;
1720 }
1721 } else {
1722 ret = -EINVAL;
1723 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
1724 "VPFE_CMD_S_CCDC_RAW_PARAMS not supported\n");
1718 } 1725 }
1719 break; 1726 break;
1720 default: 1727 default:
@@ -1830,7 +1837,7 @@ static __init int vpfe_probe(struct platform_device *pdev)
1830 if (NULL == ccdc_cfg) { 1837 if (NULL == ccdc_cfg) {
1831 v4l2_err(pdev->dev.driver, 1838 v4l2_err(pdev->dev.driver,
1832 "Memory allocation failed for ccdc_cfg\n"); 1839 "Memory allocation failed for ccdc_cfg\n");
1833 goto probe_free_dev_mem; 1840 goto probe_free_lock;
1834 } 1841 }
1835 1842
1836 strncpy(ccdc_cfg->name, vpfe_cfg->ccdc, 32); 1843 strncpy(ccdc_cfg->name, vpfe_cfg->ccdc, 32);
@@ -1982,8 +1989,9 @@ probe_out_video_release:
1982probe_out_release_irq: 1989probe_out_release_irq:
1983 free_irq(vpfe_dev->ccdc_irq0, vpfe_dev); 1990 free_irq(vpfe_dev->ccdc_irq0, vpfe_dev);
1984probe_free_ccdc_cfg_mem: 1991probe_free_ccdc_cfg_mem:
1985 mutex_unlock(&ccdc_lock);
1986 kfree(ccdc_cfg); 1992 kfree(ccdc_cfg);
1993probe_free_lock:
1994 mutex_unlock(&ccdc_lock);
1987probe_free_dev_mem: 1995probe_free_dev_mem:
1988 kfree(vpfe_dev); 1996 kfree(vpfe_dev);
1989 return ret; 1997 return ret;
diff --git a/drivers/media/video/gspca/sn9c20x.c b/drivers/media/video/gspca/sn9c20x.c
index 38a6e15e096b..3dee3e5844b6 100644
--- a/drivers/media/video/gspca/sn9c20x.c
+++ b/drivers/media/video/gspca/sn9c20x.c
@@ -1427,7 +1427,7 @@ static int input_kthread(void *data)
1427 struct gspca_dev *gspca_dev = (struct gspca_dev *)data; 1427 struct gspca_dev *gspca_dev = (struct gspca_dev *)data;
1428 struct sd *sd = (struct sd *) gspca_dev; 1428 struct sd *sd = (struct sd *) gspca_dev;
1429 1429
1430 DECLARE_WAIT_QUEUE_HEAD(wait); 1430 DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wait);
1431 set_freezable(); 1431 set_freezable();
1432 for (;;) { 1432 for (;;) {
1433 if (kthread_should_stop()) 1433 if (kthread_should_stop())
diff --git a/drivers/media/video/gspca/spca508.c b/drivers/media/video/gspca/spca508.c
index 15b2eef8a3f6..edf0fe157501 100644
--- a/drivers/media/video/gspca/spca508.c
+++ b/drivers/media/video/gspca/spca508.c
@@ -1513,7 +1513,6 @@ static const struct sd_desc sd_desc = {
1513static const __devinitdata struct usb_device_id device_table[] = { 1513static const __devinitdata struct usb_device_id device_table[] = {
1514 {USB_DEVICE(0x0130, 0x0130), .driver_info = HamaUSBSightcam}, 1514 {USB_DEVICE(0x0130, 0x0130), .driver_info = HamaUSBSightcam},
1515 {USB_DEVICE(0x041e, 0x4018), .driver_info = CreativeVista}, 1515 {USB_DEVICE(0x041e, 0x4018), .driver_info = CreativeVista},
1516 {USB_DEVICE(0x0461, 0x0815), .driver_info = MicroInnovationIC200},
1517 {USB_DEVICE(0x0733, 0x0110), .driver_info = ViewQuestVQ110}, 1516 {USB_DEVICE(0x0733, 0x0110), .driver_info = ViewQuestVQ110},
1518 {USB_DEVICE(0x0af9, 0x0010), .driver_info = HamaUSBSightcam}, 1517 {USB_DEVICE(0x0af9, 0x0010), .driver_info = HamaUSBSightcam},
1519 {USB_DEVICE(0x0af9, 0x0011), .driver_info = HamaUSBSightcam2}, 1518 {USB_DEVICE(0x0af9, 0x0011), .driver_info = HamaUSBSightcam2},
diff --git a/drivers/media/video/gspca/spca561.c b/drivers/media/video/gspca/spca561.c
index dc7f2b0fbc79..b9c80e2103b9 100644
--- a/drivers/media/video/gspca/spca561.c
+++ b/drivers/media/video/gspca/spca561.c
@@ -1053,6 +1053,7 @@ static const __devinitdata struct usb_device_id device_table[] = {
1053 {USB_DEVICE(0x041e, 0x401a), .driver_info = Rev072A}, 1053 {USB_DEVICE(0x041e, 0x401a), .driver_info = Rev072A},
1054 {USB_DEVICE(0x041e, 0x403b), .driver_info = Rev012A}, 1054 {USB_DEVICE(0x041e, 0x403b), .driver_info = Rev012A},
1055 {USB_DEVICE(0x0458, 0x7004), .driver_info = Rev072A}, 1055 {USB_DEVICE(0x0458, 0x7004), .driver_info = Rev072A},
1056 {USB_DEVICE(0x0461, 0x0815), .driver_info = Rev072A},
1056 {USB_DEVICE(0x046d, 0x0928), .driver_info = Rev012A}, 1057 {USB_DEVICE(0x046d, 0x0928), .driver_info = Rev012A},
1057 {USB_DEVICE(0x046d, 0x0929), .driver_info = Rev012A}, 1058 {USB_DEVICE(0x046d, 0x0929), .driver_info = Rev012A},
1058 {USB_DEVICE(0x046d, 0x092a), .driver_info = Rev012A}, 1059 {USB_DEVICE(0x046d, 0x092a), .driver_info = Rev012A},
diff --git a/drivers/media/video/gspca/stv06xx/stv06xx.c b/drivers/media/video/gspca/stv06xx/stv06xx.c
index af73da34c83f..14f179a19485 100644
--- a/drivers/media/video/gspca/stv06xx/stv06xx.c
+++ b/drivers/media/video/gspca/stv06xx/stv06xx.c
@@ -524,8 +524,6 @@ static const __devinitdata struct usb_device_id device_table[] = {
524 {USB_DEVICE(0x046D, 0x08F5), .driver_info = BRIDGE_ST6422 }, 524 {USB_DEVICE(0x046D, 0x08F5), .driver_info = BRIDGE_ST6422 },
525 /* QuickCam Messenger (new) */ 525 /* QuickCam Messenger (new) */
526 {USB_DEVICE(0x046D, 0x08F6), .driver_info = BRIDGE_ST6422 }, 526 {USB_DEVICE(0x046D, 0x08F6), .driver_info = BRIDGE_ST6422 },
527 /* QuickCam Messenger (new) */
528 {USB_DEVICE(0x046D, 0x08DA), .driver_info = BRIDGE_ST6422 },
529 {} 527 {}
530}; 528};
531MODULE_DEVICE_TABLE(usb, device_table); 529MODULE_DEVICE_TABLE(usb, device_table);
diff --git a/drivers/media/video/hexium_gemini.c b/drivers/media/video/hexium_gemini.c
index e620a3a92f25..ad2c232baa6d 100644
--- a/drivers/media/video/hexium_gemini.c
+++ b/drivers/media/video/hexium_gemini.c
@@ -356,9 +356,6 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
356 356
357 DEB_EE((".\n")); 357 DEB_EE((".\n"));
358 358
359 ret = saa7146_vv_devinit(dev);
360 if (ret)
361 return ret;
362 hexium = kzalloc(sizeof(struct hexium), GFP_KERNEL); 359 hexium = kzalloc(sizeof(struct hexium), GFP_KERNEL);
363 if (NULL == hexium) { 360 if (NULL == hexium) {
364 printk("hexium_gemini: not enough kernel memory in hexium_attach().\n"); 361 printk("hexium_gemini: not enough kernel memory in hexium_attach().\n");
diff --git a/drivers/media/video/hexium_orion.c b/drivers/media/video/hexium_orion.c
index fe596a1c12a8..938a1f8f880a 100644
--- a/drivers/media/video/hexium_orion.c
+++ b/drivers/media/video/hexium_orion.c
@@ -216,10 +216,6 @@ static int hexium_probe(struct saa7146_dev *dev)
216 return -EFAULT; 216 return -EFAULT;
217 } 217 }
218 218
219 err = saa7146_vv_devinit(dev);
220 if (err)
221 return err;
222
223 hexium = kzalloc(sizeof(struct hexium), GFP_KERNEL); 219 hexium = kzalloc(sizeof(struct hexium), GFP_KERNEL);
224 if (NULL == hexium) { 220 if (NULL == hexium) {
225 printk("hexium_orion: hexium_probe: not enough kernel memory.\n"); 221 printk("hexium_orion: hexium_probe: not enough kernel memory.\n");
diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c
index 3c8ebfcb742e..34a66019190e 100644
--- a/drivers/media/video/mx1_camera.c
+++ b/drivers/media/video/mx1_camera.c
@@ -49,8 +49,6 @@
49/* 49/*
50 * CSI registers 50 * CSI registers
51 */ 51 */
52#define DMA_CCR(x) (0x8c + ((x) << 6)) /* Control Registers */
53#define DMA_DIMR 0x08 /* Interrupt mask Register */
54#define CSICR1 0x00 /* CSI Control Register 1 */ 52#define CSICR1 0x00 /* CSI Control Register 1 */
55#define CSISR 0x08 /* CSI Status Register */ 53#define CSISR 0x08 /* CSI Status Register */
56#define CSIRXR 0x10 /* CSI RxFIFO Register */ 54#define CSIRXR 0x10 /* CSI RxFIFO Register */
@@ -784,7 +782,7 @@ static int __init mx1_camera_probe(struct platform_device *pdev)
784 pcdev); 782 pcdev);
785 783
786 imx_dma_config_channel(pcdev->dma_chan, IMX_DMA_TYPE_FIFO, 784 imx_dma_config_channel(pcdev->dma_chan, IMX_DMA_TYPE_FIFO,
787 IMX_DMA_MEMSIZE_32, DMA_REQ_CSI_R, 0); 785 IMX_DMA_MEMSIZE_32, MX1_DMA_REQ_CSI_R, 0);
788 /* burst length : 16 words = 64 bytes */ 786 /* burst length : 16 words = 64 bytes */
789 imx_dma_config_burstlen(pcdev->dma_chan, 0); 787 imx_dma_config_burstlen(pcdev->dma_chan, 0);
790 788
@@ -798,8 +796,8 @@ static int __init mx1_camera_probe(struct platform_device *pdev)
798 set_fiq_handler(&mx1_camera_sof_fiq_start, &mx1_camera_sof_fiq_end - 796 set_fiq_handler(&mx1_camera_sof_fiq_start, &mx1_camera_sof_fiq_end -
799 &mx1_camera_sof_fiq_start); 797 &mx1_camera_sof_fiq_start);
800 798
801 regs.ARM_r8 = DMA_BASE + DMA_DIMR; 799 regs.ARM_r8 = (long)MX1_DMA_DIMR;
802 regs.ARM_r9 = DMA_BASE + DMA_CCR(pcdev->dma_chan); 800 regs.ARM_r9 = (long)MX1_DMA_CCR(pcdev->dma_chan);
803 regs.ARM_r10 = (long)pcdev->base + CSICR1; 801 regs.ARM_r10 = (long)pcdev->base + CSICR1;
804 regs.ARM_fp = (long)pcdev->base + CSISR; 802 regs.ARM_fp = (long)pcdev->base + CSISR;
805 regs.ARM_sp = 1 << pcdev->dma_chan; 803 regs.ARM_sp = 1 << pcdev->dma_chan;
diff --git a/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
index 9f01f14e4aa2..ef0c8178f255 100644
--- a/drivers/media/video/mxb.c
+++ b/drivers/media/video/mxb.c
@@ -169,11 +169,7 @@ static struct saa7146_extension extension;
169static int mxb_probe(struct saa7146_dev *dev) 169static int mxb_probe(struct saa7146_dev *dev)
170{ 170{
171 struct mxb *mxb = NULL; 171 struct mxb *mxb = NULL;
172 int err;
173 172
174 err = saa7146_vv_devinit(dev);
175 if (err)
176 return err;
177 mxb = kzalloc(sizeof(struct mxb), GFP_KERNEL); 173 mxb = kzalloc(sizeof(struct mxb), GFP_KERNEL);
178 if (mxb == NULL) { 174 if (mxb == NULL) {
179 DEB_D(("not enough kernel memory.\n")); 175 DEB_D(("not enough kernel memory.\n"));
@@ -699,14 +695,17 @@ static struct saa7146_ext_vv vv_data;
699/* this function only gets called when the probing was successful */ 695/* this function only gets called when the probing was successful */
700static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info) 696static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
701{ 697{
702 struct mxb *mxb = (struct mxb *)dev->ext_priv; 698 struct mxb *mxb;
703 699
704 DEB_EE(("dev:%p\n", dev)); 700 DEB_EE(("dev:%p\n", dev));
705 701
706 /* checking for i2c-devices can be omitted here, because we
707 already did this in "mxb_vl42_probe" */
708
709 saa7146_vv_init(dev, &vv_data); 702 saa7146_vv_init(dev, &vv_data);
703 if (mxb_probe(dev)) {
704 saa7146_vv_release(dev);
705 return -1;
706 }
707 mxb = (struct mxb *)dev->ext_priv;
708
710 vv_data.ops.vidioc_queryctrl = vidioc_queryctrl; 709 vv_data.ops.vidioc_queryctrl = vidioc_queryctrl;
711 vv_data.ops.vidioc_g_ctrl = vidioc_g_ctrl; 710 vv_data.ops.vidioc_g_ctrl = vidioc_g_ctrl;
712 vv_data.ops.vidioc_s_ctrl = vidioc_s_ctrl; 711 vv_data.ops.vidioc_s_ctrl = vidioc_s_ctrl;
@@ -726,6 +725,7 @@ static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data
726 vv_data.ops.vidioc_default = vidioc_default; 725 vv_data.ops.vidioc_default = vidioc_default;
727 if (saa7146_register_device(&mxb->video_dev, dev, "mxb", VFL_TYPE_GRABBER)) { 726 if (saa7146_register_device(&mxb->video_dev, dev, "mxb", VFL_TYPE_GRABBER)) {
728 ERR(("cannot register capture v4l2 device. skipping.\n")); 727 ERR(("cannot register capture v4l2 device. skipping.\n"));
728 saa7146_vv_release(dev);
729 return -1; 729 return -1;
730 } 730 }
731 731
@@ -846,7 +846,6 @@ static struct saa7146_extension extension = {
846 .pci_tbl = &pci_tbl[0], 846 .pci_tbl = &pci_tbl[0],
847 .module = THIS_MODULE, 847 .module = THIS_MODULE,
848 848
849 .probe = mxb_probe,
850 .attach = mxb_attach, 849 .attach = mxb_attach,
851 .detach = mxb_detach, 850 .detach = mxb_detach,
852 851
diff --git a/drivers/media/video/omap24xxcam.c b/drivers/media/video/omap24xxcam.c
index b189fe63394b..ce76d952e161 100644
--- a/drivers/media/video/omap24xxcam.c
+++ b/drivers/media/video/omap24xxcam.c
@@ -1405,7 +1405,7 @@ static int omap24xxcam_mmap_buffers(struct file *file,
1405 } 1405 }
1406 1406
1407 size = 0; 1407 size = 0;
1408 for (i = first; i <= last; i++) { 1408 for (i = first; i <= last && i < VIDEO_MAX_FRAME; i++) {
1409 struct videobuf_dmabuf *dma = videobuf_to_dma(vbq->bufs[i]); 1409 struct videobuf_dmabuf *dma = videobuf_to_dma(vbq->bufs[i]);
1410 1410
1411 for (j = 0; j < dma->sglen; j++) { 1411 for (j = 0; j < dma->sglen; j++) {
diff --git a/drivers/media/video/pxa_camera.c b/drivers/media/video/pxa_camera.c
index 5ecc30daef2d..04bf5c11308d 100644
--- a/drivers/media/video/pxa_camera.c
+++ b/drivers/media/video/pxa_camera.c
@@ -609,12 +609,9 @@ static void pxa_dma_add_tail_buf(struct pxa_camera_dev *pcdev,
609 */ 609 */
610static void pxa_camera_start_capture(struct pxa_camera_dev *pcdev) 610static void pxa_camera_start_capture(struct pxa_camera_dev *pcdev)
611{ 611{
612 unsigned long cicr0, cifr; 612 unsigned long cicr0;
613 613
614 dev_dbg(pcdev->soc_host.v4l2_dev.dev, "%s\n", __func__); 614 dev_dbg(pcdev->soc_host.v4l2_dev.dev, "%s\n", __func__);
615 /* Reset the FIFOs */
616 cifr = __raw_readl(pcdev->base + CIFR) | CIFR_RESET_F;
617 __raw_writel(cifr, pcdev->base + CIFR);
618 /* Enable End-Of-Frame Interrupt */ 615 /* Enable End-Of-Frame Interrupt */
619 cicr0 = __raw_readl(pcdev->base + CICR0) | CICR0_ENB; 616 cicr0 = __raw_readl(pcdev->base + CICR0) | CICR0_ENB;
620 cicr0 &= ~CICR0_EOFM; 617 cicr0 &= ~CICR0_EOFM;
@@ -935,7 +932,7 @@ static void pxa_camera_deactivate(struct pxa_camera_dev *pcdev)
935static irqreturn_t pxa_camera_irq(int irq, void *data) 932static irqreturn_t pxa_camera_irq(int irq, void *data)
936{ 933{
937 struct pxa_camera_dev *pcdev = data; 934 struct pxa_camera_dev *pcdev = data;
938 unsigned long status, cicr0; 935 unsigned long status, cifr, cicr0;
939 struct pxa_buffer *buf; 936 struct pxa_buffer *buf;
940 struct videobuf_buffer *vb; 937 struct videobuf_buffer *vb;
941 938
@@ -949,6 +946,10 @@ static irqreturn_t pxa_camera_irq(int irq, void *data)
949 __raw_writel(status, pcdev->base + CISR); 946 __raw_writel(status, pcdev->base + CISR);
950 947
951 if (status & CISR_EOF) { 948 if (status & CISR_EOF) {
949 /* Reset the FIFOs */
950 cifr = __raw_readl(pcdev->base + CIFR) | CIFR_RESET_F;
951 __raw_writel(cifr, pcdev->base + CIFR);
952
952 pcdev->active = list_first_entry(&pcdev->capture, 953 pcdev->active = list_first_entry(&pcdev->capture,
953 struct pxa_buffer, vb.queue); 954 struct pxa_buffer, vb.queue);
954 vb = &pcdev->active->vb; 955 vb = &pcdev->active->vb;
diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c
index 6e16b3979326..1ad980f8e770 100644
--- a/drivers/media/video/sh_mobile_ceu_camera.c
+++ b/drivers/media/video/sh_mobile_ceu_camera.c
@@ -1633,7 +1633,7 @@ static int sh_mobile_ceu_try_fmt(struct soc_camera_device *icd,
1633 height = pix->height; 1633 height = pix->height;
1634 1634
1635 pix->bytesperline = soc_mbus_bytes_per_line(width, xlate->host_fmt); 1635 pix->bytesperline = soc_mbus_bytes_per_line(width, xlate->host_fmt);
1636 if (pix->bytesperline < 0) 1636 if ((int)pix->bytesperline < 0)
1637 return pix->bytesperline; 1637 return pix->bytesperline;
1638 pix->sizeimage = height * pix->bytesperline; 1638 pix->sizeimage = height * pix->bytesperline;
1639 1639
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 2191c8d896a0..0d0d625fece2 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -311,6 +311,22 @@ config TI_DAC7512
311 This driver can also be built as a module. If so, the module 311 This driver can also be built as a module. If so, the module
312 will be calles ti_dac7512. 312 will be calles ti_dac7512.
313 313
314config VMWARE_BALLOON
315 tristate "VMware Balloon Driver"
316 depends on X86
317 help
318 This is VMware physical memory management driver which acts
319 like a "balloon" that can be inflated to reclaim physical pages
320 by reserving them in the guest and invalidating them in the
321 monitor, freeing up the underlying machine pages so they can
322 be allocated to other guests. The balloon can also be deflated
323 to allow the guest to use more physical memory.
324
325 If unsure, say N.
326
327 To compile this driver as a module, choose M here: the
328 module will be called vmware_balloon.
329
314source "drivers/misc/c2port/Kconfig" 330source "drivers/misc/c2port/Kconfig"
315source "drivers/misc/eeprom/Kconfig" 331source "drivers/misc/eeprom/Kconfig"
316source "drivers/misc/cb710/Kconfig" 332source "drivers/misc/cb710/Kconfig"
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 27c484355414..7b6f7eefdf8d 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -29,3 +29,4 @@ obj-$(CONFIG_C2PORT) += c2port/
29obj-$(CONFIG_IWMC3200TOP) += iwmc3200top/ 29obj-$(CONFIG_IWMC3200TOP) += iwmc3200top/
30obj-y += eeprom/ 30obj-y += eeprom/
31obj-y += cb710/ 31obj-y += cb710/
32obj-$(CONFIG_VMWARE_BALLOON) += vmware_balloon.o
diff --git a/drivers/misc/vmware_balloon.c b/drivers/misc/vmware_balloon.c
new file mode 100644
index 000000000000..e7161c4e3798
--- /dev/null
+++ b/drivers/misc/vmware_balloon.c
@@ -0,0 +1,832 @@
1/*
2 * VMware Balloon driver.
3 *
4 * Copyright (C) 2000-2010, VMware, Inc. All Rights Reserved.
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; version 2 of the License and no later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
13 * NON INFRINGEMENT. See the GNU General Public License for more
14 * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Maintained by: Dmitry Torokhov <dtor@vmware.com>
21 */
22
23/*
24 * This is VMware physical memory management driver for Linux. The driver
25 * acts like a "balloon" that can be inflated to reclaim physical pages by
26 * reserving them in the guest and invalidating them in the monitor,
27 * freeing up the underlying machine pages so they can be allocated to
28 * other guests. The balloon can also be deflated to allow the guest to
29 * use more physical memory. Higher level policies can control the sizes
30 * of balloons in VMs in order to manage physical memory resources.
31 */
32
33//#define DEBUG
34#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
35
36#include <linux/types.h>
37#include <linux/kernel.h>
38#include <linux/mm.h>
39#include <linux/sched.h>
40#include <linux/module.h>
41#include <linux/workqueue.h>
42#include <linux/debugfs.h>
43#include <linux/seq_file.h>
44#include <asm/vmware.h>
45
46MODULE_AUTHOR("VMware, Inc.");
47MODULE_DESCRIPTION("VMware Memory Control (Balloon) Driver");
48MODULE_VERSION("1.2.1.0-K");
49MODULE_ALIAS("dmi:*:svnVMware*:*");
50MODULE_ALIAS("vmware_vmmemctl");
51MODULE_LICENSE("GPL");
52
53/*
54 * Various constants controlling rate of inflaint/deflating balloon,
55 * measured in pages.
56 */
57
58/*
59 * Rate of allocating memory when there is no memory pressure
60 * (driver performs non-sleeping allocations).
61 */
62#define VMW_BALLOON_NOSLEEP_ALLOC_MAX 16384U
63
64/*
65 * Rates of memory allocaton when guest experiences memory pressure
66 * (driver performs sleeping allocations).
67 */
68#define VMW_BALLOON_RATE_ALLOC_MIN 512U
69#define VMW_BALLOON_RATE_ALLOC_MAX 2048U
70#define VMW_BALLOON_RATE_ALLOC_INC 16U
71
72/*
73 * Rates for releasing pages while deflating balloon.
74 */
75#define VMW_BALLOON_RATE_FREE_MIN 512U
76#define VMW_BALLOON_RATE_FREE_MAX 16384U
77#define VMW_BALLOON_RATE_FREE_INC 16U
78
79/*
80 * When guest is under memory pressure, use a reduced page allocation
81 * rate for next several cycles.
82 */
83#define VMW_BALLOON_SLOW_CYCLES 4
84
85/*
86 * Use __GFP_HIGHMEM to allow pages from HIGHMEM zone. We don't
87 * allow wait (__GFP_WAIT) for NOSLEEP page allocations. Use
88 * __GFP_NOWARN, to suppress page allocation failure warnings.
89 */
90#define VMW_PAGE_ALLOC_NOSLEEP (__GFP_HIGHMEM|__GFP_NOWARN)
91
92/*
93 * Use GFP_HIGHUSER when executing in a separate kernel thread
94 * context and allocation can sleep. This is less stressful to
95 * the guest memory system, since it allows the thread to block
96 * while memory is reclaimed, and won't take pages from emergency
97 * low-memory pools.
98 */
99#define VMW_PAGE_ALLOC_CANSLEEP (GFP_HIGHUSER)
100
101/* Maximum number of page allocations without yielding processor */
102#define VMW_BALLOON_YIELD_THRESHOLD 1024
103
104
105/*
106 * Hypervisor communication port definitions.
107 */
108#define VMW_BALLOON_HV_PORT 0x5670
109#define VMW_BALLOON_HV_MAGIC 0x456c6d6f
110#define VMW_BALLOON_PROTOCOL_VERSION 2
111#define VMW_BALLOON_GUEST_ID 1 /* Linux */
112
113#define VMW_BALLOON_CMD_START 0
114#define VMW_BALLOON_CMD_GET_TARGET 1
115#define VMW_BALLOON_CMD_LOCK 2
116#define VMW_BALLOON_CMD_UNLOCK 3
117#define VMW_BALLOON_CMD_GUEST_ID 4
118
119/* error codes */
120#define VMW_BALLOON_SUCCESS 0
121#define VMW_BALLOON_FAILURE -1
122#define VMW_BALLOON_ERROR_CMD_INVALID 1
123#define VMW_BALLOON_ERROR_PPN_INVALID 2
124#define VMW_BALLOON_ERROR_PPN_LOCKED 3
125#define VMW_BALLOON_ERROR_PPN_UNLOCKED 4
126#define VMW_BALLOON_ERROR_PPN_PINNED 5
127#define VMW_BALLOON_ERROR_PPN_NOTNEEDED 6
128#define VMW_BALLOON_ERROR_RESET 7
129#define VMW_BALLOON_ERROR_BUSY 8
130
131#define VMWARE_BALLOON_CMD(cmd, data, result) \
132({ \
133 unsigned long __stat, __dummy1, __dummy2; \
134 __asm__ __volatile__ ("inl (%%dx)" : \
135 "=a"(__stat), \
136 "=c"(__dummy1), \
137 "=d"(__dummy2), \
138 "=b"(result) : \
139 "0"(VMW_BALLOON_HV_MAGIC), \
140 "1"(VMW_BALLOON_CMD_##cmd), \
141 "2"(VMW_BALLOON_HV_PORT), \
142 "3"(data) : \
143 "memory"); \
144 result &= -1UL; \
145 __stat & -1UL; \
146})
147
148#ifdef CONFIG_DEBUG_FS
149struct vmballoon_stats {
150 unsigned int timer;
151
152 /* allocation statustics */
153 unsigned int alloc;
154 unsigned int alloc_fail;
155 unsigned int sleep_alloc;
156 unsigned int sleep_alloc_fail;
157 unsigned int refused_alloc;
158 unsigned int refused_free;
159 unsigned int free;
160
161 /* monitor operations */
162 unsigned int lock;
163 unsigned int lock_fail;
164 unsigned int unlock;
165 unsigned int unlock_fail;
166 unsigned int target;
167 unsigned int target_fail;
168 unsigned int start;
169 unsigned int start_fail;
170 unsigned int guest_type;
171 unsigned int guest_type_fail;
172};
173
174#define STATS_INC(stat) (stat)++
175#else
176#define STATS_INC(stat)
177#endif
178
179struct vmballoon {
180
181 /* list of reserved physical pages */
182 struct list_head pages;
183
184 /* transient list of non-balloonable pages */
185 struct list_head refused_pages;
186
187 /* balloon size in pages */
188 unsigned int size;
189 unsigned int target;
190
191 /* reset flag */
192 bool reset_required;
193
194 /* adjustment rates (pages per second) */
195 unsigned int rate_alloc;
196 unsigned int rate_free;
197
198 /* slowdown page allocations for next few cycles */
199 unsigned int slow_allocation_cycles;
200
201#ifdef CONFIG_DEBUG_FS
202 /* statistics */
203 struct vmballoon_stats stats;
204
205 /* debugfs file exporting statistics */
206 struct dentry *dbg_entry;
207#endif
208
209 struct sysinfo sysinfo;
210
211 struct delayed_work dwork;
212};
213
214static struct vmballoon balloon;
215static struct workqueue_struct *vmballoon_wq;
216
217/*
218 * Send "start" command to the host, communicating supported version
219 * of the protocol.
220 */
221static bool vmballoon_send_start(struct vmballoon *b)
222{
223 unsigned long status, dummy;
224
225 STATS_INC(b->stats.start);
226
227 status = VMWARE_BALLOON_CMD(START, VMW_BALLOON_PROTOCOL_VERSION, dummy);
228 if (status == VMW_BALLOON_SUCCESS)
229 return true;
230
231 pr_debug("%s - failed, hv returns %ld\n", __func__, status);
232 STATS_INC(b->stats.start_fail);
233 return false;
234}
235
236static bool vmballoon_check_status(struct vmballoon *b, unsigned long status)
237{
238 switch (status) {
239 case VMW_BALLOON_SUCCESS:
240 return true;
241
242 case VMW_BALLOON_ERROR_RESET:
243 b->reset_required = true;
244 /* fall through */
245
246 default:
247 return false;
248 }
249}
250
251/*
252 * Communicate guest type to the host so that it can adjust ballooning
253 * algorithm to the one most appropriate for the guest. This command
254 * is normally issued after sending "start" command and is part of
255 * standard reset sequence.
256 */
257static bool vmballoon_send_guest_id(struct vmballoon *b)
258{
259 unsigned long status, dummy;
260
261 status = VMWARE_BALLOON_CMD(GUEST_ID, VMW_BALLOON_GUEST_ID, dummy);
262
263 STATS_INC(b->stats.guest_type);
264
265 if (vmballoon_check_status(b, status))
266 return true;
267
268 pr_debug("%s - failed, hv returns %ld\n", __func__, status);
269 STATS_INC(b->stats.guest_type_fail);
270 return false;
271}
272
273/*
274 * Retrieve desired balloon size from the host.
275 */
276static bool vmballoon_send_get_target(struct vmballoon *b, u32 *new_target)
277{
278 unsigned long status;
279 unsigned long target;
280 unsigned long limit;
281 u32 limit32;
282
283 /*
284 * si_meminfo() is cheap. Moreover, we want to provide dynamic
285 * max balloon size later. So let us call si_meminfo() every
286 * iteration.
287 */
288 si_meminfo(&b->sysinfo);
289 limit = b->sysinfo.totalram;
290
291 /* Ensure limit fits in 32-bits */
292 limit32 = (u32)limit;
293 if (limit != limit32)
294 return false;
295
296 /* update stats */
297 STATS_INC(b->stats.target);
298
299 status = VMWARE_BALLOON_CMD(GET_TARGET, limit, target);
300 if (vmballoon_check_status(b, status)) {
301 *new_target = target;
302 return true;
303 }
304
305 pr_debug("%s - failed, hv returns %ld\n", __func__, status);
306 STATS_INC(b->stats.target_fail);
307 return false;
308}
309
310/*
311 * Notify the host about allocated page so that host can use it without
312 * fear that guest will need it. Host may reject some pages, we need to
313 * check the return value and maybe submit a different page.
314 */
315static bool vmballoon_send_lock_page(struct vmballoon *b, unsigned long pfn)
316{
317 unsigned long status, dummy;
318 u32 pfn32;
319
320 pfn32 = (u32)pfn;
321 if (pfn32 != pfn)
322 return false;
323
324 STATS_INC(b->stats.lock);
325
326 status = VMWARE_BALLOON_CMD(LOCK, pfn, dummy);
327 if (vmballoon_check_status(b, status))
328 return true;
329
330 pr_debug("%s - ppn %lx, hv returns %ld\n", __func__, pfn, status);
331 STATS_INC(b->stats.lock_fail);
332 return false;
333}
334
335/*
336 * Notify the host that guest intends to release given page back into
337 * the pool of available (to the guest) pages.
338 */
339static bool vmballoon_send_unlock_page(struct vmballoon *b, unsigned long pfn)
340{
341 unsigned long status, dummy;
342 u32 pfn32;
343
344 pfn32 = (u32)pfn;
345 if (pfn32 != pfn)
346 return false;
347
348 STATS_INC(b->stats.unlock);
349
350 status = VMWARE_BALLOON_CMD(UNLOCK, pfn, dummy);
351 if (vmballoon_check_status(b, status))
352 return true;
353
354 pr_debug("%s - ppn %lx, hv returns %ld\n", __func__, pfn, status);
355 STATS_INC(b->stats.unlock_fail);
356 return false;
357}
358
359/*
360 * Quickly release all pages allocated for the balloon. This function is
361 * called when host decides to "reset" balloon for one reason or another.
362 * Unlike normal "deflate" we do not (shall not) notify host of the pages
363 * being released.
364 */
365static void vmballoon_pop(struct vmballoon *b)
366{
367 struct page *page, *next;
368 unsigned int count = 0;
369
370 list_for_each_entry_safe(page, next, &b->pages, lru) {
371 list_del(&page->lru);
372 __free_page(page);
373 STATS_INC(b->stats.free);
374 b->size--;
375
376 if (++count >= b->rate_free) {
377 count = 0;
378 cond_resched();
379 }
380 }
381}
382
383/*
384 * Perform standard reset sequence by popping the balloon (in case it
385 * is not empty) and then restarting protocol. This operation normally
386 * happens when host responds with VMW_BALLOON_ERROR_RESET to a command.
387 */
388static void vmballoon_reset(struct vmballoon *b)
389{
390 /* free all pages, skipping monitor unlock */
391 vmballoon_pop(b);
392
393 if (vmballoon_send_start(b)) {
394 b->reset_required = false;
395 if (!vmballoon_send_guest_id(b))
396 pr_err("failed to send guest ID to the host\n");
397 }
398}
399
400/*
401 * Allocate (or reserve) a page for the balloon and notify the host. If host
402 * refuses the page put it on "refuse" list and allocate another one until host
403 * is satisfied. "Refused" pages are released at the end of inflation cycle
404 * (when we allocate b->rate_alloc pages).
405 */
406static int vmballoon_reserve_page(struct vmballoon *b, bool can_sleep)
407{
408 struct page *page;
409 gfp_t flags;
410 bool locked = false;
411
412 do {
413 if (!can_sleep)
414 STATS_INC(b->stats.alloc);
415 else
416 STATS_INC(b->stats.sleep_alloc);
417
418 flags = can_sleep ? VMW_PAGE_ALLOC_CANSLEEP : VMW_PAGE_ALLOC_NOSLEEP;
419 page = alloc_page(flags);
420 if (!page) {
421 if (!can_sleep)
422 STATS_INC(b->stats.alloc_fail);
423 else
424 STATS_INC(b->stats.sleep_alloc_fail);
425 return -ENOMEM;
426 }
427
428 /* inform monitor */
429 locked = vmballoon_send_lock_page(b, page_to_pfn(page));
430 if (!locked) {
431 if (b->reset_required) {
432 __free_page(page);
433 return -EIO;
434 }
435
436 /* place on list of non-balloonable pages, retry allocation */
437 list_add(&page->lru, &b->refused_pages);
438 STATS_INC(b->stats.refused_alloc);
439 }
440 } while (!locked);
441
442 /* track allocated page */
443 list_add(&page->lru, &b->pages);
444
445 /* update balloon size */
446 b->size++;
447
448 return 0;
449}
450
451/*
452 * Release the page allocated for the balloon. Note that we first notify
453 * the host so it can make sure the page will be available for the guest
454 * to use, if needed.
455 */
456static int vmballoon_release_page(struct vmballoon *b, struct page *page)
457{
458 if (!vmballoon_send_unlock_page(b, page_to_pfn(page)))
459 return -EIO;
460
461 list_del(&page->lru);
462
463 /* deallocate page */
464 __free_page(page);
465 STATS_INC(b->stats.free);
466
467 /* update balloon size */
468 b->size--;
469
470 return 0;
471}
472
473/*
474 * Release pages that were allocated while attempting to inflate the
475 * balloon but were refused by the host for one reason or another.
476 */
477static void vmballoon_release_refused_pages(struct vmballoon *b)
478{
479 struct page *page, *next;
480
481 list_for_each_entry_safe(page, next, &b->refused_pages, lru) {
482 list_del(&page->lru);
483 __free_page(page);
484 STATS_INC(b->stats.refused_free);
485 }
486}
487
488/*
489 * Inflate the balloon towards its target size. Note that we try to limit
490 * the rate of allocation to make sure we are not choking the rest of the
491 * system.
492 */
493static void vmballoon_inflate(struct vmballoon *b)
494{
495 unsigned int goal;
496 unsigned int rate;
497 unsigned int i;
498 unsigned int allocations = 0;
499 int error = 0;
500 bool alloc_can_sleep = false;
501
502 pr_debug("%s - size: %d, target %d\n", __func__, b->size, b->target);
503
504 /*
505 * First try NOSLEEP page allocations to inflate balloon.
506 *
507 * If we do not throttle nosleep allocations, we can drain all
508 * free pages in the guest quickly (if the balloon target is high).
509 * As a side-effect, draining free pages helps to inform (force)
510 * the guest to start swapping if balloon target is not met yet,
511 * which is a desired behavior. However, balloon driver can consume
512 * all available CPU cycles if too many pages are allocated in a
513 * second. Therefore, we throttle nosleep allocations even when
514 * the guest is not under memory pressure. OTOH, if we have already
515 * predicted that the guest is under memory pressure, then we
516 * slowdown page allocations considerably.
517 */
518
519 goal = b->target - b->size;
520 /*
521 * Start with no sleep allocation rate which may be higher
522 * than sleeping allocation rate.
523 */
524 rate = b->slow_allocation_cycles ?
525 b->rate_alloc : VMW_BALLOON_NOSLEEP_ALLOC_MAX;
526
527 pr_debug("%s - goal: %d, no-sleep rate: %d, sleep rate: %d\n",
528 __func__, goal, rate, b->rate_alloc);
529
530 for (i = 0; i < goal; i++) {
531
532 error = vmballoon_reserve_page(b, alloc_can_sleep);
533 if (error) {
534 if (error != -ENOMEM) {
535 /*
536 * Not a page allocation failure, stop this
537 * cycle. Maybe we'll get new target from
538 * the host soon.
539 */
540 break;
541 }
542
543 if (alloc_can_sleep) {
544 /*
545 * CANSLEEP page allocation failed, so guest
546 * is under severe memory pressure. Quickly
547 * decrease allocation rate.
548 */
549 b->rate_alloc = max(b->rate_alloc / 2,
550 VMW_BALLOON_RATE_ALLOC_MIN);
551 break;
552 }
553
554 /*
555 * NOSLEEP page allocation failed, so the guest is
556 * under memory pressure. Let us slow down page
557 * allocations for next few cycles so that the guest
558 * gets out of memory pressure. Also, if we already
559 * allocated b->rate_alloc pages, let's pause,
560 * otherwise switch to sleeping allocations.
561 */
562 b->slow_allocation_cycles = VMW_BALLOON_SLOW_CYCLES;
563
564 if (i >= b->rate_alloc)
565 break;
566
567 alloc_can_sleep = true;
568 /* Lower rate for sleeping allocations. */
569 rate = b->rate_alloc;
570 }
571
572 if (++allocations > VMW_BALLOON_YIELD_THRESHOLD) {
573 cond_resched();
574 allocations = 0;
575 }
576
577 if (i >= rate) {
578 /* We allocated enough pages, let's take a break. */
579 break;
580 }
581 }
582
583 /*
584 * We reached our goal without failures so try increasing
585 * allocation rate.
586 */
587 if (error == 0 && i >= b->rate_alloc) {
588 unsigned int mult = i / b->rate_alloc;
589
590 b->rate_alloc =
591 min(b->rate_alloc + mult * VMW_BALLOON_RATE_ALLOC_INC,
592 VMW_BALLOON_RATE_ALLOC_MAX);
593 }
594
595 vmballoon_release_refused_pages(b);
596}
597
598/*
599 * Decrease the size of the balloon allowing guest to use more memory.
600 */
601static void vmballoon_deflate(struct vmballoon *b)
602{
603 struct page *page, *next;
604 unsigned int i = 0;
605 unsigned int goal;
606 int error;
607
608 pr_debug("%s - size: %d, target %d\n", __func__, b->size, b->target);
609
610 /* limit deallocation rate */
611 goal = min(b->size - b->target, b->rate_free);
612
613 pr_debug("%s - goal: %d, rate: %d\n", __func__, goal, b->rate_free);
614
615 /* free pages to reach target */
616 list_for_each_entry_safe(page, next, &b->pages, lru) {
617 error = vmballoon_release_page(b, page);
618 if (error) {
619 /* quickly decrease rate in case of error */
620 b->rate_free = max(b->rate_free / 2,
621 VMW_BALLOON_RATE_FREE_MIN);
622 return;
623 }
624
625 if (++i >= goal)
626 break;
627 }
628
629 /* slowly increase rate if there were no errors */
630 b->rate_free = min(b->rate_free + VMW_BALLOON_RATE_FREE_INC,
631 VMW_BALLOON_RATE_FREE_MAX);
632}
633
634/*
635 * Balloon work function: reset protocol, if needed, get the new size and
636 * adjust balloon as needed. Repeat in 1 sec.
637 */
638static void vmballoon_work(struct work_struct *work)
639{
640 struct delayed_work *dwork = to_delayed_work(work);
641 struct vmballoon *b = container_of(dwork, struct vmballoon, dwork);
642 unsigned int target;
643
644 STATS_INC(b->stats.timer);
645
646 if (b->reset_required)
647 vmballoon_reset(b);
648
649 if (b->slow_allocation_cycles > 0)
650 b->slow_allocation_cycles--;
651
652 if (vmballoon_send_get_target(b, &target)) {
653 /* update target, adjust size */
654 b->target = target;
655
656 if (b->size < target)
657 vmballoon_inflate(b);
658 else if (b->size > target)
659 vmballoon_deflate(b);
660 }
661
662 queue_delayed_work(vmballoon_wq, dwork, round_jiffies_relative(HZ));
663}
664
665/*
666 * DEBUGFS Interface
667 */
668#ifdef CONFIG_DEBUG_FS
669
670static int vmballoon_debug_show(struct seq_file *f, void *offset)
671{
672 struct vmballoon *b = f->private;
673 struct vmballoon_stats *stats = &b->stats;
674
675 /* format size info */
676 seq_printf(f,
677 "target: %8d pages\n"
678 "current: %8d pages\n",
679 b->target, b->size);
680
681 /* format rate info */
682 seq_printf(f,
683 "rateNoSleepAlloc: %8d pages/sec\n"
684 "rateSleepAlloc: %8d pages/sec\n"
685 "rateFree: %8d pages/sec\n",
686 VMW_BALLOON_NOSLEEP_ALLOC_MAX,
687 b->rate_alloc, b->rate_free);
688
689 seq_printf(f,
690 "\n"
691 "timer: %8u\n"
692 "start: %8u (%4u failed)\n"
693 "guestType: %8u (%4u failed)\n"
694 "lock: %8u (%4u failed)\n"
695 "unlock: %8u (%4u failed)\n"
696 "target: %8u (%4u failed)\n"
697 "primNoSleepAlloc: %8u (%4u failed)\n"
698 "primCanSleepAlloc: %8u (%4u failed)\n"
699 "primFree: %8u\n"
700 "errAlloc: %8u\n"
701 "errFree: %8u\n",
702 stats->timer,
703 stats->start, stats->start_fail,
704 stats->guest_type, stats->guest_type_fail,
705 stats->lock, stats->lock_fail,
706 stats->unlock, stats->unlock_fail,
707 stats->target, stats->target_fail,
708 stats->alloc, stats->alloc_fail,
709 stats->sleep_alloc, stats->sleep_alloc_fail,
710 stats->free,
711 stats->refused_alloc, stats->refused_free);
712
713 return 0;
714}
715
716static int vmballoon_debug_open(struct inode *inode, struct file *file)
717{
718 return single_open(file, vmballoon_debug_show, inode->i_private);
719}
720
721static const struct file_operations vmballoon_debug_fops = {
722 .owner = THIS_MODULE,
723 .open = vmballoon_debug_open,
724 .read = seq_read,
725 .llseek = seq_lseek,
726 .release = single_release,
727};
728
729static int __init vmballoon_debugfs_init(struct vmballoon *b)
730{
731 int error;
732
733 b->dbg_entry = debugfs_create_file("vmmemctl", S_IRUGO, NULL, b,
734 &vmballoon_debug_fops);
735 if (IS_ERR(b->dbg_entry)) {
736 error = PTR_ERR(b->dbg_entry);
737 pr_err("failed to create debugfs entry, error: %d\n", error);
738 return error;
739 }
740
741 return 0;
742}
743
744static void __exit vmballoon_debugfs_exit(struct vmballoon *b)
745{
746 debugfs_remove(b->dbg_entry);
747}
748
749#else
750
751static inline int vmballoon_debugfs_init(struct vmballoon *b)
752{
753 return 0;
754}
755
756static inline void vmballoon_debugfs_exit(struct vmballoon *b)
757{
758}
759
760#endif /* CONFIG_DEBUG_FS */
761
762static int __init vmballoon_init(void)
763{
764 int error;
765
766 /*
767 * Check if we are running on VMware's hypervisor and bail out
768 * if we are not.
769 */
770 if (!vmware_platform())
771 return -ENODEV;
772
773 vmballoon_wq = create_freezeable_workqueue("vmmemctl");
774 if (!vmballoon_wq) {
775 pr_err("failed to create workqueue\n");
776 return -ENOMEM;
777 }
778
779 INIT_LIST_HEAD(&balloon.pages);
780 INIT_LIST_HEAD(&balloon.refused_pages);
781
782 /* initialize rates */
783 balloon.rate_alloc = VMW_BALLOON_RATE_ALLOC_MAX;
784 balloon.rate_free = VMW_BALLOON_RATE_FREE_MAX;
785
786 INIT_DELAYED_WORK(&balloon.dwork, vmballoon_work);
787
788 /*
789 * Start balloon.
790 */
791 if (!vmballoon_send_start(&balloon)) {
792 pr_err("failed to send start command to the host\n");
793 error = -EIO;
794 goto fail;
795 }
796
797 if (!vmballoon_send_guest_id(&balloon)) {
798 pr_err("failed to send guest ID to the host\n");
799 error = -EIO;
800 goto fail;
801 }
802
803 error = vmballoon_debugfs_init(&balloon);
804 if (error)
805 goto fail;
806
807 queue_delayed_work(vmballoon_wq, &balloon.dwork, 0);
808
809 return 0;
810
811fail:
812 destroy_workqueue(vmballoon_wq);
813 return error;
814}
815module_init(vmballoon_init);
816
817static void __exit vmballoon_exit(void)
818{
819 cancel_delayed_work_sync(&balloon.dwork);
820 destroy_workqueue(vmballoon_wq);
821
822 vmballoon_debugfs_exit(&balloon);
823
824 /*
825 * Deallocate all reserved memory, and reset connection with monitor.
826 * Reset connection before deallocating memory to avoid potential for
827 * additional spurious resets from guest touching deallocated pages.
828 */
829 vmballoon_send_start(&balloon);
830 vmballoon_pop(&balloon);
831}
832module_exit(vmballoon_exit);
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 88be37d9e9a5..fb279f4ed8b3 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -266,7 +266,7 @@ static int atmci_req_show(struct seq_file *s, void *v)
266 "CMD%u(0x%x) flg %x rsp %x %x %x %x err %d\n", 266 "CMD%u(0x%x) flg %x rsp %x %x %x %x err %d\n",
267 cmd->opcode, cmd->arg, cmd->flags, 267 cmd->opcode, cmd->arg, cmd->flags,
268 cmd->resp[0], cmd->resp[1], cmd->resp[2], 268 cmd->resp[0], cmd->resp[1], cmd->resp[2],
269 cmd->resp[2], cmd->error); 269 cmd->resp[3], cmd->error);
270 if (data) 270 if (data)
271 seq_printf(s, "DATA %u / %u * %u flg %x err %d\n", 271 seq_printf(s, "DATA %u / %u * %u flg %x err %d\n",
272 data->bytes_xfered, data->blocks, 272 data->bytes_xfered, data->blocks,
@@ -276,7 +276,7 @@ static int atmci_req_show(struct seq_file *s, void *v)
276 "CMD%u(0x%x) flg %x rsp %x %x %x %x err %d\n", 276 "CMD%u(0x%x) flg %x rsp %x %x %x %x err %d\n",
277 stop->opcode, stop->arg, stop->flags, 277 stop->opcode, stop->arg, stop->flags,
278 stop->resp[0], stop->resp[1], stop->resp[2], 278 stop->resp[0], stop->resp[1], stop->resp[2],
279 stop->resp[2], stop->error); 279 stop->resp[3], stop->error);
280 } 280 }
281 281
282 spin_unlock_bh(&slot->host->lock); 282 spin_unlock_bh(&slot->host->lock);
@@ -569,9 +569,10 @@ static void atmci_dma_cleanup(struct atmel_mci *host)
569{ 569{
570 struct mmc_data *data = host->data; 570 struct mmc_data *data = host->data;
571 571
572 dma_unmap_sg(&host->pdev->dev, data->sg, data->sg_len, 572 if (data)
573 ((data->flags & MMC_DATA_WRITE) 573 dma_unmap_sg(&host->pdev->dev, data->sg, data->sg_len,
574 ? DMA_TO_DEVICE : DMA_FROM_DEVICE)); 574 ((data->flags & MMC_DATA_WRITE)
575 ? DMA_TO_DEVICE : DMA_FROM_DEVICE));
575} 576}
576 577
577static void atmci_stop_dma(struct atmel_mci *host) 578static void atmci_stop_dma(struct atmel_mci *host)
@@ -1099,8 +1100,8 @@ static void atmci_command_complete(struct atmel_mci *host,
1099 "command error: status=0x%08x\n", status); 1100 "command error: status=0x%08x\n", status);
1100 1101
1101 if (cmd->data) { 1102 if (cmd->data) {
1102 host->data = NULL;
1103 atmci_stop_dma(host); 1103 atmci_stop_dma(host);
1104 host->data = NULL;
1104 mci_writel(host, IDR, MCI_NOTBUSY 1105 mci_writel(host, IDR, MCI_NOTBUSY
1105 | MCI_TXRDY | MCI_RXRDY 1106 | MCI_TXRDY | MCI_RXRDY
1106 | ATMCI_DATA_ERROR_FLAGS); 1107 | ATMCI_DATA_ERROR_FLAGS);
@@ -1293,6 +1294,7 @@ static void atmci_tasklet_func(unsigned long priv)
1293 } else { 1294 } else {
1294 data->bytes_xfered = data->blocks * data->blksz; 1295 data->bytes_xfered = data->blocks * data->blksz;
1295 data->error = 0; 1296 data->error = 0;
1297 mci_writel(host, IDR, ATMCI_DATA_ERROR_FLAGS);
1296 } 1298 }
1297 1299
1298 if (!data->stop) { 1300 if (!data->stop) {
@@ -1751,13 +1753,13 @@ static int __init atmci_probe(struct platform_device *pdev)
1751 ret = -ENODEV; 1753 ret = -ENODEV;
1752 if (pdata->slot[0].bus_width) { 1754 if (pdata->slot[0].bus_width) {
1753 ret = atmci_init_slot(host, &pdata->slot[0], 1755 ret = atmci_init_slot(host, &pdata->slot[0],
1754 MCI_SDCSEL_SLOT_A, 0); 1756 0, MCI_SDCSEL_SLOT_A);
1755 if (!ret) 1757 if (!ret)
1756 nr_slots++; 1758 nr_slots++;
1757 } 1759 }
1758 if (pdata->slot[1].bus_width) { 1760 if (pdata->slot[1].bus_width) {
1759 ret = atmci_init_slot(host, &pdata->slot[1], 1761 ret = atmci_init_slot(host, &pdata->slot[1],
1760 MCI_SDCSEL_SLOT_B, 1); 1762 1, MCI_SDCSEL_SLOT_B);
1761 if (!ret) 1763 if (!ret)
1762 nr_slots++; 1764 nr_slots++;
1763 } 1765 }
diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
index 82d1e4de475b..4521b1ecce45 100644
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
@@ -4,7 +4,7 @@
4 4
5# Core functionality. 5# Core functionality.
6obj-$(CONFIG_MTD) += mtd.o 6obj-$(CONFIG_MTD) += mtd.o
7mtd-y := mtdcore.o mtdsuper.o mtdbdi.o 7mtd-y := mtdcore.o mtdsuper.o
8mtd-$(CONFIG_MTD_PARTITIONS) += mtdpart.o 8mtd-$(CONFIG_MTD_PARTITIONS) += mtdpart.o
9 9
10obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o 10obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o
diff --git a/drivers/mtd/internal.h b/drivers/mtd/internal.h
deleted file mode 100644
index c658fe7216b5..000000000000
--- a/drivers/mtd/internal.h
+++ /dev/null
@@ -1,17 +0,0 @@
1/* Internal MTD definitions
2 *
3 * Copyright © 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12/*
13 * mtdbdi.c
14 */
15extern struct backing_dev_info mtd_bdi_unmappable;
16extern struct backing_dev_info mtd_bdi_ro_mappable;
17extern struct backing_dev_info mtd_bdi_rw_mappable;
diff --git a/drivers/mtd/mtdbdi.c b/drivers/mtd/mtdbdi.c
deleted file mode 100644
index 5ca5aed0b225..000000000000
--- a/drivers/mtd/mtdbdi.c
+++ /dev/null
@@ -1,43 +0,0 @@
1/* MTD backing device capabilities
2 *
3 * Copyright © 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12#include <linux/backing-dev.h>
13#include <linux/mtd/mtd.h>
14#include "internal.h"
15
16/*
17 * backing device capabilities for non-mappable devices (such as NAND flash)
18 * - permits private mappings, copies are taken of the data
19 */
20struct backing_dev_info mtd_bdi_unmappable = {
21 .capabilities = BDI_CAP_MAP_COPY,
22};
23
24/*
25 * backing device capabilities for R/O mappable devices (such as ROM)
26 * - permits private mappings, copies are taken of the data
27 * - permits non-writable shared mappings
28 */
29struct backing_dev_info mtd_bdi_ro_mappable = {
30 .capabilities = (BDI_CAP_MAP_COPY | BDI_CAP_MAP_DIRECT |
31 BDI_CAP_EXEC_MAP | BDI_CAP_READ_MAP),
32};
33
34/*
35 * backing device capabilities for writable mappable devices (such as RAM)
36 * - permits private mappings, copies are taken of the data
37 * - permits non-writable shared mappings
38 */
39struct backing_dev_info mtd_bdi_rw_mappable = {
40 .capabilities = (BDI_CAP_MAP_COPY | BDI_CAP_MAP_DIRECT |
41 BDI_CAP_EXEC_MAP | BDI_CAP_READ_MAP |
42 BDI_CAP_WRITE_MAP),
43};
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 5b38b17d2229..b177e750efc3 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -2,6 +2,9 @@
2 * Core registration and callback routines for MTD 2 * Core registration and callback routines for MTD
3 * drivers and users. 3 * drivers and users.
4 * 4 *
5 * bdi bits are:
6 * Copyright © 2006 Red Hat, Inc. All Rights Reserved.
7 * Written by David Howells (dhowells@redhat.com)
5 */ 8 */
6 9
7#include <linux/module.h> 10#include <linux/module.h>
@@ -16,11 +19,39 @@
16#include <linux/init.h> 19#include <linux/init.h>
17#include <linux/mtd/compatmac.h> 20#include <linux/mtd/compatmac.h>
18#include <linux/proc_fs.h> 21#include <linux/proc_fs.h>
22#include <linux/backing-dev.h>
19 23
20#include <linux/mtd/mtd.h> 24#include <linux/mtd/mtd.h>
21#include "internal.h"
22 25
23#include "mtdcore.h" 26#include "mtdcore.h"
27/*
28 * backing device capabilities for non-mappable devices (such as NAND flash)
29 * - permits private mappings, copies are taken of the data
30 */
31struct backing_dev_info mtd_bdi_unmappable = {
32 .capabilities = BDI_CAP_MAP_COPY,
33};
34
35/*
36 * backing device capabilities for R/O mappable devices (such as ROM)
37 * - permits private mappings, copies are taken of the data
38 * - permits non-writable shared mappings
39 */
40struct backing_dev_info mtd_bdi_ro_mappable = {
41 .capabilities = (BDI_CAP_MAP_COPY | BDI_CAP_MAP_DIRECT |
42 BDI_CAP_EXEC_MAP | BDI_CAP_READ_MAP),
43};
44
45/*
46 * backing device capabilities for writable mappable devices (such as RAM)
47 * - permits private mappings, copies are taken of the data
48 * - permits non-writable shared mappings
49 */
50struct backing_dev_info mtd_bdi_rw_mappable = {
51 .capabilities = (BDI_CAP_MAP_COPY | BDI_CAP_MAP_DIRECT |
52 BDI_CAP_EXEC_MAP | BDI_CAP_READ_MAP |
53 BDI_CAP_WRITE_MAP),
54};
24 55
25static int mtd_cls_suspend(struct device *dev, pm_message_t state); 56static int mtd_cls_suspend(struct device *dev, pm_message_t state);
26static int mtd_cls_resume(struct device *dev); 57static int mtd_cls_resume(struct device *dev);
@@ -628,20 +659,55 @@ done:
628/*====================================================================*/ 659/*====================================================================*/
629/* Init code */ 660/* Init code */
630 661
662static int __init mtd_bdi_init(struct backing_dev_info *bdi, const char *name)
663{
664 int ret;
665
666 ret = bdi_init(bdi);
667 if (!ret)
668 ret = bdi_register(bdi, NULL, name);
669
670 if (ret)
671 bdi_destroy(bdi);
672
673 return ret;
674}
675
631static int __init init_mtd(void) 676static int __init init_mtd(void)
632{ 677{
633 int ret; 678 int ret;
679
634 ret = class_register(&mtd_class); 680 ret = class_register(&mtd_class);
681 if (ret)
682 goto err_reg;
683
684 ret = mtd_bdi_init(&mtd_bdi_unmappable, "mtd-unmap");
685 if (ret)
686 goto err_bdi1;
687
688 ret = mtd_bdi_init(&mtd_bdi_ro_mappable, "mtd-romap");
689 if (ret)
690 goto err_bdi2;
691
692 ret = mtd_bdi_init(&mtd_bdi_rw_mappable, "mtd-rwmap");
693 if (ret)
694 goto err_bdi3;
635 695
636 if (ret) {
637 pr_err("Error registering mtd class: %d\n", ret);
638 return ret;
639 }
640#ifdef CONFIG_PROC_FS 696#ifdef CONFIG_PROC_FS
641 if ((proc_mtd = create_proc_entry( "mtd", 0, NULL ))) 697 if ((proc_mtd = create_proc_entry( "mtd", 0, NULL )))
642 proc_mtd->read_proc = mtd_read_proc; 698 proc_mtd->read_proc = mtd_read_proc;
643#endif /* CONFIG_PROC_FS */ 699#endif /* CONFIG_PROC_FS */
644 return 0; 700 return 0;
701
702err_bdi3:
703 bdi_destroy(&mtd_bdi_ro_mappable);
704err_bdi2:
705 bdi_destroy(&mtd_bdi_unmappable);
706err_bdi1:
707 class_unregister(&mtd_class);
708err_reg:
709 pr_err("Error registering mtd class or bdi: %d\n", ret);
710 return ret;
645} 711}
646 712
647static void __exit cleanup_mtd(void) 713static void __exit cleanup_mtd(void)
@@ -651,6 +717,9 @@ static void __exit cleanup_mtd(void)
651 remove_proc_entry( "mtd", NULL); 717 remove_proc_entry( "mtd", NULL);
652#endif /* CONFIG_PROC_FS */ 718#endif /* CONFIG_PROC_FS */
653 class_unregister(&mtd_class); 719 class_unregister(&mtd_class);
720 bdi_destroy(&mtd_bdi_unmappable);
721 bdi_destroy(&mtd_bdi_ro_mappable);
722 bdi_destroy(&mtd_bdi_rw_mappable);
654} 723}
655 724
656module_init(init_mtd); 725module_init(init_mtd);
diff --git a/drivers/mtd/mtdsuper.c b/drivers/mtd/mtdsuper.c
index af8b42e0a55b..7c003191fca4 100644
--- a/drivers/mtd/mtdsuper.c
+++ b/drivers/mtd/mtdsuper.c
@@ -13,6 +13,7 @@
13#include <linux/mtd/super.h> 13#include <linux/mtd/super.h>
14#include <linux/namei.h> 14#include <linux/namei.h>
15#include <linux/ctype.h> 15#include <linux/ctype.h>
16#include <linux/slab.h>
16 17
17/* 18/*
18 * compare superblocks to see if they're equivalent 19 * compare superblocks to see if they're equivalent
@@ -44,6 +45,7 @@ static int get_sb_mtd_set(struct super_block *sb, void *_mtd)
44 45
45 sb->s_mtd = mtd; 46 sb->s_mtd = mtd;
46 sb->s_dev = MKDEV(MTD_BLOCK_MAJOR, mtd->index); 47 sb->s_dev = MKDEV(MTD_BLOCK_MAJOR, mtd->index);
48 sb->s_bdi = mtd->backing_dev_info;
47 return 0; 49 return 0;
48} 50}
49 51
diff --git a/drivers/mtd/nand/orion_nand.c b/drivers/mtd/nand/orion_nand.c
index f59c07427af3..d60fc5719fef 100644
--- a/drivers/mtd/nand/orion_nand.c
+++ b/drivers/mtd/nand/orion_nand.c
@@ -60,7 +60,13 @@ static void orion_nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
60 } 60 }
61 buf64 = (uint64_t *)buf; 61 buf64 = (uint64_t *)buf;
62 while (i < len/8) { 62 while (i < len/8) {
63 uint64_t x; 63 /*
64 * Since GCC has no proper constraint (PR 43518)
65 * force x variable to r2/r3 registers as ldrd instruction
66 * requires first register to be even.
67 */
68 register uint64_t x asm ("r2");
69
64 asm volatile ("ldrd\t%0, [%1]" : "=&r" (x) : "r" (io_base)); 70 asm volatile ("ldrd\t%0, [%1]" : "=&r" (x) : "r" (io_base));
65 buf64[i++] = x; 71 buf64[i++] = x;
66 } 72 }
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index a03d291de854..f0d23de32967 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -1944,7 +1944,7 @@ static int rtl8139_rx(struct net_device *dev, struct rtl8139_private *tp,
1944 netif_dbg(tp, rx_status, dev, "%s() status %04x, size %04x, cur %04x\n", 1944 netif_dbg(tp, rx_status, dev, "%s() status %04x, size %04x, cur %04x\n",
1945 __func__, rx_status, rx_size, cur_rx); 1945 __func__, rx_status, rx_size, cur_rx);
1946#if RTL8139_DEBUG > 2 1946#if RTL8139_DEBUG > 2
1947 print_dump_hex(KERN_DEBUG, "Frame contents: ", 1947 print_hex_dump(KERN_DEBUG, "Frame contents: ",
1948 DUMP_PREFIX_OFFSET, 16, 1, 1948 DUMP_PREFIX_OFFSET, 16, 1,
1949 &rx_ring[ring_offset], 70, true); 1949 &rx_ring[ring_offset], 70, true);
1950#endif 1950#endif
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index a583b50d9de8..12b280afdd51 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -273,6 +273,7 @@ obj-$(CONFIG_USB_RTL8150) += usb/
273obj-$(CONFIG_USB_HSO) += usb/ 273obj-$(CONFIG_USB_HSO) += usb/
274obj-$(CONFIG_USB_USBNET) += usb/ 274obj-$(CONFIG_USB_USBNET) += usb/
275obj-$(CONFIG_USB_ZD1201) += usb/ 275obj-$(CONFIG_USB_ZD1201) += usb/
276obj-$(CONFIG_USB_IPHETH) += usb/
276 277
277obj-y += wireless/ 278obj-y += wireless/
278obj-$(CONFIG_NET_TULIP) += tulip/ 279obj-$(CONFIG_NET_TULIP) += tulip/
diff --git a/drivers/net/arm/ep93xx_eth.c b/drivers/net/arm/ep93xx_eth.c
index 6995169d285a..cd17d09f385c 100644
--- a/drivers/net/arm/ep93xx_eth.c
+++ b/drivers/net/arm/ep93xx_eth.c
@@ -311,11 +311,6 @@ err:
311 processed++; 311 processed++;
312 } 312 }
313 313
314 if (processed) {
315 wrw(ep, REG_RXDENQ, processed);
316 wrw(ep, REG_RXSTSENQ, processed);
317 }
318
319 return processed; 314 return processed;
320} 315}
321 316
@@ -350,6 +345,11 @@ poll_some_more:
350 goto poll_some_more; 345 goto poll_some_more;
351 } 346 }
352 347
348 if (rx) {
349 wrw(ep, REG_RXDENQ, rx);
350 wrw(ep, REG_RXSTSENQ, rx);
351 }
352
353 return rx; 353 return rx;
354} 354}
355 355
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index a257babd1bb4..ac90a3828f69 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -58,8 +58,8 @@
58#include "bnx2_fw.h" 58#include "bnx2_fw.h"
59 59
60#define DRV_MODULE_NAME "bnx2" 60#define DRV_MODULE_NAME "bnx2"
61#define DRV_MODULE_VERSION "2.0.8" 61#define DRV_MODULE_VERSION "2.0.9"
62#define DRV_MODULE_RELDATE "Feb 15, 2010" 62#define DRV_MODULE_RELDATE "April 27, 2010"
63#define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-5.0.0.j6.fw" 63#define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-5.0.0.j6.fw"
64#define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-5.0.0.j3.fw" 64#define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-5.0.0.j3.fw"
65#define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-5.0.0.j9.fw" 65#define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-5.0.0.j9.fw"
@@ -651,9 +651,10 @@ bnx2_napi_enable(struct bnx2 *bp)
651} 651}
652 652
653static void 653static void
654bnx2_netif_stop(struct bnx2 *bp) 654bnx2_netif_stop(struct bnx2 *bp, bool stop_cnic)
655{ 655{
656 bnx2_cnic_stop(bp); 656 if (stop_cnic)
657 bnx2_cnic_stop(bp);
657 if (netif_running(bp->dev)) { 658 if (netif_running(bp->dev)) {
658 int i; 659 int i;
659 660
@@ -671,14 +672,15 @@ bnx2_netif_stop(struct bnx2 *bp)
671} 672}
672 673
673static void 674static void
674bnx2_netif_start(struct bnx2 *bp) 675bnx2_netif_start(struct bnx2 *bp, bool start_cnic)
675{ 676{
676 if (atomic_dec_and_test(&bp->intr_sem)) { 677 if (atomic_dec_and_test(&bp->intr_sem)) {
677 if (netif_running(bp->dev)) { 678 if (netif_running(bp->dev)) {
678 netif_tx_wake_all_queues(bp->dev); 679 netif_tx_wake_all_queues(bp->dev);
679 bnx2_napi_enable(bp); 680 bnx2_napi_enable(bp);
680 bnx2_enable_int(bp); 681 bnx2_enable_int(bp);
681 bnx2_cnic_start(bp); 682 if (start_cnic)
683 bnx2_cnic_start(bp);
682 } 684 }
683 } 685 }
684} 686}
@@ -4759,8 +4761,12 @@ bnx2_reset_chip(struct bnx2 *bp, u32 reset_code)
4759 rc = bnx2_alloc_bad_rbuf(bp); 4761 rc = bnx2_alloc_bad_rbuf(bp);
4760 } 4762 }
4761 4763
4762 if (bp->flags & BNX2_FLAG_USING_MSIX) 4764 if (bp->flags & BNX2_FLAG_USING_MSIX) {
4763 bnx2_setup_msix_tbl(bp); 4765 bnx2_setup_msix_tbl(bp);
4766 /* Prevent MSIX table reads and write from timing out */
4767 REG_WR(bp, BNX2_MISC_ECO_HW_CTL,
4768 BNX2_MISC_ECO_HW_CTL_LARGE_GRC_TMOUT_EN);
4769 }
4764 4770
4765 return rc; 4771 return rc;
4766} 4772}
@@ -6273,12 +6279,12 @@ bnx2_reset_task(struct work_struct *work)
6273 return; 6279 return;
6274 } 6280 }
6275 6281
6276 bnx2_netif_stop(bp); 6282 bnx2_netif_stop(bp, true);
6277 6283
6278 bnx2_init_nic(bp, 1); 6284 bnx2_init_nic(bp, 1);
6279 6285
6280 atomic_set(&bp->intr_sem, 1); 6286 atomic_set(&bp->intr_sem, 1);
6281 bnx2_netif_start(bp); 6287 bnx2_netif_start(bp, true);
6282 rtnl_unlock(); 6288 rtnl_unlock();
6283} 6289}
6284 6290
@@ -6320,7 +6326,7 @@ bnx2_vlan_rx_register(struct net_device *dev, struct vlan_group *vlgrp)
6320 struct bnx2 *bp = netdev_priv(dev); 6326 struct bnx2 *bp = netdev_priv(dev);
6321 6327
6322 if (netif_running(dev)) 6328 if (netif_running(dev))
6323 bnx2_netif_stop(bp); 6329 bnx2_netif_stop(bp, false);
6324 6330
6325 bp->vlgrp = vlgrp; 6331 bp->vlgrp = vlgrp;
6326 6332
@@ -6331,7 +6337,7 @@ bnx2_vlan_rx_register(struct net_device *dev, struct vlan_group *vlgrp)
6331 if (bp->flags & BNX2_FLAG_CAN_KEEP_VLAN) 6337 if (bp->flags & BNX2_FLAG_CAN_KEEP_VLAN)
6332 bnx2_fw_sync(bp, BNX2_DRV_MSG_CODE_KEEP_VLAN_UPDATE, 0, 1); 6338 bnx2_fw_sync(bp, BNX2_DRV_MSG_CODE_KEEP_VLAN_UPDATE, 0, 1);
6333 6339
6334 bnx2_netif_start(bp); 6340 bnx2_netif_start(bp, false);
6335} 6341}
6336#endif 6342#endif
6337 6343
@@ -7051,9 +7057,9 @@ bnx2_set_coalesce(struct net_device *dev, struct ethtool_coalesce *coal)
7051 bp->stats_ticks &= BNX2_HC_STATS_TICKS_HC_STAT_TICKS; 7057 bp->stats_ticks &= BNX2_HC_STATS_TICKS_HC_STAT_TICKS;
7052 7058
7053 if (netif_running(bp->dev)) { 7059 if (netif_running(bp->dev)) {
7054 bnx2_netif_stop(bp); 7060 bnx2_netif_stop(bp, true);
7055 bnx2_init_nic(bp, 0); 7061 bnx2_init_nic(bp, 0);
7056 bnx2_netif_start(bp); 7062 bnx2_netif_start(bp, true);
7057 } 7063 }
7058 7064
7059 return 0; 7065 return 0;
@@ -7083,7 +7089,7 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx)
7083 /* Reset will erase chipset stats; save them */ 7089 /* Reset will erase chipset stats; save them */
7084 bnx2_save_stats(bp); 7090 bnx2_save_stats(bp);
7085 7091
7086 bnx2_netif_stop(bp); 7092 bnx2_netif_stop(bp, true);
7087 bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_RESET); 7093 bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_RESET);
7088 bnx2_free_skbs(bp); 7094 bnx2_free_skbs(bp);
7089 bnx2_free_mem(bp); 7095 bnx2_free_mem(bp);
@@ -7111,7 +7117,7 @@ bnx2_change_ring_size(struct bnx2 *bp, u32 rx, u32 tx)
7111 bnx2_setup_cnic_irq_info(bp); 7117 bnx2_setup_cnic_irq_info(bp);
7112 mutex_unlock(&bp->cnic_lock); 7118 mutex_unlock(&bp->cnic_lock);
7113#endif 7119#endif
7114 bnx2_netif_start(bp); 7120 bnx2_netif_start(bp, true);
7115 } 7121 }
7116 return 0; 7122 return 0;
7117} 7123}
@@ -7364,7 +7370,7 @@ bnx2_self_test(struct net_device *dev, struct ethtool_test *etest, u64 *buf)
7364 if (etest->flags & ETH_TEST_FL_OFFLINE) { 7370 if (etest->flags & ETH_TEST_FL_OFFLINE) {
7365 int i; 7371 int i;
7366 7372
7367 bnx2_netif_stop(bp); 7373 bnx2_netif_stop(bp, true);
7368 bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_DIAG); 7374 bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_DIAG);
7369 bnx2_free_skbs(bp); 7375 bnx2_free_skbs(bp);
7370 7376
@@ -7383,7 +7389,7 @@ bnx2_self_test(struct net_device *dev, struct ethtool_test *etest, u64 *buf)
7383 bnx2_shutdown_chip(bp); 7389 bnx2_shutdown_chip(bp);
7384 else { 7390 else {
7385 bnx2_init_nic(bp, 1); 7391 bnx2_init_nic(bp, 1);
7386 bnx2_netif_start(bp); 7392 bnx2_netif_start(bp, true);
7387 } 7393 }
7388 7394
7389 /* wait for link up */ 7395 /* wait for link up */
@@ -8377,7 +8383,7 @@ bnx2_suspend(struct pci_dev *pdev, pm_message_t state)
8377 return 0; 8383 return 0;
8378 8384
8379 flush_scheduled_work(); 8385 flush_scheduled_work();
8380 bnx2_netif_stop(bp); 8386 bnx2_netif_stop(bp, true);
8381 netif_device_detach(dev); 8387 netif_device_detach(dev);
8382 del_timer_sync(&bp->timer); 8388 del_timer_sync(&bp->timer);
8383 bnx2_shutdown_chip(bp); 8389 bnx2_shutdown_chip(bp);
@@ -8399,7 +8405,7 @@ bnx2_resume(struct pci_dev *pdev)
8399 bnx2_set_power_state(bp, PCI_D0); 8405 bnx2_set_power_state(bp, PCI_D0);
8400 netif_device_attach(dev); 8406 netif_device_attach(dev);
8401 bnx2_init_nic(bp, 1); 8407 bnx2_init_nic(bp, 1);
8402 bnx2_netif_start(bp); 8408 bnx2_netif_start(bp, true);
8403 return 0; 8409 return 0;
8404} 8410}
8405 8411
@@ -8426,7 +8432,7 @@ static pci_ers_result_t bnx2_io_error_detected(struct pci_dev *pdev,
8426 } 8432 }
8427 8433
8428 if (netif_running(dev)) { 8434 if (netif_running(dev)) {
8429 bnx2_netif_stop(bp); 8435 bnx2_netif_stop(bp, true);
8430 del_timer_sync(&bp->timer); 8436 del_timer_sync(&bp->timer);
8431 bnx2_reset_nic(bp, BNX2_DRV_MSG_CODE_RESET); 8437 bnx2_reset_nic(bp, BNX2_DRV_MSG_CODE_RESET);
8432 } 8438 }
@@ -8483,7 +8489,7 @@ static void bnx2_io_resume(struct pci_dev *pdev)
8483 8489
8484 rtnl_lock(); 8490 rtnl_lock();
8485 if (netif_running(dev)) 8491 if (netif_running(dev))
8486 bnx2_netif_start(bp); 8492 bnx2_netif_start(bp, true);
8487 8493
8488 netif_device_attach(dev); 8494 netif_device_attach(dev);
8489 rtnl_unlock(); 8495 rtnl_unlock();
diff --git a/drivers/net/can/usb/ems_usb.c b/drivers/net/can/usb/ems_usb.c
index 33451092b8e8..d800b598ae3d 100644
--- a/drivers/net/can/usb/ems_usb.c
+++ b/drivers/net/can/usb/ems_usb.c
@@ -1006,7 +1006,7 @@ static int ems_usb_probe(struct usb_interface *intf,
1006 1006
1007 netdev = alloc_candev(sizeof(struct ems_usb), MAX_TX_URBS); 1007 netdev = alloc_candev(sizeof(struct ems_usb), MAX_TX_URBS);
1008 if (!netdev) { 1008 if (!netdev) {
1009 dev_err(netdev->dev.parent, "Couldn't alloc candev\n"); 1009 dev_err(&intf->dev, "ems_usb: Couldn't alloc candev\n");
1010 return -ENOMEM; 1010 return -ENOMEM;
1011 } 1011 }
1012 1012
@@ -1036,20 +1036,20 @@ static int ems_usb_probe(struct usb_interface *intf,
1036 1036
1037 dev->intr_urb = usb_alloc_urb(0, GFP_KERNEL); 1037 dev->intr_urb = usb_alloc_urb(0, GFP_KERNEL);
1038 if (!dev->intr_urb) { 1038 if (!dev->intr_urb) {
1039 dev_err(netdev->dev.parent, "Couldn't alloc intr URB\n"); 1039 dev_err(&intf->dev, "Couldn't alloc intr URB\n");
1040 goto cleanup_candev; 1040 goto cleanup_candev;
1041 } 1041 }
1042 1042
1043 dev->intr_in_buffer = kzalloc(INTR_IN_BUFFER_SIZE, GFP_KERNEL); 1043 dev->intr_in_buffer = kzalloc(INTR_IN_BUFFER_SIZE, GFP_KERNEL);
1044 if (!dev->intr_in_buffer) { 1044 if (!dev->intr_in_buffer) {
1045 dev_err(netdev->dev.parent, "Couldn't alloc Intr buffer\n"); 1045 dev_err(&intf->dev, "Couldn't alloc Intr buffer\n");
1046 goto cleanup_intr_urb; 1046 goto cleanup_intr_urb;
1047 } 1047 }
1048 1048
1049 dev->tx_msg_buffer = kzalloc(CPC_HEADER_SIZE + 1049 dev->tx_msg_buffer = kzalloc(CPC_HEADER_SIZE +
1050 sizeof(struct ems_cpc_msg), GFP_KERNEL); 1050 sizeof(struct ems_cpc_msg), GFP_KERNEL);
1051 if (!dev->tx_msg_buffer) { 1051 if (!dev->tx_msg_buffer) {
1052 dev_err(netdev->dev.parent, "Couldn't alloc Tx buffer\n"); 1052 dev_err(&intf->dev, "Couldn't alloc Tx buffer\n");
1053 goto cleanup_intr_in_buffer; 1053 goto cleanup_intr_in_buffer;
1054 } 1054 }
1055 1055
diff --git a/drivers/net/cxgb3/ael1002.c b/drivers/net/cxgb3/ael1002.c
index 5248f9e0b2f4..35cd36729155 100644
--- a/drivers/net/cxgb3/ael1002.c
+++ b/drivers/net/cxgb3/ael1002.c
@@ -934,7 +934,7 @@ static struct cphy_ops xaui_direct_ops = {
934int t3_xaui_direct_phy_prep(struct cphy *phy, struct adapter *adapter, 934int t3_xaui_direct_phy_prep(struct cphy *phy, struct adapter *adapter,
935 int phy_addr, const struct mdio_ops *mdio_ops) 935 int phy_addr, const struct mdio_ops *mdio_ops)
936{ 936{
937 cphy_init(phy, adapter, MDIO_PRTAD_NONE, &xaui_direct_ops, mdio_ops, 937 cphy_init(phy, adapter, phy_addr, &xaui_direct_ops, mdio_ops,
938 SUPPORTED_10000baseT_Full | SUPPORTED_AUI | SUPPORTED_TP, 938 SUPPORTED_10000baseT_Full | SUPPORTED_AUI | SUPPORTED_TP,
939 "10GBASE-CX4"); 939 "10GBASE-CX4");
940 return 0; 940 return 0;
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index aced6c5e635c..e3f1b8566495 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -439,7 +439,7 @@ static void free_irq_resources(struct adapter *adapter)
439static int await_mgmt_replies(struct adapter *adap, unsigned long init_cnt, 439static int await_mgmt_replies(struct adapter *adap, unsigned long init_cnt,
440 unsigned long n) 440 unsigned long n)
441{ 441{
442 int attempts = 5; 442 int attempts = 10;
443 443
444 while (adap->sge.qs[0].rspq.offload_pkts < init_cnt + n) { 444 while (adap->sge.qs[0].rspq.offload_pkts < init_cnt + n) {
445 if (!--attempts) 445 if (!--attempts)
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index b997e578e58f..791080303db1 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -166,6 +166,7 @@
166#include <linux/ethtool.h> 166#include <linux/ethtool.h>
167#include <linux/string.h> 167#include <linux/string.h>
168#include <linux/firmware.h> 168#include <linux/firmware.h>
169#include <linux/rtnetlink.h>
169#include <asm/unaligned.h> 170#include <asm/unaligned.h>
170 171
171 172
@@ -2265,8 +2266,13 @@ static void e100_tx_timeout_task(struct work_struct *work)
2265 2266
2266 DPRINTK(TX_ERR, DEBUG, "scb.status=0x%02X\n", 2267 DPRINTK(TX_ERR, DEBUG, "scb.status=0x%02X\n",
2267 ioread8(&nic->csr->scb.status)); 2268 ioread8(&nic->csr->scb.status));
2268 e100_down(netdev_priv(netdev)); 2269
2269 e100_up(netdev_priv(netdev)); 2270 rtnl_lock();
2271 if (netif_running(netdev)) {
2272 e100_down(netdev_priv(netdev));
2273 e100_up(netdev_priv(netdev));
2274 }
2275 rtnl_unlock();
2270} 2276}
2271 2277
2272static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode) 2278static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode)
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
index 712ccc66ba25..90155552ea09 100644
--- a/drivers/net/e1000e/82571.c
+++ b/drivers/net/e1000e/82571.c
@@ -336,7 +336,6 @@ static s32 e1000_get_variants_82571(struct e1000_adapter *adapter)
336 struct e1000_hw *hw = &adapter->hw; 336 struct e1000_hw *hw = &adapter->hw;
337 static int global_quad_port_a; /* global port a indication */ 337 static int global_quad_port_a; /* global port a indication */
338 struct pci_dev *pdev = adapter->pdev; 338 struct pci_dev *pdev = adapter->pdev;
339 u16 eeprom_data = 0;
340 int is_port_b = er32(STATUS) & E1000_STATUS_FUNC_1; 339 int is_port_b = er32(STATUS) & E1000_STATUS_FUNC_1;
341 s32 rc; 340 s32 rc;
342 341
@@ -387,16 +386,15 @@ static s32 e1000_get_variants_82571(struct e1000_adapter *adapter)
387 if (pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD) 386 if (pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD)
388 adapter->flags &= ~FLAG_HAS_WOL; 387 adapter->flags &= ~FLAG_HAS_WOL;
389 break; 388 break;
390
391 case e1000_82573: 389 case e1000_82573:
390 case e1000_82574:
391 case e1000_82583:
392 /* Disable ASPM L0s due to hardware errata */
393 e1000e_disable_aspm(adapter->pdev, PCIE_LINK_STATE_L0S);
394
392 if (pdev->device == E1000_DEV_ID_82573L) { 395 if (pdev->device == E1000_DEV_ID_82573L) {
393 if (e1000_read_nvm(&adapter->hw, NVM_INIT_3GIO_3, 1, 396 adapter->flags |= FLAG_HAS_JUMBO_FRAMES;
394 &eeprom_data) < 0) 397 adapter->max_hw_frame_size = DEFAULT_JUMBO;
395 break;
396 if (!(eeprom_data & NVM_WORD1A_ASPM_MASK)) {
397 adapter->flags |= FLAG_HAS_JUMBO_FRAMES;
398 adapter->max_hw_frame_size = DEFAULT_JUMBO;
399 }
400 } 398 }
401 break; 399 break;
402 default: 400 default:
@@ -1792,6 +1790,7 @@ struct e1000_info e1000_82571_info = {
1792 | FLAG_RESET_OVERWRITES_LAA /* errata */ 1790 | FLAG_RESET_OVERWRITES_LAA /* errata */
1793 | FLAG_TARC_SPEED_MODE_BIT /* errata */ 1791 | FLAG_TARC_SPEED_MODE_BIT /* errata */
1794 | FLAG_APME_CHECK_PORT_B, 1792 | FLAG_APME_CHECK_PORT_B,
1793 .flags2 = FLAG2_DISABLE_ASPM_L1, /* errata 13 */
1795 .pba = 38, 1794 .pba = 38,
1796 .max_hw_frame_size = DEFAULT_JUMBO, 1795 .max_hw_frame_size = DEFAULT_JUMBO,
1797 .get_variants = e1000_get_variants_82571, 1796 .get_variants = e1000_get_variants_82571,
@@ -1809,6 +1808,7 @@ struct e1000_info e1000_82572_info = {
1809 | FLAG_RX_CSUM_ENABLED 1808 | FLAG_RX_CSUM_ENABLED
1810 | FLAG_HAS_CTRLEXT_ON_LOAD 1809 | FLAG_HAS_CTRLEXT_ON_LOAD
1811 | FLAG_TARC_SPEED_MODE_BIT, /* errata */ 1810 | FLAG_TARC_SPEED_MODE_BIT, /* errata */
1811 .flags2 = FLAG2_DISABLE_ASPM_L1, /* errata 13 */
1812 .pba = 38, 1812 .pba = 38,
1813 .max_hw_frame_size = DEFAULT_JUMBO, 1813 .max_hw_frame_size = DEFAULT_JUMBO,
1814 .get_variants = e1000_get_variants_82571, 1814 .get_variants = e1000_get_variants_82571,
@@ -1820,13 +1820,11 @@ struct e1000_info e1000_82572_info = {
1820struct e1000_info e1000_82573_info = { 1820struct e1000_info e1000_82573_info = {
1821 .mac = e1000_82573, 1821 .mac = e1000_82573,
1822 .flags = FLAG_HAS_HW_VLAN_FILTER 1822 .flags = FLAG_HAS_HW_VLAN_FILTER
1823 | FLAG_HAS_JUMBO_FRAMES
1824 | FLAG_HAS_WOL 1823 | FLAG_HAS_WOL
1825 | FLAG_APME_IN_CTRL3 1824 | FLAG_APME_IN_CTRL3
1826 | FLAG_RX_CSUM_ENABLED 1825 | FLAG_RX_CSUM_ENABLED
1827 | FLAG_HAS_SMART_POWER_DOWN 1826 | FLAG_HAS_SMART_POWER_DOWN
1828 | FLAG_HAS_AMT 1827 | FLAG_HAS_AMT
1829 | FLAG_HAS_ERT
1830 | FLAG_HAS_SWSM_ON_LOAD, 1828 | FLAG_HAS_SWSM_ON_LOAD,
1831 .pba = 20, 1829 .pba = 20,
1832 .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, 1830 .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN,
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index 118bdf483593..ee32b9b27a9f 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -37,6 +37,7 @@
37#include <linux/io.h> 37#include <linux/io.h>
38#include <linux/netdevice.h> 38#include <linux/netdevice.h>
39#include <linux/pci.h> 39#include <linux/pci.h>
40#include <linux/pci-aspm.h>
40 41
41#include "hw.h" 42#include "hw.h"
42 43
@@ -374,7 +375,7 @@ struct e1000_adapter {
374struct e1000_info { 375struct e1000_info {
375 enum e1000_mac_type mac; 376 enum e1000_mac_type mac;
376 unsigned int flags; 377 unsigned int flags;
377 unsigned int flags2; 378 unsigned int flags2;
378 u32 pba; 379 u32 pba;
379 u32 max_hw_frame_size; 380 u32 max_hw_frame_size;
380 s32 (*get_variants)(struct e1000_adapter *); 381 s32 (*get_variants)(struct e1000_adapter *);
@@ -421,6 +422,7 @@ struct e1000_info {
421#define FLAG2_CRC_STRIPPING (1 << 0) 422#define FLAG2_CRC_STRIPPING (1 << 0)
422#define FLAG2_HAS_PHY_WAKEUP (1 << 1) 423#define FLAG2_HAS_PHY_WAKEUP (1 << 1)
423#define FLAG2_IS_DISCARDING (1 << 2) 424#define FLAG2_IS_DISCARDING (1 << 2)
425#define FLAG2_DISABLE_ASPM_L1 (1 << 3)
424 426
425#define E1000_RX_DESC_PS(R, i) \ 427#define E1000_RX_DESC_PS(R, i) \
426 (&(((union e1000_rx_desc_packet_split *)((R).desc))[i])) 428 (&(((union e1000_rx_desc_packet_split *)((R).desc))[i]))
@@ -461,6 +463,7 @@ extern void e1000e_update_stats(struct e1000_adapter *adapter);
461extern bool e1000e_has_link(struct e1000_adapter *adapter); 463extern bool e1000e_has_link(struct e1000_adapter *adapter);
462extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter); 464extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter);
463extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter); 465extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter);
466extern void e1000e_disable_aspm(struct pci_dev *pdev, u16 state);
464 467
465extern unsigned int copybreak; 468extern unsigned int copybreak;
466 469
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 73d43c53015a..dbf81788bb40 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -4283,6 +4283,14 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
4283 return -EINVAL; 4283 return -EINVAL;
4284 } 4284 }
4285 4285
4286 /* 82573 Errata 17 */
4287 if (((adapter->hw.mac.type == e1000_82573) ||
4288 (adapter->hw.mac.type == e1000_82574)) &&
4289 (max_frame > ETH_FRAME_LEN + ETH_FCS_LEN)) {
4290 adapter->flags2 |= FLAG2_DISABLE_ASPM_L1;
4291 e1000e_disable_aspm(adapter->pdev, PCIE_LINK_STATE_L1);
4292 }
4293
4286 while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) 4294 while (test_and_set_bit(__E1000_RESETTING, &adapter->state))
4287 msleep(1); 4295 msleep(1);
4288 /* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */ 4296 /* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */
@@ -4605,29 +4613,42 @@ static void e1000_complete_shutdown(struct pci_dev *pdev, bool sleep,
4605 } 4613 }
4606} 4614}
4607 4615
4608static void e1000e_disable_l1aspm(struct pci_dev *pdev) 4616#ifdef CONFIG_PCIEASPM
4617static void __e1000e_disable_aspm(struct pci_dev *pdev, u16 state)
4618{
4619 pci_disable_link_state(pdev, state);
4620}
4621#else
4622static void __e1000e_disable_aspm(struct pci_dev *pdev, u16 state)
4609{ 4623{
4610 int pos; 4624 int pos;
4611 u16 val; 4625 u16 reg16;
4612 4626
4613 /* 4627 /*
4614 * 82573 workaround - disable L1 ASPM on mobile chipsets 4628 * Both device and parent should have the same ASPM setting.
4615 * 4629 * Disable ASPM in downstream component first and then upstream.
4616 * L1 ASPM on various mobile (ich7) chipsets do not behave properly
4617 * resulting in lost data or garbage information on the pci-e link
4618 * level. This could result in (false) bad EEPROM checksum errors,
4619 * long ping times (up to 2s) or even a system freeze/hang.
4620 *
4621 * Unfortunately this feature saves about 1W power consumption when
4622 * active.
4623 */ 4630 */
4624 pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); 4631 pos = pci_pcie_cap(pdev);
4625 pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &val); 4632 pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &reg16);
4626 if (val & 0x2) { 4633 reg16 &= ~state;
4627 dev_warn(&pdev->dev, "Disabling L1 ASPM\n"); 4634 pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, reg16);
4628 val &= ~0x2; 4635
4629 pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, val); 4636 if (!pdev->bus->self)
4630 } 4637 return;
4638
4639 pos = pci_pcie_cap(pdev->bus->self);
4640 pci_read_config_word(pdev->bus->self, pos + PCI_EXP_LNKCTL, &reg16);
4641 reg16 &= ~state;
4642 pci_write_config_word(pdev->bus->self, pos + PCI_EXP_LNKCTL, reg16);
4643}
4644#endif
4645void e1000e_disable_aspm(struct pci_dev *pdev, u16 state)
4646{
4647 dev_info(&pdev->dev, "Disabling ASPM %s %s\n",
4648 (state & PCIE_LINK_STATE_L0S) ? "L0s" : "",
4649 (state & PCIE_LINK_STATE_L1) ? "L1" : "");
4650
4651 __e1000e_disable_aspm(pdev, state);
4631} 4652}
4632 4653
4633#ifdef CONFIG_PM 4654#ifdef CONFIG_PM
@@ -4653,7 +4674,8 @@ static int e1000_resume(struct pci_dev *pdev)
4653 pci_set_power_state(pdev, PCI_D0); 4674 pci_set_power_state(pdev, PCI_D0);
4654 pci_restore_state(pdev); 4675 pci_restore_state(pdev);
4655 pci_save_state(pdev); 4676 pci_save_state(pdev);
4656 e1000e_disable_l1aspm(pdev); 4677 if (adapter->flags2 & FLAG2_DISABLE_ASPM_L1)
4678 e1000e_disable_aspm(pdev, PCIE_LINK_STATE_L1);
4657 4679
4658 err = pci_enable_device_mem(pdev); 4680 err = pci_enable_device_mem(pdev);
4659 if (err) { 4681 if (err) {
@@ -4795,7 +4817,8 @@ static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev)
4795 int err; 4817 int err;
4796 pci_ers_result_t result; 4818 pci_ers_result_t result;
4797 4819
4798 e1000e_disable_l1aspm(pdev); 4820 if (adapter->flags2 & FLAG2_DISABLE_ASPM_L1)
4821 e1000e_disable_aspm(pdev, PCIE_LINK_STATE_L1);
4799 err = pci_enable_device_mem(pdev); 4822 err = pci_enable_device_mem(pdev);
4800 if (err) { 4823 if (err) {
4801 dev_err(&pdev->dev, 4824 dev_err(&pdev->dev,
@@ -4889,13 +4912,6 @@ static void e1000_eeprom_checks(struct e1000_adapter *adapter)
4889 dev_warn(&adapter->pdev->dev, 4912 dev_warn(&adapter->pdev->dev,
4890 "Warning: detected DSPD enabled in EEPROM\n"); 4913 "Warning: detected DSPD enabled in EEPROM\n");
4891 } 4914 }
4892
4893 ret_val = e1000_read_nvm(hw, NVM_INIT_3GIO_3, 1, &buf);
4894 if (!ret_val && (le16_to_cpu(buf) & (3 << 2))) {
4895 /* ASPM enable */
4896 dev_warn(&adapter->pdev->dev,
4897 "Warning: detected ASPM enabled in EEPROM\n");
4898 }
4899} 4915}
4900 4916
4901static const struct net_device_ops e1000e_netdev_ops = { 4917static const struct net_device_ops e1000e_netdev_ops = {
@@ -4944,7 +4960,8 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
4944 u16 eeprom_data = 0; 4960 u16 eeprom_data = 0;
4945 u16 eeprom_apme_mask = E1000_EEPROM_APME; 4961 u16 eeprom_apme_mask = E1000_EEPROM_APME;
4946 4962
4947 e1000e_disable_l1aspm(pdev); 4963 if (ei->flags2 & FLAG2_DISABLE_ASPM_L1)
4964 e1000e_disable_aspm(pdev, PCIE_LINK_STATE_L1);
4948 4965
4949 err = pci_enable_device_mem(pdev); 4966 err = pci_enable_device_mem(pdev);
4950 if (err) 4967 if (err)
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index 9f98c1c4a344..9b4e8f797a7a 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -1653,7 +1653,7 @@ fec_set_mac_address(struct net_device *dev, void *p)
1653 (dev->dev_addr[1] << 16) | (dev->dev_addr[0] << 24), 1653 (dev->dev_addr[1] << 16) | (dev->dev_addr[0] << 24),
1654 fep->hwp + FEC_ADDR_LOW); 1654 fep->hwp + FEC_ADDR_LOW);
1655 writel((dev->dev_addr[5] << 16) | (dev->dev_addr[4] << 24), 1655 writel((dev->dev_addr[5] << 16) | (dev->dev_addr[4] << 24),
1656 fep + FEC_ADDR_HIGH); 1656 fep->hwp + FEC_ADDR_HIGH);
1657 return 0; 1657 return 0;
1658} 1658}
1659 1659
diff --git a/drivers/net/fsl_pq_mdio.c b/drivers/net/fsl_pq_mdio.c
index d5160edf2fcf..3acac5f930c8 100644
--- a/drivers/net/fsl_pq_mdio.c
+++ b/drivers/net/fsl_pq_mdio.c
@@ -205,8 +205,6 @@ static int fsl_pq_mdio_find_free(struct mii_bus *new_bus)
205static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct device_node *np) 205static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct device_node *np)
206{ 206{
207 struct gfar __iomem *enet_regs; 207 struct gfar __iomem *enet_regs;
208 u32 __iomem *ioremap_tbipa;
209 u64 addr, size;
210 208
211 /* 209 /*
212 * This is mildly evil, but so is our hardware for doing this. 210 * This is mildly evil, but so is our hardware for doing this.
@@ -220,9 +218,7 @@ static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct devi
220 return &enet_regs->tbipa; 218 return &enet_regs->tbipa;
221 } else if (of_device_is_compatible(np, "fsl,etsec2-mdio") || 219 } else if (of_device_is_compatible(np, "fsl,etsec2-mdio") ||
222 of_device_is_compatible(np, "fsl,etsec2-tbi")) { 220 of_device_is_compatible(np, "fsl,etsec2-tbi")) {
223 addr = of_translate_address(np, of_get_address(np, 1, &size, NULL)); 221 return of_iomap(np, 1);
224 ioremap_tbipa = ioremap(addr, size);
225 return ioremap_tbipa;
226 } else 222 } else
227 return NULL; 223 return NULL;
228} 224}
@@ -279,6 +275,7 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev,
279 u32 __iomem *tbipa; 275 u32 __iomem *tbipa;
280 struct mii_bus *new_bus; 276 struct mii_bus *new_bus;
281 int tbiaddr = -1; 277 int tbiaddr = -1;
278 const u32 *addrp;
282 u64 addr = 0, size = 0; 279 u64 addr = 0, size = 0;
283 int err = 0; 280 int err = 0;
284 281
@@ -297,8 +294,19 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev,
297 new_bus->priv = priv; 294 new_bus->priv = priv;
298 fsl_pq_mdio_bus_name(new_bus->id, np); 295 fsl_pq_mdio_bus_name(new_bus->id, np);
299 296
297 addrp = of_get_address(np, 0, &size, NULL);
298 if (!addrp) {
299 err = -EINVAL;
300 goto err_free_bus;
301 }
302
300 /* Set the PHY base address */ 303 /* Set the PHY base address */
301 addr = of_translate_address(np, of_get_address(np, 0, &size, NULL)); 304 addr = of_translate_address(np, addrp);
305 if (addr == OF_BAD_ADDR) {
306 err = -EINVAL;
307 goto err_free_bus;
308 }
309
302 map = ioremap(addr, size); 310 map = ioremap(addr, size);
303 if (!map) { 311 if (!map) {
304 err = -ENOMEM; 312 err = -ENOMEM;
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 080d1cea5b26..5d3763fb3472 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -549,12 +549,8 @@ static int gfar_parse_group(struct device_node *np,
549 struct gfar_private *priv, const char *model) 549 struct gfar_private *priv, const char *model)
550{ 550{
551 u32 *queue_mask; 551 u32 *queue_mask;
552 u64 addr, size;
553
554 addr = of_translate_address(np,
555 of_get_address(np, 0, &size, NULL));
556 priv->gfargrp[priv->num_grps].regs = ioremap(addr, size);
557 552
553 priv->gfargrp[priv->num_grps].regs = of_iomap(np, 0);
558 if (!priv->gfargrp[priv->num_grps].regs) 554 if (!priv->gfargrp[priv->num_grps].regs)
559 return -ENOMEM; 555 return -ENOMEM;
560 556
@@ -1515,9 +1511,9 @@ static void gfar_halt_nodisable(struct net_device *dev)
1515 tempval |= (DMACTRL_GRS | DMACTRL_GTS); 1511 tempval |= (DMACTRL_GRS | DMACTRL_GTS);
1516 gfar_write(&regs->dmactrl, tempval); 1512 gfar_write(&regs->dmactrl, tempval);
1517 1513
1518 while (!(gfar_read(&regs->ievent) & 1514 spin_event_timeout(((gfar_read(&regs->ievent) &
1519 (IEVENT_GRSC | IEVENT_GTSC))) 1515 (IEVENT_GRSC | IEVENT_GTSC)) ==
1520 cpu_relax(); 1516 (IEVENT_GRSC | IEVENT_GTSC)), -1, 0);
1521 } 1517 }
1522} 1518}
1523 1519
@@ -1653,6 +1649,7 @@ static void free_skb_resources(struct gfar_private *priv)
1653 sizeof(struct rxbd8) * priv->total_rx_ring_size, 1649 sizeof(struct rxbd8) * priv->total_rx_ring_size,
1654 priv->tx_queue[0]->tx_bd_base, 1650 priv->tx_queue[0]->tx_bd_base,
1655 priv->tx_queue[0]->tx_bd_dma_base); 1651 priv->tx_queue[0]->tx_bd_dma_base);
1652 skb_queue_purge(&priv->rx_recycle);
1656} 1653}
1657 1654
1658void gfar_start(struct net_device *dev) 1655void gfar_start(struct net_device *dev)
@@ -2092,7 +2089,6 @@ static int gfar_close(struct net_device *dev)
2092 2089
2093 disable_napi(priv); 2090 disable_napi(priv);
2094 2091
2095 skb_queue_purge(&priv->rx_recycle);
2096 cancel_work_sync(&priv->reset_task); 2092 cancel_work_sync(&priv->reset_task);
2097 stop_gfar(dev); 2093 stop_gfar(dev);
2098 2094
diff --git a/drivers/net/ixgbe/ixgbe_82599.c b/drivers/net/ixgbe/ixgbe_82599.c
index b405a00817c6..12fc0e7ba2ca 100644
--- a/drivers/net/ixgbe/ixgbe_82599.c
+++ b/drivers/net/ixgbe/ixgbe_82599.c
@@ -39,6 +39,8 @@
39#define IXGBE_82599_MC_TBL_SIZE 128 39#define IXGBE_82599_MC_TBL_SIZE 128
40#define IXGBE_82599_VFT_TBL_SIZE 128 40#define IXGBE_82599_VFT_TBL_SIZE 128
41 41
42void ixgbe_disable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
43void ixgbe_enable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
42void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw); 44void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
43s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw, 45s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
44 ixgbe_link_speed speed, 46 ixgbe_link_speed speed,
@@ -69,8 +71,14 @@ static void ixgbe_init_mac_link_ops_82599(struct ixgbe_hw *hw)
69 if (hw->phy.multispeed_fiber) { 71 if (hw->phy.multispeed_fiber) {
70 /* Set up dual speed SFP+ support */ 72 /* Set up dual speed SFP+ support */
71 mac->ops.setup_link = &ixgbe_setup_mac_link_multispeed_fiber; 73 mac->ops.setup_link = &ixgbe_setup_mac_link_multispeed_fiber;
74 mac->ops.disable_tx_laser =
75 &ixgbe_disable_tx_laser_multispeed_fiber;
76 mac->ops.enable_tx_laser =
77 &ixgbe_enable_tx_laser_multispeed_fiber;
72 mac->ops.flap_tx_laser = &ixgbe_flap_tx_laser_multispeed_fiber; 78 mac->ops.flap_tx_laser = &ixgbe_flap_tx_laser_multispeed_fiber;
73 } else { 79 } else {
80 mac->ops.disable_tx_laser = NULL;
81 mac->ops.enable_tx_laser = NULL;
74 mac->ops.flap_tx_laser = NULL; 82 mac->ops.flap_tx_laser = NULL;
75 if ((mac->ops.get_media_type(hw) == 83 if ((mac->ops.get_media_type(hw) ==
76 ixgbe_media_type_backplane) && 84 ixgbe_media_type_backplane) &&
@@ -415,6 +423,44 @@ s32 ixgbe_start_mac_link_82599(struct ixgbe_hw *hw,
415 return status; 423 return status;
416} 424}
417 425
426 /**
427 * ixgbe_disable_tx_laser_multispeed_fiber - Disable Tx laser
428 * @hw: pointer to hardware structure
429 *
430 * The base drivers may require better control over SFP+ module
431 * PHY states. This includes selectively shutting down the Tx
432 * laser on the PHY, effectively halting physical link.
433 **/
434void ixgbe_disable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
435{
436 u32 esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
437
438 /* Disable tx laser; allow 100us to go dark per spec */
439 esdp_reg |= IXGBE_ESDP_SDP3;
440 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg);
441 IXGBE_WRITE_FLUSH(hw);
442 udelay(100);
443}
444
445/**
446 * ixgbe_enable_tx_laser_multispeed_fiber - Enable Tx laser
447 * @hw: pointer to hardware structure
448 *
449 * The base drivers may require better control over SFP+ module
450 * PHY states. This includes selectively turning on the Tx
451 * laser on the PHY, effectively starting physical link.
452 **/
453void ixgbe_enable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
454{
455 u32 esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
456
457 /* Enable tx laser; allow 100ms to light up */
458 esdp_reg &= ~IXGBE_ESDP_SDP3;
459 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg);
460 IXGBE_WRITE_FLUSH(hw);
461 msleep(100);
462}
463
418/** 464/**
419 * ixgbe_flap_tx_laser_multispeed_fiber - Flap Tx laser 465 * ixgbe_flap_tx_laser_multispeed_fiber - Flap Tx laser
420 * @hw: pointer to hardware structure 466 * @hw: pointer to hardware structure
@@ -429,23 +475,11 @@ s32 ixgbe_start_mac_link_82599(struct ixgbe_hw *hw,
429 **/ 475 **/
430void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw) 476void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw)
431{ 477{
432 u32 esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
433
434 hw_dbg(hw, "ixgbe_flap_tx_laser_multispeed_fiber\n"); 478 hw_dbg(hw, "ixgbe_flap_tx_laser_multispeed_fiber\n");
435 479
436 if (hw->mac.autotry_restart) { 480 if (hw->mac.autotry_restart) {
437 /* Disable tx laser; allow 100us to go dark per spec */ 481 ixgbe_disable_tx_laser_multispeed_fiber(hw);
438 esdp_reg |= IXGBE_ESDP_SDP3; 482 ixgbe_enable_tx_laser_multispeed_fiber(hw);
439 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg);
440 IXGBE_WRITE_FLUSH(hw);
441 udelay(100);
442
443 /* Enable tx laser; allow 100ms to light up */
444 esdp_reg &= ~IXGBE_ESDP_SDP3;
445 IXGBE_WRITE_REG(hw, IXGBE_ESDP, esdp_reg);
446 IXGBE_WRITE_FLUSH(hw);
447 msleep(100);
448
449 hw->mac.autotry_restart = false; 483 hw->mac.autotry_restart = false;
450 } 484 }
451} 485}
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 8f677cb86290..6c00ee493a3b 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -2982,6 +2982,10 @@ static int ixgbe_up_complete(struct ixgbe_adapter *adapter)
2982 else 2982 else
2983 ixgbe_configure_msi_and_legacy(adapter); 2983 ixgbe_configure_msi_and_legacy(adapter);
2984 2984
2985 /* enable the optics */
2986 if (hw->phy.multispeed_fiber)
2987 hw->mac.ops.enable_tx_laser(hw);
2988
2985 clear_bit(__IXGBE_DOWN, &adapter->state); 2989 clear_bit(__IXGBE_DOWN, &adapter->state);
2986 ixgbe_napi_enable_all(adapter); 2990 ixgbe_napi_enable_all(adapter);
2987 2991
@@ -3243,6 +3247,10 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
3243 /* signal that we are down to the interrupt handler */ 3247 /* signal that we are down to the interrupt handler */
3244 set_bit(__IXGBE_DOWN, &adapter->state); 3248 set_bit(__IXGBE_DOWN, &adapter->state);
3245 3249
3250 /* power down the optics */
3251 if (hw->phy.multispeed_fiber)
3252 hw->mac.ops.disable_tx_laser(hw);
3253
3246 /* disable receive for all VFs and wait one second */ 3254 /* disable receive for all VFs and wait one second */
3247 if (adapter->num_vfs) { 3255 if (adapter->num_vfs) {
3248 /* ping all the active vfs to let them know we are going down */ 3256 /* ping all the active vfs to let them know we are going down */
@@ -6253,6 +6261,10 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
6253 goto err_eeprom; 6261 goto err_eeprom;
6254 } 6262 }
6255 6263
6264 /* power down the optics */
6265 if (hw->phy.multispeed_fiber)
6266 hw->mac.ops.disable_tx_laser(hw);
6267
6256 init_timer(&adapter->watchdog_timer); 6268 init_timer(&adapter->watchdog_timer);
6257 adapter->watchdog_timer.function = &ixgbe_watchdog; 6269 adapter->watchdog_timer.function = &ixgbe_watchdog;
6258 adapter->watchdog_timer.data = (unsigned long)adapter; 6270 adapter->watchdog_timer.data = (unsigned long)adapter;
@@ -6400,16 +6412,6 @@ static void __devexit ixgbe_remove(struct pci_dev *pdev)
6400 del_timer_sync(&adapter->sfp_timer); 6412 del_timer_sync(&adapter->sfp_timer);
6401 cancel_work_sync(&adapter->watchdog_task); 6413 cancel_work_sync(&adapter->watchdog_task);
6402 cancel_work_sync(&adapter->sfp_task); 6414 cancel_work_sync(&adapter->sfp_task);
6403 if (adapter->hw.phy.multispeed_fiber) {
6404 struct ixgbe_hw *hw = &adapter->hw;
6405 /*
6406 * Restart clause 37 autoneg, disable and re-enable
6407 * the tx laser, to clear & alert the link partner
6408 * that it needs to restart autotry
6409 */
6410 hw->mac.autotry_restart = true;
6411 hw->mac.ops.flap_tx_laser(hw);
6412 }
6413 cancel_work_sync(&adapter->multispeed_fiber_task); 6415 cancel_work_sync(&adapter->multispeed_fiber_task);
6414 cancel_work_sync(&adapter->sfp_config_module_task); 6416 cancel_work_sync(&adapter->sfp_config_module_task);
6415 if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE || 6417 if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE ||
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h
index 4ec6dc1a5b75..534affcc38ca 100644
--- a/drivers/net/ixgbe/ixgbe_type.h
+++ b/drivers/net/ixgbe/ixgbe_type.h
@@ -2398,6 +2398,8 @@ struct ixgbe_mac_operations {
2398 s32 (*enable_rx_dma)(struct ixgbe_hw *, u32); 2398 s32 (*enable_rx_dma)(struct ixgbe_hw *, u32);
2399 2399
2400 /* Link */ 2400 /* Link */
2401 void (*disable_tx_laser)(struct ixgbe_hw *);
2402 void (*enable_tx_laser)(struct ixgbe_hw *);
2401 void (*flap_tx_laser)(struct ixgbe_hw *); 2403 void (*flap_tx_laser)(struct ixgbe_hw *);
2402 s32 (*setup_link)(struct ixgbe_hw *, ixgbe_link_speed, bool, bool); 2404 s32 (*setup_link)(struct ixgbe_hw *, ixgbe_link_speed, bool, bool);
2403 s32 (*check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool); 2405 s32 (*check_link)(struct ixgbe_hw *, ixgbe_link_speed *, bool *, bool);
diff --git a/drivers/net/ks8851.c b/drivers/net/ks8851.c
index 13cc1ca261d9..9e9f9b349766 100644
--- a/drivers/net/ks8851.c
+++ b/drivers/net/ks8851.c
@@ -722,12 +722,14 @@ static void ks8851_tx_work(struct work_struct *work)
722 txb = skb_dequeue(&ks->txq); 722 txb = skb_dequeue(&ks->txq);
723 last = skb_queue_empty(&ks->txq); 723 last = skb_queue_empty(&ks->txq);
724 724
725 ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr | RXQCR_SDA); 725 if (txb != NULL) {
726 ks8851_wrpkt(ks, txb, last); 726 ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr | RXQCR_SDA);
727 ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr); 727 ks8851_wrpkt(ks, txb, last);
728 ks8851_wrreg16(ks, KS_TXQCR, TXQCR_METFE); 728 ks8851_wrreg16(ks, KS_RXQCR, ks->rc_rxqcr);
729 ks8851_wrreg16(ks, KS_TXQCR, TXQCR_METFE);
729 730
730 ks8851_done_tx(ks, txb); 731 ks8851_done_tx(ks, txb);
732 }
731 } 733 }
732 734
733 mutex_unlock(&ks->lock); 735 mutex_unlock(&ks->lock);
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index 3d1d3a7b7ed3..757f87bb1db3 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -781,8 +781,13 @@ static netdev_tx_t el3_start_xmit(struct sk_buff *skb,
781 inw(ioaddr + EL3_STATUS)); 781 inw(ioaddr + EL3_STATUS));
782 782
783 spin_lock_irqsave(&lp->window_lock, flags); 783 spin_lock_irqsave(&lp->window_lock, flags);
784
785 dev->stats.tx_bytes += skb->len;
786
787 /* Put out the doubleword header... */
784 outw(skb->len, ioaddr + TX_FIFO); 788 outw(skb->len, ioaddr + TX_FIFO);
785 outw(0, ioaddr + TX_FIFO); 789 outw(0, ioaddr + TX_FIFO);
790 /* ... and the packet rounded to a doubleword. */
786 outsl(ioaddr + TX_FIFO, skb->data, (skb->len+3)>>2); 791 outsl(ioaddr + TX_FIFO, skb->data, (skb->len+3)>>2);
787 792
788 dev->trans_start = jiffies; 793 dev->trans_start = jiffies;
@@ -1021,8 +1026,6 @@ static void update_stats(struct net_device *dev)
1021 /* BadSSD */ inb(ioaddr + 12); 1026 /* BadSSD */ inb(ioaddr + 12);
1022 up = inb(ioaddr + 13); 1027 up = inb(ioaddr + 13);
1023 1028
1024 dev->stats.tx_bytes += tx + ((up & 0xf0) << 12);
1025
1026 EL3WINDOW(1); 1029 EL3WINDOW(1);
1027} 1030}
1028 1031
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index fd9d6e34fda4..ccc553782a0d 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -1804,23 +1804,30 @@ static void media_check(u_long arg)
1804 SMC_SELECT_BANK(1); 1804 SMC_SELECT_BANK(1);
1805 media |= (inw(ioaddr + CONFIG) & CFG_AUI_SELECT) ? 2 : 1; 1805 media |= (inw(ioaddr + CONFIG) & CFG_AUI_SELECT) ? 2 : 1;
1806 1806
1807 SMC_SELECT_BANK(saved_bank);
1808 spin_unlock_irqrestore(&smc->lock, flags);
1809
1807 /* Check for pending interrupt with watchdog flag set: with 1810 /* Check for pending interrupt with watchdog flag set: with
1808 this, we can limp along even if the interrupt is blocked */ 1811 this, we can limp along even if the interrupt is blocked */
1809 if (smc->watchdog++ && ((i>>8) & i)) { 1812 if (smc->watchdog++ && ((i>>8) & i)) {
1810 if (!smc->fast_poll) 1813 if (!smc->fast_poll)
1811 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 1814 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
1815 local_irq_save(flags);
1812 smc_interrupt(dev->irq, dev); 1816 smc_interrupt(dev->irq, dev);
1817 local_irq_restore(flags);
1813 smc->fast_poll = HZ; 1818 smc->fast_poll = HZ;
1814 } 1819 }
1815 if (smc->fast_poll) { 1820 if (smc->fast_poll) {
1816 smc->fast_poll--; 1821 smc->fast_poll--;
1817 smc->media.expires = jiffies + HZ/100; 1822 smc->media.expires = jiffies + HZ/100;
1818 add_timer(&smc->media); 1823 add_timer(&smc->media);
1819 SMC_SELECT_BANK(saved_bank);
1820 spin_unlock_irqrestore(&smc->lock, flags);
1821 return; 1824 return;
1822 } 1825 }
1823 1826
1827 spin_lock_irqsave(&smc->lock, flags);
1828
1829 saved_bank = inw(ioaddr + BANK_SELECT);
1830
1824 if (smc->cfg & CFG_MII_SELECT) { 1831 if (smc->cfg & CFG_MII_SELECT) {
1825 if (smc->mii_if.phy_id < 0) 1832 if (smc->mii_if.phy_id < 0)
1826 goto reschedule; 1833 goto reschedule;
@@ -1978,15 +1985,16 @@ static int smc_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
1978 unsigned int ioaddr = dev->base_addr; 1985 unsigned int ioaddr = dev->base_addr;
1979 u16 saved_bank = inw(ioaddr + BANK_SELECT); 1986 u16 saved_bank = inw(ioaddr + BANK_SELECT);
1980 int ret; 1987 int ret;
1988 unsigned long flags;
1981 1989
1982 spin_lock_irq(&smc->lock); 1990 spin_lock_irqsave(&smc->lock, flags);
1983 SMC_SELECT_BANK(3); 1991 SMC_SELECT_BANK(3);
1984 if (smc->cfg & CFG_MII_SELECT) 1992 if (smc->cfg & CFG_MII_SELECT)
1985 ret = mii_ethtool_gset(&smc->mii_if, ecmd); 1993 ret = mii_ethtool_gset(&smc->mii_if, ecmd);
1986 else 1994 else
1987 ret = smc_netdev_get_ecmd(dev, ecmd); 1995 ret = smc_netdev_get_ecmd(dev, ecmd);
1988 SMC_SELECT_BANK(saved_bank); 1996 SMC_SELECT_BANK(saved_bank);
1989 spin_unlock_irq(&smc->lock); 1997 spin_unlock_irqrestore(&smc->lock, flags);
1990 return ret; 1998 return ret;
1991} 1999}
1992 2000
@@ -1996,15 +2004,16 @@ static int smc_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
1996 unsigned int ioaddr = dev->base_addr; 2004 unsigned int ioaddr = dev->base_addr;
1997 u16 saved_bank = inw(ioaddr + BANK_SELECT); 2005 u16 saved_bank = inw(ioaddr + BANK_SELECT);
1998 int ret; 2006 int ret;
2007 unsigned long flags;
1999 2008
2000 spin_lock_irq(&smc->lock); 2009 spin_lock_irqsave(&smc->lock, flags);
2001 SMC_SELECT_BANK(3); 2010 SMC_SELECT_BANK(3);
2002 if (smc->cfg & CFG_MII_SELECT) 2011 if (smc->cfg & CFG_MII_SELECT)
2003 ret = mii_ethtool_sset(&smc->mii_if, ecmd); 2012 ret = mii_ethtool_sset(&smc->mii_if, ecmd);
2004 else 2013 else
2005 ret = smc_netdev_set_ecmd(dev, ecmd); 2014 ret = smc_netdev_set_ecmd(dev, ecmd);
2006 SMC_SELECT_BANK(saved_bank); 2015 SMC_SELECT_BANK(saved_bank);
2007 spin_unlock_irq(&smc->lock); 2016 spin_unlock_irqrestore(&smc->lock, flags);
2008 return ret; 2017 return ret;
2009} 2018}
2010 2019
@@ -2014,12 +2023,13 @@ static u32 smc_get_link(struct net_device *dev)
2014 unsigned int ioaddr = dev->base_addr; 2023 unsigned int ioaddr = dev->base_addr;
2015 u16 saved_bank = inw(ioaddr + BANK_SELECT); 2024 u16 saved_bank = inw(ioaddr + BANK_SELECT);
2016 u32 ret; 2025 u32 ret;
2026 unsigned long flags;
2017 2027
2018 spin_lock_irq(&smc->lock); 2028 spin_lock_irqsave(&smc->lock, flags);
2019 SMC_SELECT_BANK(3); 2029 SMC_SELECT_BANK(3);
2020 ret = smc_link_ok(dev); 2030 ret = smc_link_ok(dev);
2021 SMC_SELECT_BANK(saved_bank); 2031 SMC_SELECT_BANK(saved_bank);
2022 spin_unlock_irq(&smc->lock); 2032 spin_unlock_irqrestore(&smc->lock, flags);
2023 return ret; 2033 return ret;
2024} 2034}
2025 2035
@@ -2056,16 +2066,17 @@ static int smc_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
2056 int rc = 0; 2066 int rc = 0;
2057 u16 saved_bank; 2067 u16 saved_bank;
2058 unsigned int ioaddr = dev->base_addr; 2068 unsigned int ioaddr = dev->base_addr;
2069 unsigned long flags;
2059 2070
2060 if (!netif_running(dev)) 2071 if (!netif_running(dev))
2061 return -EINVAL; 2072 return -EINVAL;
2062 2073
2063 spin_lock_irq(&smc->lock); 2074 spin_lock_irqsave(&smc->lock, flags);
2064 saved_bank = inw(ioaddr + BANK_SELECT); 2075 saved_bank = inw(ioaddr + BANK_SELECT);
2065 SMC_SELECT_BANK(3); 2076 SMC_SELECT_BANK(3);
2066 rc = generic_mii_ioctl(&smc->mii_if, mii, cmd, NULL); 2077 rc = generic_mii_ioctl(&smc->mii_if, mii, cmd, NULL);
2067 SMC_SELECT_BANK(saved_bank); 2078 SMC_SELECT_BANK(saved_bank);
2068 spin_unlock_irq(&smc->lock); 2079 spin_unlock_irqrestore(&smc->lock, flags);
2069 return rc; 2080 return rc;
2070} 2081}
2071 2082
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index fc5938ba3d78..a527e37728cd 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -88,6 +88,11 @@ config LSI_ET1011C_PHY
88 ---help--- 88 ---help---
89 Supports the LSI ET1011C PHY. 89 Supports the LSI ET1011C PHY.
90 90
91config MICREL_PHY
92 tristate "Driver for Micrel PHYs"
93 ---help---
94 Supports the KSZ9021, VSC8201, KS8001 PHYs.
95
91config FIXED_PHY 96config FIXED_PHY
92 bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs" 97 bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs"
93 depends on PHYLIB=y 98 depends on PHYLIB=y
diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
index 1342585af381..13bebab65d02 100644
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
@@ -20,4 +20,5 @@ obj-$(CONFIG_MDIO_BITBANG) += mdio-bitbang.o
20obj-$(CONFIG_MDIO_GPIO) += mdio-gpio.o 20obj-$(CONFIG_MDIO_GPIO) += mdio-gpio.o
21obj-$(CONFIG_NATIONAL_PHY) += national.o 21obj-$(CONFIG_NATIONAL_PHY) += national.o
22obj-$(CONFIG_STE10XP) += ste10Xp.o 22obj-$(CONFIG_STE10XP) += ste10Xp.o
23obj-$(CONFIG_MICREL_PHY) += micrel.o
23obj-$(CONFIG_MDIO_OCTEON) += mdio-octeon.o 24obj-$(CONFIG_MDIO_OCTEON) += mdio-octeon.o
diff --git a/drivers/net/phy/mdio-octeon.c b/drivers/net/phy/mdio-octeon.c
index a872aea4ed74..f443d43edd80 100644
--- a/drivers/net/phy/mdio-octeon.c
+++ b/drivers/net/phy/mdio-octeon.c
@@ -88,6 +88,7 @@ static int octeon_mdiobus_write(struct mii_bus *bus, int phy_id,
88static int __init octeon_mdiobus_probe(struct platform_device *pdev) 88static int __init octeon_mdiobus_probe(struct platform_device *pdev)
89{ 89{
90 struct octeon_mdiobus *bus; 90 struct octeon_mdiobus *bus;
91 union cvmx_smix_en smi_en;
91 int i; 92 int i;
92 int err = -ENOENT; 93 int err = -ENOENT;
93 94
@@ -103,6 +104,10 @@ static int __init octeon_mdiobus_probe(struct platform_device *pdev)
103 if (!bus->mii_bus) 104 if (!bus->mii_bus)
104 goto err; 105 goto err;
105 106
107 smi_en.u64 = 0;
108 smi_en.s.en = 1;
109 cvmx_write_csr(CVMX_SMIX_EN(bus->unit), smi_en.u64);
110
106 /* 111 /*
107 * Standard Octeon evaluation boards don't support phy 112 * Standard Octeon evaluation boards don't support phy
108 * interrupts, we need to poll. 113 * interrupts, we need to poll.
@@ -133,17 +138,22 @@ err_register:
133 138
134err: 139err:
135 devm_kfree(&pdev->dev, bus); 140 devm_kfree(&pdev->dev, bus);
141 smi_en.u64 = 0;
142 cvmx_write_csr(CVMX_SMIX_EN(bus->unit), smi_en.u64);
136 return err; 143 return err;
137} 144}
138 145
139static int __exit octeon_mdiobus_remove(struct platform_device *pdev) 146static int __exit octeon_mdiobus_remove(struct platform_device *pdev)
140{ 147{
141 struct octeon_mdiobus *bus; 148 struct octeon_mdiobus *bus;
149 union cvmx_smix_en smi_en;
142 150
143 bus = dev_get_drvdata(&pdev->dev); 151 bus = dev_get_drvdata(&pdev->dev);
144 152
145 mdiobus_unregister(bus->mii_bus); 153 mdiobus_unregister(bus->mii_bus);
146 mdiobus_free(bus->mii_bus); 154 mdiobus_free(bus->mii_bus);
155 smi_en.u64 = 0;
156 cvmx_write_csr(CVMX_SMIX_EN(bus->unit), smi_en.u64);
147 return 0; 157 return 0;
148} 158}
149 159
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
new file mode 100644
index 000000000000..e67691dca4ab
--- /dev/null
+++ b/drivers/net/phy/micrel.c
@@ -0,0 +1,105 @@
1/*
2 * drivers/net/phy/micrel.c
3 *
4 * Driver for Micrel PHYs
5 *
6 * Author: David J. Choi
7 *
8 * Copyright (c) 2010 Micrel, Inc.
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 *
15 * Support : ksz9021 , vsc8201, ks8001
16 */
17
18#include <linux/kernel.h>
19#include <linux/module.h>
20#include <linux/phy.h>
21
22#define PHY_ID_KSZ9021 0x00221611
23#define PHY_ID_VSC8201 0x000FC413
24#define PHY_ID_KS8001 0x0022161A
25
26
27static int kszphy_config_init(struct phy_device *phydev)
28{
29 return 0;
30}
31
32
33static struct phy_driver ks8001_driver = {
34 .phy_id = PHY_ID_KS8001,
35 .name = "Micrel KS8001",
36 .phy_id_mask = 0x00fffff0,
37 .features = PHY_BASIC_FEATURES,
38 .flags = PHY_POLL,
39 .config_init = kszphy_config_init,
40 .config_aneg = genphy_config_aneg,
41 .read_status = genphy_read_status,
42 .driver = { .owner = THIS_MODULE,},
43};
44
45static struct phy_driver vsc8201_driver = {
46 .phy_id = PHY_ID_VSC8201,
47 .name = "Micrel VSC8201",
48 .phy_id_mask = 0x00fffff0,
49 .features = PHY_BASIC_FEATURES,
50 .flags = PHY_POLL,
51 .config_init = kszphy_config_init,
52 .config_aneg = genphy_config_aneg,
53 .read_status = genphy_read_status,
54 .driver = { .owner = THIS_MODULE,},
55};
56
57static struct phy_driver ksz9021_driver = {
58 .phy_id = PHY_ID_KSZ9021,
59 .phy_id_mask = 0x000fff10,
60 .name = "Micrel KSZ9021 Gigabit PHY",
61 .features = PHY_GBIT_FEATURES | SUPPORTED_Pause,
62 .flags = PHY_POLL,
63 .config_init = kszphy_config_init,
64 .config_aneg = genphy_config_aneg,
65 .read_status = genphy_read_status,
66 .driver = { .owner = THIS_MODULE, },
67};
68
69static int __init ksphy_init(void)
70{
71 int ret;
72
73 ret = phy_driver_register(&ks8001_driver);
74 if (ret)
75 goto err1;
76 ret = phy_driver_register(&vsc8201_driver);
77 if (ret)
78 goto err2;
79
80 ret = phy_driver_register(&ksz9021_driver);
81 if (ret)
82 goto err3;
83 return 0;
84
85err3:
86 phy_driver_unregister(&vsc8201_driver);
87err2:
88 phy_driver_unregister(&ks8001_driver);
89err1:
90 return ret;
91}
92
93static void __exit ksphy_exit(void)
94{
95 phy_driver_unregister(&ks8001_driver);
96 phy_driver_unregister(&vsc8201_driver);
97 phy_driver_unregister(&ksz9021_driver);
98}
99
100module_init(ksphy_init);
101module_exit(ksphy_exit);
102
103MODULE_DESCRIPTION("Micrel PHY driver");
104MODULE_AUTHOR("David J. Choi");
105MODULE_LICENSE("GPL");
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
index 6e281bc825e5..8518a2e58e53 100644
--- a/drivers/net/ppp_generic.c
+++ b/drivers/net/ppp_generic.c
@@ -405,6 +405,7 @@ static ssize_t ppp_read(struct file *file, char __user *buf,
405 DECLARE_WAITQUEUE(wait, current); 405 DECLARE_WAITQUEUE(wait, current);
406 ssize_t ret; 406 ssize_t ret;
407 struct sk_buff *skb = NULL; 407 struct sk_buff *skb = NULL;
408 struct iovec iov;
408 409
409 ret = count; 410 ret = count;
410 411
@@ -448,7 +449,9 @@ static ssize_t ppp_read(struct file *file, char __user *buf,
448 if (skb->len > count) 449 if (skb->len > count)
449 goto outf; 450 goto outf;
450 ret = -EFAULT; 451 ret = -EFAULT;
451 if (copy_to_user(buf, skb->data, skb->len)) 452 iov.iov_base = buf;
453 iov.iov_len = count;
454 if (skb_copy_datagram_iovec(skb, 0, &iov, skb->len))
452 goto outf; 455 goto outf;
453 ret = skb->len; 456 ret = skb->len;
454 457
@@ -1567,13 +1570,22 @@ ppp_input(struct ppp_channel *chan, struct sk_buff *skb)
1567 struct channel *pch = chan->ppp; 1570 struct channel *pch = chan->ppp;
1568 int proto; 1571 int proto;
1569 1572
1570 if (!pch || skb->len == 0) { 1573 if (!pch) {
1571 kfree_skb(skb); 1574 kfree_skb(skb);
1572 return; 1575 return;
1573 } 1576 }
1574 1577
1575 proto = PPP_PROTO(skb);
1576 read_lock_bh(&pch->upl); 1578 read_lock_bh(&pch->upl);
1579 if (!pskb_may_pull(skb, 2)) {
1580 kfree_skb(skb);
1581 if (pch->ppp) {
1582 ++pch->ppp->dev->stats.rx_length_errors;
1583 ppp_receive_error(pch->ppp);
1584 }
1585 goto done;
1586 }
1587
1588 proto = PPP_PROTO(skb);
1577 if (!pch->ppp || proto >= 0xc000 || proto == PPP_CCPFRAG) { 1589 if (!pch->ppp || proto >= 0xc000 || proto == PPP_CCPFRAG) {
1578 /* put it on the channel queue */ 1590 /* put it on the channel queue */
1579 skb_queue_tail(&pch->file.rq, skb); 1591 skb_queue_tail(&pch->file.rq, skb);
@@ -1585,6 +1597,8 @@ ppp_input(struct ppp_channel *chan, struct sk_buff *skb)
1585 } else { 1597 } else {
1586 ppp_do_recv(pch->ppp, skb, pch); 1598 ppp_do_recv(pch->ppp, skb, pch);
1587 } 1599 }
1600
1601done:
1588 read_unlock_bh(&pch->upl); 1602 read_unlock_bh(&pch->upl);
1589} 1603}
1590 1604
@@ -1617,7 +1631,8 @@ ppp_input_error(struct ppp_channel *chan, int code)
1617static void 1631static void
1618ppp_receive_frame(struct ppp *ppp, struct sk_buff *skb, struct channel *pch) 1632ppp_receive_frame(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
1619{ 1633{
1620 if (pskb_may_pull(skb, 2)) { 1634 /* note: a 0-length skb is used as an error indication */
1635 if (skb->len > 0) {
1621#ifdef CONFIG_PPP_MULTILINK 1636#ifdef CONFIG_PPP_MULTILINK
1622 /* XXX do channel-level decompression here */ 1637 /* XXX do channel-level decompression here */
1623 if (PPP_PROTO(skb) == PPP_MP) 1638 if (PPP_PROTO(skb) == PPP_MP)
@@ -1625,15 +1640,10 @@ ppp_receive_frame(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
1625 else 1640 else
1626#endif /* CONFIG_PPP_MULTILINK */ 1641#endif /* CONFIG_PPP_MULTILINK */
1627 ppp_receive_nonmp_frame(ppp, skb); 1642 ppp_receive_nonmp_frame(ppp, skb);
1628 return; 1643 } else {
1644 kfree_skb(skb);
1645 ppp_receive_error(ppp);
1629 } 1646 }
1630
1631 if (skb->len > 0)
1632 /* note: a 0-length skb is used as an error indication */
1633 ++ppp->dev->stats.rx_length_errors;
1634
1635 kfree_skb(skb);
1636 ppp_receive_error(ppp);
1637} 1647}
1638 1648
1639static void 1649static void
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index dbb1f5a1824c..dd8106ff35aa 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -1042,14 +1042,14 @@ static void rtl8169_vlan_rx_register(struct net_device *dev,
1042} 1042}
1043 1043
1044static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc, 1044static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc,
1045 struct sk_buff *skb) 1045 struct sk_buff *skb, int polling)
1046{ 1046{
1047 u32 opts2 = le32_to_cpu(desc->opts2); 1047 u32 opts2 = le32_to_cpu(desc->opts2);
1048 struct vlan_group *vlgrp = tp->vlgrp; 1048 struct vlan_group *vlgrp = tp->vlgrp;
1049 int ret; 1049 int ret;
1050 1050
1051 if (vlgrp && (opts2 & RxVlanTag)) { 1051 if (vlgrp && (opts2 & RxVlanTag)) {
1052 vlan_hwaccel_receive_skb(skb, vlgrp, swab16(opts2 & 0xffff)); 1052 __vlan_hwaccel_rx(skb, vlgrp, swab16(opts2 & 0xffff), polling);
1053 ret = 0; 1053 ret = 0;
1054 } else 1054 } else
1055 ret = -1; 1055 ret = -1;
@@ -1066,7 +1066,7 @@ static inline u32 rtl8169_tx_vlan_tag(struct rtl8169_private *tp,
1066} 1066}
1067 1067
1068static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc, 1068static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc,
1069 struct sk_buff *skb) 1069 struct sk_buff *skb, int polling)
1070{ 1070{
1071 return -1; 1071 return -1;
1072} 1072}
@@ -2759,6 +2759,7 @@ static void rtl8169_release_board(struct pci_dev *pdev, struct net_device *dev,
2759{ 2759{
2760 iounmap(ioaddr); 2760 iounmap(ioaddr);
2761 pci_release_regions(pdev); 2761 pci_release_regions(pdev);
2762 pci_clear_mwi(pdev);
2762 pci_disable_device(pdev); 2763 pci_disable_device(pdev);
2763 free_netdev(dev); 2764 free_netdev(dev);
2764} 2765}
@@ -2825,8 +2826,13 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)
2825 spin_lock_irq(&tp->lock); 2826 spin_lock_irq(&tp->lock);
2826 2827
2827 RTL_W8(Cfg9346, Cfg9346_Unlock); 2828 RTL_W8(Cfg9346, Cfg9346_Unlock);
2829
2828 RTL_W32(MAC4, high); 2830 RTL_W32(MAC4, high);
2831 RTL_R32(MAC4);
2832
2829 RTL_W32(MAC0, low); 2833 RTL_W32(MAC0, low);
2834 RTL_R32(MAC0);
2835
2830 RTL_W8(Cfg9346, Cfg9346_Lock); 2836 RTL_W8(Cfg9346, Cfg9346_Lock);
2831 2837
2832 spin_unlock_irq(&tp->lock); 2838 spin_unlock_irq(&tp->lock);
@@ -3014,9 +3020,8 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3014 goto err_out_free_dev_1; 3020 goto err_out_free_dev_1;
3015 } 3021 }
3016 3022
3017 rc = pci_set_mwi(pdev); 3023 if (pci_set_mwi(pdev) < 0)
3018 if (rc < 0) 3024 netif_info(tp, probe, dev, "Mem-Wr-Inval unavailable\n");
3019 goto err_out_disable_2;
3020 3025
3021 /* make sure PCI base addr 1 is MMIO */ 3026 /* make sure PCI base addr 1 is MMIO */
3022 if (!(pci_resource_flags(pdev, region) & IORESOURCE_MEM)) { 3027 if (!(pci_resource_flags(pdev, region) & IORESOURCE_MEM)) {
@@ -3024,7 +3029,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3024 "region #%d not an MMIO resource, aborting\n", 3029 "region #%d not an MMIO resource, aborting\n",
3025 region); 3030 region);
3026 rc = -ENODEV; 3031 rc = -ENODEV;
3027 goto err_out_mwi_3; 3032 goto err_out_mwi_2;
3028 } 3033 }
3029 3034
3030 /* check for weird/broken PCI region reporting */ 3035 /* check for weird/broken PCI region reporting */
@@ -3032,13 +3037,13 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3032 netif_err(tp, probe, dev, 3037 netif_err(tp, probe, dev,
3033 "Invalid PCI region size(s), aborting\n"); 3038 "Invalid PCI region size(s), aborting\n");
3034 rc = -ENODEV; 3039 rc = -ENODEV;
3035 goto err_out_mwi_3; 3040 goto err_out_mwi_2;
3036 } 3041 }
3037 3042
3038 rc = pci_request_regions(pdev, MODULENAME); 3043 rc = pci_request_regions(pdev, MODULENAME);
3039 if (rc < 0) { 3044 if (rc < 0) {
3040 netif_err(tp, probe, dev, "could not request regions\n"); 3045 netif_err(tp, probe, dev, "could not request regions\n");
3041 goto err_out_mwi_3; 3046 goto err_out_mwi_2;
3042 } 3047 }
3043 3048
3044 tp->cp_cmd = PCIMulRW | RxChkSum; 3049 tp->cp_cmd = PCIMulRW | RxChkSum;
@@ -3051,7 +3056,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3051 rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); 3056 rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
3052 if (rc < 0) { 3057 if (rc < 0) {
3053 netif_err(tp, probe, dev, "DMA configuration failed\n"); 3058 netif_err(tp, probe, dev, "DMA configuration failed\n");
3054 goto err_out_free_res_4; 3059 goto err_out_free_res_3;
3055 } 3060 }
3056 } 3061 }
3057 3062
@@ -3060,7 +3065,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3060 if (!ioaddr) { 3065 if (!ioaddr) {
3061 netif_err(tp, probe, dev, "cannot remap MMIO, aborting\n"); 3066 netif_err(tp, probe, dev, "cannot remap MMIO, aborting\n");
3062 rc = -EIO; 3067 rc = -EIO;
3063 goto err_out_free_res_4; 3068 goto err_out_free_res_3;
3064 } 3069 }
3065 3070
3066 tp->pcie_cap = pci_find_capability(pdev, PCI_CAP_ID_EXP); 3071 tp->pcie_cap = pci_find_capability(pdev, PCI_CAP_ID_EXP);
@@ -3102,7 +3107,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3102 if (i == ARRAY_SIZE(rtl_chip_info)) { 3107 if (i == ARRAY_SIZE(rtl_chip_info)) {
3103 dev_err(&pdev->dev, 3108 dev_err(&pdev->dev,
3104 "driver bug, MAC version not found in rtl_chip_info\n"); 3109 "driver bug, MAC version not found in rtl_chip_info\n");
3105 goto err_out_msi_5; 3110 goto err_out_msi_4;
3106 } 3111 }
3107 tp->chipset = i; 3112 tp->chipset = i;
3108 3113
@@ -3167,7 +3172,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3167 3172
3168 rc = register_netdev(dev); 3173 rc = register_netdev(dev);
3169 if (rc < 0) 3174 if (rc < 0)
3170 goto err_out_msi_5; 3175 goto err_out_msi_4;
3171 3176
3172 pci_set_drvdata(pdev, dev); 3177 pci_set_drvdata(pdev, dev);
3173 3178
@@ -3190,14 +3195,13 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
3190out: 3195out:
3191 return rc; 3196 return rc;
3192 3197
3193err_out_msi_5: 3198err_out_msi_4:
3194 rtl_disable_msi(pdev, tp); 3199 rtl_disable_msi(pdev, tp);
3195 iounmap(ioaddr); 3200 iounmap(ioaddr);
3196err_out_free_res_4: 3201err_out_free_res_3:
3197 pci_release_regions(pdev); 3202 pci_release_regions(pdev);
3198err_out_mwi_3: 3203err_out_mwi_2:
3199 pci_clear_mwi(pdev); 3204 pci_clear_mwi(pdev);
3200err_out_disable_2:
3201 pci_disable_device(pdev); 3205 pci_disable_device(pdev);
3202err_out_free_dev_1: 3206err_out_free_dev_1:
3203 free_netdev(dev); 3207 free_netdev(dev);
@@ -4441,12 +4445,20 @@ out:
4441 return done; 4445 return done;
4442} 4446}
4443 4447
4448/*
4449 * Warning : rtl8169_rx_interrupt() might be called :
4450 * 1) from NAPI (softirq) context
4451 * (polling = 1 : we should call netif_receive_skb())
4452 * 2) from process context (rtl8169_reset_task())
4453 * (polling = 0 : we must call netif_rx() instead)
4454 */
4444static int rtl8169_rx_interrupt(struct net_device *dev, 4455static int rtl8169_rx_interrupt(struct net_device *dev,
4445 struct rtl8169_private *tp, 4456 struct rtl8169_private *tp,
4446 void __iomem *ioaddr, u32 budget) 4457 void __iomem *ioaddr, u32 budget)
4447{ 4458{
4448 unsigned int cur_rx, rx_left; 4459 unsigned int cur_rx, rx_left;
4449 unsigned int delta, count; 4460 unsigned int delta, count;
4461 int polling = (budget != ~(u32)0) ? 1 : 0;
4450 4462
4451 cur_rx = tp->cur_rx; 4463 cur_rx = tp->cur_rx;
4452 rx_left = NUM_RX_DESC + tp->dirty_rx - cur_rx; 4464 rx_left = NUM_RX_DESC + tp->dirty_rx - cur_rx;
@@ -4508,8 +4520,12 @@ static int rtl8169_rx_interrupt(struct net_device *dev,
4508 skb_put(skb, pkt_size); 4520 skb_put(skb, pkt_size);
4509 skb->protocol = eth_type_trans(skb, dev); 4521 skb->protocol = eth_type_trans(skb, dev);
4510 4522
4511 if (rtl8169_rx_vlan_skb(tp, desc, skb) < 0) 4523 if (rtl8169_rx_vlan_skb(tp, desc, skb, polling) < 0) {
4512 netif_receive_skb(skb); 4524 if (likely(polling))
4525 netif_receive_skb(skb);
4526 else
4527 netif_rx(skb);
4528 }
4513 4529
4514 dev->stats.rx_bytes += pkt_size; 4530 dev->stats.rx_bytes += pkt_size;
4515 dev->stats.rx_packets++; 4531 dev->stats.rx_packets++;
diff --git a/drivers/net/sb1250-mac.c b/drivers/net/sb1250-mac.c
index 9944e5d662c0..04efc0c1bda9 100644
--- a/drivers/net/sb1250-mac.c
+++ b/drivers/net/sb1250-mac.c
@@ -2353,17 +2353,36 @@ static int sbmac_init(struct platform_device *pldev, long long base)
2353 2353
2354 sc->mii_bus = mdiobus_alloc(); 2354 sc->mii_bus = mdiobus_alloc();
2355 if (sc->mii_bus == NULL) { 2355 if (sc->mii_bus == NULL) {
2356 sbmac_uninitctx(sc); 2356 err = -ENOMEM;
2357 return -ENOMEM; 2357 goto uninit_ctx;
2358 } 2358 }
2359 2359
2360 sc->mii_bus->name = sbmac_mdio_string;
2361 snprintf(sc->mii_bus->id, MII_BUS_ID_SIZE, "%x", idx);
2362 sc->mii_bus->priv = sc;
2363 sc->mii_bus->read = sbmac_mii_read;
2364 sc->mii_bus->write = sbmac_mii_write;
2365 sc->mii_bus->irq = sc->phy_irq;
2366 for (i = 0; i < PHY_MAX_ADDR; ++i)
2367 sc->mii_bus->irq[i] = SBMAC_PHY_INT;
2368
2369 sc->mii_bus->parent = &pldev->dev;
2370 /*
2371 * Probe PHY address
2372 */
2373 err = mdiobus_register(sc->mii_bus);
2374 if (err) {
2375 printk(KERN_ERR "%s: unable to register MDIO bus\n",
2376 dev->name);
2377 goto free_mdio;
2378 }
2379 dev_set_drvdata(&pldev->dev, sc->mii_bus);
2380
2360 err = register_netdev(dev); 2381 err = register_netdev(dev);
2361 if (err) { 2382 if (err) {
2362 printk(KERN_ERR "%s.%d: unable to register netdev\n", 2383 printk(KERN_ERR "%s.%d: unable to register netdev\n",
2363 sbmac_string, idx); 2384 sbmac_string, idx);
2364 mdiobus_free(sc->mii_bus); 2385 goto unreg_mdio;
2365 sbmac_uninitctx(sc);
2366 return err;
2367 } 2386 }
2368 2387
2369 pr_info("%s.%d: registered as %s\n", sbmac_string, idx, dev->name); 2388 pr_info("%s.%d: registered as %s\n", sbmac_string, idx, dev->name);
@@ -2379,19 +2398,15 @@ static int sbmac_init(struct platform_device *pldev, long long base)
2379 pr_info("%s: SiByte Ethernet at 0x%08Lx, address: %pM\n", 2398 pr_info("%s: SiByte Ethernet at 0x%08Lx, address: %pM\n",
2380 dev->name, base, eaddr); 2399 dev->name, base, eaddr);
2381 2400
2382 sc->mii_bus->name = sbmac_mdio_string;
2383 snprintf(sc->mii_bus->id, MII_BUS_ID_SIZE, "%x", idx);
2384 sc->mii_bus->priv = sc;
2385 sc->mii_bus->read = sbmac_mii_read;
2386 sc->mii_bus->write = sbmac_mii_write;
2387 sc->mii_bus->irq = sc->phy_irq;
2388 for (i = 0; i < PHY_MAX_ADDR; ++i)
2389 sc->mii_bus->irq[i] = SBMAC_PHY_INT;
2390
2391 sc->mii_bus->parent = &pldev->dev;
2392 dev_set_drvdata(&pldev->dev, sc->mii_bus);
2393
2394 return 0; 2401 return 0;
2402unreg_mdio:
2403 mdiobus_unregister(sc->mii_bus);
2404 dev_set_drvdata(&pldev->dev, NULL);
2405free_mdio:
2406 mdiobus_free(sc->mii_bus);
2407uninit_ctx:
2408 sbmac_uninitctx(sc);
2409 return err;
2395} 2410}
2396 2411
2397 2412
@@ -2417,16 +2432,6 @@ static int sbmac_open(struct net_device *dev)
2417 goto out_err; 2432 goto out_err;
2418 } 2433 }
2419 2434
2420 /*
2421 * Probe PHY address
2422 */
2423 err = mdiobus_register(sc->mii_bus);
2424 if (err) {
2425 printk(KERN_ERR "%s: unable to register MDIO bus\n",
2426 dev->name);
2427 goto out_unirq;
2428 }
2429
2430 sc->sbm_speed = sbmac_speed_none; 2435 sc->sbm_speed = sbmac_speed_none;
2431 sc->sbm_duplex = sbmac_duplex_none; 2436 sc->sbm_duplex = sbmac_duplex_none;
2432 sc->sbm_fc = sbmac_fc_none; 2437 sc->sbm_fc = sbmac_fc_none;
@@ -2457,11 +2462,7 @@ static int sbmac_open(struct net_device *dev)
2457 return 0; 2462 return 0;
2458 2463
2459out_unregister: 2464out_unregister:
2460 mdiobus_unregister(sc->mii_bus);
2461
2462out_unirq:
2463 free_irq(dev->irq, dev); 2465 free_irq(dev->irq, dev);
2464
2465out_err: 2466out_err:
2466 return err; 2467 return err;
2467} 2468}
@@ -2650,9 +2651,6 @@ static int sbmac_close(struct net_device *dev)
2650 2651
2651 phy_disconnect(sc->phy_dev); 2652 phy_disconnect(sc->phy_dev);
2652 sc->phy_dev = NULL; 2653 sc->phy_dev = NULL;
2653
2654 mdiobus_unregister(sc->mii_bus);
2655
2656 free_irq(dev->irq, dev); 2654 free_irq(dev->irq, dev);
2657 2655
2658 sbdma_emptyring(&(sc->sbm_txdma)); 2656 sbdma_emptyring(&(sc->sbm_txdma));
@@ -2760,6 +2758,7 @@ static int __exit sbmac_remove(struct platform_device *pldev)
2760 2758
2761 unregister_netdev(dev); 2759 unregister_netdev(dev);
2762 sbmac_uninitctx(sc); 2760 sbmac_uninitctx(sc);
2761 mdiobus_unregister(sc->mii_bus);
2763 mdiobus_free(sc->mii_bus); 2762 mdiobus_free(sc->mii_bus);
2764 iounmap(sc->sbm_base); 2763 iounmap(sc->sbm_base);
2765 free_netdev(dev); 2764 free_netdev(dev);
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c
index 6486657c47b8..649a264d6a81 100644
--- a/drivers/net/sfc/efx.c
+++ b/drivers/net/sfc/efx.c
@@ -1861,6 +1861,7 @@ out:
1861 } 1861 }
1862 1862
1863 if (disabled) { 1863 if (disabled) {
1864 dev_close(efx->net_dev);
1864 EFX_ERR(efx, "has been disabled\n"); 1865 EFX_ERR(efx, "has been disabled\n");
1865 efx->state = STATE_DISABLED; 1866 efx->state = STATE_DISABLED;
1866 } else { 1867 } else {
@@ -1884,8 +1885,7 @@ static void efx_reset_work(struct work_struct *data)
1884 } 1885 }
1885 1886
1886 rtnl_lock(); 1887 rtnl_lock();
1887 if (efx_reset(efx, efx->reset_pending)) 1888 (void)efx_reset(efx, efx->reset_pending);
1888 dev_close(efx->net_dev);
1889 rtnl_unlock(); 1889 rtnl_unlock();
1890} 1890}
1891 1891
diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c
index d294d66fd600..08278e7302b3 100644
--- a/drivers/net/sfc/falcon.c
+++ b/drivers/net/sfc/falcon.c
@@ -1320,7 +1320,9 @@ static int falcon_probe_nvconfig(struct efx_nic *efx)
1320 1320
1321 EFX_LOG(efx, "PHY is %d phy_id %d\n", efx->phy_type, efx->mdio.prtad); 1321 EFX_LOG(efx, "PHY is %d phy_id %d\n", efx->phy_type, efx->mdio.prtad);
1322 1322
1323 falcon_probe_board(efx, board_rev); 1323 rc = falcon_probe_board(efx, board_rev);
1324 if (rc)
1325 goto fail2;
1324 1326
1325 kfree(nvconfig); 1327 kfree(nvconfig);
1326 return 0; 1328 return 0;
diff --git a/drivers/net/sfc/falcon_boards.c b/drivers/net/sfc/falcon_boards.c
index 5712fddd72f2..c7a933a3292e 100644
--- a/drivers/net/sfc/falcon_boards.c
+++ b/drivers/net/sfc/falcon_boards.c
@@ -728,15 +728,7 @@ static const struct falcon_board_type board_types[] = {
728 }, 728 },
729}; 729};
730 730
731static const struct falcon_board_type falcon_dummy_board = { 731int falcon_probe_board(struct efx_nic *efx, u16 revision_info)
732 .init = efx_port_dummy_op_int,
733 .init_phy = efx_port_dummy_op_void,
734 .fini = efx_port_dummy_op_void,
735 .set_id_led = efx_port_dummy_op_set_id_led,
736 .monitor = efx_port_dummy_op_int,
737};
738
739void falcon_probe_board(struct efx_nic *efx, u16 revision_info)
740{ 732{
741 struct falcon_board *board = falcon_board(efx); 733 struct falcon_board *board = falcon_board(efx);
742 u8 type_id = FALCON_BOARD_TYPE(revision_info); 734 u8 type_id = FALCON_BOARD_TYPE(revision_info);
@@ -754,8 +746,9 @@ void falcon_probe_board(struct efx_nic *efx, u16 revision_info)
754 (efx->pci_dev->subsystem_vendor == EFX_VENDID_SFC) 746 (efx->pci_dev->subsystem_vendor == EFX_VENDID_SFC)
755 ? board->type->ref_model : board->type->gen_type, 747 ? board->type->ref_model : board->type->gen_type,
756 'A' + board->major, board->minor); 748 'A' + board->major, board->minor);
749 return 0;
757 } else { 750 } else {
758 EFX_ERR(efx, "unknown board type %d\n", type_id); 751 EFX_ERR(efx, "unknown board type %d\n", type_id);
759 board->type = &falcon_dummy_board; 752 return -ENODEV;
760 } 753 }
761} 754}
diff --git a/drivers/net/sfc/nic.h b/drivers/net/sfc/nic.h
index 9351c0331a47..3166bafdfbef 100644
--- a/drivers/net/sfc/nic.h
+++ b/drivers/net/sfc/nic.h
@@ -156,7 +156,7 @@ extern struct efx_nic_type siena_a0_nic_type;
156 ************************************************************************** 156 **************************************************************************
157 */ 157 */
158 158
159extern void falcon_probe_board(struct efx_nic *efx, u16 revision_info); 159extern int falcon_probe_board(struct efx_nic *efx, u16 revision_info);
160 160
161/* TX data path */ 161/* TX data path */
162extern int efx_nic_probe_tx(struct efx_tx_queue *tx_queue); 162extern int efx_nic_probe_tx(struct efx_tx_queue *tx_queue);
diff --git a/drivers/net/sfc/siena.c b/drivers/net/sfc/siena.c
index 38dcc42c4f79..e0c46f59d1f8 100644
--- a/drivers/net/sfc/siena.c
+++ b/drivers/net/sfc/siena.c
@@ -456,8 +456,17 @@ static int siena_try_update_nic_stats(struct efx_nic *efx)
456 456
457static void siena_update_nic_stats(struct efx_nic *efx) 457static void siena_update_nic_stats(struct efx_nic *efx)
458{ 458{
459 while (siena_try_update_nic_stats(efx) == -EAGAIN) 459 int retry;
460 cpu_relax(); 460
461 /* If we're unlucky enough to read statistics wduring the DMA, wait
462 * up to 10ms for it to finish (typically takes <500us) */
463 for (retry = 0; retry < 100; ++retry) {
464 if (siena_try_update_nic_stats(efx) == 0)
465 return;
466 udelay(100);
467 }
468
469 /* Use the old values instead */
461} 470}
462 471
463static void siena_start_nic_stats(struct efx_nic *efx) 472static void siena_start_nic_stats(struct efx_nic *efx)
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 22cf1c446de3..ecc41cffb470 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -8633,6 +8633,7 @@ static int tg3_test_msi(struct tg3 *tp)
8633 pci_disable_msi(tp->pdev); 8633 pci_disable_msi(tp->pdev);
8634 8634
8635 tp->tg3_flags2 &= ~TG3_FLG2_USING_MSI; 8635 tp->tg3_flags2 &= ~TG3_FLG2_USING_MSI;
8636 tp->napi[0].irq_vec = tp->pdev->irq;
8636 8637
8637 err = tg3_request_irq(tp, 0); 8638 err = tg3_request_irq(tp, 0);
8638 if (err) 8639 if (err)
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig
index ba56ce4382d9..d7b7018a1de1 100644
--- a/drivers/net/usb/Kconfig
+++ b/drivers/net/usb/Kconfig
@@ -385,4 +385,25 @@ config USB_CDC_PHONET
385 cellular modem, as found on most Nokia handsets with the 385 cellular modem, as found on most Nokia handsets with the
386 "PC suite" USB profile. 386 "PC suite" USB profile.
387 387
388config USB_IPHETH
389 tristate "Apple iPhone USB Ethernet driver"
390 default n
391 ---help---
392 Module used to share Internet connection (tethering) from your
393 iPhone (Original, 3G and 3GS) to your system.
394 Note that you need userspace libraries and programs that are needed
395 to pair your device with your system and that understand the iPhone
396 protocol.
397
398 For more information: http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver
399
400config USB_SIERRA_NET
401 tristate "USB-to-WWAN Driver for Sierra Wireless modems"
402 depends on USB_USBNET
403 help
404 Choose this option if you have a Sierra Wireless USB-to-WWAN device.
405
406 To compile this driver as a module, choose M here: the
407 module will be called sierra_net.
408
388endmenu 409endmenu
diff --git a/drivers/net/usb/Makefile b/drivers/net/usb/Makefile
index 82ea62955b56..b13a279663ba 100644
--- a/drivers/net/usb/Makefile
+++ b/drivers/net/usb/Makefile
@@ -23,4 +23,6 @@ obj-$(CONFIG_USB_NET_MCS7830) += mcs7830.o
23obj-$(CONFIG_USB_USBNET) += usbnet.o 23obj-$(CONFIG_USB_USBNET) += usbnet.o
24obj-$(CONFIG_USB_NET_INT51X1) += int51x1.o 24obj-$(CONFIG_USB_NET_INT51X1) += int51x1.o
25obj-$(CONFIG_USB_CDC_PHONET) += cdc-phonet.o 25obj-$(CONFIG_USB_CDC_PHONET) += cdc-phonet.o
26obj-$(CONFIG_USB_IPHETH) += ipheth.o
27obj-$(CONFIG_USB_SIERRA_NET) += sierra_net.o
26 28
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index c8cdb7f30adc..3547cf13d219 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -431,6 +431,7 @@ static const struct driver_info mbm_info = {
431 .bind = cdc_bind, 431 .bind = cdc_bind,
432 .unbind = usbnet_cdc_unbind, 432 .unbind = usbnet_cdc_unbind,
433 .status = cdc_status, 433 .status = cdc_status,
434 .manage_power = cdc_manage_power,
434}; 435};
435 436
436/*-------------------------------------------------------------------------*/ 437/*-------------------------------------------------------------------------*/
diff --git a/drivers/net/usb/dm9601.c b/drivers/net/usb/dm9601.c
index 04b281002a76..5dfed9297b22 100644
--- a/drivers/net/usb/dm9601.c
+++ b/drivers/net/usb/dm9601.c
@@ -240,7 +240,7 @@ static int dm_write_shared_word(struct usbnet *dev, int phy, u8 reg, __le16 valu
240 goto out; 240 goto out;
241 241
242 dm_write_reg(dev, DM_SHARED_ADDR, phy ? (reg | 0x40) : reg); 242 dm_write_reg(dev, DM_SHARED_ADDR, phy ? (reg | 0x40) : reg);
243 dm_write_reg(dev, DM_SHARED_CTRL, phy ? 0x1c : 0x14); 243 dm_write_reg(dev, DM_SHARED_CTRL, phy ? 0x1a : 0x12);
244 244
245 for (i = 0; i < DM_TIMEOUT; i++) { 245 for (i = 0; i < DM_TIMEOUT; i++) {
246 u8 tmp; 246 u8 tmp;
diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c
new file mode 100644
index 000000000000..418825d26f90
--- /dev/null
+++ b/drivers/net/usb/ipheth.c
@@ -0,0 +1,569 @@
1/*
2 * ipheth.c - Apple iPhone USB Ethernet driver
3 *
4 * Copyright (c) 2009 Diego Giagio <diego@giagio.com>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. Neither the name of GIAGIO.COM nor the names of its contributors
16 * may be used to endorse or promote products derived from this software
17 * without specific prior written permission.
18 *
19 * Alternatively, provided that this notice is retained in full, this
20 * software may be distributed under the terms of the GNU General
21 * Public License ("GPL") version 2, in which case the provisions of the
22 * GPL apply INSTEAD OF those given above.
23 *
24 * The provided data structures and external interfaces from this code
25 * are not restricted to be used by modules with a GPL compatible license.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
38 * DAMAGE.
39 *
40 *
41 * Attention: iPhone device must be paired, otherwise it won't respond to our
42 * driver. For more info: http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver
43 *
44 */
45
46#include <linux/kernel.h>
47#include <linux/errno.h>
48#include <linux/init.h>
49#include <linux/slab.h>
50#include <linux/module.h>
51#include <linux/netdevice.h>
52#include <linux/etherdevice.h>
53#include <linux/ethtool.h>
54#include <linux/usb.h>
55#include <linux/workqueue.h>
56
57#define USB_VENDOR_APPLE 0x05ac
58#define USB_PRODUCT_IPHONE 0x1290
59#define USB_PRODUCT_IPHONE_3G 0x1292
60#define USB_PRODUCT_IPHONE_3GS 0x1294
61
62#define IPHETH_USBINTF_CLASS 255
63#define IPHETH_USBINTF_SUBCLASS 253
64#define IPHETH_USBINTF_PROTO 1
65
66#define IPHETH_BUF_SIZE 1516
67#define IPHETH_TX_TIMEOUT (5 * HZ)
68
69#define IPHETH_INTFNUM 2
70#define IPHETH_ALT_INTFNUM 1
71
72#define IPHETH_CTRL_ENDP 0x00
73#define IPHETH_CTRL_BUF_SIZE 0x40
74#define IPHETH_CTRL_TIMEOUT (5 * HZ)
75
76#define IPHETH_CMD_GET_MACADDR 0x00
77#define IPHETH_CMD_CARRIER_CHECK 0x45
78
79#define IPHETH_CARRIER_CHECK_TIMEOUT round_jiffies_relative(1 * HZ)
80#define IPHETH_CARRIER_ON 0x04
81
82static struct usb_device_id ipheth_table[] = {
83 { USB_DEVICE_AND_INTERFACE_INFO(
84 USB_VENDOR_APPLE, USB_PRODUCT_IPHONE,
85 IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
86 IPHETH_USBINTF_PROTO) },
87 { USB_DEVICE_AND_INTERFACE_INFO(
88 USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_3G,
89 IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
90 IPHETH_USBINTF_PROTO) },
91 { USB_DEVICE_AND_INTERFACE_INFO(
92 USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_3GS,
93 IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
94 IPHETH_USBINTF_PROTO) },
95 { }
96};
97MODULE_DEVICE_TABLE(usb, ipheth_table);
98
99struct ipheth_device {
100 struct usb_device *udev;
101 struct usb_interface *intf;
102 struct net_device *net;
103 struct sk_buff *tx_skb;
104 struct urb *tx_urb;
105 struct urb *rx_urb;
106 unsigned char *tx_buf;
107 unsigned char *rx_buf;
108 unsigned char *ctrl_buf;
109 u8 bulk_in;
110 u8 bulk_out;
111 struct delayed_work carrier_work;
112};
113
114static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags);
115
116static int ipheth_alloc_urbs(struct ipheth_device *iphone)
117{
118 struct urb *tx_urb = NULL;
119 struct urb *rx_urb = NULL;
120 u8 *tx_buf = NULL;
121 u8 *rx_buf = NULL;
122
123 tx_urb = usb_alloc_urb(0, GFP_KERNEL);
124 if (tx_urb == NULL)
125 goto error_nomem;
126
127 rx_urb = usb_alloc_urb(0, GFP_KERNEL);
128 if (rx_urb == NULL)
129 goto free_tx_urb;
130
131 tx_buf = usb_buffer_alloc(iphone->udev,
132 IPHETH_BUF_SIZE,
133 GFP_KERNEL,
134 &tx_urb->transfer_dma);
135 if (tx_buf == NULL)
136 goto free_rx_urb;
137
138 rx_buf = usb_buffer_alloc(iphone->udev,
139 IPHETH_BUF_SIZE,
140 GFP_KERNEL,
141 &rx_urb->transfer_dma);
142 if (rx_buf == NULL)
143 goto free_tx_buf;
144
145
146 iphone->tx_urb = tx_urb;
147 iphone->rx_urb = rx_urb;
148 iphone->tx_buf = tx_buf;
149 iphone->rx_buf = rx_buf;
150 return 0;
151
152free_tx_buf:
153 usb_buffer_free(iphone->udev, IPHETH_BUF_SIZE, tx_buf,
154 tx_urb->transfer_dma);
155free_rx_urb:
156 usb_free_urb(rx_urb);
157free_tx_urb:
158 usb_free_urb(tx_urb);
159error_nomem:
160 return -ENOMEM;
161}
162
163static void ipheth_free_urbs(struct ipheth_device *iphone)
164{
165 usb_buffer_free(iphone->udev, IPHETH_BUF_SIZE, iphone->rx_buf,
166 iphone->rx_urb->transfer_dma);
167 usb_buffer_free(iphone->udev, IPHETH_BUF_SIZE, iphone->tx_buf,
168 iphone->tx_urb->transfer_dma);
169 usb_free_urb(iphone->rx_urb);
170 usb_free_urb(iphone->tx_urb);
171}
172
173static void ipheth_kill_urbs(struct ipheth_device *dev)
174{
175 usb_kill_urb(dev->tx_urb);
176 usb_kill_urb(dev->rx_urb);
177}
178
179static void ipheth_rcvbulk_callback(struct urb *urb)
180{
181 struct ipheth_device *dev;
182 struct sk_buff *skb;
183 int status;
184 char *buf;
185 int len;
186
187 dev = urb->context;
188 if (dev == NULL)
189 return;
190
191 status = urb->status;
192 switch (status) {
193 case -ENOENT:
194 case -ECONNRESET:
195 case -ESHUTDOWN:
196 return;
197 case 0:
198 break;
199 default:
200 err("%s: urb status: %d", __func__, urb->status);
201 return;
202 }
203
204 len = urb->actual_length;
205 buf = urb->transfer_buffer;
206
207 skb = dev_alloc_skb(NET_IP_ALIGN + len);
208 if (!skb) {
209 err("%s: dev_alloc_skb: -ENOMEM", __func__);
210 dev->net->stats.rx_dropped++;
211 return;
212 }
213
214 skb_reserve(skb, NET_IP_ALIGN);
215 memcpy(skb_put(skb, len), buf + NET_IP_ALIGN, len - NET_IP_ALIGN);
216 skb->dev = dev->net;
217 skb->protocol = eth_type_trans(skb, dev->net);
218
219 dev->net->stats.rx_packets++;
220 dev->net->stats.rx_bytes += len;
221
222 netif_rx(skb);
223 ipheth_rx_submit(dev, GFP_ATOMIC);
224}
225
226static void ipheth_sndbulk_callback(struct urb *urb)
227{
228 struct ipheth_device *dev;
229
230 dev = urb->context;
231 if (dev == NULL)
232 return;
233
234 if (urb->status != 0 &&
235 urb->status != -ENOENT &&
236 urb->status != -ECONNRESET &&
237 urb->status != -ESHUTDOWN)
238 err("%s: urb status: %d", __func__, urb->status);
239
240 dev_kfree_skb_irq(dev->tx_skb);
241 netif_wake_queue(dev->net);
242}
243
244static int ipheth_carrier_set(struct ipheth_device *dev)
245{
246 struct usb_device *udev = dev->udev;
247 int retval;
248
249 retval = usb_control_msg(udev,
250 usb_rcvctrlpipe(udev, IPHETH_CTRL_ENDP),
251 IPHETH_CMD_CARRIER_CHECK, /* request */
252 0xc0, /* request type */
253 0x00, /* value */
254 0x02, /* index */
255 dev->ctrl_buf, IPHETH_CTRL_BUF_SIZE,
256 IPHETH_CTRL_TIMEOUT);
257 if (retval < 0) {
258 err("%s: usb_control_msg: %d", __func__, retval);
259 return retval;
260 }
261
262 if (dev->ctrl_buf[0] == IPHETH_CARRIER_ON)
263 netif_carrier_on(dev->net);
264 else
265 netif_carrier_off(dev->net);
266
267 return 0;
268}
269
270static void ipheth_carrier_check_work(struct work_struct *work)
271{
272 struct ipheth_device *dev = container_of(work, struct ipheth_device,
273 carrier_work.work);
274
275 ipheth_carrier_set(dev);
276 schedule_delayed_work(&dev->carrier_work, IPHETH_CARRIER_CHECK_TIMEOUT);
277}
278
279static int ipheth_get_macaddr(struct ipheth_device *dev)
280{
281 struct usb_device *udev = dev->udev;
282 struct net_device *net = dev->net;
283 int retval;
284
285 retval = usb_control_msg(udev,
286 usb_rcvctrlpipe(udev, IPHETH_CTRL_ENDP),
287 IPHETH_CMD_GET_MACADDR, /* request */
288 0xc0, /* request type */
289 0x00, /* value */
290 0x02, /* index */
291 dev->ctrl_buf,
292 IPHETH_CTRL_BUF_SIZE,
293 IPHETH_CTRL_TIMEOUT);
294 if (retval < 0) {
295 err("%s: usb_control_msg: %d", __func__, retval);
296 } else if (retval < ETH_ALEN) {
297 err("%s: usb_control_msg: short packet: %d bytes",
298 __func__, retval);
299 retval = -EINVAL;
300 } else {
301 memcpy(net->dev_addr, dev->ctrl_buf, ETH_ALEN);
302 retval = 0;
303 }
304
305 return retval;
306}
307
308static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags)
309{
310 struct usb_device *udev = dev->udev;
311 int retval;
312
313 usb_fill_bulk_urb(dev->rx_urb, udev,
314 usb_rcvbulkpipe(udev, dev->bulk_in),
315 dev->rx_buf, IPHETH_BUF_SIZE,
316 ipheth_rcvbulk_callback,
317 dev);
318 dev->rx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
319
320 retval = usb_submit_urb(dev->rx_urb, mem_flags);
321 if (retval)
322 err("%s: usb_submit_urb: %d", __func__, retval);
323 return retval;
324}
325
326static int ipheth_open(struct net_device *net)
327{
328 struct ipheth_device *dev = netdev_priv(net);
329 struct usb_device *udev = dev->udev;
330 int retval = 0;
331
332 usb_set_interface(udev, IPHETH_INTFNUM, IPHETH_ALT_INTFNUM);
333
334 retval = ipheth_carrier_set(dev);
335 if (retval)
336 return retval;
337
338 retval = ipheth_rx_submit(dev, GFP_KERNEL);
339 if (retval)
340 return retval;
341
342 schedule_delayed_work(&dev->carrier_work, IPHETH_CARRIER_CHECK_TIMEOUT);
343 netif_start_queue(net);
344 return retval;
345}
346
347static int ipheth_close(struct net_device *net)
348{
349 struct ipheth_device *dev = netdev_priv(net);
350
351 cancel_delayed_work_sync(&dev->carrier_work);
352 netif_stop_queue(net);
353 return 0;
354}
355
356static int ipheth_tx(struct sk_buff *skb, struct net_device *net)
357{
358 struct ipheth_device *dev = netdev_priv(net);
359 struct usb_device *udev = dev->udev;
360 int retval;
361
362 /* Paranoid */
363 if (skb->len > IPHETH_BUF_SIZE) {
364 WARN(1, "%s: skb too large: %d bytes", __func__, skb->len);
365 dev->net->stats.tx_dropped++;
366 dev_kfree_skb_irq(skb);
367 return NETDEV_TX_OK;
368 }
369
370 memcpy(dev->tx_buf, skb->data, skb->len);
371 if (skb->len < IPHETH_BUF_SIZE)
372 memset(dev->tx_buf + skb->len, 0, IPHETH_BUF_SIZE - skb->len);
373
374 usb_fill_bulk_urb(dev->tx_urb, udev,
375 usb_sndbulkpipe(udev, dev->bulk_out),
376 dev->tx_buf, IPHETH_BUF_SIZE,
377 ipheth_sndbulk_callback,
378 dev);
379 dev->tx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
380
381 retval = usb_submit_urb(dev->tx_urb, GFP_ATOMIC);
382 if (retval) {
383 err("%s: usb_submit_urb: %d", __func__, retval);
384 dev->net->stats.tx_errors++;
385 dev_kfree_skb_irq(skb);
386 } else {
387 dev->tx_skb = skb;
388
389 dev->net->stats.tx_packets++;
390 dev->net->stats.tx_bytes += skb->len;
391 netif_stop_queue(net);
392 }
393
394 return NETDEV_TX_OK;
395}
396
397static void ipheth_tx_timeout(struct net_device *net)
398{
399 struct ipheth_device *dev = netdev_priv(net);
400
401 err("%s: TX timeout", __func__);
402 dev->net->stats.tx_errors++;
403 usb_unlink_urb(dev->tx_urb);
404}
405
406static struct net_device_stats *ipheth_stats(struct net_device *net)
407{
408 struct ipheth_device *dev = netdev_priv(net);
409 return &dev->net->stats;
410}
411
412static u32 ipheth_ethtool_op_get_link(struct net_device *net)
413{
414 struct ipheth_device *dev = netdev_priv(net);
415 return netif_carrier_ok(dev->net);
416}
417
418static struct ethtool_ops ops = {
419 .get_link = ipheth_ethtool_op_get_link
420};
421
422static const struct net_device_ops ipheth_netdev_ops = {
423 .ndo_open = &ipheth_open,
424 .ndo_stop = &ipheth_close,
425 .ndo_start_xmit = &ipheth_tx,
426 .ndo_tx_timeout = &ipheth_tx_timeout,
427 .ndo_get_stats = &ipheth_stats,
428};
429
430static struct device_type ipheth_type = {
431 .name = "wwan",
432};
433
434static int ipheth_probe(struct usb_interface *intf,
435 const struct usb_device_id *id)
436{
437 struct usb_device *udev = interface_to_usbdev(intf);
438 struct usb_host_interface *hintf;
439 struct usb_endpoint_descriptor *endp;
440 struct ipheth_device *dev;
441 struct net_device *netdev;
442 int i;
443 int retval;
444
445 netdev = alloc_etherdev(sizeof(struct ipheth_device));
446 if (!netdev)
447 return -ENOMEM;
448
449 netdev->netdev_ops = &ipheth_netdev_ops;
450 netdev->watchdog_timeo = IPHETH_TX_TIMEOUT;
451 strcpy(netdev->name, "wwan%d");
452
453 dev = netdev_priv(netdev);
454 dev->udev = udev;
455 dev->net = netdev;
456 dev->intf = intf;
457
458 /* Set up endpoints */
459 hintf = usb_altnum_to_altsetting(intf, IPHETH_ALT_INTFNUM);
460 if (hintf == NULL) {
461 retval = -ENODEV;
462 err("Unable to find alternate settings interface");
463 goto err_endpoints;
464 }
465
466 for (i = 0; i < hintf->desc.bNumEndpoints; i++) {
467 endp = &hintf->endpoint[i].desc;
468 if (usb_endpoint_is_bulk_in(endp))
469 dev->bulk_in = endp->bEndpointAddress;
470 else if (usb_endpoint_is_bulk_out(endp))
471 dev->bulk_out = endp->bEndpointAddress;
472 }
473 if (!(dev->bulk_in && dev->bulk_out)) {
474 retval = -ENODEV;
475 err("Unable to find endpoints");
476 goto err_endpoints;
477 }
478
479 dev->ctrl_buf = kmalloc(IPHETH_CTRL_BUF_SIZE, GFP_KERNEL);
480 if (dev->ctrl_buf == NULL) {
481 retval = -ENOMEM;
482 goto err_alloc_ctrl_buf;
483 }
484
485 retval = ipheth_get_macaddr(dev);
486 if (retval)
487 goto err_get_macaddr;
488
489 INIT_DELAYED_WORK(&dev->carrier_work, ipheth_carrier_check_work);
490
491 retval = ipheth_alloc_urbs(dev);
492 if (retval) {
493 err("error allocating urbs: %d", retval);
494 goto err_alloc_urbs;
495 }
496
497 usb_set_intfdata(intf, dev);
498
499 SET_NETDEV_DEV(netdev, &intf->dev);
500 SET_ETHTOOL_OPS(netdev, &ops);
501 SET_NETDEV_DEVTYPE(netdev, &ipheth_type);
502
503 retval = register_netdev(netdev);
504 if (retval) {
505 err("error registering netdev: %d", retval);
506 retval = -EIO;
507 goto err_register_netdev;
508 }
509
510 dev_info(&intf->dev, "Apple iPhone USB Ethernet device attached\n");
511 return 0;
512
513err_register_netdev:
514 ipheth_free_urbs(dev);
515err_alloc_urbs:
516err_get_macaddr:
517err_alloc_ctrl_buf:
518 kfree(dev->ctrl_buf);
519err_endpoints:
520 free_netdev(netdev);
521 return retval;
522}
523
524static void ipheth_disconnect(struct usb_interface *intf)
525{
526 struct ipheth_device *dev;
527
528 dev = usb_get_intfdata(intf);
529 if (dev != NULL) {
530 unregister_netdev(dev->net);
531 ipheth_kill_urbs(dev);
532 ipheth_free_urbs(dev);
533 kfree(dev->ctrl_buf);
534 free_netdev(dev->net);
535 }
536 usb_set_intfdata(intf, NULL);
537 dev_info(&intf->dev, "Apple iPhone USB Ethernet now disconnected\n");
538}
539
540static struct usb_driver ipheth_driver = {
541 .name = "ipheth",
542 .probe = ipheth_probe,
543 .disconnect = ipheth_disconnect,
544 .id_table = ipheth_table,
545};
546
547static int __init ipheth_init(void)
548{
549 int retval;
550
551 retval = usb_register(&ipheth_driver);
552 if (retval) {
553 err("usb_register failed: %d", retval);
554 return retval;
555 }
556 return 0;
557}
558
559static void __exit ipheth_exit(void)
560{
561 usb_deregister(&ipheth_driver);
562}
563
564module_init(ipheth_init);
565module_exit(ipheth_exit);
566
567MODULE_AUTHOR("Diego Giagio <diego@giagio.com>");
568MODULE_DESCRIPTION("Apple iPhone USB Ethernet driver");
569MODULE_LICENSE("Dual BSD/GPL");
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index 52671ea043a7..c4c334d9770f 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -145,6 +145,7 @@ static struct usb_device_id usb_klsi_table[] = {
145 { USB_DEVICE(0x0707, 0x0100) }, /* SMC 2202USB */ 145 { USB_DEVICE(0x0707, 0x0100) }, /* SMC 2202USB */
146 { USB_DEVICE(0x07aa, 0x0001) }, /* Correga K.K. */ 146 { USB_DEVICE(0x07aa, 0x0001) }, /* Correga K.K. */
147 { USB_DEVICE(0x07b8, 0x4000) }, /* D-Link DU-E10 */ 147 { USB_DEVICE(0x07b8, 0x4000) }, /* D-Link DU-E10 */
148 { USB_DEVICE(0x07c9, 0xb010) }, /* Allied Telesyn AT-USB10 USB Ethernet Adapter */
148 { USB_DEVICE(0x0846, 0x1001) }, /* NetGear EA-101 */ 149 { USB_DEVICE(0x0846, 0x1001) }, /* NetGear EA-101 */
149 { USB_DEVICE(0x0846, 0x1002) }, /* NetGear EA-101 */ 150 { USB_DEVICE(0x0846, 0x1002) }, /* NetGear EA-101 */
150 { USB_DEVICE(0x085a, 0x0008) }, /* PortGear Ethernet Adapter */ 151 { USB_DEVICE(0x085a, 0x0008) }, /* PortGear Ethernet Adapter */
diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c
new file mode 100644
index 000000000000..f1942d69a0d5
--- /dev/null
+++ b/drivers/net/usb/sierra_net.c
@@ -0,0 +1,1004 @@
1/*
2 * USB-to-WWAN Driver for Sierra Wireless modems
3 *
4 * Copyright (C) 2008, 2009, 2010 Paxton Smith, Matthew Safar, Rory Filer
5 * <linux@sierrawireless.com>
6 *
7 * Portions of this based on the cdc_ether driver by David Brownell (2003-2005)
8 * and Ole Andre Vadla Ravnas (ActiveSync) (2006).
9 *
10 * IMPORTANT DISCLAIMER: This driver is not commercially supported by
11 * Sierra Wireless. Use at your own risk.
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 2 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 */
27
28#define DRIVER_VERSION "v.2.0"
29#define DRIVER_AUTHOR "Paxton Smith, Matthew Safar, Rory Filer"
30#define DRIVER_DESC "USB-to-WWAN Driver for Sierra Wireless modems"
31static const char driver_name[] = "sierra_net";
32
33/* if defined debug messages enabled */
34/*#define DEBUG*/
35
36#include <linux/module.h>
37#include <linux/etherdevice.h>
38#include <linux/ethtool.h>
39#include <linux/mii.h>
40#include <linux/sched.h>
41#include <linux/timer.h>
42#include <linux/usb.h>
43#include <linux/usb/cdc.h>
44#include <net/ip.h>
45#include <net/udp.h>
46#include <asm/unaligned.h>
47#include <linux/usb/usbnet.h>
48
49#define SWI_USB_REQUEST_GET_FW_ATTR 0x06
50#define SWI_GET_FW_ATTR_MASK 0x08
51
52/* atomic counter partially included in MAC address to make sure 2 devices
53 * do not end up with the same MAC - concept breaks in case of > 255 ifaces
54 */
55static atomic_t iface_counter = ATOMIC_INIT(0);
56
57/*
58 * SYNC Timer Delay definition used to set the expiry time
59 */
60#define SIERRA_NET_SYNCDELAY (2*HZ)
61
62/* Max. MTU supported. The modem buffers are limited to 1500 */
63#define SIERRA_NET_MAX_SUPPORTED_MTU 1500
64
65/* The SIERRA_NET_USBCTL_BUF_LEN defines a buffer size allocated for control
66 * message reception ... and thus the max. received packet.
67 * (May be the cause for parse_hip returning -EINVAL)
68 */
69#define SIERRA_NET_USBCTL_BUF_LEN 1024
70
71/* list of interface numbers - used for constructing interface lists */
72struct sierra_net_iface_info {
73 const u32 infolen; /* number of interface numbers on list */
74 const u8 *ifaceinfo; /* pointer to the array holding the numbers */
75};
76
77struct sierra_net_info_data {
78 u16 rx_urb_size;
79 struct sierra_net_iface_info whitelist;
80};
81
82/* Private data structure */
83struct sierra_net_data {
84
85 u8 ethr_hdr_tmpl[ETH_HLEN]; /* ethernet header template for rx'd pkts */
86
87 u16 link_up; /* air link up or down */
88 u8 tx_hdr_template[4]; /* part of HIP hdr for tx'd packets */
89
90 u8 sync_msg[4]; /* SYNC message */
91 u8 shdwn_msg[4]; /* Shutdown message */
92
93 /* Backpointer to the container */
94 struct usbnet *usbnet;
95
96 u8 ifnum; /* interface number */
97
98/* Bit masks, must be a power of 2 */
99#define SIERRA_NET_EVENT_RESP_AVAIL 0x01
100#define SIERRA_NET_TIMER_EXPIRY 0x02
101 unsigned long kevent_flags;
102 struct work_struct sierra_net_kevent;
103 struct timer_list sync_timer; /* For retrying SYNC sequence */
104};
105
106struct param {
107 int is_present;
108 union {
109 void *ptr;
110 u32 dword;
111 u16 word;
112 u8 byte;
113 };
114};
115
116/* HIP message type */
117#define SIERRA_NET_HIP_EXTENDEDID 0x7F
118#define SIERRA_NET_HIP_HSYNC_ID 0x60 /* Modem -> host */
119#define SIERRA_NET_HIP_RESTART_ID 0x62 /* Modem -> host */
120#define SIERRA_NET_HIP_MSYNC_ID 0x20 /* Host -> modem */
121#define SIERRA_NET_HIP_SHUTD_ID 0x26 /* Host -> modem */
122
123#define SIERRA_NET_HIP_EXT_IP_IN_ID 0x0202
124#define SIERRA_NET_HIP_EXT_IP_OUT_ID 0x0002
125
126/* 3G UMTS Link Sense Indication definitions */
127#define SIERRA_NET_HIP_LSI_UMTSID 0x78
128
129/* Reverse Channel Grant Indication HIP message */
130#define SIERRA_NET_HIP_RCGI 0x64
131
132/* LSI Protocol types */
133#define SIERRA_NET_PROTOCOL_UMTS 0x01
134/* LSI Coverage */
135#define SIERRA_NET_COVERAGE_NONE 0x00
136#define SIERRA_NET_COVERAGE_NOPACKET 0x01
137
138/* LSI Session */
139#define SIERRA_NET_SESSION_IDLE 0x00
140/* LSI Link types */
141#define SIERRA_NET_AS_LINK_TYPE_IPv4 0x00
142
143struct lsi_umts {
144 u8 protocol;
145 u8 unused1;
146 __be16 length;
147 /* eventually use a union for the rest - assume umts for now */
148 u8 coverage;
149 u8 unused2[41];
150 u8 session_state;
151 u8 unused3[33];
152 u8 link_type;
153 u8 pdp_addr_len; /* NW-supplied PDP address len */
154 u8 pdp_addr[16]; /* NW-supplied PDP address (bigendian)) */
155 u8 unused4[23];
156 u8 dns1_addr_len; /* NW-supplied 1st DNS address len (bigendian) */
157 u8 dns1_addr[16]; /* NW-supplied 1st DNS address */
158 u8 dns2_addr_len; /* NW-supplied 2nd DNS address len */
159 u8 dns2_addr[16]; /* NW-supplied 2nd DNS address (bigendian)*/
160 u8 wins1_addr_len; /* NW-supplied 1st Wins address len */
161 u8 wins1_addr[16]; /* NW-supplied 1st Wins address (bigendian)*/
162 u8 wins2_addr_len; /* NW-supplied 2nd Wins address len */
163 u8 wins2_addr[16]; /* NW-supplied 2nd Wins address (bigendian) */
164 u8 unused5[4];
165 u8 gw_addr_len; /* NW-supplied GW address len */
166 u8 gw_addr[16]; /* NW-supplied GW address (bigendian) */
167 u8 reserved[8];
168} __attribute__ ((packed));
169
170#define SIERRA_NET_LSI_COMMON_LEN 4
171#define SIERRA_NET_LSI_UMTS_LEN (sizeof(struct lsi_umts))
172#define SIERRA_NET_LSI_UMTS_STATUS_LEN \
173 (SIERRA_NET_LSI_UMTS_LEN - SIERRA_NET_LSI_COMMON_LEN)
174
175/* Forward definitions */
176static void sierra_sync_timer(unsigned long syncdata);
177static int sierra_net_change_mtu(struct net_device *net, int new_mtu);
178
179/* Our own net device operations structure */
180static const struct net_device_ops sierra_net_device_ops = {
181 .ndo_open = usbnet_open,
182 .ndo_stop = usbnet_stop,
183 .ndo_start_xmit = usbnet_start_xmit,
184 .ndo_tx_timeout = usbnet_tx_timeout,
185 .ndo_change_mtu = sierra_net_change_mtu,
186 .ndo_set_mac_address = eth_mac_addr,
187 .ndo_validate_addr = eth_validate_addr,
188};
189
190/* get private data associated with passed in usbnet device */
191static inline struct sierra_net_data *sierra_net_get_private(struct usbnet *dev)
192{
193 return (struct sierra_net_data *)dev->data[0];
194}
195
196/* set private data associated with passed in usbnet device */
197static inline void sierra_net_set_private(struct usbnet *dev,
198 struct sierra_net_data *priv)
199{
200 dev->data[0] = (unsigned long)priv;
201}
202
203/* is packet IPv4 */
204static inline int is_ip(struct sk_buff *skb)
205{
206 return (skb->protocol == cpu_to_be16(ETH_P_IP));
207}
208
209/*
210 * check passed in packet and make sure that:
211 * - it is linear (no scatter/gather)
212 * - it is ethernet (mac_header properly set)
213 */
214static int check_ethip_packet(struct sk_buff *skb, struct usbnet *dev)
215{
216 skb_reset_mac_header(skb); /* ethernet header */
217
218 if (skb_is_nonlinear(skb)) {
219 netdev_err(dev->net, "Non linear buffer-dropping\n");
220 return 0;
221 }
222
223 if (!pskb_may_pull(skb, ETH_HLEN))
224 return 0;
225 skb->protocol = eth_hdr(skb)->h_proto;
226
227 return 1;
228}
229
230static const u8 *save16bit(struct param *p, const u8 *datap)
231{
232 p->is_present = 1;
233 p->word = get_unaligned_be16(datap);
234 return datap + sizeof(p->word);
235}
236
237static const u8 *save8bit(struct param *p, const u8 *datap)
238{
239 p->is_present = 1;
240 p->byte = *datap;
241 return datap + sizeof(p->byte);
242}
243
244/*----------------------------------------------------------------------------*
245 * BEGIN HIP *
246 *----------------------------------------------------------------------------*/
247/* HIP header */
248#define SIERRA_NET_HIP_HDR_LEN 4
249/* Extended HIP header */
250#define SIERRA_NET_HIP_EXT_HDR_LEN 6
251
252struct hip_hdr {
253 int hdrlen;
254 struct param payload_len;
255 struct param msgid;
256 struct param msgspecific;
257 struct param extmsgid;
258};
259
260static int parse_hip(const u8 *buf, const u32 buflen, struct hip_hdr *hh)
261{
262 const u8 *curp = buf;
263 int padded;
264
265 if (buflen < SIERRA_NET_HIP_HDR_LEN)
266 return -EPROTO;
267
268 curp = save16bit(&hh->payload_len, curp);
269 curp = save8bit(&hh->msgid, curp);
270 curp = save8bit(&hh->msgspecific, curp);
271
272 padded = hh->msgid.byte & 0x80;
273 hh->msgid.byte &= 0x7F; /* 7 bits */
274
275 hh->extmsgid.is_present = (hh->msgid.byte == SIERRA_NET_HIP_EXTENDEDID);
276 if (hh->extmsgid.is_present) {
277 if (buflen < SIERRA_NET_HIP_EXT_HDR_LEN)
278 return -EPROTO;
279
280 hh->payload_len.word &= 0x3FFF; /* 14 bits */
281
282 curp = save16bit(&hh->extmsgid, curp);
283 hh->extmsgid.word &= 0x03FF; /* 10 bits */
284
285 hh->hdrlen = SIERRA_NET_HIP_EXT_HDR_LEN;
286 } else {
287 hh->payload_len.word &= 0x07FF; /* 11 bits */
288 hh->hdrlen = SIERRA_NET_HIP_HDR_LEN;
289 }
290
291 if (padded) {
292 hh->hdrlen++;
293 hh->payload_len.word--;
294 }
295
296 /* if real packet shorter than the claimed length */
297 if (buflen < (hh->hdrlen + hh->payload_len.word))
298 return -EINVAL;
299
300 return 0;
301}
302
303static void build_hip(u8 *buf, const u16 payloadlen,
304 struct sierra_net_data *priv)
305{
306 /* the following doesn't have the full functionality. We
307 * currently build only one kind of header, so it is faster this way
308 */
309 put_unaligned_be16(payloadlen, buf);
310 memcpy(buf+2, priv->tx_hdr_template, sizeof(priv->tx_hdr_template));
311}
312/*----------------------------------------------------------------------------*
313 * END HIP *
314 *----------------------------------------------------------------------------*/
315
316static int sierra_net_send_cmd(struct usbnet *dev,
317 u8 *cmd, int cmdlen, const char * cmd_name)
318{
319 struct sierra_net_data *priv = sierra_net_get_private(dev);
320 int status;
321
322 status = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
323 USB_CDC_SEND_ENCAPSULATED_COMMAND,
324 USB_DIR_OUT|USB_TYPE_CLASS|USB_RECIP_INTERFACE, 0,
325 priv->ifnum, cmd, cmdlen, USB_CTRL_SET_TIMEOUT);
326
327 if (status != cmdlen && status != -ENODEV)
328 netdev_err(dev->net, "Submit %s failed %d\n", cmd_name, status);
329
330 return status;
331}
332
333static int sierra_net_send_sync(struct usbnet *dev)
334{
335 int status;
336 struct sierra_net_data *priv = sierra_net_get_private(dev);
337
338 dev_dbg(&dev->udev->dev, "%s", __func__);
339
340 status = sierra_net_send_cmd(dev, priv->sync_msg,
341 sizeof(priv->sync_msg), "SYNC");
342
343 return status;
344}
345
346static void sierra_net_set_ctx_index(struct sierra_net_data *priv, u8 ctx_ix)
347{
348 dev_dbg(&(priv->usbnet->udev->dev), "%s %d", __func__, ctx_ix);
349 priv->tx_hdr_template[0] = 0x3F;
350 priv->tx_hdr_template[1] = ctx_ix;
351 *((u16 *)&priv->tx_hdr_template[2]) =
352 cpu_to_be16(SIERRA_NET_HIP_EXT_IP_OUT_ID);
353}
354
355static inline int sierra_net_is_valid_addrlen(u8 len)
356{
357 return (len == sizeof(struct in_addr));
358}
359
360static int sierra_net_parse_lsi(struct usbnet *dev, char *data, int datalen)
361{
362 struct lsi_umts *lsi = (struct lsi_umts *)data;
363
364 if (datalen < sizeof(struct lsi_umts)) {
365 netdev_err(dev->net, "%s: Data length %d, exp %Zu\n",
366 __func__, datalen,
367 sizeof(struct lsi_umts));
368 return -1;
369 }
370
371 if (lsi->length != cpu_to_be16(SIERRA_NET_LSI_UMTS_STATUS_LEN)) {
372 netdev_err(dev->net, "%s: LSI_UMTS_STATUS_LEN %d, exp %u\n",
373 __func__, be16_to_cpu(lsi->length),
374 (u32)SIERRA_NET_LSI_UMTS_STATUS_LEN);
375 return -1;
376 }
377
378 /* Validate the protocol - only support UMTS for now */
379 if (lsi->protocol != SIERRA_NET_PROTOCOL_UMTS) {
380 netdev_err(dev->net, "Protocol unsupported, 0x%02x\n",
381 lsi->protocol);
382 return -1;
383 }
384
385 /* Validate the link type */
386 if (lsi->link_type != SIERRA_NET_AS_LINK_TYPE_IPv4) {
387 netdev_err(dev->net, "Link type unsupported: 0x%02x\n",
388 lsi->link_type);
389 return -1;
390 }
391
392 /* Validate the coverage */
393 if (lsi->coverage == SIERRA_NET_COVERAGE_NONE
394 || lsi->coverage == SIERRA_NET_COVERAGE_NOPACKET) {
395 netdev_err(dev->net, "No coverage, 0x%02x\n", lsi->coverage);
396 return 0;
397 }
398
399 /* Validate the session state */
400 if (lsi->session_state == SIERRA_NET_SESSION_IDLE) {
401 netdev_err(dev->net, "Session idle, 0x%02x\n",
402 lsi->session_state);
403 return 0;
404 }
405
406 /* Set link_sense true */
407 return 1;
408}
409
410static void sierra_net_handle_lsi(struct usbnet *dev, char *data,
411 struct hip_hdr *hh)
412{
413 struct sierra_net_data *priv = sierra_net_get_private(dev);
414 int link_up;
415
416 link_up = sierra_net_parse_lsi(dev, data + hh->hdrlen,
417 hh->payload_len.word);
418 if (link_up < 0) {
419 netdev_err(dev->net, "Invalid LSI\n");
420 return;
421 }
422 if (link_up) {
423 sierra_net_set_ctx_index(priv, hh->msgspecific.byte);
424 priv->link_up = 1;
425 netif_carrier_on(dev->net);
426 } else {
427 priv->link_up = 0;
428 netif_carrier_off(dev->net);
429 }
430}
431
432static void sierra_net_dosync(struct usbnet *dev)
433{
434 int status;
435 struct sierra_net_data *priv = sierra_net_get_private(dev);
436
437 dev_dbg(&dev->udev->dev, "%s", __func__);
438
439 /* tell modem we are ready */
440 status = sierra_net_send_sync(dev);
441 if (status < 0)
442 netdev_err(dev->net,
443 "Send SYNC failed, status %d\n", status);
444 status = sierra_net_send_sync(dev);
445 if (status < 0)
446 netdev_err(dev->net,
447 "Send SYNC failed, status %d\n", status);
448
449 /* Now, start a timer and make sure we get the Restart Indication */
450 priv->sync_timer.function = sierra_sync_timer;
451 priv->sync_timer.data = (unsigned long) dev;
452 priv->sync_timer.expires = jiffies + SIERRA_NET_SYNCDELAY;
453 add_timer(&priv->sync_timer);
454}
455
456static void sierra_net_kevent(struct work_struct *work)
457{
458 struct sierra_net_data *priv =
459 container_of(work, struct sierra_net_data, sierra_net_kevent);
460 struct usbnet *dev = priv->usbnet;
461 int len;
462 int err;
463 u8 *buf;
464 u8 ifnum;
465
466 if (test_bit(SIERRA_NET_EVENT_RESP_AVAIL, &priv->kevent_flags)) {
467 clear_bit(SIERRA_NET_EVENT_RESP_AVAIL, &priv->kevent_flags);
468
469 /* Query the modem for the LSI message */
470 buf = kzalloc(SIERRA_NET_USBCTL_BUF_LEN, GFP_KERNEL);
471 if (!buf) {
472 netdev_err(dev->net,
473 "failed to allocate buf for LS msg\n");
474 return;
475 }
476 ifnum = priv->ifnum;
477 len = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0),
478 USB_CDC_GET_ENCAPSULATED_RESPONSE,
479 USB_DIR_IN|USB_TYPE_CLASS|USB_RECIP_INTERFACE,
480 0, ifnum, buf, SIERRA_NET_USBCTL_BUF_LEN,
481 USB_CTRL_SET_TIMEOUT);
482
483 if (len < 0) {
484 netdev_err(dev->net,
485 "usb_control_msg failed, status %d\n", len);
486 } else {
487 struct hip_hdr hh;
488
489 dev_dbg(&dev->udev->dev, "%s: Received status message,"
490 " %04x bytes", __func__, len);
491
492 err = parse_hip(buf, len, &hh);
493 if (err) {
494 netdev_err(dev->net, "%s: Bad packet,"
495 " parse result %d\n", __func__, err);
496 kfree(buf);
497 return;
498 }
499
500 /* Validate packet length */
501 if (len != hh.hdrlen + hh.payload_len.word) {
502 netdev_err(dev->net, "%s: Bad packet, received"
503 " %d, expected %d\n", __func__, len,
504 hh.hdrlen + hh.payload_len.word);
505 kfree(buf);
506 return;
507 }
508
509 /* Switch on received message types */
510 switch (hh.msgid.byte) {
511 case SIERRA_NET_HIP_LSI_UMTSID:
512 dev_dbg(&dev->udev->dev, "LSI for ctx:%d",
513 hh.msgspecific.byte);
514 sierra_net_handle_lsi(dev, buf, &hh);
515 break;
516 case SIERRA_NET_HIP_RESTART_ID:
517 dev_dbg(&dev->udev->dev, "Restart reported: %d,"
518 " stopping sync timer",
519 hh.msgspecific.byte);
520 /* Got sync resp - stop timer & clear mask */
521 del_timer_sync(&priv->sync_timer);
522 clear_bit(SIERRA_NET_TIMER_EXPIRY,
523 &priv->kevent_flags);
524 break;
525 case SIERRA_NET_HIP_HSYNC_ID:
526 dev_dbg(&dev->udev->dev, "SYNC received");
527 err = sierra_net_send_sync(dev);
528 if (err < 0)
529 netdev_err(dev->net,
530 "Send SYNC failed %d\n", err);
531 break;
532 case SIERRA_NET_HIP_EXTENDEDID:
533 netdev_err(dev->net, "Unrecognized HIP msg, "
534 "extmsgid 0x%04x\n", hh.extmsgid.word);
535 break;
536 case SIERRA_NET_HIP_RCGI:
537 /* Ignored */
538 break;
539 default:
540 netdev_err(dev->net, "Unrecognized HIP msg, "
541 "msgid 0x%02x\n", hh.msgid.byte);
542 break;
543 }
544 }
545 kfree(buf);
546 }
547 /* The sync timer bit might be set */
548 if (test_bit(SIERRA_NET_TIMER_EXPIRY, &priv->kevent_flags)) {
549 clear_bit(SIERRA_NET_TIMER_EXPIRY, &priv->kevent_flags);
550 dev_dbg(&dev->udev->dev, "Deferred sync timer expiry");
551 sierra_net_dosync(priv->usbnet);
552 }
553
554 if (priv->kevent_flags)
555 dev_dbg(&dev->udev->dev, "sierra_net_kevent done, "
556 "kevent_flags = 0x%lx", priv->kevent_flags);
557}
558
559static void sierra_net_defer_kevent(struct usbnet *dev, int work)
560{
561 struct sierra_net_data *priv = sierra_net_get_private(dev);
562
563 set_bit(work, &priv->kevent_flags);
564 schedule_work(&priv->sierra_net_kevent);
565}
566
567/*
568 * Sync Retransmit Timer Handler. On expiry, kick the work queue
569 */
570void sierra_sync_timer(unsigned long syncdata)
571{
572 struct usbnet *dev = (struct usbnet *)syncdata;
573
574 dev_dbg(&dev->udev->dev, "%s", __func__);
575 /* Kick the tasklet */
576 sierra_net_defer_kevent(dev, SIERRA_NET_TIMER_EXPIRY);
577}
578
579static void sierra_net_status(struct usbnet *dev, struct urb *urb)
580{
581 struct usb_cdc_notification *event;
582
583 dev_dbg(&dev->udev->dev, "%s", __func__);
584
585 if (urb->actual_length < sizeof *event)
586 return;
587
588 /* Add cases to handle other standard notifications. */
589 event = urb->transfer_buffer;
590 switch (event->bNotificationType) {
591 case USB_CDC_NOTIFY_NETWORK_CONNECTION:
592 case USB_CDC_NOTIFY_SPEED_CHANGE:
593 /* USB 305 sends those */
594 break;
595 case USB_CDC_NOTIFY_RESPONSE_AVAILABLE:
596 sierra_net_defer_kevent(dev, SIERRA_NET_EVENT_RESP_AVAIL);
597 break;
598 default:
599 netdev_err(dev->net, ": unexpected notification %02x!\n",
600 event->bNotificationType);
601 break;
602 }
603}
604
605static void sierra_net_get_drvinfo(struct net_device *net,
606 struct ethtool_drvinfo *info)
607{
608 /* Inherit standard device info */
609 usbnet_get_drvinfo(net, info);
610 strncpy(info->driver, driver_name, sizeof info->driver);
611 strncpy(info->version, DRIVER_VERSION, sizeof info->version);
612}
613
614static u32 sierra_net_get_link(struct net_device *net)
615{
616 struct usbnet *dev = netdev_priv(net);
617 /* Report link is down whenever the interface is down */
618 return sierra_net_get_private(dev)->link_up && netif_running(net);
619}
620
621static struct ethtool_ops sierra_net_ethtool_ops = {
622 .get_drvinfo = sierra_net_get_drvinfo,
623 .get_link = sierra_net_get_link,
624 .get_msglevel = usbnet_get_msglevel,
625 .set_msglevel = usbnet_set_msglevel,
626 .get_settings = usbnet_get_settings,
627 .set_settings = usbnet_set_settings,
628 .nway_reset = usbnet_nway_reset,
629};
630
631/* MTU can not be more than 1500 bytes, enforce it. */
632static int sierra_net_change_mtu(struct net_device *net, int new_mtu)
633{
634 if (new_mtu > SIERRA_NET_MAX_SUPPORTED_MTU)
635 return -EINVAL;
636
637 return usbnet_change_mtu(net, new_mtu);
638}
639
640static int is_whitelisted(const u8 ifnum,
641 const struct sierra_net_iface_info *whitelist)
642{
643 if (whitelist) {
644 const u8 *list = whitelist->ifaceinfo;
645 int i;
646
647 for (i = 0; i < whitelist->infolen; i++) {
648 if (list[i] == ifnum)
649 return 1;
650 }
651 }
652 return 0;
653}
654
655static int sierra_net_get_fw_attr(struct usbnet *dev, u16 *datap)
656{
657 int result = 0;
658 u16 *attrdata;
659
660 attrdata = kmalloc(sizeof(*attrdata), GFP_KERNEL);
661 if (!attrdata)
662 return -ENOMEM;
663
664 result = usb_control_msg(
665 dev->udev,
666 usb_rcvctrlpipe(dev->udev, 0),
667 /* _u8 vendor specific request */
668 SWI_USB_REQUEST_GET_FW_ATTR,
669 USB_DIR_IN | USB_TYPE_VENDOR, /* __u8 request type */
670 0x0000, /* __u16 value not used */
671 0x0000, /* __u16 index not used */
672 attrdata, /* char *data */
673 sizeof(*attrdata), /* __u16 size */
674 USB_CTRL_SET_TIMEOUT); /* int timeout */
675
676 if (result < 0) {
677 kfree(attrdata);
678 return -EIO;
679 }
680
681 *datap = *attrdata;
682
683 kfree(attrdata);
684 return result;
685}
686
687/*
688 * collects the bulk endpoints, the status endpoint.
689 */
690static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
691{
692 u8 ifacenum;
693 u8 numendpoints;
694 u16 fwattr = 0;
695 int status;
696 struct ethhdr *eth;
697 struct sierra_net_data *priv;
698 static const u8 sync_tmplate[sizeof(priv->sync_msg)] = {
699 0x00, 0x00, SIERRA_NET_HIP_MSYNC_ID, 0x00};
700 static const u8 shdwn_tmplate[sizeof(priv->shdwn_msg)] = {
701 0x00, 0x00, SIERRA_NET_HIP_SHUTD_ID, 0x00};
702
703 struct sierra_net_info_data *data =
704 (struct sierra_net_info_data *)dev->driver_info->data;
705
706 dev_dbg(&dev->udev->dev, "%s", __func__);
707
708 ifacenum = intf->cur_altsetting->desc.bInterfaceNumber;
709 /* We only accept certain interfaces */
710 if (!is_whitelisted(ifacenum, &data->whitelist)) {
711 dev_dbg(&dev->udev->dev, "Ignoring interface: %d", ifacenum);
712 return -ENODEV;
713 }
714 numendpoints = intf->cur_altsetting->desc.bNumEndpoints;
715 /* We have three endpoints, bulk in and out, and a status */
716 if (numendpoints != 3) {
717 dev_err(&dev->udev->dev, "Expected 3 endpoints, found: %d",
718 numendpoints);
719 return -ENODEV;
720 }
721 /* Status endpoint set in usbnet_get_endpoints() */
722 dev->status = NULL;
723 status = usbnet_get_endpoints(dev, intf);
724 if (status < 0) {
725 dev_err(&dev->udev->dev, "Error in usbnet_get_endpoints (%d)",
726 status);
727 return -ENODEV;
728 }
729 /* Initialize sierra private data */
730 priv = kzalloc(sizeof *priv, GFP_KERNEL);
731 if (!priv) {
732 dev_err(&dev->udev->dev, "No memory");
733 return -ENOMEM;
734 }
735
736 priv->usbnet = dev;
737 priv->ifnum = ifacenum;
738 dev->net->netdev_ops = &sierra_net_device_ops;
739
740 /* change MAC addr to include, ifacenum, and to be unique */
741 dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return(&iface_counter);
742 dev->net->dev_addr[ETH_ALEN-1] = ifacenum;
743
744 /* we will have to manufacture ethernet headers, prepare template */
745 eth = (struct ethhdr *)priv->ethr_hdr_tmpl;
746 memcpy(&eth->h_dest, dev->net->dev_addr, ETH_ALEN);
747 eth->h_proto = cpu_to_be16(ETH_P_IP);
748
749 /* prepare shutdown message template */
750 memcpy(priv->shdwn_msg, shdwn_tmplate, sizeof(priv->shdwn_msg));
751 /* set context index initially to 0 - prepares tx hdr template */
752 sierra_net_set_ctx_index(priv, 0);
753
754 /* decrease the rx_urb_size and max_tx_size to 4k on USB 1.1 */
755 dev->rx_urb_size = data->rx_urb_size;
756 if (dev->udev->speed != USB_SPEED_HIGH)
757 dev->rx_urb_size = min_t(size_t, 4096, data->rx_urb_size);
758
759 dev->net->hard_header_len += SIERRA_NET_HIP_EXT_HDR_LEN;
760 dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
761
762 /* Set up the netdev */
763 dev->net->flags |= IFF_NOARP;
764 dev->net->ethtool_ops = &sierra_net_ethtool_ops;
765 netif_carrier_off(dev->net);
766
767 sierra_net_set_private(dev, priv);
768
769 priv->kevent_flags = 0;
770
771 /* Use the shared workqueue */
772 INIT_WORK(&priv->sierra_net_kevent, sierra_net_kevent);
773
774 /* Only need to do this once */
775 init_timer(&priv->sync_timer);
776
777 /* verify fw attributes */
778 status = sierra_net_get_fw_attr(dev, &fwattr);
779 dev_dbg(&dev->udev->dev, "Fw attr: %x\n", fwattr);
780
781 /* test whether firmware supports DHCP */
782 if (!(status == sizeof(fwattr) && (fwattr & SWI_GET_FW_ATTR_MASK))) {
783 /* found incompatible firmware version */
784 dev_err(&dev->udev->dev, "Incompatible driver and firmware"
785 " versions\n");
786 kfree(priv);
787 return -ENODEV;
788 }
789 /* prepare sync message from template */
790 memcpy(priv->sync_msg, sync_tmplate, sizeof(priv->sync_msg));
791
792 /* initiate the sync sequence */
793 sierra_net_dosync(dev);
794
795 return 0;
796}
797
798static void sierra_net_unbind(struct usbnet *dev, struct usb_interface *intf)
799{
800 int status;
801 struct sierra_net_data *priv = sierra_net_get_private(dev);
802
803 dev_dbg(&dev->udev->dev, "%s", __func__);
804
805 /* Kill the timer then flush the work queue */
806 del_timer_sync(&priv->sync_timer);
807
808 flush_scheduled_work();
809
810 /* tell modem we are going away */
811 status = sierra_net_send_cmd(dev, priv->shdwn_msg,
812 sizeof(priv->shdwn_msg), "Shutdown");
813 if (status < 0)
814 netdev_err(dev->net,
815 "usb_control_msg failed, status %d\n", status);
816
817 sierra_net_set_private(dev, NULL);
818
819 kfree(priv);
820}
821
822static struct sk_buff *sierra_net_skb_clone(struct usbnet *dev,
823 struct sk_buff *skb, int len)
824{
825 struct sk_buff *new_skb;
826
827 /* clone skb */
828 new_skb = skb_clone(skb, GFP_ATOMIC);
829
830 /* remove len bytes from original */
831 skb_pull(skb, len);
832
833 /* trim next packet to it's length */
834 if (new_skb) {
835 skb_trim(new_skb, len);
836 } else {
837 if (netif_msg_rx_err(dev))
838 netdev_err(dev->net, "failed to get skb\n");
839 dev->net->stats.rx_dropped++;
840 }
841
842 return new_skb;
843}
844
845/* ---------------------------- Receive data path ----------------------*/
846static int sierra_net_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
847{
848 int err;
849 struct hip_hdr hh;
850 struct sk_buff *new_skb;
851
852 dev_dbg(&dev->udev->dev, "%s", __func__);
853
854 /* could contain multiple packets */
855 while (likely(skb->len)) {
856 err = parse_hip(skb->data, skb->len, &hh);
857 if (err) {
858 if (netif_msg_rx_err(dev))
859 netdev_err(dev->net, "Invalid HIP header %d\n",
860 err);
861 /* dev->net->stats.rx_errors incremented by caller */
862 dev->net->stats.rx_length_errors++;
863 return 0;
864 }
865
866 /* Validate Extended HIP header */
867 if (!hh.extmsgid.is_present
868 || hh.extmsgid.word != SIERRA_NET_HIP_EXT_IP_IN_ID) {
869 if (netif_msg_rx_err(dev))
870 netdev_err(dev->net, "HIP/ETH: Invalid pkt\n");
871
872 dev->net->stats.rx_frame_errors++;
873 /* dev->net->stats.rx_errors incremented by caller */;
874 return 0;
875 }
876
877 skb_pull(skb, hh.hdrlen);
878
879 /* We are going to accept this packet, prepare it */
880 memcpy(skb->data, sierra_net_get_private(dev)->ethr_hdr_tmpl,
881 ETH_HLEN);
882
883 /* Last packet in batch handled by usbnet */
884 if (hh.payload_len.word == skb->len)
885 return 1;
886
887 new_skb = sierra_net_skb_clone(dev, skb, hh.payload_len.word);
888 if (new_skb)
889 usbnet_skb_return(dev, new_skb);
890
891 } /* while */
892
893 return 0;
894}
895
896/* ---------------------------- Transmit data path ----------------------*/
897struct sk_buff *sierra_net_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
898 gfp_t flags)
899{
900 struct sierra_net_data *priv = sierra_net_get_private(dev);
901 u16 len;
902 bool need_tail;
903
904 dev_dbg(&dev->udev->dev, "%s", __func__);
905 if (priv->link_up && check_ethip_packet(skb, dev) && is_ip(skb)) {
906 /* enough head room as is? */
907 if (SIERRA_NET_HIP_EXT_HDR_LEN <= skb_headroom(skb)) {
908 /* Save the Eth/IP length and set up HIP hdr */
909 len = skb->len;
910 skb_push(skb, SIERRA_NET_HIP_EXT_HDR_LEN);
911 /* Handle ZLP issue */
912 need_tail = ((len + SIERRA_NET_HIP_EXT_HDR_LEN)
913 % dev->maxpacket == 0);
914 if (need_tail) {
915 if (unlikely(skb_tailroom(skb) == 0)) {
916 netdev_err(dev->net, "tx_fixup:"
917 "no room for packet\n");
918 dev_kfree_skb_any(skb);
919 return NULL;
920 } else {
921 skb->data[skb->len] = 0;
922 __skb_put(skb, 1);
923 len = len + 1;
924 }
925 }
926 build_hip(skb->data, len, priv);
927 return skb;
928 } else {
929 /*
930 * compensate in the future if necessary
931 */
932 netdev_err(dev->net, "tx_fixup: no room for HIP\n");
933 } /* headroom */
934 }
935
936 if (!priv->link_up)
937 dev->net->stats.tx_carrier_errors++;
938
939 /* tx_dropped incremented by usbnet */
940
941 /* filter the packet out, release it */
942 dev_kfree_skb_any(skb);
943 return NULL;
944}
945
946static const u8 sierra_net_ifnum_list[] = { 7, 10, 11 };
947static const struct sierra_net_info_data sierra_net_info_data_68A3 = {
948 .rx_urb_size = 8 * 1024,
949 .whitelist = {
950 .infolen = ARRAY_SIZE(sierra_net_ifnum_list),
951 .ifaceinfo = sierra_net_ifnum_list
952 }
953};
954
955static const struct driver_info sierra_net_info_68A3 = {
956 .description = "Sierra Wireless USB-to-WWAN Modem",
957 .flags = FLAG_WWAN | FLAG_SEND_ZLP,
958 .bind = sierra_net_bind,
959 .unbind = sierra_net_unbind,
960 .status = sierra_net_status,
961 .rx_fixup = sierra_net_rx_fixup,
962 .tx_fixup = sierra_net_tx_fixup,
963 .data = (unsigned long)&sierra_net_info_data_68A3,
964};
965
966static const struct usb_device_id products[] = {
967 {USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless USB-to-WWAN modem */
968 .driver_info = (unsigned long) &sierra_net_info_68A3},
969
970 {}, /* last item */
971};
972MODULE_DEVICE_TABLE(usb, products);
973
974/* We are based on usbnet, so let it handle the USB driver specifics */
975static struct usb_driver sierra_net_driver = {
976 .name = "sierra_net",
977 .id_table = products,
978 .probe = usbnet_probe,
979 .disconnect = usbnet_disconnect,
980 .suspend = usbnet_suspend,
981 .resume = usbnet_resume,
982 .no_dynamic_id = 1,
983};
984
985static int __init sierra_net_init(void)
986{
987 BUILD_BUG_ON(FIELD_SIZEOF(struct usbnet, data)
988 < sizeof(struct cdc_state));
989
990 return usb_register(&sierra_net_driver);
991}
992
993static void __exit sierra_net_exit(void)
994{
995 usb_deregister(&sierra_net_driver);
996}
997
998module_exit(sierra_net_exit);
999module_init(sierra_net_init);
1000
1001MODULE_AUTHOR(DRIVER_AUTHOR);
1002MODULE_DESCRIPTION(DRIVER_DESC);
1003MODULE_VERSION(DRIVER_VERSION);
1004MODULE_LICENSE("GPL");
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index f9f0730b53d5..5ec542dd5b50 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -187,7 +187,6 @@ tx_drop:
187 return NETDEV_TX_OK; 187 return NETDEV_TX_OK;
188 188
189rx_drop: 189rx_drop:
190 kfree_skb(skb);
191 rcv_stats->rx_dropped++; 190 rcv_stats->rx_dropped++;
192 return NETDEV_TX_OK; 191 return NETDEV_TX_OK;
193} 192}
diff --git a/drivers/net/wireless/ath/ar9170/usb.c b/drivers/net/wireless/ath/ar9170/usb.c
index 99a6da464bd3..e1c2fcaa8bed 100644
--- a/drivers/net/wireless/ath/ar9170/usb.c
+++ b/drivers/net/wireless/ath/ar9170/usb.c
@@ -727,12 +727,16 @@ static void ar9170_usb_firmware_failed(struct ar9170_usb *aru)
727{ 727{
728 struct device *parent = aru->udev->dev.parent; 728 struct device *parent = aru->udev->dev.parent;
729 729
730 complete(&aru->firmware_loading_complete);
731
730 /* unbind anything failed */ 732 /* unbind anything failed */
731 if (parent) 733 if (parent)
732 down(&parent->sem); 734 down(&parent->sem);
733 device_release_driver(&aru->udev->dev); 735 device_release_driver(&aru->udev->dev);
734 if (parent) 736 if (parent)
735 up(&parent->sem); 737 up(&parent->sem);
738
739 usb_put_dev(aru->udev);
736} 740}
737 741
738static void ar9170_usb_firmware_finish(const struct firmware *fw, void *context) 742static void ar9170_usb_firmware_finish(const struct firmware *fw, void *context)
@@ -761,6 +765,8 @@ static void ar9170_usb_firmware_finish(const struct firmware *fw, void *context)
761 if (err) 765 if (err)
762 goto err_unrx; 766 goto err_unrx;
763 767
768 complete(&aru->firmware_loading_complete);
769 usb_put_dev(aru->udev);
764 return; 770 return;
765 771
766 err_unrx: 772 err_unrx:
@@ -858,6 +864,7 @@ static int ar9170_usb_probe(struct usb_interface *intf,
858 init_usb_anchor(&aru->tx_pending); 864 init_usb_anchor(&aru->tx_pending);
859 init_usb_anchor(&aru->tx_submitted); 865 init_usb_anchor(&aru->tx_submitted);
860 init_completion(&aru->cmd_wait); 866 init_completion(&aru->cmd_wait);
867 init_completion(&aru->firmware_loading_complete);
861 spin_lock_init(&aru->tx_urb_lock); 868 spin_lock_init(&aru->tx_urb_lock);
862 869
863 aru->tx_pending_urbs = 0; 870 aru->tx_pending_urbs = 0;
@@ -877,6 +884,7 @@ static int ar9170_usb_probe(struct usb_interface *intf,
877 if (err) 884 if (err)
878 goto err_freehw; 885 goto err_freehw;
879 886
887 usb_get_dev(aru->udev);
880 return request_firmware_nowait(THIS_MODULE, 1, "ar9170.fw", 888 return request_firmware_nowait(THIS_MODULE, 1, "ar9170.fw",
881 &aru->udev->dev, GFP_KERNEL, aru, 889 &aru->udev->dev, GFP_KERNEL, aru,
882 ar9170_usb_firmware_step2); 890 ar9170_usb_firmware_step2);
@@ -896,6 +904,9 @@ static void ar9170_usb_disconnect(struct usb_interface *intf)
896 return; 904 return;
897 905
898 aru->common.state = AR9170_IDLE; 906 aru->common.state = AR9170_IDLE;
907
908 wait_for_completion(&aru->firmware_loading_complete);
909
899 ar9170_unregister(&aru->common); 910 ar9170_unregister(&aru->common);
900 ar9170_usb_cancel_urbs(aru); 911 ar9170_usb_cancel_urbs(aru);
901 912
diff --git a/drivers/net/wireless/ath/ar9170/usb.h b/drivers/net/wireless/ath/ar9170/usb.h
index a2ce3b169ceb..919b06046eb3 100644
--- a/drivers/net/wireless/ath/ar9170/usb.h
+++ b/drivers/net/wireless/ath/ar9170/usb.h
@@ -71,6 +71,7 @@ struct ar9170_usb {
71 unsigned int tx_pending_urbs; 71 unsigned int tx_pending_urbs;
72 72
73 struct completion cmd_wait; 73 struct completion cmd_wait;
74 struct completion firmware_loading_complete;
74 int readlen; 75 int readlen;
75 u8 *readbuf; 76 u8 *readbuf;
76 77
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index c4844adff92a..92b3e64fc14d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -259,7 +259,7 @@ static struct iwl_lib_ops iwl6000_lib = {
259 EEPROM_5000_REG_BAND_3_CHANNELS, 259 EEPROM_5000_REG_BAND_3_CHANNELS,
260 EEPROM_5000_REG_BAND_4_CHANNELS, 260 EEPROM_5000_REG_BAND_4_CHANNELS,
261 EEPROM_5000_REG_BAND_5_CHANNELS, 261 EEPROM_5000_REG_BAND_5_CHANNELS,
262 EEPROM_5000_REG_BAND_24_HT40_CHANNELS, 262 EEPROM_6000_REG_BAND_24_HT40_CHANNELS,
263 EEPROM_5000_REG_BAND_52_HT40_CHANNELS 263 EEPROM_5000_REG_BAND_52_HT40_CHANNELS
264 }, 264 },
265 .verify_signature = iwlcore_eeprom_verify_signature, 265 .verify_signature = iwlcore_eeprom_verify_signature,
@@ -323,7 +323,7 @@ static struct iwl_lib_ops iwl6050_lib = {
323 EEPROM_5000_REG_BAND_3_CHANNELS, 323 EEPROM_5000_REG_BAND_3_CHANNELS,
324 EEPROM_5000_REG_BAND_4_CHANNELS, 324 EEPROM_5000_REG_BAND_4_CHANNELS,
325 EEPROM_5000_REG_BAND_5_CHANNELS, 325 EEPROM_5000_REG_BAND_5_CHANNELS,
326 EEPROM_5000_REG_BAND_24_HT40_CHANNELS, 326 EEPROM_6000_REG_BAND_24_HT40_CHANNELS,
327 EEPROM_5000_REG_BAND_52_HT40_CHANNELS 327 EEPROM_5000_REG_BAND_52_HT40_CHANNELS
328 }, 328 },
329 .verify_signature = iwlcore_eeprom_verify_signature, 329 .verify_signature = iwlcore_eeprom_verify_signature,
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 8b8e3e1cbb44..bdff56583e11 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3331,6 +3331,7 @@ static void iwl_cancel_deferred_work(struct iwl_priv *priv)
3331 3331
3332 cancel_delayed_work_sync(&priv->init_alive_start); 3332 cancel_delayed_work_sync(&priv->init_alive_start);
3333 cancel_delayed_work(&priv->scan_check); 3333 cancel_delayed_work(&priv->scan_check);
3334 cancel_work_sync(&priv->start_internal_scan);
3334 cancel_delayed_work(&priv->alive_start); 3335 cancel_delayed_work(&priv->alive_start);
3335 cancel_work_sync(&priv->beacon_update); 3336 cancel_work_sync(&priv->beacon_update);
3336 del_timer_sync(&priv->statistics_periodic); 3337 del_timer_sync(&priv->statistics_periodic);
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 6383d9f8c9b3..f4e59ae07f8e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -2621,7 +2621,9 @@ struct iwl_ssid_ie {
2621#define PROBE_OPTION_MAX_3945 4 2621#define PROBE_OPTION_MAX_3945 4
2622#define PROBE_OPTION_MAX 20 2622#define PROBE_OPTION_MAX 20
2623#define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF) 2623#define TX_CMD_LIFE_TIME_INFINITE cpu_to_le32(0xFFFFFFFF)
2624#define IWL_GOOD_CRC_TH cpu_to_le16(1) 2624#define IWL_GOOD_CRC_TH_DISABLED 0
2625#define IWL_GOOD_CRC_TH_DEFAULT cpu_to_le16(1)
2626#define IWL_GOOD_CRC_TH_NEVER cpu_to_le16(0xffff)
2625#define IWL_MAX_SCAN_SIZE 1024 2627#define IWL_MAX_SCAN_SIZE 1024
2626#define IWL_MAX_CMD_SIZE 4096 2628#define IWL_MAX_CMD_SIZE 4096
2627#define IWL_MAX_PROBE_REQUEST 200 2629#define IWL_MAX_PROBE_REQUEST 200
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 3352f7086632..049b652bcb5e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -3358,7 +3358,6 @@ static void iwl_force_rf_reset(struct iwl_priv *priv)
3358 */ 3358 */
3359 IWL_DEBUG_INFO(priv, "perform radio reset.\n"); 3359 IWL_DEBUG_INFO(priv, "perform radio reset.\n");
3360 iwl_internal_short_hw_scan(priv); 3360 iwl_internal_short_hw_scan(priv);
3361 return;
3362} 3361}
3363 3362
3364 3363
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 732590f5fe30..36940a9ec6b9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -506,7 +506,7 @@ void iwl_init_scan_params(struct iwl_priv *priv);
506int iwl_scan_cancel(struct iwl_priv *priv); 506int iwl_scan_cancel(struct iwl_priv *priv);
507int iwl_scan_cancel_timeout(struct iwl_priv *priv, unsigned long ms); 507int iwl_scan_cancel_timeout(struct iwl_priv *priv, unsigned long ms);
508int iwl_mac_hw_scan(struct ieee80211_hw *hw, struct cfg80211_scan_request *req); 508int iwl_mac_hw_scan(struct ieee80211_hw *hw, struct cfg80211_scan_request *req);
509int iwl_internal_short_hw_scan(struct iwl_priv *priv); 509void iwl_internal_short_hw_scan(struct iwl_priv *priv);
510int iwl_force_reset(struct iwl_priv *priv, int mode); 510int iwl_force_reset(struct iwl_priv *priv, int mode);
511u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame, 511u16 iwl_fill_probe_req(struct iwl_priv *priv, struct ieee80211_mgmt *frame,
512 const u8 *ie, int ie_len, int left); 512 const u8 *ie, int ie_len, int left);
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 6054c5fba0c1..ef1720a852e9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -1296,6 +1296,7 @@ struct iwl_priv {
1296 struct work_struct tt_work; 1296 struct work_struct tt_work;
1297 struct work_struct ct_enter; 1297 struct work_struct ct_enter;
1298 struct work_struct ct_exit; 1298 struct work_struct ct_exit;
1299 struct work_struct start_internal_scan;
1299 1300
1300 struct tasklet_struct irq_tasklet; 1301 struct tasklet_struct irq_tasklet;
1301 1302
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
index 4e1ba824dc50..8171c701e4e1 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
@@ -203,6 +203,10 @@ struct iwl_eeprom_enhanced_txpwr {
203#define EEPROM_5000_REG_BAND_52_HT40_CHANNELS ((0x92)\ 203#define EEPROM_5000_REG_BAND_52_HT40_CHANNELS ((0x92)\
204 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 22 bytes */ 204 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 22 bytes */
205 205
206/* 6000 regulatory - indirect access */
207#define EEPROM_6000_REG_BAND_24_HT40_CHANNELS ((0x80)\
208 | INDIRECT_ADDRESS | INDIRECT_REGULATORY) /* 14 bytes */
209
206/* 6000 and up regulatory tx power - indirect access */ 210/* 6000 and up regulatory tx power - indirect access */
207/* max. elements per section */ 211/* max. elements per section */
208#define EEPROM_MAX_TXPOWER_SECTION_ELEMENTS (8) 212#define EEPROM_MAX_TXPOWER_SECTION_ELEMENTS (8)
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 9ab0e412bf10..741e65ec8301 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -470,6 +470,8 @@ EXPORT_SYMBOL(iwl_init_scan_params);
470 470
471static int iwl_scan_initiate(struct iwl_priv *priv) 471static int iwl_scan_initiate(struct iwl_priv *priv)
472{ 472{
473 WARN_ON(!mutex_is_locked(&priv->mutex));
474
473 IWL_DEBUG_INFO(priv, "Starting scan...\n"); 475 IWL_DEBUG_INFO(priv, "Starting scan...\n");
474 set_bit(STATUS_SCANNING, &priv->status); 476 set_bit(STATUS_SCANNING, &priv->status);
475 priv->is_internal_short_scan = false; 477 priv->is_internal_short_scan = false;
@@ -547,24 +549,31 @@ EXPORT_SYMBOL(iwl_mac_hw_scan);
547 * internal short scan, this function should only been called while associated. 549 * internal short scan, this function should only been called while associated.
548 * It will reset and tune the radio to prevent possible RF related problem 550 * It will reset and tune the radio to prevent possible RF related problem
549 */ 551 */
550int iwl_internal_short_hw_scan(struct iwl_priv *priv) 552void iwl_internal_short_hw_scan(struct iwl_priv *priv)
551{ 553{
552 int ret = 0; 554 queue_work(priv->workqueue, &priv->start_internal_scan);
555}
556
557static void iwl_bg_start_internal_scan(struct work_struct *work)
558{
559 struct iwl_priv *priv =
560 container_of(work, struct iwl_priv, start_internal_scan);
561
562 mutex_lock(&priv->mutex);
553 563
554 if (!iwl_is_ready_rf(priv)) { 564 if (!iwl_is_ready_rf(priv)) {
555 ret = -EIO;
556 IWL_DEBUG_SCAN(priv, "not ready or exit pending\n"); 565 IWL_DEBUG_SCAN(priv, "not ready or exit pending\n");
557 goto out; 566 goto unlock;
558 } 567 }
568
559 if (test_bit(STATUS_SCANNING, &priv->status)) { 569 if (test_bit(STATUS_SCANNING, &priv->status)) {
560 IWL_DEBUG_SCAN(priv, "Scan already in progress.\n"); 570 IWL_DEBUG_SCAN(priv, "Scan already in progress.\n");
561 ret = -EAGAIN; 571 goto unlock;
562 goto out;
563 } 572 }
573
564 if (test_bit(STATUS_SCAN_ABORTING, &priv->status)) { 574 if (test_bit(STATUS_SCAN_ABORTING, &priv->status)) {
565 IWL_DEBUG_SCAN(priv, "Scan request while abort pending\n"); 575 IWL_DEBUG_SCAN(priv, "Scan request while abort pending\n");
566 ret = -EAGAIN; 576 goto unlock;
567 goto out;
568 } 577 }
569 578
570 priv->scan_bands = 0; 579 priv->scan_bands = 0;
@@ -577,9 +586,8 @@ int iwl_internal_short_hw_scan(struct iwl_priv *priv)
577 set_bit(STATUS_SCANNING, &priv->status); 586 set_bit(STATUS_SCANNING, &priv->status);
578 priv->is_internal_short_scan = true; 587 priv->is_internal_short_scan = true;
579 queue_work(priv->workqueue, &priv->request_scan); 588 queue_work(priv->workqueue, &priv->request_scan);
580 589 unlock:
581out: 590 mutex_unlock(&priv->mutex);
582 return ret;
583} 591}
584EXPORT_SYMBOL(iwl_internal_short_hw_scan); 592EXPORT_SYMBOL(iwl_internal_short_hw_scan);
585 593
@@ -805,16 +813,29 @@ static void iwl_bg_request_scan(struct work_struct *data)
805 rate = IWL_RATE_1M_PLCP; 813 rate = IWL_RATE_1M_PLCP;
806 rate_flags = RATE_MCS_CCK_MSK; 814 rate_flags = RATE_MCS_CCK_MSK;
807 } 815 }
808 scan->good_CRC_th = 0; 816 scan->good_CRC_th = IWL_GOOD_CRC_TH_DISABLED;
809 } else if (priv->scan_bands & BIT(IEEE80211_BAND_5GHZ)) { 817 } else if (priv->scan_bands & BIT(IEEE80211_BAND_5GHZ)) {
810 band = IEEE80211_BAND_5GHZ; 818 band = IEEE80211_BAND_5GHZ;
811 rate = IWL_RATE_6M_PLCP; 819 rate = IWL_RATE_6M_PLCP;
812 /* 820 /*
813 * If active scaning is requested but a certain channel 821 * If active scanning is requested but a certain channel is
814 * is marked passive, we can do active scanning if we 822 * marked passive, we can do active scanning if we detect
815 * detect transmissions. 823 * transmissions.
824 *
825 * There is an issue with some firmware versions that triggers
826 * a sysassert on a "good CRC threshold" of zero (== disabled),
827 * on a radar channel even though this means that we should NOT
828 * send probes.
829 *
830 * The "good CRC threshold" is the number of frames that we
831 * need to receive during our dwell time on a channel before
832 * sending out probes -- setting this to a huge value will
833 * mean we never reach it, but at the same time work around
834 * the aforementioned issue. Thus use IWL_GOOD_CRC_TH_NEVER
835 * here instead of IWL_GOOD_CRC_TH_DISABLED.
816 */ 836 */
817 scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH : 0; 837 scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT :
838 IWL_GOOD_CRC_TH_NEVER;
818 839
819 /* Force use of chains B and C (0x6) for scan Rx for 4965 840 /* Force use of chains B and C (0x6) for scan Rx for 4965
820 * Avoid A (0x1) because of its off-channel reception on A-band. 841 * Avoid A (0x1) because of its off-channel reception on A-band.
@@ -965,6 +986,7 @@ void iwl_setup_scan_deferred_work(struct iwl_priv *priv)
965 INIT_WORK(&priv->scan_completed, iwl_bg_scan_completed); 986 INIT_WORK(&priv->scan_completed, iwl_bg_scan_completed);
966 INIT_WORK(&priv->request_scan, iwl_bg_request_scan); 987 INIT_WORK(&priv->request_scan, iwl_bg_request_scan);
967 INIT_WORK(&priv->abort_scan, iwl_bg_abort_scan); 988 INIT_WORK(&priv->abort_scan, iwl_bg_abort_scan);
989 INIT_WORK(&priv->start_internal_scan, iwl_bg_start_internal_scan);
968 INIT_DELAYED_WORK(&priv->scan_check, iwl_bg_scan_check); 990 INIT_DELAYED_WORK(&priv->scan_check, iwl_bg_scan_check);
969} 991}
970EXPORT_SYMBOL(iwl_setup_scan_deferred_work); 992EXPORT_SYMBOL(iwl_setup_scan_deferred_work);
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index b55e4f39a9e1..b74a56c48d26 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -2967,7 +2967,8 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
2967 * is marked passive, we can do active scanning if we 2967 * is marked passive, we can do active scanning if we
2968 * detect transmissions. 2968 * detect transmissions.
2969 */ 2969 */
2970 scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH : 0; 2970 scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT :
2971 IWL_GOOD_CRC_TH_DISABLED;
2971 band = IEEE80211_BAND_5GHZ; 2972 band = IEEE80211_BAND_5GHZ;
2972 } else { 2973 } else {
2973 IWL_WARN(priv, "Invalid scan band count\n"); 2974 IWL_WARN(priv, "Invalid scan band count\n");
diff --git a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
index 269fda362836..c24067f1a0cb 100644
--- a/drivers/net/wireless/p54/p54pci.c
+++ b/drivers/net/wireless/p54/p54pci.c
@@ -246,7 +246,7 @@ static void p54p_check_tx_ring(struct ieee80211_hw *dev, u32 *index,
246 u32 idx, i; 246 u32 idx, i;
247 247
248 i = (*index) % ring_limit; 248 i = (*index) % ring_limit;
249 (*index) = idx = le32_to_cpu(ring_control->device_idx[1]); 249 (*index) = idx = le32_to_cpu(ring_control->device_idx[ring_index]);
250 idx %= ring_limit; 250 idx %= ring_limit;
251 251
252 while (i != idx) { 252 while (i != idx) {
diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c
index 18ecae4a4375..b4748337223b 100644
--- a/drivers/of/of_mdio.c
+++ b/drivers/of/of_mdio.c
@@ -69,7 +69,7 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
69 } 69 }
70 70
71 phy = get_phy_device(mdio, be32_to_cpup(addr)); 71 phy = get_phy_device(mdio, be32_to_cpup(addr));
72 if (!phy) { 72 if (!phy || IS_ERR(phy)) {
73 dev_err(&mdio->dev, "error probing PHY at address %i\n", 73 dev_err(&mdio->dev, "error probing PHY at address %i\n",
74 *addr); 74 *addr);
75 continue; 75 continue;
diff --git a/drivers/pci/hotplug/rpadlpar_core.c b/drivers/pci/hotplug/rpadlpar_core.c
index 4e3e0382c16e..083034710fa6 100644
--- a/drivers/pci/hotplug/rpadlpar_core.c
+++ b/drivers/pci/hotplug/rpadlpar_core.c
@@ -20,6 +20,7 @@
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/pci.h> 21#include <linux/pci.h>
22#include <linux/string.h> 22#include <linux/string.h>
23#include <linux/vmalloc.h>
23 24
24#include <asm/pci-bridge.h> 25#include <asm/pci-bridge.h>
25#include <linux/mutex.h> 26#include <linux/mutex.h>
@@ -430,6 +431,8 @@ int dlpar_remove_slot(char *drc_name)
430 rc = dlpar_remove_pci_slot(drc_name, dn); 431 rc = dlpar_remove_pci_slot(drc_name, dn);
431 break; 432 break;
432 } 433 }
434 vm_unmap_aliases();
435
433 printk(KERN_INFO "%s: slot %s removed\n", DLPAR_MODULE_NAME, drc_name); 436 printk(KERN_INFO "%s: slot %s removed\n", DLPAR_MODULE_NAME, drc_name);
434exit: 437exit:
435 mutex_unlock(&rpadlpar_mutex); 438 mutex_unlock(&rpadlpar_mutex);
diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c
index 719702240780..ef7411c660b9 100644
--- a/drivers/pci/hotplug/rpaphp_core.c
+++ b/drivers/pci/hotplug/rpaphp_core.c
@@ -29,6 +29,7 @@
29#include <linux/pci_hotplug.h> 29#include <linux/pci_hotplug.h>
30#include <linux/smp.h> 30#include <linux/smp.h>
31#include <linux/init.h> 31#include <linux/init.h>
32#include <linux/vmalloc.h>
32#include <asm/eeh.h> /* for eeh_add_device() */ 33#include <asm/eeh.h> /* for eeh_add_device() */
33#include <asm/rtas.h> /* rtas_call */ 34#include <asm/rtas.h> /* rtas_call */
34#include <asm/pci-bridge.h> /* for pci_controller */ 35#include <asm/pci-bridge.h> /* for pci_controller */
@@ -418,6 +419,8 @@ static int disable_slot(struct hotplug_slot *hotplug_slot)
418 return -EINVAL; 419 return -EINVAL;
419 420
420 pcibios_remove_pci_devices(slot->bus); 421 pcibios_remove_pci_devices(slot->bus);
422 vm_unmap_aliases();
423
421 slot->state = NOT_CONFIGURED; 424 slot->state = NOT_CONFIGURED;
422 return 0; 425 return 0;
423} 426}
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 5ea587e59e48..37499127c801 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -679,7 +679,7 @@ static void __pci_start_power_transition(struct pci_dev *dev, pci_power_t state)
679 */ 679 */
680int __pci_complete_power_transition(struct pci_dev *dev, pci_power_t state) 680int __pci_complete_power_transition(struct pci_dev *dev, pci_power_t state)
681{ 681{
682 return state > PCI_D0 ? 682 return state >= PCI_D0 ?
683 pci_platform_power_transition(dev, state) : -EINVAL; 683 pci_platform_power_transition(dev, state) : -EINVAL;
684} 684}
685EXPORT_SYMBOL_GPL(__pci_complete_power_transition); 685EXPORT_SYMBOL_GPL(__pci_complete_power_transition);
@@ -716,10 +716,6 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
716 */ 716 */
717 return 0; 717 return 0;
718 718
719 /* Check if we're already there */
720 if (dev->current_state == state)
721 return 0;
722
723 __pci_start_power_transition(dev, state); 719 __pci_start_power_transition(dev, state);
724 720
725 /* This device is quirked not to be put into D3, so 721 /* This device is quirked not to be put into D3, so
diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c
index aa495ad9bbd4..7a711ee314b7 100644
--- a/drivers/pci/pcie/aer/aerdrv.c
+++ b/drivers/pci/pcie/aer/aerdrv.c
@@ -244,11 +244,17 @@ static pci_ers_result_t aer_root_reset(struct pci_dev *dev)
244 244
245 /* Assert Secondary Bus Reset */ 245 /* Assert Secondary Bus Reset */
246 pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &p2p_ctrl); 246 pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &p2p_ctrl);
247 p2p_ctrl |= PCI_CB_BRIDGE_CTL_CB_RESET; 247 p2p_ctrl |= PCI_BRIDGE_CTL_BUS_RESET;
248 pci_write_config_word(dev, PCI_BRIDGE_CONTROL, p2p_ctrl); 248 pci_write_config_word(dev, PCI_BRIDGE_CONTROL, p2p_ctrl);
249 249
250 /*
251 * we should send hot reset message for 2ms to allow it time to
252 * propogate to all downstream ports
253 */
254 msleep(2);
255
250 /* De-assert Secondary Bus Reset */ 256 /* De-assert Secondary Bus Reset */
251 p2p_ctrl &= ~PCI_CB_BRIDGE_CTL_CB_RESET; 257 p2p_ctrl &= ~PCI_BRIDGE_CTL_BUS_RESET;
252 pci_write_config_word(dev, PCI_BRIDGE_CONTROL, p2p_ctrl); 258 pci_write_config_word(dev, PCI_BRIDGE_CONTROL, p2p_ctrl);
253 259
254 /* 260 /*
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 882bd8d29fe3..c82548afcd5c 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -174,19 +174,14 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
174 pci_read_config_dword(dev, pos, &sz); 174 pci_read_config_dword(dev, pos, &sz);
175 pci_write_config_dword(dev, pos, l); 175 pci_write_config_dword(dev, pos, l);
176 176
177 if (!sz)
178 goto fail; /* BAR not implemented */
179
180 /* 177 /*
181 * All bits set in sz means the device isn't working properly. 178 * All bits set in sz means the device isn't working properly.
182 * If it's a memory BAR or a ROM, bit 0 must be clear; if it's 179 * If the BAR isn't implemented, all bits must be 0. If it's a
183 * an io BAR, bit 1 must be clear. 180 * memory BAR or a ROM, bit 0 must be clear; if it's an io BAR, bit
181 * 1 must be clear.
184 */ 182 */
185 if (sz == 0xffffffff) { 183 if (!sz || sz == 0xffffffff)
186 dev_err(&dev->dev, "reg %x: invalid size %#x; broken device?\n",
187 pos, sz);
188 goto fail; 184 goto fail;
189 }
190 185
191 /* 186 /*
192 * I don't know how l can have all bits set. Copied from old code. 187 * I don't know how l can have all bits set. Copied from old code.
@@ -249,17 +244,13 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
249 pos, res); 244 pos, res);
250 } 245 }
251 } else { 246 } else {
252 u32 size = pci_size(l, sz, mask); 247 sz = pci_size(l, sz, mask);
253 248
254 if (!size) { 249 if (!sz)
255 dev_err(&dev->dev, "reg %x: invalid size "
256 "(l %#x sz %#x mask %#x); broken device?",
257 pos, l, sz, mask);
258 goto fail; 250 goto fail;
259 }
260 251
261 res->start = l; 252 res->start = l;
262 res->end = l + size; 253 res->end = l + sz;
263 254
264 dev_printk(KERN_DEBUG, &dev->dev, "reg %x: %pR\n", pos, res); 255 dev_printk(KERN_DEBUG, &dev->dev, "reg %x: %pR\n", pos, res);
265 } 256 }
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 4fe36d2e1049..19b111383f62 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -838,65 +838,11 @@ static void pci_bus_dump_resources(struct pci_bus *bus)
838 } 838 }
839} 839}
840 840
841static int __init pci_bus_get_depth(struct pci_bus *bus)
842{
843 int depth = 0;
844 struct pci_dev *dev;
845
846 list_for_each_entry(dev, &bus->devices, bus_list) {
847 int ret;
848 struct pci_bus *b = dev->subordinate;
849 if (!b)
850 continue;
851
852 ret = pci_bus_get_depth(b);
853 if (ret + 1 > depth)
854 depth = ret + 1;
855 }
856
857 return depth;
858}
859static int __init pci_get_max_depth(void)
860{
861 int depth = 0;
862 struct pci_bus *bus;
863
864 list_for_each_entry(bus, &pci_root_buses, node) {
865 int ret;
866
867 ret = pci_bus_get_depth(bus);
868 if (ret > depth)
869 depth = ret;
870 }
871
872 return depth;
873}
874
875/*
876 * first try will not touch pci bridge res
877 * second and later try will clear small leaf bridge res
878 * will stop till to the max deepth if can not find good one
879 */
880void __init 841void __init
881pci_assign_unassigned_resources(void) 842pci_assign_unassigned_resources(void)
882{ 843{
883 struct pci_bus *bus; 844 struct pci_bus *bus;
884 int tried_times = 0;
885 enum release_type rel_type = leaf_only;
886 struct resource_list_x head, *list;
887 unsigned long type_mask = IORESOURCE_IO | IORESOURCE_MEM |
888 IORESOURCE_PREFETCH;
889 unsigned long failed_type;
890 int max_depth = pci_get_max_depth();
891 int pci_try_num;
892 845
893 head.next = NULL;
894
895 pci_try_num = max_depth + 1;
896 printk(KERN_DEBUG "PCI: max bus depth: %d pci_try_num: %d\n",
897 max_depth, pci_try_num);
898
899again:
900 /* Depth first, calculate sizes and alignments of all 846 /* Depth first, calculate sizes and alignments of all
901 subordinate buses. */ 847 subordinate buses. */
902 list_for_each_entry(bus, &pci_root_buses, node) { 848 list_for_each_entry(bus, &pci_root_buses, node) {
@@ -904,65 +850,9 @@ again:
904 } 850 }
905 /* Depth last, allocate resources and update the hardware. */ 851 /* Depth last, allocate resources and update the hardware. */
906 list_for_each_entry(bus, &pci_root_buses, node) { 852 list_for_each_entry(bus, &pci_root_buses, node) {
907 __pci_bus_assign_resources(bus, &head); 853 pci_bus_assign_resources(bus);
908 }
909 tried_times++;
910
911 /* any device complain? */
912 if (!head.next)
913 goto enable_and_dump;
914 failed_type = 0;
915 for (list = head.next; list;) {
916 failed_type |= list->flags;
917 list = list->next;
918 }
919 /*
920 * io port are tight, don't try extra
921 * or if reach the limit, don't want to try more
922 */
923 failed_type &= type_mask;
924 if ((failed_type == IORESOURCE_IO) || (tried_times >= pci_try_num)) {
925 free_failed_list(&head);
926 goto enable_and_dump;
927 }
928
929 printk(KERN_DEBUG "PCI: No. %d try to assign unassigned res\n",
930 tried_times + 1);
931
932 /* third times and later will not check if it is leaf */
933 if ((tried_times + 1) > 2)
934 rel_type = whole_subtree;
935
936 /*
937 * Try to release leaf bridge's resources that doesn't fit resource of
938 * child device under that bridge
939 */
940 for (list = head.next; list;) {
941 bus = list->dev->bus;
942 pci_bus_release_bridge_resources(bus, list->flags & type_mask,
943 rel_type);
944 list = list->next;
945 }
946 /* restore size and flags */
947 for (list = head.next; list;) {
948 struct resource *res = list->res;
949
950 res->start = list->start;
951 res->end = list->end;
952 res->flags = list->flags;
953 if (list->dev->subordinate)
954 res->flags = 0;
955
956 list = list->next;
957 }
958 free_failed_list(&head);
959
960 goto again;
961
962enable_and_dump:
963 /* Depth last, update the hardware. */
964 list_for_each_entry(bus, &pci_root_buses, node)
965 pci_enable_bridges(bus); 854 pci_enable_bridges(bus);
855 }
966 856
967 /* dump the resource on buses */ 857 /* dump the resource on buses */
968 list_for_each_entry(bus, &pci_root_buses, node) { 858 list_for_each_entry(bus, &pci_root_buses, node) {
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index 75ed866e6953..c3383750e333 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -671,20 +671,22 @@ static int pccardd(void *__skt)
671 socket_remove(skt); 671 socket_remove(skt);
672 if (sysfs_events & PCMCIA_UEVENT_INSERT) 672 if (sysfs_events & PCMCIA_UEVENT_INSERT)
673 socket_insert(skt); 673 socket_insert(skt);
674 if ((sysfs_events & PCMCIA_UEVENT_RESUME) &&
675 !(skt->state & SOCKET_CARDBUS)) {
676 ret = socket_resume(skt);
677 if (!ret && skt->callback)
678 skt->callback->resume(skt);
679 }
680 if ((sysfs_events & PCMCIA_UEVENT_SUSPEND) && 674 if ((sysfs_events & PCMCIA_UEVENT_SUSPEND) &&
681 !(skt->state & SOCKET_CARDBUS)) { 675 !(skt->state & SOCKET_CARDBUS)) {
682 if (skt->callback) 676 if (skt->callback)
683 ret = skt->callback->suspend(skt); 677 ret = skt->callback->suspend(skt);
684 else 678 else
685 ret = 0; 679 ret = 0;
686 if (!ret) 680 if (!ret) {
687 socket_suspend(skt); 681 socket_suspend(skt);
682 msleep(100);
683 }
684 }
685 if ((sysfs_events & PCMCIA_UEVENT_RESUME) &&
686 !(skt->state & SOCKET_CARDBUS)) {
687 ret = socket_resume(skt);
688 if (!ret && skt->callback)
689 skt->callback->resume(skt);
688 } 690 }
689 if ((sysfs_events & PCMCIA_UEVENT_REQUERY) && 691 if ((sysfs_events & PCMCIA_UEVENT_REQUERY) &&
690 !(skt->state & SOCKET_CARDBUS)) { 692 !(skt->state & SOCKET_CARDBUS)) {
diff --git a/drivers/pcmcia/db1xxx_ss.c b/drivers/pcmcia/db1xxx_ss.c
index 2d48196a48cd..0f4cc3f00028 100644
--- a/drivers/pcmcia/db1xxx_ss.c
+++ b/drivers/pcmcia/db1xxx_ss.c
@@ -146,7 +146,6 @@ static irqreturn_t db1200_pcmcia_cdirq(int irq, void *data)
146static int db1x_pcmcia_setup_irqs(struct db1x_pcmcia_sock *sock) 146static int db1x_pcmcia_setup_irqs(struct db1x_pcmcia_sock *sock)
147{ 147{
148 int ret; 148 int ret;
149 unsigned long flags;
150 149
151 if (sock->stschg_irq != -1) { 150 if (sock->stschg_irq != -1) {
152 ret = request_irq(sock->stschg_irq, db1000_pcmcia_stschgirq, 151 ret = request_irq(sock->stschg_irq, db1000_pcmcia_stschgirq,
@@ -162,30 +161,23 @@ static int db1x_pcmcia_setup_irqs(struct db1x_pcmcia_sock *sock)
162 * active one disabled. 161 * active one disabled.
163 */ 162 */
164 if (sock->board_type == BOARD_TYPE_DB1200) { 163 if (sock->board_type == BOARD_TYPE_DB1200) {
165 local_irq_save(flags);
166
167 ret = request_irq(sock->insert_irq, db1200_pcmcia_cdirq, 164 ret = request_irq(sock->insert_irq, db1200_pcmcia_cdirq,
168 IRQF_DISABLED, "pcmcia_insert", sock); 165 IRQF_DISABLED, "pcmcia_insert", sock);
169 if (ret) { 166 if (ret)
170 local_irq_restore(flags);
171 goto out1; 167 goto out1;
172 }
173 168
174 ret = request_irq(sock->eject_irq, db1200_pcmcia_cdirq, 169 ret = request_irq(sock->eject_irq, db1200_pcmcia_cdirq,
175 IRQF_DISABLED, "pcmcia_eject", sock); 170 IRQF_DISABLED, "pcmcia_eject", sock);
176 if (ret) { 171 if (ret) {
177 free_irq(sock->insert_irq, sock); 172 free_irq(sock->insert_irq, sock);
178 local_irq_restore(flags);
179 goto out1; 173 goto out1;
180 } 174 }
181 175
182 /* disable the currently active one */ 176 /* enable the currently silent one */
183 if (db1200_card_inserted(sock)) 177 if (db1200_card_inserted(sock))
184 disable_irq_nosync(sock->insert_irq); 178 enable_irq(sock->eject_irq);
185 else 179 else
186 disable_irq_nosync(sock->eject_irq); 180 enable_irq(sock->insert_irq);
187
188 local_irq_restore(flags);
189 } else { 181 } else {
190 /* all other (older) Db1x00 boards use a GPIO to show 182 /* all other (older) Db1x00 boards use a GPIO to show
191 * card detection status: use both-edge triggers. 183 * card detection status: use both-edge triggers.
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 4014cf8e4a26..041eee43fd8d 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -335,7 +335,6 @@ static void pcmcia_card_remove(struct pcmcia_socket *s, struct pcmcia_device *le
335 335
336 mutex_lock(&s->ops_mutex); 336 mutex_lock(&s->ops_mutex);
337 list_del(&p_dev->socket_device_list); 337 list_del(&p_dev->socket_device_list);
338 p_dev->_removed = 1;
339 mutex_unlock(&s->ops_mutex); 338 mutex_unlock(&s->ops_mutex);
340 339
341 dev_dbg(&p_dev->dev, "unregistering device\n"); 340 dev_dbg(&p_dev->dev, "unregistering device\n");
@@ -654,14 +653,7 @@ static int pcmcia_requery_callback(struct device *dev, void * _data)
654 653
655static void pcmcia_requery(struct pcmcia_socket *s) 654static void pcmcia_requery(struct pcmcia_socket *s)
656{ 655{
657 int present, has_pfc; 656 int has_pfc;
658
659 mutex_lock(&s->ops_mutex);
660 present = s->pcmcia_state.present;
661 mutex_unlock(&s->ops_mutex);
662
663 if (!present)
664 return;
665 657
666 if (s->functions == 0) { 658 if (s->functions == 0) {
667 pcmcia_card_add(s); 659 pcmcia_card_add(s);
@@ -828,11 +820,12 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
828 } 820 }
829 821
830 if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) { 822 if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) {
831 if (dev->device_no != did->device_no) 823 dev_dbg(&dev->dev, "this is a pseudo-multi-function device\n");
832 return 0;
833 mutex_lock(&dev->socket->ops_mutex); 824 mutex_lock(&dev->socket->ops_mutex);
834 dev->socket->pcmcia_state.has_pfc = 1; 825 dev->socket->pcmcia_state.has_pfc = 1;
835 mutex_unlock(&dev->socket->ops_mutex); 826 mutex_unlock(&dev->socket->ops_mutex);
827 if (dev->device_no != did->device_no)
828 return 0;
836 } 829 }
837 830
838 if (did->match_flags & PCMCIA_DEV_ID_MATCH_FUNC_ID) { 831 if (did->match_flags & PCMCIA_DEV_ID_MATCH_FUNC_ID) {
@@ -843,7 +836,7 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
843 836
844 /* if this is a pseudo-multi-function device, 837 /* if this is a pseudo-multi-function device,
845 * we need explicit matches */ 838 * we need explicit matches */
846 if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) 839 if (dev->socket->pcmcia_state.has_pfc)
847 return 0; 840 return 0;
848 if (dev->device_no) 841 if (dev->device_no)
849 return 0; 842 return 0;
@@ -1260,9 +1253,7 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1260 1253
1261 switch (event) { 1254 switch (event) {
1262 case CS_EVENT_CARD_REMOVAL: 1255 case CS_EVENT_CARD_REMOVAL:
1263 mutex_lock(&s->ops_mutex); 1256 atomic_set(&skt->present, 0);
1264 s->pcmcia_state.present = 0;
1265 mutex_unlock(&s->ops_mutex);
1266 pcmcia_card_remove(skt, NULL); 1257 pcmcia_card_remove(skt, NULL);
1267 handle_event(skt, event); 1258 handle_event(skt, event);
1268 mutex_lock(&s->ops_mutex); 1259 mutex_lock(&s->ops_mutex);
@@ -1271,9 +1262,9 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1271 break; 1262 break;
1272 1263
1273 case CS_EVENT_CARD_INSERTION: 1264 case CS_EVENT_CARD_INSERTION:
1265 atomic_set(&skt->present, 1);
1274 mutex_lock(&s->ops_mutex); 1266 mutex_lock(&s->ops_mutex);
1275 s->pcmcia_state.has_pfc = 0; 1267 s->pcmcia_state.has_pfc = 0;
1276 s->pcmcia_state.present = 1;
1277 destroy_cis_cache(s); /* to be on the safe side... */ 1268 destroy_cis_cache(s); /* to be on the safe side... */
1278 mutex_unlock(&s->ops_mutex); 1269 mutex_unlock(&s->ops_mutex);
1279 pcmcia_card_add(skt); 1270 pcmcia_card_add(skt);
@@ -1292,6 +1283,7 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1292 destroy_cis_cache(skt); 1283 destroy_cis_cache(skt);
1293 kfree(skt->fake_cis); 1284 kfree(skt->fake_cis);
1294 skt->fake_cis = NULL; 1285 skt->fake_cis = NULL;
1286 s->functions = 0;
1295 mutex_unlock(&s->ops_mutex); 1287 mutex_unlock(&s->ops_mutex);
1296 /* now, add the new card */ 1288 /* now, add the new card */
1297 ds_event(skt, CS_EVENT_CARD_INSERTION, 1289 ds_event(skt, CS_EVENT_CARD_INSERTION,
@@ -1313,7 +1305,13 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
1313 return 0; 1305 return 0;
1314} /* ds_event */ 1306} /* ds_event */
1315 1307
1316 1308/*
1309 * NOTE: This is racy. There's no guarantee the card will still be
1310 * physically present, even if the call to this function returns
1311 * non-NULL. Furthermore, the device driver most likely is unbound
1312 * almost immediately, so the timeframe where pcmcia_dev_present
1313 * returns NULL is probably really really small.
1314 */
1317struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *_p_dev) 1315struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *_p_dev)
1318{ 1316{
1319 struct pcmcia_device *p_dev; 1317 struct pcmcia_device *p_dev;
@@ -1323,22 +1321,9 @@ struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *_p_dev)
1323 if (!p_dev) 1321 if (!p_dev)
1324 return NULL; 1322 return NULL;
1325 1323
1326 mutex_lock(&p_dev->socket->ops_mutex); 1324 if (atomic_read(&p_dev->socket->present) != 0)
1327 if (!p_dev->socket->pcmcia_state.present) 1325 ret = p_dev;
1328 goto out;
1329
1330 if (p_dev->socket->pcmcia_state.dead)
1331 goto out;
1332 1326
1333 if (p_dev->_removed)
1334 goto out;
1335
1336 if (p_dev->suspended)
1337 goto out;
1338
1339 ret = p_dev;
1340 out:
1341 mutex_unlock(&p_dev->socket->ops_mutex);
1342 pcmcia_put_dev(p_dev); 1327 pcmcia_put_dev(p_dev);
1343 return ret; 1328 return ret;
1344} 1329}
@@ -1388,6 +1373,8 @@ static int __devinit pcmcia_bus_add_socket(struct device *dev,
1388 return ret; 1373 return ret;
1389 } 1374 }
1390 1375
1376 atomic_set(&socket->present, 0);
1377
1391 return 0; 1378 return 0;
1392} 1379}
1393 1380
@@ -1399,10 +1386,6 @@ static void pcmcia_bus_remove_socket(struct device *dev,
1399 if (!socket) 1386 if (!socket)
1400 return; 1387 return;
1401 1388
1402 mutex_lock(&socket->ops_mutex);
1403 socket->pcmcia_state.dead = 1;
1404 mutex_unlock(&socket->ops_mutex);
1405
1406 pccard_register_pcmcia(socket, NULL); 1389 pccard_register_pcmcia(socket, NULL);
1407 1390
1408 /* unregister any unbound devices */ 1391 /* unregister any unbound devices */
diff --git a/drivers/pcmcia/pcmcia_ioctl.c b/drivers/pcmcia/pcmcia_ioctl.c
index 104e73d5d86c..7631faa0cadd 100644
--- a/drivers/pcmcia/pcmcia_ioctl.c
+++ b/drivers/pcmcia/pcmcia_ioctl.c
@@ -711,7 +711,7 @@ static int ds_open(struct inode *inode, struct file *file)
711 warning_printed = 1; 711 warning_printed = 1;
712 } 712 }
713 713
714 if (s->pcmcia_state.present) 714 if (atomic_read(&s->present))
715 queue_event(user, CS_EVENT_CARD_INSERTION); 715 queue_event(user, CS_EVENT_CARD_INSERTION);
716out: 716out:
717 unlock_kernel(); 717 unlock_kernel();
@@ -770,9 +770,6 @@ static ssize_t ds_read(struct file *file, char __user *buf,
770 return -EIO; 770 return -EIO;
771 771
772 s = user->socket; 772 s = user->socket;
773 if (s->pcmcia_state.dead)
774 return -EIO;
775
776 ret = wait_event_interruptible(s->queue, !queue_empty(user)); 773 ret = wait_event_interruptible(s->queue, !queue_empty(user));
777 if (ret == 0) 774 if (ret == 0)
778 ret = put_user(get_queued_event(user), (int __user *)buf) ? -EFAULT : 4; 775 ret = put_user(get_queued_event(user), (int __user *)buf) ? -EFAULT : 4;
@@ -838,8 +835,6 @@ static int ds_ioctl(struct inode *inode, struct file *file,
838 return -EIO; 835 return -EIO;
839 836
840 s = user->socket; 837 s = user->socket;
841 if (s->pcmcia_state.dead)
842 return -EIO;
843 838
844 size = (cmd & IOCSIZE_MASK) >> IOCSIZE_SHIFT; 839 size = (cmd & IOCSIZE_MASK) >> IOCSIZE_SHIFT;
845 if (size > sizeof(ds_ioctl_arg_t)) 840 if (size > sizeof(ds_ioctl_arg_t))
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 7bec4588c268..6c3320d75055 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -390,6 +390,7 @@ config EEEPC_WMI
390 depends on ACPI_WMI 390 depends on ACPI_WMI
391 depends on INPUT 391 depends on INPUT
392 depends on EXPERIMENTAL 392 depends on EXPERIMENTAL
393 select INPUT_SPARSEKMAP
393 ---help--- 394 ---help---
394 Say Y here if you want to support WMI-based hotkeys on Eee PC laptops. 395 Say Y here if you want to support WMI-based hotkeys on Eee PC laptops.
395 396
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index 52262b012abb..efe8f6388906 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -79,15 +79,15 @@ static uint wapf = 1;
79module_param(wapf, uint, 0644); 79module_param(wapf, uint, 0644);
80MODULE_PARM_DESC(wapf, "WAPF value"); 80MODULE_PARM_DESC(wapf, "WAPF value");
81 81
82static uint wlan_status = 1; 82static int wlan_status = 1;
83static uint bluetooth_status = 1; 83static int bluetooth_status = 1;
84 84
85module_param(wlan_status, uint, 0644); 85module_param(wlan_status, int, 0644);
86MODULE_PARM_DESC(wlan_status, "Set the wireless status on boot " 86MODULE_PARM_DESC(wlan_status, "Set the wireless status on boot "
87 "(0 = disabled, 1 = enabled, -1 = don't do anything). " 87 "(0 = disabled, 1 = enabled, -1 = don't do anything). "
88 "default is 1"); 88 "default is 1");
89 89
90module_param(bluetooth_status, uint, 0644); 90module_param(bluetooth_status, int, 0644);
91MODULE_PARM_DESC(bluetooth_status, "Set the wireless status on boot " 91MODULE_PARM_DESC(bluetooth_status, "Set the wireless status on boot "
92 "(0 = disabled, 1 = enabled, -1 = don't do anything). " 92 "(0 = disabled, 1 = enabled, -1 = don't do anything). "
93 "default is 1"); 93 "default is 1");
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index 6ba6c30e5bb6..66f53c3c35e8 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -217,6 +217,7 @@ static void dell_wmi_notify(u32 value, void *context)
217 if (dell_new_hk_type && (buffer_entry[1] != 0x10)) { 217 if (dell_new_hk_type && (buffer_entry[1] != 0x10)) {
218 printk(KERN_INFO "dell-wmi: Received unknown WMI event" 218 printk(KERN_INFO "dell-wmi: Received unknown WMI event"
219 " (0x%x)\n", buffer_entry[1]); 219 " (0x%x)\n", buffer_entry[1]);
220 kfree(obj);
220 return; 221 return;
221 } 222 }
222 223
@@ -234,7 +235,7 @@ static void dell_wmi_notify(u32 value, void *context)
234 key->keycode == KEY_BRIGHTNESSDOWN) && acpi_video) { 235 key->keycode == KEY_BRIGHTNESSDOWN) && acpi_video) {
235 /* Don't report brightness notifications that will also 236 /* Don't report brightness notifications that will also
236 * come via ACPI */ 237 * come via ACPI */
237 return; 238 ;
238 } else { 239 } else {
239 input_report_key(dell_wmi_input_dev, key->keycode, 1); 240 input_report_key(dell_wmi_input_dev, key->keycode, 1);
240 input_sync(dell_wmi_input_dev); 241 input_sync(dell_wmi_input_dev);
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index 54a015785ca8..0306174ba875 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -169,7 +169,6 @@ struct eeepc_laptop {
169 struct backlight_device *backlight_device; 169 struct backlight_device *backlight_device;
170 170
171 struct input_dev *inputdev; 171 struct input_dev *inputdev;
172 struct key_entry *keymap;
173 172
174 struct rfkill *wlan_rfkill; 173 struct rfkill *wlan_rfkill;
175 struct rfkill *bluetooth_rfkill; 174 struct rfkill *bluetooth_rfkill;
@@ -1204,8 +1203,8 @@ static int eeepc_input_init(struct eeepc_laptop *eeepc)
1204static void eeepc_input_exit(struct eeepc_laptop *eeepc) 1203static void eeepc_input_exit(struct eeepc_laptop *eeepc)
1205{ 1204{
1206 if (eeepc->inputdev) { 1205 if (eeepc->inputdev) {
1206 sparse_keymap_free(eeepc->inputdev);
1207 input_unregister_device(eeepc->inputdev); 1207 input_unregister_device(eeepc->inputdev);
1208 kfree(eeepc->keymap);
1209 } 1208 }
1210} 1209}
1211 1210
diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
index 9f8822658fd7..b227eb469f49 100644
--- a/drivers/platform/x86/eeepc-wmi.c
+++ b/drivers/platform/x86/eeepc-wmi.c
@@ -23,6 +23,8 @@
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25 25
26#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
27
26#include <linux/kernel.h> 28#include <linux/kernel.h>
27#include <linux/module.h> 29#include <linux/module.h>
28#include <linux/init.h> 30#include <linux/init.h>
@@ -30,22 +32,34 @@
30#include <linux/slab.h> 32#include <linux/slab.h>
31#include <linux/input.h> 33#include <linux/input.h>
32#include <linux/input/sparse-keymap.h> 34#include <linux/input/sparse-keymap.h>
35#include <linux/fb.h>
36#include <linux/backlight.h>
37#include <linux/platform_device.h>
33#include <acpi/acpi_bus.h> 38#include <acpi/acpi_bus.h>
34#include <acpi/acpi_drivers.h> 39#include <acpi/acpi_drivers.h>
35 40
41#define EEEPC_WMI_FILE "eeepc-wmi"
42
36MODULE_AUTHOR("Yong Wang <yong.y.wang@intel.com>"); 43MODULE_AUTHOR("Yong Wang <yong.y.wang@intel.com>");
37MODULE_DESCRIPTION("Eee PC WMI Hotkey Driver"); 44MODULE_DESCRIPTION("Eee PC WMI Hotkey Driver");
38MODULE_LICENSE("GPL"); 45MODULE_LICENSE("GPL");
39 46
40#define EEEPC_WMI_EVENT_GUID "ABBC0F72-8EA1-11D1-00A0-C90629100000" 47#define EEEPC_WMI_EVENT_GUID "ABBC0F72-8EA1-11D1-00A0-C90629100000"
48#define EEEPC_WMI_MGMT_GUID "97845ED0-4E6D-11DE-8A39-0800200C9A66"
41 49
42MODULE_ALIAS("wmi:"EEEPC_WMI_EVENT_GUID); 50MODULE_ALIAS("wmi:"EEEPC_WMI_EVENT_GUID);
51MODULE_ALIAS("wmi:"EEEPC_WMI_MGMT_GUID);
43 52
44#define NOTIFY_BRNUP_MIN 0x11 53#define NOTIFY_BRNUP_MIN 0x11
45#define NOTIFY_BRNUP_MAX 0x1f 54#define NOTIFY_BRNUP_MAX 0x1f
46#define NOTIFY_BRNDOWN_MIN 0x20 55#define NOTIFY_BRNDOWN_MIN 0x20
47#define NOTIFY_BRNDOWN_MAX 0x2e 56#define NOTIFY_BRNDOWN_MAX 0x2e
48 57
58#define EEEPC_WMI_METHODID_DEVS 0x53564544
59#define EEEPC_WMI_METHODID_DSTS 0x53544344
60
61#define EEEPC_WMI_DEVID_BACKLIGHT 0x00050012
62
49static const struct key_entry eeepc_wmi_keymap[] = { 63static const struct key_entry eeepc_wmi_keymap[] = {
50 /* Sleep already handled via generic ACPI code */ 64 /* Sleep already handled via generic ACPI code */
51 { KE_KEY, 0x5d, { KEY_WLAN } }, 65 { KE_KEY, 0x5d, { KEY_WLAN } },
@@ -58,18 +72,198 @@ static const struct key_entry eeepc_wmi_keymap[] = {
58 { KE_END, 0}, 72 { KE_END, 0},
59}; 73};
60 74
61static struct input_dev *eeepc_wmi_input_dev; 75struct bios_args {
76 u32 dev_id;
77 u32 ctrl_param;
78};
79
80struct eeepc_wmi {
81 struct input_dev *inputdev;
82 struct backlight_device *backlight_device;
83};
84
85static struct platform_device *platform_device;
86
87static int eeepc_wmi_input_init(struct eeepc_wmi *eeepc)
88{
89 int err;
90
91 eeepc->inputdev = input_allocate_device();
92 if (!eeepc->inputdev)
93 return -ENOMEM;
94
95 eeepc->inputdev->name = "Eee PC WMI hotkeys";
96 eeepc->inputdev->phys = EEEPC_WMI_FILE "/input0";
97 eeepc->inputdev->id.bustype = BUS_HOST;
98 eeepc->inputdev->dev.parent = &platform_device->dev;
99
100 err = sparse_keymap_setup(eeepc->inputdev, eeepc_wmi_keymap, NULL);
101 if (err)
102 goto err_free_dev;
103
104 err = input_register_device(eeepc->inputdev);
105 if (err)
106 goto err_free_keymap;
107
108 return 0;
109
110err_free_keymap:
111 sparse_keymap_free(eeepc->inputdev);
112err_free_dev:
113 input_free_device(eeepc->inputdev);
114 return err;
115}
116
117static void eeepc_wmi_input_exit(struct eeepc_wmi *eeepc)
118{
119 if (eeepc->inputdev) {
120 sparse_keymap_free(eeepc->inputdev);
121 input_unregister_device(eeepc->inputdev);
122 }
123
124 eeepc->inputdev = NULL;
125}
126
127static acpi_status eeepc_wmi_get_devstate(u32 dev_id, u32 *ctrl_param)
128{
129 struct acpi_buffer input = { (acpi_size)sizeof(u32), &dev_id };
130 struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
131 union acpi_object *obj;
132 acpi_status status;
133 u32 tmp;
134
135 status = wmi_evaluate_method(EEEPC_WMI_MGMT_GUID,
136 1, EEEPC_WMI_METHODID_DSTS, &input, &output);
137
138 if (ACPI_FAILURE(status))
139 return status;
140
141 obj = (union acpi_object *)output.pointer;
142 if (obj && obj->type == ACPI_TYPE_INTEGER)
143 tmp = (u32)obj->integer.value;
144 else
145 tmp = 0;
146
147 if (ctrl_param)
148 *ctrl_param = tmp;
149
150 kfree(obj);
151
152 return status;
153
154}
155
156static acpi_status eeepc_wmi_set_devstate(u32 dev_id, u32 ctrl_param)
157{
158 struct bios_args args = {
159 .dev_id = dev_id,
160 .ctrl_param = ctrl_param,
161 };
162 struct acpi_buffer input = { (acpi_size)sizeof(args), &args };
163 acpi_status status;
164
165 status = wmi_evaluate_method(EEEPC_WMI_MGMT_GUID,
166 1, EEEPC_WMI_METHODID_DEVS, &input, NULL);
167
168 return status;
169}
170
171static int read_brightness(struct backlight_device *bd)
172{
173 static u32 ctrl_param;
174 acpi_status status;
175
176 status = eeepc_wmi_get_devstate(EEEPC_WMI_DEVID_BACKLIGHT, &ctrl_param);
177
178 if (ACPI_FAILURE(status))
179 return -1;
180 else
181 return ctrl_param & 0xFF;
182}
183
184static int update_bl_status(struct backlight_device *bd)
185{
186
187 static u32 ctrl_param;
188 acpi_status status;
189
190 ctrl_param = bd->props.brightness;
191
192 status = eeepc_wmi_set_devstate(EEEPC_WMI_DEVID_BACKLIGHT, ctrl_param);
193
194 if (ACPI_FAILURE(status))
195 return -1;
196 else
197 return 0;
198}
199
200static const struct backlight_ops eeepc_wmi_bl_ops = {
201 .get_brightness = read_brightness,
202 .update_status = update_bl_status,
203};
204
205static int eeepc_wmi_backlight_notify(struct eeepc_wmi *eeepc, int code)
206{
207 struct backlight_device *bd = eeepc->backlight_device;
208 int old = bd->props.brightness;
209 int new;
210
211 if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX)
212 new = code - NOTIFY_BRNUP_MIN + 1;
213 else if (code >= NOTIFY_BRNDOWN_MIN && code <= NOTIFY_BRNDOWN_MAX)
214 new = code - NOTIFY_BRNDOWN_MIN;
215
216 bd->props.brightness = new;
217 backlight_update_status(bd);
218 backlight_force_update(bd, BACKLIGHT_UPDATE_HOTKEY);
219
220 return old;
221}
222
223static int eeepc_wmi_backlight_init(struct eeepc_wmi *eeepc)
224{
225 struct backlight_device *bd;
226 struct backlight_properties props;
227
228 memset(&props, 0, sizeof(struct backlight_properties));
229 props.max_brightness = 15;
230 bd = backlight_device_register(EEEPC_WMI_FILE,
231 &platform_device->dev, eeepc,
232 &eeepc_wmi_bl_ops, &props);
233 if (IS_ERR(bd)) {
234 pr_err("Could not register backlight device\n");
235 return PTR_ERR(bd);
236 }
237
238 eeepc->backlight_device = bd;
239
240 bd->props.brightness = read_brightness(bd);
241 bd->props.power = FB_BLANK_UNBLANK;
242 backlight_update_status(bd);
243
244 return 0;
245}
246
247static void eeepc_wmi_backlight_exit(struct eeepc_wmi *eeepc)
248{
249 if (eeepc->backlight_device)
250 backlight_device_unregister(eeepc->backlight_device);
251
252 eeepc->backlight_device = NULL;
253}
62 254
63static void eeepc_wmi_notify(u32 value, void *context) 255static void eeepc_wmi_notify(u32 value, void *context)
64{ 256{
257 struct eeepc_wmi *eeepc = context;
65 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL }; 258 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
66 union acpi_object *obj; 259 union acpi_object *obj;
67 acpi_status status; 260 acpi_status status;
68 int code; 261 int code;
262 int orig_code;
69 263
70 status = wmi_get_event_data(value, &response); 264 status = wmi_get_event_data(value, &response);
71 if (status != AE_OK) { 265 if (status != AE_OK) {
72 pr_err("EEEPC WMI: bad event status 0x%x\n", status); 266 pr_err("bad event status 0x%x\n", status);
73 return; 267 return;
74 } 268 }
75 269
@@ -77,81 +271,142 @@ static void eeepc_wmi_notify(u32 value, void *context)
77 271
78 if (obj && obj->type == ACPI_TYPE_INTEGER) { 272 if (obj && obj->type == ACPI_TYPE_INTEGER) {
79 code = obj->integer.value; 273 code = obj->integer.value;
274 orig_code = code;
80 275
81 if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX) 276 if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX)
82 code = NOTIFY_BRNUP_MIN; 277 code = NOTIFY_BRNUP_MIN;
83 else if (code >= NOTIFY_BRNDOWN_MIN && code <= NOTIFY_BRNDOWN_MAX) 278 else if (code >= NOTIFY_BRNDOWN_MIN &&
279 code <= NOTIFY_BRNDOWN_MAX)
84 code = NOTIFY_BRNDOWN_MIN; 280 code = NOTIFY_BRNDOWN_MIN;
85 281
86 if (!sparse_keymap_report_event(eeepc_wmi_input_dev, 282 if (code == NOTIFY_BRNUP_MIN || code == NOTIFY_BRNDOWN_MIN) {
283 if (!acpi_video_backlight_support())
284 eeepc_wmi_backlight_notify(eeepc, orig_code);
285 }
286
287 if (!sparse_keymap_report_event(eeepc->inputdev,
87 code, 1, true)) 288 code, 1, true))
88 pr_info("EEEPC WMI: Unknown key %x pressed\n", code); 289 pr_info("Unknown key %x pressed\n", code);
89 } 290 }
90 291
91 kfree(obj); 292 kfree(obj);
92} 293}
93 294
94static int eeepc_wmi_input_setup(void) 295static int __devinit eeepc_wmi_platform_probe(struct platform_device *device)
95{ 296{
297 struct eeepc_wmi *eeepc;
96 int err; 298 int err;
299 acpi_status status;
97 300
98 eeepc_wmi_input_dev = input_allocate_device(); 301 eeepc = platform_get_drvdata(device);
99 if (!eeepc_wmi_input_dev)
100 return -ENOMEM;
101
102 eeepc_wmi_input_dev->name = "Eee PC WMI hotkeys";
103 eeepc_wmi_input_dev->phys = "wmi/input0";
104 eeepc_wmi_input_dev->id.bustype = BUS_HOST;
105 302
106 err = sparse_keymap_setup(eeepc_wmi_input_dev, eeepc_wmi_keymap, NULL); 303 err = eeepc_wmi_input_init(eeepc);
107 if (err) 304 if (err)
108 goto err_free_dev; 305 goto error_input;
109 306
110 err = input_register_device(eeepc_wmi_input_dev); 307 if (!acpi_video_backlight_support()) {
111 if (err) 308 err = eeepc_wmi_backlight_init(eeepc);
112 goto err_free_keymap; 309 if (err)
310 goto error_backlight;
311 } else
312 pr_info("Backlight controlled by ACPI video driver\n");
313
314 status = wmi_install_notify_handler(EEEPC_WMI_EVENT_GUID,
315 eeepc_wmi_notify, eeepc);
316 if (ACPI_FAILURE(status)) {
317 pr_err("Unable to register notify handler - %d\n",
318 status);
319 err = -ENODEV;
320 goto error_wmi;
321 }
113 322
114 return 0; 323 return 0;
115 324
116err_free_keymap: 325error_wmi:
117 sparse_keymap_free(eeepc_wmi_input_dev); 326 eeepc_wmi_backlight_exit(eeepc);
118err_free_dev: 327error_backlight:
119 input_free_device(eeepc_wmi_input_dev); 328 eeepc_wmi_input_exit(eeepc);
329error_input:
120 return err; 330 return err;
121} 331}
122 332
333static int __devexit eeepc_wmi_platform_remove(struct platform_device *device)
334{
335 struct eeepc_wmi *eeepc;
336
337 eeepc = platform_get_drvdata(device);
338 wmi_remove_notify_handler(EEEPC_WMI_EVENT_GUID);
339 eeepc_wmi_backlight_exit(eeepc);
340 eeepc_wmi_input_exit(eeepc);
341
342 return 0;
343}
344
345static struct platform_driver platform_driver = {
346 .driver = {
347 .name = EEEPC_WMI_FILE,
348 .owner = THIS_MODULE,
349 },
350 .probe = eeepc_wmi_platform_probe,
351 .remove = __devexit_p(eeepc_wmi_platform_remove),
352};
353
123static int __init eeepc_wmi_init(void) 354static int __init eeepc_wmi_init(void)
124{ 355{
356 struct eeepc_wmi *eeepc;
125 int err; 357 int err;
126 acpi_status status;
127 358
128 if (!wmi_has_guid(EEEPC_WMI_EVENT_GUID)) { 359 if (!wmi_has_guid(EEEPC_WMI_EVENT_GUID) ||
129 pr_warning("EEEPC WMI: No known WMI GUID found\n"); 360 !wmi_has_guid(EEEPC_WMI_MGMT_GUID)) {
361 pr_warning("No known WMI GUID found\n");
130 return -ENODEV; 362 return -ENODEV;
131 } 363 }
132 364
133 err = eeepc_wmi_input_setup(); 365 eeepc = kzalloc(sizeof(struct eeepc_wmi), GFP_KERNEL);
134 if (err) 366 if (!eeepc)
135 return err; 367 return -ENOMEM;
136 368
137 status = wmi_install_notify_handler(EEEPC_WMI_EVENT_GUID, 369 platform_device = platform_device_alloc(EEEPC_WMI_FILE, -1);
138 eeepc_wmi_notify, NULL); 370 if (!platform_device) {
139 if (ACPI_FAILURE(status)) { 371 pr_warning("Unable to allocate platform device\n");
140 sparse_keymap_free(eeepc_wmi_input_dev); 372 err = -ENOMEM;
141 input_unregister_device(eeepc_wmi_input_dev); 373 goto fail_platform;
142 pr_err("EEEPC WMI: Unable to register notify handler - %d\n", 374 }
143 status); 375
144 return -ENODEV; 376 err = platform_device_add(platform_device);
377 if (err) {
378 pr_warning("Unable to add platform device\n");
379 goto put_dev;
380 }
381
382 platform_set_drvdata(platform_device, eeepc);
383
384 err = platform_driver_register(&platform_driver);
385 if (err) {
386 pr_warning("Unable to register platform driver\n");
387 goto del_dev;
145 } 388 }
146 389
147 return 0; 390 return 0;
391
392del_dev:
393 platform_device_del(platform_device);
394put_dev:
395 platform_device_put(platform_device);
396fail_platform:
397 kfree(eeepc);
398
399 return err;
148} 400}
149 401
150static void __exit eeepc_wmi_exit(void) 402static void __exit eeepc_wmi_exit(void)
151{ 403{
152 wmi_remove_notify_handler(EEEPC_WMI_EVENT_GUID); 404 struct eeepc_wmi *eeepc;
153 sparse_keymap_free(eeepc_wmi_input_dev); 405
154 input_unregister_device(eeepc_wmi_input_dev); 406 eeepc = platform_get_drvdata(platform_device);
407 platform_driver_unregister(&platform_driver);
408 platform_device_unregister(platform_device);
409 kfree(eeepc);
155} 410}
156 411
157module_init(eeepc_wmi_init); 412module_init(eeepc_wmi_init);
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
index 35bb44af49b3..100e4d9372f1 100644
--- a/drivers/pnp/pnpacpi/rsparser.c
+++ b/drivers/pnp/pnpacpi/rsparser.c
@@ -274,26 +274,6 @@ static void pnpacpi_parse_allocated_busresource(struct pnp_dev *dev,
274 pnp_add_bus_resource(dev, start, end); 274 pnp_add_bus_resource(dev, start, end);
275} 275}
276 276
277static u64 addr_space_length(struct pnp_dev *dev, u64 min, u64 max, u64 len)
278{
279 u64 max_len;
280
281 max_len = max - min + 1;
282 if (len <= max_len)
283 return len;
284
285 /*
286 * Per 6.4.3.5, _LEN cannot exceed _MAX - _MIN + 1, but some BIOSes
287 * don't do this correctly, e.g.,
288 * https://bugzilla.kernel.org/show_bug.cgi?id=15480
289 */
290 dev_info(&dev->dev,
291 "resource length %#llx doesn't fit in %#llx-%#llx, trimming\n",
292 (unsigned long long) len, (unsigned long long) min,
293 (unsigned long long) max);
294 return max_len;
295}
296
297static void pnpacpi_parse_allocated_address_space(struct pnp_dev *dev, 277static void pnpacpi_parse_allocated_address_space(struct pnp_dev *dev,
298 struct acpi_resource *res) 278 struct acpi_resource *res)
299{ 279{
@@ -309,7 +289,8 @@ static void pnpacpi_parse_allocated_address_space(struct pnp_dev *dev,
309 return; 289 return;
310 } 290 }
311 291
312 len = addr_space_length(dev, p->minimum, p->maximum, p->address_length); 292 /* Windows apparently computes length rather than using _LEN */
293 len = p->maximum - p->minimum + 1;
313 window = (p->producer_consumer == ACPI_PRODUCER) ? 1 : 0; 294 window = (p->producer_consumer == ACPI_PRODUCER) ? 1 : 0;
314 295
315 if (p->resource_type == ACPI_MEMORY_RANGE) 296 if (p->resource_type == ACPI_MEMORY_RANGE)
@@ -330,7 +311,8 @@ static void pnpacpi_parse_allocated_ext_address_space(struct pnp_dev *dev,
330 int window; 311 int window;
331 u64 len; 312 u64 len;
332 313
333 len = addr_space_length(dev, p->minimum, p->maximum, p->address_length); 314 /* Windows apparently computes length rather than using _LEN */
315 len = p->maximum - p->minimum + 1;
334 window = (p->producer_consumer == ACPI_PRODUCER) ? 1 : 0; 316 window = (p->producer_consumer == ACPI_PRODUCER) ? 1 : 0;
335 317
336 if (p->resource_type == ACPI_MEMORY_RANGE) 318 if (p->resource_type == ACPI_MEMORY_RANGE)
diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c
index 2e54e6a23c72..e3446ab8b563 100644
--- a/drivers/pnp/resource.c
+++ b/drivers/pnp/resource.c
@@ -211,6 +211,8 @@ int pnp_check_port(struct pnp_dev *dev, struct resource *res)
211 if (tres->flags & IORESOURCE_IO) { 211 if (tres->flags & IORESOURCE_IO) {
212 if (cannot_compare(tres->flags)) 212 if (cannot_compare(tres->flags))
213 continue; 213 continue;
214 if (tres->flags & IORESOURCE_WINDOW)
215 continue;
214 tport = &tres->start; 216 tport = &tres->start;
215 tend = &tres->end; 217 tend = &tres->end;
216 if (ranged_conflict(port, end, tport, tend)) 218 if (ranged_conflict(port, end, tport, tend))
@@ -271,6 +273,8 @@ int pnp_check_mem(struct pnp_dev *dev, struct resource *res)
271 if (tres->flags & IORESOURCE_MEM) { 273 if (tres->flags & IORESOURCE_MEM) {
272 if (cannot_compare(tres->flags)) 274 if (cannot_compare(tres->flags))
273 continue; 275 continue;
276 if (tres->flags & IORESOURCE_WINDOW)
277 continue;
274 taddr = &tres->start; 278 taddr = &tres->start;
275 tend = &tres->end; 279 tend = &tres->end;
276 if (ranged_conflict(addr, end, taddr, tend)) 280 if (ranged_conflict(addr, end, taddr, tend))
diff --git a/drivers/regulator/max8925-regulator.c b/drivers/regulator/max8925-regulator.c
index b6218f11c957..552cad85ae5a 100644
--- a/drivers/regulator/max8925-regulator.c
+++ b/drivers/regulator/max8925-regulator.c
@@ -109,7 +109,7 @@ static int max8925_is_enabled(struct regulator_dev *rdev)
109 struct max8925_regulator_info *info = rdev_get_drvdata(rdev); 109 struct max8925_regulator_info *info = rdev_get_drvdata(rdev);
110 int ret; 110 int ret;
111 111
112 ret = max8925_reg_read(info->i2c, info->vol_reg); 112 ret = max8925_reg_read(info->i2c, info->enable_reg);
113 if (ret < 0) 113 if (ret < 0)
114 return ret; 114 return ret;
115 115
diff --git a/drivers/regulator/mc13783-regulator.c b/drivers/regulator/mc13783-regulator.c
index a681f5e8f786..ad036dd8da13 100644
--- a/drivers/regulator/mc13783-regulator.c
+++ b/drivers/regulator/mc13783-regulator.c
@@ -618,9 +618,12 @@ static int __devexit mc13783_regulator_remove(struct platform_device *pdev)
618 dev_get_platdata(&pdev->dev); 618 dev_get_platdata(&pdev->dev);
619 int i; 619 int i;
620 620
621 platform_set_drvdata(pdev, NULL);
622
621 for (i = 0; i < pdata->num_regulators; i++) 623 for (i = 0; i < pdata->num_regulators; i++)
622 regulator_unregister(priv->regulators[i]); 624 regulator_unregister(priv->regulators[i]);
623 625
626 kfree(priv);
624 return 0; 627 return 0;
625} 628}
626 629
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index bbea90baf98f..fa2339cb1681 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -37,6 +37,9 @@
37 */ 37 */
38#define DASD_CHANQ_MAX_SIZE 4 38#define DASD_CHANQ_MAX_SIZE 4
39 39
40#define DASD_SLEEPON_START_TAG (void *) 1
41#define DASD_SLEEPON_END_TAG (void *) 2
42
40/* 43/*
41 * SECTION: exported variables of dasd.c 44 * SECTION: exported variables of dasd.c
42 */ 45 */
@@ -1472,7 +1475,10 @@ void dasd_add_request_tail(struct dasd_ccw_req *cqr)
1472 */ 1475 */
1473static void dasd_wakeup_cb(struct dasd_ccw_req *cqr, void *data) 1476static void dasd_wakeup_cb(struct dasd_ccw_req *cqr, void *data)
1474{ 1477{
1475 wake_up((wait_queue_head_t *) data); 1478 spin_lock_irq(get_ccwdev_lock(cqr->startdev->cdev));
1479 cqr->callback_data = DASD_SLEEPON_END_TAG;
1480 spin_unlock_irq(get_ccwdev_lock(cqr->startdev->cdev));
1481 wake_up(&generic_waitq);
1476} 1482}
1477 1483
1478static inline int _wait_for_wakeup(struct dasd_ccw_req *cqr) 1484static inline int _wait_for_wakeup(struct dasd_ccw_req *cqr)
@@ -1482,10 +1488,7 @@ static inline int _wait_for_wakeup(struct dasd_ccw_req *cqr)
1482 1488
1483 device = cqr->startdev; 1489 device = cqr->startdev;
1484 spin_lock_irq(get_ccwdev_lock(device->cdev)); 1490 spin_lock_irq(get_ccwdev_lock(device->cdev));
1485 rc = ((cqr->status == DASD_CQR_DONE || 1491 rc = (cqr->callback_data == DASD_SLEEPON_END_TAG);
1486 cqr->status == DASD_CQR_NEED_ERP ||
1487 cqr->status == DASD_CQR_TERMINATED) &&
1488 list_empty(&cqr->devlist));
1489 spin_unlock_irq(get_ccwdev_lock(device->cdev)); 1492 spin_unlock_irq(get_ccwdev_lock(device->cdev));
1490 return rc; 1493 return rc;
1491} 1494}
@@ -1573,7 +1576,7 @@ static int _dasd_sleep_on(struct dasd_ccw_req *maincqr, int interruptible)
1573 wait_event(generic_waitq, !(device->stopped)); 1576 wait_event(generic_waitq, !(device->stopped));
1574 1577
1575 cqr->callback = dasd_wakeup_cb; 1578 cqr->callback = dasd_wakeup_cb;
1576 cqr->callback_data = (void *) &generic_waitq; 1579 cqr->callback_data = DASD_SLEEPON_START_TAG;
1577 dasd_add_request_tail(cqr); 1580 dasd_add_request_tail(cqr);
1578 if (interruptible) { 1581 if (interruptible) {
1579 rc = wait_event_interruptible( 1582 rc = wait_event_interruptible(
@@ -1652,7 +1655,7 @@ int dasd_sleep_on_immediatly(struct dasd_ccw_req *cqr)
1652 } 1655 }
1653 1656
1654 cqr->callback = dasd_wakeup_cb; 1657 cqr->callback = dasd_wakeup_cb;
1655 cqr->callback_data = (void *) &generic_waitq; 1658 cqr->callback_data = DASD_SLEEPON_START_TAG;
1656 cqr->status = DASD_CQR_QUEUED; 1659 cqr->status = DASD_CQR_QUEUED;
1657 list_add(&cqr->devlist, &device->ccw_queue); 1660 list_add(&cqr->devlist, &device->ccw_queue);
1658 1661
@@ -1899,7 +1902,8 @@ restart:
1899 /* Process requests that may be recovered */ 1902 /* Process requests that may be recovered */
1900 if (cqr->status == DASD_CQR_NEED_ERP) { 1903 if (cqr->status == DASD_CQR_NEED_ERP) {
1901 erp_fn = base->discipline->erp_action(cqr); 1904 erp_fn = base->discipline->erp_action(cqr);
1902 erp_fn(cqr); 1905 if (IS_ERR(erp_fn(cqr)))
1906 continue;
1903 goto restart; 1907 goto restart;
1904 } 1908 }
1905 1909
diff --git a/drivers/s390/block/dasd_3990_erp.c b/drivers/s390/block/dasd_3990_erp.c
index 6927e751ce3e..6632649dd6aa 100644
--- a/drivers/s390/block/dasd_3990_erp.c
+++ b/drivers/s390/block/dasd_3990_erp.c
@@ -2309,7 +2309,7 @@ static struct dasd_ccw_req *dasd_3990_erp_add_erp(struct dasd_ccw_req *cqr)
2309 cqr->retries); 2309 cqr->retries);
2310 dasd_block_set_timer(device->block, (HZ << 3)); 2310 dasd_block_set_timer(device->block, (HZ << 3));
2311 } 2311 }
2312 return cqr; 2312 return erp;
2313 } 2313 }
2314 2314
2315 ccw = cqr->cpaddr; 2315 ccw = cqr->cpaddr;
@@ -2372,6 +2372,9 @@ dasd_3990_erp_additional_erp(struct dasd_ccw_req * cqr)
2372 /* add erp and initialize with default TIC */ 2372 /* add erp and initialize with default TIC */
2373 erp = dasd_3990_erp_add_erp(cqr); 2373 erp = dasd_3990_erp_add_erp(cqr);
2374 2374
2375 if (IS_ERR(erp))
2376 return erp;
2377
2375 /* inspect sense, determine specific ERP if possible */ 2378 /* inspect sense, determine specific ERP if possible */
2376 if (erp != cqr) { 2379 if (erp != cqr) {
2377 2380
@@ -2711,6 +2714,8 @@ dasd_3990_erp_action(struct dasd_ccw_req * cqr)
2711 if (erp == NULL) { 2714 if (erp == NULL) {
2712 /* no matching erp found - set up erp */ 2715 /* no matching erp found - set up erp */
2713 erp = dasd_3990_erp_additional_erp(cqr); 2716 erp = dasd_3990_erp_additional_erp(cqr);
2717 if (IS_ERR(erp))
2718 return erp;
2714 } else { 2719 } else {
2715 /* matching erp found - set all leading erp's to DONE */ 2720 /* matching erp found - set all leading erp's to DONE */
2716 erp = dasd_3990_erp_handle_match_erp(cqr, erp); 2721 erp = dasd_3990_erp_handle_match_erp(cqr, erp);
diff --git a/drivers/s390/char/zcore.c b/drivers/s390/char/zcore.c
index 18daf16aa357..7217966f7d31 100644
--- a/drivers/s390/char/zcore.c
+++ b/drivers/s390/char/zcore.c
@@ -638,11 +638,7 @@ static int __init zcore_reipl_init(void)
638 rc = memcpy_hsa_kernel(ipl_block, ipib_info.ipib, PAGE_SIZE); 638 rc = memcpy_hsa_kernel(ipl_block, ipib_info.ipib, PAGE_SIZE);
639 else 639 else
640 rc = memcpy_real(ipl_block, (void *) ipib_info.ipib, PAGE_SIZE); 640 rc = memcpy_real(ipl_block, (void *) ipib_info.ipib, PAGE_SIZE);
641 if (rc) { 641 if (rc || csum_partial(ipl_block, ipl_block->hdr.len, 0) !=
642 free_page((unsigned long) ipl_block);
643 return rc;
644 }
645 if (csum_partial(ipl_block, ipl_block->hdr.len, 0) !=
646 ipib_info.checksum) { 642 ipib_info.checksum) {
647 TRACE("Checksum does not match\n"); 643 TRACE("Checksum does not match\n");
648 free_page((unsigned long) ipl_block); 644 free_page((unsigned long) ipl_block);
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c
index 4038f5b4f144..ce7cb87479fe 100644
--- a/drivers/s390/cio/chsc.c
+++ b/drivers/s390/cio/chsc.c
@@ -29,6 +29,7 @@
29#include "chsc.h" 29#include "chsc.h"
30 30
31static void *sei_page; 31static void *sei_page;
32static DEFINE_SPINLOCK(sda_lock);
32 33
33/** 34/**
34 * chsc_error_from_response() - convert a chsc response to an error 35 * chsc_error_from_response() - convert a chsc response to an error
@@ -832,11 +833,10 @@ void __init chsc_free_sei_area(void)
832 kfree(sei_page); 833 kfree(sei_page);
833} 834}
834 835
835int __init 836int chsc_enable_facility(int operation_code)
836chsc_enable_facility(int operation_code)
837{ 837{
838 int ret; 838 int ret;
839 struct { 839 static struct {
840 struct chsc_header request; 840 struct chsc_header request;
841 u8 reserved1:4; 841 u8 reserved1:4;
842 u8 format:4; 842 u8 format:4;
@@ -849,33 +849,32 @@ chsc_enable_facility(int operation_code)
849 u32 reserved5:4; 849 u32 reserved5:4;
850 u32 format2:4; 850 u32 format2:4;
851 u32 reserved6:24; 851 u32 reserved6:24;
852 } __attribute__ ((packed)) *sda_area; 852 } __attribute__ ((packed, aligned(4096))) sda_area;
853 853
854 sda_area = (void *)get_zeroed_page(GFP_KERNEL|GFP_DMA); 854 spin_lock(&sda_lock);
855 if (!sda_area) 855 memset(&sda_area, 0, sizeof(sda_area));
856 return -ENOMEM; 856 sda_area.request.length = 0x0400;
857 sda_area->request.length = 0x0400; 857 sda_area.request.code = 0x0031;
858 sda_area->request.code = 0x0031; 858 sda_area.operation_code = operation_code;
859 sda_area->operation_code = operation_code;
860 859
861 ret = chsc(sda_area); 860 ret = chsc(&sda_area);
862 if (ret > 0) { 861 if (ret > 0) {
863 ret = (ret == 3) ? -ENODEV : -EBUSY; 862 ret = (ret == 3) ? -ENODEV : -EBUSY;
864 goto out; 863 goto out;
865 } 864 }
866 865
867 switch (sda_area->response.code) { 866 switch (sda_area.response.code) {
868 case 0x0101: 867 case 0x0101:
869 ret = -EOPNOTSUPP; 868 ret = -EOPNOTSUPP;
870 break; 869 break;
871 default: 870 default:
872 ret = chsc_error_from_response(sda_area->response.code); 871 ret = chsc_error_from_response(sda_area.response.code);
873 } 872 }
874 if (ret != 0) 873 if (ret != 0)
875 CIO_CRW_EVENT(2, "chsc: sda (oc=%x) failed (rc=%04x)\n", 874 CIO_CRW_EVENT(2, "chsc: sda (oc=%x) failed (rc=%04x)\n",
876 operation_code, sda_area->response.code); 875 operation_code, sda_area.response.code);
877 out: 876 out:
878 free_page((unsigned long)sda_area); 877 spin_unlock(&sda_lock);
879 return ret; 878 return ret;
880} 879}
881 880
diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c
index 404f630c27ca..3b6f4adc5094 100644
--- a/drivers/s390/cio/chsc_sch.c
+++ b/drivers/s390/cio/chsc_sch.c
@@ -124,7 +124,7 @@ static int chsc_subchannel_prepare(struct subchannel *sch)
124 * since we don't have a way to clear the subchannel and 124 * since we don't have a way to clear the subchannel and
125 * cannot disable it with a request running. 125 * cannot disable it with a request running.
126 */ 126 */
127 cc = stsch(sch->schid, &schib); 127 cc = stsch_err(sch->schid, &schib);
128 if (!cc && scsw_stctl(&schib.scsw)) 128 if (!cc && scsw_stctl(&schib.scsw))
129 return -EAGAIN; 129 return -EAGAIN;
130 return 0; 130 return 0;
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index f736cdcf08ad..5feea1a371e1 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -361,7 +361,7 @@ int cio_commit_config(struct subchannel *sch)
361 struct schib schib; 361 struct schib schib;
362 int ccode, retry, ret = 0; 362 int ccode, retry, ret = 0;
363 363
364 if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib)) 364 if (stsch_err(sch->schid, &schib) || !css_sch_is_valid(&schib))
365 return -ENODEV; 365 return -ENODEV;
366 366
367 for (retry = 0; retry < 5; retry++) { 367 for (retry = 0; retry < 5; retry++) {
@@ -372,7 +372,7 @@ int cio_commit_config(struct subchannel *sch)
372 return ccode; 372 return ccode;
373 switch (ccode) { 373 switch (ccode) {
374 case 0: /* successful */ 374 case 0: /* successful */
375 if (stsch(sch->schid, &schib) || 375 if (stsch_err(sch->schid, &schib) ||
376 !css_sch_is_valid(&schib)) 376 !css_sch_is_valid(&schib))
377 return -ENODEV; 377 return -ENODEV;
378 if (cio_check_config(sch, &schib)) { 378 if (cio_check_config(sch, &schib)) {
@@ -404,7 +404,7 @@ int cio_update_schib(struct subchannel *sch)
404{ 404{
405 struct schib schib; 405 struct schib schib;
406 406
407 if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib)) 407 if (stsch_err(sch->schid, &schib) || !css_sch_is_valid(&schib))
408 return -ENODEV; 408 return -ENODEV;
409 409
410 memcpy(&sch->schib, &schib, sizeof(schib)); 410 memcpy(&sch->schib, &schib, sizeof(schib));
@@ -771,7 +771,7 @@ cio_get_console_sch_no(void)
771 if (console_irq != -1) { 771 if (console_irq != -1) {
772 /* VM provided us with the irq number of the console. */ 772 /* VM provided us with the irq number of the console. */
773 schid.sch_no = console_irq; 773 schid.sch_no = console_irq;
774 if (stsch(schid, &console_subchannel.schib) != 0 || 774 if (stsch_err(schid, &console_subchannel.schib) != 0 ||
775 (console_subchannel.schib.pmcw.st != SUBCHANNEL_TYPE_IO) || 775 (console_subchannel.schib.pmcw.st != SUBCHANNEL_TYPE_IO) ||
776 !console_subchannel.schib.pmcw.dnv) 776 !console_subchannel.schib.pmcw.dnv)
777 return -1; 777 return -1;
@@ -863,10 +863,10 @@ __disable_subchannel_easy(struct subchannel_id schid, struct schib *schib)
863 cc = 0; 863 cc = 0;
864 for (retry=0;retry<3;retry++) { 864 for (retry=0;retry<3;retry++) {
865 schib->pmcw.ena = 0; 865 schib->pmcw.ena = 0;
866 cc = msch(schid, schib); 866 cc = msch_err(schid, schib);
867 if (cc) 867 if (cc)
868 return (cc==3?-ENODEV:-EBUSY); 868 return (cc==3?-ENODEV:-EBUSY);
869 if (stsch(schid, schib) || !css_sch_is_valid(schib)) 869 if (stsch_err(schid, schib) || !css_sch_is_valid(schib))
870 return -ENODEV; 870 return -ENODEV;
871 if (!schib->pmcw.ena) 871 if (!schib->pmcw.ena)
872 return 0; 872 return 0;
@@ -913,7 +913,7 @@ static int stsch_reset(struct subchannel_id schid, struct schib *addr)
913 913
914 pgm_check_occured = 0; 914 pgm_check_occured = 0;
915 s390_base_pgm_handler_fn = cio_reset_pgm_check_handler; 915 s390_base_pgm_handler_fn = cio_reset_pgm_check_handler;
916 rc = stsch(schid, addr); 916 rc = stsch_err(schid, addr);
917 s390_base_pgm_handler_fn = NULL; 917 s390_base_pgm_handler_fn = NULL;
918 918
919 /* The program check handler could have changed pgm_check_occured. */ 919 /* The program check handler could have changed pgm_check_occured. */
@@ -950,7 +950,7 @@ static int __shutdown_subchannel_easy(struct subchannel_id schid, void *data)
950 /* No default clear strategy */ 950 /* No default clear strategy */
951 break; 951 break;
952 } 952 }
953 stsch(schid, &schib); 953 stsch_err(schid, &schib);
954 __disable_subchannel_easy(schid, &schib); 954 __disable_subchannel_easy(schid, &schib);
955 } 955 }
956out: 956out:
@@ -1086,7 +1086,7 @@ int __init cio_get_iplinfo(struct cio_iplinfo *iplinfo)
1086 schid = *(struct subchannel_id *)&S390_lowcore.subchannel_id; 1086 schid = *(struct subchannel_id *)&S390_lowcore.subchannel_id;
1087 if (!schid.one) 1087 if (!schid.one)
1088 return -ENODEV; 1088 return -ENODEV;
1089 if (stsch(schid, &schib)) 1089 if (stsch_err(schid, &schib))
1090 return -ENODEV; 1090 return -ENODEV;
1091 if (schib.pmcw.st != SUBCHANNEL_TYPE_IO) 1091 if (schib.pmcw.st != SUBCHANNEL_TYPE_IO)
1092 return -ENODEV; 1092 return -ENODEV;
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 2769da54f2b9..511649115bd7 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -870,15 +870,10 @@ static int __init css_bus_init(void)
870 870
871 /* Try to enable MSS. */ 871 /* Try to enable MSS. */
872 ret = chsc_enable_facility(CHSC_SDA_OC_MSS); 872 ret = chsc_enable_facility(CHSC_SDA_OC_MSS);
873 switch (ret) { 873 if (ret)
874 case 0: /* Success. */
875 max_ssid = __MAX_SSID;
876 break;
877 case -ENOMEM:
878 goto out;
879 default:
880 max_ssid = 0; 874 max_ssid = 0;
881 } 875 else /* Success. */
876 max_ssid = __MAX_SSID;
882 877
883 ret = slow_subchannel_init(); 878 ret = slow_subchannel_init();
884 if (ret) 879 if (ret)
@@ -1048,6 +1043,11 @@ static int __init channel_subsystem_init_sync(void)
1048} 1043}
1049subsys_initcall_sync(channel_subsystem_init_sync); 1044subsys_initcall_sync(channel_subsystem_init_sync);
1050 1045
1046void channel_subsystem_reinit(void)
1047{
1048 chsc_enable_facility(CHSC_SDA_OC_MSS);
1049}
1050
1051#ifdef CONFIG_PROC_FS 1051#ifdef CONFIG_PROC_FS
1052static ssize_t cio_settle_write(struct file *file, const char __user *buf, 1052static ssize_t cio_settle_write(struct file *file, const char __user *buf,
1053 size_t count, loff_t *ppos) 1053 size_t count, loff_t *ppos)
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
index c56ab94612f9..c9b852647f01 100644
--- a/drivers/s390/cio/device_fsm.c
+++ b/drivers/s390/cio/device_fsm.c
@@ -45,7 +45,7 @@ static void ccw_timeout_log(struct ccw_device *cdev)
45 sch = to_subchannel(cdev->dev.parent); 45 sch = to_subchannel(cdev->dev.parent);
46 private = to_io_private(sch); 46 private = to_io_private(sch);
47 orb = &private->orb; 47 orb = &private->orb;
48 cc = stsch(sch->schid, &schib); 48 cc = stsch_err(sch->schid, &schib);
49 49
50 printk(KERN_WARNING "cio: ccw device timeout occurred at %llx, " 50 printk(KERN_WARNING "cio: ccw device timeout occurred at %llx, "
51 "device information:\n", get_clock()); 51 "device information:\n", get_clock());
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 18564891ea61..b3b1d2f79398 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -2105,7 +2105,8 @@ static void zfcp_fsf_req_trace(struct zfcp_fsf_req *req, struct scsi_cmnd *scsi)
2105 blktrc.inb_usage = req->qdio_req.qdio_inb_usage; 2105 blktrc.inb_usage = req->qdio_req.qdio_inb_usage;
2106 blktrc.outb_usage = req->qdio_req.qdio_outb_usage; 2106 blktrc.outb_usage = req->qdio_req.qdio_outb_usage;
2107 2107
2108 if (req->adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA) { 2108 if (req->adapter->adapter_features & FSF_FEATURE_MEASUREMENT_DATA &&
2109 !(req->status & ZFCP_STATUS_FSFREQ_ERROR)) {
2109 blktrc.flags |= ZFCP_BLK_LAT_VALID; 2110 blktrc.flags |= ZFCP_BLK_LAT_VALID;
2110 blktrc.channel_lat = lat_in->channel_lat * ticks; 2111 blktrc.channel_lat = lat_in->channel_lat * ticks;
2111 blktrc.fabric_lat = lat_in->fabric_lat * ticks; 2112 blktrc.fabric_lat = lat_in->fabric_lat * ticks;
@@ -2157,9 +2158,8 @@ static void zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *req)
2157 fcp_rsp = (struct fcp_resp_with_ext *) &req->qtcb->bottom.io.fcp_rsp; 2158 fcp_rsp = (struct fcp_resp_with_ext *) &req->qtcb->bottom.io.fcp_rsp;
2158 zfcp_fc_eval_fcp_rsp(fcp_rsp, scpnt); 2159 zfcp_fc_eval_fcp_rsp(fcp_rsp, scpnt);
2159 2160
2160 zfcp_fsf_req_trace(req, scpnt);
2161
2162skip_fsfstatus: 2161skip_fsfstatus:
2162 zfcp_fsf_req_trace(req, scpnt);
2163 zfcp_dbf_scsi_result(req->adapter->dbf, scpnt, req); 2163 zfcp_dbf_scsi_result(req->adapter->dbf, scpnt, req);
2164 2164
2165 scpnt->host_scribble = NULL; 2165 scpnt->host_scribble = NULL;
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 9201afe65609..7f87979da22d 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -4724,6 +4724,10 @@ static ushort AscInitMicroCodeVar(ASC_DVC_VAR *asc_dvc)
4724 BUG_ON((unsigned long)asc_dvc->overrun_buf & 7); 4724 BUG_ON((unsigned long)asc_dvc->overrun_buf & 7);
4725 asc_dvc->overrun_dma = dma_map_single(board->dev, asc_dvc->overrun_buf, 4725 asc_dvc->overrun_dma = dma_map_single(board->dev, asc_dvc->overrun_buf,
4726 ASC_OVERRUN_BSIZE, DMA_FROM_DEVICE); 4726 ASC_OVERRUN_BSIZE, DMA_FROM_DEVICE);
4727 if (dma_mapping_error(board->dev, asc_dvc->overrun_dma)) {
4728 warn_code = -ENOMEM;
4729 goto err_dma_map;
4730 }
4727 phy_addr = cpu_to_le32(asc_dvc->overrun_dma); 4731 phy_addr = cpu_to_le32(asc_dvc->overrun_dma);
4728 AscMemDWordCopyPtrToLram(iop_base, ASCV_OVERRUN_PADDR_D, 4732 AscMemDWordCopyPtrToLram(iop_base, ASCV_OVERRUN_PADDR_D,
4729 (uchar *)&phy_addr, 1); 4733 (uchar *)&phy_addr, 1);
@@ -4739,14 +4743,23 @@ static ushort AscInitMicroCodeVar(ASC_DVC_VAR *asc_dvc)
4739 AscSetPCAddr(iop_base, ASC_MCODE_START_ADDR); 4743 AscSetPCAddr(iop_base, ASC_MCODE_START_ADDR);
4740 if (AscGetPCAddr(iop_base) != ASC_MCODE_START_ADDR) { 4744 if (AscGetPCAddr(iop_base) != ASC_MCODE_START_ADDR) {
4741 asc_dvc->err_code |= ASC_IERR_SET_PC_ADDR; 4745 asc_dvc->err_code |= ASC_IERR_SET_PC_ADDR;
4742 return warn_code; 4746 warn_code = UW_ERR;
4747 goto err_mcode_start;
4743 } 4748 }
4744 if (AscStartChip(iop_base) != 1) { 4749 if (AscStartChip(iop_base) != 1) {
4745 asc_dvc->err_code |= ASC_IERR_START_STOP_CHIP; 4750 asc_dvc->err_code |= ASC_IERR_START_STOP_CHIP;
4746 return warn_code; 4751 warn_code = UW_ERR;
4752 goto err_mcode_start;
4747 } 4753 }
4748 4754
4749 return warn_code; 4755 return warn_code;
4756
4757err_mcode_start:
4758 dma_unmap_single(board->dev, asc_dvc->overrun_dma,
4759 ASC_OVERRUN_BSIZE, DMA_FROM_DEVICE);
4760err_dma_map:
4761 asc_dvc->overrun_dma = 0;
4762 return warn_code;
4750} 4763}
4751 4764
4752static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc) 4765static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc)
@@ -4802,6 +4815,8 @@ static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc)
4802 } 4815 }
4803 release_firmware(fw); 4816 release_firmware(fw);
4804 warn_code |= AscInitMicroCodeVar(asc_dvc); 4817 warn_code |= AscInitMicroCodeVar(asc_dvc);
4818 if (!asc_dvc->overrun_dma)
4819 return warn_code;
4805 asc_dvc->init_state |= ASC_INIT_STATE_END_LOAD_MC; 4820 asc_dvc->init_state |= ASC_INIT_STATE_END_LOAD_MC;
4806 AscEnableInterrupt(iop_base); 4821 AscEnableInterrupt(iop_base);
4807 return warn_code; 4822 return warn_code;
@@ -7978,9 +7993,10 @@ static int advansys_reset(struct scsi_cmnd *scp)
7978 status = AscInitAsc1000Driver(asc_dvc); 7993 status = AscInitAsc1000Driver(asc_dvc);
7979 7994
7980 /* Refer to ASC_IERR_* definitions for meaning of 'err_code'. */ 7995 /* Refer to ASC_IERR_* definitions for meaning of 'err_code'. */
7981 if (asc_dvc->err_code) { 7996 if (asc_dvc->err_code || !asc_dvc->overrun_dma) {
7982 scmd_printk(KERN_INFO, scp, "SCSI bus reset error: " 7997 scmd_printk(KERN_INFO, scp, "SCSI bus reset error: "
7983 "0x%x\n", asc_dvc->err_code); 7998 "0x%x, status: 0x%x\n", asc_dvc->err_code,
7999 status);
7984 ret = FAILED; 8000 ret = FAILED;
7985 } else if (status) { 8001 } else if (status) {
7986 scmd_printk(KERN_INFO, scp, "SCSI bus reset warning: " 8002 scmd_printk(KERN_INFO, scp, "SCSI bus reset warning: "
@@ -12311,7 +12327,7 @@ static int __devinit advansys_board_found(struct Scsi_Host *shost,
12311 asc_dvc_varp->overrun_buf = kzalloc(ASC_OVERRUN_BSIZE, GFP_KERNEL); 12327 asc_dvc_varp->overrun_buf = kzalloc(ASC_OVERRUN_BSIZE, GFP_KERNEL);
12312 if (!asc_dvc_varp->overrun_buf) { 12328 if (!asc_dvc_varp->overrun_buf) {
12313 ret = -ENOMEM; 12329 ret = -ENOMEM;
12314 goto err_free_wide_mem; 12330 goto err_free_irq;
12315 } 12331 }
12316 warn_code = AscInitAsc1000Driver(asc_dvc_varp); 12332 warn_code = AscInitAsc1000Driver(asc_dvc_varp);
12317 12333
@@ -12320,30 +12336,36 @@ static int __devinit advansys_board_found(struct Scsi_Host *shost,
12320 "warn 0x%x, error 0x%x\n", 12336 "warn 0x%x, error 0x%x\n",
12321 asc_dvc_varp->init_state, warn_code, 12337 asc_dvc_varp->init_state, warn_code,
12322 asc_dvc_varp->err_code); 12338 asc_dvc_varp->err_code);
12323 if (asc_dvc_varp->err_code) { 12339 if (!asc_dvc_varp->overrun_dma) {
12324 ret = -ENODEV; 12340 ret = -ENODEV;
12325 kfree(asc_dvc_varp->overrun_buf); 12341 goto err_free_mem;
12326 } 12342 }
12327 } 12343 }
12328 } else { 12344 } else {
12329 if (advansys_wide_init_chip(shost)) 12345 if (advansys_wide_init_chip(shost)) {
12330 ret = -ENODEV; 12346 ret = -ENODEV;
12347 goto err_free_mem;
12348 }
12331 } 12349 }
12332 12350
12333 if (ret)
12334 goto err_free_wide_mem;
12335
12336 ASC_DBG_PRT_SCSI_HOST(2, shost); 12351 ASC_DBG_PRT_SCSI_HOST(2, shost);
12337 12352
12338 ret = scsi_add_host(shost, boardp->dev); 12353 ret = scsi_add_host(shost, boardp->dev);
12339 if (ret) 12354 if (ret)
12340 goto err_free_wide_mem; 12355 goto err_free_mem;
12341 12356
12342 scsi_scan_host(shost); 12357 scsi_scan_host(shost);
12343 return 0; 12358 return 0;
12344 12359
12345 err_free_wide_mem: 12360 err_free_mem:
12346 advansys_wide_free_mem(boardp); 12361 if (ASC_NARROW_BOARD(boardp)) {
12362 if (asc_dvc_varp->overrun_dma)
12363 dma_unmap_single(boardp->dev, asc_dvc_varp->overrun_dma,
12364 ASC_OVERRUN_BSIZE, DMA_FROM_DEVICE);
12365 kfree(asc_dvc_varp->overrun_buf);
12366 } else
12367 advansys_wide_free_mem(boardp);
12368 err_free_irq:
12347 free_irq(boardp->irq, shost); 12369 free_irq(boardp->irq, shost);
12348 err_free_dma: 12370 err_free_dma:
12349#ifdef CONFIG_ISA 12371#ifdef CONFIG_ISA
diff --git a/drivers/scsi/be2iscsi/be_mgmt.c b/drivers/scsi/be2iscsi/be_mgmt.c
index 72617b650a7e..e641922f20bc 100644
--- a/drivers/scsi/be2iscsi/be_mgmt.c
+++ b/drivers/scsi/be2iscsi/be_mgmt.c
@@ -169,6 +169,7 @@ unsigned char mgmt_invalidate_icds(struct beiscsi_hba *phba,
169 SE_DEBUG(DBG_LVL_1, 169 SE_DEBUG(DBG_LVL_1,
170 "Failed to allocate memory for" 170 "Failed to allocate memory for"
171 "mgmt_invalidate_icds \n"); 171 "mgmt_invalidate_icds \n");
172 spin_unlock(&ctrl->mbox_lock);
172 return -1; 173 return -1;
173 } 174 }
174 nonemb_cmd.size = sizeof(struct invalidate_commands_params_in); 175 nonemb_cmd.size = sizeof(struct invalidate_commands_params_in);
diff --git a/drivers/scsi/bnx2i/bnx2i.h b/drivers/scsi/bnx2i/bnx2i.h
index 6cf9dc37d78b..6b624e767d3b 100644
--- a/drivers/scsi/bnx2i/bnx2i.h
+++ b/drivers/scsi/bnx2i/bnx2i.h
@@ -362,6 +362,7 @@ struct bnx2i_hba {
362 u32 num_ccell; 362 u32 num_ccell;
363 363
364 int ofld_conns_active; 364 int ofld_conns_active;
365 wait_queue_head_t eh_wait;
365 366
366 int max_active_conns; 367 int max_active_conns;
367 struct iscsi_cid_queue cid_que; 368 struct iscsi_cid_queue cid_que;
@@ -381,6 +382,7 @@ struct bnx2i_hba {
381 spinlock_t lock; /* protects hba structure access */ 382 spinlock_t lock; /* protects hba structure access */
382 struct mutex net_dev_lock;/* sync net device access */ 383 struct mutex net_dev_lock;/* sync net device access */
383 384
385 int hba_shutdown_tmo;
384 /* 386 /*
385 * PCI related info. 387 * PCI related info.
386 */ 388 */
diff --git a/drivers/scsi/bnx2i/bnx2i_init.c b/drivers/scsi/bnx2i/bnx2i_init.c
index 6d8172e781cf..5d9296c599f6 100644
--- a/drivers/scsi/bnx2i/bnx2i_init.c
+++ b/drivers/scsi/bnx2i/bnx2i_init.c
@@ -177,11 +177,22 @@ void bnx2i_stop(void *handle)
177 struct bnx2i_hba *hba = handle; 177 struct bnx2i_hba *hba = handle;
178 178
179 /* check if cleanup happened in GOING_DOWN context */ 179 /* check if cleanup happened in GOING_DOWN context */
180 clear_bit(ADAPTER_STATE_UP, &hba->adapter_state);
181 if (!test_and_clear_bit(ADAPTER_STATE_GOING_DOWN, 180 if (!test_and_clear_bit(ADAPTER_STATE_GOING_DOWN,
182 &hba->adapter_state)) 181 &hba->adapter_state))
183 iscsi_host_for_each_session(hba->shost, 182 iscsi_host_for_each_session(hba->shost,
184 bnx2i_drop_session); 183 bnx2i_drop_session);
184
185 /* Wait for all endpoints to be torn down, Chip will be reset once
186 * control returns to network driver. So it is required to cleanup and
187 * release all connection resources before returning from this routine.
188 */
189 wait_event_interruptible_timeout(hba->eh_wait,
190 (hba->ofld_conns_active == 0),
191 hba->hba_shutdown_tmo);
192 /* This flag should be cleared last so that ep_disconnect() gracefully
193 * cleans up connection context
194 */
195 clear_bit(ADAPTER_STATE_UP, &hba->adapter_state);
185} 196}
186 197
187/** 198/**
diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
index f2e9b18fe76c..fa68ab34b998 100644
--- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
+++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
@@ -820,6 +820,11 @@ struct bnx2i_hba *bnx2i_alloc_hba(struct cnic_dev *cnic)
820 820
821 spin_lock_init(&hba->lock); 821 spin_lock_init(&hba->lock);
822 mutex_init(&hba->net_dev_lock); 822 mutex_init(&hba->net_dev_lock);
823 init_waitqueue_head(&hba->eh_wait);
824 if (test_bit(BNX2I_NX2_DEV_57710, &hba->cnic_dev_type))
825 hba->hba_shutdown_tmo = 240 * HZ;
826 else /* 5706/5708/5709 */
827 hba->hba_shutdown_tmo = 30 * HZ;
823 828
824 if (iscsi_host_add(shost, &hba->pcidev->dev)) 829 if (iscsi_host_add(shost, &hba->pcidev->dev))
825 goto free_dump_mem; 830 goto free_dump_mem;
@@ -1658,8 +1663,8 @@ static struct iscsi_endpoint *bnx2i_ep_connect(struct Scsi_Host *shost,
1658 */ 1663 */
1659 hba = bnx2i_check_route(dst_addr); 1664 hba = bnx2i_check_route(dst_addr);
1660 1665
1661 if (!hba) { 1666 if (!hba || test_bit(ADAPTER_STATE_GOING_DOWN, &hba->adapter_state)) {
1662 rc = -ENOMEM; 1667 rc = -EINVAL;
1663 goto check_busy; 1668 goto check_busy;
1664 } 1669 }
1665 1670
@@ -1804,7 +1809,7 @@ static int bnx2i_ep_poll(struct iscsi_endpoint *ep, int timeout_ms)
1804 (bnx2i_ep->state == 1809 (bnx2i_ep->state ==
1805 EP_STATE_CONNECT_COMPL)), 1810 EP_STATE_CONNECT_COMPL)),
1806 msecs_to_jiffies(timeout_ms)); 1811 msecs_to_jiffies(timeout_ms));
1807 if (!rc || (bnx2i_ep->state == EP_STATE_OFLD_FAILED)) 1812 if (bnx2i_ep->state == EP_STATE_OFLD_FAILED)
1808 rc = -1; 1813 rc = -1;
1809 1814
1810 if (rc > 0) 1815 if (rc > 0)
@@ -1957,6 +1962,8 @@ return_bnx2i_ep:
1957 1962
1958 if (!hba->ofld_conns_active) 1963 if (!hba->ofld_conns_active)
1959 bnx2i_unreg_dev_all(); 1964 bnx2i_unreg_dev_all();
1965
1966 wake_up_interruptible(&hba->eh_wait);
1960} 1967}
1961 1968
1962 1969
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
index 496764349c41..0435d044c9da 100644
--- a/drivers/scsi/dpt_i2o.c
+++ b/drivers/scsi/dpt_i2o.c
@@ -188,7 +188,8 @@ MODULE_DEVICE_TABLE(pci,dptids);
188static int adpt_detect(struct scsi_host_template* sht) 188static int adpt_detect(struct scsi_host_template* sht)
189{ 189{
190 struct pci_dev *pDev = NULL; 190 struct pci_dev *pDev = NULL;
191 adpt_hba* pHba; 191 adpt_hba *pHba;
192 adpt_hba *next;
192 193
193 PINFO("Detecting Adaptec I2O RAID controllers...\n"); 194 PINFO("Detecting Adaptec I2O RAID controllers...\n");
194 195
@@ -206,7 +207,8 @@ static int adpt_detect(struct scsi_host_template* sht)
206 } 207 }
207 208
208 /* In INIT state, Activate IOPs */ 209 /* In INIT state, Activate IOPs */
209 for (pHba = hba_chain; pHba; pHba = pHba->next) { 210 for (pHba = hba_chain; pHba; pHba = next) {
211 next = pHba->next;
210 // Activate does get status , init outbound, and get hrt 212 // Activate does get status , init outbound, and get hrt
211 if (adpt_i2o_activate_hba(pHba) < 0) { 213 if (adpt_i2o_activate_hba(pHba) < 0) {
212 adpt_i2o_delete_hba(pHba); 214 adpt_i2o_delete_hba(pHba);
@@ -243,7 +245,8 @@ rebuild_sys_tab:
243 PDEBUG("HBA's in OPERATIONAL state\n"); 245 PDEBUG("HBA's in OPERATIONAL state\n");
244 246
245 printk("dpti: If you have a lot of devices this could take a few minutes.\n"); 247 printk("dpti: If you have a lot of devices this could take a few minutes.\n");
246 for (pHba = hba_chain; pHba; pHba = pHba->next) { 248 for (pHba = hba_chain; pHba; pHba = next) {
249 next = pHba->next;
247 printk(KERN_INFO"%s: Reading the hardware resource table.\n", pHba->name); 250 printk(KERN_INFO"%s: Reading the hardware resource table.\n", pHba->name);
248 if (adpt_i2o_lct_get(pHba) < 0){ 251 if (adpt_i2o_lct_get(pHba) < 0){
249 adpt_i2o_delete_hba(pHba); 252 adpt_i2o_delete_hba(pHba);
@@ -263,7 +266,8 @@ rebuild_sys_tab:
263 adpt_sysfs_class = NULL; 266 adpt_sysfs_class = NULL;
264 } 267 }
265 268
266 for (pHba = hba_chain; pHba; pHba = pHba->next) { 269 for (pHba = hba_chain; pHba; pHba = next) {
270 next = pHba->next;
267 if (adpt_scsi_host_alloc(pHba, sht) < 0){ 271 if (adpt_scsi_host_alloc(pHba, sht) < 0){
268 adpt_i2o_delete_hba(pHba); 272 adpt_i2o_delete_hba(pHba);
269 continue; 273 continue;
@@ -1229,11 +1233,10 @@ static void adpt_i2o_delete_hba(adpt_hba* pHba)
1229 } 1233 }
1230 } 1234 }
1231 pci_dev_put(pHba->pDev); 1235 pci_dev_put(pHba->pDev);
1232 kfree(pHba);
1233
1234 if (adpt_sysfs_class) 1236 if (adpt_sysfs_class)
1235 device_destroy(adpt_sysfs_class, 1237 device_destroy(adpt_sysfs_class,
1236 MKDEV(DPTI_I2O_MAJOR, pHba->unit)); 1238 MKDEV(DPTI_I2O_MAJOR, pHba->unit));
1239 kfree(pHba);
1237 1240
1238 if(hba_count <= 0){ 1241 if(hba_count <= 0){
1239 unregister_chrdev(DPTI_I2O_MAJOR, DPT_DRIVER); 1242 unregister_chrdev(DPTI_I2O_MAJOR, DPT_DRIVER);
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index ff5ec5ac1fb5..88bad0e81bdd 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -323,16 +323,6 @@ static void set_srp_direction(struct scsi_cmnd *cmd,
323 srp_cmd->buf_fmt = fmt; 323 srp_cmd->buf_fmt = fmt;
324} 324}
325 325
326static void unmap_sg_list(int num_entries,
327 struct device *dev,
328 struct srp_direct_buf *md)
329{
330 int i;
331
332 for (i = 0; i < num_entries; ++i)
333 dma_unmap_single(dev, md[i].va, md[i].len, DMA_BIDIRECTIONAL);
334}
335
336/** 326/**
337 * unmap_cmd_data: - Unmap data pointed in srp_cmd based on the format 327 * unmap_cmd_data: - Unmap data pointed in srp_cmd based on the format
338 * @cmd: srp_cmd whose additional_data member will be unmapped 328 * @cmd: srp_cmd whose additional_data member will be unmapped
@@ -350,24 +340,9 @@ static void unmap_cmd_data(struct srp_cmd *cmd,
350 340
351 if (out_fmt == SRP_NO_DATA_DESC && in_fmt == SRP_NO_DATA_DESC) 341 if (out_fmt == SRP_NO_DATA_DESC && in_fmt == SRP_NO_DATA_DESC)
352 return; 342 return;
353 else if (out_fmt == SRP_DATA_DESC_DIRECT ||
354 in_fmt == SRP_DATA_DESC_DIRECT) {
355 struct srp_direct_buf *data =
356 (struct srp_direct_buf *) cmd->add_data;
357 dma_unmap_single(dev, data->va, data->len, DMA_BIDIRECTIONAL);
358 } else {
359 struct srp_indirect_buf *indirect =
360 (struct srp_indirect_buf *) cmd->add_data;
361 int num_mapped = indirect->table_desc.len /
362 sizeof(struct srp_direct_buf);
363 343
364 if (num_mapped <= MAX_INDIRECT_BUFS) { 344 if (evt_struct->cmnd)
365 unmap_sg_list(num_mapped, dev, &indirect->desc_list[0]); 345 scsi_dma_unmap(evt_struct->cmnd);
366 return;
367 }
368
369 unmap_sg_list(num_mapped, dev, evt_struct->ext_list);
370 }
371} 346}
372 347
373static int map_sg_list(struct scsi_cmnd *cmd, int nseg, 348static int map_sg_list(struct scsi_cmnd *cmd, int nseg,
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index 0ee725ced511..02143af7c1af 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -599,7 +599,7 @@ static void iscsi_sw_tcp_conn_stop(struct iscsi_cls_conn *cls_conn, int flag)
599 set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx); 599 set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx);
600 write_unlock_bh(&tcp_sw_conn->sock->sk->sk_callback_lock); 600 write_unlock_bh(&tcp_sw_conn->sock->sk->sk_callback_lock);
601 601
602 if (sock->sk->sk_sleep && waitqueue_active(sock->sk->sk_sleep)) { 602 if (sock->sk->sk_sleep) {
603 sock->sk->sk_err = EIO; 603 sock->sk->sk_err = EIO;
604 wake_up_interruptible(sock->sk->sk_sleep); 604 wake_up_interruptible(sock->sk->sk_sleep);
605 } 605 }
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 6d5ae4474bb3..633e09036357 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -471,12 +471,12 @@ static int iscsi_prep_scsi_cmd_pdu(struct iscsi_task *task)
471 471
472 WARN_ON(hdrlength >= 256); 472 WARN_ON(hdrlength >= 256);
473 hdr->hlength = hdrlength & 0xFF; 473 hdr->hlength = hdrlength & 0xFF;
474 hdr->cmdsn = task->cmdsn = cpu_to_be32(session->cmdsn);
474 475
475 if (session->tt->init_task && session->tt->init_task(task)) 476 if (session->tt->init_task && session->tt->init_task(task))
476 return -EIO; 477 return -EIO;
477 478
478 task->state = ISCSI_TASK_RUNNING; 479 task->state = ISCSI_TASK_RUNNING;
479 hdr->cmdsn = task->cmdsn = cpu_to_be32(session->cmdsn);
480 session->cmdsn++; 480 session->cmdsn++;
481 481
482 conn->scsicmd_pdus_cnt++; 482 conn->scsicmd_pdus_cnt++;
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index b00efd19aadb..88f744672576 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -395,11 +395,15 @@ int sas_ata_init_host_and_port(struct domain_device *found_dev,
395void sas_ata_task_abort(struct sas_task *task) 395void sas_ata_task_abort(struct sas_task *task)
396{ 396{
397 struct ata_queued_cmd *qc = task->uldd_task; 397 struct ata_queued_cmd *qc = task->uldd_task;
398 struct request_queue *q = qc->scsicmd->device->request_queue;
398 struct completion *waiting; 399 struct completion *waiting;
400 unsigned long flags;
399 401
400 /* Bounce SCSI-initiated commands to the SCSI EH */ 402 /* Bounce SCSI-initiated commands to the SCSI EH */
401 if (qc->scsicmd) { 403 if (qc->scsicmd) {
404 spin_lock_irqsave(q->queue_lock, flags);
402 blk_abort_request(qc->scsicmd->request); 405 blk_abort_request(qc->scsicmd->request);
406 spin_unlock_irqrestore(q->queue_lock, flags);
403 scsi_schedule_eh(qc->scsicmd->device->host); 407 scsi_schedule_eh(qc->scsicmd->device->host);
404 return; 408 return;
405 } 409 }
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index 2660e1b4569a..822835055cef 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -1030,6 +1030,8 @@ int __sas_task_abort(struct sas_task *task)
1030void sas_task_abort(struct sas_task *task) 1030void sas_task_abort(struct sas_task *task)
1031{ 1031{
1032 struct scsi_cmnd *sc = task->uldd_task; 1032 struct scsi_cmnd *sc = task->uldd_task;
1033 struct request_queue *q = sc->device->request_queue;
1034 unsigned long flags;
1033 1035
1034 /* Escape for libsas internal commands */ 1036 /* Escape for libsas internal commands */
1035 if (!sc) { 1037 if (!sc) {
@@ -1044,7 +1046,9 @@ void sas_task_abort(struct sas_task *task)
1044 return; 1046 return;
1045 } 1047 }
1046 1048
1049 spin_lock_irqsave(q->queue_lock, flags);
1047 blk_abort_request(sc->request); 1050 blk_abort_request(sc->request);
1051 spin_unlock_irqrestore(q->queue_lock, flags);
1048 scsi_schedule_eh(sc->device->host); 1052 scsi_schedule_eh(sc->device->host);
1049} 1053}
1050 1054
diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
index ec3723831e89..d62b3e467926 100644
--- a/drivers/scsi/lpfc/lpfc_bsg.c
+++ b/drivers/scsi/lpfc/lpfc_bsg.c
@@ -433,7 +433,7 @@ lpfc_bsg_rport_els_cmp(struct lpfc_hba *phba,
433 dd_data = cmdiocbq->context1; 433 dd_data = cmdiocbq->context1;
434 /* normal completion and timeout crossed paths, already done */ 434 /* normal completion and timeout crossed paths, already done */
435 if (!dd_data) { 435 if (!dd_data) {
436 spin_unlock_irqrestore(&phba->hbalock, flags); 436 spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
437 return; 437 return;
438 } 438 }
439 439
@@ -1196,7 +1196,7 @@ lpfc_issue_ct_rsp_cmp(struct lpfc_hba *phba,
1196 dd_data = cmdiocbq->context1; 1196 dd_data = cmdiocbq->context1;
1197 /* normal completion and timeout crossed paths, already done */ 1197 /* normal completion and timeout crossed paths, already done */
1198 if (!dd_data) { 1198 if (!dd_data) {
1199 spin_unlock_irqrestore(&phba->hbalock, flags); 1199 spin_unlock_irqrestore(&phba->ct_ev_lock, flags);
1200 return; 1200 return;
1201 } 1201 }
1202 1202
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 359e9a71a021..1c7ef55966fb 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -2393,6 +2393,7 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
2393 return 0; 2393 return 0;
2394 2394
2395done: 2395done:
2396 spin_unlock_irqrestore(&ha->hardware_lock, flags);
2396 if (bsg_job->request->msgcode == FC_BSG_HST_CT) 2397 if (bsg_job->request->msgcode == FC_BSG_HST_CT)
2397 kfree(sp->fcport); 2398 kfree(sp->fcport);
2398 kfree(sp->ctx); 2399 kfree(sp->ctx);
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
index 09d6d4b76f39..caeb7d10ae04 100644
--- a/drivers/scsi/qla4xxx/ql4_mbx.c
+++ b/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -467,7 +467,7 @@ int qla4xxx_get_fwddb_entry(struct scsi_qla_host *ha,
467 if (conn_err_detail) 467 if (conn_err_detail)
468 *conn_err_detail = mbox_sts[5]; 468 *conn_err_detail = mbox_sts[5];
469 if (tcp_source_port_num) 469 if (tcp_source_port_num)
470 *tcp_source_port_num = (uint16_t) mbox_sts[6] >> 16; 470 *tcp_source_port_num = (uint16_t) (mbox_sts[6] >> 16);
471 if (connection_id) 471 if (connection_id)
472 *connection_id = (uint16_t) mbox_sts[6] & 0x00FF; 472 *connection_id = (uint16_t) mbox_sts[6] & 0x00FF;
473 status = QLA_SUCCESS; 473 status = QLA_SUCCESS;
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
index 3e10c306de94..3a5bfd10b2cb 100644
--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -957,7 +957,8 @@ static int resp_start_stop(struct scsi_cmnd * scp,
957static sector_t get_sdebug_capacity(void) 957static sector_t get_sdebug_capacity(void)
958{ 958{
959 if (scsi_debug_virtual_gb > 0) 959 if (scsi_debug_virtual_gb > 0)
960 return 2048 * 1024 * (sector_t)scsi_debug_virtual_gb; 960 return (sector_t)scsi_debug_virtual_gb *
961 (1073741824 / scsi_debug_sector_size);
961 else 962 else
962 return sdebug_store_sectors; 963 return sdebug_store_sectors;
963} 964}
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index d45c69ca5737..7ad53fa42766 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -302,7 +302,20 @@ static int scsi_check_sense(struct scsi_cmnd *scmd)
302 if (scmd->device->allow_restart && 302 if (scmd->device->allow_restart &&
303 (sshdr.asc == 0x04) && (sshdr.ascq == 0x02)) 303 (sshdr.asc == 0x04) && (sshdr.ascq == 0x02))
304 return FAILED; 304 return FAILED;
305 return SUCCESS; 305
306 if (blk_barrier_rq(scmd->request))
307 /*
308 * barrier requests should always retry on UA
309 * otherwise block will get a spurious error
310 */
311 return NEEDS_RETRY;
312 else
313 /*
314 * for normal (non barrier) commands, pass the
315 * UA upwards for a determination in the
316 * completion functions
317 */
318 return SUCCESS;
306 319
307 /* these three are not supported */ 320 /* these three are not supported */
308 case COPY_ABORTED: 321 case COPY_ABORTED:
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 8b827f37b03e..de6c60320f6f 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1040,6 +1040,7 @@ static void sd_prepare_flush(struct request_queue *q, struct request *rq)
1040{ 1040{
1041 rq->cmd_type = REQ_TYPE_BLOCK_PC; 1041 rq->cmd_type = REQ_TYPE_BLOCK_PC;
1042 rq->timeout = SD_TIMEOUT; 1042 rq->timeout = SD_TIMEOUT;
1043 rq->retries = SD_MAX_RETRIES;
1043 rq->cmd[0] = SYNCHRONIZE_CACHE; 1044 rq->cmd[0] = SYNCHRONIZE_CACHE;
1044 rq->cmd_len = 10; 1045 rq->cmd_len = 10;
1045} 1046}
diff --git a/drivers/scsi/wd7000.c b/drivers/scsi/wd7000.c
index d0b7d2ff9ac5..333580bf37c5 100644
--- a/drivers/scsi/wd7000.c
+++ b/drivers/scsi/wd7000.c
@@ -1587,7 +1587,7 @@ static int wd7000_host_reset(struct scsi_cmnd *SCpnt)
1587{ 1587{
1588 Adapter *host = (Adapter *) SCpnt->device->host->hostdata; 1588 Adapter *host = (Adapter *) SCpnt->device->host->hostdata;
1589 1589
1590 spin_unlock_irq(SCpnt->device->host->host_lock); 1590 spin_lock_irq(SCpnt->device->host->host_lock);
1591 1591
1592 if (wd7000_adapter_reset(host) < 0) { 1592 if (wd7000_adapter_reset(host) < 0) {
1593 spin_unlock_irq(SCpnt->device->host->host_lock); 1593 spin_unlock_irq(SCpnt->device->host->host_lock);
diff --git a/drivers/serial/8250_pnp.c b/drivers/serial/8250_pnp.c
index 24485cc62ff8..4822cb50cd0f 100644
--- a/drivers/serial/8250_pnp.c
+++ b/drivers/serial/8250_pnp.c
@@ -348,6 +348,8 @@ static const struct pnp_device_id pnp_dev_table[] = {
348 { "FUJ02E6", 0 }, 348 { "FUJ02E6", 0 },
349 /* Fujitsu Wacom 2FGT Tablet PC device */ 349 /* Fujitsu Wacom 2FGT Tablet PC device */
350 { "FUJ02E7", 0 }, 350 { "FUJ02E7", 0 },
351 /* Fujitsu Wacom 1FGT Tablet PC device */
352 { "FUJ02E9", 0 },
351 /* 353 /*
352 * LG C1 EXPRESS DUAL (C1-PB11A3) touch screen (actually a FUJ02E6 in 354 * LG C1 EXPRESS DUAL (C1-PB11A3) touch screen (actually a FUJ02E6 in
353 * disguise) 355 * disguise)
diff --git a/drivers/serial/mcf.c b/drivers/serial/mcf.c
index 7bb5fee639e3..b5aaef965f24 100644
--- a/drivers/serial/mcf.c
+++ b/drivers/serial/mcf.c
@@ -263,6 +263,7 @@ static void mcf_set_termios(struct uart_port *port, struct ktermios *termios,
263 } 263 }
264 264
265 spin_lock_irqsave(&port->lock, flags); 265 spin_lock_irqsave(&port->lock, flags);
266 uart_update_timeout(port, termios->c_cflag, baud);
266 writeb(MCFUART_UCR_CMDRESETRX, port->membase + MCFUART_UCR); 267 writeb(MCFUART_UCR_CMDRESETRX, port->membase + MCFUART_UCR);
267 writeb(MCFUART_UCR_CMDRESETTX, port->membase + MCFUART_UCR); 268 writeb(MCFUART_UCR_CMDRESETTX, port->membase + MCFUART_UCR);
268 writeb(MCFUART_UCR_CMDRESETMRPTR, port->membase + MCFUART_UCR); 269 writeb(MCFUART_UCR_CMDRESETMRPTR, port->membase + MCFUART_UCR);
@@ -379,6 +380,7 @@ static irqreturn_t mcf_interrupt(int irq, void *data)
379static void mcf_config_port(struct uart_port *port, int flags) 380static void mcf_config_port(struct uart_port *port, int flags)
380{ 381{
381 port->type = PORT_MCF; 382 port->type = PORT_MCF;
383 port->fifosize = MCFUART_TXFIFOSIZE;
382 384
383 /* Clear mask, so no surprise interrupts. */ 385 /* Clear mask, so no surprise interrupts. */
384 writeb(0, port->membase + MCFUART_UIMR); 386 writeb(0, port->membase + MCFUART_UIMR);
@@ -424,7 +426,7 @@ static int mcf_verify_port(struct uart_port *port, struct serial_struct *ser)
424/* 426/*
425 * Define the basic serial functions we support. 427 * Define the basic serial functions we support.
426 */ 428 */
427static struct uart_ops mcf_uart_ops = { 429static const struct uart_ops mcf_uart_ops = {
428 .tx_empty = mcf_tx_empty, 430 .tx_empty = mcf_tx_empty,
429 .get_mctrl = mcf_get_mctrl, 431 .get_mctrl = mcf_get_mctrl,
430 .set_mctrl = mcf_set_mctrl, 432 .set_mctrl = mcf_set_mctrl,
@@ -443,7 +445,7 @@ static struct uart_ops mcf_uart_ops = {
443 .verify_port = mcf_verify_port, 445 .verify_port = mcf_verify_port,
444}; 446};
445 447
446static struct mcf_uart mcf_ports[3]; 448static struct mcf_uart mcf_ports[4];
447 449
448#define MCF_MAXPORTS ARRAY_SIZE(mcf_ports) 450#define MCF_MAXPORTS ARRAY_SIZE(mcf_ports)
449 451
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 3119fddaedb5..a176ab4bd65b 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -29,39 +29,6 @@
29 * kind, whether express or implied. 29 * kind, whether express or implied.
30 */ 30 */
31 31
32/* Platform device Usage :
33 *
34 * Since PSCs can have multiple function, the correct driver for each one
35 * is selected by calling mpc52xx_match_psc_function(...). The function
36 * handled by this driver is "uart".
37 *
38 * The driver init all necessary registers to place the PSC in uart mode without
39 * DCD. However, the pin multiplexing aren't changed and should be set either
40 * by the bootloader or in the platform init code.
41 *
42 * The idx field must be equal to the PSC index (e.g. 0 for PSC1, 1 for PSC2,
43 * and so on). So the PSC1 is mapped to /dev/ttyPSC0, PSC2 to /dev/ttyPSC1 and
44 * so on. But be warned, it's an ABSOLUTE REQUIREMENT ! This is needed mainly
45 * fpr the console code : without this 1:1 mapping, at early boot time, when we
46 * are parsing the kernel args console=ttyPSC?, we wouldn't know which PSC it
47 * will be mapped to.
48 */
49
50/* OF Platform device Usage :
51 *
52 * This driver is only used for PSCs configured in uart mode. The device
53 * tree will have a node for each PSC with "mpc52xx-psc-uart" in the compatible
54 * list.
55 *
56 * By default, PSC devices are enumerated in the order they are found. However
57 * a particular PSC number can be forces by adding 'device_no = <port#>'
58 * to the device node.
59 *
60 * The driver init all necessary registers to place the PSC in uart mode without
61 * DCD. However, the pin multiplexing aren't changed and should be set either
62 * by the bootloader or in the platform init code.
63 */
64
65#undef DEBUG 32#undef DEBUG
66 33
67#include <linux/device.h> 34#include <linux/device.h>
diff --git a/drivers/serial/pmac_zilog.c b/drivers/serial/pmac_zilog.c
index 4eaa043ca2a8..700e10833bf9 100644
--- a/drivers/serial/pmac_zilog.c
+++ b/drivers/serial/pmac_zilog.c
@@ -752,8 +752,10 @@ static void pmz_break_ctl(struct uart_port *port, int break_state)
752 uap->curregs[R5] = new_reg; 752 uap->curregs[R5] = new_reg;
753 753
754 /* NOTE: Not subject to 'transmitter active' rule. */ 754 /* NOTE: Not subject to 'transmitter active' rule. */
755 if (ZS_IS_ASLEEP(uap)) 755 if (ZS_IS_ASLEEP(uap)) {
756 spin_unlock_irqrestore(&port->lock, flags);
756 return; 757 return;
758 }
757 write_zsreg(uap, R5, uap->curregs[R5]); 759 write_zsreg(uap, R5, uap->curregs[R5]);
758 } 760 }
759 761
diff --git a/drivers/serial/serial_ks8695.c b/drivers/serial/serial_ks8695.c
index 2e71bbc04dac..b1962025b1aa 100644
--- a/drivers/serial/serial_ks8695.c
+++ b/drivers/serial/serial_ks8695.c
@@ -650,6 +650,7 @@ static struct console ks8695_console = {
650 650
651static int __init ks8695_console_init(void) 651static int __init ks8695_console_init(void)
652{ 652{
653 add_preferred_console(SERIAL_KS8695_DEVNAME, 0, NULL);
653 register_console(&ks8695_console); 654 register_console(&ks8695_console);
654 return 0; 655 return 0;
655} 656}
diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c
index d8356af118a8..e0de0d0eedea 100644
--- a/drivers/spi/omap2_mcspi.c
+++ b/drivers/spi/omap2_mcspi.c
@@ -204,6 +204,7 @@ static inline void mcspi_write_chconf0(const struct spi_device *spi, u32 val)
204 204
205 cs->chconf0 = val; 205 cs->chconf0 = val;
206 mcspi_write_cs_reg(spi, OMAP2_MCSPI_CHCONF0, val); 206 mcspi_write_cs_reg(spi, OMAP2_MCSPI_CHCONF0, val);
207 mcspi_read_cs_reg(spi, OMAP2_MCSPI_CHCONF0);
207} 208}
208 209
209static void omap2_mcspi_set_dma_req(const struct spi_device *spi, 210static void omap2_mcspi_set_dma_req(const struct spi_device *spi,
@@ -532,7 +533,7 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
532 goto out; 533 goto out;
533 } 534 }
534#ifdef VERBOSE 535#ifdef VERBOSE
535 dev_dbg(&spi->dev, "write-%d %04x\n", 536 dev_dbg(&spi->dev, "write-%d %08x\n",
536 word_len, *tx); 537 word_len, *tx);
537#endif 538#endif
538 __raw_writel(*tx++, tx_reg); 539 __raw_writel(*tx++, tx_reg);
@@ -550,7 +551,7 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
550 mcspi_write_chconf0(spi, l); 551 mcspi_write_chconf0(spi, l);
551 *rx++ = __raw_readl(rx_reg); 552 *rx++ = __raw_readl(rx_reg);
552#ifdef VERBOSE 553#ifdef VERBOSE
553 dev_dbg(&spi->dev, "read-%d %04x\n", 554 dev_dbg(&spi->dev, "read-%d %08x\n",
554 word_len, *(rx - 1)); 555 word_len, *(rx - 1));
555#endif 556#endif
556 } 557 }
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 9ffb0fdbd6fe..b3a1f9259b62 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -41,7 +41,7 @@ static void spidev_release(struct device *dev)
41 spi->master->cleanup(spi); 41 spi->master->cleanup(spi);
42 42
43 spi_master_put(spi->master); 43 spi_master_put(spi->master);
44 kfree(dev); 44 kfree(spi);
45} 45}
46 46
47static ssize_t 47static ssize_t
@@ -257,6 +257,7 @@ int spi_add_device(struct spi_device *spi)
257{ 257{
258 static DEFINE_MUTEX(spi_add_lock); 258 static DEFINE_MUTEX(spi_add_lock);
259 struct device *dev = spi->master->dev.parent; 259 struct device *dev = spi->master->dev.parent;
260 struct device *d;
260 int status; 261 int status;
261 262
262 /* Chipselects are numbered 0..max; validate. */ 263 /* Chipselects are numbered 0..max; validate. */
@@ -278,10 +279,11 @@ int spi_add_device(struct spi_device *spi)
278 */ 279 */
279 mutex_lock(&spi_add_lock); 280 mutex_lock(&spi_add_lock);
280 281
281 if (bus_find_device_by_name(&spi_bus_type, NULL, dev_name(&spi->dev)) 282 d = bus_find_device_by_name(&spi_bus_type, NULL, dev_name(&spi->dev));
282 != NULL) { 283 if (d != NULL) {
283 dev_err(dev, "chipselect %d already in use\n", 284 dev_err(dev, "chipselect %d already in use\n",
284 spi->chip_select); 285 spi->chip_select);
286 put_device(d);
285 status = -EBUSY; 287 status = -EBUSY;
286 goto done; 288 goto done;
287 } 289 }
diff --git a/drivers/staging/dt3155/dt3155_drv.c b/drivers/staging/dt3155/dt3155_drv.c
index a67c622869d2..7ac2c6d8e9a3 100644
--- a/drivers/staging/dt3155/dt3155_drv.c
+++ b/drivers/staging/dt3155/dt3155_drv.c
@@ -57,19 +57,8 @@ MA 02111-1307 USA
57 57
58extern void printques(int); 58extern void printques(int);
59 59
60#ifdef MODULE
61#include <linux/module.h> 60#include <linux/module.h>
62#include <linux/interrupt.h> 61#include <linux/interrupt.h>
63
64
65MODULE_LICENSE("GPL");
66
67#endif
68
69#ifndef CONFIG_PCI
70#error "DT3155 : Kernel PCI support not enabled (DT3155 drive requires PCI)"
71#endif
72
73#include <linux/pci.h> 62#include <linux/pci.h>
74#include <linux/types.h> 63#include <linux/types.h>
75#include <linux/poll.h> 64#include <linux/poll.h>
@@ -84,6 +73,9 @@ MODULE_LICENSE("GPL");
84#include "dt3155_io.h" 73#include "dt3155_io.h"
85#include "allocator.h" 74#include "allocator.h"
86 75
76
77MODULE_LICENSE("GPL");
78
87/* Error variable. Zero means no error. */ 79/* Error variable. Zero means no error. */
88int dt3155_errno = 0; 80int dt3155_errno = 0;
89 81
@@ -472,9 +464,9 @@ static void dt3155_init_isr(int minor)
472 /* 50/60 Hz should be set before this point but let's make sure it is */ 464 /* 50/60 Hz should be set before this point but let's make sure it is */
473 /* right anyway */ 465 /* right anyway */
474 466
475 ReadI2C(dt3155_lbase[ minor ], CONFIG, &i2c_csr2.reg); 467 ReadI2C(dt3155_lbase[ minor ], CSR2, &i2c_csr2.reg);
476 i2c_csr2.fld.HZ50 = FORMAT50HZ; 468 i2c_csr2.fld.HZ50 = FORMAT50HZ;
477 WriteI2C(dt3155_lbase[ minor ], CONFIG, i2c_config.reg); 469 WriteI2C(dt3155_lbase[ minor ], CSR2, i2c_csr2.reg);
478 470
479 /* enable busmaster chip, clear flags */ 471 /* enable busmaster chip, clear flags */
480 472
diff --git a/drivers/staging/hv/Hv.c b/drivers/staging/hv/Hv.c
index 5d53889fb4a4..3a1112d29aeb 100644
--- a/drivers/staging/hv/Hv.c
+++ b/drivers/staging/hv/Hv.c
@@ -306,9 +306,9 @@ void HvCleanup(void)
306 DPRINT_ENTER(VMBUS); 306 DPRINT_ENTER(VMBUS);
307 307
308 if (gHvContext.SignalEventBuffer) { 308 if (gHvContext.SignalEventBuffer) {
309 kfree(gHvContext.SignalEventBuffer);
309 gHvContext.SignalEventBuffer = NULL; 310 gHvContext.SignalEventBuffer = NULL;
310 gHvContext.SignalEventParam = NULL; 311 gHvContext.SignalEventParam = NULL;
311 kfree(gHvContext.SignalEventBuffer);
312 } 312 }
313 313
314 if (gHvContext.HypercallPage) { 314 if (gHvContext.HypercallPage) {
diff --git a/drivers/staging/hv/RndisFilter.c b/drivers/staging/hv/RndisFilter.c
index cd2930de2176..6704f64c93f0 100644
--- a/drivers/staging/hv/RndisFilter.c
+++ b/drivers/staging/hv/RndisFilter.c
@@ -751,6 +751,7 @@ static int RndisFilterOpenDevice(struct rndis_device *Device)
751 751
752 ret = RndisFilterSetPacketFilter(Device, 752 ret = RndisFilterSetPacketFilter(Device,
753 NDIS_PACKET_TYPE_BROADCAST | 753 NDIS_PACKET_TYPE_BROADCAST |
754 NDIS_PACKET_TYPE_ALL_MULTICAST |
754 NDIS_PACKET_TYPE_DIRECTED); 755 NDIS_PACKET_TYPE_DIRECTED);
755 if (ret == 0) 756 if (ret == 0)
756 Device->State = RNDIS_DEV_DATAINITIALIZED; 757 Device->State = RNDIS_DEV_DATAINITIALIZED;
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index 2ccb6b93fe47..ab27d9a4446d 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -403,8 +403,7 @@ static int netvsc_probe(struct device *device)
403 if (!net_drv_obj->Base.OnDeviceAdd) 403 if (!net_drv_obj->Base.OnDeviceAdd)
404 return -1; 404 return -1;
405 405
406 net = alloc_netdev(sizeof(struct net_device_context), "seth%d", 406 net = alloc_etherdev(sizeof(struct net_device_context));
407 ether_setup);
408 if (!net) 407 if (!net)
409 return -1; 408 return -1;
410 409
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
index ea76902797bb..82e43588e8a5 100644
--- a/drivers/staging/iio/accel/lis3l02dq_core.c
+++ b/drivers/staging/iio/accel/lis3l02dq_core.c
@@ -618,7 +618,7 @@ static int lis3l02dq_thresh_handler_th(struct iio_dev *dev_info,
618static void lis3l02dq_thresh_handler_bh_no_check(struct work_struct *work_s) 618static void lis3l02dq_thresh_handler_bh_no_check(struct work_struct *work_s)
619{ 619{
620 struct iio_work_cont *wc 620 struct iio_work_cont *wc
621 = container_of(work_s, struct iio_work_cont, ws_nocheck); 621 = container_of(work_s, struct iio_work_cont, ws);
622 struct lis3l02dq_state *st = wc->st; 622 struct lis3l02dq_state *st = wc->st;
623 u8 t; 623 u8 t;
624 624
diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c
index 93712430e579..a4d97ea0df3d 100644
--- a/drivers/staging/iio/accel/lis3l02dq_ring.c
+++ b/drivers/staging/iio/accel/lis3l02dq_ring.c
@@ -493,6 +493,9 @@ int lis3l02dq_probe_trigger(struct iio_dev *indio_dev)
493 struct lis3l02dq_state *state = indio_dev->dev_data; 493 struct lis3l02dq_state *state = indio_dev->dev_data;
494 494
495 state->trig = iio_allocate_trigger(); 495 state->trig = iio_allocate_trigger();
496 if (!state->trig)
497 return -ENOMEM;
498
496 state->trig->name = kmalloc(IIO_TRIGGER_NAME_LENGTH, GFP_KERNEL); 499 state->trig->name = kmalloc(IIO_TRIGGER_NAME_LENGTH, GFP_KERNEL);
497 if (!state->trig->name) { 500 if (!state->trig->name) {
498 ret = -ENOMEM; 501 ret = -ENOMEM;
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
index 790d1cc9cdc3..773f1d1d9c6e 100644
--- a/drivers/staging/iio/adc/max1363_core.c
+++ b/drivers/staging/iio/adc/max1363_core.c
@@ -557,6 +557,7 @@ error_put_reg:
557 if (!IS_ERR(st->reg)) 557 if (!IS_ERR(st->reg))
558 regulator_put(st->reg); 558 regulator_put(st->reg);
559error_free_st: 559error_free_st:
560 i2c_set_clientdata(client, NULL);
560 kfree(st); 561 kfree(st);
561 562
562error_ret: 563error_ret:
@@ -574,6 +575,7 @@ static int max1363_remove(struct i2c_client *client)
574 regulator_disable(st->reg); 575 regulator_disable(st->reg);
575 regulator_put(st->reg); 576 regulator_put(st->reg);
576 } 577 }
578 i2c_set_clientdata(client, NULL);
577 kfree(st); 579 kfree(st);
578 580
579 return 0; 581 return 0;
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index 37f58f66e491..1d77082c8531 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -537,6 +537,7 @@ static void iio_device_unregister_sysfs(struct iio_dev *dev_info)
537 sysfs_remove_group(&dev_info->dev.kobj, dev_info->attrs); 537 sysfs_remove_group(&dev_info->dev.kobj, dev_info->attrs);
538} 538}
539 539
540/* Return a negative errno on failure */
540int iio_get_new_idr_val(struct idr *this_idr) 541int iio_get_new_idr_val(struct idr *this_idr)
541{ 542{
542 int ret; 543 int ret;
@@ -660,7 +661,7 @@ static int iio_device_register_eventset(struct iio_dev *dev_info)
660 for (i = 0; i < dev_info->num_interrupt_lines; i++) { 661 for (i = 0; i < dev_info->num_interrupt_lines; i++) {
661 dev_info->event_interfaces[i].owner = dev_info->driver_module; 662 dev_info->event_interfaces[i].owner = dev_info->driver_module;
662 ret = iio_get_new_idr_val(&iio_event_idr); 663 ret = iio_get_new_idr_val(&iio_event_idr);
663 if (ret) 664 if (ret < 0)
664 goto error_free_setup_ev_ints; 665 goto error_free_setup_ev_ints;
665 else 666 else
666 dev_info->event_interfaces[i].id = ret; 667 dev_info->event_interfaces[i].id = ret;
diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c
index 1ba4aa392f6e..8770a00e3652 100644
--- a/drivers/staging/iio/light/tsl2563.c
+++ b/drivers/staging/iio/light/tsl2563.c
@@ -682,6 +682,7 @@ static int __devinit tsl2563_probe(struct i2c_client *client,
682fail2: 682fail2:
683 iio_device_unregister(chip->indio_dev); 683 iio_device_unregister(chip->indio_dev);
684fail1: 684fail1:
685 i2c_set_clientdata(client, NULL);
685 kfree(chip); 686 kfree(chip);
686 return err; 687 return err;
687} 688}
@@ -692,6 +693,7 @@ static int tsl2563_remove(struct i2c_client *client)
692 693
693 iio_device_unregister(chip->indio_dev); 694 iio_device_unregister(chip->indio_dev);
694 695
696 i2c_set_clientdata(client, NULL);
695 kfree(chip); 697 kfree(chip);
696 return 0; 698 return 0;
697} 699}
diff --git a/drivers/staging/iio/ring_sw.c b/drivers/staging/iio/ring_sw.c
index b104c3d9c35e..cf22c091668c 100644
--- a/drivers/staging/iio/ring_sw.c
+++ b/drivers/staging/iio/ring_sw.c
@@ -293,7 +293,7 @@ again:
293 return -EAGAIN; 293 return -EAGAIN;
294 memcpy(data, last_written_p_copy, ring->buf.bpd); 294 memcpy(data, last_written_p_copy, ring->buf.bpd);
295 295
296 if (unlikely(ring->last_written_p >= last_written_p_copy)) 296 if (unlikely(ring->last_written_p != last_written_p_copy))
297 goto again; 297 goto again;
298 298
299 iio_unmark_sw_rb_in_use(&ring->buf); 299 iio_unmark_sw_rb_in_use(&ring->buf);
diff --git a/drivers/staging/octeon/cvmx-helper-board.c b/drivers/staging/octeon/cvmx-helper-board.c
index 3085e38a6f99..00a555b83354 100644
--- a/drivers/staging/octeon/cvmx-helper-board.c
+++ b/drivers/staging/octeon/cvmx-helper-board.c
@@ -153,6 +153,14 @@ int cvmx_helper_board_get_mii_address(int ipd_port)
153 * through switch. 153 * through switch.
154 */ 154 */
155 return -1; 155 return -1;
156
157 case CVMX_BOARD_TYPE_CUST_WSX16:
158 if (ipd_port >= 0 && ipd_port <= 3)
159 return ipd_port;
160 else if (ipd_port >= 16 && ipd_port <= 19)
161 return ipd_port - 16 + 4;
162 else
163 return -1;
156 } 164 }
157 165
158 /* Some unknown board. Somebody forgot to update this function... */ 166 /* Some unknown board. Somebody forgot to update this function... */
diff --git a/drivers/staging/rt2860/usb_main_dev.c b/drivers/staging/rt2860/usb_main_dev.c
index 1873a79bb033..740db0c1ac01 100644
--- a/drivers/staging/rt2860/usb_main_dev.c
+++ b/drivers/staging/rt2860/usb_main_dev.c
@@ -63,6 +63,7 @@ struct usb_device_id rtusb_usb_id[] = {
63 {USB_DEVICE(0x07D1, 0x3C11)}, /* D-Link */ 63 {USB_DEVICE(0x07D1, 0x3C11)}, /* D-Link */
64 {USB_DEVICE(0x14B2, 0x3C07)}, /* AL */ 64 {USB_DEVICE(0x14B2, 0x3C07)}, /* AL */
65 {USB_DEVICE(0x050D, 0x8053)}, /* Belkin */ 65 {USB_DEVICE(0x050D, 0x8053)}, /* Belkin */
66 {USB_DEVICE(0x050D, 0x825B)}, /* Belkin */
66 {USB_DEVICE(0x14B2, 0x3C23)}, /* Airlink */ 67 {USB_DEVICE(0x14B2, 0x3C23)}, /* Airlink */
67 {USB_DEVICE(0x14B2, 0x3C27)}, /* Airlink */ 68 {USB_DEVICE(0x14B2, 0x3C27)}, /* Airlink */
68 {USB_DEVICE(0x07AA, 0x002F)}, /* Corega */ 69 {USB_DEVICE(0x07AA, 0x002F)}, /* Corega */
diff --git a/drivers/staging/rtl8192su/r8192U_core.c b/drivers/staging/rtl8192su/r8192U_core.c
index e16256fe595a..04d9b85f3d4c 100644
--- a/drivers/staging/rtl8192su/r8192U_core.c
+++ b/drivers/staging/rtl8192su/r8192U_core.c
@@ -113,14 +113,17 @@ u32 rt_global_debug_component = \
113 113
114static const struct usb_device_id rtl8192_usb_id_tbl[] = { 114static const struct usb_device_id rtl8192_usb_id_tbl[] = {
115 /* Realtek */ 115 /* Realtek */
116 {USB_DEVICE(0x0bda, 0x8171)},
116 {USB_DEVICE(0x0bda, 0x8192)}, 117 {USB_DEVICE(0x0bda, 0x8192)},
117 {USB_DEVICE(0x0bda, 0x8709)}, 118 {USB_DEVICE(0x0bda, 0x8709)},
118 /* Corega */ 119 /* Corega */
119 {USB_DEVICE(0x07aa, 0x0043)}, 120 {USB_DEVICE(0x07aa, 0x0043)},
120 /* Belkin */ 121 /* Belkin */
121 {USB_DEVICE(0x050d, 0x805E)}, 122 {USB_DEVICE(0x050d, 0x805E)},
123 {USB_DEVICE(0x050d, 0x815F)}, /* Belkin F5D8053 v6 */
122 /* Sitecom */ 124 /* Sitecom */
123 {USB_DEVICE(0x0df6, 0x0031)}, 125 {USB_DEVICE(0x0df6, 0x0031)},
126 {USB_DEVICE(0x0df6, 0x004b)}, /* WL-349 */
124 /* EnGenius */ 127 /* EnGenius */
125 {USB_DEVICE(0x1740, 0x9201)}, 128 {USB_DEVICE(0x1740, 0x9201)},
126 /* Dlink */ 129 /* Dlink */
diff --git a/drivers/staging/usbip/usbip_event.c b/drivers/staging/usbip/usbip_event.c
index 6da1021e8a65..a2566f1075d5 100644
--- a/drivers/staging/usbip/usbip_event.c
+++ b/drivers/staging/usbip/usbip_event.c
@@ -117,6 +117,9 @@ void usbip_stop_eh(struct usbip_device *ud)
117{ 117{
118 struct usbip_task *eh = &ud->eh; 118 struct usbip_task *eh = &ud->eh;
119 119
120 if (eh->thread == current)
121 return; /* do not wait for myself */
122
120 wait_for_completion(&eh->thread_done); 123 wait_for_completion(&eh->thread_done);
121 usbip_dbg_eh("usbip_eh has finished\n"); 124 usbip_dbg_eh("usbip_eh has finished\n");
122} 125}
diff --git a/drivers/staging/vme/bridges/vme_tsi148.c b/drivers/staging/vme/bridges/vme_tsi148.c
index 68f24425977f..783051f59f19 100644
--- a/drivers/staging/vme/bridges/vme_tsi148.c
+++ b/drivers/staging/vme/bridges/vme_tsi148.c
@@ -2455,9 +2455,10 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id)
2455 dev_info(&pdev->dev, "VME Write and flush and error check is %s\n", 2455 dev_info(&pdev->dev, "VME Write and flush and error check is %s\n",
2456 err_chk ? "enabled" : "disabled"); 2456 err_chk ? "enabled" : "disabled");
2457 2457
2458 if (tsi148_crcsr_init(tsi148_bridge, pdev)) 2458 if (tsi148_crcsr_init(tsi148_bridge, pdev)) {
2459 dev_err(&pdev->dev, "CR/CSR configuration failed.\n"); 2459 dev_err(&pdev->dev, "CR/CSR configuration failed.\n");
2460 goto err_crcsr; 2460 goto err_crcsr;
2461 }
2461 2462
2462 retval = vme_register_bridge(tsi148_bridge); 2463 retval = vme_register_bridge(tsi148_bridge);
2463 if (retval != 0) { 2464 if (retval != 0) {
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index be6331e2c276..5e1a253b08a0 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1542,6 +1542,9 @@ static const struct usb_device_id acm_ids[] = {
1542 { USB_DEVICE(0x1bbb, 0x0003), /* Alcatel OT-I650 */ 1542 { USB_DEVICE(0x1bbb, 0x0003), /* Alcatel OT-I650 */
1543 .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */ 1543 .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
1544 }, 1544 },
1545 { USB_DEVICE(0x1576, 0x03b1), /* Maretron USB100 */
1546 .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */
1547 },
1545 1548
1546 /* Nokia S60 phones expose two ACM channels. The first is 1549 /* Nokia S60 phones expose two ACM channels. The first is
1547 * a modem and is picked up by the standard AT-command 1550 * a modem and is picked up by the standard AT-command
diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig
index 97a819c23ef3..7e594449600e 100644
--- a/drivers/usb/core/Kconfig
+++ b/drivers/usb/core/Kconfig
@@ -109,7 +109,7 @@ config USB_SUSPEND
109config USB_OTG 109config USB_OTG
110 bool 110 bool
111 depends on USB && EXPERIMENTAL 111 depends on USB && EXPERIMENTAL
112 select USB_SUSPEND 112 depends on USB_SUSPEND
113 default n 113 default n
114 114
115 115
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 6a3b5cae3a6e..2f3dc4cdf79b 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -301,7 +301,7 @@ static int usb_probe_interface(struct device *dev)
301 301
302 intf->condition = USB_INTERFACE_BINDING; 302 intf->condition = USB_INTERFACE_BINDING;
303 303
304 /* Bound interfaces are initially active. They are 304 /* Probed interfaces are initially active. They are
305 * runtime-PM-enabled only if the driver has autosuspend support. 305 * runtime-PM-enabled only if the driver has autosuspend support.
306 * They are sensitive to their children's power states. 306 * They are sensitive to their children's power states.
307 */ 307 */
@@ -437,11 +437,11 @@ int usb_driver_claim_interface(struct usb_driver *driver,
437 437
438 iface->condition = USB_INTERFACE_BOUND; 438 iface->condition = USB_INTERFACE_BOUND;
439 439
440 /* Bound interfaces are initially active. They are 440 /* Claimed interfaces are initially inactive (suspended). They are
441 * runtime-PM-enabled only if the driver has autosuspend support. 441 * runtime-PM-enabled only if the driver has autosuspend support.
442 * They are sensitive to their children's power states. 442 * They are sensitive to their children's power states.
443 */ 443 */
444 pm_runtime_set_active(dev); 444 pm_runtime_set_suspended(dev);
445 pm_suspend_ignore_children(dev, false); 445 pm_suspend_ignore_children(dev, false);
446 if (driver->supports_autosuspend) 446 if (driver->supports_autosuspend)
447 pm_runtime_enable(dev); 447 pm_runtime_enable(dev);
@@ -1170,7 +1170,7 @@ done:
1170static int usb_suspend_both(struct usb_device *udev, pm_message_t msg) 1170static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
1171{ 1171{
1172 int status = 0; 1172 int status = 0;
1173 int i = 0; 1173 int i = 0, n = 0;
1174 struct usb_interface *intf; 1174 struct usb_interface *intf;
1175 1175
1176 if (udev->state == USB_STATE_NOTATTACHED || 1176 if (udev->state == USB_STATE_NOTATTACHED ||
@@ -1179,7 +1179,8 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
1179 1179
1180 /* Suspend all the interfaces and then udev itself */ 1180 /* Suspend all the interfaces and then udev itself */
1181 if (udev->actconfig) { 1181 if (udev->actconfig) {
1182 for (; i < udev->actconfig->desc.bNumInterfaces; i++) { 1182 n = udev->actconfig->desc.bNumInterfaces;
1183 for (i = n - 1; i >= 0; --i) {
1183 intf = udev->actconfig->interface[i]; 1184 intf = udev->actconfig->interface[i];
1184 status = usb_suspend_interface(udev, intf, msg); 1185 status = usb_suspend_interface(udev, intf, msg);
1185 if (status != 0) 1186 if (status != 0)
@@ -1192,7 +1193,7 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
1192 /* If the suspend failed, resume interfaces that did get suspended */ 1193 /* If the suspend failed, resume interfaces that did get suspended */
1193 if (status != 0) { 1194 if (status != 0) {
1194 msg.event ^= (PM_EVENT_SUSPEND | PM_EVENT_RESUME); 1195 msg.event ^= (PM_EVENT_SUSPEND | PM_EVENT_RESUME);
1195 while (--i >= 0) { 1196 while (++i < n) {
1196 intf = udev->actconfig->interface[i]; 1197 intf = udev->actconfig->interface[i];
1197 usb_resume_interface(udev, intf, msg, 0); 1198 usb_resume_interface(udev, intf, msg, 0);
1198 } 1199 }
@@ -1263,13 +1264,47 @@ static int usb_resume_both(struct usb_device *udev, pm_message_t msg)
1263 return status; 1264 return status;
1264} 1265}
1265 1266
1267static void choose_wakeup(struct usb_device *udev, pm_message_t msg)
1268{
1269 int w, i;
1270 struct usb_interface *intf;
1271
1272 /* Remote wakeup is needed only when we actually go to sleep.
1273 * For things like FREEZE and QUIESCE, if the device is already
1274 * autosuspended then its current wakeup setting is okay.
1275 */
1276 if (msg.event == PM_EVENT_FREEZE || msg.event == PM_EVENT_QUIESCE) {
1277 if (udev->state != USB_STATE_SUSPENDED)
1278 udev->do_remote_wakeup = 0;
1279 return;
1280 }
1281
1282 /* If remote wakeup is permitted, see whether any interface drivers
1283 * actually want it.
1284 */
1285 w = 0;
1286 if (device_may_wakeup(&udev->dev) && udev->actconfig) {
1287 for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++) {
1288 intf = udev->actconfig->interface[i];
1289 w |= intf->needs_remote_wakeup;
1290 }
1291 }
1292
1293 /* If the device is autosuspended with the wrong wakeup setting,
1294 * autoresume now so the setting can be changed.
1295 */
1296 if (udev->state == USB_STATE_SUSPENDED && w != udev->do_remote_wakeup)
1297 pm_runtime_resume(&udev->dev);
1298 udev->do_remote_wakeup = w;
1299}
1300
1266/* The device lock is held by the PM core */ 1301/* The device lock is held by the PM core */
1267int usb_suspend(struct device *dev, pm_message_t msg) 1302int usb_suspend(struct device *dev, pm_message_t msg)
1268{ 1303{
1269 struct usb_device *udev = to_usb_device(dev); 1304 struct usb_device *udev = to_usb_device(dev);
1270 1305
1271 do_unbind_rebind(udev, DO_UNBIND); 1306 do_unbind_rebind(udev, DO_UNBIND);
1272 udev->do_remote_wakeup = device_may_wakeup(&udev->dev); 1307 choose_wakeup(udev, msg);
1273 return usb_suspend_both(udev, msg); 1308 return usb_suspend_both(udev, msg);
1274} 1309}
1275 1310
diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c
index bdf87a8414a1..2c95153c0f24 100644
--- a/drivers/usb/core/generic.c
+++ b/drivers/usb/core/generic.c
@@ -120,7 +120,7 @@ int usb_choose_configuration(struct usb_device *udev)
120 * than a vendor-specific driver. */ 120 * than a vendor-specific driver. */
121 else if (udev->descriptor.bDeviceClass != 121 else if (udev->descriptor.bDeviceClass !=
122 USB_CLASS_VENDOR_SPEC && 122 USB_CLASS_VENDOR_SPEC &&
123 (!desc || desc->bInterfaceClass != 123 (desc && desc->bInterfaceClass !=
124 USB_CLASS_VENDOR_SPEC)) { 124 USB_CLASS_VENDOR_SPEC)) {
125 best = c; 125 best = c;
126 break; 126 break;
diff --git a/drivers/usb/core/inode.c b/drivers/usb/core/inode.c
index 97b40ce133f0..4a6366a42129 100644
--- a/drivers/usb/core/inode.c
+++ b/drivers/usb/core/inode.c
@@ -515,13 +515,13 @@ static int fs_create_by_name (const char *name, mode_t mode,
515 *dentry = NULL; 515 *dentry = NULL;
516 mutex_lock(&parent->d_inode->i_mutex); 516 mutex_lock(&parent->d_inode->i_mutex);
517 *dentry = lookup_one_len(name, parent, strlen(name)); 517 *dentry = lookup_one_len(name, parent, strlen(name));
518 if (!IS_ERR(dentry)) { 518 if (!IS_ERR(*dentry)) {
519 if ((mode & S_IFMT) == S_IFDIR) 519 if ((mode & S_IFMT) == S_IFDIR)
520 error = usbfs_mkdir (parent->d_inode, *dentry, mode); 520 error = usbfs_mkdir (parent->d_inode, *dentry, mode);
521 else 521 else
522 error = usbfs_create (parent->d_inode, *dentry, mode); 522 error = usbfs_create (parent->d_inode, *dentry, mode);
523 } else 523 } else
524 error = PTR_ERR(dentry); 524 error = PTR_ERR(*dentry);
525 mutex_unlock(&parent->d_inode->i_mutex); 525 mutex_unlock(&parent->d_inode->i_mutex);
526 526
527 return error; 527 return error;
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 1297e9b16a51..0561430f2ede 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -718,7 +718,7 @@ int __usb_get_extra_descriptor(char *buffer, unsigned size,
718EXPORT_SYMBOL_GPL(__usb_get_extra_descriptor); 718EXPORT_SYMBOL_GPL(__usb_get_extra_descriptor);
719 719
720/** 720/**
721 * usb_buffer_alloc - allocate dma-consistent buffer for URB_NO_xxx_DMA_MAP 721 * usb_alloc_coherent - allocate dma-consistent buffer for URB_NO_xxx_DMA_MAP
722 * @dev: device the buffer will be used with 722 * @dev: device the buffer will be used with
723 * @size: requested buffer size 723 * @size: requested buffer size
724 * @mem_flags: affect whether allocation may block 724 * @mem_flags: affect whether allocation may block
@@ -737,30 +737,30 @@ EXPORT_SYMBOL_GPL(__usb_get_extra_descriptor);
737 * architectures where CPU caches are not DMA-coherent. On systems without 737 * architectures where CPU caches are not DMA-coherent. On systems without
738 * bus-snooping caches, these buffers are uncached. 738 * bus-snooping caches, these buffers are uncached.
739 * 739 *
740 * When the buffer is no longer used, free it with usb_buffer_free(). 740 * When the buffer is no longer used, free it with usb_free_coherent().
741 */ 741 */
742void *usb_buffer_alloc(struct usb_device *dev, size_t size, gfp_t mem_flags, 742void *usb_alloc_coherent(struct usb_device *dev, size_t size, gfp_t mem_flags,
743 dma_addr_t *dma) 743 dma_addr_t *dma)
744{ 744{
745 if (!dev || !dev->bus) 745 if (!dev || !dev->bus)
746 return NULL; 746 return NULL;
747 return hcd_buffer_alloc(dev->bus, size, mem_flags, dma); 747 return hcd_buffer_alloc(dev->bus, size, mem_flags, dma);
748} 748}
749EXPORT_SYMBOL_GPL(usb_buffer_alloc); 749EXPORT_SYMBOL_GPL(usb_alloc_coherent);
750 750
751/** 751/**
752 * usb_buffer_free - free memory allocated with usb_buffer_alloc() 752 * usb_free_coherent - free memory allocated with usb_alloc_coherent()
753 * @dev: device the buffer was used with 753 * @dev: device the buffer was used with
754 * @size: requested buffer size 754 * @size: requested buffer size
755 * @addr: CPU address of buffer 755 * @addr: CPU address of buffer
756 * @dma: DMA address of buffer 756 * @dma: DMA address of buffer
757 * 757 *
758 * This reclaims an I/O buffer, letting it be reused. The memory must have 758 * This reclaims an I/O buffer, letting it be reused. The memory must have
759 * been allocated using usb_buffer_alloc(), and the parameters must match 759 * been allocated using usb_alloc_coherent(), and the parameters must match
760 * those provided in that allocation request. 760 * those provided in that allocation request.
761 */ 761 */
762void usb_buffer_free(struct usb_device *dev, size_t size, void *addr, 762void usb_free_coherent(struct usb_device *dev, size_t size, void *addr,
763 dma_addr_t dma) 763 dma_addr_t dma)
764{ 764{
765 if (!dev || !dev->bus) 765 if (!dev || !dev->bus)
766 return; 766 return;
@@ -768,7 +768,7 @@ void usb_buffer_free(struct usb_device *dev, size_t size, void *addr,
768 return; 768 return;
769 hcd_buffer_free(dev->bus, size, addr, dma); 769 hcd_buffer_free(dev->bus, size, addr, dma);
770} 770}
771EXPORT_SYMBOL_GPL(usb_buffer_free); 771EXPORT_SYMBOL_GPL(usb_free_coherent);
772 772
773/** 773/**
774 * usb_buffer_map - create DMA mapping(s) for an urb 774 * usb_buffer_map - create DMA mapping(s) for an urb
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index 124a8ccfdcda..1f73b485732d 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -2145,6 +2145,7 @@ static int s3c_hsotg_ep_enable(struct usb_ep *ep,
2145 u32 epctrl; 2145 u32 epctrl;
2146 u32 mps; 2146 u32 mps;
2147 int dir_in; 2147 int dir_in;
2148 int ret = 0;
2148 2149
2149 dev_dbg(hsotg->dev, 2150 dev_dbg(hsotg->dev,
2150 "%s: ep %s: a 0x%02x, attr 0x%02x, mps 0x%04x, intr %d\n", 2151 "%s: ep %s: a 0x%02x, attr 0x%02x, mps 0x%04x, intr %d\n",
@@ -2196,7 +2197,8 @@ static int s3c_hsotg_ep_enable(struct usb_ep *ep,
2196 switch (desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { 2197 switch (desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) {
2197 case USB_ENDPOINT_XFER_ISOC: 2198 case USB_ENDPOINT_XFER_ISOC:
2198 dev_err(hsotg->dev, "no current ISOC support\n"); 2199 dev_err(hsotg->dev, "no current ISOC support\n");
2199 return -EINVAL; 2200 ret = -EINVAL;
2201 goto out;
2200 2202
2201 case USB_ENDPOINT_XFER_BULK: 2203 case USB_ENDPOINT_XFER_BULK:
2202 epctrl |= S3C_DxEPCTL_EPType_Bulk; 2204 epctrl |= S3C_DxEPCTL_EPType_Bulk;
@@ -2235,8 +2237,9 @@ static int s3c_hsotg_ep_enable(struct usb_ep *ep,
2235 /* enable the endpoint interrupt */ 2237 /* enable the endpoint interrupt */
2236 s3c_hsotg_ctrl_epint(hsotg, index, dir_in, 1); 2238 s3c_hsotg_ctrl_epint(hsotg, index, dir_in, 1);
2237 2239
2240out:
2238 spin_unlock_irqrestore(&hs_ep->lock, flags); 2241 spin_unlock_irqrestore(&hs_ep->lock, flags);
2239 return 0; 2242 return ret;
2240} 2243}
2241 2244
2242static int s3c_hsotg_ep_disable(struct usb_ep *ep) 2245static int s3c_hsotg_ep_disable(struct usb_ep *ep)
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 207e7a85aeb0..13ead00aecd5 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -543,6 +543,7 @@ static int ehci_init(struct usb_hcd *hcd)
543 */ 543 */
544 ehci->periodic_size = DEFAULT_I_TDPS; 544 ehci->periodic_size = DEFAULT_I_TDPS;
545 INIT_LIST_HEAD(&ehci->cached_itd_list); 545 INIT_LIST_HEAD(&ehci->cached_itd_list);
546 INIT_LIST_HEAD(&ehci->cached_sitd_list);
546 if ((retval = ehci_mem_init(ehci, GFP_KERNEL)) < 0) 547 if ((retval = ehci_mem_init(ehci, GFP_KERNEL)) < 0)
547 return retval; 548 return retval;
548 549
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
index 19372673bf09..c7178bcde67a 100644
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -801,7 +801,7 @@ static int ehci_hub_control (
801 * this bit; seems too long to spin routinely... 801 * this bit; seems too long to spin routinely...
802 */ 802 */
803 retval = handshake(ehci, status_reg, 803 retval = handshake(ehci, status_reg,
804 PORT_RESET, 0, 750); 804 PORT_RESET, 0, 1000);
805 if (retval != 0) { 805 if (retval != 0) {
806 ehci_err (ehci, "port %d reset error %d\n", 806 ehci_err (ehci, "port %d reset error %d\n",
807 wIndex + 1, retval); 807 wIndex + 1, retval);
diff --git a/drivers/usb/host/ehci-mem.c b/drivers/usb/host/ehci-mem.c
index aeda96e0af67..1f3f01eacaf0 100644
--- a/drivers/usb/host/ehci-mem.c
+++ b/drivers/usb/host/ehci-mem.c
@@ -136,7 +136,7 @@ static inline void qh_put (struct ehci_qh *qh)
136 136
137static void ehci_mem_cleanup (struct ehci_hcd *ehci) 137static void ehci_mem_cleanup (struct ehci_hcd *ehci)
138{ 138{
139 free_cached_itd_list(ehci); 139 free_cached_lists(ehci);
140 if (ehci->async) 140 if (ehci->async)
141 qh_put (ehci->async); 141 qh_put (ehci->async);
142 ehci->async = NULL; 142 ehci->async = NULL;
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index a67a0030dd57..40a858335035 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -629,11 +629,13 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev)
629 } 629 }
630 snprintf(supply, sizeof(supply), "hsusb%d", i); 630 snprintf(supply, sizeof(supply), "hsusb%d", i);
631 omap->regulator[i] = regulator_get(omap->dev, supply); 631 omap->regulator[i] = regulator_get(omap->dev, supply);
632 if (IS_ERR(omap->regulator[i])) 632 if (IS_ERR(omap->regulator[i])) {
633 omap->regulator[i] = NULL;
633 dev_dbg(&pdev->dev, 634 dev_dbg(&pdev->dev,
634 "failed to get ehci port%d regulator\n", i); 635 "failed to get ehci port%d regulator\n", i);
635 else 636 } else {
636 regulator_enable(omap->regulator[i]); 637 regulator_enable(omap->regulator[i]);
638 }
637 } 639 }
638 640
639 ret = omap_start_ehc(omap, hcd); 641 ret = omap_start_ehc(omap, hcd);
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index a0aaaaff2560..805ec633a652 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -510,7 +510,7 @@ static int disable_periodic (struct ehci_hcd *ehci)
510 ehci_writel(ehci, cmd, &ehci->regs->command); 510 ehci_writel(ehci, cmd, &ehci->regs->command);
511 /* posted write ... */ 511 /* posted write ... */
512 512
513 free_cached_itd_list(ehci); 513 free_cached_lists(ehci);
514 514
515 ehci->next_uframe = -1; 515 ehci->next_uframe = -1;
516 return 0; 516 return 0;
@@ -2139,13 +2139,27 @@ sitd_complete (
2139 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); 2139 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out");
2140 } 2140 }
2141 iso_stream_put (ehci, stream); 2141 iso_stream_put (ehci, stream);
2142 /* OK to recycle this SITD now that its completion callback ran. */ 2142
2143done: 2143done:
2144 sitd->urb = NULL; 2144 sitd->urb = NULL;
2145 sitd->stream = NULL; 2145 if (ehci->clock_frame != sitd->frame) {
2146 list_move(&sitd->sitd_list, &stream->free_list); 2146 /* OK to recycle this SITD now. */
2147 iso_stream_put(ehci, stream); 2147 sitd->stream = NULL;
2148 2148 list_move(&sitd->sitd_list, &stream->free_list);
2149 iso_stream_put(ehci, stream);
2150 } else {
2151 /* HW might remember this SITD, so we can't recycle it yet.
2152 * Move it to a safe place until a new frame starts.
2153 */
2154 list_move(&sitd->sitd_list, &ehci->cached_sitd_list);
2155 if (stream->refcount == 2) {
2156 /* If iso_stream_put() were called here, stream
2157 * would be freed. Instead, just prevent reuse.
2158 */
2159 stream->ep->hcpriv = NULL;
2160 stream->ep = NULL;
2161 }
2162 }
2149 return retval; 2163 return retval;
2150} 2164}
2151 2165
@@ -2211,9 +2225,10 @@ done:
2211 2225
2212/*-------------------------------------------------------------------------*/ 2226/*-------------------------------------------------------------------------*/
2213 2227
2214static void free_cached_itd_list(struct ehci_hcd *ehci) 2228static void free_cached_lists(struct ehci_hcd *ehci)
2215{ 2229{
2216 struct ehci_itd *itd, *n; 2230 struct ehci_itd *itd, *n;
2231 struct ehci_sitd *sitd, *sn;
2217 2232
2218 list_for_each_entry_safe(itd, n, &ehci->cached_itd_list, itd_list) { 2233 list_for_each_entry_safe(itd, n, &ehci->cached_itd_list, itd_list) {
2219 struct ehci_iso_stream *stream = itd->stream; 2234 struct ehci_iso_stream *stream = itd->stream;
@@ -2221,6 +2236,13 @@ static void free_cached_itd_list(struct ehci_hcd *ehci)
2221 list_move(&itd->itd_list, &stream->free_list); 2236 list_move(&itd->itd_list, &stream->free_list);
2222 iso_stream_put(ehci, stream); 2237 iso_stream_put(ehci, stream);
2223 } 2238 }
2239
2240 list_for_each_entry_safe(sitd, sn, &ehci->cached_sitd_list, sitd_list) {
2241 struct ehci_iso_stream *stream = sitd->stream;
2242 sitd->stream = NULL;
2243 list_move(&sitd->sitd_list, &stream->free_list);
2244 iso_stream_put(ehci, stream);
2245 }
2224} 2246}
2225 2247
2226/*-------------------------------------------------------------------------*/ 2248/*-------------------------------------------------------------------------*/
@@ -2247,7 +2269,7 @@ scan_periodic (struct ehci_hcd *ehci)
2247 clock_frame = -1; 2269 clock_frame = -1;
2248 } 2270 }
2249 if (ehci->clock_frame != clock_frame) { 2271 if (ehci->clock_frame != clock_frame) {
2250 free_cached_itd_list(ehci); 2272 free_cached_lists(ehci);
2251 ehci->clock_frame = clock_frame; 2273 ehci->clock_frame = clock_frame;
2252 } 2274 }
2253 clock %= mod; 2275 clock %= mod;
@@ -2414,7 +2436,7 @@ restart:
2414 clock = now; 2436 clock = now;
2415 clock_frame = clock >> 3; 2437 clock_frame = clock >> 3;
2416 if (ehci->clock_frame != clock_frame) { 2438 if (ehci->clock_frame != clock_frame) {
2417 free_cached_itd_list(ehci); 2439 free_cached_lists(ehci);
2418 ehci->clock_frame = clock_frame; 2440 ehci->clock_frame = clock_frame;
2419 } 2441 }
2420 } else { 2442 } else {
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index b1dce96dd621..556c0b48f3ab 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -87,8 +87,9 @@ struct ehci_hcd { /* one per controller */
87 int next_uframe; /* scan periodic, start here */ 87 int next_uframe; /* scan periodic, start here */
88 unsigned periodic_sched; /* periodic activity count */ 88 unsigned periodic_sched; /* periodic activity count */
89 89
90 /* list of itds completed while clock_frame was still active */ 90 /* list of itds & sitds completed while clock_frame was still active */
91 struct list_head cached_itd_list; 91 struct list_head cached_itd_list;
92 struct list_head cached_sitd_list;
92 unsigned clock_frame; 93 unsigned clock_frame;
93 94
94 /* per root hub port */ 95 /* per root hub port */
@@ -195,7 +196,7 @@ timer_action_done (struct ehci_hcd *ehci, enum ehci_timer_action action)
195 clear_bit (action, &ehci->actions); 196 clear_bit (action, &ehci->actions);
196} 197}
197 198
198static void free_cached_itd_list(struct ehci_hcd *ehci); 199static void free_cached_lists(struct ehci_hcd *ehci);
199 200
200/*-------------------------------------------------------------------------*/ 201/*-------------------------------------------------------------------------*/
201 202
diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
index 68b83ab70719..944291e10f97 100644
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
@@ -331,6 +331,8 @@ ohci_hcd_at91_drv_suspend(struct platform_device *pdev, pm_message_t mesg)
331 */ 331 */
332 if (at91_suspend_entering_slow_clock()) { 332 if (at91_suspend_entering_slow_clock()) {
333 ohci_usb_reset (ohci); 333 ohci_usb_reset (ohci);
334 /* flush the writes */
335 (void) ohci_readl (ohci, &ohci->regs->control);
334 at91_stop_clock(); 336 at91_stop_clock();
335 } 337 }
336 338
diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c
index 4aa08d36d077..d22fb4d577b7 100644
--- a/drivers/usb/host/ohci-da8xx.c
+++ b/drivers/usb/host/ohci-da8xx.c
@@ -23,7 +23,7 @@
23#error "This file is DA8xx bus glue. Define CONFIG_ARCH_DAVINCI_DA8XX." 23#error "This file is DA8xx bus glue. Define CONFIG_ARCH_DAVINCI_DA8XX."
24#endif 24#endif
25 25
26#define CFGCHIP2 DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP2_REG) 26#define CFGCHIP2 DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG)
27 27
28static struct clk *usb11_clk; 28static struct clk *usb11_clk;
29static struct clk *usb20_clk; 29static struct clk *usb20_clk;
diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c
index 32bbce9718f0..65cac8cc8921 100644
--- a/drivers/usb/host/ohci-hub.c
+++ b/drivers/usb/host/ohci-hub.c
@@ -697,7 +697,7 @@ static int ohci_hub_control (
697 u16 wLength 697 u16 wLength
698) { 698) {
699 struct ohci_hcd *ohci = hcd_to_ohci (hcd); 699 struct ohci_hcd *ohci = hcd_to_ohci (hcd);
700 int ports = hcd_to_bus (hcd)->root_hub->maxchild; 700 int ports = ohci->num_ports;
701 u32 temp; 701 u32 temp;
702 int retval = 0; 702 int retval = 0;
703 703
diff --git a/drivers/usb/host/oxu210hp-hcd.c b/drivers/usb/host/oxu210hp-hcd.c
index 50f57f468836..e62b30b3e429 100644
--- a/drivers/usb/host/oxu210hp-hcd.c
+++ b/drivers/usb/host/oxu210hp-hcd.c
@@ -660,13 +660,13 @@ static struct ehci_qh *oxu_qh_alloc(struct oxu_hcd *oxu)
660 if (qh->dummy == NULL) { 660 if (qh->dummy == NULL) {
661 oxu_dbg(oxu, "no dummy td\n"); 661 oxu_dbg(oxu, "no dummy td\n");
662 oxu->qh_used[i] = 0; 662 oxu->qh_used[i] = 0;
663 663 qh = NULL;
664 return NULL; 664 goto unlock;
665 } 665 }
666 666
667 oxu->qh_used[i] = 1; 667 oxu->qh_used[i] = 1;
668 } 668 }
669 669unlock:
670 spin_unlock(&oxu->mem_lock); 670 spin_unlock(&oxu->mem_lock);
671 671
672 return qh; 672 return qh;
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c
index e11cc3aa4b82..3b867a8af7b2 100644
--- a/drivers/usb/host/sl811-hcd.c
+++ b/drivers/usb/host/sl811-hcd.c
@@ -720,10 +720,10 @@ retry:
720 /* port status seems weird until after reset, so 720 /* port status seems weird until after reset, so
721 * force the reset and make khubd clean up later. 721 * force the reset and make khubd clean up later.
722 */ 722 */
723 if (sl811->stat_insrmv & 1) 723 if (irqstat & SL11H_INTMASK_RD)
724 sl811->port1 |= 1 << USB_PORT_FEAT_CONNECTION;
725 else
726 sl811->port1 &= ~(1 << USB_PORT_FEAT_CONNECTION); 724 sl811->port1 &= ~(1 << USB_PORT_FEAT_CONNECTION);
725 else
726 sl811->port1 |= 1 << USB_PORT_FEAT_CONNECTION;
727 727
728 sl811->port1 |= 1 << USB_PORT_FEAT_C_CONNECTION; 728 sl811->port1 |= 1 << USB_PORT_FEAT_C_CONNECTION;
729 729
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index c09539bad1ee..d64f5724bfc4 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -582,6 +582,19 @@ static inline unsigned int xhci_get_endpoint_interval(struct usb_device *udev,
582 return EP_INTERVAL(interval); 582 return EP_INTERVAL(interval);
583} 583}
584 584
585/* The "Mult" field in the endpoint context is only set for SuperSpeed devices.
586 * High speed endpoint descriptors can define "the number of additional
587 * transaction opportunities per microframe", but that goes in the Max Burst
588 * endpoint context field.
589 */
590static inline u32 xhci_get_endpoint_mult(struct usb_device *udev,
591 struct usb_host_endpoint *ep)
592{
593 if (udev->speed != USB_SPEED_SUPER || !ep->ss_ep_comp)
594 return 0;
595 return ep->ss_ep_comp->desc.bmAttributes;
596}
597
585static inline u32 xhci_get_endpoint_type(struct usb_device *udev, 598static inline u32 xhci_get_endpoint_type(struct usb_device *udev,
586 struct usb_host_endpoint *ep) 599 struct usb_host_endpoint *ep)
587{ 600{
@@ -612,6 +625,36 @@ static inline u32 xhci_get_endpoint_type(struct usb_device *udev,
612 return type; 625 return type;
613} 626}
614 627
628/* Return the maximum endpoint service interval time (ESIT) payload.
629 * Basically, this is the maxpacket size, multiplied by the burst size
630 * and mult size.
631 */
632static inline u32 xhci_get_max_esit_payload(struct xhci_hcd *xhci,
633 struct usb_device *udev,
634 struct usb_host_endpoint *ep)
635{
636 int max_burst;
637 int max_packet;
638
639 /* Only applies for interrupt or isochronous endpoints */
640 if (usb_endpoint_xfer_control(&ep->desc) ||
641 usb_endpoint_xfer_bulk(&ep->desc))
642 return 0;
643
644 if (udev->speed == USB_SPEED_SUPER) {
645 if (ep->ss_ep_comp)
646 return ep->ss_ep_comp->desc.wBytesPerInterval;
647 xhci_warn(xhci, "WARN no SS endpoint companion descriptor.\n");
648 /* Assume no bursts, no multiple opportunities to send. */
649 return ep->desc.wMaxPacketSize;
650 }
651
652 max_packet = ep->desc.wMaxPacketSize & 0x3ff;
653 max_burst = (ep->desc.wMaxPacketSize & 0x1800) >> 11;
654 /* A 0 in max burst means 1 transfer per ESIT */
655 return max_packet * (max_burst + 1);
656}
657
615int xhci_endpoint_init(struct xhci_hcd *xhci, 658int xhci_endpoint_init(struct xhci_hcd *xhci,
616 struct xhci_virt_device *virt_dev, 659 struct xhci_virt_device *virt_dev,
617 struct usb_device *udev, 660 struct usb_device *udev,
@@ -623,6 +666,7 @@ int xhci_endpoint_init(struct xhci_hcd *xhci,
623 struct xhci_ring *ep_ring; 666 struct xhci_ring *ep_ring;
624 unsigned int max_packet; 667 unsigned int max_packet;
625 unsigned int max_burst; 668 unsigned int max_burst;
669 u32 max_esit_payload;
626 670
627 ep_index = xhci_get_endpoint_index(&ep->desc); 671 ep_index = xhci_get_endpoint_index(&ep->desc);
628 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); 672 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
@@ -644,6 +688,7 @@ int xhci_endpoint_init(struct xhci_hcd *xhci,
644 ep_ctx->deq = ep_ring->first_seg->dma | ep_ring->cycle_state; 688 ep_ctx->deq = ep_ring->first_seg->dma | ep_ring->cycle_state;
645 689
646 ep_ctx->ep_info = xhci_get_endpoint_interval(udev, ep); 690 ep_ctx->ep_info = xhci_get_endpoint_interval(udev, ep);
691 ep_ctx->ep_info |= EP_MULT(xhci_get_endpoint_mult(udev, ep));
647 692
648 /* FIXME dig Mult and streams info out of ep companion desc */ 693 /* FIXME dig Mult and streams info out of ep companion desc */
649 694
@@ -689,6 +734,26 @@ int xhci_endpoint_init(struct xhci_hcd *xhci,
689 default: 734 default:
690 BUG(); 735 BUG();
691 } 736 }
737 max_esit_payload = xhci_get_max_esit_payload(xhci, udev, ep);
738 ep_ctx->tx_info = MAX_ESIT_PAYLOAD_FOR_EP(max_esit_payload);
739
740 /*
741 * XXX no idea how to calculate the average TRB buffer length for bulk
742 * endpoints, as the driver gives us no clue how big each scatter gather
743 * list entry (or buffer) is going to be.
744 *
745 * For isochronous and interrupt endpoints, we set it to the max
746 * available, until we have new API in the USB core to allow drivers to
747 * declare how much bandwidth they actually need.
748 *
749 * Normally, it would be calculated by taking the total of the buffer
750 * lengths in the TD and then dividing by the number of TRBs in a TD,
751 * including link TRBs, No-op TRBs, and Event data TRBs. Since we don't
752 * use Event Data TRBs, and we don't chain in a link TRB on short
753 * transfers, we're basically dividing by 1.
754 */
755 ep_ctx->tx_info |= AVG_TRB_LENGTH_FOR_EP(max_esit_payload);
756
692 /* FIXME Debug endpoint context */ 757 /* FIXME Debug endpoint context */
693 return 0; 758 return 0;
694} 759}
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index e5eb09b2f38e..ea389e9a4931 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -609,6 +609,10 @@ struct xhci_ep_ctx {
609#define MAX_PACKET_MASK (0xffff << 16) 609#define MAX_PACKET_MASK (0xffff << 16)
610#define MAX_PACKET_DECODED(p) (((p) >> 16) & 0xffff) 610#define MAX_PACKET_DECODED(p) (((p) >> 16) & 0xffff)
611 611
612/* tx_info bitmasks */
613#define AVG_TRB_LENGTH_FOR_EP(p) ((p) & 0xffff)
614#define MAX_ESIT_PAYLOAD_FOR_EP(p) (((p) & 0xffff) << 16)
615
612 616
613/** 617/**
614 * struct xhci_input_control_context 618 * struct xhci_input_control_context
diff --git a/drivers/usb/misc/usbsevseg.c b/drivers/usb/misc/usbsevseg.c
index a9555cb901a1..de8ef945b536 100644
--- a/drivers/usb/misc/usbsevseg.c
+++ b/drivers/usb/misc/usbsevseg.c
@@ -49,6 +49,7 @@ struct usb_sevsegdev {
49 u16 textlength; 49 u16 textlength;
50 50
51 u8 shadow_power; /* for PM */ 51 u8 shadow_power; /* for PM */
52 u8 has_interface_pm;
52}; 53};
53 54
54/* sysfs_streq can't replace this completely 55/* sysfs_streq can't replace this completely
@@ -68,12 +69,16 @@ static void update_display_powered(struct usb_sevsegdev *mydev)
68{ 69{
69 int rc; 70 int rc;
70 71
71 if (!mydev->shadow_power && mydev->powered) { 72 if (mydev->powered && !mydev->has_interface_pm) {
72 rc = usb_autopm_get_interface(mydev->intf); 73 rc = usb_autopm_get_interface(mydev->intf);
73 if (rc < 0) 74 if (rc < 0)
74 return; 75 return;
76 mydev->has_interface_pm = 1;
75 } 77 }
76 78
79 if (mydev->shadow_power != 1)
80 return;
81
77 rc = usb_control_msg(mydev->udev, 82 rc = usb_control_msg(mydev->udev,
78 usb_sndctrlpipe(mydev->udev, 0), 83 usb_sndctrlpipe(mydev->udev, 0),
79 0x12, 84 0x12,
@@ -86,8 +91,10 @@ static void update_display_powered(struct usb_sevsegdev *mydev)
86 if (rc < 0) 91 if (rc < 0)
87 dev_dbg(&mydev->udev->dev, "power retval = %d\n", rc); 92 dev_dbg(&mydev->udev->dev, "power retval = %d\n", rc);
88 93
89 if (mydev->shadow_power && !mydev->powered) 94 if (!mydev->powered && mydev->has_interface_pm) {
90 usb_autopm_put_interface(mydev->intf); 95 usb_autopm_put_interface(mydev->intf);
96 mydev->has_interface_pm = 0;
97 }
91} 98}
92 99
93static void update_display_mode(struct usb_sevsegdev *mydev) 100static void update_display_mode(struct usb_sevsegdev *mydev)
@@ -351,6 +358,10 @@ static int sevseg_probe(struct usb_interface *interface,
351 mydev->intf = interface; 358 mydev->intf = interface;
352 usb_set_intfdata(interface, mydev); 359 usb_set_intfdata(interface, mydev);
353 360
361 /* PM */
362 mydev->shadow_power = 1; /* currently active */
363 mydev->has_interface_pm = 0; /* have not issued autopm_get */
364
354 /*set defaults */ 365 /*set defaults */
355 mydev->textmode = 0x02; /* ascii mode */ 366 mydev->textmode = 0x02; /* ascii mode */
356 mydev->mode_msb = 0x06; /* 6 characters */ 367 mydev->mode_msb = 0x06; /* 6 characters */
diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index b4c783c284ba..07fe490b44d8 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -42,7 +42,7 @@ config USB_MUSB_SOC
42 default y if (BF52x && !BF522 && !BF523) 42 default y if (BF52x && !BF522 && !BF523)
43 43
44comment "DaVinci 35x and 644x USB support" 44comment "DaVinci 35x and 644x USB support"
45 depends on USB_MUSB_HDRC && ARCH_DAVINCI 45 depends on USB_MUSB_HDRC && ARCH_DAVINCI_DMx
46 46
47comment "OMAP 243x high speed USB support" 47comment "OMAP 243x high speed USB support"
48 depends on USB_MUSB_HDRC && ARCH_OMAP2430 48 depends on USB_MUSB_HDRC && ARCH_OMAP2430
diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile
index 85710ccc1887..3a485dabebbb 100644
--- a/drivers/usb/musb/Makefile
+++ b/drivers/usb/musb/Makefile
@@ -6,7 +6,7 @@ musb_hdrc-objs := musb_core.o
6 6
7obj-$(CONFIG_USB_MUSB_HDRC) += musb_hdrc.o 7obj-$(CONFIG_USB_MUSB_HDRC) += musb_hdrc.o
8 8
9ifeq ($(CONFIG_ARCH_DAVINCI),y) 9ifeq ($(CONFIG_ARCH_DAVINCI_DMx),y)
10 musb_hdrc-objs += davinci.o 10 musb_hdrc-objs += davinci.o
11endif 11endif
12 12
diff --git a/drivers/usb/musb/blackfin.c b/drivers/usb/musb/blackfin.c
index 719a22d664ef..ec8d324237f6 100644
--- a/drivers/usb/musb/blackfin.c
+++ b/drivers/usb/musb/blackfin.c
@@ -172,13 +172,7 @@ static irqreturn_t blackfin_interrupt(int irq, void *__hci)
172 172
173 spin_unlock_irqrestore(&musb->lock, flags); 173 spin_unlock_irqrestore(&musb->lock, flags);
174 174
175 /* REVISIT we sometimes get spurious IRQs on g_ep0 175 return retval;
176 * not clear why... fall in BF54x too.
177 */
178 if (retval != IRQ_HANDLED)
179 DBG(5, "spurious?\n");
180
181 return IRQ_HANDLED;
182} 176}
183 177
184static void musb_conn_timer_handler(unsigned long _musb) 178static void musb_conn_timer_handler(unsigned long _musb)
diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
index 29bce5c0fd10..ce2e16fee0df 100644
--- a/drivers/usb/musb/davinci.c
+++ b/drivers/usb/musb/davinci.c
@@ -444,6 +444,8 @@ int __init musb_platform_init(struct musb *musb)
444 return 0; 444 return 0;
445 445
446fail: 446fail:
447 clk_disable(musb->clock);
448
447 usb_nop_xceiv_unregister(); 449 usb_nop_xceiv_unregister();
448 return -ENODEV; 450 return -ENODEV;
449} 451}
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 0e8b8ab1d168..705cc4ad8737 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -965,10 +965,8 @@ static void musb_shutdown(struct platform_device *pdev)
965 spin_lock_irqsave(&musb->lock, flags); 965 spin_lock_irqsave(&musb->lock, flags);
966 musb_platform_disable(musb); 966 musb_platform_disable(musb);
967 musb_generic_disable(musb); 967 musb_generic_disable(musb);
968 if (musb->clock) { 968 if (musb->clock)
969 clk_put(musb->clock); 969 clk_put(musb->clock);
970 musb->clock = NULL;
971 }
972 spin_unlock_irqrestore(&musb->lock, flags); 970 spin_unlock_irqrestore(&musb->lock, flags);
973 971
974 /* FIXME power down */ 972 /* FIXME power down */
@@ -1853,15 +1851,6 @@ static void musb_free(struct musb *musb)
1853 put_device(musb->xceiv->dev); 1851 put_device(musb->xceiv->dev);
1854#endif 1852#endif
1855 1853
1856 musb_writeb(musb->mregs, MUSB_DEVCTL, 0);
1857 musb_platform_exit(musb);
1858 musb_writeb(musb->mregs, MUSB_DEVCTL, 0);
1859
1860 if (musb->clock) {
1861 clk_disable(musb->clock);
1862 clk_put(musb->clock);
1863 }
1864
1865#ifdef CONFIG_USB_MUSB_HDRC_HCD 1854#ifdef CONFIG_USB_MUSB_HDRC_HCD
1866 usb_put_hcd(musb_to_hcd(musb)); 1855 usb_put_hcd(musb_to_hcd(musb));
1867#else 1856#else
@@ -1889,8 +1878,10 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
1889 */ 1878 */
1890 if (!plat) { 1879 if (!plat) {
1891 dev_dbg(dev, "no platform_data?\n"); 1880 dev_dbg(dev, "no platform_data?\n");
1892 return -ENODEV; 1881 status = -ENODEV;
1882 goto fail0;
1893 } 1883 }
1884
1894 switch (plat->mode) { 1885 switch (plat->mode) {
1895 case MUSB_HOST: 1886 case MUSB_HOST:
1896#ifdef CONFIG_USB_MUSB_HDRC_HCD 1887#ifdef CONFIG_USB_MUSB_HDRC_HCD
@@ -1912,13 +1903,16 @@ bad_config:
1912#endif 1903#endif
1913 default: 1904 default:
1914 dev_err(dev, "incompatible Kconfig role setting\n"); 1905 dev_err(dev, "incompatible Kconfig role setting\n");
1915 return -EINVAL; 1906 status = -EINVAL;
1907 goto fail0;
1916 } 1908 }
1917 1909
1918 /* allocate */ 1910 /* allocate */
1919 musb = allocate_instance(dev, plat->config, ctrl); 1911 musb = allocate_instance(dev, plat->config, ctrl);
1920 if (!musb) 1912 if (!musb) {
1921 return -ENOMEM; 1913 status = -ENOMEM;
1914 goto fail0;
1915 }
1922 1916
1923 spin_lock_init(&musb->lock); 1917 spin_lock_init(&musb->lock);
1924 musb->board_mode = plat->mode; 1918 musb->board_mode = plat->mode;
@@ -1936,7 +1930,7 @@ bad_config:
1936 if (IS_ERR(musb->clock)) { 1930 if (IS_ERR(musb->clock)) {
1937 status = PTR_ERR(musb->clock); 1931 status = PTR_ERR(musb->clock);
1938 musb->clock = NULL; 1932 musb->clock = NULL;
1939 goto fail; 1933 goto fail1;
1940 } 1934 }
1941 } 1935 }
1942 1936
@@ -1955,12 +1949,12 @@ bad_config:
1955 */ 1949 */
1956 musb->isr = generic_interrupt; 1950 musb->isr = generic_interrupt;
1957 status = musb_platform_init(musb); 1951 status = musb_platform_init(musb);
1958
1959 if (status < 0) 1952 if (status < 0)
1960 goto fail; 1953 goto fail2;
1954
1961 if (!musb->isr) { 1955 if (!musb->isr) {
1962 status = -ENODEV; 1956 status = -ENODEV;
1963 goto fail2; 1957 goto fail3;
1964 } 1958 }
1965 1959
1966#ifndef CONFIG_MUSB_PIO_ONLY 1960#ifndef CONFIG_MUSB_PIO_ONLY
@@ -1986,7 +1980,7 @@ bad_config:
1986 ? MUSB_CONTROLLER_MHDRC 1980 ? MUSB_CONTROLLER_MHDRC
1987 : MUSB_CONTROLLER_HDRC, musb); 1981 : MUSB_CONTROLLER_HDRC, musb);
1988 if (status < 0) 1982 if (status < 0)
1989 goto fail2; 1983 goto fail3;
1990 1984
1991#ifdef CONFIG_USB_MUSB_OTG 1985#ifdef CONFIG_USB_MUSB_OTG
1992 setup_timer(&musb->otg_timer, musb_otg_timer_func, (unsigned long) musb); 1986 setup_timer(&musb->otg_timer, musb_otg_timer_func, (unsigned long) musb);
@@ -1999,7 +1993,7 @@ bad_config:
1999 if (request_irq(nIrq, musb->isr, 0, dev_name(dev), musb)) { 1993 if (request_irq(nIrq, musb->isr, 0, dev_name(dev), musb)) {
2000 dev_err(dev, "request_irq %d failed!\n", nIrq); 1994 dev_err(dev, "request_irq %d failed!\n", nIrq);
2001 status = -ENODEV; 1995 status = -ENODEV;
2002 goto fail2; 1996 goto fail3;
2003 } 1997 }
2004 musb->nIrq = nIrq; 1998 musb->nIrq = nIrq;
2005/* FIXME this handles wakeup irqs wrong */ 1999/* FIXME this handles wakeup irqs wrong */
@@ -2039,8 +2033,6 @@ bad_config:
2039 musb->xceiv->state = OTG_STATE_A_IDLE; 2033 musb->xceiv->state = OTG_STATE_A_IDLE;
2040 2034
2041 status = usb_add_hcd(musb_to_hcd(musb), -1, 0); 2035 status = usb_add_hcd(musb_to_hcd(musb), -1, 0);
2042 if (status)
2043 goto fail;
2044 2036
2045 DBG(1, "%s mode, status %d, devctl %02x %c\n", 2037 DBG(1, "%s mode, status %d, devctl %02x %c\n",
2046 "HOST", status, 2038 "HOST", status,
@@ -2055,8 +2047,6 @@ bad_config:
2055 musb->xceiv->state = OTG_STATE_B_IDLE; 2047 musb->xceiv->state = OTG_STATE_B_IDLE;
2056 2048
2057 status = musb_gadget_setup(musb); 2049 status = musb_gadget_setup(musb);
2058 if (status)
2059 goto fail;
2060 2050
2061 DBG(1, "%s mode, status %d, dev%02x\n", 2051 DBG(1, "%s mode, status %d, dev%02x\n",
2062 is_otg_enabled(musb) ? "OTG" : "PERIPHERAL", 2052 is_otg_enabled(musb) ? "OTG" : "PERIPHERAL",
@@ -2064,12 +2054,14 @@ bad_config:
2064 musb_readb(musb->mregs, MUSB_DEVCTL)); 2054 musb_readb(musb->mregs, MUSB_DEVCTL));
2065 2055
2066 } 2056 }
2057 if (status < 0)
2058 goto fail3;
2067 2059
2068#ifdef CONFIG_SYSFS 2060#ifdef CONFIG_SYSFS
2069 status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group); 2061 status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group);
2070#endif
2071 if (status) 2062 if (status)
2072 goto fail2; 2063 goto fail4;
2064#endif
2073 2065
2074 dev_info(dev, "USB %s mode controller at %p using %s, IRQ %d\n", 2066 dev_info(dev, "USB %s mode controller at %p using %s, IRQ %d\n",
2075 ({char *s; 2067 ({char *s;
@@ -2085,17 +2077,29 @@ bad_config:
2085 2077
2086 return 0; 2078 return 0;
2087 2079
2088fail2: 2080fail4:
2081 if (!is_otg_enabled(musb) && is_host_enabled(musb))
2082 usb_remove_hcd(musb_to_hcd(musb));
2083 else
2084 musb_gadget_cleanup(musb);
2085
2086fail3:
2087 if (musb->irq_wake)
2088 device_init_wakeup(dev, 0);
2089 musb_platform_exit(musb); 2089 musb_platform_exit(musb);
2090fail:
2091 dev_err(musb->controller,
2092 "musb_init_controller failed with status %d\n", status);
2093 2090
2091fail2:
2094 if (musb->clock) 2092 if (musb->clock)
2095 clk_put(musb->clock); 2093 clk_put(musb->clock);
2096 device_init_wakeup(dev, 0); 2094
2095fail1:
2096 dev_err(musb->controller,
2097 "musb_init_controller failed with status %d\n", status);
2098
2097 musb_free(musb); 2099 musb_free(musb);
2098 2100
2101fail0:
2102
2099 return status; 2103 return status;
2100 2104
2101} 2105}
@@ -2132,7 +2136,6 @@ static int __init musb_probe(struct platform_device *pdev)
2132 /* clobbered by use_dma=n */ 2136 /* clobbered by use_dma=n */
2133 orig_dma_mask = dev->dma_mask; 2137 orig_dma_mask = dev->dma_mask;
2134#endif 2138#endif
2135
2136 status = musb_init_controller(dev, irq, base); 2139 status = musb_init_controller(dev, irq, base);
2137 if (status < 0) 2140 if (status < 0)
2138 iounmap(base); 2141 iounmap(base);
@@ -2155,6 +2158,10 @@ static int __exit musb_remove(struct platform_device *pdev)
2155 if (musb->board_mode == MUSB_HOST) 2158 if (musb->board_mode == MUSB_HOST)
2156 usb_remove_hcd(musb_to_hcd(musb)); 2159 usb_remove_hcd(musb_to_hcd(musb));
2157#endif 2160#endif
2161 musb_writeb(musb->mregs, MUSB_DEVCTL, 0);
2162 musb_platform_exit(musb);
2163 musb_writeb(musb->mregs, MUSB_DEVCTL, 0);
2164
2158 musb_free(musb); 2165 musb_free(musb);
2159 iounmap(ctrl_base); 2166 iounmap(ctrl_base);
2160 device_init_wakeup(&pdev->dev, 0); 2167 device_init_wakeup(&pdev->dev, 0);
@@ -2176,6 +2183,7 @@ void musb_save_context(struct musb *musb)
2176 if (is_host_enabled(musb)) { 2183 if (is_host_enabled(musb)) {
2177 musb_context.frame = musb_readw(musb_base, MUSB_FRAME); 2184 musb_context.frame = musb_readw(musb_base, MUSB_FRAME);
2178 musb_context.testmode = musb_readb(musb_base, MUSB_TESTMODE); 2185 musb_context.testmode = musb_readb(musb_base, MUSB_TESTMODE);
2186 musb_context.busctl = musb_read_ulpi_buscontrol(musb->mregs);
2179 } 2187 }
2180 musb_context.power = musb_readb(musb_base, MUSB_POWER); 2188 musb_context.power = musb_readb(musb_base, MUSB_POWER);
2181 musb_context.intrtxe = musb_readw(musb_base, MUSB_INTRTXE); 2189 musb_context.intrtxe = musb_readw(musb_base, MUSB_INTRTXE);
@@ -2247,6 +2255,7 @@ void musb_restore_context(struct musb *musb)
2247 if (is_host_enabled(musb)) { 2255 if (is_host_enabled(musb)) {
2248 musb_writew(musb_base, MUSB_FRAME, musb_context.frame); 2256 musb_writew(musb_base, MUSB_FRAME, musb_context.frame);
2249 musb_writeb(musb_base, MUSB_TESTMODE, musb_context.testmode); 2257 musb_writeb(musb_base, MUSB_TESTMODE, musb_context.testmode);
2258 musb_write_ulpi_buscontrol(musb->mregs, musb_context.busctl);
2250 } 2259 }
2251 musb_writeb(musb_base, MUSB_POWER, musb_context.power); 2260 musb_writeb(musb_base, MUSB_POWER, musb_context.power);
2252 musb_writew(musb_base, MUSB_INTRTXE, musb_context.intrtxe); 2261 musb_writew(musb_base, MUSB_INTRTXE, musb_context.intrtxe);
diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
index cd9f4a9a06c6..ac17b004909b 100644
--- a/drivers/usb/musb/musb_core.h
+++ b/drivers/usb/musb/musb_core.h
@@ -478,7 +478,7 @@ struct musb_context_registers {
478 u16 frame; 478 u16 frame;
479 u8 index, testmode; 479 u8 index, testmode;
480 480
481 u8 devctl, misc; 481 u8 devctl, busctl, misc;
482 482
483 struct musb_csr_regs index_regs[MUSB_C_NUM_EPS]; 483 struct musb_csr_regs index_regs[MUSB_C_NUM_EPS];
484}; 484};
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index dec896e888db..877d20b1dff9 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -2042,6 +2042,7 @@ static int musb_urb_enqueue(
2042 * odd, rare, error prone, but legal. 2042 * odd, rare, error prone, but legal.
2043 */ 2043 */
2044 kfree(qh); 2044 kfree(qh);
2045 qh = NULL;
2045 ret = 0; 2046 ret = 0;
2046 } else 2047 } else
2047 ret = musb_schedule(musb, qh, 2048 ret = musb_schedule(musb, qh,
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 490cdf15ccb6..82592633502f 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -331,8 +331,5 @@ int musb_platform_exit(struct musb *musb)
331 331
332 musb_platform_suspend(musb); 332 musb_platform_suspend(musb);
333 333
334 clk_put(musb->clock);
335 musb->clock = NULL;
336
337 return 0; 334 return 0;
338} 335}
diff --git a/drivers/usb/musb/tusb6010.c b/drivers/usb/musb/tusb6010.c
index ab776a8d98ca..60d3938cafcf 100644
--- a/drivers/usb/musb/tusb6010.c
+++ b/drivers/usb/musb/tusb6010.c
@@ -29,6 +29,19 @@ static void tusb_source_power(struct musb *musb, int is_on);
29#define TUSB_REV_MAJOR(reg_val) ((reg_val >> 4) & 0xf) 29#define TUSB_REV_MAJOR(reg_val) ((reg_val >> 4) & 0xf)
30#define TUSB_REV_MINOR(reg_val) (reg_val & 0xf) 30#define TUSB_REV_MINOR(reg_val) (reg_val & 0xf)
31 31
32#ifdef CONFIG_PM
33/* REVISIT: These should be only needed if somebody implements off idle */
34void musb_platform_save_context(struct musb *musb,
35 struct musb_context_registers *musb_context)
36{
37}
38
39void musb_platform_restore_context(struct musb *musb,
40 struct musb_context_registers *musb_context)
41{
42}
43#endif
44
32/* 45/*
33 * Checks the revision. We need to use the DMA register as 3.0 does not 46 * Checks the revision. We need to use the DMA register as 3.0 does not
34 * have correct versions for TUSB_PRCM_REV or TUSB_INT_CTRL_REV. 47 * have correct versions for TUSB_PRCM_REV or TUSB_INT_CTRL_REV.
diff --git a/drivers/usb/musb/tusb6010_omap.c b/drivers/usb/musb/tusb6010_omap.c
index 5afa070d7dc9..c061a88f2b0f 100644
--- a/drivers/usb/musb/tusb6010_omap.c
+++ b/drivers/usb/musb/tusb6010_omap.c
@@ -39,7 +39,7 @@ struct tusb_omap_dma_ch {
39 39
40 struct tusb_omap_dma *tusb_dma; 40 struct tusb_omap_dma *tusb_dma;
41 41
42 void __iomem *dma_addr; 42 dma_addr_t dma_addr;
43 43
44 u32 len; 44 u32 len;
45 u16 packet_sz; 45 u16 packet_sz;
@@ -126,6 +126,7 @@ static void tusb_omap_dma_cb(int lch, u16 ch_status, void *data)
126 struct tusb_omap_dma_ch *chdat = to_chdat(channel); 126 struct tusb_omap_dma_ch *chdat = to_chdat(channel);
127 struct tusb_omap_dma *tusb_dma = chdat->tusb_dma; 127 struct tusb_omap_dma *tusb_dma = chdat->tusb_dma;
128 struct musb *musb = chdat->musb; 128 struct musb *musb = chdat->musb;
129 struct device *dev = musb->controller;
129 struct musb_hw_ep *hw_ep = chdat->hw_ep; 130 struct musb_hw_ep *hw_ep = chdat->hw_ep;
130 void __iomem *ep_conf = hw_ep->conf; 131 void __iomem *ep_conf = hw_ep->conf;
131 void __iomem *mbase = musb->mregs; 132 void __iomem *mbase = musb->mregs;
@@ -173,13 +174,15 @@ static void tusb_omap_dma_cb(int lch, u16 ch_status, void *data)
173 DBG(3, "Using PIO for remaining %lu bytes\n", pio); 174 DBG(3, "Using PIO for remaining %lu bytes\n", pio);
174 buf = phys_to_virt((u32)chdat->dma_addr) + chdat->transfer_len; 175 buf = phys_to_virt((u32)chdat->dma_addr) + chdat->transfer_len;
175 if (chdat->tx) { 176 if (chdat->tx) {
176 dma_cache_maint(phys_to_virt((u32)chdat->dma_addr), 177 dma_unmap_single(dev, chdat->dma_addr,
177 chdat->transfer_len, DMA_TO_DEVICE); 178 chdat->transfer_len,
179 DMA_TO_DEVICE);
178 musb_write_fifo(hw_ep, pio, buf); 180 musb_write_fifo(hw_ep, pio, buf);
179 } else { 181 } else {
182 dma_unmap_single(dev, chdat->dma_addr,
183 chdat->transfer_len,
184 DMA_FROM_DEVICE);
180 musb_read_fifo(hw_ep, pio, buf); 185 musb_read_fifo(hw_ep, pio, buf);
181 dma_cache_maint(phys_to_virt((u32)chdat->dma_addr),
182 chdat->transfer_len, DMA_FROM_DEVICE);
183 } 186 }
184 channel->actual_len += pio; 187 channel->actual_len += pio;
185 } 188 }
@@ -224,6 +227,7 @@ static int tusb_omap_dma_program(struct dma_channel *channel, u16 packet_sz,
224 struct tusb_omap_dma_ch *chdat = to_chdat(channel); 227 struct tusb_omap_dma_ch *chdat = to_chdat(channel);
225 struct tusb_omap_dma *tusb_dma = chdat->tusb_dma; 228 struct tusb_omap_dma *tusb_dma = chdat->tusb_dma;
226 struct musb *musb = chdat->musb; 229 struct musb *musb = chdat->musb;
230 struct device *dev = musb->controller;
227 struct musb_hw_ep *hw_ep = chdat->hw_ep; 231 struct musb_hw_ep *hw_ep = chdat->hw_ep;
228 void __iomem *mbase = musb->mregs; 232 void __iomem *mbase = musb->mregs;
229 void __iomem *ep_conf = hw_ep->conf; 233 void __iomem *ep_conf = hw_ep->conf;
@@ -299,14 +303,16 @@ static int tusb_omap_dma_program(struct dma_channel *channel, u16 packet_sz,
299 chdat->packet_sz = packet_sz; 303 chdat->packet_sz = packet_sz;
300 chdat->len = len; 304 chdat->len = len;
301 channel->actual_len = 0; 305 channel->actual_len = 0;
302 chdat->dma_addr = (void __iomem *)dma_addr; 306 chdat->dma_addr = dma_addr;
303 channel->status = MUSB_DMA_STATUS_BUSY; 307 channel->status = MUSB_DMA_STATUS_BUSY;
304 308
305 /* Since we're recycling dma areas, we need to clean or invalidate */ 309 /* Since we're recycling dma areas, we need to clean or invalidate */
306 if (chdat->tx) 310 if (chdat->tx)
307 dma_cache_maint(phys_to_virt(dma_addr), len, DMA_TO_DEVICE); 311 dma_map_single(dev, phys_to_virt(dma_addr), len,
312 DMA_TO_DEVICE);
308 else 313 else
309 dma_cache_maint(phys_to_virt(dma_addr), len, DMA_FROM_DEVICE); 314 dma_map_single(dev, phys_to_virt(dma_addr), len,
315 DMA_FROM_DEVICE);
310 316
311 /* Use 16-bit transfer if dma_addr is not 32-bit aligned */ 317 /* Use 16-bit transfer if dma_addr is not 32-bit aligned */
312 if ((dma_addr & 0x3) == 0) { 318 if ((dma_addr & 0x3) == 0) {
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index ca9d866672aa..84d0edad8e4f 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -305,6 +305,11 @@ static int option_resume(struct usb_serial *serial);
305#define ZTE_PRODUCT_CDMA_TECH 0xfffe 305#define ZTE_PRODUCT_CDMA_TECH 0xfffe
306#define ZTE_PRODUCT_AC8710 0xfff1 306#define ZTE_PRODUCT_AC8710 0xfff1
307#define ZTE_PRODUCT_AC2726 0xfff5 307#define ZTE_PRODUCT_AC2726 0xfff5
308#define ZTE_PRODUCT_AC8710T 0xffff
309
310/* ZTE PRODUCTS -- alternate vendor ID */
311#define ZTE_VENDOR_ID2 0x1d6b
312#define ZTE_PRODUCT_MF_330 0x0002
308 313
309#define BENQ_VENDOR_ID 0x04a5 314#define BENQ_VENDOR_ID 0x04a5
310#define BENQ_PRODUCT_H10 0x4068 315#define BENQ_PRODUCT_H10 0x4068
@@ -373,6 +378,8 @@ static int option_resume(struct usb_serial *serial);
373#define HAIER_VENDOR_ID 0x201e 378#define HAIER_VENDOR_ID 0x201e
374#define HAIER_PRODUCT_CE100 0x2009 379#define HAIER_PRODUCT_CE100 0x2009
375 380
381#define CINTERION_VENDOR_ID 0x0681
382
376/* some devices interfaces need special handling due to a number of reasons */ 383/* some devices interfaces need special handling due to a number of reasons */
377enum option_blacklist_reason { 384enum option_blacklist_reason {
378 OPTION_BLACKLIST_NONE = 0, 385 OPTION_BLACKLIST_NONE = 0,
@@ -679,6 +686,8 @@ static const struct usb_device_id option_ids[] = {
679 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) }, 686 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) },
680 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710, 0xff, 0xff, 0xff) }, 687 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710, 0xff, 0xff, 0xff) },
681 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, 688 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) },
689 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710T, 0xff, 0xff, 0xff) },
690 { USB_DEVICE(ZTE_VENDOR_ID2, ZTE_PRODUCT_MF_330) },
682 { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, 691 { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
683 { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) }, 692 { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
684 { USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5) }, /* Yes, ALINK_VENDOR_ID */ 693 { USB_DEVICE(ALINK_VENDOR_ID, DLINK_PRODUCT_DWM_652_U5) }, /* Yes, ALINK_VENDOR_ID */
@@ -716,6 +725,7 @@ static const struct usb_device_id option_ids[] = {
716 { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1011)}, 725 { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1011)},
717 { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1012)}, 726 { USB_DEVICE(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_1012)},
718 727
728 { USB_DEVICE(CINTERION_VENDOR_ID, 0x0047) },
719 { } /* Terminating entry */ 729 { } /* Terminating entry */
720}; 730};
721MODULE_DEVICE_TABLE(usb, option_ids); 731MODULE_DEVICE_TABLE(usb, option_ids);
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 73d5f346d3e0..c28b1607eacc 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -59,6 +59,7 @@ static const struct usb_device_id id_table[] = {
59 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ALDIGA) }, 59 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ALDIGA) },
60 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MMX) }, 60 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MMX) },
61 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_GPRS) }, 61 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_GPRS) },
62 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_HCR331) },
62 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, 63 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
63 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, 64 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) },
64 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) }, 65 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
@@ -97,6 +98,7 @@ static const struct usb_device_id id_table[] = {
97 { USB_DEVICE(CRESSI_VENDOR_ID, CRESSI_EDY_PRODUCT_ID) }, 98 { USB_DEVICE(CRESSI_VENDOR_ID, CRESSI_EDY_PRODUCT_ID) },
98 { USB_DEVICE(SONY_VENDOR_ID, SONY_QN3USB_PRODUCT_ID) }, 99 { USB_DEVICE(SONY_VENDOR_ID, SONY_QN3USB_PRODUCT_ID) },
99 { USB_DEVICE(SANWA_VENDOR_ID, SANWA_PRODUCT_ID) }, 100 { USB_DEVICE(SANWA_VENDOR_ID, SANWA_PRODUCT_ID) },
101 { USB_DEVICE(ADLINK_VENDOR_ID, ADLINK_ND6530_PRODUCT_ID) },
100 { } /* Terminating entry */ 102 { } /* Terminating entry */
101}; 103};
102 104
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index d640dc951568..23c09b38b9ec 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -20,6 +20,7 @@
20#define PL2303_PRODUCT_ID_ALDIGA 0x0611 20#define PL2303_PRODUCT_ID_ALDIGA 0x0611
21#define PL2303_PRODUCT_ID_MMX 0x0612 21#define PL2303_PRODUCT_ID_MMX 0x0612
22#define PL2303_PRODUCT_ID_GPRS 0x0609 22#define PL2303_PRODUCT_ID_GPRS 0x0609
23#define PL2303_PRODUCT_ID_HCR331 0x331a
23 24
24#define ATEN_VENDOR_ID 0x0557 25#define ATEN_VENDOR_ID 0x0557
25#define ATEN_VENDOR_ID2 0x0547 26#define ATEN_VENDOR_ID2 0x0547
@@ -134,3 +135,7 @@
134/* Sanwa KB-USB2 multimeter cable (ID: 11ad:0001) */ 135/* Sanwa KB-USB2 multimeter cable (ID: 11ad:0001) */
135#define SANWA_VENDOR_ID 0x11ad 136#define SANWA_VENDOR_ID 0x11ad
136#define SANWA_PRODUCT_ID 0x0001 137#define SANWA_PRODUCT_ID 0x0001
138
139/* ADLINK ND-6530 RS232,RS485 and RS422 adapter */
140#define ADLINK_VENDOR_ID 0x0b63
141#define ADLINK_ND6530_PRODUCT_ID 0x6530
diff --git a/drivers/usb/serial/qcaux.c b/drivers/usb/serial/qcaux.c
index 0b9362061713..7e3bea23600b 100644
--- a/drivers/usb/serial/qcaux.c
+++ b/drivers/usb/serial/qcaux.c
@@ -42,6 +42,14 @@
42#define CMOTECH_PRODUCT_CDU550 0x5553 42#define CMOTECH_PRODUCT_CDU550 0x5553
43#define CMOTECH_PRODUCT_CDX650 0x6512 43#define CMOTECH_PRODUCT_CDX650 0x6512
44 44
45/* LG devices */
46#define LG_VENDOR_ID 0x1004
47#define LG_PRODUCT_VX4400_6000 0x6000 /* VX4400/VX6000/Rumor */
48
49/* Sanyo devices */
50#define SANYO_VENDOR_ID 0x0474
51#define SANYO_PRODUCT_KATANA_LX 0x0754 /* SCP-3800 (Katana LX) */
52
45static struct usb_device_id id_table[] = { 53static struct usb_device_id id_table[] = {
46 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_PC5740, 0xff, 0x00, 0x00) }, 54 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_PC5740, 0xff, 0x00, 0x00) },
47 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_PC5750, 0xff, 0x00, 0x00) }, 55 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_PC5750, 0xff, 0x00, 0x00) },
@@ -51,6 +59,8 @@ static struct usb_device_id id_table[] = {
51 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_UM175_ALLTEL, 0xff, 0x00, 0x00) }, 59 { USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, UTSTARCOM_PRODUCT_UM175_ALLTEL, 0xff, 0x00, 0x00) },
52 { USB_DEVICE_AND_INTERFACE_INFO(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU550, 0xff, 0xff, 0x00) }, 60 { USB_DEVICE_AND_INTERFACE_INFO(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU550, 0xff, 0xff, 0x00) },
53 { USB_DEVICE_AND_INTERFACE_INFO(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDX650, 0xff, 0xff, 0x00) }, 61 { USB_DEVICE_AND_INTERFACE_INFO(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDX650, 0xff, 0xff, 0x00) },
62 { USB_DEVICE_AND_INTERFACE_INFO(LG_VENDOR_ID, LG_PRODUCT_VX4400_6000, 0xff, 0xff, 0x00) },
63 { USB_DEVICE_AND_INTERFACE_INFO(SANYO_VENDOR_ID, SANYO_PRODUCT_KATANA_LX, 0xff, 0xff, 0x00) },
54 { }, 64 { },
55}; 65};
56MODULE_DEVICE_TABLE(usb, id_table); 66MODULE_DEVICE_TABLE(usb, id_table);
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 9202f94505e6..ef0bdb08d788 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -230,6 +230,7 @@ static const struct sierra_iface_info direct_ip_interface_blacklist = {
230static const struct usb_device_id id_table[] = { 230static const struct usb_device_id id_table[] = {
231 { USB_DEVICE(0x0F3D, 0x0112) }, /* Airprime/Sierra PC 5220 */ 231 { USB_DEVICE(0x0F3D, 0x0112) }, /* Airprime/Sierra PC 5220 */
232 { USB_DEVICE(0x03F0, 0x1B1D) }, /* HP ev2200 a.k.a MC5720 */ 232 { USB_DEVICE(0x03F0, 0x1B1D) }, /* HP ev2200 a.k.a MC5720 */
233 { USB_DEVICE(0x03F0, 0x211D) }, /* HP ev2210 a.k.a MC5725 */
233 { USB_DEVICE(0x03F0, 0x1E1D) }, /* HP hs2300 a.k.a MC8775 */ 234 { USB_DEVICE(0x03F0, 0x1E1D) }, /* HP hs2300 a.k.a MC8775 */
234 235
235 { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */ 236 { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index 0afe5c71c17e..e1bfda33f5b9 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -172,7 +172,7 @@ static unsigned int product_5052_count;
172/* the array dimension is the number of default entries plus */ 172/* the array dimension is the number of default entries plus */
173/* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */ 173/* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */
174/* null entry */ 174/* null entry */
175static struct usb_device_id ti_id_table_3410[10+TI_EXTRA_VID_PID_COUNT+1] = { 175static struct usb_device_id ti_id_table_3410[13+TI_EXTRA_VID_PID_COUNT+1] = {
176 { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, 176 { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
177 { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, 177 { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
178 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) }, 178 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
@@ -180,6 +180,9 @@ static struct usb_device_id ti_id_table_3410[10+TI_EXTRA_VID_PID_COUNT+1] = {
180 { USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) }, 180 { USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) },
181 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) }, 181 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) },
182 { USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) }, 182 { USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) },
183 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234MU_PRODUCT_ID) },
184 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234ZBA_PRODUCT_ID) },
185 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234ZBAOLD_PRODUCT_ID) },
183 { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, 186 { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) },
184 { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, 187 { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) },
185 { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, 188 { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) },
@@ -192,7 +195,7 @@ static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = {
192 { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) }, 195 { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) },
193}; 196};
194 197
195static struct usb_device_id ti_id_table_combined[14+2*TI_EXTRA_VID_PID_COUNT+1] = { 198static struct usb_device_id ti_id_table_combined[17+2*TI_EXTRA_VID_PID_COUNT+1] = {
196 { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, 199 { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
197 { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, 200 { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
198 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) }, 201 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
@@ -200,6 +203,9 @@ static struct usb_device_id ti_id_table_combined[14+2*TI_EXTRA_VID_PID_COUNT+1]
200 { USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) }, 203 { USB_DEVICE(MTS_VENDOR_ID, MTS_CDMA_PRODUCT_ID) },
201 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) }, 204 { USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_PRODUCT_ID) },
202 { USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) }, 205 { USB_DEVICE(MTS_VENDOR_ID, MTS_EDGE_PRODUCT_ID) },
206 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234MU_PRODUCT_ID) },
207 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234ZBA_PRODUCT_ID) },
208 { USB_DEVICE(MTS_VENDOR_ID, MTS_MT9234ZBAOLD_PRODUCT_ID) },
203 { USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) }, 209 { USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) },
204 { USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) }, 210 { USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) },
205 { USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) }, 211 { USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) },
@@ -287,6 +293,8 @@ MODULE_FIRMWARE("ti_5052.fw");
287MODULE_FIRMWARE("mts_cdma.fw"); 293MODULE_FIRMWARE("mts_cdma.fw");
288MODULE_FIRMWARE("mts_gsm.fw"); 294MODULE_FIRMWARE("mts_gsm.fw");
289MODULE_FIRMWARE("mts_edge.fw"); 295MODULE_FIRMWARE("mts_edge.fw");
296MODULE_FIRMWARE("mts_mt9234mu.fw");
297MODULE_FIRMWARE("mts_mt9234zba.fw");
290 298
291module_param(debug, bool, S_IRUGO | S_IWUSR); 299module_param(debug, bool, S_IRUGO | S_IWUSR);
292MODULE_PARM_DESC(debug, "Enable debugging, 0=no, 1=yes"); 300MODULE_PARM_DESC(debug, "Enable debugging, 0=no, 1=yes");
@@ -1687,6 +1695,7 @@ static int ti_download_firmware(struct ti_device *tdev)
1687 const struct firmware *fw_p; 1695 const struct firmware *fw_p;
1688 char buf[32]; 1696 char buf[32];
1689 1697
1698 dbg("%s\n", __func__);
1690 /* try ID specific firmware first, then try generic firmware */ 1699 /* try ID specific firmware first, then try generic firmware */
1691 sprintf(buf, "ti_usb-v%04x-p%04x.fw", dev->descriptor.idVendor, 1700 sprintf(buf, "ti_usb-v%04x-p%04x.fw", dev->descriptor.idVendor,
1692 dev->descriptor.idProduct); 1701 dev->descriptor.idProduct);
@@ -1703,7 +1712,15 @@ static int ti_download_firmware(struct ti_device *tdev)
1703 case MTS_EDGE_PRODUCT_ID: 1712 case MTS_EDGE_PRODUCT_ID:
1704 strcpy(buf, "mts_edge.fw"); 1713 strcpy(buf, "mts_edge.fw");
1705 break; 1714 break;
1706 } 1715 case MTS_MT9234MU_PRODUCT_ID:
1716 strcpy(buf, "mts_mt9234mu.fw");
1717 break;
1718 case MTS_MT9234ZBA_PRODUCT_ID:
1719 strcpy(buf, "mts_mt9234zba.fw");
1720 break;
1721 case MTS_MT9234ZBAOLD_PRODUCT_ID:
1722 strcpy(buf, "mts_mt9234zba.fw");
1723 break; }
1707 } 1724 }
1708 if (buf[0] == '\0') { 1725 if (buf[0] == '\0') {
1709 if (tdev->td_is_3410) 1726 if (tdev->td_is_3410)
@@ -1718,7 +1735,7 @@ static int ti_download_firmware(struct ti_device *tdev)
1718 return -ENOENT; 1735 return -ENOENT;
1719 } 1736 }
1720 if (fw_p->size > TI_FIRMWARE_BUF_SIZE) { 1737 if (fw_p->size > TI_FIRMWARE_BUF_SIZE) {
1721 dev_err(&dev->dev, "%s - firmware too large\n", __func__); 1738 dev_err(&dev->dev, "%s - firmware too large %zu\n", __func__, fw_p->size);
1722 return -ENOENT; 1739 return -ENOENT;
1723 } 1740 }
1724 1741
@@ -1730,6 +1747,7 @@ static int ti_download_firmware(struct ti_device *tdev)
1730 status = ti_do_download(dev, pipe, buffer, fw_p->size); 1747 status = ti_do_download(dev, pipe, buffer, fw_p->size);
1731 kfree(buffer); 1748 kfree(buffer);
1732 } else { 1749 } else {
1750 dbg("%s ENOMEM\n", __func__);
1733 status = -ENOMEM; 1751 status = -ENOMEM;
1734 } 1752 }
1735 release_firmware(fw_p); 1753 release_firmware(fw_p);
diff --git a/drivers/usb/serial/ti_usb_3410_5052.h b/drivers/usb/serial/ti_usb_3410_5052.h
index f323c6025858..2aac1953993b 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.h
+++ b/drivers/usb/serial/ti_usb_3410_5052.h
@@ -45,6 +45,9 @@
45#define MTS_CDMA_PRODUCT_ID 0xF110 45#define MTS_CDMA_PRODUCT_ID 0xF110
46#define MTS_GSM_PRODUCT_ID 0xF111 46#define MTS_GSM_PRODUCT_ID 0xF111
47#define MTS_EDGE_PRODUCT_ID 0xF112 47#define MTS_EDGE_PRODUCT_ID 0xF112
48#define MTS_MT9234MU_PRODUCT_ID 0xF114
49#define MTS_MT9234ZBA_PRODUCT_ID 0xF115
50#define MTS_MT9234ZBAOLD_PRODUCT_ID 0x0319
48 51
49/* Commands */ 52/* Commands */
50#define TI_GET_VERSION 0x01 53#define TI_GET_VERSION 0x01
diff --git a/drivers/usb/wusbcore/devconnect.c b/drivers/usb/wusbcore/devconnect.c
index 46e79d349498..7ec24e46b34b 100644
--- a/drivers/usb/wusbcore/devconnect.c
+++ b/drivers/usb/wusbcore/devconnect.c
@@ -438,7 +438,7 @@ static void __wusbhc_keep_alive(struct wusbhc *wusbhc)
438 old_keep_alives = ie->hdr.bLength - sizeof(ie->hdr); 438 old_keep_alives = ie->hdr.bLength - sizeof(ie->hdr);
439 keep_alives = 0; 439 keep_alives = 0;
440 for (cnt = 0; 440 for (cnt = 0;
441 keep_alives <= WUIE_ELT_MAX && cnt < wusbhc->ports_max; 441 keep_alives < WUIE_ELT_MAX && cnt < wusbhc->ports_max;
442 cnt++) { 442 cnt++) {
443 unsigned tt = msecs_to_jiffies(wusbhc->trust_timeout); 443 unsigned tt = msecs_to_jiffies(wusbhc->trust_timeout);
444 444
diff --git a/drivers/video/bfin-t350mcqb-fb.c b/drivers/video/bfin-t350mcqb-fb.c
index 44e49c28b2a7..c2ec3dcd4e91 100644
--- a/drivers/video/bfin-t350mcqb-fb.c
+++ b/drivers/video/bfin-t350mcqb-fb.c
@@ -488,9 +488,9 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
488 fbinfo->fbops = &bfin_t350mcqb_fb_ops; 488 fbinfo->fbops = &bfin_t350mcqb_fb_ops;
489 fbinfo->flags = FBINFO_FLAG_DEFAULT; 489 fbinfo->flags = FBINFO_FLAG_DEFAULT;
490 490
491 info->fb_buffer = 491 info->fb_buffer = dma_alloc_coherent(NULL, fbinfo->fix.smem_len +
492 dma_alloc_coherent(NULL, fbinfo->fix.smem_len, &info->dma_handle, 492 ACTIVE_VIDEO_MEM_OFFSET,
493 GFP_KERNEL); 493 &info->dma_handle, GFP_KERNEL);
494 494
495 if (NULL == info->fb_buffer) { 495 if (NULL == info->fb_buffer) {
496 printk(KERN_ERR DRIVER_NAME 496 printk(KERN_ERR DRIVER_NAME
@@ -568,8 +568,8 @@ out7:
568out6: 568out6:
569 fb_dealloc_cmap(&fbinfo->cmap); 569 fb_dealloc_cmap(&fbinfo->cmap);
570out4: 570out4:
571 dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, 571 dma_free_coherent(NULL, fbinfo->fix.smem_len + ACTIVE_VIDEO_MEM_OFFSET,
572 info->dma_handle); 572 info->fb_buffer, info->dma_handle);
573out3: 573out3:
574 framebuffer_release(fbinfo); 574 framebuffer_release(fbinfo);
575out2: 575out2:
@@ -592,8 +592,9 @@ static int __devexit bfin_t350mcqb_remove(struct platform_device *pdev)
592 free_irq(info->irq, info); 592 free_irq(info->irq, info);
593 593
594 if (info->fb_buffer != NULL) 594 if (info->fb_buffer != NULL)
595 dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer, 595 dma_free_coherent(NULL, fbinfo->fix.smem_len +
596 info->dma_handle); 596 ACTIVE_VIDEO_MEM_OFFSET, info->fb_buffer,
597 info->dma_handle);
597 598
598 fb_dealloc_cmap(&fbinfo->cmap); 599 fb_dealloc_cmap(&fbinfo->cmap);
599 600
diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c
index 581d2dbf675a..ecf405562f5c 100644
--- a/drivers/video/efifb.c
+++ b/drivers/video/efifb.c
@@ -49,6 +49,7 @@ enum {
49 M_MBP_2, /* MacBook Pro 2nd gen */ 49 M_MBP_2, /* MacBook Pro 2nd gen */
50 M_MBP_SR, /* MacBook Pro (Santa Rosa) */ 50 M_MBP_SR, /* MacBook Pro (Santa Rosa) */
51 M_MBP_4, /* MacBook Pro, 4th gen */ 51 M_MBP_4, /* MacBook Pro, 4th gen */
52 M_MBP_5_1, /* MacBook Pro, 5,1th gen */
52 M_UNKNOWN /* placeholder */ 53 M_UNKNOWN /* placeholder */
53}; 54};
54 55
@@ -70,6 +71,7 @@ static struct efifb_dmi_info {
70 [M_MBP_2] = { "mbp2", 0, 0, 0, 0 }, /* placeholder */ 71 [M_MBP_2] = { "mbp2", 0, 0, 0, 0 }, /* placeholder */
71 [M_MBP_SR] = { "mbp3", 0x80030000, 2048 * 4, 1440, 900 }, 72 [M_MBP_SR] = { "mbp3", 0x80030000, 2048 * 4, 1440, 900 },
72 [M_MBP_4] = { "mbp4", 0xc0060000, 2048 * 4, 1920, 1200 }, 73 [M_MBP_4] = { "mbp4", 0xc0060000, 2048 * 4, 1920, 1200 },
74 [M_MBP_5_1] = { "mbp51", 0xc0010000, 2048 * 4, 1440, 900 },
73 [M_UNKNOWN] = { NULL, 0, 0, 0, 0 } 75 [M_UNKNOWN] = { NULL, 0, 0, 0, 0 }
74}; 76};
75 77
@@ -106,6 +108,7 @@ static struct dmi_system_id __initdata dmi_system_table[] = {
106 EFIFB_DMI_SYSTEM_ID("Apple Computer, Inc.", "MacBookPro3,1", M_MBP_SR), 108 EFIFB_DMI_SYSTEM_ID("Apple Computer, Inc.", "MacBookPro3,1", M_MBP_SR),
107 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro3,1", M_MBP_SR), 109 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro3,1", M_MBP_SR),
108 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro4,1", M_MBP_4), 110 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro4,1", M_MBP_4),
111 EFIFB_DMI_SYSTEM_ID("Apple Inc.", "MacBookPro5,1", M_MBP_5_1),
109 {}, 112 {},
110}; 113};
111 114
diff --git a/drivers/video/sh_mobile_lcdcfb.c b/drivers/video/sh_mobile_lcdcfb.c
index e14bd0749129..e8c769944812 100644
--- a/drivers/video/sh_mobile_lcdcfb.c
+++ b/drivers/video/sh_mobile_lcdcfb.c
@@ -695,6 +695,7 @@ static int sh_mobile_lcdc_setup_clocks(struct platform_device *pdev,
695 * 1) Enable Runtime PM 695 * 1) Enable Runtime PM
696 * 2) Force Runtime PM Resume since hardware is accessed from probe() 696 * 2) Force Runtime PM Resume since hardware is accessed from probe()
697 */ 697 */
698 priv->dev = &pdev->dev;
698 pm_runtime_enable(priv->dev); 699 pm_runtime_enable(priv->dev);
699 pm_runtime_resume(priv->dev); 700 pm_runtime_resume(priv->dev);
700 return 0; 701 return 0;
@@ -957,25 +958,24 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
957 958
958 if (!pdev->dev.platform_data) { 959 if (!pdev->dev.platform_data) {
959 dev_err(&pdev->dev, "no platform data defined\n"); 960 dev_err(&pdev->dev, "no platform data defined\n");
960 error = -EINVAL; 961 return -EINVAL;
961 goto err0;
962 } 962 }
963 963
964 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 964 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
965 i = platform_get_irq(pdev, 0); 965 i = platform_get_irq(pdev, 0);
966 if (!res || i < 0) { 966 if (!res || i < 0) {
967 dev_err(&pdev->dev, "cannot get platform resources\n"); 967 dev_err(&pdev->dev, "cannot get platform resources\n");
968 error = -ENOENT; 968 return -ENOENT;
969 goto err0;
970 } 969 }
971 970
972 priv = kzalloc(sizeof(*priv), GFP_KERNEL); 971 priv = kzalloc(sizeof(*priv), GFP_KERNEL);
973 if (!priv) { 972 if (!priv) {
974 dev_err(&pdev->dev, "cannot allocate device data\n"); 973 dev_err(&pdev->dev, "cannot allocate device data\n");
975 error = -ENOMEM; 974 return -ENOMEM;
976 goto err0;
977 } 975 }
978 976
977 platform_set_drvdata(pdev, priv);
978
979 error = request_irq(i, sh_mobile_lcdc_irq, IRQF_DISABLED, 979 error = request_irq(i, sh_mobile_lcdc_irq, IRQF_DISABLED,
980 dev_name(&pdev->dev), priv); 980 dev_name(&pdev->dev), priv);
981 if (error) { 981 if (error) {
@@ -984,8 +984,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
984 } 984 }
985 985
986 priv->irq = i; 986 priv->irq = i;
987 priv->dev = &pdev->dev;
988 platform_set_drvdata(pdev, priv);
989 pdata = pdev->dev.platform_data; 987 pdata = pdev->dev.platform_data;
990 988
991 j = 0; 989 j = 0;
@@ -1099,9 +1097,9 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
1099 info = ch->info; 1097 info = ch->info;
1100 1098
1101 if (info->fbdefio) { 1099 if (info->fbdefio) {
1102 priv->ch->sglist = vmalloc(sizeof(struct scatterlist) * 1100 ch->sglist = vmalloc(sizeof(struct scatterlist) *
1103 info->fix.smem_len >> PAGE_SHIFT); 1101 info->fix.smem_len >> PAGE_SHIFT);
1104 if (!priv->ch->sglist) { 1102 if (!ch->sglist) {
1105 dev_err(&pdev->dev, "cannot allocate sglist\n"); 1103 dev_err(&pdev->dev, "cannot allocate sglist\n");
1106 goto err1; 1104 goto err1;
1107 } 1105 }
@@ -1126,9 +1124,9 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
1126 } 1124 }
1127 1125
1128 return 0; 1126 return 0;
1129 err1: 1127err1:
1130 sh_mobile_lcdc_remove(pdev); 1128 sh_mobile_lcdc_remove(pdev);
1131 err0: 1129
1132 return error; 1130 return error;
1133} 1131}
1134 1132
@@ -1139,7 +1137,7 @@ static int sh_mobile_lcdc_remove(struct platform_device *pdev)
1139 int i; 1137 int i;
1140 1138
1141 for (i = 0; i < ARRAY_SIZE(priv->ch); i++) 1139 for (i = 0; i < ARRAY_SIZE(priv->ch); i++)
1142 if (priv->ch[i].info->dev) 1140 if (priv->ch[i].info && priv->ch[i].info->dev)
1143 unregister_framebuffer(priv->ch[i].info); 1141 unregister_framebuffer(priv->ch[i].info);
1144 1142
1145 sh_mobile_lcdc_stop(priv); 1143 sh_mobile_lcdc_stop(priv);
@@ -1162,7 +1160,8 @@ static int sh_mobile_lcdc_remove(struct platform_device *pdev)
1162 if (priv->dot_clk) 1160 if (priv->dot_clk)
1163 clk_put(priv->dot_clk); 1161 clk_put(priv->dot_clk);
1164 1162
1165 pm_runtime_disable(priv->dev); 1163 if (priv->dev)
1164 pm_runtime_disable(priv->dev);
1166 1165
1167 if (priv->base) 1166 if (priv->base)
1168 iounmap(priv->base); 1167 iounmap(priv->base);
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 3aed38886f94..bfec7c29486d 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -103,7 +103,8 @@ static void fill_balloon(struct virtio_balloon *vb, size_t num)
103 num = min(num, ARRAY_SIZE(vb->pfns)); 103 num = min(num, ARRAY_SIZE(vb->pfns));
104 104
105 for (vb->num_pfns = 0; vb->num_pfns < num; vb->num_pfns++) { 105 for (vb->num_pfns = 0; vb->num_pfns < num; vb->num_pfns++) {
106 struct page *page = alloc_page(GFP_HIGHUSER | __GFP_NORETRY); 106 struct page *page = alloc_page(GFP_HIGHUSER | __GFP_NORETRY |
107 __GFP_NOMEMALLOC | __GFP_NOWARN);
107 if (!page) { 108 if (!page) {
108 if (printk_ratelimit()) 109 if (printk_ratelimit())
109 dev_printk(KERN_INFO, &vb->vdev->dev, 110 dev_printk(KERN_INFO, &vb->vdev->dev,
diff --git a/drivers/w1/masters/omap_hdq.c b/drivers/w1/masters/omap_hdq.c
index ef36fca2eed4..3a7e9ff8a746 100644
--- a/drivers/w1/masters/omap_hdq.c
+++ b/drivers/w1/masters/omap_hdq.c
@@ -16,6 +16,7 @@
16#include <linux/err.h> 16#include <linux/err.h>
17#include <linux/clk.h> 17#include <linux/clk.h>
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/sched.h>
19 20
20#include <asm/irq.h> 21#include <asm/irq.h>
21#include <mach/hardware.h> 22#include <mach/hardware.h>
diff --git a/drivers/w1/slaves/w1_therm.c b/drivers/w1/slaves/w1_therm.c
index 1ed3d554e372..17726a05a0a6 100644
--- a/drivers/w1/slaves/w1_therm.c
+++ b/drivers/w1/slaves/w1_therm.c
@@ -115,9 +115,8 @@ static struct w1_therm_family_converter w1_therm_families[] = {
115 115
116static inline int w1_DS18B20_convert_temp(u8 rom[9]) 116static inline int w1_DS18B20_convert_temp(u8 rom[9])
117{ 117{
118 int t = ((s16)rom[1] << 8) | rom[0]; 118 s16 t = le16_to_cpup((__le16 *)rom);
119 t = t*1000/16; 119 return t*1000/16;
120 return t;
121} 120}
122 121
123static inline int w1_DS18S20_convert_temp(u8 rom[9]) 122static inline int w1_DS18S20_convert_temp(u8 rom[9])
diff --git a/drivers/watchdog/booke_wdt.c b/drivers/watchdog/booke_wdt.c
index 500d38342e1e..801ead191499 100644
--- a/drivers/watchdog/booke_wdt.c
+++ b/drivers/watchdog/booke_wdt.c
@@ -121,7 +121,7 @@ static ssize_t booke_wdt_write(struct file *file, const char __user *buf,
121 return count; 121 return count;
122} 122}
123 123
124static const struct watchdog_info ident = { 124static struct watchdog_info ident = {
125 .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING, 125 .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
126 .identity = "PowerPC Book-E Watchdog", 126 .identity = "PowerPC Book-E Watchdog",
127}; 127};
diff --git a/drivers/watchdog/ep93xx_wdt.c b/drivers/watchdog/ep93xx_wdt.c
index 88ed54e50f74..59359c9a5e01 100644
--- a/drivers/watchdog/ep93xx_wdt.c
+++ b/drivers/watchdog/ep93xx_wdt.c
@@ -244,7 +244,7 @@ MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started");
244module_param(timeout, int, 0); 244module_param(timeout, int, 0);
245MODULE_PARM_DESC(timeout, 245MODULE_PARM_DESC(timeout,
246 "Watchdog timeout in seconds. (1<=timeout<=3600, default=" 246 "Watchdog timeout in seconds. (1<=timeout<=3600, default="
247 __MODULE_STRING(WATCHDOG_TIMEOUT) ")"); 247 __MODULE_STRING(WDT_TIMEOUT) ")");
248 248
249MODULE_AUTHOR("Ray Lehtiniemi <rayl@mail.com>," 249MODULE_AUTHOR("Ray Lehtiniemi <rayl@mail.com>,"
250 "Alessandro Zummo <a.zummo@towertech.it>"); 250 "Alessandro Zummo <a.zummo@towertech.it>");
diff --git a/drivers/watchdog/sb_wdog.c b/drivers/watchdog/sb_wdog.c
index c8eadd478175..88c83aa57303 100644
--- a/drivers/watchdog/sb_wdog.c
+++ b/drivers/watchdog/sb_wdog.c
@@ -67,8 +67,8 @@ static DEFINE_SPINLOCK(sbwd_lock);
67void sbwdog_set(char __iomem *wdog, unsigned long t) 67void sbwdog_set(char __iomem *wdog, unsigned long t)
68{ 68{
69 spin_lock(&sbwd_lock); 69 spin_lock(&sbwd_lock);
70 __raw_writeb(0, wdog - 0x10); 70 __raw_writeb(0, wdog);
71 __raw_writeq(t & 0x7fffffUL, wdog); 71 __raw_writeq(t & 0x7fffffUL, wdog - 0x10);
72 spin_unlock(&sbwd_lock); 72 spin_unlock(&sbwd_lock);
73} 73}
74 74
diff --git a/drivers/watchdog/sbc_fitpc2_wdt.c b/drivers/watchdog/sbc_fitpc2_wdt.c
index 8d44c9b6fb5b..c7d67e9a7465 100644
--- a/drivers/watchdog/sbc_fitpc2_wdt.c
+++ b/drivers/watchdog/sbc_fitpc2_wdt.c
@@ -30,7 +30,7 @@
30static int nowayout = WATCHDOG_NOWAYOUT; 30static int nowayout = WATCHDOG_NOWAYOUT;
31static unsigned int margin = 60; /* (secs) Default is 1 minute */ 31static unsigned int margin = 60; /* (secs) Default is 1 minute */
32static unsigned long wdt_status; 32static unsigned long wdt_status;
33static DEFINE_SPINLOCK(wdt_lock); 33static DEFINE_MUTEX(wdt_lock);
34 34
35#define WDT_IN_USE 0 35#define WDT_IN_USE 0
36#define WDT_OK_TO_CLOSE 1 36#define WDT_OK_TO_CLOSE 1
@@ -45,26 +45,26 @@ static DEFINE_SPINLOCK(wdt_lock);
45 45
46static void wdt_send_data(unsigned char command, unsigned char data) 46static void wdt_send_data(unsigned char command, unsigned char data)
47{ 47{
48 outb(command, COMMAND_PORT);
49 msleep(100);
50 outb(data, DATA_PORT); 48 outb(data, DATA_PORT);
51 msleep(200); 49 msleep(200);
50 outb(command, COMMAND_PORT);
51 msleep(100);
52} 52}
53 53
54static void wdt_enable(void) 54static void wdt_enable(void)
55{ 55{
56 spin_lock(&wdt_lock); 56 mutex_lock(&wdt_lock);
57 wdt_send_data(IFACE_ON_COMMAND, 1); 57 wdt_send_data(IFACE_ON_COMMAND, 1);
58 wdt_send_data(REBOOT_COMMAND, margin); 58 wdt_send_data(REBOOT_COMMAND, margin);
59 spin_unlock(&wdt_lock); 59 mutex_unlock(&wdt_lock);
60} 60}
61 61
62static void wdt_disable(void) 62static void wdt_disable(void)
63{ 63{
64 spin_lock(&wdt_lock); 64 mutex_lock(&wdt_lock);
65 wdt_send_data(IFACE_ON_COMMAND, 0); 65 wdt_send_data(IFACE_ON_COMMAND, 0);
66 wdt_send_data(REBOOT_COMMAND, 0); 66 wdt_send_data(REBOOT_COMMAND, 0);
67 spin_unlock(&wdt_lock); 67 mutex_unlock(&wdt_lock);
68} 68}
69 69
70static int fitpc2_wdt_open(struct inode *inode, struct file *file) 70static int fitpc2_wdt_open(struct inode *inode, struct file *file)
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index 5c5bc8480070..f8b86e92cd66 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -238,6 +238,13 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
238 return ERR_PTR(-ENOMEM); 238 return ERR_PTR(-ENOMEM);
239 } 239 }
240 240
241 rc = bdi_setup_and_register(&v9ses->bdi, "9p", BDI_CAP_MAP_COPY);
242 if (rc) {
243 __putname(v9ses->aname);
244 __putname(v9ses->uname);
245 return ERR_PTR(rc);
246 }
247
241 spin_lock(&v9fs_sessionlist_lock); 248 spin_lock(&v9fs_sessionlist_lock);
242 list_add(&v9ses->slist, &v9fs_sessionlist); 249 list_add(&v9ses->slist, &v9fs_sessionlist);
243 spin_unlock(&v9fs_sessionlist_lock); 250 spin_unlock(&v9fs_sessionlist_lock);
@@ -301,6 +308,7 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
301 return fid; 308 return fid;
302 309
303error: 310error:
311 bdi_destroy(&v9ses->bdi);
304 return ERR_PTR(retval); 312 return ERR_PTR(retval);
305} 313}
306 314
@@ -326,6 +334,8 @@ void v9fs_session_close(struct v9fs_session_info *v9ses)
326 __putname(v9ses->uname); 334 __putname(v9ses->uname);
327 __putname(v9ses->aname); 335 __putname(v9ses->aname);
328 336
337 bdi_destroy(&v9ses->bdi);
338
329 spin_lock(&v9fs_sessionlist_lock); 339 spin_lock(&v9fs_sessionlist_lock);
330 list_del(&v9ses->slist); 340 list_del(&v9ses->slist);
331 spin_unlock(&v9fs_sessionlist_lock); 341 spin_unlock(&v9fs_sessionlist_lock);
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
index a0a8d3dd1361..bec4d0bcb458 100644
--- a/fs/9p/v9fs.h
+++ b/fs/9p/v9fs.h
@@ -20,6 +20,7 @@
20 * Boston, MA 02111-1301 USA 20 * Boston, MA 02111-1301 USA
21 * 21 *
22 */ 22 */
23#include <linux/backing-dev.h>
23 24
24/** 25/**
25 * enum p9_session_flags - option flags for each 9P session 26 * enum p9_session_flags - option flags for each 9P session
@@ -102,6 +103,7 @@ struct v9fs_session_info {
102 u32 uid; /* if ACCESS_SINGLE, the uid that has access */ 103 u32 uid; /* if ACCESS_SINGLE, the uid that has access */
103 struct p9_client *clnt; /* 9p client */ 104 struct p9_client *clnt; /* 9p client */
104 struct list_head slist; /* list of sessions registered with v9fs */ 105 struct list_head slist; /* list of sessions registered with v9fs */
106 struct backing_dev_info bdi;
105}; 107};
106 108
107struct p9_fid *v9fs_session_init(struct v9fs_session_info *, const char *, 109struct p9_fid *v9fs_session_init(struct v9fs_session_info *, const char *,
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 491108bd6e0d..806da5d3b3a0 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -77,6 +77,7 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
77 sb->s_blocksize = 1 << sb->s_blocksize_bits; 77 sb->s_blocksize = 1 << sb->s_blocksize_bits;
78 sb->s_magic = V9FS_MAGIC; 78 sb->s_magic = V9FS_MAGIC;
79 sb->s_op = &v9fs_super_ops; 79 sb->s_op = &v9fs_super_ops;
80 sb->s_bdi = &v9ses->bdi;
80 81
81 sb->s_flags = flags | MS_ACTIVE | MS_SYNCHRONOUS | MS_DIRSYNC | 82 sb->s_flags = flags | MS_ACTIVE | MS_SYNCHRONOUS | MS_DIRSYNC |
82 MS_NOATIME; 83 MS_NOATIME;
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index c54dad4e6063..a10f2582844f 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -19,6 +19,7 @@
19#include <linux/workqueue.h> 19#include <linux/workqueue.h>
20#include <linux/sched.h> 20#include <linux/sched.h>
21#include <linux/fscache.h> 21#include <linux/fscache.h>
22#include <linux/backing-dev.h>
22 23
23#include "afs.h" 24#include "afs.h"
24#include "afs_vl.h" 25#include "afs_vl.h"
@@ -313,6 +314,7 @@ struct afs_volume {
313 unsigned short rjservers; /* number of servers discarded due to -ENOMEDIUM */ 314 unsigned short rjservers; /* number of servers discarded due to -ENOMEDIUM */
314 struct afs_server *servers[8]; /* servers on which volume resides (ordered) */ 315 struct afs_server *servers[8]; /* servers on which volume resides (ordered) */
315 struct rw_semaphore server_sem; /* lock for accessing current server */ 316 struct rw_semaphore server_sem; /* lock for accessing current server */
317 struct backing_dev_info bdi;
316}; 318};
317 319
318/* 320/*
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c
index 5e813a816ce4..b3feddc4f7d6 100644
--- a/fs/afs/mntpt.c
+++ b/fs/afs/mntpt.c
@@ -138,9 +138,9 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
138{ 138{
139 struct afs_super_info *super; 139 struct afs_super_info *super;
140 struct vfsmount *mnt; 140 struct vfsmount *mnt;
141 struct page *page = NULL; 141 struct page *page;
142 size_t size; 142 size_t size;
143 char *buf, *devname = NULL, *options = NULL; 143 char *buf, *devname, *options;
144 int ret; 144 int ret;
145 145
146 _enter("{%s}", mntpt->d_name.name); 146 _enter("{%s}", mntpt->d_name.name);
@@ -150,22 +150,22 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
150 ret = -EINVAL; 150 ret = -EINVAL;
151 size = mntpt->d_inode->i_size; 151 size = mntpt->d_inode->i_size;
152 if (size > PAGE_SIZE - 1) 152 if (size > PAGE_SIZE - 1)
153 goto error; 153 goto error_no_devname;
154 154
155 ret = -ENOMEM; 155 ret = -ENOMEM;
156 devname = (char *) get_zeroed_page(GFP_KERNEL); 156 devname = (char *) get_zeroed_page(GFP_KERNEL);
157 if (!devname) 157 if (!devname)
158 goto error; 158 goto error_no_devname;
159 159
160 options = (char *) get_zeroed_page(GFP_KERNEL); 160 options = (char *) get_zeroed_page(GFP_KERNEL);
161 if (!options) 161 if (!options)
162 goto error; 162 goto error_no_options;
163 163
164 /* read the contents of the AFS special symlink */ 164 /* read the contents of the AFS special symlink */
165 page = read_mapping_page(mntpt->d_inode->i_mapping, 0, NULL); 165 page = read_mapping_page(mntpt->d_inode->i_mapping, 0, NULL);
166 if (IS_ERR(page)) { 166 if (IS_ERR(page)) {
167 ret = PTR_ERR(page); 167 ret = PTR_ERR(page);
168 goto error; 168 goto error_no_page;
169 } 169 }
170 170
171 ret = -EIO; 171 ret = -EIO;
@@ -196,12 +196,12 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
196 return mnt; 196 return mnt;
197 197
198error: 198error:
199 if (page) 199 page_cache_release(page);
200 page_cache_release(page); 200error_no_page:
201 if (devname) 201 free_page((unsigned long) options);
202 free_page((unsigned long) devname); 202error_no_options:
203 if (options) 203 free_page((unsigned long) devname);
204 free_page((unsigned long) options); 204error_no_devname:
205 _leave(" = %d", ret); 205 _leave(" = %d", ret);
206 return ERR_PTR(ret); 206 return ERR_PTR(ret);
207} 207}
diff --git a/fs/afs/super.c b/fs/afs/super.c
index 14f6431598ad..e932e5a3a0c1 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -311,6 +311,7 @@ static int afs_fill_super(struct super_block *sb, void *data)
311 sb->s_magic = AFS_FS_MAGIC; 311 sb->s_magic = AFS_FS_MAGIC;
312 sb->s_op = &afs_super_ops; 312 sb->s_op = &afs_super_ops;
313 sb->s_fs_info = as; 313 sb->s_fs_info = as;
314 sb->s_bdi = &as->volume->bdi;
314 315
315 /* allocate the root inode and dentry */ 316 /* allocate the root inode and dentry */
316 fid.vid = as->volume->vid; 317 fid.vid = as->volume->vid;
diff --git a/fs/afs/volume.c b/fs/afs/volume.c
index a353e69e2391..401eeb21869f 100644
--- a/fs/afs/volume.c
+++ b/fs/afs/volume.c
@@ -106,6 +106,10 @@ struct afs_volume *afs_volume_lookup(struct afs_mount_params *params)
106 volume->cell = params->cell; 106 volume->cell = params->cell;
107 volume->vid = vlocation->vldb.vid[params->type]; 107 volume->vid = vlocation->vldb.vid[params->type];
108 108
109 ret = bdi_setup_and_register(&volume->bdi, "afs", BDI_CAP_MAP_COPY);
110 if (ret)
111 goto error_bdi;
112
109 init_rwsem(&volume->server_sem); 113 init_rwsem(&volume->server_sem);
110 114
111 /* look up all the applicable server records */ 115 /* look up all the applicable server records */
@@ -151,6 +155,8 @@ error:
151 return ERR_PTR(ret); 155 return ERR_PTR(ret);
152 156
153error_discard: 157error_discard:
158 bdi_destroy(&volume->bdi);
159error_bdi:
154 up_write(&params->cell->vl_sem); 160 up_write(&params->cell->vl_sem);
155 161
156 for (loop = volume->nservers - 1; loop >= 0; loop--) 162 for (loop = volume->nservers - 1; loop >= 0; loop--)
@@ -200,6 +206,7 @@ void afs_put_volume(struct afs_volume *volume)
200 for (loop = volume->nservers - 1; loop >= 0; loop--) 206 for (loop = volume->nservers - 1; loop >= 0; loop--)
201 afs_put_server(volume->servers[loop]); 207 afs_put_server(volume->servers[loop]);
202 208
209 bdi_destroy(&volume->bdi);
203 kfree(volume); 210 kfree(volume);
204 211
205 _leave(" [destroyed]"); 212 _leave(" [destroyed]");
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c
index 109a6c606d92..e8e5e63ac950 100644
--- a/fs/autofs4/root.c
+++ b/fs/autofs4/root.c
@@ -177,8 +177,7 @@ static int try_to_fill_dentry(struct dentry *dentry, int flags)
177 } 177 }
178 /* Trigger mount for path component or follow link */ 178 /* Trigger mount for path component or follow link */
179 } else if (ino->flags & AUTOFS_INF_PENDING || 179 } else if (ino->flags & AUTOFS_INF_PENDING ||
180 autofs4_need_mount(flags) || 180 autofs4_need_mount(flags)) {
181 current->link_count) {
182 DPRINTK("waiting for mount name=%.*s", 181 DPRINTK("waiting for mount name=%.*s",
183 dentry->d_name.len, dentry->d_name.name); 182 dentry->d_name.len, dentry->d_name.name);
184 183
@@ -262,7 +261,7 @@ static void *autofs4_follow_link(struct dentry *dentry, struct nameidata *nd)
262 spin_unlock(&dcache_lock); 261 spin_unlock(&dcache_lock);
263 spin_unlock(&sbi->fs_lock); 262 spin_unlock(&sbi->fs_lock);
264 263
265 status = try_to_fill_dentry(dentry, 0); 264 status = try_to_fill_dentry(dentry, nd->flags);
266 if (status) 265 if (status)
267 goto out_error; 266 goto out_error;
268 267
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index 7ab23e006e4c..2c5f9a0e5d72 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1005,15 +1005,8 @@ static int elf_fdpic_map_file_constdisp_on_uclinux(
1005 } 1005 }
1006 } else if (!mm->start_data) { 1006 } else if (!mm->start_data) {
1007 mm->start_data = seg->addr; 1007 mm->start_data = seg->addr;
1008#ifndef CONFIG_MMU
1009 mm->end_data = seg->addr + phdr->p_memsz; 1008 mm->end_data = seg->addr + phdr->p_memsz;
1010#endif
1011 } 1009 }
1012
1013#ifdef CONFIG_MMU
1014 if (seg->addr + phdr->p_memsz > mm->end_data)
1015 mm->end_data = seg->addr + phdr->p_memsz;
1016#endif
1017 } 1010 }
1018 1011
1019 seg++; 1012 seg++;
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
index e0e769bdca59..49566c1687d8 100644
--- a/fs/binfmt_flat.c
+++ b/fs/binfmt_flat.c
@@ -355,7 +355,7 @@ calc_reloc(unsigned long r, struct lib_info *p, int curid, int internalp)
355 355
356 if (!flat_reloc_valid(r, start_brk - start_data + text_len)) { 356 if (!flat_reloc_valid(r, start_brk - start_data + text_len)) {
357 printk("BINFMT_FLAT: reloc outside program 0x%x (0 - 0x%x/0x%x)", 357 printk("BINFMT_FLAT: reloc outside program 0x%x (0 - 0x%x/0x%x)",
358 (int) r,(int)(start_brk-start_code),(int)text_len); 358 (int) r,(int)(start_brk-start_data+text_len),(int)text_len);
359 goto failed; 359 goto failed;
360 } 360 }
361 361
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 2a6d0193f139..6dcee88c2e5d 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -406,16 +406,23 @@ static loff_t block_llseek(struct file *file, loff_t offset, int origin)
406 406
407int blkdev_fsync(struct file *filp, struct dentry *dentry, int datasync) 407int blkdev_fsync(struct file *filp, struct dentry *dentry, int datasync)
408{ 408{
409 struct block_device *bdev = I_BDEV(filp->f_mapping->host); 409 struct inode *bd_inode = filp->f_mapping->host;
410 struct block_device *bdev = I_BDEV(bd_inode);
410 int error; 411 int error;
411 412
412 error = sync_blockdev(bdev); 413 /*
413 if (error) 414 * There is no need to serialise calls to blkdev_issue_flush with
414 return error; 415 * i_mutex and doing so causes performance issues with concurrent
415 416 * O_SYNC writers to a block device.
417 */
418 mutex_unlock(&bd_inode->i_mutex);
419
416 error = blkdev_issue_flush(bdev, NULL); 420 error = blkdev_issue_flush(bdev, NULL);
417 if (error == -EOPNOTSUPP) 421 if (error == -EOPNOTSUPP)
418 error = 0; 422 error = 0;
423
424 mutex_lock(&bd_inode->i_mutex);
425
419 return error; 426 return error;
420} 427}
421EXPORT_SYMBOL(blkdev_fsync); 428EXPORT_SYMBOL(blkdev_fsync);
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index e7b8f2c89ccb..feca04197d02 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -44,8 +44,6 @@ static struct extent_io_ops btree_extent_io_ops;
44static void end_workqueue_fn(struct btrfs_work *work); 44static void end_workqueue_fn(struct btrfs_work *work);
45static void free_fs_root(struct btrfs_root *root); 45static void free_fs_root(struct btrfs_root *root);
46 46
47static atomic_t btrfs_bdi_num = ATOMIC_INIT(0);
48
49/* 47/*
50 * end_io_wq structs are used to do processing in task context when an IO is 48 * end_io_wq structs are used to do processing in task context when an IO is
51 * complete. This is used during reads to verify checksums, and it is used 49 * complete. This is used during reads to verify checksums, and it is used
@@ -1375,19 +1373,11 @@ static int setup_bdi(struct btrfs_fs_info *info, struct backing_dev_info *bdi)
1375{ 1373{
1376 int err; 1374 int err;
1377 1375
1378 bdi->name = "btrfs";
1379 bdi->capabilities = BDI_CAP_MAP_COPY; 1376 bdi->capabilities = BDI_CAP_MAP_COPY;
1380 err = bdi_init(bdi); 1377 err = bdi_setup_and_register(bdi, "btrfs", BDI_CAP_MAP_COPY);
1381 if (err) 1378 if (err)
1382 return err; 1379 return err;
1383 1380
1384 err = bdi_register(bdi, NULL, "btrfs-%d",
1385 atomic_inc_return(&btrfs_bdi_num));
1386 if (err) {
1387 bdi_destroy(bdi);
1388 return err;
1389 }
1390
1391 bdi->ra_pages = default_backing_dev_info.ra_pages; 1381 bdi->ra_pages = default_backing_dev_info.ra_pages;
1392 bdi->unplug_io_fn = btrfs_unplug_io_fn; 1382 bdi->unplug_io_fn = btrfs_unplug_io_fn;
1393 bdi->unplug_io_data = info; 1383 bdi->unplug_io_data = info;
diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
index f7c255f9c624..a8cd821226da 100644
--- a/fs/cachefiles/internal.h
+++ b/fs/cachefiles/internal.h
@@ -34,6 +34,7 @@ struct cachefiles_object {
34 loff_t i_size; /* object size */ 34 loff_t i_size; /* object size */
35 unsigned long flags; 35 unsigned long flags;
36#define CACHEFILES_OBJECT_ACTIVE 0 /* T if marked active */ 36#define CACHEFILES_OBJECT_ACTIVE 0 /* T if marked active */
37#define CACHEFILES_OBJECT_BURIED 1 /* T if preemptively buried */
37 atomic_t usage; /* object usage count */ 38 atomic_t usage; /* object usage count */
38 uint8_t type; /* object type */ 39 uint8_t type; /* object type */
39 uint8_t new; /* T if object new */ 40 uint8_t new; /* T if object new */
diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
index d5db84a1ee0d..f4a7840bf42c 100644
--- a/fs/cachefiles/namei.c
+++ b/fs/cachefiles/namei.c
@@ -93,6 +93,59 @@ static noinline void cachefiles_printk_object(struct cachefiles_object *object,
93} 93}
94 94
95/* 95/*
96 * mark the owner of a dentry, if there is one, to indicate that that dentry
97 * has been preemptively deleted
98 * - the caller must hold the i_mutex on the dentry's parent as required to
99 * call vfs_unlink(), vfs_rmdir() or vfs_rename()
100 */
101static void cachefiles_mark_object_buried(struct cachefiles_cache *cache,
102 struct dentry *dentry)
103{
104 struct cachefiles_object *object;
105 struct rb_node *p;
106
107 _enter(",'%*.*s'",
108 dentry->d_name.len, dentry->d_name.len, dentry->d_name.name);
109
110 write_lock(&cache->active_lock);
111
112 p = cache->active_nodes.rb_node;
113 while (p) {
114 object = rb_entry(p, struct cachefiles_object, active_node);
115 if (object->dentry > dentry)
116 p = p->rb_left;
117 else if (object->dentry < dentry)
118 p = p->rb_right;
119 else
120 goto found_dentry;
121 }
122
123 write_unlock(&cache->active_lock);
124 _leave(" [no owner]");
125 return;
126
127 /* found the dentry for */
128found_dentry:
129 kdebug("preemptive burial: OBJ%x [%s] %p",
130 object->fscache.debug_id,
131 fscache_object_states[object->fscache.state],
132 dentry);
133
134 if (object->fscache.state < FSCACHE_OBJECT_DYING) {
135 printk(KERN_ERR "\n");
136 printk(KERN_ERR "CacheFiles: Error:"
137 " Can't preemptively bury live object\n");
138 cachefiles_printk_object(object, NULL);
139 } else if (test_and_set_bit(CACHEFILES_OBJECT_BURIED, &object->flags)) {
140 printk(KERN_ERR "CacheFiles: Error:"
141 " Object already preemptively buried\n");
142 }
143
144 write_unlock(&cache->active_lock);
145 _leave(" [owner marked]");
146}
147
148/*
96 * record the fact that an object is now active 149 * record the fact that an object is now active
97 */ 150 */
98static int cachefiles_mark_object_active(struct cachefiles_cache *cache, 151static int cachefiles_mark_object_active(struct cachefiles_cache *cache,
@@ -219,7 +272,8 @@ requeue:
219 */ 272 */
220static int cachefiles_bury_object(struct cachefiles_cache *cache, 273static int cachefiles_bury_object(struct cachefiles_cache *cache,
221 struct dentry *dir, 274 struct dentry *dir,
222 struct dentry *rep) 275 struct dentry *rep,
276 bool preemptive)
223{ 277{
224 struct dentry *grave, *trap; 278 struct dentry *grave, *trap;
225 char nbuffer[8 + 8 + 1]; 279 char nbuffer[8 + 8 + 1];
@@ -229,11 +283,16 @@ static int cachefiles_bury_object(struct cachefiles_cache *cache,
229 dir->d_name.len, dir->d_name.len, dir->d_name.name, 283 dir->d_name.len, dir->d_name.len, dir->d_name.name,
230 rep->d_name.len, rep->d_name.len, rep->d_name.name); 284 rep->d_name.len, rep->d_name.len, rep->d_name.name);
231 285
286 _debug("remove %p from %p", rep, dir);
287
232 /* non-directories can just be unlinked */ 288 /* non-directories can just be unlinked */
233 if (!S_ISDIR(rep->d_inode->i_mode)) { 289 if (!S_ISDIR(rep->d_inode->i_mode)) {
234 _debug("unlink stale object"); 290 _debug("unlink stale object");
235 ret = vfs_unlink(dir->d_inode, rep); 291 ret = vfs_unlink(dir->d_inode, rep);
236 292
293 if (preemptive)
294 cachefiles_mark_object_buried(cache, rep);
295
237 mutex_unlock(&dir->d_inode->i_mutex); 296 mutex_unlock(&dir->d_inode->i_mutex);
238 297
239 if (ret == -EIO) 298 if (ret == -EIO)
@@ -325,6 +384,9 @@ try_again:
325 if (ret != 0 && ret != -ENOMEM) 384 if (ret != 0 && ret != -ENOMEM)
326 cachefiles_io_error(cache, "Rename failed with error %d", ret); 385 cachefiles_io_error(cache, "Rename failed with error %d", ret);
327 386
387 if (preemptive)
388 cachefiles_mark_object_buried(cache, rep);
389
328 unlock_rename(cache->graveyard, dir); 390 unlock_rename(cache->graveyard, dir);
329 dput(grave); 391 dput(grave);
330 _leave(" = 0"); 392 _leave(" = 0");
@@ -340,7 +402,7 @@ int cachefiles_delete_object(struct cachefiles_cache *cache,
340 struct dentry *dir; 402 struct dentry *dir;
341 int ret; 403 int ret;
342 404
343 _enter(",{%p}", object->dentry); 405 _enter(",OBJ%x{%p}", object->fscache.debug_id, object->dentry);
344 406
345 ASSERT(object->dentry); 407 ASSERT(object->dentry);
346 ASSERT(object->dentry->d_inode); 408 ASSERT(object->dentry->d_inode);
@@ -350,15 +412,25 @@ int cachefiles_delete_object(struct cachefiles_cache *cache,
350 412
351 mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT); 413 mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT);
352 414
353 /* we need to check that our parent is _still_ our parent - it may have 415 if (test_bit(CACHEFILES_OBJECT_BURIED, &object->flags)) {
354 * been renamed */ 416 /* object allocation for the same key preemptively deleted this
355 if (dir == object->dentry->d_parent) { 417 * object's file so that it could create its own file */
356 ret = cachefiles_bury_object(cache, dir, object->dentry); 418 _debug("object preemptively buried");
357 } else {
358 /* it got moved, presumably by cachefilesd culling it, so it's
359 * no longer in the key path and we can ignore it */
360 mutex_unlock(&dir->d_inode->i_mutex); 419 mutex_unlock(&dir->d_inode->i_mutex);
361 ret = 0; 420 ret = 0;
421 } else {
422 /* we need to check that our parent is _still_ our parent - it
423 * may have been renamed */
424 if (dir == object->dentry->d_parent) {
425 ret = cachefiles_bury_object(cache, dir,
426 object->dentry, false);
427 } else {
428 /* it got moved, presumably by cachefilesd culling it,
429 * so it's no longer in the key path and we can ignore
430 * it */
431 mutex_unlock(&dir->d_inode->i_mutex);
432 ret = 0;
433 }
362 } 434 }
363 435
364 dput(dir); 436 dput(dir);
@@ -381,7 +453,9 @@ int cachefiles_walk_to_object(struct cachefiles_object *parent,
381 const char *name; 453 const char *name;
382 int ret, nlen; 454 int ret, nlen;
383 455
384 _enter("{%p},,%s,", parent->dentry, key); 456 _enter("OBJ%x{%p},OBJ%x,%s,",
457 parent->fscache.debug_id, parent->dentry,
458 object->fscache.debug_id, key);
385 459
386 cache = container_of(parent->fscache.cache, 460 cache = container_of(parent->fscache.cache,
387 struct cachefiles_cache, cache); 461 struct cachefiles_cache, cache);
@@ -509,7 +583,7 @@ lookup_again:
509 * mutex) */ 583 * mutex) */
510 object->dentry = NULL; 584 object->dentry = NULL;
511 585
512 ret = cachefiles_bury_object(cache, dir, next); 586 ret = cachefiles_bury_object(cache, dir, next, true);
513 dput(next); 587 dput(next);
514 next = NULL; 588 next = NULL;
515 589
@@ -828,7 +902,7 @@ int cachefiles_cull(struct cachefiles_cache *cache, struct dentry *dir,
828 /* actually remove the victim (drops the dir mutex) */ 902 /* actually remove the victim (drops the dir mutex) */
829 _debug("bury"); 903 _debug("bury");
830 904
831 ret = cachefiles_bury_object(cache, dir, victim); 905 ret = cachefiles_bury_object(cache, dir, victim, false);
832 if (ret < 0) 906 if (ret < 0)
833 goto error; 907 goto error;
834 908
diff --git a/fs/cachefiles/security.c b/fs/cachefiles/security.c
index b5808cdb2232..039b5011d83b 100644
--- a/fs/cachefiles/security.c
+++ b/fs/cachefiles/security.c
@@ -77,6 +77,8 @@ static int cachefiles_check_cache_dir(struct cachefiles_cache *cache,
77/* 77/*
78 * check the security details of the on-disk cache 78 * check the security details of the on-disk cache
79 * - must be called with security override in force 79 * - must be called with security override in force
80 * - must return with a security override in force - even in the case of an
81 * error
80 */ 82 */
81int cachefiles_determine_cache_security(struct cachefiles_cache *cache, 83int cachefiles_determine_cache_security(struct cachefiles_cache *cache,
82 struct dentry *root, 84 struct dentry *root,
@@ -99,6 +101,8 @@ int cachefiles_determine_cache_security(struct cachefiles_cache *cache,
99 * which create files */ 101 * which create files */
100 ret = set_create_files_as(new, root->d_inode); 102 ret = set_create_files_as(new, root->d_inode);
101 if (ret < 0) { 103 if (ret < 0) {
104 abort_creds(new);
105 cachefiles_begin_secure(cache, _saved_cred);
102 _leave(" = %d [cfa]", ret); 106 _leave(" = %d [cfa]", ret);
103 return ret; 107 return ret;
104 } 108 }
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index 412593703d1e..a9005d862ed4 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -504,12 +504,11 @@ static void writepages_finish(struct ceph_osd_request *req,
504 int i; 504 int i;
505 struct ceph_snap_context *snapc = req->r_snapc; 505 struct ceph_snap_context *snapc = req->r_snapc;
506 struct address_space *mapping = inode->i_mapping; 506 struct address_space *mapping = inode->i_mapping;
507 struct writeback_control *wbc = req->r_wbc;
508 __s32 rc = -EIO; 507 __s32 rc = -EIO;
509 u64 bytes = 0; 508 u64 bytes = 0;
510 struct ceph_client *client = ceph_inode_to_client(inode); 509 struct ceph_client *client = ceph_inode_to_client(inode);
511 long writeback_stat; 510 long writeback_stat;
512 unsigned issued = __ceph_caps_issued(ci, NULL); 511 unsigned issued = ceph_caps_issued(ci);
513 512
514 /* parse reply */ 513 /* parse reply */
515 replyhead = msg->front.iov_base; 514 replyhead = msg->front.iov_base;
@@ -546,10 +545,6 @@ static void writepages_finish(struct ceph_osd_request *req,
546 clear_bdi_congested(&client->backing_dev_info, 545 clear_bdi_congested(&client->backing_dev_info,
547 BLK_RW_ASYNC); 546 BLK_RW_ASYNC);
548 547
549 if (i >= wrote) {
550 dout("inode %p skipping page %p\n", inode, page);
551 wbc->pages_skipped++;
552 }
553 ceph_put_snap_context((void *)page->private); 548 ceph_put_snap_context((void *)page->private);
554 page->private = 0; 549 page->private = 0;
555 ClearPagePrivate(page); 550 ClearPagePrivate(page);
@@ -799,7 +794,6 @@ get_more_pages:
799 alloc_page_vec(client, req); 794 alloc_page_vec(client, req);
800 req->r_callback = writepages_finish; 795 req->r_callback = writepages_finish;
801 req->r_inode = inode; 796 req->r_inode = inode;
802 req->r_wbc = wbc;
803 } 797 }
804 798
805 /* note position of first page in pvec */ 799 /* note position of first page in pvec */
diff --git a/fs/ceph/auth.c b/fs/ceph/auth.c
index f6394b94b866..818afe72e6c7 100644
--- a/fs/ceph/auth.c
+++ b/fs/ceph/auth.c
@@ -3,6 +3,7 @@
3#include <linux/module.h> 3#include <linux/module.h>
4#include <linux/slab.h> 4#include <linux/slab.h>
5#include <linux/err.h> 5#include <linux/err.h>
6#include <linux/slab.h>
6 7
7#include "types.h" 8#include "types.h"
8#include "auth_none.h" 9#include "auth_none.h"
diff --git a/fs/ceph/auth_none.h b/fs/ceph/auth_none.h
index 56c05533a31c..8164df1a08be 100644
--- a/fs/ceph/auth_none.h
+++ b/fs/ceph/auth_none.h
@@ -1,6 +1,8 @@
1#ifndef _FS_CEPH_AUTH_NONE_H 1#ifndef _FS_CEPH_AUTH_NONE_H
2#define _FS_CEPH_AUTH_NONE_H 2#define _FS_CEPH_AUTH_NONE_H
3 3
4#include <linux/slab.h>
5
4#include "auth.h" 6#include "auth.h"
5 7
6/* 8/*
diff --git a/fs/ceph/auth_x.c b/fs/ceph/auth_x.c
index d9001a4dc8cc..fee5a08da881 100644
--- a/fs/ceph/auth_x.c
+++ b/fs/ceph/auth_x.c
@@ -12,8 +12,6 @@
12#include "auth.h" 12#include "auth.h"
13#include "decode.h" 13#include "decode.h"
14 14
15struct kmem_cache *ceph_x_ticketbuf_cachep;
16
17#define TEMP_TICKET_BUF_LEN 256 15#define TEMP_TICKET_BUF_LEN 256
18 16
19static void ceph_x_validate_tickets(struct ceph_auth_client *ac, int *pneed); 17static void ceph_x_validate_tickets(struct ceph_auth_client *ac, int *pneed);
@@ -131,13 +129,12 @@ static int ceph_x_proc_ticket_reply(struct ceph_auth_client *ac,
131 char *ticket_buf; 129 char *ticket_buf;
132 u8 struct_v; 130 u8 struct_v;
133 131
134 dbuf = kmem_cache_alloc(ceph_x_ticketbuf_cachep, GFP_NOFS | GFP_ATOMIC); 132 dbuf = kmalloc(TEMP_TICKET_BUF_LEN, GFP_NOFS);
135 if (!dbuf) 133 if (!dbuf)
136 return -ENOMEM; 134 return -ENOMEM;
137 135
138 ret = -ENOMEM; 136 ret = -ENOMEM;
139 ticket_buf = kmem_cache_alloc(ceph_x_ticketbuf_cachep, 137 ticket_buf = kmalloc(TEMP_TICKET_BUF_LEN, GFP_NOFS);
140 GFP_NOFS | GFP_ATOMIC);
141 if (!ticket_buf) 138 if (!ticket_buf)
142 goto out_dbuf; 139 goto out_dbuf;
143 140
@@ -251,9 +248,9 @@ static int ceph_x_proc_ticket_reply(struct ceph_auth_client *ac,
251 248
252 ret = 0; 249 ret = 0;
253out: 250out:
254 kmem_cache_free(ceph_x_ticketbuf_cachep, ticket_buf); 251 kfree(ticket_buf);
255out_dbuf: 252out_dbuf:
256 kmem_cache_free(ceph_x_ticketbuf_cachep, dbuf); 253 kfree(dbuf);
257 return ret; 254 return ret;
258 255
259bad: 256bad:
@@ -605,8 +602,6 @@ static void ceph_x_destroy(struct ceph_auth_client *ac)
605 remove_ticket_handler(ac, th); 602 remove_ticket_handler(ac, th);
606 } 603 }
607 604
608 kmem_cache_destroy(ceph_x_ticketbuf_cachep);
609
610 kfree(ac->private); 605 kfree(ac->private);
611 ac->private = NULL; 606 ac->private = NULL;
612} 607}
@@ -641,26 +636,20 @@ int ceph_x_init(struct ceph_auth_client *ac)
641 int ret; 636 int ret;
642 637
643 dout("ceph_x_init %p\n", ac); 638 dout("ceph_x_init %p\n", ac);
639 ret = -ENOMEM;
644 xi = kzalloc(sizeof(*xi), GFP_NOFS); 640 xi = kzalloc(sizeof(*xi), GFP_NOFS);
645 if (!xi) 641 if (!xi)
646 return -ENOMEM; 642 goto out;
647 643
648 ret = -ENOMEM;
649 ceph_x_ticketbuf_cachep = kmem_cache_create("ceph_x_ticketbuf",
650 TEMP_TICKET_BUF_LEN, 8,
651 (SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD),
652 NULL);
653 if (!ceph_x_ticketbuf_cachep)
654 goto done_nomem;
655 ret = -EINVAL; 644 ret = -EINVAL;
656 if (!ac->secret) { 645 if (!ac->secret) {
657 pr_err("no secret set (for auth_x protocol)\n"); 646 pr_err("no secret set (for auth_x protocol)\n");
658 goto done_nomem; 647 goto out_nomem;
659 } 648 }
660 649
661 ret = ceph_crypto_key_unarmor(&xi->secret, ac->secret); 650 ret = ceph_crypto_key_unarmor(&xi->secret, ac->secret);
662 if (ret) 651 if (ret)
663 goto done_nomem; 652 goto out_nomem;
664 653
665 xi->starting = true; 654 xi->starting = true;
666 xi->ticket_handlers = RB_ROOT; 655 xi->ticket_handlers = RB_ROOT;
@@ -670,10 +659,9 @@ int ceph_x_init(struct ceph_auth_client *ac)
670 ac->ops = &ceph_x_ops; 659 ac->ops = &ceph_x_ops;
671 return 0; 660 return 0;
672 661
673done_nomem: 662out_nomem:
674 kfree(xi); 663 kfree(xi);
675 if (ceph_x_ticketbuf_cachep) 664out:
676 kmem_cache_destroy(ceph_x_ticketbuf_cachep);
677 return ret; 665 return ret;
678} 666}
679 667
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index aa2239fa9a3b..d9400534b279 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -858,6 +858,8 @@ static int __ceph_is_any_caps(struct ceph_inode_info *ci)
858} 858}
859 859
860/* 860/*
861 * Remove a cap. Take steps to deal with a racing iterate_session_caps.
862 *
861 * caller should hold i_lock. 863 * caller should hold i_lock.
862 * caller will not hold session s_mutex if called from destroy_inode. 864 * caller will not hold session s_mutex if called from destroy_inode.
863 */ 865 */
@@ -866,15 +868,10 @@ void __ceph_remove_cap(struct ceph_cap *cap)
866 struct ceph_mds_session *session = cap->session; 868 struct ceph_mds_session *session = cap->session;
867 struct ceph_inode_info *ci = cap->ci; 869 struct ceph_inode_info *ci = cap->ci;
868 struct ceph_mds_client *mdsc = &ceph_client(ci->vfs_inode.i_sb)->mdsc; 870 struct ceph_mds_client *mdsc = &ceph_client(ci->vfs_inode.i_sb)->mdsc;
871 int removed = 0;
869 872
870 dout("__ceph_remove_cap %p from %p\n", cap, &ci->vfs_inode); 873 dout("__ceph_remove_cap %p from %p\n", cap, &ci->vfs_inode);
871 874
872 /* remove from inode list */
873 rb_erase(&cap->ci_node, &ci->i_caps);
874 cap->ci = NULL;
875 if (ci->i_auth_cap == cap)
876 ci->i_auth_cap = NULL;
877
878 /* remove from session list */ 875 /* remove from session list */
879 spin_lock(&session->s_cap_lock); 876 spin_lock(&session->s_cap_lock);
880 if (session->s_cap_iterator == cap) { 877 if (session->s_cap_iterator == cap) {
@@ -885,10 +882,18 @@ void __ceph_remove_cap(struct ceph_cap *cap)
885 list_del_init(&cap->session_caps); 882 list_del_init(&cap->session_caps);
886 session->s_nr_caps--; 883 session->s_nr_caps--;
887 cap->session = NULL; 884 cap->session = NULL;
885 removed = 1;
888 } 886 }
887 /* protect backpointer with s_cap_lock: see iterate_session_caps */
888 cap->ci = NULL;
889 spin_unlock(&session->s_cap_lock); 889 spin_unlock(&session->s_cap_lock);
890 890
891 if (cap->session == NULL) 891 /* remove from inode list */
892 rb_erase(&cap->ci_node, &ci->i_caps);
893 if (ci->i_auth_cap == cap)
894 ci->i_auth_cap = NULL;
895
896 if (removed)
892 ceph_put_cap(cap); 897 ceph_put_cap(cap);
893 898
894 if (!__ceph_is_any_caps(ci) && ci->i_snap_realm) { 899 if (!__ceph_is_any_caps(ci) && ci->i_snap_realm) {
@@ -1861,8 +1866,8 @@ static void kick_flushing_capsnaps(struct ceph_mds_client *mdsc,
1861 } else { 1866 } else {
1862 pr_err("%p auth cap %p not mds%d ???\n", inode, 1867 pr_err("%p auth cap %p not mds%d ???\n", inode,
1863 cap, session->s_mds); 1868 cap, session->s_mds);
1864 spin_unlock(&inode->i_lock);
1865 } 1869 }
1870 spin_unlock(&inode->i_lock);
1866 } 1871 }
1867} 1872}
1868 1873
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
index ea8ee2e526aa..650d2db5ed26 100644
--- a/fs/ceph/dir.c
+++ b/fs/ceph/dir.c
@@ -880,7 +880,16 @@ static int ceph_rename(struct inode *old_dir, struct dentry *old_dentry,
880 * do_request, above). If there is no trace, we need 880 * do_request, above). If there is no trace, we need
881 * to do it here. 881 * to do it here.
882 */ 882 */
883
884 /* d_move screws up d_subdirs order */
885 ceph_i_clear(new_dir, CEPH_I_COMPLETE);
886
883 d_move(old_dentry, new_dentry); 887 d_move(old_dentry, new_dentry);
888
889 /* ensure target dentry is invalidated, despite
890 rehashing bug in vfs_rename_dir */
891 new_dentry->d_time = jiffies;
892 ceph_dentry(new_dentry)->lease_shared_gen = 0;
884 } 893 }
885 ceph_mdsc_put_request(req); 894 ceph_mdsc_put_request(req);
886 return err; 895 return err;
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 4add3d5da2c1..ed6f19721d6e 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -665,7 +665,8 @@ more:
665 * throw out any page cache pages in this range. this 665 * throw out any page cache pages in this range. this
666 * may block. 666 * may block.
667 */ 667 */
668 truncate_inode_pages_range(inode->i_mapping, pos, pos+len); 668 truncate_inode_pages_range(inode->i_mapping, pos,
669 (pos+len) | (PAGE_CACHE_SIZE-1));
669 } else { 670 } else {
670 pages = alloc_page_vector(num_pages); 671 pages = alloc_page_vector(num_pages);
671 if (IS_ERR(pages)) { 672 if (IS_ERR(pages)) {
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index 26f883c275e8..85b4d2ffdeba 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -733,6 +733,10 @@ no_change:
733 __ceph_get_fmode(ci, cap_fmode); 733 __ceph_get_fmode(ci, cap_fmode);
734 spin_unlock(&inode->i_lock); 734 spin_unlock(&inode->i_lock);
735 } 735 }
736 } else if (cap_fmode >= 0) {
737 pr_warning("mds issued no caps on %llx.%llx\n",
738 ceph_vinop(inode));
739 __ceph_get_fmode(ci, cap_fmode);
736 } 740 }
737 741
738 /* update delegation info? */ 742 /* update delegation info? */
@@ -997,6 +1001,10 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req,
997 dn, dn->d_name.len, dn->d_name.name); 1001 dn, dn->d_name.len, dn->d_name.name);
998 dout("fill_trace doing d_move %p -> %p\n", 1002 dout("fill_trace doing d_move %p -> %p\n",
999 req->r_old_dentry, dn); 1003 req->r_old_dentry, dn);
1004
1005 /* d_move screws up d_subdirs order */
1006 ceph_i_clear(dir, CEPH_I_COMPLETE);
1007
1000 d_move(req->r_old_dentry, dn); 1008 d_move(req->r_old_dentry, dn);
1001 dout(" src %p '%.*s' dst %p '%.*s'\n", 1009 dout(" src %p '%.*s' dst %p '%.*s'\n",
1002 req->r_old_dentry, 1010 req->r_old_dentry,
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 60a9a4ae47be..24561a557e01 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -736,9 +736,10 @@ static void cleanup_cap_releases(struct ceph_mds_session *session)
736} 736}
737 737
738/* 738/*
739 * Helper to safely iterate over all caps associated with a session. 739 * Helper to safely iterate over all caps associated with a session, with
740 * special care taken to handle a racing __ceph_remove_cap().
740 * 741 *
741 * caller must hold session s_mutex 742 * Caller must hold session s_mutex.
742 */ 743 */
743static int iterate_session_caps(struct ceph_mds_session *session, 744static int iterate_session_caps(struct ceph_mds_session *session,
744 int (*cb)(struct inode *, struct ceph_cap *, 745 int (*cb)(struct inode *, struct ceph_cap *,
@@ -2136,7 +2137,7 @@ static void send_mds_reconnect(struct ceph_mds_client *mdsc, int mds)
2136 struct ceph_mds_session *session = NULL; 2137 struct ceph_mds_session *session = NULL;
2137 struct ceph_msg *reply; 2138 struct ceph_msg *reply;
2138 struct rb_node *p; 2139 struct rb_node *p;
2139 int err; 2140 int err = -ENOMEM;
2140 struct ceph_pagelist *pagelist; 2141 struct ceph_pagelist *pagelist;
2141 2142
2142 pr_info("reconnect to recovering mds%d\n", mds); 2143 pr_info("reconnect to recovering mds%d\n", mds);
@@ -2185,7 +2186,7 @@ static void send_mds_reconnect(struct ceph_mds_client *mdsc, int mds)
2185 goto fail; 2186 goto fail;
2186 err = iterate_session_caps(session, encode_caps_cb, pagelist); 2187 err = iterate_session_caps(session, encode_caps_cb, pagelist);
2187 if (err < 0) 2188 if (err < 0)
2188 goto out; 2189 goto fail;
2189 2190
2190 /* 2191 /*
2191 * snaprealms. we provide mds with the ino, seq (version), and 2192 * snaprealms. we provide mds with the ino, seq (version), and
@@ -2213,28 +2214,31 @@ send:
2213 reply->nr_pages = calc_pages_for(0, pagelist->length); 2214 reply->nr_pages = calc_pages_for(0, pagelist->length);
2214 ceph_con_send(&session->s_con, reply); 2215 ceph_con_send(&session->s_con, reply);
2215 2216
2216 if (session) { 2217 session->s_state = CEPH_MDS_SESSION_OPEN;
2217 session->s_state = CEPH_MDS_SESSION_OPEN; 2218 mutex_unlock(&session->s_mutex);
2218 __wake_requests(mdsc, &session->s_waiting); 2219
2219 } 2220 mutex_lock(&mdsc->mutex);
2221 __wake_requests(mdsc, &session->s_waiting);
2222 mutex_unlock(&mdsc->mutex);
2223
2224 ceph_put_mds_session(session);
2220 2225
2221out:
2222 up_read(&mdsc->snap_rwsem); 2226 up_read(&mdsc->snap_rwsem);
2223 if (session) {
2224 mutex_unlock(&session->s_mutex);
2225 ceph_put_mds_session(session);
2226 }
2227 mutex_lock(&mdsc->mutex); 2227 mutex_lock(&mdsc->mutex);
2228 return; 2228 return;
2229 2229
2230fail: 2230fail:
2231 ceph_msg_put(reply); 2231 ceph_msg_put(reply);
2232 up_read(&mdsc->snap_rwsem);
2233 mutex_unlock(&session->s_mutex);
2234 ceph_put_mds_session(session);
2232fail_nomsg: 2235fail_nomsg:
2233 ceph_pagelist_release(pagelist); 2236 ceph_pagelist_release(pagelist);
2234 kfree(pagelist); 2237 kfree(pagelist);
2235fail_nopagelist: 2238fail_nopagelist:
2236 pr_err("ENOMEM preparing reconnect for mds%d\n", mds); 2239 pr_err("error %d preparing reconnect for mds%d\n", err, mds);
2237 goto out; 2240 mutex_lock(&mdsc->mutex);
2241 return;
2238} 2242}
2239 2243
2240 2244
diff --git a/fs/ceph/messenger.c b/fs/ceph/messenger.c
index cdaaa131add3..cd4fadb6491a 100644
--- a/fs/ceph/messenger.c
+++ b/fs/ceph/messenger.c
@@ -492,7 +492,14 @@ static void prepare_write_message(struct ceph_connection *con)
492 list_move_tail(&m->list_head, &con->out_sent); 492 list_move_tail(&m->list_head, &con->out_sent);
493 } 493 }
494 494
495 m->hdr.seq = cpu_to_le64(++con->out_seq); 495 /*
496 * only assign outgoing seq # if we haven't sent this message
497 * yet. if it is requeued, resend with it's original seq.
498 */
499 if (m->needs_out_seq) {
500 m->hdr.seq = cpu_to_le64(++con->out_seq);
501 m->needs_out_seq = false;
502 }
496 503
497 dout("prepare_write_message %p seq %lld type %d len %d+%d+%d %d pgs\n", 504 dout("prepare_write_message %p seq %lld type %d len %d+%d+%d %d pgs\n",
498 m, con->out_seq, le16_to_cpu(m->hdr.type), 505 m, con->out_seq, le16_to_cpu(m->hdr.type),
@@ -1334,6 +1341,7 @@ static int read_partial_message(struct ceph_connection *con)
1334 unsigned front_len, middle_len, data_len, data_off; 1341 unsigned front_len, middle_len, data_len, data_off;
1335 int datacrc = con->msgr->nocrc; 1342 int datacrc = con->msgr->nocrc;
1336 int skip; 1343 int skip;
1344 u64 seq;
1337 1345
1338 dout("read_partial_message con %p msg %p\n", con, m); 1346 dout("read_partial_message con %p msg %p\n", con, m);
1339 1347
@@ -1368,6 +1376,25 @@ static int read_partial_message(struct ceph_connection *con)
1368 return -EIO; 1376 return -EIO;
1369 data_off = le16_to_cpu(con->in_hdr.data_off); 1377 data_off = le16_to_cpu(con->in_hdr.data_off);
1370 1378
1379 /* verify seq# */
1380 seq = le64_to_cpu(con->in_hdr.seq);
1381 if ((s64)seq - (s64)con->in_seq < 1) {
1382 pr_info("skipping %s%lld %s seq %lld, expected %lld\n",
1383 ENTITY_NAME(con->peer_name),
1384 pr_addr(&con->peer_addr.in_addr),
1385 seq, con->in_seq + 1);
1386 con->in_base_pos = -front_len - middle_len - data_len -
1387 sizeof(m->footer);
1388 con->in_tag = CEPH_MSGR_TAG_READY;
1389 con->in_seq++;
1390 return 0;
1391 } else if ((s64)seq - (s64)con->in_seq > 1) {
1392 pr_err("read_partial_message bad seq %lld expected %lld\n",
1393 seq, con->in_seq + 1);
1394 con->error_msg = "bad message sequence # for incoming message";
1395 return -EBADMSG;
1396 }
1397
1371 /* allocate message? */ 1398 /* allocate message? */
1372 if (!con->in_msg) { 1399 if (!con->in_msg) {
1373 dout("got hdr type %d front %d data %d\n", con->in_hdr.type, 1400 dout("got hdr type %d front %d data %d\n", con->in_hdr.type,
@@ -1379,6 +1406,7 @@ static int read_partial_message(struct ceph_connection *con)
1379 con->in_base_pos = -front_len - middle_len - data_len - 1406 con->in_base_pos = -front_len - middle_len - data_len -
1380 sizeof(m->footer); 1407 sizeof(m->footer);
1381 con->in_tag = CEPH_MSGR_TAG_READY; 1408 con->in_tag = CEPH_MSGR_TAG_READY;
1409 con->in_seq++;
1382 return 0; 1410 return 0;
1383 } 1411 }
1384 if (IS_ERR(con->in_msg)) { 1412 if (IS_ERR(con->in_msg)) {
@@ -1965,6 +1993,8 @@ void ceph_con_send(struct ceph_connection *con, struct ceph_msg *msg)
1965 1993
1966 BUG_ON(msg->front.iov_len != le32_to_cpu(msg->hdr.front_len)); 1994 BUG_ON(msg->front.iov_len != le32_to_cpu(msg->hdr.front_len));
1967 1995
1996 msg->needs_out_seq = true;
1997
1968 /* queue */ 1998 /* queue */
1969 mutex_lock(&con->mutex); 1999 mutex_lock(&con->mutex);
1970 BUG_ON(!list_empty(&msg->list_head)); 2000 BUG_ON(!list_empty(&msg->list_head));
@@ -2030,6 +2060,7 @@ void ceph_con_revoke_message(struct ceph_connection *con, struct ceph_msg *msg)
2030 ceph_msg_put(con->in_msg); 2060 ceph_msg_put(con->in_msg);
2031 con->in_msg = NULL; 2061 con->in_msg = NULL;
2032 con->in_tag = CEPH_MSGR_TAG_READY; 2062 con->in_tag = CEPH_MSGR_TAG_READY;
2063 con->in_seq++;
2033 } else { 2064 } else {
2034 dout("con_revoke_pages %p msg %p pages %p no-op\n", 2065 dout("con_revoke_pages %p msg %p pages %p no-op\n",
2035 con, con->in_msg, msg); 2066 con, con->in_msg, msg);
@@ -2063,15 +2094,19 @@ struct ceph_msg *ceph_msg_new(int type, int front_len,
2063 kref_init(&m->kref); 2094 kref_init(&m->kref);
2064 INIT_LIST_HEAD(&m->list_head); 2095 INIT_LIST_HEAD(&m->list_head);
2065 2096
2097 m->hdr.tid = 0;
2066 m->hdr.type = cpu_to_le16(type); 2098 m->hdr.type = cpu_to_le16(type);
2099 m->hdr.priority = cpu_to_le16(CEPH_MSG_PRIO_DEFAULT);
2100 m->hdr.version = 0;
2067 m->hdr.front_len = cpu_to_le32(front_len); 2101 m->hdr.front_len = cpu_to_le32(front_len);
2068 m->hdr.middle_len = 0; 2102 m->hdr.middle_len = 0;
2069 m->hdr.data_len = cpu_to_le32(page_len); 2103 m->hdr.data_len = cpu_to_le32(page_len);
2070 m->hdr.data_off = cpu_to_le16(page_off); 2104 m->hdr.data_off = cpu_to_le16(page_off);
2071 m->hdr.priority = cpu_to_le16(CEPH_MSG_PRIO_DEFAULT); 2105 m->hdr.reserved = 0;
2072 m->footer.front_crc = 0; 2106 m->footer.front_crc = 0;
2073 m->footer.middle_crc = 0; 2107 m->footer.middle_crc = 0;
2074 m->footer.data_crc = 0; 2108 m->footer.data_crc = 0;
2109 m->footer.flags = 0;
2075 m->front_max = front_len; 2110 m->front_max = front_len;
2076 m->front_is_vmalloc = false; 2111 m->front_is_vmalloc = false;
2077 m->more_to_follow = false; 2112 m->more_to_follow = false;
diff --git a/fs/ceph/messenger.h b/fs/ceph/messenger.h
index a343dae73cdc..a5caf91cc971 100644
--- a/fs/ceph/messenger.h
+++ b/fs/ceph/messenger.h
@@ -86,6 +86,7 @@ struct ceph_msg {
86 struct kref kref; 86 struct kref kref;
87 bool front_is_vmalloc; 87 bool front_is_vmalloc;
88 bool more_to_follow; 88 bool more_to_follow;
89 bool needs_out_seq;
89 int front_max; 90 int front_max;
90 91
91 struct ceph_msgpool *pool; 92 struct ceph_msgpool *pool;
diff --git a/fs/ceph/osd_client.c b/fs/ceph/osd_client.c
index c7b4dedaace6..3514f71ff85f 100644
--- a/fs/ceph/osd_client.c
+++ b/fs/ceph/osd_client.c
@@ -565,7 +565,8 @@ static int __map_osds(struct ceph_osd_client *osdc,
565{ 565{
566 struct ceph_osd_request_head *reqhead = req->r_request->front.iov_base; 566 struct ceph_osd_request_head *reqhead = req->r_request->front.iov_base;
567 struct ceph_pg pgid; 567 struct ceph_pg pgid;
568 int o = -1; 568 int acting[CEPH_PG_MAX_SIZE];
569 int o = -1, num = 0;
569 int err; 570 int err;
570 571
571 dout("map_osds %p tid %lld\n", req, req->r_tid); 572 dout("map_osds %p tid %lld\n", req, req->r_tid);
@@ -576,10 +577,16 @@ static int __map_osds(struct ceph_osd_client *osdc,
576 pgid = reqhead->layout.ol_pgid; 577 pgid = reqhead->layout.ol_pgid;
577 req->r_pgid = pgid; 578 req->r_pgid = pgid;
578 579
579 o = ceph_calc_pg_primary(osdc->osdmap, pgid); 580 err = ceph_calc_pg_acting(osdc->osdmap, pgid, acting);
581 if (err > 0) {
582 o = acting[0];
583 num = err;
584 }
580 585
581 if ((req->r_osd && req->r_osd->o_osd == o && 586 if ((req->r_osd && req->r_osd->o_osd == o &&
582 req->r_sent >= req->r_osd->o_incarnation) || 587 req->r_sent >= req->r_osd->o_incarnation &&
588 req->r_num_pg_osds == num &&
589 memcmp(req->r_pg_osds, acting, sizeof(acting[0])*num) == 0) ||
583 (req->r_osd == NULL && o == -1)) 590 (req->r_osd == NULL && o == -1))
584 return 0; /* no change */ 591 return 0; /* no change */
585 592
@@ -587,6 +594,10 @@ static int __map_osds(struct ceph_osd_client *osdc,
587 req->r_tid, le32_to_cpu(pgid.pool), le16_to_cpu(pgid.ps), o, 594 req->r_tid, le32_to_cpu(pgid.pool), le16_to_cpu(pgid.ps), o,
588 req->r_osd ? req->r_osd->o_osd : -1); 595 req->r_osd ? req->r_osd->o_osd : -1);
589 596
597 /* record full pg acting set */
598 memcpy(req->r_pg_osds, acting, sizeof(acting[0]) * num);
599 req->r_num_pg_osds = num;
600
590 if (req->r_osd) { 601 if (req->r_osd) {
591 __cancel_request(req); 602 __cancel_request(req);
592 list_del_init(&req->r_osd_item); 603 list_del_init(&req->r_osd_item);
@@ -612,7 +623,7 @@ static int __map_osds(struct ceph_osd_client *osdc,
612 __remove_osd_from_lru(req->r_osd); 623 __remove_osd_from_lru(req->r_osd);
613 list_add(&req->r_osd_item, &req->r_osd->o_requests); 624 list_add(&req->r_osd_item, &req->r_osd->o_requests);
614 } 625 }
615 err = 1; /* osd changed */ 626 err = 1; /* osd or pg changed */
616 627
617out: 628out:
618 return err; 629 return err;
@@ -779,16 +790,18 @@ static void handle_reply(struct ceph_osd_client *osdc, struct ceph_msg *msg,
779 struct ceph_osd_request *req; 790 struct ceph_osd_request *req;
780 u64 tid; 791 u64 tid;
781 int numops, object_len, flags; 792 int numops, object_len, flags;
793 s32 result;
782 794
783 tid = le64_to_cpu(msg->hdr.tid); 795 tid = le64_to_cpu(msg->hdr.tid);
784 if (msg->front.iov_len < sizeof(*rhead)) 796 if (msg->front.iov_len < sizeof(*rhead))
785 goto bad; 797 goto bad;
786 numops = le32_to_cpu(rhead->num_ops); 798 numops = le32_to_cpu(rhead->num_ops);
787 object_len = le32_to_cpu(rhead->object_len); 799 object_len = le32_to_cpu(rhead->object_len);
800 result = le32_to_cpu(rhead->result);
788 if (msg->front.iov_len != sizeof(*rhead) + object_len + 801 if (msg->front.iov_len != sizeof(*rhead) + object_len +
789 numops * sizeof(struct ceph_osd_op)) 802 numops * sizeof(struct ceph_osd_op))
790 goto bad; 803 goto bad;
791 dout("handle_reply %p tid %llu\n", msg, tid); 804 dout("handle_reply %p tid %llu result %d\n", msg, tid, (int)result);
792 805
793 /* lookup */ 806 /* lookup */
794 mutex_lock(&osdc->request_mutex); 807 mutex_lock(&osdc->request_mutex);
@@ -834,7 +847,8 @@ static void handle_reply(struct ceph_osd_client *osdc, struct ceph_msg *msg,
834 dout("handle_reply tid %llu flags %d\n", tid, flags); 847 dout("handle_reply tid %llu flags %d\n", tid, flags);
835 848
836 /* either this is a read, or we got the safe response */ 849 /* either this is a read, or we got the safe response */
837 if ((flags & CEPH_OSD_FLAG_ONDISK) || 850 if (result < 0 ||
851 (flags & CEPH_OSD_FLAG_ONDISK) ||
838 ((flags & CEPH_OSD_FLAG_WRITE) == 0)) 852 ((flags & CEPH_OSD_FLAG_WRITE) == 0))
839 __unregister_request(osdc, req); 853 __unregister_request(osdc, req);
840 854
diff --git a/fs/ceph/osd_client.h b/fs/ceph/osd_client.h
index b0759911e7c3..ce776989ef6a 100644
--- a/fs/ceph/osd_client.h
+++ b/fs/ceph/osd_client.h
@@ -48,6 +48,8 @@ struct ceph_osd_request {
48 struct list_head r_osd_item; 48 struct list_head r_osd_item;
49 struct ceph_osd *r_osd; 49 struct ceph_osd *r_osd;
50 struct ceph_pg r_pgid; 50 struct ceph_pg r_pgid;
51 int r_pg_osds[CEPH_PG_MAX_SIZE];
52 int r_num_pg_osds;
51 53
52 struct ceph_connection *r_con_filling_msg; 54 struct ceph_connection *r_con_filling_msg;
53 55
@@ -66,7 +68,6 @@ struct ceph_osd_request {
66 struct list_head r_unsafe_item; 68 struct list_head r_unsafe_item;
67 69
68 struct inode *r_inode; /* for use by callbacks */ 70 struct inode *r_inode; /* for use by callbacks */
69 struct writeback_control *r_wbc; /* ditto */
70 71
71 char r_oid[40]; /* object name */ 72 char r_oid[40]; /* object name */
72 int r_oid_len; 73 int r_oid_len;
diff --git a/fs/ceph/osdmap.c b/fs/ceph/osdmap.c
index 2e2c15eed82a..cfdd8f4388b7 100644
--- a/fs/ceph/osdmap.c
+++ b/fs/ceph/osdmap.c
@@ -1041,12 +1041,33 @@ static int *calc_pg_raw(struct ceph_osdmap *osdmap, struct ceph_pg pgid,
1041} 1041}
1042 1042
1043/* 1043/*
1044 * Return acting set for given pgid.
1045 */
1046int ceph_calc_pg_acting(struct ceph_osdmap *osdmap, struct ceph_pg pgid,
1047 int *acting)
1048{
1049 int rawosds[CEPH_PG_MAX_SIZE], *osds;
1050 int i, o, num = CEPH_PG_MAX_SIZE;
1051
1052 osds = calc_pg_raw(osdmap, pgid, rawosds, &num);
1053 if (!osds)
1054 return -1;
1055
1056 /* primary is first up osd */
1057 o = 0;
1058 for (i = 0; i < num; i++)
1059 if (ceph_osd_is_up(osdmap, osds[i]))
1060 acting[o++] = osds[i];
1061 return o;
1062}
1063
1064/*
1044 * Return primary osd for given pgid, or -1 if none. 1065 * Return primary osd for given pgid, or -1 if none.
1045 */ 1066 */
1046int ceph_calc_pg_primary(struct ceph_osdmap *osdmap, struct ceph_pg pgid) 1067int ceph_calc_pg_primary(struct ceph_osdmap *osdmap, struct ceph_pg pgid)
1047{ 1068{
1048 int rawosds[10], *osds; 1069 int rawosds[CEPH_PG_MAX_SIZE], *osds;
1049 int i, num = ARRAY_SIZE(rawosds); 1070 int i, num = CEPH_PG_MAX_SIZE;
1050 1071
1051 osds = calc_pg_raw(osdmap, pgid, rawosds, &num); 1072 osds = calc_pg_raw(osdmap, pgid, rawosds, &num);
1052 if (!osds) 1073 if (!osds)
@@ -1054,9 +1075,7 @@ int ceph_calc_pg_primary(struct ceph_osdmap *osdmap, struct ceph_pg pgid)
1054 1075
1055 /* primary is first up osd */ 1076 /* primary is first up osd */
1056 for (i = 0; i < num; i++) 1077 for (i = 0; i < num; i++)
1057 if (ceph_osd_is_up(osdmap, osds[i])) { 1078 if (ceph_osd_is_up(osdmap, osds[i]))
1058 return osds[i]; 1079 return osds[i];
1059 break;
1060 }
1061 return -1; 1080 return -1;
1062} 1081}
diff --git a/fs/ceph/osdmap.h b/fs/ceph/osdmap.h
index 8bc9f1e4f562..970b547e510d 100644
--- a/fs/ceph/osdmap.h
+++ b/fs/ceph/osdmap.h
@@ -120,6 +120,8 @@ extern int ceph_calc_object_layout(struct ceph_object_layout *ol,
120 const char *oid, 120 const char *oid,
121 struct ceph_file_layout *fl, 121 struct ceph_file_layout *fl,
122 struct ceph_osdmap *osdmap); 122 struct ceph_osdmap *osdmap);
123extern int ceph_calc_pg_acting(struct ceph_osdmap *osdmap, struct ceph_pg pgid,
124 int *acting);
123extern int ceph_calc_pg_primary(struct ceph_osdmap *osdmap, 125extern int ceph_calc_pg_primary(struct ceph_osdmap *osdmap,
124 struct ceph_pg pgid); 126 struct ceph_pg pgid);
125 127
diff --git a/fs/ceph/rados.h b/fs/ceph/rados.h
index a1fc1d017b58..fd56451a871f 100644
--- a/fs/ceph/rados.h
+++ b/fs/ceph/rados.h
@@ -58,6 +58,7 @@ struct ceph_timespec {
58#define CEPH_PG_LAYOUT_LINEAR 2 58#define CEPH_PG_LAYOUT_LINEAR 2
59#define CEPH_PG_LAYOUT_HYBRID 3 59#define CEPH_PG_LAYOUT_HYBRID 3
60 60
61#define CEPH_PG_MAX_SIZE 16 /* max # osds in a single pg */
61 62
62/* 63/*
63 * placement group. 64 * placement group.
diff --git a/fs/ceph/snap.c b/fs/ceph/snap.c
index 2b881262ef67..d5114db70453 100644
--- a/fs/ceph/snap.c
+++ b/fs/ceph/snap.c
@@ -869,16 +869,20 @@ skip_inode:
869 continue; 869 continue;
870 ci = ceph_inode(inode); 870 ci = ceph_inode(inode);
871 spin_lock(&inode->i_lock); 871 spin_lock(&inode->i_lock);
872 if (!ci->i_snap_realm) 872 if (list_empty(&ci->i_snap_realm_item)) {
873 goto split_skip_inode; 873 struct ceph_snap_realm *oldrealm =
874 ceph_put_snap_realm(mdsc, ci->i_snap_realm); 874 ci->i_snap_realm;
875 spin_lock(&realm->inodes_with_caps_lock); 875
876 list_add(&ci->i_snap_realm_item, 876 dout(" moving %p to split realm %llx %p\n",
877 &realm->inodes_with_caps); 877 inode, realm->ino, realm);
878 ci->i_snap_realm = realm; 878 spin_lock(&realm->inodes_with_caps_lock);
879 spin_unlock(&realm->inodes_with_caps_lock); 879 list_add(&ci->i_snap_realm_item,
880 ceph_get_snap_realm(mdsc, realm); 880 &realm->inodes_with_caps);
881split_skip_inode: 881 ci->i_snap_realm = realm;
882 spin_unlock(&realm->inodes_with_caps_lock);
883 ceph_get_snap_realm(mdsc, realm);
884 ceph_put_snap_realm(mdsc, oldrealm);
885 }
882 spin_unlock(&inode->i_lock); 886 spin_unlock(&inode->i_lock);
883 iput(inode); 887 iput(inode);
884 } 888 }
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 75d02eaa1279..110857ba9269 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -47,10 +47,20 @@ const char *ceph_file_part(const char *s, int len)
47 */ 47 */
48static void ceph_put_super(struct super_block *s) 48static void ceph_put_super(struct super_block *s)
49{ 49{
50 struct ceph_client *cl = ceph_client(s); 50 struct ceph_client *client = ceph_sb_to_client(s);
51 51
52 dout("put_super\n"); 52 dout("put_super\n");
53 ceph_mdsc_close_sessions(&cl->mdsc); 53 ceph_mdsc_close_sessions(&client->mdsc);
54
55 /*
56 * ensure we release the bdi before put_anon_super releases
57 * the device name.
58 */
59 if (s->s_bdi == &client->backing_dev_info) {
60 bdi_unregister(&client->backing_dev_info);
61 s->s_bdi = NULL;
62 }
63
54 return; 64 return;
55} 65}
56 66
@@ -636,6 +646,8 @@ static void ceph_destroy_client(struct ceph_client *client)
636 destroy_workqueue(client->pg_inv_wq); 646 destroy_workqueue(client->pg_inv_wq);
637 destroy_workqueue(client->trunc_wq); 647 destroy_workqueue(client->trunc_wq);
638 648
649 bdi_destroy(&client->backing_dev_info);
650
639 if (client->msgr) 651 if (client->msgr)
640 ceph_messenger_destroy(client->msgr); 652 ceph_messenger_destroy(client->msgr);
641 mempool_destroy(client->wb_pagevec_pool); 653 mempool_destroy(client->wb_pagevec_pool);
@@ -876,14 +888,14 @@ static int ceph_register_bdi(struct super_block *sb, struct ceph_client *client)
876{ 888{
877 int err; 889 int err;
878 890
879 sb->s_bdi = &client->backing_dev_info;
880
881 /* set ra_pages based on rsize mount option? */ 891 /* set ra_pages based on rsize mount option? */
882 if (client->mount_args->rsize >= PAGE_CACHE_SIZE) 892 if (client->mount_args->rsize >= PAGE_CACHE_SIZE)
883 client->backing_dev_info.ra_pages = 893 client->backing_dev_info.ra_pages =
884 (client->mount_args->rsize + PAGE_CACHE_SIZE - 1) 894 (client->mount_args->rsize + PAGE_CACHE_SIZE - 1)
885 >> PAGE_SHIFT; 895 >> PAGE_SHIFT;
886 err = bdi_register_dev(&client->backing_dev_info, sb->s_dev); 896 err = bdi_register_dev(&client->backing_dev_info, sb->s_dev);
897 if (!err)
898 sb->s_bdi = &client->backing_dev_info;
887 return err; 899 return err;
888} 900}
889 901
@@ -957,9 +969,6 @@ static void ceph_kill_sb(struct super_block *s)
957 dout("kill_sb %p\n", s); 969 dout("kill_sb %p\n", s);
958 ceph_mdsc_pre_umount(&client->mdsc); 970 ceph_mdsc_pre_umount(&client->mdsc);
959 kill_anon_super(s); /* will call put_super after sb is r/o */ 971 kill_anon_super(s); /* will call put_super after sb is r/o */
960 if (s->s_bdi == &client->backing_dev_info)
961 bdi_unregister(&client->backing_dev_info);
962 bdi_destroy(&client->backing_dev_info);
963 ceph_destroy_client(client); 972 ceph_destroy_client(client);
964} 973}
965 974
@@ -996,9 +1005,10 @@ static int __init init_ceph(void)
996 if (ret) 1005 if (ret)
997 goto out_icache; 1006 goto out_icache;
998 1007
999 pr_info("loaded %d.%d.%d (mon/mds/osd proto %d/%d/%d)\n", 1008 pr_info("loaded (mon/mds/osd proto %d/%d/%d, osdmap %d/%d %d/%d)\n",
1000 CEPH_VERSION_MAJOR, CEPH_VERSION_MINOR, CEPH_VERSION_PATCH, 1009 CEPH_MONC_PROTOCOL, CEPH_MDSC_PROTOCOL, CEPH_OSDC_PROTOCOL,
1001 CEPH_MONC_PROTOCOL, CEPH_MDSC_PROTOCOL, CEPH_OSDC_PROTOCOL); 1010 CEPH_OSDMAP_VERSION, CEPH_OSDMAP_VERSION_EXT,
1011 CEPH_OSDMAP_INC_VERSION, CEPH_OSDMAP_INC_VERSION_EXT);
1002 return 0; 1012 return 0;
1003 1013
1004out_icache: 1014out_icache:
diff --git a/fs/ceph/super.h b/fs/ceph/super.h
index e30dfbb056c3..13513b80d87f 100644
--- a/fs/ceph/super.h
+++ b/fs/ceph/super.h
@@ -10,6 +10,7 @@
10#include <linux/fs.h> 10#include <linux/fs.h>
11#include <linux/mempool.h> 11#include <linux/mempool.h>
12#include <linux/pagemap.h> 12#include <linux/pagemap.h>
13#include <linux/slab.h>
13#include <linux/wait.h> 14#include <linux/wait.h>
14#include <linux/writeback.h> 15#include <linux/writeback.h>
15#include <linux/slab.h> 16#include <linux/slab.h>
diff --git a/fs/cifs/cifs_fs_sb.h b/fs/cifs/cifs_fs_sb.h
index 4797787c6a44..246a167cb913 100644
--- a/fs/cifs/cifs_fs_sb.h
+++ b/fs/cifs/cifs_fs_sb.h
@@ -18,6 +18,8 @@
18#ifndef _CIFS_FS_SB_H 18#ifndef _CIFS_FS_SB_H
19#define _CIFS_FS_SB_H 19#define _CIFS_FS_SB_H
20 20
21#include <linux/backing-dev.h>
22
21#define CIFS_MOUNT_NO_PERM 1 /* do not do client vfs_perm check */ 23#define CIFS_MOUNT_NO_PERM 1 /* do not do client vfs_perm check */
22#define CIFS_MOUNT_SET_UID 2 /* set current's euid in create etc. */ 24#define CIFS_MOUNT_SET_UID 2 /* set current's euid in create etc. */
23#define CIFS_MOUNT_SERVER_INUM 4 /* inode numbers from uniqueid from server */ 25#define CIFS_MOUNT_SERVER_INUM 4 /* inode numbers from uniqueid from server */
@@ -50,5 +52,6 @@ struct cifs_sb_info {
50#ifdef CONFIG_CIFS_DFS_UPCALL 52#ifdef CONFIG_CIFS_DFS_UPCALL
51 char *mountdata; /* mount options received at mount time */ 53 char *mountdata; /* mount options received at mount time */
52#endif 54#endif
55 struct backing_dev_info bdi;
53}; 56};
54#endif /* _CIFS_FS_SB_H */ 57#endif /* _CIFS_FS_SB_H */
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 833166372a08..78c02eb4cb1f 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -97,6 +97,12 @@ cifs_read_super(struct super_block *sb, void *data,
97 if (cifs_sb == NULL) 97 if (cifs_sb == NULL)
98 return -ENOMEM; 98 return -ENOMEM;
99 99
100 rc = bdi_setup_and_register(&cifs_sb->bdi, "cifs", BDI_CAP_MAP_COPY);
101 if (rc) {
102 kfree(cifs_sb);
103 return rc;
104 }
105
100#ifdef CONFIG_CIFS_DFS_UPCALL 106#ifdef CONFIG_CIFS_DFS_UPCALL
101 /* copy mount params to sb for use in submounts */ 107 /* copy mount params to sb for use in submounts */
102 /* BB: should we move this after the mount so we 108 /* BB: should we move this after the mount so we
@@ -109,6 +115,7 @@ cifs_read_super(struct super_block *sb, void *data,
109 int len = strlen(data); 115 int len = strlen(data);
110 cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL); 116 cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
111 if (cifs_sb->mountdata == NULL) { 117 if (cifs_sb->mountdata == NULL) {
118 bdi_destroy(&cifs_sb->bdi);
112 kfree(sb->s_fs_info); 119 kfree(sb->s_fs_info);
113 sb->s_fs_info = NULL; 120 sb->s_fs_info = NULL;
114 return -ENOMEM; 121 return -ENOMEM;
@@ -128,6 +135,7 @@ cifs_read_super(struct super_block *sb, void *data,
128 135
129 sb->s_magic = CIFS_MAGIC_NUMBER; 136 sb->s_magic = CIFS_MAGIC_NUMBER;
130 sb->s_op = &cifs_super_ops; 137 sb->s_op = &cifs_super_ops;
138 sb->s_bdi = &cifs_sb->bdi;
131/* if (cifs_sb->tcon->ses->server->maxBuf > MAX_CIFS_HDR_SIZE + 512) 139/* if (cifs_sb->tcon->ses->server->maxBuf > MAX_CIFS_HDR_SIZE + 512)
132 sb->s_blocksize = 140 sb->s_blocksize =
133 cifs_sb->tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE; */ 141 cifs_sb->tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE; */
@@ -173,6 +181,7 @@ out_mount_failed:
173 } 181 }
174#endif 182#endif
175 unload_nls(cifs_sb->local_nls); 183 unload_nls(cifs_sb->local_nls);
184 bdi_destroy(&cifs_sb->bdi);
176 kfree(cifs_sb); 185 kfree(cifs_sb);
177 } 186 }
178 return rc; 187 return rc;
@@ -204,6 +213,7 @@ cifs_put_super(struct super_block *sb)
204#endif 213#endif
205 214
206 unload_nls(cifs_sb->local_nls); 215 unload_nls(cifs_sb->local_nls);
216 bdi_destroy(&cifs_sb->bdi);
207 kfree(cifs_sb); 217 kfree(cifs_sb);
208 218
209 unlock_kernel(); 219 unlock_kernel();
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 4a99487400f3..a88479ceaad5 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -507,6 +507,7 @@ struct dfs_info3_param {
507#define CIFS_FATTR_DFS_REFERRAL 0x1 507#define CIFS_FATTR_DFS_REFERRAL 0x1
508#define CIFS_FATTR_DELETE_PENDING 0x2 508#define CIFS_FATTR_DELETE_PENDING 0x2
509#define CIFS_FATTR_NEED_REVAL 0x4 509#define CIFS_FATTR_NEED_REVAL 0x4
510#define CIFS_FATTR_INO_COLLISION 0x8
510 511
511struct cifs_fattr { 512struct cifs_fattr {
512 u32 cf_flags; 513 u32 cf_flags;
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index b35cb031c20c..5b042fc46450 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -715,6 +715,16 @@ cifs_find_inode(struct inode *inode, void *opaque)
715 if (CIFS_I(inode)->uniqueid != fattr->cf_uniqueid) 715 if (CIFS_I(inode)->uniqueid != fattr->cf_uniqueid)
716 return 0; 716 return 0;
717 717
718 /*
719 * uh oh -- it's a directory. We can't use it since hardlinked dirs are
720 * verboten. Disable serverino and return it as if it were found, the
721 * caller can discard it, generate a uniqueid and retry the find
722 */
723 if (S_ISDIR(inode->i_mode) && !list_empty(&inode->i_dentry)) {
724 fattr->cf_flags |= CIFS_FATTR_INO_COLLISION;
725 cifs_autodisable_serverino(CIFS_SB(inode->i_sb));
726 }
727
718 return 1; 728 return 1;
719} 729}
720 730
@@ -734,15 +744,22 @@ cifs_iget(struct super_block *sb, struct cifs_fattr *fattr)
734 unsigned long hash; 744 unsigned long hash;
735 struct inode *inode; 745 struct inode *inode;
736 746
747retry_iget5_locked:
737 cFYI(1, "looking for uniqueid=%llu", fattr->cf_uniqueid); 748 cFYI(1, "looking for uniqueid=%llu", fattr->cf_uniqueid);
738 749
739 /* hash down to 32-bits on 32-bit arch */ 750 /* hash down to 32-bits on 32-bit arch */
740 hash = cifs_uniqueid_to_ino_t(fattr->cf_uniqueid); 751 hash = cifs_uniqueid_to_ino_t(fattr->cf_uniqueid);
741 752
742 inode = iget5_locked(sb, hash, cifs_find_inode, cifs_init_inode, fattr); 753 inode = iget5_locked(sb, hash, cifs_find_inode, cifs_init_inode, fattr);
743
744 /* we have fattrs in hand, update the inode */
745 if (inode) { 754 if (inode) {
755 /* was there a problematic inode number collision? */
756 if (fattr->cf_flags & CIFS_FATTR_INO_COLLISION) {
757 iput(inode);
758 fattr->cf_uniqueid = iunique(sb, ROOT_I);
759 fattr->cf_flags &= ~CIFS_FATTR_INO_COLLISION;
760 goto retry_iget5_locked;
761 }
762
746 cifs_fattr_to_inode(inode, fattr); 763 cifs_fattr_to_inode(inode, fattr);
747 if (sb->s_flags & MS_NOATIME) 764 if (sb->s_flags & MS_NOATIME)
748 inode->i_flags |= S_NOATIME | S_NOCMTIME; 765 inode->i_flags |= S_NOATIME | S_NOCMTIME;
diff --git a/fs/coda/inode.c b/fs/coda/inode.c
index a1695dcadd99..d97f9935a028 100644
--- a/fs/coda/inode.c
+++ b/fs/coda/inode.c
@@ -167,6 +167,10 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
167 return -EBUSY; 167 return -EBUSY;
168 } 168 }
169 169
170 error = bdi_setup_and_register(&vc->bdi, "coda", BDI_CAP_MAP_COPY);
171 if (error)
172 goto bdi_err;
173
170 vc->vc_sb = sb; 174 vc->vc_sb = sb;
171 175
172 sb->s_fs_info = vc; 176 sb->s_fs_info = vc;
@@ -175,6 +179,7 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
175 sb->s_blocksize_bits = 12; 179 sb->s_blocksize_bits = 12;
176 sb->s_magic = CODA_SUPER_MAGIC; 180 sb->s_magic = CODA_SUPER_MAGIC;
177 sb->s_op = &coda_super_operations; 181 sb->s_op = &coda_super_operations;
182 sb->s_bdi = &vc->bdi;
178 183
179 /* get root fid from Venus: this needs the root inode */ 184 /* get root fid from Venus: this needs the root inode */
180 error = venus_rootfid(sb, &fid); 185 error = venus_rootfid(sb, &fid);
@@ -200,6 +205,8 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
200 return 0; 205 return 0;
201 206
202 error: 207 error:
208 bdi_destroy(&vc->bdi);
209 bdi_err:
203 if (root) 210 if (root)
204 iput(root); 211 iput(root);
205 if (vc) 212 if (vc)
@@ -210,6 +217,7 @@ static int coda_fill_super(struct super_block *sb, void *data, int silent)
210 217
211static void coda_put_super(struct super_block *sb) 218static void coda_put_super(struct super_block *sb)
212{ 219{
220 bdi_destroy(&coda_vcp(sb)->bdi);
213 coda_vcp(sb)->vc_sb = NULL; 221 coda_vcp(sb)->vc_sb = NULL;
214 sb->s_fs_info = NULL; 222 sb->s_fs_info = NULL;
215 223
diff --git a/fs/compat.c b/fs/compat.c
index 4b6ed03cc478..05448730f840 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -1531,8 +1531,6 @@ int compat_do_execve(char * filename,
1531 if (retval < 0) 1531 if (retval < 0)
1532 goto out; 1532 goto out;
1533 1533
1534 current->stack_start = current->mm->start_stack;
1535
1536 /* execve succeeded */ 1534 /* execve succeeded */
1537 current->fs->in_exec = 0; 1535 current->fs->in_exec = 0;
1538 current->in_execve = 0; 1536 current->in_execve = 0;
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index c32a1b6a856b..641640dc7ae5 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -102,7 +102,6 @@
102#include <linux/nbd.h> 102#include <linux/nbd.h>
103#include <linux/random.h> 103#include <linux/random.h>
104#include <linux/filter.h> 104#include <linux/filter.h>
105#include <linux/pktcdvd.h>
106 105
107#include <linux/hiddev.h> 106#include <linux/hiddev.h>
108 107
@@ -1126,8 +1125,6 @@ COMPATIBLE_IOCTL(PPGETMODE)
1126COMPATIBLE_IOCTL(PPGETPHASE) 1125COMPATIBLE_IOCTL(PPGETPHASE)
1127COMPATIBLE_IOCTL(PPGETFLAGS) 1126COMPATIBLE_IOCTL(PPGETFLAGS)
1128COMPATIBLE_IOCTL(PPSETFLAGS) 1127COMPATIBLE_IOCTL(PPSETFLAGS)
1129/* pktcdvd */
1130COMPATIBLE_IOCTL(PACKET_CTRL_CMD)
1131/* Big A */ 1128/* Big A */
1132/* sparc only */ 1129/* sparc only */
1133/* Big Q for sound/OSS */ 1130/* Big Q for sound/OSS */
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h
index bc7115403f38..bfc2e0f78f00 100644
--- a/fs/ecryptfs/ecryptfs_kernel.h
+++ b/fs/ecryptfs/ecryptfs_kernel.h
@@ -35,6 +35,7 @@
35#include <linux/scatterlist.h> 35#include <linux/scatterlist.h>
36#include <linux/hash.h> 36#include <linux/hash.h>
37#include <linux/nsproxy.h> 37#include <linux/nsproxy.h>
38#include <linux/backing-dev.h>
38 39
39/* Version verification for shared data structures w/ userspace */ 40/* Version verification for shared data structures w/ userspace */
40#define ECRYPTFS_VERSION_MAJOR 0x00 41#define ECRYPTFS_VERSION_MAJOR 0x00
@@ -393,6 +394,7 @@ struct ecryptfs_mount_crypt_stat {
393struct ecryptfs_sb_info { 394struct ecryptfs_sb_info {
394 struct super_block *wsi_sb; 395 struct super_block *wsi_sb;
395 struct ecryptfs_mount_crypt_stat mount_crypt_stat; 396 struct ecryptfs_mount_crypt_stat mount_crypt_stat;
397 struct backing_dev_info bdi;
396}; 398};
397 399
398/* file private data. */ 400/* file private data. */
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index af1a8f01ebac..760983d0f25e 100644
--- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c
@@ -497,17 +497,25 @@ struct kmem_cache *ecryptfs_sb_info_cache;
497static int 497static int
498ecryptfs_fill_super(struct super_block *sb, void *raw_data, int silent) 498ecryptfs_fill_super(struct super_block *sb, void *raw_data, int silent)
499{ 499{
500 struct ecryptfs_sb_info *esi;
500 int rc = 0; 501 int rc = 0;
501 502
502 /* Released in ecryptfs_put_super() */ 503 /* Released in ecryptfs_put_super() */
503 ecryptfs_set_superblock_private(sb, 504 ecryptfs_set_superblock_private(sb,
504 kmem_cache_zalloc(ecryptfs_sb_info_cache, 505 kmem_cache_zalloc(ecryptfs_sb_info_cache,
505 GFP_KERNEL)); 506 GFP_KERNEL));
506 if (!ecryptfs_superblock_to_private(sb)) { 507 esi = ecryptfs_superblock_to_private(sb);
508 if (!esi) {
507 ecryptfs_printk(KERN_WARNING, "Out of memory\n"); 509 ecryptfs_printk(KERN_WARNING, "Out of memory\n");
508 rc = -ENOMEM; 510 rc = -ENOMEM;
509 goto out; 511 goto out;
510 } 512 }
513
514 rc = bdi_setup_and_register(&esi->bdi, "ecryptfs", BDI_CAP_MAP_COPY);
515 if (rc)
516 goto out;
517
518 sb->s_bdi = &esi->bdi;
511 sb->s_op = &ecryptfs_sops; 519 sb->s_op = &ecryptfs_sops;
512 /* Released through deactivate_super(sb) from get_sb_nodev */ 520 /* Released through deactivate_super(sb) from get_sb_nodev */
513 sb->s_root = d_alloc(NULL, &(const struct qstr) { 521 sb->s_root = d_alloc(NULL, &(const struct qstr) {
diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c
index 278743c7716a..0c0ae491d231 100644
--- a/fs/ecryptfs/super.c
+++ b/fs/ecryptfs/super.c
@@ -122,6 +122,7 @@ static void ecryptfs_put_super(struct super_block *sb)
122 lock_kernel(); 122 lock_kernel();
123 123
124 ecryptfs_destroy_mount_crypt_stat(&sb_info->mount_crypt_stat); 124 ecryptfs_destroy_mount_crypt_stat(&sb_info->mount_crypt_stat);
125 bdi_destroy(&sb_info->bdi);
125 kmem_cache_free(ecryptfs_sb_info_cache, sb_info); 126 kmem_cache_free(ecryptfs_sb_info_cache, sb_info);
126 ecryptfs_set_superblock_private(sb, NULL); 127 ecryptfs_set_superblock_private(sb, NULL);
127 128
diff --git a/fs/exec.c b/fs/exec.c
index 49cdaa19e5b9..e6e94c626c2c 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1387,8 +1387,6 @@ int do_execve(char * filename,
1387 if (retval < 0) 1387 if (retval < 0)
1388 goto out; 1388 goto out;
1389 1389
1390 current->stack_start = current->mm->start_stack;
1391
1392 /* execve succeeded */ 1390 /* execve succeeded */
1393 current->fs->in_exec = 0; 1391 current->fs->in_exec = 0;
1394 current->in_execve = 0; 1392 current->in_execve = 0;
diff --git a/fs/exofs/exofs.h b/fs/exofs/exofs.h
index 8442e353309f..22721b2fd890 100644
--- a/fs/exofs/exofs.h
+++ b/fs/exofs/exofs.h
@@ -35,6 +35,7 @@
35 35
36#include <linux/fs.h> 36#include <linux/fs.h>
37#include <linux/time.h> 37#include <linux/time.h>
38#include <linux/backing-dev.h>
38#include "common.h" 39#include "common.h"
39 40
40/* FIXME: Remove once pnfs hits mainline 41/* FIXME: Remove once pnfs hits mainline
@@ -84,6 +85,7 @@ struct exofs_sb_info {
84 u32 s_next_generation; /* next gen # to use */ 85 u32 s_next_generation; /* next gen # to use */
85 atomic_t s_curr_pending; /* number of pending commands */ 86 atomic_t s_curr_pending; /* number of pending commands */
86 uint8_t s_cred[OSD_CAP_LEN]; /* credential for the fscb */ 87 uint8_t s_cred[OSD_CAP_LEN]; /* credential for the fscb */
88 struct backing_dev_info bdi; /* register our bdi with VFS */
87 89
88 struct pnfs_osd_data_map data_map; /* Default raid to use 90 struct pnfs_osd_data_map data_map; /* Default raid to use
89 * FIXME: Needed ? 91 * FIXME: Needed ?
diff --git a/fs/exofs/super.c b/fs/exofs/super.c
index 18e57ea1e5b4..03149b9a5178 100644
--- a/fs/exofs/super.c
+++ b/fs/exofs/super.c
@@ -302,6 +302,7 @@ static void exofs_put_super(struct super_block *sb)
302 _exofs_print_device("Unmounting", NULL, sbi->layout.s_ods[0], 302 _exofs_print_device("Unmounting", NULL, sbi->layout.s_ods[0],
303 sbi->layout.s_pid); 303 sbi->layout.s_pid);
304 304
305 bdi_destroy(&sbi->bdi);
305 exofs_free_sbi(sbi); 306 exofs_free_sbi(sbi);
306 sb->s_fs_info = NULL; 307 sb->s_fs_info = NULL;
307} 308}
@@ -546,6 +547,10 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
546 if (!sbi) 547 if (!sbi)
547 return -ENOMEM; 548 return -ENOMEM;
548 549
550 ret = bdi_setup_and_register(&sbi->bdi, "exofs", BDI_CAP_MAP_COPY);
551 if (ret)
552 goto free_bdi;
553
549 /* use mount options to fill superblock */ 554 /* use mount options to fill superblock */
550 od = osduld_path_lookup(opts->dev_name); 555 od = osduld_path_lookup(opts->dev_name);
551 if (IS_ERR(od)) { 556 if (IS_ERR(od)) {
@@ -612,6 +617,7 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
612 } 617 }
613 618
614 /* set up operation vectors */ 619 /* set up operation vectors */
620 sb->s_bdi = &sbi->bdi;
615 sb->s_fs_info = sbi; 621 sb->s_fs_info = sbi;
616 sb->s_op = &exofs_sops; 622 sb->s_op = &exofs_sops;
617 sb->s_export_op = &exofs_export_ops; 623 sb->s_export_op = &exofs_export_ops;
@@ -643,6 +649,8 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
643 return 0; 649 return 0;
644 650
645free_sbi: 651free_sbi:
652 bdi_destroy(&sbi->bdi);
653free_bdi:
646 EXOFS_ERR("Unable to mount exofs on %s pid=0x%llx err=%d\n", 654 EXOFS_ERR("Unable to mount exofs on %s pid=0x%llx err=%d\n",
647 opts->dev_name, sbi->layout.s_pid, ret); 655 opts->dev_name, sbi->layout.s_pid, ret);
648 exofs_free_sbi(sbi); 656 exofs_free_sbi(sbi);
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 94c8ee81f5e1..236b834b4ca8 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -3879,6 +3879,7 @@ static int ext4_xattr_fiemap(struct inode *inode,
3879 physical += offset; 3879 physical += offset;
3880 length = EXT4_SB(inode->i_sb)->s_inode_size - offset; 3880 length = EXT4_SB(inode->i_sb)->s_inode_size - offset;
3881 flags |= FIEMAP_EXTENT_DATA_INLINE; 3881 flags |= FIEMAP_EXTENT_DATA_INLINE;
3882 brelse(iloc.bh);
3882 } else { /* external block */ 3883 } else { /* external block */
3883 physical = EXT4_I(inode)->i_file_acl << blockbits; 3884 physical = EXT4_I(inode)->i_file_acl << blockbits;
3884 length = inode->i_sb->s_blocksize; 3885 length = inode->i_sb->s_blocksize;
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 5381802d6052..81d605412844 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -5375,7 +5375,7 @@ int ext4_write_inode(struct inode *inode, struct writeback_control *wbc)
5375 } else { 5375 } else {
5376 struct ext4_iloc iloc; 5376 struct ext4_iloc iloc;
5377 5377
5378 err = ext4_get_inode_loc(inode, &iloc); 5378 err = __ext4_get_inode_loc(inode, &iloc, 0);
5379 if (err) 5379 if (err)
5380 return err; 5380 return err;
5381 if (wbc->sync_mode == WB_SYNC_ALL) 5381 if (wbc->sync_mode == WB_SYNC_ALL)
@@ -5386,6 +5386,7 @@ int ext4_write_inode(struct inode *inode, struct writeback_control *wbc)
5386 (unsigned long long)iloc.bh->b_blocknr); 5386 (unsigned long long)iloc.bh->b_blocknr);
5387 err = -EIO; 5387 err = -EIO;
5388 } 5388 }
5389 brelse(iloc.bh);
5389 } 5390 }
5390 return err; 5391 return err;
5391} 5392}
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index bde9d0b170c2..b423a364dca3 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2535,6 +2535,17 @@ static void release_blocks_on_commit(journal_t *journal, transaction_t *txn)
2535 mb_debug(1, "gonna free %u blocks in group %u (0x%p):", 2535 mb_debug(1, "gonna free %u blocks in group %u (0x%p):",
2536 entry->count, entry->group, entry); 2536 entry->count, entry->group, entry);
2537 2537
2538 if (test_opt(sb, DISCARD)) {
2539 ext4_fsblk_t discard_block;
2540
2541 discard_block = entry->start_blk +
2542 ext4_group_first_block_no(sb, entry->group);
2543 trace_ext4_discard_blocks(sb,
2544 (unsigned long long)discard_block,
2545 entry->count);
2546 sb_issue_discard(sb, discard_block, entry->count);
2547 }
2548
2538 err = ext4_mb_load_buddy(sb, entry->group, &e4b); 2549 err = ext4_mb_load_buddy(sb, entry->group, &e4b);
2539 /* we expect to find existing buddy because it's pinned */ 2550 /* we expect to find existing buddy because it's pinned */
2540 BUG_ON(err != 0); 2551 BUG_ON(err != 0);
@@ -2556,16 +2567,6 @@ static void release_blocks_on_commit(journal_t *journal, transaction_t *txn)
2556 page_cache_release(e4b.bd_bitmap_page); 2567 page_cache_release(e4b.bd_bitmap_page);
2557 } 2568 }
2558 ext4_unlock_group(sb, entry->group); 2569 ext4_unlock_group(sb, entry->group);
2559 if (test_opt(sb, DISCARD)) {
2560 ext4_fsblk_t discard_block;
2561
2562 discard_block = entry->start_blk +
2563 ext4_group_first_block_no(sb, entry->group);
2564 trace_ext4_discard_blocks(sb,
2565 (unsigned long long)discard_block,
2566 entry->count);
2567 sb_issue_discard(sb, discard_block, entry->count);
2568 }
2569 kmem_cache_free(ext4_free_ext_cachep, entry); 2570 kmem_cache_free(ext4_free_ext_cachep, entry);
2570 ext4_mb_release_desc(&e4b); 2571 ext4_mb_release_desc(&e4b);
2571 } 2572 }
diff --git a/fs/ioctl.c b/fs/ioctl.c
index 6c751106c2e5..7faefb4da939 100644
--- a/fs/ioctl.c
+++ b/fs/ioctl.c
@@ -228,14 +228,23 @@ static int ioctl_fiemap(struct file *filp, unsigned long arg)
228 228
229#ifdef CONFIG_BLOCK 229#ifdef CONFIG_BLOCK
230 230
231#define blk_to_logical(inode, blk) (blk << (inode)->i_blkbits) 231static inline sector_t logical_to_blk(struct inode *inode, loff_t offset)
232#define logical_to_blk(inode, offset) (offset >> (inode)->i_blkbits); 232{
233 return (offset >> inode->i_blkbits);
234}
235
236static inline loff_t blk_to_logical(struct inode *inode, sector_t blk)
237{
238 return (blk << inode->i_blkbits);
239}
233 240
234/** 241/**
235 * __generic_block_fiemap - FIEMAP for block based inodes (no locking) 242 * __generic_block_fiemap - FIEMAP for block based inodes (no locking)
236 * @inode - the inode to map 243 * @inode: the inode to map
237 * @arg - the pointer to userspace where we copy everything to 244 * @fieinfo: the fiemap info struct that will be passed back to userspace
238 * @get_block - the fs's get_block function 245 * @start: where to start mapping in the inode
246 * @len: how much space to map
247 * @get_block: the fs's get_block function
239 * 248 *
240 * This does FIEMAP for block based inodes. Basically it will just loop 249 * This does FIEMAP for block based inodes. Basically it will just loop
241 * through get_block until we hit the number of extents we want to map, or we 250 * through get_block until we hit the number of extents we want to map, or we
@@ -250,58 +259,63 @@ static int ioctl_fiemap(struct file *filp, unsigned long arg)
250 */ 259 */
251 260
252int __generic_block_fiemap(struct inode *inode, 261int __generic_block_fiemap(struct inode *inode,
253 struct fiemap_extent_info *fieinfo, u64 start, 262 struct fiemap_extent_info *fieinfo, loff_t start,
254 u64 len, get_block_t *get_block) 263 loff_t len, get_block_t *get_block)
255{ 264{
256 struct buffer_head tmp; 265 struct buffer_head map_bh;
257 unsigned long long start_blk; 266 sector_t start_blk, last_blk;
258 long long length = 0, map_len = 0; 267 loff_t isize = i_size_read(inode);
259 u64 logical = 0, phys = 0, size = 0; 268 u64 logical = 0, phys = 0, size = 0;
260 u32 flags = FIEMAP_EXTENT_MERGED; 269 u32 flags = FIEMAP_EXTENT_MERGED;
261 int ret = 0, past_eof = 0, whole_file = 0; 270 bool past_eof = false, whole_file = false;
271 int ret = 0;
262 272
263 if ((ret = fiemap_check_flags(fieinfo, FIEMAP_FLAG_SYNC))) 273 ret = fiemap_check_flags(fieinfo, FIEMAP_FLAG_SYNC);
274 if (ret)
264 return ret; 275 return ret;
265 276
266 start_blk = logical_to_blk(inode, start); 277 /*
267 278 * Either the i_mutex or other appropriate locking needs to be held
268 length = (long long)min_t(u64, len, i_size_read(inode)); 279 * since we expect isize to not change at all through the duration of
269 if (length < len) 280 * this call.
270 whole_file = 1; 281 */
282 if (len >= isize) {
283 whole_file = true;
284 len = isize;
285 }
271 286
272 map_len = length; 287 start_blk = logical_to_blk(inode, start);
288 last_blk = logical_to_blk(inode, start + len - 1);
273 289
274 do { 290 do {
275 /* 291 /*
276 * we set b_size to the total size we want so it will map as 292 * we set b_size to the total size we want so it will map as
277 * many contiguous blocks as possible at once 293 * many contiguous blocks as possible at once
278 */ 294 */
279 memset(&tmp, 0, sizeof(struct buffer_head)); 295 memset(&map_bh, 0, sizeof(struct buffer_head));
280 tmp.b_size = map_len; 296 map_bh.b_size = len;
281 297
282 ret = get_block(inode, start_blk, &tmp, 0); 298 ret = get_block(inode, start_blk, &map_bh, 0);
283 if (ret) 299 if (ret)
284 break; 300 break;
285 301
286 /* HOLE */ 302 /* HOLE */
287 if (!buffer_mapped(&tmp)) { 303 if (!buffer_mapped(&map_bh)) {
288 length -= blk_to_logical(inode, 1);
289 start_blk++; 304 start_blk++;
290 305
291 /* 306 /*
292 * we want to handle the case where there is an 307 * We want to handle the case where there is an
293 * allocated block at the front of the file, and then 308 * allocated block at the front of the file, and then
294 * nothing but holes up to the end of the file properly, 309 * nothing but holes up to the end of the file properly,
295 * to make sure that extent at the front gets properly 310 * to make sure that extent at the front gets properly
296 * marked with FIEMAP_EXTENT_LAST 311 * marked with FIEMAP_EXTENT_LAST
297 */ 312 */
298 if (!past_eof && 313 if (!past_eof &&
299 blk_to_logical(inode, start_blk) >= 314 blk_to_logical(inode, start_blk) >= isize)
300 blk_to_logical(inode, 0)+i_size_read(inode))
301 past_eof = 1; 315 past_eof = 1;
302 316
303 /* 317 /*
304 * first hole after going past the EOF, this is our 318 * First hole after going past the EOF, this is our
305 * last extent 319 * last extent
306 */ 320 */
307 if (past_eof && size) { 321 if (past_eof && size) {
@@ -309,15 +323,18 @@ int __generic_block_fiemap(struct inode *inode,
309 ret = fiemap_fill_next_extent(fieinfo, logical, 323 ret = fiemap_fill_next_extent(fieinfo, logical,
310 phys, size, 324 phys, size,
311 flags); 325 flags);
312 break; 326 } else if (size) {
327 ret = fiemap_fill_next_extent(fieinfo, logical,
328 phys, size, flags);
329 size = 0;
313 } 330 }
314 331
315 /* if we have holes up to/past EOF then we're done */ 332 /* if we have holes up to/past EOF then we're done */
316 if (length <= 0 || past_eof) 333 if (start_blk > last_blk || past_eof || ret)
317 break; 334 break;
318 } else { 335 } else {
319 /* 336 /*
320 * we have gone over the length of what we wanted to 337 * We have gone over the length of what we wanted to
321 * map, and it wasn't the entire file, so add the extent 338 * map, and it wasn't the entire file, so add the extent
322 * we got last time and exit. 339 * we got last time and exit.
323 * 340 *
@@ -331,7 +348,7 @@ int __generic_block_fiemap(struct inode *inode,
331 * are good to go, just add the extent to the fieinfo 348 * are good to go, just add the extent to the fieinfo
332 * and break 349 * and break
333 */ 350 */
334 if (length <= 0 && !whole_file) { 351 if (start_blk > last_blk && !whole_file) {
335 ret = fiemap_fill_next_extent(fieinfo, logical, 352 ret = fiemap_fill_next_extent(fieinfo, logical,
336 phys, size, 353 phys, size,
337 flags); 354 flags);
@@ -351,11 +368,10 @@ int __generic_block_fiemap(struct inode *inode,
351 } 368 }
352 369
353 logical = blk_to_logical(inode, start_blk); 370 logical = blk_to_logical(inode, start_blk);
354 phys = blk_to_logical(inode, tmp.b_blocknr); 371 phys = blk_to_logical(inode, map_bh.b_blocknr);
355 size = tmp.b_size; 372 size = map_bh.b_size;
356 flags = FIEMAP_EXTENT_MERGED; 373 flags = FIEMAP_EXTENT_MERGED;
357 374
358 length -= tmp.b_size;
359 start_blk += logical_to_blk(inode, size); 375 start_blk += logical_to_blk(inode, size);
360 376
361 /* 377 /*
@@ -363,15 +379,13 @@ int __generic_block_fiemap(struct inode *inode,
363 * soon as we find a hole that the last extent we found 379 * soon as we find a hole that the last extent we found
364 * is marked with FIEMAP_EXTENT_LAST 380 * is marked with FIEMAP_EXTENT_LAST
365 */ 381 */
366 if (!past_eof && 382 if (!past_eof && logical + size >= isize)
367 logical+size >= 383 past_eof = true;
368 blk_to_logical(inode, 0)+i_size_read(inode))
369 past_eof = 1;
370 } 384 }
371 cond_resched(); 385 cond_resched();
372 } while (1); 386 } while (1);
373 387
374 /* if ret is 1 then we just hit the end of the extent array */ 388 /* If ret is 1 then we just hit the end of the extent array */
375 if (ret == 1) 389 if (ret == 1)
376 ret = 0; 390 ret = 0;
377 391
diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c
index 9dd126276c9f..ed9ba6fe04f5 100644
--- a/fs/jfs/inode.c
+++ b/fs/jfs/inode.c
@@ -61,7 +61,7 @@ struct inode *jfs_iget(struct super_block *sb, unsigned long ino)
61 inode->i_op = &page_symlink_inode_operations; 61 inode->i_op = &page_symlink_inode_operations;
62 inode->i_mapping->a_ops = &jfs_aops; 62 inode->i_mapping->a_ops = &jfs_aops;
63 } else { 63 } else {
64 inode->i_op = &jfs_symlink_inode_operations; 64 inode->i_op = &jfs_fast_symlink_inode_operations;
65 /* 65 /*
66 * The inline data should be null-terminated, but 66 * The inline data should be null-terminated, but
67 * don't let on-disk corruption crash the kernel 67 * don't let on-disk corruption crash the kernel
diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index 6c4dfcbf3f55..9e2f6a721668 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -196,7 +196,7 @@ int dbMount(struct inode *ipbmap)
196 bmp->db_maxag = le32_to_cpu(dbmp_le->dn_maxag); 196 bmp->db_maxag = le32_to_cpu(dbmp_le->dn_maxag);
197 bmp->db_agpref = le32_to_cpu(dbmp_le->dn_agpref); 197 bmp->db_agpref = le32_to_cpu(dbmp_le->dn_agpref);
198 bmp->db_aglevel = le32_to_cpu(dbmp_le->dn_aglevel); 198 bmp->db_aglevel = le32_to_cpu(dbmp_le->dn_aglevel);
199 bmp->db_agheigth = le32_to_cpu(dbmp_le->dn_agheigth); 199 bmp->db_agheight = le32_to_cpu(dbmp_le->dn_agheight);
200 bmp->db_agwidth = le32_to_cpu(dbmp_le->dn_agwidth); 200 bmp->db_agwidth = le32_to_cpu(dbmp_le->dn_agwidth);
201 bmp->db_agstart = le32_to_cpu(dbmp_le->dn_agstart); 201 bmp->db_agstart = le32_to_cpu(dbmp_le->dn_agstart);
202 bmp->db_agl2size = le32_to_cpu(dbmp_le->dn_agl2size); 202 bmp->db_agl2size = le32_to_cpu(dbmp_le->dn_agl2size);
@@ -288,7 +288,7 @@ int dbSync(struct inode *ipbmap)
288 dbmp_le->dn_maxag = cpu_to_le32(bmp->db_maxag); 288 dbmp_le->dn_maxag = cpu_to_le32(bmp->db_maxag);
289 dbmp_le->dn_agpref = cpu_to_le32(bmp->db_agpref); 289 dbmp_le->dn_agpref = cpu_to_le32(bmp->db_agpref);
290 dbmp_le->dn_aglevel = cpu_to_le32(bmp->db_aglevel); 290 dbmp_le->dn_aglevel = cpu_to_le32(bmp->db_aglevel);
291 dbmp_le->dn_agheigth = cpu_to_le32(bmp->db_agheigth); 291 dbmp_le->dn_agheight = cpu_to_le32(bmp->db_agheight);
292 dbmp_le->dn_agwidth = cpu_to_le32(bmp->db_agwidth); 292 dbmp_le->dn_agwidth = cpu_to_le32(bmp->db_agwidth);
293 dbmp_le->dn_agstart = cpu_to_le32(bmp->db_agstart); 293 dbmp_le->dn_agstart = cpu_to_le32(bmp->db_agstart);
294 dbmp_le->dn_agl2size = cpu_to_le32(bmp->db_agl2size); 294 dbmp_le->dn_agl2size = cpu_to_le32(bmp->db_agl2size);
@@ -1441,7 +1441,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
1441 * tree index of this allocation group within the control page. 1441 * tree index of this allocation group within the control page.
1442 */ 1442 */
1443 agperlev = 1443 agperlev =
1444 (1 << (L2LPERCTL - (bmp->db_agheigth << 1))) / bmp->db_agwidth; 1444 (1 << (L2LPERCTL - (bmp->db_agheight << 1))) / bmp->db_agwidth;
1445 ti = bmp->db_agstart + bmp->db_agwidth * (agno & (agperlev - 1)); 1445 ti = bmp->db_agstart + bmp->db_agwidth * (agno & (agperlev - 1));
1446 1446
1447 /* dmap control page trees fan-out by 4 and a single allocation 1447 /* dmap control page trees fan-out by 4 and a single allocation
@@ -1460,7 +1460,7 @@ dbAllocAG(struct bmap * bmp, int agno, s64 nblocks, int l2nb, s64 * results)
1460 * the subtree to find the leftmost leaf that describes this 1460 * the subtree to find the leftmost leaf that describes this
1461 * free space. 1461 * free space.
1462 */ 1462 */
1463 for (k = bmp->db_agheigth; k > 0; k--) { 1463 for (k = bmp->db_agheight; k > 0; k--) {
1464 for (n = 0, m = (ti << 2) + 1; n < 4; n++) { 1464 for (n = 0, m = (ti << 2) + 1; n < 4; n++) {
1465 if (l2nb <= dcp->stree[m + n]) { 1465 if (l2nb <= dcp->stree[m + n]) {
1466 ti = m + n; 1466 ti = m + n;
@@ -3607,7 +3607,7 @@ void dbFinalizeBmap(struct inode *ipbmap)
3607 } 3607 }
3608 3608
3609 /* 3609 /*
3610 * compute db_aglevel, db_agheigth, db_width, db_agstart: 3610 * compute db_aglevel, db_agheight, db_width, db_agstart:
3611 * an ag is covered in aglevel dmapctl summary tree, 3611 * an ag is covered in aglevel dmapctl summary tree,
3612 * at agheight level height (from leaf) with agwidth number of nodes 3612 * at agheight level height (from leaf) with agwidth number of nodes
3613 * each, which starts at agstart index node of the smmary tree node 3613 * each, which starts at agstart index node of the smmary tree node
@@ -3616,9 +3616,9 @@ void dbFinalizeBmap(struct inode *ipbmap)
3616 bmp->db_aglevel = BMAPSZTOLEV(bmp->db_agsize); 3616 bmp->db_aglevel = BMAPSZTOLEV(bmp->db_agsize);
3617 l2nl = 3617 l2nl =
3618 bmp->db_agl2size - (L2BPERDMAP + bmp->db_aglevel * L2LPERCTL); 3618 bmp->db_agl2size - (L2BPERDMAP + bmp->db_aglevel * L2LPERCTL);
3619 bmp->db_agheigth = l2nl >> 1; 3619 bmp->db_agheight = l2nl >> 1;
3620 bmp->db_agwidth = 1 << (l2nl - (bmp->db_agheigth << 1)); 3620 bmp->db_agwidth = 1 << (l2nl - (bmp->db_agheight << 1));
3621 for (i = 5 - bmp->db_agheigth, bmp->db_agstart = 0, n = 1; i > 0; 3621 for (i = 5 - bmp->db_agheight, bmp->db_agstart = 0, n = 1; i > 0;
3622 i--) { 3622 i--) {
3623 bmp->db_agstart += n; 3623 bmp->db_agstart += n;
3624 n <<= 2; 3624 n <<= 2;
diff --git a/fs/jfs/jfs_dmap.h b/fs/jfs/jfs_dmap.h
index 1a6eb41569bc..6dcb906c55d8 100644
--- a/fs/jfs/jfs_dmap.h
+++ b/fs/jfs/jfs_dmap.h
@@ -210,7 +210,7 @@ struct dbmap_disk {
210 __le32 dn_maxag; /* 4: max active alloc group number */ 210 __le32 dn_maxag; /* 4: max active alloc group number */
211 __le32 dn_agpref; /* 4: preferred alloc group (hint) */ 211 __le32 dn_agpref; /* 4: preferred alloc group (hint) */
212 __le32 dn_aglevel; /* 4: dmapctl level holding the AG */ 212 __le32 dn_aglevel; /* 4: dmapctl level holding the AG */
213 __le32 dn_agheigth; /* 4: height in dmapctl of the AG */ 213 __le32 dn_agheight; /* 4: height in dmapctl of the AG */
214 __le32 dn_agwidth; /* 4: width in dmapctl of the AG */ 214 __le32 dn_agwidth; /* 4: width in dmapctl of the AG */
215 __le32 dn_agstart; /* 4: start tree index at AG height */ 215 __le32 dn_agstart; /* 4: start tree index at AG height */
216 __le32 dn_agl2size; /* 4: l2 num of blks per alloc group */ 216 __le32 dn_agl2size; /* 4: l2 num of blks per alloc group */
@@ -229,7 +229,7 @@ struct dbmap {
229 int dn_maxag; /* max active alloc group number */ 229 int dn_maxag; /* max active alloc group number */
230 int dn_agpref; /* preferred alloc group (hint) */ 230 int dn_agpref; /* preferred alloc group (hint) */
231 int dn_aglevel; /* dmapctl level holding the AG */ 231 int dn_aglevel; /* dmapctl level holding the AG */
232 int dn_agheigth; /* height in dmapctl of the AG */ 232 int dn_agheight; /* height in dmapctl of the AG */
233 int dn_agwidth; /* width in dmapctl of the AG */ 233 int dn_agwidth; /* width in dmapctl of the AG */
234 int dn_agstart; /* start tree index at AG height */ 234 int dn_agstart; /* start tree index at AG height */
235 int dn_agl2size; /* l2 num of blks per alloc group */ 235 int dn_agl2size; /* l2 num of blks per alloc group */
@@ -255,7 +255,7 @@ struct bmap {
255#define db_agsize db_bmap.dn_agsize 255#define db_agsize db_bmap.dn_agsize
256#define db_agl2size db_bmap.dn_agl2size 256#define db_agl2size db_bmap.dn_agl2size
257#define db_agwidth db_bmap.dn_agwidth 257#define db_agwidth db_bmap.dn_agwidth
258#define db_agheigth db_bmap.dn_agheigth 258#define db_agheight db_bmap.dn_agheight
259#define db_agstart db_bmap.dn_agstart 259#define db_agstart db_bmap.dn_agstart
260#define db_numag db_bmap.dn_numag 260#define db_numag db_bmap.dn_numag
261#define db_maxlevel db_bmap.dn_maxlevel 261#define db_maxlevel db_bmap.dn_maxlevel
diff --git a/fs/jfs/jfs_inode.h b/fs/jfs/jfs_inode.h
index 79e2c79661df..9e6bda30a6e8 100644
--- a/fs/jfs/jfs_inode.h
+++ b/fs/jfs/jfs_inode.h
@@ -48,5 +48,6 @@ extern const struct file_operations jfs_dir_operations;
48extern const struct inode_operations jfs_file_inode_operations; 48extern const struct inode_operations jfs_file_inode_operations;
49extern const struct file_operations jfs_file_operations; 49extern const struct file_operations jfs_file_operations;
50extern const struct inode_operations jfs_symlink_inode_operations; 50extern const struct inode_operations jfs_symlink_inode_operations;
51extern const struct inode_operations jfs_fast_symlink_inode_operations;
51extern const struct dentry_operations jfs_ci_dentry_operations; 52extern const struct dentry_operations jfs_ci_dentry_operations;
52#endif /* _H_JFS_INODE */ 53#endif /* _H_JFS_INODE */
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
index 4a3e9f39c21d..a9cf8e8675be 100644
--- a/fs/jfs/namei.c
+++ b/fs/jfs/namei.c
@@ -956,7 +956,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry,
956 */ 956 */
957 957
958 if (ssize <= IDATASIZE) { 958 if (ssize <= IDATASIZE) {
959 ip->i_op = &jfs_symlink_inode_operations; 959 ip->i_op = &jfs_fast_symlink_inode_operations;
960 960
961 i_fastsymlink = JFS_IP(ip)->i_inline; 961 i_fastsymlink = JFS_IP(ip)->i_inline;
962 memcpy(i_fastsymlink, name, ssize); 962 memcpy(i_fastsymlink, name, ssize);
@@ -978,7 +978,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry,
978 else { 978 else {
979 jfs_info("jfs_symlink: allocate extent ip:0x%p", ip); 979 jfs_info("jfs_symlink: allocate extent ip:0x%p", ip);
980 980
981 ip->i_op = &page_symlink_inode_operations; 981 ip->i_op = &jfs_symlink_inode_operations;
982 ip->i_mapping->a_ops = &jfs_aops; 982 ip->i_mapping->a_ops = &jfs_aops;
983 983
984 /* 984 /*
diff --git a/fs/jfs/resize.c b/fs/jfs/resize.c
index 7f24a0bb08ca..1aba0039f1c9 100644
--- a/fs/jfs/resize.c
+++ b/fs/jfs/resize.c
@@ -81,6 +81,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
81 struct inode *iplist[1]; 81 struct inode *iplist[1];
82 struct jfs_superblock *j_sb, *j_sb2; 82 struct jfs_superblock *j_sb, *j_sb2;
83 uint old_agsize; 83 uint old_agsize;
84 int agsizechanged = 0;
84 struct buffer_head *bh, *bh2; 85 struct buffer_head *bh, *bh2;
85 86
86 /* If the volume hasn't grown, get out now */ 87 /* If the volume hasn't grown, get out now */
@@ -333,6 +334,9 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
333 */ 334 */
334 if ((rc = dbExtendFS(ipbmap, XAddress, nblocks))) 335 if ((rc = dbExtendFS(ipbmap, XAddress, nblocks)))
335 goto error_out; 336 goto error_out;
337
338 agsizechanged |= (bmp->db_agsize != old_agsize);
339
336 /* 340 /*
337 * the map now has extended to cover additional nblocks: 341 * the map now has extended to cover additional nblocks:
338 * dn_mapsize = oldMapsize + nblocks; 342 * dn_mapsize = oldMapsize + nblocks;
@@ -432,7 +436,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
432 * will correctly identify the new ag); 436 * will correctly identify the new ag);
433 */ 437 */
434 /* if new AG size the same as old AG size, done! */ 438 /* if new AG size the same as old AG size, done! */
435 if (bmp->db_agsize != old_agsize) { 439 if (agsizechanged) {
436 if ((rc = diExtendFS(ipimap, ipbmap))) 440 if ((rc = diExtendFS(ipimap, ipbmap)))
437 goto error_out; 441 goto error_out;
438 442
diff --git a/fs/jfs/symlink.c b/fs/jfs/symlink.c
index 4af1a05aad0a..205b946d8e0d 100644
--- a/fs/jfs/symlink.c
+++ b/fs/jfs/symlink.c
@@ -29,9 +29,21 @@ static void *jfs_follow_link(struct dentry *dentry, struct nameidata *nd)
29 return NULL; 29 return NULL;
30} 30}
31 31
32const struct inode_operations jfs_symlink_inode_operations = { 32const struct inode_operations jfs_fast_symlink_inode_operations = {
33 .readlink = generic_readlink, 33 .readlink = generic_readlink,
34 .follow_link = jfs_follow_link, 34 .follow_link = jfs_follow_link,
35 .setattr = jfs_setattr,
36 .setxattr = jfs_setxattr,
37 .getxattr = jfs_getxattr,
38 .listxattr = jfs_listxattr,
39 .removexattr = jfs_removexattr,
40};
41
42const struct inode_operations jfs_symlink_inode_operations = {
43 .readlink = generic_readlink,
44 .follow_link = page_follow_link_light,
45 .put_link = page_put_link,
46 .setattr = jfs_setattr,
35 .setxattr = jfs_setxattr, 47 .setxattr = jfs_setxattr,
36 .getxattr = jfs_getxattr, 48 .getxattr = jfs_getxattr,
37 .listxattr = jfs_listxattr, 49 .listxattr = jfs_listxattr,
diff --git a/fs/logfs/gc.c b/fs/logfs/gc.c
index 84e36f52fe95..76c242fbe1b0 100644
--- a/fs/logfs/gc.c
+++ b/fs/logfs/gc.c
@@ -459,6 +459,14 @@ static void __logfs_gc_pass(struct super_block *sb, int target)
459 struct logfs_block *block; 459 struct logfs_block *block;
460 int round, progress, last_progress = 0; 460 int round, progress, last_progress = 0;
461 461
462 /*
463 * Doing too many changes to the segfile at once would result
464 * in a large number of aliases. Write the journal before
465 * things get out of hand.
466 */
467 if (super->s_shadow_tree.no_shadowed_segments >= MAX_OBJ_ALIASES)
468 logfs_write_anchor(sb);
469
462 if (no_free_segments(sb) >= target && 470 if (no_free_segments(sb) >= target &&
463 super->s_no_object_aliases < MAX_OBJ_ALIASES) 471 super->s_no_object_aliases < MAX_OBJ_ALIASES)
464 return; 472 return;
diff --git a/fs/logfs/journal.c b/fs/logfs/journal.c
index 33bd260b8309..fb0a613f885b 100644
--- a/fs/logfs/journal.c
+++ b/fs/logfs/journal.c
@@ -389,7 +389,10 @@ static void journal_get_erase_count(struct logfs_area *area)
389static int journal_erase_segment(struct logfs_area *area) 389static int journal_erase_segment(struct logfs_area *area)
390{ 390{
391 struct super_block *sb = area->a_sb; 391 struct super_block *sb = area->a_sb;
392 struct logfs_segment_header sh; 392 union {
393 struct logfs_segment_header sh;
394 unsigned char c[ALIGN(sizeof(struct logfs_segment_header), 16)];
395 } u;
393 u64 ofs; 396 u64 ofs;
394 int err; 397 int err;
395 398
@@ -397,20 +400,21 @@ static int journal_erase_segment(struct logfs_area *area)
397 if (err) 400 if (err)
398 return err; 401 return err;
399 402
400 sh.pad = 0; 403 memset(&u, 0, sizeof(u));
401 sh.type = SEG_JOURNAL; 404 u.sh.pad = 0;
402 sh.level = 0; 405 u.sh.type = SEG_JOURNAL;
403 sh.segno = cpu_to_be32(area->a_segno); 406 u.sh.level = 0;
404 sh.ec = cpu_to_be32(area->a_erase_count); 407 u.sh.segno = cpu_to_be32(area->a_segno);
405 sh.gec = cpu_to_be64(logfs_super(sb)->s_gec); 408 u.sh.ec = cpu_to_be32(area->a_erase_count);
406 sh.crc = logfs_crc32(&sh, sizeof(sh), 4); 409 u.sh.gec = cpu_to_be64(logfs_super(sb)->s_gec);
410 u.sh.crc = logfs_crc32(&u.sh, sizeof(u.sh), 4);
407 411
408 /* This causes a bug in segment.c. Not yet. */ 412 /* This causes a bug in segment.c. Not yet. */
409 //logfs_set_segment_erased(sb, area->a_segno, area->a_erase_count, 0); 413 //logfs_set_segment_erased(sb, area->a_segno, area->a_erase_count, 0);
410 414
411 ofs = dev_ofs(sb, area->a_segno, 0); 415 ofs = dev_ofs(sb, area->a_segno, 0);
412 area->a_used_bytes = ALIGN(sizeof(sh), 16); 416 area->a_used_bytes = sizeof(u);
413 logfs_buf_write(area, ofs, &sh, sizeof(sh)); 417 logfs_buf_write(area, ofs, &u, sizeof(u));
414 return 0; 418 return 0;
415} 419}
416 420
@@ -494,6 +498,8 @@ static void account_shadows(struct super_block *sb)
494 498
495 btree_grim_visitor64(&tree->new, (unsigned long)sb, account_shadow); 499 btree_grim_visitor64(&tree->new, (unsigned long)sb, account_shadow);
496 btree_grim_visitor64(&tree->old, (unsigned long)sb, account_shadow); 500 btree_grim_visitor64(&tree->old, (unsigned long)sb, account_shadow);
501 btree_grim_visitor32(&tree->segment_map, 0, NULL);
502 tree->no_shadowed_segments = 0;
497 503
498 if (li->li_block) { 504 if (li->li_block) {
499 /* 505 /*
@@ -607,9 +613,9 @@ static size_t __logfs_write_je(struct super_block *sb, void *buf, u16 type,
607 if (len == 0) 613 if (len == 0)
608 return logfs_write_header(super, header, 0, type); 614 return logfs_write_header(super, header, 0, type);
609 615
616 BUG_ON(len > sb->s_blocksize);
610 compr_len = logfs_compress(buf, data, len, sb->s_blocksize); 617 compr_len = logfs_compress(buf, data, len, sb->s_blocksize);
611 if (compr_len < 0 || type == JE_ANCHOR) { 618 if (compr_len < 0 || type == JE_ANCHOR) {
612 BUG_ON(len > sb->s_blocksize);
613 memcpy(data, buf, len); 619 memcpy(data, buf, len);
614 compr_len = len; 620 compr_len = len;
615 compr = COMPR_NONE; 621 compr = COMPR_NONE;
@@ -661,6 +667,7 @@ static int logfs_write_je_buf(struct super_block *sb, void *buf, u16 type,
661 if (ofs < 0) 667 if (ofs < 0)
662 return ofs; 668 return ofs;
663 logfs_buf_write(area, ofs, super->s_compressed_je, len); 669 logfs_buf_write(area, ofs, super->s_compressed_je, len);
670 BUG_ON(super->s_no_je >= MAX_JOURNAL_ENTRIES);
664 super->s_je_array[super->s_no_je++] = cpu_to_be64(ofs); 671 super->s_je_array[super->s_no_je++] = cpu_to_be64(ofs);
665 return 0; 672 return 0;
666} 673}
diff --git a/fs/logfs/logfs.h b/fs/logfs/logfs.h
index b84b0eec6024..0a3df1a0c936 100644
--- a/fs/logfs/logfs.h
+++ b/fs/logfs/logfs.h
@@ -257,10 +257,14 @@ struct logfs_shadow {
257 * struct shadow_tree 257 * struct shadow_tree
258 * @new: shadows where old_ofs==0, indexed by new_ofs 258 * @new: shadows where old_ofs==0, indexed by new_ofs
259 * @old: shadows where old_ofs!=0, indexed by old_ofs 259 * @old: shadows where old_ofs!=0, indexed by old_ofs
260 * @segment_map: bitfield of segments containing shadows
261 * @no_shadowed_segment: number of segments containing shadows
260 */ 262 */
261struct shadow_tree { 263struct shadow_tree {
262 struct btree_head64 new; 264 struct btree_head64 new;
263 struct btree_head64 old; 265 struct btree_head64 old;
266 struct btree_head32 segment_map;
267 int no_shadowed_segments;
264}; 268};
265 269
266struct object_alias_item { 270struct object_alias_item {
@@ -305,13 +309,14 @@ typedef int write_alias_t(struct super_block *sb, u64 ino, u64 bix,
305 level_t level, int child_no, __be64 val); 309 level_t level, int child_no, __be64 val);
306struct logfs_block_ops { 310struct logfs_block_ops {
307 void (*write_block)(struct logfs_block *block); 311 void (*write_block)(struct logfs_block *block);
308 gc_level_t (*block_level)(struct logfs_block *block);
309 void (*free_block)(struct super_block *sb, struct logfs_block*block); 312 void (*free_block)(struct super_block *sb, struct logfs_block*block);
310 int (*write_alias)(struct super_block *sb, 313 int (*write_alias)(struct super_block *sb,
311 struct logfs_block *block, 314 struct logfs_block *block,
312 write_alias_t *write_one_alias); 315 write_alias_t *write_one_alias);
313}; 316};
314 317
318#define MAX_JOURNAL_ENTRIES 256
319
315struct logfs_super { 320struct logfs_super {
316 struct mtd_info *s_mtd; /* underlying device */ 321 struct mtd_info *s_mtd; /* underlying device */
317 struct block_device *s_bdev; /* underlying device */ 322 struct block_device *s_bdev; /* underlying device */
@@ -378,7 +383,7 @@ struct logfs_super {
378 u32 s_journal_ec[LOGFS_JOURNAL_SEGS]; /* journal erasecounts */ 383 u32 s_journal_ec[LOGFS_JOURNAL_SEGS]; /* journal erasecounts */
379 u64 s_last_version; 384 u64 s_last_version;
380 struct logfs_area *s_journal_area; /* open journal segment */ 385 struct logfs_area *s_journal_area; /* open journal segment */
381 __be64 s_je_array[64]; 386 __be64 s_je_array[MAX_JOURNAL_ENTRIES];
382 int s_no_je; 387 int s_no_je;
383 388
384 int s_sum_index; /* for the 12 summaries */ 389 int s_sum_index; /* for the 12 summaries */
@@ -722,4 +727,10 @@ static inline struct logfs_area *get_area(struct super_block *sb,
722 return logfs_super(sb)->s_area[(__force u8)gc_level]; 727 return logfs_super(sb)->s_area[(__force u8)gc_level];
723} 728}
724 729
730static inline void logfs_mempool_destroy(mempool_t *pool)
731{
732 if (pool)
733 mempool_destroy(pool);
734}
735
725#endif 736#endif
diff --git a/fs/logfs/readwrite.c b/fs/logfs/readwrite.c
index bff40253dfb2..3159db6958e5 100644
--- a/fs/logfs/readwrite.c
+++ b/fs/logfs/readwrite.c
@@ -430,25 +430,6 @@ static void inode_write_block(struct logfs_block *block)
430 } 430 }
431} 431}
432 432
433static gc_level_t inode_block_level(struct logfs_block *block)
434{
435 BUG_ON(block->inode->i_ino == LOGFS_INO_MASTER);
436 return GC_LEVEL(LOGFS_MAX_LEVELS);
437}
438
439static gc_level_t indirect_block_level(struct logfs_block *block)
440{
441 struct page *page;
442 struct inode *inode;
443 u64 bix;
444 level_t level;
445
446 page = block->page;
447 inode = page->mapping->host;
448 logfs_unpack_index(page->index, &bix, &level);
449 return expand_level(inode->i_ino, level);
450}
451
452/* 433/*
453 * This silences a false, yet annoying gcc warning. I hate it when my editor 434 * This silences a false, yet annoying gcc warning. I hate it when my editor
454 * jumps into bitops.h each time I recompile this file. 435 * jumps into bitops.h each time I recompile this file.
@@ -587,14 +568,12 @@ static void indirect_free_block(struct super_block *sb,
587 568
588static struct logfs_block_ops inode_block_ops = { 569static struct logfs_block_ops inode_block_ops = {
589 .write_block = inode_write_block, 570 .write_block = inode_write_block,
590 .block_level = inode_block_level,
591 .free_block = inode_free_block, 571 .free_block = inode_free_block,
592 .write_alias = inode_write_alias, 572 .write_alias = inode_write_alias,
593}; 573};
594 574
595struct logfs_block_ops indirect_block_ops = { 575struct logfs_block_ops indirect_block_ops = {
596 .write_block = indirect_write_block, 576 .write_block = indirect_write_block,
597 .block_level = indirect_block_level,
598 .free_block = indirect_free_block, 577 .free_block = indirect_free_block,
599 .write_alias = indirect_write_alias, 578 .write_alias = indirect_write_alias,
600}; 579};
@@ -1241,6 +1220,18 @@ static void free_shadow(struct inode *inode, struct logfs_shadow *shadow)
1241 mempool_free(shadow, super->s_shadow_pool); 1220 mempool_free(shadow, super->s_shadow_pool);
1242} 1221}
1243 1222
1223static void mark_segment(struct shadow_tree *tree, u32 segno)
1224{
1225 int err;
1226
1227 if (!btree_lookup32(&tree->segment_map, segno)) {
1228 err = btree_insert32(&tree->segment_map, segno, (void *)1,
1229 GFP_NOFS);
1230 BUG_ON(err);
1231 tree->no_shadowed_segments++;
1232 }
1233}
1234
1244/** 1235/**
1245 * fill_shadow_tree - Propagate shadow tree changes due to a write 1236 * fill_shadow_tree - Propagate shadow tree changes due to a write
1246 * @inode: Inode owning the page 1237 * @inode: Inode owning the page
@@ -1288,6 +1279,8 @@ static void fill_shadow_tree(struct inode *inode, struct page *page,
1288 1279
1289 super->s_dirty_used_bytes += shadow->new_len; 1280 super->s_dirty_used_bytes += shadow->new_len;
1290 super->s_dirty_free_bytes += shadow->old_len; 1281 super->s_dirty_free_bytes += shadow->old_len;
1282 mark_segment(tree, shadow->old_ofs >> super->s_segshift);
1283 mark_segment(tree, shadow->new_ofs >> super->s_segshift);
1291 } 1284 }
1292} 1285}
1293 1286
@@ -1845,19 +1838,37 @@ static int __logfs_truncate(struct inode *inode, u64 size)
1845 return logfs_truncate_direct(inode, size); 1838 return logfs_truncate_direct(inode, size);
1846} 1839}
1847 1840
1848int logfs_truncate(struct inode *inode, u64 size) 1841/*
1842 * Truncate, by changing the segment file, can consume a fair amount
1843 * of resources. So back off from time to time and do some GC.
1844 * 8 or 2048 blocks should be well within safety limits even if
1845 * every single block resided in a different segment.
1846 */
1847#define TRUNCATE_STEP (8 * 1024 * 1024)
1848int logfs_truncate(struct inode *inode, u64 target)
1849{ 1849{
1850 struct super_block *sb = inode->i_sb; 1850 struct super_block *sb = inode->i_sb;
1851 int err; 1851 u64 size = i_size_read(inode);
1852 int err = 0;
1852 1853
1853 logfs_get_wblocks(sb, NULL, 1); 1854 size = ALIGN(size, TRUNCATE_STEP);
1854 err = __logfs_truncate(inode, size); 1855 while (size > target) {
1855 if (!err) 1856 if (size > TRUNCATE_STEP)
1856 err = __logfs_write_inode(inode, 0); 1857 size -= TRUNCATE_STEP;
1857 logfs_put_wblocks(sb, NULL, 1); 1858 else
1859 size = 0;
1860 if (size < target)
1861 size = target;
1862
1863 logfs_get_wblocks(sb, NULL, 1);
1864 err = __logfs_truncate(inode, target);
1865 if (!err)
1866 err = __logfs_write_inode(inode, 0);
1867 logfs_put_wblocks(sb, NULL, 1);
1868 }
1858 1869
1859 if (!err) 1870 if (!err)
1860 err = vmtruncate(inode, size); 1871 err = vmtruncate(inode, target);
1861 1872
1862 /* I don't trust error recovery yet. */ 1873 /* I don't trust error recovery yet. */
1863 WARN_ON(err); 1874 WARN_ON(err);
@@ -2251,8 +2262,6 @@ void logfs_cleanup_rw(struct super_block *sb)
2251 struct logfs_super *super = logfs_super(sb); 2262 struct logfs_super *super = logfs_super(sb);
2252 2263
2253 destroy_meta_inode(super->s_segfile_inode); 2264 destroy_meta_inode(super->s_segfile_inode);
2254 if (super->s_block_pool) 2265 logfs_mempool_destroy(super->s_block_pool);
2255 mempool_destroy(super->s_block_pool); 2266 logfs_mempool_destroy(super->s_shadow_pool);
2256 if (super->s_shadow_pool)
2257 mempool_destroy(super->s_shadow_pool);
2258} 2267}
diff --git a/fs/logfs/segment.c b/fs/logfs/segment.c
index 801a3a141625..f77ce2b470ba 100644
--- a/fs/logfs/segment.c
+++ b/fs/logfs/segment.c
@@ -183,14 +183,8 @@ static int btree_write_alias(struct super_block *sb, struct logfs_block *block,
183 return 0; 183 return 0;
184} 184}
185 185
186static gc_level_t btree_block_level(struct logfs_block *block)
187{
188 return expand_level(block->ino, block->level);
189}
190
191static struct logfs_block_ops btree_block_ops = { 186static struct logfs_block_ops btree_block_ops = {
192 .write_block = btree_write_block, 187 .write_block = btree_write_block,
193 .block_level = btree_block_level,
194 .free_block = __free_block, 188 .free_block = __free_block,
195 .write_alias = btree_write_alias, 189 .write_alias = btree_write_alias,
196}; 190};
@@ -919,7 +913,7 @@ err:
919 for (i--; i >= 0; i--) 913 for (i--; i >= 0; i--)
920 free_area(super->s_area[i]); 914 free_area(super->s_area[i]);
921 free_area(super->s_journal_area); 915 free_area(super->s_journal_area);
922 mempool_destroy(super->s_alias_pool); 916 logfs_mempool_destroy(super->s_alias_pool);
923 return -ENOMEM; 917 return -ENOMEM;
924} 918}
925 919
diff --git a/fs/logfs/super.c b/fs/logfs/super.c
index b60bfac3263c..5866ee6e1327 100644
--- a/fs/logfs/super.c
+++ b/fs/logfs/super.c
@@ -12,6 +12,7 @@
12#include "logfs.h" 12#include "logfs.h"
13#include <linux/bio.h> 13#include <linux/bio.h>
14#include <linux/slab.h> 14#include <linux/slab.h>
15#include <linux/blkdev.h>
15#include <linux/mtd/mtd.h> 16#include <linux/mtd/mtd.h>
16#include <linux/statfs.h> 17#include <linux/statfs.h>
17#include <linux/buffer_head.h> 18#include <linux/buffer_head.h>
@@ -137,6 +138,10 @@ static int logfs_sb_set(struct super_block *sb, void *_super)
137 sb->s_fs_info = super; 138 sb->s_fs_info = super;
138 sb->s_mtd = super->s_mtd; 139 sb->s_mtd = super->s_mtd;
139 sb->s_bdev = super->s_bdev; 140 sb->s_bdev = super->s_bdev;
141 if (sb->s_bdev)
142 sb->s_bdi = &bdev_get_queue(sb->s_bdev)->backing_dev_info;
143 if (sb->s_mtd)
144 sb->s_bdi = sb->s_mtd->backing_dev_info;
140 return 0; 145 return 0;
141} 146}
142 147
@@ -452,6 +457,8 @@ static int logfs_read_sb(struct super_block *sb, int read_only)
452 457
453 btree_init_mempool64(&super->s_shadow_tree.new, super->s_btree_pool); 458 btree_init_mempool64(&super->s_shadow_tree.new, super->s_btree_pool);
454 btree_init_mempool64(&super->s_shadow_tree.old, super->s_btree_pool); 459 btree_init_mempool64(&super->s_shadow_tree.old, super->s_btree_pool);
460 btree_init_mempool32(&super->s_shadow_tree.segment_map,
461 super->s_btree_pool);
455 462
456 ret = logfs_init_mapping(sb); 463 ret = logfs_init_mapping(sb);
457 if (ret) 464 if (ret)
@@ -516,8 +523,8 @@ static void logfs_kill_sb(struct super_block *sb)
516 if (super->s_erase_page) 523 if (super->s_erase_page)
517 __free_page(super->s_erase_page); 524 __free_page(super->s_erase_page);
518 super->s_devops->put_device(sb); 525 super->s_devops->put_device(sb);
519 mempool_destroy(super->s_btree_pool); 526 logfs_mempool_destroy(super->s_btree_pool);
520 mempool_destroy(super->s_alias_pool); 527 logfs_mempool_destroy(super->s_alias_pool);
521 kfree(super); 528 kfree(super);
522 log_super("LogFS: Finished unmounting\n"); 529 log_super("LogFS: Finished unmounting\n");
523} 530}
diff --git a/fs/namei.c b/fs/namei.c
index a7dce91a7e42..16df7277a92e 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1641,7 +1641,7 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
1641 if (nd->last.name[nd->last.len]) { 1641 if (nd->last.name[nd->last.len]) {
1642 if (open_flag & O_CREAT) 1642 if (open_flag & O_CREAT)
1643 goto exit; 1643 goto exit;
1644 nd->flags |= LOOKUP_DIRECTORY; 1644 nd->flags |= LOOKUP_DIRECTORY | LOOKUP_FOLLOW;
1645 } 1645 }
1646 1646
1647 /* just plain open? */ 1647 /* just plain open? */
@@ -1830,6 +1830,8 @@ reval:
1830 } 1830 }
1831 if (open_flag & O_DIRECTORY) 1831 if (open_flag & O_DIRECTORY)
1832 nd.flags |= LOOKUP_DIRECTORY; 1832 nd.flags |= LOOKUP_DIRECTORY;
1833 if (!(open_flag & O_NOFOLLOW))
1834 nd.flags |= LOOKUP_FOLLOW;
1833 filp = do_last(&nd, &path, open_flag, acc_mode, mode, pathname); 1835 filp = do_last(&nd, &path, open_flag, acc_mode, mode, pathname);
1834 while (unlikely(!filp)) { /* trailing symlink */ 1836 while (unlikely(!filp)) { /* trailing symlink */
1835 struct path holder; 1837 struct path holder;
@@ -1837,7 +1839,7 @@ reval:
1837 void *cookie; 1839 void *cookie;
1838 error = -ELOOP; 1840 error = -ELOOP;
1839 /* S_ISDIR part is a temporary automount kludge */ 1841 /* S_ISDIR part is a temporary automount kludge */
1840 if ((open_flag & O_NOFOLLOW) && !S_ISDIR(inode->i_mode)) 1842 if (!(nd.flags & LOOKUP_FOLLOW) && !S_ISDIR(inode->i_mode))
1841 goto exit_dput; 1843 goto exit_dput;
1842 if (count++ == 32) 1844 if (count++ == 32)
1843 goto exit_dput; 1845 goto exit_dput;
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c
index cf98da1be23e..fa3385154023 100644
--- a/fs/ncpfs/inode.c
+++ b/fs/ncpfs/inode.c
@@ -526,10 +526,15 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)
526 sb->s_blocksize_bits = 10; 526 sb->s_blocksize_bits = 10;
527 sb->s_magic = NCP_SUPER_MAGIC; 527 sb->s_magic = NCP_SUPER_MAGIC;
528 sb->s_op = &ncp_sops; 528 sb->s_op = &ncp_sops;
529 sb->s_bdi = &server->bdi;
529 530
530 server = NCP_SBP(sb); 531 server = NCP_SBP(sb);
531 memset(server, 0, sizeof(*server)); 532 memset(server, 0, sizeof(*server));
532 533
534 error = bdi_setup_and_register(&server->bdi, "ncpfs", BDI_CAP_MAP_COPY);
535 if (error)
536 goto out_bdi;
537
533 server->ncp_filp = ncp_filp; 538 server->ncp_filp = ncp_filp;
534 server->ncp_sock = sock; 539 server->ncp_sock = sock;
535 540
@@ -719,6 +724,8 @@ out_fput2:
719 if (server->info_filp) 724 if (server->info_filp)
720 fput(server->info_filp); 725 fput(server->info_filp);
721out_fput: 726out_fput:
727 bdi_destroy(&server->bdi);
728out_bdi:
722 /* 23/12/1998 Marcin Dalecki <dalecki@cs.net.pl>: 729 /* 23/12/1998 Marcin Dalecki <dalecki@cs.net.pl>:
723 * 730 *
724 * The previously used put_filp(ncp_filp); was bogous, since 731 * The previously used put_filp(ncp_filp); was bogous, since
@@ -756,6 +763,7 @@ static void ncp_put_super(struct super_block *sb)
756 kill_pid(server->m.wdog_pid, SIGTERM, 1); 763 kill_pid(server->m.wdog_pid, SIGTERM, 1);
757 put_pid(server->m.wdog_pid); 764 put_pid(server->m.wdog_pid);
758 765
766 bdi_destroy(&server->bdi);
759 kfree(server->priv.data); 767 kfree(server->priv.data);
760 kfree(server->auth.object_name); 768 kfree(server->auth.object_name);
761 vfree(server->rxbuf); 769 vfree(server->rxbuf);
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index a8766c4ef2e0..acc9c4943b84 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -966,6 +966,8 @@ out_error:
966static void nfs_server_copy_userdata(struct nfs_server *target, struct nfs_server *source) 966static void nfs_server_copy_userdata(struct nfs_server *target, struct nfs_server *source)
967{ 967{
968 target->flags = source->flags; 968 target->flags = source->flags;
969 target->rsize = source->rsize;
970 target->wsize = source->wsize;
969 target->acregmin = source->acregmin; 971 target->acregmin = source->acregmin;
970 target->acregmax = source->acregmax; 972 target->acregmax = source->acregmax;
971 target->acdirmin = source->acdirmin; 973 target->acdirmin = source->acdirmin;
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index 15671245c6ee..ea61d26e7871 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -24,6 +24,8 @@
24 24
25static void nfs_do_free_delegation(struct nfs_delegation *delegation) 25static void nfs_do_free_delegation(struct nfs_delegation *delegation)
26{ 26{
27 if (delegation->cred)
28 put_rpccred(delegation->cred);
27 kfree(delegation); 29 kfree(delegation);
28} 30}
29 31
@@ -36,13 +38,7 @@ static void nfs_free_delegation_callback(struct rcu_head *head)
36 38
37static void nfs_free_delegation(struct nfs_delegation *delegation) 39static void nfs_free_delegation(struct nfs_delegation *delegation)
38{ 40{
39 struct rpc_cred *cred;
40
41 cred = rcu_dereference(delegation->cred);
42 rcu_assign_pointer(delegation->cred, NULL);
43 call_rcu(&delegation->rcu, nfs_free_delegation_callback); 41 call_rcu(&delegation->rcu, nfs_free_delegation_callback);
44 if (cred)
45 put_rpccred(cred);
46} 42}
47 43
48void nfs_mark_delegation_referenced(struct nfs_delegation *delegation) 44void nfs_mark_delegation_referenced(struct nfs_delegation *delegation)
@@ -129,21 +125,35 @@ again:
129 */ 125 */
130void nfs_inode_reclaim_delegation(struct inode *inode, struct rpc_cred *cred, struct nfs_openres *res) 126void nfs_inode_reclaim_delegation(struct inode *inode, struct rpc_cred *cred, struct nfs_openres *res)
131{ 127{
132 struct nfs_delegation *delegation = NFS_I(inode)->delegation; 128 struct nfs_delegation *delegation;
133 struct rpc_cred *oldcred; 129 struct rpc_cred *oldcred = NULL;
134 130
135 if (delegation == NULL) 131 rcu_read_lock();
136 return; 132 delegation = rcu_dereference(NFS_I(inode)->delegation);
137 memcpy(delegation->stateid.data, res->delegation.data, 133 if (delegation != NULL) {
138 sizeof(delegation->stateid.data)); 134 spin_lock(&delegation->lock);
139 delegation->type = res->delegation_type; 135 if (delegation->inode != NULL) {
140 delegation->maxsize = res->maxsize; 136 memcpy(delegation->stateid.data, res->delegation.data,
141 oldcred = delegation->cred; 137 sizeof(delegation->stateid.data));
142 delegation->cred = get_rpccred(cred); 138 delegation->type = res->delegation_type;
143 clear_bit(NFS_DELEGATION_NEED_RECLAIM, &delegation->flags); 139 delegation->maxsize = res->maxsize;
144 NFS_I(inode)->delegation_state = delegation->type; 140 oldcred = delegation->cred;
145 smp_wmb(); 141 delegation->cred = get_rpccred(cred);
146 put_rpccred(oldcred); 142 clear_bit(NFS_DELEGATION_NEED_RECLAIM,
143 &delegation->flags);
144 NFS_I(inode)->delegation_state = delegation->type;
145 spin_unlock(&delegation->lock);
146 put_rpccred(oldcred);
147 rcu_read_unlock();
148 } else {
149 /* We appear to have raced with a delegation return. */
150 spin_unlock(&delegation->lock);
151 rcu_read_unlock();
152 nfs_inode_set_delegation(inode, cred, res);
153 }
154 } else {
155 rcu_read_unlock();
156 }
147} 157}
148 158
149static int nfs_do_return_delegation(struct inode *inode, struct nfs_delegation *delegation, int issync) 159static int nfs_do_return_delegation(struct inode *inode, struct nfs_delegation *delegation, int issync)
@@ -166,9 +176,13 @@ static struct inode *nfs_delegation_grab_inode(struct nfs_delegation *delegation
166 return inode; 176 return inode;
167} 177}
168 178
169static struct nfs_delegation *nfs_detach_delegation_locked(struct nfs_inode *nfsi, const nfs4_stateid *stateid) 179static struct nfs_delegation *nfs_detach_delegation_locked(struct nfs_inode *nfsi,
180 const nfs4_stateid *stateid,
181 struct nfs_client *clp)
170{ 182{
171 struct nfs_delegation *delegation = rcu_dereference(nfsi->delegation); 183 struct nfs_delegation *delegation =
184 rcu_dereference_protected(nfsi->delegation,
185 lockdep_is_held(&clp->cl_lock));
172 186
173 if (delegation == NULL) 187 if (delegation == NULL)
174 goto nomatch; 188 goto nomatch;
@@ -195,7 +209,7 @@ int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct
195{ 209{
196 struct nfs_client *clp = NFS_SERVER(inode)->nfs_client; 210 struct nfs_client *clp = NFS_SERVER(inode)->nfs_client;
197 struct nfs_inode *nfsi = NFS_I(inode); 211 struct nfs_inode *nfsi = NFS_I(inode);
198 struct nfs_delegation *delegation; 212 struct nfs_delegation *delegation, *old_delegation;
199 struct nfs_delegation *freeme = NULL; 213 struct nfs_delegation *freeme = NULL;
200 int status = 0; 214 int status = 0;
201 215
@@ -213,10 +227,12 @@ int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct
213 spin_lock_init(&delegation->lock); 227 spin_lock_init(&delegation->lock);
214 228
215 spin_lock(&clp->cl_lock); 229 spin_lock(&clp->cl_lock);
216 if (rcu_dereference(nfsi->delegation) != NULL) { 230 old_delegation = rcu_dereference_protected(nfsi->delegation,
217 if (memcmp(&delegation->stateid, &nfsi->delegation->stateid, 231 lockdep_is_held(&clp->cl_lock));
218 sizeof(delegation->stateid)) == 0 && 232 if (old_delegation != NULL) {
219 delegation->type == nfsi->delegation->type) { 233 if (memcmp(&delegation->stateid, &old_delegation->stateid,
234 sizeof(old_delegation->stateid)) == 0 &&
235 delegation->type == old_delegation->type) {
220 goto out; 236 goto out;
221 } 237 }
222 /* 238 /*
@@ -226,12 +242,12 @@ int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct
226 dfprintk(FILE, "%s: server %s handed out " 242 dfprintk(FILE, "%s: server %s handed out "
227 "a duplicate delegation!\n", 243 "a duplicate delegation!\n",
228 __func__, clp->cl_hostname); 244 __func__, clp->cl_hostname);
229 if (delegation->type <= nfsi->delegation->type) { 245 if (delegation->type <= old_delegation->type) {
230 freeme = delegation; 246 freeme = delegation;
231 delegation = NULL; 247 delegation = NULL;
232 goto out; 248 goto out;
233 } 249 }
234 freeme = nfs_detach_delegation_locked(nfsi, NULL); 250 freeme = nfs_detach_delegation_locked(nfsi, NULL, clp);
235 } 251 }
236 list_add_rcu(&delegation->super_list, &clp->cl_delegations); 252 list_add_rcu(&delegation->super_list, &clp->cl_delegations);
237 nfsi->delegation_state = delegation->type; 253 nfsi->delegation_state = delegation->type;
@@ -301,7 +317,7 @@ restart:
301 if (inode == NULL) 317 if (inode == NULL)
302 continue; 318 continue;
303 spin_lock(&clp->cl_lock); 319 spin_lock(&clp->cl_lock);
304 delegation = nfs_detach_delegation_locked(NFS_I(inode), NULL); 320 delegation = nfs_detach_delegation_locked(NFS_I(inode), NULL, clp);
305 spin_unlock(&clp->cl_lock); 321 spin_unlock(&clp->cl_lock);
306 rcu_read_unlock(); 322 rcu_read_unlock();
307 if (delegation != NULL) { 323 if (delegation != NULL) {
@@ -330,9 +346,9 @@ void nfs_inode_return_delegation_noreclaim(struct inode *inode)
330 struct nfs_inode *nfsi = NFS_I(inode); 346 struct nfs_inode *nfsi = NFS_I(inode);
331 struct nfs_delegation *delegation; 347 struct nfs_delegation *delegation;
332 348
333 if (rcu_dereference(nfsi->delegation) != NULL) { 349 if (rcu_access_pointer(nfsi->delegation) != NULL) {
334 spin_lock(&clp->cl_lock); 350 spin_lock(&clp->cl_lock);
335 delegation = nfs_detach_delegation_locked(nfsi, NULL); 351 delegation = nfs_detach_delegation_locked(nfsi, NULL, clp);
336 spin_unlock(&clp->cl_lock); 352 spin_unlock(&clp->cl_lock);
337 if (delegation != NULL) 353 if (delegation != NULL)
338 nfs_do_return_delegation(inode, delegation, 0); 354 nfs_do_return_delegation(inode, delegation, 0);
@@ -346,9 +362,9 @@ int nfs_inode_return_delegation(struct inode *inode)
346 struct nfs_delegation *delegation; 362 struct nfs_delegation *delegation;
347 int err = 0; 363 int err = 0;
348 364
349 if (rcu_dereference(nfsi->delegation) != NULL) { 365 if (rcu_access_pointer(nfsi->delegation) != NULL) {
350 spin_lock(&clp->cl_lock); 366 spin_lock(&clp->cl_lock);
351 delegation = nfs_detach_delegation_locked(nfsi, NULL); 367 delegation = nfs_detach_delegation_locked(nfsi, NULL, clp);
352 spin_unlock(&clp->cl_lock); 368 spin_unlock(&clp->cl_lock);
353 if (delegation != NULL) { 369 if (delegation != NULL) {
354 nfs_msync_inode(inode); 370 nfs_msync_inode(inode);
@@ -526,7 +542,7 @@ restart:
526 if (inode == NULL) 542 if (inode == NULL)
527 continue; 543 continue;
528 spin_lock(&clp->cl_lock); 544 spin_lock(&clp->cl_lock);
529 delegation = nfs_detach_delegation_locked(NFS_I(inode), NULL); 545 delegation = nfs_detach_delegation_locked(NFS_I(inode), NULL, clp);
530 spin_unlock(&clp->cl_lock); 546 spin_unlock(&clp->cl_lock);
531 rcu_read_unlock(); 547 rcu_read_unlock();
532 if (delegation != NULL) 548 if (delegation != NULL)
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index be46f26c9a56..a7bb5c694aa3 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -837,6 +837,8 @@ out_zap_parent:
837 /* If we have submounts, don't unhash ! */ 837 /* If we have submounts, don't unhash ! */
838 if (have_submounts(dentry)) 838 if (have_submounts(dentry))
839 goto out_valid; 839 goto out_valid;
840 if (dentry->d_flags & DCACHE_DISCONNECTED)
841 goto out_valid;
840 shrink_dcache_parent(dentry); 842 shrink_dcache_parent(dentry);
841 } 843 }
842 d_drop(dentry); 844 d_drop(dentry);
@@ -1050,7 +1052,7 @@ static int nfs_open_revalidate(struct dentry *dentry, struct nameidata *nd)
1050 struct inode *dir; 1052 struct inode *dir;
1051 int openflags, ret = 0; 1053 int openflags, ret = 0;
1052 1054
1053 if (!is_atomic_open(nd)) 1055 if (!is_atomic_open(nd) || d_mountpoint(dentry))
1054 goto no_open; 1056 goto no_open;
1055 parent = dget_parent(dentry); 1057 parent = dget_parent(dentry);
1056 dir = parent->d_inode; 1058 dir = parent->d_inode;
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 638067007c65..071fcedd517c 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -5218,9 +5218,12 @@ static int nfs41_proc_reclaim_complete(struct nfs_client *clp)
5218 msg.rpc_resp = &calldata->res; 5218 msg.rpc_resp = &calldata->res;
5219 task_setup_data.callback_data = calldata; 5219 task_setup_data.callback_data = calldata;
5220 task = rpc_run_task(&task_setup_data); 5220 task = rpc_run_task(&task_setup_data);
5221 if (IS_ERR(task)) 5221 if (IS_ERR(task)) {
5222 status = PTR_ERR(task); 5222 status = PTR_ERR(task);
5223 goto out;
5224 }
5223 rpc_put_task(task); 5225 rpc_put_task(task);
5226 return 0;
5224out: 5227out:
5225 dprintk("<-- %s status=%d\n", __func__, status); 5228 dprintk("<-- %s status=%d\n", __func__, status);
5226 return status; 5229 return status;
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index e01637240eeb..b4148fc00f9f 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -2187,6 +2187,7 @@ static int nfs_get_sb(struct file_system_type *fs_type,
2187 if (data->version == 4) { 2187 if (data->version == 4) {
2188 error = nfs4_try_mount(flags, dev_name, data, mnt); 2188 error = nfs4_try_mount(flags, dev_name, data, mnt);
2189 kfree(data->client_address); 2189 kfree(data->client_address);
2190 kfree(data->nfs_server.export_path);
2190 goto out; 2191 goto out;
2191 } 2192 }
2192#endif /* CONFIG_NFS_V4 */ 2193#endif /* CONFIG_NFS_V4 */
@@ -2657,7 +2658,7 @@ static void nfs_fix_devname(const struct path *path, struct vfsmount *mnt)
2657 devname = nfs_path(path->mnt->mnt_devname, 2658 devname = nfs_path(path->mnt->mnt_devname,
2658 path->mnt->mnt_root, path->dentry, 2659 path->mnt->mnt_root, path->dentry,
2659 page, PAGE_SIZE); 2660 page, PAGE_SIZE);
2660 if (devname == NULL) 2661 if (IS_ERR(devname))
2661 goto out_freepage; 2662 goto out_freepage;
2662 tmp = kstrdup(devname, GFP_KERNEL); 2663 tmp = kstrdup(devname, GFP_KERNEL);
2663 if (tmp == NULL) 2664 if (tmp == NULL)
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index de38d63aa920..3aea3ca98ab7 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1201,6 +1201,25 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data)
1201 1201
1202 1202
1203#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) 1203#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
1204static int nfs_commit_set_lock(struct nfs_inode *nfsi, int may_wait)
1205{
1206 if (!test_and_set_bit(NFS_INO_COMMIT, &nfsi->flags))
1207 return 1;
1208 if (may_wait && !out_of_line_wait_on_bit_lock(&nfsi->flags,
1209 NFS_INO_COMMIT, nfs_wait_bit_killable,
1210 TASK_KILLABLE))
1211 return 1;
1212 return 0;
1213}
1214
1215static void nfs_commit_clear_lock(struct nfs_inode *nfsi)
1216{
1217 clear_bit(NFS_INO_COMMIT, &nfsi->flags);
1218 smp_mb__after_clear_bit();
1219 wake_up_bit(&nfsi->flags, NFS_INO_COMMIT);
1220}
1221
1222
1204static void nfs_commitdata_release(void *data) 1223static void nfs_commitdata_release(void *data)
1205{ 1224{
1206 struct nfs_write_data *wdata = data; 1225 struct nfs_write_data *wdata = data;
@@ -1262,8 +1281,6 @@ static int nfs_commit_rpcsetup(struct list_head *head,
1262 task = rpc_run_task(&task_setup_data); 1281 task = rpc_run_task(&task_setup_data);
1263 if (IS_ERR(task)) 1282 if (IS_ERR(task))
1264 return PTR_ERR(task); 1283 return PTR_ERR(task);
1265 if (how & FLUSH_SYNC)
1266 rpc_wait_for_completion_task(task);
1267 rpc_put_task(task); 1284 rpc_put_task(task);
1268 return 0; 1285 return 0;
1269} 1286}
@@ -1294,6 +1311,7 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how)
1294 BDI_RECLAIMABLE); 1311 BDI_RECLAIMABLE);
1295 nfs_clear_page_tag_locked(req); 1312 nfs_clear_page_tag_locked(req);
1296 } 1313 }
1314 nfs_commit_clear_lock(NFS_I(inode));
1297 return -ENOMEM; 1315 return -ENOMEM;
1298} 1316}
1299 1317
@@ -1349,6 +1367,7 @@ static void nfs_commit_release(void *calldata)
1349 next: 1367 next:
1350 nfs_clear_page_tag_locked(req); 1368 nfs_clear_page_tag_locked(req);
1351 } 1369 }
1370 nfs_commit_clear_lock(NFS_I(data->inode));
1352 nfs_commitdata_release(calldata); 1371 nfs_commitdata_release(calldata);
1353} 1372}
1354 1373
@@ -1363,8 +1382,11 @@ static const struct rpc_call_ops nfs_commit_ops = {
1363static int nfs_commit_inode(struct inode *inode, int how) 1382static int nfs_commit_inode(struct inode *inode, int how)
1364{ 1383{
1365 LIST_HEAD(head); 1384 LIST_HEAD(head);
1366 int res; 1385 int may_wait = how & FLUSH_SYNC;
1386 int res = 0;
1367 1387
1388 if (!nfs_commit_set_lock(NFS_I(inode), may_wait))
1389 goto out;
1368 spin_lock(&inode->i_lock); 1390 spin_lock(&inode->i_lock);
1369 res = nfs_scan_commit(inode, &head, 0, 0); 1391 res = nfs_scan_commit(inode, &head, 0, 0);
1370 spin_unlock(&inode->i_lock); 1392 spin_unlock(&inode->i_lock);
@@ -1372,7 +1394,13 @@ static int nfs_commit_inode(struct inode *inode, int how)
1372 int error = nfs_commit_list(inode, &head, how); 1394 int error = nfs_commit_list(inode, &head, how);
1373 if (error < 0) 1395 if (error < 0)
1374 return error; 1396 return error;
1375 } 1397 if (may_wait)
1398 wait_on_bit(&NFS_I(inode)->flags, NFS_INO_COMMIT,
1399 nfs_wait_bit_killable,
1400 TASK_KILLABLE);
1401 } else
1402 nfs_commit_clear_lock(NFS_I(inode));
1403out:
1376 return res; 1404 return res;
1377} 1405}
1378 1406
@@ -1444,6 +1472,7 @@ int nfs_wb_page_cancel(struct inode *inode, struct page *page)
1444 1472
1445 BUG_ON(!PageLocked(page)); 1473 BUG_ON(!PageLocked(page));
1446 for (;;) { 1474 for (;;) {
1475 wait_on_page_writeback(page);
1447 req = nfs_page_find_request(page); 1476 req = nfs_page_find_request(page);
1448 if (req == NULL) 1477 if (req == NULL)
1449 break; 1478 break;
@@ -1478,30 +1507,18 @@ int nfs_wb_page(struct inode *inode, struct page *page)
1478 .range_start = range_start, 1507 .range_start = range_start,
1479 .range_end = range_end, 1508 .range_end = range_end,
1480 }; 1509 };
1481 struct nfs_page *req;
1482 int need_commit;
1483 int ret; 1510 int ret;
1484 1511
1485 while(PagePrivate(page)) { 1512 while(PagePrivate(page)) {
1513 wait_on_page_writeback(page);
1486 if (clear_page_dirty_for_io(page)) { 1514 if (clear_page_dirty_for_io(page)) {
1487 ret = nfs_writepage_locked(page, &wbc); 1515 ret = nfs_writepage_locked(page, &wbc);
1488 if (ret < 0) 1516 if (ret < 0)
1489 goto out_error; 1517 goto out_error;
1490 } 1518 }
1491 req = nfs_find_and_lock_request(page); 1519 ret = sync_inode(inode, &wbc);
1492 if (!req) 1520 if (ret < 0)
1493 break;
1494 if (IS_ERR(req)) {
1495 ret = PTR_ERR(req);
1496 goto out_error; 1521 goto out_error;
1497 }
1498 need_commit = test_bit(PG_CLEAN, &req->wb_flags);
1499 nfs_clear_page_tag_locked(req);
1500 if (need_commit) {
1501 ret = nfs_commit_inode(inode, FLUSH_SYNC);
1502 if (ret < 0)
1503 goto out_error;
1504 }
1505 } 1522 }
1506 return 0; 1523 return 0;
1507out_error: 1524out_error:
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index e1703175ee28..34ccf815ea8a 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -161,10 +161,10 @@ static __be32 *read_buf(struct nfsd4_compoundargs *argp, u32 nbytes)
161 argp->p = page_address(argp->pagelist[0]); 161 argp->p = page_address(argp->pagelist[0]);
162 argp->pagelist++; 162 argp->pagelist++;
163 if (argp->pagelen < PAGE_SIZE) { 163 if (argp->pagelen < PAGE_SIZE) {
164 argp->end = p + (argp->pagelen>>2); 164 argp->end = argp->p + (argp->pagelen>>2);
165 argp->pagelen = 0; 165 argp->pagelen = 0;
166 } else { 166 } else {
167 argp->end = p + (PAGE_SIZE>>2); 167 argp->end = argp->p + (PAGE_SIZE>>2);
168 argp->pagelen -= PAGE_SIZE; 168 argp->pagelen -= PAGE_SIZE;
169 } 169 }
170 memcpy(((char*)p)+avail, argp->p, (nbytes - avail)); 170 memcpy(((char*)p)+avail, argp->p, (nbytes - avail));
@@ -1426,10 +1426,10 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
1426 argp->p = page_address(argp->pagelist[0]); 1426 argp->p = page_address(argp->pagelist[0]);
1427 argp->pagelist++; 1427 argp->pagelist++;
1428 if (argp->pagelen < PAGE_SIZE) { 1428 if (argp->pagelen < PAGE_SIZE) {
1429 argp->end = p + (argp->pagelen>>2); 1429 argp->end = argp->p + (argp->pagelen>>2);
1430 argp->pagelen = 0; 1430 argp->pagelen = 0;
1431 } else { 1431 } else {
1432 argp->end = p + (PAGE_SIZE>>2); 1432 argp->end = argp->p + (PAGE_SIZE>>2);
1433 argp->pagelen -= PAGE_SIZE; 1433 argp->pagelen -= PAGE_SIZE;
1434 } 1434 }
1435 } 1435 }
diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
index 0cdbc5e7655a..48145f505a6a 100644
--- a/fs/nilfs2/super.c
+++ b/fs/nilfs2/super.c
@@ -749,6 +749,7 @@ nilfs_fill_super(struct super_block *sb, void *data, int silent,
749 sb->s_export_op = &nilfs_export_ops; 749 sb->s_export_op = &nilfs_export_ops;
750 sb->s_root = NULL; 750 sb->s_root = NULL;
751 sb->s_time_gran = 1; 751 sb->s_time_gran = 1;
752 sb->s_bdi = nilfs->ns_bdi;
752 753
753 err = load_nilfs(nilfs, sbi); 754 err = load_nilfs(nilfs, sbi);
754 if (err) 755 if (err)
diff --git a/fs/notify/inotify/Kconfig b/fs/notify/inotify/Kconfig
index 3e56dbffe729..b3a159b21cfd 100644
--- a/fs/notify/inotify/Kconfig
+++ b/fs/notify/inotify/Kconfig
@@ -15,6 +15,7 @@ config INOTIFY
15 15
16config INOTIFY_USER 16config INOTIFY_USER
17 bool "Inotify support for userspace" 17 bool "Inotify support for userspace"
18 select ANON_INODES
18 select FSNOTIFY 19 select FSNOTIFY
19 default y 20 default y
20 ---help--- 21 ---help---
diff --git a/fs/ocfs2/buffer_head_io.c b/fs/ocfs2/buffer_head_io.c
index ecebb2276790..f9d5d3ffc75a 100644
--- a/fs/ocfs2/buffer_head_io.c
+++ b/fs/ocfs2/buffer_head_io.c
@@ -406,6 +406,7 @@ int ocfs2_write_super_or_backup(struct ocfs2_super *osb,
406 struct buffer_head *bh) 406 struct buffer_head *bh)
407{ 407{
408 int ret = 0; 408 int ret = 0;
409 struct ocfs2_dinode *di = (struct ocfs2_dinode *)bh->b_data;
409 410
410 mlog_entry_void(); 411 mlog_entry_void();
411 412
@@ -425,6 +426,7 @@ int ocfs2_write_super_or_backup(struct ocfs2_super *osb,
425 426
426 get_bh(bh); /* for end_buffer_write_sync() */ 427 get_bh(bh); /* for end_buffer_write_sync() */
427 bh->b_end_io = end_buffer_write_sync; 428 bh->b_end_io = end_buffer_write_sync;
429 ocfs2_compute_meta_ecc(osb->sb, bh->b_data, &di->i_check);
428 submit_bh(WRITE, bh); 430 submit_bh(WRITE, bh);
429 431
430 wait_on_buffer(bh); 432 wait_on_buffer(bh);
diff --git a/fs/ocfs2/dlm/dlmast.c b/fs/ocfs2/dlm/dlmast.c
index a795eb91f4ea..12d5eb78a11a 100644
--- a/fs/ocfs2/dlm/dlmast.c
+++ b/fs/ocfs2/dlm/dlmast.c
@@ -184,9 +184,8 @@ static void dlm_update_lvb(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
184 BUG_ON(!lksb); 184 BUG_ON(!lksb);
185 185
186 /* only updates if this node masters the lockres */ 186 /* only updates if this node masters the lockres */
187 spin_lock(&res->spinlock);
187 if (res->owner == dlm->node_num) { 188 if (res->owner == dlm->node_num) {
188
189 spin_lock(&res->spinlock);
190 /* check the lksb flags for the direction */ 189 /* check the lksb flags for the direction */
191 if (lksb->flags & DLM_LKSB_GET_LVB) { 190 if (lksb->flags & DLM_LKSB_GET_LVB) {
192 mlog(0, "getting lvb from lockres for %s node\n", 191 mlog(0, "getting lvb from lockres for %s node\n",
@@ -201,8 +200,8 @@ static void dlm_update_lvb(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
201 * here. In the future we might want to clear it at the time 200 * here. In the future we might want to clear it at the time
202 * the put is actually done. 201 * the put is actually done.
203 */ 202 */
204 spin_unlock(&res->spinlock);
205 } 203 }
204 spin_unlock(&res->spinlock);
206 205
207 /* reset any lvb flags on the lksb */ 206 /* reset any lvb flags on the lksb */
208 lksb->flags &= ~(DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB); 207 lksb->flags &= ~(DLM_LKSB_PUT_LVB|DLM_LKSB_GET_LVB);
diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c
index 1b0de157a08c..b83d6107a1f5 100644
--- a/fs/ocfs2/dlmfs/dlmfs.c
+++ b/fs/ocfs2/dlmfs/dlmfs.c
@@ -112,20 +112,20 @@ MODULE_PARM_DESC(capabilities, DLMFS_CAPABILITIES);
112 * O_RDONLY -> PRMODE level 112 * O_RDONLY -> PRMODE level
113 * O_WRONLY -> EXMODE level 113 * O_WRONLY -> EXMODE level
114 * 114 *
115 * O_NONBLOCK -> LKM_NOQUEUE 115 * O_NONBLOCK -> NOQUEUE
116 */ 116 */
117static int dlmfs_decode_open_flags(int open_flags, 117static int dlmfs_decode_open_flags(int open_flags,
118 int *level, 118 int *level,
119 int *flags) 119 int *flags)
120{ 120{
121 if (open_flags & (O_WRONLY|O_RDWR)) 121 if (open_flags & (O_WRONLY|O_RDWR))
122 *level = LKM_EXMODE; 122 *level = DLM_LOCK_EX;
123 else 123 else
124 *level = LKM_PRMODE; 124 *level = DLM_LOCK_PR;
125 125
126 *flags = 0; 126 *flags = 0;
127 if (open_flags & O_NONBLOCK) 127 if (open_flags & O_NONBLOCK)
128 *flags |= LKM_NOQUEUE; 128 *flags |= DLM_LKF_NOQUEUE;
129 129
130 return 0; 130 return 0;
131} 131}
@@ -166,7 +166,7 @@ static int dlmfs_file_open(struct inode *inode,
166 * to be able userspace to be able to distinguish a 166 * to be able userspace to be able to distinguish a
167 * valid lock request from one that simply couldn't be 167 * valid lock request from one that simply couldn't be
168 * granted. */ 168 * granted. */
169 if (flags & LKM_NOQUEUE && status == -EAGAIN) 169 if (flags & DLM_LKF_NOQUEUE && status == -EAGAIN)
170 status = -ETXTBSY; 170 status = -ETXTBSY;
171 kfree(fp); 171 kfree(fp);
172 goto bail; 172 goto bail;
@@ -193,7 +193,7 @@ static int dlmfs_file_release(struct inode *inode,
193 status = 0; 193 status = 0;
194 if (fp) { 194 if (fp) {
195 level = fp->fp_lock_level; 195 level = fp->fp_lock_level;
196 if (level != LKM_IVMODE) 196 if (level != DLM_LOCK_IV)
197 user_dlm_cluster_unlock(&ip->ip_lockres, level); 197 user_dlm_cluster_unlock(&ip->ip_lockres, level);
198 198
199 kfree(fp); 199 kfree(fp);
@@ -262,7 +262,7 @@ static ssize_t dlmfs_file_read(struct file *filp,
262 if ((count + *ppos) > i_size_read(inode)) 262 if ((count + *ppos) > i_size_read(inode))
263 readlen = i_size_read(inode) - *ppos; 263 readlen = i_size_read(inode) - *ppos;
264 else 264 else
265 readlen = count - *ppos; 265 readlen = count;
266 266
267 lvb_buf = kmalloc(readlen, GFP_NOFS); 267 lvb_buf = kmalloc(readlen, GFP_NOFS);
268 if (!lvb_buf) 268 if (!lvb_buf)
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 17947dc8341e..a5fbd9cea968 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -684,6 +684,7 @@ restarted_transaction:
684 if (why == RESTART_META) { 684 if (why == RESTART_META) {
685 mlog(0, "restarting function.\n"); 685 mlog(0, "restarting function.\n");
686 restart_func = 1; 686 restart_func = 1;
687 status = 0;
687 } else { 688 } else {
688 BUG_ON(why != RESTART_TRANS); 689 BUG_ON(why != RESTART_TRANS);
689 690
@@ -1981,18 +1982,18 @@ relock:
1981 /* communicate with ocfs2_dio_end_io */ 1982 /* communicate with ocfs2_dio_end_io */
1982 ocfs2_iocb_set_rw_locked(iocb, rw_level); 1983 ocfs2_iocb_set_rw_locked(iocb, rw_level);
1983 1984
1984 if (direct_io) { 1985 ret = generic_segment_checks(iov, &nr_segs, &ocount,
1985 ret = generic_segment_checks(iov, &nr_segs, &ocount, 1986 VERIFY_READ);
1986 VERIFY_READ); 1987 if (ret)
1987 if (ret) 1988 goto out_dio;
1988 goto out_dio;
1989 1989
1990 count = ocount; 1990 count = ocount;
1991 ret = generic_write_checks(file, ppos, &count, 1991 ret = generic_write_checks(file, ppos, &count,
1992 S_ISBLK(inode->i_mode)); 1992 S_ISBLK(inode->i_mode));
1993 if (ret) 1993 if (ret)
1994 goto out_dio; 1994 goto out_dio;
1995 1995
1996 if (direct_io) {
1996 written = generic_file_direct_write(iocb, iov, &nr_segs, *ppos, 1997 written = generic_file_direct_write(iocb, iov, &nr_segs, *ppos,
1997 ppos, count, ocount); 1998 ppos, count, ocount);
1998 if (written < 0) { 1999 if (written < 0) {
@@ -2007,7 +2008,10 @@ relock:
2007 goto out_dio; 2008 goto out_dio;
2008 } 2009 }
2009 } else { 2010 } else {
2010 written = __generic_file_aio_write(iocb, iov, nr_segs, ppos); 2011 current->backing_dev_info = file->f_mapping->backing_dev_info;
2012 written = generic_file_buffered_write(iocb, iov, nr_segs, *ppos,
2013 ppos, count, 0);
2014 current->backing_dev_info = NULL;
2011 } 2015 }
2012 2016
2013out_dio: 2017out_dio:
@@ -2021,9 +2025,9 @@ out_dio:
2021 if (ret < 0) 2025 if (ret < 0)
2022 written = ret; 2026 written = ret;
2023 2027
2024 if (!ret && (old_size != i_size_read(inode) || 2028 if (!ret && ((old_size != i_size_read(inode)) ||
2025 old_clusters != OCFS2_I(inode)->ip_clusters || 2029 (old_clusters != OCFS2_I(inode)->ip_clusters) ||
2026 has_refcount)) { 2030 has_refcount)) {
2027 ret = jbd2_journal_force_commit(osb->journal->j_journal); 2031 ret = jbd2_journal_force_commit(osb->journal->j_journal);
2028 if (ret < 0) 2032 if (ret < 0)
2029 written = ret; 2033 written = ret;
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c
index 07cc8bb68b6d..af189887201c 100644
--- a/fs/ocfs2/inode.c
+++ b/fs/ocfs2/inode.c
@@ -558,6 +558,7 @@ static int ocfs2_truncate_for_delete(struct ocfs2_super *osb,
558 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); 558 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
559 if (IS_ERR(handle)) { 559 if (IS_ERR(handle)) {
560 status = PTR_ERR(handle); 560 status = PTR_ERR(handle);
561 handle = NULL;
561 mlog_errno(status); 562 mlog_errno(status);
562 goto out; 563 goto out;
563 } 564 }
@@ -639,11 +640,13 @@ static int ocfs2_remove_inode(struct inode *inode,
639 goto bail_unlock; 640 goto bail_unlock;
640 } 641 }
641 642
642 status = ocfs2_orphan_del(osb, handle, orphan_dir_inode, inode, 643 if (!(OCFS2_I(inode)->ip_flags & OCFS2_INODE_SKIP_ORPHAN_DIR)) {
643 orphan_dir_bh); 644 status = ocfs2_orphan_del(osb, handle, orphan_dir_inode, inode,
644 if (status < 0) { 645 orphan_dir_bh);
645 mlog_errno(status); 646 if (status < 0) {
646 goto bail_commit; 647 mlog_errno(status);
648 goto bail_commit;
649 }
647 } 650 }
648 651
649 /* set the inodes dtime */ 652 /* set the inodes dtime */
@@ -722,38 +725,39 @@ static void ocfs2_signal_wipe_completion(struct ocfs2_super *osb,
722static int ocfs2_wipe_inode(struct inode *inode, 725static int ocfs2_wipe_inode(struct inode *inode,
723 struct buffer_head *di_bh) 726 struct buffer_head *di_bh)
724{ 727{
725 int status, orphaned_slot; 728 int status, orphaned_slot = -1;
726 struct inode *orphan_dir_inode = NULL; 729 struct inode *orphan_dir_inode = NULL;
727 struct buffer_head *orphan_dir_bh = NULL; 730 struct buffer_head *orphan_dir_bh = NULL;
728 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); 731 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
729 struct ocfs2_dinode *di; 732 struct ocfs2_dinode *di = (struct ocfs2_dinode *) di_bh->b_data;
730 733
731 di = (struct ocfs2_dinode *) di_bh->b_data; 734 if (!(OCFS2_I(inode)->ip_flags & OCFS2_INODE_SKIP_ORPHAN_DIR)) {
732 orphaned_slot = le16_to_cpu(di->i_orphaned_slot); 735 orphaned_slot = le16_to_cpu(di->i_orphaned_slot);
733 736
734 status = ocfs2_check_orphan_recovery_state(osb, orphaned_slot); 737 status = ocfs2_check_orphan_recovery_state(osb, orphaned_slot);
735 if (status) 738 if (status)
736 return status; 739 return status;
737 740
738 orphan_dir_inode = ocfs2_get_system_file_inode(osb, 741 orphan_dir_inode = ocfs2_get_system_file_inode(osb,
739 ORPHAN_DIR_SYSTEM_INODE, 742 ORPHAN_DIR_SYSTEM_INODE,
740 orphaned_slot); 743 orphaned_slot);
741 if (!orphan_dir_inode) { 744 if (!orphan_dir_inode) {
742 status = -EEXIST; 745 status = -EEXIST;
743 mlog_errno(status); 746 mlog_errno(status);
744 goto bail; 747 goto bail;
745 } 748 }
746 749
747 /* Lock the orphan dir. The lock will be held for the entire 750 /* Lock the orphan dir. The lock will be held for the entire
748 * delete_inode operation. We do this now to avoid races with 751 * delete_inode operation. We do this now to avoid races with
749 * recovery completion on other nodes. */ 752 * recovery completion on other nodes. */
750 mutex_lock(&orphan_dir_inode->i_mutex); 753 mutex_lock(&orphan_dir_inode->i_mutex);
751 status = ocfs2_inode_lock(orphan_dir_inode, &orphan_dir_bh, 1); 754 status = ocfs2_inode_lock(orphan_dir_inode, &orphan_dir_bh, 1);
752 if (status < 0) { 755 if (status < 0) {
753 mutex_unlock(&orphan_dir_inode->i_mutex); 756 mutex_unlock(&orphan_dir_inode->i_mutex);
754 757
755 mlog_errno(status); 758 mlog_errno(status);
756 goto bail; 759 goto bail;
760 }
757 } 761 }
758 762
759 /* we do this while holding the orphan dir lock because we 763 /* we do this while holding the orphan dir lock because we
@@ -794,6 +798,9 @@ static int ocfs2_wipe_inode(struct inode *inode,
794 mlog_errno(status); 798 mlog_errno(status);
795 799
796bail_unlock_dir: 800bail_unlock_dir:
801 if (OCFS2_I(inode)->ip_flags & OCFS2_INODE_SKIP_ORPHAN_DIR)
802 return status;
803
797 ocfs2_inode_unlock(orphan_dir_inode, 1); 804 ocfs2_inode_unlock(orphan_dir_inode, 1);
798 mutex_unlock(&orphan_dir_inode->i_mutex); 805 mutex_unlock(&orphan_dir_inode->i_mutex);
799 brelse(orphan_dir_bh); 806 brelse(orphan_dir_bh);
@@ -889,7 +896,8 @@ static int ocfs2_query_inode_wipe(struct inode *inode,
889 896
890 /* Do some basic inode verification... */ 897 /* Do some basic inode verification... */
891 di = (struct ocfs2_dinode *) di_bh->b_data; 898 di = (struct ocfs2_dinode *) di_bh->b_data;
892 if (!(di->i_flags & cpu_to_le32(OCFS2_ORPHANED_FL))) { 899 if (!(di->i_flags & cpu_to_le32(OCFS2_ORPHANED_FL)) &&
900 !(oi->ip_flags & OCFS2_INODE_SKIP_ORPHAN_DIR)) {
893 /* 901 /*
894 * Inodes in the orphan dir must have ORPHANED_FL. The only 902 * Inodes in the orphan dir must have ORPHANED_FL. The only
895 * inodes that come back out of the orphan dir are reflink 903 * inodes that come back out of the orphan dir are reflink
diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
index ba4fe07b293c..0b28e1921a39 100644
--- a/fs/ocfs2/inode.h
+++ b/fs/ocfs2/inode.h
@@ -100,6 +100,8 @@ struct ocfs2_inode_info
100#define OCFS2_INODE_MAYBE_ORPHANED 0x00000020 100#define OCFS2_INODE_MAYBE_ORPHANED 0x00000020
101/* Does someone have the file open O_DIRECT */ 101/* Does someone have the file open O_DIRECT */
102#define OCFS2_INODE_OPEN_DIRECT 0x00000040 102#define OCFS2_INODE_OPEN_DIRECT 0x00000040
103/* Tell the inode wipe code it's not in orphan dir */
104#define OCFS2_INODE_SKIP_ORPHAN_DIR 0x00000080
103 105
104static inline struct ocfs2_inode_info *OCFS2_I(struct inode *inode) 106static inline struct ocfs2_inode_info *OCFS2_I(struct inode *inode)
105{ 107{
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index b1eb50ae4097..4cbb18f26c5f 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -408,23 +408,28 @@ static int ocfs2_mknod(struct inode *dir,
408 } 408 }
409 } 409 }
410 410
411 status = ocfs2_add_entry(handle, dentry, inode, 411 /*
412 OCFS2_I(inode)->ip_blkno, parent_fe_bh, 412 * Do this before adding the entry to the directory. We add
413 &lookup); 413 * also set d_op after success so that ->d_iput() will cleanup
414 if (status < 0) { 414 * the dentry lock even if ocfs2_add_entry() fails below.
415 */
416 status = ocfs2_dentry_attach_lock(dentry, inode,
417 OCFS2_I(dir)->ip_blkno);
418 if (status) {
415 mlog_errno(status); 419 mlog_errno(status);
416 goto leave; 420 goto leave;
417 } 421 }
422 dentry->d_op = &ocfs2_dentry_ops;
418 423
419 status = ocfs2_dentry_attach_lock(dentry, inode, 424 status = ocfs2_add_entry(handle, dentry, inode,
420 OCFS2_I(dir)->ip_blkno); 425 OCFS2_I(inode)->ip_blkno, parent_fe_bh,
421 if (status) { 426 &lookup);
427 if (status < 0) {
422 mlog_errno(status); 428 mlog_errno(status);
423 goto leave; 429 goto leave;
424 } 430 }
425 431
426 insert_inode_hash(inode); 432 insert_inode_hash(inode);
427 dentry->d_op = &ocfs2_dentry_ops;
428 d_instantiate(dentry, inode); 433 d_instantiate(dentry, inode);
429 status = 0; 434 status = 0;
430leave: 435leave:
@@ -445,11 +450,6 @@ leave:
445 450
446 ocfs2_free_dir_lookup_result(&lookup); 451 ocfs2_free_dir_lookup_result(&lookup);
447 452
448 if ((status < 0) && inode) {
449 clear_nlink(inode);
450 iput(inode);
451 }
452
453 if (inode_ac) 453 if (inode_ac)
454 ocfs2_free_alloc_context(inode_ac); 454 ocfs2_free_alloc_context(inode_ac);
455 455
@@ -459,6 +459,17 @@ leave:
459 if (meta_ac) 459 if (meta_ac)
460 ocfs2_free_alloc_context(meta_ac); 460 ocfs2_free_alloc_context(meta_ac);
461 461
462 /*
463 * We should call iput after the i_mutex of the bitmap been
464 * unlocked in ocfs2_free_alloc_context, or the
465 * ocfs2_delete_inode will mutex_lock again.
466 */
467 if ((status < 0) && inode) {
468 OCFS2_I(inode)->ip_flags |= OCFS2_INODE_SKIP_ORPHAN_DIR;
469 clear_nlink(inode);
470 iput(inode);
471 }
472
462 mlog_exit(status); 473 mlog_exit(status);
463 474
464 return status; 475 return status;
@@ -1771,22 +1782,27 @@ static int ocfs2_symlink(struct inode *dir,
1771 } 1782 }
1772 } 1783 }
1773 1784
1774 status = ocfs2_add_entry(handle, dentry, inode, 1785 /*
1775 le64_to_cpu(fe->i_blkno), parent_fe_bh, 1786 * Do this before adding the entry to the directory. We add
1776 &lookup); 1787 * also set d_op after success so that ->d_iput() will cleanup
1777 if (status < 0) { 1788 * the dentry lock even if ocfs2_add_entry() fails below.
1789 */
1790 status = ocfs2_dentry_attach_lock(dentry, inode, OCFS2_I(dir)->ip_blkno);
1791 if (status) {
1778 mlog_errno(status); 1792 mlog_errno(status);
1779 goto bail; 1793 goto bail;
1780 } 1794 }
1795 dentry->d_op = &ocfs2_dentry_ops;
1781 1796
1782 status = ocfs2_dentry_attach_lock(dentry, inode, OCFS2_I(dir)->ip_blkno); 1797 status = ocfs2_add_entry(handle, dentry, inode,
1783 if (status) { 1798 le64_to_cpu(fe->i_blkno), parent_fe_bh,
1799 &lookup);
1800 if (status < 0) {
1784 mlog_errno(status); 1801 mlog_errno(status);
1785 goto bail; 1802 goto bail;
1786 } 1803 }
1787 1804
1788 insert_inode_hash(inode); 1805 insert_inode_hash(inode);
1789 dentry->d_op = &ocfs2_dentry_ops;
1790 d_instantiate(dentry, inode); 1806 d_instantiate(dentry, inode);
1791bail: 1807bail:
1792 if (status < 0 && did_quota) 1808 if (status < 0 && did_quota)
@@ -1811,6 +1827,7 @@ bail:
1811 if (xattr_ac) 1827 if (xattr_ac)
1812 ocfs2_free_alloc_context(xattr_ac); 1828 ocfs2_free_alloc_context(xattr_ac);
1813 if ((status < 0) && inode) { 1829 if ((status < 0) && inode) {
1830 OCFS2_I(inode)->ip_flags |= OCFS2_INODE_SKIP_ORPHAN_DIR;
1814 clear_nlink(inode); 1831 clear_nlink(inode);
1815 iput(inode); 1832 iput(inode);
1816 } 1833 }
@@ -1976,6 +1993,7 @@ static int ocfs2_orphan_add(struct ocfs2_super *osb,
1976 } 1993 }
1977 1994
1978 le32_add_cpu(&fe->i_flags, OCFS2_ORPHANED_FL); 1995 le32_add_cpu(&fe->i_flags, OCFS2_ORPHANED_FL);
1996 OCFS2_I(inode)->ip_flags &= ~OCFS2_INODE_SKIP_ORPHAN_DIR;
1979 1997
1980 /* Record which orphan dir our inode now resides 1998 /* Record which orphan dir our inode now resides
1981 * in. delete_inode will use this to determine which orphan 1999 * in. delete_inode will use this to determine which orphan
diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
index bd96f6c7877e..5cbcd0f008fc 100644
--- a/fs/ocfs2/refcounttree.c
+++ b/fs/ocfs2/refcounttree.c
@@ -4083,6 +4083,9 @@ static int ocfs2_complete_reflink(struct inode *s_inode,
4083 di->i_attr = s_di->i_attr; 4083 di->i_attr = s_di->i_attr;
4084 4084
4085 if (preserve) { 4085 if (preserve) {
4086 t_inode->i_uid = s_inode->i_uid;
4087 t_inode->i_gid = s_inode->i_gid;
4088 t_inode->i_mode = s_inode->i_mode;
4086 di->i_uid = s_di->i_uid; 4089 di->i_uid = s_di->i_uid;
4087 di->i_gid = s_di->i_gid; 4090 di->i_gid = s_di->i_gid;
4088 di->i_mode = s_di->i_mode; 4091 di->i_mode = s_di->i_mode;
diff --git a/fs/proc/array.c b/fs/proc/array.c
index e51f2ec2c5e5..885ab5513ac5 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -81,7 +81,6 @@
81#include <linux/pid_namespace.h> 81#include <linux/pid_namespace.h>
82#include <linux/ptrace.h> 82#include <linux/ptrace.h>
83#include <linux/tracehook.h> 83#include <linux/tracehook.h>
84#include <linux/swapops.h>
85 84
86#include <asm/pgtable.h> 85#include <asm/pgtable.h>
87#include <asm/processor.h> 86#include <asm/processor.h>
@@ -495,7 +494,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
495 rsslim, 494 rsslim,
496 mm ? mm->start_code : 0, 495 mm ? mm->start_code : 0,
497 mm ? mm->end_code : 0, 496 mm ? mm->end_code : 0,
498 (permitted && mm) ? task->stack_start : 0, 497 (permitted && mm) ? mm->start_stack : 0,
499 esp, 498 esp,
500 eip, 499 eip,
501 /* The signal information here is obsolete. 500 /* The signal information here is obsolete.
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 7621db800a74..8418fcc0a6ab 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -2909,7 +2909,7 @@ out_no_task:
2909 */ 2909 */
2910static const struct pid_entry tid_base_stuff[] = { 2910static const struct pid_entry tid_base_stuff[] = {
2911 DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations), 2911 DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations),
2912 DIR("fdinfo", S_IRUSR|S_IXUSR, proc_fdinfo_inode_operations, proc_fd_operations), 2912 DIR("fdinfo", S_IRUSR|S_IXUSR, proc_fdinfo_inode_operations, proc_fdinfo_operations),
2913 REG("environ", S_IRUSR, proc_environ_operations), 2913 REG("environ", S_IRUSR, proc_environ_operations),
2914 INF("auxv", S_IRUSR, proc_pid_auxv), 2914 INF("auxv", S_IRUSR, proc_pid_auxv),
2915 ONE("status", S_IRUGO, proc_pid_status), 2915 ONE("status", S_IRUGO, proc_pid_status),
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 070553427dd5..47f5b145f56e 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -247,25 +247,6 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
247 } else if (vma->vm_start <= mm->start_stack && 247 } else if (vma->vm_start <= mm->start_stack &&
248 vma->vm_end >= mm->start_stack) { 248 vma->vm_end >= mm->start_stack) {
249 name = "[stack]"; 249 name = "[stack]";
250 } else {
251 unsigned long stack_start;
252 struct proc_maps_private *pmp;
253
254 pmp = m->private;
255 stack_start = pmp->task->stack_start;
256
257 if (vma->vm_start <= stack_start &&
258 vma->vm_end >= stack_start) {
259 pad_len_spaces(m, len);
260 seq_printf(m,
261 "[threadstack:%08lx]",
262#ifdef CONFIG_STACK_GROWSUP
263 vma->vm_end - stack_start
264#else
265 stack_start - vma->vm_start
266#endif
267 );
268 }
269 } 250 }
270 } else { 251 } else {
271 name = "[vdso]"; 252 name = "[vdso]";
diff --git a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c
index f8a6075abf50..07930449a958 100644
--- a/fs/reiserfs/dir.c
+++ b/fs/reiserfs/dir.c
@@ -46,8 +46,6 @@ static inline bool is_privroot_deh(struct dentry *dir,
46 struct reiserfs_de_head *deh) 46 struct reiserfs_de_head *deh)
47{ 47{
48 struct dentry *privroot = REISERFS_SB(dir->d_sb)->priv_root; 48 struct dentry *privroot = REISERFS_SB(dir->d_sb)->priv_root;
49 if (reiserfs_expose_privroot(dir->d_sb))
50 return 0;
51 return (dir == dir->d_parent && privroot->d_inode && 49 return (dir == dir->d_parent && privroot->d_inode &&
52 deh->deh_objectid == INODE_PKEY(privroot->d_inode)->k_objectid); 50 deh->deh_objectid == INODE_PKEY(privroot->d_inode)->k_objectid);
53} 51}
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index 4f9586bb7631..e7cc00e636dc 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -554,7 +554,7 @@ reiserfs_xattr_set_handle(struct reiserfs_transaction_handle *th,
554 if (!err && new_size < i_size_read(dentry->d_inode)) { 554 if (!err && new_size < i_size_read(dentry->d_inode)) {
555 struct iattr newattrs = { 555 struct iattr newattrs = {
556 .ia_ctime = current_fs_time(inode->i_sb), 556 .ia_ctime = current_fs_time(inode->i_sb),
557 .ia_size = buffer_size, 557 .ia_size = new_size,
558 .ia_valid = ATTR_SIZE | ATTR_CTIME, 558 .ia_valid = ATTR_SIZE | ATTR_CTIME,
559 }; 559 };
560 560
@@ -973,21 +973,13 @@ int reiserfs_permission(struct inode *inode, int mask)
973 return generic_permission(inode, mask, NULL); 973 return generic_permission(inode, mask, NULL);
974} 974}
975 975
976/* This will catch lookups from the fs root to .reiserfs_priv */ 976static int xattr_hide_revalidate(struct dentry *dentry, struct nameidata *nd)
977static int
978xattr_lookup_poison(struct dentry *dentry, struct qstr *q1, struct qstr *name)
979{ 977{
980 struct dentry *priv_root = REISERFS_SB(dentry->d_sb)->priv_root; 978 return -EPERM;
981 if (container_of(q1, struct dentry, d_name) == priv_root)
982 return -ENOENT;
983 if (q1->len == name->len &&
984 !memcmp(q1->name, name->name, name->len))
985 return 0;
986 return 1;
987} 979}
988 980
989static const struct dentry_operations xattr_lookup_poison_ops = { 981static const struct dentry_operations xattr_lookup_poison_ops = {
990 .d_compare = xattr_lookup_poison, 982 .d_revalidate = xattr_hide_revalidate,
991}; 983};
992 984
993int reiserfs_lookup_privroot(struct super_block *s) 985int reiserfs_lookup_privroot(struct super_block *s)
@@ -1001,8 +993,7 @@ int reiserfs_lookup_privroot(struct super_block *s)
1001 strlen(PRIVROOT_NAME)); 993 strlen(PRIVROOT_NAME));
1002 if (!IS_ERR(dentry)) { 994 if (!IS_ERR(dentry)) {
1003 REISERFS_SB(s)->priv_root = dentry; 995 REISERFS_SB(s)->priv_root = dentry;
1004 if (!reiserfs_expose_privroot(s)) 996 dentry->d_op = &xattr_lookup_poison_ops;
1005 s->s_root->d_op = &xattr_lookup_poison_ops;
1006 if (dentry->d_inode) 997 if (dentry->d_inode)
1007 dentry->d_inode->i_flags |= S_PRIVATE; 998 dentry->d_inode->i_flags |= S_PRIVATE;
1008 } else 999 } else
diff --git a/fs/smbfs/inode.c b/fs/smbfs/inode.c
index 1c4c8f089970..dfa1d67f8fca 100644
--- a/fs/smbfs/inode.c
+++ b/fs/smbfs/inode.c
@@ -479,6 +479,7 @@ smb_put_super(struct super_block *sb)
479 if (server->conn_pid) 479 if (server->conn_pid)
480 kill_pid(server->conn_pid, SIGTERM, 1); 480 kill_pid(server->conn_pid, SIGTERM, 1);
481 481
482 bdi_destroy(&server->bdi);
482 kfree(server->ops); 483 kfree(server->ops);
483 smb_unload_nls(server); 484 smb_unload_nls(server);
484 sb->s_fs_info = NULL; 485 sb->s_fs_info = NULL;
@@ -525,6 +526,11 @@ static int smb_fill_super(struct super_block *sb, void *raw_data, int silent)
525 if (!server) 526 if (!server)
526 goto out_no_server; 527 goto out_no_server;
527 sb->s_fs_info = server; 528 sb->s_fs_info = server;
529
530 if (bdi_setup_and_register(&server->bdi, "smbfs", BDI_CAP_MAP_COPY))
531 goto out_bdi;
532
533 sb->s_bdi = &server->bdi;
528 534
529 server->super_block = sb; 535 server->super_block = sb;
530 server->mnt = NULL; 536 server->mnt = NULL;
@@ -624,6 +630,8 @@ out_no_smbiod:
624out_bad_option: 630out_bad_option:
625 kfree(mem); 631 kfree(mem);
626out_no_mem: 632out_no_mem:
633 bdi_destroy(&server->bdi);
634out_bdi:
627 if (!server->mnt) 635 if (!server->mnt)
628 printk(KERN_ERR "smb_fill_super: allocation failure\n"); 636 printk(KERN_ERR "smb_fill_super: allocation failure\n");
629 sb->s_fs_info = NULL; 637 sb->s_fs_info = NULL;
diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c
index 1cb0d81b164b..653c030eb840 100644
--- a/fs/squashfs/block.c
+++ b/fs/squashfs/block.c
@@ -87,9 +87,8 @@ int squashfs_read_data(struct super_block *sb, void **buffer, u64 index,
87 u64 cur_index = index >> msblk->devblksize_log2; 87 u64 cur_index = index >> msblk->devblksize_log2;
88 int bytes, compressed, b = 0, k = 0, page = 0, avail; 88 int bytes, compressed, b = 0, k = 0, page = 0, avail;
89 89
90 90 bh = kcalloc(((srclength + msblk->devblksize - 1)
91 bh = kcalloc((msblk->block_size >> msblk->devblksize_log2) + 1, 91 >> msblk->devblksize_log2) + 1, sizeof(*bh), GFP_KERNEL);
92 sizeof(*bh), GFP_KERNEL);
93 if (bh == NULL) 92 if (bh == NULL)
94 return -ENOMEM; 93 return -ENOMEM;
95 94
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 3550aec2f655..48b6f4a385a6 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -275,7 +275,8 @@ allocate_root:
275 275
276 err = squashfs_read_inode(root, root_inode); 276 err = squashfs_read_inode(root, root_inode);
277 if (err) { 277 if (err) {
278 iget_failed(root); 278 make_bad_inode(root);
279 iput(root);
279 goto failed_mount; 280 goto failed_mount;
280 } 281 }
281 insert_inode_hash(root); 282 insert_inode_hash(root);
@@ -353,6 +354,7 @@ static void squashfs_put_super(struct super_block *sb)
353 kfree(sbi->id_table); 354 kfree(sbi->id_table);
354 kfree(sbi->fragment_index); 355 kfree(sbi->fragment_index);
355 kfree(sbi->meta_index); 356 kfree(sbi->meta_index);
357 kfree(sbi->inode_lookup_table);
356 kfree(sb->s_fs_info); 358 kfree(sb->s_fs_info);
357 sb->s_fs_info = NULL; 359 sb->s_fs_info = NULL;
358 } 360 }
diff --git a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
index 15a03d0fb9f3..7a603874e483 100644
--- a/fs/squashfs/zlib_wrapper.c
+++ b/fs/squashfs/zlib_wrapper.c
@@ -128,8 +128,9 @@ static int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer,
128 goto release_mutex; 128 goto release_mutex;
129 } 129 }
130 130
131 length = stream->total_out;
131 mutex_unlock(&msblk->read_data_mutex); 132 mutex_unlock(&msblk->read_data_mutex);
132 return stream->total_out; 133 return length;
133 134
134release_mutex: 135release_mutex:
135 mutex_unlock(&msblk->read_data_mutex); 136 mutex_unlock(&msblk->read_data_mutex);
diff --git a/fs/super.c b/fs/super.c
index f35ac6022109..1527e6a0ee35 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -37,6 +37,7 @@
37#include <linux/kobject.h> 37#include <linux/kobject.h>
38#include <linux/mutex.h> 38#include <linux/mutex.h>
39#include <linux/file.h> 39#include <linux/file.h>
40#include <linux/backing-dev.h>
40#include <asm/uaccess.h> 41#include <asm/uaccess.h>
41#include "internal.h" 42#include "internal.h"
42 43
@@ -693,6 +694,7 @@ int set_anon_super(struct super_block *s, void *data)
693 return -EMFILE; 694 return -EMFILE;
694 } 695 }
695 s->s_dev = MKDEV(0, dev & MINORMASK); 696 s->s_dev = MKDEV(0, dev & MINORMASK);
697 s->s_bdi = &noop_backing_dev_info;
696 return 0; 698 return 0;
697} 699}
698 700
@@ -954,10 +956,11 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void
954 if (error < 0) 956 if (error < 0)
955 goto out_free_secdata; 957 goto out_free_secdata;
956 BUG_ON(!mnt->mnt_sb); 958 BUG_ON(!mnt->mnt_sb);
959 WARN_ON(!mnt->mnt_sb->s_bdi);
957 960
958 error = security_sb_kern_mount(mnt->mnt_sb, flags, secdata); 961 error = security_sb_kern_mount(mnt->mnt_sb, flags, secdata);
959 if (error) 962 if (error)
960 goto out_sb; 963 goto out_sb;
961 964
962 /* 965 /*
963 * filesystems should never set s_maxbytes larger than MAX_LFS_FILESIZE 966 * filesystems should never set s_maxbytes larger than MAX_LFS_FILESIZE
diff --git a/fs/sync.c b/fs/sync.c
index fc5c3d75cf3c..92b228176f7c 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -14,6 +14,7 @@
14#include <linux/pagemap.h> 14#include <linux/pagemap.h>
15#include <linux/quotaops.h> 15#include <linux/quotaops.h>
16#include <linux/buffer_head.h> 16#include <linux/buffer_head.h>
17#include <linux/backing-dev.h>
17#include "internal.h" 18#include "internal.h"
18 19
19#define VALID_FLAGS (SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE| \ 20#define VALID_FLAGS (SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE| \
@@ -32,7 +33,7 @@ static int __sync_filesystem(struct super_block *sb, int wait)
32 * This should be safe, as we require bdi backing to actually 33 * This should be safe, as we require bdi backing to actually
33 * write out data in the first place 34 * write out data in the first place
34 */ 35 */
35 if (!sb->s_bdi) 36 if (!sb->s_bdi || sb->s_bdi == &noop_backing_dev_info)
36 return 0; 37 return 0;
37 38
38 if (sb->s_qcop && sb->s_qcop->quota_sync) 39 if (sb->s_qcop && sb->s_qcop->quota_sync)
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 52e06b487ced..29f1edca76de 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1209,6 +1209,7 @@ xfs_fs_put_super(
1209 1209
1210 xfs_unmountfs(mp); 1210 xfs_unmountfs(mp);
1211 xfs_freesb(mp); 1211 xfs_freesb(mp);
1212 xfs_inode_shrinker_unregister(mp);
1212 xfs_icsb_destroy_counters(mp); 1213 xfs_icsb_destroy_counters(mp);
1213 xfs_close_devices(mp); 1214 xfs_close_devices(mp);
1214 xfs_dmops_put(mp); 1215 xfs_dmops_put(mp);
@@ -1622,6 +1623,8 @@ xfs_fs_fill_super(
1622 if (error) 1623 if (error)
1623 goto fail_vnrele; 1624 goto fail_vnrele;
1624 1625
1626 xfs_inode_shrinker_register(mp);
1627
1625 kfree(mtpt); 1628 kfree(mtpt);
1626 return 0; 1629 return 0;
1627 1630
@@ -1867,6 +1870,7 @@ init_xfs_fs(void)
1867 goto out_cleanup_procfs; 1870 goto out_cleanup_procfs;
1868 1871
1869 vfs_initquota(); 1872 vfs_initquota();
1873 xfs_inode_shrinker_init();
1870 1874
1871 error = register_filesystem(&xfs_fs_type); 1875 error = register_filesystem(&xfs_fs_type);
1872 if (error) 1876 if (error)
@@ -1894,6 +1898,7 @@ exit_xfs_fs(void)
1894{ 1898{
1895 vfs_exitquota(); 1899 vfs_exitquota();
1896 unregister_filesystem(&xfs_fs_type); 1900 unregister_filesystem(&xfs_fs_type);
1901 xfs_inode_shrinker_destroy();
1897 xfs_sysctl_unregister(); 1902 xfs_sysctl_unregister();
1898 xfs_cleanup_procfs(); 1903 xfs_cleanup_procfs();
1899 xfs_buf_terminate(); 1904 xfs_buf_terminate();
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c
index fd9698215759..a427c638d909 100644
--- a/fs/xfs/linux-2.6/xfs_sync.c
+++ b/fs/xfs/linux-2.6/xfs_sync.c
@@ -95,7 +95,8 @@ xfs_inode_ag_walk(
95 struct xfs_perag *pag, int flags), 95 struct xfs_perag *pag, int flags),
96 int flags, 96 int flags,
97 int tag, 97 int tag,
98 int exclusive) 98 int exclusive,
99 int *nr_to_scan)
99{ 100{
100 uint32_t first_index; 101 uint32_t first_index;
101 int last_error = 0; 102 int last_error = 0;
@@ -134,7 +135,7 @@ restart:
134 if (error == EFSCORRUPTED) 135 if (error == EFSCORRUPTED)
135 break; 136 break;
136 137
137 } while (1); 138 } while ((*nr_to_scan)--);
138 139
139 if (skipped) { 140 if (skipped) {
140 delay(1); 141 delay(1);
@@ -150,12 +151,15 @@ xfs_inode_ag_iterator(
150 struct xfs_perag *pag, int flags), 151 struct xfs_perag *pag, int flags),
151 int flags, 152 int flags,
152 int tag, 153 int tag,
153 int exclusive) 154 int exclusive,
155 int *nr_to_scan)
154{ 156{
155 int error = 0; 157 int error = 0;
156 int last_error = 0; 158 int last_error = 0;
157 xfs_agnumber_t ag; 159 xfs_agnumber_t ag;
160 int nr;
158 161
162 nr = nr_to_scan ? *nr_to_scan : INT_MAX;
159 for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) { 163 for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) {
160 struct xfs_perag *pag; 164 struct xfs_perag *pag;
161 165
@@ -165,14 +169,18 @@ xfs_inode_ag_iterator(
165 continue; 169 continue;
166 } 170 }
167 error = xfs_inode_ag_walk(mp, pag, execute, flags, tag, 171 error = xfs_inode_ag_walk(mp, pag, execute, flags, tag,
168 exclusive); 172 exclusive, &nr);
169 xfs_perag_put(pag); 173 xfs_perag_put(pag);
170 if (error) { 174 if (error) {
171 last_error = error; 175 last_error = error;
172 if (error == EFSCORRUPTED) 176 if (error == EFSCORRUPTED)
173 break; 177 break;
174 } 178 }
179 if (nr <= 0)
180 break;
175 } 181 }
182 if (nr_to_scan)
183 *nr_to_scan = nr;
176 return XFS_ERROR(last_error); 184 return XFS_ERROR(last_error);
177} 185}
178 186
@@ -291,7 +299,7 @@ xfs_sync_data(
291 ASSERT((flags & ~(SYNC_TRYLOCK|SYNC_WAIT)) == 0); 299 ASSERT((flags & ~(SYNC_TRYLOCK|SYNC_WAIT)) == 0);
292 300
293 error = xfs_inode_ag_iterator(mp, xfs_sync_inode_data, flags, 301 error = xfs_inode_ag_iterator(mp, xfs_sync_inode_data, flags,
294 XFS_ICI_NO_TAG, 0); 302 XFS_ICI_NO_TAG, 0, NULL);
295 if (error) 303 if (error)
296 return XFS_ERROR(error); 304 return XFS_ERROR(error);
297 305
@@ -310,7 +318,7 @@ xfs_sync_attr(
310 ASSERT((flags & ~SYNC_WAIT) == 0); 318 ASSERT((flags & ~SYNC_WAIT) == 0);
311 319
312 return xfs_inode_ag_iterator(mp, xfs_sync_inode_attr, flags, 320 return xfs_inode_ag_iterator(mp, xfs_sync_inode_attr, flags,
313 XFS_ICI_NO_TAG, 0); 321 XFS_ICI_NO_TAG, 0, NULL);
314} 322}
315 323
316STATIC int 324STATIC int
@@ -673,6 +681,7 @@ __xfs_inode_set_reclaim_tag(
673 radix_tree_tag_set(&pag->pag_ici_root, 681 radix_tree_tag_set(&pag->pag_ici_root,
674 XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino), 682 XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino),
675 XFS_ICI_RECLAIM_TAG); 683 XFS_ICI_RECLAIM_TAG);
684 pag->pag_ici_reclaimable++;
676} 685}
677 686
678/* 687/*
@@ -705,6 +714,7 @@ __xfs_inode_clear_reclaim_tag(
705{ 714{
706 radix_tree_tag_clear(&pag->pag_ici_root, 715 radix_tree_tag_clear(&pag->pag_ici_root,
707 XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); 716 XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG);
717 pag->pag_ici_reclaimable--;
708} 718}
709 719
710/* 720/*
@@ -854,5 +864,93 @@ xfs_reclaim_inodes(
854 int mode) 864 int mode)
855{ 865{
856 return xfs_inode_ag_iterator(mp, xfs_reclaim_inode, mode, 866 return xfs_inode_ag_iterator(mp, xfs_reclaim_inode, mode,
857 XFS_ICI_RECLAIM_TAG, 1); 867 XFS_ICI_RECLAIM_TAG, 1, NULL);
868}
869
870/*
871 * Shrinker infrastructure.
872 *
873 * This is all far more complex than it needs to be. It adds a global list of
874 * mounts because the shrinkers can only call a global context. We need to make
875 * the shrinkers pass a context to avoid the need for global state.
876 */
877static LIST_HEAD(xfs_mount_list);
878static struct rw_semaphore xfs_mount_list_lock;
879
880static int
881xfs_reclaim_inode_shrink(
882 int nr_to_scan,
883 gfp_t gfp_mask)
884{
885 struct xfs_mount *mp;
886 struct xfs_perag *pag;
887 xfs_agnumber_t ag;
888 int reclaimable = 0;
889
890 if (nr_to_scan) {
891 if (!(gfp_mask & __GFP_FS))
892 return -1;
893
894 down_read(&xfs_mount_list_lock);
895 list_for_each_entry(mp, &xfs_mount_list, m_mplist) {
896 xfs_inode_ag_iterator(mp, xfs_reclaim_inode, 0,
897 XFS_ICI_RECLAIM_TAG, 1, &nr_to_scan);
898 if (nr_to_scan <= 0)
899 break;
900 }
901 up_read(&xfs_mount_list_lock);
902 }
903
904 down_read(&xfs_mount_list_lock);
905 list_for_each_entry(mp, &xfs_mount_list, m_mplist) {
906 for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) {
907
908 pag = xfs_perag_get(mp, ag);
909 if (!pag->pag_ici_init) {
910 xfs_perag_put(pag);
911 continue;
912 }
913 reclaimable += pag->pag_ici_reclaimable;
914 xfs_perag_put(pag);
915 }
916 }
917 up_read(&xfs_mount_list_lock);
918 return reclaimable;
919}
920
921static struct shrinker xfs_inode_shrinker = {
922 .shrink = xfs_reclaim_inode_shrink,
923 .seeks = DEFAULT_SEEKS,
924};
925
926void __init
927xfs_inode_shrinker_init(void)
928{
929 init_rwsem(&xfs_mount_list_lock);
930 register_shrinker(&xfs_inode_shrinker);
931}
932
933void
934xfs_inode_shrinker_destroy(void)
935{
936 ASSERT(list_empty(&xfs_mount_list));
937 unregister_shrinker(&xfs_inode_shrinker);
938}
939
940void
941xfs_inode_shrinker_register(
942 struct xfs_mount *mp)
943{
944 down_write(&xfs_mount_list_lock);
945 list_add_tail(&mp->m_mplist, &xfs_mount_list);
946 up_write(&xfs_mount_list_lock);
947}
948
949void
950xfs_inode_shrinker_unregister(
951 struct xfs_mount *mp)
952{
953 down_write(&xfs_mount_list_lock);
954 list_del(&mp->m_mplist);
955 up_write(&xfs_mount_list_lock);
858} 956}
diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h
index d480c346cabb..cdcbaaca9880 100644
--- a/fs/xfs/linux-2.6/xfs_sync.h
+++ b/fs/xfs/linux-2.6/xfs_sync.h
@@ -53,6 +53,11 @@ void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag,
53int xfs_sync_inode_valid(struct xfs_inode *ip, struct xfs_perag *pag); 53int xfs_sync_inode_valid(struct xfs_inode *ip, struct xfs_perag *pag);
54int xfs_inode_ag_iterator(struct xfs_mount *mp, 54int xfs_inode_ag_iterator(struct xfs_mount *mp,
55 int (*execute)(struct xfs_inode *ip, struct xfs_perag *pag, int flags), 55 int (*execute)(struct xfs_inode *ip, struct xfs_perag *pag, int flags),
56 int flags, int tag, int write_lock); 56 int flags, int tag, int write_lock, int *nr_to_scan);
57
58void xfs_inode_shrinker_init(void);
59void xfs_inode_shrinker_destroy(void);
60void xfs_inode_shrinker_register(struct xfs_mount *mp);
61void xfs_inode_shrinker_unregister(struct xfs_mount *mp);
57 62
58#endif 63#endif
diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c
index 5d0ee8d492db..50bee07d6b0e 100644
--- a/fs/xfs/quota/xfs_qm_syscalls.c
+++ b/fs/xfs/quota/xfs_qm_syscalls.c
@@ -891,7 +891,8 @@ xfs_qm_dqrele_all_inodes(
891 uint flags) 891 uint flags)
892{ 892{
893 ASSERT(mp->m_quotainfo); 893 ASSERT(mp->m_quotainfo);
894 xfs_inode_ag_iterator(mp, xfs_dqrele_inode, flags, XFS_ICI_NO_TAG, 0); 894 xfs_inode_ag_iterator(mp, xfs_dqrele_inode, flags,
895 XFS_ICI_NO_TAG, 0, NULL);
895} 896}
896 897
897/*------------------------------------------------------------------------*/ 898/*------------------------------------------------------------------------*/
diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h
index b1a5a1ff88ea..abb8222b88c9 100644
--- a/fs/xfs/xfs_ag.h
+++ b/fs/xfs/xfs_ag.h
@@ -223,6 +223,7 @@ typedef struct xfs_perag {
223 int pag_ici_init; /* incore inode cache initialised */ 223 int pag_ici_init; /* incore inode cache initialised */
224 rwlock_t pag_ici_lock; /* incore inode lock */ 224 rwlock_t pag_ici_lock; /* incore inode lock */
225 struct radix_tree_root pag_ici_root; /* incore inode cache root */ 225 struct radix_tree_root pag_ici_root; /* incore inode cache root */
226 int pag_ici_reclaimable; /* reclaimable inodes */
226#endif 227#endif
227 int pagb_count; /* pagb slots in use */ 228 int pagb_count; /* pagb slots in use */
228 xfs_perag_busy_t pagb_list[XFS_PAGB_NUM_SLOTS]; /* unstable blocks */ 229 xfs_perag_busy_t pagb_list[XFS_PAGB_NUM_SLOTS]; /* unstable blocks */
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c
index cd27c9d6c71f..5bba29a07812 100644
--- a/fs/xfs/xfs_dfrag.c
+++ b/fs/xfs/xfs_dfrag.c
@@ -177,16 +177,26 @@ xfs_swap_extents_check_format(
177 XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) > tip->i_df.if_ext_max) 177 XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) > tip->i_df.if_ext_max)
178 return EINVAL; 178 return EINVAL;
179 179
180 /* Check root block of temp in btree form to max in target */ 180 /*
181 * If we are in a btree format, check that the temp root block will fit
182 * in the target and that it has enough extents to be in btree format
183 * in the target.
184 *
185 * Note that we have to be careful to allow btree->extent conversions
186 * (a common defrag case) which will occur when the temp inode is in
187 * extent format...
188 */
181 if (tip->i_d.di_format == XFS_DINODE_FMT_BTREE && 189 if (tip->i_d.di_format == XFS_DINODE_FMT_BTREE &&
182 XFS_IFORK_BOFF(ip) && 190 ((XFS_IFORK_BOFF(ip) &&
183 tip->i_df.if_broot_bytes > XFS_IFORK_BOFF(ip)) 191 tip->i_df.if_broot_bytes > XFS_IFORK_BOFF(ip)) ||
192 XFS_IFORK_NEXTENTS(tip, XFS_DATA_FORK) <= ip->i_df.if_ext_max))
184 return EINVAL; 193 return EINVAL;
185 194
186 /* Check root block of target in btree form to max in temp */ 195 /* Reciprocal target->temp btree format checks */
187 if (ip->i_d.di_format == XFS_DINODE_FMT_BTREE && 196 if (ip->i_d.di_format == XFS_DINODE_FMT_BTREE &&
188 XFS_IFORK_BOFF(tip) && 197 ((XFS_IFORK_BOFF(tip) &&
189 ip->i_df.if_broot_bytes > XFS_IFORK_BOFF(tip)) 198 ip->i_df.if_broot_bytes > XFS_IFORK_BOFF(tip)) ||
199 XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) <= tip->i_df.if_ext_max))
190 return EINVAL; 200 return EINVAL;
191 201
192 return 0; 202 return 0;
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 4fa0bc7b983e..9ff48a16a7ee 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -259,6 +259,7 @@ typedef struct xfs_mount {
259 wait_queue_head_t m_wait_single_sync_task; 259 wait_queue_head_t m_wait_single_sync_task;
260 __int64_t m_update_flags; /* sb flags we need to update 260 __int64_t m_update_flags; /* sb flags we need to update
261 on the next remount,rw */ 261 on the next remount,rw */
262 struct list_head m_mplist; /* inode shrinker mount list */
262} xfs_mount_t; 263} xfs_mount_t;
263 264
264/* 265/*
diff --git a/include/asm-generic/dma-mapping-common.h b/include/asm-generic/dma-mapping-common.h
index e694263445f7..69206957b72c 100644
--- a/include/asm-generic/dma-mapping-common.h
+++ b/include/asm-generic/dma-mapping-common.h
@@ -131,7 +131,7 @@ static inline void dma_sync_single_range_for_cpu(struct device *dev,
131 debug_dma_sync_single_range_for_cpu(dev, addr, offset, size, dir); 131 debug_dma_sync_single_range_for_cpu(dev, addr, offset, size, dir);
132 132
133 } else 133 } else
134 dma_sync_single_for_cpu(dev, addr, size, dir); 134 dma_sync_single_for_cpu(dev, addr + offset, size, dir);
135} 135}
136 136
137static inline void dma_sync_single_range_for_device(struct device *dev, 137static inline void dma_sync_single_range_for_device(struct device *dev,
@@ -148,7 +148,7 @@ static inline void dma_sync_single_range_for_device(struct device *dev,
148 debug_dma_sync_single_range_for_device(dev, addr, offset, size, dir); 148 debug_dma_sync_single_range_for_device(dev, addr, offset, size, dir);
149 149
150 } else 150 } else
151 dma_sync_single_for_device(dev, addr, size, dir); 151 dma_sync_single_for_device(dev, addr + offset, size, dir);
152} 152}
153 153
154static inline void 154static inline void
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index e929c27ede22..6b9db917e717 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -789,34 +789,6 @@ extern void ttm_bo_unreserve(struct ttm_buffer_object *bo);
789extern int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo, 789extern int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo,
790 bool interruptible); 790 bool interruptible);
791 791
792/**
793 * ttm_bo_block_reservation
794 *
795 * @bo: A pointer to a struct ttm_buffer_object.
796 * @interruptible: Use interruptible sleep when waiting.
797 * @no_wait: Don't sleep, but rather return -EBUSY.
798 *
799 * Block reservation for validation by simply reserving the buffer.
800 * This is intended for single buffer use only without eviction,
801 * and thus needs no deadlock protection.
802 *
803 * Returns:
804 * -EBUSY: If no_wait == 1 and the buffer is already reserved.
805 * -ERESTARTSYS: If interruptible == 1 and the process received a signal
806 * while sleeping.
807 */
808extern int ttm_bo_block_reservation(struct ttm_buffer_object *bo,
809 bool interruptible, bool no_wait);
810
811/**
812 * ttm_bo_unblock_reservation
813 *
814 * @bo: A pointer to a struct ttm_buffer_object.
815 *
816 * Unblocks reservation leaving lru lists untouched.
817 */
818extern void ttm_bo_unblock_reservation(struct ttm_buffer_object *bo);
819
820/* 792/*
821 * ttm_bo_util.c 793 * ttm_bo_util.c
822 */ 794 */
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index fcbc26af00e4..bd0e3c6f323f 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -101,6 +101,7 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent,
101 const char *fmt, ...); 101 const char *fmt, ...);
102int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); 102int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
103void bdi_unregister(struct backing_dev_info *bdi); 103void bdi_unregister(struct backing_dev_info *bdi);
104int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int);
104void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, 105void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb,
105 long nr_pages); 106 long nr_pages);
106int bdi_writeback_task(struct bdi_writeback *wb); 107int bdi_writeback_task(struct bdi_writeback *wb);
@@ -246,6 +247,7 @@ int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio);
246#endif 247#endif
247 248
248extern struct backing_dev_info default_backing_dev_info; 249extern struct backing_dev_info default_backing_dev_info;
250extern struct backing_dev_info noop_backing_dev_info;
249void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page); 251void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page);
250 252
251int writeback_in_progress(struct backing_dev_info *bdi); 253int writeback_in_progress(struct backing_dev_info *bdi);
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index b8ad1ea99586..8f78073d7caa 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -530,6 +530,7 @@ static inline struct cgroup_subsys_state *task_subsys_state(
530{ 530{
531 return rcu_dereference_check(task->cgroups->subsys[subsys_id], 531 return rcu_dereference_check(task->cgroups->subsys[subsys_id],
532 rcu_read_lock_held() || 532 rcu_read_lock_held() ||
533 lockdep_is_held(&task->alloc_lock) ||
533 cgroup_lock_is_held()); 534 cgroup_lock_is_held());
534} 535}
535 536
diff --git a/include/linux/coda_psdev.h b/include/linux/coda_psdev.h
index 5b5d4731f956..8859e2ede9fe 100644
--- a/include/linux/coda_psdev.h
+++ b/include/linux/coda_psdev.h
@@ -7,6 +7,8 @@
7#define MAX_CODADEVS 5 /* how many do we allow */ 7#define MAX_CODADEVS 5 /* how many do we allow */
8 8
9#ifdef __KERNEL__ 9#ifdef __KERNEL__
10#include <linux/backing-dev.h>
11
10struct kstatfs; 12struct kstatfs;
11 13
12/* communication pending/processing queues */ 14/* communication pending/processing queues */
@@ -17,6 +19,7 @@ struct venus_comm {
17 struct list_head vc_processing; 19 struct list_head vc_processing;
18 int vc_inuse; 20 int vc_inuse;
19 struct super_block *vc_sb; 21 struct super_block *vc_sb;
22 struct backing_dev_info bdi;
20}; 23};
21 24
22 25
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h
index 81f3b14d5d76..68f883b30a53 100644
--- a/include/linux/firewire-cdev.h
+++ b/include/linux/firewire-cdev.h
@@ -17,7 +17,7 @@
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 * DEALINGS IN THE SOFTWARE. 23 * DEALINGS IN THE SOFTWARE.
diff --git a/include/linux/firewire-constants.h b/include/linux/firewire-constants.h
index 9c63f06e67f2..9b4bb5fbba4b 100644
--- a/include/linux/firewire-constants.h
+++ b/include/linux/firewire-constants.h
@@ -17,7 +17,7 @@
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 * DEALINGS IN THE SOFTWARE. 23 * DEALINGS IN THE SOFTWARE.
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 39d57bc6cc71..44f35aea2f1f 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2315,8 +2315,9 @@ extern int vfs_fstatat(int , char __user *, struct kstat *, int);
2315extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, 2315extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
2316 unsigned long arg); 2316 unsigned long arg);
2317extern int __generic_block_fiemap(struct inode *inode, 2317extern int __generic_block_fiemap(struct inode *inode,
2318 struct fiemap_extent_info *fieinfo, u64 start, 2318 struct fiemap_extent_info *fieinfo,
2319 u64 len, get_block_t *get_block); 2319 loff_t start, loff_t len,
2320 get_block_t *get_block);
2320extern int generic_block_fiemap(struct inode *inode, 2321extern int generic_block_fiemap(struct inode *inode,
2321 struct fiemap_extent_info *fieinfo, u64 start, 2322 struct fiemap_extent_info *fieinfo, u64 start,
2322 u64 len, get_block_t *get_block); 2323 u64 len, get_block_t *get_block);
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 0a5da639b327..6ed1d59bfb1e 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -355,6 +355,8 @@ struct i2c_adapter {
355 int nr; 355 int nr;
356 char name[48]; 356 char name[48];
357 struct completion dev_released; 357 struct completion dev_released;
358
359 struct list_head userspace_clients;
358}; 360};
359#define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev) 361#define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev)
360 362
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index a3fd0f91d943..169d07758ee5 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -54,7 +54,7 @@ extern struct kmem_cache *kvm_vcpu_cache;
54 */ 54 */
55struct kvm_io_bus { 55struct kvm_io_bus {
56 int dev_count; 56 int dev_count;
57#define NR_IOBUS_DEVS 6 57#define NR_IOBUS_DEVS 200
58 struct kvm_io_device *devs[NR_IOBUS_DEVS]; 58 struct kvm_io_device *devs[NR_IOBUS_DEVS];
59}; 59};
60 60
@@ -119,6 +119,11 @@ struct kvm_memory_slot {
119 int user_alloc; 119 int user_alloc;
120}; 120};
121 121
122static inline unsigned long kvm_dirty_bitmap_bytes(struct kvm_memory_slot *memslot)
123{
124 return ALIGN(memslot->npages, BITS_PER_LONG) / 8;
125}
126
122struct kvm_kernel_irq_routing_entry { 127struct kvm_kernel_irq_routing_entry {
123 u32 gsi; 128 u32 gsi;
124 u32 type; 129 u32 type;
diff --git a/include/linux/ncp_fs_sb.h b/include/linux/ncp_fs_sb.h
index 6330fc76b00f..5ec9ca671687 100644
--- a/include/linux/ncp_fs_sb.h
+++ b/include/linux/ncp_fs_sb.h
@@ -12,6 +12,7 @@
12#include <linux/ncp_mount.h> 12#include <linux/ncp_mount.h>
13#include <linux/net.h> 13#include <linux/net.h>
14#include <linux/mutex.h> 14#include <linux/mutex.h>
15#include <linux/backing-dev.h>
15 16
16#ifdef __KERNEL__ 17#ifdef __KERNEL__
17 18
@@ -127,6 +128,7 @@ struct ncp_server {
127 size_t len; 128 size_t len;
128 __u8 data[128]; 129 __u8 data[128];
129 } unexpected_packet; 130 } unexpected_packet;
131 struct backing_dev_info bdi;
130}; 132};
131 133
132extern void ncp_tcp_rcv_proc(struct work_struct *work); 134extern void ncp_tcp_rcv_proc(struct work_struct *work);
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 1a0b85aa151e..07ce4609fe50 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -209,6 +209,7 @@ struct nfs_inode {
209#define NFS_INO_FLUSHING (4) /* inode is flushing out data */ 209#define NFS_INO_FLUSHING (4) /* inode is flushing out data */
210#define NFS_INO_FSCACHE (5) /* inode can be cached by FS-Cache */ 210#define NFS_INO_FSCACHE (5) /* inode can be cached by FS-Cache */
211#define NFS_INO_FSCACHE_LOCK (6) /* FS-Cache cookie management lock */ 211#define NFS_INO_FSCACHE_LOCK (6) /* FS-Cache cookie management lock */
212#define NFS_INO_COMMIT (7) /* inode is committing unstable writes */
212 213
213static inline struct nfs_inode *NFS_I(const struct inode *inode) 214static inline struct nfs_inode *NFS_I(const struct inode *inode)
214{ 215{
diff --git a/include/linux/poison.h b/include/linux/poison.h
index 2110a81c5e2a..34066ffd893d 100644
--- a/include/linux/poison.h
+++ b/include/linux/poison.h
@@ -48,6 +48,15 @@
48#define POISON_FREE 0x6b /* for use-after-free poisoning */ 48#define POISON_FREE 0x6b /* for use-after-free poisoning */
49#define POISON_END 0xa5 /* end-byte of poisoning */ 49#define POISON_END 0xa5 /* end-byte of poisoning */
50 50
51/********** mm/hugetlb.c **********/
52/*
53 * Private mappings of hugetlb pages use this poisoned value for
54 * page->mapping. The core VM should not be doing anything with this mapping
55 * but futex requires the existence of some page->mapping value even though it
56 * is unused if PAGE_MAPPING_ANON is set.
57 */
58#define HUGETLB_POISON ((void *)(0x00300300 + POISON_POINTER_DELTA + PAGE_MAPPING_ANON))
59
51/********** arch/$ARCH/mm/init.c **********/ 60/********** arch/$ARCH/mm/init.c **********/
52#define POISON_FREE_INITMEM 0xcc 61#define POISON_FREE_INITMEM 0xcc
53 62
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index 07db2feb8572..db266bbed23f 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -190,6 +190,8 @@ static inline int rcu_read_lock_sched_held(void)
190 190
191#ifdef CONFIG_PROVE_RCU 191#ifdef CONFIG_PROVE_RCU
192 192
193extern int rcu_my_thread_group_empty(void);
194
193/** 195/**
194 * rcu_dereference_check - rcu_dereference with debug checking 196 * rcu_dereference_check - rcu_dereference with debug checking
195 * @p: The pointer to read, prior to dereferencing 197 * @p: The pointer to read, prior to dereferencing
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h
index 28c9fd020d39..ebd747265294 100644
--- a/include/linux/regulator/consumer.h
+++ b/include/linux/regulator/consumer.h
@@ -183,9 +183,13 @@ static inline struct regulator *__must_check regulator_get(struct device *dev,
183{ 183{
184 /* Nothing except the stubbed out regulator API should be 184 /* Nothing except the stubbed out regulator API should be
185 * looking at the value except to check if it is an error 185 * looking at the value except to check if it is an error
186 * value so the actual return value doesn't matter. 186 * value. Drivers are free to handle NULL specifically by
187 * skipping all regulator API calls, but they don't have to.
188 * Drivers which don't, should make sure they properly handle
189 * corner cases of the API, such as regulator_get_voltage()
190 * returning 0.
187 */ 191 */
188 return (struct regulator *)id; 192 return NULL;
189} 193}
190static inline void regulator_put(struct regulator *regulator) 194static inline void regulator_put(struct regulator *regulator)
191{ 195{
diff --git a/include/linux/sched.h b/include/linux/sched.h
index dad7f668ebf7..2b7b81df78b3 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1497,7 +1497,6 @@ struct task_struct {
1497 /* bitmask of trace recursion */ 1497 /* bitmask of trace recursion */
1498 unsigned long trace_recursion; 1498 unsigned long trace_recursion;
1499#endif /* CONFIG_TRACING */ 1499#endif /* CONFIG_TRACING */
1500 unsigned long stack_start;
1501#ifdef CONFIG_CGROUP_MEM_RES_CTLR /* memcg uses this to do batch job */ 1500#ifdef CONFIG_CGROUP_MEM_RES_CTLR /* memcg uses this to do batch job */
1502 struct memcg_batch_info { 1501 struct memcg_batch_info {
1503 int do_batch; /* incremented when batch uncharge started */ 1502 int do_batch; /* incremented when batch uncharge started */
diff --git a/include/linux/smb_fs_sb.h b/include/linux/smb_fs_sb.h
index 8a060a7040d8..bb947dd1fba9 100644
--- a/include/linux/smb_fs_sb.h
+++ b/include/linux/smb_fs_sb.h
@@ -10,6 +10,7 @@
10#define _SMB_FS_SB 10#define _SMB_FS_SB
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/backing-dev.h>
13#include <linux/smb.h> 14#include <linux/smb.h>
14 15
15/* 16/*
@@ -74,6 +75,8 @@ struct smb_sb_info {
74 struct smb_ops *ops; 75 struct smb_ops *ops;
75 76
76 struct super_block *super_block; 77 struct super_block *super_block;
78
79 struct backing_dev_info bdi;
77}; 80};
78 81
79static inline int 82static inline int
diff --git a/include/linux/usb.h b/include/linux/usb.h
index ce1323c4e47c..739f1fd1cc15 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -1085,7 +1085,7 @@ typedef void (*usb_complete_t)(struct urb *);
1085 * Alternatively, drivers may pass the URB_NO_xxx_DMA_MAP transfer flags, 1085 * Alternatively, drivers may pass the URB_NO_xxx_DMA_MAP transfer flags,
1086 * which tell the host controller driver that no such mapping is needed since 1086 * which tell the host controller driver that no such mapping is needed since
1087 * the device driver is DMA-aware. For example, a device driver might 1087 * the device driver is DMA-aware. For example, a device driver might
1088 * allocate a DMA buffer with usb_buffer_alloc() or call usb_buffer_map(). 1088 * allocate a DMA buffer with usb_alloc_coherent() or call usb_buffer_map().
1089 * When these transfer flags are provided, host controller drivers will 1089 * When these transfer flags are provided, host controller drivers will
1090 * attempt to use the dma addresses found in the transfer_dma and/or 1090 * attempt to use the dma addresses found in the transfer_dma and/or
1091 * setup_dma fields rather than determining a dma address themselves. 1091 * setup_dma fields rather than determining a dma address themselves.
@@ -1366,11 +1366,23 @@ static inline int usb_urb_dir_out(struct urb *urb)
1366 return (urb->transfer_flags & URB_DIR_MASK) == URB_DIR_OUT; 1366 return (urb->transfer_flags & URB_DIR_MASK) == URB_DIR_OUT;
1367} 1367}
1368 1368
1369void *usb_buffer_alloc(struct usb_device *dev, size_t size, 1369void *usb_alloc_coherent(struct usb_device *dev, size_t size,
1370 gfp_t mem_flags, dma_addr_t *dma); 1370 gfp_t mem_flags, dma_addr_t *dma);
1371void usb_buffer_free(struct usb_device *dev, size_t size, 1371void usb_free_coherent(struct usb_device *dev, size_t size,
1372 void *addr, dma_addr_t dma); 1372 void *addr, dma_addr_t dma);
1373 1373
1374/* Compatible macros while we switch over */
1375static inline void *usb_buffer_alloc(struct usb_device *dev, size_t size,
1376 gfp_t mem_flags, dma_addr_t *dma)
1377{
1378 return usb_alloc_coherent(dev, size, mem_flags, dma);
1379}
1380static inline void usb_buffer_free(struct usb_device *dev, size_t size,
1381 void *addr, dma_addr_t dma)
1382{
1383 return usb_free_coherent(dev, size, addr, dma);
1384}
1385
1374#if 0 1386#if 0
1375struct urb *usb_buffer_map(struct urb *urb); 1387struct urb *usb_buffer_map(struct urb *urb);
1376void usb_buffer_dmasync(struct urb *urb); 1388void usb_buffer_dmasync(struct urb *urb);
diff --git a/include/media/saa7146_vv.h b/include/media/saa7146_vv.h
index b9da1f5591e7..4aeff96ff7d8 100644
--- a/include/media/saa7146_vv.h
+++ b/include/media/saa7146_vv.h
@@ -188,7 +188,6 @@ void saa7146_buffer_timeout(unsigned long data);
188void saa7146_dma_free(struct saa7146_dev* dev,struct videobuf_queue *q, 188void saa7146_dma_free(struct saa7146_dev* dev,struct videobuf_queue *q,
189 struct saa7146_buf *buf); 189 struct saa7146_buf *buf);
190 190
191int saa7146_vv_devinit(struct saa7146_dev *dev);
192int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv); 191int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv);
193int saa7146_vv_release(struct saa7146_dev* dev); 192int saa7146_vv_release(struct saa7146_dev* dev);
194 193
diff --git a/include/net/sctp/command.h b/include/net/sctp/command.h
index 8be5135ff7aa..2c55a7ea20af 100644
--- a/include/net/sctp/command.h
+++ b/include/net/sctp/command.h
@@ -107,6 +107,7 @@ typedef enum {
107 SCTP_CMD_T1_RETRAN, /* Mark for retransmission after T1 timeout */ 107 SCTP_CMD_T1_RETRAN, /* Mark for retransmission after T1 timeout */
108 SCTP_CMD_UPDATE_INITTAG, /* Update peer inittag */ 108 SCTP_CMD_UPDATE_INITTAG, /* Update peer inittag */
109 SCTP_CMD_SEND_MSG, /* Send the whole use message */ 109 SCTP_CMD_SEND_MSG, /* Send the whole use message */
110 SCTP_CMD_SEND_NEXT_ASCONF, /* Send the next ASCONF after ACK */
110 SCTP_CMD_LAST 111 SCTP_CMD_LAST
111} sctp_verb_t; 112} sctp_verb_t;
112 113
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
index 78740ec57d5d..fa6cde578a1d 100644
--- a/include/net/sctp/sctp.h
+++ b/include/net/sctp/sctp.h
@@ -128,6 +128,7 @@ extern int sctp_register_pf(struct sctp_pf *, sa_family_t);
128int sctp_backlog_rcv(struct sock *sk, struct sk_buff *skb); 128int sctp_backlog_rcv(struct sock *sk, struct sk_buff *skb);
129int sctp_inet_listen(struct socket *sock, int backlog); 129int sctp_inet_listen(struct socket *sock, int backlog);
130void sctp_write_space(struct sock *sk); 130void sctp_write_space(struct sock *sk);
131void sctp_data_ready(struct sock *sk, int len);
131unsigned int sctp_poll(struct file *file, struct socket *sock, 132unsigned int sctp_poll(struct file *file, struct socket *sock,
132 poll_table *wait); 133 poll_table *wait);
133void sctp_sock_rfree(struct sk_buff *skb); 134void sctp_sock_rfree(struct sk_buff *skb);
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
index 851c813adb3a..61d73e37d543 100644
--- a/include/net/sctp/sm.h
+++ b/include/net/sctp/sm.h
@@ -279,6 +279,7 @@ int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype,
279/* 2nd level prototypes */ 279/* 2nd level prototypes */
280void sctp_generate_t3_rtx_event(unsigned long peer); 280void sctp_generate_t3_rtx_event(unsigned long peer);
281void sctp_generate_heartbeat_event(unsigned long peer); 281void sctp_generate_heartbeat_event(unsigned long peer);
282void sctp_generate_proto_unreach_event(unsigned long peer);
282 283
283void sctp_ootb_pkt_free(struct sctp_packet *); 284void sctp_ootb_pkt_free(struct sctp_packet *);
284 285
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index ff3017744711..219043a67bf7 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -778,6 +778,7 @@ int sctp_user_addto_chunk(struct sctp_chunk *chunk, int off, int len,
778 struct iovec *data); 778 struct iovec *data);
779void sctp_chunk_free(struct sctp_chunk *); 779void sctp_chunk_free(struct sctp_chunk *);
780void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data); 780void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data);
781void *sctp_addto_chunk_fixed(struct sctp_chunk *, int len, const void *data);
781struct sctp_chunk *sctp_chunkify(struct sk_buff *, 782struct sctp_chunk *sctp_chunkify(struct sk_buff *,
782 const struct sctp_association *, 783 const struct sctp_association *,
783 struct sock *); 784 struct sock *);
@@ -1009,6 +1010,9 @@ struct sctp_transport {
1009 /* Heartbeat timer is per destination. */ 1010 /* Heartbeat timer is per destination. */
1010 struct timer_list hb_timer; 1011 struct timer_list hb_timer;
1011 1012
1013 /* Timer to handle ICMP proto unreachable envets */
1014 struct timer_list proto_unreach_timer;
1015
1012 /* Since we're using per-destination retransmission timers 1016 /* Since we're using per-destination retransmission timers
1013 * (see above), we're also using per-destination "transmitted" 1017 * (see above), we're also using per-destination "transmitted"
1014 * queues. This probably ought to be a private struct 1018 * queues. This probably ought to be a private struct
diff --git a/include/net/sock.h b/include/net/sock.h
index b4603cd54fcd..1ad6435f252e 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -74,7 +74,7 @@
74 printk(KERN_DEBUG msg); } while (0) 74 printk(KERN_DEBUG msg); } while (0)
75#else 75#else
76/* Validate arguments and do nothing */ 76/* Validate arguments and do nothing */
77static void inline int __attribute__ ((format (printf, 2, 3))) 77static inline void __attribute__ ((format (printf, 2, 3)))
78SOCK_DEBUG(struct sock *sk, const char *msg, ...) 78SOCK_DEBUG(struct sock *sk, const char *msg, ...)
79{ 79{
80} 80}
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h
index d57847f2f6c1..aab3c13dc310 100644
--- a/include/pcmcia/ds.h
+++ b/include/pcmcia/ds.h
@@ -26,6 +26,7 @@
26#ifdef __KERNEL__ 26#ifdef __KERNEL__
27#include <linux/device.h> 27#include <linux/device.h>
28#include <pcmcia/ss.h> 28#include <pcmcia/ss.h>
29#include <asm/atomic.h>
29 30
30/* 31/*
31 * PCMCIA device drivers (16-bit cards only; 32-bit cards require CardBus 32 * PCMCIA device drivers (16-bit cards only; 32-bit cards require CardBus
@@ -94,10 +95,8 @@ struct pcmcia_device {
94 config_req_t conf; 95 config_req_t conf;
95 window_handle_t win; 96 window_handle_t win;
96 97
97 /* Is the device suspended, or in the process of 98 /* Is the device suspended? */
98 * being removed? */
99 u16 suspended:1; 99 u16 suspended:1;
100 u16 _removed:1;
101 100
102 /* Flags whether io, irq, win configurations were 101 /* Flags whether io, irq, win configurations were
103 * requested, and whether the configuration is "locked" */ 102 * requested, and whether the configuration is "locked" */
@@ -115,7 +114,7 @@ struct pcmcia_device {
115 u16 has_card_id:1; 114 u16 has_card_id:1;
116 u16 has_func_id:1; 115 u16 has_func_id:1;
117 116
118 u16 reserved:3; 117 u16 reserved:4;
119 118
120 u8 func_id; 119 u8 func_id;
121 u16 manf_id; 120 u16 manf_id;
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h
index 2e488b60bc76..344705cb42f4 100644
--- a/include/pcmcia/ss.h
+++ b/include/pcmcia/ss.h
@@ -224,18 +224,16 @@ struct pcmcia_socket {
224 224
225 /* 16-bit state: */ 225 /* 16-bit state: */
226 struct { 226 struct {
227 /* PCMCIA card is present in socket */
228 u8 present:1;
229 /* "master" ioctl is used */ 227 /* "master" ioctl is used */
230 u8 busy:1; 228 u8 busy:1;
231 /* pcmcia module is being unloaded */
232 u8 dead:1;
233 /* the PCMCIA card consists of two pseudo devices */ 229 /* the PCMCIA card consists of two pseudo devices */
234 u8 has_pfc:1; 230 u8 has_pfc:1;
235 231
236 u8 reserved:4; 232 u8 reserved:6;
237 } pcmcia_state; 233 } pcmcia_state;
238 234
235 /* non-zero if PCMCIA card is present */
236 atomic_t present;
239 237
240#ifdef CONFIG_PCMCIA_IOCTL 238#ifdef CONFIG_PCMCIA_IOCTL
241 struct user_info_t *user; 239 struct user_info_t *user;
diff --git a/init/initramfs.c b/init/initramfs.c
index 37d3859b1b32..4b9c20205092 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -457,7 +457,8 @@ static char * __init unpack_to_rootfs(char *buf, unsigned len)
457 compress_name); 457 compress_name);
458 message = msg_buf; 458 message = msg_buf;
459 } 459 }
460 } 460 } else
461 error("junk in compressed archive");
461 if (state != Reset) 462 if (state != Reset)
462 error("junk in compressed archive"); 463 error("junk in compressed archive");
463 this_header = saved_offset + my_inptr; 464 this_header = saved_offset + my_inptr;
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index 722b0130aa94..59a009dc54a8 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -158,7 +158,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
158 u->mq_bytes + mq_bytes > 158 u->mq_bytes + mq_bytes >
159 task_rlimit(p, RLIMIT_MSGQUEUE)) { 159 task_rlimit(p, RLIMIT_MSGQUEUE)) {
160 spin_unlock(&mq_lock); 160 spin_unlock(&mq_lock);
161 kfree(info->messages); 161 /* mqueue_delete_inode() releases info->messages */
162 goto out_inode; 162 goto out_inode;
163 } 163 }
164 u->mq_bytes += mq_bytes; 164 u->mq_bytes += mq_bytes;
diff --git a/kernel/acct.c b/kernel/acct.c
index 24f8c81fc48d..e4c0e1fee9b0 100644
--- a/kernel/acct.c
+++ b/kernel/acct.c
@@ -353,17 +353,18 @@ restart:
353 353
354void acct_exit_ns(struct pid_namespace *ns) 354void acct_exit_ns(struct pid_namespace *ns)
355{ 355{
356 struct bsd_acct_struct *acct; 356 struct bsd_acct_struct *acct = ns->bacct;
357 357
358 spin_lock(&acct_lock); 358 if (acct == NULL)
359 acct = ns->bacct; 359 return;
360 if (acct != NULL) {
361 if (acct->file != NULL)
362 acct_file_reopen(acct, NULL, NULL);
363 360
364 kfree(acct); 361 del_timer_sync(&acct->timer);
365 } 362 spin_lock(&acct_lock);
363 if (acct->file != NULL)
364 acct_file_reopen(acct, NULL, NULL);
366 spin_unlock(&acct_lock); 365 spin_unlock(&acct_lock);
366
367 kfree(acct);
367} 368}
368 369
369/* 370/*
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index e2769e13980c..6d870f2d1228 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1646,7 +1646,9 @@ static inline struct cftype *__d_cft(struct dentry *dentry)
1646int cgroup_path(const struct cgroup *cgrp, char *buf, int buflen) 1646int cgroup_path(const struct cgroup *cgrp, char *buf, int buflen)
1647{ 1647{
1648 char *start; 1648 char *start;
1649 struct dentry *dentry = rcu_dereference(cgrp->dentry); 1649 struct dentry *dentry = rcu_dereference_check(cgrp->dentry,
1650 rcu_read_lock_held() ||
1651 cgroup_lock_is_held());
1650 1652
1651 if (!dentry || cgrp == dummytop) { 1653 if (!dentry || cgrp == dummytop) {
1652 /* 1654 /*
@@ -1662,13 +1664,17 @@ int cgroup_path(const struct cgroup *cgrp, char *buf, int buflen)
1662 *--start = '\0'; 1664 *--start = '\0';
1663 for (;;) { 1665 for (;;) {
1664 int len = dentry->d_name.len; 1666 int len = dentry->d_name.len;
1667
1665 if ((start -= len) < buf) 1668 if ((start -= len) < buf)
1666 return -ENAMETOOLONG; 1669 return -ENAMETOOLONG;
1667 memcpy(start, cgrp->dentry->d_name.name, len); 1670 memcpy(start, dentry->d_name.name, len);
1668 cgrp = cgrp->parent; 1671 cgrp = cgrp->parent;
1669 if (!cgrp) 1672 if (!cgrp)
1670 break; 1673 break;
1671 dentry = rcu_dereference(cgrp->dentry); 1674
1675 dentry = rcu_dereference_check(cgrp->dentry,
1676 rcu_read_lock_held() ||
1677 cgroup_lock_is_held());
1672 if (!cgrp->parent) 1678 if (!cgrp->parent)
1673 continue; 1679 continue;
1674 if (--start < buf) 1680 if (--start < buf)
@@ -4429,7 +4435,15 @@ __setup("cgroup_disable=", cgroup_disable);
4429 */ 4435 */
4430unsigned short css_id(struct cgroup_subsys_state *css) 4436unsigned short css_id(struct cgroup_subsys_state *css)
4431{ 4437{
4432 struct css_id *cssid = rcu_dereference(css->id); 4438 struct css_id *cssid;
4439
4440 /*
4441 * This css_id() can return correct value when somone has refcnt
4442 * on this or this is under rcu_read_lock(). Once css->id is allocated,
4443 * it's unchanged until freed.
4444 */
4445 cssid = rcu_dereference_check(css->id,
4446 rcu_read_lock_held() || atomic_read(&css->refcnt));
4433 4447
4434 if (cssid) 4448 if (cssid)
4435 return cssid->id; 4449 return cssid->id;
@@ -4439,7 +4453,10 @@ EXPORT_SYMBOL_GPL(css_id);
4439 4453
4440unsigned short css_depth(struct cgroup_subsys_state *css) 4454unsigned short css_depth(struct cgroup_subsys_state *css)
4441{ 4455{
4442 struct css_id *cssid = rcu_dereference(css->id); 4456 struct css_id *cssid;
4457
4458 cssid = rcu_dereference_check(css->id,
4459 rcu_read_lock_held() || atomic_read(&css->refcnt));
4443 4460
4444 if (cssid) 4461 if (cssid)
4445 return cssid->depth; 4462 return cssid->depth;
@@ -4447,15 +4464,36 @@ unsigned short css_depth(struct cgroup_subsys_state *css)
4447} 4464}
4448EXPORT_SYMBOL_GPL(css_depth); 4465EXPORT_SYMBOL_GPL(css_depth);
4449 4466
4467/**
4468 * css_is_ancestor - test "root" css is an ancestor of "child"
4469 * @child: the css to be tested.
4470 * @root: the css supporsed to be an ancestor of the child.
4471 *
4472 * Returns true if "root" is an ancestor of "child" in its hierarchy. Because
4473 * this function reads css->id, this use rcu_dereference() and rcu_read_lock().
4474 * But, considering usual usage, the csses should be valid objects after test.
4475 * Assuming that the caller will do some action to the child if this returns
4476 * returns true, the caller must take "child";s reference count.
4477 * If "child" is valid object and this returns true, "root" is valid, too.
4478 */
4479
4450bool css_is_ancestor(struct cgroup_subsys_state *child, 4480bool css_is_ancestor(struct cgroup_subsys_state *child,
4451 const struct cgroup_subsys_state *root) 4481 const struct cgroup_subsys_state *root)
4452{ 4482{
4453 struct css_id *child_id = rcu_dereference(child->id); 4483 struct css_id *child_id;
4454 struct css_id *root_id = rcu_dereference(root->id); 4484 struct css_id *root_id;
4485 bool ret = true;
4455 4486
4456 if (!child_id || !root_id || (child_id->depth < root_id->depth)) 4487 rcu_read_lock();
4457 return false; 4488 child_id = rcu_dereference(child->id);
4458 return child_id->stack[root_id->depth] == root_id->id; 4489 root_id = rcu_dereference(root->id);
4490 if (!child_id
4491 || !root_id
4492 || (child_id->depth < root_id->depth)
4493 || (child_id->stack[root_id->depth] != root_id->id))
4494 ret = false;
4495 rcu_read_unlock();
4496 return ret;
4459} 4497}
4460 4498
4461static void __free_css_id_cb(struct rcu_head *head) 4499static void __free_css_id_cb(struct rcu_head *head)
@@ -4555,13 +4593,13 @@ static int alloc_css_id(struct cgroup_subsys *ss, struct cgroup *parent,
4555{ 4593{
4556 int subsys_id, i, depth = 0; 4594 int subsys_id, i, depth = 0;
4557 struct cgroup_subsys_state *parent_css, *child_css; 4595 struct cgroup_subsys_state *parent_css, *child_css;
4558 struct css_id *child_id, *parent_id = NULL; 4596 struct css_id *child_id, *parent_id;
4559 4597
4560 subsys_id = ss->subsys_id; 4598 subsys_id = ss->subsys_id;
4561 parent_css = parent->subsys[subsys_id]; 4599 parent_css = parent->subsys[subsys_id];
4562 child_css = child->subsys[subsys_id]; 4600 child_css = child->subsys[subsys_id];
4563 depth = css_depth(parent_css) + 1;
4564 parent_id = parent_css->id; 4601 parent_id = parent_css->id;
4602 depth = parent_id->depth;
4565 4603
4566 child_id = get_new_cssid(ss, depth); 4604 child_id = get_new_cssid(ss, depth);
4567 if (IS_ERR(child_id)) 4605 if (IS_ERR(child_id))
diff --git a/kernel/cgroup_freezer.c b/kernel/cgroup_freezer.c
index da5e13975531..e5c0244962b0 100644
--- a/kernel/cgroup_freezer.c
+++ b/kernel/cgroup_freezer.c
@@ -205,9 +205,12 @@ static void freezer_fork(struct cgroup_subsys *ss, struct task_struct *task)
205 * No lock is needed, since the task isn't on tasklist yet, 205 * No lock is needed, since the task isn't on tasklist yet,
206 * so it can't be moved to another cgroup, which means the 206 * so it can't be moved to another cgroup, which means the
207 * freezer won't be removed and will be valid during this 207 * freezer won't be removed and will be valid during this
208 * function call. 208 * function call. Nevertheless, apply RCU read-side critical
209 * section to suppress RCU lockdep false positives.
209 */ 210 */
211 rcu_read_lock();
210 freezer = task_freezer(task); 212 freezer = task_freezer(task);
213 rcu_read_unlock();
211 214
212 /* 215 /*
213 * The root cgroup is non-freezable, so we can skip the 216 * The root cgroup is non-freezable, so we can skip the
diff --git a/kernel/cred.c b/kernel/cred.c
index e1dbe9eef800..62af1816c235 100644
--- a/kernel/cred.c
+++ b/kernel/cred.c
@@ -398,6 +398,8 @@ struct cred *prepare_usermodehelper_creds(void)
398 398
399error: 399error:
400 put_cred(new); 400 put_cred(new);
401 return NULL;
402
401free_tgcred: 403free_tgcred:
402#ifdef CONFIG_KEYS 404#ifdef CONFIG_KEYS
403 kfree(tgcred); 405 kfree(tgcred);
@@ -791,8 +793,6 @@ bool creds_are_invalid(const struct cred *cred)
791{ 793{
792 if (cred->magic != CRED_MAGIC) 794 if (cred->magic != CRED_MAGIC)
793 return true; 795 return true;
794 if (atomic_read(&cred->usage) < atomic_read(&cred->subscribers))
795 return true;
796#ifdef CONFIG_SECURITY_SELINUX 796#ifdef CONFIG_SECURITY_SELINUX
797 if (selinux_is_enabled()) { 797 if (selinux_is_enabled()) {
798 if ((unsigned long) cred->security < PAGE_SIZE) 798 if ((unsigned long) cred->security < PAGE_SIZE)
diff --git a/kernel/fork.c b/kernel/fork.c
index 44b0791b0a2e..4c14942a0ee3 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1114,8 +1114,6 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1114 1114
1115 p->bts = NULL; 1115 p->bts = NULL;
1116 1116
1117 p->stack_start = stack_start;
1118
1119 /* Perform scheduler related setup. Assign this task to a CPU. */ 1117 /* Perform scheduler related setup. Assign this task to a CPU. */
1120 sched_fork(p, clone_flags); 1118 sched_fork(p, clone_flags);
1121 1119
diff --git a/kernel/kexec.c b/kernel/kexec.c
index 87ebe8adc474..474a84715eac 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -1134,11 +1134,9 @@ int crash_shrink_memory(unsigned long new_size)
1134 1134
1135 free_reserved_phys_range(end, crashk_res.end); 1135 free_reserved_phys_range(end, crashk_res.end);
1136 1136
1137 if (start == end) { 1137 if (start == end)
1138 crashk_res.end = end;
1139 release_resource(&crashk_res); 1138 release_resource(&crashk_res);
1140 } else 1139 crashk_res.end = end - 1;
1141 crashk_res.end = end - 1;
1142 1140
1143unlock: 1141unlock:
1144 mutex_unlock(&kexec_mutex); 1142 mutex_unlock(&kexec_mutex);
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 2f3fbf84215a..3d1552d3c12b 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -4897,7 +4897,7 @@ err_fput_free_put_context:
4897 4897
4898err_free_put_context: 4898err_free_put_context:
4899 if (err < 0) 4899 if (err < 0)
4900 kfree(event); 4900 free_event(event);
4901 4901
4902err_put_context: 4902err_put_context:
4903 if (err < 0) 4903 if (err < 0)
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c
index 03a7ea1579f6..49d808e833b0 100644
--- a/kernel/rcupdate.c
+++ b/kernel/rcupdate.c
@@ -122,3 +122,14 @@ void wakeme_after_rcu(struct rcu_head *head)
122 rcu = container_of(head, struct rcu_synchronize, head); 122 rcu = container_of(head, struct rcu_synchronize, head);
123 complete(&rcu->completion); 123 complete(&rcu->completion);
124} 124}
125
126#ifdef CONFIG_PROVE_RCU
127/*
128 * wrapper function to avoid #include problems.
129 */
130int rcu_my_thread_group_empty(void)
131{
132 return thread_group_empty(current);
133}
134EXPORT_SYMBOL_GPL(rcu_my_thread_group_empty);
135#endif /* #ifdef CONFIG_PROVE_RCU */
diff --git a/kernel/sched.c b/kernel/sched.c
index 6af210a7de70..3c2a54f70ffe 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -323,6 +323,15 @@ static inline struct task_group *task_group(struct task_struct *p)
323/* Change a task's cfs_rq and parent entity if it moves across CPUs/groups */ 323/* Change a task's cfs_rq and parent entity if it moves across CPUs/groups */
324static inline void set_task_rq(struct task_struct *p, unsigned int cpu) 324static inline void set_task_rq(struct task_struct *p, unsigned int cpu)
325{ 325{
326 /*
327 * Strictly speaking this rcu_read_lock() is not needed since the
328 * task_group is tied to the cgroup, which in turn can never go away
329 * as long as there are tasks attached to it.
330 *
331 * However since task_group() uses task_subsys_state() which is an
332 * rcu_dereference() user, this quiets CONFIG_PROVE_RCU.
333 */
334 rcu_read_lock();
326#ifdef CONFIG_FAIR_GROUP_SCHED 335#ifdef CONFIG_FAIR_GROUP_SCHED
327 p->se.cfs_rq = task_group(p)->cfs_rq[cpu]; 336 p->se.cfs_rq = task_group(p)->cfs_rq[cpu];
328 p->se.parent = task_group(p)->se[cpu]; 337 p->se.parent = task_group(p)->se[cpu];
@@ -332,6 +341,7 @@ static inline void set_task_rq(struct task_struct *p, unsigned int cpu)
332 p->rt.rt_rq = task_group(p)->rt_rq[cpu]; 341 p->rt.rt_rq = task_group(p)->rt_rq[cpu];
333 p->rt.parent = task_group(p)->rt_se[cpu]; 342 p->rt.parent = task_group(p)->rt_se[cpu];
334#endif 343#endif
344 rcu_read_unlock();
335} 345}
336 346
337#else 347#else
@@ -3780,7 +3790,7 @@ int mutex_spin_on_owner(struct mutex *lock, struct thread_info *owner)
3780 * the mutex owner just released it and exited. 3790 * the mutex owner just released it and exited.
3781 */ 3791 */
3782 if (probe_kernel_address(&owner->cpu, cpu)) 3792 if (probe_kernel_address(&owner->cpu, cpu))
3783 goto out; 3793 return 0;
3784#else 3794#else
3785 cpu = owner->cpu; 3795 cpu = owner->cpu;
3786#endif 3796#endif
@@ -3790,14 +3800,14 @@ int mutex_spin_on_owner(struct mutex *lock, struct thread_info *owner)
3790 * the cpu field may no longer be valid. 3800 * the cpu field may no longer be valid.
3791 */ 3801 */
3792 if (cpu >= nr_cpumask_bits) 3802 if (cpu >= nr_cpumask_bits)
3793 goto out; 3803 return 0;
3794 3804
3795 /* 3805 /*
3796 * We need to validate that we can do a 3806 * We need to validate that we can do a
3797 * get_cpu() and that we have the percpu area. 3807 * get_cpu() and that we have the percpu area.
3798 */ 3808 */
3799 if (!cpu_online(cpu)) 3809 if (!cpu_online(cpu))
3800 goto out; 3810 return 0;
3801 3811
3802 rq = cpu_rq(cpu); 3812 rq = cpu_rq(cpu);
3803 3813
@@ -3816,7 +3826,7 @@ int mutex_spin_on_owner(struct mutex *lock, struct thread_info *owner)
3816 3826
3817 cpu_relax(); 3827 cpu_relax();
3818 } 3828 }
3819out: 3829
3820 return 1; 3830 return 1;
3821} 3831}
3822#endif 3832#endif
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c
index 9b49db144037..19be00ba6123 100644
--- a/kernel/sched_debug.c
+++ b/kernel/sched_debug.c
@@ -114,7 +114,9 @@ print_task(struct seq_file *m, struct rq *rq, struct task_struct *p)
114 { 114 {
115 char path[64]; 115 char path[64];
116 116
117 rcu_read_lock();
117 cgroup_path(task_group(p)->css.cgroup, path, sizeof(path)); 118 cgroup_path(task_group(p)->css.cgroup, path, sizeof(path));
119 rcu_read_unlock();
118 SEQ_printf(m, " %s", path); 120 SEQ_printf(m, " %s", path);
119 } 121 }
120#endif 122#endif
diff --git a/kernel/sys.c b/kernel/sys.c
index 6d1a7e0f9d5b..7cb426a58965 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1118,7 +1118,7 @@ DECLARE_RWSEM(uts_sem);
1118 1118
1119#ifdef COMPAT_UTS_MACHINE 1119#ifdef COMPAT_UTS_MACHINE
1120#define override_architecture(name) \ 1120#define override_architecture(name) \
1121 (current->personality == PER_LINUX32 && \ 1121 (personality(current->personality) == PER_LINUX32 && \
1122 copy_to_user(name->machine, COMPAT_UTS_MACHINE, \ 1122 copy_to_user(name->machine, COMPAT_UTS_MACHINE, \
1123 sizeof(COMPAT_UTS_MACHINE))) 1123 sizeof(COMPAT_UTS_MACHINE)))
1124#else 1124#else
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index dee48658805c..5bfb213984b2 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -774,7 +774,7 @@ void flush_delayed_work(struct delayed_work *dwork)
774{ 774{
775 if (del_timer_sync(&dwork->timer)) { 775 if (del_timer_sync(&dwork->timer)) {
776 struct cpu_workqueue_struct *cwq; 776 struct cpu_workqueue_struct *cwq;
777 cwq = wq_per_cpu(keventd_wq, get_cpu()); 777 cwq = wq_per_cpu(get_wq_data(&dwork->work)->wq, get_cpu());
778 __queue_work(cwq, &dwork->work); 778 __queue_work(cwq, &dwork->work);
779 put_cpu(); 779 put_cpu();
780 } 780 }
diff --git a/lib/decompress_unlzo.c b/lib/decompress_unlzo.c
index db521f45626e..bcb3a4bd68ff 100644
--- a/lib/decompress_unlzo.c
+++ b/lib/decompress_unlzo.c
@@ -97,7 +97,7 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
97 u32 src_len, dst_len; 97 u32 src_len, dst_len;
98 size_t tmp; 98 size_t tmp;
99 u8 *in_buf, *in_buf_save, *out_buf; 99 u8 *in_buf, *in_buf_save, *out_buf;
100 int obytes_processed = 0; 100 int ret = -1;
101 101
102 set_error_fn(error_fn); 102 set_error_fn(error_fn);
103 103
@@ -174,15 +174,22 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
174 174
175 /* decompress */ 175 /* decompress */
176 tmp = dst_len; 176 tmp = dst_len;
177 r = lzo1x_decompress_safe((u8 *) in_buf, src_len, 177
178 /* When the input data is not compressed at all,
179 * lzo1x_decompress_safe will fail, so call memcpy()
180 * instead */
181 if (unlikely(dst_len == src_len))
182 memcpy(out_buf, in_buf, src_len);
183 else {
184 r = lzo1x_decompress_safe((u8 *) in_buf, src_len,
178 out_buf, &tmp); 185 out_buf, &tmp);
179 186
180 if (r != LZO_E_OK || dst_len != tmp) { 187 if (r != LZO_E_OK || dst_len != tmp) {
181 error("Compressed data violation"); 188 error("Compressed data violation");
182 goto exit_2; 189 goto exit_2;
190 }
183 } 191 }
184 192
185 obytes_processed += dst_len;
186 if (flush) 193 if (flush)
187 flush(out_buf, dst_len); 194 flush(out_buf, dst_len);
188 if (output) 195 if (output)
@@ -196,6 +203,7 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
196 in_buf += src_len; 203 in_buf += src_len;
197 } 204 }
198 205
206 ret = 0;
199exit_2: 207exit_2:
200 if (!input) 208 if (!input)
201 free(in_buf); 209 free(in_buf);
@@ -203,7 +211,7 @@ exit_1:
203 if (!output) 211 if (!output)
204 free(out_buf); 212 free(out_buf);
205exit: 213exit:
206 return obytes_processed; 214 return ret;
207} 215}
208 216
209#define decompress unlzo 217#define decompress unlzo
diff --git a/lib/flex_array.c b/lib/flex_array.c
index 66eef2e4483e..41b1804fa728 100644
--- a/lib/flex_array.c
+++ b/lib/flex_array.c
@@ -99,7 +99,7 @@ struct flex_array *flex_array_alloc(int element_size, unsigned int total,
99 ret->element_size = element_size; 99 ret->element_size = element_size;
100 ret->total_nr_elements = total; 100 ret->total_nr_elements = total;
101 if (elements_fit_in_base(ret) && !(flags & __GFP_ZERO)) 101 if (elements_fit_in_base(ret) && !(flags & __GFP_ZERO))
102 memset(ret->parts[0], FLEX_ARRAY_FREE, 102 memset(&ret->parts[0], FLEX_ARRAY_FREE,
103 FLEX_ARRAY_BASE_BYTES_LEFT); 103 FLEX_ARRAY_BASE_BYTES_LEFT);
104 return ret; 104 return ret;
105} 105}
diff --git a/lib/rwsem.c b/lib/rwsem.c
index 3e3365e5665e..ceba8e28807a 100644
--- a/lib/rwsem.c
+++ b/lib/rwsem.c
@@ -136,9 +136,10 @@ __rwsem_do_wake(struct rw_semaphore *sem, int downgrading)
136 out: 136 out:
137 return sem; 137 return sem;
138 138
139 /* undo the change to count, but check for a transition 1->0 */ 139 /* undo the change to the active count, but check for a transition
140 * 1->0 */
140 undo: 141 undo:
141 if (rwsem_atomic_update(-RWSEM_ACTIVE_BIAS, sem) != 0) 142 if (rwsem_atomic_update(-RWSEM_ACTIVE_BIAS, sem) & RWSEM_ACTIVE_MASK)
142 goto out; 143 goto out;
143 goto try_again; 144 goto try_again;
144} 145}
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 7376b7c55ffe..46d34b0b74a8 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -118,6 +118,7 @@ long long simple_strtoll(const char *cp, char **endp, unsigned int base)
118 118
119 return simple_strtoull(cp, endp, base); 119 return simple_strtoull(cp, endp, base);
120} 120}
121EXPORT_SYMBOL(simple_strtoll);
121 122
122/** 123/**
123 * strict_strtoul - convert a string to an unsigned long strictly 124 * strict_strtoul - convert a string to an unsigned long strictly
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index f13e067e1467..707d0dc6da0f 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -11,6 +11,8 @@
11#include <linux/writeback.h> 11#include <linux/writeback.h>
12#include <linux/device.h> 12#include <linux/device.h>
13 13
14static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
15
14void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page) 16void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page)
15{ 17{
16} 18}
@@ -25,6 +27,11 @@ struct backing_dev_info default_backing_dev_info = {
25}; 27};
26EXPORT_SYMBOL_GPL(default_backing_dev_info); 28EXPORT_SYMBOL_GPL(default_backing_dev_info);
27 29
30struct backing_dev_info noop_backing_dev_info = {
31 .name = "noop",
32};
33EXPORT_SYMBOL_GPL(noop_backing_dev_info);
34
28static struct class *bdi_class; 35static struct class *bdi_class;
29 36
30/* 37/*
@@ -715,6 +722,33 @@ void bdi_destroy(struct backing_dev_info *bdi)
715} 722}
716EXPORT_SYMBOL(bdi_destroy); 723EXPORT_SYMBOL(bdi_destroy);
717 724
725/*
726 * For use from filesystems to quickly init and register a bdi associated
727 * with dirty writeback
728 */
729int bdi_setup_and_register(struct backing_dev_info *bdi, char *name,
730 unsigned int cap)
731{
732 char tmp[32];
733 int err;
734
735 bdi->name = name;
736 bdi->capabilities = cap;
737 err = bdi_init(bdi);
738 if (err)
739 return err;
740
741 sprintf(tmp, "%.28s%s", name, "-%d");
742 err = bdi_register(bdi, NULL, tmp, atomic_long_inc_return(&bdi_seq));
743 if (err) {
744 bdi_destroy(bdi);
745 return err;
746 }
747
748 return 0;
749}
750EXPORT_SYMBOL(bdi_setup_and_register);
751
718static wait_queue_head_t congestion_wqh[2] = { 752static wait_queue_head_t congestion_wqh[2] = {
719 __WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[0]), 753 __WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[0]),
720 __WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[1]) 754 __WAIT_QUEUE_HEAD_INITIALIZER(congestion_wqh[1])
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 6034dc9e9796..4c9e6bbf3772 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -546,6 +546,7 @@ static void free_huge_page(struct page *page)
546 546
547 mapping = (struct address_space *) page_private(page); 547 mapping = (struct address_space *) page_private(page);
548 set_page_private(page, 0); 548 set_page_private(page, 0);
549 page->mapping = NULL;
549 BUG_ON(page_count(page)); 550 BUG_ON(page_count(page));
550 INIT_LIST_HEAD(&page->lru); 551 INIT_LIST_HEAD(&page->lru);
551 552
@@ -1038,7 +1039,7 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma,
1038 page = alloc_buddy_huge_page(h, vma, addr); 1039 page = alloc_buddy_huge_page(h, vma, addr);
1039 if (!page) { 1040 if (!page) {
1040 hugetlb_put_quota(inode->i_mapping, chg); 1041 hugetlb_put_quota(inode->i_mapping, chg);
1041 return ERR_PTR(-VM_FAULT_OOM); 1042 return ERR_PTR(-VM_FAULT_SIGBUS);
1042 } 1043 }
1043 } 1044 }
1044 1045
@@ -2447,8 +2448,10 @@ retry:
2447 spin_lock(&inode->i_lock); 2448 spin_lock(&inode->i_lock);
2448 inode->i_blocks += blocks_per_huge_page(h); 2449 inode->i_blocks += blocks_per_huge_page(h);
2449 spin_unlock(&inode->i_lock); 2450 spin_unlock(&inode->i_lock);
2450 } else 2451 } else {
2451 lock_page(page); 2452 lock_page(page);
2453 page->mapping = HUGETLB_POISON;
2454 }
2452 } 2455 }
2453 2456
2454 /* 2457 /*
diff --git a/mm/ksm.c b/mm/ksm.c
index 8cdfc2a1e8bf..956880f2ff49 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -365,7 +365,7 @@ static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
365 do { 365 do {
366 cond_resched(); 366 cond_resched();
367 page = follow_page(vma, addr, FOLL_GET); 367 page = follow_page(vma, addr, FOLL_GET);
368 if (!page) 368 if (IS_ERR_OR_NULL(page))
369 break; 369 break;
370 if (PageKsm(page)) 370 if (PageKsm(page))
371 ret = handle_mm_fault(vma->vm_mm, vma, addr, 371 ret = handle_mm_fault(vma->vm_mm, vma, addr,
@@ -447,7 +447,7 @@ static struct page *get_mergeable_page(struct rmap_item *rmap_item)
447 goto out; 447 goto out;
448 448
449 page = follow_page(vma, addr, FOLL_GET); 449 page = follow_page(vma, addr, FOLL_GET);
450 if (!page) 450 if (IS_ERR_OR_NULL(page))
451 goto out; 451 goto out;
452 if (PageAnon(page)) { 452 if (PageAnon(page)) {
453 flush_anon_page(vma, page, addr); 453 flush_anon_page(vma, page, addr);
@@ -1086,7 +1086,7 @@ struct rmap_item *unstable_tree_search_insert(struct rmap_item *rmap_item,
1086 cond_resched(); 1086 cond_resched();
1087 tree_rmap_item = rb_entry(*new, struct rmap_item, node); 1087 tree_rmap_item = rb_entry(*new, struct rmap_item, node);
1088 tree_page = get_mergeable_page(tree_rmap_item); 1088 tree_page = get_mergeable_page(tree_rmap_item);
1089 if (!tree_page) 1089 if (IS_ERR_OR_NULL(tree_page))
1090 return NULL; 1090 return NULL;
1091 1091
1092 /* 1092 /*
@@ -1294,7 +1294,7 @@ next_mm:
1294 if (ksm_test_exit(mm)) 1294 if (ksm_test_exit(mm))
1295 break; 1295 break;
1296 *page = follow_page(vma, ksm_scan.address, FOLL_GET); 1296 *page = follow_page(vma, ksm_scan.address, FOLL_GET);
1297 if (*page && PageAnon(*page)) { 1297 if (!IS_ERR_OR_NULL(*page) && PageAnon(*page)) {
1298 flush_anon_page(vma, *page, ksm_scan.address); 1298 flush_anon_page(vma, *page, ksm_scan.address);
1299 flush_dcache_page(*page); 1299 flush_dcache_page(*page);
1300 rmap_item = get_next_rmap_item(slot, 1300 rmap_item = get_next_rmap_item(slot,
@@ -1308,7 +1308,7 @@ next_mm:
1308 up_read(&mm->mmap_sem); 1308 up_read(&mm->mmap_sem);
1309 return rmap_item; 1309 return rmap_item;
1310 } 1310 }
1311 if (*page) 1311 if (!IS_ERR_OR_NULL(*page))
1312 put_page(*page); 1312 put_page(*page);
1313 ksm_scan.address += PAGE_SIZE; 1313 ksm_scan.address += PAGE_SIZE;
1314 cond_resched(); 1314 cond_resched();
@@ -1367,7 +1367,7 @@ next_mm:
1367static void ksm_do_scan(unsigned int scan_npages) 1367static void ksm_do_scan(unsigned int scan_npages)
1368{ 1368{
1369 struct rmap_item *rmap_item; 1369 struct rmap_item *rmap_item;
1370 struct page *page; 1370 struct page *uninitialized_var(page);
1371 1371
1372 while (scan_npages--) { 1372 while (scan_npages--) {
1373 cond_resched(); 1373 cond_resched();
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index f4ede99c8b9b..8a79a6f0f029 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1601,7 +1601,6 @@ static int __mem_cgroup_try_charge(struct mm_struct *mm,
1601 * There is a small race that "from" or "to" can be 1601 * There is a small race that "from" or "to" can be
1602 * freed by rmdir, so we use css_tryget(). 1602 * freed by rmdir, so we use css_tryget().
1603 */ 1603 */
1604 rcu_read_lock();
1605 from = mc.from; 1604 from = mc.from;
1606 to = mc.to; 1605 to = mc.to;
1607 if (from && css_tryget(&from->css)) { 1606 if (from && css_tryget(&from->css)) {
@@ -1622,7 +1621,6 @@ static int __mem_cgroup_try_charge(struct mm_struct *mm,
1622 do_continue = (to == mem_over_limit); 1621 do_continue = (to == mem_over_limit);
1623 css_put(&to->css); 1622 css_put(&to->css);
1624 } 1623 }
1625 rcu_read_unlock();
1626 if (do_continue) { 1624 if (do_continue) {
1627 DEFINE_WAIT(wait); 1625 DEFINE_WAIT(wait);
1628 prepare_to_wait(&mc.waitq, &wait, 1626 prepare_to_wait(&mc.waitq, &wait,
@@ -2429,11 +2427,11 @@ int mem_cgroup_prepare_migration(struct page *page, struct mem_cgroup **ptr)
2429 } 2427 }
2430 unlock_page_cgroup(pc); 2428 unlock_page_cgroup(pc);
2431 2429
2430 *ptr = mem;
2432 if (mem) { 2431 if (mem) {
2433 ret = __mem_cgroup_try_charge(NULL, GFP_KERNEL, &mem, false); 2432 ret = __mem_cgroup_try_charge(NULL, GFP_KERNEL, ptr, false);
2434 css_put(&mem->css); 2433 css_put(&mem->css);
2435 } 2434 }
2436 *ptr = mem;
2437 return ret; 2435 return ret;
2438} 2436}
2439 2437
diff --git a/mm/mmap.c b/mm/mmap.c
index f90ea92f755a..456ec6f27889 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1977,7 +1977,8 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
1977 return 0; 1977 return 0;
1978 1978
1979 /* Clean everything up if vma_adjust failed. */ 1979 /* Clean everything up if vma_adjust failed. */
1980 new->vm_ops->close(new); 1980 if (new->vm_ops && new->vm_ops->close)
1981 new->vm_ops->close(new);
1981 if (new->vm_file) { 1982 if (new->vm_file) {
1982 if (vma->vm_flags & VM_EXECUTABLE) 1983 if (vma->vm_flags & VM_EXECUTABLE)
1983 removed_exe_file_vma(mm); 1984 removed_exe_file_vma(mm);
diff --git a/mm/rmap.c b/mm/rmap.c
index 526704e8215d..0feeef860a8f 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -133,8 +133,8 @@ int anon_vma_prepare(struct vm_area_struct *vma)
133 goto out_enomem_free_avc; 133 goto out_enomem_free_avc;
134 allocated = anon_vma; 134 allocated = anon_vma;
135 } 135 }
136 spin_lock(&anon_vma->lock);
137 136
137 spin_lock(&anon_vma->lock);
138 /* page_table_lock to protect against threads */ 138 /* page_table_lock to protect against threads */
139 spin_lock(&mm->page_table_lock); 139 spin_lock(&mm->page_table_lock);
140 if (likely(!vma->anon_vma)) { 140 if (likely(!vma->anon_vma)) {
@@ -144,14 +144,15 @@ int anon_vma_prepare(struct vm_area_struct *vma)
144 list_add(&avc->same_vma, &vma->anon_vma_chain); 144 list_add(&avc->same_vma, &vma->anon_vma_chain);
145 list_add(&avc->same_anon_vma, &anon_vma->head); 145 list_add(&avc->same_anon_vma, &anon_vma->head);
146 allocated = NULL; 146 allocated = NULL;
147 avc = NULL;
147 } 148 }
148 spin_unlock(&mm->page_table_lock); 149 spin_unlock(&mm->page_table_lock);
149
150 spin_unlock(&anon_vma->lock); 150 spin_unlock(&anon_vma->lock);
151 if (unlikely(allocated)) { 151
152 if (unlikely(allocated))
152 anon_vma_free(allocated); 153 anon_vma_free(allocated);
154 if (unlikely(avc))
153 anon_vma_chain_free(avc); 155 anon_vma_chain_free(avc);
154 }
155 } 156 }
156 return 0; 157 return 0;
157 158
@@ -335,14 +336,13 @@ vma_address(struct page *page, struct vm_area_struct *vma)
335 336
336/* 337/*
337 * At what user virtual address is page expected in vma? 338 * At what user virtual address is page expected in vma?
338 * checking that the page matches the vma. 339 * Caller should check the page is actually part of the vma.
339 */ 340 */
340unsigned long page_address_in_vma(struct page *page, struct vm_area_struct *vma) 341unsigned long page_address_in_vma(struct page *page, struct vm_area_struct *vma)
341{ 342{
342 if (PageAnon(page)) { 343 if (PageAnon(page))
343 if (vma->anon_vma != page_anon_vma(page)) 344 ;
344 return -EFAULT; 345 else if (page->mapping && !(vma->vm_flags & VM_NONLINEAR)) {
345 } else if (page->mapping && !(vma->vm_flags & VM_NONLINEAR)) {
346 if (!vma->vm_file || 346 if (!vma->vm_file ||
347 vma->vm_file->f_mapping != page->mapping) 347 vma->vm_file->f_mapping != page->mapping)
348 return -EFAULT; 348 return -EFAULT;
diff --git a/mm/slub.c b/mm/slub.c
index 7d6c8b1ccf63..d2a54fe71ea2 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2153,7 +2153,7 @@ static int init_kmem_cache_nodes(struct kmem_cache *s, gfp_t gfpflags)
2153 int local_node; 2153 int local_node;
2154 2154
2155 if (slab_state >= UP && (s < kmalloc_caches || 2155 if (slab_state >= UP && (s < kmalloc_caches ||
2156 s > kmalloc_caches + KMALLOC_CACHES)) 2156 s >= kmalloc_caches + KMALLOC_CACHES))
2157 local_node = page_to_nid(virt_to_page(s)); 2157 local_node = page_to_nid(virt_to_page(s));
2158 else 2158 else
2159 local_node = 0; 2159 local_node = 0;
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 99d68c34e4f1..9753b690a8b3 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -1626,7 +1626,10 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms
1626 /* Connectionless channel */ 1626 /* Connectionless channel */
1627 if (sk->sk_type == SOCK_DGRAM) { 1627 if (sk->sk_type == SOCK_DGRAM) {
1628 skb = l2cap_create_connless_pdu(sk, msg, len); 1628 skb = l2cap_create_connless_pdu(sk, msg, len);
1629 err = l2cap_do_send(sk, skb); 1629 if (IS_ERR(skb))
1630 err = PTR_ERR(skb);
1631 else
1632 err = l2cap_do_send(sk, skb);
1630 goto done; 1633 goto done;
1631 } 1634 }
1632 1635
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index f29ada827a6a..eaa0e1bae49b 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -727,7 +727,7 @@ static int br_multicast_igmp3_report(struct net_bridge *br,
727 group = grec->grec_mca; 727 group = grec->grec_mca;
728 type = grec->grec_type; 728 type = grec->grec_type;
729 729
730 len += grec->grec_nsrcs * 4; 730 len += ntohs(grec->grec_nsrcs) * 4;
731 if (!pskb_may_pull(skb, len)) 731 if (!pskb_may_pull(skb, len))
732 return -EINVAL; 732 return -EINVAL;
733 733
@@ -957,9 +957,6 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br,
957 unsigned offset; 957 unsigned offset;
958 int err; 958 int err;
959 959
960 BR_INPUT_SKB_CB(skb)->igmp = 0;
961 BR_INPUT_SKB_CB(skb)->mrouters_only = 0;
962
963 /* We treat OOM as packet loss for now. */ 960 /* We treat OOM as packet loss for now. */
964 if (!pskb_may_pull(skb, sizeof(*iph))) 961 if (!pskb_may_pull(skb, sizeof(*iph)))
965 return -EINVAL; 962 return -EINVAL;
@@ -1049,6 +1046,9 @@ err_out:
1049int br_multicast_rcv(struct net_bridge *br, struct net_bridge_port *port, 1046int br_multicast_rcv(struct net_bridge *br, struct net_bridge_port *port,
1050 struct sk_buff *skb) 1047 struct sk_buff *skb)
1051{ 1048{
1049 BR_INPUT_SKB_CB(skb)->igmp = 0;
1050 BR_INPUT_SKB_CB(skb)->mrouters_only = 0;
1051
1052 if (br->multicast_disabled) 1052 if (br->multicast_disabled)
1053 return 0; 1053 return 0;
1054 1054
diff --git a/net/core/dev.c b/net/core/dev.c
index 92584bfef09b..264137fce3a2 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1451,7 +1451,7 @@ static inline void net_timestamp(struct sk_buff *skb)
1451 * 1451 *
1452 * return values: 1452 * return values:
1453 * NET_RX_SUCCESS (no congestion) 1453 * NET_RX_SUCCESS (no congestion)
1454 * NET_RX_DROP (packet was dropped) 1454 * NET_RX_DROP (packet was dropped, but freed)
1455 * 1455 *
1456 * dev_forward_skb can be used for injecting an skb from the 1456 * dev_forward_skb can be used for injecting an skb from the
1457 * start_xmit function of one device into the receive queue 1457 * start_xmit function of one device into the receive queue
@@ -1465,12 +1465,11 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
1465{ 1465{
1466 skb_orphan(skb); 1466 skb_orphan(skb);
1467 1467
1468 if (!(dev->flags & IFF_UP)) 1468 if (!(dev->flags & IFF_UP) ||
1469 return NET_RX_DROP; 1469 (skb->len > (dev->mtu + dev->hard_header_len))) {
1470 1470 kfree_skb(skb);
1471 if (skb->len > (dev->mtu + dev->hard_header_len))
1472 return NET_RX_DROP; 1471 return NET_RX_DROP;
1473 1472 }
1474 skb_set_dev(skb, dev); 1473 skb_set_dev(skb, dev);
1475 skb->tstamp.tv64 = 0; 1474 skb->tstamp.tv64 = 0;
1476 skb->pkt_type = PACKET_HOST; 1475 skb->pkt_type = PACKET_HOST;
@@ -1990,7 +1989,7 @@ static struct netdev_queue *dev_pick_tx(struct net_device *dev,
1990 queue_index = skb_tx_hash(dev, skb); 1989 queue_index = skb_tx_hash(dev, skb);
1991 1990
1992 if (sk) { 1991 if (sk) {
1993 struct dst_entry *dst = rcu_dereference(sk->sk_dst_cache); 1992 struct dst_entry *dst = rcu_dereference_bh(sk->sk_dst_cache);
1994 1993
1995 if (dst && skb_dst(skb) == dst) 1994 if (dst && skb_dst(skb) == dst)
1996 sk_tx_queue_set(sk, queue_index); 1995 sk_tx_queue_set(sk, queue_index);
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 4568120d8533..fe776c9ddeca 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1270,10 +1270,11 @@ replay:
1270 err = ops->newlink(net, dev, tb, data); 1270 err = ops->newlink(net, dev, tb, data);
1271 else 1271 else
1272 err = register_netdevice(dev); 1272 err = register_netdevice(dev);
1273 if (err < 0 && !IS_ERR(dev)) { 1273
1274 if (err < 0 && !IS_ERR(dev))
1274 free_netdev(dev); 1275 free_netdev(dev);
1276 if (err < 0)
1275 goto out; 1277 goto out;
1276 }
1277 1278
1278 err = rtnl_configure_link(dev, ifm); 1279 err = rtnl_configure_link(dev, ifm);
1279 if (err < 0) 1280 if (err < 0)
diff --git a/net/ieee802154/af_ieee802154.c b/net/ieee802154/af_ieee802154.c
index c7da600750bb..93c91b633a56 100644
--- a/net/ieee802154/af_ieee802154.c
+++ b/net/ieee802154/af_ieee802154.c
@@ -151,6 +151,9 @@ static int ieee802154_dev_ioctl(struct sock *sk, struct ifreq __user *arg,
151 dev_load(sock_net(sk), ifr.ifr_name); 151 dev_load(sock_net(sk), ifr.ifr_name);
152 dev = dev_get_by_name(sock_net(sk), ifr.ifr_name); 152 dev = dev_get_by_name(sock_net(sk), ifr.ifr_name);
153 153
154 if (!dev)
155 return -ENODEV;
156
154 if (dev->type == ARPHRD_IEEE802154 && dev->netdev_ops->ndo_do_ioctl) 157 if (dev->type == ARPHRD_IEEE802154 && dev->netdev_ops->ndo_do_ioctl)
155 ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd); 158 ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd);
156 159
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index 6e747065c202..80769f1f9fab 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -661,13 +661,13 @@ struct sk_buff *arp_create(int type, int ptype, __be32 dest_ip,
661#endif 661#endif
662#endif 662#endif
663 663
664#ifdef CONFIG_FDDI 664#if defined(CONFIG_FDDI) || defined(CONFIG_FDDI_MODULE)
665 case ARPHRD_FDDI: 665 case ARPHRD_FDDI:
666 arp->ar_hrd = htons(ARPHRD_ETHER); 666 arp->ar_hrd = htons(ARPHRD_ETHER);
667 arp->ar_pro = htons(ETH_P_IP); 667 arp->ar_pro = htons(ETH_P_IP);
668 break; 668 break;
669#endif 669#endif
670#ifdef CONFIG_TR 670#if defined(CONFIG_TR) || defined(CONFIG_TR_MODULE)
671 case ARPHRD_IEEE802_TR: 671 case ARPHRD_IEEE802_TR:
672 arp->ar_hrd = htons(ARPHRD_IEEE802); 672 arp->ar_hrd = htons(ARPHRD_IEEE802);
673 arp->ar_pro = htons(ETH_P_IP); 673 arp->ar_pro = htons(ETH_P_IP);
@@ -1051,7 +1051,7 @@ static int arp_req_set(struct net *net, struct arpreq *r,
1051 return -EINVAL; 1051 return -EINVAL;
1052 } 1052 }
1053 switch (dev->type) { 1053 switch (dev->type) {
1054#ifdef CONFIG_FDDI 1054#if defined(CONFIG_FDDI) || defined(CONFIG_FDDI_MODULE)
1055 case ARPHRD_FDDI: 1055 case ARPHRD_FDDI:
1056 /* 1056 /*
1057 * According to RFC 1390, FDDI devices should accept ARP 1057 * According to RFC 1390, FDDI devices should accept ARP
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
index 9d4f6d1340a4..ec19a890c9a0 100644
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -754,7 +754,8 @@ ipmr_cache_unresolved(struct net *net, vifi_t vifi, struct sk_buff *skb)
754 c->next = mfc_unres_queue; 754 c->next = mfc_unres_queue;
755 mfc_unres_queue = c; 755 mfc_unres_queue = c;
756 756
757 mod_timer(&ipmr_expire_timer, c->mfc_un.unres.expires); 757 if (atomic_read(&net->ipv4.cache_resolve_queue_len) == 1)
758 mod_timer(&ipmr_expire_timer, c->mfc_un.unres.expires);
758 } 759 }
759 760
760 /* 761 /*
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 8fef859db35d..c36522a0f113 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1527,6 +1527,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
1527 1527
1528 uh = udp_hdr(skb); 1528 uh = udp_hdr(skb);
1529 ulen = ntohs(uh->len); 1529 ulen = ntohs(uh->len);
1530 saddr = ip_hdr(skb)->saddr;
1531 daddr = ip_hdr(skb)->daddr;
1532
1530 if (ulen > skb->len) 1533 if (ulen > skb->len)
1531 goto short_packet; 1534 goto short_packet;
1532 1535
@@ -1540,9 +1543,6 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
1540 if (udp4_csum_init(skb, uh, proto)) 1543 if (udp4_csum_init(skb, uh, proto))
1541 goto csum_error; 1544 goto csum_error;
1542 1545
1543 saddr = ip_hdr(skb)->saddr;
1544 daddr = ip_hdr(skb)->daddr;
1545
1546 if (rt->rt_flags & (RTCF_BROADCAST|RTCF_MULTICAST)) 1546 if (rt->rt_flags & (RTCF_BROADCAST|RTCF_MULTICAST))
1547 return __udp4_lib_mcast_deliver(net, skb, uh, 1547 return __udp4_lib_mcast_deliver(net, skb, uh,
1548 saddr, daddr, udptable); 1548 saddr, daddr, udptable);
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 3192aa02ba5d..3f9e86b15e0d 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -200,7 +200,7 @@ lookup_protocol:
200 200
201 inet_sk(sk)->pinet6 = np = inet6_sk_generic(sk); 201 inet_sk(sk)->pinet6 = np = inet6_sk_generic(sk);
202 np->hop_limit = -1; 202 np->hop_limit = -1;
203 np->mcast_hops = -1; 203 np->mcast_hops = IPV6_DEFAULT_MCASTHOPS;
204 np->mc_loop = 1; 204 np->mc_loop = 1;
205 np->pmtudisc = IPV6_PMTUDISC_WANT; 205 np->pmtudisc = IPV6_PMTUDISC_WANT;
206 np->ipv6only = net->ipv6.sysctl.bindv6only; 206 np->ipv6only = net->ipv6.sysctl.bindv6only;
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
index 622dc7939a1b..61573885e451 100644
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -222,6 +222,8 @@ void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
222 if (!skb) 222 if (!skb)
223 return; 223 return;
224 224
225 skb->protocol = htons(ETH_P_IPV6);
226
225 serr = SKB_EXT_ERR(skb); 227 serr = SKB_EXT_ERR(skb);
226 serr->ee.ee_errno = err; 228 serr->ee.ee_errno = err;
227 serr->ee.ee_origin = SO_EE_ORIGIN_ICMP6; 229 serr->ee.ee_origin = SO_EE_ORIGIN_ICMP6;
@@ -255,6 +257,8 @@ void ipv6_local_error(struct sock *sk, int err, struct flowi *fl, u32 info)
255 if (!skb) 257 if (!skb)
256 return; 258 return;
257 259
260 skb->protocol = htons(ETH_P_IPV6);
261
258 skb_put(skb, sizeof(struct ipv6hdr)); 262 skb_put(skb, sizeof(struct ipv6hdr));
259 skb_reset_network_header(skb); 263 skb_reset_network_header(skb);
260 iph = ipv6_hdr(skb); 264 iph = ipv6_hdr(skb);
@@ -319,7 +323,7 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)
319 sin->sin6_flowinfo = 0; 323 sin->sin6_flowinfo = 0;
320 sin->sin6_port = serr->port; 324 sin->sin6_port = serr->port;
321 sin->sin6_scope_id = 0; 325 sin->sin6_scope_id = 0;
322 if (serr->ee.ee_origin == SO_EE_ORIGIN_ICMP6) { 326 if (skb->protocol == htons(ETH_P_IPV6)) {
323 ipv6_addr_copy(&sin->sin6_addr, 327 ipv6_addr_copy(&sin->sin6_addr,
324 (struct in6_addr *)(nh + serr->addr_offset)); 328 (struct in6_addr *)(nh + serr->addr_offset));
325 if (np->sndflow) 329 if (np->sndflow)
@@ -341,7 +345,7 @@ int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len)
341 sin->sin6_family = AF_INET6; 345 sin->sin6_family = AF_INET6;
342 sin->sin6_flowinfo = 0; 346 sin->sin6_flowinfo = 0;
343 sin->sin6_scope_id = 0; 347 sin->sin6_scope_id = 0;
344 if (serr->ee.ee_origin == SO_EE_ORIGIN_ICMP6) { 348 if (skb->protocol == htons(ETH_P_IPV6)) {
345 ipv6_addr_copy(&sin->sin6_addr, &ipv6_hdr(skb)->saddr); 349 ipv6_addr_copy(&sin->sin6_addr, &ipv6_hdr(skb)->saddr);
346 if (np->rxopt.all) 350 if (np->rxopt.all)
347 datagram_recv_ctl(sk, msg, skb); 351 datagram_recv_ctl(sk, msg, skb);
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 65f9c379df38..75d5ef830097 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -629,7 +629,7 @@ static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
629 /* We must not fragment if the socket is set to force MTU discovery 629 /* We must not fragment if the socket is set to force MTU discovery
630 * or if the skb it not generated by a local socket. 630 * or if the skb it not generated by a local socket.
631 */ 631 */
632 if (!skb->local_df) { 632 if (!skb->local_df && skb->len > mtu) {
633 skb->dev = skb_dst(skb)->dev; 633 skb->dev = skb_dst(skb)->dev;
634 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); 634 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
635 IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), 635 IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index c2438e8cb9d0..05ebd7833043 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -815,7 +815,7 @@ struct dst_entry * ip6_route_output(struct net *net, struct sock *sk,
815{ 815{
816 int flags = 0; 816 int flags = 0;
817 817
818 if (rt6_need_strict(&fl->fl6_dst)) 818 if (fl->oif || rt6_need_strict(&fl->fl6_dst))
819 flags |= RT6_LOOKUP_F_IFACE; 819 flags |= RT6_LOOKUP_F_IFACE;
820 820
821 if (!ipv6_addr_any(&fl->fl6_src)) 821 if (!ipv6_addr_any(&fl->fl6_src))
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index c92ebe8f80d5..075f540ec197 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1015,7 +1015,7 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,
1015 skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len); 1015 skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len);
1016 1016
1017 t1 = (struct tcphdr *) skb_push(buff, tot_len); 1017 t1 = (struct tcphdr *) skb_push(buff, tot_len);
1018 skb_reset_transport_header(skb); 1018 skb_reset_transport_header(buff);
1019 1019
1020 /* Swap the send and the receive. */ 1020 /* Swap the send and the receive. */
1021 memset(t1, 0, sizeof(*t1)); 1021 memset(t1, 0, sizeof(*t1));
diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
index ae181651c75a..00bf7c962b7e 100644
--- a/net/ipv6/xfrm6_policy.c
+++ b/net/ipv6/xfrm6_policy.c
@@ -124,7 +124,7 @@ static int xfrm6_fill_dst(struct xfrm_dst *xdst, struct net_device *dev,
124 xdst->u.dst.dev = dev; 124 xdst->u.dst.dev = dev;
125 dev_hold(dev); 125 dev_hold(dev);
126 126
127 xdst->u.rt6.rt6i_idev = in6_dev_get(rt->u.dst.dev); 127 xdst->u.rt6.rt6i_idev = in6_dev_get(dev);
128 if (!xdst->u.rt6.rt6i_idev) 128 if (!xdst->u.rt6.rt6i_idev)
129 return -ENODEV; 129 return -ENODEV;
130 130
diff --git a/net/llc/llc_sap.c b/net/llc/llc_sap.c
index a432f0ec051c..94e7fca75b85 100644
--- a/net/llc/llc_sap.c
+++ b/net/llc/llc_sap.c
@@ -31,7 +31,7 @@ static int llc_mac_header_len(unsigned short devtype)
31 case ARPHRD_ETHER: 31 case ARPHRD_ETHER:
32 case ARPHRD_LOOPBACK: 32 case ARPHRD_LOOPBACK:
33 return sizeof(struct ethhdr); 33 return sizeof(struct ethhdr);
34#ifdef CONFIG_TR 34#if defined(CONFIG_TR) || defined(CONFIG_TR_MODULE)
35 case ARPHRD_IEEE802_TR: 35 case ARPHRD_IEEE802_TR:
36 return sizeof(struct trh_hdr); 36 return sizeof(struct trh_hdr);
37#endif 37#endif
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index 96d25348aa59..87782a4bb541 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -184,7 +184,6 @@ static void sta_addba_resp_timer_expired(unsigned long data)
184 HT_AGG_STATE_REQ_STOP_BA_MSK)) != 184 HT_AGG_STATE_REQ_STOP_BA_MSK)) !=
185 HT_ADDBA_REQUESTED_MSK) { 185 HT_ADDBA_REQUESTED_MSK) {
186 spin_unlock_bh(&sta->lock); 186 spin_unlock_bh(&sta->lock);
187 *state = HT_AGG_STATE_IDLE;
188#ifdef CONFIG_MAC80211_HT_DEBUG 187#ifdef CONFIG_MAC80211_HT_DEBUG
189 printk(KERN_DEBUG "timer expired on tid %d but we are not " 188 printk(KERN_DEBUG "timer expired on tid %d but we are not "
190 "(or no longer) expecting addBA response there", 189 "(or no longer) expecting addBA response there",
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index c8cd169fc10e..875c8dec940a 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -168,6 +168,8 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
168 ht_changed = conf_is_ht(&local->hw.conf) != enable_ht || 168 ht_changed = conf_is_ht(&local->hw.conf) != enable_ht ||
169 channel_type != local->hw.conf.channel_type; 169 channel_type != local->hw.conf.channel_type;
170 170
171 if (local->tmp_channel)
172 local->tmp_channel_type = channel_type;
171 local->oper_channel_type = channel_type; 173 local->oper_channel_type = channel_type;
172 174
173 if (ht_changed) { 175 if (ht_changed) {
@@ -2028,7 +2030,8 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
2028 continue; 2030 continue;
2029 2031
2030 if (wk->type != IEEE80211_WORK_DIRECT_PROBE && 2032 if (wk->type != IEEE80211_WORK_DIRECT_PROBE &&
2031 wk->type != IEEE80211_WORK_AUTH) 2033 wk->type != IEEE80211_WORK_AUTH &&
2034 wk->type != IEEE80211_WORK_ASSOC)
2032 continue; 2035 continue;
2033 2036
2034 if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN)) 2037 if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN))
diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
index 9ece910ea394..7b155081b4dc 100644
--- a/net/rds/rdma_transport.c
+++ b/net/rds/rdma_transport.c
@@ -134,7 +134,7 @@ static int __init rds_rdma_listen_init(void)
134 ret = PTR_ERR(cm_id); 134 ret = PTR_ERR(cm_id);
135 printk(KERN_ERR "RDS/RDMA: failed to setup listener, " 135 printk(KERN_ERR "RDS/RDMA: failed to setup listener, "
136 "rdma_create_id() returned %d\n", ret); 136 "rdma_create_id() returned %d\n", ret);
137 goto out; 137 return ret;
138 } 138 }
139 139
140 sin.sin_family = AF_INET, 140 sin.sin_family = AF_INET,
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index df5abbff63e2..99c93ee98ad9 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -1194,8 +1194,10 @@ void sctp_assoc_update(struct sctp_association *asoc,
1194 /* Remove any peer addresses not present in the new association. */ 1194 /* Remove any peer addresses not present in the new association. */
1195 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) { 1195 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
1196 trans = list_entry(pos, struct sctp_transport, transports); 1196 trans = list_entry(pos, struct sctp_transport, transports);
1197 if (!sctp_assoc_lookup_paddr(new, &trans->ipaddr)) 1197 if (!sctp_assoc_lookup_paddr(new, &trans->ipaddr)) {
1198 sctp_assoc_del_peer(asoc, &trans->ipaddr); 1198 sctp_assoc_rm_peer(asoc, trans);
1199 continue;
1200 }
1199 1201
1200 if (asoc->state >= SCTP_STATE_ESTABLISHED) 1202 if (asoc->state >= SCTP_STATE_ESTABLISHED)
1201 sctp_transport_reset(trans); 1203 sctp_transport_reset(trans);
diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c
index 905fda582b92..7ec09ba03a1c 100644
--- a/net/sctp/endpointola.c
+++ b/net/sctp/endpointola.c
@@ -144,6 +144,7 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
144 /* Use SCTP specific send buffer space queues. */ 144 /* Use SCTP specific send buffer space queues. */
145 ep->sndbuf_policy = sctp_sndbuf_policy; 145 ep->sndbuf_policy = sctp_sndbuf_policy;
146 146
147 sk->sk_data_ready = sctp_data_ready;
147 sk->sk_write_space = sctp_write_space; 148 sk->sk_write_space = sctp_write_space;
148 sock_set_flag(sk, SOCK_USE_WRITE_QUEUE); 149 sock_set_flag(sk, SOCK_USE_WRITE_QUEUE);
149 150
diff --git a/net/sctp/input.c b/net/sctp/input.c
index 2a570184e5a9..ea2192444ce6 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -440,11 +440,25 @@ void sctp_icmp_proto_unreachable(struct sock *sk,
440{ 440{
441 SCTP_DEBUG_PRINTK("%s\n", __func__); 441 SCTP_DEBUG_PRINTK("%s\n", __func__);
442 442
443 sctp_do_sm(SCTP_EVENT_T_OTHER, 443 if (sock_owned_by_user(sk)) {
444 SCTP_ST_OTHER(SCTP_EVENT_ICMP_PROTO_UNREACH), 444 if (timer_pending(&t->proto_unreach_timer))
445 asoc->state, asoc->ep, asoc, t, 445 return;
446 GFP_ATOMIC); 446 else {
447 if (!mod_timer(&t->proto_unreach_timer,
448 jiffies + (HZ/20)))
449 sctp_association_hold(asoc);
450 }
451
452 } else {
453 if (timer_pending(&t->proto_unreach_timer) &&
454 del_timer(&t->proto_unreach_timer))
455 sctp_association_put(asoc);
447 456
457 sctp_do_sm(SCTP_EVENT_T_OTHER,
458 SCTP_ST_OTHER(SCTP_EVENT_ICMP_PROTO_UNREACH),
459 asoc->state, asoc->ep, asoc, t,
460 GFP_ATOMIC);
461 }
448} 462}
449 463
450/* Common lookup code for icmp/icmpv6 error handler. */ 464/* Common lookup code for icmp/icmpv6 error handler. */
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 17cb400ecd6a..30c1767186b8 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -108,7 +108,7 @@ static const struct sctp_paramhdr prsctp_param = {
108 cpu_to_be16(sizeof(struct sctp_paramhdr)), 108 cpu_to_be16(sizeof(struct sctp_paramhdr)),
109}; 109};
110 110
111/* A helper to initialize to initialize an op error inside a 111/* A helper to initialize an op error inside a
112 * provided chunk, as most cause codes will be embedded inside an 112 * provided chunk, as most cause codes will be embedded inside an
113 * abort chunk. 113 * abort chunk.
114 */ 114 */
@@ -125,6 +125,29 @@ void sctp_init_cause(struct sctp_chunk *chunk, __be16 cause_code,
125 chunk->subh.err_hdr = sctp_addto_chunk(chunk, sizeof(sctp_errhdr_t), &err); 125 chunk->subh.err_hdr = sctp_addto_chunk(chunk, sizeof(sctp_errhdr_t), &err);
126} 126}
127 127
128/* A helper to initialize an op error inside a
129 * provided chunk, as most cause codes will be embedded inside an
130 * abort chunk. Differs from sctp_init_cause in that it won't oops
131 * if there isn't enough space in the op error chunk
132 */
133int sctp_init_cause_fixed(struct sctp_chunk *chunk, __be16 cause_code,
134 size_t paylen)
135{
136 sctp_errhdr_t err;
137 __u16 len;
138
139 /* Cause code constants are now defined in network order. */
140 err.cause = cause_code;
141 len = sizeof(sctp_errhdr_t) + paylen;
142 err.length = htons(len);
143
144 if (skb_tailroom(chunk->skb) > len)
145 return -ENOSPC;
146 chunk->subh.err_hdr = sctp_addto_chunk_fixed(chunk,
147 sizeof(sctp_errhdr_t),
148 &err);
149 return 0;
150}
128/* 3.3.2 Initiation (INIT) (1) 151/* 3.3.2 Initiation (INIT) (1)
129 * 152 *
130 * This chunk is used to initiate a SCTP association between two 153 * This chunk is used to initiate a SCTP association between two
@@ -208,7 +231,8 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
208 sp = sctp_sk(asoc->base.sk); 231 sp = sctp_sk(asoc->base.sk);
209 num_types = sp->pf->supported_addrs(sp, types); 232 num_types = sp->pf->supported_addrs(sp, types);
210 233
211 chunksize = sizeof(init) + addrs_len + SCTP_SAT_LEN(num_types); 234 chunksize = sizeof(init) + addrs_len;
235 chunksize += WORD_ROUND(SCTP_SAT_LEN(num_types));
212 chunksize += sizeof(ecap_param); 236 chunksize += sizeof(ecap_param);
213 237
214 if (sctp_prsctp_enable) 238 if (sctp_prsctp_enable)
@@ -238,14 +262,14 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
238 /* Add HMACS parameter length if any were defined */ 262 /* Add HMACS parameter length if any were defined */
239 auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs; 263 auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs;
240 if (auth_hmacs->length) 264 if (auth_hmacs->length)
241 chunksize += ntohs(auth_hmacs->length); 265 chunksize += WORD_ROUND(ntohs(auth_hmacs->length));
242 else 266 else
243 auth_hmacs = NULL; 267 auth_hmacs = NULL;
244 268
245 /* Add CHUNKS parameter length */ 269 /* Add CHUNKS parameter length */
246 auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks; 270 auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks;
247 if (auth_chunks->length) 271 if (auth_chunks->length)
248 chunksize += ntohs(auth_chunks->length); 272 chunksize += WORD_ROUND(ntohs(auth_chunks->length));
249 else 273 else
250 auth_chunks = NULL; 274 auth_chunks = NULL;
251 275
@@ -255,7 +279,8 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
255 279
256 /* If we have any extensions to report, account for that */ 280 /* If we have any extensions to report, account for that */
257 if (num_ext) 281 if (num_ext)
258 chunksize += sizeof(sctp_supported_ext_param_t) + num_ext; 282 chunksize += WORD_ROUND(sizeof(sctp_supported_ext_param_t) +
283 num_ext);
259 284
260 /* RFC 2960 3.3.2 Initiation (INIT) (1) 285 /* RFC 2960 3.3.2 Initiation (INIT) (1)
261 * 286 *
@@ -397,13 +422,13 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
397 422
398 auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs; 423 auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs;
399 if (auth_hmacs->length) 424 if (auth_hmacs->length)
400 chunksize += ntohs(auth_hmacs->length); 425 chunksize += WORD_ROUND(ntohs(auth_hmacs->length));
401 else 426 else
402 auth_hmacs = NULL; 427 auth_hmacs = NULL;
403 428
404 auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks; 429 auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks;
405 if (auth_chunks->length) 430 if (auth_chunks->length)
406 chunksize += ntohs(auth_chunks->length); 431 chunksize += WORD_ROUND(ntohs(auth_chunks->length));
407 else 432 else
408 auth_chunks = NULL; 433 auth_chunks = NULL;
409 434
@@ -412,7 +437,8 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
412 } 437 }
413 438
414 if (num_ext) 439 if (num_ext)
415 chunksize += sizeof(sctp_supported_ext_param_t) + num_ext; 440 chunksize += WORD_ROUND(sizeof(sctp_supported_ext_param_t) +
441 num_ext);
416 442
417 /* Now allocate and fill out the chunk. */ 443 /* Now allocate and fill out the chunk. */
418 retval = sctp_make_chunk(asoc, SCTP_CID_INIT_ACK, 0, chunksize); 444 retval = sctp_make_chunk(asoc, SCTP_CID_INIT_ACK, 0, chunksize);
@@ -1129,6 +1155,24 @@ nodata:
1129 return retval; 1155 return retval;
1130} 1156}
1131 1157
1158/* Create an Operation Error chunk of a fixed size,
1159 * specifically, max(asoc->pathmtu, SCTP_DEFAULT_MAXSEGMENT)
1160 * This is a helper function to allocate an error chunk for
1161 * for those invalid parameter codes in which we may not want
1162 * to report all the errors, if the incomming chunk is large
1163 */
1164static inline struct sctp_chunk *sctp_make_op_error_fixed(
1165 const struct sctp_association *asoc,
1166 const struct sctp_chunk *chunk)
1167{
1168 size_t size = asoc ? asoc->pathmtu : 0;
1169
1170 if (!size)
1171 size = SCTP_DEFAULT_MAXSEGMENT;
1172
1173 return sctp_make_op_error_space(asoc, chunk, size);
1174}
1175
1132/* Create an Operation Error chunk. */ 1176/* Create an Operation Error chunk. */
1133struct sctp_chunk *sctp_make_op_error(const struct sctp_association *asoc, 1177struct sctp_chunk *sctp_make_op_error(const struct sctp_association *asoc,
1134 const struct sctp_chunk *chunk, 1178 const struct sctp_chunk *chunk,
@@ -1371,6 +1415,18 @@ void *sctp_addto_chunk(struct sctp_chunk *chunk, int len, const void *data)
1371 return target; 1415 return target;
1372} 1416}
1373 1417
1418/* Append bytes to the end of a chunk. Returns NULL if there isn't sufficient
1419 * space in the chunk
1420 */
1421void *sctp_addto_chunk_fixed(struct sctp_chunk *chunk,
1422 int len, const void *data)
1423{
1424 if (skb_tailroom(chunk->skb) > len)
1425 return sctp_addto_chunk(chunk, len, data);
1426 else
1427 return NULL;
1428}
1429
1374/* Append bytes from user space to the end of a chunk. Will panic if 1430/* Append bytes from user space to the end of a chunk. Will panic if
1375 * chunk is not big enough. 1431 * chunk is not big enough.
1376 * Returns a kernel err value. 1432 * Returns a kernel err value.
@@ -1974,13 +2030,12 @@ static sctp_ierror_t sctp_process_unk_param(const struct sctp_association *asoc,
1974 * returning multiple unknown parameters. 2030 * returning multiple unknown parameters.
1975 */ 2031 */
1976 if (NULL == *errp) 2032 if (NULL == *errp)
1977 *errp = sctp_make_op_error_space(asoc, chunk, 2033 *errp = sctp_make_op_error_fixed(asoc, chunk);
1978 ntohs(chunk->chunk_hdr->length));
1979 2034
1980 if (*errp) { 2035 if (*errp) {
1981 sctp_init_cause(*errp, SCTP_ERROR_UNKNOWN_PARAM, 2036 sctp_init_cause_fixed(*errp, SCTP_ERROR_UNKNOWN_PARAM,
1982 WORD_ROUND(ntohs(param.p->length))); 2037 WORD_ROUND(ntohs(param.p->length)));
1983 sctp_addto_chunk(*errp, 2038 sctp_addto_chunk_fixed(*errp,
1984 WORD_ROUND(ntohs(param.p->length)), 2039 WORD_ROUND(ntohs(param.p->length)),
1985 param.v); 2040 param.v);
1986 } else { 2041 } else {
@@ -3315,21 +3370,6 @@ int sctp_process_asconf_ack(struct sctp_association *asoc,
3315 sctp_chunk_free(asconf); 3370 sctp_chunk_free(asconf);
3316 asoc->addip_last_asconf = NULL; 3371 asoc->addip_last_asconf = NULL;
3317 3372
3318 /* Send the next asconf chunk from the addip chunk queue. */
3319 if (!list_empty(&asoc->addip_chunk_list)) {
3320 struct list_head *entry = asoc->addip_chunk_list.next;
3321 asconf = list_entry(entry, struct sctp_chunk, list);
3322
3323 list_del_init(entry);
3324
3325 /* Hold the chunk until an ASCONF_ACK is received. */
3326 sctp_chunk_hold(asconf);
3327 if (sctp_primitive_ASCONF(asoc, asconf))
3328 sctp_chunk_free(asconf);
3329 else
3330 asoc->addip_last_asconf = asconf;
3331 }
3332
3333 return retval; 3373 return retval;
3334} 3374}
3335 3375
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
index 4c5bed9af4e3..eb1f42f45fdd 100644
--- a/net/sctp/sm_sideeffect.c
+++ b/net/sctp/sm_sideeffect.c
@@ -397,6 +397,41 @@ out_unlock:
397 sctp_transport_put(transport); 397 sctp_transport_put(transport);
398} 398}
399 399
400/* Handle the timeout of the ICMP protocol unreachable timer. Trigger
401 * the correct state machine transition that will close the association.
402 */
403void sctp_generate_proto_unreach_event(unsigned long data)
404{
405 struct sctp_transport *transport = (struct sctp_transport *) data;
406 struct sctp_association *asoc = transport->asoc;
407
408 sctp_bh_lock_sock(asoc->base.sk);
409 if (sock_owned_by_user(asoc->base.sk)) {
410 SCTP_DEBUG_PRINTK("%s:Sock is busy.\n", __func__);
411
412 /* Try again later. */
413 if (!mod_timer(&transport->proto_unreach_timer,
414 jiffies + (HZ/20)))
415 sctp_association_hold(asoc);
416 goto out_unlock;
417 }
418
419 /* Is this structure just waiting around for us to actually
420 * get destroyed?
421 */
422 if (asoc->base.dead)
423 goto out_unlock;
424
425 sctp_do_sm(SCTP_EVENT_T_OTHER,
426 SCTP_ST_OTHER(SCTP_EVENT_ICMP_PROTO_UNREACH),
427 asoc->state, asoc->ep, asoc, transport, GFP_ATOMIC);
428
429out_unlock:
430 sctp_bh_unlock_sock(asoc->base.sk);
431 sctp_association_put(asoc);
432}
433
434
400/* Inject a SACK Timeout event into the state machine. */ 435/* Inject a SACK Timeout event into the state machine. */
401static void sctp_generate_sack_event(unsigned long data) 436static void sctp_generate_sack_event(unsigned long data)
402{ 437{
@@ -962,6 +997,29 @@ static int sctp_cmd_send_msg(struct sctp_association *asoc,
962} 997}
963 998
964 999
1000/* Sent the next ASCONF packet currently stored in the association.
1001 * This happens after the ASCONF_ACK was succeffully processed.
1002 */
1003static void sctp_cmd_send_asconf(struct sctp_association *asoc)
1004{
1005 /* Send the next asconf chunk from the addip chunk
1006 * queue.
1007 */
1008 if (!list_empty(&asoc->addip_chunk_list)) {
1009 struct list_head *entry = asoc->addip_chunk_list.next;
1010 struct sctp_chunk *asconf = list_entry(entry,
1011 struct sctp_chunk, list);
1012 list_del_init(entry);
1013
1014 /* Hold the chunk until an ASCONF_ACK is received. */
1015 sctp_chunk_hold(asconf);
1016 if (sctp_primitive_ASCONF(asoc, asconf))
1017 sctp_chunk_free(asconf);
1018 else
1019 asoc->addip_last_asconf = asconf;
1020 }
1021}
1022
965 1023
966/* These three macros allow us to pull the debugging code out of the 1024/* These three macros allow us to pull the debugging code out of the
967 * main flow of sctp_do_sm() to keep attention focused on the real 1025 * main flow of sctp_do_sm() to keep attention focused on the real
@@ -1617,6 +1675,9 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
1617 } 1675 }
1618 error = sctp_cmd_send_msg(asoc, cmd->obj.msg); 1676 error = sctp_cmd_send_msg(asoc, cmd->obj.msg);
1619 break; 1677 break;
1678 case SCTP_CMD_SEND_NEXT_ASCONF:
1679 sctp_cmd_send_asconf(asoc);
1680 break;
1620 default: 1681 default:
1621 printk(KERN_WARNING "Impossible command: %u, %p\n", 1682 printk(KERN_WARNING "Impossible command: %u, %p\n",
1622 cmd->verb, cmd->obj.ptr); 1683 cmd->verb, cmd->obj.ptr);
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index abf601a1b847..24b2cd555637 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -3676,8 +3676,14 @@ sctp_disposition_t sctp_sf_do_asconf_ack(const struct sctp_endpoint *ep,
3676 SCTP_TO(SCTP_EVENT_TIMEOUT_T4_RTO)); 3676 SCTP_TO(SCTP_EVENT_TIMEOUT_T4_RTO));
3677 3677
3678 if (!sctp_process_asconf_ack((struct sctp_association *)asoc, 3678 if (!sctp_process_asconf_ack((struct sctp_association *)asoc,
3679 asconf_ack)) 3679 asconf_ack)) {
3680 /* Successfully processed ASCONF_ACK. We can
3681 * release the next asconf if we have one.
3682 */
3683 sctp_add_cmd_sf(commands, SCTP_CMD_SEND_NEXT_ASCONF,
3684 SCTP_NULL());
3680 return SCTP_DISPOSITION_CONSUME; 3685 return SCTP_DISPOSITION_CONSUME;
3686 }
3681 3687
3682 abort = sctp_make_abort(asoc, asconf_ack, 3688 abort = sctp_make_abort(asoc, asconf_ack,
3683 sizeof(sctp_errhdr_t)); 3689 sizeof(sctp_errhdr_t));
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 007e8baba089..44a1ab03a3f0 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3719,12 +3719,12 @@ SCTP_STATIC int sctp_init_sock(struct sock *sk)
3719 sp->hmac = NULL; 3719 sp->hmac = NULL;
3720 3720
3721 SCTP_DBG_OBJCNT_INC(sock); 3721 SCTP_DBG_OBJCNT_INC(sock);
3722 percpu_counter_inc(&sctp_sockets_allocated);
3723 3722
3724 /* Set socket backlog limit. */ 3723 /* Set socket backlog limit. */
3725 sk->sk_backlog.limit = sysctl_sctp_rmem[1]; 3724 sk->sk_backlog.limit = sysctl_sctp_rmem[1];
3726 3725
3727 local_bh_disable(); 3726 local_bh_disable();
3727 percpu_counter_inc(&sctp_sockets_allocated);
3728 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); 3728 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
3729 local_bh_enable(); 3729 local_bh_enable();
3730 3730
@@ -3741,8 +3741,8 @@ SCTP_STATIC void sctp_destroy_sock(struct sock *sk)
3741 /* Release our hold on the endpoint. */ 3741 /* Release our hold on the endpoint. */
3742 ep = sctp_sk(sk)->ep; 3742 ep = sctp_sk(sk)->ep;
3743 sctp_endpoint_free(ep); 3743 sctp_endpoint_free(ep);
3744 percpu_counter_dec(&sctp_sockets_allocated);
3745 local_bh_disable(); 3744 local_bh_disable();
3745 percpu_counter_dec(&sctp_sockets_allocated);
3746 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); 3746 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
3747 local_bh_enable(); 3747 local_bh_enable();
3748} 3748}
@@ -6189,6 +6189,16 @@ do_nonblock:
6189 goto out; 6189 goto out;
6190} 6190}
6191 6191
6192void sctp_data_ready(struct sock *sk, int len)
6193{
6194 read_lock_bh(&sk->sk_callback_lock);
6195 if (sk_has_sleeper(sk))
6196 wake_up_interruptible_sync_poll(sk->sk_sleep, POLLIN |
6197 POLLRDNORM | POLLRDBAND);
6198 sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
6199 read_unlock_bh(&sk->sk_callback_lock);
6200}
6201
6192/* If socket sndbuf has changed, wake up all per association waiters. */ 6202/* If socket sndbuf has changed, wake up all per association waiters. */
6193void sctp_write_space(struct sock *sk) 6203void sctp_write_space(struct sock *sk)
6194{ 6204{
diff --git a/net/sctp/transport.c b/net/sctp/transport.c
index be4d63d5a5cc..4a368038d46f 100644
--- a/net/sctp/transport.c
+++ b/net/sctp/transport.c
@@ -108,6 +108,8 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
108 (unsigned long)peer); 108 (unsigned long)peer);
109 setup_timer(&peer->hb_timer, sctp_generate_heartbeat_event, 109 setup_timer(&peer->hb_timer, sctp_generate_heartbeat_event,
110 (unsigned long)peer); 110 (unsigned long)peer);
111 setup_timer(&peer->proto_unreach_timer,
112 sctp_generate_proto_unreach_event, (unsigned long)peer);
111 113
112 /* Initialize the 64-bit random nonce sent with heartbeat. */ 114 /* Initialize the 64-bit random nonce sent with heartbeat. */
113 get_random_bytes(&peer->hb_nonce, sizeof(peer->hb_nonce)); 115 get_random_bytes(&peer->hb_nonce, sizeof(peer->hb_nonce));
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c
index f394fc190a49..95afe79dd9d7 100644
--- a/net/sunrpc/auth.c
+++ b/net/sunrpc/auth.c
@@ -237,7 +237,7 @@ rpcauth_prune_expired(struct list_head *free, int nr_to_scan)
237 list_for_each_entry_safe(cred, next, &cred_unused, cr_lru) { 237 list_for_each_entry_safe(cred, next, &cred_unused, cr_lru) {
238 238
239 /* Enforce a 60 second garbage collection moratorium */ 239 /* Enforce a 60 second garbage collection moratorium */
240 if (time_in_range_open(cred->cr_expire, expired, jiffies) && 240 if (time_in_range(cred->cr_expire, expired, jiffies) &&
241 test_bit(RPCAUTH_CRED_HASHED, &cred->cr_flags) != 0) 241 test_bit(RPCAUTH_CRED_HASHED, &cred->cr_flags) != 0)
242 continue; 242 continue;
243 243
diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c
index cbddd0cb83f1..36e84e13c6aa 100644
--- a/net/x25/af_x25.c
+++ b/net/x25/af_x25.c
@@ -402,6 +402,7 @@ static void __x25_destroy_socket(struct sock *sk)
402 /* 402 /*
403 * Queue the unaccepted socket for death 403 * Queue the unaccepted socket for death
404 */ 404 */
405 skb->sk->sk_state = TCP_LISTEN;
405 sock_set_flag(skb->sk, SOCK_DEAD); 406 sock_set_flag(skb->sk, SOCK_DEAD);
406 x25_start_heartbeat(skb->sk); 407 x25_start_heartbeat(skb->sk);
407 x25_sk(skb->sk)->state = X25_STATE_0; 408 x25_sk(skb->sk)->state = X25_STATE_0;
diff --git a/security/inode.c b/security/inode.c
index c3a793881d04..1c812e874504 100644
--- a/security/inode.c
+++ b/security/inode.c
@@ -161,13 +161,13 @@ static int create_by_name(const char *name, mode_t mode,
161 161
162 mutex_lock(&parent->d_inode->i_mutex); 162 mutex_lock(&parent->d_inode->i_mutex);
163 *dentry = lookup_one_len(name, parent, strlen(name)); 163 *dentry = lookup_one_len(name, parent, strlen(name));
164 if (!IS_ERR(dentry)) { 164 if (!IS_ERR(*dentry)) {
165 if ((mode & S_IFMT) == S_IFDIR) 165 if ((mode & S_IFMT) == S_IFDIR)
166 error = mkdir(parent->d_inode, *dentry, mode); 166 error = mkdir(parent->d_inode, *dentry, mode);
167 else 167 else
168 error = create(parent->d_inode, *dentry, mode); 168 error = create(parent->d_inode, *dentry, mode);
169 } else 169 } else
170 error = PTR_ERR(dentry); 170 error = PTR_ERR(*dentry);
171 mutex_unlock(&parent->d_inode->i_mutex); 171 mutex_unlock(&parent->d_inode->i_mutex);
172 172
173 return error; 173 return error;
diff --git a/security/keys/gc.c b/security/keys/gc.c
index 19902319d097..a46e825cbf02 100644
--- a/security/keys/gc.c
+++ b/security/keys/gc.c
@@ -77,10 +77,10 @@ static bool key_gc_keyring(struct key *keyring, time_t limit)
77 goto dont_gc; 77 goto dont_gc;
78 78
79 /* scan the keyring looking for dead keys */ 79 /* scan the keyring looking for dead keys */
80 klist = rcu_dereference_check(keyring->payload.subscriptions, 80 rcu_read_lock();
81 lockdep_is_held(&key_serial_lock)); 81 klist = rcu_dereference(keyring->payload.subscriptions);
82 if (!klist) 82 if (!klist)
83 goto dont_gc; 83 goto unlock_dont_gc;
84 84
85 for (loop = klist->nkeys - 1; loop >= 0; loop--) { 85 for (loop = klist->nkeys - 1; loop >= 0; loop--) {
86 key = klist->keys[loop]; 86 key = klist->keys[loop];
@@ -89,11 +89,14 @@ static bool key_gc_keyring(struct key *keyring, time_t limit)
89 goto do_gc; 89 goto do_gc;
90 } 90 }
91 91
92unlock_dont_gc:
93 rcu_read_unlock();
92dont_gc: 94dont_gc:
93 kleave(" = false"); 95 kleave(" = false");
94 return false; 96 return false;
95 97
96do_gc: 98do_gc:
99 rcu_read_unlock();
97 key_gc_cursor = keyring->serial; 100 key_gc_cursor = keyring->serial;
98 key_get(keyring); 101 key_get(keyring);
99 spin_unlock(&key_serial_lock); 102 spin_unlock(&key_serial_lock);
diff --git a/security/keys/keyring.c b/security/keys/keyring.c
index e814d2109f8e..1e4b0037935c 100644
--- a/security/keys/keyring.c
+++ b/security/keys/keyring.c
@@ -20,6 +20,11 @@
20#include <asm/uaccess.h> 20#include <asm/uaccess.h>
21#include "internal.h" 21#include "internal.h"
22 22
23#define rcu_dereference_locked_keyring(keyring) \
24 (rcu_dereference_protected( \
25 (keyring)->payload.subscriptions, \
26 rwsem_is_locked((struct rw_semaphore *)&(keyring)->sem)))
27
23/* 28/*
24 * when plumbing the depths of the key tree, this sets a hard limit set on how 29 * when plumbing the depths of the key tree, this sets a hard limit set on how
25 * deep we're willing to go 30 * deep we're willing to go
@@ -201,8 +206,7 @@ static long keyring_read(const struct key *keyring,
201 int loop, ret; 206 int loop, ret;
202 207
203 ret = 0; 208 ret = 0;
204 klist = rcu_dereference(keyring->payload.subscriptions); 209 klist = rcu_dereference_locked_keyring(keyring);
205
206 if (klist) { 210 if (klist) {
207 /* calculate how much data we could return */ 211 /* calculate how much data we could return */
208 qty = klist->nkeys * sizeof(key_serial_t); 212 qty = klist->nkeys * sizeof(key_serial_t);
@@ -526,9 +530,8 @@ struct key *find_keyring_by_name(const char *name, bool skip_perm_check)
526 struct key *keyring; 530 struct key *keyring;
527 int bucket; 531 int bucket;
528 532
529 keyring = ERR_PTR(-EINVAL);
530 if (!name) 533 if (!name)
531 goto error; 534 return ERR_PTR(-EINVAL);
532 535
533 bucket = keyring_hash(name); 536 bucket = keyring_hash(name);
534 537
@@ -555,17 +558,18 @@ struct key *find_keyring_by_name(const char *name, bool skip_perm_check)
555 KEY_SEARCH) < 0) 558 KEY_SEARCH) < 0)
556 continue; 559 continue;
557 560
558 /* we've got a match */ 561 /* we've got a match but we might end up racing with
559 atomic_inc(&keyring->usage); 562 * key_cleanup() if the keyring is currently 'dead'
560 read_unlock(&keyring_name_lock); 563 * (ie. it has a zero usage count) */
561 goto error; 564 if (!atomic_inc_not_zero(&keyring->usage))
565 continue;
566 goto out;
562 } 567 }
563 } 568 }
564 569
565 read_unlock(&keyring_name_lock);
566 keyring = ERR_PTR(-ENOKEY); 570 keyring = ERR_PTR(-ENOKEY);
567 571out:
568 error: 572 read_unlock(&keyring_name_lock);
569 return keyring; 573 return keyring;
570 574
571} /* end find_keyring_by_name() */ 575} /* end find_keyring_by_name() */
@@ -720,8 +724,7 @@ int __key_link(struct key *keyring, struct key *key)
720 } 724 }
721 725
722 /* see if there's a matching key we can displace */ 726 /* see if there's a matching key we can displace */
723 klist = keyring->payload.subscriptions; 727 klist = rcu_dereference_locked_keyring(keyring);
724
725 if (klist && klist->nkeys > 0) { 728 if (klist && klist->nkeys > 0) {
726 struct key_type *type = key->type; 729 struct key_type *type = key->type;
727 730
@@ -765,8 +768,6 @@ int __key_link(struct key *keyring, struct key *key)
765 if (ret < 0) 768 if (ret < 0)
766 goto error2; 769 goto error2;
767 770
768 klist = keyring->payload.subscriptions;
769
770 if (klist && klist->nkeys < klist->maxkeys) { 771 if (klist && klist->nkeys < klist->maxkeys) {
771 /* there's sufficient slack space to add directly */ 772 /* there's sufficient slack space to add directly */
772 atomic_inc(&key->usage); 773 atomic_inc(&key->usage);
@@ -868,7 +869,7 @@ int key_unlink(struct key *keyring, struct key *key)
868 869
869 down_write(&keyring->sem); 870 down_write(&keyring->sem);
870 871
871 klist = keyring->payload.subscriptions; 872 klist = rcu_dereference_locked_keyring(keyring);
872 if (klist) { 873 if (klist) {
873 /* search the keyring for the key */ 874 /* search the keyring for the key */
874 for (loop = 0; loop < klist->nkeys; loop++) 875 for (loop = 0; loop < klist->nkeys; loop++)
@@ -959,7 +960,7 @@ int keyring_clear(struct key *keyring)
959 /* detach the pointer block with the locks held */ 960 /* detach the pointer block with the locks held */
960 down_write(&keyring->sem); 961 down_write(&keyring->sem);
961 962
962 klist = keyring->payload.subscriptions; 963 klist = rcu_dereference_locked_keyring(keyring);
963 if (klist) { 964 if (klist) {
964 /* adjust the quota */ 965 /* adjust the quota */
965 key_payload_reserve(keyring, 966 key_payload_reserve(keyring,
@@ -991,7 +992,9 @@ EXPORT_SYMBOL(keyring_clear);
991 */ 992 */
992static void keyring_revoke(struct key *keyring) 993static void keyring_revoke(struct key *keyring)
993{ 994{
994 struct keyring_list *klist = keyring->payload.subscriptions; 995 struct keyring_list *klist;
996
997 klist = rcu_dereference_locked_keyring(keyring);
995 998
996 /* adjust the quota */ 999 /* adjust the quota */
997 key_payload_reserve(keyring, 0); 1000 key_payload_reserve(keyring, 0);
@@ -1025,7 +1028,7 @@ void keyring_gc(struct key *keyring, time_t limit)
1025 1028
1026 down_write(&keyring->sem); 1029 down_write(&keyring->sem);
1027 1030
1028 klist = keyring->payload.subscriptions; 1031 klist = rcu_dereference_locked_keyring(keyring);
1029 if (!klist) 1032 if (!klist)
1030 goto no_klist; 1033 goto no_klist;
1031 1034
diff --git a/security/keys/request_key.c b/security/keys/request_key.c
index 03fe63ed55bd..d8c1a6a0fb08 100644
--- a/security/keys/request_key.c
+++ b/security/keys/request_key.c
@@ -68,7 +68,8 @@ static int call_sbin_request_key(struct key_construction *cons,
68{ 68{
69 const struct cred *cred = current_cred(); 69 const struct cred *cred = current_cred();
70 key_serial_t prkey, sskey; 70 key_serial_t prkey, sskey;
71 struct key *key = cons->key, *authkey = cons->authkey, *keyring; 71 struct key *key = cons->key, *authkey = cons->authkey, *keyring,
72 *session;
72 char *argv[9], *envp[3], uid_str[12], gid_str[12]; 73 char *argv[9], *envp[3], uid_str[12], gid_str[12];
73 char key_str[12], keyring_str[3][12]; 74 char key_str[12], keyring_str[3][12];
74 char desc[20]; 75 char desc[20];
@@ -93,7 +94,7 @@ static int call_sbin_request_key(struct key_construction *cons,
93 } 94 }
94 95
95 /* attach the auth key to the session keyring */ 96 /* attach the auth key to the session keyring */
96 ret = __key_link(keyring, authkey); 97 ret = key_link(keyring, authkey);
97 if (ret < 0) 98 if (ret < 0)
98 goto error_link; 99 goto error_link;
99 100
@@ -112,10 +113,12 @@ static int call_sbin_request_key(struct key_construction *cons,
112 if (cred->tgcred->process_keyring) 113 if (cred->tgcred->process_keyring)
113 prkey = cred->tgcred->process_keyring->serial; 114 prkey = cred->tgcred->process_keyring->serial;
114 115
115 if (cred->tgcred->session_keyring) 116 rcu_read_lock();
116 sskey = rcu_dereference(cred->tgcred->session_keyring)->serial; 117 session = rcu_dereference(cred->tgcred->session_keyring);
117 else 118 if (!session)
118 sskey = cred->user->session_keyring->serial; 119 session = cred->user->session_keyring;
120 sskey = session->serial;
121 rcu_read_unlock();
119 122
120 sprintf(keyring_str[2], "%d", sskey); 123 sprintf(keyring_str[2], "%d", sskey);
121 124
@@ -336,8 +339,10 @@ static int construct_alloc_key(struct key_type *type,
336 339
337key_already_present: 340key_already_present:
338 mutex_unlock(&key_construction_mutex); 341 mutex_unlock(&key_construction_mutex);
339 if (dest_keyring) 342 if (dest_keyring) {
343 __key_link(dest_keyring, key_ref_to_ptr(key_ref));
340 up_write(&dest_keyring->sem); 344 up_write(&dest_keyring->sem);
345 }
341 mutex_unlock(&user->cons_lock); 346 mutex_unlock(&user->cons_lock);
342 key_put(key); 347 key_put(key);
343 *_key = key = key_ref_to_ptr(key_ref); 348 *_key = key = key_ref_to_ptr(key_ref);
@@ -428,6 +433,11 @@ struct key *request_key_and_link(struct key_type *type,
428 433
429 if (!IS_ERR(key_ref)) { 434 if (!IS_ERR(key_ref)) {
430 key = key_ref_to_ptr(key_ref); 435 key = key_ref_to_ptr(key_ref);
436 if (dest_keyring) {
437 construct_get_dest_keyring(&dest_keyring);
438 key_link(dest_keyring, key);
439 key_put(dest_keyring);
440 }
431 } else if (PTR_ERR(key_ref) != -EAGAIN) { 441 } else if (PTR_ERR(key_ref) != -EAGAIN) {
432 key = ERR_CAST(key_ref); 442 key = ERR_CAST(key_ref);
433 } else { 443 } else {
diff --git a/security/keys/user_defined.c b/security/keys/user_defined.c
index 7c687d568221..e9aa07929656 100644
--- a/security/keys/user_defined.c
+++ b/security/keys/user_defined.c
@@ -199,7 +199,8 @@ long user_read(const struct key *key, char __user *buffer, size_t buflen)
199 struct user_key_payload *upayload; 199 struct user_key_payload *upayload;
200 long ret; 200 long ret;
201 201
202 upayload = rcu_dereference(key->payload.data); 202 upayload = rcu_dereference_protected(
203 key->payload.data, rwsem_is_locked(&((struct key *)key)->sem));
203 ret = upayload->datalen; 204 ret = upayload->datalen;
204 205
205 /* we can return the data as is */ 206 /* we can return the data as is */
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 872887624030..20b5982c996b 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -36,6 +36,9 @@
36#include <sound/timer.h> 36#include <sound/timer.h>
37#include <sound/minors.h> 37#include <sound/minors.h>
38#include <asm/io.h> 38#include <asm/io.h>
39#if defined(CONFIG_MIPS) && defined(CONFIG_DMA_NONCOHERENT)
40#include <dma-coherence.h>
41#endif
39 42
40/* 43/*
41 * Compatibility 44 * Compatibility
@@ -3184,6 +3187,10 @@ static int snd_pcm_default_mmap(struct snd_pcm_substream *substream,
3184 substream->runtime->dma_area, 3187 substream->runtime->dma_area,
3185 substream->runtime->dma_addr, 3188 substream->runtime->dma_addr,
3186 area->vm_end - area->vm_start); 3189 area->vm_end - area->vm_start);
3190#elif defined(CONFIG_MIPS) && defined(CONFIG_DMA_NONCOHERENT)
3191 if (substream->dma_buffer.dev.type == SNDRV_DMA_TYPE_DEV &&
3192 !plat_device_is_coherent(substream->dma_buffer.dev.dev))
3193 area->vm_page_prot = pgprot_noncached(area->vm_page_prot);
3187#endif /* ARCH_HAS_DMA_MMAP_COHERENT */ 3194#endif /* ARCH_HAS_DMA_MMAP_COHERENT */
3188 /* mmap with fault handler */ 3195 /* mmap with fault handler */
3189 area->vm_ops = &snd_pcm_vm_ops_data_fault; 3196 area->vm_ops = &snd_pcm_vm_ops_data_fault;
diff --git a/sound/core/timer.c b/sound/core/timer.c
index 73943651caed..5040c7b862fe 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -1160,6 +1160,7 @@ static void snd_timer_user_ccallback(struct snd_timer_instance *timeri,
1160{ 1160{
1161 struct snd_timer_user *tu = timeri->callback_data; 1161 struct snd_timer_user *tu = timeri->callback_data;
1162 struct snd_timer_tread r1; 1162 struct snd_timer_tread r1;
1163 unsigned long flags;
1163 1164
1164 if (event >= SNDRV_TIMER_EVENT_START && 1165 if (event >= SNDRV_TIMER_EVENT_START &&
1165 event <= SNDRV_TIMER_EVENT_PAUSE) 1166 event <= SNDRV_TIMER_EVENT_PAUSE)
@@ -1169,9 +1170,9 @@ static void snd_timer_user_ccallback(struct snd_timer_instance *timeri,
1169 r1.event = event; 1170 r1.event = event;
1170 r1.tstamp = *tstamp; 1171 r1.tstamp = *tstamp;
1171 r1.val = resolution; 1172 r1.val = resolution;
1172 spin_lock(&tu->qlock); 1173 spin_lock_irqsave(&tu->qlock, flags);
1173 snd_timer_user_append_to_tqueue(tu, &r1); 1174 snd_timer_user_append_to_tqueue(tu, &r1);
1174 spin_unlock(&tu->qlock); 1175 spin_unlock_irqrestore(&tu->qlock, flags);
1175 kill_fasync(&tu->fasync, SIGIO, POLL_IN); 1176 kill_fasync(&tu->fasync, SIGIO, POLL_IN);
1176 wake_up(&tu->qchange_sleep); 1177 wake_up(&tu->qchange_sleep);
1177} 1178}
diff --git a/sound/isa/sb/es968.c b/sound/isa/sb/es968.c
index cafc3a7316a8..ff18286fef9d 100644
--- a/sound/isa/sb/es968.c
+++ b/sound/isa/sb/es968.c
@@ -93,7 +93,7 @@ static int __devinit snd_card_es968_pnp(int dev, struct snd_card_es968 *acard,
93 return err; 93 return err;
94 } 94 }
95 port[dev] = pnp_port_start(pdev, 0); 95 port[dev] = pnp_port_start(pdev, 0);
96 dma8[dev] = pnp_dma(pdev, 1); 96 dma8[dev] = pnp_dma(pdev, 0);
97 irq[dev] = pnp_irq(pdev, 0); 97 irq[dev] = pnp_irq(pdev, 0);
98 98
99 return 0; 99 return 0;
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index f669442b7c82..cec68152dcb1 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2273,6 +2273,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = {
2273 SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB), 2273 SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB),
2274 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB), 2274 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB),
2275 SND_PCI_QUIRK(0x1565, 0x8218, "Biostar Microtech", POS_FIX_LPIB), 2275 SND_PCI_QUIRK(0x1565, 0x8218, "Biostar Microtech", POS_FIX_LPIB),
2276 SND_PCI_QUIRK(0x8086, 0x2503, "DG965OT AAD63733-203", POS_FIX_LPIB),
2276 SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB), 2277 SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB),
2277 {} 2278 {}
2278}; 2279};
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index af34606c30c3..e9fdfc4b1c57 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -519,14 +519,6 @@ static int ad198x_suspend(struct hda_codec *codec, pm_message_t state)
519 ad198x_power_eapd(codec); 519 ad198x_power_eapd(codec);
520 return 0; 520 return 0;
521} 521}
522
523static int ad198x_resume(struct hda_codec *codec)
524{
525 ad198x_init(codec);
526 snd_hda_codec_resume_amp(codec);
527 snd_hda_codec_resume_cache(codec);
528 return 0;
529}
530#endif 522#endif
531 523
532static struct hda_codec_ops ad198x_patch_ops = { 524static struct hda_codec_ops ad198x_patch_ops = {
@@ -539,7 +531,6 @@ static struct hda_codec_ops ad198x_patch_ops = {
539#endif 531#endif
540#ifdef SND_HDA_NEEDS_RESUME 532#ifdef SND_HDA_NEEDS_RESUME
541 .suspend = ad198x_suspend, 533 .suspend = ad198x_suspend,
542 .resume = ad198x_resume,
543#endif 534#endif
544 .reboot_notify = ad198x_shutup, 535 .reboot_notify = ad198x_shutup,
545}; 536};
diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c
index 7de782a5b8f4..350ee8ac4153 100644
--- a/sound/pci/hda/patch_cirrus.c
+++ b/sound/pci/hda/patch_cirrus.c
@@ -766,7 +766,7 @@ static int build_input(struct hda_codec *codec)
766 for (n = 0; n < AUTO_PIN_LAST; n++) { 766 for (n = 0; n < AUTO_PIN_LAST; n++) {
767 if (!spec->adc_nid[n]) 767 if (!spec->adc_nid[n])
768 continue; 768 continue;
769 err = snd_hda_add_nid(codec, kctl, 0, spec->adc_nid[i]); 769 err = snd_hda_add_nid(codec, kctl, 0, spec->adc_nid[n]);
770 if (err < 0) 770 if (err < 0)
771 return err; 771 return err;
772 } 772 }
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 61682e1d09da..feabb44c7ca4 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -1195,10 +1195,12 @@ static int patch_cxt5045(struct hda_codec *codec)
1195 1195
1196 switch (codec->subsystem_id >> 16) { 1196 switch (codec->subsystem_id >> 16) {
1197 case 0x103c: 1197 case 0x103c:
1198 case 0x1631:
1198 case 0x1734: 1199 case 0x1734:
1199 /* HP & Fujitsu-Siemens laptops have really bad sound over 0dB 1200 case 0x17aa:
1200 * on NID 0x17. Fix max PCM level to 0 dB 1201 /* HP, Packard Bell, Fujitsu-Siemens & Lenovo laptops have
1201 * (originally it has 0x2b steps with 0dB offset 0x14) 1202 * really bad sound over 0dB on NID 0x17. Fix max PCM level to
1203 * 0 dB (originally it has 0x2b steps with 0dB offset 0x14)
1202 */ 1204 */
1203 snd_hda_override_amp_caps(codec, 0x17, HDA_INPUT, 1205 snd_hda_override_amp_caps(codec, 0x17, HDA_INPUT,
1204 (0x14 << AC_AMPCAP_OFFSET_SHIFT) | 1206 (0x14 << AC_AMPCAP_OFFSET_SHIFT) |
@@ -2842,6 +2844,10 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
2842 CXT5066_DELL_LAPTOP), 2844 CXT5066_DELL_LAPTOP),
2843 SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT5066_OLPC_XO_1_5), 2845 SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT5066_OLPC_XO_1_5),
2844 SND_PCI_QUIRK(0x1028, 0x0402, "Dell Vostro", CXT5066_DELL_VOSTO), 2846 SND_PCI_QUIRK(0x1028, 0x0402, "Dell Vostro", CXT5066_DELL_VOSTO),
2847 SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD),
2848 SND_PCI_QUIRK(0x1179, 0xff50, "Toshiba Satellite P500-PSPGSC-01800T", CXT5066_OLPC_XO_1_5),
2849 SND_PCI_QUIRK(0x1179, 0xffe0, "Toshiba Satellite Pro T130-15F", CXT5066_OLPC_XO_1_5),
2850 SND_PCI_QUIRK(0x17aa, 0x21b2, "Thinkpad X100e", CXT5066_IDEAPAD),
2845 SND_PCI_QUIRK(0x17aa, 0x3a0d, "ideapad", CXT5066_IDEAPAD), 2851 SND_PCI_QUIRK(0x17aa, 0x3a0d, "ideapad", CXT5066_IDEAPAD),
2846 {} 2852 {}
2847}; 2853};
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index aad1627f56f1..886d8e46bb37 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4143,7 +4143,7 @@ static struct snd_pci_quirk alc880_cfg_tbl[] = {
4143 SND_PCI_QUIRK(0x1695, 0x4012, "EPox EP-5LDA", ALC880_5ST_DIG), 4143 SND_PCI_QUIRK(0x1695, 0x4012, "EPox EP-5LDA", ALC880_5ST_DIG),
4144 SND_PCI_QUIRK(0x1734, 0x107c, "FSC F1734", ALC880_F1734), 4144 SND_PCI_QUIRK(0x1734, 0x107c, "FSC F1734", ALC880_F1734),
4145 SND_PCI_QUIRK(0x1734, 0x1094, "FSC Amilo M1451G", ALC880_FUJITSU), 4145 SND_PCI_QUIRK(0x1734, 0x1094, "FSC Amilo M1451G", ALC880_FUJITSU),
4146 SND_PCI_QUIRK(0x1734, 0x10ac, "FSC", ALC880_UNIWILL), 4146 SND_PCI_QUIRK(0x1734, 0x10ac, "FSC AMILO Xi 1526", ALC880_F1734),
4147 SND_PCI_QUIRK(0x1734, 0x10b0, "Fujitsu", ALC880_FUJITSU), 4147 SND_PCI_QUIRK(0x1734, 0x10b0, "Fujitsu", ALC880_FUJITSU),
4148 SND_PCI_QUIRK(0x1854, 0x0018, "LG LW20", ALC880_LG_LW), 4148 SND_PCI_QUIRK(0x1854, 0x0018, "LG LW20", ALC880_LG_LW),
4149 SND_PCI_QUIRK(0x1854, 0x003b, "LG", ALC880_LG), 4149 SND_PCI_QUIRK(0x1854, 0x003b, "LG", ALC880_LG),
@@ -17871,7 +17871,6 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
17871 ALC662_3ST_6ch_DIG), 17871 ALC662_3ST_6ch_DIG),
17872 SND_PCI_QUIRK_MASK(0x1854, 0xf000, 0x2000, "ASUS H13-200x", 17872 SND_PCI_QUIRK_MASK(0x1854, 0xf000, 0x2000, "ASUS H13-200x",
17873 ALC663_ASUS_H13), 17873 ALC663_ASUS_H13),
17874 SND_PCI_QUIRK(0x8086, 0xd604, "Intel mobo", ALC662_3ST_2ch_DIG),
17875 {} 17874 {}
17876}; 17875};
17877 17876
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index c4be3fab94e5..a0e06d82da1f 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -104,6 +104,7 @@ enum {
104 STAC_DELL_M4_2, 104 STAC_DELL_M4_2,
105 STAC_DELL_M4_3, 105 STAC_DELL_M4_3,
106 STAC_HP_M4, 106 STAC_HP_M4,
107 STAC_HP_DV4,
107 STAC_HP_DV5, 108 STAC_HP_DV5,
108 STAC_HP_HDX, 109 STAC_HP_HDX,
109 STAC_HP_DV4_1222NR, 110 STAC_HP_DV4_1222NR,
@@ -1544,11 +1545,9 @@ static unsigned int alienware_m17x_pin_configs[13] = {
1544 0x904601b0, 1545 0x904601b0,
1545}; 1546};
1546 1547
1547static unsigned int intel_dg45id_pin_configs[14] = { 1548static unsigned int intel_dg45id_pin_configs[13] = {
1548 0x02214230, 0x02A19240, 0x01013214, 0x01014210, 1549 0x02214230, 0x02A19240, 0x01013214, 0x01014210,
1549 0x01A19250, 0x01011212, 0x01016211, 0x40f000f0, 1550 0x01A19250, 0x01011212, 0x01016211
1550 0x40f000f0, 0x40f000f0, 0x40f000f0, 0x014510A0,
1551 0x074510B0, 0x40f000f0
1552}; 1551};
1553 1552
1554static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { 1553static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
@@ -1607,6 +1606,10 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
1607 "Dell Studio 1555", STAC_DELL_M6_DMIC), 1606 "Dell Studio 1555", STAC_DELL_M6_DMIC),
1608 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd, 1607 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd,
1609 "Dell Studio 1557", STAC_DELL_M6_DMIC), 1608 "Dell Studio 1557", STAC_DELL_M6_DMIC),
1609 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02fe,
1610 "Dell Studio XPS 1645", STAC_DELL_M6_BOTH),
1611 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0413,
1612 "Dell Studio 1558", STAC_DELL_M6_BOTH),
1610 {} /* terminator */ 1613 {} /* terminator */
1611}; 1614};
1612 1615
@@ -1689,6 +1692,7 @@ static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = {
1689 [STAC_DELL_M4_2] = dell_m4_2_pin_configs, 1692 [STAC_DELL_M4_2] = dell_m4_2_pin_configs,
1690 [STAC_DELL_M4_3] = dell_m4_3_pin_configs, 1693 [STAC_DELL_M4_3] = dell_m4_3_pin_configs,
1691 [STAC_HP_M4] = NULL, 1694 [STAC_HP_M4] = NULL,
1695 [STAC_HP_DV4] = NULL,
1692 [STAC_HP_DV5] = NULL, 1696 [STAC_HP_DV5] = NULL,
1693 [STAC_HP_HDX] = NULL, 1697 [STAC_HP_HDX] = NULL,
1694 [STAC_HP_DV4_1222NR] = NULL, 1698 [STAC_HP_DV4_1222NR] = NULL,
@@ -1701,6 +1705,7 @@ static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = {
1701 [STAC_DELL_M4_2] = "dell-m4-2", 1705 [STAC_DELL_M4_2] = "dell-m4-2",
1702 [STAC_DELL_M4_3] = "dell-m4-3", 1706 [STAC_DELL_M4_3] = "dell-m4-3",
1703 [STAC_HP_M4] = "hp-m4", 1707 [STAC_HP_M4] = "hp-m4",
1708 [STAC_HP_DV4] = "hp-dv4",
1704 [STAC_HP_DV5] = "hp-dv5", 1709 [STAC_HP_DV5] = "hp-dv5",
1705 [STAC_HP_HDX] = "hp-hdx", 1710 [STAC_HP_HDX] = "hp-hdx",
1706 [STAC_HP_DV4_1222NR] = "hp-dv4-1222nr", 1711 [STAC_HP_DV4_1222NR] = "hp-dv4-1222nr",
@@ -1719,7 +1724,7 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
1719 SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3080, 1724 SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3080,
1720 "HP", STAC_HP_DV5), 1725 "HP", STAC_HP_DV5),
1721 SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x30f0, 1726 SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x30f0,
1722 "HP dv4-7", STAC_HP_DV5), 1727 "HP dv4-7", STAC_HP_DV4),
1723 SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3600, 1728 SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3600,
1724 "HP dv4-7", STAC_HP_DV5), 1729 "HP dv4-7", STAC_HP_DV5),
1725 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3610, 1730 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3610,
@@ -4764,6 +4769,9 @@ static void set_hp_led_gpio(struct hda_codec *codec)
4764 struct sigmatel_spec *spec = codec->spec; 4769 struct sigmatel_spec *spec = codec->spec;
4765 unsigned int gpio; 4770 unsigned int gpio;
4766 4771
4772 if (spec->gpio_led)
4773 return;
4774
4767 gpio = snd_hda_param_read(codec, codec->afg, AC_PAR_GPIO_CAP); 4775 gpio = snd_hda_param_read(codec, codec->afg, AC_PAR_GPIO_CAP);
4768 gpio &= AC_GPIO_IO_COUNT; 4776 gpio &= AC_GPIO_IO_COUNT;
4769 if (gpio > 3) 4777 if (gpio > 3)
@@ -5673,6 +5681,9 @@ again:
5673 spec->num_smuxes = 1; 5681 spec->num_smuxes = 1;
5674 spec->num_dmuxes = 1; 5682 spec->num_dmuxes = 1;
5675 /* fallthrough */ 5683 /* fallthrough */
5684 case STAC_HP_DV4:
5685 spec->gpio_led = 0x01;
5686 /* fallthrough */
5676 case STAC_HP_DV5: 5687 case STAC_HP_DV5:
5677 snd_hda_codec_set_pincfg(codec, 0x0d, 0x90170010); 5688 snd_hda_codec_set_pincfg(codec, 0x0d, 0x90170010);
5678 stac92xx_auto_set_pinctl(codec, 0x0d, AC_PINCTL_OUT_EN); 5689 stac92xx_auto_set_pinctl(codec, 0x0d, AC_PINCTL_OUT_EN);
@@ -5686,6 +5697,7 @@ again:
5686 spec->num_dmics = 1; 5697 spec->num_dmics = 1;
5687 spec->num_dmuxes = 1; 5698 spec->num_dmuxes = 1;
5688 spec->num_smuxes = 1; 5699 spec->num_smuxes = 1;
5700 spec->gpio_led = 0x08;
5689 break; 5701 break;
5690 } 5702 }
5691 5703
@@ -5742,7 +5754,8 @@ again:
5742 } 5754 }
5743 5755
5744 /* enable bass on HP dv7 */ 5756 /* enable bass on HP dv7 */
5745 if (spec->board_config == STAC_HP_DV5) { 5757 if (spec->board_config == STAC_HP_DV4 ||
5758 spec->board_config == STAC_HP_DV5) {
5746 unsigned int cap; 5759 unsigned int cap;
5747 cap = snd_hda_param_read(codec, 0x1, AC_PAR_GPIO_CAP); 5760 cap = snd_hda_param_read(codec, 0x1, AC_PAR_GPIO_CAP);
5748 cap &= AC_GPIO_IO_COUNT; 5761 cap &= AC_GPIO_IO_COUNT;
diff --git a/sound/pci/ice1712/maya44.c b/sound/pci/ice1712/maya44.c
index 3e1c20ae2f1c..726fd4b92e19 100644
--- a/sound/pci/ice1712/maya44.c
+++ b/sound/pci/ice1712/maya44.c
@@ -347,7 +347,7 @@ static int maya_gpio_sw_put(struct snd_kcontrol *kcontrol,
347 347
348/* known working input slots (0-4) */ 348/* known working input slots (0-4) */
349#define MAYA_LINE_IN 1 /* in-2 */ 349#define MAYA_LINE_IN 1 /* in-2 */
350#define MAYA_MIC_IN 4 /* in-5 */ 350#define MAYA_MIC_IN 3 /* in-4 */
351 351
352static void wm8776_select_input(struct snd_maya44 *chip, int idx, int line) 352static void wm8776_select_input(struct snd_maya44 *chip, int idx, int line)
353{ 353{
@@ -393,8 +393,8 @@ static int maya_rec_src_put(struct snd_kcontrol *kcontrol,
393 int changed; 393 int changed;
394 394
395 mutex_lock(&chip->mutex); 395 mutex_lock(&chip->mutex);
396 changed = maya_set_gpio_bits(chip->ice, GPIO_MIC_RELAY, 396 changed = maya_set_gpio_bits(chip->ice, 1 << GPIO_MIC_RELAY,
397 sel ? GPIO_MIC_RELAY : 0); 397 sel ? (1 << GPIO_MIC_RELAY) : 0);
398 wm8776_select_input(chip, 0, sel ? MAYA_MIC_IN : MAYA_LINE_IN); 398 wm8776_select_input(chip, 0, sel ? MAYA_MIC_IN : MAYA_LINE_IN);
399 mutex_unlock(&chip->mutex); 399 mutex_unlock(&chip->mutex);
400 return changed; 400 return changed;
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
index b64e78139d63..b56e33676780 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -849,6 +849,7 @@ struct snd_m3 {
849 struct snd_kcontrol *master_switch; 849 struct snd_kcontrol *master_switch;
850 struct snd_kcontrol *master_volume; 850 struct snd_kcontrol *master_volume;
851 struct tasklet_struct hwvol_tq; 851 struct tasklet_struct hwvol_tq;
852 unsigned int in_suspend;
852 853
853#ifdef CONFIG_PM 854#ifdef CONFIG_PM
854 u16 *suspend_mem; 855 u16 *suspend_mem;
@@ -884,6 +885,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_m3_ids) = {
884MODULE_DEVICE_TABLE(pci, snd_m3_ids); 885MODULE_DEVICE_TABLE(pci, snd_m3_ids);
885 886
886static struct snd_pci_quirk m3_amp_quirk_list[] __devinitdata = { 887static struct snd_pci_quirk m3_amp_quirk_list[] __devinitdata = {
888 SND_PCI_QUIRK(0x0E11, 0x0094, "Compaq Evo N600c", 0x0c),
887 SND_PCI_QUIRK(0x10f7, 0x833e, "Panasonic CF-28", 0x0d), 889 SND_PCI_QUIRK(0x10f7, 0x833e, "Panasonic CF-28", 0x0d),
888 SND_PCI_QUIRK(0x10f7, 0x833d, "Panasonic CF-72", 0x0d), 890 SND_PCI_QUIRK(0x10f7, 0x833d, "Panasonic CF-72", 0x0d),
889 SND_PCI_QUIRK(0x1033, 0x80f1, "NEC LM800J/7", 0x03), 891 SND_PCI_QUIRK(0x1033, 0x80f1, "NEC LM800J/7", 0x03),
@@ -1613,6 +1615,11 @@ static void snd_m3_update_hw_volume(unsigned long private_data)
1613 outb(0x88, chip->iobase + SHADOW_MIX_REG_MASTER); 1615 outb(0x88, chip->iobase + SHADOW_MIX_REG_MASTER);
1614 outb(0x88, chip->iobase + HW_VOL_COUNTER_MASTER); 1616 outb(0x88, chip->iobase + HW_VOL_COUNTER_MASTER);
1615 1617
1618 /* Ignore spurious HV interrupts during suspend / resume, this avoids
1619 mistaking them for a mute button press. */
1620 if (chip->in_suspend)
1621 return;
1622
1616 if (!chip->master_switch || !chip->master_volume) 1623 if (!chip->master_switch || !chip->master_volume)
1617 return; 1624 return;
1618 1625
@@ -2424,6 +2431,7 @@ static int m3_suspend(struct pci_dev *pci, pm_message_t state)
2424 if (chip->suspend_mem == NULL) 2431 if (chip->suspend_mem == NULL)
2425 return 0; 2432 return 0;
2426 2433
2434 chip->in_suspend = 1;
2427 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); 2435 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
2428 snd_pcm_suspend_all(chip->pcm); 2436 snd_pcm_suspend_all(chip->pcm);
2429 snd_ac97_suspend(chip->ac97); 2437 snd_ac97_suspend(chip->ac97);
@@ -2497,6 +2505,7 @@ static int m3_resume(struct pci_dev *pci)
2497 snd_m3_hv_init(chip); 2505 snd_m3_hv_init(chip);
2498 2506
2499 snd_power_change_state(card, SNDRV_CTL_POWER_D0); 2507 snd_power_change_state(card, SNDRV_CTL_POWER_D0);
2508 chip->in_suspend = 0;
2500 return 0; 2509 return 0;
2501} 2510}
2502#endif /* CONFIG_PM */ 2511#endif /* CONFIG_PM */
diff --git a/sound/pci/oxygen/xonar_cs43xx.c b/sound/pci/oxygen/xonar_cs43xx.c
index 16c226bfcd2b..7c4986b27f2b 100644
--- a/sound/pci/oxygen/xonar_cs43xx.c
+++ b/sound/pci/oxygen/xonar_cs43xx.c
@@ -56,6 +56,7 @@
56#include <sound/pcm_params.h> 56#include <sound/pcm_params.h>
57#include <sound/tlv.h> 57#include <sound/tlv.h>
58#include "xonar.h" 58#include "xonar.h"
59#include "cm9780.h"
59#include "cs4398.h" 60#include "cs4398.h"
60#include "cs4362a.h" 61#include "cs4362a.h"
61 62
@@ -172,6 +173,8 @@ static void xonar_d1_init(struct oxygen *chip)
172 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, 173 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA,
173 GPIO_D1_FRONT_PANEL | GPIO_D1_INPUT_ROUTE); 174 GPIO_D1_FRONT_PANEL | GPIO_D1_INPUT_ROUTE);
174 175
176 oxygen_ac97_set_bits(chip, 0, CM9780_JACK, CM9780_FMIC2MIC);
177
175 xonar_init_cs53x1(chip); 178 xonar_init_cs53x1(chip);
176 xonar_enable_output(chip); 179 xonar_enable_output(chip);
177 180
diff --git a/sound/soc/txx9/txx9aclc-ac97.c b/sound/soc/txx9/txx9aclc-ac97.c
index 612e18b4bf4e..0ec20b68e8cb 100644
--- a/sound/soc/txx9/txx9aclc-ac97.c
+++ b/sound/soc/txx9/txx9aclc-ac97.c
@@ -254,3 +254,4 @@ module_exit(txx9aclc_ac97_exit);
254MODULE_AUTHOR("Atsushi Nemoto <anemo@mba.ocn.ne.jp>"); 254MODULE_AUTHOR("Atsushi Nemoto <anemo@mba.ocn.ne.jp>");
255MODULE_DESCRIPTION("TXx9 ACLC AC97 driver"); 255MODULE_DESCRIPTION("TXx9 ACLC AC97 driver");
256MODULE_LICENSE("GPL"); 256MODULE_LICENSE("GPL");
257MODULE_ALIAS("platform:txx9aclc-ac97");
diff --git a/sound/soc/txx9/txx9aclc-generic.c b/sound/soc/txx9/txx9aclc-generic.c
index 3175de9a92cb..95b17f731aec 100644
--- a/sound/soc/txx9/txx9aclc-generic.c
+++ b/sound/soc/txx9/txx9aclc-generic.c
@@ -96,3 +96,4 @@ module_exit(txx9aclc_generic_exit);
96MODULE_AUTHOR("Atsushi Nemoto <anemo@mba.ocn.ne.jp>"); 96MODULE_AUTHOR("Atsushi Nemoto <anemo@mba.ocn.ne.jp>");
97MODULE_DESCRIPTION("Generic TXx9 ACLC ALSA SoC audio driver"); 97MODULE_DESCRIPTION("Generic TXx9 ACLC ALSA SoC audio driver");
98MODULE_LICENSE("GPL"); 98MODULE_LICENSE("GPL");
99MODULE_ALIAS("platform:txx9aclc-generic");
diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c
index 9b3c20f42f98..613c9cc90570 100644
--- a/tools/perf/util/trace-event-parse.c
+++ b/tools/perf/util/trace-event-parse.c
@@ -1925,7 +1925,7 @@ void *raw_field_ptr(struct event *event, const char *name, void *data)
1925 if (!field) 1925 if (!field)
1926 return NULL; 1926 return NULL;
1927 1927
1928 if (field->flags & FIELD_IS_STRING) { 1928 if (field->flags & FIELD_IS_DYNAMIC) {
1929 int offset; 1929 int offset;
1930 1930
1931 offset = *(int *)(data + field->offset); 1931 offset = *(int *)(data + field->offset);
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 5a0cd194dce0..c82ae2492634 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -341,7 +341,11 @@ static void kvm_mmu_notifier_release(struct mmu_notifier *mn,
341 struct mm_struct *mm) 341 struct mm_struct *mm)
342{ 342{
343 struct kvm *kvm = mmu_notifier_to_kvm(mn); 343 struct kvm *kvm = mmu_notifier_to_kvm(mn);
344 int idx;
345
346 idx = srcu_read_lock(&kvm->srcu);
344 kvm_arch_flush_shadow(kvm); 347 kvm_arch_flush_shadow(kvm);
348 srcu_read_unlock(&kvm->srcu, idx);
345} 349}
346 350
347static const struct mmu_notifier_ops kvm_mmu_notifier_ops = { 351static const struct mmu_notifier_ops kvm_mmu_notifier_ops = {
@@ -648,7 +652,7 @@ skip_lpage:
648 652
649 /* Allocate page dirty bitmap if needed */ 653 /* Allocate page dirty bitmap if needed */
650 if ((new.flags & KVM_MEM_LOG_DIRTY_PAGES) && !new.dirty_bitmap) { 654 if ((new.flags & KVM_MEM_LOG_DIRTY_PAGES) && !new.dirty_bitmap) {
651 unsigned dirty_bytes = ALIGN(npages, BITS_PER_LONG) / 8; 655 unsigned long dirty_bytes = kvm_dirty_bitmap_bytes(&new);
652 656
653 new.dirty_bitmap = vmalloc(dirty_bytes); 657 new.dirty_bitmap = vmalloc(dirty_bytes);
654 if (!new.dirty_bitmap) 658 if (!new.dirty_bitmap)
@@ -768,7 +772,7 @@ int kvm_get_dirty_log(struct kvm *kvm,
768{ 772{
769 struct kvm_memory_slot *memslot; 773 struct kvm_memory_slot *memslot;
770 int r, i; 774 int r, i;
771 int n; 775 unsigned long n;
772 unsigned long any = 0; 776 unsigned long any = 0;
773 777
774 r = -EINVAL; 778 r = -EINVAL;
@@ -780,7 +784,7 @@ int kvm_get_dirty_log(struct kvm *kvm,
780 if (!memslot->dirty_bitmap) 784 if (!memslot->dirty_bitmap)
781 goto out; 785 goto out;
782 786
783 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 787 n = kvm_dirty_bitmap_bytes(memslot);
784 788
785 for (i = 0; !any && i < n/sizeof(long); ++i) 789 for (i = 0; !any && i < n/sizeof(long); ++i)
786 any = memslot->dirty_bitmap[i]; 790 any = memslot->dirty_bitmap[i];
@@ -1186,10 +1190,13 @@ void mark_page_dirty(struct kvm *kvm, gfn_t gfn)
1186 memslot = gfn_to_memslot_unaliased(kvm, gfn); 1190 memslot = gfn_to_memslot_unaliased(kvm, gfn);
1187 if (memslot && memslot->dirty_bitmap) { 1191 if (memslot && memslot->dirty_bitmap) {
1188 unsigned long rel_gfn = gfn - memslot->base_gfn; 1192 unsigned long rel_gfn = gfn - memslot->base_gfn;
1193 unsigned long *p = memslot->dirty_bitmap +
1194 rel_gfn / BITS_PER_LONG;
1195 int offset = rel_gfn % BITS_PER_LONG;
1189 1196
1190 /* avoid RMW */ 1197 /* avoid RMW */
1191 if (!generic_test_le_bit(rel_gfn, memslot->dirty_bitmap)) 1198 if (!generic_test_le_bit(offset, p))
1192 generic___set_le_bit(rel_gfn, memslot->dirty_bitmap); 1199 generic___set_le_bit(offset, p);
1193 } 1200 }
1194} 1201}
1195 1202