aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-12-25 07:51:46 -0500
committerIngo Molnar <mingo@elte.hu>2008-12-25 07:51:46 -0500
commit0b271ef4521756010675b1611bef20fd3096790d (patch)
tree2c9d22a2c74122a9904e533df27f41d63ffef394
parentb19b3c74c7bbec45a848631b8f970ac110665a01 (diff)
parent4a6908a3a050aacc9c3a2f36b276b46c0629ad91 (diff)
Merge commit 'v2.6.28' into core/core
-rw-r--r--Documentation/DMA-API.txt8
-rw-r--r--Documentation/arm/mem_alignment2
-rw-r--r--Documentation/cpu-freq/user-guide.txt12
-rw-r--r--Documentation/filesystems/ocfs2.txt3
-rw-r--r--Documentation/filesystems/proc.txt27
-rw-r--r--Documentation/filesystems/ramfs-rootfs-initramfs.txt12
-rw-r--r--Documentation/input/input-programming.txt3
-rw-r--r--Documentation/kernel-parameters.txt11
-rw-r--r--Documentation/local_ops.txt2
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt7
-rw-r--r--Documentation/spi/spi-summary2
-rw-r--r--Documentation/tracers/mmiotrace.txt6
-rw-r--r--Documentation/usb/gadget_serial.txt4
-rw-r--r--Documentation/usb/proc_usb_info.txt6
-rw-r--r--Documentation/usb/usbmon.txt12
-rw-r--r--MAINTAINERS28
-rw-r--r--Makefile4
-rw-r--r--arch/Kconfig2
-rw-r--r--arch/alpha/kernel/pci.c2
-rw-r--r--arch/alpha/kernel/smp.c6
-rw-r--r--arch/alpha/kernel/traps.c4
-rw-r--r--arch/arm/common/sa1111.c2
-rw-r--r--arch/arm/configs/corgi_defconfig2
-rw-r--r--arch/arm/include/asm/bitops.h16
-rw-r--r--arch/arm/include/asm/processor.h2
-rw-r--r--arch/arm/kernel/armksyms.c4
-rw-r--r--arch/arm/kernel/traps.c1
-rw-r--r--arch/arm/mach-omap1/io.c2
-rw-r--r--arch/arm/mach-pxa/include/mach/reset.h5
-rw-r--r--arch/arm/mach-pxa/mioa701.c2
-rw-r--r--arch/arm/mach-pxa/mioa701_bootresume.S1
-rw-r--r--arch/arm/mach-pxa/palmtx.c150
-rw-r--r--arch/arm/mach-pxa/pcm990-baseboard.c1
-rw-r--r--arch/arm/mach-s3c2410/include/mach/spi-gpio.h1
-rw-r--r--arch/arm/mm/alignment.c26
-rw-r--r--arch/arm/mm/fault.c1
-rw-r--r--arch/arm/plat-omap/gpio.c5
-rw-r--r--arch/arm/plat-omap/include/mach/omapfb.h4
-rw-r--r--arch/arm/plat-omap/include/mach/pm.h2
-rw-r--r--arch/arm/plat-omap/sram.c8
-rw-r--r--arch/arm/plat-orion/pcie.c2
-rw-r--r--arch/avr32/boards/favr-32/flash.c2
-rw-r--r--arch/avr32/boards/favr-32/setup.c8
-rw-r--r--arch/avr32/boot/images/Makefile2
-rw-r--r--arch/avr32/configs/atstk1006_defconfig134
-rw-r--r--arch/avr32/mach-at32ap/at32ap700x.c8
-rw-r--r--arch/frv/kernel/sys_frv.c17
-rw-r--r--arch/ia64/configs/generic_defconfig218
-rw-r--r--arch/ia64/hp/sim/Kconfig1
-rw-r--r--arch/ia64/include/asm/paravirt_privop.h1
-rw-r--r--arch/ia64/include/asm/ptrace.h2
-rw-r--r--arch/ia64/kernel/topology.c4
-rw-r--r--arch/ia64/kvm/Makefile2
-rw-r--r--arch/ia64/kvm/optvfault.S11
-rw-r--r--arch/ia64/sn/kernel/io_init.c2
-rw-r--r--arch/ia64/sn/kernel/irq.c9
-rw-r--r--arch/ia64/sn/kernel/setup.c9
-rw-r--r--arch/m32r/kernel/head.S4
-rw-r--r--arch/m32r/kernel/vmlinux.lds.S1
-rw-r--r--arch/m68k/configs/amiga_defconfig126
-rw-r--r--arch/m68k/configs/apollo_defconfig115
-rw-r--r--arch/m68k/configs/atari_defconfig130
-rw-r--r--arch/m68k/configs/bvme6000_defconfig112
-rw-r--r--arch/m68k/configs/hp300_defconfig115
-rw-r--r--arch/m68k/configs/mac_defconfig125
-rw-r--r--arch/m68k/configs/multi_defconfig129
-rw-r--r--arch/m68k/configs/mvme147_defconfig112
-rw-r--r--arch/m68k/configs/mvme16x_defconfig112
-rw-r--r--arch/m68k/configs/q40_defconfig125
-rw-r--r--arch/m68k/configs/sun3_defconfig124
-rw-r--r--arch/m68k/configs/sun3x_defconfig115
-rw-r--r--arch/mips/Kconfig.debug2
-rw-r--r--arch/mips/configs/fulong_defconfig921
-rw-r--r--arch/mips/configs/ip22_defconfig518
-rw-r--r--arch/mips/configs/ip32_defconfig1060
-rw-r--r--arch/mips/configs/malta_defconfig631
-rw-r--r--arch/mips/include/asm/asmmacro.h10
-rw-r--r--arch/mips/include/asm/bug.h29
-rw-r--r--arch/mips/include/asm/byteorder.h5
-rw-r--r--arch/mips/include/asm/elf.h2
-rw-r--r--arch/mips/include/asm/pci.h5
-rw-r--r--arch/mips/include/asm/ptrace.h4
-rw-r--r--arch/mips/kernel/scall32-o32.S7
-rw-r--r--arch/mips/kernel/scall64-n32.S2
-rw-r--r--arch/mips/kernel/scall64-o32.S16
-rw-r--r--arch/mips/kernel/vpe.c2
-rw-r--r--arch/mips/mm/dma-default.c3
-rw-r--r--arch/mips/mti-malta/Makefile5
-rw-r--r--arch/mips/mti-malta/malta-mtd.c63
-rw-r--r--arch/mips/mti-malta/malta-platform.c107
-rw-r--r--arch/mips/pci/pci.c24
-rw-r--r--arch/mn10300/kernel/entry.S3
-rw-r--r--arch/mn10300/kernel/gdb-io-serial.c2
-rw-r--r--arch/mn10300/kernel/gdb-stub.c24
-rw-r--r--arch/mn10300/kernel/mn10300-serial.c5
-rw-r--r--arch/mn10300/kernel/module.c35
-rw-r--r--arch/mn10300/kernel/setup.c2
-rw-r--r--arch/mn10300/kernel/vmlinux.lds.S22
-rw-r--r--arch/parisc/include/asm/parisc-device.h4
-rw-r--r--arch/parisc/include/asm/posix_types.h3
-rw-r--r--arch/parisc/include/asm/ptrace.h2
-rw-r--r--arch/parisc/include/asm/tlbflush.h5
-rw-r--r--arch/parisc/kernel/drivers.c6
-rw-r--r--arch/parisc/kernel/traps.c43
-rw-r--r--arch/powerpc/boot/Makefile1
-rw-r--r--arch/powerpc/boot/dts/mpc832x_rdb.dts4
-rw-r--r--arch/powerpc/boot/dts/mpc8349emitx.dts16
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds.dts2
-rw-r--r--arch/powerpc/configs/40x/virtex_defconfig1176
-rw-r--r--arch/powerpc/configs/44x/virtex5_defconfig234
-rw-r--r--arch/powerpc/configs/52xx/cm5200_defconfig169
-rw-r--r--arch/powerpc/configs/52xx/lite5200b_defconfig206
-rw-r--r--arch/powerpc/configs/52xx/motionpro_defconfig168
-rw-r--r--arch/powerpc/configs/52xx/pcm030_defconfig182
-rw-r--r--arch/powerpc/configs/52xx/tqm5200_defconfig180
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig2
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig2
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig573
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig2
-rw-r--r--arch/powerpc/configs/ppc40x_defconfig92
-rw-r--r--arch/powerpc/configs/ppc44x_defconfig92
-rw-r--r--arch/powerpc/include/asm/kvm_ppc.h2
-rw-r--r--arch/powerpc/include/asm/mmu-hash64.h1
-rw-r--r--arch/powerpc/include/asm/ptrace.h2
-rw-r--r--arch/powerpc/kernel/cpu_setup_44x.S8
-rw-r--r--arch/powerpc/kernel/cputable.c3
-rw-r--r--arch/powerpc/kernel/dma.c1
-rw-r--r--arch/powerpc/kernel/entry_64.S8
-rw-r--r--arch/powerpc/kernel/misc_32.S5
-rw-r--r--arch/powerpc/kernel/prom_parse.c7
-rw-r--r--arch/powerpc/kernel/sysfs.c2
-rw-r--r--arch/powerpc/kvm/44x_tlb.c8
-rw-r--r--arch/powerpc/kvm/powerpc.c1
-rw-r--r--arch/powerpc/lib/rheap.c1
-rw-r--r--arch/powerpc/mm/40x_mmu.c16
-rw-r--r--arch/powerpc/mm/hugetlbpage.c5
-rw-r--r--arch/powerpc/mm/numa.c130
-rw-r--r--arch/powerpc/platforms/cell/axon_msi.c39
-rw-r--r--arch/powerpc/platforms/cell/smp.c9
-rw-r--r--arch/powerpc/platforms/cell/spufs/file.c3
-rw-r--r--arch/powerpc/sysdev/bestcomm/Kconfig9
-rw-r--r--arch/powerpc/sysdev/mpic.c11
-rw-r--r--arch/powerpc/sysdev/xilinx_intc.c4
-rw-r--r--arch/s390/defconfig74
-rw-r--r--arch/s390/include/asm/pgtable.h2
-rw-r--r--arch/s390/include/asm/ptrace.h4
-rw-r--r--arch/s390/include/asm/syscall.h28
-rw-r--r--arch/s390/kernel/asm-offsets.c2
-rw-r--r--arch/s390/kernel/compat_signal.c2
-rw-r--r--arch/s390/kernel/entry.S21
-rw-r--r--arch/s390/kernel/entry64.S23
-rw-r--r--arch/s390/kernel/init_task.c2
-rw-r--r--arch/s390/kernel/ptrace.c2
-rw-r--r--arch/s390/kernel/signal.c6
-rw-r--r--arch/s390/kernel/time.c13
-rw-r--r--arch/s390/kernel/vmlinux.lds.S3
-rw-r--r--arch/s390/kvm/sigp.c5
-rw-r--r--arch/sh/Kconfig2
-rw-r--r--arch/sparc/include/asm/bitops_32.h1
-rw-r--r--arch/sparc/include/asm/ptrace_32.h10
-rw-r--r--arch/sparc/include/asm/ptrace_64.h11
-rw-r--r--arch/sparc/kernel/cpu.c2
-rw-r--r--arch/sparc/kernel/head.S2
-rw-r--r--arch/sparc/kernel/smp.c4
-rw-r--r--arch/sparc/kernel/sun4d_smp.c4
-rw-r--r--arch/sparc/kernel/sun4m_smp.c2
-rw-r--r--arch/sparc/kernel/trampoline.S4
-rw-r--r--arch/sparc/kernel/vmlinux.lds.S1
-rw-r--r--arch/sparc/mm/srmmu.c14
-rw-r--r--arch/sparc64/kernel/ptrace.c2
-rw-r--r--arch/sparc64/kernel/smp.c4
-rw-r--r--arch/sparc64/kernel/visemul.c6
-rw-r--r--arch/sparc64/lib/user_fixup.c2
-rw-r--r--arch/sparc64/mm/init.c2
-rw-r--r--arch/um/drivers/mconsole_kern.c4
-rw-r--r--arch/x86/Kconfig.cpu1
-rw-r--r--arch/x86/boot/tty.c2
-rw-r--r--arch/x86/include/asm/amd_iommu_types.h24
-rw-r--r--arch/x86/include/asm/dma-mapping.h6
-rw-r--r--arch/x86/include/asm/ds.h6
-rw-r--r--arch/x86/include/asm/pci_64.h14
-rw-r--r--arch/x86/include/asm/ptrace.h2
-rw-r--r--arch/x86/include/asm/topology.h2
-rw-r--r--arch/x86/include/asm/vmi.h8
-rw-r--r--arch/x86/kernel/Makefile2
-rw-r--r--arch/x86/kernel/amd_iommu.c54
-rw-r--r--arch/x86/kernel/amd_iommu_init.c7
-rw-r--r--arch/x86/kernel/apic.c2
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k8.c18
-rw-r--r--arch/x86/kernel/cpu/cpufreq/powernow-k8.h17
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_64.c3
-rw-r--r--arch/x86/kernel/ds.c88
-rw-r--r--arch/x86/kernel/i387.c2
-rw-r--r--arch/x86/kernel/io_apic.c48
-rw-r--r--arch/x86/kernel/kvmclock.c2
-rw-r--r--arch/x86/kernel/microcode_core.c19
-rw-r--r--arch/x86/kernel/microcode_intel.c6
-rw-r--r--arch/x86/kernel/mpparse.c3
-rw-r--r--arch/x86/kernel/paravirt-spinlocks.c3
-rw-r--r--arch/x86/kernel/pci-calgary_64.c2
-rw-r--r--arch/x86/kernel/pci-gart_64.c6
-rw-r--r--arch/x86/kernel/setup.c12
-rw-r--r--arch/x86/kernel/smpboot.c2
-rw-r--r--arch/x86/kernel/vmi_32.c16
-rw-r--r--arch/x86/kernel/xsave.c2
-rw-r--r--arch/x86/kvm/mmu.c2
-rw-r--r--arch/x86/kvm/paging_tmpl.h1
-rw-r--r--arch/x86/kvm/vmx.c4
-rw-r--r--arch/x86/oprofile/nmi_int.c5
-rw-r--r--arch/x86/oprofile/op_model_ppro.c6
-rw-r--r--arch/x86/pci/fixup.c25
-rw-r--r--arch/x86/xen/mmu.c21
-rw-r--r--arch/x86/xen/smp.c2
-rw-r--r--arch/x86/xen/xen-ops.h2
-rw-r--r--block/blk-barrier.c4
-rw-r--r--block/blk-core.c26
-rw-r--r--block/blk-map.c2
-rw-r--r--block/blk-settings.c4
-rw-r--r--block/bsg.c2
-rw-r--r--block/compat_ioctl.c31
-rw-r--r--block/elevator.c7
-rw-r--r--block/genhd.c2
-rw-r--r--block/scsi_ioctl.c2
-rw-r--r--crypto/Kconfig36
-rw-r--r--crypto/Makefile18
-rw-r--r--crypto/async_tx/async_xor.c11
-rw-r--r--drivers/acpi/blacklist.c401
-rw-r--r--drivers/acpi/bus.c8
-rw-r--r--drivers/acpi/ec.c3
-rw-r--r--drivers/acpi/osl.c104
-rw-r--r--drivers/acpi/scan.c10
-rw-r--r--drivers/acpi/sleep/main.c40
-rw-r--r--drivers/acpi/toshiba_acpi.c56
-rw-r--r--drivers/acpi/utilities/utglobal.c2
-rw-r--r--drivers/acpi/utils.c16
-rw-r--r--drivers/ata/Kconfig44
-rw-r--r--drivers/ata/ata_piix.c22
-rw-r--r--drivers/ata/libata-core.c74
-rw-r--r--drivers/ata/pata_hpt366.c16
-rw-r--r--drivers/ata/pata_ninja32.c9
-rw-r--r--drivers/ata/pata_rb532_cf.c15
-rw-r--r--drivers/ata/pata_sis.c1
-rw-r--r--drivers/atm/horizon.c2
-rw-r--r--drivers/block/cciss.c5
-rw-r--r--drivers/block/pktcdvd.c6
-rw-r--r--drivers/block/xsysace.c23
-rw-r--r--drivers/cdrom/cdrom.c16
-rw-r--r--drivers/char/agp/uninorth-agp.c2
-rw-r--r--drivers/char/cp437.uni12
-rw-r--r--drivers/char/istallion.c4
-rw-r--r--drivers/char/serial167.c2
-rw-r--r--drivers/char/tty_io.c15
-rw-r--r--drivers/char/vt.c2
-rw-r--r--drivers/char/xilinx_hwicap/buffer_icap.c3
-rw-r--r--drivers/char/xilinx_hwicap/buffer_icap.h3
-rw-r--r--drivers/char/xilinx_hwicap/fifo_icap.c3
-rw-r--r--drivers/char/xilinx_hwicap/fifo_icap.h3
-rw-r--r--drivers/char/xilinx_hwicap/xilinx_hwicap.c12
-rw-r--r--drivers/char/xilinx_hwicap/xilinx_hwicap.h3
-rw-r--r--drivers/crypto/talitos.c4
-rw-r--r--drivers/dma/dmaengine.c3
-rw-r--r--drivers/dma/ioat_dma.c5
-rw-r--r--drivers/dma/iop-adma.c16
-rw-r--r--drivers/dma/mv_xor.c15
-rw-r--r--drivers/edac/edac_device.c12
-rw-r--r--drivers/edac/i82875p_edac.c14
-rw-r--r--drivers/firewire/fw-ohci.c11
-rw-r--r--drivers/firewire/fw-sbp2.c5
-rw-r--r--drivers/firewire/fw-transaction.c3
-rw-r--r--drivers/firewire/fw-transaction.h2
-rw-r--r--drivers/gpu/drm/drm_drv.c2
-rw-r--r--drivers/gpu/drm/drm_irq.c4
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c22
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h28
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c722
-rw-r--r--drivers/gpu/drm/i915/i915_gem_proc.c5
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c7
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c293
-rw-r--r--drivers/gpu/drm/i915/i915_opregion.c18
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h1
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c6
-rw-r--r--drivers/gpu/drm/mga/mga_dma.c8
-rw-r--r--drivers/gpu/drm/mga/mga_irq.c5
-rw-r--r--drivers/gpu/drm/r128/r128_drv.c6
-rw-r--r--drivers/gpu/drm/r128/r128_drv.h1
-rw-r--r--drivers/gpu/drm/r128/r128_irq.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_cp.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.h1
-rw-r--r--drivers/gpu/drm/radeon/radeon_irq.c13
-rw-r--r--drivers/gpu/drm/via/via_irq.c1
-rw-r--r--drivers/gpu/drm/via/via_map.c11
-rw-r--r--drivers/hid/hid-apple.c6
-rw-r--r--drivers/hid/hid-core.c14
-rw-r--r--drivers/hid/hid-ids.h1
-rw-r--r--drivers/hid/hid-pl.c2
-rw-r--r--drivers/hid/usbhid/hid-core.c18
-rw-r--r--drivers/hid/usbhid/usbhid.h1
-rw-r--r--drivers/hwmon/applesmc.c1
-rw-r--r--drivers/i2c/busses/i2c-cpm.c1
-rw-r--r--drivers/i2c/busses/i2c-highlander.c4
-rw-r--r--drivers/i2c/busses/i2c-parport.c4
-rw-r--r--drivers/i2c/busses/i2c-pmcmsp.c2
-rw-r--r--drivers/i2c/busses/i2c-s3c2410.c18
-rw-r--r--drivers/i2c/chips/isp1301_omap.c65
-rw-r--r--drivers/i2c/i2c-core.c2
-rw-r--r--drivers/ide/Kconfig14
-rw-r--r--drivers/ide/alim15x3.c2
-rw-r--r--drivers/ide/amd74xx.c11
-rw-r--r--drivers/ide/cs5530.c3
-rw-r--r--drivers/ide/icside.c4
-rw-r--r--drivers/ide/ide-io.c24
-rw-r--r--drivers/ide/ide-iops.c9
-rw-r--r--drivers/ide/ide-probe.c3
-rw-r--r--drivers/ide/pmac.c30
-rw-r--r--drivers/ide/sc1200.c3
-rw-r--r--drivers/ide/sgiioc4.c6
-rw-r--r--drivers/ieee1394/highlevel.c25
-rw-r--r--drivers/ieee1394/hosts.h4
-rw-r--r--drivers/ieee1394/nodemgr.c8
-rw-r--r--drivers/ieee1394/sbp2.c14
-rw-r--r--drivers/infiniband/hw/ehca/ehca_classes.h4
-rw-r--r--drivers/infiniband/hw/ehca/ehca_main.c3
-rw-r--r--drivers/infiniband/hw/ehca/ehca_qp.c26
-rw-r--r--drivers/infiniband/hw/ehca/ehca_reqs.c51
-rw-r--r--drivers/infiniband/hw/mlx4/cq.c5
-rw-r--r--drivers/input/ff-memless.c5
-rw-r--r--drivers/input/keyboard/atkbd.c27
-rw-r--r--drivers/input/misc/cm109.c37
-rw-r--r--drivers/input/mouse/hgpk.c2
-rw-r--r--drivers/input/serio/i8042-x86ia64io.h14
-rw-r--r--drivers/input/tablet/wacom.h13
-rw-r--r--drivers/input/tablet/wacom_sys.c228
-rw-r--r--drivers/input/tablet/wacom_wac.c160
-rw-r--r--drivers/input/tablet/wacom_wac.h4
-rw-r--r--drivers/input/touchscreen/elo.c2
-rw-r--r--drivers/input/xen-kbdfront.c6
-rw-r--r--drivers/isdn/hardware/avm/b1isa.c6
-rw-r--r--drivers/isdn/hisax/config.c16
-rw-r--r--drivers/isdn/hysdn/hysdn_net.c4
-rw-r--r--drivers/macintosh/rack-meter.c10
-rw-r--r--drivers/md/bitmap.c22
-rw-r--r--drivers/md/dm-table.c2
-rw-r--r--drivers/media/dvb/b2c2/Kconfig2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-fe-tuner.c2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-i2c.c6
-rw-r--r--drivers/media/dvb/bt8xx/Kconfig2
-rw-r--r--drivers/media/dvb/dm1105/dm1105.c2
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c5
-rw-r--r--drivers/media/dvb/dvb-usb/Kconfig46
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c8
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700.h5
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_core.c16
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_devices.c143
-rw-r--r--drivers/media/dvb/dvb-usb/usb-urb.c19
-rw-r--r--drivers/media/dvb/siano/sms-cards.c2
-rw-r--r--drivers/media/dvb/ttpci/Kconfig2
-rw-r--r--drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c15
-rw-r--r--drivers/media/dvb/ttusb-dec/ttusb_dec.c7
-rw-r--r--drivers/media/video/compat_ioctl32.c2
-rw-r--r--drivers/media/video/cx18/Kconfig2
-rw-r--r--drivers/media/video/cx23885/Kconfig4
-rw-r--r--drivers/media/video/cx88/Kconfig2
-rw-r--r--drivers/media/video/em28xx/em28xx-audio.c33
-rw-r--r--drivers/media/video/em28xx/em28xx-core.c58
-rw-r--r--drivers/media/video/em28xx/em28xx-i2c.c10
-rw-r--r--drivers/media/video/em28xx/em28xx-video.c143
-rw-r--r--drivers/media/video/em28xx/em28xx.h6
-rw-r--r--drivers/media/video/gspca/conex.c3
-rw-r--r--drivers/media/video/gspca/finepix.c8
-rw-r--r--drivers/media/video/gspca/gspca.c60
-rw-r--r--drivers/media/video/gspca/gspca.h6
-rw-r--r--drivers/media/video/gspca/pac7311.c3
-rw-r--r--drivers/media/video/gspca/spca501.c3
-rw-r--r--drivers/media/video/gspca/spca505.c4
-rw-r--r--drivers/media/video/gspca/spca561.c3
-rw-r--r--drivers/media/video/gspca/vc032x.c3
-rw-r--r--drivers/media/video/gspca/zc3xx.c3
-rw-r--r--drivers/media/video/pvrusb2/Kconfig2
-rw-r--r--drivers/media/video/s2255drv.c2
-rw-r--r--drivers/media/video/saa7134/Kconfig4
-rw-r--r--drivers/message/fusion/mptscsih.c3
-rw-r--r--drivers/message/i2o/i2o_block.c2
-rw-r--r--drivers/message/i2o/iop.c1
-rw-r--r--drivers/misc/sgi-gru/grufault.c4
-rw-r--r--drivers/misc/sgi-gru/grufile.c2
-rw-r--r--drivers/misc/sony-laptop.c4
-rw-r--r--drivers/misc/thinkpad_acpi.c57
-rw-r--r--drivers/mtd/devices/m25p80.c28
-rw-r--r--drivers/mtd/maps/physmap.c26
-rw-r--r--drivers/mtd/nand/fsl_upm.c8
-rw-r--r--drivers/mtd/nand/pasemi_nand.c1
-rw-r--r--drivers/mtd/nand/pxa3xx_nand.c1
-rw-r--r--drivers/mtd/onenand/omap2.c17
-rw-r--r--drivers/mtd/ubi/eba.c2
-rw-r--r--drivers/mtd/ubi/scan.c2
-rw-r--r--drivers/mtd/ubi/wl.c3
-rw-r--r--drivers/net/Kconfig3
-rw-r--r--drivers/net/Makefile2
-rw-r--r--drivers/net/bnx2.c41
-rw-r--r--drivers/net/bnx2.h6
-rw-r--r--drivers/net/chelsio/sge.c4
-rw-r--r--drivers/net/e1000e/ich8lan.c9
-rw-r--r--drivers/net/e1000e/netdev.c1
-rw-r--r--drivers/net/enc28j60.c18
-rw-r--r--drivers/net/hp-plus.c2
-rw-r--r--drivers/net/igb/igb_main.c4
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c10
-rw-r--r--drivers/net/jme.h2
-rw-r--r--drivers/net/macvlan.c3
-rw-r--r--drivers/net/mlx4/main.c8
-rw-r--r--drivers/net/mlx4/mlx4.h1
-rw-r--r--drivers/net/mlx4/port.c39
-rw-r--r--drivers/net/netx-eth.c2
-rw-r--r--drivers/net/pcmcia/axnet_cs.c2
-rw-r--r--drivers/net/pcmcia/ibmtr_cs.c2
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c1
-rw-r--r--drivers/net/phy/mdio_bus.c5
-rw-r--r--drivers/net/phy/phy_device.c13
-rw-r--r--drivers/net/phy/vitesse.c64
-rw-r--r--drivers/net/ppp_generic.c28
-rw-r--r--drivers/net/pppol2tp.c1
-rw-r--r--drivers/net/sis900.c1
-rw-r--r--drivers/net/smc911x.c10
-rw-r--r--drivers/net/smc91x.c10
-rw-r--r--drivers/net/spider_net.c4
-rw-r--r--drivers/net/starfire.c5
-rw-r--r--drivers/net/sungem.c144
-rw-r--r--drivers/net/tlan.c23
-rw-r--r--drivers/net/wireless/ath5k/base.c35
-rw-r--r--drivers/net/wireless/ath5k/base.h1
-rw-r--r--drivers/net/wireless/ath5k/debug.c10
-rw-r--r--drivers/net/wireless/ath9k/beacon.c10
-rw-r--r--drivers/net/wireless/ath9k/recv.c19
-rw-r--r--drivers/net/wireless/ipw2200.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-sta.c24
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.c2
-rw-r--r--drivers/net/xen-netfront.c6
-rw-r--r--drivers/parport/parport_serial.c2
-rw-r--r--drivers/pci/hotplug/acpiphp.h2
-rw-r--r--drivers/pci/hotplug/acpiphp_core.c2
-rw-r--r--drivers/pci/hotplug/acpiphp_glue.c4
-rw-r--r--drivers/pci/hotplug/ibmphp_core.c5
-rw-r--r--drivers/pci/hotplug/pciehp_core.c23
-rw-r--r--drivers/pci/pci.c2
-rw-r--r--drivers/pci/pcie/aer/aerdrv_core.c2
-rw-r--r--drivers/pci/pcie/aspm.c29
-rw-r--r--drivers/pci/quirks.c17
-rw-r--r--drivers/pci/slot.c1
-rw-r--r--drivers/pcmcia/bfin_cf_pcmcia.c2
-rw-r--r--drivers/rapidio/rio-scan.c4
-rw-r--r--drivers/rapidio/rio.c2
-rw-r--r--drivers/rtc/rtc-ds1672.c6
-rw-r--r--drivers/rtc/rtc-isl1208.c7
-rw-r--r--drivers/rtc/rtc-max6900.c6
-rw-r--r--drivers/rtc/rtc-starfire.c66
-rw-r--r--drivers/rtc/rtc-twl4030.c2
-rw-r--r--drivers/s390/scsi/zfcp_erp.c7
-rw-r--r--drivers/s390/scsi/zfcp_fc.c7
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c20
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c2
-rw-r--r--drivers/scsi/aacraid/linit.c8
-rw-r--r--drivers/scsi/advansys.c4
-rw-r--r--drivers/scsi/device_handler/scsi_dh_hp_sw.c12
-rw-r--r--drivers/scsi/gdth.c12
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.c2
-rw-r--r--drivers/scsi/ibmvscsi/ibmvstgt.c16
-rw-r--r--drivers/scsi/libiscsi.c11
-rw-r--r--drivers/scsi/megaraid/megaraid_sas.c3
-rw-r--r--drivers/scsi/scsi_error.c3
-rw-r--r--drivers/scsi/scsi_lib.c25
-rw-r--r--drivers/scsi/sd.c2
-rw-r--r--drivers/scsi/sr.c2
-rw-r--r--drivers/scsi/stex.c2
-rw-r--r--drivers/serial/ioc3_serial.c6
-rw-r--r--drivers/serial/mpc52xx_uart.c4
-rw-r--r--drivers/serial/s3c2440.c2
-rw-r--r--drivers/serial/uartlite.c4
-rw-r--r--drivers/sh/maple/maple.c2
-rw-r--r--drivers/spi/au1550_spi.c26
-rw-r--r--drivers/spi/mpc52xx_psc_spi.c5
-rw-r--r--drivers/spi/spi_imx.c25
-rw-r--r--drivers/spi/spi_s3c24xx_gpio.c3
-rw-r--r--drivers/spi/spidev.c4
-rw-r--r--drivers/staging/Kconfig3
-rw-r--r--drivers/usb/class/usbtmc.c1
-rw-r--r--drivers/usb/core/driver.c4
-rw-r--r--drivers/usb/gadget/f_rndis.c4
-rw-r--r--drivers/usb/gadget/fsl_qe_udc.c3
-rw-r--r--drivers/usb/gadget/fsl_usb2_udc.c3
-rw-r--r--drivers/usb/gadget/pxa25x_udc.c14
-rw-r--r--drivers/usb/host/ehci-pci.c9
-rw-r--r--drivers/usb/host/ehci.h12
-rw-r--r--drivers/usb/serial/console.c1
-rw-r--r--drivers/usb/serial/ftdi_sio.c4
-rw-r--r--drivers/usb/serial/ftdi_sio.h6
-rw-r--r--drivers/usb/serial/option.c35
-rw-r--r--drivers/usb/serial/pl2303.c2
-rw-r--r--drivers/usb/serial/pl2303.h8
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c55
-rw-r--r--drivers/usb/storage/unusual_devs.h35
-rw-r--r--drivers/video/aty/radeon_accel.c291
-rw-r--r--drivers/video/aty/radeon_backlight.c2
-rw-r--r--drivers/video/aty/radeon_base.c22
-rw-r--r--drivers/video/aty/radeon_pm.c6
-rw-r--r--drivers/video/aty/radeonfb.h38
-rw-r--r--drivers/video/console/fbcon.c15
-rw-r--r--drivers/video/macfb.c74
-rw-r--r--drivers/video/mb862xx/mb862xxfb.c4
-rw-r--r--drivers/video/omap/Makefile1
-rw-r--r--drivers/video/omap/lcd_sx1.c327
-rw-r--r--drivers/video/omap/omapfb_main.c2
-rw-r--r--drivers/video/xen-fbfront.c6
-rw-r--r--drivers/video/xilinxfb.c5
-rw-r--r--drivers/w1/masters/Kconfig2
-rw-r--r--drivers/w1/w1_io.c4
-rw-r--r--drivers/watchdog/hpwdt.c5
-rw-r--r--drivers/watchdog/iTCO_vendor_support.c31
-rw-r--r--drivers/watchdog/iTCO_wdt.c164
-rw-r--r--drivers/watchdog/mtx-1_wdt.c4
-rw-r--r--fs/9p/fid.c4
-rw-r--r--fs/9p/v9fs.c2
-rw-r--r--fs/9p/vfs_dentry.c9
-rw-r--r--fs/9p/vfs_inode.c6
-rw-r--r--fs/block_dev.c21
-rw-r--r--fs/buffer.c1
-rw-r--r--fs/cifs/cifssmb.c3
-rw-r--r--fs/cifs/file.c77
-rw-r--r--fs/eventpoll.c85
-rw-r--r--fs/exec.c10
-rw-r--r--fs/exportfs/expfs.c4
-rw-r--r--fs/ext4/balloc.c4
-rw-r--r--fs/fcntl.c7
-rw-r--r--fs/inotify.c2
-rw-r--r--fs/ioctl.c12
-rw-r--r--fs/lockd/host.c3
-rw-r--r--fs/lockd/svc.c1
-rw-r--r--fs/nfsd/nfs4recover.c2
-rw-r--r--fs/nfsd/nfs4state.c1
-rw-r--r--fs/ntfs/debug.h8
-rw-r--r--fs/ocfs2/buffer_head_io.c15
-rw-r--r--fs/ocfs2/dlm/dlmfs.c4
-rw-r--r--fs/ocfs2/dlm/userdlm.h2
-rw-r--r--fs/ocfs2/dlmglue.c3
-rw-r--r--fs/ocfs2/ocfs2.h2
-rw-r--r--fs/ocfs2/ocfs2_fs.h8
-rw-r--r--fs/ocfs2/stack_user.c3
-rw-r--r--fs/ocfs2/xattr.c4
-rw-r--r--fs/proc/base.c2
-rw-r--r--fs/proc/task_mmu.c4
-rw-r--r--fs/ubifs/commit.c4
-rw-r--r--fs/ubifs/debug.c66
-rw-r--r--fs/ubifs/dir.c5
-rw-r--r--fs/ubifs/file.c91
-rw-r--r--fs/ubifs/journal.c8
-rw-r--r--fs/ubifs/key.h4
-rw-r--r--fs/ubifs/lpt_commit.c2
-rw-r--r--fs/ubifs/orphan.c28
-rw-r--r--fs/ubifs/recovery.c17
-rw-r--r--fs/ubifs/replay.c2
-rw-r--r--fs/ubifs/sb.c9
-rw-r--r--fs/ubifs/super.c70
-rw-r--r--fs/ubifs/tnc.c12
-rw-r--r--fs/ubifs/ubifs.h12
-rw-r--r--fs/udf/inode.c1
-rw-r--r--fs/xfs/xfs_rename.c2
-rw-r--r--include/acpi/acoutput.h2
-rw-r--r--include/acpi/acpredef.h4
-rw-r--r--include/acpi/platform/aclinux.h6
-rw-r--r--include/asm-generic/atomic.h2
-rw-r--r--include/asm-generic/audit_write.h2
-rw-r--r--include/asm-mn10300/uaccess.h2
-rw-r--r--include/drm/drmP.h1
-rw-r--r--include/linux/audit.h6
-rw-r--r--include/linux/blkdev.h10
-rw-r--r--include/linux/can/core.h2
-rw-r--r--include/linux/compat.h2
-rw-r--r--include/linux/fs.h33
-rw-r--r--include/linux/ftrace.h3
-rw-r--r--include/linux/highmem.h2
-rw-r--r--include/linux/ide.h8
-rw-r--r--include/linux/idr.h3
-rw-r--r--include/linux/irq.h11
-rw-r--r--include/linux/libata.h1
-rw-r--r--include/linux/memory.h2
-rw-r--r--include/linux/mlx4/device.h1
-rw-r--r--include/linux/netdevice.h7
-rw-r--r--include/linux/netfilter/nfnetlink_conntrack.h1
-rw-r--r--include/linux/netfilter/x_tables.h2
-rw-r--r--include/linux/page_cgroup.h4
-rw-r--r--include/linux/sched.h4
-rw-r--r--include/linux/security.h12
-rw-r--r--include/linux/smp.h2
-rw-r--r--include/linux/usb/ch9.h8
-rw-r--r--include/net/af_unix.h1
-rw-r--r--include/net/irda/irda_device.h4
-rw-r--r--include/net/request_sock.h1
-rw-r--r--include/net/timewait_sock.h1
-rw-r--r--include/scsi/scsi_transport_fc.h2
-rw-r--r--include/video/radeon.h18
-rw-r--r--kernel/audit.c32
-rw-r--r--kernel/auditsc.c24
-rw-r--r--kernel/cgroup.c10
-rw-r--r--kernel/cpu.c2
-rw-r--r--kernel/cpuset.c2
-rw-r--r--kernel/fork.c16
-rw-r--r--kernel/irq/internals.h2
-rw-r--r--kernel/irq/manage.c68
-rw-r--r--kernel/irq/migration.c11
-rw-r--r--kernel/irq/proc.c2
-rw-r--r--kernel/latencytop.c2
-rw-r--r--kernel/panic.c1
-rw-r--r--kernel/posix-cpu-timers.c2
-rw-r--r--kernel/posix-timers.c6
-rw-r--r--kernel/power/swap.c2
-rw-r--r--kernel/profile.c4
-rw-r--r--kernel/ptrace.c4
-rw-r--r--kernel/relay.c7
-rw-r--r--kernel/sched.c7
-rw-r--r--kernel/sched_clock.c6
-rw-r--r--kernel/softlockup.c2
-rw-r--r--kernel/sysctl.c10
-rw-r--r--kernel/time/timekeeping.c22
-rw-r--r--kernel/trace/ring_buffer.c2
-rw-r--r--kernel/trace/trace_mmiotrace.c16
-rw-r--r--kernel/trace/trace_stack.c24
-rw-r--r--lib/dynamic_printk.c6
-rw-r--r--lib/idr.c22
-rw-r--r--lib/percpu_counter.c7
-rw-r--r--mm/backing-dev.c3
-rw-r--r--mm/memory_hotplug.c9
-rw-r--r--mm/migrate.c59
-rw-r--r--mm/page_cgroup.c59
-rw-r--r--mm/slob.c2
-rw-r--r--mm/slub.c8
-rw-r--r--mm/sparse.c2
-rw-r--r--mm/swap.c20
-rw-r--r--mm/vmalloc.c22
-rw-r--r--mm/vmscan.c2
-rw-r--r--net/atm/svc.c6
-rw-r--r--net/bluetooth/rfcomm/core.c2
-rw-r--r--net/bridge/br_netfilter.c13
-rw-r--r--net/can/af_can.c68
-rw-r--r--net/can/bcm.c7
-rw-r--r--net/core/netpoll.c2
-rw-r--r--net/core/skbuff.c2
-rw-r--r--net/core/sock.c31
-rw-r--r--net/ipv4/netfilter/nf_nat_rule.c2
-rw-r--r--net/ipv4/tcp_output.c15
-rw-r--r--net/ipv4/tcp_vegas.c82
-rw-r--r--net/ipv6/ndisc.c7
-rw-r--r--net/mac80211/sta_info.c2
-rw-r--r--net/mac80211/wext.c8
-rw-r--r--net/netfilter/nf_conntrack_core.c2
-rw-r--r--net/netfilter/nf_conntrack_netlink.c7
-rw-r--r--net/netfilter/xt_socket.c2
-rw-r--r--net/netlabel/netlabel_unlabeled.c48
-rw-r--r--net/phonet/pep-gprs.c27
-rw-r--r--net/phonet/pn_dev.c2
-rw-r--r--net/phonet/pn_netlink.c3
-rw-r--r--net/rose/af_rose.c10
-rw-r--r--net/sched/sch_netem.c3
-rw-r--r--net/socket.c1
-rw-r--r--net/sunrpc/svcsock.c9
-rw-r--r--net/unix/af_unix.c2
-rw-r--r--net/unix/garbage.c13
-rw-r--r--net/wireless/reg.c4
-rw-r--r--net/xfrm/xfrm_policy.c1
-rwxr-xr-xscripts/kernel-doc10
-rw-r--r--sound/pci/hda/hda_codec.c4
-rw-r--r--sound/pci/hda/patch_sigmatel.c193
-rw-r--r--sound/soc/fsl/Kconfig3
-rw-r--r--sound/soc/omap/omap-pcm.c2
-rw-r--r--sound/sound_core.c6
675 files changed, 11566 insertions, 6568 deletions
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt
index b8e86460046e..b462bb149543 100644
--- a/Documentation/DMA-API.txt
+++ b/Documentation/DMA-API.txt
@@ -316,12 +316,10 @@ reduce current DMA mapping usage or delay and try again later).
316 pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, 316 pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
317 int nents, int direction) 317 int nents, int direction)
318 318
319Maps a scatter gather list from the block layer.
320
321Returns: the number of physical segments mapped (this may be shorter 319Returns: the number of physical segments mapped (this may be shorter
322than <nents> passed in if the block layer determines that some 320than <nents> passed in if some elements of the scatter/gather list are
323elements of the scatter/gather list are physically adjacent and thus 321physically or virtually adjacent and an IOMMU maps them with a single
324may be mapped with a single entry). 322entry).
325 323
326Please note that the sg cannot be mapped again if it has been mapped once. 324Please note that the sg cannot be mapped again if it has been mapped once.
327The mapping process is allowed to destroy information in the sg. 325The mapping process is allowed to destroy information in the sg.
diff --git a/Documentation/arm/mem_alignment b/Documentation/arm/mem_alignment
index d145ccca169a..c7c7a114c78c 100644
--- a/Documentation/arm/mem_alignment
+++ b/Documentation/arm/mem_alignment
@@ -24,7 +24,7 @@ real bad - it changes the behaviour of all unaligned instructions in user
24space, and might cause programs to fail unexpectedly. 24space, and might cause programs to fail unexpectedly.
25 25
26To change the alignment trap behavior, simply echo a number into 26To change the alignment trap behavior, simply echo a number into
27/proc/sys/debug/alignment. The number is made up from various bits: 27/proc/cpu/alignment. The number is made up from various bits:
28 28
29bit behavior when set 29bit behavior when set
30--- ----------------- 30--- -----------------
diff --git a/Documentation/cpu-freq/user-guide.txt b/Documentation/cpu-freq/user-guide.txt
index 6c442d8426b5..4f3f3840320e 100644
--- a/Documentation/cpu-freq/user-guide.txt
+++ b/Documentation/cpu-freq/user-guide.txt
@@ -23,6 +23,7 @@ Contents:
231.3 sparc64 231.3 sparc64
241.4 ppc 241.4 ppc
251.5 SuperH 251.5 SuperH
261.6 Blackfin
26 27
272. "Policy" / "Governor"? 282. "Policy" / "Governor"?
282.1 Policy 292.1 Policy
@@ -97,6 +98,17 @@ The following SuperH processors are supported by cpufreq:
97SH-3 98SH-3
98SH-4 99SH-4
99 100
1011.6 Blackfin
102------------
103
104The following Blackfin processors are supported by cpufreq:
105
106BF522, BF523, BF524, BF525, BF526, BF527, Rev 0.1 or higher
107BF531, BF532, BF533, Rev 0.3 or higher
108BF534, BF536, BF537, Rev 0.2 or higher
109BF561, Rev 0.3 or higher
110BF542, BF544, BF547, BF548, BF549, Rev 0.1 or higher
111
100 112
1012. "Policy" / "Governor" ? 1132. "Policy" / "Governor" ?
102========================== 114==========================
diff --git a/Documentation/filesystems/ocfs2.txt b/Documentation/filesystems/ocfs2.txt
index 4340cc825796..67310fbbb7df 100644
--- a/Documentation/filesystems/ocfs2.txt
+++ b/Documentation/filesystems/ocfs2.txt
@@ -28,10 +28,7 @@ Manish Singh <manish.singh@oracle.com>
28Caveats 28Caveats
29======= 29=======
30Features which OCFS2 does not support yet: 30Features which OCFS2 does not support yet:
31 - extended attributes
32 - quotas 31 - quotas
33 - cluster aware flock
34 - cluster aware lockf
35 - Directory change notification (F_NOTIFY) 32 - Directory change notification (F_NOTIFY)
36 - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) 33 - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease)
37 - POSIX ACLs 34 - POSIX ACLs
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index bcceb99b81dd..bb1b0dd3bfcb 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -44,6 +44,7 @@ Table of Contents
44 2.14 /proc/<pid>/io - Display the IO accounting fields 44 2.14 /proc/<pid>/io - Display the IO accounting fields
45 2.15 /proc/<pid>/coredump_filter - Core dump filtering settings 45 2.15 /proc/<pid>/coredump_filter - Core dump filtering settings
46 2.16 /proc/<pid>/mountinfo - Information about mounts 46 2.16 /proc/<pid>/mountinfo - Information about mounts
47 2.17 /proc/sys/fs/epoll - Configuration options for the epoll interface
47 48
48------------------------------------------------------------------------------ 49------------------------------------------------------------------------------
49Preface 50Preface
@@ -2483,4 +2484,30 @@ For more information on mount propagation see:
2483 2484
2484 Documentation/filesystems/sharedsubtree.txt 2485 Documentation/filesystems/sharedsubtree.txt
2485 2486
24872.17 /proc/sys/fs/epoll - Configuration options for the epoll interface
2488--------------------------------------------------------
2489
2490This directory contains configuration options for the epoll(7) interface.
2491
2492max_user_instances
2493------------------
2494
2495This is the maximum number of epoll file descriptors that a single user can
2496have open at a given time. The default value is 128, and should be enough
2497for normal users.
2498
2499max_user_watches
2500----------------
2501
2502Every epoll file descriptor can store a number of files to be monitored
2503for event readiness. Each one of these monitored files constitutes a "watch".
2504This configuration option sets the maximum number of "watches" that are
2505allowed for each user.
2506Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes
2507on a 64bit one.
2508The current default value for max_user_watches is the 1/32 of the available
2509low memory, divided for the "watch" cost in bytes.
2510
2511
2486------------------------------------------------------------------------------ 2512------------------------------------------------------------------------------
2513
diff --git a/Documentation/filesystems/ramfs-rootfs-initramfs.txt b/Documentation/filesystems/ramfs-rootfs-initramfs.txt
index 62fe9b1e0890..a8273d5fad20 100644
--- a/Documentation/filesystems/ramfs-rootfs-initramfs.txt
+++ b/Documentation/filesystems/ramfs-rootfs-initramfs.txt
@@ -130,12 +130,12 @@ The 2.6 kernel build process always creates a gzipped cpio format initramfs
130archive and links it into the resulting kernel binary. By default, this 130archive and links it into the resulting kernel binary. By default, this
131archive is empty (consuming 134 bytes on x86). 131archive is empty (consuming 134 bytes on x86).
132 132
133The config option CONFIG_INITRAMFS_SOURCE (for some reason buried under 133The config option CONFIG_INITRAMFS_SOURCE (in General Setup in menuconfig,
134devices->block devices in menuconfig, and living in usr/Kconfig) can be used 134and living in usr/Kconfig) can be used to specify a source for the
135to specify a source for the initramfs archive, which will automatically be 135initramfs archive, which will automatically be incorporated into the
136incorporated into the resulting binary. This option can point to an existing 136resulting binary. This option can point to an existing gzipped cpio
137gzipped cpio archive, a directory containing files to be archived, or a text 137archive, a directory containing files to be archived, or a text file
138file specification such as the following example: 138specification such as the following example:
139 139
140 dir /dev 755 0 0 140 dir /dev 755 0 0
141 nod /dev/console 644 0 0 c 5 1 141 nod /dev/console 644 0 0 c 5 1
diff --git a/Documentation/input/input-programming.txt b/Documentation/input/input-programming.txt
index 81905e81585e..7f8b9d97bc47 100644
--- a/Documentation/input/input-programming.txt
+++ b/Documentation/input/input-programming.txt
@@ -20,10 +20,11 @@ pressed or released a BUTTON_IRQ happens. The driver could look like:
20 20
21static struct input_dev *button_dev; 21static struct input_dev *button_dev;
22 22
23static void button_interrupt(int irq, void *dummy, struct pt_regs *fp) 23static irqreturn_t button_interrupt(int irq, void *dummy)
24{ 24{
25 input_report_key(button_dev, BTN_0, inb(BUTTON_PORT) & 1); 25 input_report_key(button_dev, BTN_0, inb(BUTTON_PORT) & 1);
26 input_sync(button_dev); 26 input_sync(button_dev);
27 return IRQ_HANDLED;
27} 28}
28 29
29static int __init button_init(void) 30static int __init button_init(void)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index e0f346d201ed..c9115c1b672c 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -220,14 +220,17 @@ and is between 256 and 4096 characters. It is defined in the file
220 Bits in debug_level correspond to a level in 220 Bits in debug_level correspond to a level in
221 ACPI_DEBUG_PRINT statements, e.g., 221 ACPI_DEBUG_PRINT statements, e.g.,
222 ACPI_DEBUG_PRINT((ACPI_DB_INFO, ... 222 ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
223 See Documentation/acpi/debug.txt for more information 223 The debug_level mask defaults to "info". See
224 about debug layers and levels. 224 Documentation/acpi/debug.txt for more information about
225 debug layers and levels.
225 226
227 Enable processor driver info messages:
228 acpi.debug_layer=0x20000000
229 Enable PCI/PCI interrupt routing info messages:
230 acpi.debug_layer=0x400000
226 Enable AML "Debug" output, i.e., stores to the Debug 231 Enable AML "Debug" output, i.e., stores to the Debug
227 object while interpreting AML: 232 object while interpreting AML:
228 acpi.debug_layer=0xffffffff acpi.debug_level=0x2 233 acpi.debug_layer=0xffffffff acpi.debug_level=0x2
229 Enable PCI/PCI interrupt routing info messages:
230 acpi.debug_layer=0x400000 acpi.debug_level=0x4
231 Enable all messages related to ACPI hardware: 234 Enable all messages related to ACPI hardware:
232 acpi.debug_layer=0x2 acpi.debug_level=0xffffffff 235 acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
233 236
diff --git a/Documentation/local_ops.txt b/Documentation/local_ops.txt
index f4f8b1c6c8ba..23045b8b50f0 100644
--- a/Documentation/local_ops.txt
+++ b/Documentation/local_ops.txt
@@ -149,7 +149,7 @@ static void do_test_timer(unsigned long data)
149 int cpu; 149 int cpu;
150 150
151 /* Increment the counters */ 151 /* Increment the counters */
152 on_each_cpu(test_each, NULL, 0, 1); 152 on_each_cpu(test_each, NULL, 1);
153 /* Read all the counters */ 153 /* Read all the counters */
154 printk("Counters read from CPU %d\n", smp_processor_id()); 154 printk("Counters read from CPU %d\n", smp_processor_id());
155 for_each_online_cpu(cpu) { 155 for_each_online_cpu(cpu) {
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index e0e54a27fc10..394d7d378dc7 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -1063,6 +1063,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1063 1063
1064 STAC9227/9228/9229/927x 1064 STAC9227/9228/9229/927x
1065 ref Reference board 1065 ref Reference board
1066 ref-no-jd Reference board without HP/Mic jack detection
1066 3stack D965 3stack 1067 3stack D965 3stack
1067 5stack D965 5stack + SPDIF 1068 5stack D965 5stack + SPDIF
1068 dell-3stack Dell Dimension E520 1069 dell-3stack Dell Dimension E520
@@ -1072,10 +1073,14 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1072 ref Reference board 1073 ref Reference board
1073 dell-m4-1 Dell desktops 1074 dell-m4-1 Dell desktops
1074 dell-m4-2 Dell desktops 1075 dell-m4-2 Dell desktops
1076 dell-m4-3 Dell desktops
1075 1077
1076 STAC92HD73* 1078 STAC92HD73*
1077 ref Reference board 1079 ref Reference board
1078 dell-m6 Dell desktops 1080 no-jd BIOS setup but without jack-detection
1081 dell-m6-amic Dell desktops/laptops with analog mics
1082 dell-m6-dmic Dell desktops/laptops with digital mics
1083 dell-m6 Dell desktops/laptops with both type of mics
1079 1084
1080 STAC9872 1085 STAC9872
1081 vaio Setup for VAIO FE550G/SZ110 1086 vaio Setup for VAIO FE550G/SZ110
diff --git a/Documentation/spi/spi-summary b/Documentation/spi/spi-summary
index 8bae2f018d34..0f5122eb282b 100644
--- a/Documentation/spi/spi-summary
+++ b/Documentation/spi/spi-summary
@@ -215,7 +215,7 @@ So for example arch/.../mach-*/board-*.c files might have code like:
215 /* if your mach-* infrastructure doesn't support kernels that can 215 /* if your mach-* infrastructure doesn't support kernels that can
216 * run on multiple boards, pdata wouldn't benefit from "__init". 216 * run on multiple boards, pdata wouldn't benefit from "__init".
217 */ 217 */
218 static struct mysoc_spi_data __init pdata = { ... }; 218 static struct mysoc_spi_data __initdata pdata = { ... };
219 219
220 static __init board_init(void) 220 static __init board_init(void)
221 { 221 {
diff --git a/Documentation/tracers/mmiotrace.txt b/Documentation/tracers/mmiotrace.txt
index 5bbbe2096223..cde23b4a12a1 100644
--- a/Documentation/tracers/mmiotrace.txt
+++ b/Documentation/tracers/mmiotrace.txt
@@ -37,7 +37,7 @@ $ echo mmiotrace > /debug/tracing/current_tracer
37$ cat /debug/tracing/trace_pipe > mydump.txt & 37$ cat /debug/tracing/trace_pipe > mydump.txt &
38Start X or whatever. 38Start X or whatever.
39$ echo "X is up" > /debug/tracing/trace_marker 39$ echo "X is up" > /debug/tracing/trace_marker
40$ echo none > /debug/tracing/current_tracer 40$ echo nop > /debug/tracing/current_tracer
41Check for lost events. 41Check for lost events.
42 42
43 43
@@ -66,7 +66,7 @@ which action. It is recommended to place descriptive markers about what you
66do. 66do.
67 67
68Shut down mmiotrace (requires root privileges): 68Shut down mmiotrace (requires root privileges):
69$ echo none > /debug/tracing/current_tracer 69$ echo nop > /debug/tracing/current_tracer
70The 'cat' process exits. If it does not, kill it by issuing 'fg' command and 70The 'cat' process exits. If it does not, kill it by issuing 'fg' command and
71pressing ctrl+c. 71pressing ctrl+c.
72 72
@@ -81,7 +81,9 @@ are:
81$ cat /debug/tracing/trace_entries 81$ cat /debug/tracing/trace_entries
82gives you a number. Approximately double this number and write it back, for 82gives you a number. Approximately double this number and write it back, for
83instance: 83instance:
84$ echo 0 > /debug/tracing/tracing_enabled
84$ echo 128000 > /debug/tracing/trace_entries 85$ echo 128000 > /debug/tracing/trace_entries
86$ echo 1 > /debug/tracing/tracing_enabled
85Then start again from the top. 87Then start again from the top.
86 88
87If you are doing a trace for a driver project, e.g. Nouveau, you should also 89If you are doing a trace for a driver project, e.g. Nouveau, you should also
diff --git a/Documentation/usb/gadget_serial.txt b/Documentation/usb/gadget_serial.txt
index 9b22bd14c348..eac7df94d8e3 100644
--- a/Documentation/usb/gadget_serial.txt
+++ b/Documentation/usb/gadget_serial.txt
@@ -114,11 +114,11 @@ modules.
114Then you must load the gadget serial driver. To load it as an 114Then you must load the gadget serial driver. To load it as an
115ACM device (recommended for interoperability), do this: 115ACM device (recommended for interoperability), do this:
116 116
117 modprobe g_serial use_acm=1 117 modprobe g_serial
118 118
119To load it as a vendor specific bulk in/out device, do this: 119To load it as a vendor specific bulk in/out device, do this:
120 120
121 modprobe g_serial 121 modprobe g_serial use_acm=0
122 122
123This will also automatically load the underlying gadget peripheral 123This will also automatically load the underlying gadget peripheral
124controller driver. This must be done each time you reboot the gadget 124controller driver. This must be done each time you reboot the gadget
diff --git a/Documentation/usb/proc_usb_info.txt b/Documentation/usb/proc_usb_info.txt
index 077e9032d0cd..fafcd4723260 100644
--- a/Documentation/usb/proc_usb_info.txt
+++ b/Documentation/usb/proc_usb_info.txt
@@ -49,8 +49,10 @@ it and 002/048 sometime later.
49 49
50These files can be read as binary data. The binary data consists 50These files can be read as binary data. The binary data consists
51of first the device descriptor, then the descriptors for each 51of first the device descriptor, then the descriptors for each
52configuration of the device. That information is also shown in 52configuration of the device. Multi-byte fields in the device and
53text form by the /proc/bus/usb/devices file, described later. 53configuration descriptors, but not other descriptors, are converted
54to host endianness by the kernel. This information is also shown
55in text form by the /proc/bus/usb/devices file, described later.
54 56
55These files may also be used to write user-level drivers for the USB 57These files may also be used to write user-level drivers for the USB
56devices. You would open the /proc/bus/usb/BBB/DDD file read/write, 58devices. You would open the /proc/bus/usb/BBB/DDD file read/write,
diff --git a/Documentation/usb/usbmon.txt b/Documentation/usb/usbmon.txt
index 2917ce4ffdc4..270481906dc8 100644
--- a/Documentation/usb/usbmon.txt
+++ b/Documentation/usb/usbmon.txt
@@ -34,11 +34,12 @@ if usbmon is built into the kernel.
34Verify that bus sockets are present. 34Verify that bus sockets are present.
35 35
36# ls /sys/kernel/debug/usbmon 36# ls /sys/kernel/debug/usbmon
370s 0t 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u 370s 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
38# 38#
39 39
40Now you can choose to either use the sockets numbered '0' (to capture packets on 40Now you can choose to either use the socket '0u' (to capture packets on all
41all buses), and skip to step #3, or find the bus used by your device with step #2. 41buses), and skip to step #3, or find the bus used by your device with step #2.
42This allows to filter away annoying devices that talk continuously.
42 43
432. Find which bus connects to the desired device 442. Find which bus connects to the desired device
44 45
@@ -99,8 +100,9 @@ on the event type, but there is a set of words, common for all types.
99 100
100Here is the list of words, from left to right: 101Here is the list of words, from left to right:
101 102
102- URB Tag. This is used to identify URBs is normally a kernel mode address 103- URB Tag. This is used to identify URBs, and is normally an in-kernel address
103 of the URB structure in hexadecimal. 104 of the URB structure in hexadecimal, but can be a sequence number or any
105 other unique string, within reason.
104 106
105- Timestamp in microseconds, a decimal number. The timestamp's resolution 107- Timestamp in microseconds, a decimal number. The timestamp's resolution
106 depends on available clock, and so it can be much worse than a microsecond 108 depends on available clock, and so it can be much worse than a microsecond
diff --git a/MAINTAINERS b/MAINTAINERS
index 618c1ef4a397..fbc8fa58d56d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -779,6 +779,7 @@ ATM
779P: Chas Williams 779P: Chas Williams
780M: chas@cmf.nrl.navy.mil 780M: chas@cmf.nrl.navy.mil
781L: linux-atm-general@lists.sourceforge.net (subscribers-only) 781L: linux-atm-general@lists.sourceforge.net (subscribers-only)
782L: netdev@vger.kernel.org
782W: http://linux-atm.sourceforge.net 783W: http://linux-atm.sourceforge.net
783S: Maintained 784S: Maintained
784 785
@@ -1526,10 +1527,10 @@ W: http://ebtables.sourceforge.net/
1526S: Maintained 1527S: Maintained
1527 1528
1528ECRYPT FILE SYSTEM 1529ECRYPT FILE SYSTEM
1529P: Mike Halcrow, Phillip Hellewell 1530P: Tyler Hicks, Dustin Kirkland
1530M: mhalcrow@us.ibm.com, phillip@hellewell.homeip.net 1531M: tyhicks@linux.vnet.ibm.com, kirkland@canonical.com
1531L: ecryptfs-devel@lists.sourceforge.net 1532L: ecryptfs-devel@lists.launchpad.net
1532W: http://ecryptfs.sourceforge.net/ 1533W: https://launchpad.net/ecryptfs
1533S: Supported 1534S: Supported
1534 1535
1535EDAC-CORE 1536EDAC-CORE
@@ -2190,9 +2191,9 @@ S: Supported
2190 2191
2191INOTIFY 2192INOTIFY
2192P: John McCutchan 2193P: John McCutchan
2193M: ttb@tentacle.dhs.org 2194M: john@johnmccutchan.com
2194P: Robert Love 2195P: Robert Love
2195M: rml@novell.com 2196M: rlove@rlove.org
2196L: linux-kernel@vger.kernel.org 2197L: linux-kernel@vger.kernel.org
2197S: Maintained 2198S: Maintained
2198 2199
@@ -3758,6 +3759,15 @@ M: drzeus-sdhci@drzeus.cx
3758L: sdhci-devel@list.drzeus.cx 3759L: sdhci-devel@list.drzeus.cx
3759S: Maintained 3760S: Maintained
3760 3761
3762SECURITY SUBSYSTEM
3763F: security/
3764P: James Morris
3765M: jmorris@namei.org
3766L: linux-kernel@vger.kernel.org
3767L: linux-security-module@vger.kernel.org (suggested Cc:)
3768T: git kernel.org:pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
3769S: Supported
3770
3761SECURITY CONTACT 3771SECURITY CONTACT
3762P: Security Officers 3772P: Security Officers
3763M: security@kernel.org 3773M: security@kernel.org
@@ -4235,7 +4245,7 @@ M: dedekind@infradead.org
4235P: Adrian Hunter 4245P: Adrian Hunter
4236M: ext-adrian.hunter@nokia.com 4246M: ext-adrian.hunter@nokia.com
4237L: linux-mtd@lists.infradead.org 4247L: linux-mtd@lists.infradead.org
4238T: git git://git.infradead.org/~dedekind/ubifs-2.6.git 4248T: git git://git.infradead.org/ubifs-2.6.git
4239W: http://www.linux-mtd.infradead.org/doc/ubifs.html 4249W: http://www.linux-mtd.infradead.org/doc/ubifs.html
4240S: Maintained 4250S: Maintained
4241 4251
@@ -4289,7 +4299,7 @@ P: Artem Bityutskiy
4289M: dedekind@infradead.org 4299M: dedekind@infradead.org
4290W: http://www.linux-mtd.infradead.org/ 4300W: http://www.linux-mtd.infradead.org/
4291L: linux-mtd@lists.infradead.org 4301L: linux-mtd@lists.infradead.org
4292T: git git://git.infradead.org/~dedekind/ubi-2.6.git 4302T: git git://git.infradead.org/ubi-2.6.git
4293S: Maintained 4303S: Maintained
4294 4304
4295USB ACM DRIVER 4305USB ACM DRIVER
@@ -4519,7 +4529,7 @@ S: Maintained
4519USB VIDEO CLASS 4529USB VIDEO CLASS
4520P: Laurent Pinchart 4530P: Laurent Pinchart
4521M: laurent.pinchart@skynet.be 4531M: laurent.pinchart@skynet.be
4522L: linux-uvc-devel@lists.berlios.de 4532L: linux-uvc-devel@lists.berlios.de (subscribers-only)
4523L: video4linux-list@redhat.com 4533L: video4linux-list@redhat.com
4524W: http://linux-uvc.berlios.de 4534W: http://linux-uvc.berlios.de
4525S: Maintained 4535S: Maintained
diff --git a/Makefile b/Makefile
index 7b1f2384094f..71e98e9e6acd 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 28 3SUBLEVEL = 28
4EXTRAVERSION = -rc6 4EXTRAVERSION =
5NAME = Killer Bat of Doom 5NAME = Erotic Pickled Herring
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
8# To see a list of typical targets execute "make help" 8# To see a list of typical targets execute "make help"
diff --git a/arch/Kconfig b/arch/Kconfig
index 8977d99987cb..471e72dbaf8b 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -79,8 +79,6 @@ config HAVE_KRETPROBES
79# task_pt_regs() in asm/processor.h or asm/ptrace.h 79# task_pt_regs() in asm/processor.h or asm/ptrace.h
80# arch_has_single_step() if there is hardware single-step support 80# arch_has_single_step() if there is hardware single-step support
81# arch_has_block_step() if there is hardware block-step support 81# arch_has_block_step() if there is hardware block-step support
82# arch_ptrace() and not #define __ARCH_SYS_PTRACE
83# compat_arch_ptrace() and #define __ARCH_WANT_COMPAT_SYS_PTRACE
84# asm/syscall.h supplying asm-generic/syscall.h interface 82# asm/syscall.h supplying asm-generic/syscall.h interface
85# linux/regset.h user_regset interfaces 83# linux/regset.h user_regset interfaces
86# CORE_DUMP_USE_REGSET #define'd in linux/elf.h 84# CORE_DUMP_USE_REGSET #define'd in linux/elf.h
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c
index 5cf45fc51343..ff8cb638472e 100644
--- a/arch/alpha/kernel/pci.c
+++ b/arch/alpha/kernel/pci.c
@@ -338,7 +338,7 @@ common_swizzle(struct pci_dev *dev, u8 *pinp)
338 return PCI_SLOT(dev->devfn); 338 return PCI_SLOT(dev->devfn);
339} 339}
340 340
341void __devinit 341void
342pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, 342pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
343 struct resource *res) 343 struct resource *res)
344{ 344{
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c
index e657c45d91d2..cf7da10097bb 100644
--- a/arch/alpha/kernel/smp.c
+++ b/arch/alpha/kernel/smp.c
@@ -121,7 +121,7 @@ wait_boot_cpu_to_stop(int cpuid)
121/* 121/*
122 * Where secondaries begin a life of C. 122 * Where secondaries begin a life of C.
123 */ 123 */
124void __init 124void __cpuinit
125smp_callin(void) 125smp_callin(void)
126{ 126{
127 int cpuid = hard_smp_processor_id(); 127 int cpuid = hard_smp_processor_id();
@@ -198,7 +198,7 @@ wait_for_txrdy (unsigned long cpumask)
198 * Send a message to a secondary's console. "START" is one such 198 * Send a message to a secondary's console. "START" is one such
199 * interesting message. ;-) 199 * interesting message. ;-)
200 */ 200 */
201static void __init 201static void __cpuinit
202send_secondary_console_msg(char *str, int cpuid) 202send_secondary_console_msg(char *str, int cpuid)
203{ 203{
204 struct percpu_struct *cpu; 204 struct percpu_struct *cpu;
@@ -289,7 +289,7 @@ recv_secondary_console_msg(void)
289/* 289/*
290 * Convince the console to have a secondary cpu begin execution. 290 * Convince the console to have a secondary cpu begin execution.
291 */ 291 */
292static int __init 292static int __cpuinit
293secondary_cpu_start(int cpuid, struct task_struct *idle) 293secondary_cpu_start(int cpuid, struct task_struct *idle)
294{ 294{
295 struct percpu_struct *cpu; 295 struct percpu_struct *cpu;
diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c
index c778779007fc..cefc5a355ef9 100644
--- a/arch/alpha/kernel/traps.c
+++ b/arch/alpha/kernel/traps.c
@@ -31,7 +31,7 @@
31 31
32static int opDEC_fix; 32static int opDEC_fix;
33 33
34static void __init 34static void __cpuinit
35opDEC_check(void) 35opDEC_check(void)
36{ 36{
37 __asm__ __volatile__ ( 37 __asm__ __volatile__ (
@@ -1072,7 +1072,7 @@ give_sigbus:
1072 return; 1072 return;
1073} 1073}
1074 1074
1075void __init 1075void __cpuinit
1076trap_init(void) 1076trap_init(void)
1077{ 1077{
1078 /* Tell PAL-code what global pointer we want in the kernel. */ 1078 /* Tell PAL-code what global pointer we want in the kernel. */
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 47ccec95f3e8..ef12794c3c68 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -630,7 +630,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
630 return -ENOMEM; 630 return -ENOMEM;
631 631
632 sachip->clk = clk_get(me, "SA1111_CLK"); 632 sachip->clk = clk_get(me, "SA1111_CLK");
633 if (!sachip->clk) { 633 if (IS_ERR(sachip->clk)) {
634 ret = PTR_ERR(sachip->clk); 634 ret = PTR_ERR(sachip->clk);
635 goto err_free; 635 goto err_free;
636 } 636 }
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig
index f3af0b593eb0..98765438048d 100644
--- a/arch/arm/configs/corgi_defconfig
+++ b/arch/arm/configs/corgi_defconfig
@@ -179,7 +179,7 @@ CONFIG_MACH_HUSKY=y
179# CONFIG_MACH_AKITA is not set 179# CONFIG_MACH_AKITA is not set
180# CONFIG_MACH_SPITZ is not set 180# CONFIG_MACH_SPITZ is not set
181# CONFIG_MACH_BORZOI is not set 181# CONFIG_MACH_BORZOI is not set
182CONFIG_MACH_TOSA=y 182# CONFIG_MACH_TOSA is not set
183# CONFIG_ARCH_VIPER is not set 183# CONFIG_ARCH_VIPER is not set
184# CONFIG_ARCH_PXA_ESERIES is not set 184# CONFIG_ARCH_PXA_ESERIES is not set
185# CONFIG_TRIZEPS_PXA is not set 185# CONFIG_TRIZEPS_PXA is not set
diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h
index 9a1db20e032a..63a481fbbed4 100644
--- a/arch/arm/include/asm/bitops.h
+++ b/arch/arm/include/asm/bitops.h
@@ -237,6 +237,7 @@ extern int _find_next_bit_be(const unsigned long *p, int size, int offset);
237#if __LINUX_ARM_ARCH__ < 5 237#if __LINUX_ARM_ARCH__ < 5
238 238
239#include <asm-generic/bitops/ffz.h> 239#include <asm-generic/bitops/ffz.h>
240#include <asm-generic/bitops/__fls.h>
240#include <asm-generic/bitops/__ffs.h> 241#include <asm-generic/bitops/__ffs.h>
241#include <asm-generic/bitops/fls.h> 242#include <asm-generic/bitops/fls.h>
242#include <asm-generic/bitops/ffs.h> 243#include <asm-generic/bitops/ffs.h>
@@ -277,16 +278,19 @@ static inline int constant_fls(int x)
277 * the clz instruction for much better code efficiency. 278 * the clz instruction for much better code efficiency.
278 */ 279 */
279 280
280#define __fls(x) \
281 ( __builtin_constant_p(x) ? constant_fls(x) : \
282 ({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) )
283
284/* Implement fls() in C so that 64-bit args are suitably truncated */
285static inline int fls(int x) 281static inline int fls(int x)
286{ 282{
287 return __fls(x); 283 int ret;
284
285 if (__builtin_constant_p(x))
286 return constant_fls(x);
287
288 asm("clz\t%0, %1" : "=r" (ret) : "r" (x) : "cc");
289 ret = 32 - ret;
290 return ret;
288} 291}
289 292
293#define __fls(x) (fls(x) - 1)
290#define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); }) 294#define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); })
291#define __ffs(x) (ffs(x) - 1) 295#define __ffs(x) (ffs(x) - 1)
292#define ffz(x) __ffs( ~(x) ) 296#define ffz(x) __ffs( ~(x) )
diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h
index 517a4d6ffc74..6ff33790f47b 100644
--- a/arch/arm/include/asm/processor.h
+++ b/arch/arm/include/asm/processor.h
@@ -23,7 +23,7 @@
23#include <asm/types.h> 23#include <asm/types.h>
24 24
25#ifdef __KERNEL__ 25#ifdef __KERNEL__
26#define STACK_TOP ((current->personality == PER_LINUX_32BIT) ? \ 26#define STACK_TOP ((current->personality & ADDR_LIMIT_32BIT) ? \
27 TASK_SIZE : TASK_SIZE_26) 27 TASK_SIZE : TASK_SIZE_26)
28#define STACK_TOP_MAX TASK_SIZE 28#define STACK_TOP_MAX TASK_SIZE
29#endif 29#endif
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index c74f766ffc12..23af3c972c9a 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -115,6 +115,8 @@ EXPORT_SYMBOL(__strnlen_user);
115EXPORT_SYMBOL(__strncpy_from_user); 115EXPORT_SYMBOL(__strncpy_from_user);
116 116
117#ifdef CONFIG_MMU 117#ifdef CONFIG_MMU
118EXPORT_SYMBOL(copy_page);
119
118EXPORT_SYMBOL(__copy_from_user); 120EXPORT_SYMBOL(__copy_from_user);
119EXPORT_SYMBOL(__copy_to_user); 121EXPORT_SYMBOL(__copy_to_user);
120EXPORT_SYMBOL(__clear_user); 122EXPORT_SYMBOL(__clear_user);
@@ -181,8 +183,6 @@ EXPORT_SYMBOL(_find_first_bit_be);
181EXPORT_SYMBOL(_find_next_bit_be); 183EXPORT_SYMBOL(_find_next_bit_be);
182#endif 184#endif
183 185
184EXPORT_SYMBOL(copy_page);
185
186#ifdef CONFIG_FUNCTION_TRACER 186#ifdef CONFIG_FUNCTION_TRACER
187EXPORT_SYMBOL(mcount); 187EXPORT_SYMBOL(mcount);
188#endif 188#endif
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index 57e6874d0b80..79abc4ddc0cf 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -18,6 +18,7 @@
18#include <linux/personality.h> 18#include <linux/personality.h>
19#include <linux/kallsyms.h> 19#include <linux/kallsyms.h>
20#include <linux/delay.h> 20#include <linux/delay.h>
21#include <linux/hardirq.h>
21#include <linux/init.h> 22#include <linux/init.h>
22#include <linux/uaccess.h> 23#include <linux/uaccess.h>
23 24
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c
index b3bd8ca85118..4c3e582f3d3c 100644
--- a/arch/arm/mach-omap1/io.c
+++ b/arch/arm/mach-omap1/io.c
@@ -128,7 +128,7 @@ void __init omap1_map_common_io(void)
128 * Common low-level hardware init for omap1. This should only get called from 128 * Common low-level hardware init for omap1. This should only get called from
129 * board specific init. 129 * board specific init.
130 */ 130 */
131void __init omap1_init_common_hw() 131void __init omap1_init_common_hw(void)
132{ 132{
133 /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort 133 /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort
134 * on a Posted Write in the TIPB Bridge". 134 * on a Posted Write in the TIPB Bridge".
diff --git a/arch/arm/mach-pxa/include/mach/reset.h b/arch/arm/mach-pxa/include/mach/reset.h
index 7b8842cfa5fc..31e6a7b6ad80 100644
--- a/arch/arm/mach-pxa/include/mach/reset.h
+++ b/arch/arm/mach-pxa/include/mach/reset.h
@@ -12,9 +12,8 @@ extern void clear_reset_status(unsigned int mask);
12 12
13/** 13/**
14 * init_gpio_reset() - register GPIO as reset generator 14 * init_gpio_reset() - register GPIO as reset generator
15 * 15 * @gpio: gpio nr
16 * @gpio - gpio nr 16 * @output: set gpio as out/low instead of input during normal work
17 * @output - set gpio as out/low instead of input during normal work
18 */ 17 */
19extern int init_gpio_reset(int gpio, int output); 18extern int init_gpio_reset(int gpio, int output);
20 19
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c
index 0842c531ee4d..782903fe9c6c 100644
--- a/arch/arm/mach-pxa/mioa701.c
+++ b/arch/arm/mach-pxa/mioa701.c
@@ -565,7 +565,7 @@ static int mioa701_sys_suspend(struct sys_device *sysdev, pm_message_t state)
565 u32 *mem_resume_unknown = phys_to_virt(RESUME_UNKNOWN_ADDR); 565 u32 *mem_resume_unknown = phys_to_virt(RESUME_UNKNOWN_ADDR);
566 566
567 /* Devices prepare suspend */ 567 /* Devices prepare suspend */
568 is_bt_on = gpio_get_value(GPIO83_BT_ON); 568 is_bt_on = !!gpio_get_value(GPIO83_BT_ON);
569 pxa2xx_mfp_set_lpm(GPIO83_BT_ON, 569 pxa2xx_mfp_set_lpm(GPIO83_BT_ON,
570 is_bt_on ? MFP_LPM_DRIVE_HIGH : MFP_LPM_DRIVE_LOW); 570 is_bt_on ? MFP_LPM_DRIVE_HIGH : MFP_LPM_DRIVE_LOW);
571 571
diff --git a/arch/arm/mach-pxa/mioa701_bootresume.S b/arch/arm/mach-pxa/mioa701_bootresume.S
index a647693d9856..324d25a48c85 100644
--- a/arch/arm/mach-pxa/mioa701_bootresume.S
+++ b/arch/arm/mach-pxa/mioa701_bootresume.S
@@ -24,6 +24,7 @@ ENTRY(mioa701_jumpaddr)
241: 241:
25 mov r0, #0xa0000000 @ Don't suppose memory access works 25 mov r0, #0xa0000000 @ Don't suppose memory access works
26 orr r0, r0, #0x00200000 @ even if it's supposed to 26 orr r0, r0, #0x00200000 @ even if it's supposed to
27 orr r0, r0, #0x0000b000
27 mov r1, #0 28 mov r1, #0
28 str r1, [r0] @ Early disable resume for next boot 29 str r1, [r0] @ Early disable resume for next boot
29 ldr r0, mioa701_jumpaddr @ (Murphy's Law) 30 ldr r0, mioa701_jumpaddr @ (Murphy's Law)
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c
index 4447711c9fc6..a9d94f5dbec4 100644
--- a/arch/arm/mach-pxa/palmtx.c
+++ b/arch/arm/mach-pxa/palmtx.c
@@ -56,6 +56,9 @@ static unsigned long palmtx_pin_config[] __initdata = {
56 GPIO110_MMC_DAT_2, 56 GPIO110_MMC_DAT_2,
57 GPIO111_MMC_DAT_3, 57 GPIO111_MMC_DAT_3,
58 GPIO112_MMC_CMD, 58 GPIO112_MMC_CMD,
59 GPIO14_GPIO, /* SD detect */
60 GPIO114_GPIO, /* SD power */
61 GPIO115_GPIO, /* SD r/o switch */
59 62
60 /* AC97 */ 63 /* AC97 */
61 GPIO28_AC97_BITCLK, 64 GPIO28_AC97_BITCLK,
@@ -64,6 +67,7 @@ static unsigned long palmtx_pin_config[] __initdata = {
64 GPIO31_AC97_SYNC, 67 GPIO31_AC97_SYNC,
65 68
66 /* IrDA */ 69 /* IrDA */
70 GPIO40_GPIO, /* ir disable */
67 GPIO46_FICP_RXD, 71 GPIO46_FICP_RXD,
68 GPIO47_FICP_TXD, 72 GPIO47_FICP_TXD,
69 73
@@ -71,7 +75,8 @@ static unsigned long palmtx_pin_config[] __initdata = {
71 GPIO16_PWM0_OUT, 75 GPIO16_PWM0_OUT,
72 76
73 /* USB */ 77 /* USB */
74 GPIO13_GPIO, 78 GPIO13_GPIO, /* usb detect */
79 GPIO95_GPIO, /* usb power */
75 80
76 /* PCMCIA */ 81 /* PCMCIA */
77 GPIO48_nPOE, 82 GPIO48_nPOE,
@@ -84,6 +89,45 @@ static unsigned long palmtx_pin_config[] __initdata = {
84 GPIO55_nPREG, 89 GPIO55_nPREG,
85 GPIO56_nPWAIT, 90 GPIO56_nPWAIT,
86 GPIO57_nIOIS16, 91 GPIO57_nIOIS16,
92 GPIO94_GPIO, /* wifi power 1 */
93 GPIO108_GPIO, /* wifi power 2 */
94 GPIO116_GPIO, /* wifi ready */
95
96 /* MATRIX KEYPAD */
97 GPIO100_KP_MKIN_0,
98 GPIO101_KP_MKIN_1,
99 GPIO102_KP_MKIN_2,
100 GPIO97_KP_MKIN_3,
101 GPIO103_KP_MKOUT_0,
102 GPIO104_KP_MKOUT_1,
103 GPIO105_KP_MKOUT_2,
104
105 /* LCD */
106 GPIO58_LCD_LDD_0,
107 GPIO59_LCD_LDD_1,
108 GPIO60_LCD_LDD_2,
109 GPIO61_LCD_LDD_3,
110 GPIO62_LCD_LDD_4,
111 GPIO63_LCD_LDD_5,
112 GPIO64_LCD_LDD_6,
113 GPIO65_LCD_LDD_7,
114 GPIO66_LCD_LDD_8,
115 GPIO67_LCD_LDD_9,
116 GPIO68_LCD_LDD_10,
117 GPIO69_LCD_LDD_11,
118 GPIO70_LCD_LDD_12,
119 GPIO71_LCD_LDD_13,
120 GPIO72_LCD_LDD_14,
121 GPIO73_LCD_LDD_15,
122 GPIO74_LCD_FCLK,
123 GPIO75_LCD_LCLK,
124 GPIO76_LCD_PCLK,
125 GPIO77_LCD_BIAS,
126
127 /* MISC. */
128 GPIO10_GPIO, /* hotsync button */
129 GPIO12_GPIO, /* power detect */
130 GPIO107_GPIO, /* earphone detect */
87}; 131};
88 132
89/****************************************************************************** 133/******************************************************************************
@@ -95,32 +139,49 @@ static int palmtx_mci_init(struct device *dev, irq_handler_t palmtx_detect_int,
95 int err = 0; 139 int err = 0;
96 140
97 /* Setup an interrupt for detecting card insert/remove events */ 141 /* Setup an interrupt for detecting card insert/remove events */
98 err = request_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, palmtx_detect_int, 142 err = gpio_request(GPIO_NR_PALMTX_SD_DETECT_N, "SD IRQ");
99 IRQF_DISABLED | IRQF_SAMPLE_RANDOM | 143 if (err)
144 goto err;
145 err = gpio_direction_input(GPIO_NR_PALMTX_SD_DETECT_N);
146 if (err)
147 goto err2;
148 err = request_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N),
149 palmtx_detect_int, IRQF_DISABLED | IRQF_SAMPLE_RANDOM |
100 IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, 150 IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
101 "SD/MMC card detect", data); 151 "SD/MMC card detect", data);
102 if (err) { 152 if (err) {
103 printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n", 153 printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n",
104 __func__); 154 __func__);
105 return err; 155 goto err2;
106 } 156 }
107 157
108 err = gpio_request(GPIO_NR_PALMTX_SD_POWER, "SD_POWER"); 158 err = gpio_request(GPIO_NR_PALMTX_SD_POWER, "SD_POWER");
109 if (err) 159 if (err)
110 goto pwr_err; 160 goto err3;
161 err = gpio_direction_output(GPIO_NR_PALMTX_SD_POWER, 0);
162 if (err)
163 goto err4;
111 164
112 err = gpio_request(GPIO_NR_PALMTX_SD_READONLY, "SD_READONLY"); 165 err = gpio_request(GPIO_NR_PALMTX_SD_READONLY, "SD_READONLY");
113 if (err) 166 if (err)
114 goto ro_err; 167 goto err4;
168 err = gpio_direction_input(GPIO_NR_PALMTX_SD_READONLY);
169 if (err)
170 goto err5;
115 171
116 printk(KERN_DEBUG "%s: irq registered\n", __func__); 172 printk(KERN_DEBUG "%s: irq registered\n", __func__);
117 173
118 return 0; 174 return 0;
119 175
120ro_err: 176err5:
177 gpio_free(GPIO_NR_PALMTX_SD_READONLY);
178err4:
121 gpio_free(GPIO_NR_PALMTX_SD_POWER); 179 gpio_free(GPIO_NR_PALMTX_SD_POWER);
122pwr_err: 180err3:
123 free_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, data); 181 free_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N), data);
182err2:
183 gpio_free(GPIO_NR_PALMTX_SD_DETECT_N);
184err:
124 return err; 185 return err;
125} 186}
126 187
@@ -128,7 +189,8 @@ static void palmtx_mci_exit(struct device *dev, void *data)
128{ 189{
129 gpio_free(GPIO_NR_PALMTX_SD_READONLY); 190 gpio_free(GPIO_NR_PALMTX_SD_READONLY);
130 gpio_free(GPIO_NR_PALMTX_SD_POWER); 191 gpio_free(GPIO_NR_PALMTX_SD_POWER);
131 free_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, data); 192 free_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N), data);
193 gpio_free(GPIO_NR_PALMTX_SD_DETECT_N);
132} 194}
133 195
134static void palmtx_mci_power(struct device *dev, unsigned int vdd) 196static void palmtx_mci_power(struct device *dev, unsigned int vdd)
@@ -167,7 +229,6 @@ static unsigned int palmtx_matrix_keys[] = {
167 229
168 KEY(3, 0, KEY_RIGHT), 230 KEY(3, 0, KEY_RIGHT),
169 KEY(3, 2, KEY_LEFT), 231 KEY(3, 2, KEY_LEFT),
170
171}; 232};
172 233
173static struct pxa27x_keypad_platform_data palmtx_keypad_platform_data = { 234static struct pxa27x_keypad_platform_data palmtx_keypad_platform_data = {
@@ -209,11 +270,19 @@ static int palmtx_backlight_init(struct device *dev)
209 ret = gpio_request(GPIO_NR_PALMTX_BL_POWER, "BL POWER"); 270 ret = gpio_request(GPIO_NR_PALMTX_BL_POWER, "BL POWER");
210 if (ret) 271 if (ret)
211 goto err; 272 goto err;
273 ret = gpio_direction_output(GPIO_NR_PALMTX_BL_POWER, 0);
274 if (ret)
275 goto err2;
212 ret = gpio_request(GPIO_NR_PALMTX_LCD_POWER, "LCD POWER"); 276 ret = gpio_request(GPIO_NR_PALMTX_LCD_POWER, "LCD POWER");
213 if (ret) 277 if (ret)
214 goto err2; 278 goto err2;
279 ret = gpio_direction_output(GPIO_NR_PALMTX_LCD_POWER, 0);
280 if (ret)
281 goto err3;
215 282
216 return 0; 283 return 0;
284err3:
285 gpio_free(GPIO_NR_PALMTX_LCD_POWER);
217err2: 286err2:
218 gpio_free(GPIO_NR_PALMTX_BL_POWER); 287 gpio_free(GPIO_NR_PALMTX_BL_POWER);
219err: 288err:
@@ -254,6 +323,24 @@ static struct platform_device palmtx_backlight = {
254/****************************************************************************** 323/******************************************************************************
255 * IrDA 324 * IrDA
256 ******************************************************************************/ 325 ******************************************************************************/
326static int palmtx_irda_startup(struct device *dev)
327{
328 int err;
329 err = gpio_request(GPIO_NR_PALMTX_IR_DISABLE, "IR DISABLE");
330 if (err)
331 goto err;
332 err = gpio_direction_output(GPIO_NR_PALMTX_IR_DISABLE, 1);
333 if (err)
334 gpio_free(GPIO_NR_PALMTX_IR_DISABLE);
335err:
336 return err;
337}
338
339static void palmtx_irda_shutdown(struct device *dev)
340{
341 gpio_free(GPIO_NR_PALMTX_IR_DISABLE);
342}
343
257static void palmtx_irda_transceiver_mode(struct device *dev, int mode) 344static void palmtx_irda_transceiver_mode(struct device *dev, int mode)
258{ 345{
259 gpio_set_value(GPIO_NR_PALMTX_IR_DISABLE, mode & IR_OFF); 346 gpio_set_value(GPIO_NR_PALMTX_IR_DISABLE, mode & IR_OFF);
@@ -261,6 +348,8 @@ static void palmtx_irda_transceiver_mode(struct device *dev, int mode)
261} 348}
262 349
263static struct pxaficp_platform_data palmtx_ficp_platform_data = { 350static struct pxaficp_platform_data palmtx_ficp_platform_data = {
351 .startup = palmtx_irda_startup,
352 .shutdown = palmtx_irda_shutdown,
264 .transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF, 353 .transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF,
265 .transceiver_mode = palmtx_irda_transceiver_mode, 354 .transceiver_mode = palmtx_irda_transceiver_mode,
266}; 355};
@@ -268,17 +357,11 @@ static struct pxaficp_platform_data palmtx_ficp_platform_data = {
268/****************************************************************************** 357/******************************************************************************
269 * UDC 358 * UDC
270 ******************************************************************************/ 359 ******************************************************************************/
271static void palmtx_udc_command(int cmd)
272{
273 gpio_set_value(GPIO_NR_PALMTX_USB_POWER, !cmd);
274 udelay(50);
275 gpio_set_value(GPIO_NR_PALMTX_USB_PULLUP, !cmd);
276}
277
278static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = { 360static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = {
279 .gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N, 361 .gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N,
280 .gpio_vbus_inverted = 1, 362 .gpio_vbus_inverted = 1,
281 .udc_command = palmtx_udc_command, 363 .gpio_pullup = GPIO_NR_PALMTX_USB_POWER,
364 .gpio_pullup_inverted = 0,
282}; 365};
283 366
284/****************************************************************************** 367/******************************************************************************
@@ -290,17 +373,16 @@ static int power_supply_init(struct device *dev)
290 373
291 ret = gpio_request(GPIO_NR_PALMTX_POWER_DETECT, "CABLE_STATE_AC"); 374 ret = gpio_request(GPIO_NR_PALMTX_POWER_DETECT, "CABLE_STATE_AC");
292 if (ret) 375 if (ret)
293 goto err_cs_ac; 376 goto err1;
294 377 ret = gpio_direction_input(GPIO_NR_PALMTX_POWER_DETECT);
295 ret = gpio_request(GPIO_NR_PALMTX_USB_DETECT_N, "CABLE_STATE_USB");
296 if (ret) 378 if (ret)
297 goto err_cs_usb; 379 goto err2;
298 380
299 return 0; 381 return 0;
300 382
301err_cs_usb: 383err2:
302 gpio_free(GPIO_NR_PALMTX_POWER_DETECT); 384 gpio_free(GPIO_NR_PALMTX_POWER_DETECT);
303err_cs_ac: 385err1:
304 return ret; 386 return ret;
305} 387}
306 388
@@ -309,14 +391,8 @@ static int palmtx_is_ac_online(void)
309 return gpio_get_value(GPIO_NR_PALMTX_POWER_DETECT); 391 return gpio_get_value(GPIO_NR_PALMTX_POWER_DETECT);
310} 392}
311 393
312static int palmtx_is_usb_online(void)
313{
314 return !gpio_get_value(GPIO_NR_PALMTX_USB_DETECT_N);
315}
316
317static void power_supply_exit(struct device *dev) 394static void power_supply_exit(struct device *dev)
318{ 395{
319 gpio_free(GPIO_NR_PALMTX_USB_DETECT_N);
320 gpio_free(GPIO_NR_PALMTX_POWER_DETECT); 396 gpio_free(GPIO_NR_PALMTX_POWER_DETECT);
321} 397}
322 398
@@ -327,7 +403,6 @@ static char *palmtx_supplicants[] = {
327static struct pda_power_pdata power_supply_info = { 403static struct pda_power_pdata power_supply_info = {
328 .init = power_supply_init, 404 .init = power_supply_init,
329 .is_ac_online = palmtx_is_ac_online, 405 .is_ac_online = palmtx_is_ac_online,
330 .is_usb_online = palmtx_is_usb_online,
331 .exit = power_supply_exit, 406 .exit = power_supply_exit,
332 .supplied_to = palmtx_supplicants, 407 .supplied_to = palmtx_supplicants,
333 .num_supplicants = ARRAY_SIZE(palmtx_supplicants), 408 .num_supplicants = ARRAY_SIZE(palmtx_supplicants),
@@ -410,12 +485,23 @@ static void __init palmtx_map_io(void)
410 iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc)); 485 iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc));
411} 486}
412 487
488/* setup udc GPIOs initial state */
489static void __init palmtx_udc_init(void)
490{
491 if (!gpio_request(GPIO_NR_PALMTX_USB_POWER, "UDC Vbus")) {
492 gpio_direction_output(GPIO_NR_PALMTX_USB_POWER, 1);
493 gpio_free(GPIO_NR_PALMTX_USB_POWER);
494 }
495}
496
497
413static void __init palmtx_init(void) 498static void __init palmtx_init(void)
414{ 499{
415 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config)); 500 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config));
416 501
417 set_pxa_fb_info(&palmtx_lcd_screen); 502 set_pxa_fb_info(&palmtx_lcd_screen);
418 pxa_set_mci_info(&palmtx_mci_platform_data); 503 pxa_set_mci_info(&palmtx_mci_platform_data);
504 palmtx_udc_init();
419 pxa_set_udc_info(&palmtx_udc_info); 505 pxa_set_udc_info(&palmtx_udc_info);
420 pxa_set_ac97_info(NULL); 506 pxa_set_ac97_info(NULL);
421 pxa_set_ficp_info(&palmtx_ficp_platform_data); 507 pxa_set_ficp_info(&palmtx_ficp_platform_data);
diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c
index f601425f1b1e..b36cec5c9eed 100644
--- a/arch/arm/mach-pxa/pcm990-baseboard.c
+++ b/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -385,6 +385,7 @@ static struct soc_camera_link iclink[] = {
385 .gpio = NR_BUILTIN_GPIO + 1, 385 .gpio = NR_BUILTIN_GPIO + 1,
386 }, { 386 }, {
387 .bus_id = 0, /* Must match with the camera ID above */ 387 .bus_id = 0, /* Must match with the camera ID above */
388 .gpio = -ENXIO,
388 } 389 }
389}; 390};
390 391
diff --git a/arch/arm/mach-s3c2410/include/mach/spi-gpio.h b/arch/arm/mach-s3c2410/include/mach/spi-gpio.h
index 3fe8be9ca110..980a099e209c 100644
--- a/arch/arm/mach-s3c2410/include/mach/spi-gpio.h
+++ b/arch/arm/mach-s3c2410/include/mach/spi-gpio.h
@@ -18,6 +18,7 @@ struct s3c2410_spigpio_info {
18 unsigned long pin_mosi; 18 unsigned long pin_mosi;
19 unsigned long pin_miso; 19 unsigned long pin_miso;
20 20
21 int num_chipselect;
21 int bus_num; 22 int bus_num;
22 23
23 void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs); 24 void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs);
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
index 133e65d166b3..2d5884ce0435 100644
--- a/arch/arm/mm/alignment.c
+++ b/arch/arm/mm/alignment.c
@@ -70,6 +70,10 @@ static unsigned long ai_dword;
70static unsigned long ai_multi; 70static unsigned long ai_multi;
71static int ai_usermode; 71static int ai_usermode;
72 72
73#define UM_WARN (1 << 0)
74#define UM_FIXUP (1 << 1)
75#define UM_SIGNAL (1 << 2)
76
73#ifdef CONFIG_PROC_FS 77#ifdef CONFIG_PROC_FS
74static const char *usermode_action[] = { 78static const char *usermode_action[] = {
75 "ignored", 79 "ignored",
@@ -754,7 +758,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
754 user: 758 user:
755 ai_user += 1; 759 ai_user += 1;
756 760
757 if (ai_usermode & 1) 761 if (ai_usermode & UM_WARN)
758 printk("Alignment trap: %s (%d) PC=0x%08lx Instr=0x%0*lx " 762 printk("Alignment trap: %s (%d) PC=0x%08lx Instr=0x%0*lx "
759 "Address=0x%08lx FSR 0x%03x\n", current->comm, 763 "Address=0x%08lx FSR 0x%03x\n", current->comm,
760 task_pid_nr(current), instrptr, 764 task_pid_nr(current), instrptr,
@@ -762,10 +766,10 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
762 thumb_mode(regs) ? tinstr : instr, 766 thumb_mode(regs) ? tinstr : instr,
763 addr, fsr); 767 addr, fsr);
764 768
765 if (ai_usermode & 2) 769 if (ai_usermode & UM_FIXUP)
766 goto fixup; 770 goto fixup;
767 771
768 if (ai_usermode & 4) 772 if (ai_usermode & UM_SIGNAL)
769 force_sig(SIGBUS, current); 773 force_sig(SIGBUS, current);
770 else 774 else
771 set_cr(cr_no_alignment); 775 set_cr(cr_no_alignment);
@@ -796,6 +800,22 @@ static int __init alignment_init(void)
796 res->write_proc = proc_alignment_write; 800 res->write_proc = proc_alignment_write;
797#endif 801#endif
798 802
803 /*
804 * ARMv6 and later CPUs can perform unaligned accesses for
805 * most single load and store instructions up to word size.
806 * LDM, STM, LDRD and STRD still need to be handled.
807 *
808 * Ignoring the alignment fault is not an option on these
809 * CPUs since we spin re-faulting the instruction without
810 * making any progress.
811 */
812 if (cpu_architecture() >= CPU_ARCH_ARMv6 && (cr_alignment & CR_U)) {
813 cr_alignment &= ~CR_A;
814 cr_no_alignment &= ~CR_A;
815 set_cr(cr_alignment);
816 ai_usermode = UM_FIXUP;
817 }
818
799 hook_fault_code(1, do_alignment, SIGILL, "alignment exception"); 819 hook_fault_code(1, do_alignment, SIGILL, "alignment exception");
800 hook_fault_code(3, do_alignment, SIGILL, "alignment exception"); 820 hook_fault_code(3, do_alignment, SIGILL, "alignment exception");
801 821
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 2df8d9facf57..22c9530e91e2 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -11,6 +11,7 @@
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/signal.h> 12#include <linux/signal.h>
13#include <linux/mm.h> 13#include <linux/mm.h>
14#include <linux/hardirq.h>
14#include <linux/init.h> 15#include <linux/init.h>
15#include <linux/kprobes.h> 16#include <linux/kprobes.h>
16#include <linux/uaccess.h> 17#include <linux/uaccess.h>
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 8679fbca6bbe..424049d83fbe 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -101,6 +101,7 @@
101#define OMAP24XX_GPIO_IRQSTATUS2 0x0028 101#define OMAP24XX_GPIO_IRQSTATUS2 0x0028
102#define OMAP24XX_GPIO_IRQENABLE2 0x002c 102#define OMAP24XX_GPIO_IRQENABLE2 0x002c
103#define OMAP24XX_GPIO_IRQENABLE1 0x001c 103#define OMAP24XX_GPIO_IRQENABLE1 0x001c
104#define OMAP24XX_GPIO_WAKE_EN 0x0020
104#define OMAP24XX_GPIO_CTRL 0x0030 105#define OMAP24XX_GPIO_CTRL 0x0030
105#define OMAP24XX_GPIO_OE 0x0034 106#define OMAP24XX_GPIO_OE 0x0034
106#define OMAP24XX_GPIO_DATAIN 0x0038 107#define OMAP24XX_GPIO_DATAIN 0x0038
@@ -1551,7 +1552,7 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
1551#endif 1552#endif
1552#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) 1553#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
1553 case METHOD_GPIO_24XX: 1554 case METHOD_GPIO_24XX:
1554 wake_status = bank->base + OMAP24XX_GPIO_SETWKUENA; 1555 wake_status = bank->base + OMAP24XX_GPIO_WAKE_EN;
1555 wake_clear = bank->base + OMAP24XX_GPIO_CLEARWKUENA; 1556 wake_clear = bank->base + OMAP24XX_GPIO_CLEARWKUENA;
1556 wake_set = bank->base + OMAP24XX_GPIO_SETWKUENA; 1557 wake_set = bank->base + OMAP24XX_GPIO_SETWKUENA;
1557 break; 1558 break;
@@ -1574,7 +1575,7 @@ static int omap_gpio_resume(struct sys_device *dev)
1574{ 1575{
1575 int i; 1576 int i;
1576 1577
1577 if (!cpu_is_omap24xx() && !cpu_is_omap16xx()) 1578 if (!cpu_class_is_omap2() && !cpu_is_omap16xx())
1578 return 0; 1579 return 0;
1579 1580
1580 for (i = 0; i < gpio_bank_count; i++) { 1581 for (i = 0; i < gpio_bank_count; i++) {
diff --git a/arch/arm/plat-omap/include/mach/omapfb.h b/arch/arm/plat-omap/include/mach/omapfb.h
index ec67fb428607..7b74d1255e0b 100644
--- a/arch/arm/plat-omap/include/mach/omapfb.h
+++ b/arch/arm/plat-omap/include/mach/omapfb.h
@@ -353,8 +353,8 @@ struct omapfb_device {
353 u32 pseudo_palette[17]; 353 u32 pseudo_palette[17];
354 354
355 struct lcd_panel *panel; /* LCD panel */ 355 struct lcd_panel *panel; /* LCD panel */
356 struct lcd_ctrl *ctrl; /* LCD controller */ 356 const struct lcd_ctrl *ctrl; /* LCD controller */
357 struct lcd_ctrl *int_ctrl; /* internal LCD ctrl */ 357 const struct lcd_ctrl *int_ctrl; /* internal LCD ctrl */
358 struct lcd_ctrl_extif *ext_if; /* LCD ctrl external 358 struct lcd_ctrl_extif *ext_if; /* LCD ctrl external
359 interface */ 359 interface */
360 struct device *dev; 360 struct device *dev;
diff --git a/arch/arm/plat-omap/include/mach/pm.h b/arch/arm/plat-omap/include/mach/pm.h
index 768eb6e7abcf..2a9c27ad4c37 100644
--- a/arch/arm/plat-omap/include/mach/pm.h
+++ b/arch/arm/plat-omap/include/mach/pm.h
@@ -128,7 +128,7 @@ void clk_deny_idle(struct clk *clk);
128 * clk_allow_idle - Counters previous clk_deny_idle 128 * clk_allow_idle - Counters previous clk_deny_idle
129 * @clk: clock signal handle 129 * @clk: clock signal handle
130 */ 130 */
131void clk_deny_idle(struct clk *clk); 131void clk_allow_idle(struct clk *clk);
132 132
133extern void omap_pm_idle(void); 133extern void omap_pm_idle(void);
134extern void omap_pm_suspend(void); 134extern void omap_pm_suspend(void);
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
index 9f9a921829c0..dcd9d16da2e9 100644
--- a/arch/arm/plat-omap/sram.c
+++ b/arch/arm/plat-omap/sram.c
@@ -255,7 +255,7 @@ void omap_sram_reprogram_clock(u32 dpllctl, u32 ckctl)
255 if (!_omap_sram_reprogram_clock) 255 if (!_omap_sram_reprogram_clock)
256 omap_sram_error(); 256 omap_sram_error();
257 257
258 return _omap_sram_reprogram_clock(dpllctl, ckctl); 258 _omap_sram_reprogram_clock(dpllctl, ckctl);
259} 259}
260 260
261int __init omap1_sram_init(void) 261int __init omap1_sram_init(void)
@@ -282,8 +282,8 @@ void omap2_sram_ddr_init(u32 *slow_dll_ctrl, u32 fast_dll_ctrl,
282 if (!_omap2_sram_ddr_init) 282 if (!_omap2_sram_ddr_init)
283 omap_sram_error(); 283 omap_sram_error();
284 284
285 return _omap2_sram_ddr_init(slow_dll_ctrl, fast_dll_ctrl, 285 _omap2_sram_ddr_init(slow_dll_ctrl, fast_dll_ctrl,
286 base_cs, force_unlock); 286 base_cs, force_unlock);
287} 287}
288 288
289static void (*_omap2_sram_reprogram_sdrc)(u32 perf_level, u32 dll_val, 289static void (*_omap2_sram_reprogram_sdrc)(u32 perf_level, u32 dll_val,
@@ -294,7 +294,7 @@ void omap2_sram_reprogram_sdrc(u32 perf_level, u32 dll_val, u32 mem_type)
294 if (!_omap2_sram_reprogram_sdrc) 294 if (!_omap2_sram_reprogram_sdrc)
295 omap_sram_error(); 295 omap_sram_error();
296 296
297 return _omap2_sram_reprogram_sdrc(perf_level, dll_val, mem_type); 297 _omap2_sram_reprogram_sdrc(perf_level, dll_val, mem_type);
298} 298}
299 299
300static u32 (*_omap2_set_prcm)(u32 dpll_ctrl_val, u32 sdrc_rfr_val, int bypass); 300static u32 (*_omap2_set_prcm)(u32 dpll_ctrl_val, u32 sdrc_rfr_val, int bypass);
diff --git a/arch/arm/plat-orion/pcie.c b/arch/arm/plat-orion/pcie.c
index 883902fead89..d41d41d78ad9 100644
--- a/arch/arm/plat-orion/pcie.c
+++ b/arch/arm/plat-orion/pcie.c
@@ -35,7 +35,7 @@
35#define PCIE_CONF_REG(r) ((((r) & 0xf00) << 16) | ((r) & 0xfc)) 35#define PCIE_CONF_REG(r) ((((r) & 0xf00) << 16) | ((r) & 0xfc))
36#define PCIE_CONF_BUS(b) (((b) & 0xff) << 16) 36#define PCIE_CONF_BUS(b) (((b) & 0xff) << 16)
37#define PCIE_CONF_DEV(d) (((d) & 0x1f) << 11) 37#define PCIE_CONF_DEV(d) (((d) & 0x1f) << 11)
38#define PCIE_CONF_FUNC(f) (((f) & 0x3) << 8) 38#define PCIE_CONF_FUNC(f) (((f) & 0x7) << 8)
39#define PCIE_CONF_DATA_OFF 0x18fc 39#define PCIE_CONF_DATA_OFF 0x18fc
40#define PCIE_MASK_OFF 0x1910 40#define PCIE_MASK_OFF 0x1910
41#define PCIE_CTRL_OFF 0x1a00 41#define PCIE_CTRL_OFF 0x1a00
diff --git a/arch/avr32/boards/favr-32/flash.c b/arch/avr32/boards/favr-32/flash.c
index 5f139b7cb5f7..604bbd5e41d9 100644
--- a/arch/avr32/boards/favr-32/flash.c
+++ b/arch/avr32/boards/favr-32/flash.c
@@ -13,7 +13,7 @@
13#include <linux/mtd/partitions.h> 13#include <linux/mtd/partitions.h>
14#include <linux/mtd/physmap.h> 14#include <linux/mtd/physmap.h>
15 15
16#include <asm/arch/smc.h> 16#include <mach/smc.h>
17 17
18static struct smc_timing flash_timing __initdata = { 18static struct smc_timing flash_timing __initdata = {
19 .ncs_read_setup = 0, 19 .ncs_read_setup = 0,
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c
index 7538f3d2b9e0..1ee4faf0742d 100644
--- a/arch/avr32/boards/favr-32/setup.c
+++ b/arch/avr32/boards/favr-32/setup.c
@@ -25,10 +25,10 @@
25 25
26#include <asm/setup.h> 26#include <asm/setup.h>
27 27
28#include <asm/arch/at32ap700x.h> 28#include <mach/at32ap700x.h>
29#include <asm/arch/init.h> 29#include <mach/init.h>
30#include <asm/arch/board.h> 30#include <mach/board.h>
31#include <asm/arch/portmux.h> 31#include <mach/portmux.h>
32 32
33/* Oscillator frequencies. These are board-specific */ 33/* Oscillator frequencies. These are board-specific */
34unsigned long at32_board_osc_rates[3] = { 34unsigned long at32_board_osc_rates[3] = {
diff --git a/arch/avr32/boot/images/Makefile b/arch/avr32/boot/images/Makefile
index 219720a47bf9..1848bf0d7f62 100644
--- a/arch/avr32/boot/images/Makefile
+++ b/arch/avr32/boot/images/Makefile
@@ -10,7 +10,7 @@ MKIMAGE := $(srctree)/scripts/mkuboot.sh
10 10
11extra-y := vmlinux.bin vmlinux.gz 11extra-y := vmlinux.bin vmlinux.gz
12 12
13OBJCOPYFLAGS_vmlinux.bin := -O binary 13OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id
14$(obj)/vmlinux.bin: vmlinux FORCE 14$(obj)/vmlinux.bin: vmlinux FORCE
15 $(call if_changed,objcopy) 15 $(call if_changed,objcopy)
16 16
diff --git a/arch/avr32/configs/atstk1006_defconfig b/arch/avr32/configs/atstk1006_defconfig
index 8b6e54c9946a..6c45a3b77aa3 100644
--- a/arch/avr32/configs/atstk1006_defconfig
+++ b/arch/avr32/configs/atstk1006_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc1 3# Linux kernel version: 2.6.28-rc8
4# Tue Aug 5 15:40:26 2008 4# Thu Dec 18 11:22:23 2008
5# 5#
6CONFIG_AVR32=y 6CONFIG_AVR32=y
7CONFIG_GENERIC_GPIO=y 7CONFIG_GENERIC_GPIO=y
@@ -67,6 +67,7 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 68CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 69CONFIG_SHMEM=y
70CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 71CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLUB_DEBUG=y 72CONFIG_SLUB_DEBUG=y
72# CONFIG_SLAB is not set 73# CONFIG_SLAB is not set
@@ -77,15 +78,8 @@ CONFIG_PROFILING=y
77CONFIG_OPROFILE=m 78CONFIG_OPROFILE=m
78CONFIG_HAVE_OPROFILE=y 79CONFIG_HAVE_OPROFILE=y
79CONFIG_KPROBES=y 80CONFIG_KPROBES=y
80# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
81# CONFIG_HAVE_IOREMAP_PROT is not set
82CONFIG_HAVE_KPROBES=y 81CONFIG_HAVE_KPROBES=y
83# CONFIG_HAVE_KRETPROBES is not set
84# CONFIG_HAVE_ARCH_TRACEHOOK is not set
85# CONFIG_HAVE_DMA_ATTRS is not set
86# CONFIG_USE_GENERIC_SMP_HELPERS is not set
87CONFIG_HAVE_CLK=y 82CONFIG_HAVE_CLK=y
88CONFIG_PROC_PAGE_MONITOR=y
89# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 83# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
90CONFIG_SLABINFO=y 84CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 85CONFIG_RT_MUTEXES=y
@@ -118,6 +112,7 @@ CONFIG_DEFAULT_CFQ=y
118# CONFIG_DEFAULT_NOOP is not set 112# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="cfq" 113CONFIG_DEFAULT_IOSCHED="cfq"
120CONFIG_CLASSIC_RCU=y 114CONFIG_CLASSIC_RCU=y
115CONFIG_FREEZER=y
121 116
122# 117#
123# System Type and features 118# System Type and features
@@ -134,6 +129,8 @@ CONFIG_CPU_AT32AP700X=y
134CONFIG_CPU_AT32AP7000=y 129CONFIG_CPU_AT32AP7000=y
135CONFIG_BOARD_ATSTK1000=y 130CONFIG_BOARD_ATSTK1000=y
136# CONFIG_BOARD_ATNGW100 is not set 131# CONFIG_BOARD_ATNGW100 is not set
132# CONFIG_BOARD_FAVR_32 is not set
133# CONFIG_BOARD_MIMC200 is not set
137# CONFIG_BOARD_ATSTK1002 is not set 134# CONFIG_BOARD_ATSTK1002 is not set
138# CONFIG_BOARD_ATSTK1003 is not set 135# CONFIG_BOARD_ATSTK1003 is not set
139# CONFIG_BOARD_ATSTK1004 is not set 136# CONFIG_BOARD_ATSTK1004 is not set
@@ -171,14 +168,14 @@ CONFIG_FLATMEM_MANUAL=y
171# CONFIG_SPARSEMEM_MANUAL is not set 168# CONFIG_SPARSEMEM_MANUAL is not set
172CONFIG_FLATMEM=y 169CONFIG_FLATMEM=y
173CONFIG_FLAT_NODE_MEM_MAP=y 170CONFIG_FLAT_NODE_MEM_MAP=y
174# CONFIG_SPARSEMEM_STATIC is not set
175# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
176CONFIG_PAGEFLAGS_EXTENDED=y 171CONFIG_PAGEFLAGS_EXTENDED=y
177CONFIG_SPLIT_PTLOCK_CPUS=4 172CONFIG_SPLIT_PTLOCK_CPUS=4
178# CONFIG_RESOURCES_64BIT is not set 173# CONFIG_RESOURCES_64BIT is not set
174# CONFIG_PHYS_ADDR_T_64BIT is not set
179CONFIG_ZONE_DMA_FLAG=0 175CONFIG_ZONE_DMA_FLAG=0
180CONFIG_NR_QUICK=2 176CONFIG_NR_QUICK=2
181CONFIG_VIRT_TO_BUS=y 177CONFIG_VIRT_TO_BUS=y
178CONFIG_UNEVICTABLE_LRU=y
182# CONFIG_OWNERSHIP_TRACE is not set 179# CONFIG_OWNERSHIP_TRACE is not set
183CONFIG_NMI_DEBUGGING=y 180CONFIG_NMI_DEBUGGING=y
184# CONFIG_HZ_100 is not set 181# CONFIG_HZ_100 is not set
@@ -186,7 +183,7 @@ CONFIG_HZ_250=y
186# CONFIG_HZ_300 is not set 183# CONFIG_HZ_300 is not set
187# CONFIG_HZ_1000 is not set 184# CONFIG_HZ_1000 is not set
188CONFIG_HZ=250 185CONFIG_HZ=250
189# CONFIG_SCHED_HRTICK is not set 186CONFIG_SCHED_HRTICK=y
190CONFIG_CMDLINE="" 187CONFIG_CMDLINE=""
191 188
192# 189#
@@ -228,6 +225,8 @@ CONFIG_CPU_FREQ_AT32AP=y
228# Executable file formats 225# Executable file formats
229# 226#
230CONFIG_BINFMT_ELF=y 227CONFIG_BINFMT_ELF=y
228CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
229# CONFIG_HAVE_AOUT is not set
231# CONFIG_BINFMT_MISC is not set 230# CONFIG_BINFMT_MISC is not set
232CONFIG_NET=y 231CONFIG_NET=y
233 232
@@ -299,6 +298,7 @@ CONFIG_IPV6_TUNNEL=m
299# CONFIG_ATM is not set 298# CONFIG_ATM is not set
300CONFIG_STP=m 299CONFIG_STP=m
301CONFIG_BRIDGE=m 300CONFIG_BRIDGE=m
301# CONFIG_NET_DSA is not set
302# CONFIG_VLAN_8021Q is not set 302# CONFIG_VLAN_8021Q is not set
303# CONFIG_DECNET is not set 303# CONFIG_DECNET is not set
304CONFIG_LLC=m 304CONFIG_LLC=m
@@ -321,14 +321,8 @@ CONFIG_LLC=m
321# CONFIG_IRDA is not set 321# CONFIG_IRDA is not set
322# CONFIG_BT is not set 322# CONFIG_BT is not set
323# CONFIG_AF_RXRPC is not set 323# CONFIG_AF_RXRPC is not set
324 324# CONFIG_PHONET is not set
325# 325# CONFIG_WIRELESS is not set
326# Wireless
327#
328# CONFIG_CFG80211 is not set
329# CONFIG_WIRELESS_EXT is not set
330# CONFIG_MAC80211 is not set
331# CONFIG_IEEE80211 is not set
332# CONFIG_RFKILL is not set 326# CONFIG_RFKILL is not set
333# CONFIG_NET_9P is not set 327# CONFIG_NET_9P is not set
334 328
@@ -359,6 +353,7 @@ CONFIG_MTD_CMDLINE_PARTS=y
359# User Modules And Translation Layers 353# User Modules And Translation Layers
360# 354#
361CONFIG_MTD_CHAR=y 355CONFIG_MTD_CHAR=y
356CONFIG_HAVE_MTD_OTP=y
362CONFIG_MTD_BLKDEVS=y 357CONFIG_MTD_BLKDEVS=y
363CONFIG_MTD_BLOCK=y 358CONFIG_MTD_BLOCK=y
364# CONFIG_FTL is not set 359# CONFIG_FTL is not set
@@ -407,6 +402,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
407# Self-contained MTD device drivers 402# Self-contained MTD device drivers
408# 403#
409CONFIG_MTD_DATAFLASH=m 404CONFIG_MTD_DATAFLASH=m
405# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
406CONFIG_MTD_DATAFLASH_OTP=y
410CONFIG_MTD_M25P80=m 407CONFIG_MTD_M25P80=m
411CONFIG_M25PXX_USE_FAST_READ=y 408CONFIG_M25PXX_USE_FAST_READ=y
412# CONFIG_MTD_SLRAM is not set 409# CONFIG_MTD_SLRAM is not set
@@ -464,9 +461,10 @@ CONFIG_ATMEL_TCLIB=y
464CONFIG_ATMEL_TCB_CLKSRC=y 461CONFIG_ATMEL_TCB_CLKSRC=y
465CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0 462CONFIG_ATMEL_TCB_CLKSRC_BLOCK=0
466# CONFIG_EEPROM_93CX6 is not set 463# CONFIG_EEPROM_93CX6 is not set
464# CONFIG_ICS932S401 is not set
467CONFIG_ATMEL_SSC=m 465CONFIG_ATMEL_SSC=m
468# CONFIG_ENCLOSURE_SERVICES is not set 466# CONFIG_ENCLOSURE_SERVICES is not set
469# CONFIG_HAVE_IDE is not set 467# CONFIG_C2PORT is not set
470 468
471# 469#
472# SCSI device support 470# SCSI device support
@@ -548,6 +546,9 @@ CONFIG_MACB=y
548# CONFIG_IBM_NEW_EMAC_RGMII is not set 546# CONFIG_IBM_NEW_EMAC_RGMII is not set
549# CONFIG_IBM_NEW_EMAC_TAH is not set 547# CONFIG_IBM_NEW_EMAC_TAH is not set
550# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 548# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
549# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
550# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
551# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
551# CONFIG_B44 is not set 552# CONFIG_B44 is not set
552# CONFIG_NETDEV_1000 is not set 553# CONFIG_NETDEV_1000 is not set
553# CONFIG_NETDEV_10000 is not set 554# CONFIG_NETDEV_10000 is not set
@@ -653,6 +654,7 @@ CONFIG_UNIX98_PTYS=y
653CONFIG_I2C=m 654CONFIG_I2C=m
654CONFIG_I2C_BOARDINFO=y 655CONFIG_I2C_BOARDINFO=y
655CONFIG_I2C_CHARDEV=m 656CONFIG_I2C_CHARDEV=m
657CONFIG_I2C_HELPER_AUTO=y
656CONFIG_I2C_ALGOBIT=m 658CONFIG_I2C_ALGOBIT=m
657 659
658# 660#
@@ -717,6 +719,10 @@ CONFIG_GPIOLIB=y
717CONFIG_GPIO_SYSFS=y 719CONFIG_GPIO_SYSFS=y
718 720
719# 721#
722# Memory mapped GPIO expanders:
723#
724
725#
720# I2C GPIO expanders: 726# I2C GPIO expanders:
721# 727#
722# CONFIG_GPIO_MAX732X is not set 728# CONFIG_GPIO_MAX732X is not set
@@ -745,11 +751,11 @@ CONFIG_WATCHDOG=y
745# 751#
746# CONFIG_SOFT_WATCHDOG is not set 752# CONFIG_SOFT_WATCHDOG is not set
747CONFIG_AT32AP700X_WDT=y 753CONFIG_AT32AP700X_WDT=y
754CONFIG_SSB_POSSIBLE=y
748 755
749# 756#
750# Sonics Silicon Backplane 757# Sonics Silicon Backplane
751# 758#
752CONFIG_SSB_POSSIBLE=y
753# CONFIG_SSB is not set 759# CONFIG_SSB is not set
754 760
755# 761#
@@ -758,6 +764,10 @@ CONFIG_SSB_POSSIBLE=y
758# CONFIG_MFD_CORE is not set 764# CONFIG_MFD_CORE is not set
759# CONFIG_MFD_SM501 is not set 765# CONFIG_MFD_SM501 is not set
760# CONFIG_HTC_PASIC3 is not set 766# CONFIG_HTC_PASIC3 is not set
767# CONFIG_MFD_TMIO is not set
768# CONFIG_MFD_WM8400 is not set
769# CONFIG_MFD_WM8350_I2C is not set
770# CONFIG_REGULATOR is not set
761 771
762# 772#
763# Multimedia devices 773# Multimedia devices
@@ -783,6 +793,7 @@ CONFIG_SSB_POSSIBLE=y
783CONFIG_FB=y 793CONFIG_FB=y
784# CONFIG_FIRMWARE_EDID is not set 794# CONFIG_FIRMWARE_EDID is not set
785# CONFIG_FB_DDC is not set 795# CONFIG_FB_DDC is not set
796# CONFIG_FB_BOOT_VESA_SUPPORT is not set
786CONFIG_FB_CFB_FILLRECT=y 797CONFIG_FB_CFB_FILLRECT=y
787CONFIG_FB_CFB_COPYAREA=y 798CONFIG_FB_CFB_COPYAREA=y
788CONFIG_FB_CFB_IMAGEBLIT=y 799CONFIG_FB_CFB_IMAGEBLIT=y
@@ -804,10 +815,13 @@ CONFIG_FB_CFB_IMAGEBLIT=y
804# CONFIG_FB_S1D13XXX is not set 815# CONFIG_FB_S1D13XXX is not set
805CONFIG_FB_ATMEL=y 816CONFIG_FB_ATMEL=y
806# CONFIG_FB_VIRTUAL is not set 817# CONFIG_FB_VIRTUAL is not set
818# CONFIG_FB_METRONOME is not set
819# CONFIG_FB_MB862XX is not set
807CONFIG_BACKLIGHT_LCD_SUPPORT=y 820CONFIG_BACKLIGHT_LCD_SUPPORT=y
808CONFIG_LCD_CLASS_DEVICE=y 821CONFIG_LCD_CLASS_DEVICE=y
809CONFIG_LCD_LTV350QV=y 822CONFIG_LCD_LTV350QV=y
810# CONFIG_LCD_ILI9320 is not set 823# CONFIG_LCD_ILI9320 is not set
824# CONFIG_LCD_TDO24M is not set
811# CONFIG_LCD_VGG2432A4 is not set 825# CONFIG_LCD_VGG2432A4 is not set
812# CONFIG_LCD_PLATFORM is not set 826# CONFIG_LCD_PLATFORM is not set
813# CONFIG_BACKLIGHT_CLASS_DEVICE is not set 827# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
@@ -818,6 +832,7 @@ CONFIG_LCD_LTV350QV=y
818# CONFIG_DISPLAY_SUPPORT is not set 832# CONFIG_DISPLAY_SUPPORT is not set
819# CONFIG_LOGO is not set 833# CONFIG_LOGO is not set
820CONFIG_SOUND=m 834CONFIG_SOUND=m
835CONFIG_SOUND_OSS_CORE=y
821CONFIG_SND=m 836CONFIG_SND=m
822CONFIG_SND_TIMER=m 837CONFIG_SND_TIMER=m
823CONFIG_SND_PCM=m 838CONFIG_SND_PCM=m
@@ -848,28 +863,32 @@ CONFIG_USB_SUPPORT=y
848# CONFIG_USB_ARCH_HAS_EHCI is not set 863# CONFIG_USB_ARCH_HAS_EHCI is not set
849# CONFIG_USB_OTG_WHITELIST is not set 864# CONFIG_USB_OTG_WHITELIST is not set
850# CONFIG_USB_OTG_BLACKLIST_HUB is not set 865# CONFIG_USB_OTG_BLACKLIST_HUB is not set
866# CONFIG_USB_MUSB_HDRC is not set
867# CONFIG_USB_GADGET_MUSB_HDRC is not set
851 868
852# 869#
853# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 870# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
854# 871#
855CONFIG_USB_GADGET=y 872CONFIG_USB_GADGET=y
856# CONFIG_USB_GADGET_DEBUG is not set 873# CONFIG_USB_GADGET_DEBUG is not set
857# CONFIG_USB_GADGET_DEBUG_FILES is not set 874# CONFIG_USB_GADGET_DEBUG_FILES is not set
858# CONFIG_USB_GADGET_DEBUG_FS is not set 875# CONFIG_USB_GADGET_DEBUG_FS is not set
876CONFIG_USB_GADGET_VBUS_DRAW=2
859CONFIG_USB_GADGET_SELECTED=y 877CONFIG_USB_GADGET_SELECTED=y
860# CONFIG_USB_GADGET_AMD5536UDC is not set 878# CONFIG_USB_GADGET_AT91 is not set
861CONFIG_USB_GADGET_ATMEL_USBA=y 879CONFIG_USB_GADGET_ATMEL_USBA=y
862CONFIG_USB_ATMEL_USBA=y 880CONFIG_USB_ATMEL_USBA=y
863# CONFIG_USB_GADGET_FSL_USB2 is not set 881# CONFIG_USB_GADGET_FSL_USB2 is not set
864# CONFIG_USB_GADGET_NET2280 is not set
865# CONFIG_USB_GADGET_PXA25X is not set
866# CONFIG_USB_GADGET_M66592 is not set
867# CONFIG_USB_GADGET_PXA27X is not set
868# CONFIG_USB_GADGET_GOKU is not set
869# CONFIG_USB_GADGET_LH7A40X is not set 882# CONFIG_USB_GADGET_LH7A40X is not set
870# CONFIG_USB_GADGET_OMAP is not set 883# CONFIG_USB_GADGET_OMAP is not set
884# CONFIG_USB_GADGET_PXA25X is not set
885# CONFIG_USB_GADGET_PXA27X is not set
871# CONFIG_USB_GADGET_S3C2410 is not set 886# CONFIG_USB_GADGET_S3C2410 is not set
872# CONFIG_USB_GADGET_AT91 is not set 887# CONFIG_USB_GADGET_M66592 is not set
888# CONFIG_USB_GADGET_AMD5536UDC is not set
889# CONFIG_USB_GADGET_FSL_QE is not set
890# CONFIG_USB_GADGET_NET2280 is not set
891# CONFIG_USB_GADGET_GOKU is not set
873# CONFIG_USB_GADGET_DUMMY_HCD is not set 892# CONFIG_USB_GADGET_DUMMY_HCD is not set
874CONFIG_USB_GADGET_DUALSPEED=y 893CONFIG_USB_GADGET_DUALSPEED=y
875CONFIG_USB_ZERO=m 894CONFIG_USB_ZERO=m
@@ -887,7 +906,7 @@ CONFIG_MMC=y
887# CONFIG_MMC_UNSAFE_RESUME is not set 906# CONFIG_MMC_UNSAFE_RESUME is not set
888 907
889# 908#
890# MMC/SD Card Drivers 909# MMC/SD/SDIO Card Drivers
891# 910#
892CONFIG_MMC_BLOCK=y 911CONFIG_MMC_BLOCK=y
893CONFIG_MMC_BLOCK_BOUNCE=y 912CONFIG_MMC_BLOCK_BOUNCE=y
@@ -895,10 +914,11 @@ CONFIG_MMC_BLOCK_BOUNCE=y
895# CONFIG_MMC_TEST is not set 914# CONFIG_MMC_TEST is not set
896 915
897# 916#
898# MMC/SD Host Controller Drivers 917# MMC/SD/SDIO Host Controller Drivers
899# 918#
900# CONFIG_MMC_SDHCI is not set 919# CONFIG_MMC_SDHCI is not set
901CONFIG_MMC_ATMELMCI=y 920CONFIG_MMC_ATMELMCI=y
921# CONFIG_MMC_ATMELMCI_DMA is not set
902CONFIG_MMC_SPI=m 922CONFIG_MMC_SPI=m
903# CONFIG_MEMSTICK is not set 923# CONFIG_MEMSTICK is not set
904CONFIG_NEW_LEDS=y 924CONFIG_NEW_LEDS=y
@@ -918,6 +938,7 @@ CONFIG_LEDS_GPIO=m
918CONFIG_LEDS_TRIGGERS=y 938CONFIG_LEDS_TRIGGERS=y
919CONFIG_LEDS_TRIGGER_TIMER=m 939CONFIG_LEDS_TRIGGER_TIMER=m
920CONFIG_LEDS_TRIGGER_HEARTBEAT=m 940CONFIG_LEDS_TRIGGER_HEARTBEAT=m
941# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
921CONFIG_LEDS_TRIGGER_DEFAULT_ON=m 942CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
922# CONFIG_ACCESSIBILITY is not set 943# CONFIG_ACCESSIBILITY is not set
923CONFIG_RTC_LIB=y 944CONFIG_RTC_LIB=y
@@ -950,25 +971,31 @@ CONFIG_RTC_INTF_DEV=y
950# CONFIG_RTC_DRV_M41T80 is not set 971# CONFIG_RTC_DRV_M41T80 is not set
951# CONFIG_RTC_DRV_S35390A is not set 972# CONFIG_RTC_DRV_S35390A is not set
952# CONFIG_RTC_DRV_FM3130 is not set 973# CONFIG_RTC_DRV_FM3130 is not set
974# CONFIG_RTC_DRV_RX8581 is not set
953 975
954# 976#
955# SPI RTC drivers 977# SPI RTC drivers
956# 978#
957# CONFIG_RTC_DRV_M41T94 is not set 979# CONFIG_RTC_DRV_M41T94 is not set
958# CONFIG_RTC_DRV_DS1305 is not set 980# CONFIG_RTC_DRV_DS1305 is not set
981# CONFIG_RTC_DRV_DS1390 is not set
959# CONFIG_RTC_DRV_MAX6902 is not set 982# CONFIG_RTC_DRV_MAX6902 is not set
960# CONFIG_RTC_DRV_R9701 is not set 983# CONFIG_RTC_DRV_R9701 is not set
961# CONFIG_RTC_DRV_RS5C348 is not set 984# CONFIG_RTC_DRV_RS5C348 is not set
985# CONFIG_RTC_DRV_DS3234 is not set
962 986
963# 987#
964# Platform RTC drivers 988# Platform RTC drivers
965# 989#
990# CONFIG_RTC_DRV_DS1286 is not set
966# CONFIG_RTC_DRV_DS1511 is not set 991# CONFIG_RTC_DRV_DS1511 is not set
967# CONFIG_RTC_DRV_DS1553 is not set 992# CONFIG_RTC_DRV_DS1553 is not set
968# CONFIG_RTC_DRV_DS1742 is not set 993# CONFIG_RTC_DRV_DS1742 is not set
969# CONFIG_RTC_DRV_STK17TA8 is not set 994# CONFIG_RTC_DRV_STK17TA8 is not set
970# CONFIG_RTC_DRV_M48T86 is not set 995# CONFIG_RTC_DRV_M48T86 is not set
996# CONFIG_RTC_DRV_M48T35 is not set
971# CONFIG_RTC_DRV_M48T59 is not set 997# CONFIG_RTC_DRV_M48T59 is not set
998# CONFIG_RTC_DRV_BQ4802 is not set
972# CONFIG_RTC_DRV_V3020 is not set 999# CONFIG_RTC_DRV_V3020 is not set
973 1000
974# 1001#
@@ -989,6 +1016,8 @@ CONFIG_DMA_ENGINE=y
989# CONFIG_NET_DMA is not set 1016# CONFIG_NET_DMA is not set
990CONFIG_DMATEST=m 1017CONFIG_DMATEST=m
991# CONFIG_UIO is not set 1018# CONFIG_UIO is not set
1019# CONFIG_STAGING is not set
1020CONFIG_STAGING_EXCLUDE_BUILD=y
992 1021
993# 1022#
994# File systems 1023# File systems
@@ -998,12 +1027,17 @@ CONFIG_EXT2_FS=m
998# CONFIG_EXT2_FS_XIP is not set 1027# CONFIG_EXT2_FS_XIP is not set
999CONFIG_EXT3_FS=m 1028CONFIG_EXT3_FS=m
1000# CONFIG_EXT3_FS_XATTR is not set 1029# CONFIG_EXT3_FS_XATTR is not set
1001# CONFIG_EXT4DEV_FS is not set 1030CONFIG_EXT4_FS=m
1031CONFIG_EXT4DEV_COMPAT=y
1032# CONFIG_EXT4_FS_XATTR is not set
1002CONFIG_JBD=m 1033CONFIG_JBD=m
1003# CONFIG_JBD_DEBUG is not set 1034# CONFIG_JBD_DEBUG is not set
1035CONFIG_JBD2=m
1036# CONFIG_JBD2_DEBUG is not set
1004# CONFIG_REISERFS_FS is not set 1037# CONFIG_REISERFS_FS is not set
1005# CONFIG_JFS_FS is not set 1038# CONFIG_JFS_FS is not set
1006# CONFIG_FS_POSIX_ACL is not set 1039# CONFIG_FS_POSIX_ACL is not set
1040CONFIG_FILE_LOCKING=y
1007# CONFIG_XFS_FS is not set 1041# CONFIG_XFS_FS is not set
1008# CONFIG_OCFS2_FS is not set 1042# CONFIG_OCFS2_FS is not set
1009# CONFIG_DNOTIFY is not set 1043# CONFIG_DNOTIFY is not set
@@ -1036,6 +1070,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1036CONFIG_PROC_FS=y 1070CONFIG_PROC_FS=y
1037CONFIG_PROC_KCORE=y 1071CONFIG_PROC_KCORE=y
1038CONFIG_PROC_SYSCTL=y 1072CONFIG_PROC_SYSCTL=y
1073CONFIG_PROC_PAGE_MONITOR=y
1039CONFIG_SYSFS=y 1074CONFIG_SYSFS=y
1040CONFIG_TMPFS=y 1075CONFIG_TMPFS=y
1041# CONFIG_TMPFS_POSIX_ACL is not set 1076# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1054,7 +1089,8 @@ CONFIG_TMPFS=y
1054# CONFIG_EFS_FS is not set 1089# CONFIG_EFS_FS is not set
1055CONFIG_JFFS2_FS=y 1090CONFIG_JFFS2_FS=y
1056CONFIG_JFFS2_FS_DEBUG=0 1091CONFIG_JFFS2_FS_DEBUG=0
1057# CONFIG_JFFS2_FS_WRITEBUFFER is not set 1092CONFIG_JFFS2_FS_WRITEBUFFER=y
1093# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1058# CONFIG_JFFS2_SUMMARY is not set 1094# CONFIG_JFFS2_SUMMARY is not set
1059# CONFIG_JFFS2_FS_XATTR is not set 1095# CONFIG_JFFS2_FS_XATTR is not set
1060# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1096# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
@@ -1088,6 +1124,7 @@ CONFIG_LOCKD=y
1088CONFIG_LOCKD_V4=y 1124CONFIG_LOCKD_V4=y
1089CONFIG_NFS_COMMON=y 1125CONFIG_NFS_COMMON=y
1090CONFIG_SUNRPC=y 1126CONFIG_SUNRPC=y
1127# CONFIG_SUNRPC_REGISTER_V4 is not set
1091# CONFIG_RPCSEC_GSS_KRB5 is not set 1128# CONFIG_RPCSEC_GSS_KRB5 is not set
1092# CONFIG_RPCSEC_GSS_SPKM3 is not set 1129# CONFIG_RPCSEC_GSS_SPKM3 is not set
1093# CONFIG_SMB_FS is not set 1130# CONFIG_SMB_FS is not set
@@ -1185,10 +1222,21 @@ CONFIG_DEBUG_BUGVERBOSE=y
1185CONFIG_FRAME_POINTER=y 1222CONFIG_FRAME_POINTER=y
1186# CONFIG_BOOT_PRINTK_DELAY is not set 1223# CONFIG_BOOT_PRINTK_DELAY is not set
1187# CONFIG_RCU_TORTURE_TEST is not set 1224# CONFIG_RCU_TORTURE_TEST is not set
1225# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1188# CONFIG_KPROBES_SANITY_TEST is not set 1226# CONFIG_KPROBES_SANITY_TEST is not set
1189# CONFIG_BACKTRACE_SELF_TEST is not set 1227# CONFIG_BACKTRACE_SELF_TEST is not set
1228# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1190# CONFIG_LKDTM is not set 1229# CONFIG_LKDTM is not set
1191# CONFIG_FAULT_INJECTION is not set 1230# CONFIG_FAULT_INJECTION is not set
1231
1232#
1233# Tracers
1234#
1235# CONFIG_IRQSOFF_TRACER is not set
1236# CONFIG_SCHED_TRACER is not set
1237# CONFIG_CONTEXT_SWITCH_TRACER is not set
1238# CONFIG_BOOT_TRACER is not set
1239# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1192# CONFIG_SAMPLES is not set 1240# CONFIG_SAMPLES is not set
1193 1241
1194# 1242#
@@ -1196,17 +1244,26 @@ CONFIG_FRAME_POINTER=y
1196# 1244#
1197# CONFIG_KEYS is not set 1245# CONFIG_KEYS is not set
1198# CONFIG_SECURITY is not set 1246# CONFIG_SECURITY is not set
1247# CONFIG_SECURITYFS is not set
1199# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1248# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1200CONFIG_CRYPTO=y 1249CONFIG_CRYPTO=y
1201 1250
1202# 1251#
1203# Crypto core or helper 1252# Crypto core or helper
1204# 1253#
1254CONFIG_CRYPTO_FIPS=y
1205CONFIG_CRYPTO_ALGAPI=y 1255CONFIG_CRYPTO_ALGAPI=y
1256CONFIG_CRYPTO_ALGAPI2=y
1206CONFIG_CRYPTO_AEAD=m 1257CONFIG_CRYPTO_AEAD=m
1258CONFIG_CRYPTO_AEAD2=y
1207CONFIG_CRYPTO_BLKCIPHER=m 1259CONFIG_CRYPTO_BLKCIPHER=m
1260CONFIG_CRYPTO_BLKCIPHER2=y
1208CONFIG_CRYPTO_HASH=m 1261CONFIG_CRYPTO_HASH=m
1262CONFIG_CRYPTO_HASH2=y
1263CONFIG_CRYPTO_RNG=m
1264CONFIG_CRYPTO_RNG2=y
1209CONFIG_CRYPTO_MANAGER=m 1265CONFIG_CRYPTO_MANAGER=m
1266CONFIG_CRYPTO_MANAGER2=y
1210# CONFIG_CRYPTO_GF128MUL is not set 1267# CONFIG_CRYPTO_GF128MUL is not set
1211# CONFIG_CRYPTO_NULL is not set 1268# CONFIG_CRYPTO_NULL is not set
1212# CONFIG_CRYPTO_CRYPTD is not set 1269# CONFIG_CRYPTO_CRYPTD is not set
@@ -1257,7 +1314,7 @@ CONFIG_CRYPTO_SHA1=m
1257# 1314#
1258# Ciphers 1315# Ciphers
1259# 1316#
1260# CONFIG_CRYPTO_AES is not set 1317CONFIG_CRYPTO_AES=m
1261# CONFIG_CRYPTO_ANUBIS is not set 1318# CONFIG_CRYPTO_ANUBIS is not set
1262# CONFIG_CRYPTO_ARC4 is not set 1319# CONFIG_CRYPTO_ARC4 is not set
1263# CONFIG_CRYPTO_BLOWFISH is not set 1320# CONFIG_CRYPTO_BLOWFISH is not set
@@ -1278,14 +1335,17 @@ CONFIG_CRYPTO_DES=m
1278# 1335#
1279CONFIG_CRYPTO_DEFLATE=y 1336CONFIG_CRYPTO_DEFLATE=y
1280CONFIG_CRYPTO_LZO=y 1337CONFIG_CRYPTO_LZO=y
1338
1339#
1340# Random Number Generation
1341#
1342CONFIG_CRYPTO_ANSI_CPRNG=m
1281# CONFIG_CRYPTO_HW is not set 1343# CONFIG_CRYPTO_HW is not set
1282 1344
1283# 1345#
1284# Library routines 1346# Library routines
1285# 1347#
1286CONFIG_BITREVERSE=y 1348CONFIG_BITREVERSE=y
1287# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1288# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1289CONFIG_CRC_CCITT=m 1349CONFIG_CRC_CCITT=m
1290CONFIG_CRC16=y 1350CONFIG_CRC16=y
1291CONFIG_CRC_T10DIF=m 1351CONFIG_CRC_T10DIF=m
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c
index 0c6e02f80a31..066252eebf61 100644
--- a/arch/avr32/mach-at32ap/at32ap700x.c
+++ b/arch/avr32/mach-at32ap/at32ap700x.c
@@ -967,28 +967,28 @@ static inline void configure_usart0_pins(void)
967{ 967{
968 u32 pin_mask = (1 << 8) | (1 << 9); /* RXD & TXD */ 968 u32 pin_mask = (1 << 8) | (1 << 9); /* RXD & TXD */
969 969
970 select_peripheral(PIOA, pin_mask, PERIPH_B, 0); 970 select_peripheral(PIOA, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
971} 971}
972 972
973static inline void configure_usart1_pins(void) 973static inline void configure_usart1_pins(void)
974{ 974{
975 u32 pin_mask = (1 << 17) | (1 << 18); /* RXD & TXD */ 975 u32 pin_mask = (1 << 17) | (1 << 18); /* RXD & TXD */
976 976
977 select_peripheral(PIOA, pin_mask, PERIPH_A, 0); 977 select_peripheral(PIOA, pin_mask, PERIPH_A, AT32_GPIOF_PULLUP);
978} 978}
979 979
980static inline void configure_usart2_pins(void) 980static inline void configure_usart2_pins(void)
981{ 981{
982 u32 pin_mask = (1 << 26) | (1 << 27); /* RXD & TXD */ 982 u32 pin_mask = (1 << 26) | (1 << 27); /* RXD & TXD */
983 983
984 select_peripheral(PIOB, pin_mask, PERIPH_B, 0); 984 select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
985} 985}
986 986
987static inline void configure_usart3_pins(void) 987static inline void configure_usart3_pins(void)
988{ 988{
989 u32 pin_mask = (1 << 18) | (1 << 17); /* RXD & TXD */ 989 u32 pin_mask = (1 << 18) | (1 << 17); /* RXD & TXD */
990 990
991 select_peripheral(PIOB, pin_mask, PERIPH_B, 0); 991 select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
992} 992}
993 993
994static struct platform_device *__initdata at32_usarts[4]; 994static struct platform_device *__initdata at32_usarts[4];
diff --git a/arch/frv/kernel/sys_frv.c b/arch/frv/kernel/sys_frv.c
index 49b2cf2c38f3..baadc97f8627 100644
--- a/arch/frv/kernel/sys_frv.c
+++ b/arch/frv/kernel/sys_frv.c
@@ -35,22 +35,21 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
35 int error = -EBADF; 35 int error = -EBADF;
36 struct file * file = NULL; 36 struct file * file = NULL;
37 37
38 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
39 if (!(flags & MAP_ANONYMOUS)) {
40 file = fget(fd);
41 if (!file)
42 goto out;
43 }
44
45 /* As with sparc32, make sure the shift for mmap2 is constant 38 /* As with sparc32, make sure the shift for mmap2 is constant
46 (12), no matter what PAGE_SIZE we have.... */ 39 (12), no matter what PAGE_SIZE we have.... */
47 40
48 /* But unlike sparc32, don't just silently break if we're 41 /* But unlike sparc32, don't just silently break if we're
49 trying to map something we can't */ 42 trying to map something we can't */
50 if (pgoff & ((1<<(PAGE_SHIFT-12))-1)) 43 if (pgoff & ((1 << (PAGE_SHIFT - 12)) - 1))
51 return -EINVAL; 44 return -EINVAL;
45 pgoff >>= PAGE_SHIFT - 12;
52 46
53 pgoff >>= (PAGE_SHIFT - 12); 47 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
48 if (!(flags & MAP_ANONYMOUS)) {
49 file = fget(fd);
50 if (!file)
51 goto out;
52 }
54 53
55 down_write(&current->mm->mmap_sem); 54 down_write(&current->mm->mmap_sem);
56 error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); 55 error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
diff --git a/arch/ia64/configs/generic_defconfig b/arch/ia64/configs/generic_defconfig
index e05f9e1d3faa..27eb67604c53 100644
--- a/arch/ia64/configs/generic_defconfig
+++ b/arch/ia64/configs/generic_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc1 3# Linux kernel version: 2.6.28-rc7
4# Mon Aug 4 15:38:01 2008 4# Mon Dec 8 08:12:07 2008
5# 5#
6CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 6CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
7 7
@@ -26,6 +26,7 @@ CONFIG_LOG_BUF_SHIFT=20
26CONFIG_CGROUPS=y 26CONFIG_CGROUPS=y
27# CONFIG_CGROUP_DEBUG is not set 27# CONFIG_CGROUP_DEBUG is not set
28# CONFIG_CGROUP_NS is not set 28# CONFIG_CGROUP_NS is not set
29# CONFIG_CGROUP_FREEZER is not set
29# CONFIG_CGROUP_DEVICE is not set 30# CONFIG_CGROUP_DEVICE is not set
30CONFIG_CPUSETS=y 31CONFIG_CPUSETS=y
31# CONFIG_GROUP_SCHED is not set 32# CONFIG_GROUP_SCHED is not set
@@ -46,7 +47,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SYSCTL=y 47CONFIG_SYSCTL=y
47# CONFIG_EMBEDDED is not set 48# CONFIG_EMBEDDED is not set
48CONFIG_SYSCTL_SYSCALL=y 49CONFIG_SYSCTL_SYSCALL=y
49CONFIG_SYSCTL_SYSCALL_CHECK=y
50CONFIG_KALLSYMS=y 50CONFIG_KALLSYMS=y
51CONFIG_KALLSYMS_ALL=y 51CONFIG_KALLSYMS_ALL=y
52# CONFIG_KALLSYMS_EXTRA_PASS is not set 52# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -63,7 +63,9 @@ CONFIG_SIGNALFD=y
63CONFIG_TIMERFD=y 63CONFIG_TIMERFD=y
64CONFIG_EVENTFD=y 64CONFIG_EVENTFD=y
65CONFIG_SHMEM=y 65CONFIG_SHMEM=y
66CONFIG_AIO=y
66CONFIG_VM_EVENT_COUNTERS=y 67CONFIG_VM_EVENT_COUNTERS=y
68CONFIG_PCI_QUIRKS=y
67CONFIG_SLUB_DEBUG=y 69CONFIG_SLUB_DEBUG=y
68# CONFIG_SLAB is not set 70# CONFIG_SLAB is not set
69CONFIG_SLUB=y 71CONFIG_SLUB=y
@@ -72,15 +74,11 @@ CONFIG_SLUB=y
72# CONFIG_MARKERS is not set 74# CONFIG_MARKERS is not set
73CONFIG_HAVE_OPROFILE=y 75CONFIG_HAVE_OPROFILE=y
74# CONFIG_KPROBES is not set 76# CONFIG_KPROBES is not set
75# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
76# CONFIG_HAVE_IOREMAP_PROT is not set
77CONFIG_HAVE_KPROBES=y 77CONFIG_HAVE_KPROBES=y
78CONFIG_HAVE_KRETPROBES=y 78CONFIG_HAVE_KRETPROBES=y
79# CONFIG_HAVE_ARCH_TRACEHOOK is not set 79CONFIG_HAVE_ARCH_TRACEHOOK=y
80CONFIG_HAVE_DMA_ATTRS=y 80CONFIG_HAVE_DMA_ATTRS=y
81CONFIG_USE_GENERIC_SMP_HELPERS=y 81CONFIG_USE_GENERIC_SMP_HELPERS=y
82# CONFIG_HAVE_CLK is not set
83CONFIG_PROC_PAGE_MONITOR=y
84# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 82# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
85CONFIG_SLABINFO=y 83CONFIG_SLABINFO=y
86CONFIG_RT_MUTEXES=y 84CONFIG_RT_MUTEXES=y
@@ -113,6 +111,7 @@ CONFIG_DEFAULT_AS=y
113# CONFIG_DEFAULT_NOOP is not set 111# CONFIG_DEFAULT_NOOP is not set
114CONFIG_DEFAULT_IOSCHED="anticipatory" 112CONFIG_DEFAULT_IOSCHED="anticipatory"
115CONFIG_CLASSIC_RCU=y 113CONFIG_CLASSIC_RCU=y
114# CONFIG_FREEZER is not set
116 115
117# 116#
118# Processor type and features 117# Processor type and features
@@ -125,8 +124,6 @@ CONFIG_MMU=y
125CONFIG_SWIOTLB=y 124CONFIG_SWIOTLB=y
126CONFIG_IOMMU_HELPER=y 125CONFIG_IOMMU_HELPER=y
127CONFIG_RWSEM_XCHGADD_ALGORITHM=y 126CONFIG_RWSEM_XCHGADD_ALGORITHM=y
128# CONFIG_ARCH_HAS_ILOG2_U32 is not set
129# CONFIG_ARCH_HAS_ILOG2_U64 is not set
130CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 127CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
131CONFIG_GENERIC_FIND_NEXT_BIT=y 128CONFIG_GENERIC_FIND_NEXT_BIT=y
132CONFIG_GENERIC_CALIBRATE_DELAY=y 129CONFIG_GENERIC_CALIBRATE_DELAY=y
@@ -139,13 +136,16 @@ CONFIG_GENERIC_IOMAP=y
139CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 136CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
140CONFIG_IA64_UNCACHED_ALLOCATOR=y 137CONFIG_IA64_UNCACHED_ALLOCATOR=y
141CONFIG_AUDIT_ARCH=y 138CONFIG_AUDIT_ARCH=y
139# CONFIG_PARAVIRT_GUEST is not set
142CONFIG_IA64_GENERIC=y 140CONFIG_IA64_GENERIC=y
143# CONFIG_IA64_DIG is not set 141# CONFIG_IA64_DIG is not set
142# CONFIG_IA64_DIG_VTD is not set
144# CONFIG_IA64_HP_ZX1 is not set 143# CONFIG_IA64_HP_ZX1 is not set
145# CONFIG_IA64_HP_ZX1_SWIOTLB is not set 144# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
146# CONFIG_IA64_SGI_SN2 is not set 145# CONFIG_IA64_SGI_SN2 is not set
147# CONFIG_IA64_SGI_UV is not set 146# CONFIG_IA64_SGI_UV is not set
148# CONFIG_IA64_HP_SIM is not set 147# CONFIG_IA64_HP_SIM is not set
148# CONFIG_IA64_XEN_GUEST is not set
149# CONFIG_ITANIUM is not set 149# CONFIG_ITANIUM is not set
150CONFIG_MCKINLEY=y 150CONFIG_MCKINLEY=y
151# CONFIG_IA64_PAGE_SIZE_4KB is not set 151# CONFIG_IA64_PAGE_SIZE_4KB is not set
@@ -182,16 +182,17 @@ CONFIG_DISCONTIGMEM_MANUAL=y
182CONFIG_DISCONTIGMEM=y 182CONFIG_DISCONTIGMEM=y
183CONFIG_FLAT_NODE_MEM_MAP=y 183CONFIG_FLAT_NODE_MEM_MAP=y
184CONFIG_NEED_MULTIPLE_NODES=y 184CONFIG_NEED_MULTIPLE_NODES=y
185# CONFIG_SPARSEMEM_STATIC is not set
186CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 185CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
187CONFIG_PAGEFLAGS_EXTENDED=y 186CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 187CONFIG_SPLIT_PTLOCK_CPUS=4
189CONFIG_MIGRATION=y 188CONFIG_MIGRATION=y
190CONFIG_RESOURCES_64BIT=y 189CONFIG_RESOURCES_64BIT=y
190CONFIG_PHYS_ADDR_T_64BIT=y
191CONFIG_ZONE_DMA_FLAG=1 191CONFIG_ZONE_DMA_FLAG=1
192CONFIG_BOUNCE=y 192CONFIG_BOUNCE=y
193CONFIG_NR_QUICK=1 193CONFIG_NR_QUICK=1
194CONFIG_VIRT_TO_BUS=y 194CONFIG_VIRT_TO_BUS=y
195CONFIG_UNEVICTABLE_LRU=y
195CONFIG_MMU_NOTIFIER=y 196CONFIG_MMU_NOTIFIER=y
196CONFIG_ARCH_SELECT_MEMORY_MODEL=y 197CONFIG_ARCH_SELECT_MEMORY_MODEL=y
197CONFIG_ARCH_DISCONTIGMEM_ENABLE=y 198CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
@@ -231,12 +232,12 @@ CONFIG_EFI_VARS=y
231CONFIG_EFI_PCDP=y 232CONFIG_EFI_PCDP=y
232CONFIG_DMIID=y 233CONFIG_DMIID=y
233CONFIG_BINFMT_ELF=y 234CONFIG_BINFMT_ELF=y
235# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
236# CONFIG_HAVE_AOUT is not set
234CONFIG_BINFMT_MISC=m 237CONFIG_BINFMT_MISC=m
235 238
236# CONFIG_DMAR is not set
237
238# 239#
239# Power management and ACPI 240# Power management and ACPI options
240# 241#
241CONFIG_PM=y 242CONFIG_PM=y
242# CONFIG_PM_DEBUG is not set 243# CONFIG_PM_DEBUG is not set
@@ -248,7 +249,6 @@ CONFIG_ACPI_PROC_EVENT=y
248CONFIG_ACPI_BUTTON=m 249CONFIG_ACPI_BUTTON=m
249CONFIG_ACPI_FAN=m 250CONFIG_ACPI_FAN=m
250CONFIG_ACPI_DOCK=y 251CONFIG_ACPI_DOCK=y
251# CONFIG_ACPI_BAY is not set
252CONFIG_ACPI_PROCESSOR=m 252CONFIG_ACPI_PROCESSOR=m
253CONFIG_ACPI_HOTPLUG_CPU=y 253CONFIG_ACPI_HOTPLUG_CPU=y
254CONFIG_ACPI_THERMAL=m 254CONFIG_ACPI_THERMAL=m
@@ -256,9 +256,7 @@ CONFIG_ACPI_NUMA=y
256# CONFIG_ACPI_CUSTOM_DSDT is not set 256# CONFIG_ACPI_CUSTOM_DSDT is not set
257CONFIG_ACPI_BLACKLIST_YEAR=0 257CONFIG_ACPI_BLACKLIST_YEAR=0
258# CONFIG_ACPI_DEBUG is not set 258# CONFIG_ACPI_DEBUG is not set
259CONFIG_ACPI_EC=y
260# CONFIG_ACPI_PCI_SLOT is not set 259# CONFIG_ACPI_PCI_SLOT is not set
261CONFIG_ACPI_POWER=y
262CONFIG_ACPI_SYSTEM=y 260CONFIG_ACPI_SYSTEM=y
263CONFIG_ACPI_CONTAINER=m 261CONFIG_ACPI_CONTAINER=m
264 262
@@ -275,7 +273,7 @@ CONFIG_PCI_DOMAINS=y
275CONFIG_PCI_SYSCALL=y 273CONFIG_PCI_SYSCALL=y
276# CONFIG_PCIEPORTBUS is not set 274# CONFIG_PCIEPORTBUS is not set
277CONFIG_ARCH_SUPPORTS_MSI=y 275CONFIG_ARCH_SUPPORTS_MSI=y
278# CONFIG_PCI_MSI is not set 276CONFIG_PCI_MSI=y
279CONFIG_PCI_LEGACY=y 277CONFIG_PCI_LEGACY=y
280# CONFIG_PCI_DEBUG is not set 278# CONFIG_PCI_DEBUG is not set
281CONFIG_HOTPLUG_PCI=m 279CONFIG_HOTPLUG_PCI=m
@@ -286,6 +284,7 @@ CONFIG_HOTPLUG_PCI_ACPI=m
286# CONFIG_HOTPLUG_PCI_SHPC is not set 284# CONFIG_HOTPLUG_PCI_SHPC is not set
287# CONFIG_HOTPLUG_PCI_SGI is not set 285# CONFIG_HOTPLUG_PCI_SGI is not set
288# CONFIG_PCCARD is not set 286# CONFIG_PCCARD is not set
287CONFIG_DMAR=y
289CONFIG_NET=y 288CONFIG_NET=y
290 289
291# 290#
@@ -333,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_TIPC is not set 332# CONFIG_TIPC is not set
334# CONFIG_ATM is not set 333# CONFIG_ATM is not set
335# CONFIG_BRIDGE is not set 334# CONFIG_BRIDGE is not set
335# CONFIG_NET_DSA is not set
336# CONFIG_VLAN_8021Q is not set 336# CONFIG_VLAN_8021Q is not set
337# CONFIG_DECNET is not set 337# CONFIG_DECNET is not set
338# CONFIG_LLC2 is not set 338# CONFIG_LLC2 is not set
@@ -353,11 +353,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_IRDA is not set 353# CONFIG_IRDA is not set
354# CONFIG_BT is not set 354# CONFIG_BT is not set
355# CONFIG_AF_RXRPC is not set 355# CONFIG_AF_RXRPC is not set
356 356# CONFIG_PHONET is not set
357# 357CONFIG_WIRELESS=y
358# Wireless
359#
360# CONFIG_CFG80211 is not set 358# CONFIG_CFG80211 is not set
359CONFIG_WIRELESS_OLD_REGULATORY=y
361# CONFIG_WIRELESS_EXT is not set 360# CONFIG_WIRELESS_EXT is not set
362# CONFIG_MAC80211 is not set 361# CONFIG_MAC80211 is not set
363# CONFIG_IEEE80211 is not set 362# CONFIG_IEEE80211 is not set
@@ -385,7 +384,7 @@ CONFIG_PROC_EVENTS=y
385# CONFIG_MTD is not set 384# CONFIG_MTD is not set
386# CONFIG_PARPORT is not set 385# CONFIG_PARPORT is not set
387CONFIG_PNP=y 386CONFIG_PNP=y
388# CONFIG_PNP_DEBUG is not set 387# CONFIG_PNP_DEBUG_MESSAGES is not set
389 388
390# 389#
391# Protocols 390# Protocols
@@ -419,10 +418,9 @@ CONFIG_SGI_XP=m
419# CONFIG_HP_ILO is not set 418# CONFIG_HP_ILO is not set
420CONFIG_SGI_GRU=m 419CONFIG_SGI_GRU=m
421# CONFIG_SGI_GRU_DEBUG is not set 420# CONFIG_SGI_GRU_DEBUG is not set
421# CONFIG_C2PORT is not set
422CONFIG_HAVE_IDE=y 422CONFIG_HAVE_IDE=y
423CONFIG_IDE=y 423CONFIG_IDE=y
424CONFIG_IDE_MAX_HWIFS=4
425CONFIG_BLK_DEV_IDE=y
426 424
427# 425#
428# Please see Documentation/ide/ide.txt for help/info on IDE drives 426# Please see Documentation/ide/ide.txt for help/info on IDE drives
@@ -430,12 +428,12 @@ CONFIG_BLK_DEV_IDE=y
430CONFIG_IDE_TIMINGS=y 428CONFIG_IDE_TIMINGS=y
431CONFIG_IDE_ATAPI=y 429CONFIG_IDE_ATAPI=y
432# CONFIG_BLK_DEV_IDE_SATA is not set 430# CONFIG_BLK_DEV_IDE_SATA is not set
433CONFIG_BLK_DEV_IDEDISK=y 431CONFIG_IDE_GD=y
434# CONFIG_IDEDISK_MULTI_MODE is not set 432CONFIG_IDE_GD_ATA=y
433# CONFIG_IDE_GD_ATAPI is not set
435CONFIG_BLK_DEV_IDECD=y 434CONFIG_BLK_DEV_IDECD=y
436CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 435CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
437# CONFIG_BLK_DEV_IDETAPE is not set 436# CONFIG_BLK_DEV_IDETAPE is not set
438CONFIG_BLK_DEV_IDEFLOPPY=y
439CONFIG_BLK_DEV_IDESCSI=m 437CONFIG_BLK_DEV_IDESCSI=m
440# CONFIG_BLK_DEV_IDEACPI is not set 438# CONFIG_BLK_DEV_IDEACPI is not set
441# CONFIG_IDE_TASK_IOCTL is not set 439# CONFIG_IDE_TASK_IOCTL is not set
@@ -705,6 +703,9 @@ CONFIG_TULIP=m
705# CONFIG_IBM_NEW_EMAC_RGMII is not set 703# CONFIG_IBM_NEW_EMAC_RGMII is not set
706# CONFIG_IBM_NEW_EMAC_TAH is not set 704# CONFIG_IBM_NEW_EMAC_TAH is not set
707# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 705# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
706# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
707# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
708# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
708CONFIG_NET_PCI=y 709CONFIG_NET_PCI=y
709# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
710# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
@@ -725,11 +726,11 @@ CONFIG_E100=m
725# CONFIG_TLAN is not set 726# CONFIG_TLAN is not set
726# CONFIG_VIA_RHINE is not set 727# CONFIG_VIA_RHINE is not set
727# CONFIG_SC92031 is not set 728# CONFIG_SC92031 is not set
729# CONFIG_ATL2 is not set
728CONFIG_NETDEV_1000=y 730CONFIG_NETDEV_1000=y
729# CONFIG_ACENIC is not set 731# CONFIG_ACENIC is not set
730# CONFIG_DL2K is not set 732# CONFIG_DL2K is not set
731CONFIG_E1000=y 733CONFIG_E1000=y
732# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
733# CONFIG_E1000E is not set 734# CONFIG_E1000E is not set
734# CONFIG_IP1000 is not set 735# CONFIG_IP1000 is not set
735CONFIG_IGB=y 736CONFIG_IGB=y
@@ -747,18 +748,22 @@ CONFIG_TIGON3=y
747# CONFIG_QLA3XXX is not set 748# CONFIG_QLA3XXX is not set
748# CONFIG_ATL1 is not set 749# CONFIG_ATL1 is not set
749# CONFIG_ATL1E is not set 750# CONFIG_ATL1E is not set
751# CONFIG_JME is not set
750CONFIG_NETDEV_10000=y 752CONFIG_NETDEV_10000=y
751# CONFIG_CHELSIO_T1 is not set 753# CONFIG_CHELSIO_T1 is not set
752# CONFIG_CHELSIO_T3 is not set 754# CONFIG_CHELSIO_T3 is not set
755# CONFIG_ENIC is not set
753# CONFIG_IXGBE is not set 756# CONFIG_IXGBE is not set
754# CONFIG_IXGB is not set 757# CONFIG_IXGB is not set
755# CONFIG_S2IO is not set 758# CONFIG_S2IO is not set
756# CONFIG_MYRI10GE is not set 759# CONFIG_MYRI10GE is not set
757# CONFIG_NETXEN_NIC is not set 760# CONFIG_NETXEN_NIC is not set
758# CONFIG_NIU is not set 761# CONFIG_NIU is not set
762# CONFIG_MLX4_EN is not set
759# CONFIG_MLX4_CORE is not set 763# CONFIG_MLX4_CORE is not set
760# CONFIG_TEHUTI is not set 764# CONFIG_TEHUTI is not set
761# CONFIG_BNX2X is not set 765# CONFIG_BNX2X is not set
766# CONFIG_QLGE is not set
762# CONFIG_SFC is not set 767# CONFIG_SFC is not set
763# CONFIG_TR is not set 768# CONFIG_TR is not set
764 769
@@ -826,9 +831,11 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
826CONFIG_MOUSE_PS2_SYNAPTICS=y 831CONFIG_MOUSE_PS2_SYNAPTICS=y
827CONFIG_MOUSE_PS2_LIFEBOOK=y 832CONFIG_MOUSE_PS2_LIFEBOOK=y
828CONFIG_MOUSE_PS2_TRACKPOINT=y 833CONFIG_MOUSE_PS2_TRACKPOINT=y
834# CONFIG_MOUSE_PS2_ELANTECH is not set
829# CONFIG_MOUSE_PS2_TOUCHKIT is not set 835# CONFIG_MOUSE_PS2_TOUCHKIT is not set
830# CONFIG_MOUSE_SERIAL is not set 836# CONFIG_MOUSE_SERIAL is not set
831# CONFIG_MOUSE_APPLETOUCH is not set 837# CONFIG_MOUSE_APPLETOUCH is not set
838# CONFIG_MOUSE_BCM5974 is not set
832# CONFIG_MOUSE_VSXXXAA is not set 839# CONFIG_MOUSE_VSXXXAA is not set
833# CONFIG_INPUT_JOYSTICK is not set 840# CONFIG_INPUT_JOYSTICK is not set
834# CONFIG_INPUT_TABLET is not set 841# CONFIG_INPUT_TABLET is not set
@@ -942,15 +949,16 @@ CONFIG_HWMON=y
942# CONFIG_SENSORS_VT8231 is not set 949# CONFIG_SENSORS_VT8231 is not set
943# CONFIG_SENSORS_W83627HF is not set 950# CONFIG_SENSORS_W83627HF is not set
944# CONFIG_SENSORS_W83627EHF is not set 951# CONFIG_SENSORS_W83627EHF is not set
952# CONFIG_SENSORS_LIS3LV02D is not set
945# CONFIG_HWMON_DEBUG_CHIP is not set 953# CONFIG_HWMON_DEBUG_CHIP is not set
946CONFIG_THERMAL=m 954CONFIG_THERMAL=m
947# CONFIG_THERMAL_HWMON is not set 955# CONFIG_THERMAL_HWMON is not set
948# CONFIG_WATCHDOG is not set 956# CONFIG_WATCHDOG is not set
957CONFIG_SSB_POSSIBLE=y
949 958
950# 959#
951# Sonics Silicon Backplane 960# Sonics Silicon Backplane
952# 961#
953CONFIG_SSB_POSSIBLE=y
954# CONFIG_SSB is not set 962# CONFIG_SSB is not set
955 963
956# 964#
@@ -959,6 +967,8 @@ CONFIG_SSB_POSSIBLE=y
959# CONFIG_MFD_CORE is not set 967# CONFIG_MFD_CORE is not set
960# CONFIG_MFD_SM501 is not set 968# CONFIG_MFD_SM501 is not set
961# CONFIG_HTC_PASIC3 is not set 969# CONFIG_HTC_PASIC3 is not set
970# CONFIG_MFD_TMIO is not set
971# CONFIG_REGULATOR is not set
962 972
963# 973#
964# Multimedia devices 974# Multimedia devices
@@ -1009,6 +1019,7 @@ CONFIG_VGA_CONSOLE=y
1009# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1019# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1010CONFIG_DUMMY_CONSOLE=y 1020CONFIG_DUMMY_CONSOLE=y
1011CONFIG_SOUND=m 1021CONFIG_SOUND=m
1022CONFIG_SOUND_OSS_CORE=y
1012CONFIG_SND=m 1023CONFIG_SND=m
1013CONFIG_SND_TIMER=m 1024CONFIG_SND_TIMER=m
1014CONFIG_SND_PCM=m 1025CONFIG_SND_PCM=m
@@ -1113,8 +1124,7 @@ CONFIG_HID=y
1113# USB Input Devices 1124# USB Input Devices
1114# 1125#
1115CONFIG_USB_HID=m 1126CONFIG_USB_HID=m
1116# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1127# CONFIG_HID_PID is not set
1117# CONFIG_HID_FF is not set
1118# CONFIG_USB_HIDDEV is not set 1128# CONFIG_USB_HIDDEV is not set
1119 1129
1120# 1130#
@@ -1122,6 +1132,34 @@ CONFIG_USB_HID=m
1122# 1132#
1123# CONFIG_USB_KBD is not set 1133# CONFIG_USB_KBD is not set
1124# CONFIG_USB_MOUSE is not set 1134# CONFIG_USB_MOUSE is not set
1135
1136#
1137# Special HID drivers
1138#
1139CONFIG_HID_COMPAT=y
1140CONFIG_HID_A4TECH=m
1141CONFIG_HID_APPLE=m
1142CONFIG_HID_BELKIN=m
1143CONFIG_HID_BRIGHT=m
1144CONFIG_HID_CHERRY=m
1145CONFIG_HID_CHICONY=m
1146CONFIG_HID_CYPRESS=m
1147CONFIG_HID_DELL=m
1148CONFIG_HID_EZKEY=m
1149CONFIG_HID_GYRATION=m
1150CONFIG_HID_LOGITECH=m
1151# CONFIG_LOGITECH_FF is not set
1152# CONFIG_LOGIRUMBLEPAD2_FF is not set
1153CONFIG_HID_MICROSOFT=m
1154CONFIG_HID_MONTEREY=m
1155CONFIG_HID_PANTHERLORD=m
1156# CONFIG_PANTHERLORD_FF is not set
1157CONFIG_HID_PETALYNX=m
1158CONFIG_HID_SAMSUNG=m
1159CONFIG_HID_SONY=m
1160CONFIG_HID_SUNPLUS=m
1161# CONFIG_THRUSTMASTER_FF is not set
1162# CONFIG_ZEROPLUS_FF is not set
1125CONFIG_USB_SUPPORT=y 1163CONFIG_USB_SUPPORT=y
1126CONFIG_USB_ARCH_HAS_HCD=y 1164CONFIG_USB_ARCH_HAS_HCD=y
1127CONFIG_USB_ARCH_HAS_OHCI=y 1165CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1138,6 +1176,9 @@ CONFIG_USB_DEVICE_CLASS=y
1138# CONFIG_USB_DYNAMIC_MINORS is not set 1176# CONFIG_USB_DYNAMIC_MINORS is not set
1139# CONFIG_USB_SUSPEND is not set 1177# CONFIG_USB_SUSPEND is not set
1140# CONFIG_USB_OTG is not set 1178# CONFIG_USB_OTG is not set
1179CONFIG_USB_MON=y
1180# CONFIG_USB_WUSB is not set
1181# CONFIG_USB_WUSB_CBAF is not set
1141 1182
1142# 1183#
1143# USB Host Controller Drivers 1184# USB Host Controller Drivers
@@ -1155,6 +1196,12 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1155CONFIG_USB_UHCI_HCD=m 1196CONFIG_USB_UHCI_HCD=m
1156# CONFIG_USB_SL811_HCD is not set 1197# CONFIG_USB_SL811_HCD is not set
1157# CONFIG_USB_R8A66597_HCD is not set 1198# CONFIG_USB_R8A66597_HCD is not set
1199# CONFIG_USB_WHCI_HCD is not set
1200# CONFIG_USB_HWA_HCD is not set
1201
1202#
1203# Enable Host or Gadget support to see Inventra options
1204#
1158 1205
1159# 1206#
1160# USB Device Class drivers 1207# USB Device Class drivers
@@ -1162,13 +1209,14 @@ CONFIG_USB_UHCI_HCD=m
1162# CONFIG_USB_ACM is not set 1209# CONFIG_USB_ACM is not set
1163# CONFIG_USB_PRINTER is not set 1210# CONFIG_USB_PRINTER is not set
1164# CONFIG_USB_WDM is not set 1211# CONFIG_USB_WDM is not set
1212# CONFIG_USB_TMC is not set
1165 1213
1166# 1214#
1167# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1215# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1168# 1216#
1169 1217
1170# 1218#
1171# may also be needed; see USB_STORAGE Help for more information 1219# see USB_STORAGE Help for more information
1172# 1220#
1173CONFIG_USB_STORAGE=m 1221CONFIG_USB_STORAGE=m
1174# CONFIG_USB_STORAGE_DEBUG is not set 1222# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1191,7 +1239,6 @@ CONFIG_USB_STORAGE=m
1191# 1239#
1192# CONFIG_USB_MDC800 is not set 1240# CONFIG_USB_MDC800 is not set
1193# CONFIG_USB_MICROTEK is not set 1241# CONFIG_USB_MICROTEK is not set
1194CONFIG_USB_MON=y
1195 1242
1196# 1243#
1197# USB port drivers 1244# USB port drivers
@@ -1204,7 +1251,7 @@ CONFIG_USB_MON=y
1204# CONFIG_USB_EMI62 is not set 1251# CONFIG_USB_EMI62 is not set
1205# CONFIG_USB_EMI26 is not set 1252# CONFIG_USB_EMI26 is not set
1206# CONFIG_USB_ADUTUX is not set 1253# CONFIG_USB_ADUTUX is not set
1207# CONFIG_USB_AUERSWALD is not set 1254# CONFIG_USB_SEVSEG is not set
1208# CONFIG_USB_RIO500 is not set 1255# CONFIG_USB_RIO500 is not set
1209# CONFIG_USB_LEGOTOWER is not set 1256# CONFIG_USB_LEGOTOWER is not set
1210# CONFIG_USB_LCD is not set 1257# CONFIG_USB_LCD is not set
@@ -1222,7 +1269,9 @@ CONFIG_USB_MON=y
1222# CONFIG_USB_IOWARRIOR is not set 1269# CONFIG_USB_IOWARRIOR is not set
1223# CONFIG_USB_TEST is not set 1270# CONFIG_USB_TEST is not set
1224# CONFIG_USB_ISIGHTFW is not set 1271# CONFIG_USB_ISIGHTFW is not set
1272# CONFIG_USB_VST is not set
1225# CONFIG_USB_GADGET is not set 1273# CONFIG_USB_GADGET is not set
1274# CONFIG_UWB is not set
1226# CONFIG_MMC is not set 1275# CONFIG_MMC is not set
1227# CONFIG_MEMSTICK is not set 1276# CONFIG_MEMSTICK is not set
1228# CONFIG_NEW_LEDS is not set 1277# CONFIG_NEW_LEDS is not set
@@ -1246,6 +1295,15 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y
1246# CONFIG_RTC_CLASS is not set 1295# CONFIG_RTC_CLASS is not set
1247# CONFIG_DMADEVICES is not set 1296# CONFIG_DMADEVICES is not set
1248# CONFIG_UIO is not set 1297# CONFIG_UIO is not set
1298# CONFIG_STAGING is not set
1299CONFIG_STAGING_EXCLUDE_BUILD=y
1300
1301#
1302# HP Simulator drivers
1303#
1304# CONFIG_HP_SIMETH is not set
1305# CONFIG_HP_SIMSERIAL is not set
1306# CONFIG_HP_SIMSCSI is not set
1249CONFIG_MSPEC=m 1307CONFIG_MSPEC=m
1250 1308
1251# 1309#
@@ -1260,7 +1318,7 @@ CONFIG_EXT3_FS=y
1260CONFIG_EXT3_FS_XATTR=y 1318CONFIG_EXT3_FS_XATTR=y
1261CONFIG_EXT3_FS_POSIX_ACL=y 1319CONFIG_EXT3_FS_POSIX_ACL=y
1262CONFIG_EXT3_FS_SECURITY=y 1320CONFIG_EXT3_FS_SECURITY=y
1263# CONFIG_EXT4DEV_FS is not set 1321# CONFIG_EXT4_FS is not set
1264CONFIG_JBD=y 1322CONFIG_JBD=y
1265CONFIG_FS_MBCACHE=y 1323CONFIG_FS_MBCACHE=y
1266CONFIG_REISERFS_FS=y 1324CONFIG_REISERFS_FS=y
@@ -1271,6 +1329,7 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
1271CONFIG_REISERFS_FS_SECURITY=y 1329CONFIG_REISERFS_FS_SECURITY=y
1272# CONFIG_JFS_FS is not set 1330# CONFIG_JFS_FS is not set
1273CONFIG_FS_POSIX_ACL=y 1331CONFIG_FS_POSIX_ACL=y
1332CONFIG_FILE_LOCKING=y
1274CONFIG_XFS_FS=y 1333CONFIG_XFS_FS=y
1275# CONFIG_XFS_QUOTA is not set 1334# CONFIG_XFS_QUOTA is not set
1276# CONFIG_XFS_POSIX_ACL is not set 1335# CONFIG_XFS_POSIX_ACL is not set
@@ -1282,8 +1341,8 @@ CONFIG_DNOTIFY=y
1282CONFIG_INOTIFY=y 1341CONFIG_INOTIFY=y
1283CONFIG_INOTIFY_USER=y 1342CONFIG_INOTIFY_USER=y
1284# CONFIG_QUOTA is not set 1343# CONFIG_QUOTA is not set
1285CONFIG_AUTOFS_FS=y 1344CONFIG_AUTOFS_FS=m
1286CONFIG_AUTOFS4_FS=y 1345CONFIG_AUTOFS4_FS=m
1287# CONFIG_FUSE_FS is not set 1346# CONFIG_FUSE_FS is not set
1288 1347
1289# 1348#
@@ -1314,6 +1373,7 @@ CONFIG_PROC_FS=y
1314CONFIG_PROC_KCORE=y 1373CONFIG_PROC_KCORE=y
1315CONFIG_PROC_VMCORE=y 1374CONFIG_PROC_VMCORE=y
1316CONFIG_PROC_SYSCTL=y 1375CONFIG_PROC_SYSCTL=y
1376CONFIG_PROC_PAGE_MONITOR=y
1317CONFIG_SYSFS=y 1377CONFIG_SYSFS=y
1318CONFIG_TMPFS=y 1378CONFIG_TMPFS=y
1319# CONFIG_TMPFS_POSIX_ACL is not set 1379# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1356,6 +1416,7 @@ CONFIG_NFS_COMMON=y
1356CONFIG_SUNRPC=m 1416CONFIG_SUNRPC=m
1357CONFIG_SUNRPC_GSS=m 1417CONFIG_SUNRPC_GSS=m
1358CONFIG_SUNRPC_XPRT_RDMA=m 1418CONFIG_SUNRPC_XPRT_RDMA=m
1419# CONFIG_SUNRPC_REGISTER_V4 is not set
1359CONFIG_RPCSEC_GSS_KRB5=m 1420CONFIG_RPCSEC_GSS_KRB5=m
1360# CONFIG_RPCSEC_GSS_SPKM3 is not set 1421# CONFIG_RPCSEC_GSS_SPKM3 is not set
1361CONFIG_SMB_FS=m 1422CONFIG_SMB_FS=m
@@ -1433,38 +1494,6 @@ CONFIG_NLS_KOI8_R=m
1433CONFIG_NLS_KOI8_U=m 1494CONFIG_NLS_KOI8_U=m
1434CONFIG_NLS_UTF8=m 1495CONFIG_NLS_UTF8=m
1435# CONFIG_DLM is not set 1496# CONFIG_DLM is not set
1436CONFIG_HAVE_KVM=y
1437CONFIG_VIRTUALIZATION=y
1438# CONFIG_KVM is not set
1439
1440#
1441# Library routines
1442#
1443CONFIG_BITREVERSE=y
1444# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1445# CONFIG_CRC_CCITT is not set
1446# CONFIG_CRC16 is not set
1447CONFIG_CRC_T10DIF=y
1448CONFIG_CRC_ITU_T=m
1449CONFIG_CRC32=y
1450# CONFIG_CRC7 is not set
1451# CONFIG_LIBCRC32C is not set
1452CONFIG_GENERIC_ALLOCATOR=y
1453CONFIG_PLIST=y
1454CONFIG_HAS_IOMEM=y
1455CONFIG_HAS_IOPORT=y
1456CONFIG_HAS_DMA=y
1457CONFIG_GENERIC_HARDIRQS=y
1458CONFIG_GENERIC_IRQ_PROBE=y
1459CONFIG_GENERIC_PENDING_IRQ=y
1460CONFIG_IRQ_PER_CPU=y
1461
1462#
1463# HP Simulator drivers
1464#
1465# CONFIG_HP_SIMETH is not set
1466# CONFIG_HP_SIMSERIAL is not set
1467# CONFIG_HP_SIMSCSI is not set
1468 1497
1469# 1498#
1470# Kernel hacking 1499# Kernel hacking
@@ -1503,8 +1532,19 @@ CONFIG_DEBUG_MEMORY_INIT=y
1503# CONFIG_DEBUG_SG is not set 1532# CONFIG_DEBUG_SG is not set
1504# CONFIG_BOOT_PRINTK_DELAY is not set 1533# CONFIG_BOOT_PRINTK_DELAY is not set
1505# CONFIG_RCU_TORTURE_TEST is not set 1534# CONFIG_RCU_TORTURE_TEST is not set
1535# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1506# CONFIG_BACKTRACE_SELF_TEST is not set 1536# CONFIG_BACKTRACE_SELF_TEST is not set
1537# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1507# CONFIG_FAULT_INJECTION is not set 1538# CONFIG_FAULT_INJECTION is not set
1539CONFIG_SYSCTL_SYSCALL_CHECK=y
1540
1541#
1542# Tracers
1543#
1544# CONFIG_SCHED_TRACER is not set
1545# CONFIG_CONTEXT_SWITCH_TRACER is not set
1546# CONFIG_BOOT_TRACER is not set
1547# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1508# CONFIG_SAMPLES is not set 1548# CONFIG_SAMPLES is not set
1509CONFIG_IA64_GRANULE_16MB=y 1549CONFIG_IA64_GRANULE_16MB=y
1510# CONFIG_IA64_GRANULE_64MB is not set 1550# CONFIG_IA64_GRANULE_64MB is not set
@@ -1519,14 +1559,19 @@ CONFIG_SYSVIPC_COMPAT=y
1519# 1559#
1520# CONFIG_KEYS is not set 1560# CONFIG_KEYS is not set
1521# CONFIG_SECURITY is not set 1561# CONFIG_SECURITY is not set
1562# CONFIG_SECURITYFS is not set
1522# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1563# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1523CONFIG_CRYPTO=y 1564CONFIG_CRYPTO=y
1524 1565
1525# 1566#
1526# Crypto core or helper 1567# Crypto core or helper
1527# 1568#
1569# CONFIG_CRYPTO_FIPS is not set
1528CONFIG_CRYPTO_ALGAPI=y 1570CONFIG_CRYPTO_ALGAPI=y
1571CONFIG_CRYPTO_AEAD=m
1529CONFIG_CRYPTO_BLKCIPHER=m 1572CONFIG_CRYPTO_BLKCIPHER=m
1573CONFIG_CRYPTO_HASH=m
1574CONFIG_CRYPTO_RNG=m
1530CONFIG_CRYPTO_MANAGER=m 1575CONFIG_CRYPTO_MANAGER=m
1531# CONFIG_CRYPTO_GF128MUL is not set 1576# CONFIG_CRYPTO_GF128MUL is not set
1532# CONFIG_CRYPTO_NULL is not set 1577# CONFIG_CRYPTO_NULL is not set
@@ -1599,5 +1644,36 @@ CONFIG_CRYPTO_DES=m
1599# 1644#
1600# CONFIG_CRYPTO_DEFLATE is not set 1645# CONFIG_CRYPTO_DEFLATE is not set
1601# CONFIG_CRYPTO_LZO is not set 1646# CONFIG_CRYPTO_LZO is not set
1647
1648#
1649# Random Number Generation
1650#
1651# CONFIG_CRYPTO_ANSI_CPRNG is not set
1602CONFIG_CRYPTO_HW=y 1652CONFIG_CRYPTO_HW=y
1603# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1653# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1654CONFIG_HAVE_KVM=y
1655CONFIG_VIRTUALIZATION=y
1656# CONFIG_KVM is not set
1657# CONFIG_VIRTIO_PCI is not set
1658# CONFIG_VIRTIO_BALLOON is not set
1659
1660#
1661# Library routines
1662#
1663CONFIG_BITREVERSE=y
1664# CONFIG_CRC_CCITT is not set
1665# CONFIG_CRC16 is not set
1666CONFIG_CRC_T10DIF=y
1667CONFIG_CRC_ITU_T=m
1668CONFIG_CRC32=y
1669# CONFIG_CRC7 is not set
1670# CONFIG_LIBCRC32C is not set
1671CONFIG_GENERIC_ALLOCATOR=y
1672CONFIG_PLIST=y
1673CONFIG_HAS_IOMEM=y
1674CONFIG_HAS_IOPORT=y
1675CONFIG_HAS_DMA=y
1676CONFIG_GENERIC_HARDIRQS=y
1677CONFIG_GENERIC_IRQ_PROBE=y
1678CONFIG_GENERIC_PENDING_IRQ=y
1679CONFIG_IRQ_PER_CPU=y
diff --git a/arch/ia64/hp/sim/Kconfig b/arch/ia64/hp/sim/Kconfig
index f92306bbedb8..8d513a8c5266 100644
--- a/arch/ia64/hp/sim/Kconfig
+++ b/arch/ia64/hp/sim/Kconfig
@@ -4,6 +4,7 @@ menu "HP Simulator drivers"
4 4
5config HP_SIMETH 5config HP_SIMETH
6 bool "Simulated Ethernet " 6 bool "Simulated Ethernet "
7 depends on NET
7 8
8config HP_SIMSERIAL 9config HP_SIMSERIAL
9 bool "Simulated serial driver support" 10 bool "Simulated serial driver support"
diff --git a/arch/ia64/include/asm/paravirt_privop.h b/arch/ia64/include/asm/paravirt_privop.h
index 0b597424fcfc..33c8e55f5775 100644
--- a/arch/ia64/include/asm/paravirt_privop.h
+++ b/arch/ia64/include/asm/paravirt_privop.h
@@ -83,7 +83,6 @@ extern unsigned long ia64_native_getreg_func(int regnum);
83#define paravirt_getreg(reg) \ 83#define paravirt_getreg(reg) \
84 ({ \ 84 ({ \
85 unsigned long res; \ 85 unsigned long res; \
86 BUILD_BUG_ON(!__builtin_constant_p(reg)); \
87 if ((reg) == _IA64_REG_IP) \ 86 if ((reg) == _IA64_REG_IP) \
88 res = ia64_native_getreg(_IA64_REG_IP); \ 87 res = ia64_native_getreg(_IA64_REG_IP); \
89 else \ 88 else \
diff --git a/arch/ia64/include/asm/ptrace.h b/arch/ia64/include/asm/ptrace.h
index 6417c1ecb44e..14055c636adf 100644
--- a/arch/ia64/include/asm/ptrace.h
+++ b/arch/ia64/include/asm/ptrace.h
@@ -325,8 +325,6 @@ static inline unsigned long user_stack_pointer(struct pt_regs *regs)
325 #define arch_has_block_step() (1) 325 #define arch_has_block_step() (1)
326 extern void user_enable_block_step(struct task_struct *); 326 extern void user_enable_block_step(struct task_struct *);
327 327
328#define __ARCH_WANT_COMPAT_SYS_PTRACE
329
330#endif /* !__KERNEL__ */ 328#endif /* !__KERNEL__ */
331 329
332/* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */ 330/* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c
index 26228e2d01ae..c75b914f2d6b 100644
--- a/arch/ia64/kernel/topology.c
+++ b/arch/ia64/kernel/topology.c
@@ -53,10 +53,12 @@ int __ref arch_register_cpu(int num)
53} 53}
54EXPORT_SYMBOL(arch_register_cpu); 54EXPORT_SYMBOL(arch_register_cpu);
55 55
56void arch_unregister_cpu(int num) 56void __ref arch_unregister_cpu(int num)
57{ 57{
58 unregister_cpu(&sysfs_cpus[num].cpu); 58 unregister_cpu(&sysfs_cpus[num].cpu);
59#ifdef CONFIG_ACPI
59 unmap_cpu_from_node(num, cpu_to_node(num)); 60 unmap_cpu_from_node(num, cpu_to_node(num));
61#endif
60} 62}
61EXPORT_SYMBOL(arch_unregister_cpu); 63EXPORT_SYMBOL(arch_unregister_cpu);
62#else 64#else
diff --git a/arch/ia64/kvm/Makefile b/arch/ia64/kvm/Makefile
index 3ab4d6d50704..92cef66ca268 100644
--- a/arch/ia64/kvm/Makefile
+++ b/arch/ia64/kvm/Makefile
@@ -58,7 +58,7 @@ endif
58kvm-objs := $(common-objs) kvm-ia64.o kvm_fw.o 58kvm-objs := $(common-objs) kvm-ia64.o kvm_fw.o
59obj-$(CONFIG_KVM) += kvm.o 59obj-$(CONFIG_KVM) += kvm.o
60 60
61EXTRA_CFLAGS_vcpu.o += -mfixed-range=f2-f5,f12-f127 61CFLAGS_vcpu.o += -mfixed-range=f2-f5,f12-f127
62kvm-intel-objs = vmm.o vmm_ivt.o trampoline.o vcpu.o optvfault.o mmio.o \ 62kvm-intel-objs = vmm.o vmm_ivt.o trampoline.o vcpu.o optvfault.o mmio.o \
63 vtlb.o process.o 63 vtlb.o process.o
64#Add link memcpy and memset to avoid possible structure assignment error 64#Add link memcpy and memset to avoid possible structure assignment error
diff --git a/arch/ia64/kvm/optvfault.S b/arch/ia64/kvm/optvfault.S
index 634abad979b5..32254ce9a1bd 100644
--- a/arch/ia64/kvm/optvfault.S
+++ b/arch/ia64/kvm/optvfault.S
@@ -107,10 +107,10 @@ END(kvm_vps_resume_normal)
107GLOBAL_ENTRY(kvm_vps_resume_handler) 107GLOBAL_ENTRY(kvm_vps_resume_handler)
108 movl r30 = PAL_VPS_RESUME_HANDLER 108 movl r30 = PAL_VPS_RESUME_HANDLER
109 ;; 109 ;;
110 ld8 r27=[r25] 110 ld8 r26=[r25]
111 shr r17=r17,IA64_ISR_IR_BIT 111 shr r17=r17,IA64_ISR_IR_BIT
112 ;; 112 ;;
113 dep r27=r17,r27,63,1 // bit 63 of r27 indicate whether enable CFLE 113 dep r26=r17,r26,63,1 // bit 63 of r26 indicate whether enable CFLE
114 mov pr=r23,-2 114 mov pr=r23,-2
115 br.sptk.many kvm_vps_entry 115 br.sptk.many kvm_vps_entry
116END(kvm_vps_resume_handler) 116END(kvm_vps_resume_handler)
@@ -894,12 +894,15 @@ ENTRY(kvm_resume_to_guest)
894 ;; 894 ;;
895 ld8 r19=[r19] 895 ld8 r19=[r19]
896 mov b0=r29 896 mov b0=r29
897 cmp.ne p6,p7 = r0,r0 897 mov r27=cr.isr
898 ;; 898 ;;
899 tbit.z p6,p7 = r19,IA64_PSR_IC_BIT // p1=vpsr.ic 899 tbit.z p6,p7 = r19,IA64_PSR_IC_BIT // p7=vpsr.ic
900 shr r27=r27,IA64_ISR_IR_BIT
900 ;; 901 ;;
901 (p6) ld8 r26=[r25] 902 (p6) ld8 r26=[r25]
902 (p7) mov b0=r28 903 (p7) mov b0=r28
904 ;;
905 (p6) dep r26=r27,r26,63,1
903 mov pr=r31,-2 906 mov pr=r31,-2
904 br.sptk.many b0 // call pal service 907 br.sptk.many b0 // call pal service
905 ;; 908 ;;
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
index c3aa851d1ca6..4e1801bad83a 100644
--- a/arch/ia64/sn/kernel/io_init.c
+++ b/arch/ia64/sn/kernel/io_init.c
@@ -292,7 +292,7 @@ EXPORT_SYMBOL(sn_io_slot_fixup);
292 * sn_pci_controller_fixup() - This routine sets up a bus's resources 292 * sn_pci_controller_fixup() - This routine sets up a bus's resources
293 * consistent with the Linux PCI abstraction layer. 293 * consistent with the Linux PCI abstraction layer.
294 */ 294 */
295static void 295static void __init
296sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus) 296sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
297{ 297{
298 s64 status = 0; 298 s64 status = 0;
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c
index 96c31b4180c3..0c66dbdd1d72 100644
--- a/arch/ia64/sn/kernel/irq.c
+++ b/arch/ia64/sn/kernel/irq.c
@@ -5,7 +5,7 @@
5 * License. See the file "COPYING" in the main directory of this archive 5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details. 6 * for more details.
7 * 7 *
8 * Copyright (c) 2000-2007 Silicon Graphics, Inc. All Rights Reserved. 8 * Copyright (c) 2000-2008 Silicon Graphics, Inc. All Rights Reserved.
9 */ 9 */
10 10
11#include <linux/irq.h> 11#include <linux/irq.h>
@@ -375,6 +375,7 @@ void sn_irq_fixup(struct pci_dev *pci_dev, struct sn_irq_info *sn_irq_info)
375 int cpu = nasid_slice_to_cpuid(nasid, slice); 375 int cpu = nasid_slice_to_cpuid(nasid, slice);
376#ifdef CONFIG_SMP 376#ifdef CONFIG_SMP
377 int cpuphys; 377 int cpuphys;
378 irq_desc_t *desc;
378#endif 379#endif
379 380
380 pci_dev_get(pci_dev); 381 pci_dev_get(pci_dev);
@@ -391,6 +392,12 @@ void sn_irq_fixup(struct pci_dev *pci_dev, struct sn_irq_info *sn_irq_info)
391#ifdef CONFIG_SMP 392#ifdef CONFIG_SMP
392 cpuphys = cpu_physical_id(cpu); 393 cpuphys = cpu_physical_id(cpu);
393 set_irq_affinity_info(sn_irq_info->irq_irq, cpuphys, 0); 394 set_irq_affinity_info(sn_irq_info->irq_irq, cpuphys, 0);
395 desc = irq_to_desc(sn_irq_info->irq_irq);
396 /*
397 * Affinity was set by the PROM, prevent it from
398 * being reset by the request_irq() path.
399 */
400 desc->status |= IRQ_AFFINITY_SET;
394#endif 401#endif
395} 402}
396 403
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c
index bb1d24929640..02c5b8a9fb60 100644
--- a/arch/ia64/sn/kernel/setup.c
+++ b/arch/ia64/sn/kernel/setup.c
@@ -200,7 +200,7 @@ static int __cpuinitdata shub_1_1_found;
200 * Set flag for enabling shub specific wars 200 * Set flag for enabling shub specific wars
201 */ 201 */
202 202
203static inline int __init is_shub_1_1(int nasid) 203static inline int __cpuinit is_shub_1_1(int nasid)
204{ 204{
205 unsigned long id; 205 unsigned long id;
206 int rev; 206 int rev;
@@ -212,7 +212,7 @@ static inline int __init is_shub_1_1(int nasid)
212 return rev <= 2; 212 return rev <= 2;
213} 213}
214 214
215static void __init sn_check_for_wars(void) 215static void __cpuinit sn_check_for_wars(void)
216{ 216{
217 int cnode; 217 int cnode;
218 218
@@ -512,7 +512,6 @@ static void __init sn_init_pdas(char **cmdline_p)
512 for_each_online_node(cnode) { 512 for_each_online_node(cnode) {
513 nodepdaindr[cnode] = 513 nodepdaindr[cnode] =
514 alloc_bootmem_node(NODE_DATA(cnode), sizeof(nodepda_t)); 514 alloc_bootmem_node(NODE_DATA(cnode), sizeof(nodepda_t));
515 memset(nodepdaindr[cnode], 0, sizeof(nodepda_t));
516 memset(nodepdaindr[cnode]->phys_cpuid, -1, 515 memset(nodepdaindr[cnode]->phys_cpuid, -1,
517 sizeof(nodepdaindr[cnode]->phys_cpuid)); 516 sizeof(nodepdaindr[cnode]->phys_cpuid));
518 spin_lock_init(&nodepdaindr[cnode]->ptc_lock); 517 spin_lock_init(&nodepdaindr[cnode]->ptc_lock);
@@ -521,11 +520,9 @@ static void __init sn_init_pdas(char **cmdline_p)
521 /* 520 /*
522 * Allocate & initialize nodepda for TIOs. For now, put them on node 0. 521 * Allocate & initialize nodepda for TIOs. For now, put them on node 0.
523 */ 522 */
524 for (cnode = num_online_nodes(); cnode < num_cnodes; cnode++) { 523 for (cnode = num_online_nodes(); cnode < num_cnodes; cnode++)
525 nodepdaindr[cnode] = 524 nodepdaindr[cnode] =
526 alloc_bootmem_node(NODE_DATA(0), sizeof(nodepda_t)); 525 alloc_bootmem_node(NODE_DATA(0), sizeof(nodepda_t));
527 memset(nodepdaindr[cnode], 0, sizeof(nodepda_t));
528 }
529 526
530 /* 527 /*
531 * Now copy the array of nodepda pointers to each nodepda. 528 * Now copy the array of nodepda pointers to each nodepda.
diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S
index 40180778a5c7..90916067b9c1 100644
--- a/arch/m32r/kernel/head.S
+++ b/arch/m32r/kernel/head.S
@@ -23,7 +23,7 @@ __INITDATA
23/* 23/*
24 * References to members of the boot_cpu_data structure. 24 * References to members of the boot_cpu_data structure.
25 */ 25 */
26 .text 26.section .text.head, "ax"
27 .global start_kernel 27 .global start_kernel
28 .global __bss_start 28 .global __bss_start
29 .global _end 29 .global _end
@@ -133,7 +133,6 @@ loop1:
133/* 133/*
134 * AP startup routine 134 * AP startup routine
135 */ 135 */
136 .text
137 .global eit_vector 136 .global eit_vector
138ENTRY(startup_AP) 137ENTRY(startup_AP)
139;; setup EVB 138;; setup EVB
@@ -230,6 +229,7 @@ ENTRY(startup_AP)
230 nop 229 nop
231#endif /* CONFIG_SMP */ 230#endif /* CONFIG_SMP */
232 231
232 .text
233ENTRY(stack_start) 233ENTRY(stack_start)
234 .long init_thread_union+8192 234 .long init_thread_union+8192
235 .long __KERNEL_DS 235 .long __KERNEL_DS
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index 15a6f36c06db..9db05df20c0e 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -27,6 +27,7 @@ SECTIONS
27 _text = .; /* Text and read-only data */ 27 _text = .; /* Text and read-only data */
28 .boot : { *(.boot) } = 0 28 .boot : { *(.boot) } = 0
29 .text : { 29 .text : {
30 *(.text.head)
30 TEXT_TEXT 31 TEXT_TEXT
31 SCHED_TEXT 32 SCHED_TEXT
32 LOCK_TEXT 33 LOCK_TEXT
diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig
index 8bd61a640fc9..23597beb66c1 100644
--- a/arch/m68k/configs/amiga_defconfig
+++ b/arch/m68k/configs/amiga_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:00 2008 4# Tue Dec 2 20:27:42 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123CONFIG_AMIGA=y 113CONFIG_AMIGA=y
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -148,19 +138,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
148CONFIG_DISCONTIGMEM=y 138CONFIG_DISCONTIGMEM=y
149CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
150CONFIG_NEED_MULTIPLE_NODES=y 140CONFIG_NEED_MULTIPLE_NODES=y
151# CONFIG_SPARSEMEM_STATIC is not set
152# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
153CONFIG_PAGEFLAGS_EXTENDED=y 141CONFIG_PAGEFLAGS_EXTENDED=y
154CONFIG_SPLIT_PTLOCK_CPUS=4 142CONFIG_SPLIT_PTLOCK_CPUS=4
155# CONFIG_RESOURCES_64BIT is not set 143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set
156CONFIG_ZONE_DMA_FLAG=1 145CONFIG_ZONE_DMA_FLAG=1
157CONFIG_BOUNCE=y 146CONFIG_BOUNCE=y
158CONFIG_VIRT_TO_BUS=y 147CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y
159 149
160# 150#
161# General setup 151# General setup
162# 152#
163CONFIG_BINFMT_ELF=y 153CONFIG_BINFMT_ELF=y
154# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
155CONFIG_HAVE_AOUT=y
164CONFIG_BINFMT_AOUT=m 156CONFIG_BINFMT_AOUT=m
165CONFIG_BINFMT_MISC=m 157CONFIG_BINFMT_MISC=m
166CONFIG_ZORRO=y 158CONFIG_ZORRO=y
@@ -212,7 +204,6 @@ CONFIG_INET_TCP_DIAG=m
212CONFIG_TCP_CONG_CUBIC=y 204CONFIG_TCP_CONG_CUBIC=y
213CONFIG_DEFAULT_TCP_CONG="cubic" 205CONFIG_DEFAULT_TCP_CONG="cubic"
214# CONFIG_TCP_MD5SIG is not set 206# CONFIG_TCP_MD5SIG is not set
215# CONFIG_IP_VS is not set
216CONFIG_IPV6=m 207CONFIG_IPV6=m
217CONFIG_IPV6_PRIVACY=y 208CONFIG_IPV6_PRIVACY=y
218CONFIG_IPV6_ROUTER_PREF=y 209CONFIG_IPV6_ROUTER_PREF=y
@@ -262,13 +253,14 @@ CONFIG_NF_CONNTRACK_SANE=m
262CONFIG_NF_CONNTRACK_SIP=m 253CONFIG_NF_CONNTRACK_SIP=m
263CONFIG_NF_CONNTRACK_TFTP=m 254CONFIG_NF_CONNTRACK_TFTP=m
264# CONFIG_NF_CT_NETLINK is not set 255# CONFIG_NF_CT_NETLINK is not set
256# CONFIG_NETFILTER_TPROXY is not set
265CONFIG_NETFILTER_XTABLES=m 257CONFIG_NETFILTER_XTABLES=m
266CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 258CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
267CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 259CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
268CONFIG_NETFILTER_XT_TARGET_DSCP=m 260CONFIG_NETFILTER_XT_TARGET_DSCP=m
269CONFIG_NETFILTER_XT_TARGET_MARK=m 261CONFIG_NETFILTER_XT_TARGET_MARK=m
270CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
271CONFIG_NETFILTER_XT_TARGET_NFLOG=m 262CONFIG_NETFILTER_XT_TARGET_NFLOG=m
263CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
272CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 264CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
273CONFIG_NETFILTER_XT_TARGET_RATEEST=m 265CONFIG_NETFILTER_XT_TARGET_RATEEST=m
274CONFIG_NETFILTER_XT_TARGET_TRACE=m 266CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -282,19 +274,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
282CONFIG_NETFILTER_XT_MATCH_DCCP=m 274CONFIG_NETFILTER_XT_MATCH_DCCP=m
283CONFIG_NETFILTER_XT_MATCH_DSCP=m 275CONFIG_NETFILTER_XT_MATCH_DSCP=m
284CONFIG_NETFILTER_XT_MATCH_ESP=m 276CONFIG_NETFILTER_XT_MATCH_ESP=m
277CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
285CONFIG_NETFILTER_XT_MATCH_HELPER=m 278CONFIG_NETFILTER_XT_MATCH_HELPER=m
286CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 279CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
287CONFIG_NETFILTER_XT_MATCH_LENGTH=m 280CONFIG_NETFILTER_XT_MATCH_LENGTH=m
288CONFIG_NETFILTER_XT_MATCH_LIMIT=m 281CONFIG_NETFILTER_XT_MATCH_LIMIT=m
289CONFIG_NETFILTER_XT_MATCH_MAC=m 282CONFIG_NETFILTER_XT_MATCH_MAC=m
290CONFIG_NETFILTER_XT_MATCH_MARK=m 283CONFIG_NETFILTER_XT_MATCH_MARK=m
284CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
291CONFIG_NETFILTER_XT_MATCH_OWNER=m 285CONFIG_NETFILTER_XT_MATCH_OWNER=m
292CONFIG_NETFILTER_XT_MATCH_POLICY=m 286CONFIG_NETFILTER_XT_MATCH_POLICY=m
293CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
294CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 287CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
295CONFIG_NETFILTER_XT_MATCH_QUOTA=m 288CONFIG_NETFILTER_XT_MATCH_QUOTA=m
296CONFIG_NETFILTER_XT_MATCH_RATEEST=m 289CONFIG_NETFILTER_XT_MATCH_RATEEST=m
297CONFIG_NETFILTER_XT_MATCH_REALM=m 290CONFIG_NETFILTER_XT_MATCH_REALM=m
291CONFIG_NETFILTER_XT_MATCH_RECENT=m
292# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
298CONFIG_NETFILTER_XT_MATCH_SCTP=m 293CONFIG_NETFILTER_XT_MATCH_SCTP=m
299CONFIG_NETFILTER_XT_MATCH_STATE=m 294CONFIG_NETFILTER_XT_MATCH_STATE=m
300CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 295CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -302,20 +297,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
302CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 297CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
303CONFIG_NETFILTER_XT_MATCH_TIME=m 298CONFIG_NETFILTER_XT_MATCH_TIME=m
304CONFIG_NETFILTER_XT_MATCH_U32=m 299CONFIG_NETFILTER_XT_MATCH_U32=m
305CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 300# CONFIG_IP_VS is not set
306 301
307# 302#
308# IP: Netfilter Configuration 303# IP: Netfilter Configuration
309# 304#
305CONFIG_NF_DEFRAG_IPV4=m
310CONFIG_NF_CONNTRACK_IPV4=m 306CONFIG_NF_CONNTRACK_IPV4=m
311CONFIG_NF_CONNTRACK_PROC_COMPAT=y 307CONFIG_NF_CONNTRACK_PROC_COMPAT=y
312CONFIG_IP_NF_QUEUE=m 308CONFIG_IP_NF_QUEUE=m
313CONFIG_IP_NF_IPTABLES=m 309CONFIG_IP_NF_IPTABLES=m
314CONFIG_IP_NF_MATCH_RECENT=m 310CONFIG_IP_NF_MATCH_ADDRTYPE=m
315CONFIG_IP_NF_MATCH_ECN=m
316CONFIG_IP_NF_MATCH_AH=m 311CONFIG_IP_NF_MATCH_AH=m
312CONFIG_IP_NF_MATCH_ECN=m
317CONFIG_IP_NF_MATCH_TTL=m 313CONFIG_IP_NF_MATCH_TTL=m
318CONFIG_IP_NF_MATCH_ADDRTYPE=m
319CONFIG_IP_NF_FILTER=m 314CONFIG_IP_NF_FILTER=m
320CONFIG_IP_NF_TARGET_REJECT=m 315CONFIG_IP_NF_TARGET_REJECT=m
321CONFIG_IP_NF_TARGET_LOG=m 316CONFIG_IP_NF_TARGET_LOG=m
@@ -323,8 +318,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
323CONFIG_NF_NAT=m 318CONFIG_NF_NAT=m
324CONFIG_NF_NAT_NEEDED=y 319CONFIG_NF_NAT_NEEDED=y
325CONFIG_IP_NF_TARGET_MASQUERADE=m 320CONFIG_IP_NF_TARGET_MASQUERADE=m
326CONFIG_IP_NF_TARGET_REDIRECT=m
327CONFIG_IP_NF_TARGET_NETMAP=m 321CONFIG_IP_NF_TARGET_NETMAP=m
322CONFIG_IP_NF_TARGET_REDIRECT=m
328CONFIG_NF_NAT_SNMP_BASIC=m 323CONFIG_NF_NAT_SNMP_BASIC=m
329CONFIG_NF_NAT_PROTO_GRE=m 324CONFIG_NF_NAT_PROTO_GRE=m
330CONFIG_NF_NAT_PROTO_UDPLITE=m 325CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -337,9 +332,9 @@ CONFIG_NF_NAT_PPTP=m
337CONFIG_NF_NAT_H323=m 332CONFIG_NF_NAT_H323=m
338CONFIG_NF_NAT_SIP=m 333CONFIG_NF_NAT_SIP=m
339CONFIG_IP_NF_MANGLE=m 334CONFIG_IP_NF_MANGLE=m
335CONFIG_IP_NF_TARGET_CLUSTERIP=m
340CONFIG_IP_NF_TARGET_ECN=m 336CONFIG_IP_NF_TARGET_ECN=m
341CONFIG_IP_NF_TARGET_TTL=m 337CONFIG_IP_NF_TARGET_TTL=m
342CONFIG_IP_NF_TARGET_CLUSTERIP=m
343CONFIG_IP_NF_RAW=m 338CONFIG_IP_NF_RAW=m
344CONFIG_IP_NF_ARPTABLES=m 339CONFIG_IP_NF_ARPTABLES=m
345CONFIG_IP_NF_ARPFILTER=m 340CONFIG_IP_NF_ARPFILTER=m
@@ -351,16 +346,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
351CONFIG_NF_CONNTRACK_IPV6=m 346CONFIG_NF_CONNTRACK_IPV6=m
352CONFIG_IP6_NF_QUEUE=m 347CONFIG_IP6_NF_QUEUE=m
353CONFIG_IP6_NF_IPTABLES=m 348CONFIG_IP6_NF_IPTABLES=m
354CONFIG_IP6_NF_MATCH_RT=m 349CONFIG_IP6_NF_MATCH_AH=m
355CONFIG_IP6_NF_MATCH_OPTS=m 350CONFIG_IP6_NF_MATCH_EUI64=m
356CONFIG_IP6_NF_MATCH_FRAG=m 351CONFIG_IP6_NF_MATCH_FRAG=m
352CONFIG_IP6_NF_MATCH_OPTS=m
357CONFIG_IP6_NF_MATCH_HL=m 353CONFIG_IP6_NF_MATCH_HL=m
358CONFIG_IP6_NF_MATCH_IPV6HEADER=m 354CONFIG_IP6_NF_MATCH_IPV6HEADER=m
359CONFIG_IP6_NF_MATCH_AH=m
360CONFIG_IP6_NF_MATCH_MH=m 355CONFIG_IP6_NF_MATCH_MH=m
361CONFIG_IP6_NF_MATCH_EUI64=m 356CONFIG_IP6_NF_MATCH_RT=m
362CONFIG_IP6_NF_FILTER=m
363CONFIG_IP6_NF_TARGET_LOG=m 357CONFIG_IP6_NF_TARGET_LOG=m
358CONFIG_IP6_NF_FILTER=m
364CONFIG_IP6_NF_TARGET_REJECT=m 359CONFIG_IP6_NF_TARGET_REJECT=m
365CONFIG_IP6_NF_MANGLE=m 360CONFIG_IP6_NF_MANGLE=m
366CONFIG_IP6_NF_TARGET_HL=m 361CONFIG_IP6_NF_TARGET_HL=m
@@ -387,6 +382,7 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_TIPC is not set 382# CONFIG_TIPC is not set
388# CONFIG_ATM is not set 383# CONFIG_ATM is not set
389# CONFIG_BRIDGE is not set 384# CONFIG_BRIDGE is not set
385# CONFIG_NET_DSA is not set
390# CONFIG_VLAN_8021Q is not set 386# CONFIG_VLAN_8021Q is not set
391# CONFIG_DECNET is not set 387# CONFIG_DECNET is not set
392CONFIG_LLC=m 388CONFIG_LLC=m
@@ -410,19 +406,8 @@ CONFIG_NET_CLS_ROUTE=y
410# CONFIG_IRDA is not set 406# CONFIG_IRDA is not set
411# CONFIG_BT is not set 407# CONFIG_BT is not set
412# CONFIG_AF_RXRPC is not set 408# CONFIG_AF_RXRPC is not set
413 409# CONFIG_PHONET is not set
414# 410# CONFIG_WIRELESS is not set
415# Wireless
416#
417# CONFIG_CFG80211 is not set
418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
420# CONFIG_MAC80211 is not set
421CONFIG_IEEE80211=m
422# CONFIG_IEEE80211_DEBUG is not set
423CONFIG_IEEE80211_CRYPT_WEP=m
424CONFIG_IEEE80211_CRYPT_CCMP=m
425CONFIG_IEEE80211_CRYPT_TKIP=m
426# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
427# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
428 413
@@ -470,21 +455,20 @@ CONFIG_ATA_OVER_ETH=m
470CONFIG_MISC_DEVICES=y 455CONFIG_MISC_DEVICES=y
471# CONFIG_EEPROM_93CX6 is not set 456# CONFIG_EEPROM_93CX6 is not set
472# CONFIG_ENCLOSURE_SERVICES is not set 457# CONFIG_ENCLOSURE_SERVICES is not set
458# CONFIG_C2PORT is not set
473CONFIG_HAVE_IDE=y 459CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 460CONFIG_IDE=y
475CONFIG_BLK_DEV_IDE=y
476 461
477# 462#
478# Please see Documentation/ide/ide.txt for help/info on IDE drives 463# Please see Documentation/ide/ide.txt for help/info on IDE drives
479# 464#
480CONFIG_IDE_ATAPI=y
481# CONFIG_BLK_DEV_IDE_SATA is not set 465# CONFIG_BLK_DEV_IDE_SATA is not set
482CONFIG_BLK_DEV_IDEDISK=y 466CONFIG_IDE_GD=y
483# CONFIG_IDEDISK_MULTI_MODE is not set 467CONFIG_IDE_GD_ATA=y
468# CONFIG_IDE_GD_ATAPI is not set
484CONFIG_BLK_DEV_IDECD=y 469CONFIG_BLK_DEV_IDECD=y
485CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 470CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
486# CONFIG_BLK_DEV_IDETAPE is not set 471# CONFIG_BLK_DEV_IDETAPE is not set
487CONFIG_BLK_DEV_IDEFLOPPY=m
488# CONFIG_BLK_DEV_IDESCSI is not set 472# CONFIG_BLK_DEV_IDESCSI is not set
489# CONFIG_IDE_TASK_IOCTL is not set 473# CONFIG_IDE_TASK_IOCTL is not set
490CONFIG_IDE_PROC_FS=y 474CONFIG_IDE_PROC_FS=y
@@ -609,8 +593,12 @@ CONFIG_APNE=m
609# CONFIG_IBM_NEW_EMAC_RGMII is not set 593# CONFIG_IBM_NEW_EMAC_RGMII is not set
610# CONFIG_IBM_NEW_EMAC_TAH is not set 594# CONFIG_IBM_NEW_EMAC_TAH is not set
611# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 595# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
596# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
597# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
598# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
612# CONFIG_NET_PCI is not set 599# CONFIG_NET_PCI is not set
613# CONFIG_B44 is not set 600# CONFIG_B44 is not set
601# CONFIG_CS89x0 is not set
614# CONFIG_NET_POCKET is not set 602# CONFIG_NET_POCKET is not set
615# CONFIG_NETDEV_1000 is not set 603# CONFIG_NETDEV_1000 is not set
616# CONFIG_NETDEV_10000 is not set 604# CONFIG_NETDEV_10000 is not set
@@ -763,11 +751,11 @@ CONFIG_GEN_RTC_X=y
763# CONFIG_THERMAL is not set 751# CONFIG_THERMAL is not set
764# CONFIG_THERMAL_HWMON is not set 752# CONFIG_THERMAL_HWMON is not set
765# CONFIG_WATCHDOG is not set 753# CONFIG_WATCHDOG is not set
754CONFIG_SSB_POSSIBLE=y
766 755
767# 756#
768# Sonics Silicon Backplane 757# Sonics Silicon Backplane
769# 758#
770CONFIG_SSB_POSSIBLE=y
771# CONFIG_SSB is not set 759# CONFIG_SSB is not set
772 760
773# 761#
@@ -777,6 +765,7 @@ CONFIG_SSB_POSSIBLE=y
777# CONFIG_MFD_SM501 is not set 765# CONFIG_MFD_SM501 is not set
778# CONFIG_HTC_PASIC3 is not set 766# CONFIG_HTC_PASIC3 is not set
779# CONFIG_MFD_TMIO is not set 767# CONFIG_MFD_TMIO is not set
768# CONFIG_REGULATOR is not set
780 769
781# 770#
782# Multimedia devices 771# Multimedia devices
@@ -802,6 +791,7 @@ CONFIG_SSB_POSSIBLE=y
802CONFIG_FB=y 791CONFIG_FB=y
803# CONFIG_FIRMWARE_EDID is not set 792# CONFIG_FIRMWARE_EDID is not set
804# CONFIG_FB_DDC is not set 793# CONFIG_FB_DDC is not set
794# CONFIG_FB_BOOT_VESA_SUPPORT is not set
805CONFIG_FB_CFB_FILLRECT=y 795CONFIG_FB_CFB_FILLRECT=y
806CONFIG_FB_CFB_COPYAREA=y 796CONFIG_FB_CFB_COPYAREA=y
807CONFIG_FB_CFB_IMAGEBLIT=y 797CONFIG_FB_CFB_IMAGEBLIT=y
@@ -829,6 +819,8 @@ CONFIG_FB_FM2=y
829# CONFIG_FB_UVESA is not set 819# CONFIG_FB_UVESA is not set
830# CONFIG_FB_S1D13XXX is not set 820# CONFIG_FB_S1D13XXX is not set
831# CONFIG_FB_VIRTUAL is not set 821# CONFIG_FB_VIRTUAL is not set
822# CONFIG_FB_METRONOME is not set
823# CONFIG_FB_MB862XX is not set
832# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 824# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
833 825
834# 826#
@@ -852,12 +844,19 @@ CONFIG_LOGO_LINUX_MONO=y
852CONFIG_LOGO_LINUX_VGA16=y 844CONFIG_LOGO_LINUX_VGA16=y
853CONFIG_LOGO_LINUX_CLUT224=y 845CONFIG_LOGO_LINUX_CLUT224=y
854CONFIG_SOUND=m 846CONFIG_SOUND=m
847CONFIG_SOUND_OSS_CORE=y
855CONFIG_DMASOUND_PAULA=m 848CONFIG_DMASOUND_PAULA=m
856CONFIG_DMASOUND=m 849CONFIG_DMASOUND=m
857CONFIG_HID_SUPPORT=y 850CONFIG_HID_SUPPORT=y
858CONFIG_HID=m 851CONFIG_HID=m
859# CONFIG_HID_DEBUG is not set 852# CONFIG_HID_DEBUG is not set
860CONFIG_HIDRAW=y 853CONFIG_HIDRAW=y
854# CONFIG_HID_PID is not set
855
856#
857# Special HID drivers
858#
859CONFIG_HID_COMPAT=y
861# CONFIG_USB_SUPPORT is not set 860# CONFIG_USB_SUPPORT is not set
862# CONFIG_MMC is not set 861# CONFIG_MMC is not set
863# CONFIG_MEMSTICK is not set 862# CONFIG_MEMSTICK is not set
@@ -867,6 +866,8 @@ CONFIG_HIDRAW=y
867# CONFIG_DMADEVICES is not set 866# CONFIG_DMADEVICES is not set
868# CONFIG_AUXDISPLAY is not set 867# CONFIG_AUXDISPLAY is not set
869# CONFIG_UIO is not set 868# CONFIG_UIO is not set
869# CONFIG_STAGING is not set
870CONFIG_STAGING_EXCLUDE_BUILD=y
870 871
871# 872#
872# Character devices 873# Character devices
@@ -883,8 +884,9 @@ CONFIG_EXT2_FS=y
883# CONFIG_EXT2_FS_XIP is not set 884# CONFIG_EXT2_FS_XIP is not set
884CONFIG_EXT3_FS=y 885CONFIG_EXT3_FS=y
885# CONFIG_EXT3_FS_XATTR is not set 886# CONFIG_EXT3_FS_XATTR is not set
886# CONFIG_EXT4DEV_FS is not set 887# CONFIG_EXT4_FS is not set
887CONFIG_JBD=y 888CONFIG_JBD=y
889CONFIG_JBD2=m
888CONFIG_REISERFS_FS=m 890CONFIG_REISERFS_FS=m
889# CONFIG_REISERFS_CHECK is not set 891# CONFIG_REISERFS_CHECK is not set
890# CONFIG_REISERFS_PROC_INFO is not set 892# CONFIG_REISERFS_PROC_INFO is not set
@@ -895,6 +897,7 @@ CONFIG_JFS_FS=m
895# CONFIG_JFS_DEBUG is not set 897# CONFIG_JFS_DEBUG is not set
896# CONFIG_JFS_STATISTICS is not set 898# CONFIG_JFS_STATISTICS is not set
897# CONFIG_FS_POSIX_ACL is not set 899# CONFIG_FS_POSIX_ACL is not set
900CONFIG_FILE_LOCKING=y
898CONFIG_XFS_FS=m 901CONFIG_XFS_FS=m
899# CONFIG_XFS_QUOTA is not set 902# CONFIG_XFS_QUOTA is not set
900# CONFIG_XFS_POSIX_ACL is not set 903# CONFIG_XFS_POSIX_ACL is not set
@@ -906,6 +909,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
906# CONFIG_OCFS2_FS_STATS is not set 909# CONFIG_OCFS2_FS_STATS is not set
907# CONFIG_OCFS2_DEBUG_MASKLOG is not set 910# CONFIG_OCFS2_DEBUG_MASKLOG is not set
908# CONFIG_OCFS2_DEBUG_FS is not set 911# CONFIG_OCFS2_DEBUG_FS is not set
912# CONFIG_OCFS2_COMPAT_JBD is not set
909CONFIG_DNOTIFY=y 913CONFIG_DNOTIFY=y
910CONFIG_INOTIFY=y 914CONFIG_INOTIFY=y
911CONFIG_INOTIFY_USER=y 915CONFIG_INOTIFY_USER=y
@@ -944,6 +948,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
944CONFIG_PROC_FS=y 948CONFIG_PROC_FS=y
945CONFIG_PROC_KCORE=y 949CONFIG_PROC_KCORE=y
946CONFIG_PROC_SYSCTL=y 950CONFIG_PROC_SYSCTL=y
951CONFIG_PROC_PAGE_MONITOR=y
947CONFIG_SYSFS=y 952CONFIG_SYSFS=y
948CONFIG_TMPFS=y 953CONFIG_TMPFS=y
949# CONFIG_TMPFS_POSIX_ACL is not set 954# CONFIG_TMPFS_POSIX_ACL is not set
@@ -986,6 +991,7 @@ CONFIG_EXPORTFS=m
986CONFIG_NFS_COMMON=y 991CONFIG_NFS_COMMON=y
987CONFIG_SUNRPC=m 992CONFIG_SUNRPC=m
988CONFIG_SUNRPC_GSS=m 993CONFIG_SUNRPC_GSS=m
994# CONFIG_SUNRPC_REGISTER_V4 is not set
989CONFIG_RPCSEC_GSS_KRB5=m 995CONFIG_RPCSEC_GSS_KRB5=m
990# CONFIG_RPCSEC_GSS_SPKM3 is not set 996# CONFIG_RPCSEC_GSS_SPKM3 is not set
991CONFIG_SMB_FS=m 997CONFIG_SMB_FS=m
@@ -1059,7 +1065,13 @@ CONFIG_MAGIC_SYSRQ=y
1059# CONFIG_DEBUG_KERNEL is not set 1065# CONFIG_DEBUG_KERNEL is not set
1060CONFIG_DEBUG_BUGVERBOSE=y 1066CONFIG_DEBUG_BUGVERBOSE=y
1061CONFIG_DEBUG_MEMORY_INIT=y 1067CONFIG_DEBUG_MEMORY_INIT=y
1068# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1062CONFIG_SYSCTL_SYSCALL_CHECK=y 1069CONFIG_SYSCTL_SYSCALL_CHECK=y
1070
1071#
1072# Tracers
1073#
1074# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1063# CONFIG_SAMPLES is not set 1075# CONFIG_SAMPLES is not set
1064 1076
1065# 1077#
@@ -1067,6 +1079,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
1067# 1079#
1068# CONFIG_KEYS is not set 1080# CONFIG_KEYS is not set
1069# CONFIG_SECURITY is not set 1081# CONFIG_SECURITY is not set
1082# CONFIG_SECURITYFS is not set
1070# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1083# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1071CONFIG_XOR_BLOCKS=m 1084CONFIG_XOR_BLOCKS=m
1072CONFIG_ASYNC_CORE=m 1085CONFIG_ASYNC_CORE=m
@@ -1077,10 +1090,12 @@ CONFIG_CRYPTO=y
1077# 1090#
1078# Crypto core or helper 1091# Crypto core or helper
1079# 1092#
1093# CONFIG_CRYPTO_FIPS is not set
1080CONFIG_CRYPTO_ALGAPI=y 1094CONFIG_CRYPTO_ALGAPI=y
1081CONFIG_CRYPTO_AEAD=m 1095CONFIG_CRYPTO_AEAD=y
1082CONFIG_CRYPTO_BLKCIPHER=m 1096CONFIG_CRYPTO_BLKCIPHER=y
1083CONFIG_CRYPTO_HASH=y 1097CONFIG_CRYPTO_HASH=y
1098CONFIG_CRYPTO_RNG=y
1084CONFIG_CRYPTO_MANAGER=y 1099CONFIG_CRYPTO_MANAGER=y
1085CONFIG_CRYPTO_GF128MUL=m 1100CONFIG_CRYPTO_GF128MUL=m
1086CONFIG_CRYPTO_NULL=m 1101CONFIG_CRYPTO_NULL=m
@@ -1154,14 +1169,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1154# 1169#
1155CONFIG_CRYPTO_DEFLATE=m 1170CONFIG_CRYPTO_DEFLATE=m
1156CONFIG_CRYPTO_LZO=m 1171CONFIG_CRYPTO_LZO=m
1172
1173#
1174# Random Number Generation
1175#
1176# CONFIG_CRYPTO_ANSI_CPRNG is not set
1157# CONFIG_CRYPTO_HW is not set 1177# CONFIG_CRYPTO_HW is not set
1158 1178
1159# 1179#
1160# Library routines 1180# Library routines
1161# 1181#
1162CONFIG_BITREVERSE=y 1182CONFIG_BITREVERSE=y
1163# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1164# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1165CONFIG_CRC_CCITT=m 1183CONFIG_CRC_CCITT=m
1166CONFIG_CRC16=m 1184CONFIG_CRC16=m
1167CONFIG_CRC_T10DIF=y 1185CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_defconfig
index c41b854c0284..935108d115a0 100644
--- a/arch/m68k/configs/apollo_defconfig
+++ b/arch/m68k/configs/apollo_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:01 2008 4# Tue Dec 2 20:27:43 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -148,19 +138,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
148CONFIG_DISCONTIGMEM=y 138CONFIG_DISCONTIGMEM=y
149CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
150CONFIG_NEED_MULTIPLE_NODES=y 140CONFIG_NEED_MULTIPLE_NODES=y
151# CONFIG_SPARSEMEM_STATIC is not set
152# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
153CONFIG_PAGEFLAGS_EXTENDED=y 141CONFIG_PAGEFLAGS_EXTENDED=y
154CONFIG_SPLIT_PTLOCK_CPUS=4 142CONFIG_SPLIT_PTLOCK_CPUS=4
155# CONFIG_RESOURCES_64BIT is not set 143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set
156CONFIG_ZONE_DMA_FLAG=1 145CONFIG_ZONE_DMA_FLAG=1
157CONFIG_BOUNCE=y 146CONFIG_BOUNCE=y
158CONFIG_VIRT_TO_BUS=y 147CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y
159 149
160# 150#
161# General setup 151# General setup
162# 152#
163CONFIG_BINFMT_ELF=y 153CONFIG_BINFMT_ELF=y
154# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
155CONFIG_HAVE_AOUT=y
164CONFIG_BINFMT_AOUT=m 156CONFIG_BINFMT_AOUT=m
165CONFIG_BINFMT_MISC=m 157CONFIG_BINFMT_MISC=m
166CONFIG_HEARTBEAT=y 158CONFIG_HEARTBEAT=y
@@ -210,7 +202,6 @@ CONFIG_INET_TCP_DIAG=m
210CONFIG_TCP_CONG_CUBIC=y 202CONFIG_TCP_CONG_CUBIC=y
211CONFIG_DEFAULT_TCP_CONG="cubic" 203CONFIG_DEFAULT_TCP_CONG="cubic"
212# CONFIG_TCP_MD5SIG is not set 204# CONFIG_TCP_MD5SIG is not set
213# CONFIG_IP_VS is not set
214CONFIG_IPV6=m 205CONFIG_IPV6=m
215CONFIG_IPV6_PRIVACY=y 206CONFIG_IPV6_PRIVACY=y
216CONFIG_IPV6_ROUTER_PREF=y 207CONFIG_IPV6_ROUTER_PREF=y
@@ -260,13 +251,14 @@ CONFIG_NF_CONNTRACK_SANE=m
260CONFIG_NF_CONNTRACK_SIP=m 251CONFIG_NF_CONNTRACK_SIP=m
261CONFIG_NF_CONNTRACK_TFTP=m 252CONFIG_NF_CONNTRACK_TFTP=m
262# CONFIG_NF_CT_NETLINK is not set 253# CONFIG_NF_CT_NETLINK is not set
254# CONFIG_NETFILTER_TPROXY is not set
263CONFIG_NETFILTER_XTABLES=m 255CONFIG_NETFILTER_XTABLES=m
264CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 256CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
265CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 257CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
266CONFIG_NETFILTER_XT_TARGET_DSCP=m 258CONFIG_NETFILTER_XT_TARGET_DSCP=m
267CONFIG_NETFILTER_XT_TARGET_MARK=m 259CONFIG_NETFILTER_XT_TARGET_MARK=m
268CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
269CONFIG_NETFILTER_XT_TARGET_NFLOG=m 260CONFIG_NETFILTER_XT_TARGET_NFLOG=m
261CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
270CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 262CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
271CONFIG_NETFILTER_XT_TARGET_RATEEST=m 263CONFIG_NETFILTER_XT_TARGET_RATEEST=m
272CONFIG_NETFILTER_XT_TARGET_TRACE=m 264CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -280,19 +272,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
280CONFIG_NETFILTER_XT_MATCH_DCCP=m 272CONFIG_NETFILTER_XT_MATCH_DCCP=m
281CONFIG_NETFILTER_XT_MATCH_DSCP=m 273CONFIG_NETFILTER_XT_MATCH_DSCP=m
282CONFIG_NETFILTER_XT_MATCH_ESP=m 274CONFIG_NETFILTER_XT_MATCH_ESP=m
275CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
283CONFIG_NETFILTER_XT_MATCH_HELPER=m 276CONFIG_NETFILTER_XT_MATCH_HELPER=m
284CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 277CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
285CONFIG_NETFILTER_XT_MATCH_LENGTH=m 278CONFIG_NETFILTER_XT_MATCH_LENGTH=m
286CONFIG_NETFILTER_XT_MATCH_LIMIT=m 279CONFIG_NETFILTER_XT_MATCH_LIMIT=m
287CONFIG_NETFILTER_XT_MATCH_MAC=m 280CONFIG_NETFILTER_XT_MATCH_MAC=m
288CONFIG_NETFILTER_XT_MATCH_MARK=m 281CONFIG_NETFILTER_XT_MATCH_MARK=m
282CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
289CONFIG_NETFILTER_XT_MATCH_OWNER=m 283CONFIG_NETFILTER_XT_MATCH_OWNER=m
290CONFIG_NETFILTER_XT_MATCH_POLICY=m 284CONFIG_NETFILTER_XT_MATCH_POLICY=m
291CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
292CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 285CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
293CONFIG_NETFILTER_XT_MATCH_QUOTA=m 286CONFIG_NETFILTER_XT_MATCH_QUOTA=m
294CONFIG_NETFILTER_XT_MATCH_RATEEST=m 287CONFIG_NETFILTER_XT_MATCH_RATEEST=m
295CONFIG_NETFILTER_XT_MATCH_REALM=m 288CONFIG_NETFILTER_XT_MATCH_REALM=m
289CONFIG_NETFILTER_XT_MATCH_RECENT=m
290# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
296CONFIG_NETFILTER_XT_MATCH_SCTP=m 291CONFIG_NETFILTER_XT_MATCH_SCTP=m
297CONFIG_NETFILTER_XT_MATCH_STATE=m 292CONFIG_NETFILTER_XT_MATCH_STATE=m
298CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 293CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -300,20 +295,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
300CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 295CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
301CONFIG_NETFILTER_XT_MATCH_TIME=m 296CONFIG_NETFILTER_XT_MATCH_TIME=m
302CONFIG_NETFILTER_XT_MATCH_U32=m 297CONFIG_NETFILTER_XT_MATCH_U32=m
303CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 298# CONFIG_IP_VS is not set
304 299
305# 300#
306# IP: Netfilter Configuration 301# IP: Netfilter Configuration
307# 302#
303CONFIG_NF_DEFRAG_IPV4=m
308CONFIG_NF_CONNTRACK_IPV4=m 304CONFIG_NF_CONNTRACK_IPV4=m
309CONFIG_NF_CONNTRACK_PROC_COMPAT=y 305CONFIG_NF_CONNTRACK_PROC_COMPAT=y
310CONFIG_IP_NF_QUEUE=m 306CONFIG_IP_NF_QUEUE=m
311CONFIG_IP_NF_IPTABLES=m 307CONFIG_IP_NF_IPTABLES=m
312CONFIG_IP_NF_MATCH_RECENT=m 308CONFIG_IP_NF_MATCH_ADDRTYPE=m
313CONFIG_IP_NF_MATCH_ECN=m
314CONFIG_IP_NF_MATCH_AH=m 309CONFIG_IP_NF_MATCH_AH=m
310CONFIG_IP_NF_MATCH_ECN=m
315CONFIG_IP_NF_MATCH_TTL=m 311CONFIG_IP_NF_MATCH_TTL=m
316CONFIG_IP_NF_MATCH_ADDRTYPE=m
317CONFIG_IP_NF_FILTER=m 312CONFIG_IP_NF_FILTER=m
318CONFIG_IP_NF_TARGET_REJECT=m 313CONFIG_IP_NF_TARGET_REJECT=m
319CONFIG_IP_NF_TARGET_LOG=m 314CONFIG_IP_NF_TARGET_LOG=m
@@ -321,8 +316,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
321CONFIG_NF_NAT=m 316CONFIG_NF_NAT=m
322CONFIG_NF_NAT_NEEDED=y 317CONFIG_NF_NAT_NEEDED=y
323CONFIG_IP_NF_TARGET_MASQUERADE=m 318CONFIG_IP_NF_TARGET_MASQUERADE=m
324CONFIG_IP_NF_TARGET_REDIRECT=m
325CONFIG_IP_NF_TARGET_NETMAP=m 319CONFIG_IP_NF_TARGET_NETMAP=m
320CONFIG_IP_NF_TARGET_REDIRECT=m
326CONFIG_NF_NAT_SNMP_BASIC=m 321CONFIG_NF_NAT_SNMP_BASIC=m
327CONFIG_NF_NAT_PROTO_GRE=m 322CONFIG_NF_NAT_PROTO_GRE=m
328CONFIG_NF_NAT_PROTO_UDPLITE=m 323CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -335,9 +330,9 @@ CONFIG_NF_NAT_PPTP=m
335CONFIG_NF_NAT_H323=m 330CONFIG_NF_NAT_H323=m
336CONFIG_NF_NAT_SIP=m 331CONFIG_NF_NAT_SIP=m
337CONFIG_IP_NF_MANGLE=m 332CONFIG_IP_NF_MANGLE=m
333CONFIG_IP_NF_TARGET_CLUSTERIP=m
338CONFIG_IP_NF_TARGET_ECN=m 334CONFIG_IP_NF_TARGET_ECN=m
339CONFIG_IP_NF_TARGET_TTL=m 335CONFIG_IP_NF_TARGET_TTL=m
340CONFIG_IP_NF_TARGET_CLUSTERIP=m
341CONFIG_IP_NF_RAW=m 336CONFIG_IP_NF_RAW=m
342CONFIG_IP_NF_ARPTABLES=m 337CONFIG_IP_NF_ARPTABLES=m
343CONFIG_IP_NF_ARPFILTER=m 338CONFIG_IP_NF_ARPFILTER=m
@@ -349,16 +344,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
349CONFIG_NF_CONNTRACK_IPV6=m 344CONFIG_NF_CONNTRACK_IPV6=m
350CONFIG_IP6_NF_QUEUE=m 345CONFIG_IP6_NF_QUEUE=m
351CONFIG_IP6_NF_IPTABLES=m 346CONFIG_IP6_NF_IPTABLES=m
352CONFIG_IP6_NF_MATCH_RT=m 347CONFIG_IP6_NF_MATCH_AH=m
353CONFIG_IP6_NF_MATCH_OPTS=m 348CONFIG_IP6_NF_MATCH_EUI64=m
354CONFIG_IP6_NF_MATCH_FRAG=m 349CONFIG_IP6_NF_MATCH_FRAG=m
350CONFIG_IP6_NF_MATCH_OPTS=m
355CONFIG_IP6_NF_MATCH_HL=m 351CONFIG_IP6_NF_MATCH_HL=m
356CONFIG_IP6_NF_MATCH_IPV6HEADER=m 352CONFIG_IP6_NF_MATCH_IPV6HEADER=m
357CONFIG_IP6_NF_MATCH_AH=m
358CONFIG_IP6_NF_MATCH_MH=m 353CONFIG_IP6_NF_MATCH_MH=m
359CONFIG_IP6_NF_MATCH_EUI64=m 354CONFIG_IP6_NF_MATCH_RT=m
360CONFIG_IP6_NF_FILTER=m
361CONFIG_IP6_NF_TARGET_LOG=m 355CONFIG_IP6_NF_TARGET_LOG=m
356CONFIG_IP6_NF_FILTER=m
362CONFIG_IP6_NF_TARGET_REJECT=m 357CONFIG_IP6_NF_TARGET_REJECT=m
363CONFIG_IP6_NF_MANGLE=m 358CONFIG_IP6_NF_MANGLE=m
364CONFIG_IP6_NF_TARGET_HL=m 359CONFIG_IP6_NF_TARGET_HL=m
@@ -385,6 +380,7 @@ CONFIG_SCTP_HMAC_MD5=y
385# CONFIG_TIPC is not set 380# CONFIG_TIPC is not set
386# CONFIG_ATM is not set 381# CONFIG_ATM is not set
387# CONFIG_BRIDGE is not set 382# CONFIG_BRIDGE is not set
383# CONFIG_NET_DSA is not set
388# CONFIG_VLAN_8021Q is not set 384# CONFIG_VLAN_8021Q is not set
389# CONFIG_DECNET is not set 385# CONFIG_DECNET is not set
390CONFIG_LLC=m 386CONFIG_LLC=m
@@ -408,19 +404,8 @@ CONFIG_NET_CLS_ROUTE=y
408# CONFIG_IRDA is not set 404# CONFIG_IRDA is not set
409# CONFIG_BT is not set 405# CONFIG_BT is not set
410# CONFIG_AF_RXRPC is not set 406# CONFIG_AF_RXRPC is not set
411 407# CONFIG_PHONET is not set
412# 408# CONFIG_WIRELESS is not set
413# Wireless
414#
415# CONFIG_CFG80211 is not set
416CONFIG_WIRELESS_EXT=y
417# CONFIG_WIRELESS_EXT_SYSFS is not set
418# CONFIG_MAC80211 is not set
419CONFIG_IEEE80211=m
420# CONFIG_IEEE80211_DEBUG is not set
421CONFIG_IEEE80211_CRYPT_WEP=m
422CONFIG_IEEE80211_CRYPT_CCMP=m
423CONFIG_IEEE80211_CRYPT_TKIP=m
424# CONFIG_RFKILL is not set 409# CONFIG_RFKILL is not set
425# CONFIG_NET_9P is not set 410# CONFIG_NET_9P is not set
426 411
@@ -458,6 +443,7 @@ CONFIG_ATA_OVER_ETH=m
458CONFIG_MISC_DEVICES=y 443CONFIG_MISC_DEVICES=y
459# CONFIG_EEPROM_93CX6 is not set 444# CONFIG_EEPROM_93CX6 is not set
460# CONFIG_ENCLOSURE_SERVICES is not set 445# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_C2PORT is not set
461CONFIG_HAVE_IDE=y 447CONFIG_HAVE_IDE=y
462# CONFIG_IDE is not set 448# CONFIG_IDE is not set
463 449
@@ -540,6 +526,9 @@ CONFIG_NET_ETHERNET=y
540# CONFIG_IBM_NEW_EMAC_RGMII is not set 526# CONFIG_IBM_NEW_EMAC_RGMII is not set
541# CONFIG_IBM_NEW_EMAC_TAH is not set 527# CONFIG_IBM_NEW_EMAC_TAH is not set
542# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 528# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
529# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
530# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
531# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
543# CONFIG_B44 is not set 532# CONFIG_B44 is not set
544# CONFIG_NETDEV_1000 is not set 533# CONFIG_NETDEV_1000 is not set
545# CONFIG_NETDEV_10000 is not set 534# CONFIG_NETDEV_10000 is not set
@@ -609,6 +598,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
609CONFIG_MOUSE_PS2_SYNAPTICS=y 598CONFIG_MOUSE_PS2_SYNAPTICS=y
610CONFIG_MOUSE_PS2_LIFEBOOK=y 599CONFIG_MOUSE_PS2_LIFEBOOK=y
611CONFIG_MOUSE_PS2_TRACKPOINT=y 600CONFIG_MOUSE_PS2_TRACKPOINT=y
601# CONFIG_MOUSE_PS2_ELANTECH is not set
612# CONFIG_MOUSE_PS2_TOUCHKIT is not set 602# CONFIG_MOUSE_PS2_TOUCHKIT is not set
613CONFIG_MOUSE_SERIAL=m 603CONFIG_MOUSE_SERIAL=m
614# CONFIG_MOUSE_VSXXXAA is not set 604# CONFIG_MOUSE_VSXXXAA is not set
@@ -663,11 +653,11 @@ CONFIG_GEN_RTC_X=y
663# CONFIG_THERMAL is not set 653# CONFIG_THERMAL is not set
664# CONFIG_THERMAL_HWMON is not set 654# CONFIG_THERMAL_HWMON is not set
665# CONFIG_WATCHDOG is not set 655# CONFIG_WATCHDOG is not set
656CONFIG_SSB_POSSIBLE=y
666 657
667# 658#
668# Sonics Silicon Backplane 659# Sonics Silicon Backplane
669# 660#
670CONFIG_SSB_POSSIBLE=y
671# CONFIG_SSB is not set 661# CONFIG_SSB is not set
672 662
673# 663#
@@ -677,6 +667,7 @@ CONFIG_SSB_POSSIBLE=y
677# CONFIG_MFD_SM501 is not set 667# CONFIG_MFD_SM501 is not set
678# CONFIG_HTC_PASIC3 is not set 668# CONFIG_HTC_PASIC3 is not set
679# CONFIG_MFD_TMIO is not set 669# CONFIG_MFD_TMIO is not set
670# CONFIG_REGULATOR is not set
680 671
681# 672#
682# Multimedia devices 673# Multimedia devices
@@ -702,6 +693,7 @@ CONFIG_SSB_POSSIBLE=y
702CONFIG_FB=y 693CONFIG_FB=y
703# CONFIG_FIRMWARE_EDID is not set 694# CONFIG_FIRMWARE_EDID is not set
704# CONFIG_FB_DDC is not set 695# CONFIG_FB_DDC is not set
696# CONFIG_FB_BOOT_VESA_SUPPORT is not set
705CONFIG_FB_CFB_FILLRECT=y 697CONFIG_FB_CFB_FILLRECT=y
706# CONFIG_FB_CFB_COPYAREA is not set 698# CONFIG_FB_CFB_COPYAREA is not set
707CONFIG_FB_CFB_IMAGEBLIT=y 699CONFIG_FB_CFB_IMAGEBLIT=y
@@ -724,6 +716,8 @@ CONFIG_FB_APOLLO=y
724# CONFIG_FB_UVESA is not set 716# CONFIG_FB_UVESA is not set
725# CONFIG_FB_S1D13XXX is not set 717# CONFIG_FB_S1D13XXX is not set
726# CONFIG_FB_VIRTUAL is not set 718# CONFIG_FB_VIRTUAL is not set
719# CONFIG_FB_METRONOME is not set
720# CONFIG_FB_MB862XX is not set
727# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 721# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
728 722
729# 723#
@@ -750,6 +744,12 @@ CONFIG_HID_SUPPORT=y
750CONFIG_HID=m 744CONFIG_HID=m
751# CONFIG_HID_DEBUG is not set 745# CONFIG_HID_DEBUG is not set
752CONFIG_HIDRAW=y 746CONFIG_HIDRAW=y
747# CONFIG_HID_PID is not set
748
749#
750# Special HID drivers
751#
752CONFIG_HID_COMPAT=y
753# CONFIG_USB_SUPPORT is not set 753# CONFIG_USB_SUPPORT is not set
754# CONFIG_MMC is not set 754# CONFIG_MMC is not set
755# CONFIG_MEMSTICK is not set 755# CONFIG_MEMSTICK is not set
@@ -758,6 +758,8 @@ CONFIG_HIDRAW=y
758# CONFIG_RTC_CLASS is not set 758# CONFIG_RTC_CLASS is not set
759# CONFIG_DMADEVICES is not set 759# CONFIG_DMADEVICES is not set
760# CONFIG_UIO is not set 760# CONFIG_UIO is not set
761# CONFIG_STAGING is not set
762CONFIG_STAGING_EXCLUDE_BUILD=y
761 763
762# 764#
763# Character devices 765# Character devices
@@ -773,8 +775,9 @@ CONFIG_EXT2_FS=y
773# CONFIG_EXT2_FS_XIP is not set 775# CONFIG_EXT2_FS_XIP is not set
774CONFIG_EXT3_FS=y 776CONFIG_EXT3_FS=y
775# CONFIG_EXT3_FS_XATTR is not set 777# CONFIG_EXT3_FS_XATTR is not set
776# CONFIG_EXT4DEV_FS is not set 778# CONFIG_EXT4_FS is not set
777CONFIG_JBD=y 779CONFIG_JBD=y
780CONFIG_JBD2=m
778CONFIG_REISERFS_FS=m 781CONFIG_REISERFS_FS=m
779# CONFIG_REISERFS_CHECK is not set 782# CONFIG_REISERFS_CHECK is not set
780# CONFIG_REISERFS_PROC_INFO is not set 783# CONFIG_REISERFS_PROC_INFO is not set
@@ -785,6 +788,7 @@ CONFIG_JFS_FS=m
785# CONFIG_JFS_DEBUG is not set 788# CONFIG_JFS_DEBUG is not set
786# CONFIG_JFS_STATISTICS is not set 789# CONFIG_JFS_STATISTICS is not set
787# CONFIG_FS_POSIX_ACL is not set 790# CONFIG_FS_POSIX_ACL is not set
791CONFIG_FILE_LOCKING=y
788CONFIG_XFS_FS=m 792CONFIG_XFS_FS=m
789# CONFIG_XFS_QUOTA is not set 793# CONFIG_XFS_QUOTA is not set
790# CONFIG_XFS_POSIX_ACL is not set 794# CONFIG_XFS_POSIX_ACL is not set
@@ -796,6 +800,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
796# CONFIG_OCFS2_FS_STATS is not set 800# CONFIG_OCFS2_FS_STATS is not set
797# CONFIG_OCFS2_DEBUG_MASKLOG is not set 801# CONFIG_OCFS2_DEBUG_MASKLOG is not set
798# CONFIG_OCFS2_DEBUG_FS is not set 802# CONFIG_OCFS2_DEBUG_FS is not set
803# CONFIG_OCFS2_COMPAT_JBD is not set
799CONFIG_DNOTIFY=y 804CONFIG_DNOTIFY=y
800CONFIG_INOTIFY=y 805CONFIG_INOTIFY=y
801CONFIG_INOTIFY_USER=y 806CONFIG_INOTIFY_USER=y
@@ -834,6 +839,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
834CONFIG_PROC_FS=y 839CONFIG_PROC_FS=y
835CONFIG_PROC_KCORE=y 840CONFIG_PROC_KCORE=y
836CONFIG_PROC_SYSCTL=y 841CONFIG_PROC_SYSCTL=y
842CONFIG_PROC_PAGE_MONITOR=y
837CONFIG_SYSFS=y 843CONFIG_SYSFS=y
838CONFIG_TMPFS=y 844CONFIG_TMPFS=y
839# CONFIG_TMPFS_POSIX_ACL is not set 845# CONFIG_TMPFS_POSIX_ACL is not set
@@ -877,6 +883,7 @@ CONFIG_EXPORTFS=m
877CONFIG_NFS_COMMON=y 883CONFIG_NFS_COMMON=y
878CONFIG_SUNRPC=y 884CONFIG_SUNRPC=y
879CONFIG_SUNRPC_GSS=y 885CONFIG_SUNRPC_GSS=y
886# CONFIG_SUNRPC_REGISTER_V4 is not set
880CONFIG_RPCSEC_GSS_KRB5=y 887CONFIG_RPCSEC_GSS_KRB5=y
881# CONFIG_RPCSEC_GSS_SPKM3 is not set 888# CONFIG_RPCSEC_GSS_SPKM3 is not set
882CONFIG_SMB_FS=m 889CONFIG_SMB_FS=m
@@ -949,7 +956,13 @@ CONFIG_MAGIC_SYSRQ=y
949# CONFIG_DEBUG_KERNEL is not set 956# CONFIG_DEBUG_KERNEL is not set
950CONFIG_DEBUG_BUGVERBOSE=y 957CONFIG_DEBUG_BUGVERBOSE=y
951CONFIG_DEBUG_MEMORY_INIT=y 958CONFIG_DEBUG_MEMORY_INIT=y
959# CONFIG_RCU_CPU_STALL_DETECTOR is not set
952CONFIG_SYSCTL_SYSCALL_CHECK=y 960CONFIG_SYSCTL_SYSCALL_CHECK=y
961
962#
963# Tracers
964#
965# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
953# CONFIG_SAMPLES is not set 966# CONFIG_SAMPLES is not set
954 967
955# 968#
@@ -957,6 +970,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
957# 970#
958# CONFIG_KEYS is not set 971# CONFIG_KEYS is not set
959# CONFIG_SECURITY is not set 972# CONFIG_SECURITY is not set
973# CONFIG_SECURITYFS is not set
960# CONFIG_SECURITY_FILE_CAPABILITIES is not set 974# CONFIG_SECURITY_FILE_CAPABILITIES is not set
961CONFIG_XOR_BLOCKS=m 975CONFIG_XOR_BLOCKS=m
962CONFIG_ASYNC_CORE=m 976CONFIG_ASYNC_CORE=m
@@ -967,10 +981,12 @@ CONFIG_CRYPTO=y
967# 981#
968# Crypto core or helper 982# Crypto core or helper
969# 983#
984# CONFIG_CRYPTO_FIPS is not set
970CONFIG_CRYPTO_ALGAPI=y 985CONFIG_CRYPTO_ALGAPI=y
971CONFIG_CRYPTO_AEAD=m 986CONFIG_CRYPTO_AEAD=y
972CONFIG_CRYPTO_BLKCIPHER=y 987CONFIG_CRYPTO_BLKCIPHER=y
973CONFIG_CRYPTO_HASH=y 988CONFIG_CRYPTO_HASH=y
989CONFIG_CRYPTO_RNG=y
974CONFIG_CRYPTO_MANAGER=y 990CONFIG_CRYPTO_MANAGER=y
975CONFIG_CRYPTO_GF128MUL=m 991CONFIG_CRYPTO_GF128MUL=m
976CONFIG_CRYPTO_NULL=m 992CONFIG_CRYPTO_NULL=m
@@ -1044,14 +1060,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1044# 1060#
1045CONFIG_CRYPTO_DEFLATE=m 1061CONFIG_CRYPTO_DEFLATE=m
1046CONFIG_CRYPTO_LZO=m 1062CONFIG_CRYPTO_LZO=m
1063
1064#
1065# Random Number Generation
1066#
1067# CONFIG_CRYPTO_ANSI_CPRNG is not set
1047# CONFIG_CRYPTO_HW is not set 1068# CONFIG_CRYPTO_HW is not set
1048 1069
1049# 1070#
1050# Library routines 1071# Library routines
1051# 1072#
1052CONFIG_BITREVERSE=y 1073CONFIG_BITREVERSE=y
1053# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1054# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1055CONFIG_CRC_CCITT=m 1074CONFIG_CRC_CCITT=m
1056CONFIG_CRC16=m 1075CONFIG_CRC16=m
1057CONFIG_CRC_T10DIF=y 1076CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_defconfig
index 654c5acb9e86..a594a1d47b62 100644
--- a/arch/m68k/configs/atari_defconfig
+++ b/arch/m68k/configs/atari_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:02 2008 4# Tue Dec 2 20:27:44 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124CONFIG_ATARI=y 114CONFIG_ATARI=y
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -148,19 +138,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
148CONFIG_DISCONTIGMEM=y 138CONFIG_DISCONTIGMEM=y
149CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
150CONFIG_NEED_MULTIPLE_NODES=y 140CONFIG_NEED_MULTIPLE_NODES=y
151# CONFIG_SPARSEMEM_STATIC is not set
152# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
153CONFIG_PAGEFLAGS_EXTENDED=y 141CONFIG_PAGEFLAGS_EXTENDED=y
154CONFIG_SPLIT_PTLOCK_CPUS=4 142CONFIG_SPLIT_PTLOCK_CPUS=4
155# CONFIG_RESOURCES_64BIT is not set 143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set
156CONFIG_ZONE_DMA_FLAG=1 145CONFIG_ZONE_DMA_FLAG=1
157CONFIG_BOUNCE=y 146CONFIG_BOUNCE=y
158CONFIG_VIRT_TO_BUS=y 147CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y
159 149
160# 150#
161# General setup 151# General setup
162# 152#
163CONFIG_BINFMT_ELF=y 153CONFIG_BINFMT_ELF=y
154# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
155CONFIG_HAVE_AOUT=y
164CONFIG_BINFMT_AOUT=m 156CONFIG_BINFMT_AOUT=m
165CONFIG_BINFMT_MISC=m 157CONFIG_BINFMT_MISC=m
166CONFIG_STRAM_PROC=y 158CONFIG_STRAM_PROC=y
@@ -208,7 +200,6 @@ CONFIG_INET_TCP_DIAG=m
208CONFIG_TCP_CONG_CUBIC=y 200CONFIG_TCP_CONG_CUBIC=y
209CONFIG_DEFAULT_TCP_CONG="cubic" 201CONFIG_DEFAULT_TCP_CONG="cubic"
210# CONFIG_TCP_MD5SIG is not set 202# CONFIG_TCP_MD5SIG is not set
211# CONFIG_IP_VS is not set
212CONFIG_IPV6=m 203CONFIG_IPV6=m
213CONFIG_IPV6_PRIVACY=y 204CONFIG_IPV6_PRIVACY=y
214CONFIG_IPV6_ROUTER_PREF=y 205CONFIG_IPV6_ROUTER_PREF=y
@@ -258,13 +249,14 @@ CONFIG_NF_CONNTRACK_SANE=m
258CONFIG_NF_CONNTRACK_SIP=m 249CONFIG_NF_CONNTRACK_SIP=m
259CONFIG_NF_CONNTRACK_TFTP=m 250CONFIG_NF_CONNTRACK_TFTP=m
260# CONFIG_NF_CT_NETLINK is not set 251# CONFIG_NF_CT_NETLINK is not set
252# CONFIG_NETFILTER_TPROXY is not set
261CONFIG_NETFILTER_XTABLES=m 253CONFIG_NETFILTER_XTABLES=m
262CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 254CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
263CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 255CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
264CONFIG_NETFILTER_XT_TARGET_DSCP=m 256CONFIG_NETFILTER_XT_TARGET_DSCP=m
265CONFIG_NETFILTER_XT_TARGET_MARK=m 257CONFIG_NETFILTER_XT_TARGET_MARK=m
266CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
267CONFIG_NETFILTER_XT_TARGET_NFLOG=m 258CONFIG_NETFILTER_XT_TARGET_NFLOG=m
259CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
268CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 260CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
269CONFIG_NETFILTER_XT_TARGET_RATEEST=m 261CONFIG_NETFILTER_XT_TARGET_RATEEST=m
270CONFIG_NETFILTER_XT_TARGET_TRACE=m 262CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -278,19 +270,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
278CONFIG_NETFILTER_XT_MATCH_DCCP=m 270CONFIG_NETFILTER_XT_MATCH_DCCP=m
279CONFIG_NETFILTER_XT_MATCH_DSCP=m 271CONFIG_NETFILTER_XT_MATCH_DSCP=m
280CONFIG_NETFILTER_XT_MATCH_ESP=m 272CONFIG_NETFILTER_XT_MATCH_ESP=m
273CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
281CONFIG_NETFILTER_XT_MATCH_HELPER=m 274CONFIG_NETFILTER_XT_MATCH_HELPER=m
282CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 275CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
283CONFIG_NETFILTER_XT_MATCH_LENGTH=m 276CONFIG_NETFILTER_XT_MATCH_LENGTH=m
284CONFIG_NETFILTER_XT_MATCH_LIMIT=m 277CONFIG_NETFILTER_XT_MATCH_LIMIT=m
285CONFIG_NETFILTER_XT_MATCH_MAC=m 278CONFIG_NETFILTER_XT_MATCH_MAC=m
286CONFIG_NETFILTER_XT_MATCH_MARK=m 279CONFIG_NETFILTER_XT_MATCH_MARK=m
280CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
287CONFIG_NETFILTER_XT_MATCH_OWNER=m 281CONFIG_NETFILTER_XT_MATCH_OWNER=m
288CONFIG_NETFILTER_XT_MATCH_POLICY=m 282CONFIG_NETFILTER_XT_MATCH_POLICY=m
289CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
290CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 283CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
291CONFIG_NETFILTER_XT_MATCH_QUOTA=m 284CONFIG_NETFILTER_XT_MATCH_QUOTA=m
292CONFIG_NETFILTER_XT_MATCH_RATEEST=m 285CONFIG_NETFILTER_XT_MATCH_RATEEST=m
293CONFIG_NETFILTER_XT_MATCH_REALM=m 286CONFIG_NETFILTER_XT_MATCH_REALM=m
287CONFIG_NETFILTER_XT_MATCH_RECENT=m
288# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
294CONFIG_NETFILTER_XT_MATCH_SCTP=m 289CONFIG_NETFILTER_XT_MATCH_SCTP=m
295CONFIG_NETFILTER_XT_MATCH_STATE=m 290CONFIG_NETFILTER_XT_MATCH_STATE=m
296CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 291CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -298,20 +293,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
298CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 293CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
299CONFIG_NETFILTER_XT_MATCH_TIME=m 294CONFIG_NETFILTER_XT_MATCH_TIME=m
300CONFIG_NETFILTER_XT_MATCH_U32=m 295CONFIG_NETFILTER_XT_MATCH_U32=m
301CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 296# CONFIG_IP_VS is not set
302 297
303# 298#
304# IP: Netfilter Configuration 299# IP: Netfilter Configuration
305# 300#
301CONFIG_NF_DEFRAG_IPV4=m
306CONFIG_NF_CONNTRACK_IPV4=m 302CONFIG_NF_CONNTRACK_IPV4=m
307CONFIG_NF_CONNTRACK_PROC_COMPAT=y 303CONFIG_NF_CONNTRACK_PROC_COMPAT=y
308CONFIG_IP_NF_QUEUE=m 304CONFIG_IP_NF_QUEUE=m
309CONFIG_IP_NF_IPTABLES=m 305CONFIG_IP_NF_IPTABLES=m
310CONFIG_IP_NF_MATCH_RECENT=m 306CONFIG_IP_NF_MATCH_ADDRTYPE=m
311CONFIG_IP_NF_MATCH_ECN=m
312CONFIG_IP_NF_MATCH_AH=m 307CONFIG_IP_NF_MATCH_AH=m
308CONFIG_IP_NF_MATCH_ECN=m
313CONFIG_IP_NF_MATCH_TTL=m 309CONFIG_IP_NF_MATCH_TTL=m
314CONFIG_IP_NF_MATCH_ADDRTYPE=m
315CONFIG_IP_NF_FILTER=m 310CONFIG_IP_NF_FILTER=m
316CONFIG_IP_NF_TARGET_REJECT=m 311CONFIG_IP_NF_TARGET_REJECT=m
317CONFIG_IP_NF_TARGET_LOG=m 312CONFIG_IP_NF_TARGET_LOG=m
@@ -319,8 +314,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
319CONFIG_NF_NAT=m 314CONFIG_NF_NAT=m
320CONFIG_NF_NAT_NEEDED=y 315CONFIG_NF_NAT_NEEDED=y
321CONFIG_IP_NF_TARGET_MASQUERADE=m 316CONFIG_IP_NF_TARGET_MASQUERADE=m
322CONFIG_IP_NF_TARGET_REDIRECT=m
323CONFIG_IP_NF_TARGET_NETMAP=m 317CONFIG_IP_NF_TARGET_NETMAP=m
318CONFIG_IP_NF_TARGET_REDIRECT=m
324CONFIG_NF_NAT_SNMP_BASIC=m 319CONFIG_NF_NAT_SNMP_BASIC=m
325CONFIG_NF_NAT_PROTO_GRE=m 320CONFIG_NF_NAT_PROTO_GRE=m
326CONFIG_NF_NAT_PROTO_UDPLITE=m 321CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -333,9 +328,9 @@ CONFIG_NF_NAT_PPTP=m
333CONFIG_NF_NAT_H323=m 328CONFIG_NF_NAT_H323=m
334CONFIG_NF_NAT_SIP=m 329CONFIG_NF_NAT_SIP=m
335CONFIG_IP_NF_MANGLE=m 330CONFIG_IP_NF_MANGLE=m
331CONFIG_IP_NF_TARGET_CLUSTERIP=m
336CONFIG_IP_NF_TARGET_ECN=m 332CONFIG_IP_NF_TARGET_ECN=m
337CONFIG_IP_NF_TARGET_TTL=m 333CONFIG_IP_NF_TARGET_TTL=m
338CONFIG_IP_NF_TARGET_CLUSTERIP=m
339CONFIG_IP_NF_RAW=m 334CONFIG_IP_NF_RAW=m
340CONFIG_IP_NF_ARPTABLES=m 335CONFIG_IP_NF_ARPTABLES=m
341CONFIG_IP_NF_ARPFILTER=m 336CONFIG_IP_NF_ARPFILTER=m
@@ -347,16 +342,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
347CONFIG_NF_CONNTRACK_IPV6=m 342CONFIG_NF_CONNTRACK_IPV6=m
348CONFIG_IP6_NF_QUEUE=m 343CONFIG_IP6_NF_QUEUE=m
349CONFIG_IP6_NF_IPTABLES=m 344CONFIG_IP6_NF_IPTABLES=m
350CONFIG_IP6_NF_MATCH_RT=m 345CONFIG_IP6_NF_MATCH_AH=m
351CONFIG_IP6_NF_MATCH_OPTS=m 346CONFIG_IP6_NF_MATCH_EUI64=m
352CONFIG_IP6_NF_MATCH_FRAG=m 347CONFIG_IP6_NF_MATCH_FRAG=m
348CONFIG_IP6_NF_MATCH_OPTS=m
353CONFIG_IP6_NF_MATCH_HL=m 349CONFIG_IP6_NF_MATCH_HL=m
354CONFIG_IP6_NF_MATCH_IPV6HEADER=m 350CONFIG_IP6_NF_MATCH_IPV6HEADER=m
355CONFIG_IP6_NF_MATCH_AH=m
356CONFIG_IP6_NF_MATCH_MH=m 351CONFIG_IP6_NF_MATCH_MH=m
357CONFIG_IP6_NF_MATCH_EUI64=m 352CONFIG_IP6_NF_MATCH_RT=m
358CONFIG_IP6_NF_FILTER=m
359CONFIG_IP6_NF_TARGET_LOG=m 353CONFIG_IP6_NF_TARGET_LOG=m
354CONFIG_IP6_NF_FILTER=m
360CONFIG_IP6_NF_TARGET_REJECT=m 355CONFIG_IP6_NF_TARGET_REJECT=m
361CONFIG_IP6_NF_MANGLE=m 356CONFIG_IP6_NF_MANGLE=m
362CONFIG_IP6_NF_TARGET_HL=m 357CONFIG_IP6_NF_TARGET_HL=m
@@ -383,6 +378,7 @@ CONFIG_SCTP_HMAC_MD5=y
383# CONFIG_TIPC is not set 378# CONFIG_TIPC is not set
384# CONFIG_ATM is not set 379# CONFIG_ATM is not set
385# CONFIG_BRIDGE is not set 380# CONFIG_BRIDGE is not set
381# CONFIG_NET_DSA is not set
386# CONFIG_VLAN_8021Q is not set 382# CONFIG_VLAN_8021Q is not set
387# CONFIG_DECNET is not set 383# CONFIG_DECNET is not set
388CONFIG_LLC=m 384CONFIG_LLC=m
@@ -406,19 +402,8 @@ CONFIG_NET_CLS_ROUTE=y
406# CONFIG_IRDA is not set 402# CONFIG_IRDA is not set
407# CONFIG_BT is not set 403# CONFIG_BT is not set
408# CONFIG_AF_RXRPC is not set 404# CONFIG_AF_RXRPC is not set
409 405# CONFIG_PHONET is not set
410# 406# CONFIG_WIRELESS is not set
411# Wireless
412#
413# CONFIG_CFG80211 is not set
414CONFIG_WIRELESS_EXT=y
415# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set
419CONFIG_IEEE80211_CRYPT_WEP=m
420CONFIG_IEEE80211_CRYPT_CCMP=m
421CONFIG_IEEE80211_CRYPT_TKIP=m
422# CONFIG_RFKILL is not set 407# CONFIG_RFKILL is not set
423# CONFIG_NET_9P is not set 408# CONFIG_NET_9P is not set
424 409
@@ -462,21 +447,20 @@ CONFIG_ATA_OVER_ETH=m
462CONFIG_MISC_DEVICES=y 447CONFIG_MISC_DEVICES=y
463# CONFIG_EEPROM_93CX6 is not set 448# CONFIG_EEPROM_93CX6 is not set
464# CONFIG_ENCLOSURE_SERVICES is not set 449# CONFIG_ENCLOSURE_SERVICES is not set
450# CONFIG_C2PORT is not set
465CONFIG_HAVE_IDE=y 451CONFIG_HAVE_IDE=y
466CONFIG_IDE=y 452CONFIG_IDE=y
467CONFIG_BLK_DEV_IDE=y
468 453
469# 454#
470# Please see Documentation/ide/ide.txt for help/info on IDE drives 455# Please see Documentation/ide/ide.txt for help/info on IDE drives
471# 456#
472CONFIG_IDE_ATAPI=y
473# CONFIG_BLK_DEV_IDE_SATA is not set 457# CONFIG_BLK_DEV_IDE_SATA is not set
474CONFIG_BLK_DEV_IDEDISK=y 458CONFIG_IDE_GD=y
475# CONFIG_IDEDISK_MULTI_MODE is not set 459CONFIG_IDE_GD_ATA=y
460# CONFIG_IDE_GD_ATAPI is not set
476CONFIG_BLK_DEV_IDECD=y 461CONFIG_BLK_DEV_IDECD=y
477CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 462CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
478# CONFIG_BLK_DEV_IDETAPE is not set 463# CONFIG_BLK_DEV_IDETAPE is not set
479CONFIG_BLK_DEV_IDEFLOPPY=m
480# CONFIG_BLK_DEV_IDESCSI is not set 464# CONFIG_BLK_DEV_IDESCSI is not set
481# CONFIG_IDE_TASK_IOCTL is not set 465# CONFIG_IDE_TASK_IOCTL is not set
482CONFIG_IDE_PROC_FS=y 466CONFIG_IDE_PROC_FS=y
@@ -565,12 +549,15 @@ CONFIG_EQUALIZER=m
565CONFIG_VETH=m 549CONFIG_VETH=m
566# CONFIG_PHYLIB is not set 550# CONFIG_PHYLIB is not set
567CONFIG_NET_ETHERNET=y 551CONFIG_NET_ETHERNET=y
568CONFIG_MII=m 552CONFIG_MII=y
569CONFIG_ATARILANCE=m 553CONFIG_ATARILANCE=m
570# CONFIG_IBM_NEW_EMAC_ZMII is not set 554# CONFIG_IBM_NEW_EMAC_ZMII is not set
571# CONFIG_IBM_NEW_EMAC_RGMII is not set 555# CONFIG_IBM_NEW_EMAC_RGMII is not set
572# CONFIG_IBM_NEW_EMAC_TAH is not set 556# CONFIG_IBM_NEW_EMAC_TAH is not set
573# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 557# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
558# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
559# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
560# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
574# CONFIG_B44 is not set 561# CONFIG_B44 is not set
575# CONFIG_NET_POCKET is not set 562# CONFIG_NET_POCKET is not set
576# CONFIG_NETDEV_1000 is not set 563# CONFIG_NETDEV_1000 is not set
@@ -644,6 +631,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
644CONFIG_MOUSE_PS2_SYNAPTICS=y 631CONFIG_MOUSE_PS2_SYNAPTICS=y
645CONFIG_MOUSE_PS2_LIFEBOOK=y 632CONFIG_MOUSE_PS2_LIFEBOOK=y
646CONFIG_MOUSE_PS2_TRACKPOINT=y 633CONFIG_MOUSE_PS2_TRACKPOINT=y
634# CONFIG_MOUSE_PS2_ELANTECH is not set
647# CONFIG_MOUSE_PS2_TOUCHKIT is not set 635# CONFIG_MOUSE_PS2_TOUCHKIT is not set
648# CONFIG_MOUSE_SERIAL is not set 636# CONFIG_MOUSE_SERIAL is not set
649CONFIG_MOUSE_ATARI=m 637CONFIG_MOUSE_ATARI=m
@@ -706,11 +694,11 @@ CONFIG_GEN_RTC_X=y
706# CONFIG_THERMAL is not set 694# CONFIG_THERMAL is not set
707# CONFIG_THERMAL_HWMON is not set 695# CONFIG_THERMAL_HWMON is not set
708# CONFIG_WATCHDOG is not set 696# CONFIG_WATCHDOG is not set
697CONFIG_SSB_POSSIBLE=y
709 698
710# 699#
711# Sonics Silicon Backplane 700# Sonics Silicon Backplane
712# 701#
713CONFIG_SSB_POSSIBLE=y
714# CONFIG_SSB is not set 702# CONFIG_SSB is not set
715 703
716# 704#
@@ -720,6 +708,7 @@ CONFIG_SSB_POSSIBLE=y
720# CONFIG_MFD_SM501 is not set 708# CONFIG_MFD_SM501 is not set
721# CONFIG_HTC_PASIC3 is not set 709# CONFIG_HTC_PASIC3 is not set
722# CONFIG_MFD_TMIO is not set 710# CONFIG_MFD_TMIO is not set
711# CONFIG_REGULATOR is not set
723 712
724# 713#
725# Multimedia devices 714# Multimedia devices
@@ -745,6 +734,7 @@ CONFIG_SSB_POSSIBLE=y
745CONFIG_FB=y 734CONFIG_FB=y
746# CONFIG_FIRMWARE_EDID is not set 735# CONFIG_FIRMWARE_EDID is not set
747# CONFIG_FB_DDC is not set 736# CONFIG_FB_DDC is not set
737# CONFIG_FB_BOOT_VESA_SUPPORT is not set
748CONFIG_FB_CFB_FILLRECT=y 738CONFIG_FB_CFB_FILLRECT=y
749CONFIG_FB_CFB_COPYAREA=y 739CONFIG_FB_CFB_COPYAREA=y
750CONFIG_FB_CFB_IMAGEBLIT=y 740CONFIG_FB_CFB_IMAGEBLIT=y
@@ -768,6 +758,8 @@ CONFIG_FB_ATARI=y
768# CONFIG_FB_S1D13XXX is not set 758# CONFIG_FB_S1D13XXX is not set
769# CONFIG_FB_ATY is not set 759# CONFIG_FB_ATY is not set
770# CONFIG_FB_VIRTUAL is not set 760# CONFIG_FB_VIRTUAL is not set
761# CONFIG_FB_METRONOME is not set
762# CONFIG_FB_MB862XX is not set
771# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 763# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
772 764
773# 765#
@@ -790,12 +782,19 @@ CONFIG_LOGO_LINUX_MONO=y
790CONFIG_LOGO_LINUX_VGA16=y 782CONFIG_LOGO_LINUX_VGA16=y
791CONFIG_LOGO_LINUX_CLUT224=y 783CONFIG_LOGO_LINUX_CLUT224=y
792CONFIG_SOUND=m 784CONFIG_SOUND=m
785CONFIG_SOUND_OSS_CORE=y
793CONFIG_DMASOUND_ATARI=m 786CONFIG_DMASOUND_ATARI=m
794CONFIG_DMASOUND=m 787CONFIG_DMASOUND=m
795CONFIG_HID_SUPPORT=y 788CONFIG_HID_SUPPORT=y
796CONFIG_HID=m 789CONFIG_HID=m
797# CONFIG_HID_DEBUG is not set 790# CONFIG_HID_DEBUG is not set
798CONFIG_HIDRAW=y 791CONFIG_HIDRAW=y
792# CONFIG_HID_PID is not set
793
794#
795# Special HID drivers
796#
797CONFIG_HID_COMPAT=y
799# CONFIG_USB_SUPPORT is not set 798# CONFIG_USB_SUPPORT is not set
800# CONFIG_MMC is not set 799# CONFIG_MMC is not set
801# CONFIG_MEMSTICK is not set 800# CONFIG_MEMSTICK is not set
@@ -805,6 +804,8 @@ CONFIG_HIDRAW=y
805# CONFIG_DMADEVICES is not set 804# CONFIG_DMADEVICES is not set
806# CONFIG_AUXDISPLAY is not set 805# CONFIG_AUXDISPLAY is not set
807# CONFIG_UIO is not set 806# CONFIG_UIO is not set
807# CONFIG_STAGING is not set
808CONFIG_STAGING_EXCLUDE_BUILD=y
808 809
809# 810#
810# Character devices 811# Character devices
@@ -821,10 +822,9 @@ CONFIG_EXT2_FS=y
821# CONFIG_EXT2_FS_XIP is not set 822# CONFIG_EXT2_FS_XIP is not set
822CONFIG_EXT3_FS=y 823CONFIG_EXT3_FS=y
823# CONFIG_EXT3_FS_XATTR is not set 824# CONFIG_EXT3_FS_XATTR is not set
824CONFIG_EXT4DEV_FS=y 825# CONFIG_EXT4_FS is not set
825# CONFIG_EXT4DEV_FS_XATTR is not set
826CONFIG_JBD=y 826CONFIG_JBD=y
827CONFIG_JBD2=y 827CONFIG_JBD2=m
828CONFIG_REISERFS_FS=m 828CONFIG_REISERFS_FS=m
829# CONFIG_REISERFS_CHECK is not set 829# CONFIG_REISERFS_CHECK is not set
830# CONFIG_REISERFS_PROC_INFO is not set 830# CONFIG_REISERFS_PROC_INFO is not set
@@ -835,6 +835,7 @@ CONFIG_JFS_FS=m
835# CONFIG_JFS_DEBUG is not set 835# CONFIG_JFS_DEBUG is not set
836# CONFIG_JFS_STATISTICS is not set 836# CONFIG_JFS_STATISTICS is not set
837# CONFIG_FS_POSIX_ACL is not set 837# CONFIG_FS_POSIX_ACL is not set
838CONFIG_FILE_LOCKING=y
838CONFIG_XFS_FS=m 839CONFIG_XFS_FS=m
839# CONFIG_XFS_QUOTA is not set 840# CONFIG_XFS_QUOTA is not set
840# CONFIG_XFS_POSIX_ACL is not set 841# CONFIG_XFS_POSIX_ACL is not set
@@ -846,6 +847,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
846# CONFIG_OCFS2_FS_STATS is not set 847# CONFIG_OCFS2_FS_STATS is not set
847# CONFIG_OCFS2_DEBUG_MASKLOG is not set 848# CONFIG_OCFS2_DEBUG_MASKLOG is not set
848# CONFIG_OCFS2_DEBUG_FS is not set 849# CONFIG_OCFS2_DEBUG_FS is not set
850# CONFIG_OCFS2_COMPAT_JBD is not set
849CONFIG_DNOTIFY=y 851CONFIG_DNOTIFY=y
850CONFIG_INOTIFY=y 852CONFIG_INOTIFY=y
851CONFIG_INOTIFY_USER=y 853CONFIG_INOTIFY_USER=y
@@ -884,6 +886,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
884CONFIG_PROC_FS=y 886CONFIG_PROC_FS=y
885CONFIG_PROC_KCORE=y 887CONFIG_PROC_KCORE=y
886CONFIG_PROC_SYSCTL=y 888CONFIG_PROC_SYSCTL=y
889CONFIG_PROC_PAGE_MONITOR=y
887CONFIG_SYSFS=y 890CONFIG_SYSFS=y
888CONFIG_TMPFS=y 891CONFIG_TMPFS=y
889# CONFIG_TMPFS_POSIX_ACL is not set 892# CONFIG_TMPFS_POSIX_ACL is not set
@@ -925,6 +928,7 @@ CONFIG_LOCKD_V4=y
925CONFIG_EXPORTFS=m 928CONFIG_EXPORTFS=m
926CONFIG_NFS_COMMON=y 929CONFIG_NFS_COMMON=y
927CONFIG_SUNRPC=m 930CONFIG_SUNRPC=m
931# CONFIG_SUNRPC_REGISTER_V4 is not set
928# CONFIG_RPCSEC_GSS_KRB5 is not set 932# CONFIG_RPCSEC_GSS_KRB5 is not set
929# CONFIG_RPCSEC_GSS_SPKM3 is not set 933# CONFIG_RPCSEC_GSS_SPKM3 is not set
930CONFIG_SMB_FS=m 934CONFIG_SMB_FS=m
@@ -998,7 +1002,13 @@ CONFIG_MAGIC_SYSRQ=y
998# CONFIG_DEBUG_KERNEL is not set 1002# CONFIG_DEBUG_KERNEL is not set
999CONFIG_DEBUG_BUGVERBOSE=y 1003CONFIG_DEBUG_BUGVERBOSE=y
1000CONFIG_DEBUG_MEMORY_INIT=y 1004CONFIG_DEBUG_MEMORY_INIT=y
1005# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1001CONFIG_SYSCTL_SYSCALL_CHECK=y 1006CONFIG_SYSCTL_SYSCALL_CHECK=y
1007
1008#
1009# Tracers
1010#
1011# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1002# CONFIG_SAMPLES is not set 1012# CONFIG_SAMPLES is not set
1003 1013
1004# 1014#
@@ -1006,6 +1016,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
1006# 1016#
1007# CONFIG_KEYS is not set 1017# CONFIG_KEYS is not set
1008# CONFIG_SECURITY is not set 1018# CONFIG_SECURITY is not set
1019# CONFIG_SECURITYFS is not set
1009# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1020# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1010CONFIG_XOR_BLOCKS=m 1021CONFIG_XOR_BLOCKS=m
1011CONFIG_ASYNC_CORE=m 1022CONFIG_ASYNC_CORE=m
@@ -1016,10 +1027,12 @@ CONFIG_CRYPTO=y
1016# 1027#
1017# Crypto core or helper 1028# Crypto core or helper
1018# 1029#
1030# CONFIG_CRYPTO_FIPS is not set
1019CONFIG_CRYPTO_ALGAPI=y 1031CONFIG_CRYPTO_ALGAPI=y
1020CONFIG_CRYPTO_AEAD=m 1032CONFIG_CRYPTO_AEAD=y
1021CONFIG_CRYPTO_BLKCIPHER=m 1033CONFIG_CRYPTO_BLKCIPHER=y
1022CONFIG_CRYPTO_HASH=y 1034CONFIG_CRYPTO_HASH=y
1035CONFIG_CRYPTO_RNG=y
1023CONFIG_CRYPTO_MANAGER=y 1036CONFIG_CRYPTO_MANAGER=y
1024CONFIG_CRYPTO_GF128MUL=m 1037CONFIG_CRYPTO_GF128MUL=m
1025CONFIG_CRYPTO_NULL=m 1038CONFIG_CRYPTO_NULL=m
@@ -1093,14 +1106,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1093# 1106#
1094CONFIG_CRYPTO_DEFLATE=m 1107CONFIG_CRYPTO_DEFLATE=m
1095CONFIG_CRYPTO_LZO=m 1108CONFIG_CRYPTO_LZO=m
1109
1110#
1111# Random Number Generation
1112#
1113# CONFIG_CRYPTO_ANSI_CPRNG is not set
1096# CONFIG_CRYPTO_HW is not set 1114# CONFIG_CRYPTO_HW is not set
1097 1115
1098# 1116#
1099# Library routines 1117# Library routines
1100# 1118#
1101CONFIG_BITREVERSE=y 1119CONFIG_BITREVERSE=y
1102# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1103# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1104CONFIG_CRC_CCITT=m 1120CONFIG_CRC_CCITT=m
1105CONFIG_CRC16=y 1121CONFIG_CRC16=y
1106CONFIG_CRC_T10DIF=y 1122CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6000_defconfig
index 2e44af0fe54a..d3d9814a91de 100644
--- a/arch/m68k/configs/bvme6000_defconfig
+++ b/arch/m68k/configs/bvme6000_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:03 2008 4# Tue Dec 2 20:27:45 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -151,19 +141,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
151CONFIG_DISCONTIGMEM=y 141CONFIG_DISCONTIGMEM=y
152CONFIG_FLAT_NODE_MEM_MAP=y 142CONFIG_FLAT_NODE_MEM_MAP=y
153CONFIG_NEED_MULTIPLE_NODES=y 143CONFIG_NEED_MULTIPLE_NODES=y
154# CONFIG_SPARSEMEM_STATIC is not set
155# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
156CONFIG_PAGEFLAGS_EXTENDED=y 144CONFIG_PAGEFLAGS_EXTENDED=y
157CONFIG_SPLIT_PTLOCK_CPUS=4 145CONFIG_SPLIT_PTLOCK_CPUS=4
158# CONFIG_RESOURCES_64BIT is not set 146# CONFIG_RESOURCES_64BIT is not set
147# CONFIG_PHYS_ADDR_T_64BIT is not set
159CONFIG_ZONE_DMA_FLAG=1 148CONFIG_ZONE_DMA_FLAG=1
160CONFIG_BOUNCE=y 149CONFIG_BOUNCE=y
161CONFIG_VIRT_TO_BUS=y 150CONFIG_VIRT_TO_BUS=y
151CONFIG_UNEVICTABLE_LRU=y
162 152
163# 153#
164# General setup 154# General setup
165# 155#
166CONFIG_BINFMT_ELF=y 156CONFIG_BINFMT_ELF=y
157# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
158CONFIG_HAVE_AOUT=y
167CONFIG_BINFMT_AOUT=m 159CONFIG_BINFMT_AOUT=m
168CONFIG_BINFMT_MISC=m 160CONFIG_BINFMT_MISC=m
169CONFIG_PROC_HARDWARE=y 161CONFIG_PROC_HARDWARE=y
@@ -212,7 +204,6 @@ CONFIG_INET_TCP_DIAG=m
212CONFIG_TCP_CONG_CUBIC=y 204CONFIG_TCP_CONG_CUBIC=y
213CONFIG_DEFAULT_TCP_CONG="cubic" 205CONFIG_DEFAULT_TCP_CONG="cubic"
214# CONFIG_TCP_MD5SIG is not set 206# CONFIG_TCP_MD5SIG is not set
215# CONFIG_IP_VS is not set
216CONFIG_IPV6=m 207CONFIG_IPV6=m
217CONFIG_IPV6_PRIVACY=y 208CONFIG_IPV6_PRIVACY=y
218CONFIG_IPV6_ROUTER_PREF=y 209CONFIG_IPV6_ROUTER_PREF=y
@@ -262,13 +253,14 @@ CONFIG_NF_CONNTRACK_SANE=m
262CONFIG_NF_CONNTRACK_SIP=m 253CONFIG_NF_CONNTRACK_SIP=m
263CONFIG_NF_CONNTRACK_TFTP=m 254CONFIG_NF_CONNTRACK_TFTP=m
264# CONFIG_NF_CT_NETLINK is not set 255# CONFIG_NF_CT_NETLINK is not set
256# CONFIG_NETFILTER_TPROXY is not set
265CONFIG_NETFILTER_XTABLES=m 257CONFIG_NETFILTER_XTABLES=m
266CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 258CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
267CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 259CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
268CONFIG_NETFILTER_XT_TARGET_DSCP=m 260CONFIG_NETFILTER_XT_TARGET_DSCP=m
269CONFIG_NETFILTER_XT_TARGET_MARK=m 261CONFIG_NETFILTER_XT_TARGET_MARK=m
270CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
271CONFIG_NETFILTER_XT_TARGET_NFLOG=m 262CONFIG_NETFILTER_XT_TARGET_NFLOG=m
263CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
272CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 264CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
273CONFIG_NETFILTER_XT_TARGET_RATEEST=m 265CONFIG_NETFILTER_XT_TARGET_RATEEST=m
274CONFIG_NETFILTER_XT_TARGET_TRACE=m 266CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -282,19 +274,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
282CONFIG_NETFILTER_XT_MATCH_DCCP=m 274CONFIG_NETFILTER_XT_MATCH_DCCP=m
283CONFIG_NETFILTER_XT_MATCH_DSCP=m 275CONFIG_NETFILTER_XT_MATCH_DSCP=m
284CONFIG_NETFILTER_XT_MATCH_ESP=m 276CONFIG_NETFILTER_XT_MATCH_ESP=m
277CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
285CONFIG_NETFILTER_XT_MATCH_HELPER=m 278CONFIG_NETFILTER_XT_MATCH_HELPER=m
286CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 279CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
287CONFIG_NETFILTER_XT_MATCH_LENGTH=m 280CONFIG_NETFILTER_XT_MATCH_LENGTH=m
288CONFIG_NETFILTER_XT_MATCH_LIMIT=m 281CONFIG_NETFILTER_XT_MATCH_LIMIT=m
289CONFIG_NETFILTER_XT_MATCH_MAC=m 282CONFIG_NETFILTER_XT_MATCH_MAC=m
290CONFIG_NETFILTER_XT_MATCH_MARK=m 283CONFIG_NETFILTER_XT_MATCH_MARK=m
284CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
291CONFIG_NETFILTER_XT_MATCH_OWNER=m 285CONFIG_NETFILTER_XT_MATCH_OWNER=m
292CONFIG_NETFILTER_XT_MATCH_POLICY=m 286CONFIG_NETFILTER_XT_MATCH_POLICY=m
293CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
294CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 287CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
295CONFIG_NETFILTER_XT_MATCH_QUOTA=m 288CONFIG_NETFILTER_XT_MATCH_QUOTA=m
296CONFIG_NETFILTER_XT_MATCH_RATEEST=m 289CONFIG_NETFILTER_XT_MATCH_RATEEST=m
297CONFIG_NETFILTER_XT_MATCH_REALM=m 290CONFIG_NETFILTER_XT_MATCH_REALM=m
291CONFIG_NETFILTER_XT_MATCH_RECENT=m
292# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
298CONFIG_NETFILTER_XT_MATCH_SCTP=m 293CONFIG_NETFILTER_XT_MATCH_SCTP=m
299CONFIG_NETFILTER_XT_MATCH_STATE=m 294CONFIG_NETFILTER_XT_MATCH_STATE=m
300CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 295CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -302,20 +297,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
302CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 297CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
303CONFIG_NETFILTER_XT_MATCH_TIME=m 298CONFIG_NETFILTER_XT_MATCH_TIME=m
304CONFIG_NETFILTER_XT_MATCH_U32=m 299CONFIG_NETFILTER_XT_MATCH_U32=m
305CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 300# CONFIG_IP_VS is not set
306 301
307# 302#
308# IP: Netfilter Configuration 303# IP: Netfilter Configuration
309# 304#
305CONFIG_NF_DEFRAG_IPV4=m
310CONFIG_NF_CONNTRACK_IPV4=m 306CONFIG_NF_CONNTRACK_IPV4=m
311CONFIG_NF_CONNTRACK_PROC_COMPAT=y 307CONFIG_NF_CONNTRACK_PROC_COMPAT=y
312CONFIG_IP_NF_QUEUE=m 308CONFIG_IP_NF_QUEUE=m
313CONFIG_IP_NF_IPTABLES=m 309CONFIG_IP_NF_IPTABLES=m
314CONFIG_IP_NF_MATCH_RECENT=m 310CONFIG_IP_NF_MATCH_ADDRTYPE=m
315CONFIG_IP_NF_MATCH_ECN=m
316CONFIG_IP_NF_MATCH_AH=m 311CONFIG_IP_NF_MATCH_AH=m
312CONFIG_IP_NF_MATCH_ECN=m
317CONFIG_IP_NF_MATCH_TTL=m 313CONFIG_IP_NF_MATCH_TTL=m
318CONFIG_IP_NF_MATCH_ADDRTYPE=m
319CONFIG_IP_NF_FILTER=m 314CONFIG_IP_NF_FILTER=m
320CONFIG_IP_NF_TARGET_REJECT=m 315CONFIG_IP_NF_TARGET_REJECT=m
321CONFIG_IP_NF_TARGET_LOG=m 316CONFIG_IP_NF_TARGET_LOG=m
@@ -323,8 +318,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
323CONFIG_NF_NAT=m 318CONFIG_NF_NAT=m
324CONFIG_NF_NAT_NEEDED=y 319CONFIG_NF_NAT_NEEDED=y
325CONFIG_IP_NF_TARGET_MASQUERADE=m 320CONFIG_IP_NF_TARGET_MASQUERADE=m
326CONFIG_IP_NF_TARGET_REDIRECT=m
327CONFIG_IP_NF_TARGET_NETMAP=m 321CONFIG_IP_NF_TARGET_NETMAP=m
322CONFIG_IP_NF_TARGET_REDIRECT=m
328CONFIG_NF_NAT_SNMP_BASIC=m 323CONFIG_NF_NAT_SNMP_BASIC=m
329CONFIG_NF_NAT_PROTO_GRE=m 324CONFIG_NF_NAT_PROTO_GRE=m
330CONFIG_NF_NAT_PROTO_UDPLITE=m 325CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -337,9 +332,9 @@ CONFIG_NF_NAT_PPTP=m
337CONFIG_NF_NAT_H323=m 332CONFIG_NF_NAT_H323=m
338CONFIG_NF_NAT_SIP=m 333CONFIG_NF_NAT_SIP=m
339CONFIG_IP_NF_MANGLE=m 334CONFIG_IP_NF_MANGLE=m
335CONFIG_IP_NF_TARGET_CLUSTERIP=m
340CONFIG_IP_NF_TARGET_ECN=m 336CONFIG_IP_NF_TARGET_ECN=m
341CONFIG_IP_NF_TARGET_TTL=m 337CONFIG_IP_NF_TARGET_TTL=m
342CONFIG_IP_NF_TARGET_CLUSTERIP=m
343CONFIG_IP_NF_RAW=m 338CONFIG_IP_NF_RAW=m
344CONFIG_IP_NF_ARPTABLES=m 339CONFIG_IP_NF_ARPTABLES=m
345CONFIG_IP_NF_ARPFILTER=m 340CONFIG_IP_NF_ARPFILTER=m
@@ -351,16 +346,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
351CONFIG_NF_CONNTRACK_IPV6=m 346CONFIG_NF_CONNTRACK_IPV6=m
352CONFIG_IP6_NF_QUEUE=m 347CONFIG_IP6_NF_QUEUE=m
353CONFIG_IP6_NF_IPTABLES=m 348CONFIG_IP6_NF_IPTABLES=m
354CONFIG_IP6_NF_MATCH_RT=m 349CONFIG_IP6_NF_MATCH_AH=m
355CONFIG_IP6_NF_MATCH_OPTS=m 350CONFIG_IP6_NF_MATCH_EUI64=m
356CONFIG_IP6_NF_MATCH_FRAG=m 351CONFIG_IP6_NF_MATCH_FRAG=m
352CONFIG_IP6_NF_MATCH_OPTS=m
357CONFIG_IP6_NF_MATCH_HL=m 353CONFIG_IP6_NF_MATCH_HL=m
358CONFIG_IP6_NF_MATCH_IPV6HEADER=m 354CONFIG_IP6_NF_MATCH_IPV6HEADER=m
359CONFIG_IP6_NF_MATCH_AH=m
360CONFIG_IP6_NF_MATCH_MH=m 355CONFIG_IP6_NF_MATCH_MH=m
361CONFIG_IP6_NF_MATCH_EUI64=m 356CONFIG_IP6_NF_MATCH_RT=m
362CONFIG_IP6_NF_FILTER=m
363CONFIG_IP6_NF_TARGET_LOG=m 357CONFIG_IP6_NF_TARGET_LOG=m
358CONFIG_IP6_NF_FILTER=m
364CONFIG_IP6_NF_TARGET_REJECT=m 359CONFIG_IP6_NF_TARGET_REJECT=m
365CONFIG_IP6_NF_MANGLE=m 360CONFIG_IP6_NF_MANGLE=m
366CONFIG_IP6_NF_TARGET_HL=m 361CONFIG_IP6_NF_TARGET_HL=m
@@ -387,6 +382,7 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_TIPC is not set 382# CONFIG_TIPC is not set
388# CONFIG_ATM is not set 383# CONFIG_ATM is not set
389# CONFIG_BRIDGE is not set 384# CONFIG_BRIDGE is not set
385# CONFIG_NET_DSA is not set
390# CONFIG_VLAN_8021Q is not set 386# CONFIG_VLAN_8021Q is not set
391# CONFIG_DECNET is not set 387# CONFIG_DECNET is not set
392CONFIG_LLC=m 388CONFIG_LLC=m
@@ -410,19 +406,8 @@ CONFIG_NET_CLS_ROUTE=y
410# CONFIG_IRDA is not set 406# CONFIG_IRDA is not set
411# CONFIG_BT is not set 407# CONFIG_BT is not set
412# CONFIG_AF_RXRPC is not set 408# CONFIG_AF_RXRPC is not set
413 409# CONFIG_PHONET is not set
414# 410# CONFIG_WIRELESS is not set
415# Wireless
416#
417# CONFIG_CFG80211 is not set
418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
420# CONFIG_MAC80211 is not set
421CONFIG_IEEE80211=m
422# CONFIG_IEEE80211_DEBUG is not set
423CONFIG_IEEE80211_CRYPT_WEP=m
424CONFIG_IEEE80211_CRYPT_CCMP=m
425CONFIG_IEEE80211_CRYPT_TKIP=m
426# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
427# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
428 413
@@ -460,6 +445,7 @@ CONFIG_ATA_OVER_ETH=m
460CONFIG_MISC_DEVICES=y 445CONFIG_MISC_DEVICES=y
461# CONFIG_EEPROM_93CX6 is not set 446# CONFIG_EEPROM_93CX6 is not set
462# CONFIG_ENCLOSURE_SERVICES is not set 447# CONFIG_ENCLOSURE_SERVICES is not set
448# CONFIG_C2PORT is not set
463CONFIG_HAVE_IDE=y 449CONFIG_HAVE_IDE=y
464# CONFIG_IDE is not set 450# CONFIG_IDE is not set
465 451
@@ -545,6 +531,9 @@ CONFIG_BVME6000_NET=y
545# CONFIG_IBM_NEW_EMAC_RGMII is not set 531# CONFIG_IBM_NEW_EMAC_RGMII is not set
546# CONFIG_IBM_NEW_EMAC_TAH is not set 532# CONFIG_IBM_NEW_EMAC_TAH is not set
547# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 533# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
534# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
535# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
536# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
548# CONFIG_B44 is not set 537# CONFIG_B44 is not set
549# CONFIG_NETDEV_1000 is not set 538# CONFIG_NETDEV_1000 is not set
550# CONFIG_NETDEV_10000 is not set 539# CONFIG_NETDEV_10000 is not set
@@ -614,6 +603,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
614CONFIG_MOUSE_PS2_SYNAPTICS=y 603CONFIG_MOUSE_PS2_SYNAPTICS=y
615CONFIG_MOUSE_PS2_LIFEBOOK=y 604CONFIG_MOUSE_PS2_LIFEBOOK=y
616CONFIG_MOUSE_PS2_TRACKPOINT=y 605CONFIG_MOUSE_PS2_TRACKPOINT=y
606# CONFIG_MOUSE_PS2_ELANTECH is not set
617# CONFIG_MOUSE_PS2_TOUCHKIT is not set 607# CONFIG_MOUSE_PS2_TOUCHKIT is not set
618CONFIG_MOUSE_SERIAL=m 608CONFIG_MOUSE_SERIAL=m
619# CONFIG_MOUSE_VSXXXAA is not set 609# CONFIG_MOUSE_VSXXXAA is not set
@@ -668,11 +658,11 @@ CONFIG_GEN_RTC_X=y
668# CONFIG_THERMAL is not set 658# CONFIG_THERMAL is not set
669# CONFIG_THERMAL_HWMON is not set 659# CONFIG_THERMAL_HWMON is not set
670# CONFIG_WATCHDOG is not set 660# CONFIG_WATCHDOG is not set
661CONFIG_SSB_POSSIBLE=y
671 662
672# 663#
673# Sonics Silicon Backplane 664# Sonics Silicon Backplane
674# 665#
675CONFIG_SSB_POSSIBLE=y
676# CONFIG_SSB is not set 666# CONFIG_SSB is not set
677 667
678# 668#
@@ -682,6 +672,7 @@ CONFIG_SSB_POSSIBLE=y
682# CONFIG_MFD_SM501 is not set 672# CONFIG_MFD_SM501 is not set
683# CONFIG_HTC_PASIC3 is not set 673# CONFIG_HTC_PASIC3 is not set
684# CONFIG_MFD_TMIO is not set 674# CONFIG_MFD_TMIO is not set
675# CONFIG_REGULATOR is not set
685 676
686# 677#
687# Multimedia devices 678# Multimedia devices
@@ -721,6 +712,12 @@ CONFIG_HID_SUPPORT=y
721CONFIG_HID=m 712CONFIG_HID=m
722# CONFIG_HID_DEBUG is not set 713# CONFIG_HID_DEBUG is not set
723CONFIG_HIDRAW=y 714CONFIG_HIDRAW=y
715# CONFIG_HID_PID is not set
716
717#
718# Special HID drivers
719#
720CONFIG_HID_COMPAT=y
724# CONFIG_USB_SUPPORT is not set 721# CONFIG_USB_SUPPORT is not set
725# CONFIG_MMC is not set 722# CONFIG_MMC is not set
726# CONFIG_MEMSTICK is not set 723# CONFIG_MEMSTICK is not set
@@ -729,6 +726,8 @@ CONFIG_HIDRAW=y
729# CONFIG_RTC_CLASS is not set 726# CONFIG_RTC_CLASS is not set
730# CONFIG_DMADEVICES is not set 727# CONFIG_DMADEVICES is not set
731# CONFIG_UIO is not set 728# CONFIG_UIO is not set
729# CONFIG_STAGING is not set
730CONFIG_STAGING_EXCLUDE_BUILD=y
732 731
733# 732#
734# Character devices 733# Character devices
@@ -744,8 +743,9 @@ CONFIG_EXT2_FS=y
744# CONFIG_EXT2_FS_XIP is not set 743# CONFIG_EXT2_FS_XIP is not set
745CONFIG_EXT3_FS=y 744CONFIG_EXT3_FS=y
746# CONFIG_EXT3_FS_XATTR is not set 745# CONFIG_EXT3_FS_XATTR is not set
747# CONFIG_EXT4DEV_FS is not set 746# CONFIG_EXT4_FS is not set
748CONFIG_JBD=y 747CONFIG_JBD=y
748CONFIG_JBD2=m
749CONFIG_REISERFS_FS=m 749CONFIG_REISERFS_FS=m
750# CONFIG_REISERFS_CHECK is not set 750# CONFIG_REISERFS_CHECK is not set
751# CONFIG_REISERFS_PROC_INFO is not set 751# CONFIG_REISERFS_PROC_INFO is not set
@@ -756,6 +756,7 @@ CONFIG_JFS_FS=m
756# CONFIG_JFS_DEBUG is not set 756# CONFIG_JFS_DEBUG is not set
757# CONFIG_JFS_STATISTICS is not set 757# CONFIG_JFS_STATISTICS is not set
758# CONFIG_FS_POSIX_ACL is not set 758# CONFIG_FS_POSIX_ACL is not set
759CONFIG_FILE_LOCKING=y
759CONFIG_XFS_FS=m 760CONFIG_XFS_FS=m
760# CONFIG_XFS_QUOTA is not set 761# CONFIG_XFS_QUOTA is not set
761# CONFIG_XFS_POSIX_ACL is not set 762# CONFIG_XFS_POSIX_ACL is not set
@@ -767,6 +768,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
767# CONFIG_OCFS2_FS_STATS is not set 768# CONFIG_OCFS2_FS_STATS is not set
768# CONFIG_OCFS2_DEBUG_MASKLOG is not set 769# CONFIG_OCFS2_DEBUG_MASKLOG is not set
769# CONFIG_OCFS2_DEBUG_FS is not set 770# CONFIG_OCFS2_DEBUG_FS is not set
771# CONFIG_OCFS2_COMPAT_JBD is not set
770CONFIG_DNOTIFY=y 772CONFIG_DNOTIFY=y
771CONFIG_INOTIFY=y 773CONFIG_INOTIFY=y
772CONFIG_INOTIFY_USER=y 774CONFIG_INOTIFY_USER=y
@@ -805,6 +807,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
805CONFIG_PROC_FS=y 807CONFIG_PROC_FS=y
806CONFIG_PROC_KCORE=y 808CONFIG_PROC_KCORE=y
807CONFIG_PROC_SYSCTL=y 809CONFIG_PROC_SYSCTL=y
810CONFIG_PROC_PAGE_MONITOR=y
808CONFIG_SYSFS=y 811CONFIG_SYSFS=y
809CONFIG_TMPFS=y 812CONFIG_TMPFS=y
810# CONFIG_TMPFS_POSIX_ACL is not set 813# CONFIG_TMPFS_POSIX_ACL is not set
@@ -848,6 +851,7 @@ CONFIG_EXPORTFS=m
848CONFIG_NFS_COMMON=y 851CONFIG_NFS_COMMON=y
849CONFIG_SUNRPC=y 852CONFIG_SUNRPC=y
850CONFIG_SUNRPC_GSS=y 853CONFIG_SUNRPC_GSS=y
854# CONFIG_SUNRPC_REGISTER_V4 is not set
851CONFIG_RPCSEC_GSS_KRB5=y 855CONFIG_RPCSEC_GSS_KRB5=y
852# CONFIG_RPCSEC_GSS_SPKM3 is not set 856# CONFIG_RPCSEC_GSS_SPKM3 is not set
853CONFIG_SMB_FS=m 857CONFIG_SMB_FS=m
@@ -921,7 +925,13 @@ CONFIG_MAGIC_SYSRQ=y
921# CONFIG_DEBUG_KERNEL is not set 925# CONFIG_DEBUG_KERNEL is not set
922CONFIG_DEBUG_BUGVERBOSE=y 926CONFIG_DEBUG_BUGVERBOSE=y
923CONFIG_DEBUG_MEMORY_INIT=y 927CONFIG_DEBUG_MEMORY_INIT=y
928# CONFIG_RCU_CPU_STALL_DETECTOR is not set
924CONFIG_SYSCTL_SYSCALL_CHECK=y 929CONFIG_SYSCTL_SYSCALL_CHECK=y
930
931#
932# Tracers
933#
934# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
925# CONFIG_SAMPLES is not set 935# CONFIG_SAMPLES is not set
926 936
927# 937#
@@ -929,6 +939,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
929# 939#
930# CONFIG_KEYS is not set 940# CONFIG_KEYS is not set
931# CONFIG_SECURITY is not set 941# CONFIG_SECURITY is not set
942# CONFIG_SECURITYFS is not set
932# CONFIG_SECURITY_FILE_CAPABILITIES is not set 943# CONFIG_SECURITY_FILE_CAPABILITIES is not set
933CONFIG_XOR_BLOCKS=m 944CONFIG_XOR_BLOCKS=m
934CONFIG_ASYNC_CORE=m 945CONFIG_ASYNC_CORE=m
@@ -939,10 +950,12 @@ CONFIG_CRYPTO=y
939# 950#
940# Crypto core or helper 951# Crypto core or helper
941# 952#
953# CONFIG_CRYPTO_FIPS is not set
942CONFIG_CRYPTO_ALGAPI=y 954CONFIG_CRYPTO_ALGAPI=y
943CONFIG_CRYPTO_AEAD=m 955CONFIG_CRYPTO_AEAD=y
944CONFIG_CRYPTO_BLKCIPHER=y 956CONFIG_CRYPTO_BLKCIPHER=y
945CONFIG_CRYPTO_HASH=y 957CONFIG_CRYPTO_HASH=y
958CONFIG_CRYPTO_RNG=y
946CONFIG_CRYPTO_MANAGER=y 959CONFIG_CRYPTO_MANAGER=y
947CONFIG_CRYPTO_GF128MUL=m 960CONFIG_CRYPTO_GF128MUL=m
948CONFIG_CRYPTO_NULL=m 961CONFIG_CRYPTO_NULL=m
@@ -1016,14 +1029,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1016# 1029#
1017CONFIG_CRYPTO_DEFLATE=m 1030CONFIG_CRYPTO_DEFLATE=m
1018CONFIG_CRYPTO_LZO=m 1031CONFIG_CRYPTO_LZO=m
1032
1033#
1034# Random Number Generation
1035#
1036# CONFIG_CRYPTO_ANSI_CPRNG is not set
1019# CONFIG_CRYPTO_HW is not set 1037# CONFIG_CRYPTO_HW is not set
1020 1038
1021# 1039#
1022# Library routines 1040# Library routines
1023# 1041#
1024CONFIG_BITREVERSE=m 1042CONFIG_BITREVERSE=m
1025# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1026# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1027CONFIG_CRC_CCITT=m 1043CONFIG_CRC_CCITT=m
1028CONFIG_CRC16=m 1044CONFIG_CRC16=m
1029CONFIG_CRC_T10DIF=y 1045CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_defconfig
index 3570fc89b089..5556ef088d04 100644
--- a/arch/m68k/configs/hp300_defconfig
+++ b/arch/m68k/configs/hp300_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:04 2008 4# Tue Dec 2 20:27:46 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -149,19 +139,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
149CONFIG_DISCONTIGMEM=y 139CONFIG_DISCONTIGMEM=y
150CONFIG_FLAT_NODE_MEM_MAP=y 140CONFIG_FLAT_NODE_MEM_MAP=y
151CONFIG_NEED_MULTIPLE_NODES=y 141CONFIG_NEED_MULTIPLE_NODES=y
152# CONFIG_SPARSEMEM_STATIC is not set
153# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
154CONFIG_PAGEFLAGS_EXTENDED=y 142CONFIG_PAGEFLAGS_EXTENDED=y
155CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
156# CONFIG_RESOURCES_64BIT is not set 144# CONFIG_RESOURCES_64BIT is not set
145# CONFIG_PHYS_ADDR_T_64BIT is not set
157CONFIG_ZONE_DMA_FLAG=1 146CONFIG_ZONE_DMA_FLAG=1
158CONFIG_BOUNCE=y 147CONFIG_BOUNCE=y
159CONFIG_VIRT_TO_BUS=y 148CONFIG_VIRT_TO_BUS=y
149CONFIG_UNEVICTABLE_LRU=y
160 150
161# 151#
162# General setup 152# General setup
163# 153#
164CONFIG_BINFMT_ELF=y 154CONFIG_BINFMT_ELF=y
155# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
156CONFIG_HAVE_AOUT=y
165CONFIG_BINFMT_AOUT=m 157CONFIG_BINFMT_AOUT=m
166CONFIG_BINFMT_MISC=m 158CONFIG_BINFMT_MISC=m
167CONFIG_HEARTBEAT=y 159CONFIG_HEARTBEAT=y
@@ -211,7 +203,6 @@ CONFIG_INET_TCP_DIAG=m
211CONFIG_TCP_CONG_CUBIC=y 203CONFIG_TCP_CONG_CUBIC=y
212CONFIG_DEFAULT_TCP_CONG="cubic" 204CONFIG_DEFAULT_TCP_CONG="cubic"
213# CONFIG_TCP_MD5SIG is not set 205# CONFIG_TCP_MD5SIG is not set
214# CONFIG_IP_VS is not set
215CONFIG_IPV6=m 206CONFIG_IPV6=m
216CONFIG_IPV6_PRIVACY=y 207CONFIG_IPV6_PRIVACY=y
217CONFIG_IPV6_ROUTER_PREF=y 208CONFIG_IPV6_ROUTER_PREF=y
@@ -261,13 +252,14 @@ CONFIG_NF_CONNTRACK_SANE=m
261CONFIG_NF_CONNTRACK_SIP=m 252CONFIG_NF_CONNTRACK_SIP=m
262CONFIG_NF_CONNTRACK_TFTP=m 253CONFIG_NF_CONNTRACK_TFTP=m
263# CONFIG_NF_CT_NETLINK is not set 254# CONFIG_NF_CT_NETLINK is not set
255# CONFIG_NETFILTER_TPROXY is not set
264CONFIG_NETFILTER_XTABLES=m 256CONFIG_NETFILTER_XTABLES=m
265CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 257CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
266CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 258CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
267CONFIG_NETFILTER_XT_TARGET_DSCP=m 259CONFIG_NETFILTER_XT_TARGET_DSCP=m
268CONFIG_NETFILTER_XT_TARGET_MARK=m 260CONFIG_NETFILTER_XT_TARGET_MARK=m
269CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
270CONFIG_NETFILTER_XT_TARGET_NFLOG=m 261CONFIG_NETFILTER_XT_TARGET_NFLOG=m
262CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
271CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 263CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
272CONFIG_NETFILTER_XT_TARGET_RATEEST=m 264CONFIG_NETFILTER_XT_TARGET_RATEEST=m
273CONFIG_NETFILTER_XT_TARGET_TRACE=m 265CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -281,19 +273,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
281CONFIG_NETFILTER_XT_MATCH_DCCP=m 273CONFIG_NETFILTER_XT_MATCH_DCCP=m
282CONFIG_NETFILTER_XT_MATCH_DSCP=m 274CONFIG_NETFILTER_XT_MATCH_DSCP=m
283CONFIG_NETFILTER_XT_MATCH_ESP=m 275CONFIG_NETFILTER_XT_MATCH_ESP=m
276CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
284CONFIG_NETFILTER_XT_MATCH_HELPER=m 277CONFIG_NETFILTER_XT_MATCH_HELPER=m
285CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 278CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
286CONFIG_NETFILTER_XT_MATCH_LENGTH=m 279CONFIG_NETFILTER_XT_MATCH_LENGTH=m
287CONFIG_NETFILTER_XT_MATCH_LIMIT=m 280CONFIG_NETFILTER_XT_MATCH_LIMIT=m
288CONFIG_NETFILTER_XT_MATCH_MAC=m 281CONFIG_NETFILTER_XT_MATCH_MAC=m
289CONFIG_NETFILTER_XT_MATCH_MARK=m 282CONFIG_NETFILTER_XT_MATCH_MARK=m
283CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
290CONFIG_NETFILTER_XT_MATCH_OWNER=m 284CONFIG_NETFILTER_XT_MATCH_OWNER=m
291CONFIG_NETFILTER_XT_MATCH_POLICY=m 285CONFIG_NETFILTER_XT_MATCH_POLICY=m
292CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
293CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 286CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
294CONFIG_NETFILTER_XT_MATCH_QUOTA=m 287CONFIG_NETFILTER_XT_MATCH_QUOTA=m
295CONFIG_NETFILTER_XT_MATCH_RATEEST=m 288CONFIG_NETFILTER_XT_MATCH_RATEEST=m
296CONFIG_NETFILTER_XT_MATCH_REALM=m 289CONFIG_NETFILTER_XT_MATCH_REALM=m
290CONFIG_NETFILTER_XT_MATCH_RECENT=m
291# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
297CONFIG_NETFILTER_XT_MATCH_SCTP=m 292CONFIG_NETFILTER_XT_MATCH_SCTP=m
298CONFIG_NETFILTER_XT_MATCH_STATE=m 293CONFIG_NETFILTER_XT_MATCH_STATE=m
299CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 294CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -301,20 +296,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
301CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 296CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
302CONFIG_NETFILTER_XT_MATCH_TIME=m 297CONFIG_NETFILTER_XT_MATCH_TIME=m
303CONFIG_NETFILTER_XT_MATCH_U32=m 298CONFIG_NETFILTER_XT_MATCH_U32=m
304CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 299# CONFIG_IP_VS is not set
305 300
306# 301#
307# IP: Netfilter Configuration 302# IP: Netfilter Configuration
308# 303#
304CONFIG_NF_DEFRAG_IPV4=m
309CONFIG_NF_CONNTRACK_IPV4=m 305CONFIG_NF_CONNTRACK_IPV4=m
310CONFIG_NF_CONNTRACK_PROC_COMPAT=y 306CONFIG_NF_CONNTRACK_PROC_COMPAT=y
311CONFIG_IP_NF_QUEUE=m 307CONFIG_IP_NF_QUEUE=m
312CONFIG_IP_NF_IPTABLES=m 308CONFIG_IP_NF_IPTABLES=m
313CONFIG_IP_NF_MATCH_RECENT=m 309CONFIG_IP_NF_MATCH_ADDRTYPE=m
314CONFIG_IP_NF_MATCH_ECN=m
315CONFIG_IP_NF_MATCH_AH=m 310CONFIG_IP_NF_MATCH_AH=m
311CONFIG_IP_NF_MATCH_ECN=m
316CONFIG_IP_NF_MATCH_TTL=m 312CONFIG_IP_NF_MATCH_TTL=m
317CONFIG_IP_NF_MATCH_ADDRTYPE=m
318CONFIG_IP_NF_FILTER=m 313CONFIG_IP_NF_FILTER=m
319CONFIG_IP_NF_TARGET_REJECT=m 314CONFIG_IP_NF_TARGET_REJECT=m
320CONFIG_IP_NF_TARGET_LOG=m 315CONFIG_IP_NF_TARGET_LOG=m
@@ -322,8 +317,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
322CONFIG_NF_NAT=m 317CONFIG_NF_NAT=m
323CONFIG_NF_NAT_NEEDED=y 318CONFIG_NF_NAT_NEEDED=y
324CONFIG_IP_NF_TARGET_MASQUERADE=m 319CONFIG_IP_NF_TARGET_MASQUERADE=m
325CONFIG_IP_NF_TARGET_REDIRECT=m
326CONFIG_IP_NF_TARGET_NETMAP=m 320CONFIG_IP_NF_TARGET_NETMAP=m
321CONFIG_IP_NF_TARGET_REDIRECT=m
327CONFIG_NF_NAT_SNMP_BASIC=m 322CONFIG_NF_NAT_SNMP_BASIC=m
328CONFIG_NF_NAT_PROTO_GRE=m 323CONFIG_NF_NAT_PROTO_GRE=m
329CONFIG_NF_NAT_PROTO_UDPLITE=m 324CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -336,9 +331,9 @@ CONFIG_NF_NAT_PPTP=m
336CONFIG_NF_NAT_H323=m 331CONFIG_NF_NAT_H323=m
337CONFIG_NF_NAT_SIP=m 332CONFIG_NF_NAT_SIP=m
338CONFIG_IP_NF_MANGLE=m 333CONFIG_IP_NF_MANGLE=m
334CONFIG_IP_NF_TARGET_CLUSTERIP=m
339CONFIG_IP_NF_TARGET_ECN=m 335CONFIG_IP_NF_TARGET_ECN=m
340CONFIG_IP_NF_TARGET_TTL=m 336CONFIG_IP_NF_TARGET_TTL=m
341CONFIG_IP_NF_TARGET_CLUSTERIP=m
342CONFIG_IP_NF_RAW=m 337CONFIG_IP_NF_RAW=m
343CONFIG_IP_NF_ARPTABLES=m 338CONFIG_IP_NF_ARPTABLES=m
344CONFIG_IP_NF_ARPFILTER=m 339CONFIG_IP_NF_ARPFILTER=m
@@ -350,16 +345,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
350CONFIG_NF_CONNTRACK_IPV6=m 345CONFIG_NF_CONNTRACK_IPV6=m
351CONFIG_IP6_NF_QUEUE=m 346CONFIG_IP6_NF_QUEUE=m
352CONFIG_IP6_NF_IPTABLES=m 347CONFIG_IP6_NF_IPTABLES=m
353CONFIG_IP6_NF_MATCH_RT=m 348CONFIG_IP6_NF_MATCH_AH=m
354CONFIG_IP6_NF_MATCH_OPTS=m 349CONFIG_IP6_NF_MATCH_EUI64=m
355CONFIG_IP6_NF_MATCH_FRAG=m 350CONFIG_IP6_NF_MATCH_FRAG=m
351CONFIG_IP6_NF_MATCH_OPTS=m
356CONFIG_IP6_NF_MATCH_HL=m 352CONFIG_IP6_NF_MATCH_HL=m
357CONFIG_IP6_NF_MATCH_IPV6HEADER=m 353CONFIG_IP6_NF_MATCH_IPV6HEADER=m
358CONFIG_IP6_NF_MATCH_AH=m
359CONFIG_IP6_NF_MATCH_MH=m 354CONFIG_IP6_NF_MATCH_MH=m
360CONFIG_IP6_NF_MATCH_EUI64=m 355CONFIG_IP6_NF_MATCH_RT=m
361CONFIG_IP6_NF_FILTER=m
362CONFIG_IP6_NF_TARGET_LOG=m 356CONFIG_IP6_NF_TARGET_LOG=m
357CONFIG_IP6_NF_FILTER=m
363CONFIG_IP6_NF_TARGET_REJECT=m 358CONFIG_IP6_NF_TARGET_REJECT=m
364CONFIG_IP6_NF_MANGLE=m 359CONFIG_IP6_NF_MANGLE=m
365CONFIG_IP6_NF_TARGET_HL=m 360CONFIG_IP6_NF_TARGET_HL=m
@@ -386,6 +381,7 @@ CONFIG_SCTP_HMAC_MD5=y
386# CONFIG_TIPC is not set 381# CONFIG_TIPC is not set
387# CONFIG_ATM is not set 382# CONFIG_ATM is not set
388# CONFIG_BRIDGE is not set 383# CONFIG_BRIDGE is not set
384# CONFIG_NET_DSA is not set
389# CONFIG_VLAN_8021Q is not set 385# CONFIG_VLAN_8021Q is not set
390# CONFIG_DECNET is not set 386# CONFIG_DECNET is not set
391CONFIG_LLC=m 387CONFIG_LLC=m
@@ -409,19 +405,8 @@ CONFIG_NET_CLS_ROUTE=y
409# CONFIG_IRDA is not set 405# CONFIG_IRDA is not set
410# CONFIG_BT is not set 406# CONFIG_BT is not set
411# CONFIG_AF_RXRPC is not set 407# CONFIG_AF_RXRPC is not set
412 408# CONFIG_PHONET is not set
413# 409# CONFIG_WIRELESS is not set
414# Wireless
415#
416# CONFIG_CFG80211 is not set
417CONFIG_WIRELESS_EXT=y
418# CONFIG_WIRELESS_EXT_SYSFS is not set
419# CONFIG_MAC80211 is not set
420CONFIG_IEEE80211=m
421# CONFIG_IEEE80211_DEBUG is not set
422CONFIG_IEEE80211_CRYPT_WEP=m
423CONFIG_IEEE80211_CRYPT_CCMP=m
424CONFIG_IEEE80211_CRYPT_TKIP=m
425# CONFIG_RFKILL is not set 410# CONFIG_RFKILL is not set
426# CONFIG_NET_9P is not set 411# CONFIG_NET_9P is not set
427 412
@@ -459,6 +444,7 @@ CONFIG_ATA_OVER_ETH=m
459CONFIG_MISC_DEVICES=y 444CONFIG_MISC_DEVICES=y
460# CONFIG_EEPROM_93CX6 is not set 445# CONFIG_EEPROM_93CX6 is not set
461# CONFIG_ENCLOSURE_SERVICES is not set 446# CONFIG_ENCLOSURE_SERVICES is not set
447# CONFIG_C2PORT is not set
462CONFIG_HAVE_IDE=y 448CONFIG_HAVE_IDE=y
463# CONFIG_IDE is not set 449# CONFIG_IDE is not set
464 450
@@ -542,6 +528,9 @@ CONFIG_HPLANCE=y
542# CONFIG_IBM_NEW_EMAC_RGMII is not set 528# CONFIG_IBM_NEW_EMAC_RGMII is not set
543# CONFIG_IBM_NEW_EMAC_TAH is not set 529# CONFIG_IBM_NEW_EMAC_TAH is not set
544# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 530# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
531# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
532# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
533# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
545# CONFIG_B44 is not set 534# CONFIG_B44 is not set
546# CONFIG_NETDEV_1000 is not set 535# CONFIG_NETDEV_1000 is not set
547# CONFIG_NETDEV_10000 is not set 536# CONFIG_NETDEV_10000 is not set
@@ -613,6 +602,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
613CONFIG_MOUSE_PS2_SYNAPTICS=y 602CONFIG_MOUSE_PS2_SYNAPTICS=y
614CONFIG_MOUSE_PS2_LIFEBOOK=y 603CONFIG_MOUSE_PS2_LIFEBOOK=y
615CONFIG_MOUSE_PS2_TRACKPOINT=y 604CONFIG_MOUSE_PS2_TRACKPOINT=y
605# CONFIG_MOUSE_PS2_ELANTECH is not set
616# CONFIG_MOUSE_PS2_TOUCHKIT is not set 606# CONFIG_MOUSE_PS2_TOUCHKIT is not set
617CONFIG_MOUSE_SERIAL=m 607CONFIG_MOUSE_SERIAL=m
618# CONFIG_MOUSE_VSXXXAA is not set 608# CONFIG_MOUSE_VSXXXAA is not set
@@ -673,11 +663,11 @@ CONFIG_GEN_RTC_X=y
673# CONFIG_THERMAL is not set 663# CONFIG_THERMAL is not set
674# CONFIG_THERMAL_HWMON is not set 664# CONFIG_THERMAL_HWMON is not set
675# CONFIG_WATCHDOG is not set 665# CONFIG_WATCHDOG is not set
666CONFIG_SSB_POSSIBLE=y
676 667
677# 668#
678# Sonics Silicon Backplane 669# Sonics Silicon Backplane
679# 670#
680CONFIG_SSB_POSSIBLE=y
681# CONFIG_SSB is not set 671# CONFIG_SSB is not set
682 672
683# 673#
@@ -687,6 +677,7 @@ CONFIG_SSB_POSSIBLE=y
687# CONFIG_MFD_SM501 is not set 677# CONFIG_MFD_SM501 is not set
688# CONFIG_HTC_PASIC3 is not set 678# CONFIG_HTC_PASIC3 is not set
689# CONFIG_MFD_TMIO is not set 679# CONFIG_MFD_TMIO is not set
680# CONFIG_REGULATOR is not set
690 681
691# 682#
692# Multimedia devices 683# Multimedia devices
@@ -712,6 +703,7 @@ CONFIG_SSB_POSSIBLE=y
712CONFIG_FB=y 703CONFIG_FB=y
713# CONFIG_FIRMWARE_EDID is not set 704# CONFIG_FIRMWARE_EDID is not set
714# CONFIG_FB_DDC is not set 705# CONFIG_FB_DDC is not set
706# CONFIG_FB_BOOT_VESA_SUPPORT is not set
715# CONFIG_FB_CFB_FILLRECT is not set 707# CONFIG_FB_CFB_FILLRECT is not set
716# CONFIG_FB_CFB_COPYAREA is not set 708# CONFIG_FB_CFB_COPYAREA is not set
717CONFIG_FB_CFB_IMAGEBLIT=y 709CONFIG_FB_CFB_IMAGEBLIT=y
@@ -734,6 +726,8 @@ CONFIG_FB_HP300=y
734# CONFIG_FB_UVESA is not set 726# CONFIG_FB_UVESA is not set
735# CONFIG_FB_S1D13XXX is not set 727# CONFIG_FB_S1D13XXX is not set
736# CONFIG_FB_VIRTUAL is not set 728# CONFIG_FB_VIRTUAL is not set
729# CONFIG_FB_METRONOME is not set
730# CONFIG_FB_MB862XX is not set
737# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 731# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
738 732
739# 733#
@@ -760,6 +754,12 @@ CONFIG_HID_SUPPORT=y
760CONFIG_HID=m 754CONFIG_HID=m
761# CONFIG_HID_DEBUG is not set 755# CONFIG_HID_DEBUG is not set
762CONFIG_HIDRAW=y 756CONFIG_HIDRAW=y
757# CONFIG_HID_PID is not set
758
759#
760# Special HID drivers
761#
762CONFIG_HID_COMPAT=y
763# CONFIG_USB_SUPPORT is not set 763# CONFIG_USB_SUPPORT is not set
764# CONFIG_MMC is not set 764# CONFIG_MMC is not set
765# CONFIG_MEMSTICK is not set 765# CONFIG_MEMSTICK is not set
@@ -768,6 +768,8 @@ CONFIG_HIDRAW=y
768# CONFIG_RTC_CLASS is not set 768# CONFIG_RTC_CLASS is not set
769# CONFIG_DMADEVICES is not set 769# CONFIG_DMADEVICES is not set
770# CONFIG_UIO is not set 770# CONFIG_UIO is not set
771# CONFIG_STAGING is not set
772CONFIG_STAGING_EXCLUDE_BUILD=y
771 773
772# 774#
773# Character devices 775# Character devices
@@ -781,8 +783,9 @@ CONFIG_EXT2_FS=y
781# CONFIG_EXT2_FS_XIP is not set 783# CONFIG_EXT2_FS_XIP is not set
782CONFIG_EXT3_FS=y 784CONFIG_EXT3_FS=y
783# CONFIG_EXT3_FS_XATTR is not set 785# CONFIG_EXT3_FS_XATTR is not set
784# CONFIG_EXT4DEV_FS is not set 786# CONFIG_EXT4_FS is not set
785CONFIG_JBD=y 787CONFIG_JBD=y
788CONFIG_JBD2=m
786CONFIG_REISERFS_FS=m 789CONFIG_REISERFS_FS=m
787# CONFIG_REISERFS_CHECK is not set 790# CONFIG_REISERFS_CHECK is not set
788# CONFIG_REISERFS_PROC_INFO is not set 791# CONFIG_REISERFS_PROC_INFO is not set
@@ -793,6 +796,7 @@ CONFIG_JFS_FS=m
793# CONFIG_JFS_DEBUG is not set 796# CONFIG_JFS_DEBUG is not set
794# CONFIG_JFS_STATISTICS is not set 797# CONFIG_JFS_STATISTICS is not set
795# CONFIG_FS_POSIX_ACL is not set 798# CONFIG_FS_POSIX_ACL is not set
799CONFIG_FILE_LOCKING=y
796CONFIG_XFS_FS=m 800CONFIG_XFS_FS=m
797# CONFIG_XFS_QUOTA is not set 801# CONFIG_XFS_QUOTA is not set
798# CONFIG_XFS_POSIX_ACL is not set 802# CONFIG_XFS_POSIX_ACL is not set
@@ -804,6 +808,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
804# CONFIG_OCFS2_FS_STATS is not set 808# CONFIG_OCFS2_FS_STATS is not set
805# CONFIG_OCFS2_DEBUG_MASKLOG is not set 809# CONFIG_OCFS2_DEBUG_MASKLOG is not set
806# CONFIG_OCFS2_DEBUG_FS is not set 810# CONFIG_OCFS2_DEBUG_FS is not set
811# CONFIG_OCFS2_COMPAT_JBD is not set
807CONFIG_DNOTIFY=y 812CONFIG_DNOTIFY=y
808CONFIG_INOTIFY=y 813CONFIG_INOTIFY=y
809CONFIG_INOTIFY_USER=y 814CONFIG_INOTIFY_USER=y
@@ -842,6 +847,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
842CONFIG_PROC_FS=y 847CONFIG_PROC_FS=y
843CONFIG_PROC_KCORE=y 848CONFIG_PROC_KCORE=y
844CONFIG_PROC_SYSCTL=y 849CONFIG_PROC_SYSCTL=y
850CONFIG_PROC_PAGE_MONITOR=y
845CONFIG_SYSFS=y 851CONFIG_SYSFS=y
846CONFIG_TMPFS=y 852CONFIG_TMPFS=y
847# CONFIG_TMPFS_POSIX_ACL is not set 853# CONFIG_TMPFS_POSIX_ACL is not set
@@ -885,6 +891,7 @@ CONFIG_EXPORTFS=m
885CONFIG_NFS_COMMON=y 891CONFIG_NFS_COMMON=y
886CONFIG_SUNRPC=y 892CONFIG_SUNRPC=y
887CONFIG_SUNRPC_GSS=y 893CONFIG_SUNRPC_GSS=y
894# CONFIG_SUNRPC_REGISTER_V4 is not set
888CONFIG_RPCSEC_GSS_KRB5=y 895CONFIG_RPCSEC_GSS_KRB5=y
889# CONFIG_RPCSEC_GSS_SPKM3 is not set 896# CONFIG_RPCSEC_GSS_SPKM3 is not set
890CONFIG_SMB_FS=m 897CONFIG_SMB_FS=m
@@ -957,7 +964,13 @@ CONFIG_MAGIC_SYSRQ=y
957# CONFIG_DEBUG_KERNEL is not set 964# CONFIG_DEBUG_KERNEL is not set
958CONFIG_DEBUG_BUGVERBOSE=y 965CONFIG_DEBUG_BUGVERBOSE=y
959CONFIG_DEBUG_MEMORY_INIT=y 966CONFIG_DEBUG_MEMORY_INIT=y
967# CONFIG_RCU_CPU_STALL_DETECTOR is not set
960CONFIG_SYSCTL_SYSCALL_CHECK=y 968CONFIG_SYSCTL_SYSCALL_CHECK=y
969
970#
971# Tracers
972#
973# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
961# CONFIG_SAMPLES is not set 974# CONFIG_SAMPLES is not set
962 975
963# 976#
@@ -965,6 +978,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
965# 978#
966# CONFIG_KEYS is not set 979# CONFIG_KEYS is not set
967# CONFIG_SECURITY is not set 980# CONFIG_SECURITY is not set
981# CONFIG_SECURITYFS is not set
968# CONFIG_SECURITY_FILE_CAPABILITIES is not set 982# CONFIG_SECURITY_FILE_CAPABILITIES is not set
969CONFIG_XOR_BLOCKS=m 983CONFIG_XOR_BLOCKS=m
970CONFIG_ASYNC_CORE=m 984CONFIG_ASYNC_CORE=m
@@ -975,10 +989,12 @@ CONFIG_CRYPTO=y
975# 989#
976# Crypto core or helper 990# Crypto core or helper
977# 991#
992# CONFIG_CRYPTO_FIPS is not set
978CONFIG_CRYPTO_ALGAPI=y 993CONFIG_CRYPTO_ALGAPI=y
979CONFIG_CRYPTO_AEAD=m 994CONFIG_CRYPTO_AEAD=y
980CONFIG_CRYPTO_BLKCIPHER=y 995CONFIG_CRYPTO_BLKCIPHER=y
981CONFIG_CRYPTO_HASH=y 996CONFIG_CRYPTO_HASH=y
997CONFIG_CRYPTO_RNG=y
982CONFIG_CRYPTO_MANAGER=y 998CONFIG_CRYPTO_MANAGER=y
983CONFIG_CRYPTO_GF128MUL=m 999CONFIG_CRYPTO_GF128MUL=m
984CONFIG_CRYPTO_NULL=m 1000CONFIG_CRYPTO_NULL=m
@@ -1052,14 +1068,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1052# 1068#
1053CONFIG_CRYPTO_DEFLATE=m 1069CONFIG_CRYPTO_DEFLATE=m
1054CONFIG_CRYPTO_LZO=m 1070CONFIG_CRYPTO_LZO=m
1071
1072#
1073# Random Number Generation
1074#
1075# CONFIG_CRYPTO_ANSI_CPRNG is not set
1055# CONFIG_CRYPTO_HW is not set 1076# CONFIG_CRYPTO_HW is not set
1056 1077
1057# 1078#
1058# Library routines 1079# Library routines
1059# 1080#
1060CONFIG_BITREVERSE=y 1081CONFIG_BITREVERSE=y
1061# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1062# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1063CONFIG_CRC_CCITT=m 1082CONFIG_CRC_CCITT=m
1064CONFIG_CRC16=m 1083CONFIG_CRC16=m
1065CONFIG_CRC_T10DIF=y 1084CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defconfig
index db6e8822594a..c6de25724a25 100644
--- a/arch/m68k/configs/mac_defconfig
+++ b/arch/m68k/configs/mac_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:06 2008 4# Tue Dec 2 20:27:47 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125CONFIG_MAC=y 115CONFIG_MAC=y
@@ -150,19 +140,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
150CONFIG_DISCONTIGMEM=y 140CONFIG_DISCONTIGMEM=y
151CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
152CONFIG_NEED_MULTIPLE_NODES=y 142CONFIG_NEED_MULTIPLE_NODES=y
153# CONFIG_SPARSEMEM_STATIC is not set
154# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
155CONFIG_PAGEFLAGS_EXTENDED=y 143CONFIG_PAGEFLAGS_EXTENDED=y
156CONFIG_SPLIT_PTLOCK_CPUS=4 144CONFIG_SPLIT_PTLOCK_CPUS=4
157# CONFIG_RESOURCES_64BIT is not set 145# CONFIG_RESOURCES_64BIT is not set
146# CONFIG_PHYS_ADDR_T_64BIT is not set
158CONFIG_ZONE_DMA_FLAG=1 147CONFIG_ZONE_DMA_FLAG=1
159CONFIG_BOUNCE=y 148CONFIG_BOUNCE=y
160CONFIG_VIRT_TO_BUS=y 149CONFIG_VIRT_TO_BUS=y
150CONFIG_UNEVICTABLE_LRU=y
161 151
162# 152#
163# General setup 153# General setup
164# 154#
165CONFIG_BINFMT_ELF=y 155CONFIG_BINFMT_ELF=y
156# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
157CONFIG_HAVE_AOUT=y
166CONFIG_BINFMT_AOUT=m 158CONFIG_BINFMT_AOUT=m
167CONFIG_BINFMT_MISC=m 159CONFIG_BINFMT_MISC=m
168# CONFIG_HEARTBEAT is not set 160# CONFIG_HEARTBEAT is not set
@@ -209,7 +201,6 @@ CONFIG_INET_TCP_DIAG=m
209CONFIG_TCP_CONG_CUBIC=y 201CONFIG_TCP_CONG_CUBIC=y
210CONFIG_DEFAULT_TCP_CONG="cubic" 202CONFIG_DEFAULT_TCP_CONG="cubic"
211# CONFIG_TCP_MD5SIG is not set 203# CONFIG_TCP_MD5SIG is not set
212# CONFIG_IP_VS is not set
213CONFIG_IPV6=m 204CONFIG_IPV6=m
214CONFIG_IPV6_PRIVACY=y 205CONFIG_IPV6_PRIVACY=y
215CONFIG_IPV6_ROUTER_PREF=y 206CONFIG_IPV6_ROUTER_PREF=y
@@ -259,13 +250,14 @@ CONFIG_NF_CONNTRACK_SANE=m
259CONFIG_NF_CONNTRACK_SIP=m 250CONFIG_NF_CONNTRACK_SIP=m
260CONFIG_NF_CONNTRACK_TFTP=m 251CONFIG_NF_CONNTRACK_TFTP=m
261# CONFIG_NF_CT_NETLINK is not set 252# CONFIG_NF_CT_NETLINK is not set
253# CONFIG_NETFILTER_TPROXY is not set
262CONFIG_NETFILTER_XTABLES=m 254CONFIG_NETFILTER_XTABLES=m
263CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 255CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
264CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 256CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
265CONFIG_NETFILTER_XT_TARGET_DSCP=m 257CONFIG_NETFILTER_XT_TARGET_DSCP=m
266CONFIG_NETFILTER_XT_TARGET_MARK=m 258CONFIG_NETFILTER_XT_TARGET_MARK=m
267CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
268CONFIG_NETFILTER_XT_TARGET_NFLOG=m 259CONFIG_NETFILTER_XT_TARGET_NFLOG=m
260CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
269CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 261CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
270CONFIG_NETFILTER_XT_TARGET_RATEEST=m 262CONFIG_NETFILTER_XT_TARGET_RATEEST=m
271CONFIG_NETFILTER_XT_TARGET_TRACE=m 263CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -279,19 +271,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
279CONFIG_NETFILTER_XT_MATCH_DCCP=m 271CONFIG_NETFILTER_XT_MATCH_DCCP=m
280CONFIG_NETFILTER_XT_MATCH_DSCP=m 272CONFIG_NETFILTER_XT_MATCH_DSCP=m
281CONFIG_NETFILTER_XT_MATCH_ESP=m 273CONFIG_NETFILTER_XT_MATCH_ESP=m
274CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
282CONFIG_NETFILTER_XT_MATCH_HELPER=m 275CONFIG_NETFILTER_XT_MATCH_HELPER=m
283CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 276CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
284CONFIG_NETFILTER_XT_MATCH_LENGTH=m 277CONFIG_NETFILTER_XT_MATCH_LENGTH=m
285CONFIG_NETFILTER_XT_MATCH_LIMIT=m 278CONFIG_NETFILTER_XT_MATCH_LIMIT=m
286CONFIG_NETFILTER_XT_MATCH_MAC=m 279CONFIG_NETFILTER_XT_MATCH_MAC=m
287CONFIG_NETFILTER_XT_MATCH_MARK=m 280CONFIG_NETFILTER_XT_MATCH_MARK=m
281CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
288CONFIG_NETFILTER_XT_MATCH_OWNER=m 282CONFIG_NETFILTER_XT_MATCH_OWNER=m
289CONFIG_NETFILTER_XT_MATCH_POLICY=m 283CONFIG_NETFILTER_XT_MATCH_POLICY=m
290CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
291CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 284CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
292CONFIG_NETFILTER_XT_MATCH_QUOTA=m 285CONFIG_NETFILTER_XT_MATCH_QUOTA=m
293CONFIG_NETFILTER_XT_MATCH_RATEEST=m 286CONFIG_NETFILTER_XT_MATCH_RATEEST=m
294CONFIG_NETFILTER_XT_MATCH_REALM=m 287CONFIG_NETFILTER_XT_MATCH_REALM=m
288CONFIG_NETFILTER_XT_MATCH_RECENT=m
289# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
295CONFIG_NETFILTER_XT_MATCH_SCTP=m 290CONFIG_NETFILTER_XT_MATCH_SCTP=m
296CONFIG_NETFILTER_XT_MATCH_STATE=m 291CONFIG_NETFILTER_XT_MATCH_STATE=m
297CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 292CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -299,20 +294,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
299CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 294CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
300CONFIG_NETFILTER_XT_MATCH_TIME=m 295CONFIG_NETFILTER_XT_MATCH_TIME=m
301CONFIG_NETFILTER_XT_MATCH_U32=m 296CONFIG_NETFILTER_XT_MATCH_U32=m
302CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 297# CONFIG_IP_VS is not set
303 298
304# 299#
305# IP: Netfilter Configuration 300# IP: Netfilter Configuration
306# 301#
302CONFIG_NF_DEFRAG_IPV4=m
307CONFIG_NF_CONNTRACK_IPV4=m 303CONFIG_NF_CONNTRACK_IPV4=m
308CONFIG_NF_CONNTRACK_PROC_COMPAT=y 304CONFIG_NF_CONNTRACK_PROC_COMPAT=y
309CONFIG_IP_NF_QUEUE=m 305CONFIG_IP_NF_QUEUE=m
310CONFIG_IP_NF_IPTABLES=m 306CONFIG_IP_NF_IPTABLES=m
311CONFIG_IP_NF_MATCH_RECENT=m 307CONFIG_IP_NF_MATCH_ADDRTYPE=m
312CONFIG_IP_NF_MATCH_ECN=m
313CONFIG_IP_NF_MATCH_AH=m 308CONFIG_IP_NF_MATCH_AH=m
309CONFIG_IP_NF_MATCH_ECN=m
314CONFIG_IP_NF_MATCH_TTL=m 310CONFIG_IP_NF_MATCH_TTL=m
315CONFIG_IP_NF_MATCH_ADDRTYPE=m
316CONFIG_IP_NF_FILTER=m 311CONFIG_IP_NF_FILTER=m
317CONFIG_IP_NF_TARGET_REJECT=m 312CONFIG_IP_NF_TARGET_REJECT=m
318CONFIG_IP_NF_TARGET_LOG=m 313CONFIG_IP_NF_TARGET_LOG=m
@@ -320,8 +315,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
320CONFIG_NF_NAT=m 315CONFIG_NF_NAT=m
321CONFIG_NF_NAT_NEEDED=y 316CONFIG_NF_NAT_NEEDED=y
322CONFIG_IP_NF_TARGET_MASQUERADE=m 317CONFIG_IP_NF_TARGET_MASQUERADE=m
323CONFIG_IP_NF_TARGET_REDIRECT=m
324CONFIG_IP_NF_TARGET_NETMAP=m 318CONFIG_IP_NF_TARGET_NETMAP=m
319CONFIG_IP_NF_TARGET_REDIRECT=m
325CONFIG_NF_NAT_SNMP_BASIC=m 320CONFIG_NF_NAT_SNMP_BASIC=m
326CONFIG_NF_NAT_PROTO_GRE=m 321CONFIG_NF_NAT_PROTO_GRE=m
327CONFIG_NF_NAT_PROTO_UDPLITE=m 322CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -334,9 +329,9 @@ CONFIG_NF_NAT_PPTP=m
334CONFIG_NF_NAT_H323=m 329CONFIG_NF_NAT_H323=m
335CONFIG_NF_NAT_SIP=m 330CONFIG_NF_NAT_SIP=m
336CONFIG_IP_NF_MANGLE=m 331CONFIG_IP_NF_MANGLE=m
332CONFIG_IP_NF_TARGET_CLUSTERIP=m
337CONFIG_IP_NF_TARGET_ECN=m 333CONFIG_IP_NF_TARGET_ECN=m
338CONFIG_IP_NF_TARGET_TTL=m 334CONFIG_IP_NF_TARGET_TTL=m
339CONFIG_IP_NF_TARGET_CLUSTERIP=m
340CONFIG_IP_NF_RAW=m 335CONFIG_IP_NF_RAW=m
341CONFIG_IP_NF_ARPTABLES=m 336CONFIG_IP_NF_ARPTABLES=m
342CONFIG_IP_NF_ARPFILTER=m 337CONFIG_IP_NF_ARPFILTER=m
@@ -348,16 +343,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
348CONFIG_NF_CONNTRACK_IPV6=m 343CONFIG_NF_CONNTRACK_IPV6=m
349CONFIG_IP6_NF_QUEUE=m 344CONFIG_IP6_NF_QUEUE=m
350CONFIG_IP6_NF_IPTABLES=m 345CONFIG_IP6_NF_IPTABLES=m
351CONFIG_IP6_NF_MATCH_RT=m 346CONFIG_IP6_NF_MATCH_AH=m
352CONFIG_IP6_NF_MATCH_OPTS=m 347CONFIG_IP6_NF_MATCH_EUI64=m
353CONFIG_IP6_NF_MATCH_FRAG=m 348CONFIG_IP6_NF_MATCH_FRAG=m
349CONFIG_IP6_NF_MATCH_OPTS=m
354CONFIG_IP6_NF_MATCH_HL=m 350CONFIG_IP6_NF_MATCH_HL=m
355CONFIG_IP6_NF_MATCH_IPV6HEADER=m 351CONFIG_IP6_NF_MATCH_IPV6HEADER=m
356CONFIG_IP6_NF_MATCH_AH=m
357CONFIG_IP6_NF_MATCH_MH=m 352CONFIG_IP6_NF_MATCH_MH=m
358CONFIG_IP6_NF_MATCH_EUI64=m 353CONFIG_IP6_NF_MATCH_RT=m
359CONFIG_IP6_NF_FILTER=m
360CONFIG_IP6_NF_TARGET_LOG=m 354CONFIG_IP6_NF_TARGET_LOG=m
355CONFIG_IP6_NF_FILTER=m
361CONFIG_IP6_NF_TARGET_REJECT=m 356CONFIG_IP6_NF_TARGET_REJECT=m
362CONFIG_IP6_NF_MANGLE=m 357CONFIG_IP6_NF_MANGLE=m
363CONFIG_IP6_NF_TARGET_HL=m 358CONFIG_IP6_NF_TARGET_HL=m
@@ -384,6 +379,7 @@ CONFIG_SCTP_HMAC_MD5=y
384# CONFIG_TIPC is not set 379# CONFIG_TIPC is not set
385# CONFIG_ATM is not set 380# CONFIG_ATM is not set
386# CONFIG_BRIDGE is not set 381# CONFIG_BRIDGE is not set
382# CONFIG_NET_DSA is not set
387# CONFIG_VLAN_8021Q is not set 383# CONFIG_VLAN_8021Q is not set
388# CONFIG_DECNET is not set 384# CONFIG_DECNET is not set
389CONFIG_LLC=m 385CONFIG_LLC=m
@@ -410,19 +406,8 @@ CONFIG_NET_CLS_ROUTE=y
410# CONFIG_IRDA is not set 406# CONFIG_IRDA is not set
411# CONFIG_BT is not set 407# CONFIG_BT is not set
412# CONFIG_AF_RXRPC is not set 408# CONFIG_AF_RXRPC is not set
413 409# CONFIG_PHONET is not set
414# 410# CONFIG_WIRELESS is not set
415# Wireless
416#
417# CONFIG_CFG80211 is not set
418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
420# CONFIG_MAC80211 is not set
421CONFIG_IEEE80211=m
422# CONFIG_IEEE80211_DEBUG is not set
423CONFIG_IEEE80211_CRYPT_WEP=m
424CONFIG_IEEE80211_CRYPT_CCMP=m
425CONFIG_IEEE80211_CRYPT_TKIP=m
426# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
427# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
428 413
@@ -460,21 +445,20 @@ CONFIG_ATA_OVER_ETH=m
460CONFIG_MISC_DEVICES=y 445CONFIG_MISC_DEVICES=y
461# CONFIG_EEPROM_93CX6 is not set 446# CONFIG_EEPROM_93CX6 is not set
462# CONFIG_ENCLOSURE_SERVICES is not set 447# CONFIG_ENCLOSURE_SERVICES is not set
448# CONFIG_C2PORT is not set
463CONFIG_HAVE_IDE=y 449CONFIG_HAVE_IDE=y
464CONFIG_IDE=y 450CONFIG_IDE=y
465CONFIG_BLK_DEV_IDE=y
466 451
467# 452#
468# Please see Documentation/ide/ide.txt for help/info on IDE drives 453# Please see Documentation/ide/ide.txt for help/info on IDE drives
469# 454#
470CONFIG_IDE_ATAPI=y
471# CONFIG_BLK_DEV_IDE_SATA is not set 455# CONFIG_BLK_DEV_IDE_SATA is not set
472CONFIG_BLK_DEV_IDEDISK=y 456CONFIG_IDE_GD=y
473# CONFIG_IDEDISK_MULTI_MODE is not set 457CONFIG_IDE_GD_ATA=y
458# CONFIG_IDE_GD_ATAPI is not set
474CONFIG_BLK_DEV_IDECD=y 459CONFIG_BLK_DEV_IDECD=y
475CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 460CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
476# CONFIG_BLK_DEV_IDETAPE is not set 461# CONFIG_BLK_DEV_IDETAPE is not set
477CONFIG_BLK_DEV_IDEFLOPPY=m
478# CONFIG_BLK_DEV_IDESCSI is not set 462# CONFIG_BLK_DEV_IDESCSI is not set
479# CONFIG_IDE_TASK_IOCTL is not set 463# CONFIG_IDE_TASK_IOCTL is not set
480CONFIG_IDE_PROC_FS=y 464CONFIG_IDE_PROC_FS=y
@@ -581,6 +565,9 @@ CONFIG_MACMACE=y
581# CONFIG_IBM_NEW_EMAC_RGMII is not set 565# CONFIG_IBM_NEW_EMAC_RGMII is not set
582# CONFIG_IBM_NEW_EMAC_TAH is not set 566# CONFIG_IBM_NEW_EMAC_TAH is not set
583# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 567# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
568# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
569# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
570# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
584# CONFIG_B44 is not set 571# CONFIG_B44 is not set
585# CONFIG_NETDEV_1000 is not set 572# CONFIG_NETDEV_1000 is not set
586# CONFIG_NETDEV_10000 is not set 573# CONFIG_NETDEV_10000 is not set
@@ -650,6 +637,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
650CONFIG_MOUSE_PS2_SYNAPTICS=y 637CONFIG_MOUSE_PS2_SYNAPTICS=y
651CONFIG_MOUSE_PS2_LIFEBOOK=y 638CONFIG_MOUSE_PS2_LIFEBOOK=y
652CONFIG_MOUSE_PS2_TRACKPOINT=y 639CONFIG_MOUSE_PS2_TRACKPOINT=y
640# CONFIG_MOUSE_PS2_ELANTECH is not set
653# CONFIG_MOUSE_PS2_TOUCHKIT is not set 641# CONFIG_MOUSE_PS2_TOUCHKIT is not set
654CONFIG_MOUSE_SERIAL=m 642CONFIG_MOUSE_SERIAL=m
655# CONFIG_MOUSE_VSXXXAA is not set 643# CONFIG_MOUSE_VSXXXAA is not set
@@ -706,11 +694,11 @@ CONFIG_GEN_RTC_X=y
706# CONFIG_THERMAL is not set 694# CONFIG_THERMAL is not set
707# CONFIG_THERMAL_HWMON is not set 695# CONFIG_THERMAL_HWMON is not set
708# CONFIG_WATCHDOG is not set 696# CONFIG_WATCHDOG is not set
697CONFIG_SSB_POSSIBLE=y
709 698
710# 699#
711# Sonics Silicon Backplane 700# Sonics Silicon Backplane
712# 701#
713CONFIG_SSB_POSSIBLE=y
714# CONFIG_SSB is not set 702# CONFIG_SSB is not set
715 703
716# 704#
@@ -720,6 +708,7 @@ CONFIG_SSB_POSSIBLE=y
720# CONFIG_MFD_SM501 is not set 708# CONFIG_MFD_SM501 is not set
721# CONFIG_HTC_PASIC3 is not set 709# CONFIG_HTC_PASIC3 is not set
722# CONFIG_MFD_TMIO is not set 710# CONFIG_MFD_TMIO is not set
711# CONFIG_REGULATOR is not set
723 712
724# 713#
725# Multimedia devices 714# Multimedia devices
@@ -745,6 +734,7 @@ CONFIG_SSB_POSSIBLE=y
745CONFIG_FB=y 734CONFIG_FB=y
746# CONFIG_FIRMWARE_EDID is not set 735# CONFIG_FIRMWARE_EDID is not set
747# CONFIG_FB_DDC is not set 736# CONFIG_FB_DDC is not set
737# CONFIG_FB_BOOT_VESA_SUPPORT is not set
748CONFIG_FB_CFB_FILLRECT=y 738CONFIG_FB_CFB_FILLRECT=y
749CONFIG_FB_CFB_COPYAREA=y 739CONFIG_FB_CFB_COPYAREA=y
750CONFIG_FB_CFB_IMAGEBLIT=y 740CONFIG_FB_CFB_IMAGEBLIT=y
@@ -768,6 +758,8 @@ CONFIG_FB_MAC=y
768# CONFIG_FB_UVESA is not set 758# CONFIG_FB_UVESA is not set
769# CONFIG_FB_S1D13XXX is not set 759# CONFIG_FB_S1D13XXX is not set
770# CONFIG_FB_VIRTUAL is not set 760# CONFIG_FB_VIRTUAL is not set
761# CONFIG_FB_METRONOME is not set
762# CONFIG_FB_MB862XX is not set
771# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 763# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
772 764
773# 765#
@@ -796,6 +788,12 @@ CONFIG_HID_SUPPORT=y
796CONFIG_HID=m 788CONFIG_HID=m
797# CONFIG_HID_DEBUG is not set 789# CONFIG_HID_DEBUG is not set
798CONFIG_HIDRAW=y 790CONFIG_HIDRAW=y
791# CONFIG_HID_PID is not set
792
793#
794# Special HID drivers
795#
796CONFIG_HID_COMPAT=y
799# CONFIG_USB_SUPPORT is not set 797# CONFIG_USB_SUPPORT is not set
800# CONFIG_MMC is not set 798# CONFIG_MMC is not set
801# CONFIG_MEMSTICK is not set 799# CONFIG_MEMSTICK is not set
@@ -804,6 +802,8 @@ CONFIG_HIDRAW=y
804# CONFIG_RTC_CLASS is not set 802# CONFIG_RTC_CLASS is not set
805# CONFIG_DMADEVICES is not set 803# CONFIG_DMADEVICES is not set
806# CONFIG_UIO is not set 804# CONFIG_UIO is not set
805# CONFIG_STAGING is not set
806CONFIG_STAGING_EXCLUDE_BUILD=y
807 807
808# 808#
809# Character devices 809# Character devices
@@ -820,8 +820,9 @@ CONFIG_EXT2_FS=y
820# CONFIG_EXT2_FS_XIP is not set 820# CONFIG_EXT2_FS_XIP is not set
821CONFIG_EXT3_FS=y 821CONFIG_EXT3_FS=y
822# CONFIG_EXT3_FS_XATTR is not set 822# CONFIG_EXT3_FS_XATTR is not set
823# CONFIG_EXT4DEV_FS is not set 823# CONFIG_EXT4_FS is not set
824CONFIG_JBD=y 824CONFIG_JBD=y
825CONFIG_JBD2=m
825CONFIG_REISERFS_FS=m 826CONFIG_REISERFS_FS=m
826# CONFIG_REISERFS_CHECK is not set 827# CONFIG_REISERFS_CHECK is not set
827# CONFIG_REISERFS_PROC_INFO is not set 828# CONFIG_REISERFS_PROC_INFO is not set
@@ -832,6 +833,7 @@ CONFIG_JFS_FS=m
832# CONFIG_JFS_DEBUG is not set 833# CONFIG_JFS_DEBUG is not set
833# CONFIG_JFS_STATISTICS is not set 834# CONFIG_JFS_STATISTICS is not set
834# CONFIG_FS_POSIX_ACL is not set 835# CONFIG_FS_POSIX_ACL is not set
836CONFIG_FILE_LOCKING=y
835CONFIG_XFS_FS=m 837CONFIG_XFS_FS=m
836# CONFIG_XFS_QUOTA is not set 838# CONFIG_XFS_QUOTA is not set
837# CONFIG_XFS_POSIX_ACL is not set 839# CONFIG_XFS_POSIX_ACL is not set
@@ -843,6 +845,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
843# CONFIG_OCFS2_FS_STATS is not set 845# CONFIG_OCFS2_FS_STATS is not set
844# CONFIG_OCFS2_DEBUG_MASKLOG is not set 846# CONFIG_OCFS2_DEBUG_MASKLOG is not set
845# CONFIG_OCFS2_DEBUG_FS is not set 847# CONFIG_OCFS2_DEBUG_FS is not set
848# CONFIG_OCFS2_COMPAT_JBD is not set
846CONFIG_DNOTIFY=y 849CONFIG_DNOTIFY=y
847CONFIG_INOTIFY=y 850CONFIG_INOTIFY=y
848CONFIG_INOTIFY_USER=y 851CONFIG_INOTIFY_USER=y
@@ -881,6 +884,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
881CONFIG_PROC_FS=y 884CONFIG_PROC_FS=y
882CONFIG_PROC_KCORE=y 885CONFIG_PROC_KCORE=y
883CONFIG_PROC_SYSCTL=y 886CONFIG_PROC_SYSCTL=y
887CONFIG_PROC_PAGE_MONITOR=y
884CONFIG_SYSFS=y 888CONFIG_SYSFS=y
885CONFIG_TMPFS=y 889CONFIG_TMPFS=y
886# CONFIG_TMPFS_POSIX_ACL is not set 890# CONFIG_TMPFS_POSIX_ACL is not set
@@ -923,6 +927,7 @@ CONFIG_EXPORTFS=m
923CONFIG_NFS_COMMON=y 927CONFIG_NFS_COMMON=y
924CONFIG_SUNRPC=m 928CONFIG_SUNRPC=m
925CONFIG_SUNRPC_GSS=m 929CONFIG_SUNRPC_GSS=m
930# CONFIG_SUNRPC_REGISTER_V4 is not set
926CONFIG_RPCSEC_GSS_KRB5=m 931CONFIG_RPCSEC_GSS_KRB5=m
927# CONFIG_RPCSEC_GSS_SPKM3 is not set 932# CONFIG_RPCSEC_GSS_SPKM3 is not set
928CONFIG_SMB_FS=m 933CONFIG_SMB_FS=m
@@ -996,7 +1001,13 @@ CONFIG_MAGIC_SYSRQ=y
996# CONFIG_DEBUG_KERNEL is not set 1001# CONFIG_DEBUG_KERNEL is not set
997CONFIG_DEBUG_BUGVERBOSE=y 1002CONFIG_DEBUG_BUGVERBOSE=y
998CONFIG_DEBUG_MEMORY_INIT=y 1003CONFIG_DEBUG_MEMORY_INIT=y
1004# CONFIG_RCU_CPU_STALL_DETECTOR is not set
999CONFIG_SYSCTL_SYSCALL_CHECK=y 1005CONFIG_SYSCTL_SYSCALL_CHECK=y
1006
1007#
1008# Tracers
1009#
1010# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1000# CONFIG_SAMPLES is not set 1011# CONFIG_SAMPLES is not set
1001 1012
1002# 1013#
@@ -1004,6 +1015,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
1004# 1015#
1005# CONFIG_KEYS is not set 1016# CONFIG_KEYS is not set
1006# CONFIG_SECURITY is not set 1017# CONFIG_SECURITY is not set
1018# CONFIG_SECURITYFS is not set
1007# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1019# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1008CONFIG_XOR_BLOCKS=m 1020CONFIG_XOR_BLOCKS=m
1009CONFIG_ASYNC_CORE=m 1021CONFIG_ASYNC_CORE=m
@@ -1014,10 +1026,12 @@ CONFIG_CRYPTO=y
1014# 1026#
1015# Crypto core or helper 1027# Crypto core or helper
1016# 1028#
1029# CONFIG_CRYPTO_FIPS is not set
1017CONFIG_CRYPTO_ALGAPI=y 1030CONFIG_CRYPTO_ALGAPI=y
1018CONFIG_CRYPTO_AEAD=m 1031CONFIG_CRYPTO_AEAD=y
1019CONFIG_CRYPTO_BLKCIPHER=m 1032CONFIG_CRYPTO_BLKCIPHER=y
1020CONFIG_CRYPTO_HASH=y 1033CONFIG_CRYPTO_HASH=y
1034CONFIG_CRYPTO_RNG=y
1021CONFIG_CRYPTO_MANAGER=y 1035CONFIG_CRYPTO_MANAGER=y
1022CONFIG_CRYPTO_GF128MUL=m 1036CONFIG_CRYPTO_GF128MUL=m
1023CONFIG_CRYPTO_NULL=m 1037CONFIG_CRYPTO_NULL=m
@@ -1091,14 +1105,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1091# 1105#
1092CONFIG_CRYPTO_DEFLATE=m 1106CONFIG_CRYPTO_DEFLATE=m
1093CONFIG_CRYPTO_LZO=m 1107CONFIG_CRYPTO_LZO=m
1108
1109#
1110# Random Number Generation
1111#
1112# CONFIG_CRYPTO_ANSI_CPRNG is not set
1094# CONFIG_CRYPTO_HW is not set 1113# CONFIG_CRYPTO_HW is not set
1095 1114
1096# 1115#
1097# Library routines 1116# Library routines
1098# 1117#
1099CONFIG_BITREVERSE=y 1118CONFIG_BITREVERSE=y
1100# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1101# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1102CONFIG_CRC_CCITT=m 1119CONFIG_CRC_CCITT=m
1103CONFIG_CRC16=m 1120CONFIG_CRC16=m
1104CONFIG_CRC_T10DIF=y 1121CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_defconfig
index 1a806102b999..70693588031e 100644
--- a/arch/m68k/configs/multi_defconfig
+++ b/arch/m68k/configs/multi_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:07 2008 4# Tue Dec 2 20:27:48 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123CONFIG_AMIGA=y 113CONFIG_AMIGA=y
124CONFIG_ATARI=y 114CONFIG_ATARI=y
125CONFIG_MAC=y 115CONFIG_MAC=y
@@ -154,19 +144,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
154CONFIG_DISCONTIGMEM=y 144CONFIG_DISCONTIGMEM=y
155CONFIG_FLAT_NODE_MEM_MAP=y 145CONFIG_FLAT_NODE_MEM_MAP=y
156CONFIG_NEED_MULTIPLE_NODES=y 146CONFIG_NEED_MULTIPLE_NODES=y
157# CONFIG_SPARSEMEM_STATIC is not set
158# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
159CONFIG_PAGEFLAGS_EXTENDED=y 147CONFIG_PAGEFLAGS_EXTENDED=y
160CONFIG_SPLIT_PTLOCK_CPUS=4 148CONFIG_SPLIT_PTLOCK_CPUS=4
161# CONFIG_RESOURCES_64BIT is not set 149# CONFIG_RESOURCES_64BIT is not set
150# CONFIG_PHYS_ADDR_T_64BIT is not set
162CONFIG_ZONE_DMA_FLAG=1 151CONFIG_ZONE_DMA_FLAG=1
163CONFIG_BOUNCE=y 152CONFIG_BOUNCE=y
164CONFIG_VIRT_TO_BUS=y 153CONFIG_VIRT_TO_BUS=y
154CONFIG_UNEVICTABLE_LRU=y
165 155
166# 156#
167# General setup 157# General setup
168# 158#
169CONFIG_BINFMT_ELF=y 159CONFIG_BINFMT_ELF=y
160# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
161CONFIG_HAVE_AOUT=y
170CONFIG_BINFMT_AOUT=m 162CONFIG_BINFMT_AOUT=m
171CONFIG_BINFMT_MISC=m 163CONFIG_BINFMT_MISC=m
172CONFIG_ZORRO=y 164CONFIG_ZORRO=y
@@ -222,7 +214,6 @@ CONFIG_INET_TCP_DIAG=m
222CONFIG_TCP_CONG_CUBIC=y 214CONFIG_TCP_CONG_CUBIC=y
223CONFIG_DEFAULT_TCP_CONG="cubic" 215CONFIG_DEFAULT_TCP_CONG="cubic"
224# CONFIG_TCP_MD5SIG is not set 216# CONFIG_TCP_MD5SIG is not set
225# CONFIG_IP_VS is not set
226CONFIG_IPV6=m 217CONFIG_IPV6=m
227CONFIG_IPV6_PRIVACY=y 218CONFIG_IPV6_PRIVACY=y
228CONFIG_IPV6_ROUTER_PREF=y 219CONFIG_IPV6_ROUTER_PREF=y
@@ -272,13 +263,14 @@ CONFIG_NF_CONNTRACK_SANE=m
272CONFIG_NF_CONNTRACK_SIP=m 263CONFIG_NF_CONNTRACK_SIP=m
273CONFIG_NF_CONNTRACK_TFTP=m 264CONFIG_NF_CONNTRACK_TFTP=m
274# CONFIG_NF_CT_NETLINK is not set 265# CONFIG_NF_CT_NETLINK is not set
266# CONFIG_NETFILTER_TPROXY is not set
275CONFIG_NETFILTER_XTABLES=m 267CONFIG_NETFILTER_XTABLES=m
276CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 268CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
277CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 269CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
278CONFIG_NETFILTER_XT_TARGET_DSCP=m 270CONFIG_NETFILTER_XT_TARGET_DSCP=m
279CONFIG_NETFILTER_XT_TARGET_MARK=m 271CONFIG_NETFILTER_XT_TARGET_MARK=m
280CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
281CONFIG_NETFILTER_XT_TARGET_NFLOG=m 272CONFIG_NETFILTER_XT_TARGET_NFLOG=m
273CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
282CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 274CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
283CONFIG_NETFILTER_XT_TARGET_RATEEST=m 275CONFIG_NETFILTER_XT_TARGET_RATEEST=m
284CONFIG_NETFILTER_XT_TARGET_TRACE=m 276CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -292,19 +284,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
292CONFIG_NETFILTER_XT_MATCH_DCCP=m 284CONFIG_NETFILTER_XT_MATCH_DCCP=m
293CONFIG_NETFILTER_XT_MATCH_DSCP=m 285CONFIG_NETFILTER_XT_MATCH_DSCP=m
294CONFIG_NETFILTER_XT_MATCH_ESP=m 286CONFIG_NETFILTER_XT_MATCH_ESP=m
287CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
295CONFIG_NETFILTER_XT_MATCH_HELPER=m 288CONFIG_NETFILTER_XT_MATCH_HELPER=m
296CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 289CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
297CONFIG_NETFILTER_XT_MATCH_LENGTH=m 290CONFIG_NETFILTER_XT_MATCH_LENGTH=m
298CONFIG_NETFILTER_XT_MATCH_LIMIT=m 291CONFIG_NETFILTER_XT_MATCH_LIMIT=m
299CONFIG_NETFILTER_XT_MATCH_MAC=m 292CONFIG_NETFILTER_XT_MATCH_MAC=m
300CONFIG_NETFILTER_XT_MATCH_MARK=m 293CONFIG_NETFILTER_XT_MATCH_MARK=m
294CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
301CONFIG_NETFILTER_XT_MATCH_OWNER=m 295CONFIG_NETFILTER_XT_MATCH_OWNER=m
302CONFIG_NETFILTER_XT_MATCH_POLICY=m 296CONFIG_NETFILTER_XT_MATCH_POLICY=m
303CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
304CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 297CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
305CONFIG_NETFILTER_XT_MATCH_QUOTA=m 298CONFIG_NETFILTER_XT_MATCH_QUOTA=m
306CONFIG_NETFILTER_XT_MATCH_RATEEST=m 299CONFIG_NETFILTER_XT_MATCH_RATEEST=m
307CONFIG_NETFILTER_XT_MATCH_REALM=m 300CONFIG_NETFILTER_XT_MATCH_REALM=m
301CONFIG_NETFILTER_XT_MATCH_RECENT=m
302# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
308CONFIG_NETFILTER_XT_MATCH_SCTP=m 303CONFIG_NETFILTER_XT_MATCH_SCTP=m
309CONFIG_NETFILTER_XT_MATCH_STATE=m 304CONFIG_NETFILTER_XT_MATCH_STATE=m
310CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 305CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -312,20 +307,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
312CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 307CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
313CONFIG_NETFILTER_XT_MATCH_TIME=m 308CONFIG_NETFILTER_XT_MATCH_TIME=m
314CONFIG_NETFILTER_XT_MATCH_U32=m 309CONFIG_NETFILTER_XT_MATCH_U32=m
315CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 310# CONFIG_IP_VS is not set
316 311
317# 312#
318# IP: Netfilter Configuration 313# IP: Netfilter Configuration
319# 314#
315CONFIG_NF_DEFRAG_IPV4=m
320CONFIG_NF_CONNTRACK_IPV4=m 316CONFIG_NF_CONNTRACK_IPV4=m
321CONFIG_NF_CONNTRACK_PROC_COMPAT=y 317CONFIG_NF_CONNTRACK_PROC_COMPAT=y
322CONFIG_IP_NF_QUEUE=m 318CONFIG_IP_NF_QUEUE=m
323CONFIG_IP_NF_IPTABLES=m 319CONFIG_IP_NF_IPTABLES=m
324CONFIG_IP_NF_MATCH_RECENT=m 320CONFIG_IP_NF_MATCH_ADDRTYPE=m
325CONFIG_IP_NF_MATCH_ECN=m
326CONFIG_IP_NF_MATCH_AH=m 321CONFIG_IP_NF_MATCH_AH=m
322CONFIG_IP_NF_MATCH_ECN=m
327CONFIG_IP_NF_MATCH_TTL=m 323CONFIG_IP_NF_MATCH_TTL=m
328CONFIG_IP_NF_MATCH_ADDRTYPE=m
329CONFIG_IP_NF_FILTER=m 324CONFIG_IP_NF_FILTER=m
330CONFIG_IP_NF_TARGET_REJECT=m 325CONFIG_IP_NF_TARGET_REJECT=m
331CONFIG_IP_NF_TARGET_LOG=m 326CONFIG_IP_NF_TARGET_LOG=m
@@ -333,8 +328,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
333CONFIG_NF_NAT=m 328CONFIG_NF_NAT=m
334CONFIG_NF_NAT_NEEDED=y 329CONFIG_NF_NAT_NEEDED=y
335CONFIG_IP_NF_TARGET_MASQUERADE=m 330CONFIG_IP_NF_TARGET_MASQUERADE=m
336CONFIG_IP_NF_TARGET_REDIRECT=m
337CONFIG_IP_NF_TARGET_NETMAP=m 331CONFIG_IP_NF_TARGET_NETMAP=m
332CONFIG_IP_NF_TARGET_REDIRECT=m
338CONFIG_NF_NAT_SNMP_BASIC=m 333CONFIG_NF_NAT_SNMP_BASIC=m
339CONFIG_NF_NAT_PROTO_GRE=m 334CONFIG_NF_NAT_PROTO_GRE=m
340CONFIG_NF_NAT_PROTO_UDPLITE=m 335CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -347,9 +342,9 @@ CONFIG_NF_NAT_PPTP=m
347CONFIG_NF_NAT_H323=m 342CONFIG_NF_NAT_H323=m
348CONFIG_NF_NAT_SIP=m 343CONFIG_NF_NAT_SIP=m
349CONFIG_IP_NF_MANGLE=m 344CONFIG_IP_NF_MANGLE=m
345CONFIG_IP_NF_TARGET_CLUSTERIP=m
350CONFIG_IP_NF_TARGET_ECN=m 346CONFIG_IP_NF_TARGET_ECN=m
351CONFIG_IP_NF_TARGET_TTL=m 347CONFIG_IP_NF_TARGET_TTL=m
352CONFIG_IP_NF_TARGET_CLUSTERIP=m
353CONFIG_IP_NF_RAW=m 348CONFIG_IP_NF_RAW=m
354CONFIG_IP_NF_ARPTABLES=m 349CONFIG_IP_NF_ARPTABLES=m
355CONFIG_IP_NF_ARPFILTER=m 350CONFIG_IP_NF_ARPFILTER=m
@@ -361,16 +356,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
361CONFIG_NF_CONNTRACK_IPV6=m 356CONFIG_NF_CONNTRACK_IPV6=m
362CONFIG_IP6_NF_QUEUE=m 357CONFIG_IP6_NF_QUEUE=m
363CONFIG_IP6_NF_IPTABLES=m 358CONFIG_IP6_NF_IPTABLES=m
364CONFIG_IP6_NF_MATCH_RT=m 359CONFIG_IP6_NF_MATCH_AH=m
365CONFIG_IP6_NF_MATCH_OPTS=m 360CONFIG_IP6_NF_MATCH_EUI64=m
366CONFIG_IP6_NF_MATCH_FRAG=m 361CONFIG_IP6_NF_MATCH_FRAG=m
362CONFIG_IP6_NF_MATCH_OPTS=m
367CONFIG_IP6_NF_MATCH_HL=m 363CONFIG_IP6_NF_MATCH_HL=m
368CONFIG_IP6_NF_MATCH_IPV6HEADER=m 364CONFIG_IP6_NF_MATCH_IPV6HEADER=m
369CONFIG_IP6_NF_MATCH_AH=m
370CONFIG_IP6_NF_MATCH_MH=m 365CONFIG_IP6_NF_MATCH_MH=m
371CONFIG_IP6_NF_MATCH_EUI64=m 366CONFIG_IP6_NF_MATCH_RT=m
372CONFIG_IP6_NF_FILTER=m
373CONFIG_IP6_NF_TARGET_LOG=m 367CONFIG_IP6_NF_TARGET_LOG=m
368CONFIG_IP6_NF_FILTER=m
374CONFIG_IP6_NF_TARGET_REJECT=m 369CONFIG_IP6_NF_TARGET_REJECT=m
375CONFIG_IP6_NF_MANGLE=m 370CONFIG_IP6_NF_MANGLE=m
376CONFIG_IP6_NF_TARGET_HL=m 371CONFIG_IP6_NF_TARGET_HL=m
@@ -397,6 +392,7 @@ CONFIG_SCTP_HMAC_MD5=y
397# CONFIG_TIPC is not set 392# CONFIG_TIPC is not set
398# CONFIG_ATM is not set 393# CONFIG_ATM is not set
399# CONFIG_BRIDGE is not set 394# CONFIG_BRIDGE is not set
395# CONFIG_NET_DSA is not set
400# CONFIG_VLAN_8021Q is not set 396# CONFIG_VLAN_8021Q is not set
401# CONFIG_DECNET is not set 397# CONFIG_DECNET is not set
402CONFIG_LLC=m 398CONFIG_LLC=m
@@ -424,19 +420,8 @@ CONFIG_NET_CLS_ROUTE=y
424# CONFIG_IRDA is not set 420# CONFIG_IRDA is not set
425# CONFIG_BT is not set 421# CONFIG_BT is not set
426# CONFIG_AF_RXRPC is not set 422# CONFIG_AF_RXRPC is not set
427 423# CONFIG_PHONET is not set
428# 424# CONFIG_WIRELESS is not set
429# Wireless
430#
431# CONFIG_CFG80211 is not set
432CONFIG_WIRELESS_EXT=y
433# CONFIG_WIRELESS_EXT_SYSFS is not set
434# CONFIG_MAC80211 is not set
435CONFIG_IEEE80211=m
436# CONFIG_IEEE80211_DEBUG is not set
437CONFIG_IEEE80211_CRYPT_WEP=m
438CONFIG_IEEE80211_CRYPT_CCMP=m
439CONFIG_IEEE80211_CRYPT_TKIP=m
440# CONFIG_RFKILL is not set 425# CONFIG_RFKILL is not set
441# CONFIG_NET_9P is not set 426# CONFIG_NET_9P is not set
442 427
@@ -486,21 +471,20 @@ CONFIG_ATA_OVER_ETH=m
486CONFIG_MISC_DEVICES=y 471CONFIG_MISC_DEVICES=y
487# CONFIG_EEPROM_93CX6 is not set 472# CONFIG_EEPROM_93CX6 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 473# CONFIG_ENCLOSURE_SERVICES is not set
474# CONFIG_C2PORT is not set
489CONFIG_HAVE_IDE=y 475CONFIG_HAVE_IDE=y
490CONFIG_IDE=y 476CONFIG_IDE=y
491CONFIG_BLK_DEV_IDE=y
492 477
493# 478#
494# Please see Documentation/ide/ide.txt for help/info on IDE drives 479# Please see Documentation/ide/ide.txt for help/info on IDE drives
495# 480#
496CONFIG_IDE_ATAPI=y
497# CONFIG_BLK_DEV_IDE_SATA is not set 481# CONFIG_BLK_DEV_IDE_SATA is not set
498CONFIG_BLK_DEV_IDEDISK=y 482CONFIG_IDE_GD=y
499# CONFIG_IDEDISK_MULTI_MODE is not set 483CONFIG_IDE_GD_ATA=y
484# CONFIG_IDE_GD_ATAPI is not set
500CONFIG_BLK_DEV_IDECD=y 485CONFIG_BLK_DEV_IDECD=y
501CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 486CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
502# CONFIG_BLK_DEV_IDETAPE is not set 487# CONFIG_BLK_DEV_IDETAPE is not set
503CONFIG_BLK_DEV_IDEFLOPPY=m
504# CONFIG_BLK_DEV_IDESCSI is not set 488# CONFIG_BLK_DEV_IDESCSI is not set
505# CONFIG_IDE_TASK_IOCTL is not set 489# CONFIG_IDE_TASK_IOCTL is not set
506CONFIG_IDE_PROC_FS=y 490CONFIG_IDE_PROC_FS=y
@@ -629,7 +613,7 @@ CONFIG_VETH=m
629# CONFIG_ARCNET is not set 613# CONFIG_ARCNET is not set
630# CONFIG_PHYLIB is not set 614# CONFIG_PHYLIB is not set
631CONFIG_NET_ETHERNET=y 615CONFIG_NET_ETHERNET=y
632CONFIG_MII=m 616CONFIG_MII=y
633CONFIG_ARIADNE=m 617CONFIG_ARIADNE=m
634CONFIG_A2065=m 618CONFIG_A2065=m
635CONFIG_HYDRA=m 619CONFIG_HYDRA=m
@@ -657,8 +641,12 @@ CONFIG_NE2000=m
657# CONFIG_IBM_NEW_EMAC_RGMII is not set 641# CONFIG_IBM_NEW_EMAC_RGMII is not set
658# CONFIG_IBM_NEW_EMAC_TAH is not set 642# CONFIG_IBM_NEW_EMAC_TAH is not set
659# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 643# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
644# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
645# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
646# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
660# CONFIG_NET_PCI is not set 647# CONFIG_NET_PCI is not set
661# CONFIG_B44 is not set 648# CONFIG_B44 is not set
649# CONFIG_CS89x0 is not set
662# CONFIG_NET_POCKET is not set 650# CONFIG_NET_POCKET is not set
663# CONFIG_NETDEV_1000 is not set 651# CONFIG_NETDEV_1000 is not set
664# CONFIG_NETDEV_10000 is not set 652# CONFIG_NETDEV_10000 is not set
@@ -735,6 +723,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
735CONFIG_MOUSE_PS2_SYNAPTICS=y 723CONFIG_MOUSE_PS2_SYNAPTICS=y
736CONFIG_MOUSE_PS2_LIFEBOOK=y 724CONFIG_MOUSE_PS2_LIFEBOOK=y
737CONFIG_MOUSE_PS2_TRACKPOINT=y 725CONFIG_MOUSE_PS2_TRACKPOINT=y
726# CONFIG_MOUSE_PS2_ELANTECH is not set
738# CONFIG_MOUSE_PS2_TOUCHKIT is not set 727# CONFIG_MOUSE_PS2_TOUCHKIT is not set
739CONFIG_MOUSE_SERIAL=m 728CONFIG_MOUSE_SERIAL=m
740# CONFIG_MOUSE_INPORT is not set 729# CONFIG_MOUSE_INPORT is not set
@@ -832,11 +821,11 @@ CONFIG_GEN_RTC_X=y
832# CONFIG_THERMAL is not set 821# CONFIG_THERMAL is not set
833# CONFIG_THERMAL_HWMON is not set 822# CONFIG_THERMAL_HWMON is not set
834# CONFIG_WATCHDOG is not set 823# CONFIG_WATCHDOG is not set
824CONFIG_SSB_POSSIBLE=y
835 825
836# 826#
837# Sonics Silicon Backplane 827# Sonics Silicon Backplane
838# 828#
839CONFIG_SSB_POSSIBLE=y
840# CONFIG_SSB is not set 829# CONFIG_SSB is not set
841 830
842# 831#
@@ -846,6 +835,7 @@ CONFIG_SSB_POSSIBLE=y
846# CONFIG_MFD_SM501 is not set 835# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 836# CONFIG_HTC_PASIC3 is not set
848# CONFIG_MFD_TMIO is not set 837# CONFIG_MFD_TMIO is not set
838# CONFIG_REGULATOR is not set
849 839
850# 840#
851# Multimedia devices 841# Multimedia devices
@@ -871,6 +861,7 @@ CONFIG_SSB_POSSIBLE=y
871CONFIG_FB=y 861CONFIG_FB=y
872# CONFIG_FIRMWARE_EDID is not set 862# CONFIG_FIRMWARE_EDID is not set
873# CONFIG_FB_DDC is not set 863# CONFIG_FB_DDC is not set
864# CONFIG_FB_BOOT_VESA_SUPPORT is not set
874CONFIG_FB_CFB_FILLRECT=y 865CONFIG_FB_CFB_FILLRECT=y
875CONFIG_FB_CFB_COPYAREA=y 866CONFIG_FB_CFB_COPYAREA=y
876CONFIG_FB_CFB_IMAGEBLIT=y 867CONFIG_FB_CFB_IMAGEBLIT=y
@@ -905,6 +896,8 @@ CONFIG_FB_HP300=y
905# CONFIG_FB_S1D13XXX is not set 896# CONFIG_FB_S1D13XXX is not set
906# CONFIG_FB_ATY is not set 897# CONFIG_FB_ATY is not set
907# CONFIG_FB_VIRTUAL is not set 898# CONFIG_FB_VIRTUAL is not set
899# CONFIG_FB_METRONOME is not set
900# CONFIG_FB_MB862XX is not set
908# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 901# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
909 902
910# 903#
@@ -930,6 +923,7 @@ CONFIG_LOGO_LINUX_VGA16=y
930CONFIG_LOGO_LINUX_CLUT224=y 923CONFIG_LOGO_LINUX_CLUT224=y
931CONFIG_LOGO_MAC_CLUT224=y 924CONFIG_LOGO_MAC_CLUT224=y
932CONFIG_SOUND=m 925CONFIG_SOUND=m
926CONFIG_SOUND_OSS_CORE=y
933CONFIG_DMASOUND_ATARI=m 927CONFIG_DMASOUND_ATARI=m
934CONFIG_DMASOUND_PAULA=m 928CONFIG_DMASOUND_PAULA=m
935CONFIG_DMASOUND_Q40=m 929CONFIG_DMASOUND_Q40=m
@@ -938,6 +932,12 @@ CONFIG_HID_SUPPORT=y
938CONFIG_HID=m 932CONFIG_HID=m
939# CONFIG_HID_DEBUG is not set 933# CONFIG_HID_DEBUG is not set
940CONFIG_HIDRAW=y 934CONFIG_HIDRAW=y
935# CONFIG_HID_PID is not set
936
937#
938# Special HID drivers
939#
940CONFIG_HID_COMPAT=y
941# CONFIG_USB_SUPPORT is not set 941# CONFIG_USB_SUPPORT is not set
942# CONFIG_MMC is not set 942# CONFIG_MMC is not set
943# CONFIG_MEMSTICK is not set 943# CONFIG_MEMSTICK is not set
@@ -947,6 +947,8 @@ CONFIG_HIDRAW=y
947# CONFIG_DMADEVICES is not set 947# CONFIG_DMADEVICES is not set
948# CONFIG_AUXDISPLAY is not set 948# CONFIG_AUXDISPLAY is not set
949# CONFIG_UIO is not set 949# CONFIG_UIO is not set
950# CONFIG_STAGING is not set
951CONFIG_STAGING_EXCLUDE_BUILD=y
950 952
951# 953#
952# Character devices 954# Character devices
@@ -973,10 +975,9 @@ CONFIG_EXT2_FS=y
973# CONFIG_EXT2_FS_XIP is not set 975# CONFIG_EXT2_FS_XIP is not set
974CONFIG_EXT3_FS=y 976CONFIG_EXT3_FS=y
975# CONFIG_EXT3_FS_XATTR is not set 977# CONFIG_EXT3_FS_XATTR is not set
976CONFIG_EXT4DEV_FS=y 978# CONFIG_EXT4_FS is not set
977# CONFIG_EXT4DEV_FS_XATTR is not set
978CONFIG_JBD=y 979CONFIG_JBD=y
979CONFIG_JBD2=y 980CONFIG_JBD2=m
980CONFIG_REISERFS_FS=m 981CONFIG_REISERFS_FS=m
981# CONFIG_REISERFS_CHECK is not set 982# CONFIG_REISERFS_CHECK is not set
982# CONFIG_REISERFS_PROC_INFO is not set 983# CONFIG_REISERFS_PROC_INFO is not set
@@ -987,6 +988,7 @@ CONFIG_JFS_FS=m
987# CONFIG_JFS_DEBUG is not set 988# CONFIG_JFS_DEBUG is not set
988# CONFIG_JFS_STATISTICS is not set 989# CONFIG_JFS_STATISTICS is not set
989# CONFIG_FS_POSIX_ACL is not set 990# CONFIG_FS_POSIX_ACL is not set
991CONFIG_FILE_LOCKING=y
990CONFIG_XFS_FS=m 992CONFIG_XFS_FS=m
991# CONFIG_XFS_QUOTA is not set 993# CONFIG_XFS_QUOTA is not set
992# CONFIG_XFS_POSIX_ACL is not set 994# CONFIG_XFS_POSIX_ACL is not set
@@ -998,6 +1000,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
998# CONFIG_OCFS2_FS_STATS is not set 1000# CONFIG_OCFS2_FS_STATS is not set
999# CONFIG_OCFS2_DEBUG_MASKLOG is not set 1001# CONFIG_OCFS2_DEBUG_MASKLOG is not set
1000# CONFIG_OCFS2_DEBUG_FS is not set 1002# CONFIG_OCFS2_DEBUG_FS is not set
1003# CONFIG_OCFS2_COMPAT_JBD is not set
1001CONFIG_DNOTIFY=y 1004CONFIG_DNOTIFY=y
1002CONFIG_INOTIFY=y 1005CONFIG_INOTIFY=y
1003CONFIG_INOTIFY_USER=y 1006CONFIG_INOTIFY_USER=y
@@ -1036,6 +1039,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1036CONFIG_PROC_FS=y 1039CONFIG_PROC_FS=y
1037CONFIG_PROC_KCORE=y 1040CONFIG_PROC_KCORE=y
1038CONFIG_PROC_SYSCTL=y 1041CONFIG_PROC_SYSCTL=y
1042CONFIG_PROC_PAGE_MONITOR=y
1039CONFIG_SYSFS=y 1043CONFIG_SYSFS=y
1040CONFIG_TMPFS=y 1044CONFIG_TMPFS=y
1041# CONFIG_TMPFS_POSIX_ACL is not set 1045# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1079,6 +1083,7 @@ CONFIG_EXPORTFS=m
1079CONFIG_NFS_COMMON=y 1083CONFIG_NFS_COMMON=y
1080CONFIG_SUNRPC=y 1084CONFIG_SUNRPC=y
1081CONFIG_SUNRPC_GSS=y 1085CONFIG_SUNRPC_GSS=y
1086# CONFIG_SUNRPC_REGISTER_V4 is not set
1082CONFIG_RPCSEC_GSS_KRB5=y 1087CONFIG_RPCSEC_GSS_KRB5=y
1083# CONFIG_RPCSEC_GSS_SPKM3 is not set 1088# CONFIG_RPCSEC_GSS_SPKM3 is not set
1084CONFIG_SMB_FS=m 1089CONFIG_SMB_FS=m
@@ -1156,7 +1161,13 @@ CONFIG_MAGIC_SYSRQ=y
1156# CONFIG_DEBUG_KERNEL is not set 1161# CONFIG_DEBUG_KERNEL is not set
1157CONFIG_DEBUG_BUGVERBOSE=y 1162CONFIG_DEBUG_BUGVERBOSE=y
1158CONFIG_DEBUG_MEMORY_INIT=y 1163CONFIG_DEBUG_MEMORY_INIT=y
1164# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1159CONFIG_SYSCTL_SYSCALL_CHECK=y 1165CONFIG_SYSCTL_SYSCALL_CHECK=y
1166
1167#
1168# Tracers
1169#
1170# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1160# CONFIG_SAMPLES is not set 1171# CONFIG_SAMPLES is not set
1161 1172
1162# 1173#
@@ -1164,6 +1175,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
1164# 1175#
1165# CONFIG_KEYS is not set 1176# CONFIG_KEYS is not set
1166# CONFIG_SECURITY is not set 1177# CONFIG_SECURITY is not set
1178# CONFIG_SECURITYFS is not set
1167# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1179# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1168CONFIG_XOR_BLOCKS=m 1180CONFIG_XOR_BLOCKS=m
1169CONFIG_ASYNC_CORE=m 1181CONFIG_ASYNC_CORE=m
@@ -1174,10 +1186,12 @@ CONFIG_CRYPTO=y
1174# 1186#
1175# Crypto core or helper 1187# Crypto core or helper
1176# 1188#
1189# CONFIG_CRYPTO_FIPS is not set
1177CONFIG_CRYPTO_ALGAPI=y 1190CONFIG_CRYPTO_ALGAPI=y
1178CONFIG_CRYPTO_AEAD=m 1191CONFIG_CRYPTO_AEAD=y
1179CONFIG_CRYPTO_BLKCIPHER=y 1192CONFIG_CRYPTO_BLKCIPHER=y
1180CONFIG_CRYPTO_HASH=y 1193CONFIG_CRYPTO_HASH=y
1194CONFIG_CRYPTO_RNG=y
1181CONFIG_CRYPTO_MANAGER=y 1195CONFIG_CRYPTO_MANAGER=y
1182CONFIG_CRYPTO_GF128MUL=m 1196CONFIG_CRYPTO_GF128MUL=m
1183CONFIG_CRYPTO_NULL=m 1197CONFIG_CRYPTO_NULL=m
@@ -1251,14 +1265,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1251# 1265#
1252CONFIG_CRYPTO_DEFLATE=m 1266CONFIG_CRYPTO_DEFLATE=m
1253CONFIG_CRYPTO_LZO=m 1267CONFIG_CRYPTO_LZO=m
1268
1269#
1270# Random Number Generation
1271#
1272# CONFIG_CRYPTO_ANSI_CPRNG is not set
1254# CONFIG_CRYPTO_HW is not set 1273# CONFIG_CRYPTO_HW is not set
1255 1274
1256# 1275#
1257# Library routines 1276# Library routines
1258# 1277#
1259CONFIG_BITREVERSE=y 1278CONFIG_BITREVERSE=y
1260# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1261# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1262CONFIG_CRC_CCITT=m 1279CONFIG_CRC_CCITT=m
1263CONFIG_CRC16=y 1280CONFIG_CRC16=y
1264CONFIG_CRC_T10DIF=y 1281CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme147_defconfig
index cacb5aef6a37..52d42715bd0b 100644
--- a/arch/m68k/configs/mvme147_defconfig
+++ b/arch/m68k/configs/mvme147_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:08 2008 4# Tue Dec 2 20:27:50 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -151,19 +141,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
151CONFIG_DISCONTIGMEM=y 141CONFIG_DISCONTIGMEM=y
152CONFIG_FLAT_NODE_MEM_MAP=y 142CONFIG_FLAT_NODE_MEM_MAP=y
153CONFIG_NEED_MULTIPLE_NODES=y 143CONFIG_NEED_MULTIPLE_NODES=y
154# CONFIG_SPARSEMEM_STATIC is not set
155# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
156CONFIG_PAGEFLAGS_EXTENDED=y 144CONFIG_PAGEFLAGS_EXTENDED=y
157CONFIG_SPLIT_PTLOCK_CPUS=4 145CONFIG_SPLIT_PTLOCK_CPUS=4
158# CONFIG_RESOURCES_64BIT is not set 146# CONFIG_RESOURCES_64BIT is not set
147# CONFIG_PHYS_ADDR_T_64BIT is not set
159CONFIG_ZONE_DMA_FLAG=1 148CONFIG_ZONE_DMA_FLAG=1
160CONFIG_BOUNCE=y 149CONFIG_BOUNCE=y
161CONFIG_VIRT_TO_BUS=y 150CONFIG_VIRT_TO_BUS=y
151CONFIG_UNEVICTABLE_LRU=y
162 152
163# 153#
164# General setup 154# General setup
165# 155#
166CONFIG_BINFMT_ELF=y 156CONFIG_BINFMT_ELF=y
157# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
158CONFIG_HAVE_AOUT=y
167CONFIG_BINFMT_AOUT=m 159CONFIG_BINFMT_AOUT=m
168CONFIG_BINFMT_MISC=m 160CONFIG_BINFMT_MISC=m
169CONFIG_PROC_HARDWARE=y 161CONFIG_PROC_HARDWARE=y
@@ -212,7 +204,6 @@ CONFIG_INET_TCP_DIAG=m
212CONFIG_TCP_CONG_CUBIC=y 204CONFIG_TCP_CONG_CUBIC=y
213CONFIG_DEFAULT_TCP_CONG="cubic" 205CONFIG_DEFAULT_TCP_CONG="cubic"
214# CONFIG_TCP_MD5SIG is not set 206# CONFIG_TCP_MD5SIG is not set
215# CONFIG_IP_VS is not set
216CONFIG_IPV6=m 207CONFIG_IPV6=m
217CONFIG_IPV6_PRIVACY=y 208CONFIG_IPV6_PRIVACY=y
218CONFIG_IPV6_ROUTER_PREF=y 209CONFIG_IPV6_ROUTER_PREF=y
@@ -262,13 +253,14 @@ CONFIG_NF_CONNTRACK_SANE=m
262CONFIG_NF_CONNTRACK_SIP=m 253CONFIG_NF_CONNTRACK_SIP=m
263CONFIG_NF_CONNTRACK_TFTP=m 254CONFIG_NF_CONNTRACK_TFTP=m
264# CONFIG_NF_CT_NETLINK is not set 255# CONFIG_NF_CT_NETLINK is not set
256# CONFIG_NETFILTER_TPROXY is not set
265CONFIG_NETFILTER_XTABLES=m 257CONFIG_NETFILTER_XTABLES=m
266CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 258CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
267CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 259CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
268CONFIG_NETFILTER_XT_TARGET_DSCP=m 260CONFIG_NETFILTER_XT_TARGET_DSCP=m
269CONFIG_NETFILTER_XT_TARGET_MARK=m 261CONFIG_NETFILTER_XT_TARGET_MARK=m
270CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
271CONFIG_NETFILTER_XT_TARGET_NFLOG=m 262CONFIG_NETFILTER_XT_TARGET_NFLOG=m
263CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
272CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 264CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
273CONFIG_NETFILTER_XT_TARGET_RATEEST=m 265CONFIG_NETFILTER_XT_TARGET_RATEEST=m
274CONFIG_NETFILTER_XT_TARGET_TRACE=m 266CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -282,19 +274,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
282CONFIG_NETFILTER_XT_MATCH_DCCP=m 274CONFIG_NETFILTER_XT_MATCH_DCCP=m
283CONFIG_NETFILTER_XT_MATCH_DSCP=m 275CONFIG_NETFILTER_XT_MATCH_DSCP=m
284CONFIG_NETFILTER_XT_MATCH_ESP=m 276CONFIG_NETFILTER_XT_MATCH_ESP=m
277CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
285CONFIG_NETFILTER_XT_MATCH_HELPER=m 278CONFIG_NETFILTER_XT_MATCH_HELPER=m
286CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 279CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
287CONFIG_NETFILTER_XT_MATCH_LENGTH=m 280CONFIG_NETFILTER_XT_MATCH_LENGTH=m
288CONFIG_NETFILTER_XT_MATCH_LIMIT=m 281CONFIG_NETFILTER_XT_MATCH_LIMIT=m
289CONFIG_NETFILTER_XT_MATCH_MAC=m 282CONFIG_NETFILTER_XT_MATCH_MAC=m
290CONFIG_NETFILTER_XT_MATCH_MARK=m 283CONFIG_NETFILTER_XT_MATCH_MARK=m
284CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
291CONFIG_NETFILTER_XT_MATCH_OWNER=m 285CONFIG_NETFILTER_XT_MATCH_OWNER=m
292CONFIG_NETFILTER_XT_MATCH_POLICY=m 286CONFIG_NETFILTER_XT_MATCH_POLICY=m
293CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
294CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 287CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
295CONFIG_NETFILTER_XT_MATCH_QUOTA=m 288CONFIG_NETFILTER_XT_MATCH_QUOTA=m
296CONFIG_NETFILTER_XT_MATCH_RATEEST=m 289CONFIG_NETFILTER_XT_MATCH_RATEEST=m
297CONFIG_NETFILTER_XT_MATCH_REALM=m 290CONFIG_NETFILTER_XT_MATCH_REALM=m
291CONFIG_NETFILTER_XT_MATCH_RECENT=m
292# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
298CONFIG_NETFILTER_XT_MATCH_SCTP=m 293CONFIG_NETFILTER_XT_MATCH_SCTP=m
299CONFIG_NETFILTER_XT_MATCH_STATE=m 294CONFIG_NETFILTER_XT_MATCH_STATE=m
300CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 295CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -302,20 +297,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
302CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 297CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
303CONFIG_NETFILTER_XT_MATCH_TIME=m 298CONFIG_NETFILTER_XT_MATCH_TIME=m
304CONFIG_NETFILTER_XT_MATCH_U32=m 299CONFIG_NETFILTER_XT_MATCH_U32=m
305CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 300# CONFIG_IP_VS is not set
306 301
307# 302#
308# IP: Netfilter Configuration 303# IP: Netfilter Configuration
309# 304#
305CONFIG_NF_DEFRAG_IPV4=m
310CONFIG_NF_CONNTRACK_IPV4=m 306CONFIG_NF_CONNTRACK_IPV4=m
311CONFIG_NF_CONNTRACK_PROC_COMPAT=y 307CONFIG_NF_CONNTRACK_PROC_COMPAT=y
312CONFIG_IP_NF_QUEUE=m 308CONFIG_IP_NF_QUEUE=m
313CONFIG_IP_NF_IPTABLES=m 309CONFIG_IP_NF_IPTABLES=m
314CONFIG_IP_NF_MATCH_RECENT=m 310CONFIG_IP_NF_MATCH_ADDRTYPE=m
315CONFIG_IP_NF_MATCH_ECN=m
316CONFIG_IP_NF_MATCH_AH=m 311CONFIG_IP_NF_MATCH_AH=m
312CONFIG_IP_NF_MATCH_ECN=m
317CONFIG_IP_NF_MATCH_TTL=m 313CONFIG_IP_NF_MATCH_TTL=m
318CONFIG_IP_NF_MATCH_ADDRTYPE=m
319CONFIG_IP_NF_FILTER=m 314CONFIG_IP_NF_FILTER=m
320CONFIG_IP_NF_TARGET_REJECT=m 315CONFIG_IP_NF_TARGET_REJECT=m
321CONFIG_IP_NF_TARGET_LOG=m 316CONFIG_IP_NF_TARGET_LOG=m
@@ -323,8 +318,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
323CONFIG_NF_NAT=m 318CONFIG_NF_NAT=m
324CONFIG_NF_NAT_NEEDED=y 319CONFIG_NF_NAT_NEEDED=y
325CONFIG_IP_NF_TARGET_MASQUERADE=m 320CONFIG_IP_NF_TARGET_MASQUERADE=m
326CONFIG_IP_NF_TARGET_REDIRECT=m
327CONFIG_IP_NF_TARGET_NETMAP=m 321CONFIG_IP_NF_TARGET_NETMAP=m
322CONFIG_IP_NF_TARGET_REDIRECT=m
328CONFIG_NF_NAT_SNMP_BASIC=m 323CONFIG_NF_NAT_SNMP_BASIC=m
329CONFIG_NF_NAT_PROTO_GRE=m 324CONFIG_NF_NAT_PROTO_GRE=m
330CONFIG_NF_NAT_PROTO_UDPLITE=m 325CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -337,9 +332,9 @@ CONFIG_NF_NAT_PPTP=m
337CONFIG_NF_NAT_H323=m 332CONFIG_NF_NAT_H323=m
338CONFIG_NF_NAT_SIP=m 333CONFIG_NF_NAT_SIP=m
339CONFIG_IP_NF_MANGLE=m 334CONFIG_IP_NF_MANGLE=m
335CONFIG_IP_NF_TARGET_CLUSTERIP=m
340CONFIG_IP_NF_TARGET_ECN=m 336CONFIG_IP_NF_TARGET_ECN=m
341CONFIG_IP_NF_TARGET_TTL=m 337CONFIG_IP_NF_TARGET_TTL=m
342CONFIG_IP_NF_TARGET_CLUSTERIP=m
343CONFIG_IP_NF_RAW=m 338CONFIG_IP_NF_RAW=m
344CONFIG_IP_NF_ARPTABLES=m 339CONFIG_IP_NF_ARPTABLES=m
345CONFIG_IP_NF_ARPFILTER=m 340CONFIG_IP_NF_ARPFILTER=m
@@ -351,16 +346,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
351CONFIG_NF_CONNTRACK_IPV6=m 346CONFIG_NF_CONNTRACK_IPV6=m
352CONFIG_IP6_NF_QUEUE=m 347CONFIG_IP6_NF_QUEUE=m
353CONFIG_IP6_NF_IPTABLES=m 348CONFIG_IP6_NF_IPTABLES=m
354CONFIG_IP6_NF_MATCH_RT=m 349CONFIG_IP6_NF_MATCH_AH=m
355CONFIG_IP6_NF_MATCH_OPTS=m 350CONFIG_IP6_NF_MATCH_EUI64=m
356CONFIG_IP6_NF_MATCH_FRAG=m 351CONFIG_IP6_NF_MATCH_FRAG=m
352CONFIG_IP6_NF_MATCH_OPTS=m
357CONFIG_IP6_NF_MATCH_HL=m 353CONFIG_IP6_NF_MATCH_HL=m
358CONFIG_IP6_NF_MATCH_IPV6HEADER=m 354CONFIG_IP6_NF_MATCH_IPV6HEADER=m
359CONFIG_IP6_NF_MATCH_AH=m
360CONFIG_IP6_NF_MATCH_MH=m 355CONFIG_IP6_NF_MATCH_MH=m
361CONFIG_IP6_NF_MATCH_EUI64=m 356CONFIG_IP6_NF_MATCH_RT=m
362CONFIG_IP6_NF_FILTER=m
363CONFIG_IP6_NF_TARGET_LOG=m 357CONFIG_IP6_NF_TARGET_LOG=m
358CONFIG_IP6_NF_FILTER=m
364CONFIG_IP6_NF_TARGET_REJECT=m 359CONFIG_IP6_NF_TARGET_REJECT=m
365CONFIG_IP6_NF_MANGLE=m 360CONFIG_IP6_NF_MANGLE=m
366CONFIG_IP6_NF_TARGET_HL=m 361CONFIG_IP6_NF_TARGET_HL=m
@@ -387,6 +382,7 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_TIPC is not set 382# CONFIG_TIPC is not set
388# CONFIG_ATM is not set 383# CONFIG_ATM is not set
389# CONFIG_BRIDGE is not set 384# CONFIG_BRIDGE is not set
385# CONFIG_NET_DSA is not set
390# CONFIG_VLAN_8021Q is not set 386# CONFIG_VLAN_8021Q is not set
391# CONFIG_DECNET is not set 387# CONFIG_DECNET is not set
392CONFIG_LLC=m 388CONFIG_LLC=m
@@ -410,19 +406,8 @@ CONFIG_NET_CLS_ROUTE=y
410# CONFIG_IRDA is not set 406# CONFIG_IRDA is not set
411# CONFIG_BT is not set 407# CONFIG_BT is not set
412# CONFIG_AF_RXRPC is not set 408# CONFIG_AF_RXRPC is not set
413 409# CONFIG_PHONET is not set
414# 410# CONFIG_WIRELESS is not set
415# Wireless
416#
417# CONFIG_CFG80211 is not set
418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
420# CONFIG_MAC80211 is not set
421CONFIG_IEEE80211=m
422# CONFIG_IEEE80211_DEBUG is not set
423CONFIG_IEEE80211_CRYPT_WEP=m
424CONFIG_IEEE80211_CRYPT_CCMP=m
425CONFIG_IEEE80211_CRYPT_TKIP=m
426# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
427# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
428 413
@@ -460,6 +445,7 @@ CONFIG_ATA_OVER_ETH=m
460CONFIG_MISC_DEVICES=y 445CONFIG_MISC_DEVICES=y
461# CONFIG_EEPROM_93CX6 is not set 446# CONFIG_EEPROM_93CX6 is not set
462# CONFIG_ENCLOSURE_SERVICES is not set 447# CONFIG_ENCLOSURE_SERVICES is not set
448# CONFIG_C2PORT is not set
463CONFIG_HAVE_IDE=y 449CONFIG_HAVE_IDE=y
464# CONFIG_IDE is not set 450# CONFIG_IDE is not set
465 451
@@ -544,6 +530,9 @@ CONFIG_MVME147_NET=y
544# CONFIG_IBM_NEW_EMAC_RGMII is not set 530# CONFIG_IBM_NEW_EMAC_RGMII is not set
545# CONFIG_IBM_NEW_EMAC_TAH is not set 531# CONFIG_IBM_NEW_EMAC_TAH is not set
546# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 532# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
533# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
534# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
535# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
547# CONFIG_B44 is not set 536# CONFIG_B44 is not set
548# CONFIG_NETDEV_1000 is not set 537# CONFIG_NETDEV_1000 is not set
549# CONFIG_NETDEV_10000 is not set 538# CONFIG_NETDEV_10000 is not set
@@ -613,6 +602,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
613CONFIG_MOUSE_PS2_SYNAPTICS=y 602CONFIG_MOUSE_PS2_SYNAPTICS=y
614CONFIG_MOUSE_PS2_LIFEBOOK=y 603CONFIG_MOUSE_PS2_LIFEBOOK=y
615CONFIG_MOUSE_PS2_TRACKPOINT=y 604CONFIG_MOUSE_PS2_TRACKPOINT=y
605# CONFIG_MOUSE_PS2_ELANTECH is not set
616# CONFIG_MOUSE_PS2_TOUCHKIT is not set 606# CONFIG_MOUSE_PS2_TOUCHKIT is not set
617CONFIG_MOUSE_SERIAL=m 607CONFIG_MOUSE_SERIAL=m
618# CONFIG_MOUSE_VSXXXAA is not set 608# CONFIG_MOUSE_VSXXXAA is not set
@@ -667,11 +657,11 @@ CONFIG_GEN_RTC_X=y
667# CONFIG_THERMAL is not set 657# CONFIG_THERMAL is not set
668# CONFIG_THERMAL_HWMON is not set 658# CONFIG_THERMAL_HWMON is not set
669# CONFIG_WATCHDOG is not set 659# CONFIG_WATCHDOG is not set
660CONFIG_SSB_POSSIBLE=y
670 661
671# 662#
672# Sonics Silicon Backplane 663# Sonics Silicon Backplane
673# 664#
674CONFIG_SSB_POSSIBLE=y
675# CONFIG_SSB is not set 665# CONFIG_SSB is not set
676 666
677# 667#
@@ -681,6 +671,7 @@ CONFIG_SSB_POSSIBLE=y
681# CONFIG_MFD_SM501 is not set 671# CONFIG_MFD_SM501 is not set
682# CONFIG_HTC_PASIC3 is not set 672# CONFIG_HTC_PASIC3 is not set
683# CONFIG_MFD_TMIO is not set 673# CONFIG_MFD_TMIO is not set
674# CONFIG_REGULATOR is not set
684 675
685# 676#
686# Multimedia devices 677# Multimedia devices
@@ -720,6 +711,12 @@ CONFIG_HID_SUPPORT=y
720CONFIG_HID=m 711CONFIG_HID=m
721# CONFIG_HID_DEBUG is not set 712# CONFIG_HID_DEBUG is not set
722CONFIG_HIDRAW=y 713CONFIG_HIDRAW=y
714# CONFIG_HID_PID is not set
715
716#
717# Special HID drivers
718#
719CONFIG_HID_COMPAT=y
723# CONFIG_USB_SUPPORT is not set 720# CONFIG_USB_SUPPORT is not set
724# CONFIG_MMC is not set 721# CONFIG_MMC is not set
725# CONFIG_MEMSTICK is not set 722# CONFIG_MEMSTICK is not set
@@ -728,6 +725,8 @@ CONFIG_HIDRAW=y
728# CONFIG_RTC_CLASS is not set 725# CONFIG_RTC_CLASS is not set
729# CONFIG_DMADEVICES is not set 726# CONFIG_DMADEVICES is not set
730# CONFIG_UIO is not set 727# CONFIG_UIO is not set
728# CONFIG_STAGING is not set
729CONFIG_STAGING_EXCLUDE_BUILD=y
731 730
732# 731#
733# Character devices 732# Character devices
@@ -743,8 +742,9 @@ CONFIG_EXT2_FS=y
743# CONFIG_EXT2_FS_XIP is not set 742# CONFIG_EXT2_FS_XIP is not set
744CONFIG_EXT3_FS=y 743CONFIG_EXT3_FS=y
745# CONFIG_EXT3_FS_XATTR is not set 744# CONFIG_EXT3_FS_XATTR is not set
746# CONFIG_EXT4DEV_FS is not set 745# CONFIG_EXT4_FS is not set
747CONFIG_JBD=y 746CONFIG_JBD=y
747CONFIG_JBD2=m
748CONFIG_REISERFS_FS=m 748CONFIG_REISERFS_FS=m
749# CONFIG_REISERFS_CHECK is not set 749# CONFIG_REISERFS_CHECK is not set
750# CONFIG_REISERFS_PROC_INFO is not set 750# CONFIG_REISERFS_PROC_INFO is not set
@@ -755,6 +755,7 @@ CONFIG_JFS_FS=m
755# CONFIG_JFS_DEBUG is not set 755# CONFIG_JFS_DEBUG is not set
756# CONFIG_JFS_STATISTICS is not set 756# CONFIG_JFS_STATISTICS is not set
757# CONFIG_FS_POSIX_ACL is not set 757# CONFIG_FS_POSIX_ACL is not set
758CONFIG_FILE_LOCKING=y
758CONFIG_XFS_FS=m 759CONFIG_XFS_FS=m
759# CONFIG_XFS_QUOTA is not set 760# CONFIG_XFS_QUOTA is not set
760# CONFIG_XFS_POSIX_ACL is not set 761# CONFIG_XFS_POSIX_ACL is not set
@@ -766,6 +767,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
766# CONFIG_OCFS2_FS_STATS is not set 767# CONFIG_OCFS2_FS_STATS is not set
767# CONFIG_OCFS2_DEBUG_MASKLOG is not set 768# CONFIG_OCFS2_DEBUG_MASKLOG is not set
768# CONFIG_OCFS2_DEBUG_FS is not set 769# CONFIG_OCFS2_DEBUG_FS is not set
770# CONFIG_OCFS2_COMPAT_JBD is not set
769CONFIG_DNOTIFY=y 771CONFIG_DNOTIFY=y
770CONFIG_INOTIFY=y 772CONFIG_INOTIFY=y
771CONFIG_INOTIFY_USER=y 773CONFIG_INOTIFY_USER=y
@@ -804,6 +806,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
804CONFIG_PROC_FS=y 806CONFIG_PROC_FS=y
805CONFIG_PROC_KCORE=y 807CONFIG_PROC_KCORE=y
806CONFIG_PROC_SYSCTL=y 808CONFIG_PROC_SYSCTL=y
809CONFIG_PROC_PAGE_MONITOR=y
807CONFIG_SYSFS=y 810CONFIG_SYSFS=y
808CONFIG_TMPFS=y 811CONFIG_TMPFS=y
809# CONFIG_TMPFS_POSIX_ACL is not set 812# CONFIG_TMPFS_POSIX_ACL is not set
@@ -847,6 +850,7 @@ CONFIG_EXPORTFS=m
847CONFIG_NFS_COMMON=y 850CONFIG_NFS_COMMON=y
848CONFIG_SUNRPC=y 851CONFIG_SUNRPC=y
849CONFIG_SUNRPC_GSS=y 852CONFIG_SUNRPC_GSS=y
853# CONFIG_SUNRPC_REGISTER_V4 is not set
850CONFIG_RPCSEC_GSS_KRB5=y 854CONFIG_RPCSEC_GSS_KRB5=y
851# CONFIG_RPCSEC_GSS_SPKM3 is not set 855# CONFIG_RPCSEC_GSS_SPKM3 is not set
852CONFIG_SMB_FS=m 856CONFIG_SMB_FS=m
@@ -920,7 +924,13 @@ CONFIG_MAGIC_SYSRQ=y
920# CONFIG_DEBUG_KERNEL is not set 924# CONFIG_DEBUG_KERNEL is not set
921CONFIG_DEBUG_BUGVERBOSE=y 925CONFIG_DEBUG_BUGVERBOSE=y
922CONFIG_DEBUG_MEMORY_INIT=y 926CONFIG_DEBUG_MEMORY_INIT=y
927# CONFIG_RCU_CPU_STALL_DETECTOR is not set
923CONFIG_SYSCTL_SYSCALL_CHECK=y 928CONFIG_SYSCTL_SYSCALL_CHECK=y
929
930#
931# Tracers
932#
933# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
924# CONFIG_SAMPLES is not set 934# CONFIG_SAMPLES is not set
925 935
926# 936#
@@ -928,6 +938,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
928# 938#
929# CONFIG_KEYS is not set 939# CONFIG_KEYS is not set
930# CONFIG_SECURITY is not set 940# CONFIG_SECURITY is not set
941# CONFIG_SECURITYFS is not set
931# CONFIG_SECURITY_FILE_CAPABILITIES is not set 942# CONFIG_SECURITY_FILE_CAPABILITIES is not set
932CONFIG_XOR_BLOCKS=m 943CONFIG_XOR_BLOCKS=m
933CONFIG_ASYNC_CORE=m 944CONFIG_ASYNC_CORE=m
@@ -938,10 +949,12 @@ CONFIG_CRYPTO=y
938# 949#
939# Crypto core or helper 950# Crypto core or helper
940# 951#
952# CONFIG_CRYPTO_FIPS is not set
941CONFIG_CRYPTO_ALGAPI=y 953CONFIG_CRYPTO_ALGAPI=y
942CONFIG_CRYPTO_AEAD=m 954CONFIG_CRYPTO_AEAD=y
943CONFIG_CRYPTO_BLKCIPHER=y 955CONFIG_CRYPTO_BLKCIPHER=y
944CONFIG_CRYPTO_HASH=y 956CONFIG_CRYPTO_HASH=y
957CONFIG_CRYPTO_RNG=y
945CONFIG_CRYPTO_MANAGER=y 958CONFIG_CRYPTO_MANAGER=y
946CONFIG_CRYPTO_GF128MUL=m 959CONFIG_CRYPTO_GF128MUL=m
947CONFIG_CRYPTO_NULL=m 960CONFIG_CRYPTO_NULL=m
@@ -1015,14 +1028,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1015# 1028#
1016CONFIG_CRYPTO_DEFLATE=m 1029CONFIG_CRYPTO_DEFLATE=m
1017CONFIG_CRYPTO_LZO=m 1030CONFIG_CRYPTO_LZO=m
1031
1032#
1033# Random Number Generation
1034#
1035# CONFIG_CRYPTO_ANSI_CPRNG is not set
1018# CONFIG_CRYPTO_HW is not set 1036# CONFIG_CRYPTO_HW is not set
1019 1037
1020# 1038#
1021# Library routines 1039# Library routines
1022# 1040#
1023CONFIG_BITREVERSE=y 1041CONFIG_BITREVERSE=y
1024# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1025# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1026CONFIG_CRC_CCITT=m 1042CONFIG_CRC_CCITT=m
1027CONFIG_CRC16=m 1043CONFIG_CRC16=m
1028CONFIG_CRC_T10DIF=y 1044CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16x_defconfig
index a183e25e348d..3403ed2eda79 100644
--- a/arch/m68k/configs/mvme16x_defconfig
+++ b/arch/m68k/configs/mvme16x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:09 2008 4# Tue Dec 2 20:27:51 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -151,19 +141,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
151CONFIG_DISCONTIGMEM=y 141CONFIG_DISCONTIGMEM=y
152CONFIG_FLAT_NODE_MEM_MAP=y 142CONFIG_FLAT_NODE_MEM_MAP=y
153CONFIG_NEED_MULTIPLE_NODES=y 143CONFIG_NEED_MULTIPLE_NODES=y
154# CONFIG_SPARSEMEM_STATIC is not set
155# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
156CONFIG_PAGEFLAGS_EXTENDED=y 144CONFIG_PAGEFLAGS_EXTENDED=y
157CONFIG_SPLIT_PTLOCK_CPUS=4 145CONFIG_SPLIT_PTLOCK_CPUS=4
158# CONFIG_RESOURCES_64BIT is not set 146# CONFIG_RESOURCES_64BIT is not set
147# CONFIG_PHYS_ADDR_T_64BIT is not set
159CONFIG_ZONE_DMA_FLAG=1 148CONFIG_ZONE_DMA_FLAG=1
160CONFIG_BOUNCE=y 149CONFIG_BOUNCE=y
161CONFIG_VIRT_TO_BUS=y 150CONFIG_VIRT_TO_BUS=y
151CONFIG_UNEVICTABLE_LRU=y
162 152
163# 153#
164# General setup 154# General setup
165# 155#
166CONFIG_BINFMT_ELF=y 156CONFIG_BINFMT_ELF=y
157# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
158CONFIG_HAVE_AOUT=y
167CONFIG_BINFMT_AOUT=m 159CONFIG_BINFMT_AOUT=m
168CONFIG_BINFMT_MISC=m 160CONFIG_BINFMT_MISC=m
169CONFIG_PROC_HARDWARE=y 161CONFIG_PROC_HARDWARE=y
@@ -212,7 +204,6 @@ CONFIG_INET_TCP_DIAG=m
212CONFIG_TCP_CONG_CUBIC=y 204CONFIG_TCP_CONG_CUBIC=y
213CONFIG_DEFAULT_TCP_CONG="cubic" 205CONFIG_DEFAULT_TCP_CONG="cubic"
214# CONFIG_TCP_MD5SIG is not set 206# CONFIG_TCP_MD5SIG is not set
215# CONFIG_IP_VS is not set
216CONFIG_IPV6=m 207CONFIG_IPV6=m
217CONFIG_IPV6_PRIVACY=y 208CONFIG_IPV6_PRIVACY=y
218CONFIG_IPV6_ROUTER_PREF=y 209CONFIG_IPV6_ROUTER_PREF=y
@@ -262,13 +253,14 @@ CONFIG_NF_CONNTRACK_SANE=m
262CONFIG_NF_CONNTRACK_SIP=m 253CONFIG_NF_CONNTRACK_SIP=m
263CONFIG_NF_CONNTRACK_TFTP=m 254CONFIG_NF_CONNTRACK_TFTP=m
264# CONFIG_NF_CT_NETLINK is not set 255# CONFIG_NF_CT_NETLINK is not set
256# CONFIG_NETFILTER_TPROXY is not set
265CONFIG_NETFILTER_XTABLES=m 257CONFIG_NETFILTER_XTABLES=m
266CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 258CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
267CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 259CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
268CONFIG_NETFILTER_XT_TARGET_DSCP=m 260CONFIG_NETFILTER_XT_TARGET_DSCP=m
269CONFIG_NETFILTER_XT_TARGET_MARK=m 261CONFIG_NETFILTER_XT_TARGET_MARK=m
270CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
271CONFIG_NETFILTER_XT_TARGET_NFLOG=m 262CONFIG_NETFILTER_XT_TARGET_NFLOG=m
263CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
272CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 264CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
273CONFIG_NETFILTER_XT_TARGET_RATEEST=m 265CONFIG_NETFILTER_XT_TARGET_RATEEST=m
274CONFIG_NETFILTER_XT_TARGET_TRACE=m 266CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -282,19 +274,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
282CONFIG_NETFILTER_XT_MATCH_DCCP=m 274CONFIG_NETFILTER_XT_MATCH_DCCP=m
283CONFIG_NETFILTER_XT_MATCH_DSCP=m 275CONFIG_NETFILTER_XT_MATCH_DSCP=m
284CONFIG_NETFILTER_XT_MATCH_ESP=m 276CONFIG_NETFILTER_XT_MATCH_ESP=m
277CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
285CONFIG_NETFILTER_XT_MATCH_HELPER=m 278CONFIG_NETFILTER_XT_MATCH_HELPER=m
286CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 279CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
287CONFIG_NETFILTER_XT_MATCH_LENGTH=m 280CONFIG_NETFILTER_XT_MATCH_LENGTH=m
288CONFIG_NETFILTER_XT_MATCH_LIMIT=m 281CONFIG_NETFILTER_XT_MATCH_LIMIT=m
289CONFIG_NETFILTER_XT_MATCH_MAC=m 282CONFIG_NETFILTER_XT_MATCH_MAC=m
290CONFIG_NETFILTER_XT_MATCH_MARK=m 283CONFIG_NETFILTER_XT_MATCH_MARK=m
284CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
291CONFIG_NETFILTER_XT_MATCH_OWNER=m 285CONFIG_NETFILTER_XT_MATCH_OWNER=m
292CONFIG_NETFILTER_XT_MATCH_POLICY=m 286CONFIG_NETFILTER_XT_MATCH_POLICY=m
293CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
294CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 287CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
295CONFIG_NETFILTER_XT_MATCH_QUOTA=m 288CONFIG_NETFILTER_XT_MATCH_QUOTA=m
296CONFIG_NETFILTER_XT_MATCH_RATEEST=m 289CONFIG_NETFILTER_XT_MATCH_RATEEST=m
297CONFIG_NETFILTER_XT_MATCH_REALM=m 290CONFIG_NETFILTER_XT_MATCH_REALM=m
291CONFIG_NETFILTER_XT_MATCH_RECENT=m
292# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
298CONFIG_NETFILTER_XT_MATCH_SCTP=m 293CONFIG_NETFILTER_XT_MATCH_SCTP=m
299CONFIG_NETFILTER_XT_MATCH_STATE=m 294CONFIG_NETFILTER_XT_MATCH_STATE=m
300CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 295CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -302,20 +297,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
302CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 297CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
303CONFIG_NETFILTER_XT_MATCH_TIME=m 298CONFIG_NETFILTER_XT_MATCH_TIME=m
304CONFIG_NETFILTER_XT_MATCH_U32=m 299CONFIG_NETFILTER_XT_MATCH_U32=m
305CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 300# CONFIG_IP_VS is not set
306 301
307# 302#
308# IP: Netfilter Configuration 303# IP: Netfilter Configuration
309# 304#
305CONFIG_NF_DEFRAG_IPV4=m
310CONFIG_NF_CONNTRACK_IPV4=m 306CONFIG_NF_CONNTRACK_IPV4=m
311CONFIG_NF_CONNTRACK_PROC_COMPAT=y 307CONFIG_NF_CONNTRACK_PROC_COMPAT=y
312CONFIG_IP_NF_QUEUE=m 308CONFIG_IP_NF_QUEUE=m
313CONFIG_IP_NF_IPTABLES=m 309CONFIG_IP_NF_IPTABLES=m
314CONFIG_IP_NF_MATCH_RECENT=m 310CONFIG_IP_NF_MATCH_ADDRTYPE=m
315CONFIG_IP_NF_MATCH_ECN=m
316CONFIG_IP_NF_MATCH_AH=m 311CONFIG_IP_NF_MATCH_AH=m
312CONFIG_IP_NF_MATCH_ECN=m
317CONFIG_IP_NF_MATCH_TTL=m 313CONFIG_IP_NF_MATCH_TTL=m
318CONFIG_IP_NF_MATCH_ADDRTYPE=m
319CONFIG_IP_NF_FILTER=m 314CONFIG_IP_NF_FILTER=m
320CONFIG_IP_NF_TARGET_REJECT=m 315CONFIG_IP_NF_TARGET_REJECT=m
321CONFIG_IP_NF_TARGET_LOG=m 316CONFIG_IP_NF_TARGET_LOG=m
@@ -323,8 +318,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
323CONFIG_NF_NAT=m 318CONFIG_NF_NAT=m
324CONFIG_NF_NAT_NEEDED=y 319CONFIG_NF_NAT_NEEDED=y
325CONFIG_IP_NF_TARGET_MASQUERADE=m 320CONFIG_IP_NF_TARGET_MASQUERADE=m
326CONFIG_IP_NF_TARGET_REDIRECT=m
327CONFIG_IP_NF_TARGET_NETMAP=m 321CONFIG_IP_NF_TARGET_NETMAP=m
322CONFIG_IP_NF_TARGET_REDIRECT=m
328CONFIG_NF_NAT_SNMP_BASIC=m 323CONFIG_NF_NAT_SNMP_BASIC=m
329CONFIG_NF_NAT_PROTO_GRE=m 324CONFIG_NF_NAT_PROTO_GRE=m
330CONFIG_NF_NAT_PROTO_UDPLITE=m 325CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -337,9 +332,9 @@ CONFIG_NF_NAT_PPTP=m
337CONFIG_NF_NAT_H323=m 332CONFIG_NF_NAT_H323=m
338CONFIG_NF_NAT_SIP=m 333CONFIG_NF_NAT_SIP=m
339CONFIG_IP_NF_MANGLE=m 334CONFIG_IP_NF_MANGLE=m
335CONFIG_IP_NF_TARGET_CLUSTERIP=m
340CONFIG_IP_NF_TARGET_ECN=m 336CONFIG_IP_NF_TARGET_ECN=m
341CONFIG_IP_NF_TARGET_TTL=m 337CONFIG_IP_NF_TARGET_TTL=m
342CONFIG_IP_NF_TARGET_CLUSTERIP=m
343CONFIG_IP_NF_RAW=m 338CONFIG_IP_NF_RAW=m
344CONFIG_IP_NF_ARPTABLES=m 339CONFIG_IP_NF_ARPTABLES=m
345CONFIG_IP_NF_ARPFILTER=m 340CONFIG_IP_NF_ARPFILTER=m
@@ -351,16 +346,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
351CONFIG_NF_CONNTRACK_IPV6=m 346CONFIG_NF_CONNTRACK_IPV6=m
352CONFIG_IP6_NF_QUEUE=m 347CONFIG_IP6_NF_QUEUE=m
353CONFIG_IP6_NF_IPTABLES=m 348CONFIG_IP6_NF_IPTABLES=m
354CONFIG_IP6_NF_MATCH_RT=m 349CONFIG_IP6_NF_MATCH_AH=m
355CONFIG_IP6_NF_MATCH_OPTS=m 350CONFIG_IP6_NF_MATCH_EUI64=m
356CONFIG_IP6_NF_MATCH_FRAG=m 351CONFIG_IP6_NF_MATCH_FRAG=m
352CONFIG_IP6_NF_MATCH_OPTS=m
357CONFIG_IP6_NF_MATCH_HL=m 353CONFIG_IP6_NF_MATCH_HL=m
358CONFIG_IP6_NF_MATCH_IPV6HEADER=m 354CONFIG_IP6_NF_MATCH_IPV6HEADER=m
359CONFIG_IP6_NF_MATCH_AH=m
360CONFIG_IP6_NF_MATCH_MH=m 355CONFIG_IP6_NF_MATCH_MH=m
361CONFIG_IP6_NF_MATCH_EUI64=m 356CONFIG_IP6_NF_MATCH_RT=m
362CONFIG_IP6_NF_FILTER=m
363CONFIG_IP6_NF_TARGET_LOG=m 357CONFIG_IP6_NF_TARGET_LOG=m
358CONFIG_IP6_NF_FILTER=m
364CONFIG_IP6_NF_TARGET_REJECT=m 359CONFIG_IP6_NF_TARGET_REJECT=m
365CONFIG_IP6_NF_MANGLE=m 360CONFIG_IP6_NF_MANGLE=m
366CONFIG_IP6_NF_TARGET_HL=m 361CONFIG_IP6_NF_TARGET_HL=m
@@ -387,6 +382,7 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_TIPC is not set 382# CONFIG_TIPC is not set
388# CONFIG_ATM is not set 383# CONFIG_ATM is not set
389# CONFIG_BRIDGE is not set 384# CONFIG_BRIDGE is not set
385# CONFIG_NET_DSA is not set
390# CONFIG_VLAN_8021Q is not set 386# CONFIG_VLAN_8021Q is not set
391# CONFIG_DECNET is not set 387# CONFIG_DECNET is not set
392CONFIG_LLC=m 388CONFIG_LLC=m
@@ -410,19 +406,8 @@ CONFIG_NET_CLS_ROUTE=y
410# CONFIG_IRDA is not set 406# CONFIG_IRDA is not set
411# CONFIG_BT is not set 407# CONFIG_BT is not set
412# CONFIG_AF_RXRPC is not set 408# CONFIG_AF_RXRPC is not set
413 409# CONFIG_PHONET is not set
414# 410# CONFIG_WIRELESS is not set
415# Wireless
416#
417# CONFIG_CFG80211 is not set
418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
420# CONFIG_MAC80211 is not set
421CONFIG_IEEE80211=m
422# CONFIG_IEEE80211_DEBUG is not set
423CONFIG_IEEE80211_CRYPT_WEP=m
424CONFIG_IEEE80211_CRYPT_CCMP=m
425CONFIG_IEEE80211_CRYPT_TKIP=m
426# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
427# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
428 413
@@ -460,6 +445,7 @@ CONFIG_ATA_OVER_ETH=m
460CONFIG_MISC_DEVICES=y 445CONFIG_MISC_DEVICES=y
461# CONFIG_EEPROM_93CX6 is not set 446# CONFIG_EEPROM_93CX6 is not set
462# CONFIG_ENCLOSURE_SERVICES is not set 447# CONFIG_ENCLOSURE_SERVICES is not set
448# CONFIG_C2PORT is not set
463CONFIG_HAVE_IDE=y 449CONFIG_HAVE_IDE=y
464# CONFIG_IDE is not set 450# CONFIG_IDE is not set
465 451
@@ -545,6 +531,9 @@ CONFIG_MVME16x_NET=y
545# CONFIG_IBM_NEW_EMAC_RGMII is not set 531# CONFIG_IBM_NEW_EMAC_RGMII is not set
546# CONFIG_IBM_NEW_EMAC_TAH is not set 532# CONFIG_IBM_NEW_EMAC_TAH is not set
547# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 533# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
534# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
535# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
536# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
548# CONFIG_B44 is not set 537# CONFIG_B44 is not set
549# CONFIG_NETDEV_1000 is not set 538# CONFIG_NETDEV_1000 is not set
550# CONFIG_NETDEV_10000 is not set 539# CONFIG_NETDEV_10000 is not set
@@ -614,6 +603,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
614CONFIG_MOUSE_PS2_SYNAPTICS=y 603CONFIG_MOUSE_PS2_SYNAPTICS=y
615CONFIG_MOUSE_PS2_LIFEBOOK=y 604CONFIG_MOUSE_PS2_LIFEBOOK=y
616CONFIG_MOUSE_PS2_TRACKPOINT=y 605CONFIG_MOUSE_PS2_TRACKPOINT=y
606# CONFIG_MOUSE_PS2_ELANTECH is not set
617# CONFIG_MOUSE_PS2_TOUCHKIT is not set 607# CONFIG_MOUSE_PS2_TOUCHKIT is not set
618CONFIG_MOUSE_SERIAL=m 608CONFIG_MOUSE_SERIAL=m
619# CONFIG_MOUSE_VSXXXAA is not set 609# CONFIG_MOUSE_VSXXXAA is not set
@@ -668,11 +658,11 @@ CONFIG_GEN_RTC_X=y
668# CONFIG_THERMAL is not set 658# CONFIG_THERMAL is not set
669# CONFIG_THERMAL_HWMON is not set 659# CONFIG_THERMAL_HWMON is not set
670# CONFIG_WATCHDOG is not set 660# CONFIG_WATCHDOG is not set
661CONFIG_SSB_POSSIBLE=y
671 662
672# 663#
673# Sonics Silicon Backplane 664# Sonics Silicon Backplane
674# 665#
675CONFIG_SSB_POSSIBLE=y
676# CONFIG_SSB is not set 666# CONFIG_SSB is not set
677 667
678# 668#
@@ -682,6 +672,7 @@ CONFIG_SSB_POSSIBLE=y
682# CONFIG_MFD_SM501 is not set 672# CONFIG_MFD_SM501 is not set
683# CONFIG_HTC_PASIC3 is not set 673# CONFIG_HTC_PASIC3 is not set
684# CONFIG_MFD_TMIO is not set 674# CONFIG_MFD_TMIO is not set
675# CONFIG_REGULATOR is not set
685 676
686# 677#
687# Multimedia devices 678# Multimedia devices
@@ -721,6 +712,12 @@ CONFIG_HID_SUPPORT=y
721CONFIG_HID=m 712CONFIG_HID=m
722# CONFIG_HID_DEBUG is not set 713# CONFIG_HID_DEBUG is not set
723CONFIG_HIDRAW=y 714CONFIG_HIDRAW=y
715# CONFIG_HID_PID is not set
716
717#
718# Special HID drivers
719#
720CONFIG_HID_COMPAT=y
724# CONFIG_USB_SUPPORT is not set 721# CONFIG_USB_SUPPORT is not set
725# CONFIG_MMC is not set 722# CONFIG_MMC is not set
726# CONFIG_MEMSTICK is not set 723# CONFIG_MEMSTICK is not set
@@ -729,6 +726,8 @@ CONFIG_HIDRAW=y
729# CONFIG_RTC_CLASS is not set 726# CONFIG_RTC_CLASS is not set
730# CONFIG_DMADEVICES is not set 727# CONFIG_DMADEVICES is not set
731# CONFIG_UIO is not set 728# CONFIG_UIO is not set
729# CONFIG_STAGING is not set
730CONFIG_STAGING_EXCLUDE_BUILD=y
732 731
733# 732#
734# Character devices 733# Character devices
@@ -745,8 +744,9 @@ CONFIG_EXT2_FS=y
745# CONFIG_EXT2_FS_XIP is not set 744# CONFIG_EXT2_FS_XIP is not set
746CONFIG_EXT3_FS=y 745CONFIG_EXT3_FS=y
747# CONFIG_EXT3_FS_XATTR is not set 746# CONFIG_EXT3_FS_XATTR is not set
748# CONFIG_EXT4DEV_FS is not set 747# CONFIG_EXT4_FS is not set
749CONFIG_JBD=y 748CONFIG_JBD=y
749CONFIG_JBD2=m
750CONFIG_REISERFS_FS=m 750CONFIG_REISERFS_FS=m
751# CONFIG_REISERFS_CHECK is not set 751# CONFIG_REISERFS_CHECK is not set
752# CONFIG_REISERFS_PROC_INFO is not set 752# CONFIG_REISERFS_PROC_INFO is not set
@@ -757,6 +757,7 @@ CONFIG_JFS_FS=m
757# CONFIG_JFS_DEBUG is not set 757# CONFIG_JFS_DEBUG is not set
758# CONFIG_JFS_STATISTICS is not set 758# CONFIG_JFS_STATISTICS is not set
759# CONFIG_FS_POSIX_ACL is not set 759# CONFIG_FS_POSIX_ACL is not set
760CONFIG_FILE_LOCKING=y
760CONFIG_XFS_FS=m 761CONFIG_XFS_FS=m
761# CONFIG_XFS_QUOTA is not set 762# CONFIG_XFS_QUOTA is not set
762# CONFIG_XFS_POSIX_ACL is not set 763# CONFIG_XFS_POSIX_ACL is not set
@@ -768,6 +769,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
768# CONFIG_OCFS2_FS_STATS is not set 769# CONFIG_OCFS2_FS_STATS is not set
769# CONFIG_OCFS2_DEBUG_MASKLOG is not set 770# CONFIG_OCFS2_DEBUG_MASKLOG is not set
770# CONFIG_OCFS2_DEBUG_FS is not set 771# CONFIG_OCFS2_DEBUG_FS is not set
772# CONFIG_OCFS2_COMPAT_JBD is not set
771CONFIG_DNOTIFY=y 773CONFIG_DNOTIFY=y
772CONFIG_INOTIFY=y 774CONFIG_INOTIFY=y
773CONFIG_INOTIFY_USER=y 775CONFIG_INOTIFY_USER=y
@@ -806,6 +808,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
806CONFIG_PROC_FS=y 808CONFIG_PROC_FS=y
807CONFIG_PROC_KCORE=y 809CONFIG_PROC_KCORE=y
808CONFIG_PROC_SYSCTL=y 810CONFIG_PROC_SYSCTL=y
811CONFIG_PROC_PAGE_MONITOR=y
809CONFIG_SYSFS=y 812CONFIG_SYSFS=y
810CONFIG_TMPFS=y 813CONFIG_TMPFS=y
811# CONFIG_TMPFS_POSIX_ACL is not set 814# CONFIG_TMPFS_POSIX_ACL is not set
@@ -849,6 +852,7 @@ CONFIG_EXPORTFS=m
849CONFIG_NFS_COMMON=y 852CONFIG_NFS_COMMON=y
850CONFIG_SUNRPC=y 853CONFIG_SUNRPC=y
851CONFIG_SUNRPC_GSS=y 854CONFIG_SUNRPC_GSS=y
855# CONFIG_SUNRPC_REGISTER_V4 is not set
852CONFIG_RPCSEC_GSS_KRB5=y 856CONFIG_RPCSEC_GSS_KRB5=y
853# CONFIG_RPCSEC_GSS_SPKM3 is not set 857# CONFIG_RPCSEC_GSS_SPKM3 is not set
854CONFIG_SMB_FS=m 858CONFIG_SMB_FS=m
@@ -922,7 +926,13 @@ CONFIG_MAGIC_SYSRQ=y
922# CONFIG_DEBUG_KERNEL is not set 926# CONFIG_DEBUG_KERNEL is not set
923CONFIG_DEBUG_BUGVERBOSE=y 927CONFIG_DEBUG_BUGVERBOSE=y
924CONFIG_DEBUG_MEMORY_INIT=y 928CONFIG_DEBUG_MEMORY_INIT=y
929# CONFIG_RCU_CPU_STALL_DETECTOR is not set
925CONFIG_SYSCTL_SYSCALL_CHECK=y 930CONFIG_SYSCTL_SYSCALL_CHECK=y
931
932#
933# Tracers
934#
935# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
926# CONFIG_SAMPLES is not set 936# CONFIG_SAMPLES is not set
927 937
928# 938#
@@ -930,6 +940,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
930# 940#
931# CONFIG_KEYS is not set 941# CONFIG_KEYS is not set
932# CONFIG_SECURITY is not set 942# CONFIG_SECURITY is not set
943# CONFIG_SECURITYFS is not set
933# CONFIG_SECURITY_FILE_CAPABILITIES is not set 944# CONFIG_SECURITY_FILE_CAPABILITIES is not set
934CONFIG_XOR_BLOCKS=m 945CONFIG_XOR_BLOCKS=m
935CONFIG_ASYNC_CORE=m 946CONFIG_ASYNC_CORE=m
@@ -940,10 +951,12 @@ CONFIG_CRYPTO=y
940# 951#
941# Crypto core or helper 952# Crypto core or helper
942# 953#
954# CONFIG_CRYPTO_FIPS is not set
943CONFIG_CRYPTO_ALGAPI=y 955CONFIG_CRYPTO_ALGAPI=y
944CONFIG_CRYPTO_AEAD=m 956CONFIG_CRYPTO_AEAD=y
945CONFIG_CRYPTO_BLKCIPHER=y 957CONFIG_CRYPTO_BLKCIPHER=y
946CONFIG_CRYPTO_HASH=y 958CONFIG_CRYPTO_HASH=y
959CONFIG_CRYPTO_RNG=y
947CONFIG_CRYPTO_MANAGER=y 960CONFIG_CRYPTO_MANAGER=y
948CONFIG_CRYPTO_GF128MUL=m 961CONFIG_CRYPTO_GF128MUL=m
949CONFIG_CRYPTO_NULL=m 962CONFIG_CRYPTO_NULL=m
@@ -1017,14 +1030,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1017# 1030#
1018CONFIG_CRYPTO_DEFLATE=m 1031CONFIG_CRYPTO_DEFLATE=m
1019CONFIG_CRYPTO_LZO=m 1032CONFIG_CRYPTO_LZO=m
1033
1034#
1035# Random Number Generation
1036#
1037# CONFIG_CRYPTO_ANSI_CPRNG is not set
1020# CONFIG_CRYPTO_HW is not set 1038# CONFIG_CRYPTO_HW is not set
1021 1039
1022# 1040#
1023# Library routines 1041# Library routines
1024# 1042#
1025CONFIG_BITREVERSE=y 1043CONFIG_BITREVERSE=y
1026# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1027# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1028CONFIG_CRC_CCITT=m 1044CONFIG_CRC_CCITT=m
1029CONFIG_CRC16=m 1045CONFIG_CRC16=m
1030CONFIG_CRC_T10DIF=y 1046CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defconfig
index 72eaff0776b8..3459c594194b 100644
--- a/arch/m68k/configs/q40_defconfig
+++ b/arch/m68k/configs/q40_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:10 2008 4# Tue Dec 2 20:27:52 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -148,19 +138,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
148CONFIG_DISCONTIGMEM=y 138CONFIG_DISCONTIGMEM=y
149CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
150CONFIG_NEED_MULTIPLE_NODES=y 140CONFIG_NEED_MULTIPLE_NODES=y
151# CONFIG_SPARSEMEM_STATIC is not set
152# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
153CONFIG_PAGEFLAGS_EXTENDED=y 141CONFIG_PAGEFLAGS_EXTENDED=y
154CONFIG_SPLIT_PTLOCK_CPUS=4 142CONFIG_SPLIT_PTLOCK_CPUS=4
155# CONFIG_RESOURCES_64BIT is not set 143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set
156CONFIG_ZONE_DMA_FLAG=1 145CONFIG_ZONE_DMA_FLAG=1
157CONFIG_BOUNCE=y 146CONFIG_BOUNCE=y
158CONFIG_VIRT_TO_BUS=y 147CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y
159 149
160# 150#
161# General setup 151# General setup
162# 152#
163CONFIG_BINFMT_ELF=y 153CONFIG_BINFMT_ELF=y
154# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
155CONFIG_HAVE_AOUT=y
164CONFIG_BINFMT_AOUT=m 156CONFIG_BINFMT_AOUT=m
165CONFIG_BINFMT_MISC=m 157CONFIG_BINFMT_MISC=m
166CONFIG_HEARTBEAT=y 158CONFIG_HEARTBEAT=y
@@ -209,7 +201,6 @@ CONFIG_INET_TCP_DIAG=m
209CONFIG_TCP_CONG_CUBIC=y 201CONFIG_TCP_CONG_CUBIC=y
210CONFIG_DEFAULT_TCP_CONG="cubic" 202CONFIG_DEFAULT_TCP_CONG="cubic"
211# CONFIG_TCP_MD5SIG is not set 203# CONFIG_TCP_MD5SIG is not set
212# CONFIG_IP_VS is not set
213CONFIG_IPV6=m 204CONFIG_IPV6=m
214CONFIG_IPV6_PRIVACY=y 205CONFIG_IPV6_PRIVACY=y
215CONFIG_IPV6_ROUTER_PREF=y 206CONFIG_IPV6_ROUTER_PREF=y
@@ -259,13 +250,14 @@ CONFIG_NF_CONNTRACK_SANE=m
259CONFIG_NF_CONNTRACK_SIP=m 250CONFIG_NF_CONNTRACK_SIP=m
260CONFIG_NF_CONNTRACK_TFTP=m 251CONFIG_NF_CONNTRACK_TFTP=m
261# CONFIG_NF_CT_NETLINK is not set 252# CONFIG_NF_CT_NETLINK is not set
253# CONFIG_NETFILTER_TPROXY is not set
262CONFIG_NETFILTER_XTABLES=m 254CONFIG_NETFILTER_XTABLES=m
263CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 255CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
264CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 256CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
265CONFIG_NETFILTER_XT_TARGET_DSCP=m 257CONFIG_NETFILTER_XT_TARGET_DSCP=m
266CONFIG_NETFILTER_XT_TARGET_MARK=m 258CONFIG_NETFILTER_XT_TARGET_MARK=m
267CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
268CONFIG_NETFILTER_XT_TARGET_NFLOG=m 259CONFIG_NETFILTER_XT_TARGET_NFLOG=m
260CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
269CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 261CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
270CONFIG_NETFILTER_XT_TARGET_RATEEST=m 262CONFIG_NETFILTER_XT_TARGET_RATEEST=m
271CONFIG_NETFILTER_XT_TARGET_TRACE=m 263CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -279,19 +271,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
279CONFIG_NETFILTER_XT_MATCH_DCCP=m 271CONFIG_NETFILTER_XT_MATCH_DCCP=m
280CONFIG_NETFILTER_XT_MATCH_DSCP=m 272CONFIG_NETFILTER_XT_MATCH_DSCP=m
281CONFIG_NETFILTER_XT_MATCH_ESP=m 273CONFIG_NETFILTER_XT_MATCH_ESP=m
274CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
282CONFIG_NETFILTER_XT_MATCH_HELPER=m 275CONFIG_NETFILTER_XT_MATCH_HELPER=m
283CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 276CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
284CONFIG_NETFILTER_XT_MATCH_LENGTH=m 277CONFIG_NETFILTER_XT_MATCH_LENGTH=m
285CONFIG_NETFILTER_XT_MATCH_LIMIT=m 278CONFIG_NETFILTER_XT_MATCH_LIMIT=m
286CONFIG_NETFILTER_XT_MATCH_MAC=m 279CONFIG_NETFILTER_XT_MATCH_MAC=m
287CONFIG_NETFILTER_XT_MATCH_MARK=m 280CONFIG_NETFILTER_XT_MATCH_MARK=m
281CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
288CONFIG_NETFILTER_XT_MATCH_OWNER=m 282CONFIG_NETFILTER_XT_MATCH_OWNER=m
289CONFIG_NETFILTER_XT_MATCH_POLICY=m 283CONFIG_NETFILTER_XT_MATCH_POLICY=m
290CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
291CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 284CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
292CONFIG_NETFILTER_XT_MATCH_QUOTA=m 285CONFIG_NETFILTER_XT_MATCH_QUOTA=m
293CONFIG_NETFILTER_XT_MATCH_RATEEST=m 286CONFIG_NETFILTER_XT_MATCH_RATEEST=m
294CONFIG_NETFILTER_XT_MATCH_REALM=m 287CONFIG_NETFILTER_XT_MATCH_REALM=m
288CONFIG_NETFILTER_XT_MATCH_RECENT=m
289# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
295CONFIG_NETFILTER_XT_MATCH_SCTP=m 290CONFIG_NETFILTER_XT_MATCH_SCTP=m
296CONFIG_NETFILTER_XT_MATCH_STATE=m 291CONFIG_NETFILTER_XT_MATCH_STATE=m
297CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 292CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -299,20 +294,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
299CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 294CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
300CONFIG_NETFILTER_XT_MATCH_TIME=m 295CONFIG_NETFILTER_XT_MATCH_TIME=m
301CONFIG_NETFILTER_XT_MATCH_U32=m 296CONFIG_NETFILTER_XT_MATCH_U32=m
302CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 297# CONFIG_IP_VS is not set
303 298
304# 299#
305# IP: Netfilter Configuration 300# IP: Netfilter Configuration
306# 301#
302CONFIG_NF_DEFRAG_IPV4=m
307CONFIG_NF_CONNTRACK_IPV4=m 303CONFIG_NF_CONNTRACK_IPV4=m
308CONFIG_NF_CONNTRACK_PROC_COMPAT=y 304CONFIG_NF_CONNTRACK_PROC_COMPAT=y
309CONFIG_IP_NF_QUEUE=m 305CONFIG_IP_NF_QUEUE=m
310CONFIG_IP_NF_IPTABLES=m 306CONFIG_IP_NF_IPTABLES=m
311CONFIG_IP_NF_MATCH_RECENT=m 307CONFIG_IP_NF_MATCH_ADDRTYPE=m
312CONFIG_IP_NF_MATCH_ECN=m
313CONFIG_IP_NF_MATCH_AH=m 308CONFIG_IP_NF_MATCH_AH=m
309CONFIG_IP_NF_MATCH_ECN=m
314CONFIG_IP_NF_MATCH_TTL=m 310CONFIG_IP_NF_MATCH_TTL=m
315CONFIG_IP_NF_MATCH_ADDRTYPE=m
316CONFIG_IP_NF_FILTER=m 311CONFIG_IP_NF_FILTER=m
317CONFIG_IP_NF_TARGET_REJECT=m 312CONFIG_IP_NF_TARGET_REJECT=m
318CONFIG_IP_NF_TARGET_LOG=m 313CONFIG_IP_NF_TARGET_LOG=m
@@ -320,8 +315,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
320CONFIG_NF_NAT=m 315CONFIG_NF_NAT=m
321CONFIG_NF_NAT_NEEDED=y 316CONFIG_NF_NAT_NEEDED=y
322CONFIG_IP_NF_TARGET_MASQUERADE=m 317CONFIG_IP_NF_TARGET_MASQUERADE=m
323CONFIG_IP_NF_TARGET_REDIRECT=m
324CONFIG_IP_NF_TARGET_NETMAP=m 318CONFIG_IP_NF_TARGET_NETMAP=m
319CONFIG_IP_NF_TARGET_REDIRECT=m
325CONFIG_NF_NAT_SNMP_BASIC=m 320CONFIG_NF_NAT_SNMP_BASIC=m
326CONFIG_NF_NAT_PROTO_GRE=m 321CONFIG_NF_NAT_PROTO_GRE=m
327CONFIG_NF_NAT_PROTO_UDPLITE=m 322CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -334,9 +329,9 @@ CONFIG_NF_NAT_PPTP=m
334CONFIG_NF_NAT_H323=m 329CONFIG_NF_NAT_H323=m
335CONFIG_NF_NAT_SIP=m 330CONFIG_NF_NAT_SIP=m
336CONFIG_IP_NF_MANGLE=m 331CONFIG_IP_NF_MANGLE=m
332CONFIG_IP_NF_TARGET_CLUSTERIP=m
337CONFIG_IP_NF_TARGET_ECN=m 333CONFIG_IP_NF_TARGET_ECN=m
338CONFIG_IP_NF_TARGET_TTL=m 334CONFIG_IP_NF_TARGET_TTL=m
339CONFIG_IP_NF_TARGET_CLUSTERIP=m
340CONFIG_IP_NF_RAW=m 335CONFIG_IP_NF_RAW=m
341CONFIG_IP_NF_ARPTABLES=m 336CONFIG_IP_NF_ARPTABLES=m
342CONFIG_IP_NF_ARPFILTER=m 337CONFIG_IP_NF_ARPFILTER=m
@@ -348,16 +343,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
348CONFIG_NF_CONNTRACK_IPV6=m 343CONFIG_NF_CONNTRACK_IPV6=m
349CONFIG_IP6_NF_QUEUE=m 344CONFIG_IP6_NF_QUEUE=m
350CONFIG_IP6_NF_IPTABLES=m 345CONFIG_IP6_NF_IPTABLES=m
351CONFIG_IP6_NF_MATCH_RT=m 346CONFIG_IP6_NF_MATCH_AH=m
352CONFIG_IP6_NF_MATCH_OPTS=m 347CONFIG_IP6_NF_MATCH_EUI64=m
353CONFIG_IP6_NF_MATCH_FRAG=m 348CONFIG_IP6_NF_MATCH_FRAG=m
349CONFIG_IP6_NF_MATCH_OPTS=m
354CONFIG_IP6_NF_MATCH_HL=m 350CONFIG_IP6_NF_MATCH_HL=m
355CONFIG_IP6_NF_MATCH_IPV6HEADER=m 351CONFIG_IP6_NF_MATCH_IPV6HEADER=m
356CONFIG_IP6_NF_MATCH_AH=m
357CONFIG_IP6_NF_MATCH_MH=m 352CONFIG_IP6_NF_MATCH_MH=m
358CONFIG_IP6_NF_MATCH_EUI64=m 353CONFIG_IP6_NF_MATCH_RT=m
359CONFIG_IP6_NF_FILTER=m
360CONFIG_IP6_NF_TARGET_LOG=m 354CONFIG_IP6_NF_TARGET_LOG=m
355CONFIG_IP6_NF_FILTER=m
361CONFIG_IP6_NF_TARGET_REJECT=m 356CONFIG_IP6_NF_TARGET_REJECT=m
362CONFIG_IP6_NF_MANGLE=m 357CONFIG_IP6_NF_MANGLE=m
363CONFIG_IP6_NF_TARGET_HL=m 358CONFIG_IP6_NF_TARGET_HL=m
@@ -384,6 +379,7 @@ CONFIG_SCTP_HMAC_MD5=y
384# CONFIG_TIPC is not set 379# CONFIG_TIPC is not set
385# CONFIG_ATM is not set 380# CONFIG_ATM is not set
386# CONFIG_BRIDGE is not set 381# CONFIG_BRIDGE is not set
382# CONFIG_NET_DSA is not set
387# CONFIG_VLAN_8021Q is not set 383# CONFIG_VLAN_8021Q is not set
388# CONFIG_DECNET is not set 384# CONFIG_DECNET is not set
389CONFIG_LLC=m 385CONFIG_LLC=m
@@ -407,19 +403,8 @@ CONFIG_NET_CLS_ROUTE=y
407# CONFIG_IRDA is not set 403# CONFIG_IRDA is not set
408# CONFIG_BT is not set 404# CONFIG_BT is not set
409# CONFIG_AF_RXRPC is not set 405# CONFIG_AF_RXRPC is not set
410 406# CONFIG_PHONET is not set
411# 407# CONFIG_WIRELESS is not set
412# Wireless
413#
414# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y
416# CONFIG_WIRELESS_EXT_SYSFS is not set
417# CONFIG_MAC80211 is not set
418CONFIG_IEEE80211=m
419# CONFIG_IEEE80211_DEBUG is not set
420CONFIG_IEEE80211_CRYPT_WEP=m
421CONFIG_IEEE80211_CRYPT_CCMP=m
422CONFIG_IEEE80211_CRYPT_TKIP=m
423# CONFIG_RFKILL is not set 408# CONFIG_RFKILL is not set
424# CONFIG_NET_9P is not set 409# CONFIG_NET_9P is not set
425 410
@@ -458,21 +443,20 @@ CONFIG_ATA_OVER_ETH=m
458CONFIG_MISC_DEVICES=y 443CONFIG_MISC_DEVICES=y
459# CONFIG_EEPROM_93CX6 is not set 444# CONFIG_EEPROM_93CX6 is not set
460# CONFIG_ENCLOSURE_SERVICES is not set 445# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_C2PORT is not set
461CONFIG_HAVE_IDE=y 447CONFIG_HAVE_IDE=y
462CONFIG_IDE=y 448CONFIG_IDE=y
463CONFIG_BLK_DEV_IDE=y
464 449
465# 450#
466# Please see Documentation/ide/ide.txt for help/info on IDE drives 451# Please see Documentation/ide/ide.txt for help/info on IDE drives
467# 452#
468CONFIG_IDE_ATAPI=y
469# CONFIG_BLK_DEV_IDE_SATA is not set 453# CONFIG_BLK_DEV_IDE_SATA is not set
470CONFIG_BLK_DEV_IDEDISK=y 454CONFIG_IDE_GD=y
471# CONFIG_IDEDISK_MULTI_MODE is not set 455CONFIG_IDE_GD_ATA=y
456# CONFIG_IDE_GD_ATAPI is not set
472CONFIG_BLK_DEV_IDECD=y 457CONFIG_BLK_DEV_IDECD=y
473CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 458CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
474# CONFIG_BLK_DEV_IDETAPE is not set 459# CONFIG_BLK_DEV_IDETAPE is not set
475CONFIG_BLK_DEV_IDEFLOPPY=m
476# CONFIG_BLK_DEV_IDESCSI is not set 460# CONFIG_BLK_DEV_IDESCSI is not set
477# CONFIG_IDE_TASK_IOCTL is not set 461# CONFIG_IDE_TASK_IOCTL is not set
478CONFIG_IDE_PROC_FS=y 462CONFIG_IDE_PROC_FS=y
@@ -585,8 +569,12 @@ CONFIG_NE2000=m
585# CONFIG_IBM_NEW_EMAC_RGMII is not set 569# CONFIG_IBM_NEW_EMAC_RGMII is not set
586# CONFIG_IBM_NEW_EMAC_TAH is not set 570# CONFIG_IBM_NEW_EMAC_TAH is not set
587# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 571# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
572# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
573# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
574# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
588# CONFIG_NET_PCI is not set 575# CONFIG_NET_PCI is not set
589# CONFIG_B44 is not set 576# CONFIG_B44 is not set
577# CONFIG_CS89x0 is not set
590# CONFIG_NETDEV_1000 is not set 578# CONFIG_NETDEV_1000 is not set
591# CONFIG_NETDEV_10000 is not set 579# CONFIG_NETDEV_10000 is not set
592# CONFIG_TR is not set 580# CONFIG_TR is not set
@@ -656,6 +644,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
656CONFIG_MOUSE_PS2_SYNAPTICS=y 644CONFIG_MOUSE_PS2_SYNAPTICS=y
657CONFIG_MOUSE_PS2_LIFEBOOK=y 645CONFIG_MOUSE_PS2_LIFEBOOK=y
658CONFIG_MOUSE_PS2_TRACKPOINT=y 646CONFIG_MOUSE_PS2_TRACKPOINT=y
647# CONFIG_MOUSE_PS2_ELANTECH is not set
659# CONFIG_MOUSE_PS2_TOUCHKIT is not set 648# CONFIG_MOUSE_PS2_TOUCHKIT is not set
660CONFIG_MOUSE_SERIAL=m 649CONFIG_MOUSE_SERIAL=m
661# CONFIG_MOUSE_INPORT is not set 650# CONFIG_MOUSE_INPORT is not set
@@ -717,11 +706,11 @@ CONFIG_GEN_RTC_X=y
717# CONFIG_THERMAL is not set 706# CONFIG_THERMAL is not set
718# CONFIG_THERMAL_HWMON is not set 707# CONFIG_THERMAL_HWMON is not set
719# CONFIG_WATCHDOG is not set 708# CONFIG_WATCHDOG is not set
709CONFIG_SSB_POSSIBLE=y
720 710
721# 711#
722# Sonics Silicon Backplane 712# Sonics Silicon Backplane
723# 713#
724CONFIG_SSB_POSSIBLE=y
725# CONFIG_SSB is not set 714# CONFIG_SSB is not set
726 715
727# 716#
@@ -731,6 +720,7 @@ CONFIG_SSB_POSSIBLE=y
731# CONFIG_MFD_SM501 is not set 720# CONFIG_MFD_SM501 is not set
732# CONFIG_HTC_PASIC3 is not set 721# CONFIG_HTC_PASIC3 is not set
733# CONFIG_MFD_TMIO is not set 722# CONFIG_MFD_TMIO is not set
723# CONFIG_REGULATOR is not set
734 724
735# 725#
736# Multimedia devices 726# Multimedia devices
@@ -756,6 +746,7 @@ CONFIG_SSB_POSSIBLE=y
756CONFIG_FB=y 746CONFIG_FB=y
757# CONFIG_FIRMWARE_EDID is not set 747# CONFIG_FIRMWARE_EDID is not set
758# CONFIG_FB_DDC is not set 748# CONFIG_FB_DDC is not set
749# CONFIG_FB_BOOT_VESA_SUPPORT is not set
759CONFIG_FB_CFB_FILLRECT=y 750CONFIG_FB_CFB_FILLRECT=y
760CONFIG_FB_CFB_COPYAREA=y 751CONFIG_FB_CFB_COPYAREA=y
761CONFIG_FB_CFB_IMAGEBLIT=y 752CONFIG_FB_CFB_IMAGEBLIT=y
@@ -778,6 +769,8 @@ CONFIG_FB_Q40=y
778# CONFIG_FB_UVESA is not set 769# CONFIG_FB_UVESA is not set
779# CONFIG_FB_S1D13XXX is not set 770# CONFIG_FB_S1D13XXX is not set
780# CONFIG_FB_VIRTUAL is not set 771# CONFIG_FB_VIRTUAL is not set
772# CONFIG_FB_METRONOME is not set
773# CONFIG_FB_MB862XX is not set
781# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 774# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
782 775
783# 776#
@@ -800,12 +793,19 @@ CONFIG_LOGO_LINUX_MONO=y
800CONFIG_LOGO_LINUX_VGA16=y 793CONFIG_LOGO_LINUX_VGA16=y
801CONFIG_LOGO_LINUX_CLUT224=y 794CONFIG_LOGO_LINUX_CLUT224=y
802CONFIG_SOUND=m 795CONFIG_SOUND=m
796CONFIG_SOUND_OSS_CORE=y
803CONFIG_DMASOUND_Q40=m 797CONFIG_DMASOUND_Q40=m
804CONFIG_DMASOUND=m 798CONFIG_DMASOUND=m
805CONFIG_HID_SUPPORT=y 799CONFIG_HID_SUPPORT=y
806CONFIG_HID=m 800CONFIG_HID=m
807# CONFIG_HID_DEBUG is not set 801# CONFIG_HID_DEBUG is not set
808CONFIG_HIDRAW=y 802CONFIG_HIDRAW=y
803# CONFIG_HID_PID is not set
804
805#
806# Special HID drivers
807#
808CONFIG_HID_COMPAT=y
809# CONFIG_USB_SUPPORT is not set 809# CONFIG_USB_SUPPORT is not set
810# CONFIG_MMC is not set 810# CONFIG_MMC is not set
811# CONFIG_MEMSTICK is not set 811# CONFIG_MEMSTICK is not set
@@ -814,6 +814,8 @@ CONFIG_HIDRAW=y
814# CONFIG_RTC_CLASS is not set 814# CONFIG_RTC_CLASS is not set
815# CONFIG_DMADEVICES is not set 815# CONFIG_DMADEVICES is not set
816# CONFIG_UIO is not set 816# CONFIG_UIO is not set
817# CONFIG_STAGING is not set
818CONFIG_STAGING_EXCLUDE_BUILD=y
817 819
818# 820#
819# Character devices 821# Character devices
@@ -827,8 +829,9 @@ CONFIG_EXT2_FS=y
827# CONFIG_EXT2_FS_XIP is not set 829# CONFIG_EXT2_FS_XIP is not set
828CONFIG_EXT3_FS=y 830CONFIG_EXT3_FS=y
829# CONFIG_EXT3_FS_XATTR is not set 831# CONFIG_EXT3_FS_XATTR is not set
830# CONFIG_EXT4DEV_FS is not set 832# CONFIG_EXT4_FS is not set
831CONFIG_JBD=y 833CONFIG_JBD=y
834CONFIG_JBD2=m
832CONFIG_REISERFS_FS=m 835CONFIG_REISERFS_FS=m
833# CONFIG_REISERFS_CHECK is not set 836# CONFIG_REISERFS_CHECK is not set
834# CONFIG_REISERFS_PROC_INFO is not set 837# CONFIG_REISERFS_PROC_INFO is not set
@@ -839,6 +842,7 @@ CONFIG_JFS_FS=m
839# CONFIG_JFS_DEBUG is not set 842# CONFIG_JFS_DEBUG is not set
840# CONFIG_JFS_STATISTICS is not set 843# CONFIG_JFS_STATISTICS is not set
841# CONFIG_FS_POSIX_ACL is not set 844# CONFIG_FS_POSIX_ACL is not set
845CONFIG_FILE_LOCKING=y
842CONFIG_XFS_FS=m 846CONFIG_XFS_FS=m
843# CONFIG_XFS_QUOTA is not set 847# CONFIG_XFS_QUOTA is not set
844# CONFIG_XFS_POSIX_ACL is not set 848# CONFIG_XFS_POSIX_ACL is not set
@@ -850,6 +854,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
850# CONFIG_OCFS2_FS_STATS is not set 854# CONFIG_OCFS2_FS_STATS is not set
851# CONFIG_OCFS2_DEBUG_MASKLOG is not set 855# CONFIG_OCFS2_DEBUG_MASKLOG is not set
852# CONFIG_OCFS2_DEBUG_FS is not set 856# CONFIG_OCFS2_DEBUG_FS is not set
857# CONFIG_OCFS2_COMPAT_JBD is not set
853CONFIG_DNOTIFY=y 858CONFIG_DNOTIFY=y
854CONFIG_INOTIFY=y 859CONFIG_INOTIFY=y
855CONFIG_INOTIFY_USER=y 860CONFIG_INOTIFY_USER=y
@@ -888,6 +893,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
888CONFIG_PROC_FS=y 893CONFIG_PROC_FS=y
889CONFIG_PROC_KCORE=y 894CONFIG_PROC_KCORE=y
890CONFIG_PROC_SYSCTL=y 895CONFIG_PROC_SYSCTL=y
896CONFIG_PROC_PAGE_MONITOR=y
891CONFIG_SYSFS=y 897CONFIG_SYSFS=y
892CONFIG_TMPFS=y 898CONFIG_TMPFS=y
893# CONFIG_TMPFS_POSIX_ACL is not set 899# CONFIG_TMPFS_POSIX_ACL is not set
@@ -930,6 +936,7 @@ CONFIG_EXPORTFS=m
930CONFIG_NFS_COMMON=y 936CONFIG_NFS_COMMON=y
931CONFIG_SUNRPC=y 937CONFIG_SUNRPC=y
932CONFIG_SUNRPC_GSS=y 938CONFIG_SUNRPC_GSS=y
939# CONFIG_SUNRPC_REGISTER_V4 is not set
933CONFIG_RPCSEC_GSS_KRB5=y 940CONFIG_RPCSEC_GSS_KRB5=y
934# CONFIG_RPCSEC_GSS_SPKM3 is not set 941# CONFIG_RPCSEC_GSS_SPKM3 is not set
935CONFIG_SMB_FS=m 942CONFIG_SMB_FS=m
@@ -1002,7 +1009,13 @@ CONFIG_MAGIC_SYSRQ=y
1002# CONFIG_DEBUG_KERNEL is not set 1009# CONFIG_DEBUG_KERNEL is not set
1003CONFIG_DEBUG_BUGVERBOSE=y 1010CONFIG_DEBUG_BUGVERBOSE=y
1004CONFIG_DEBUG_MEMORY_INIT=y 1011CONFIG_DEBUG_MEMORY_INIT=y
1012# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1005CONFIG_SYSCTL_SYSCALL_CHECK=y 1013CONFIG_SYSCTL_SYSCALL_CHECK=y
1014
1015#
1016# Tracers
1017#
1018# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1006# CONFIG_SAMPLES is not set 1019# CONFIG_SAMPLES is not set
1007 1020
1008# 1021#
@@ -1010,6 +1023,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
1010# 1023#
1011# CONFIG_KEYS is not set 1024# CONFIG_KEYS is not set
1012# CONFIG_SECURITY is not set 1025# CONFIG_SECURITY is not set
1026# CONFIG_SECURITYFS is not set
1013# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1027# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1014CONFIG_XOR_BLOCKS=m 1028CONFIG_XOR_BLOCKS=m
1015CONFIG_ASYNC_CORE=m 1029CONFIG_ASYNC_CORE=m
@@ -1020,10 +1034,12 @@ CONFIG_CRYPTO=y
1020# 1034#
1021# Crypto core or helper 1035# Crypto core or helper
1022# 1036#
1037# CONFIG_CRYPTO_FIPS is not set
1023CONFIG_CRYPTO_ALGAPI=y 1038CONFIG_CRYPTO_ALGAPI=y
1024CONFIG_CRYPTO_AEAD=m 1039CONFIG_CRYPTO_AEAD=y
1025CONFIG_CRYPTO_BLKCIPHER=y 1040CONFIG_CRYPTO_BLKCIPHER=y
1026CONFIG_CRYPTO_HASH=y 1041CONFIG_CRYPTO_HASH=y
1042CONFIG_CRYPTO_RNG=y
1027CONFIG_CRYPTO_MANAGER=y 1043CONFIG_CRYPTO_MANAGER=y
1028CONFIG_CRYPTO_GF128MUL=m 1044CONFIG_CRYPTO_GF128MUL=m
1029CONFIG_CRYPTO_NULL=m 1045CONFIG_CRYPTO_NULL=m
@@ -1097,14 +1113,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1097# 1113#
1098CONFIG_CRYPTO_DEFLATE=m 1114CONFIG_CRYPTO_DEFLATE=m
1099CONFIG_CRYPTO_LZO=m 1115CONFIG_CRYPTO_LZO=m
1116
1117#
1118# Random Number Generation
1119#
1120# CONFIG_CRYPTO_ANSI_CPRNG is not set
1100# CONFIG_CRYPTO_HW is not set 1121# CONFIG_CRYPTO_HW is not set
1101 1122
1102# 1123#
1103# Library routines 1124# Library routines
1104# 1125#
1105CONFIG_BITREVERSE=y 1126CONFIG_BITREVERSE=y
1106# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1107# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1108CONFIG_CRC_CCITT=m 1127CONFIG_CRC_CCITT=m
1109CONFIG_CRC16=m 1128CONFIG_CRC16=m
1110CONFIG_CRC_T10DIF=y 1129CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defconfig
index cb62b96d766e..f404917429fa 100644
--- a/arch/m68k/configs/sun3_defconfig
+++ b/arch/m68k/configs/sun3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:11 2008 4# Tue Dec 2 20:27:53 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16CONFIG_NO_DMA=y 16CONFIG_NO_DMA=y
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,10 +105,19 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
113# CONFIG_AMIGA is not set
114# CONFIG_ATARI is not set
115# CONFIG_MAC is not set
116# CONFIG_APOLLO is not set
117# CONFIG_VME is not set
118# CONFIG_HP300 is not set
119# CONFIG_SUN3X is not set
120# CONFIG_Q40 is not set
122CONFIG_SUN3=y 121CONFIG_SUN3=y
123 122
124# 123#
@@ -137,19 +136,21 @@ CONFIG_FLATMEM_MANUAL=y
137CONFIG_FLATMEM=y 136CONFIG_FLATMEM=y
138CONFIG_FLAT_NODE_MEM_MAP=y 137CONFIG_FLAT_NODE_MEM_MAP=y
139CONFIG_NEED_MULTIPLE_NODES=y 138CONFIG_NEED_MULTIPLE_NODES=y
140# CONFIG_SPARSEMEM_STATIC is not set
141# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
142CONFIG_PAGEFLAGS_EXTENDED=y 139CONFIG_PAGEFLAGS_EXTENDED=y
143CONFIG_SPLIT_PTLOCK_CPUS=4 140CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_RESOURCES_64BIT is not set 141# CONFIG_RESOURCES_64BIT is not set
142# CONFIG_PHYS_ADDR_T_64BIT is not set
145CONFIG_ZONE_DMA_FLAG=1 143CONFIG_ZONE_DMA_FLAG=1
146CONFIG_BOUNCE=y 144CONFIG_BOUNCE=y
147CONFIG_VIRT_TO_BUS=y 145CONFIG_VIRT_TO_BUS=y
146CONFIG_UNEVICTABLE_LRU=y
148 147
149# 148#
150# General setup 149# General setup
151# 150#
152CONFIG_BINFMT_ELF=y 151CONFIG_BINFMT_ELF=y
152# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
153CONFIG_HAVE_AOUT=y
153CONFIG_BINFMT_AOUT=m 154CONFIG_BINFMT_AOUT=m
154CONFIG_BINFMT_MISC=m 155CONFIG_BINFMT_MISC=m
155CONFIG_PROC_HARDWARE=y 156CONFIG_PROC_HARDWARE=y
@@ -198,7 +199,6 @@ CONFIG_INET_TCP_DIAG=m
198CONFIG_TCP_CONG_CUBIC=y 199CONFIG_TCP_CONG_CUBIC=y
199CONFIG_DEFAULT_TCP_CONG="cubic" 200CONFIG_DEFAULT_TCP_CONG="cubic"
200# CONFIG_TCP_MD5SIG is not set 201# CONFIG_TCP_MD5SIG is not set
201# CONFIG_IP_VS is not set
202CONFIG_IPV6=m 202CONFIG_IPV6=m
203CONFIG_IPV6_PRIVACY=y 203CONFIG_IPV6_PRIVACY=y
204CONFIG_IPV6_ROUTER_PREF=y 204CONFIG_IPV6_ROUTER_PREF=y
@@ -248,13 +248,14 @@ CONFIG_NF_CONNTRACK_SANE=m
248CONFIG_NF_CONNTRACK_SIP=m 248CONFIG_NF_CONNTRACK_SIP=m
249CONFIG_NF_CONNTRACK_TFTP=m 249CONFIG_NF_CONNTRACK_TFTP=m
250# CONFIG_NF_CT_NETLINK is not set 250# CONFIG_NF_CT_NETLINK is not set
251# CONFIG_NETFILTER_TPROXY is not set
251CONFIG_NETFILTER_XTABLES=m 252CONFIG_NETFILTER_XTABLES=m
252CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 253CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
253CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 254CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
254CONFIG_NETFILTER_XT_TARGET_DSCP=m 255CONFIG_NETFILTER_XT_TARGET_DSCP=m
255CONFIG_NETFILTER_XT_TARGET_MARK=m 256CONFIG_NETFILTER_XT_TARGET_MARK=m
256CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
257CONFIG_NETFILTER_XT_TARGET_NFLOG=m 257CONFIG_NETFILTER_XT_TARGET_NFLOG=m
258CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
258CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 259CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
259CONFIG_NETFILTER_XT_TARGET_RATEEST=m 260CONFIG_NETFILTER_XT_TARGET_RATEEST=m
260CONFIG_NETFILTER_XT_TARGET_TRACE=m 261CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -268,19 +269,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
268CONFIG_NETFILTER_XT_MATCH_DCCP=m 269CONFIG_NETFILTER_XT_MATCH_DCCP=m
269CONFIG_NETFILTER_XT_MATCH_DSCP=m 270CONFIG_NETFILTER_XT_MATCH_DSCP=m
270CONFIG_NETFILTER_XT_MATCH_ESP=m 271CONFIG_NETFILTER_XT_MATCH_ESP=m
272CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
271CONFIG_NETFILTER_XT_MATCH_HELPER=m 273CONFIG_NETFILTER_XT_MATCH_HELPER=m
272CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 274CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
273CONFIG_NETFILTER_XT_MATCH_LENGTH=m 275CONFIG_NETFILTER_XT_MATCH_LENGTH=m
274CONFIG_NETFILTER_XT_MATCH_LIMIT=m 276CONFIG_NETFILTER_XT_MATCH_LIMIT=m
275CONFIG_NETFILTER_XT_MATCH_MAC=m 277CONFIG_NETFILTER_XT_MATCH_MAC=m
276CONFIG_NETFILTER_XT_MATCH_MARK=m 278CONFIG_NETFILTER_XT_MATCH_MARK=m
279CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
277CONFIG_NETFILTER_XT_MATCH_OWNER=m 280CONFIG_NETFILTER_XT_MATCH_OWNER=m
278CONFIG_NETFILTER_XT_MATCH_POLICY=m 281CONFIG_NETFILTER_XT_MATCH_POLICY=m
279CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
280CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 282CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
281CONFIG_NETFILTER_XT_MATCH_QUOTA=m 283CONFIG_NETFILTER_XT_MATCH_QUOTA=m
282CONFIG_NETFILTER_XT_MATCH_RATEEST=m 284CONFIG_NETFILTER_XT_MATCH_RATEEST=m
283CONFIG_NETFILTER_XT_MATCH_REALM=m 285CONFIG_NETFILTER_XT_MATCH_REALM=m
286CONFIG_NETFILTER_XT_MATCH_RECENT=m
287# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
284CONFIG_NETFILTER_XT_MATCH_SCTP=m 288CONFIG_NETFILTER_XT_MATCH_SCTP=m
285CONFIG_NETFILTER_XT_MATCH_STATE=m 289CONFIG_NETFILTER_XT_MATCH_STATE=m
286CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 290CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -288,20 +292,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
288CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 292CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
289CONFIG_NETFILTER_XT_MATCH_TIME=m 293CONFIG_NETFILTER_XT_MATCH_TIME=m
290CONFIG_NETFILTER_XT_MATCH_U32=m 294CONFIG_NETFILTER_XT_MATCH_U32=m
291CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 295# CONFIG_IP_VS is not set
292 296
293# 297#
294# IP: Netfilter Configuration 298# IP: Netfilter Configuration
295# 299#
300CONFIG_NF_DEFRAG_IPV4=m
296CONFIG_NF_CONNTRACK_IPV4=m 301CONFIG_NF_CONNTRACK_IPV4=m
297CONFIG_NF_CONNTRACK_PROC_COMPAT=y 302CONFIG_NF_CONNTRACK_PROC_COMPAT=y
298CONFIG_IP_NF_QUEUE=m 303CONFIG_IP_NF_QUEUE=m
299CONFIG_IP_NF_IPTABLES=m 304CONFIG_IP_NF_IPTABLES=m
300CONFIG_IP_NF_MATCH_RECENT=m 305CONFIG_IP_NF_MATCH_ADDRTYPE=m
301CONFIG_IP_NF_MATCH_ECN=m
302CONFIG_IP_NF_MATCH_AH=m 306CONFIG_IP_NF_MATCH_AH=m
307CONFIG_IP_NF_MATCH_ECN=m
303CONFIG_IP_NF_MATCH_TTL=m 308CONFIG_IP_NF_MATCH_TTL=m
304CONFIG_IP_NF_MATCH_ADDRTYPE=m
305CONFIG_IP_NF_FILTER=m 309CONFIG_IP_NF_FILTER=m
306CONFIG_IP_NF_TARGET_REJECT=m 310CONFIG_IP_NF_TARGET_REJECT=m
307CONFIG_IP_NF_TARGET_LOG=m 311CONFIG_IP_NF_TARGET_LOG=m
@@ -309,8 +313,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
309CONFIG_NF_NAT=m 313CONFIG_NF_NAT=m
310CONFIG_NF_NAT_NEEDED=y 314CONFIG_NF_NAT_NEEDED=y
311CONFIG_IP_NF_TARGET_MASQUERADE=m 315CONFIG_IP_NF_TARGET_MASQUERADE=m
312CONFIG_IP_NF_TARGET_REDIRECT=m
313CONFIG_IP_NF_TARGET_NETMAP=m 316CONFIG_IP_NF_TARGET_NETMAP=m
317CONFIG_IP_NF_TARGET_REDIRECT=m
314CONFIG_NF_NAT_SNMP_BASIC=m 318CONFIG_NF_NAT_SNMP_BASIC=m
315CONFIG_NF_NAT_PROTO_GRE=m 319CONFIG_NF_NAT_PROTO_GRE=m
316CONFIG_NF_NAT_PROTO_UDPLITE=m 320CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -323,9 +327,9 @@ CONFIG_NF_NAT_PPTP=m
323CONFIG_NF_NAT_H323=m 327CONFIG_NF_NAT_H323=m
324CONFIG_NF_NAT_SIP=m 328CONFIG_NF_NAT_SIP=m
325CONFIG_IP_NF_MANGLE=m 329CONFIG_IP_NF_MANGLE=m
330CONFIG_IP_NF_TARGET_CLUSTERIP=m
326CONFIG_IP_NF_TARGET_ECN=m 331CONFIG_IP_NF_TARGET_ECN=m
327CONFIG_IP_NF_TARGET_TTL=m 332CONFIG_IP_NF_TARGET_TTL=m
328CONFIG_IP_NF_TARGET_CLUSTERIP=m
329CONFIG_IP_NF_RAW=m 333CONFIG_IP_NF_RAW=m
330CONFIG_IP_NF_ARPTABLES=m 334CONFIG_IP_NF_ARPTABLES=m
331CONFIG_IP_NF_ARPFILTER=m 335CONFIG_IP_NF_ARPFILTER=m
@@ -337,16 +341,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
337CONFIG_NF_CONNTRACK_IPV6=m 341CONFIG_NF_CONNTRACK_IPV6=m
338CONFIG_IP6_NF_QUEUE=m 342CONFIG_IP6_NF_QUEUE=m
339CONFIG_IP6_NF_IPTABLES=m 343CONFIG_IP6_NF_IPTABLES=m
340CONFIG_IP6_NF_MATCH_RT=m 344CONFIG_IP6_NF_MATCH_AH=m
341CONFIG_IP6_NF_MATCH_OPTS=m 345CONFIG_IP6_NF_MATCH_EUI64=m
342CONFIG_IP6_NF_MATCH_FRAG=m 346CONFIG_IP6_NF_MATCH_FRAG=m
347CONFIG_IP6_NF_MATCH_OPTS=m
343CONFIG_IP6_NF_MATCH_HL=m 348CONFIG_IP6_NF_MATCH_HL=m
344CONFIG_IP6_NF_MATCH_IPV6HEADER=m 349CONFIG_IP6_NF_MATCH_IPV6HEADER=m
345CONFIG_IP6_NF_MATCH_AH=m
346CONFIG_IP6_NF_MATCH_MH=m 350CONFIG_IP6_NF_MATCH_MH=m
347CONFIG_IP6_NF_MATCH_EUI64=m 351CONFIG_IP6_NF_MATCH_RT=m
348CONFIG_IP6_NF_FILTER=m
349CONFIG_IP6_NF_TARGET_LOG=m 352CONFIG_IP6_NF_TARGET_LOG=m
353CONFIG_IP6_NF_FILTER=m
350CONFIG_IP6_NF_TARGET_REJECT=m 354CONFIG_IP6_NF_TARGET_REJECT=m
351CONFIG_IP6_NF_MANGLE=m 355CONFIG_IP6_NF_MANGLE=m
352CONFIG_IP6_NF_TARGET_HL=m 356CONFIG_IP6_NF_TARGET_HL=m
@@ -373,6 +377,7 @@ CONFIG_SCTP_HMAC_MD5=y
373# CONFIG_TIPC is not set 377# CONFIG_TIPC is not set
374# CONFIG_ATM is not set 378# CONFIG_ATM is not set
375# CONFIG_BRIDGE is not set 379# CONFIG_BRIDGE is not set
380# CONFIG_NET_DSA is not set
376# CONFIG_VLAN_8021Q is not set 381# CONFIG_VLAN_8021Q is not set
377# CONFIG_DECNET is not set 382# CONFIG_DECNET is not set
378CONFIG_LLC=m 383CONFIG_LLC=m
@@ -396,19 +401,8 @@ CONFIG_NET_CLS_ROUTE=y
396# CONFIG_IRDA is not set 401# CONFIG_IRDA is not set
397# CONFIG_BT is not set 402# CONFIG_BT is not set
398# CONFIG_AF_RXRPC is not set 403# CONFIG_AF_RXRPC is not set
399 404# CONFIG_PHONET is not set
400# 405# CONFIG_WIRELESS is not set
401# Wireless
402#
403# CONFIG_CFG80211 is not set
404CONFIG_WIRELESS_EXT=y
405# CONFIG_WIRELESS_EXT_SYSFS is not set
406# CONFIG_MAC80211 is not set
407CONFIG_IEEE80211=m
408# CONFIG_IEEE80211_DEBUG is not set
409CONFIG_IEEE80211_CRYPT_WEP=m
410CONFIG_IEEE80211_CRYPT_CCMP=m
411CONFIG_IEEE80211_CRYPT_TKIP=m
412# CONFIG_RFKILL is not set 406# CONFIG_RFKILL is not set
413# CONFIG_NET_9P is not set 407# CONFIG_NET_9P is not set
414 408
@@ -446,6 +440,7 @@ CONFIG_ATA_OVER_ETH=m
446CONFIG_MISC_DEVICES=y 440CONFIG_MISC_DEVICES=y
447# CONFIG_EEPROM_93CX6 is not set 441# CONFIG_EEPROM_93CX6 is not set
448# CONFIG_ENCLOSURE_SERVICES is not set 442# CONFIG_ENCLOSURE_SERVICES is not set
443# CONFIG_C2PORT is not set
449CONFIG_HAVE_IDE=y 444CONFIG_HAVE_IDE=y
450# CONFIG_IDE is not set 445# CONFIG_IDE is not set
451 446
@@ -531,6 +526,9 @@ CONFIG_SUN3_82586=y
531# CONFIG_IBM_NEW_EMAC_RGMII is not set 526# CONFIG_IBM_NEW_EMAC_RGMII is not set
532# CONFIG_IBM_NEW_EMAC_TAH is not set 527# CONFIG_IBM_NEW_EMAC_TAH is not set
533# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 528# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
529# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
530# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
531# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
534# CONFIG_NETDEV_1000 is not set 532# CONFIG_NETDEV_1000 is not set
535# CONFIG_NETDEV_10000 is not set 533# CONFIG_NETDEV_10000 is not set
536 534
@@ -599,6 +597,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
599CONFIG_MOUSE_PS2_SYNAPTICS=y 597CONFIG_MOUSE_PS2_SYNAPTICS=y
600CONFIG_MOUSE_PS2_LIFEBOOK=y 598CONFIG_MOUSE_PS2_LIFEBOOK=y
601CONFIG_MOUSE_PS2_TRACKPOINT=y 599CONFIG_MOUSE_PS2_TRACKPOINT=y
600# CONFIG_MOUSE_PS2_ELANTECH is not set
602# CONFIG_MOUSE_PS2_TOUCHKIT is not set 601# CONFIG_MOUSE_PS2_TOUCHKIT is not set
603CONFIG_MOUSE_SERIAL=m 602CONFIG_MOUSE_SERIAL=m
604# CONFIG_MOUSE_VSXXXAA is not set 603# CONFIG_MOUSE_VSXXXAA is not set
@@ -655,16 +654,13 @@ CONFIG_GEN_RTC_X=y
655# CONFIG_WATCHDOG is not set 654# CONFIG_WATCHDOG is not set
656 655
657# 656#
658# Sonics Silicon Backplane
659#
660
661#
662# Multifunction device drivers 657# Multifunction device drivers
663# 658#
664# CONFIG_MFD_CORE is not set 659# CONFIG_MFD_CORE is not set
665# CONFIG_MFD_SM501 is not set 660# CONFIG_MFD_SM501 is not set
666# CONFIG_HTC_PASIC3 is not set 661# CONFIG_HTC_PASIC3 is not set
667# CONFIG_MFD_TMIO is not set 662# CONFIG_MFD_TMIO is not set
663# CONFIG_REGULATOR is not set
668 664
669# 665#
670# Multimedia devices 666# Multimedia devices
@@ -690,6 +686,7 @@ CONFIG_GEN_RTC_X=y
690CONFIG_FB=y 686CONFIG_FB=y
691# CONFIG_FIRMWARE_EDID is not set 687# CONFIG_FIRMWARE_EDID is not set
692# CONFIG_FB_DDC is not set 688# CONFIG_FB_DDC is not set
689# CONFIG_FB_BOOT_VESA_SUPPORT is not set
693# CONFIG_FB_CFB_FILLRECT is not set 690# CONFIG_FB_CFB_FILLRECT is not set
694# CONFIG_FB_CFB_COPYAREA is not set 691# CONFIG_FB_CFB_COPYAREA is not set
695# CONFIG_FB_CFB_IMAGEBLIT is not set 692# CONFIG_FB_CFB_IMAGEBLIT is not set
@@ -711,6 +708,8 @@ CONFIG_FB=y
711# CONFIG_FB_UVESA is not set 708# CONFIG_FB_UVESA is not set
712# CONFIG_FB_S1D13XXX is not set 709# CONFIG_FB_S1D13XXX is not set
713# CONFIG_FB_VIRTUAL is not set 710# CONFIG_FB_VIRTUAL is not set
711# CONFIG_FB_METRONOME is not set
712# CONFIG_FB_MB862XX is not set
714# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 713# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
715 714
716# 715#
@@ -737,6 +736,12 @@ CONFIG_HID_SUPPORT=y
737CONFIG_HID=m 736CONFIG_HID=m
738# CONFIG_HID_DEBUG is not set 737# CONFIG_HID_DEBUG is not set
739CONFIG_HIDRAW=y 738CONFIG_HIDRAW=y
739# CONFIG_HID_PID is not set
740
741#
742# Special HID drivers
743#
744CONFIG_HID_COMPAT=y
740# CONFIG_USB_SUPPORT is not set 745# CONFIG_USB_SUPPORT is not set
741# CONFIG_MMC is not set 746# CONFIG_MMC is not set
742# CONFIG_MEMSTICK is not set 747# CONFIG_MEMSTICK is not set
@@ -744,6 +749,8 @@ CONFIG_HIDRAW=y
744# CONFIG_ACCESSIBILITY is not set 749# CONFIG_ACCESSIBILITY is not set
745# CONFIG_RTC_CLASS is not set 750# CONFIG_RTC_CLASS is not set
746# CONFIG_UIO is not set 751# CONFIG_UIO is not set
752# CONFIG_STAGING is not set
753CONFIG_STAGING_EXCLUDE_BUILD=y
747 754
748# 755#
749# Character devices 756# Character devices
@@ -757,8 +764,9 @@ CONFIG_EXT2_FS=y
757# CONFIG_EXT2_FS_XIP is not set 764# CONFIG_EXT2_FS_XIP is not set
758CONFIG_EXT3_FS=y 765CONFIG_EXT3_FS=y
759# CONFIG_EXT3_FS_XATTR is not set 766# CONFIG_EXT3_FS_XATTR is not set
760# CONFIG_EXT4DEV_FS is not set 767# CONFIG_EXT4_FS is not set
761CONFIG_JBD=y 768CONFIG_JBD=y
769CONFIG_JBD2=m
762CONFIG_REISERFS_FS=m 770CONFIG_REISERFS_FS=m
763# CONFIG_REISERFS_CHECK is not set 771# CONFIG_REISERFS_CHECK is not set
764# CONFIG_REISERFS_PROC_INFO is not set 772# CONFIG_REISERFS_PROC_INFO is not set
@@ -769,6 +777,7 @@ CONFIG_JFS_FS=m
769# CONFIG_JFS_DEBUG is not set 777# CONFIG_JFS_DEBUG is not set
770# CONFIG_JFS_STATISTICS is not set 778# CONFIG_JFS_STATISTICS is not set
771# CONFIG_FS_POSIX_ACL is not set 779# CONFIG_FS_POSIX_ACL is not set
780CONFIG_FILE_LOCKING=y
772CONFIG_XFS_FS=m 781CONFIG_XFS_FS=m
773# CONFIG_XFS_QUOTA is not set 782# CONFIG_XFS_QUOTA is not set
774# CONFIG_XFS_POSIX_ACL is not set 783# CONFIG_XFS_POSIX_ACL is not set
@@ -780,6 +789,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
780# CONFIG_OCFS2_FS_STATS is not set 789# CONFIG_OCFS2_FS_STATS is not set
781# CONFIG_OCFS2_DEBUG_MASKLOG is not set 790# CONFIG_OCFS2_DEBUG_MASKLOG is not set
782# CONFIG_OCFS2_DEBUG_FS is not set 791# CONFIG_OCFS2_DEBUG_FS is not set
792# CONFIG_OCFS2_COMPAT_JBD is not set
783CONFIG_DNOTIFY=y 793CONFIG_DNOTIFY=y
784CONFIG_INOTIFY=y 794CONFIG_INOTIFY=y
785CONFIG_INOTIFY_USER=y 795CONFIG_INOTIFY_USER=y
@@ -818,6 +828,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
818CONFIG_PROC_FS=y 828CONFIG_PROC_FS=y
819CONFIG_PROC_KCORE=y 829CONFIG_PROC_KCORE=y
820CONFIG_PROC_SYSCTL=y 830CONFIG_PROC_SYSCTL=y
831CONFIG_PROC_PAGE_MONITOR=y
821CONFIG_SYSFS=y 832CONFIG_SYSFS=y
822CONFIG_TMPFS=y 833CONFIG_TMPFS=y
823# CONFIG_TMPFS_POSIX_ACL is not set 834# CONFIG_TMPFS_POSIX_ACL is not set
@@ -861,6 +872,7 @@ CONFIG_EXPORTFS=m
861CONFIG_NFS_COMMON=y 872CONFIG_NFS_COMMON=y
862CONFIG_SUNRPC=y 873CONFIG_SUNRPC=y
863CONFIG_SUNRPC_GSS=y 874CONFIG_SUNRPC_GSS=y
875# CONFIG_SUNRPC_REGISTER_V4 is not set
864CONFIG_RPCSEC_GSS_KRB5=y 876CONFIG_RPCSEC_GSS_KRB5=y
865# CONFIG_RPCSEC_GSS_SPKM3 is not set 877# CONFIG_RPCSEC_GSS_SPKM3 is not set
866CONFIG_SMB_FS=m 878CONFIG_SMB_FS=m
@@ -934,7 +946,13 @@ CONFIG_MAGIC_SYSRQ=y
934# CONFIG_DEBUG_KERNEL is not set 946# CONFIG_DEBUG_KERNEL is not set
935CONFIG_DEBUG_BUGVERBOSE=y 947CONFIG_DEBUG_BUGVERBOSE=y
936CONFIG_DEBUG_MEMORY_INIT=y 948CONFIG_DEBUG_MEMORY_INIT=y
949# CONFIG_RCU_CPU_STALL_DETECTOR is not set
937CONFIG_SYSCTL_SYSCALL_CHECK=y 950CONFIG_SYSCTL_SYSCALL_CHECK=y
951
952#
953# Tracers
954#
955# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
938# CONFIG_SAMPLES is not set 956# CONFIG_SAMPLES is not set
939 957
940# 958#
@@ -942,6 +960,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
942# 960#
943# CONFIG_KEYS is not set 961# CONFIG_KEYS is not set
944# CONFIG_SECURITY is not set 962# CONFIG_SECURITY is not set
963# CONFIG_SECURITYFS is not set
945# CONFIG_SECURITY_FILE_CAPABILITIES is not set 964# CONFIG_SECURITY_FILE_CAPABILITIES is not set
946CONFIG_XOR_BLOCKS=m 965CONFIG_XOR_BLOCKS=m
947CONFIG_ASYNC_CORE=m 966CONFIG_ASYNC_CORE=m
@@ -952,10 +971,12 @@ CONFIG_CRYPTO=y
952# 971#
953# Crypto core or helper 972# Crypto core or helper
954# 973#
974# CONFIG_CRYPTO_FIPS is not set
955CONFIG_CRYPTO_ALGAPI=y 975CONFIG_CRYPTO_ALGAPI=y
956CONFIG_CRYPTO_AEAD=m 976CONFIG_CRYPTO_AEAD=y
957CONFIG_CRYPTO_BLKCIPHER=y 977CONFIG_CRYPTO_BLKCIPHER=y
958CONFIG_CRYPTO_HASH=y 978CONFIG_CRYPTO_HASH=y
979CONFIG_CRYPTO_RNG=y
959CONFIG_CRYPTO_MANAGER=y 980CONFIG_CRYPTO_MANAGER=y
960CONFIG_CRYPTO_GF128MUL=m 981CONFIG_CRYPTO_GF128MUL=m
961CONFIG_CRYPTO_NULL=m 982CONFIG_CRYPTO_NULL=m
@@ -1029,14 +1050,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1029# 1050#
1030CONFIG_CRYPTO_DEFLATE=m 1051CONFIG_CRYPTO_DEFLATE=m
1031CONFIG_CRYPTO_LZO=m 1052CONFIG_CRYPTO_LZO=m
1053
1054#
1055# Random Number Generation
1056#
1057# CONFIG_CRYPTO_ANSI_CPRNG is not set
1032# CONFIG_CRYPTO_HW is not set 1058# CONFIG_CRYPTO_HW is not set
1033 1059
1034# 1060#
1035# Library routines 1061# Library routines
1036# 1062#
1037CONFIG_BITREVERSE=y 1063CONFIG_BITREVERSE=y
1038# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1039# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1040CONFIG_CRC_CCITT=m 1064CONFIG_CRC_CCITT=m
1041CONFIG_CRC16=m 1065CONFIG_CRC16=m
1042CONFIG_CRC_T10DIF=y 1066CONFIG_CRC_T10DIF=y
diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_defconfig
index 04b4363a7050..4d8a1e84e39f 100644
--- a/arch/m68k/configs/sun3x_defconfig
+++ b/arch/m68k/configs/sun3x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc6 3# Linux kernel version: 2.6.28-rc7
4# Wed Sep 10 09:02:12 2008 4# Tue Dec 2 20:27:54 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -14,7 +14,6 @@ CONFIG_TIME_LOW_RES=y
14CONFIG_GENERIC_IOMAP=y 14CONFIG_GENERIC_IOMAP=y
15CONFIG_NO_IOPORT=y 15CONFIG_NO_IOPORT=y
16# CONFIG_NO_DMA is not set 16# CONFIG_NO_DMA is not set
17CONFIG_ARCH_SUPPORTS_AOUT=y
18CONFIG_HZ=100 17CONFIG_HZ=100
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 19
@@ -67,22 +66,13 @@ CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y 66CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y 67CONFIG_EVENTFD=y
69CONFIG_SHMEM=y 68CONFIG_SHMEM=y
69CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y 71CONFIG_SLAB=y
72# CONFIG_SLUB is not set 72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 73# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
87CONFIG_SLABINFO=y 77CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
@@ -115,11 +105,11 @@ CONFIG_DEFAULT_AS=y
115# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
116CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
117CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set
118 109
119# 110#
120# Platform dependent setup 111# Platform dependent setup
121# 112#
122# CONFIG_SUN3 is not set
123# CONFIG_AMIGA is not set 113# CONFIG_AMIGA is not set
124# CONFIG_ATARI is not set 114# CONFIG_ATARI is not set
125# CONFIG_MAC is not set 115# CONFIG_MAC is not set
@@ -148,19 +138,21 @@ CONFIG_DISCONTIGMEM_MANUAL=y
148CONFIG_DISCONTIGMEM=y 138CONFIG_DISCONTIGMEM=y
149CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
150CONFIG_NEED_MULTIPLE_NODES=y 140CONFIG_NEED_MULTIPLE_NODES=y
151# CONFIG_SPARSEMEM_STATIC is not set
152# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
153CONFIG_PAGEFLAGS_EXTENDED=y 141CONFIG_PAGEFLAGS_EXTENDED=y
154CONFIG_SPLIT_PTLOCK_CPUS=4 142CONFIG_SPLIT_PTLOCK_CPUS=4
155# CONFIG_RESOURCES_64BIT is not set 143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set
156CONFIG_ZONE_DMA_FLAG=1 145CONFIG_ZONE_DMA_FLAG=1
157CONFIG_BOUNCE=y 146CONFIG_BOUNCE=y
158CONFIG_VIRT_TO_BUS=y 147CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y
159 149
160# 150#
161# General setup 151# General setup
162# 152#
163CONFIG_BINFMT_ELF=y 153CONFIG_BINFMT_ELF=y
154# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
155CONFIG_HAVE_AOUT=y
164CONFIG_BINFMT_AOUT=m 156CONFIG_BINFMT_AOUT=m
165CONFIG_BINFMT_MISC=m 157CONFIG_BINFMT_MISC=m
166CONFIG_PROC_HARDWARE=y 158CONFIG_PROC_HARDWARE=y
@@ -209,7 +201,6 @@ CONFIG_INET_TCP_DIAG=m
209CONFIG_TCP_CONG_CUBIC=y 201CONFIG_TCP_CONG_CUBIC=y
210CONFIG_DEFAULT_TCP_CONG="cubic" 202CONFIG_DEFAULT_TCP_CONG="cubic"
211# CONFIG_TCP_MD5SIG is not set 203# CONFIG_TCP_MD5SIG is not set
212# CONFIG_IP_VS is not set
213CONFIG_IPV6=m 204CONFIG_IPV6=m
214CONFIG_IPV6_PRIVACY=y 205CONFIG_IPV6_PRIVACY=y
215CONFIG_IPV6_ROUTER_PREF=y 206CONFIG_IPV6_ROUTER_PREF=y
@@ -259,13 +250,14 @@ CONFIG_NF_CONNTRACK_SANE=m
259CONFIG_NF_CONNTRACK_SIP=m 250CONFIG_NF_CONNTRACK_SIP=m
260CONFIG_NF_CONNTRACK_TFTP=m 251CONFIG_NF_CONNTRACK_TFTP=m
261# CONFIG_NF_CT_NETLINK is not set 252# CONFIG_NF_CT_NETLINK is not set
253# CONFIG_NETFILTER_TPROXY is not set
262CONFIG_NETFILTER_XTABLES=m 254CONFIG_NETFILTER_XTABLES=m
263CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 255CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
264CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 256CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
265CONFIG_NETFILTER_XT_TARGET_DSCP=m 257CONFIG_NETFILTER_XT_TARGET_DSCP=m
266CONFIG_NETFILTER_XT_TARGET_MARK=m 258CONFIG_NETFILTER_XT_TARGET_MARK=m
267CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
268CONFIG_NETFILTER_XT_TARGET_NFLOG=m 259CONFIG_NETFILTER_XT_TARGET_NFLOG=m
260CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
269CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 261CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
270CONFIG_NETFILTER_XT_TARGET_RATEEST=m 262CONFIG_NETFILTER_XT_TARGET_RATEEST=m
271CONFIG_NETFILTER_XT_TARGET_TRACE=m 263CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -279,19 +271,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
279CONFIG_NETFILTER_XT_MATCH_DCCP=m 271CONFIG_NETFILTER_XT_MATCH_DCCP=m
280CONFIG_NETFILTER_XT_MATCH_DSCP=m 272CONFIG_NETFILTER_XT_MATCH_DSCP=m
281CONFIG_NETFILTER_XT_MATCH_ESP=m 273CONFIG_NETFILTER_XT_MATCH_ESP=m
274CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
282CONFIG_NETFILTER_XT_MATCH_HELPER=m 275CONFIG_NETFILTER_XT_MATCH_HELPER=m
283CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 276CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
284CONFIG_NETFILTER_XT_MATCH_LENGTH=m 277CONFIG_NETFILTER_XT_MATCH_LENGTH=m
285CONFIG_NETFILTER_XT_MATCH_LIMIT=m 278CONFIG_NETFILTER_XT_MATCH_LIMIT=m
286CONFIG_NETFILTER_XT_MATCH_MAC=m 279CONFIG_NETFILTER_XT_MATCH_MAC=m
287CONFIG_NETFILTER_XT_MATCH_MARK=m 280CONFIG_NETFILTER_XT_MATCH_MARK=m
281CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
288CONFIG_NETFILTER_XT_MATCH_OWNER=m 282CONFIG_NETFILTER_XT_MATCH_OWNER=m
289CONFIG_NETFILTER_XT_MATCH_POLICY=m 283CONFIG_NETFILTER_XT_MATCH_POLICY=m
290CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
291CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 284CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
292CONFIG_NETFILTER_XT_MATCH_QUOTA=m 285CONFIG_NETFILTER_XT_MATCH_QUOTA=m
293CONFIG_NETFILTER_XT_MATCH_RATEEST=m 286CONFIG_NETFILTER_XT_MATCH_RATEEST=m
294CONFIG_NETFILTER_XT_MATCH_REALM=m 287CONFIG_NETFILTER_XT_MATCH_REALM=m
288CONFIG_NETFILTER_XT_MATCH_RECENT=m
289# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
295CONFIG_NETFILTER_XT_MATCH_SCTP=m 290CONFIG_NETFILTER_XT_MATCH_SCTP=m
296CONFIG_NETFILTER_XT_MATCH_STATE=m 291CONFIG_NETFILTER_XT_MATCH_STATE=m
297CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 292CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -299,20 +294,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
299CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 294CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
300CONFIG_NETFILTER_XT_MATCH_TIME=m 295CONFIG_NETFILTER_XT_MATCH_TIME=m
301CONFIG_NETFILTER_XT_MATCH_U32=m 296CONFIG_NETFILTER_XT_MATCH_U32=m
302CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 297# CONFIG_IP_VS is not set
303 298
304# 299#
305# IP: Netfilter Configuration 300# IP: Netfilter Configuration
306# 301#
302CONFIG_NF_DEFRAG_IPV4=m
307CONFIG_NF_CONNTRACK_IPV4=m 303CONFIG_NF_CONNTRACK_IPV4=m
308CONFIG_NF_CONNTRACK_PROC_COMPAT=y 304CONFIG_NF_CONNTRACK_PROC_COMPAT=y
309CONFIG_IP_NF_QUEUE=m 305CONFIG_IP_NF_QUEUE=m
310CONFIG_IP_NF_IPTABLES=m 306CONFIG_IP_NF_IPTABLES=m
311CONFIG_IP_NF_MATCH_RECENT=m 307CONFIG_IP_NF_MATCH_ADDRTYPE=m
312CONFIG_IP_NF_MATCH_ECN=m
313CONFIG_IP_NF_MATCH_AH=m 308CONFIG_IP_NF_MATCH_AH=m
309CONFIG_IP_NF_MATCH_ECN=m
314CONFIG_IP_NF_MATCH_TTL=m 310CONFIG_IP_NF_MATCH_TTL=m
315CONFIG_IP_NF_MATCH_ADDRTYPE=m
316CONFIG_IP_NF_FILTER=m 311CONFIG_IP_NF_FILTER=m
317CONFIG_IP_NF_TARGET_REJECT=m 312CONFIG_IP_NF_TARGET_REJECT=m
318CONFIG_IP_NF_TARGET_LOG=m 313CONFIG_IP_NF_TARGET_LOG=m
@@ -320,8 +315,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
320CONFIG_NF_NAT=m 315CONFIG_NF_NAT=m
321CONFIG_NF_NAT_NEEDED=y 316CONFIG_NF_NAT_NEEDED=y
322CONFIG_IP_NF_TARGET_MASQUERADE=m 317CONFIG_IP_NF_TARGET_MASQUERADE=m
323CONFIG_IP_NF_TARGET_REDIRECT=m
324CONFIG_IP_NF_TARGET_NETMAP=m 318CONFIG_IP_NF_TARGET_NETMAP=m
319CONFIG_IP_NF_TARGET_REDIRECT=m
325CONFIG_NF_NAT_SNMP_BASIC=m 320CONFIG_NF_NAT_SNMP_BASIC=m
326CONFIG_NF_NAT_PROTO_GRE=m 321CONFIG_NF_NAT_PROTO_GRE=m
327CONFIG_NF_NAT_PROTO_UDPLITE=m 322CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -334,9 +329,9 @@ CONFIG_NF_NAT_PPTP=m
334CONFIG_NF_NAT_H323=m 329CONFIG_NF_NAT_H323=m
335CONFIG_NF_NAT_SIP=m 330CONFIG_NF_NAT_SIP=m
336CONFIG_IP_NF_MANGLE=m 331CONFIG_IP_NF_MANGLE=m
332CONFIG_IP_NF_TARGET_CLUSTERIP=m
337CONFIG_IP_NF_TARGET_ECN=m 333CONFIG_IP_NF_TARGET_ECN=m
338CONFIG_IP_NF_TARGET_TTL=m 334CONFIG_IP_NF_TARGET_TTL=m
339CONFIG_IP_NF_TARGET_CLUSTERIP=m
340CONFIG_IP_NF_RAW=m 335CONFIG_IP_NF_RAW=m
341CONFIG_IP_NF_ARPTABLES=m 336CONFIG_IP_NF_ARPTABLES=m
342CONFIG_IP_NF_ARPFILTER=m 337CONFIG_IP_NF_ARPFILTER=m
@@ -348,16 +343,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
348CONFIG_NF_CONNTRACK_IPV6=m 343CONFIG_NF_CONNTRACK_IPV6=m
349CONFIG_IP6_NF_QUEUE=m 344CONFIG_IP6_NF_QUEUE=m
350CONFIG_IP6_NF_IPTABLES=m 345CONFIG_IP6_NF_IPTABLES=m
351CONFIG_IP6_NF_MATCH_RT=m 346CONFIG_IP6_NF_MATCH_AH=m
352CONFIG_IP6_NF_MATCH_OPTS=m 347CONFIG_IP6_NF_MATCH_EUI64=m
353CONFIG_IP6_NF_MATCH_FRAG=m 348CONFIG_IP6_NF_MATCH_FRAG=m
349CONFIG_IP6_NF_MATCH_OPTS=m
354CONFIG_IP6_NF_MATCH_HL=m 350CONFIG_IP6_NF_MATCH_HL=m
355CONFIG_IP6_NF_MATCH_IPV6HEADER=m 351CONFIG_IP6_NF_MATCH_IPV6HEADER=m
356CONFIG_IP6_NF_MATCH_AH=m
357CONFIG_IP6_NF_MATCH_MH=m 352CONFIG_IP6_NF_MATCH_MH=m
358CONFIG_IP6_NF_MATCH_EUI64=m 353CONFIG_IP6_NF_MATCH_RT=m
359CONFIG_IP6_NF_FILTER=m
360CONFIG_IP6_NF_TARGET_LOG=m 354CONFIG_IP6_NF_TARGET_LOG=m
355CONFIG_IP6_NF_FILTER=m
361CONFIG_IP6_NF_TARGET_REJECT=m 356CONFIG_IP6_NF_TARGET_REJECT=m
362CONFIG_IP6_NF_MANGLE=m 357CONFIG_IP6_NF_MANGLE=m
363CONFIG_IP6_NF_TARGET_HL=m 358CONFIG_IP6_NF_TARGET_HL=m
@@ -384,6 +379,7 @@ CONFIG_SCTP_HMAC_MD5=y
384# CONFIG_TIPC is not set 379# CONFIG_TIPC is not set
385# CONFIG_ATM is not set 380# CONFIG_ATM is not set
386# CONFIG_BRIDGE is not set 381# CONFIG_BRIDGE is not set
382# CONFIG_NET_DSA is not set
387# CONFIG_VLAN_8021Q is not set 383# CONFIG_VLAN_8021Q is not set
388# CONFIG_DECNET is not set 384# CONFIG_DECNET is not set
389CONFIG_LLC=m 385CONFIG_LLC=m
@@ -407,19 +403,8 @@ CONFIG_NET_CLS_ROUTE=y
407# CONFIG_IRDA is not set 403# CONFIG_IRDA is not set
408# CONFIG_BT is not set 404# CONFIG_BT is not set
409# CONFIG_AF_RXRPC is not set 405# CONFIG_AF_RXRPC is not set
410 406# CONFIG_PHONET is not set
411# 407# CONFIG_WIRELESS is not set
412# Wireless
413#
414# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y
416# CONFIG_WIRELESS_EXT_SYSFS is not set
417# CONFIG_MAC80211 is not set
418CONFIG_IEEE80211=m
419# CONFIG_IEEE80211_DEBUG is not set
420CONFIG_IEEE80211_CRYPT_WEP=m
421CONFIG_IEEE80211_CRYPT_CCMP=m
422CONFIG_IEEE80211_CRYPT_TKIP=m
423# CONFIG_RFKILL is not set 408# CONFIG_RFKILL is not set
424# CONFIG_NET_9P is not set 409# CONFIG_NET_9P is not set
425 410
@@ -457,6 +442,7 @@ CONFIG_ATA_OVER_ETH=m
457CONFIG_MISC_DEVICES=y 442CONFIG_MISC_DEVICES=y
458# CONFIG_EEPROM_93CX6 is not set 443# CONFIG_EEPROM_93CX6 is not set
459# CONFIG_ENCLOSURE_SERVICES is not set 444# CONFIG_ENCLOSURE_SERVICES is not set
445# CONFIG_C2PORT is not set
460CONFIG_HAVE_IDE=y 446CONFIG_HAVE_IDE=y
461# CONFIG_IDE is not set 447# CONFIG_IDE is not set
462 448
@@ -541,6 +527,9 @@ CONFIG_SUN3LANCE=y
541# CONFIG_IBM_NEW_EMAC_RGMII is not set 527# CONFIG_IBM_NEW_EMAC_RGMII is not set
542# CONFIG_IBM_NEW_EMAC_TAH is not set 528# CONFIG_IBM_NEW_EMAC_TAH is not set
543# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 529# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
530# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
531# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
532# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
544# CONFIG_B44 is not set 533# CONFIG_B44 is not set
545# CONFIG_NETDEV_1000 is not set 534# CONFIG_NETDEV_1000 is not set
546# CONFIG_NETDEV_10000 is not set 535# CONFIG_NETDEV_10000 is not set
@@ -610,6 +599,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
610CONFIG_MOUSE_PS2_SYNAPTICS=y 599CONFIG_MOUSE_PS2_SYNAPTICS=y
611CONFIG_MOUSE_PS2_LIFEBOOK=y 600CONFIG_MOUSE_PS2_LIFEBOOK=y
612CONFIG_MOUSE_PS2_TRACKPOINT=y 601CONFIG_MOUSE_PS2_TRACKPOINT=y
602# CONFIG_MOUSE_PS2_ELANTECH is not set
613# CONFIG_MOUSE_PS2_TOUCHKIT is not set 603# CONFIG_MOUSE_PS2_TOUCHKIT is not set
614CONFIG_MOUSE_SERIAL=m 604CONFIG_MOUSE_SERIAL=m
615# CONFIG_MOUSE_VSXXXAA is not set 605# CONFIG_MOUSE_VSXXXAA is not set
@@ -664,11 +654,11 @@ CONFIG_GEN_RTC_X=y
664# CONFIG_THERMAL is not set 654# CONFIG_THERMAL is not set
665# CONFIG_THERMAL_HWMON is not set 655# CONFIG_THERMAL_HWMON is not set
666# CONFIG_WATCHDOG is not set 656# CONFIG_WATCHDOG is not set
657CONFIG_SSB_POSSIBLE=y
667 658
668# 659#
669# Sonics Silicon Backplane 660# Sonics Silicon Backplane
670# 661#
671CONFIG_SSB_POSSIBLE=y
672# CONFIG_SSB is not set 662# CONFIG_SSB is not set
673 663
674# 664#
@@ -678,6 +668,7 @@ CONFIG_SSB_POSSIBLE=y
678# CONFIG_MFD_SM501 is not set 668# CONFIG_MFD_SM501 is not set
679# CONFIG_HTC_PASIC3 is not set 669# CONFIG_HTC_PASIC3 is not set
680# CONFIG_MFD_TMIO is not set 670# CONFIG_MFD_TMIO is not set
671# CONFIG_REGULATOR is not set
681 672
682# 673#
683# Multimedia devices 674# Multimedia devices
@@ -703,6 +694,7 @@ CONFIG_SSB_POSSIBLE=y
703CONFIG_FB=y 694CONFIG_FB=y
704# CONFIG_FIRMWARE_EDID is not set 695# CONFIG_FIRMWARE_EDID is not set
705# CONFIG_FB_DDC is not set 696# CONFIG_FB_DDC is not set
697# CONFIG_FB_BOOT_VESA_SUPPORT is not set
706# CONFIG_FB_CFB_FILLRECT is not set 698# CONFIG_FB_CFB_FILLRECT is not set
707# CONFIG_FB_CFB_COPYAREA is not set 699# CONFIG_FB_CFB_COPYAREA is not set
708# CONFIG_FB_CFB_IMAGEBLIT is not set 700# CONFIG_FB_CFB_IMAGEBLIT is not set
@@ -724,6 +716,8 @@ CONFIG_FB=y
724# CONFIG_FB_UVESA is not set 716# CONFIG_FB_UVESA is not set
725# CONFIG_FB_S1D13XXX is not set 717# CONFIG_FB_S1D13XXX is not set
726# CONFIG_FB_VIRTUAL is not set 718# CONFIG_FB_VIRTUAL is not set
719# CONFIG_FB_METRONOME is not set
720# CONFIG_FB_MB862XX is not set
727# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 721# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
728 722
729# 723#
@@ -750,6 +744,12 @@ CONFIG_HID_SUPPORT=y
750CONFIG_HID=m 744CONFIG_HID=m
751# CONFIG_HID_DEBUG is not set 745# CONFIG_HID_DEBUG is not set
752CONFIG_HIDRAW=y 746CONFIG_HIDRAW=y
747# CONFIG_HID_PID is not set
748
749#
750# Special HID drivers
751#
752CONFIG_HID_COMPAT=y
753# CONFIG_USB_SUPPORT is not set 753# CONFIG_USB_SUPPORT is not set
754# CONFIG_MMC is not set 754# CONFIG_MMC is not set
755# CONFIG_MEMSTICK is not set 755# CONFIG_MEMSTICK is not set
@@ -758,6 +758,8 @@ CONFIG_HIDRAW=y
758# CONFIG_RTC_CLASS is not set 758# CONFIG_RTC_CLASS is not set
759# CONFIG_DMADEVICES is not set 759# CONFIG_DMADEVICES is not set
760# CONFIG_UIO is not set 760# CONFIG_UIO is not set
761# CONFIG_STAGING is not set
762CONFIG_STAGING_EXCLUDE_BUILD=y
761 763
762# 764#
763# Character devices 765# Character devices
@@ -771,8 +773,9 @@ CONFIG_EXT2_FS=y
771# CONFIG_EXT2_FS_XIP is not set 773# CONFIG_EXT2_FS_XIP is not set
772CONFIG_EXT3_FS=y 774CONFIG_EXT3_FS=y
773# CONFIG_EXT3_FS_XATTR is not set 775# CONFIG_EXT3_FS_XATTR is not set
774# CONFIG_EXT4DEV_FS is not set 776# CONFIG_EXT4_FS is not set
775CONFIG_JBD=y 777CONFIG_JBD=y
778CONFIG_JBD2=m
776CONFIG_REISERFS_FS=m 779CONFIG_REISERFS_FS=m
777# CONFIG_REISERFS_CHECK is not set 780# CONFIG_REISERFS_CHECK is not set
778# CONFIG_REISERFS_PROC_INFO is not set 781# CONFIG_REISERFS_PROC_INFO is not set
@@ -783,6 +786,7 @@ CONFIG_JFS_FS=m
783# CONFIG_JFS_DEBUG is not set 786# CONFIG_JFS_DEBUG is not set
784# CONFIG_JFS_STATISTICS is not set 787# CONFIG_JFS_STATISTICS is not set
785# CONFIG_FS_POSIX_ACL is not set 788# CONFIG_FS_POSIX_ACL is not set
789CONFIG_FILE_LOCKING=y
786CONFIG_XFS_FS=m 790CONFIG_XFS_FS=m
787# CONFIG_XFS_QUOTA is not set 791# CONFIG_XFS_QUOTA is not set
788# CONFIG_XFS_POSIX_ACL is not set 792# CONFIG_XFS_POSIX_ACL is not set
@@ -794,6 +798,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
794# CONFIG_OCFS2_FS_STATS is not set 798# CONFIG_OCFS2_FS_STATS is not set
795# CONFIG_OCFS2_DEBUG_MASKLOG is not set 799# CONFIG_OCFS2_DEBUG_MASKLOG is not set
796# CONFIG_OCFS2_DEBUG_FS is not set 800# CONFIG_OCFS2_DEBUG_FS is not set
801# CONFIG_OCFS2_COMPAT_JBD is not set
797CONFIG_DNOTIFY=y 802CONFIG_DNOTIFY=y
798CONFIG_INOTIFY=y 803CONFIG_INOTIFY=y
799CONFIG_INOTIFY_USER=y 804CONFIG_INOTIFY_USER=y
@@ -832,6 +837,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
832CONFIG_PROC_FS=y 837CONFIG_PROC_FS=y
833CONFIG_PROC_KCORE=y 838CONFIG_PROC_KCORE=y
834CONFIG_PROC_SYSCTL=y 839CONFIG_PROC_SYSCTL=y
840CONFIG_PROC_PAGE_MONITOR=y
835CONFIG_SYSFS=y 841CONFIG_SYSFS=y
836CONFIG_TMPFS=y 842CONFIG_TMPFS=y
837# CONFIG_TMPFS_POSIX_ACL is not set 843# CONFIG_TMPFS_POSIX_ACL is not set
@@ -875,6 +881,7 @@ CONFIG_EXPORTFS=m
875CONFIG_NFS_COMMON=y 881CONFIG_NFS_COMMON=y
876CONFIG_SUNRPC=y 882CONFIG_SUNRPC=y
877CONFIG_SUNRPC_GSS=y 883CONFIG_SUNRPC_GSS=y
884# CONFIG_SUNRPC_REGISTER_V4 is not set
878CONFIG_RPCSEC_GSS_KRB5=y 885CONFIG_RPCSEC_GSS_KRB5=y
879# CONFIG_RPCSEC_GSS_SPKM3 is not set 886# CONFIG_RPCSEC_GSS_SPKM3 is not set
880CONFIG_SMB_FS=m 887CONFIG_SMB_FS=m
@@ -948,7 +955,13 @@ CONFIG_MAGIC_SYSRQ=y
948# CONFIG_DEBUG_KERNEL is not set 955# CONFIG_DEBUG_KERNEL is not set
949CONFIG_DEBUG_BUGVERBOSE=y 956CONFIG_DEBUG_BUGVERBOSE=y
950CONFIG_DEBUG_MEMORY_INIT=y 957CONFIG_DEBUG_MEMORY_INIT=y
958# CONFIG_RCU_CPU_STALL_DETECTOR is not set
951CONFIG_SYSCTL_SYSCALL_CHECK=y 959CONFIG_SYSCTL_SYSCALL_CHECK=y
960
961#
962# Tracers
963#
964# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
952# CONFIG_SAMPLES is not set 965# CONFIG_SAMPLES is not set
953 966
954# 967#
@@ -956,6 +969,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
956# 969#
957# CONFIG_KEYS is not set 970# CONFIG_KEYS is not set
958# CONFIG_SECURITY is not set 971# CONFIG_SECURITY is not set
972# CONFIG_SECURITYFS is not set
959# CONFIG_SECURITY_FILE_CAPABILITIES is not set 973# CONFIG_SECURITY_FILE_CAPABILITIES is not set
960CONFIG_XOR_BLOCKS=m 974CONFIG_XOR_BLOCKS=m
961CONFIG_ASYNC_CORE=m 975CONFIG_ASYNC_CORE=m
@@ -966,10 +980,12 @@ CONFIG_CRYPTO=y
966# 980#
967# Crypto core or helper 981# Crypto core or helper
968# 982#
983# CONFIG_CRYPTO_FIPS is not set
969CONFIG_CRYPTO_ALGAPI=y 984CONFIG_CRYPTO_ALGAPI=y
970CONFIG_CRYPTO_AEAD=m 985CONFIG_CRYPTO_AEAD=y
971CONFIG_CRYPTO_BLKCIPHER=y 986CONFIG_CRYPTO_BLKCIPHER=y
972CONFIG_CRYPTO_HASH=y 987CONFIG_CRYPTO_HASH=y
988CONFIG_CRYPTO_RNG=y
973CONFIG_CRYPTO_MANAGER=y 989CONFIG_CRYPTO_MANAGER=y
974CONFIG_CRYPTO_GF128MUL=m 990CONFIG_CRYPTO_GF128MUL=m
975CONFIG_CRYPTO_NULL=m 991CONFIG_CRYPTO_NULL=m
@@ -1043,14 +1059,17 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1043# 1059#
1044CONFIG_CRYPTO_DEFLATE=m 1060CONFIG_CRYPTO_DEFLATE=m
1045CONFIG_CRYPTO_LZO=m 1061CONFIG_CRYPTO_LZO=m
1062
1063#
1064# Random Number Generation
1065#
1066# CONFIG_CRYPTO_ANSI_CPRNG is not set
1046# CONFIG_CRYPTO_HW is not set 1067# CONFIG_CRYPTO_HW is not set
1047 1068
1048# 1069#
1049# Library routines 1070# Library routines
1050# 1071#
1051CONFIG_BITREVERSE=y 1072CONFIG_BITREVERSE=y
1052# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1053# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1054CONFIG_CRC_CCITT=m 1073CONFIG_CRC_CCITT=m
1055CONFIG_CRC16=m 1074CONFIG_CRC16=m
1056CONFIG_CRC_T10DIF=y 1075CONFIG_CRC_T10DIF=y
diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug
index 765c8e287d2b..364ca8938807 100644
--- a/arch/mips/Kconfig.debug
+++ b/arch/mips/Kconfig.debug
@@ -48,7 +48,7 @@ config RUNTIME_DEBUG
48 help 48 help
49 If you say Y here, some debugging macros will do run-time checking. 49 If you say Y here, some debugging macros will do run-time checking.
50 If you say N here, those macros will mostly turn to no-ops. See 50 If you say N here, those macros will mostly turn to no-ops. See
51 include/asm-mips/debug.h for debuging macros. 51 arch/mips/include/asm/debug.h for debugging macros.
52 If unsure, say N. 52 If unsure, say N.
53 53
54endmenu 54endmenu
diff --git a/arch/mips/configs/fulong_defconfig b/arch/mips/configs/fulong_defconfig
index 620980081a30..b6698a232ae9 100644
--- a/arch/mips/configs/fulong_defconfig
+++ b/arch/mips/configs/fulong_defconfig
@@ -1,63 +1,78 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc4 3# Linux kernel version: 2.6.28-rc6
4# Mon Jun 11 00:23:51 2007 4# Fri Nov 28 17:53:48 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_LEMOTE_FULONG=y
12# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
13# CONFIG_BASLER_EXCITE is not set 12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
16# CONFIG_MACH_JAZZ is not set 16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
18CONFIG_LEMOTE_FULONG=y
17# CONFIG_MIPS_MALTA is not set 19# CONFIG_MIPS_MALTA is not set
18# CONFIG_WR_PPMC is not set
19# CONFIG_MIPS_SIM is not set 20# CONFIG_MIPS_SIM is not set
21# CONFIG_MACH_EMMA is not set
22# CONFIG_MACH_VR41XX is not set
23# CONFIG_NXP_STB220 is not set
24# CONFIG_NXP_STB225 is not set
20# CONFIG_PNX8550_JBS is not set 25# CONFIG_PNX8550_JBS is not set
21# CONFIG_PNX8550_STB810 is not set 26# CONFIG_PNX8550_STB810 is not set
22# CONFIG_MACH_VR41XX is not set 27# CONFIG_PMC_MSP is not set
23# CONFIG_PMC_YOSEMITE is not set 28# CONFIG_PMC_YOSEMITE is not set
24# CONFIG_MARKEINS is not set
25# CONFIG_SGI_IP22 is not set 29# CONFIG_SGI_IP22 is not set
26# CONFIG_SGI_IP27 is not set 30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
27# CONFIG_SGI_IP32 is not set 32# CONFIG_SGI_IP32 is not set
28# CONFIG_SIBYTE_BIGSUR is not set
29# CONFIG_SIBYTE_SWARM is not set
30# CONFIG_SIBYTE_SENTOSA is not set
31# CONFIG_SIBYTE_RHONE is not set
32# CONFIG_SIBYTE_CARMEL is not set
33# CONFIG_SIBYTE_LITTLESUR is not set
34# CONFIG_SIBYTE_CRHINE is not set 33# CONFIG_SIBYTE_CRHINE is not set
34# CONFIG_SIBYTE_CARMEL is not set
35# CONFIG_SIBYTE_CRHONE is not set 35# CONFIG_SIBYTE_CRHONE is not set
36# CONFIG_SIBYTE_RHONE is not set
37# CONFIG_SIBYTE_SWARM is not set
38# CONFIG_SIBYTE_LITTLESUR is not set
39# CONFIG_SIBYTE_SENTOSA is not set
40# CONFIG_SIBYTE_BIGSUR is not set
36# CONFIG_SNI_RM is not set 41# CONFIG_SNI_RM is not set
37# CONFIG_TOSHIBA_JMR3927 is not set 42# CONFIG_MACH_TX39XX is not set
38# CONFIG_TOSHIBA_RBTX4927 is not set 43# CONFIG_MACH_TX49XX is not set
39# CONFIG_TOSHIBA_RBTX4938 is not set 44# CONFIG_MIKROTIK_RB532 is not set
45# CONFIG_WR_PPMC is not set
40CONFIG_RWSEM_GENERIC_SPINLOCK=y 46CONFIG_RWSEM_GENERIC_SPINLOCK=y
41# CONFIG_ARCH_HAS_ILOG2_U32 is not set 47# CONFIG_ARCH_HAS_ILOG2_U32 is not set
42# CONFIG_ARCH_HAS_ILOG2_U64 is not set 48# CONFIG_ARCH_HAS_ILOG2_U64 is not set
49CONFIG_ARCH_SUPPORTS_OPROFILE=y
43CONFIG_GENERIC_FIND_NEXT_BIT=y 50CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_HWEIGHT=y 51CONFIG_GENERIC_HWEIGHT=y
45CONFIG_GENERIC_CALIBRATE_DELAY=y 52CONFIG_GENERIC_CALIBRATE_DELAY=y
53CONFIG_GENERIC_CLOCKEVENTS=y
46CONFIG_GENERIC_TIME=y 54CONFIG_GENERIC_TIME=y
55CONFIG_GENERIC_CMOS_UPDATE=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 56CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
48CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 57CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
58CONFIG_CEVT_R4K=y
59CONFIG_CSRC_R4K=y
49CONFIG_DMA_NONCOHERENT=y 60CONFIG_DMA_NONCOHERENT=y
50CONFIG_DMA_NEED_PCI_MAP_STATE=y 61CONFIG_DMA_NEED_PCI_MAP_STATE=y
51CONFIG_EARLY_PRINTK=y 62CONFIG_EARLY_PRINTK=y
52CONFIG_SYS_HAS_EARLY_PRINTK=y 63CONFIG_SYS_HAS_EARLY_PRINTK=y
64# CONFIG_HOTPLUG_CPU is not set
53CONFIG_I8259=y 65CONFIG_I8259=y
54# CONFIG_NO_IOPORT is not set 66# CONFIG_NO_IOPORT is not set
67CONFIG_GENERIC_ISA_DMA=y
68CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y
55# CONFIG_CPU_BIG_ENDIAN is not set 69# CONFIG_CPU_BIG_ENDIAN is not set
56CONFIG_CPU_LITTLE_ENDIAN=y 70CONFIG_CPU_LITTLE_ENDIAN=y
57CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 71CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
58CONFIG_IRQ_CPU=y 72CONFIG_IRQ_CPU=y
59CONFIG_BOOT_ELF32=y 73CONFIG_BOOT_ELF32=y
60CONFIG_MIPS_L1_CACHE_SHIFT=5 74CONFIG_MIPS_L1_CACHE_SHIFT=5
75CONFIG_HAVE_STD_PC_SERIAL_PORT=y
61 76
62# 77#
63# CPU selection 78# CPU selection
@@ -75,6 +90,7 @@ CONFIG_CPU_LOONGSON2=y
75# CONFIG_CPU_TX49XX is not set 90# CONFIG_CPU_TX49XX is not set
76# CONFIG_CPU_R5000 is not set 91# CONFIG_CPU_R5000 is not set
77# CONFIG_CPU_R5432 is not set 92# CONFIG_CPU_R5432 is not set
93# CONFIG_CPU_R5500 is not set
78# CONFIG_CPU_R6000 is not set 94# CONFIG_CPU_R6000 is not set
79# CONFIG_CPU_NEVADA is not set 95# CONFIG_CPU_NEVADA is not set
80# CONFIG_CPU_R8000 is not set 96# CONFIG_CPU_R8000 is not set
@@ -101,7 +117,6 @@ CONFIG_BOARD_SCACHE=y
101CONFIG_MIPS_MT_DISABLED=y 117CONFIG_MIPS_MT_DISABLED=y
102# CONFIG_MIPS_MT_SMP is not set 118# CONFIG_MIPS_MT_SMP is not set
103# CONFIG_MIPS_MT_SMTC is not set 119# CONFIG_MIPS_MT_SMTC is not set
104# CONFIG_MIPS_VPE_LOADER is not set
105CONFIG_CPU_HAS_WB=y 120CONFIG_CPU_HAS_WB=y
106CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
107CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
@@ -109,6 +124,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
109CONFIG_CPU_SUPPORTS_HIGHMEM=y 124CONFIG_CPU_SUPPORTS_HIGHMEM=y
110CONFIG_SYS_SUPPORTS_HIGHMEM=y 125CONFIG_SYS_SUPPORTS_HIGHMEM=y
111CONFIG_ARCH_FLATMEM_ENABLE=y 126CONFIG_ARCH_FLATMEM_ENABLE=y
127CONFIG_ARCH_POPULATES_NODE_MAP=y
112CONFIG_ARCH_SPARSEMEM_ENABLE=y 128CONFIG_ARCH_SPARSEMEM_ENABLE=y
113CONFIG_SELECT_MEMORY_MODEL=y 129CONFIG_SELECT_MEMORY_MODEL=y
114CONFIG_FLATMEM_MANUAL=y 130CONFIG_FLATMEM_MANUAL=y
@@ -117,9 +133,17 @@ CONFIG_FLATMEM_MANUAL=y
117CONFIG_FLATMEM=y 133CONFIG_FLATMEM=y
118CONFIG_FLAT_NODE_MEM_MAP=y 134CONFIG_FLAT_NODE_MEM_MAP=y
119CONFIG_SPARSEMEM_STATIC=y 135CONFIG_SPARSEMEM_STATIC=y
136CONFIG_PAGEFLAGS_EXTENDED=y
120CONFIG_SPLIT_PTLOCK_CPUS=4 137CONFIG_SPLIT_PTLOCK_CPUS=4
121CONFIG_RESOURCES_64BIT=y 138CONFIG_RESOURCES_64BIT=y
139CONFIG_PHYS_ADDR_T_64BIT=y
122CONFIG_ZONE_DMA_FLAG=0 140CONFIG_ZONE_DMA_FLAG=0
141CONFIG_VIRT_TO_BUS=y
142CONFIG_UNEVICTABLE_LRU=y
143CONFIG_TICK_ONESHOT=y
144CONFIG_NO_HZ=y
145CONFIG_HIGH_RES_TIMERS=y
146CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
123# CONFIG_HZ_48 is not set 147# CONFIG_HZ_48 is not set
124# CONFIG_HZ_100 is not set 148# CONFIG_HZ_100 is not set
125# CONFIG_HZ_128 is not set 149# CONFIG_HZ_128 is not set
@@ -133,37 +157,40 @@ CONFIG_HZ=250
133CONFIG_PREEMPT_VOLUNTARY=y 157CONFIG_PREEMPT_VOLUNTARY=y
134# CONFIG_PREEMPT is not set 158# CONFIG_PREEMPT is not set
135# CONFIG_KEXEC is not set 159# CONFIG_KEXEC is not set
160CONFIG_SECCOMP=y
136CONFIG_LOCKDEP_SUPPORT=y 161CONFIG_LOCKDEP_SUPPORT=y
137CONFIG_STACKTRACE_SUPPORT=y 162CONFIG_STACKTRACE_SUPPORT=y
138CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 163CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
139 164
140# 165#
141# Code maturity level options 166# General setup
142# 167#
143CONFIG_EXPERIMENTAL=y 168CONFIG_EXPERIMENTAL=y
144CONFIG_BROKEN_ON_SMP=y 169CONFIG_BROKEN_ON_SMP=y
145CONFIG_INIT_ENV_ARG_LIMIT=32 170CONFIG_INIT_ENV_ARG_LIMIT=32
146
147#
148# General setup
149#
150CONFIG_LOCALVERSION="lm32" 171CONFIG_LOCALVERSION="lm32"
151# CONFIG_LOCALVERSION_AUTO is not set 172# CONFIG_LOCALVERSION_AUTO is not set
152CONFIG_SWAP=y 173CONFIG_SWAP=y
153CONFIG_SYSVIPC=y 174CONFIG_SYSVIPC=y
154# CONFIG_IPC_NS is not set
155CONFIG_SYSVIPC_SYSCTL=y 175CONFIG_SYSVIPC_SYSCTL=y
156CONFIG_POSIX_MQUEUE=y 176CONFIG_POSIX_MQUEUE=y
157CONFIG_BSD_PROCESS_ACCT=y 177CONFIG_BSD_PROCESS_ACCT=y
158# CONFIG_BSD_PROCESS_ACCT_V3 is not set 178# CONFIG_BSD_PROCESS_ACCT_V3 is not set
159# CONFIG_TASKSTATS is not set 179# CONFIG_TASKSTATS is not set
160# CONFIG_UTS_NS is not set
161# CONFIG_AUDIT is not set 180# CONFIG_AUDIT is not set
162CONFIG_IKCONFIG=y 181CONFIG_IKCONFIG=y
163CONFIG_IKCONFIG_PROC=y 182CONFIG_IKCONFIG_PROC=y
164CONFIG_LOG_BUF_SHIFT=14 183CONFIG_LOG_BUF_SHIFT=14
184# CONFIG_CGROUPS is not set
185# CONFIG_GROUP_SCHED is not set
165CONFIG_SYSFS_DEPRECATED=y 186CONFIG_SYSFS_DEPRECATED=y
187CONFIG_SYSFS_DEPRECATED_V2=y
166# CONFIG_RELAY is not set 188# CONFIG_RELAY is not set
189CONFIG_NAMESPACES=y
190# CONFIG_UTS_NS is not set
191# CONFIG_IPC_NS is not set
192CONFIG_USER_NS=y
193CONFIG_PID_NS=y
167# CONFIG_BLK_DEV_INITRD is not set 194# CONFIG_BLK_DEV_INITRD is not set
168# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 195# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
169CONFIG_SYSCTL=y 196CONFIG_SYSCTL=y
@@ -175,6 +202,8 @@ CONFIG_HOTPLUG=y
175CONFIG_PRINTK=y 202CONFIG_PRINTK=y
176CONFIG_BUG=y 203CONFIG_BUG=y
177CONFIG_ELF_CORE=y 204CONFIG_ELF_CORE=y
205# CONFIG_PCSPKR_PLATFORM is not set
206# CONFIG_COMPAT_BRK is not set
178CONFIG_BASE_FULL=y 207CONFIG_BASE_FULL=y
179CONFIG_FUTEX=y 208CONFIG_FUTEX=y
180CONFIG_ANON_INODES=y 209CONFIG_ANON_INODES=y
@@ -183,29 +212,33 @@ CONFIG_SIGNALFD=y
183CONFIG_TIMERFD=y 212CONFIG_TIMERFD=y
184CONFIG_EVENTFD=y 213CONFIG_EVENTFD=y
185CONFIG_SHMEM=y 214CONFIG_SHMEM=y
215CONFIG_AIO=y
186CONFIG_VM_EVENT_COUNTERS=y 216CONFIG_VM_EVENT_COUNTERS=y
217CONFIG_PCI_QUIRKS=y
187CONFIG_SLAB=y 218CONFIG_SLAB=y
188# CONFIG_SLUB is not set 219# CONFIG_SLUB is not set
189# CONFIG_SLOB is not set 220# CONFIG_SLOB is not set
221CONFIG_PROFILING=y
222# CONFIG_MARKERS is not set
223CONFIG_OPROFILE=m
224CONFIG_HAVE_OPROFILE=y
225# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
226CONFIG_SLABINFO=y
190CONFIG_RT_MUTEXES=y 227CONFIG_RT_MUTEXES=y
191# CONFIG_TINY_SHMEM is not set 228# CONFIG_TINY_SHMEM is not set
192CONFIG_BASE_SMALL=0 229CONFIG_BASE_SMALL=0
193
194#
195# Loadable module support
196#
197CONFIG_MODULES=y 230CONFIG_MODULES=y
231# CONFIG_MODULE_FORCE_LOAD is not set
198CONFIG_MODULE_UNLOAD=y 232CONFIG_MODULE_UNLOAD=y
199CONFIG_MODULE_FORCE_UNLOAD=y 233CONFIG_MODULE_FORCE_UNLOAD=y
200# CONFIG_MODVERSIONS is not set 234# CONFIG_MODVERSIONS is not set
201# CONFIG_MODULE_SRCVERSION_ALL is not set 235# CONFIG_MODULE_SRCVERSION_ALL is not set
202CONFIG_KMOD=y 236CONFIG_KMOD=y
203
204#
205# Block layer
206#
207CONFIG_BLOCK=y 237CONFIG_BLOCK=y
208# CONFIG_BLK_DEV_IO_TRACE is not set 238# CONFIG_BLK_DEV_IO_TRACE is not set
239CONFIG_BLK_DEV_BSG=y
240# CONFIG_BLK_DEV_INTEGRITY is not set
241CONFIG_BLOCK_COMPAT=y
209 242
210# 243#
211# IO Schedulers 244# IO Schedulers
@@ -219,19 +252,19 @@ CONFIG_IOSCHED_CFQ=y
219CONFIG_DEFAULT_CFQ=y 252CONFIG_DEFAULT_CFQ=y
220# CONFIG_DEFAULT_NOOP is not set 253# CONFIG_DEFAULT_NOOP is not set
221CONFIG_DEFAULT_IOSCHED="cfq" 254CONFIG_DEFAULT_IOSCHED="cfq"
255CONFIG_CLASSIC_RCU=y
256CONFIG_FREEZER=y
222 257
223# 258#
224# Bus options (PCI, PCMCIA, EISA, ISA, TC) 259# Bus options (PCI, PCMCIA, EISA, ISA, TC)
225# 260#
226CONFIG_HW_HAS_PCI=y 261CONFIG_HW_HAS_PCI=y
227CONFIG_PCI=y 262CONFIG_PCI=y
263CONFIG_PCI_DOMAINS=y
228# CONFIG_ARCH_SUPPORTS_MSI is not set 264# CONFIG_ARCH_SUPPORTS_MSI is not set
265CONFIG_PCI_LEGACY=y
229CONFIG_ISA=y 266CONFIG_ISA=y
230CONFIG_MMU=y 267CONFIG_MMU=y
231
232#
233# PCCARD (PCMCIA/CardBus) support
234#
235# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
236# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
237 270
@@ -239,8 +272,9 @@ CONFIG_MMU=y
239# Executable file formats 272# Executable file formats
240# 273#
241CONFIG_BINFMT_ELF=y 274CONFIG_BINFMT_ELF=y
275# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
276# CONFIG_HAVE_AOUT is not set
242CONFIG_BINFMT_MISC=y 277CONFIG_BINFMT_MISC=y
243# CONFIG_BUILD_ELF64 is not set
244CONFIG_MIPS32_COMPAT=y 278CONFIG_MIPS32_COMPAT=y
245CONFIG_COMPAT=y 279CONFIG_COMPAT=y
246CONFIG_SYSVIPC_COMPAT=y 280CONFIG_SYSVIPC_COMPAT=y
@@ -251,14 +285,12 @@ CONFIG_BINFMT_ELF32=y
251# 285#
252# Power management options 286# Power management options
253# 287#
288CONFIG_ARCH_SUSPEND_POSSIBLE=y
254CONFIG_PM=y 289CONFIG_PM=y
255# CONFIG_PM_LEGACY is not set
256# CONFIG_PM_DEBUG is not set 290# CONFIG_PM_DEBUG is not set
257# CONFIG_PM_SYSFS_DEPRECATED is not set 291CONFIG_PM_SLEEP=y
258 292CONFIG_SUSPEND=y
259# 293CONFIG_SUSPEND_FREEZER=y
260# Networking
261#
262CONFIG_NET=y 294CONFIG_NET=y
263 295
264# 296#
@@ -271,6 +303,7 @@ CONFIG_XFRM=y
271# CONFIG_XFRM_USER is not set 303# CONFIG_XFRM_USER is not set
272# CONFIG_XFRM_SUB_POLICY is not set 304# CONFIG_XFRM_SUB_POLICY is not set
273# CONFIG_XFRM_MIGRATE is not set 305# CONFIG_XFRM_MIGRATE is not set
306# CONFIG_XFRM_STATISTICS is not set
274# CONFIG_NET_KEY is not set 307# CONFIG_NET_KEY is not set
275CONFIG_INET=y 308CONFIG_INET=y
276CONFIG_IP_MULTICAST=y 309CONFIG_IP_MULTICAST=y
@@ -294,18 +327,17 @@ CONFIG_INET_TUNNEL=m
294# CONFIG_INET_XFRM_MODE_TRANSPORT is not set 327# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
295# CONFIG_INET_XFRM_MODE_TUNNEL is not set 328# CONFIG_INET_XFRM_MODE_TUNNEL is not set
296CONFIG_INET_XFRM_MODE_BEET=y 329CONFIG_INET_XFRM_MODE_BEET=y
330# CONFIG_INET_LRO is not set
297# CONFIG_INET_DIAG is not set 331# CONFIG_INET_DIAG is not set
298# CONFIG_TCP_CONG_ADVANCED is not set 332# CONFIG_TCP_CONG_ADVANCED is not set
299CONFIG_TCP_CONG_CUBIC=y 333CONFIG_TCP_CONG_CUBIC=y
300CONFIG_DEFAULT_TCP_CONG="cubic" 334CONFIG_DEFAULT_TCP_CONG="cubic"
301# CONFIG_TCP_MD5SIG is not set 335# CONFIG_TCP_MD5SIG is not set
302# CONFIG_IP_VS is not set
303# CONFIG_IPV6 is not set 336# CONFIG_IPV6 is not set
304# CONFIG_INET6_XFRM_TUNNEL is not set
305# CONFIG_INET6_TUNNEL is not set
306# CONFIG_NETWORK_SECMARK is not set 337# CONFIG_NETWORK_SECMARK is not set
307CONFIG_NETFILTER=y 338CONFIG_NETFILTER=y
308# CONFIG_NETFILTER_DEBUG is not set 339# CONFIG_NETFILTER_DEBUG is not set
340CONFIG_NETFILTER_ADVANCED=y
309 341
310# 342#
311# Core Netfilter Configuration 343# Core Netfilter Configuration
@@ -313,53 +345,59 @@ CONFIG_NETFILTER=y
313CONFIG_NETFILTER_NETLINK=m 345CONFIG_NETFILTER_NETLINK=m
314CONFIG_NETFILTER_NETLINK_QUEUE=m 346CONFIG_NETFILTER_NETLINK_QUEUE=m
315CONFIG_NETFILTER_NETLINK_LOG=m 347CONFIG_NETFILTER_NETLINK_LOG=m
316# CONFIG_NF_CONNTRACK_ENABLED is not set
317# CONFIG_NF_CONNTRACK is not set 348# CONFIG_NF_CONNTRACK is not set
318CONFIG_NETFILTER_XTABLES=m 349CONFIG_NETFILTER_XTABLES=m
319CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 350CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
320# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 351# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
321CONFIG_NETFILTER_XT_TARGET_MARK=m 352CONFIG_NETFILTER_XT_TARGET_MARK=m
322CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
323# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 353# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
354CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
355CONFIG_NETFILTER_XT_TARGET_RATEEST=m
356CONFIG_NETFILTER_XT_TARGET_TRACE=m
324# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 357# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
358CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
325CONFIG_NETFILTER_XT_MATCH_COMMENT=m 359CONFIG_NETFILTER_XT_MATCH_COMMENT=m
326CONFIG_NETFILTER_XT_MATCH_DCCP=m 360CONFIG_NETFILTER_XT_MATCH_DCCP=m
327# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 361# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
328CONFIG_NETFILTER_XT_MATCH_ESP=m 362CONFIG_NETFILTER_XT_MATCH_ESP=m
363# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
364CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
329CONFIG_NETFILTER_XT_MATCH_LENGTH=m 365CONFIG_NETFILTER_XT_MATCH_LENGTH=m
330CONFIG_NETFILTER_XT_MATCH_LIMIT=m 366CONFIG_NETFILTER_XT_MATCH_LIMIT=m
331CONFIG_NETFILTER_XT_MATCH_MAC=m 367CONFIG_NETFILTER_XT_MATCH_MAC=m
332CONFIG_NETFILTER_XT_MATCH_MARK=m 368CONFIG_NETFILTER_XT_MATCH_MARK=m
333# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
334CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 369CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
370CONFIG_NETFILTER_XT_MATCH_OWNER=m
371# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
335CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 372CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
336CONFIG_NETFILTER_XT_MATCH_QUOTA=m 373CONFIG_NETFILTER_XT_MATCH_QUOTA=m
374CONFIG_NETFILTER_XT_MATCH_RATEEST=m
337CONFIG_NETFILTER_XT_MATCH_REALM=m 375CONFIG_NETFILTER_XT_MATCH_REALM=m
376CONFIG_NETFILTER_XT_MATCH_RECENT=m
377# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
338CONFIG_NETFILTER_XT_MATCH_SCTP=m 378CONFIG_NETFILTER_XT_MATCH_SCTP=m
339CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 379CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
340CONFIG_NETFILTER_XT_MATCH_STRING=m 380CONFIG_NETFILTER_XT_MATCH_STRING=m
341CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 381CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
342# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 382CONFIG_NETFILTER_XT_MATCH_TIME=m
383CONFIG_NETFILTER_XT_MATCH_U32=m
384# CONFIG_IP_VS is not set
343 385
344# 386#
345# IP: Netfilter Configuration 387# IP: Netfilter Configuration
346# 388#
389# CONFIG_NF_DEFRAG_IPV4 is not set
347CONFIG_IP_NF_QUEUE=m 390CONFIG_IP_NF_QUEUE=m
348CONFIG_IP_NF_IPTABLES=m 391CONFIG_IP_NF_IPTABLES=m
349CONFIG_IP_NF_MATCH_IPRANGE=m 392CONFIG_IP_NF_MATCH_ADDRTYPE=m
350CONFIG_IP_NF_MATCH_TOS=m
351CONFIG_IP_NF_MATCH_RECENT=m
352CONFIG_IP_NF_MATCH_ECN=m
353CONFIG_IP_NF_MATCH_AH=m 393CONFIG_IP_NF_MATCH_AH=m
394CONFIG_IP_NF_MATCH_ECN=m
354CONFIG_IP_NF_MATCH_TTL=m 395CONFIG_IP_NF_MATCH_TTL=m
355CONFIG_IP_NF_MATCH_OWNER=m
356CONFIG_IP_NF_MATCH_ADDRTYPE=m
357CONFIG_IP_NF_FILTER=m 396CONFIG_IP_NF_FILTER=m
358CONFIG_IP_NF_TARGET_REJECT=m 397CONFIG_IP_NF_TARGET_REJECT=m
359CONFIG_IP_NF_TARGET_LOG=m 398CONFIG_IP_NF_TARGET_LOG=m
360CONFIG_IP_NF_TARGET_ULOG=m 399CONFIG_IP_NF_TARGET_ULOG=m
361CONFIG_IP_NF_MANGLE=m 400CONFIG_IP_NF_MANGLE=m
362CONFIG_IP_NF_TARGET_TOS=m
363CONFIG_IP_NF_TARGET_ECN=m 401CONFIG_IP_NF_TARGET_ECN=m
364CONFIG_IP_NF_TARGET_TTL=m 402CONFIG_IP_NF_TARGET_TTL=m
365CONFIG_IP_NF_RAW=m 403CONFIG_IP_NF_RAW=m
@@ -371,6 +409,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
371# CONFIG_TIPC is not set 409# CONFIG_TIPC is not set
372# CONFIG_ATM is not set 410# CONFIG_ATM is not set
373# CONFIG_BRIDGE is not set 411# CONFIG_BRIDGE is not set
412# CONFIG_NET_DSA is not set
374# CONFIG_VLAN_8021Q is not set 413# CONFIG_VLAN_8021Q is not set
375# CONFIG_DECNET is not set 414# CONFIG_DECNET is not set
376# CONFIG_LLC2 is not set 415# CONFIG_LLC2 is not set
@@ -380,10 +419,6 @@ CONFIG_IP_NF_ARP_MANGLE=m
380# CONFIG_LAPB is not set 419# CONFIG_LAPB is not set
381# CONFIG_ECONET is not set 420# CONFIG_ECONET is not set
382# CONFIG_WAN_ROUTER is not set 421# CONFIG_WAN_ROUTER is not set
383
384#
385# QoS and/or fair queueing
386#
387# CONFIG_NET_SCHED is not set 422# CONFIG_NET_SCHED is not set
388CONFIG_NET_CLS_ROUTE=y 423CONFIG_NET_CLS_ROUTE=y
389 424
@@ -392,23 +427,25 @@ CONFIG_NET_CLS_ROUTE=y
392# 427#
393# CONFIG_NET_PKTGEN is not set 428# CONFIG_NET_PKTGEN is not set
394# CONFIG_HAMRADIO is not set 429# CONFIG_HAMRADIO is not set
430# CONFIG_CAN is not set
395# CONFIG_IRDA is not set 431# CONFIG_IRDA is not set
396# CONFIG_BT is not set 432# CONFIG_BT is not set
397# CONFIG_AF_RXRPC is not set 433# CONFIG_AF_RXRPC is not set
398 434CONFIG_PHONET=m
399# 435CONFIG_WIRELESS=y
400# Wireless
401#
402# CONFIG_CFG80211 is not set 436# CONFIG_CFG80211 is not set
437CONFIG_WIRELESS_OLD_REGULATORY=y
403CONFIG_WIRELESS_EXT=y 438CONFIG_WIRELESS_EXT=y
439CONFIG_WIRELESS_EXT_SYSFS=y
404# CONFIG_MAC80211 is not set 440# CONFIG_MAC80211 is not set
405CONFIG_IEEE80211=m 441CONFIG_IEEE80211=m
406# CONFIG_IEEE80211_DEBUG is not set 442# CONFIG_IEEE80211_DEBUG is not set
407CONFIG_IEEE80211_CRYPT_WEP=m 443CONFIG_IEEE80211_CRYPT_WEP=m
408# CONFIG_IEEE80211_CRYPT_CCMP is not set 444# CONFIG_IEEE80211_CRYPT_CCMP is not set
409# CONFIG_IEEE80211_CRYPT_TKIP is not set 445# CONFIG_IEEE80211_CRYPT_TKIP is not set
410# CONFIG_IEEE80211_SOFTMAC is not set
411# CONFIG_RFKILL is not set 446# CONFIG_RFKILL is not set
447CONFIG_NET_9P=m
448# CONFIG_NET_9P_DEBUG is not set
412 449
413# 450#
414# Device Drivers 451# Device Drivers
@@ -417,14 +454,13 @@ CONFIG_IEEE80211_CRYPT_WEP=m
417# 454#
418# Generic Driver Options 455# Generic Driver Options
419# 456#
457CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
420CONFIG_STANDALONE=y 458CONFIG_STANDALONE=y
421CONFIG_PREVENT_FIRMWARE_BUILD=y 459CONFIG_PREVENT_FIRMWARE_BUILD=y
422CONFIG_FW_LOADER=m 460CONFIG_FW_LOADER=m
461CONFIG_FIRMWARE_IN_KERNEL=y
462CONFIG_EXTRA_FIRMWARE=""
423# CONFIG_SYS_HYPERVISOR is not set 463# CONFIG_SYS_HYPERVISOR is not set
424
425#
426# Connector - unified userspace <-> kernelspace linker
427#
428# CONFIG_CONNECTOR is not set 464# CONFIG_CONNECTOR is not set
429CONFIG_MTD=m 465CONFIG_MTD=m
430# CONFIG_MTD_DEBUG is not set 466# CONFIG_MTD_DEBUG is not set
@@ -443,6 +479,7 @@ CONFIG_MTD_BLOCK=m
443# CONFIG_INFTL is not set 479# CONFIG_INFTL is not set
444# CONFIG_RFD_FTL is not set 480# CONFIG_RFD_FTL is not set
445# CONFIG_SSFDC is not set 481# CONFIG_SSFDC is not set
482# CONFIG_MTD_OOPS is not set
446 483
447# 484#
448# RAM/ROM/Flash chip drivers 485# RAM/ROM/Flash chip drivers
@@ -482,6 +519,7 @@ CONFIG_MTD_PHYSMAP=m
482CONFIG_MTD_PHYSMAP_START=0x1fc00000 519CONFIG_MTD_PHYSMAP_START=0x1fc00000
483CONFIG_MTD_PHYSMAP_LEN=0x80000 520CONFIG_MTD_PHYSMAP_LEN=0x80000
484CONFIG_MTD_PHYSMAP_BANKWIDTH=1 521CONFIG_MTD_PHYSMAP_BANKWIDTH=1
522# CONFIG_MTD_INTEL_VR_NOR is not set
485# CONFIG_MTD_PLATRAM is not set 523# CONFIG_MTD_PLATRAM is not set
486 524
487# 525#
@@ -506,21 +544,9 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
506# UBI - Unsorted block images 544# UBI - Unsorted block images
507# 545#
508# CONFIG_MTD_UBI is not set 546# CONFIG_MTD_UBI is not set
509
510#
511# Parallel port support
512#
513# CONFIG_PARPORT is not set 547# CONFIG_PARPORT is not set
514
515#
516# Plug and Play support
517#
518# CONFIG_PNP is not set 548# CONFIG_PNP is not set
519# CONFIG_PNPACPI is not set 549CONFIG_BLK_DEV=y
520
521#
522# Block devices
523#
524# CONFIG_BLK_CPQ_DA is not set 550# CONFIG_BLK_CPQ_DA is not set
525# CONFIG_BLK_CPQ_CISS_DA is not set 551# CONFIG_BLK_CPQ_CISS_DA is not set
526# CONFIG_BLK_DEV_DAC960 is not set 552# CONFIG_BLK_DEV_DAC960 is not set
@@ -534,32 +560,28 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
534CONFIG_BLK_DEV_RAM=m 560CONFIG_BLK_DEV_RAM=m
535CONFIG_BLK_DEV_RAM_COUNT=16 561CONFIG_BLK_DEV_RAM_COUNT=16
536CONFIG_BLK_DEV_RAM_SIZE=4096 562CONFIG_BLK_DEV_RAM_SIZE=4096
537CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 563# CONFIG_BLK_DEV_XIP is not set
538CONFIG_CDROM_PKTCDVD=m 564CONFIG_CDROM_PKTCDVD=m
539CONFIG_CDROM_PKTCDVD_BUFFERS=8 565CONFIG_CDROM_PKTCDVD_BUFFERS=8
540# CONFIG_CDROM_PKTCDVD_WCACHE is not set 566# CONFIG_CDROM_PKTCDVD_WCACHE is not set
541CONFIG_ATA_OVER_ETH=m 567CONFIG_ATA_OVER_ETH=m
542 568# CONFIG_BLK_DEV_HD is not set
543# 569# CONFIG_MISC_DEVICES is not set
544# Misc devices 570CONFIG_HAVE_IDE=y
545#
546# CONFIG_PHANTOM is not set
547# CONFIG_SGI_IOC4 is not set
548# CONFIG_TIFM_CORE is not set
549# CONFIG_BLINK is not set
550CONFIG_IDE=y 571CONFIG_IDE=y
551CONFIG_IDE_MAX_HWIFS=4
552CONFIG_BLK_DEV_IDE=y
553 572
554# 573#
555# Please see Documentation/ide.txt for help/info on IDE drives 574# Please see Documentation/ide/ide.txt for help/info on IDE drives
556# 575#
576CONFIG_IDE_TIMINGS=y
577CONFIG_IDE_ATAPI=y
557# CONFIG_BLK_DEV_IDE_SATA is not set 578# CONFIG_BLK_DEV_IDE_SATA is not set
558CONFIG_BLK_DEV_IDEDISK=y 579CONFIG_IDE_GD=y
559CONFIG_IDEDISK_MULTI_MODE=y 580CONFIG_IDE_GD_ATA=y
581# CONFIG_IDE_GD_ATAPI is not set
560CONFIG_BLK_DEV_IDECD=y 582CONFIG_BLK_DEV_IDECD=y
583CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
561# CONFIG_BLK_DEV_IDETAPE is not set 584# CONFIG_BLK_DEV_IDETAPE is not set
562# CONFIG_BLK_DEV_IDEFLOPPY is not set
563CONFIG_BLK_DEV_IDESCSI=y 585CONFIG_BLK_DEV_IDESCSI=y
564CONFIG_IDE_TASK_IOCTL=y 586CONFIG_IDE_TASK_IOCTL=y
565CONFIG_IDE_PROC_FS=y 587CONFIG_IDE_PROC_FS=y
@@ -568,24 +590,25 @@ CONFIG_IDE_PROC_FS=y
568# IDE chipset support/bugfixes 590# IDE chipset support/bugfixes
569# 591#
570CONFIG_IDE_GENERIC=y 592CONFIG_IDE_GENERIC=y
593# CONFIG_BLK_DEV_PLATFORM is not set
594CONFIG_BLK_DEV_IDEDMA_SFF=y
595
596#
597# PCI IDE chipsets support
598#
571CONFIG_BLK_DEV_IDEPCI=y 599CONFIG_BLK_DEV_IDEPCI=y
572CONFIG_IDEPCI_SHARE_IRQ=y
573CONFIG_IDEPCI_PCIBUS_ORDER=y 600CONFIG_IDEPCI_PCIBUS_ORDER=y
574# CONFIG_BLK_DEV_OFFBOARD is not set 601# CONFIG_BLK_DEV_OFFBOARD is not set
575CONFIG_BLK_DEV_GENERIC=y 602CONFIG_BLK_DEV_GENERIC=y
576# CONFIG_BLK_DEV_OPTI621 is not set 603# CONFIG_BLK_DEV_OPTI621 is not set
577CONFIG_BLK_DEV_IDEDMA_PCI=y 604CONFIG_BLK_DEV_IDEDMA_PCI=y
578# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
579# CONFIG_IDEDMA_ONLYDISK is not set
580# CONFIG_BLK_DEV_AEC62XX is not set 605# CONFIG_BLK_DEV_AEC62XX is not set
581# CONFIG_BLK_DEV_ALI15X3 is not set 606# CONFIG_BLK_DEV_ALI15X3 is not set
582# CONFIG_BLK_DEV_AMD74XX is not set 607# CONFIG_BLK_DEV_AMD74XX is not set
583# CONFIG_BLK_DEV_CMD64X is not set 608# CONFIG_BLK_DEV_CMD64X is not set
584# CONFIG_BLK_DEV_TRIFLEX is not set 609# CONFIG_BLK_DEV_TRIFLEX is not set
585# CONFIG_BLK_DEV_CY82C693 is not set
586# CONFIG_BLK_DEV_CS5520 is not set 610# CONFIG_BLK_DEV_CS5520 is not set
587# CONFIG_BLK_DEV_CS5530 is not set 611# CONFIG_BLK_DEV_CS5530 is not set
588# CONFIG_BLK_DEV_HPT34X is not set
589# CONFIG_BLK_DEV_HPT366 is not set 612# CONFIG_BLK_DEV_HPT366 is not set
590# CONFIG_BLK_DEV_JMICRON is not set 613# CONFIG_BLK_DEV_JMICRON is not set
591# CONFIG_BLK_DEV_SC1200 is not set 614# CONFIG_BLK_DEV_SC1200 is not set
@@ -601,17 +624,28 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
601# CONFIG_BLK_DEV_TRM290 is not set 624# CONFIG_BLK_DEV_TRM290 is not set
602CONFIG_BLK_DEV_VIA82CXXX=y 625CONFIG_BLK_DEV_VIA82CXXX=y
603# CONFIG_BLK_DEV_TC86C001 is not set 626# CONFIG_BLK_DEV_TC86C001 is not set
604# CONFIG_IDE_ARM is not set 627
605# CONFIG_IDE_CHIPSETS is not set 628#
629# Other IDE chipsets support
630#
631
632#
633# Note: most of these also require special kernel boot parameters
634#
635# CONFIG_BLK_DEV_4DRIVES is not set
636# CONFIG_BLK_DEV_ALI14XX is not set
637# CONFIG_BLK_DEV_DTC2278 is not set
638# CONFIG_BLK_DEV_HT6560B is not set
639# CONFIG_BLK_DEV_QD65XX is not set
640# CONFIG_BLK_DEV_UMC8672 is not set
606CONFIG_BLK_DEV_IDEDMA=y 641CONFIG_BLK_DEV_IDEDMA=y
607# CONFIG_IDEDMA_IVB is not set
608# CONFIG_BLK_DEV_HD is not set
609 642
610# 643#
611# SCSI device support 644# SCSI device support
612# 645#
613# CONFIG_RAID_ATTRS is not set 646# CONFIG_RAID_ATTRS is not set
614CONFIG_SCSI=y 647CONFIG_SCSI=y
648CONFIG_SCSI_DMA=y
615# CONFIG_SCSI_TGT is not set 649# CONFIG_SCSI_TGT is not set
616# CONFIG_SCSI_NETLINK is not set 650# CONFIG_SCSI_NETLINK is not set
617CONFIG_SCSI_PROC_FS=y 651CONFIG_SCSI_PROC_FS=y
@@ -644,88 +678,30 @@ CONFIG_SCSI_WAIT_SCAN=m
644# CONFIG_SCSI_ISCSI_ATTRS is not set 678# CONFIG_SCSI_ISCSI_ATTRS is not set
645# CONFIG_SCSI_SAS_ATTRS is not set 679# CONFIG_SCSI_SAS_ATTRS is not set
646# CONFIG_SCSI_SAS_LIBSAS is not set 680# CONFIG_SCSI_SAS_LIBSAS is not set
647 681# CONFIG_SCSI_SRP_ATTRS is not set
648# 682# CONFIG_SCSI_LOWLEVEL is not set
649# SCSI low-level drivers 683# CONFIG_SCSI_DH is not set
650#
651# CONFIG_ISCSI_TCP is not set
652# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
653# CONFIG_SCSI_3W_9XXX is not set
654# CONFIG_SCSI_ACARD is not set
655# CONFIG_SCSI_AACRAID is not set
656# CONFIG_SCSI_AIC7XXX is not set
657# CONFIG_SCSI_AIC7XXX_OLD is not set
658# CONFIG_SCSI_AIC79XX is not set
659# CONFIG_SCSI_AIC94XX is not set
660# CONFIG_SCSI_IN2000 is not set
661# CONFIG_SCSI_ARCMSR is not set
662# CONFIG_MEGARAID_NEWGEN is not set
663# CONFIG_MEGARAID_LEGACY is not set
664# CONFIG_MEGARAID_SAS is not set
665# CONFIG_SCSI_HPTIOP is not set
666# CONFIG_SCSI_DMX3191D is not set
667# CONFIG_SCSI_DTC3280 is not set
668# CONFIG_SCSI_FUTURE_DOMAIN is not set
669# CONFIG_SCSI_GENERIC_NCR5380 is not set
670# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
671# CONFIG_SCSI_IPS is not set
672# CONFIG_SCSI_INITIO is not set
673# CONFIG_SCSI_INIA100 is not set
674# CONFIG_SCSI_NCR53C406A is not set
675# CONFIG_SCSI_STEX is not set
676# CONFIG_SCSI_SYM53C8XX_2 is not set
677# CONFIG_SCSI_PAS16 is not set
678# CONFIG_SCSI_PSI240I is not set
679# CONFIG_SCSI_QLOGIC_FAS is not set
680# CONFIG_SCSI_QLOGIC_1280 is not set
681# CONFIG_SCSI_QLA_FC is not set
682# CONFIG_SCSI_QLA_ISCSI is not set
683# CONFIG_SCSI_LPFC is not set
684# CONFIG_SCSI_SYM53C416 is not set
685# CONFIG_SCSI_DC395x is not set
686# CONFIG_SCSI_DC390T is not set
687# CONFIG_SCSI_T128 is not set
688# CONFIG_SCSI_DEBUG is not set
689# CONFIG_SCSI_SRP is not set
690# CONFIG_ATA is not set 684# CONFIG_ATA is not set
691
692#
693# Old CD-ROM drivers (not SCSI, not IDE)
694#
695# CONFIG_CD_NO_IDESCSI is not set
696
697#
698# Multi-device support (RAID and LVM)
699#
700# CONFIG_MD is not set 685# CONFIG_MD is not set
701
702#
703# Fusion MPT device support
704#
705# CONFIG_FUSION is not set 686# CONFIG_FUSION is not set
706# CONFIG_FUSION_SPI is not set
707# CONFIG_FUSION_FC is not set
708# CONFIG_FUSION_SAS is not set
709 687
710# 688#
711# IEEE 1394 (FireWire) support 689# IEEE 1394 (FireWire) support
712# 690#
713# CONFIG_FIREWIRE is not set
714# CONFIG_IEEE1394 is not set
715 691
716# 692#
717# I2O device support 693# Enable only one of the two stacks, unless you know what you are doing
718# 694#
695# CONFIG_FIREWIRE is not set
696# CONFIG_IEEE1394 is not set
719# CONFIG_I2O is not set 697# CONFIG_I2O is not set
720
721#
722# Network device support
723#
724CONFIG_NETDEVICES=y 698CONFIG_NETDEVICES=y
725# CONFIG_DUMMY is not set 699# CONFIG_DUMMY is not set
726# CONFIG_BONDING is not set 700# CONFIG_BONDING is not set
701CONFIG_MACVLAN=m
727# CONFIG_EQUALIZER is not set 702# CONFIG_EQUALIZER is not set
728# CONFIG_TUN is not set 703# CONFIG_TUN is not set
704CONFIG_VETH=m
729# CONFIG_ARCNET is not set 705# CONFIG_ARCNET is not set
730CONFIG_PHYLIB=m 706CONFIG_PHYLIB=m
731 707
@@ -740,29 +716,32 @@ CONFIG_CICADA_PHY=m
740# CONFIG_VITESSE_PHY is not set 716# CONFIG_VITESSE_PHY is not set
741# CONFIG_SMSC_PHY is not set 717# CONFIG_SMSC_PHY is not set
742# CONFIG_BROADCOM_PHY is not set 718# CONFIG_BROADCOM_PHY is not set
743# CONFIG_FIXED_PHY is not set 719# CONFIG_ICPLUS_PHY is not set
744 720# CONFIG_REALTEK_PHY is not set
745# 721# CONFIG_MDIO_BITBANG is not set
746# Ethernet (10 or 100Mbit)
747#
748CONFIG_NET_ETHERNET=y 722CONFIG_NET_ETHERNET=y
749CONFIG_MII=y 723CONFIG_MII=y
724# CONFIG_AX88796 is not set
750# CONFIG_HAPPYMEAL is not set 725# CONFIG_HAPPYMEAL is not set
751# CONFIG_SUNGEM is not set 726# CONFIG_SUNGEM is not set
752# CONFIG_CASSINI is not set 727# CONFIG_CASSINI is not set
753# CONFIG_NET_VENDOR_3COM is not set 728# CONFIG_NET_VENDOR_3COM is not set
754# CONFIG_NET_VENDOR_SMC is not set 729# CONFIG_NET_VENDOR_SMC is not set
730# CONFIG_SMC91X is not set
755# CONFIG_DM9000 is not set 731# CONFIG_DM9000 is not set
756# CONFIG_NET_VENDOR_RACAL is not set 732# CONFIG_NET_VENDOR_RACAL is not set
757
758#
759# Tulip family network device support
760#
761# CONFIG_NET_TULIP is not set 733# CONFIG_NET_TULIP is not set
762# CONFIG_AT1700 is not set 734# CONFIG_AT1700 is not set
763# CONFIG_DEPCA is not set 735# CONFIG_DEPCA is not set
764# CONFIG_HP100 is not set 736# CONFIG_HP100 is not set
765# CONFIG_NET_ISA is not set 737# CONFIG_NET_ISA is not set
738# CONFIG_IBM_NEW_EMAC_ZMII is not set
739# CONFIG_IBM_NEW_EMAC_RGMII is not set
740# CONFIG_IBM_NEW_EMAC_TAH is not set
741# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
742# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
743# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
744# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
766CONFIG_NET_PCI=y 745CONFIG_NET_PCI=y
767# CONFIG_PCNET32 is not set 746# CONFIG_PCNET32 is not set
768# CONFIG_AMD8111_ETH is not set 747# CONFIG_AMD8111_ETH is not set
@@ -773,7 +752,6 @@ CONFIG_NET_PCI=y
773# CONFIG_FORCEDETH is not set 752# CONFIG_FORCEDETH is not set
774# CONFIG_CS89x0 is not set 753# CONFIG_CS89x0 is not set
775# CONFIG_TC35815 is not set 754# CONFIG_TC35815 is not set
776# CONFIG_DGRS is not set
777# CONFIG_EEPRO100 is not set 755# CONFIG_EEPRO100 is not set
778# CONFIG_E100 is not set 756# CONFIG_E100 is not set
779# CONFIG_FEALNX is not set 757# CONFIG_FEALNX is not set
@@ -785,15 +763,21 @@ CONFIG_8139TOO=y
785# CONFIG_8139TOO_TUNE_TWISTER is not set 763# CONFIG_8139TOO_TUNE_TWISTER is not set
786# CONFIG_8139TOO_8129 is not set 764# CONFIG_8139TOO_8129 is not set
787# CONFIG_8139_OLD_RX_RESET is not set 765# CONFIG_8139_OLD_RX_RESET is not set
766# CONFIG_R6040 is not set
788# CONFIG_SIS900 is not set 767# CONFIG_SIS900 is not set
789# CONFIG_EPIC100 is not set 768# CONFIG_EPIC100 is not set
790# CONFIG_SUNDANCE is not set 769# CONFIG_SUNDANCE is not set
770# CONFIG_TLAN is not set
791# CONFIG_VIA_RHINE is not set 771# CONFIG_VIA_RHINE is not set
792# CONFIG_SC92031 is not set 772# CONFIG_SC92031 is not set
773# CONFIG_ATL2 is not set
793CONFIG_NETDEV_1000=y 774CONFIG_NETDEV_1000=y
794# CONFIG_ACENIC is not set 775# CONFIG_ACENIC is not set
795# CONFIG_DL2K is not set 776# CONFIG_DL2K is not set
796# CONFIG_E1000 is not set 777# CONFIG_E1000 is not set
778# CONFIG_E1000E is not set
779# CONFIG_IP1000 is not set
780# CONFIG_IGB is not set
797# CONFIG_NS83820 is not set 781# CONFIG_NS83820 is not set
798# CONFIG_HAMACHI is not set 782# CONFIG_HAMACHI is not set
799# CONFIG_YELLOWFIN is not set 783# CONFIG_YELLOWFIN is not set
@@ -801,20 +785,29 @@ CONFIG_NETDEV_1000=y
801# CONFIG_SIS190 is not set 785# CONFIG_SIS190 is not set
802# CONFIG_SKGE is not set 786# CONFIG_SKGE is not set
803# CONFIG_SKY2 is not set 787# CONFIG_SKY2 is not set
804# CONFIG_SK98LIN is not set
805# CONFIG_VIA_VELOCITY is not set 788# CONFIG_VIA_VELOCITY is not set
806# CONFIG_TIGON3 is not set 789# CONFIG_TIGON3 is not set
807# CONFIG_BNX2 is not set 790# CONFIG_BNX2 is not set
808# CONFIG_QLA3XXX is not set 791# CONFIG_QLA3XXX is not set
809# CONFIG_ATL1 is not set 792# CONFIG_ATL1 is not set
793# CONFIG_ATL1E is not set
794# CONFIG_JME is not set
810CONFIG_NETDEV_10000=y 795CONFIG_NETDEV_10000=y
811# CONFIG_CHELSIO_T1 is not set 796# CONFIG_CHELSIO_T1 is not set
812# CONFIG_CHELSIO_T3 is not set 797# CONFIG_CHELSIO_T3 is not set
798# CONFIG_ENIC is not set
799# CONFIG_IXGBE is not set
813# CONFIG_IXGB is not set 800# CONFIG_IXGB is not set
814# CONFIG_S2IO is not set 801# CONFIG_S2IO is not set
815# CONFIG_MYRI10GE is not set 802# CONFIG_MYRI10GE is not set
816# CONFIG_NETXEN_NIC is not set 803# CONFIG_NETXEN_NIC is not set
804# CONFIG_NIU is not set
805# CONFIG_MLX4_EN is not set
817# CONFIG_MLX4_CORE is not set 806# CONFIG_MLX4_CORE is not set
807# CONFIG_TEHUTI is not set
808# CONFIG_BNX2X is not set
809# CONFIG_QLGE is not set
810# CONFIG_SFC is not set
818# CONFIG_TR is not set 811# CONFIG_TR is not set
819 812
820# 813#
@@ -822,6 +815,7 @@ CONFIG_NETDEV_10000=y
822# 815#
823# CONFIG_WLAN_PRE80211 is not set 816# CONFIG_WLAN_PRE80211 is not set
824# CONFIG_WLAN_80211 is not set 817# CONFIG_WLAN_80211 is not set
818# CONFIG_IWLWIFI_LEDS is not set
825 819
826# 820#
827# USB Network Adapters 821# USB Network Adapters
@@ -830,7 +824,6 @@ CONFIG_NETDEV_10000=y
830# CONFIG_USB_KAWETH is not set 824# CONFIG_USB_KAWETH is not set
831# CONFIG_USB_PEGASUS is not set 825# CONFIG_USB_PEGASUS is not set
832# CONFIG_USB_RTL8150 is not set 826# CONFIG_USB_RTL8150 is not set
833# CONFIG_USB_USBNET_MII is not set
834# CONFIG_USB_USBNET is not set 827# CONFIG_USB_USBNET is not set
835# CONFIG_WAN is not set 828# CONFIG_WAN is not set
836# CONFIG_FDDI is not set 829# CONFIG_FDDI is not set
@@ -844,25 +837,17 @@ CONFIG_PPP_DEFLATE=m
844CONFIG_PPP_BSDCOMP=m 837CONFIG_PPP_BSDCOMP=m
845CONFIG_PPP_MPPE=m 838CONFIG_PPP_MPPE=m
846CONFIG_PPPOE=m 839CONFIG_PPPOE=m
840CONFIG_PPPOL2TP=m
847CONFIG_SLIP=m 841CONFIG_SLIP=m
848CONFIG_SLIP_COMPRESSED=y 842CONFIG_SLIP_COMPRESSED=y
849CONFIG_SLHC=m 843CONFIG_SLHC=m
850CONFIG_SLIP_SMART=y 844CONFIG_SLIP_SMART=y
851CONFIG_SLIP_MODE_SLIP6=y 845CONFIG_SLIP_MODE_SLIP6=y
852CONFIG_NET_FC=y 846CONFIG_NET_FC=y
853# CONFIG_SHAPER is not set
854# CONFIG_NETCONSOLE is not set 847# CONFIG_NETCONSOLE is not set
855# CONFIG_NETPOLL is not set 848# CONFIG_NETPOLL is not set
856# CONFIG_NET_POLL_CONTROLLER is not set 849# CONFIG_NET_POLL_CONTROLLER is not set
857
858#
859# ISDN subsystem
860#
861# CONFIG_ISDN is not set 850# CONFIG_ISDN is not set
862
863#
864# Telephony Support
865#
866# CONFIG_PHONE is not set 851# CONFIG_PHONE is not set
867 852
868# 853#
@@ -870,6 +855,7 @@ CONFIG_NET_FC=y
870# 855#
871CONFIG_INPUT=y 856CONFIG_INPUT=y
872CONFIG_INPUT_FF_MEMLESS=y 857CONFIG_INPUT_FF_MEMLESS=y
858# CONFIG_INPUT_POLLDEV is not set
873 859
874# 860#
875# Userland interfaces 861# Userland interfaces
@@ -879,7 +865,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
879CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 865CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
880CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 866CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
881# CONFIG_INPUT_JOYDEV is not set 867# CONFIG_INPUT_JOYDEV is not set
882# CONFIG_INPUT_TSDEV is not set
883# CONFIG_INPUT_EVDEV is not set 868# CONFIG_INPUT_EVDEV is not set
884# CONFIG_INPUT_EVBUG is not set 869# CONFIG_INPUT_EVBUG is not set
885 870
@@ -900,9 +885,11 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
900CONFIG_MOUSE_PS2_SYNAPTICS=y 885CONFIG_MOUSE_PS2_SYNAPTICS=y
901CONFIG_MOUSE_PS2_LIFEBOOK=y 886CONFIG_MOUSE_PS2_LIFEBOOK=y
902CONFIG_MOUSE_PS2_TRACKPOINT=y 887CONFIG_MOUSE_PS2_TRACKPOINT=y
888# CONFIG_MOUSE_PS2_ELANTECH is not set
903# CONFIG_MOUSE_PS2_TOUCHKIT is not set 889# CONFIG_MOUSE_PS2_TOUCHKIT is not set
904CONFIG_MOUSE_SERIAL=y 890CONFIG_MOUSE_SERIAL=y
905# CONFIG_MOUSE_APPLETOUCH is not set 891# CONFIG_MOUSE_APPLETOUCH is not set
892# CONFIG_MOUSE_BCM5974 is not set
906# CONFIG_MOUSE_INPORT is not set 893# CONFIG_MOUSE_INPORT is not set
907# CONFIG_MOUSE_LOGIBM is not set 894# CONFIG_MOUSE_LOGIBM is not set
908# CONFIG_MOUSE_PC110PAD is not set 895# CONFIG_MOUSE_PC110PAD is not set
@@ -927,10 +914,13 @@ CONFIG_SERIO_LIBPS2=y
927# Character devices 914# Character devices
928# 915#
929CONFIG_VT=y 916CONFIG_VT=y
917CONFIG_CONSOLE_TRANSLATIONS=y
930CONFIG_VT_CONSOLE=y 918CONFIG_VT_CONSOLE=y
931CONFIG_HW_CONSOLE=y 919CONFIG_HW_CONSOLE=y
932# CONFIG_VT_HW_CONSOLE_BINDING is not set 920# CONFIG_VT_HW_CONSOLE_BINDING is not set
921CONFIG_DEVKMEM=y
933# CONFIG_SERIAL_NONSTANDARD is not set 922# CONFIG_SERIAL_NONSTANDARD is not set
923# CONFIG_NOZOMI is not set
934 924
935# 925#
936# Serial drivers 926# Serial drivers
@@ -951,105 +941,152 @@ CONFIG_SERIAL_CORE_CONSOLE=y
951CONFIG_UNIX98_PTYS=y 941CONFIG_UNIX98_PTYS=y
952CONFIG_LEGACY_PTYS=y 942CONFIG_LEGACY_PTYS=y
953CONFIG_LEGACY_PTY_COUNT=256 943CONFIG_LEGACY_PTY_COUNT=256
954
955#
956# IPMI
957#
958# CONFIG_IPMI_HANDLER is not set 944# CONFIG_IPMI_HANDLER is not set
959# CONFIG_WATCHDOG is not set
960CONFIG_HW_RANDOM=y 945CONFIG_HW_RANDOM=y
961CONFIG_RTC=y
962# CONFIG_DTLK is not set 946# CONFIG_DTLK is not set
963# CONFIG_R3964 is not set 947# CONFIG_R3964 is not set
964# CONFIG_APPLICOM is not set 948# CONFIG_APPLICOM is not set
965# CONFIG_DRM is not set
966# CONFIG_RAW_DRIVER is not set 949# CONFIG_RAW_DRIVER is not set
967
968#
969# TPM devices
970#
971# CONFIG_TCG_TPM is not set 950# CONFIG_TCG_TPM is not set
972CONFIG_DEVPORT=y 951CONFIG_DEVPORT=y
973CONFIG_I2C=m 952CONFIG_I2C=m
974CONFIG_I2C_BOARDINFO=y 953CONFIG_I2C_BOARDINFO=y
975CONFIG_I2C_CHARDEV=m 954CONFIG_I2C_CHARDEV=m
955CONFIG_I2C_HELPER_AUTO=y
976 956
977# 957#
978# I2C Algorithms 958# I2C Hardware Bus support
979# 959#
980# CONFIG_I2C_ALGOBIT is not set
981# CONFIG_I2C_ALGOPCF is not set
982# CONFIG_I2C_ALGOPCA is not set
983 960
984# 961#
985# I2C Hardware Bus support 962# PC SMBus host controller drivers
986# 963#
987# CONFIG_I2C_ALI1535 is not set 964# CONFIG_I2C_ALI1535 is not set
988# CONFIG_I2C_ALI1563 is not set 965# CONFIG_I2C_ALI1563 is not set
989# CONFIG_I2C_ALI15X3 is not set 966# CONFIG_I2C_ALI15X3 is not set
990# CONFIG_I2C_AMD756 is not set 967# CONFIG_I2C_AMD756 is not set
991# CONFIG_I2C_AMD8111 is not set 968# CONFIG_I2C_AMD8111 is not set
992# CONFIG_I2C_ELEKTOR is not set
993# CONFIG_I2C_I801 is not set 969# CONFIG_I2C_I801 is not set
994# CONFIG_I2C_I810 is not set 970# CONFIG_I2C_ISCH is not set
995# CONFIG_I2C_PIIX4 is not set 971# CONFIG_I2C_PIIX4 is not set
996# CONFIG_I2C_NFORCE2 is not set 972# CONFIG_I2C_NFORCE2 is not set
997# CONFIG_I2C_OCORES is not set
998# CONFIG_I2C_PARPORT_LIGHT is not set
999# CONFIG_I2C_PROSAVAGE is not set
1000# CONFIG_I2C_SAVAGE4 is not set
1001# CONFIG_I2C_SIMTEC is not set
1002# CONFIG_I2C_SIS5595 is not set 973# CONFIG_I2C_SIS5595 is not set
1003# CONFIG_I2C_SIS630 is not set 974# CONFIG_I2C_SIS630 is not set
1004# CONFIG_I2C_SIS96X is not set 975# CONFIG_I2C_SIS96X is not set
1005# CONFIG_I2C_STUB is not set
1006# CONFIG_I2C_TINY_USB is not set
1007# CONFIG_I2C_VIA is not set 976# CONFIG_I2C_VIA is not set
1008CONFIG_I2C_VIAPRO=m 977CONFIG_I2C_VIAPRO=m
978
979#
980# I2C system bus drivers (mostly embedded / system-on-chip)
981#
982# CONFIG_I2C_OCORES is not set
983# CONFIG_I2C_SIMTEC is not set
984
985#
986# External I2C/SMBus adapter drivers
987#
988# CONFIG_I2C_PARPORT_LIGHT is not set
989# CONFIG_I2C_TAOS_EVM is not set
990# CONFIG_I2C_TINY_USB is not set
991
992#
993# Graphics adapter I2C/DDC channel drivers
994#
1009# CONFIG_I2C_VOODOO3 is not set 995# CONFIG_I2C_VOODOO3 is not set
996
997#
998# Other I2C/SMBus bus drivers
999#
1000# CONFIG_I2C_ELEKTOR is not set
1010# CONFIG_I2C_PCA_ISA is not set 1001# CONFIG_I2C_PCA_ISA is not set
1002# CONFIG_I2C_PCA_PLATFORM is not set
1003# CONFIG_I2C_STUB is not set
1011 1004
1012# 1005#
1013# Miscellaneous I2C Chip support 1006# Miscellaneous I2C Chip support
1014# 1007#
1015# CONFIG_SENSORS_DS1337 is not set 1008# CONFIG_DS1682 is not set
1016# CONFIG_SENSORS_DS1374 is not set 1009# CONFIG_AT24 is not set
1017# CONFIG_SENSORS_EEPROM is not set 1010# CONFIG_SENSORS_EEPROM is not set
1018# CONFIG_SENSORS_PCF8574 is not set 1011# CONFIG_SENSORS_PCF8574 is not set
1012# CONFIG_PCF8575 is not set
1019# CONFIG_SENSORS_PCA9539 is not set 1013# CONFIG_SENSORS_PCA9539 is not set
1020# CONFIG_SENSORS_PCF8591 is not set 1014# CONFIG_SENSORS_PCF8591 is not set
1021# CONFIG_SENSORS_MAX6875 is not set 1015# CONFIG_SENSORS_MAX6875 is not set
1016# CONFIG_SENSORS_TSL2550 is not set
1022# CONFIG_I2C_DEBUG_CORE is not set 1017# CONFIG_I2C_DEBUG_CORE is not set
1023# CONFIG_I2C_DEBUG_ALGO is not set 1018# CONFIG_I2C_DEBUG_ALGO is not set
1024# CONFIG_I2C_DEBUG_BUS is not set 1019# CONFIG_I2C_DEBUG_BUS is not set
1025# CONFIG_I2C_DEBUG_CHIP is not set 1020# CONFIG_I2C_DEBUG_CHIP is not set
1026
1027#
1028# SPI support
1029#
1030# CONFIG_SPI is not set 1021# CONFIG_SPI is not set
1031# CONFIG_SPI_MASTER is not set 1022# CONFIG_W1 is not set
1023# CONFIG_POWER_SUPPLY is not set
1024# CONFIG_HWMON is not set
1025# CONFIG_THERMAL is not set
1026# CONFIG_THERMAL_HWMON is not set
1027# CONFIG_WATCHDOG is not set
1028CONFIG_SSB_POSSIBLE=y
1032 1029
1033# 1030#
1034# Dallas's 1-wire bus 1031# Sonics Silicon Backplane
1035# 1032#
1036# CONFIG_W1 is not set 1033# CONFIG_SSB is not set
1037# CONFIG_HWMON is not set
1038 1034
1039# 1035#
1040# Multifunction device drivers 1036# Multifunction device drivers
1041# 1037#
1038# CONFIG_MFD_CORE is not set
1042# CONFIG_MFD_SM501 is not set 1039# CONFIG_MFD_SM501 is not set
1040# CONFIG_HTC_PASIC3 is not set
1041# CONFIG_MFD_TMIO is not set
1042# CONFIG_MFD_WM8400 is not set
1043# CONFIG_MFD_WM8350_I2C is not set
1044# CONFIG_REGULATOR is not set
1043 1045
1044# 1046#
1045# Multimedia devices 1047# Multimedia devices
1046# 1048#
1049
1050#
1051# Multimedia core support
1052#
1047CONFIG_VIDEO_DEV=m 1053CONFIG_VIDEO_DEV=m
1048CONFIG_VIDEO_V4L1=y 1054CONFIG_VIDEO_V4L2_COMMON=m
1055CONFIG_VIDEO_ALLOW_V4L1=y
1049CONFIG_VIDEO_V4L1_COMPAT=y 1056CONFIG_VIDEO_V4L1_COMPAT=y
1050CONFIG_VIDEO_V4L2=y 1057# CONFIG_DVB_CORE is not set
1058CONFIG_VIDEO_MEDIA=m
1059
1060#
1061# Multimedia drivers
1062#
1063CONFIG_MEDIA_ATTACH=y
1064CONFIG_MEDIA_TUNER=m
1065CONFIG_MEDIA_TUNER_CUSTOMIZE=y
1066CONFIG_MEDIA_TUNER_SIMPLE=m
1067CONFIG_MEDIA_TUNER_TDA8290=m
1068CONFIG_MEDIA_TUNER_TDA827X=m
1069CONFIG_MEDIA_TUNER_TDA18271=m
1070CONFIG_MEDIA_TUNER_TDA9887=m
1071CONFIG_MEDIA_TUNER_TEA5761=m
1072CONFIG_MEDIA_TUNER_TEA5767=m
1073CONFIG_MEDIA_TUNER_MT20XX=m
1074CONFIG_MEDIA_TUNER_MT2060=m
1075CONFIG_MEDIA_TUNER_MT2266=m
1076CONFIG_MEDIA_TUNER_MT2131=m
1077CONFIG_MEDIA_TUNER_QT1010=m
1078CONFIG_MEDIA_TUNER_XC2028=m
1079CONFIG_MEDIA_TUNER_XC5000=m
1080CONFIG_MEDIA_TUNER_MXL5005S=m
1081CONFIG_MEDIA_TUNER_MXL5007T=m
1082CONFIG_VIDEO_V4L2=m
1083CONFIG_VIDEO_V4L1=m
1084CONFIG_VIDEOBUF_GEN=m
1085CONFIG_VIDEOBUF_VMALLOC=m
1086CONFIG_VIDEOBUF_DMA_CONTIG=m
1051CONFIG_VIDEO_CAPTURE_DRIVERS=y 1087CONFIG_VIDEO_CAPTURE_DRIVERS=y
1052# CONFIG_VIDEO_ADV_DEBUG is not set 1088# CONFIG_VIDEO_ADV_DEBUG is not set
1089# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
1053CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 1090CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
1054# CONFIG_VIDEO_VIVI is not set 1091# CONFIG_VIDEO_VIVI is not set
1055# CONFIG_VIDEO_BT848 is not set 1092# CONFIG_VIDEO_BT848 is not set
@@ -1058,17 +1095,46 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
1058# CONFIG_VIDEO_CPIA2 is not set 1095# CONFIG_VIDEO_CPIA2 is not set
1059# CONFIG_VIDEO_SAA5246A is not set 1096# CONFIG_VIDEO_SAA5246A is not set
1060# CONFIG_VIDEO_SAA5249 is not set 1097# CONFIG_VIDEO_SAA5249 is not set
1061# CONFIG_TUNER_3036 is not set
1062# CONFIG_VIDEO_STRADIS is not set 1098# CONFIG_VIDEO_STRADIS is not set
1063# CONFIG_VIDEO_SAA7134 is not set 1099# CONFIG_VIDEO_SAA7134 is not set
1064# CONFIG_VIDEO_MXB is not set 1100# CONFIG_VIDEO_MXB is not set
1065# CONFIG_VIDEO_DPC is not set
1066# CONFIG_VIDEO_HEXIUM_ORION is not set 1101# CONFIG_VIDEO_HEXIUM_ORION is not set
1067# CONFIG_VIDEO_HEXIUM_GEMINI is not set 1102# CONFIG_VIDEO_HEXIUM_GEMINI is not set
1068# CONFIG_VIDEO_CX88 is not set 1103# CONFIG_VIDEO_CX88 is not set
1069# CONFIG_VIDEO_IVTV is not set 1104# CONFIG_VIDEO_IVTV is not set
1070# CONFIG_VIDEO_CAFE_CCIC is not set 1105# CONFIG_VIDEO_CAFE_CCIC is not set
1106CONFIG_SOC_CAMERA=m
1107CONFIG_SOC_CAMERA_MT9M001=m
1108CONFIG_SOC_CAMERA_MT9M111=m
1109CONFIG_SOC_CAMERA_MT9V022=m
1110CONFIG_SOC_CAMERA_PLATFORM=m
1111CONFIG_VIDEO_SH_MOBILE_CEU=m
1071CONFIG_V4L_USB_DRIVERS=y 1112CONFIG_V4L_USB_DRIVERS=y
1113CONFIG_USB_VIDEO_CLASS=m
1114CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
1115CONFIG_USB_GSPCA=m
1116CONFIG_USB_M5602=m
1117CONFIG_USB_GSPCA_CONEX=m
1118CONFIG_USB_GSPCA_ETOMS=m
1119CONFIG_USB_GSPCA_FINEPIX=m
1120CONFIG_USB_GSPCA_MARS=m
1121CONFIG_USB_GSPCA_OV519=m
1122CONFIG_USB_GSPCA_PAC207=m
1123CONFIG_USB_GSPCA_PAC7311=m
1124CONFIG_USB_GSPCA_SONIXB=m
1125CONFIG_USB_GSPCA_SONIXJ=m
1126CONFIG_USB_GSPCA_SPCA500=m
1127CONFIG_USB_GSPCA_SPCA501=m
1128CONFIG_USB_GSPCA_SPCA505=m
1129CONFIG_USB_GSPCA_SPCA506=m
1130CONFIG_USB_GSPCA_SPCA508=m
1131CONFIG_USB_GSPCA_SPCA561=m
1132CONFIG_USB_GSPCA_STK014=m
1133CONFIG_USB_GSPCA_SUNPLUS=m
1134CONFIG_USB_GSPCA_T613=m
1135CONFIG_USB_GSPCA_TV8532=m
1136CONFIG_USB_GSPCA_VC032X=m
1137CONFIG_USB_GSPCA_ZC3XX=m
1072# CONFIG_VIDEO_PVRUSB2 is not set 1138# CONFIG_VIDEO_PVRUSB2 is not set
1073# CONFIG_VIDEO_EM28XX is not set 1139# CONFIG_VIDEO_EM28XX is not set
1074# CONFIG_VIDEO_USBVISION is not set 1140# CONFIG_VIDEO_USBVISION is not set
@@ -1079,7 +1145,6 @@ CONFIG_USB_KONICAWC=m
1079CONFIG_USB_QUICKCAM_MESSENGER=m 1145CONFIG_USB_QUICKCAM_MESSENGER=m
1080CONFIG_USB_ET61X251=m 1146CONFIG_USB_ET61X251=m
1081# CONFIG_VIDEO_OVCAMCHIP is not set 1147# CONFIG_VIDEO_OVCAMCHIP is not set
1082# CONFIG_USB_W9968CF is not set
1083CONFIG_USB_OV511=m 1148CONFIG_USB_OV511=m
1084CONFIG_USB_SE401=m 1149CONFIG_USB_SE401=m
1085CONFIG_USB_SN9C102=m 1150CONFIG_USB_SN9C102=m
@@ -1088,6 +1153,8 @@ CONFIG_USB_ZC0301=m
1088CONFIG_USB_PWC=m 1153CONFIG_USB_PWC=m
1089# CONFIG_USB_PWC_DEBUG is not set 1154# CONFIG_USB_PWC_DEBUG is not set
1090# CONFIG_USB_ZR364XX is not set 1155# CONFIG_USB_ZR364XX is not set
1156CONFIG_USB_STKWEBCAM=m
1157CONFIG_USB_S2255=m
1091CONFIG_RADIO_ADAPTERS=y 1158CONFIG_RADIO_ADAPTERS=y
1092# CONFIG_RADIO_CADET is not set 1159# CONFIG_RADIO_CADET is not set
1093# CONFIG_RADIO_RTRACK is not set 1160# CONFIG_RADIO_RTRACK is not set
@@ -1104,33 +1171,30 @@ CONFIG_RADIO_ADAPTERS=y
1104# CONFIG_RADIO_TYPHOON is not set 1171# CONFIG_RADIO_TYPHOON is not set
1105# CONFIG_RADIO_ZOLTRIX is not set 1172# CONFIG_RADIO_ZOLTRIX is not set
1106# CONFIG_USB_DSBR is not set 1173# CONFIG_USB_DSBR is not set
1107# CONFIG_DVB_CORE is not set 1174CONFIG_USB_SI470X=m
1175CONFIG_USB_MR800=m
1108CONFIG_DAB=y 1176CONFIG_DAB=y
1109# CONFIG_USB_DABUSB is not set 1177# CONFIG_USB_DABUSB is not set
1110 1178
1111# 1179#
1112# Graphics support 1180# Graphics support
1113# 1181#
1114CONFIG_BACKLIGHT_LCD_SUPPORT=y 1182# CONFIG_DRM is not set
1115CONFIG_BACKLIGHT_CLASS_DEVICE=y
1116CONFIG_LCD_CLASS_DEVICE=m
1117
1118#
1119# Display device support
1120#
1121# CONFIG_DISPLAY_SUPPORT is not set
1122# CONFIG_VGASTATE is not set 1183# CONFIG_VGASTATE is not set
1184CONFIG_VIDEO_OUTPUT_CONTROL=m
1123CONFIG_FB=y 1185CONFIG_FB=y
1124# CONFIG_FIRMWARE_EDID is not set 1186# CONFIG_FIRMWARE_EDID is not set
1125# CONFIG_FB_DDC is not set 1187# CONFIG_FB_DDC is not set
1188# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1126CONFIG_FB_CFB_FILLRECT=y 1189CONFIG_FB_CFB_FILLRECT=y
1127CONFIG_FB_CFB_COPYAREA=y 1190CONFIG_FB_CFB_COPYAREA=y
1128CONFIG_FB_CFB_IMAGEBLIT=y 1191CONFIG_FB_CFB_IMAGEBLIT=y
1192# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1129# CONFIG_FB_SYS_FILLRECT is not set 1193# CONFIG_FB_SYS_FILLRECT is not set
1130# CONFIG_FB_SYS_COPYAREA is not set 1194# CONFIG_FB_SYS_COPYAREA is not set
1131# CONFIG_FB_SYS_IMAGEBLIT is not set 1195# CONFIG_FB_SYS_IMAGEBLIT is not set
1196# CONFIG_FB_FOREIGN_ENDIAN is not set
1132# CONFIG_FB_SYS_FOPS is not set 1197# CONFIG_FB_SYS_FOPS is not set
1133CONFIG_FB_DEFERRED_IO=y
1134# CONFIG_FB_SVGALIB is not set 1198# CONFIG_FB_SVGALIB is not set
1135# CONFIG_FB_MACMODES is not set 1199# CONFIG_FB_MACMODES is not set
1136CONFIG_FB_BACKLIGHT=y 1200CONFIG_FB_BACKLIGHT=y
@@ -1158,16 +1222,30 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1158# CONFIG_FB_S3 is not set 1222# CONFIG_FB_S3 is not set
1159# CONFIG_FB_SAVAGE is not set 1223# CONFIG_FB_SAVAGE is not set
1160# CONFIG_FB_SIS is not set 1224# CONFIG_FB_SIS is not set
1225# CONFIG_FB_VIA is not set
1161# CONFIG_FB_NEOMAGIC is not set 1226# CONFIG_FB_NEOMAGIC is not set
1162# CONFIG_FB_KYRO is not set 1227# CONFIG_FB_KYRO is not set
1163# CONFIG_FB_3DFX is not set 1228# CONFIG_FB_3DFX is not set
1164# CONFIG_FB_VOODOO1 is not set 1229# CONFIG_FB_VOODOO1 is not set
1165# CONFIG_FB_SMIVGX is not set
1166# CONFIG_FB_VT8623 is not set 1230# CONFIG_FB_VT8623 is not set
1167# CONFIG_FB_TRIDENT is not set 1231# CONFIG_FB_TRIDENT is not set
1168# CONFIG_FB_ARK is not set 1232# CONFIG_FB_ARK is not set
1169# CONFIG_FB_PM3 is not set 1233# CONFIG_FB_PM3 is not set
1234# CONFIG_FB_CARMINE is not set
1170# CONFIG_FB_VIRTUAL is not set 1235# CONFIG_FB_VIRTUAL is not set
1236# CONFIG_FB_METRONOME is not set
1237# CONFIG_FB_MB862XX is not set
1238CONFIG_BACKLIGHT_LCD_SUPPORT=y
1239CONFIG_LCD_CLASS_DEVICE=m
1240# CONFIG_LCD_ILI9320 is not set
1241# CONFIG_LCD_PLATFORM is not set
1242CONFIG_BACKLIGHT_CLASS_DEVICE=y
1243# CONFIG_BACKLIGHT_CORGI is not set
1244
1245#
1246# Display device support
1247#
1248# CONFIG_DISPLAY_SUPPORT is not set
1171 1249
1172# 1250#
1173# Console display driver support 1251# Console display driver support
@@ -1176,20 +1254,14 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1176# CONFIG_MDA_CONSOLE is not set 1254# CONFIG_MDA_CONSOLE is not set
1177CONFIG_DUMMY_CONSOLE=y 1255CONFIG_DUMMY_CONSOLE=y
1178CONFIG_FRAMEBUFFER_CONSOLE=y 1256CONFIG_FRAMEBUFFER_CONSOLE=y
1257# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1179# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 1258# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1180# CONFIG_FONTS is not set 1259# CONFIG_FONTS is not set
1181CONFIG_FONT_8x8=y 1260CONFIG_FONT_8x8=y
1182CONFIG_FONT_8x16=y 1261CONFIG_FONT_8x16=y
1183# CONFIG_LOGO is not set 1262# CONFIG_LOGO is not set
1184
1185#
1186# Sound
1187#
1188CONFIG_SOUND=y 1263CONFIG_SOUND=y
1189 1264CONFIG_SOUND_OSS_CORE=y
1190#
1191# Advanced Linux Sound Architecture
1192#
1193CONFIG_SND=m 1265CONFIG_SND=m
1194CONFIG_SND_TIMER=m 1266CONFIG_SND_TIMER=m
1195CONFIG_SND_PCM=m 1267CONFIG_SND_PCM=m
@@ -1201,28 +1273,22 @@ CONFIG_SND_MIXER_OSS=m
1201CONFIG_SND_PCM_OSS=m 1273CONFIG_SND_PCM_OSS=m
1202CONFIG_SND_PCM_OSS_PLUGINS=y 1274CONFIG_SND_PCM_OSS_PLUGINS=y
1203CONFIG_SND_SEQUENCER_OSS=y 1275CONFIG_SND_SEQUENCER_OSS=y
1204CONFIG_SND_RTCTIMER=m
1205CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
1206# CONFIG_SND_DYNAMIC_MINORS is not set 1276# CONFIG_SND_DYNAMIC_MINORS is not set
1207CONFIG_SND_SUPPORT_OLD_API=y 1277CONFIG_SND_SUPPORT_OLD_API=y
1208CONFIG_SND_VERBOSE_PROCFS=y 1278CONFIG_SND_VERBOSE_PROCFS=y
1209# CONFIG_SND_VERBOSE_PRINTK is not set 1279# CONFIG_SND_VERBOSE_PRINTK is not set
1210# CONFIG_SND_DEBUG is not set 1280# CONFIG_SND_DEBUG is not set
1211 1281CONFIG_SND_VMASTER=y
1212#
1213# Generic devices
1214#
1215CONFIG_SND_MPU401_UART=m 1282CONFIG_SND_MPU401_UART=m
1216CONFIG_SND_AC97_CODEC=m 1283CONFIG_SND_AC97_CODEC=m
1284CONFIG_SND_DRIVERS=y
1217# CONFIG_SND_DUMMY is not set 1285# CONFIG_SND_DUMMY is not set
1218# CONFIG_SND_VIRMIDI is not set 1286# CONFIG_SND_VIRMIDI is not set
1219# CONFIG_SND_MTPAV is not set 1287# CONFIG_SND_MTPAV is not set
1220# CONFIG_SND_SERIAL_U16550 is not set 1288# CONFIG_SND_SERIAL_U16550 is not set
1221# CONFIG_SND_MPU401 is not set 1289# CONFIG_SND_MPU401 is not set
1222 1290# CONFIG_SND_AC97_POWER_SAVE is not set
1223# 1291CONFIG_SND_PCI=y
1224# PCI devices
1225#
1226# CONFIG_SND_AD1889 is not set 1292# CONFIG_SND_AD1889 is not set
1227# CONFIG_SND_ALS300 is not set 1293# CONFIG_SND_ALS300 is not set
1228# CONFIG_SND_ALI5451 is not set 1294# CONFIG_SND_ALI5451 is not set
@@ -1231,10 +1297,12 @@ CONFIG_SND_AC97_CODEC=m
1231# CONFIG_SND_AU8810 is not set 1297# CONFIG_SND_AU8810 is not set
1232# CONFIG_SND_AU8820 is not set 1298# CONFIG_SND_AU8820 is not set
1233# CONFIG_SND_AU8830 is not set 1299# CONFIG_SND_AU8830 is not set
1300# CONFIG_SND_AW2 is not set
1234# CONFIG_SND_AZT3328 is not set 1301# CONFIG_SND_AZT3328 is not set
1235# CONFIG_SND_BT87X is not set 1302# CONFIG_SND_BT87X is not set
1236# CONFIG_SND_CA0106 is not set 1303# CONFIG_SND_CA0106 is not set
1237# CONFIG_SND_CMIPCI is not set 1304# CONFIG_SND_CMIPCI is not set
1305# CONFIG_SND_OXYGEN is not set
1238# CONFIG_SND_CS4281 is not set 1306# CONFIG_SND_CS4281 is not set
1239# CONFIG_SND_CS46XX is not set 1307# CONFIG_SND_CS46XX is not set
1240# CONFIG_SND_DARLA20 is not set 1308# CONFIG_SND_DARLA20 is not set
@@ -1259,6 +1327,7 @@ CONFIG_SND_AC97_CODEC=m
1259# CONFIG_SND_HDA_INTEL is not set 1327# CONFIG_SND_HDA_INTEL is not set
1260# CONFIG_SND_HDSP is not set 1328# CONFIG_SND_HDSP is not set
1261# CONFIG_SND_HDSPM is not set 1329# CONFIG_SND_HDSPM is not set
1330# CONFIG_SND_HIFIER is not set
1262# CONFIG_SND_ICE1712 is not set 1331# CONFIG_SND_ICE1712 is not set
1263# CONFIG_SND_ICE1724 is not set 1332# CONFIG_SND_ICE1724 is not set
1264# CONFIG_SND_INTEL8X0 is not set 1333# CONFIG_SND_INTEL8X0 is not set
@@ -1276,43 +1345,26 @@ CONFIG_SND_AC97_CODEC=m
1276# CONFIG_SND_TRIDENT is not set 1345# CONFIG_SND_TRIDENT is not set
1277CONFIG_SND_VIA82XX=m 1346CONFIG_SND_VIA82XX=m
1278# CONFIG_SND_VIA82XX_MODEM is not set 1347# CONFIG_SND_VIA82XX_MODEM is not set
1348# CONFIG_SND_VIRTUOSO is not set
1279# CONFIG_SND_VX222 is not set 1349# CONFIG_SND_VX222 is not set
1280# CONFIG_SND_YMFPCI is not set 1350# CONFIG_SND_YMFPCI is not set
1281# CONFIG_SND_AC97_POWER_SAVE is not set 1351CONFIG_SND_MIPS=y
1282 1352CONFIG_SND_USB=y
1283#
1284# ALSA MIPS devices
1285#
1286
1287#
1288# USB devices
1289#
1290# CONFIG_SND_USB_AUDIO is not set 1353# CONFIG_SND_USB_AUDIO is not set
1291# CONFIG_SND_USB_CAIAQ is not set 1354# CONFIG_SND_USB_CAIAQ is not set
1292
1293#
1294# System on Chip audio support
1295#
1296# CONFIG_SND_SOC is not set 1355# CONFIG_SND_SOC is not set
1297
1298#
1299# Open Sound System
1300#
1301# CONFIG_SOUND_PRIME is not set 1356# CONFIG_SOUND_PRIME is not set
1302CONFIG_AC97_BUS=m 1357CONFIG_AC97_BUS=m
1303 1358CONFIG_HID_SUPPORT=y
1304#
1305# HID Devices
1306#
1307CONFIG_HID=y 1359CONFIG_HID=y
1308# CONFIG_HID_DEBUG is not set 1360# CONFIG_HID_DEBUG is not set
1361CONFIG_HIDRAW=y
1309 1362
1310# 1363#
1311# USB Input Devices 1364# USB Input Devices
1312# 1365#
1313CONFIG_USB_HID=m 1366CONFIG_USB_HID=m
1314# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1367CONFIG_HID_PID=y
1315# CONFIG_HID_FF is not set
1316CONFIG_USB_HIDDEV=y 1368CONFIG_USB_HIDDEV=y
1317 1369
1318# 1370#
@@ -1322,13 +1374,39 @@ CONFIG_USB_HIDDEV=y
1322# CONFIG_USB_MOUSE is not set 1374# CONFIG_USB_MOUSE is not set
1323 1375
1324# 1376#
1325# USB support 1377# Special HID drivers
1326# 1378#
1379CONFIG_HID_COMPAT=y
1380CONFIG_HID_A4TECH=m
1381CONFIG_HID_APPLE=m
1382CONFIG_HID_BELKIN=m
1383CONFIG_HID_BRIGHT=m
1384CONFIG_HID_CHERRY=m
1385CONFIG_HID_CHICONY=m
1386CONFIG_HID_CYPRESS=m
1387CONFIG_HID_DELL=m
1388CONFIG_HID_EZKEY=m
1389CONFIG_HID_GYRATION=m
1390CONFIG_HID_LOGITECH=m
1391CONFIG_LOGITECH_FF=y
1392CONFIG_LOGIRUMBLEPAD2_FF=y
1393CONFIG_HID_MICROSOFT=m
1394CONFIG_HID_MONTEREY=m
1395CONFIG_HID_PANTHERLORD=m
1396# CONFIG_PANTHERLORD_FF is not set
1397CONFIG_HID_PETALYNX=m
1398CONFIG_HID_SAMSUNG=m
1399CONFIG_HID_SONY=m
1400CONFIG_HID_SUNPLUS=m
1401# CONFIG_THRUSTMASTER_FF is not set
1402CONFIG_ZEROPLUS_FF=m
1403CONFIG_USB_SUPPORT=y
1327CONFIG_USB_ARCH_HAS_HCD=y 1404CONFIG_USB_ARCH_HAS_HCD=y
1328CONFIG_USB_ARCH_HAS_OHCI=y 1405CONFIG_USB_ARCH_HAS_OHCI=y
1329CONFIG_USB_ARCH_HAS_EHCI=y 1406CONFIG_USB_ARCH_HAS_EHCI=y
1330CONFIG_USB=y 1407CONFIG_USB=y
1331# CONFIG_USB_DEBUG is not set 1408# CONFIG_USB_DEBUG is not set
1409CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
1332 1410
1333# 1411#
1334# Miscellaneous USB options 1412# Miscellaneous USB options
@@ -1338,35 +1416,46 @@ CONFIG_USB_DEVICEFS=y
1338# CONFIG_USB_DYNAMIC_MINORS is not set 1416# CONFIG_USB_DYNAMIC_MINORS is not set
1339# CONFIG_USB_SUSPEND is not set 1417# CONFIG_USB_SUSPEND is not set
1340# CONFIG_USB_OTG is not set 1418# CONFIG_USB_OTG is not set
1419CONFIG_USB_OTG_WHITELIST=y
1420# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1421# CONFIG_USB_MON is not set
1422# CONFIG_USB_WUSB is not set
1423CONFIG_USB_WUSB_CBAF=m
1424# CONFIG_USB_WUSB_CBAF_DEBUG is not set
1341 1425
1342# 1426#
1343# USB Host Controller Drivers 1427# USB Host Controller Drivers
1344# 1428#
1429CONFIG_USB_C67X00_HCD=m
1345CONFIG_USB_EHCI_HCD=y 1430CONFIG_USB_EHCI_HCD=y
1346CONFIG_USB_EHCI_SPLIT_ISO=y
1347CONFIG_USB_EHCI_ROOT_HUB_TT=y 1431CONFIG_USB_EHCI_ROOT_HUB_TT=y
1348CONFIG_USB_EHCI_TT_NEWSCHED=y 1432CONFIG_USB_EHCI_TT_NEWSCHED=y
1349# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
1350# CONFIG_USB_ISP116X_HCD is not set 1433# CONFIG_USB_ISP116X_HCD is not set
1434CONFIG_USB_ISP1760_HCD=m
1351CONFIG_USB_OHCI_HCD=y 1435CONFIG_USB_OHCI_HCD=y
1352# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1436# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1353# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1437# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1354CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1438CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1355CONFIG_USB_UHCI_HCD=m 1439CONFIG_USB_UHCI_HCD=m
1356# CONFIG_USB_SL811_HCD is not set 1440# CONFIG_USB_SL811_HCD is not set
1441CONFIG_USB_R8A66597_HCD=m
1442# CONFIG_USB_WHCI_HCD is not set
1443# CONFIG_USB_HWA_HCD is not set
1357 1444
1358# 1445#
1359# USB Device Class drivers 1446# USB Device Class drivers
1360# 1447#
1361CONFIG_USB_ACM=y 1448CONFIG_USB_ACM=y
1362CONFIG_USB_PRINTER=y 1449CONFIG_USB_PRINTER=y
1450CONFIG_USB_WDM=m
1451CONFIG_USB_TMC=m
1363 1452
1364# 1453#
1365# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1454# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1366# 1455#
1367 1456
1368# 1457#
1369# may also be needed; see USB_STORAGE Help for more information 1458# see USB_STORAGE Help for more information
1370# 1459#
1371CONFIG_USB_STORAGE=y 1460CONFIG_USB_STORAGE=y
1372# CONFIG_USB_STORAGE_DEBUG is not set 1461# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1379,7 +1468,9 @@ CONFIG_USB_STORAGE=y
1379# CONFIG_USB_STORAGE_SDDR55 is not set 1468# CONFIG_USB_STORAGE_SDDR55 is not set
1380# CONFIG_USB_STORAGE_JUMPSHOT is not set 1469# CONFIG_USB_STORAGE_JUMPSHOT is not set
1381# CONFIG_USB_STORAGE_ALAUDA is not set 1470# CONFIG_USB_STORAGE_ALAUDA is not set
1471CONFIG_USB_STORAGE_ONETOUCH=y
1382# CONFIG_USB_STORAGE_KARMA is not set 1472# CONFIG_USB_STORAGE_KARMA is not set
1473CONFIG_USB_STORAGE_CYPRESS_ATACB=y
1383CONFIG_USB_LIBUSUAL=y 1474CONFIG_USB_LIBUSUAL=y
1384 1475
1385# 1476#
@@ -1387,15 +1478,10 @@ CONFIG_USB_LIBUSUAL=y
1387# 1478#
1388# CONFIG_USB_MDC800 is not set 1479# CONFIG_USB_MDC800 is not set
1389# CONFIG_USB_MICROTEK is not set 1480# CONFIG_USB_MICROTEK is not set
1390# CONFIG_USB_MON is not set
1391 1481
1392# 1482#
1393# USB port drivers 1483# USB port drivers
1394# 1484#
1395
1396#
1397# USB Serial Converter support
1398#
1399# CONFIG_USB_SERIAL is not set 1485# CONFIG_USB_SERIAL is not set
1400 1486
1401# 1487#
@@ -1404,7 +1490,7 @@ CONFIG_USB_LIBUSUAL=y
1404# CONFIG_USB_EMI62 is not set 1490# CONFIG_USB_EMI62 is not set
1405# CONFIG_USB_EMI26 is not set 1491# CONFIG_USB_EMI26 is not set
1406# CONFIG_USB_ADUTUX is not set 1492# CONFIG_USB_ADUTUX is not set
1407# CONFIG_USB_AUERSWALD is not set 1493CONFIG_USB_SEVSEG=m
1408# CONFIG_USB_RIO500 is not set 1494# CONFIG_USB_RIO500 is not set
1409# CONFIG_USB_LEGOTOWER is not set 1495# CONFIG_USB_LEGOTOWER is not set
1410# CONFIG_USB_LCD is not set 1496# CONFIG_USB_LCD is not set
@@ -1421,56 +1507,75 @@ CONFIG_USB_LIBUSUAL=y
1421# CONFIG_USB_TRANCEVIBRATOR is not set 1507# CONFIG_USB_TRANCEVIBRATOR is not set
1422# CONFIG_USB_IOWARRIOR is not set 1508# CONFIG_USB_IOWARRIOR is not set
1423# CONFIG_USB_TEST is not set 1509# CONFIG_USB_TEST is not set
1424 1510CONFIG_USB_ISIGHTFW=m
1425# 1511CONFIG_USB_VST=m
1426# USB DSL modem support
1427#
1428
1429#
1430# USB Gadget Support
1431#
1432# CONFIG_USB_GADGET is not set 1512# CONFIG_USB_GADGET is not set
1513# CONFIG_UWB is not set
1433# CONFIG_MMC is not set 1514# CONFIG_MMC is not set
1434 1515# CONFIG_MEMSTICK is not set
1435#
1436# LED devices
1437#
1438# CONFIG_NEW_LEDS is not set 1516# CONFIG_NEW_LEDS is not set
1439 1517# CONFIG_ACCESSIBILITY is not set
1440#
1441# LED drivers
1442#
1443
1444#
1445# LED Triggers
1446#
1447
1448#
1449# InfiniBand support
1450#
1451# CONFIG_INFINIBAND is not set 1518# CONFIG_INFINIBAND is not set
1519CONFIG_RTC_LIB=y
1520CONFIG_RTC_CLASS=m
1452 1521
1453# 1522#
1454# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1523# RTC interfaces
1455# 1524#
1525CONFIG_RTC_INTF_SYSFS=y
1526CONFIG_RTC_INTF_PROC=y
1527CONFIG_RTC_INTF_DEV=y
1528CONFIG_RTC_INTF_DEV_UIE_EMUL=y
1529# CONFIG_RTC_DRV_TEST is not set
1456 1530
1457# 1531#
1458# Real Time Clock 1532# I2C RTC drivers
1459# 1533#
1460# CONFIG_RTC_CLASS is not set 1534# CONFIG_RTC_DRV_DS1307 is not set
1535# CONFIG_RTC_DRV_DS1374 is not set
1536# CONFIG_RTC_DRV_DS1672 is not set
1537# CONFIG_RTC_DRV_MAX6900 is not set
1538# CONFIG_RTC_DRV_RS5C372 is not set
1539# CONFIG_RTC_DRV_ISL1208 is not set
1540# CONFIG_RTC_DRV_X1205 is not set
1541# CONFIG_RTC_DRV_PCF8563 is not set
1542# CONFIG_RTC_DRV_PCF8583 is not set
1543# CONFIG_RTC_DRV_M41T80 is not set
1544# CONFIG_RTC_DRV_S35390A is not set
1545# CONFIG_RTC_DRV_FM3130 is not set
1546# CONFIG_RTC_DRV_RX8581 is not set
1461 1547
1462# 1548#
1463# DMA Engine support 1549# SPI RTC drivers
1464# 1550#
1465# CONFIG_DMA_ENGINE is not set
1466 1551
1467# 1552#
1468# DMA Clients 1553# Platform RTC drivers
1469# 1554#
1555CONFIG_RTC_DRV_CMOS=m
1556# CONFIG_RTC_DRV_DS1286 is not set
1557# CONFIG_RTC_DRV_DS1511 is not set
1558# CONFIG_RTC_DRV_DS1553 is not set
1559# CONFIG_RTC_DRV_DS1742 is not set
1560# CONFIG_RTC_DRV_STK17TA8 is not set
1561# CONFIG_RTC_DRV_M48T86 is not set
1562# CONFIG_RTC_DRV_M48T35 is not set
1563# CONFIG_RTC_DRV_M48T59 is not set
1564# CONFIG_RTC_DRV_BQ4802 is not set
1565# CONFIG_RTC_DRV_V3020 is not set
1470 1566
1471# 1567#
1472# DMA Devices 1568# on-CPU RTC drivers
1473# 1569#
1570# CONFIG_DMADEVICES is not set
1571CONFIG_UIO=m
1572CONFIG_UIO_CIF=m
1573# CONFIG_UIO_PDRV is not set
1574# CONFIG_UIO_PDRV_GENIRQ is not set
1575# CONFIG_UIO_SMX is not set
1576# CONFIG_UIO_SERCOS3 is not set
1577# CONFIG_STAGING is not set
1578CONFIG_STAGING_EXCLUDE_BUILD=y
1474 1579
1475# 1580#
1476# File systems 1581# File systems
@@ -1478,27 +1583,31 @@ CONFIG_USB_LIBUSUAL=y
1478CONFIG_EXT2_FS=y 1583CONFIG_EXT2_FS=y
1479# CONFIG_EXT2_FS_XATTR is not set 1584# CONFIG_EXT2_FS_XATTR is not set
1480CONFIG_EXT2_FS_XIP=y 1585CONFIG_EXT2_FS_XIP=y
1481CONFIG_FS_XIP=y
1482CONFIG_EXT3_FS=y 1586CONFIG_EXT3_FS=y
1483# CONFIG_EXT3_FS_XATTR is not set 1587# CONFIG_EXT3_FS_XATTR is not set
1484# CONFIG_EXT4DEV_FS is not set 1588CONFIG_EXT4_FS=m
1589CONFIG_EXT4DEV_COMPAT=y
1590CONFIG_EXT4_FS_XATTR=y
1591CONFIG_EXT4_FS_POSIX_ACL=y
1592CONFIG_EXT4_FS_SECURITY=y
1593CONFIG_FS_XIP=y
1485CONFIG_JBD=y 1594CONFIG_JBD=y
1486# CONFIG_JBD_DEBUG is not set 1595CONFIG_JBD2=m
1596CONFIG_FS_MBCACHE=m
1487CONFIG_REISERFS_FS=m 1597CONFIG_REISERFS_FS=m
1488# CONFIG_REISERFS_CHECK is not set 1598# CONFIG_REISERFS_CHECK is not set
1489# CONFIG_REISERFS_PROC_INFO is not set 1599# CONFIG_REISERFS_PROC_INFO is not set
1490# CONFIG_REISERFS_FS_XATTR is not set 1600# CONFIG_REISERFS_FS_XATTR is not set
1491# CONFIG_JFS_FS is not set 1601# CONFIG_JFS_FS is not set
1492CONFIG_FS_POSIX_ACL=y 1602CONFIG_FS_POSIX_ACL=y
1603CONFIG_FILE_LOCKING=y
1493# CONFIG_XFS_FS is not set 1604# CONFIG_XFS_FS is not set
1494# CONFIG_GFS2_FS is not set 1605# CONFIG_GFS2_FS is not set
1495# CONFIG_OCFS2_FS is not set 1606# CONFIG_OCFS2_FS is not set
1496# CONFIG_MINIX_FS is not set 1607CONFIG_DNOTIFY=y
1497# CONFIG_ROMFS_FS is not set
1498CONFIG_INOTIFY=y 1608CONFIG_INOTIFY=y
1499CONFIG_INOTIFY_USER=y 1609CONFIG_INOTIFY_USER=y
1500# CONFIG_QUOTA is not set 1610# CONFIG_QUOTA is not set
1501CONFIG_DNOTIFY=y
1502CONFIG_AUTOFS_FS=y 1611CONFIG_AUTOFS_FS=y
1503CONFIG_AUTOFS4_FS=y 1612CONFIG_AUTOFS4_FS=y
1504CONFIG_FUSE_FS=y 1613CONFIG_FUSE_FS=y
@@ -1530,11 +1639,11 @@ CONFIG_NTFS_RW=y
1530CONFIG_PROC_FS=y 1639CONFIG_PROC_FS=y
1531CONFIG_PROC_KCORE=y 1640CONFIG_PROC_KCORE=y
1532CONFIG_PROC_SYSCTL=y 1641CONFIG_PROC_SYSCTL=y
1642CONFIG_PROC_PAGE_MONITOR=y
1533CONFIG_SYSFS=y 1643CONFIG_SYSFS=y
1534CONFIG_TMPFS=y 1644CONFIG_TMPFS=y
1535# CONFIG_TMPFS_POSIX_ACL is not set 1645# CONFIG_TMPFS_POSIX_ACL is not set
1536# CONFIG_HUGETLB_PAGE is not set 1646# CONFIG_HUGETLB_PAGE is not set
1537CONFIG_RAMFS=y
1538# CONFIG_CONFIGFS_FS is not set 1647# CONFIG_CONFIGFS_FS is not set
1539 1648
1540# 1649#
@@ -1550,25 +1659,23 @@ CONFIG_RAMFS=y
1550# CONFIG_JFFS2_FS is not set 1659# CONFIG_JFFS2_FS is not set
1551# CONFIG_CRAMFS is not set 1660# CONFIG_CRAMFS is not set
1552# CONFIG_VXFS_FS is not set 1661# CONFIG_VXFS_FS is not set
1662# CONFIG_MINIX_FS is not set
1663CONFIG_OMFS_FS=m
1553# CONFIG_HPFS_FS is not set 1664# CONFIG_HPFS_FS is not set
1554# CONFIG_QNX4FS_FS is not set 1665# CONFIG_QNX4FS_FS is not set
1666# CONFIG_ROMFS_FS is not set
1555# CONFIG_SYSV_FS is not set 1667# CONFIG_SYSV_FS is not set
1556# CONFIG_UFS_FS is not set 1668# CONFIG_UFS_FS is not set
1557 1669CONFIG_NETWORK_FILESYSTEMS=y
1558#
1559# Network File Systems
1560#
1561CONFIG_NFS_FS=m 1670CONFIG_NFS_FS=m
1562CONFIG_NFS_V3=y 1671CONFIG_NFS_V3=y
1563CONFIG_NFS_V3_ACL=y 1672CONFIG_NFS_V3_ACL=y
1564CONFIG_NFS_V4=y 1673CONFIG_NFS_V4=y
1565CONFIG_NFS_DIRECTIO=y
1566CONFIG_NFSD=m 1674CONFIG_NFSD=m
1567CONFIG_NFSD_V2_ACL=y 1675CONFIG_NFSD_V2_ACL=y
1568CONFIG_NFSD_V3=y 1676CONFIG_NFSD_V3=y
1569CONFIG_NFSD_V3_ACL=y 1677CONFIG_NFSD_V3_ACL=y
1570CONFIG_NFSD_V4=y 1678CONFIG_NFSD_V4=y
1571CONFIG_NFSD_TCP=y
1572CONFIG_LOCKD=m 1679CONFIG_LOCKD=m
1573CONFIG_LOCKD_V4=y 1680CONFIG_LOCKD_V4=y
1574CONFIG_EXPORTFS=m 1681CONFIG_EXPORTFS=m
@@ -1576,7 +1683,7 @@ CONFIG_NFS_ACL_SUPPORT=m
1576CONFIG_NFS_COMMON=y 1683CONFIG_NFS_COMMON=y
1577CONFIG_SUNRPC=m 1684CONFIG_SUNRPC=m
1578CONFIG_SUNRPC_GSS=m 1685CONFIG_SUNRPC_GSS=m
1579# CONFIG_SUNRPC_BIND34 is not set 1686# CONFIG_SUNRPC_REGISTER_V4 is not set
1580CONFIG_RPCSEC_GSS_KRB5=m 1687CONFIG_RPCSEC_GSS_KRB5=m
1581# CONFIG_RPCSEC_GSS_SPKM3 is not set 1688# CONFIG_RPCSEC_GSS_SPKM3 is not set
1582CONFIG_SMB_FS=m 1689CONFIG_SMB_FS=m
@@ -1616,10 +1723,6 @@ CONFIG_MSDOS_PARTITION=y
1616# CONFIG_KARMA_PARTITION is not set 1723# CONFIG_KARMA_PARTITION is not set
1617# CONFIG_EFI_PARTITION is not set 1724# CONFIG_EFI_PARTITION is not set
1618# CONFIG_SYSV68_PARTITION is not set 1725# CONFIG_SYSV68_PARTITION is not set
1619
1620#
1621# Native Language Support
1622#
1623CONFIG_NLS=y 1726CONFIG_NLS=y
1624CONFIG_NLS_DEFAULT="utf8" 1727CONFIG_NLS_DEFAULT="utf8"
1625# CONFIG_NLS_CODEPAGE_437 is not set 1728# CONFIG_NLS_CODEPAGE_437 is not set
@@ -1660,30 +1763,31 @@ CONFIG_NLS_ISO8859_1=y
1660# CONFIG_NLS_KOI8_R is not set 1763# CONFIG_NLS_KOI8_R is not set
1661# CONFIG_NLS_KOI8_U is not set 1764# CONFIG_NLS_KOI8_U is not set
1662CONFIG_NLS_UTF8=y 1765CONFIG_NLS_UTF8=y
1663
1664#
1665# Distributed Lock Manager
1666#
1667# CONFIG_DLM is not set 1766# CONFIG_DLM is not set
1668 1767
1669# 1768#
1670# Profiling support
1671#
1672CONFIG_PROFILING=y
1673CONFIG_OPROFILE=m
1674
1675#
1676# Kernel hacking 1769# Kernel hacking
1677# 1770#
1678CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1771CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1679# CONFIG_PRINTK_TIME is not set 1772# CONFIG_PRINTK_TIME is not set
1773CONFIG_ENABLE_WARN_DEPRECATED=y
1680# CONFIG_ENABLE_MUST_CHECK is not set 1774# CONFIG_ENABLE_MUST_CHECK is not set
1775CONFIG_FRAME_WARN=2048
1681# CONFIG_MAGIC_SYSRQ is not set 1776# CONFIG_MAGIC_SYSRQ is not set
1682# CONFIG_UNUSED_SYMBOLS is not set 1777# CONFIG_UNUSED_SYMBOLS is not set
1683# CONFIG_DEBUG_FS is not set 1778# CONFIG_DEBUG_FS is not set
1684# CONFIG_HEADERS_CHECK is not set 1779# CONFIG_HEADERS_CHECK is not set
1685# CONFIG_DEBUG_KERNEL is not set 1780# CONFIG_DEBUG_KERNEL is not set
1686CONFIG_CROSSCOMPILE=y 1781# CONFIG_DEBUG_MEMORY_INIT is not set
1782# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1783CONFIG_SYSCTL_SYSCALL_CHECK=y
1784
1785#
1786# Tracers
1787#
1788CONFIG_DYNAMIC_PRINTK_DEBUG=y
1789# CONFIG_SAMPLES is not set
1790CONFIG_HAVE_ARCH_KGDB=y
1687CONFIG_CMDLINE="" 1791CONFIG_CMDLINE=""
1688 1792
1689# 1793#
@@ -1691,64 +1795,113 @@ CONFIG_CMDLINE=""
1691# 1795#
1692# CONFIG_KEYS is not set 1796# CONFIG_KEYS is not set
1693# CONFIG_SECURITY is not set 1797# CONFIG_SECURITY is not set
1798# CONFIG_SECURITYFS is not set
1799CONFIG_SECURITY_FILE_CAPABILITIES=y
1800CONFIG_CRYPTO=y
1694 1801
1695# 1802#
1696# Cryptographic options 1803# Crypto core or helper
1697# 1804#
1698CONFIG_CRYPTO=y 1805CONFIG_CRYPTO_FIPS=y
1699CONFIG_CRYPTO_ALGAPI=y 1806CONFIG_CRYPTO_ALGAPI=y
1700CONFIG_CRYPTO_BLKCIPHER=m 1807CONFIG_CRYPTO_AEAD=y
1808CONFIG_CRYPTO_BLKCIPHER=y
1701CONFIG_CRYPTO_HASH=y 1809CONFIG_CRYPTO_HASH=y
1810CONFIG_CRYPTO_RNG=y
1702CONFIG_CRYPTO_MANAGER=y 1811CONFIG_CRYPTO_MANAGER=y
1812CONFIG_CRYPTO_GF128MUL=m
1813# CONFIG_CRYPTO_NULL is not set
1814# CONFIG_CRYPTO_CRYPTD is not set
1815CONFIG_CRYPTO_AUTHENC=m
1816# CONFIG_CRYPTO_TEST is not set
1817
1818#
1819# Authenticated Encryption with Associated Data
1820#
1821CONFIG_CRYPTO_CCM=m
1822CONFIG_CRYPTO_GCM=m
1823CONFIG_CRYPTO_SEQIV=m
1824
1825#
1826# Block modes
1827#
1828CONFIG_CRYPTO_CBC=m
1829CONFIG_CRYPTO_CTR=m
1830CONFIG_CRYPTO_CTS=m
1831CONFIG_CRYPTO_ECB=m
1832# CONFIG_CRYPTO_LRW is not set
1833CONFIG_CRYPTO_PCBC=m
1834CONFIG_CRYPTO_XTS=m
1835
1836#
1837# Hash modes
1838#
1703CONFIG_CRYPTO_HMAC=y 1839CONFIG_CRYPTO_HMAC=y
1704# CONFIG_CRYPTO_XCBC is not set 1840# CONFIG_CRYPTO_XCBC is not set
1705# CONFIG_CRYPTO_NULL is not set 1841
1842#
1843# Digest
1844#
1845# CONFIG_CRYPTO_CRC32C is not set
1706# CONFIG_CRYPTO_MD4 is not set 1846# CONFIG_CRYPTO_MD4 is not set
1707CONFIG_CRYPTO_MD5=m 1847CONFIG_CRYPTO_MD5=m
1848# CONFIG_CRYPTO_MICHAEL_MIC is not set
1849CONFIG_CRYPTO_RMD128=m
1850CONFIG_CRYPTO_RMD160=m
1851CONFIG_CRYPTO_RMD256=m
1852CONFIG_CRYPTO_RMD320=m
1708CONFIG_CRYPTO_SHA1=m 1853CONFIG_CRYPTO_SHA1=m
1709# CONFIG_CRYPTO_SHA256 is not set 1854# CONFIG_CRYPTO_SHA256 is not set
1710# CONFIG_CRYPTO_SHA512 is not set 1855# CONFIG_CRYPTO_SHA512 is not set
1711# CONFIG_CRYPTO_WP512 is not set
1712# CONFIG_CRYPTO_TGR192 is not set 1856# CONFIG_CRYPTO_TGR192 is not set
1713# CONFIG_CRYPTO_GF128MUL is not set 1857# CONFIG_CRYPTO_WP512 is not set
1714CONFIG_CRYPTO_ECB=m 1858
1715CONFIG_CRYPTO_CBC=m 1859#
1716CONFIG_CRYPTO_PCBC=m 1860# Ciphers
1717# CONFIG_CRYPTO_LRW is not set 1861#
1718# CONFIG_CRYPTO_CRYPTD is not set 1862CONFIG_CRYPTO_AES=m
1719CONFIG_CRYPTO_DES=m 1863# CONFIG_CRYPTO_ANUBIS is not set
1720# CONFIG_CRYPTO_FCRYPT is not set 1864CONFIG_CRYPTO_ARC4=m
1721# CONFIG_CRYPTO_BLOWFISH is not set 1865# CONFIG_CRYPTO_BLOWFISH is not set
1722# CONFIG_CRYPTO_TWOFISH is not set 1866# CONFIG_CRYPTO_CAMELLIA is not set
1723# CONFIG_CRYPTO_SERPENT is not set
1724# CONFIG_CRYPTO_AES is not set
1725# CONFIG_CRYPTO_CAST5 is not set 1867# CONFIG_CRYPTO_CAST5 is not set
1726# CONFIG_CRYPTO_CAST6 is not set 1868# CONFIG_CRYPTO_CAST6 is not set
1727# CONFIG_CRYPTO_TEA is not set 1869CONFIG_CRYPTO_DES=m
1728CONFIG_CRYPTO_ARC4=m 1870# CONFIG_CRYPTO_FCRYPT is not set
1729# CONFIG_CRYPTO_KHAZAD is not set 1871# CONFIG_CRYPTO_KHAZAD is not set
1730# CONFIG_CRYPTO_ANUBIS is not set 1872CONFIG_CRYPTO_SALSA20=m
1873CONFIG_CRYPTO_SEED=m
1874# CONFIG_CRYPTO_SERPENT is not set
1875# CONFIG_CRYPTO_TEA is not set
1876# CONFIG_CRYPTO_TWOFISH is not set
1877
1878#
1879# Compression
1880#
1731CONFIG_CRYPTO_DEFLATE=m 1881CONFIG_CRYPTO_DEFLATE=m
1732# CONFIG_CRYPTO_MICHAEL_MIC is not set 1882CONFIG_CRYPTO_LZO=m
1733# CONFIG_CRYPTO_CRC32C is not set
1734# CONFIG_CRYPTO_CAMELLIA is not set
1735# CONFIG_CRYPTO_TEST is not set
1736 1883
1737# 1884#
1738# Hardware crypto devices 1885# Random Number Generation
1739# 1886#
1887CONFIG_CRYPTO_ANSI_CPRNG=m
1888# CONFIG_CRYPTO_HW is not set
1740 1889
1741# 1890#
1742# Library routines 1891# Library routines
1743# 1892#
1744CONFIG_BITREVERSE=y 1893CONFIG_BITREVERSE=y
1745CONFIG_CRC_CCITT=y 1894CONFIG_CRC_CCITT=y
1746# CONFIG_CRC16 is not set 1895CONFIG_CRC16=m
1747# CONFIG_CRC_ITU_T is not set 1896# CONFIG_CRC_T10DIF is not set
1897CONFIG_CRC_ITU_T=m
1748CONFIG_CRC32=y 1898CONFIG_CRC32=y
1899CONFIG_CRC7=m
1749# CONFIG_LIBCRC32C is not set 1900# CONFIG_LIBCRC32C is not set
1750CONFIG_ZLIB_INFLATE=m 1901CONFIG_ZLIB_INFLATE=m
1751CONFIG_ZLIB_DEFLATE=m 1902CONFIG_ZLIB_DEFLATE=m
1903CONFIG_LZO_COMPRESS=m
1904CONFIG_LZO_DECOMPRESS=m
1752CONFIG_TEXTSEARCH=y 1905CONFIG_TEXTSEARCH=y
1753CONFIG_TEXTSEARCH_KMP=m 1906CONFIG_TEXTSEARCH_KMP=m
1754CONFIG_TEXTSEARCH_BM=m 1907CONFIG_TEXTSEARCH_BM=m
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig
index f719bf5e01aa..115822876417 100644
--- a/arch/mips/configs/ip22_defconfig
+++ b/arch/mips/configs/ip22_defconfig
@@ -1,30 +1,34 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc2 3# Linux kernel version: 2.6.28-rc6
4# Tue Aug 7 12:39:49 2007 4# Fri Nov 28 15:41:33 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
13# CONFIG_BASLER_EXCITE is not set 12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
16# CONFIG_MACH_JAZZ is not set 16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
17# CONFIG_LEMOTE_FULONG is not set 18# CONFIG_LEMOTE_FULONG is not set
18# CONFIG_MIPS_MALTA is not set 19# CONFIG_MIPS_MALTA is not set
19# CONFIG_MIPS_SIM is not set 20# CONFIG_MIPS_SIM is not set
20# CONFIG_MARKEINS is not set 21# CONFIG_MACH_EMMA is not set
21# CONFIG_MACH_VR41XX is not set 22# CONFIG_MACH_VR41XX is not set
23# CONFIG_NXP_STB220 is not set
24# CONFIG_NXP_STB225 is not set
22# CONFIG_PNX8550_JBS is not set 25# CONFIG_PNX8550_JBS is not set
23# CONFIG_PNX8550_STB810 is not set 26# CONFIG_PNX8550_STB810 is not set
24# CONFIG_PMC_MSP is not set 27# CONFIG_PMC_MSP is not set
25# CONFIG_PMC_YOSEMITE is not set 28# CONFIG_PMC_YOSEMITE is not set
26CONFIG_SGI_IP22=y 29CONFIG_SGI_IP22=y
27# CONFIG_SGI_IP27 is not set 30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
28# CONFIG_SGI_IP32 is not set 32# CONFIG_SGI_IP32 is not set
29# CONFIG_SIBYTE_CRHINE is not set 33# CONFIG_SIBYTE_CRHINE is not set
30# CONFIG_SIBYTE_CARMEL is not set 34# CONFIG_SIBYTE_CARMEL is not set
@@ -35,34 +39,49 @@ CONFIG_SGI_IP22=y
35# CONFIG_SIBYTE_SENTOSA is not set 39# CONFIG_SIBYTE_SENTOSA is not set
36# CONFIG_SIBYTE_BIGSUR is not set 40# CONFIG_SIBYTE_BIGSUR is not set
37# CONFIG_SNI_RM is not set 41# CONFIG_SNI_RM is not set
38# CONFIG_TOSHIBA_JMR3927 is not set 42# CONFIG_MACH_TX39XX is not set
39# CONFIG_TOSHIBA_RBTX4927 is not set 43# CONFIG_MACH_TX49XX is not set
40# CONFIG_TOSHIBA_RBTX4938 is not set 44# CONFIG_MIKROTIK_RB532 is not set
41# CONFIG_WR_PPMC is not set 45# CONFIG_WR_PPMC is not set
42CONFIG_RWSEM_GENERIC_SPINLOCK=y 46CONFIG_RWSEM_GENERIC_SPINLOCK=y
43# CONFIG_ARCH_HAS_ILOG2_U32 is not set 47# CONFIG_ARCH_HAS_ILOG2_U32 is not set
44# CONFIG_ARCH_HAS_ILOG2_U64 is not set 48# CONFIG_ARCH_HAS_ILOG2_U64 is not set
49CONFIG_ARCH_SUPPORTS_OPROFILE=y
45CONFIG_GENERIC_FIND_NEXT_BIT=y 50CONFIG_GENERIC_FIND_NEXT_BIT=y
46CONFIG_GENERIC_HWEIGHT=y 51CONFIG_GENERIC_HWEIGHT=y
47CONFIG_GENERIC_CALIBRATE_DELAY=y 52CONFIG_GENERIC_CALIBRATE_DELAY=y
53CONFIG_GENERIC_CLOCKEVENTS=y
48CONFIG_GENERIC_TIME=y 54CONFIG_GENERIC_TIME=y
55CONFIG_GENERIC_CMOS_UPDATE=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 56CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
50# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 57# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
51CONFIG_ARC=y 58CONFIG_ARC=y
59CONFIG_CEVT_R4K=y
60CONFIG_CSRC_R4K=y
52CONFIG_DMA_NONCOHERENT=y 61CONFIG_DMA_NONCOHERENT=y
53CONFIG_DMA_NEED_PCI_MAP_STATE=y 62CONFIG_DMA_NEED_PCI_MAP_STATE=y
54CONFIG_EARLY_PRINTK=y 63CONFIG_EARLY_PRINTK=y
55CONFIG_SYS_HAS_EARLY_PRINTK=y 64CONFIG_SYS_HAS_EARLY_PRINTK=y
65# CONFIG_HOTPLUG_CPU is not set
66CONFIG_I8259=y
56# CONFIG_NO_IOPORT is not set 67# CONFIG_NO_IOPORT is not set
68CONFIG_GENERIC_ISA_DMA=y
57CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y 69CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y
58CONFIG_CPU_BIG_ENDIAN=y 70CONFIG_CPU_BIG_ENDIAN=y
59# CONFIG_CPU_LITTLE_ENDIAN is not set 71# CONFIG_CPU_LITTLE_ENDIAN is not set
60CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 72CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
61CONFIG_IRQ_CPU=y 73CONFIG_IRQ_CPU=y
62CONFIG_SWAP_IO_SPACE=y 74CONFIG_SWAP_IO_SPACE=y
75CONFIG_SGI_HAS_INDYDOG=y
76CONFIG_SGI_HAS_HAL2=y
77CONFIG_SGI_HAS_SEEQ=y
78CONFIG_SGI_HAS_WD93=y
79CONFIG_SGI_HAS_ZILOG=y
80CONFIG_SGI_HAS_I8042=y
81CONFIG_DEFAULT_SGI_PARTITION=y
63CONFIG_ARC32=y 82CONFIG_ARC32=y
64CONFIG_BOOT_ELF32=y 83CONFIG_BOOT_ELF32=y
65CONFIG_MIPS_L1_CACHE_SHIFT=5 84CONFIG_MIPS_L1_CACHE_SHIFT=7
66CONFIG_ARC_CONSOLE=y 85CONFIG_ARC_CONSOLE=y
67CONFIG_ARC_PROMLIB=y 86CONFIG_ARC_PROMLIB=y
68 87
@@ -82,6 +101,7 @@ CONFIG_ARC_PROMLIB=y
82# CONFIG_CPU_TX49XX is not set 101# CONFIG_CPU_TX49XX is not set
83CONFIG_CPU_R5000=y 102CONFIG_CPU_R5000=y
84# CONFIG_CPU_R5432 is not set 103# CONFIG_CPU_R5432 is not set
104# CONFIG_CPU_R5500 is not set
85# CONFIG_CPU_R6000 is not set 105# CONFIG_CPU_R6000 is not set
86# CONFIG_CPU_NEVADA is not set 106# CONFIG_CPU_NEVADA is not set
87# CONFIG_CPU_R8000 is not set 107# CONFIG_CPU_R8000 is not set
@@ -115,18 +135,24 @@ CONFIG_CPU_HAS_SYNC=y
115CONFIG_GENERIC_HARDIRQS=y 135CONFIG_GENERIC_HARDIRQS=y
116CONFIG_GENERIC_IRQ_PROBE=y 136CONFIG_GENERIC_IRQ_PROBE=y
117CONFIG_ARCH_FLATMEM_ENABLE=y 137CONFIG_ARCH_FLATMEM_ENABLE=y
138CONFIG_ARCH_POPULATES_NODE_MAP=y
118CONFIG_SELECT_MEMORY_MODEL=y 139CONFIG_SELECT_MEMORY_MODEL=y
119CONFIG_FLATMEM_MANUAL=y 140CONFIG_FLATMEM_MANUAL=y
120# CONFIG_DISCONTIGMEM_MANUAL is not set 141# CONFIG_DISCONTIGMEM_MANUAL is not set
121# CONFIG_SPARSEMEM_MANUAL is not set 142# CONFIG_SPARSEMEM_MANUAL is not set
122CONFIG_FLATMEM=y 143CONFIG_FLATMEM=y
123CONFIG_FLAT_NODE_MEM_MAP=y 144CONFIG_FLAT_NODE_MEM_MAP=y
124# CONFIG_SPARSEMEM_STATIC is not set 145CONFIG_PAGEFLAGS_EXTENDED=y
125CONFIG_SPLIT_PTLOCK_CPUS=4 146CONFIG_SPLIT_PTLOCK_CPUS=4
126# CONFIG_RESOURCES_64BIT is not set 147# CONFIG_RESOURCES_64BIT is not set
127CONFIG_ZONE_DMA_FLAG=1 148# CONFIG_PHYS_ADDR_T_64BIT is not set
128CONFIG_BOUNCE=y 149CONFIG_ZONE_DMA_FLAG=0
129CONFIG_VIRT_TO_BUS=y 150CONFIG_VIRT_TO_BUS=y
151CONFIG_UNEVICTABLE_LRU=y
152CONFIG_TICK_ONESHOT=y
153CONFIG_NO_HZ=y
154CONFIG_HIGH_RES_TIMERS=y
155CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
130# CONFIG_HZ_48 is not set 156# CONFIG_HZ_48 is not set
131# CONFIG_HZ_100 is not set 157# CONFIG_HZ_100 is not set
132# CONFIG_HZ_128 is not set 158# CONFIG_HZ_128 is not set
@@ -159,13 +185,20 @@ CONFIG_SYSVIPC_SYSCTL=y
159# CONFIG_POSIX_MQUEUE is not set 185# CONFIG_POSIX_MQUEUE is not set
160# CONFIG_BSD_PROCESS_ACCT is not set 186# CONFIG_BSD_PROCESS_ACCT is not set
161# CONFIG_TASKSTATS is not set 187# CONFIG_TASKSTATS is not set
162# CONFIG_USER_NS is not set
163# CONFIG_AUDIT is not set 188# CONFIG_AUDIT is not set
164CONFIG_IKCONFIG=y 189CONFIG_IKCONFIG=y
165CONFIG_IKCONFIG_PROC=y 190CONFIG_IKCONFIG_PROC=y
166CONFIG_LOG_BUF_SHIFT=14 191CONFIG_LOG_BUF_SHIFT=14
192# CONFIG_CGROUPS is not set
193# CONFIG_GROUP_SCHED is not set
167CONFIG_SYSFS_DEPRECATED=y 194CONFIG_SYSFS_DEPRECATED=y
195CONFIG_SYSFS_DEPRECATED_V2=y
168CONFIG_RELAY=y 196CONFIG_RELAY=y
197CONFIG_NAMESPACES=y
198CONFIG_UTS_NS=y
199CONFIG_IPC_NS=y
200CONFIG_USER_NS=y
201CONFIG_PID_NS=y
169# CONFIG_BLK_DEV_INITRD is not set 202# CONFIG_BLK_DEV_INITRD is not set
170# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 203# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
171CONFIG_SYSCTL=y 204CONFIG_SYSCTL=y
@@ -177,6 +210,8 @@ CONFIG_KALLSYMS=y
177CONFIG_PRINTK=y 210CONFIG_PRINTK=y
178CONFIG_BUG=y 211CONFIG_BUG=y
179CONFIG_ELF_CORE=y 212CONFIG_ELF_CORE=y
213# CONFIG_PCSPKR_PLATFORM is not set
214# CONFIG_COMPAT_BRK is not set
180CONFIG_BASE_FULL=y 215CONFIG_BASE_FULL=y
181CONFIG_FUTEX=y 216CONFIG_FUTEX=y
182CONFIG_ANON_INODES=y 217CONFIG_ANON_INODES=y
@@ -185,14 +220,21 @@ CONFIG_SIGNALFD=y
185CONFIG_TIMERFD=y 220CONFIG_TIMERFD=y
186CONFIG_EVENTFD=y 221CONFIG_EVENTFD=y
187CONFIG_SHMEM=y 222CONFIG_SHMEM=y
223CONFIG_AIO=y
188CONFIG_VM_EVENT_COUNTERS=y 224CONFIG_VM_EVENT_COUNTERS=y
189CONFIG_SLAB=y 225CONFIG_SLAB=y
190# CONFIG_SLUB is not set 226# CONFIG_SLUB is not set
191# CONFIG_SLOB is not set 227# CONFIG_SLOB is not set
228# CONFIG_PROFILING is not set
229# CONFIG_MARKERS is not set
230CONFIG_HAVE_OPROFILE=y
231# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
232CONFIG_SLABINFO=y
192CONFIG_RT_MUTEXES=y 233CONFIG_RT_MUTEXES=y
193# CONFIG_TINY_SHMEM is not set 234# CONFIG_TINY_SHMEM is not set
194CONFIG_BASE_SMALL=0 235CONFIG_BASE_SMALL=0
195CONFIG_MODULES=y 236CONFIG_MODULES=y
237# CONFIG_MODULE_FORCE_LOAD is not set
196CONFIG_MODULE_UNLOAD=y 238CONFIG_MODULE_UNLOAD=y
197# CONFIG_MODULE_FORCE_UNLOAD is not set 239# CONFIG_MODULE_FORCE_UNLOAD is not set
198CONFIG_MODVERSIONS=y 240CONFIG_MODVERSIONS=y
@@ -203,6 +245,7 @@ CONFIG_BLOCK=y
203# CONFIG_BLK_DEV_IO_TRACE is not set 245# CONFIG_BLK_DEV_IO_TRACE is not set
204# CONFIG_LSF is not set 246# CONFIG_LSF is not set
205# CONFIG_BLK_DEV_BSG is not set 247# CONFIG_BLK_DEV_BSG is not set
248# CONFIG_BLK_DEV_INTEGRITY is not set
206 249
207# 250#
208# IO Schedulers 251# IO Schedulers
@@ -216,6 +259,8 @@ CONFIG_DEFAULT_AS=y
216# CONFIG_DEFAULT_CFQ is not set 259# CONFIG_DEFAULT_CFQ is not set
217# CONFIG_DEFAULT_NOOP is not set 260# CONFIG_DEFAULT_NOOP is not set
218CONFIG_DEFAULT_IOSCHED="anticipatory" 261CONFIG_DEFAULT_IOSCHED="anticipatory"
262CONFIG_CLASSIC_RCU=y
263# CONFIG_FREEZER is not set
219 264
220# 265#
221# Bus options (PCI, PCMCIA, EISA, ISA, TC) 266# Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -224,29 +269,24 @@ CONFIG_HW_HAS_EISA=y
224# CONFIG_ARCH_SUPPORTS_MSI is not set 269# CONFIG_ARCH_SUPPORTS_MSI is not set
225# CONFIG_EISA is not set 270# CONFIG_EISA is not set
226CONFIG_MMU=y 271CONFIG_MMU=y
227 272CONFIG_I8253=y
228#
229# PCCARD (PCMCIA/CardBus) support
230#
231 273
232# 274#
233# Executable file formats 275# Executable file formats
234# 276#
235CONFIG_BINFMT_ELF=y 277CONFIG_BINFMT_ELF=y
278# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
279# CONFIG_HAVE_AOUT is not set
236CONFIG_BINFMT_MISC=m 280CONFIG_BINFMT_MISC=m
237CONFIG_TRAD_SIGNALS=y 281CONFIG_TRAD_SIGNALS=y
238 282
239# 283#
240# Power management options 284# Power management options
241# 285#
286CONFIG_ARCH_SUSPEND_POSSIBLE=y
242CONFIG_PM=y 287CONFIG_PM=y
243# CONFIG_PM_LEGACY is not set
244# CONFIG_PM_DEBUG is not set 288# CONFIG_PM_DEBUG is not set
245# CONFIG_SUSPEND is not set 289# CONFIG_SUSPEND is not set
246
247#
248# Networking
249#
250CONFIG_NET=y 290CONFIG_NET=y
251 291
252# 292#
@@ -259,6 +299,8 @@ CONFIG_XFRM=y
259CONFIG_XFRM_USER=m 299CONFIG_XFRM_USER=m
260# CONFIG_XFRM_SUB_POLICY is not set 300# CONFIG_XFRM_SUB_POLICY is not set
261CONFIG_XFRM_MIGRATE=y 301CONFIG_XFRM_MIGRATE=y
302# CONFIG_XFRM_STATISTICS is not set
303CONFIG_XFRM_IPCOMP=m
262CONFIG_NET_KEY=y 304CONFIG_NET_KEY=y
263CONFIG_NET_KEY_MIGRATE=y 305CONFIG_NET_KEY_MIGRATE=y
264CONFIG_INET=y 306CONFIG_INET=y
@@ -282,42 +324,13 @@ CONFIG_INET_TUNNEL=m
282CONFIG_INET_XFRM_MODE_TRANSPORT=m 324CONFIG_INET_XFRM_MODE_TRANSPORT=m
283CONFIG_INET_XFRM_MODE_TUNNEL=m 325CONFIG_INET_XFRM_MODE_TUNNEL=m
284CONFIG_INET_XFRM_MODE_BEET=m 326CONFIG_INET_XFRM_MODE_BEET=m
327# CONFIG_INET_LRO is not set
285CONFIG_INET_DIAG=y 328CONFIG_INET_DIAG=y
286CONFIG_INET_TCP_DIAG=y 329CONFIG_INET_TCP_DIAG=y
287# CONFIG_TCP_CONG_ADVANCED is not set 330# CONFIG_TCP_CONG_ADVANCED is not set
288CONFIG_TCP_CONG_CUBIC=y 331CONFIG_TCP_CONG_CUBIC=y
289CONFIG_DEFAULT_TCP_CONG="cubic" 332CONFIG_DEFAULT_TCP_CONG="cubic"
290CONFIG_TCP_MD5SIG=y 333CONFIG_TCP_MD5SIG=y
291CONFIG_IP_VS=m
292# CONFIG_IP_VS_DEBUG is not set
293CONFIG_IP_VS_TAB_BITS=12
294
295#
296# IPVS transport protocol load balancing support
297#
298CONFIG_IP_VS_PROTO_TCP=y
299CONFIG_IP_VS_PROTO_UDP=y
300CONFIG_IP_VS_PROTO_ESP=y
301CONFIG_IP_VS_PROTO_AH=y
302
303#
304# IPVS scheduler
305#
306CONFIG_IP_VS_RR=m
307CONFIG_IP_VS_WRR=m
308CONFIG_IP_VS_LC=m
309CONFIG_IP_VS_WLC=m
310CONFIG_IP_VS_LBLC=m
311CONFIG_IP_VS_LBLCR=m
312CONFIG_IP_VS_DH=m
313CONFIG_IP_VS_SH=m
314CONFIG_IP_VS_SED=m
315CONFIG_IP_VS_NQ=m
316
317#
318# IPVS application helper
319#
320CONFIG_IP_VS_FTP=m
321CONFIG_IPV6=m 334CONFIG_IPV6=m
322CONFIG_IPV6_PRIVACY=y 335CONFIG_IPV6_PRIVACY=y
323CONFIG_IPV6_ROUTER_PREF=y 336CONFIG_IPV6_ROUTER_PREF=y
@@ -334,12 +347,16 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
334CONFIG_INET6_XFRM_MODE_BEET=m 347CONFIG_INET6_XFRM_MODE_BEET=m
335CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 348CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
336CONFIG_IPV6_SIT=m 349CONFIG_IPV6_SIT=m
350CONFIG_IPV6_NDISC_NODETYPE=y
337CONFIG_IPV6_TUNNEL=m 351CONFIG_IPV6_TUNNEL=m
338CONFIG_IPV6_MULTIPLE_TABLES=y 352CONFIG_IPV6_MULTIPLE_TABLES=y
339CONFIG_IPV6_SUBTREES=y 353CONFIG_IPV6_SUBTREES=y
354CONFIG_IPV6_MROUTE=y
355CONFIG_IPV6_PIMSM_V2=y
340CONFIG_NETWORK_SECMARK=y 356CONFIG_NETWORK_SECMARK=y
341CONFIG_NETFILTER=y 357CONFIG_NETFILTER=y
342# CONFIG_NETFILTER_DEBUG is not set 358# CONFIG_NETFILTER_DEBUG is not set
359CONFIG_NETFILTER_ADVANCED=y
343 360
344# 361#
345# Core Netfilter Configuration 362# Core Netfilter Configuration
@@ -347,12 +364,12 @@ CONFIG_NETFILTER=y
347CONFIG_NETFILTER_NETLINK=m 364CONFIG_NETFILTER_NETLINK=m
348CONFIG_NETFILTER_NETLINK_QUEUE=m 365CONFIG_NETFILTER_NETLINK_QUEUE=m
349CONFIG_NETFILTER_NETLINK_LOG=m 366CONFIG_NETFILTER_NETLINK_LOG=m
350CONFIG_NF_CONNTRACK_ENABLED=m
351CONFIG_NF_CONNTRACK=m 367CONFIG_NF_CONNTRACK=m
352CONFIG_NF_CT_ACCT=y 368CONFIG_NF_CT_ACCT=y
353CONFIG_NF_CONNTRACK_MARK=y 369CONFIG_NF_CONNTRACK_MARK=y
354CONFIG_NF_CONNTRACK_SECMARK=y 370CONFIG_NF_CONNTRACK_SECMARK=y
355CONFIG_NF_CONNTRACK_EVENTS=y 371CONFIG_NF_CONNTRACK_EVENTS=y
372CONFIG_NF_CT_PROTO_DCCP=m
356CONFIG_NF_CT_PROTO_GRE=m 373CONFIG_NF_CT_PROTO_GRE=m
357CONFIG_NF_CT_PROTO_SCTP=m 374CONFIG_NF_CT_PROTO_SCTP=m
358CONFIG_NF_CT_PROTO_UDPLITE=m 375CONFIG_NF_CT_PROTO_UDPLITE=m
@@ -366,18 +383,22 @@ CONFIG_NF_CONNTRACK_SANE=m
366CONFIG_NF_CONNTRACK_SIP=m 383CONFIG_NF_CONNTRACK_SIP=m
367CONFIG_NF_CONNTRACK_TFTP=m 384CONFIG_NF_CONNTRACK_TFTP=m
368CONFIG_NF_CT_NETLINK=m 385CONFIG_NF_CT_NETLINK=m
386CONFIG_NETFILTER_TPROXY=m
369CONFIG_NETFILTER_XTABLES=m 387CONFIG_NETFILTER_XTABLES=m
370CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 388CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
371CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 389CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
390CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
372CONFIG_NETFILTER_XT_TARGET_DSCP=m 391CONFIG_NETFILTER_XT_TARGET_DSCP=m
373CONFIG_NETFILTER_XT_TARGET_MARK=m 392CONFIG_NETFILTER_XT_TARGET_MARK=m
374CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
375CONFIG_NETFILTER_XT_TARGET_NFLOG=m 393CONFIG_NETFILTER_XT_TARGET_NFLOG=m
394CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
376CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 395CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
396CONFIG_NETFILTER_XT_TARGET_RATEEST=m
397CONFIG_NETFILTER_XT_TARGET_TPROXY=m
377CONFIG_NETFILTER_XT_TARGET_TRACE=m 398CONFIG_NETFILTER_XT_TARGET_TRACE=m
378CONFIG_NETFILTER_XT_TARGET_SECMARK=m 399CONFIG_NETFILTER_XT_TARGET_SECMARK=m
379CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
380CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 400CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
401CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
381CONFIG_NETFILTER_XT_MATCH_COMMENT=m 402CONFIG_NETFILTER_XT_MATCH_COMMENT=m
382CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 403CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
383CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 404CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -386,39 +407,75 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
386CONFIG_NETFILTER_XT_MATCH_DCCP=m 407CONFIG_NETFILTER_XT_MATCH_DCCP=m
387CONFIG_NETFILTER_XT_MATCH_DSCP=m 408CONFIG_NETFILTER_XT_MATCH_DSCP=m
388CONFIG_NETFILTER_XT_MATCH_ESP=m 409CONFIG_NETFILTER_XT_MATCH_ESP=m
410CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
389CONFIG_NETFILTER_XT_MATCH_HELPER=m 411CONFIG_NETFILTER_XT_MATCH_HELPER=m
412CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
390CONFIG_NETFILTER_XT_MATCH_LENGTH=m 413CONFIG_NETFILTER_XT_MATCH_LENGTH=m
391CONFIG_NETFILTER_XT_MATCH_LIMIT=m 414CONFIG_NETFILTER_XT_MATCH_LIMIT=m
392CONFIG_NETFILTER_XT_MATCH_MAC=m 415CONFIG_NETFILTER_XT_MATCH_MAC=m
393CONFIG_NETFILTER_XT_MATCH_MARK=m 416CONFIG_NETFILTER_XT_MATCH_MARK=m
394CONFIG_NETFILTER_XT_MATCH_POLICY=m
395CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 417CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
418CONFIG_NETFILTER_XT_MATCH_OWNER=m
419CONFIG_NETFILTER_XT_MATCH_POLICY=m
396CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 420CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
397CONFIG_NETFILTER_XT_MATCH_QUOTA=m 421CONFIG_NETFILTER_XT_MATCH_QUOTA=m
422CONFIG_NETFILTER_XT_MATCH_RATEEST=m
398CONFIG_NETFILTER_XT_MATCH_REALM=m 423CONFIG_NETFILTER_XT_MATCH_REALM=m
424CONFIG_NETFILTER_XT_MATCH_RECENT=m
425CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
399CONFIG_NETFILTER_XT_MATCH_SCTP=m 426CONFIG_NETFILTER_XT_MATCH_SCTP=m
427CONFIG_NETFILTER_XT_MATCH_SOCKET=m
400CONFIG_NETFILTER_XT_MATCH_STATE=m 428CONFIG_NETFILTER_XT_MATCH_STATE=m
401CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 429CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
402CONFIG_NETFILTER_XT_MATCH_STRING=m 430CONFIG_NETFILTER_XT_MATCH_STRING=m
403CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 431CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
432CONFIG_NETFILTER_XT_MATCH_TIME=m
404CONFIG_NETFILTER_XT_MATCH_U32=m 433CONFIG_NETFILTER_XT_MATCH_U32=m
405CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 434CONFIG_IP_VS=m
435CONFIG_IP_VS_IPV6=y
436# CONFIG_IP_VS_DEBUG is not set
437CONFIG_IP_VS_TAB_BITS=12
438
439#
440# IPVS transport protocol load balancing support
441#
442CONFIG_IP_VS_PROTO_TCP=y
443CONFIG_IP_VS_PROTO_UDP=y
444CONFIG_IP_VS_PROTO_AH_ESP=y
445CONFIG_IP_VS_PROTO_ESP=y
446CONFIG_IP_VS_PROTO_AH=y
447
448#
449# IPVS scheduler
450#
451CONFIG_IP_VS_RR=m
452CONFIG_IP_VS_WRR=m
453CONFIG_IP_VS_LC=m
454CONFIG_IP_VS_WLC=m
455CONFIG_IP_VS_LBLC=m
456CONFIG_IP_VS_LBLCR=m
457CONFIG_IP_VS_DH=m
458CONFIG_IP_VS_SH=m
459CONFIG_IP_VS_SED=m
460CONFIG_IP_VS_NQ=m
461
462#
463# IPVS application helper
464#
465CONFIG_IP_VS_FTP=m
406 466
407# 467#
408# IP: Netfilter Configuration 468# IP: Netfilter Configuration
409# 469#
470CONFIG_NF_DEFRAG_IPV4=m
410CONFIG_NF_CONNTRACK_IPV4=m 471CONFIG_NF_CONNTRACK_IPV4=m
411CONFIG_NF_CONNTRACK_PROC_COMPAT=y 472CONFIG_NF_CONNTRACK_PROC_COMPAT=y
412CONFIG_IP_NF_QUEUE=m 473CONFIG_IP_NF_QUEUE=m
413CONFIG_IP_NF_IPTABLES=m 474CONFIG_IP_NF_IPTABLES=m
414CONFIG_IP_NF_MATCH_IPRANGE=m 475CONFIG_IP_NF_MATCH_ADDRTYPE=m
415CONFIG_IP_NF_MATCH_TOS=m
416CONFIG_IP_NF_MATCH_RECENT=m
417CONFIG_IP_NF_MATCH_ECN=m
418CONFIG_IP_NF_MATCH_AH=m 476CONFIG_IP_NF_MATCH_AH=m
477CONFIG_IP_NF_MATCH_ECN=m
419CONFIG_IP_NF_MATCH_TTL=m 478CONFIG_IP_NF_MATCH_TTL=m
420CONFIG_IP_NF_MATCH_OWNER=m
421CONFIG_IP_NF_MATCH_ADDRTYPE=m
422CONFIG_IP_NF_FILTER=m 479CONFIG_IP_NF_FILTER=m
423CONFIG_IP_NF_TARGET_REJECT=m 480CONFIG_IP_NF_TARGET_REJECT=m
424CONFIG_IP_NF_TARGET_LOG=m 481CONFIG_IP_NF_TARGET_LOG=m
@@ -426,11 +483,13 @@ CONFIG_IP_NF_TARGET_ULOG=m
426CONFIG_NF_NAT=m 483CONFIG_NF_NAT=m
427CONFIG_NF_NAT_NEEDED=y 484CONFIG_NF_NAT_NEEDED=y
428CONFIG_IP_NF_TARGET_MASQUERADE=m 485CONFIG_IP_NF_TARGET_MASQUERADE=m
429CONFIG_IP_NF_TARGET_REDIRECT=m
430CONFIG_IP_NF_TARGET_NETMAP=m 486CONFIG_IP_NF_TARGET_NETMAP=m
431CONFIG_IP_NF_TARGET_SAME=m 487CONFIG_IP_NF_TARGET_REDIRECT=m
432CONFIG_NF_NAT_SNMP_BASIC=m 488CONFIG_NF_NAT_SNMP_BASIC=m
489CONFIG_NF_NAT_PROTO_DCCP=m
433CONFIG_NF_NAT_PROTO_GRE=m 490CONFIG_NF_NAT_PROTO_GRE=m
491CONFIG_NF_NAT_PROTO_UDPLITE=m
492CONFIG_NF_NAT_PROTO_SCTP=m
434CONFIG_NF_NAT_FTP=m 493CONFIG_NF_NAT_FTP=m
435CONFIG_NF_NAT_IRC=m 494CONFIG_NF_NAT_IRC=m
436CONFIG_NF_NAT_TFTP=m 495CONFIG_NF_NAT_TFTP=m
@@ -439,32 +498,30 @@ CONFIG_NF_NAT_PPTP=m
439CONFIG_NF_NAT_H323=m 498CONFIG_NF_NAT_H323=m
440CONFIG_NF_NAT_SIP=m 499CONFIG_NF_NAT_SIP=m
441CONFIG_IP_NF_MANGLE=m 500CONFIG_IP_NF_MANGLE=m
442CONFIG_IP_NF_TARGET_TOS=m 501CONFIG_IP_NF_TARGET_CLUSTERIP=m
443CONFIG_IP_NF_TARGET_ECN=m 502CONFIG_IP_NF_TARGET_ECN=m
444CONFIG_IP_NF_TARGET_TTL=m 503CONFIG_IP_NF_TARGET_TTL=m
445CONFIG_IP_NF_TARGET_CLUSTERIP=m
446CONFIG_IP_NF_RAW=m 504CONFIG_IP_NF_RAW=m
447CONFIG_IP_NF_ARPTABLES=m 505CONFIG_IP_NF_ARPTABLES=m
448CONFIG_IP_NF_ARPFILTER=m 506CONFIG_IP_NF_ARPFILTER=m
449CONFIG_IP_NF_ARP_MANGLE=m 507CONFIG_IP_NF_ARP_MANGLE=m
450 508
451# 509#
452# IPv6: Netfilter Configuration (EXPERIMENTAL) 510# IPv6: Netfilter Configuration
453# 511#
454CONFIG_NF_CONNTRACK_IPV6=m 512CONFIG_NF_CONNTRACK_IPV6=m
455CONFIG_IP6_NF_QUEUE=m 513CONFIG_IP6_NF_QUEUE=m
456CONFIG_IP6_NF_IPTABLES=m 514CONFIG_IP6_NF_IPTABLES=m
457CONFIG_IP6_NF_MATCH_RT=m 515CONFIG_IP6_NF_MATCH_AH=m
458CONFIG_IP6_NF_MATCH_OPTS=m 516CONFIG_IP6_NF_MATCH_EUI64=m
459CONFIG_IP6_NF_MATCH_FRAG=m 517CONFIG_IP6_NF_MATCH_FRAG=m
518CONFIG_IP6_NF_MATCH_OPTS=m
460CONFIG_IP6_NF_MATCH_HL=m 519CONFIG_IP6_NF_MATCH_HL=m
461CONFIG_IP6_NF_MATCH_OWNER=m
462CONFIG_IP6_NF_MATCH_IPV6HEADER=m 520CONFIG_IP6_NF_MATCH_IPV6HEADER=m
463CONFIG_IP6_NF_MATCH_AH=m
464CONFIG_IP6_NF_MATCH_MH=m 521CONFIG_IP6_NF_MATCH_MH=m
465CONFIG_IP6_NF_MATCH_EUI64=m 522CONFIG_IP6_NF_MATCH_RT=m
466CONFIG_IP6_NF_FILTER=m
467CONFIG_IP6_NF_TARGET_LOG=m 523CONFIG_IP6_NF_TARGET_LOG=m
524CONFIG_IP6_NF_FILTER=m
468CONFIG_IP6_NF_TARGET_REJECT=m 525CONFIG_IP6_NF_TARGET_REJECT=m
469CONFIG_IP6_NF_MANGLE=m 526CONFIG_IP6_NF_MANGLE=m
470CONFIG_IP6_NF_TARGET_HL=m 527CONFIG_IP6_NF_TARGET_HL=m
@@ -479,6 +536,7 @@ CONFIG_SCTP_HMAC_MD5=y
479# CONFIG_TIPC is not set 536# CONFIG_TIPC is not set
480# CONFIG_ATM is not set 537# CONFIG_ATM is not set
481# CONFIG_BRIDGE is not set 538# CONFIG_BRIDGE is not set
539# CONFIG_NET_DSA is not set
482# CONFIG_VLAN_8021Q is not set 540# CONFIG_VLAN_8021Q is not set
483# CONFIG_DECNET is not set 541# CONFIG_DECNET is not set
484# CONFIG_LLC2 is not set 542# CONFIG_LLC2 is not set
@@ -488,12 +546,7 @@ CONFIG_SCTP_HMAC_MD5=y
488# CONFIG_LAPB is not set 546# CONFIG_LAPB is not set
489# CONFIG_ECONET is not set 547# CONFIG_ECONET is not set
490# CONFIG_WAN_ROUTER is not set 548# CONFIG_WAN_ROUTER is not set
491
492#
493# QoS and/or fair queueing
494#
495CONFIG_NET_SCHED=y 549CONFIG_NET_SCHED=y
496CONFIG_NET_SCH_FIFO=y
497 550
498# 551#
499# Queueing/Scheduling 552# Queueing/Scheduling
@@ -502,7 +555,7 @@ CONFIG_NET_SCH_CBQ=m
502CONFIG_NET_SCH_HTB=m 555CONFIG_NET_SCH_HTB=m
503CONFIG_NET_SCH_HFSC=m 556CONFIG_NET_SCH_HFSC=m
504CONFIG_NET_SCH_PRIO=m 557CONFIG_NET_SCH_PRIO=m
505CONFIG_NET_SCH_RR=m 558# CONFIG_NET_SCH_MULTIQ is not set
506CONFIG_NET_SCH_RED=m 559CONFIG_NET_SCH_RED=m
507CONFIG_NET_SCH_SFQ=m 560CONFIG_NET_SCH_SFQ=m
508CONFIG_NET_SCH_TEQL=m 561CONFIG_NET_SCH_TEQL=m
@@ -526,6 +579,7 @@ CONFIG_NET_CLS_U32=m
526# CONFIG_CLS_U32_MARK is not set 579# CONFIG_CLS_U32_MARK is not set
527CONFIG_NET_CLS_RSVP=m 580CONFIG_NET_CLS_RSVP=m
528CONFIG_NET_CLS_RSVP6=m 581CONFIG_NET_CLS_RSVP6=m
582CONFIG_NET_CLS_FLOW=m
529# CONFIG_NET_EMATCH is not set 583# CONFIG_NET_EMATCH is not set
530CONFIG_NET_CLS_ACT=y 584CONFIG_NET_CLS_ACT=y
531CONFIG_NET_ACT_POLICE=y 585CONFIG_NET_ACT_POLICE=y
@@ -533,35 +587,28 @@ CONFIG_NET_ACT_GACT=m
533CONFIG_GACT_PROB=y 587CONFIG_GACT_PROB=y
534CONFIG_NET_ACT_MIRRED=m 588CONFIG_NET_ACT_MIRRED=m
535CONFIG_NET_ACT_IPT=m 589CONFIG_NET_ACT_IPT=m
590CONFIG_NET_ACT_NAT=m
536CONFIG_NET_ACT_PEDIT=m 591CONFIG_NET_ACT_PEDIT=m
537CONFIG_NET_ACT_SIMP=m 592CONFIG_NET_ACT_SIMP=m
538CONFIG_NET_CLS_POLICE=y 593CONFIG_NET_ACT_SKBEDIT=m
539# CONFIG_NET_CLS_IND is not set 594# CONFIG_NET_CLS_IND is not set
595CONFIG_NET_SCH_FIFO=y
540 596
541# 597#
542# Network testing 598# Network testing
543# 599#
544# CONFIG_NET_PKTGEN is not set 600# CONFIG_NET_PKTGEN is not set
545# CONFIG_HAMRADIO is not set 601# CONFIG_HAMRADIO is not set
602# CONFIG_CAN is not set
546# CONFIG_IRDA is not set 603# CONFIG_IRDA is not set
547# CONFIG_BT is not set 604# CONFIG_BT is not set
548# CONFIG_AF_RXRPC is not set 605# CONFIG_AF_RXRPC is not set
606CONFIG_PHONET=m
549CONFIG_FIB_RULES=y 607CONFIG_FIB_RULES=y
550 608# CONFIG_WIRELESS is not set
551#
552# Wireless
553#
554CONFIG_CFG80211=m
555CONFIG_WIRELESS_EXT=y 609CONFIG_WIRELESS_EXT=y
556CONFIG_MAC80211=m
557# CONFIG_MAC80211_DEBUG is not set
558CONFIG_IEEE80211=m 610CONFIG_IEEE80211=m
559# CONFIG_IEEE80211_DEBUG is not set
560CONFIG_IEEE80211_CRYPT_WEP=m 611CONFIG_IEEE80211_CRYPT_WEP=m
561CONFIG_IEEE80211_CRYPT_CCMP=m
562CONFIG_IEEE80211_CRYPT_TKIP=m
563CONFIG_IEEE80211_SOFTMAC=m
564# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
565CONFIG_RFKILL=m 612CONFIG_RFKILL=m
566CONFIG_RFKILL_INPUT=m 613CONFIG_RFKILL_INPUT=m
567# CONFIG_NET_9P is not set 614# CONFIG_NET_9P is not set
@@ -588,7 +635,9 @@ CONFIG_CDROM_PKTCDVD=m
588CONFIG_CDROM_PKTCDVD_BUFFERS=8 635CONFIG_CDROM_PKTCDVD_BUFFERS=8
589# CONFIG_CDROM_PKTCDVD_WCACHE is not set 636# CONFIG_CDROM_PKTCDVD_WCACHE is not set
590CONFIG_ATA_OVER_ETH=m 637CONFIG_ATA_OVER_ETH=m
638# CONFIG_BLK_DEV_HD is not set
591# CONFIG_MISC_DEVICES is not set 639# CONFIG_MISC_DEVICES is not set
640CONFIG_HAVE_IDE=y
592# CONFIG_IDE is not set 641# CONFIG_IDE is not set
593 642
594# 643#
@@ -628,20 +677,22 @@ CONFIG_SCSI_SPI_ATTRS=m
628# CONFIG_SCSI_FC_ATTRS is not set 677# CONFIG_SCSI_FC_ATTRS is not set
629CONFIG_SCSI_ISCSI_ATTRS=m 678CONFIG_SCSI_ISCSI_ATTRS=m
630# CONFIG_SCSI_SAS_LIBSAS is not set 679# CONFIG_SCSI_SAS_LIBSAS is not set
680# CONFIG_SCSI_SRP_ATTRS is not set
631CONFIG_SCSI_LOWLEVEL=y 681CONFIG_SCSI_LOWLEVEL=y
632CONFIG_ISCSI_TCP=m 682CONFIG_ISCSI_TCP=m
633CONFIG_SGIWD93_SCSI=y 683CONFIG_SGIWD93_SCSI=y
634# CONFIG_SCSI_DEBUG is not set 684# CONFIG_SCSI_DEBUG is not set
685# CONFIG_SCSI_DH is not set
635# CONFIG_ATA is not set 686# CONFIG_ATA is not set
636# CONFIG_MD is not set 687# CONFIG_MD is not set
637CONFIG_NETDEVICES=y 688CONFIG_NETDEVICES=y
638# CONFIG_NETDEVICES_MULTIQUEUE is not set
639# CONFIG_IFB is not set 689# CONFIG_IFB is not set
640CONFIG_DUMMY=m 690CONFIG_DUMMY=m
641CONFIG_BONDING=m 691CONFIG_BONDING=m
642CONFIG_MACVLAN=m 692CONFIG_MACVLAN=m
643CONFIG_EQUALIZER=m 693CONFIG_EQUALIZER=m
644CONFIG_TUN=m 694CONFIG_TUN=m
695CONFIG_VETH=m
645CONFIG_PHYLIB=m 696CONFIG_PHYLIB=m
646 697
647# 698#
@@ -656,11 +707,21 @@ CONFIG_CICADA_PHY=m
656# CONFIG_SMSC_PHY is not set 707# CONFIG_SMSC_PHY is not set
657# CONFIG_BROADCOM_PHY is not set 708# CONFIG_BROADCOM_PHY is not set
658# CONFIG_ICPLUS_PHY is not set 709# CONFIG_ICPLUS_PHY is not set
659# CONFIG_FIXED_PHY is not set 710CONFIG_REALTEK_PHY=m
711CONFIG_MDIO_BITBANG=m
660CONFIG_NET_ETHERNET=y 712CONFIG_NET_ETHERNET=y
661# CONFIG_MII is not set 713CONFIG_MII=m
662# CONFIG_AX88796 is not set 714# CONFIG_AX88796 is not set
715CONFIG_SMC91X=m
663# CONFIG_DM9000 is not set 716# CONFIG_DM9000 is not set
717# CONFIG_IBM_NEW_EMAC_ZMII is not set
718# CONFIG_IBM_NEW_EMAC_RGMII is not set
719# CONFIG_IBM_NEW_EMAC_TAH is not set
720# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
721# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
722# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
723# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
724# CONFIG_B44 is not set
664CONFIG_SGISEEQ=y 725CONFIG_SGISEEQ=y
665# CONFIG_NETDEV_1000 is not set 726# CONFIG_NETDEV_1000 is not set
666# CONFIG_NETDEV_10000 is not set 727# CONFIG_NETDEV_10000 is not set
@@ -672,12 +733,12 @@ CONFIG_WLAN_PRE80211=y
672CONFIG_STRIP=m 733CONFIG_STRIP=m
673CONFIG_WLAN_80211=y 734CONFIG_WLAN_80211=y
674# CONFIG_LIBERTAS is not set 735# CONFIG_LIBERTAS is not set
736# CONFIG_IWLWIFI_LEDS is not set
675CONFIG_HOSTAP=m 737CONFIG_HOSTAP=m
676# CONFIG_HOSTAP_FIRMWARE is not set 738# CONFIG_HOSTAP_FIRMWARE is not set
677# CONFIG_WAN is not set 739# CONFIG_WAN is not set
678# CONFIG_PPP is not set 740# CONFIG_PPP is not set
679# CONFIG_SLIP is not set 741# CONFIG_SLIP is not set
680# CONFIG_SHAPER is not set
681# CONFIG_NETCONSOLE is not set 742# CONFIG_NETCONSOLE is not set
682# CONFIG_NETPOLL is not set 743# CONFIG_NETPOLL is not set
683# CONFIG_NET_POLL_CONTROLLER is not set 744# CONFIG_NET_POLL_CONTROLLER is not set
@@ -699,7 +760,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
699CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 760CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
700CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 761CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
701# CONFIG_INPUT_JOYDEV is not set 762# CONFIG_INPUT_JOYDEV is not set
702# CONFIG_INPUT_TSDEV is not set
703# CONFIG_INPUT_EVDEV is not set 763# CONFIG_INPUT_EVDEV is not set
704# CONFIG_INPUT_EVBUG is not set 764# CONFIG_INPUT_EVBUG is not set
705 765
@@ -720,6 +780,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
720# CONFIG_MOUSE_PS2_SYNAPTICS is not set 780# CONFIG_MOUSE_PS2_SYNAPTICS is not set
721# CONFIG_MOUSE_PS2_LIFEBOOK is not set 781# CONFIG_MOUSE_PS2_LIFEBOOK is not set
722CONFIG_MOUSE_PS2_TRACKPOINT=y 782CONFIG_MOUSE_PS2_TRACKPOINT=y
783# CONFIG_MOUSE_PS2_ELANTECH is not set
723# CONFIG_MOUSE_PS2_TOUCHKIT is not set 784# CONFIG_MOUSE_PS2_TOUCHKIT is not set
724CONFIG_MOUSE_SERIAL=m 785CONFIG_MOUSE_SERIAL=m
725# CONFIG_MOUSE_VSXXXAA is not set 786# CONFIG_MOUSE_VSXXXAA is not set
@@ -742,9 +803,11 @@ CONFIG_SERIO_RAW=m
742# Character devices 803# Character devices
743# 804#
744CONFIG_VT=y 805CONFIG_VT=y
806CONFIG_CONSOLE_TRANSLATIONS=y
745CONFIG_VT_CONSOLE=y 807CONFIG_VT_CONSOLE=y
746CONFIG_HW_CONSOLE=y 808CONFIG_HW_CONSOLE=y
747CONFIG_VT_HW_CONSOLE_BINDING=y 809CONFIG_VT_HW_CONSOLE_BINDING=y
810CONFIG_DEVKMEM=y
748# CONFIG_SERIAL_NONSTANDARD is not set 811# CONFIG_SERIAL_NONSTANDARD is not set
749 812
750# 813#
@@ -761,6 +824,17 @@ CONFIG_UNIX98_PTYS=y
761CONFIG_LEGACY_PTYS=y 824CONFIG_LEGACY_PTYS=y
762CONFIG_LEGACY_PTY_COUNT=256 825CONFIG_LEGACY_PTY_COUNT=256
763# CONFIG_IPMI_HANDLER is not set 826# CONFIG_IPMI_HANDLER is not set
827# CONFIG_HW_RANDOM is not set
828# CONFIG_R3964 is not set
829CONFIG_RAW_DRIVER=m
830CONFIG_MAX_RAW_DEVS=256
831# CONFIG_TCG_TPM is not set
832# CONFIG_I2C is not set
833# CONFIG_SPI is not set
834# CONFIG_W1 is not set
835# CONFIG_POWER_SUPPLY is not set
836# CONFIG_HWMON is not set
837CONFIG_THERMAL=m
764CONFIG_WATCHDOG=y 838CONFIG_WATCHDOG=y
765# CONFIG_WATCHDOG_NOWAYOUT is not set 839# CONFIG_WATCHDOG_NOWAYOUT is not set
766 840
@@ -769,47 +843,50 @@ CONFIG_WATCHDOG=y
769# 843#
770# CONFIG_SOFT_WATCHDOG is not set 844# CONFIG_SOFT_WATCHDOG is not set
771CONFIG_INDYDOG=m 845CONFIG_INDYDOG=m
772# CONFIG_HW_RANDOM is not set 846CONFIG_SSB_POSSIBLE=y
773# CONFIG_RTC is not set
774# CONFIG_R3964 is not set
775CONFIG_RAW_DRIVER=m
776CONFIG_MAX_RAW_DEVS=256
777# CONFIG_TCG_TPM is not set
778# CONFIG_I2C is not set
779 847
780# 848#
781# SPI support 849# Sonics Silicon Backplane
782# 850#
783# CONFIG_SPI is not set 851# CONFIG_SSB is not set
784# CONFIG_SPI_MASTER is not set
785# CONFIG_W1 is not set
786# CONFIG_POWER_SUPPLY is not set
787# CONFIG_HWMON is not set
788 852
789# 853#
790# Multifunction device drivers 854# Multifunction device drivers
791# 855#
856# CONFIG_MFD_CORE is not set
792# CONFIG_MFD_SM501 is not set 857# CONFIG_MFD_SM501 is not set
858# CONFIG_HTC_PASIC3 is not set
859# CONFIG_MFD_TMIO is not set
860# CONFIG_REGULATOR is not set
793 861
794# 862#
795# Multimedia devices 863# Multimedia devices
796# 864#
865
866#
867# Multimedia core support
868#
797# CONFIG_VIDEO_DEV is not set 869# CONFIG_VIDEO_DEV is not set
798# CONFIG_DVB_CORE is not set 870# CONFIG_DVB_CORE is not set
871# CONFIG_VIDEO_MEDIA is not set
872
873#
874# Multimedia drivers
875#
799# CONFIG_DAB is not set 876# CONFIG_DAB is not set
800 877
801# 878#
802# Graphics support 879# Graphics support
803# 880#
881# CONFIG_VGASTATE is not set
882# CONFIG_VIDEO_OUTPUT_CONTROL is not set
883# CONFIG_FB is not set
804# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 884# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
805 885
806# 886#
807# Display device support 887# Display device support
808# 888#
809# CONFIG_DISPLAY_SUPPORT is not set 889# CONFIG_DISPLAY_SUPPORT is not set
810# CONFIG_VGASTATE is not set
811# CONFIG_VIDEO_OUTPUT_CONTROL is not set
812# CONFIG_FB is not set
813 890
814# 891#
815# Console display driver support 892# Console display driver support
@@ -823,48 +900,77 @@ CONFIG_LOGO=y
823# CONFIG_LOGO_LINUX_VGA16 is not set 900# CONFIG_LOGO_LINUX_VGA16 is not set
824# CONFIG_LOGO_LINUX_CLUT224 is not set 901# CONFIG_LOGO_LINUX_CLUT224 is not set
825CONFIG_LOGO_SGI_CLUT224=y 902CONFIG_LOGO_SGI_CLUT224=y
826
827#
828# Sound
829#
830# CONFIG_SOUND is not set 903# CONFIG_SOUND is not set
831CONFIG_HID_SUPPORT=y 904CONFIG_HID_SUPPORT=y
832CONFIG_HID=y 905CONFIG_HID=y
833# CONFIG_HID_DEBUG is not set 906# CONFIG_HID_DEBUG is not set
907CONFIG_HIDRAW=y
908CONFIG_HID_PID=y
909
910#
911# Special HID drivers
912#
913CONFIG_HID_COMPAT=y
834CONFIG_USB_SUPPORT=y 914CONFIG_USB_SUPPORT=y
835# CONFIG_USB_ARCH_HAS_HCD is not set 915# CONFIG_USB_ARCH_HAS_HCD is not set
836# CONFIG_USB_ARCH_HAS_OHCI is not set 916# CONFIG_USB_ARCH_HAS_OHCI is not set
837# CONFIG_USB_ARCH_HAS_EHCI is not set 917# CONFIG_USB_ARCH_HAS_EHCI is not set
918# CONFIG_USB_OTG_WHITELIST is not set
919# CONFIG_USB_OTG_BLACKLIST_HUB is not set
838 920
839# 921#
840# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 922# Enable Host or Gadget support to see Inventra options
841# 923#
842 924
843# 925#
844# USB Gadget Support 926# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
845# 927#
846# CONFIG_USB_GADGET is not set 928# CONFIG_USB_GADGET is not set
847# CONFIG_MMC is not set 929# CONFIG_MMC is not set
930# CONFIG_MEMSTICK is not set
848# CONFIG_NEW_LEDS is not set 931# CONFIG_NEW_LEDS is not set
849# CONFIG_RTC_CLASS is not set 932# CONFIG_ACCESSIBILITY is not set
933CONFIG_RTC_LIB=y
934CONFIG_RTC_CLASS=y
935CONFIG_RTC_HCTOSYS=y
936CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
937# CONFIG_RTC_DEBUG is not set
850 938
851# 939#
852# DMA Engine support 940# RTC interfaces
853# 941#
854# CONFIG_DMA_ENGINE is not set 942CONFIG_RTC_INTF_SYSFS=y
943CONFIG_RTC_INTF_PROC=y
944CONFIG_RTC_INTF_DEV=y
945CONFIG_RTC_INTF_DEV_UIE_EMUL=y
946# CONFIG_RTC_DRV_TEST is not set
855 947
856# 948#
857# DMA Clients 949# SPI RTC drivers
858# 950#
859 951
860# 952#
861# DMA Devices 953# Platform RTC drivers
862# 954#
955# CONFIG_RTC_DRV_CMOS is not set
956CONFIG_RTC_DRV_DS1286=y
957# CONFIG_RTC_DRV_DS1511 is not set
958# CONFIG_RTC_DRV_DS1553 is not set
959# CONFIG_RTC_DRV_DS1742 is not set
960# CONFIG_RTC_DRV_STK17TA8 is not set
961# CONFIG_RTC_DRV_M48T86 is not set
962# CONFIG_RTC_DRV_M48T35 is not set
963# CONFIG_RTC_DRV_M48T59 is not set
964# CONFIG_RTC_DRV_BQ4802 is not set
965# CONFIG_RTC_DRV_V3020 is not set
863 966
864# 967#
865# Userspace I/O 968# on-CPU RTC drivers
866# 969#
970# CONFIG_DMADEVICES is not set
867# CONFIG_UIO is not set 971# CONFIG_UIO is not set
972# CONFIG_STAGING is not set
973CONFIG_STAGING_EXCLUDE_BUILD=y
868 974
869# 975#
870# File systems 976# File systems
@@ -876,29 +982,33 @@ CONFIG_EXT3_FS=y
876CONFIG_EXT3_FS_XATTR=y 982CONFIG_EXT3_FS_XATTR=y
877CONFIG_EXT3_FS_POSIX_ACL=y 983CONFIG_EXT3_FS_POSIX_ACL=y
878CONFIG_EXT3_FS_SECURITY=y 984CONFIG_EXT3_FS_SECURITY=y
879# CONFIG_EXT4DEV_FS is not set 985CONFIG_EXT4_FS=m
986CONFIG_EXT4DEV_COMPAT=y
987CONFIG_EXT4_FS_XATTR=y
988CONFIG_EXT4_FS_POSIX_ACL=y
989CONFIG_EXT4_FS_SECURITY=y
880CONFIG_JBD=y 990CONFIG_JBD=y
881# CONFIG_JBD_DEBUG is not set 991CONFIG_JBD2=m
882CONFIG_FS_MBCACHE=y 992CONFIG_FS_MBCACHE=y
883# CONFIG_REISERFS_FS is not set 993# CONFIG_REISERFS_FS is not set
884# CONFIG_JFS_FS is not set 994# CONFIG_JFS_FS is not set
885CONFIG_FS_POSIX_ACL=y 995CONFIG_FS_POSIX_ACL=y
996CONFIG_FILE_LOCKING=y
886CONFIG_XFS_FS=m 997CONFIG_XFS_FS=m
887CONFIG_XFS_QUOTA=y 998CONFIG_XFS_QUOTA=y
888CONFIG_XFS_SECURITY=y
889# CONFIG_XFS_POSIX_ACL is not set 999# CONFIG_XFS_POSIX_ACL is not set
890# CONFIG_XFS_RT is not set 1000# CONFIG_XFS_RT is not set
891# CONFIG_GFS2_FS is not set 1001# CONFIG_XFS_DEBUG is not set
892# CONFIG_OCFS2_FS is not set 1002# CONFIG_OCFS2_FS is not set
893CONFIG_MINIX_FS=m 1003CONFIG_DNOTIFY=y
894# CONFIG_ROMFS_FS is not set
895CONFIG_INOTIFY=y 1004CONFIG_INOTIFY=y
896CONFIG_INOTIFY_USER=y 1005CONFIG_INOTIFY_USER=y
897CONFIG_QUOTA=y 1006CONFIG_QUOTA=y
1007CONFIG_QUOTA_NETLINK_INTERFACE=y
1008# CONFIG_PRINT_QUOTA_WARNING is not set
898# CONFIG_QFMT_V1 is not set 1009# CONFIG_QFMT_V1 is not set
899CONFIG_QFMT_V2=m 1010CONFIG_QFMT_V2=m
900CONFIG_QUOTACTL=y 1011CONFIG_QUOTACTL=y
901CONFIG_DNOTIFY=y
902CONFIG_AUTOFS_FS=m 1012CONFIG_AUTOFS_FS=m
903CONFIG_AUTOFS4_FS=m 1013CONFIG_AUTOFS4_FS=m
904CONFIG_FUSE_FS=m 1014CONFIG_FUSE_FS=m
@@ -929,11 +1039,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
929CONFIG_PROC_FS=y 1039CONFIG_PROC_FS=y
930CONFIG_PROC_KCORE=y 1040CONFIG_PROC_KCORE=y
931CONFIG_PROC_SYSCTL=y 1041CONFIG_PROC_SYSCTL=y
1042CONFIG_PROC_PAGE_MONITOR=y
932CONFIG_SYSFS=y 1043CONFIG_SYSFS=y
933CONFIG_TMPFS=y 1044CONFIG_TMPFS=y
934CONFIG_TMPFS_POSIX_ACL=y 1045CONFIG_TMPFS_POSIX_ACL=y
935# CONFIG_HUGETLB_PAGE is not set 1046# CONFIG_HUGETLB_PAGE is not set
936CONFIG_RAMFS=y
937CONFIG_CONFIGFS_FS=m 1047CONFIG_CONFIGFS_FS=m
938 1048
939# 1049#
@@ -949,27 +1059,25 @@ CONFIG_CONFIGFS_FS=m
949CONFIG_EFS_FS=m 1059CONFIG_EFS_FS=m
950# CONFIG_CRAMFS is not set 1060# CONFIG_CRAMFS is not set
951# CONFIG_VXFS_FS is not set 1061# CONFIG_VXFS_FS is not set
1062CONFIG_MINIX_FS=m
1063CONFIG_OMFS_FS=m
952# CONFIG_HPFS_FS is not set 1064# CONFIG_HPFS_FS is not set
953# CONFIG_QNX4FS_FS is not set 1065# CONFIG_QNX4FS_FS is not set
1066# CONFIG_ROMFS_FS is not set
954# CONFIG_SYSV_FS is not set 1067# CONFIG_SYSV_FS is not set
955CONFIG_UFS_FS=m 1068CONFIG_UFS_FS=m
956# CONFIG_UFS_FS_WRITE is not set 1069# CONFIG_UFS_FS_WRITE is not set
957# CONFIG_UFS_DEBUG is not set 1070# CONFIG_UFS_DEBUG is not set
958 1071CONFIG_NETWORK_FILESYSTEMS=y
959#
960# Network File Systems
961#
962CONFIG_NFS_FS=m 1072CONFIG_NFS_FS=m
963CONFIG_NFS_V3=y 1073CONFIG_NFS_V3=y
964CONFIG_NFS_V3_ACL=y 1074CONFIG_NFS_V3_ACL=y
965# CONFIG_NFS_V4 is not set 1075# CONFIG_NFS_V4 is not set
966# CONFIG_NFS_DIRECTIO is not set
967CONFIG_NFSD=m 1076CONFIG_NFSD=m
968CONFIG_NFSD_V2_ACL=y 1077CONFIG_NFSD_V2_ACL=y
969CONFIG_NFSD_V3=y 1078CONFIG_NFSD_V3=y
970CONFIG_NFSD_V3_ACL=y 1079CONFIG_NFSD_V3_ACL=y
971# CONFIG_NFSD_V4 is not set 1080# CONFIG_NFSD_V4 is not set
972CONFIG_NFSD_TCP=y
973CONFIG_LOCKD=m 1081CONFIG_LOCKD=m
974CONFIG_LOCKD_V4=y 1082CONFIG_LOCKD_V4=y
975CONFIG_EXPORTFS=m 1083CONFIG_EXPORTFS=m
@@ -977,7 +1085,7 @@ CONFIG_NFS_ACL_SUPPORT=m
977CONFIG_NFS_COMMON=y 1085CONFIG_NFS_COMMON=y
978CONFIG_SUNRPC=m 1086CONFIG_SUNRPC=m
979CONFIG_SUNRPC_GSS=m 1087CONFIG_SUNRPC_GSS=m
980# CONFIG_SUNRPC_BIND34 is not set 1088# CONFIG_SUNRPC_REGISTER_V4 is not set
981CONFIG_RPCSEC_GSS_KRB5=m 1089CONFIG_RPCSEC_GSS_KRB5=m
982# CONFIG_RPCSEC_GSS_SPKM3 is not set 1090# CONFIG_RPCSEC_GSS_SPKM3 is not set
983CONFIG_SMB_FS=m 1091CONFIG_SMB_FS=m
@@ -986,12 +1094,12 @@ CONFIG_SMB_NLS_REMOTE="cp437"
986CONFIG_CIFS=m 1094CONFIG_CIFS=m
987# CONFIG_CIFS_STATS is not set 1095# CONFIG_CIFS_STATS is not set
988# CONFIG_CIFS_WEAK_PW_HASH is not set 1096# CONFIG_CIFS_WEAK_PW_HASH is not set
1097CONFIG_CIFS_UPCALL=y
989# CONFIG_CIFS_XATTR is not set 1098# CONFIG_CIFS_XATTR is not set
990# CONFIG_CIFS_DEBUG2 is not set 1099# CONFIG_CIFS_DEBUG2 is not set
991# CONFIG_CIFS_EXPERIMENTAL is not set 1100# CONFIG_CIFS_EXPERIMENTAL is not set
992# CONFIG_NCP_FS is not set 1101# CONFIG_NCP_FS is not set
993CONFIG_CODA_FS=m 1102CONFIG_CODA_FS=m
994# CONFIG_CODA_FS_OLD_API is not set
995# CONFIG_AFS_FS is not set 1103# CONFIG_AFS_FS is not set
996 1104
997# 1105#
@@ -1015,10 +1123,6 @@ CONFIG_SGI_PARTITION=y
1015# CONFIG_KARMA_PARTITION is not set 1123# CONFIG_KARMA_PARTITION is not set
1016# CONFIG_EFI_PARTITION is not set 1124# CONFIG_EFI_PARTITION is not set
1017# CONFIG_SYSV68_PARTITION is not set 1125# CONFIG_SYSV68_PARTITION is not set
1018
1019#
1020# Native Language Support
1021#
1022CONFIG_NLS=m 1126CONFIG_NLS=m
1023CONFIG_NLS_DEFAULT="iso8859-1" 1127CONFIG_NLS_DEFAULT="iso8859-1"
1024CONFIG_NLS_CODEPAGE_437=m 1128CONFIG_NLS_CODEPAGE_437=m
@@ -1059,30 +1163,32 @@ CONFIG_NLS_ISO8859_15=m
1059CONFIG_NLS_KOI8_R=m 1163CONFIG_NLS_KOI8_R=m
1060CONFIG_NLS_KOI8_U=m 1164CONFIG_NLS_KOI8_U=m
1061CONFIG_NLS_UTF8=m 1165CONFIG_NLS_UTF8=m
1062
1063#
1064# Distributed Lock Manager
1065#
1066CONFIG_DLM=m 1166CONFIG_DLM=m
1067# CONFIG_DLM_DEBUG is not set 1167# CONFIG_DLM_DEBUG is not set
1068 1168
1069# 1169#
1070# Profiling support
1071#
1072# CONFIG_PROFILING is not set
1073
1074#
1075# Kernel hacking 1170# Kernel hacking
1076# 1171#
1077CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1172CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1078# CONFIG_PRINTK_TIME is not set 1173# CONFIG_PRINTK_TIME is not set
1174CONFIG_ENABLE_WARN_DEPRECATED=y
1079CONFIG_ENABLE_MUST_CHECK=y 1175CONFIG_ENABLE_MUST_CHECK=y
1176CONFIG_FRAME_WARN=1024
1080# CONFIG_MAGIC_SYSRQ is not set 1177# CONFIG_MAGIC_SYSRQ is not set
1081# CONFIG_UNUSED_SYMBOLS is not set 1178# CONFIG_UNUSED_SYMBOLS is not set
1082# CONFIG_DEBUG_FS is not set 1179# CONFIG_DEBUG_FS is not set
1083# CONFIG_HEADERS_CHECK is not set 1180# CONFIG_HEADERS_CHECK is not set
1084# CONFIG_DEBUG_KERNEL is not set 1181# CONFIG_DEBUG_KERNEL is not set
1085CONFIG_CROSSCOMPILE=y 1182CONFIG_DEBUG_MEMORY_INIT=y
1183# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1184# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1185
1186#
1187# Tracers
1188#
1189CONFIG_DYNAMIC_PRINTK_DEBUG=y
1190# CONFIG_SAMPLES is not set
1191CONFIG_HAVE_ARCH_KGDB=y
1086CONFIG_CMDLINE="" 1192CONFIG_CMDLINE=""
1087 1193
1088# 1194#
@@ -1091,46 +1197,97 @@ CONFIG_CMDLINE=""
1091CONFIG_KEYS=y 1197CONFIG_KEYS=y
1092CONFIG_KEYS_DEBUG_PROC_KEYS=y 1198CONFIG_KEYS_DEBUG_PROC_KEYS=y
1093# CONFIG_SECURITY is not set 1199# CONFIG_SECURITY is not set
1200# CONFIG_SECURITYFS is not set
1201CONFIG_SECURITY_FILE_CAPABILITIES=y
1094CONFIG_CRYPTO=y 1202CONFIG_CRYPTO=y
1203
1204#
1205# Crypto core or helper
1206#
1207CONFIG_CRYPTO_FIPS=y
1095CONFIG_CRYPTO_ALGAPI=y 1208CONFIG_CRYPTO_ALGAPI=y
1096CONFIG_CRYPTO_ABLKCIPHER=m 1209CONFIG_CRYPTO_AEAD=y
1097CONFIG_CRYPTO_BLKCIPHER=m 1210CONFIG_CRYPTO_BLKCIPHER=y
1098CONFIG_CRYPTO_HASH=y 1211CONFIG_CRYPTO_HASH=y
1212CONFIG_CRYPTO_RNG=y
1099CONFIG_CRYPTO_MANAGER=y 1213CONFIG_CRYPTO_MANAGER=y
1214CONFIG_CRYPTO_GF128MUL=m
1215CONFIG_CRYPTO_NULL=m
1216CONFIG_CRYPTO_CRYPTD=m
1217CONFIG_CRYPTO_AUTHENC=m
1218# CONFIG_CRYPTO_TEST is not set
1219
1220#
1221# Authenticated Encryption with Associated Data
1222#
1223CONFIG_CRYPTO_CCM=m
1224CONFIG_CRYPTO_GCM=m
1225CONFIG_CRYPTO_SEQIV=m
1226
1227#
1228# Block modes
1229#
1230CONFIG_CRYPTO_CBC=m
1231CONFIG_CRYPTO_CTR=m
1232CONFIG_CRYPTO_CTS=m
1233CONFIG_CRYPTO_ECB=m
1234CONFIG_CRYPTO_LRW=m
1235CONFIG_CRYPTO_PCBC=m
1236CONFIG_CRYPTO_XTS=m
1237
1238#
1239# Hash modes
1240#
1100CONFIG_CRYPTO_HMAC=y 1241CONFIG_CRYPTO_HMAC=y
1101CONFIG_CRYPTO_XCBC=m 1242CONFIG_CRYPTO_XCBC=m
1102CONFIG_CRYPTO_NULL=m 1243
1244#
1245# Digest
1246#
1247CONFIG_CRYPTO_CRC32C=m
1103CONFIG_CRYPTO_MD4=m 1248CONFIG_CRYPTO_MD4=m
1104CONFIG_CRYPTO_MD5=y 1249CONFIG_CRYPTO_MD5=y
1250CONFIG_CRYPTO_MICHAEL_MIC=m
1251CONFIG_CRYPTO_RMD128=m
1252CONFIG_CRYPTO_RMD160=m
1253CONFIG_CRYPTO_RMD256=m
1254CONFIG_CRYPTO_RMD320=m
1105CONFIG_CRYPTO_SHA1=m 1255CONFIG_CRYPTO_SHA1=m
1106CONFIG_CRYPTO_SHA256=m 1256CONFIG_CRYPTO_SHA256=m
1107CONFIG_CRYPTO_SHA512=m 1257CONFIG_CRYPTO_SHA512=m
1108CONFIG_CRYPTO_WP512=m
1109CONFIG_CRYPTO_TGR192=m 1258CONFIG_CRYPTO_TGR192=m
1110CONFIG_CRYPTO_GF128MUL=m 1259CONFIG_CRYPTO_WP512=m
1111CONFIG_CRYPTO_ECB=m 1260
1112CONFIG_CRYPTO_CBC=m 1261#
1113CONFIG_CRYPTO_PCBC=m 1262# Ciphers
1114CONFIG_CRYPTO_LRW=m 1263#
1115CONFIG_CRYPTO_CRYPTD=m
1116CONFIG_CRYPTO_DES=m
1117CONFIG_CRYPTO_FCRYPT=m
1118CONFIG_CRYPTO_BLOWFISH=m
1119CONFIG_CRYPTO_TWOFISH=m
1120CONFIG_CRYPTO_TWOFISH_COMMON=m
1121CONFIG_CRYPTO_SERPENT=m
1122CONFIG_CRYPTO_AES=m 1264CONFIG_CRYPTO_AES=m
1265CONFIG_CRYPTO_ANUBIS=m
1266CONFIG_CRYPTO_ARC4=m
1267CONFIG_CRYPTO_BLOWFISH=m
1268CONFIG_CRYPTO_CAMELLIA=m
1123CONFIG_CRYPTO_CAST5=m 1269CONFIG_CRYPTO_CAST5=m
1124CONFIG_CRYPTO_CAST6=m 1270CONFIG_CRYPTO_CAST6=m
1125CONFIG_CRYPTO_TEA=m 1271CONFIG_CRYPTO_DES=m
1126CONFIG_CRYPTO_ARC4=m 1272CONFIG_CRYPTO_FCRYPT=m
1127CONFIG_CRYPTO_KHAZAD=m 1273CONFIG_CRYPTO_KHAZAD=m
1128CONFIG_CRYPTO_ANUBIS=m 1274CONFIG_CRYPTO_SALSA20=m
1275CONFIG_CRYPTO_SEED=m
1276CONFIG_CRYPTO_SERPENT=m
1277CONFIG_CRYPTO_TEA=m
1278CONFIG_CRYPTO_TWOFISH=m
1279CONFIG_CRYPTO_TWOFISH_COMMON=m
1280
1281#
1282# Compression
1283#
1129CONFIG_CRYPTO_DEFLATE=m 1284CONFIG_CRYPTO_DEFLATE=m
1130CONFIG_CRYPTO_MICHAEL_MIC=m 1285CONFIG_CRYPTO_LZO=m
1131CONFIG_CRYPTO_CRC32C=m 1286
1132CONFIG_CRYPTO_CAMELLIA=m 1287#
1133# CONFIG_CRYPTO_TEST is not set 1288# Random Number Generation
1289#
1290CONFIG_CRYPTO_ANSI_CPRNG=m
1134# CONFIG_CRYPTO_HW is not set 1291# CONFIG_CRYPTO_HW is not set
1135 1292
1136# 1293#
@@ -1139,12 +1296,15 @@ CONFIG_CRYPTO_CAMELLIA=m
1139CONFIG_BITREVERSE=m 1296CONFIG_BITREVERSE=m
1140# CONFIG_CRC_CCITT is not set 1297# CONFIG_CRC_CCITT is not set
1141CONFIG_CRC16=m 1298CONFIG_CRC16=m
1142# CONFIG_CRC_ITU_T is not set 1299CONFIG_CRC_T10DIF=m
1300CONFIG_CRC_ITU_T=m
1143CONFIG_CRC32=m 1301CONFIG_CRC32=m
1144# CONFIG_CRC7 is not set 1302# CONFIG_CRC7 is not set
1145CONFIG_LIBCRC32C=m 1303CONFIG_LIBCRC32C=m
1146CONFIG_ZLIB_INFLATE=m 1304CONFIG_ZLIB_INFLATE=m
1147CONFIG_ZLIB_DEFLATE=m 1305CONFIG_ZLIB_DEFLATE=m
1306CONFIG_LZO_COMPRESS=m
1307CONFIG_LZO_DECOMPRESS=m
1148CONFIG_TEXTSEARCH=y 1308CONFIG_TEXTSEARCH=y
1149CONFIG_TEXTSEARCH_KMP=m 1309CONFIG_TEXTSEARCH_KMP=m
1150CONFIG_TEXTSEARCH_BM=m 1310CONFIG_TEXTSEARCH_BM=m
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig
index fe4699df9626..de4c7a0a96dd 100644
--- a/arch/mips/configs/ip32_defconfig
+++ b/arch/mips/configs/ip32_defconfig
@@ -1,71 +1,71 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.28-rc7
4# Tue Feb 20 21:47:33 2007 4# Wed Dec 10 14:39:08 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_MIPS_MTX1 is not set
13# CONFIG_MIPS_BOSPORUS is not set
14# CONFIG_MIPS_PB1000 is not set
15# CONFIG_MIPS_PB1100 is not set
16# CONFIG_MIPS_PB1500 is not set
17# CONFIG_MIPS_PB1550 is not set
18# CONFIG_MIPS_PB1200 is not set
19# CONFIG_MIPS_DB1000 is not set
20# CONFIG_MIPS_DB1100 is not set
21# CONFIG_MIPS_DB1500 is not set
22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set 12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
26# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
18# CONFIG_LEMOTE_FULONG is not set
29# CONFIG_MIPS_MALTA is not set 19# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 20# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 21# CONFIG_MACH_EMMA is not set
33# CONFIG_MIPS_XXS1500 is not set 22# CONFIG_MACH_VR41XX is not set
23# CONFIG_NXP_STB220 is not set
24# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 25# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 26# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 27# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 28# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set
39# CONFIG_SGI_IP22 is not set 29# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
41CONFIG_SGI_IP32=y 32CONFIG_SGI_IP32=y
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 33# CONFIG_SIBYTE_CRHINE is not set
34# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 35# CONFIG_SIBYTE_CRHONE is not set
36# CONFIG_SIBYTE_RHONE is not set
37# CONFIG_SIBYTE_SWARM is not set
38# CONFIG_SIBYTE_LITTLESUR is not set
39# CONFIG_SIBYTE_SENTOSA is not set
40# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 41# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 42# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 43# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 44# CONFIG_MIKROTIK_RB532 is not set
45# CONFIG_WR_PPMC is not set
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 46CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 47# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 48# CONFIG_ARCH_HAS_ILOG2_U64 is not set
49CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 50CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 51CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 52CONFIG_GENERIC_CALIBRATE_DELAY=y
53CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 54CONFIG_GENERIC_TIME=y
55CONFIG_GENERIC_CMOS_UPDATE=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 56CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 57# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
63CONFIG_ARC=y 58CONFIG_ARC=y
59CONFIG_CEVT_R4K=y
60CONFIG_CSRC_R4K=y
64CONFIG_DMA_NONCOHERENT=y 61CONFIG_DMA_NONCOHERENT=y
65CONFIG_DMA_NEED_PCI_MAP_STATE=y 62CONFIG_DMA_NEED_PCI_MAP_STATE=y
63# CONFIG_HOTPLUG_CPU is not set
64# CONFIG_NO_IOPORT is not set
66CONFIG_CPU_BIG_ENDIAN=y 65CONFIG_CPU_BIG_ENDIAN=y
67# CONFIG_CPU_LITTLE_ENDIAN is not set 66# CONFIG_CPU_LITTLE_ENDIAN is not set
68CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 67CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
68CONFIG_IRQ_CPU=y
69CONFIG_ARC32=y 69CONFIG_ARC32=y
70CONFIG_BOOT_ELF32=y 70CONFIG_BOOT_ELF32=y
71CONFIG_MIPS_L1_CACHE_SHIFT=5 71CONFIG_MIPS_L1_CACHE_SHIFT=5
@@ -75,6 +75,7 @@ CONFIG_ARC_PROMLIB=y
75# 75#
76# CPU selection 76# CPU selection
77# 77#
78# CONFIG_CPU_LOONGSON2 is not set
78# CONFIG_CPU_MIPS32_R1 is not set 79# CONFIG_CPU_MIPS32_R1 is not set
79# CONFIG_CPU_MIPS32_R2 is not set 80# CONFIG_CPU_MIPS32_R2 is not set
80# CONFIG_CPU_MIPS64_R1 is not set 81# CONFIG_CPU_MIPS64_R1 is not set
@@ -87,6 +88,7 @@ CONFIG_ARC_PROMLIB=y
87# CONFIG_CPU_TX49XX is not set 88# CONFIG_CPU_TX49XX is not set
88CONFIG_CPU_R5000=y 89CONFIG_CPU_R5000=y
89# CONFIG_CPU_R5432 is not set 90# CONFIG_CPU_R5432 is not set
91# CONFIG_CPU_R5500 is not set
90# CONFIG_CPU_R6000 is not set 92# CONFIG_CPU_R6000 is not set
91# CONFIG_CPU_NEVADA is not set 93# CONFIG_CPU_NEVADA is not set
92# CONFIG_CPU_R8000 is not set 94# CONFIG_CPU_R8000 is not set
@@ -116,65 +118,73 @@ CONFIG_RM7000_CPU_SCACHE=y
116CONFIG_MIPS_MT_DISABLED=y 118CONFIG_MIPS_MT_DISABLED=y
117# CONFIG_MIPS_MT_SMP is not set 119# CONFIG_MIPS_MT_SMP is not set
118# CONFIG_MIPS_MT_SMTC is not set 120# CONFIG_MIPS_MT_SMTC is not set
119# CONFIG_MIPS_VPE_LOADER is not set
120CONFIG_CPU_HAS_LLSC=y 121CONFIG_CPU_HAS_LLSC=y
121CONFIG_CPU_HAS_SYNC=y 122CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y 123CONFIG_GENERIC_HARDIRQS=y
123CONFIG_GENERIC_IRQ_PROBE=y 124CONFIG_GENERIC_IRQ_PROBE=y
124CONFIG_ARCH_FLATMEM_ENABLE=y 125CONFIG_ARCH_FLATMEM_ENABLE=y
126CONFIG_ARCH_POPULATES_NODE_MAP=y
125CONFIG_SELECT_MEMORY_MODEL=y 127CONFIG_SELECT_MEMORY_MODEL=y
126CONFIG_FLATMEM_MANUAL=y 128CONFIG_FLATMEM_MANUAL=y
127# CONFIG_DISCONTIGMEM_MANUAL is not set 129# CONFIG_DISCONTIGMEM_MANUAL is not set
128# CONFIG_SPARSEMEM_MANUAL is not set 130# CONFIG_SPARSEMEM_MANUAL is not set
129CONFIG_FLATMEM=y 131CONFIG_FLATMEM=y
130CONFIG_FLAT_NODE_MEM_MAP=y 132CONFIG_FLAT_NODE_MEM_MAP=y
131# CONFIG_SPARSEMEM_STATIC is not set 133CONFIG_PAGEFLAGS_EXTENDED=y
132CONFIG_SPLIT_PTLOCK_CPUS=4 134CONFIG_SPLIT_PTLOCK_CPUS=4
133CONFIG_RESOURCES_64BIT=y 135CONFIG_RESOURCES_64BIT=y
134CONFIG_ZONE_DMA_FLAG=1 136CONFIG_PHYS_ADDR_T_64BIT=y
137CONFIG_ZONE_DMA_FLAG=0
138CONFIG_VIRT_TO_BUS=y
139CONFIG_UNEVICTABLE_LRU=y
140# CONFIG_NO_HZ is not set
141# CONFIG_HIGH_RES_TIMERS is not set
142CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
135# CONFIG_HZ_48 is not set 143# CONFIG_HZ_48 is not set
136# CONFIG_HZ_100 is not set 144# CONFIG_HZ_100 is not set
137# CONFIG_HZ_128 is not set 145# CONFIG_HZ_128 is not set
138# CONFIG_HZ_250 is not set 146CONFIG_HZ_250=y
139# CONFIG_HZ_256 is not set 147# CONFIG_HZ_256 is not set
140CONFIG_HZ_1000=y 148# CONFIG_HZ_1000 is not set
141# CONFIG_HZ_1024 is not set 149# CONFIG_HZ_1024 is not set
142CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 150CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
143CONFIG_HZ=1000 151CONFIG_HZ=250
144# CONFIG_PREEMPT_NONE is not set 152CONFIG_PREEMPT_NONE=y
145CONFIG_PREEMPT_VOLUNTARY=y 153# CONFIG_PREEMPT_VOLUNTARY is not set
146# CONFIG_PREEMPT is not set 154# CONFIG_PREEMPT is not set
147# CONFIG_KEXEC is not set 155# CONFIG_KEXEC is not set
156# CONFIG_SECCOMP is not set
148CONFIG_LOCKDEP_SUPPORT=y 157CONFIG_LOCKDEP_SUPPORT=y
149CONFIG_STACKTRACE_SUPPORT=y 158CONFIG_STACKTRACE_SUPPORT=y
150CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 159CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
151 160
152# 161#
153# Code maturity level options 162# General setup
154# 163#
155CONFIG_EXPERIMENTAL=y 164CONFIG_EXPERIMENTAL=y
156CONFIG_BROKEN_ON_SMP=y 165CONFIG_BROKEN_ON_SMP=y
157CONFIG_INIT_ENV_ARG_LIMIT=32 166CONFIG_INIT_ENV_ARG_LIMIT=32
158
159#
160# General setup
161#
162CONFIG_LOCALVERSION="" 167CONFIG_LOCALVERSION=""
163CONFIG_LOCALVERSION_AUTO=y 168CONFIG_LOCALVERSION_AUTO=y
164CONFIG_SWAP=y 169CONFIG_SWAP=y
165CONFIG_SYSVIPC=y 170CONFIG_SYSVIPC=y
166# CONFIG_IPC_NS is not set
167CONFIG_SYSVIPC_SYSCTL=y 171CONFIG_SYSVIPC_SYSCTL=y
168# CONFIG_POSIX_MQUEUE is not set 172CONFIG_POSIX_MQUEUE=y
169CONFIG_BSD_PROCESS_ACCT=y 173CONFIG_BSD_PROCESS_ACCT=y
170# CONFIG_BSD_PROCESS_ACCT_V3 is not set 174# CONFIG_BSD_PROCESS_ACCT_V3 is not set
171# CONFIG_TASKSTATS is not set 175# CONFIG_TASKSTATS is not set
172# CONFIG_UTS_NS is not set 176CONFIG_AUDIT=y
173# CONFIG_AUDIT is not set 177CONFIG_IKCONFIG=y
174# CONFIG_IKCONFIG is not set 178CONFIG_IKCONFIG_PROC=y
179CONFIG_LOG_BUF_SHIFT=14
180# CONFIG_CGROUPS is not set
181# CONFIG_GROUP_SCHED is not set
175CONFIG_SYSFS_DEPRECATED=y 182CONFIG_SYSFS_DEPRECATED=y
183CONFIG_SYSFS_DEPRECATED_V2=y
176CONFIG_RELAY=y 184CONFIG_RELAY=y
177# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 185# CONFIG_NAMESPACES is not set
186# CONFIG_BLK_DEV_INITRD is not set
187CONFIG_CC_OPTIMIZE_FOR_SIZE=y
178CONFIG_SYSCTL=y 188CONFIG_SYSCTL=y
179CONFIG_EMBEDDED=y 189CONFIG_EMBEDDED=y
180CONFIG_SYSCTL_SYSCALL=y 190CONFIG_SYSCTL_SYSCALL=y
@@ -184,27 +194,43 @@ CONFIG_HOTPLUG=y
184CONFIG_PRINTK=y 194CONFIG_PRINTK=y
185CONFIG_BUG=y 195CONFIG_BUG=y
186CONFIG_ELF_CORE=y 196CONFIG_ELF_CORE=y
197CONFIG_PCSPKR_PLATFORM=y
198CONFIG_COMPAT_BRK=y
187CONFIG_BASE_FULL=y 199CONFIG_BASE_FULL=y
188CONFIG_FUTEX=y 200CONFIG_FUTEX=y
201CONFIG_ANON_INODES=y
189CONFIG_EPOLL=y 202CONFIG_EPOLL=y
203CONFIG_SIGNALFD=y
204CONFIG_TIMERFD=y
205CONFIG_EVENTFD=y
190CONFIG_SHMEM=y 206CONFIG_SHMEM=y
191CONFIG_SLAB=y 207CONFIG_AIO=y
192CONFIG_VM_EVENT_COUNTERS=y 208CONFIG_VM_EVENT_COUNTERS=y
209CONFIG_PCI_QUIRKS=y
210CONFIG_SLAB=y
211# CONFIG_SLUB is not set
212# CONFIG_SLOB is not set
213CONFIG_PROFILING=y
214# CONFIG_MARKERS is not set
215CONFIG_OPROFILE=m
216CONFIG_HAVE_OPROFILE=y
217# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
218CONFIG_SLABINFO=y
193CONFIG_RT_MUTEXES=y 219CONFIG_RT_MUTEXES=y
194# CONFIG_TINY_SHMEM is not set 220# CONFIG_TINY_SHMEM is not set
195CONFIG_BASE_SMALL=0 221CONFIG_BASE_SMALL=0
196# CONFIG_SLOB is not set 222CONFIG_MODULES=y
197 223# CONFIG_MODULE_FORCE_LOAD is not set
198# 224CONFIG_MODULE_UNLOAD=y
199# Loadable module support 225# CONFIG_MODULE_FORCE_UNLOAD is not set
200# 226# CONFIG_MODVERSIONS is not set
201# CONFIG_MODULES is not set 227# CONFIG_MODULE_SRCVERSION_ALL is not set
202 228CONFIG_KMOD=y
203#
204# Block layer
205#
206CONFIG_BLOCK=y 229CONFIG_BLOCK=y
207# CONFIG_BLK_DEV_IO_TRACE is not set 230# CONFIG_BLK_DEV_IO_TRACE is not set
231# CONFIG_BLK_DEV_BSG is not set
232# CONFIG_BLK_DEV_INTEGRITY is not set
233CONFIG_BLOCK_COMPAT=y
208 234
209# 235#
210# IO Schedulers 236# IO Schedulers
@@ -213,59 +239,50 @@ CONFIG_IOSCHED_NOOP=y
213CONFIG_IOSCHED_AS=y 239CONFIG_IOSCHED_AS=y
214CONFIG_IOSCHED_DEADLINE=y 240CONFIG_IOSCHED_DEADLINE=y
215CONFIG_IOSCHED_CFQ=y 241CONFIG_IOSCHED_CFQ=y
216CONFIG_DEFAULT_AS=y 242# CONFIG_DEFAULT_AS is not set
217# CONFIG_DEFAULT_DEADLINE is not set 243# CONFIG_DEFAULT_DEADLINE is not set
218# CONFIG_DEFAULT_CFQ is not set 244CONFIG_DEFAULT_CFQ=y
219# CONFIG_DEFAULT_NOOP is not set 245# CONFIG_DEFAULT_NOOP is not set
220CONFIG_DEFAULT_IOSCHED="anticipatory" 246CONFIG_DEFAULT_IOSCHED="cfq"
247CONFIG_CLASSIC_RCU=y
248# CONFIG_FREEZER is not set
221 249
222# 250#
223# Bus options (PCI, PCMCIA, EISA, ISA, TC) 251# Bus options (PCI, PCMCIA, EISA, ISA, TC)
224# 252#
225CONFIG_HW_HAS_PCI=y 253CONFIG_HW_HAS_PCI=y
226CONFIG_PCI=y 254CONFIG_PCI=y
255CONFIG_PCI_DOMAINS=y
256# CONFIG_ARCH_SUPPORTS_MSI is not set
257# CONFIG_PCI_LEGACY is not set
227CONFIG_MMU=y 258CONFIG_MMU=y
228
229#
230# PCCARD (PCMCIA/CardBus) support
231#
232# CONFIG_PCCARD is not set 259# CONFIG_PCCARD is not set
233
234#
235# PCI Hotplug Support
236#
237# CONFIG_HOTPLUG_PCI is not set 260# CONFIG_HOTPLUG_PCI is not set
238 261
239# 262#
240# Executable file formats 263# Executable file formats
241# 264#
242CONFIG_BINFMT_ELF=y 265CONFIG_BINFMT_ELF=y
266# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
267# CONFIG_HAVE_AOUT is not set
243CONFIG_BINFMT_MISC=y 268CONFIG_BINFMT_MISC=y
244# CONFIG_BUILD_ELF64 is not set
245CONFIG_MIPS32_COMPAT=y 269CONFIG_MIPS32_COMPAT=y
246CONFIG_COMPAT=y 270CONFIG_COMPAT=y
247CONFIG_SYSVIPC_COMPAT=y 271CONFIG_SYSVIPC_COMPAT=y
248CONFIG_MIPS32_O32=y 272CONFIG_MIPS32_O32=y
249# CONFIG_MIPS32_N32 is not set 273CONFIG_MIPS32_N32=y
250CONFIG_BINFMT_ELF32=y 274CONFIG_BINFMT_ELF32=y
251 275
252# 276#
253# Power management options 277# Power management options
254# 278#
255CONFIG_PM=y 279CONFIG_ARCH_SUSPEND_POSSIBLE=y
256# CONFIG_PM_LEGACY is not set 280# CONFIG_PM is not set
257# CONFIG_PM_DEBUG is not set
258# CONFIG_PM_SYSFS_DEPRECATED is not set
259
260#
261# Networking
262#
263CONFIG_NET=y 281CONFIG_NET=y
264 282
265# 283#
266# Networking options 284# Networking options
267# 285#
268# CONFIG_NETDEBUG is not set
269CONFIG_PACKET=y 286CONFIG_PACKET=y
270CONFIG_PACKET_MMAP=y 287CONFIG_PACKET_MMAP=y
271CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -273,56 +290,83 @@ CONFIG_XFRM=y
273CONFIG_XFRM_USER=y 290CONFIG_XFRM_USER=y
274# CONFIG_XFRM_SUB_POLICY is not set 291# CONFIG_XFRM_SUB_POLICY is not set
275CONFIG_XFRM_MIGRATE=y 292CONFIG_XFRM_MIGRATE=y
293# CONFIG_XFRM_STATISTICS is not set
294CONFIG_XFRM_IPCOMP=m
276CONFIG_NET_KEY=y 295CONFIG_NET_KEY=y
277CONFIG_NET_KEY_MIGRATE=y 296CONFIG_NET_KEY_MIGRATE=y
278CONFIG_INET=y 297CONFIG_INET=y
279# CONFIG_IP_MULTICAST is not set 298CONFIG_IP_MULTICAST=y
280# CONFIG_IP_ADVANCED_ROUTER is not set 299# CONFIG_IP_ADVANCED_ROUTER is not set
281CONFIG_IP_FIB_HASH=y 300CONFIG_IP_FIB_HASH=y
282CONFIG_IP_PNP=y 301CONFIG_IP_PNP=y
283# CONFIG_IP_PNP_DHCP is not set 302CONFIG_IP_PNP_DHCP=y
284CONFIG_IP_PNP_BOOTP=y 303CONFIG_IP_PNP_BOOTP=y
285# CONFIG_IP_PNP_RARP is not set 304# CONFIG_IP_PNP_RARP is not set
286# CONFIG_NET_IPIP is not set 305CONFIG_NET_IPIP=m
287# CONFIG_NET_IPGRE is not set 306CONFIG_NET_IPGRE=m
307# CONFIG_NET_IPGRE_BROADCAST is not set
308# CONFIG_IP_MROUTE is not set
288# CONFIG_ARPD is not set 309# CONFIG_ARPD is not set
289# CONFIG_SYN_COOKIES is not set 310# CONFIG_SYN_COOKIES is not set
290# CONFIG_INET_AH is not set 311CONFIG_INET_AH=m
291# CONFIG_INET_ESP is not set 312CONFIG_INET_ESP=m
292# CONFIG_INET_IPCOMP is not set 313CONFIG_INET_IPCOMP=m
293# CONFIG_INET_XFRM_TUNNEL is not set 314CONFIG_INET_XFRM_TUNNEL=m
294# CONFIG_INET_TUNNEL is not set 315CONFIG_INET_TUNNEL=m
295CONFIG_INET_XFRM_MODE_TRANSPORT=y 316CONFIG_INET_XFRM_MODE_TRANSPORT=y
296CONFIG_INET_XFRM_MODE_TUNNEL=y 317CONFIG_INET_XFRM_MODE_TUNNEL=y
297CONFIG_INET_XFRM_MODE_BEET=y 318CONFIG_INET_XFRM_MODE_BEET=y
319# CONFIG_INET_LRO is not set
298CONFIG_INET_DIAG=y 320CONFIG_INET_DIAG=y
299CONFIG_INET_TCP_DIAG=y 321CONFIG_INET_TCP_DIAG=y
300# CONFIG_TCP_CONG_ADVANCED is not set 322CONFIG_TCP_CONG_ADVANCED=y
323CONFIG_TCP_CONG_BIC=m
301CONFIG_TCP_CONG_CUBIC=y 324CONFIG_TCP_CONG_CUBIC=y
325CONFIG_TCP_CONG_WESTWOOD=m
326CONFIG_TCP_CONG_HTCP=m
327# CONFIG_TCP_CONG_HSTCP is not set
328# CONFIG_TCP_CONG_HYBLA is not set
329# CONFIG_TCP_CONG_VEGAS is not set
330# CONFIG_TCP_CONG_SCALABLE is not set
331# CONFIG_TCP_CONG_LP is not set
332# CONFIG_TCP_CONG_VENO is not set
333# CONFIG_TCP_CONG_YEAH is not set
334# CONFIG_TCP_CONG_ILLINOIS is not set
335# CONFIG_DEFAULT_BIC is not set
336CONFIG_DEFAULT_CUBIC=y
337# CONFIG_DEFAULT_HTCP is not set
338# CONFIG_DEFAULT_VEGAS is not set
339# CONFIG_DEFAULT_WESTWOOD is not set
340# CONFIG_DEFAULT_RENO is not set
302CONFIG_DEFAULT_TCP_CONG="cubic" 341CONFIG_DEFAULT_TCP_CONG="cubic"
303CONFIG_TCP_MD5SIG=y 342CONFIG_TCP_MD5SIG=y
304# CONFIG_IPV6 is not set 343CONFIG_IPV6=m
305# CONFIG_INET6_XFRM_TUNNEL is not set 344# CONFIG_IPV6_PRIVACY is not set
306# CONFIG_INET6_TUNNEL is not set 345# CONFIG_IPV6_ROUTER_PREF is not set
346# CONFIG_IPV6_OPTIMISTIC_DAD is not set
347CONFIG_INET6_AH=m
348CONFIG_INET6_ESP=m
349CONFIG_INET6_IPCOMP=m
350# CONFIG_IPV6_MIP6 is not set
351CONFIG_INET6_XFRM_TUNNEL=m
352CONFIG_INET6_TUNNEL=m
353CONFIG_INET6_XFRM_MODE_TRANSPORT=m
354CONFIG_INET6_XFRM_MODE_TUNNEL=m
355CONFIG_INET6_XFRM_MODE_BEET=m
356# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
357CONFIG_IPV6_SIT=m
358CONFIG_IPV6_NDISC_NODETYPE=y
359CONFIG_IPV6_TUNNEL=m
360# CONFIG_IPV6_MULTIPLE_TABLES is not set
361# CONFIG_IPV6_MROUTE is not set
307CONFIG_NETWORK_SECMARK=y 362CONFIG_NETWORK_SECMARK=y
308# CONFIG_NETFILTER is not set 363# CONFIG_NETFILTER is not set
309
310#
311# DCCP Configuration (EXPERIMENTAL)
312#
313# CONFIG_IP_DCCP is not set 364# CONFIG_IP_DCCP is not set
314
315#
316# SCTP Configuration (EXPERIMENTAL)
317#
318# CONFIG_IP_SCTP is not set 365# CONFIG_IP_SCTP is not set
319
320#
321# TIPC Configuration (EXPERIMENTAL)
322#
323# CONFIG_TIPC is not set 366# CONFIG_TIPC is not set
324# CONFIG_ATM is not set 367# CONFIG_ATM is not set
325# CONFIG_BRIDGE is not set 368# CONFIG_BRIDGE is not set
369# CONFIG_NET_DSA is not set
326# CONFIG_VLAN_8021Q is not set 370# CONFIG_VLAN_8021Q is not set
327# CONFIG_DECNET is not set 371# CONFIG_DECNET is not set
328# CONFIG_LLC2 is not set 372# CONFIG_LLC2 is not set
@@ -332,10 +376,6 @@ CONFIG_NETWORK_SECMARK=y
332# CONFIG_LAPB is not set 376# CONFIG_LAPB is not set
333# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
335
336#
337# QoS and/or fair queueing
338#
339# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
340 380
341# 381#
@@ -343,15 +383,14 @@ CONFIG_NETWORK_SECMARK=y
343# 383#
344# CONFIG_NET_PKTGEN is not set 384# CONFIG_NET_PKTGEN is not set
345# CONFIG_HAMRADIO is not set 385# CONFIG_HAMRADIO is not set
386# CONFIG_CAN is not set
346# CONFIG_IRDA is not set 387# CONFIG_IRDA is not set
347# CONFIG_BT is not set 388# CONFIG_BT is not set
348CONFIG_IEEE80211=y 389# CONFIG_AF_RXRPC is not set
349# CONFIG_IEEE80211_DEBUG is not set 390# CONFIG_PHONET is not set
350CONFIG_IEEE80211_CRYPT_WEP=y 391# CONFIG_WIRELESS is not set
351CONFIG_IEEE80211_CRYPT_CCMP=y 392# CONFIG_RFKILL is not set
352CONFIG_IEEE80211_SOFTMAC=y 393# CONFIG_NET_9P is not set
353# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
354CONFIG_WIRELESS_EXT=y
355 394
356# 395#
357# Device Drivers 396# Device Drivers
@@ -360,60 +399,40 @@ CONFIG_WIRELESS_EXT=y
360# 399#
361# Generic Driver Options 400# Generic Driver Options
362# 401#
402CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
363CONFIG_STANDALONE=y 403CONFIG_STANDALONE=y
364CONFIG_PREVENT_FIRMWARE_BUILD=y 404CONFIG_PREVENT_FIRMWARE_BUILD=y
365CONFIG_FW_LOADER=y 405CONFIG_FW_LOADER=y
406CONFIG_FIRMWARE_IN_KERNEL=y
407CONFIG_EXTRA_FIRMWARE=""
366# CONFIG_SYS_HYPERVISOR is not set 408# CONFIG_SYS_HYPERVISOR is not set
367
368#
369# Connector - unified userspace <-> kernelspace linker
370#
371CONFIG_CONNECTOR=y 409CONFIG_CONNECTOR=y
372CONFIG_PROC_EVENTS=y 410CONFIG_PROC_EVENTS=y
373
374#
375# Memory Technology Devices (MTD)
376#
377# CONFIG_MTD is not set 411# CONFIG_MTD is not set
378
379#
380# Parallel port support
381#
382# CONFIG_PARPORT is not set 412# CONFIG_PARPORT is not set
383 413CONFIG_BLK_DEV=y
384#
385# Plug and Play support
386#
387# CONFIG_PNPACPI is not set
388
389#
390# Block devices
391#
392# CONFIG_BLK_CPQ_DA is not set 414# CONFIG_BLK_CPQ_DA is not set
393# CONFIG_BLK_CPQ_CISS_DA is not set 415# CONFIG_BLK_CPQ_CISS_DA is not set
394# CONFIG_BLK_DEV_DAC960 is not set 416# CONFIG_BLK_DEV_DAC960 is not set
395# CONFIG_BLK_DEV_UMEM is not set 417# CONFIG_BLK_DEV_UMEM is not set
396# CONFIG_BLK_DEV_COW_COMMON is not set 418# CONFIG_BLK_DEV_COW_COMMON is not set
397CONFIG_BLK_DEV_LOOP=y 419CONFIG_BLK_DEV_LOOP=m
398# CONFIG_BLK_DEV_CRYPTOLOOP is not set 420CONFIG_BLK_DEV_CRYPTOLOOP=m
399# CONFIG_BLK_DEV_NBD is not set 421CONFIG_BLK_DEV_NBD=m
400# CONFIG_BLK_DEV_SX8 is not set 422# CONFIG_BLK_DEV_SX8 is not set
401# CONFIG_BLK_DEV_RAM is not set 423# CONFIG_BLK_DEV_RAM is not set
402# CONFIG_BLK_DEV_INITRD is not set 424# CONFIG_CDROM_PKTCDVD is not set
403CONFIG_CDROM_PKTCDVD=y 425# CONFIG_ATA_OVER_ETH is not set
404CONFIG_CDROM_PKTCDVD_BUFFERS=8 426# CONFIG_BLK_DEV_HD is not set
405# CONFIG_CDROM_PKTCDVD_WCACHE is not set 427CONFIG_MISC_DEVICES=y
406CONFIG_ATA_OVER_ETH=y 428# CONFIG_PHANTOM is not set
407 429# CONFIG_EEPROM_93CX6 is not set
408#
409# Misc devices
410#
411CONFIG_SGI_IOC4=y 430CONFIG_SGI_IOC4=y
412# CONFIG_TIFM_CORE is not set 431# CONFIG_TIFM_CORE is not set
413 432# CONFIG_ENCLOSURE_SERVICES is not set
414# 433# CONFIG_HP_ILO is not set
415# ATA/ATAPI/MFM/RLL support 434# CONFIG_C2PORT is not set
416# 435CONFIG_HAVE_IDE=y
417# CONFIG_IDE is not set 436# CONFIG_IDE is not set
418 437
419# 438#
@@ -421,19 +440,20 @@ CONFIG_SGI_IOC4=y
421# 440#
422CONFIG_RAID_ATTRS=y 441CONFIG_RAID_ATTRS=y
423CONFIG_SCSI=y 442CONFIG_SCSI=y
443CONFIG_SCSI_DMA=y
424CONFIG_SCSI_TGT=y 444CONFIG_SCSI_TGT=y
425CONFIG_SCSI_NETLINK=y 445# CONFIG_SCSI_NETLINK is not set
426CONFIG_SCSI_PROC_FS=y 446CONFIG_SCSI_PROC_FS=y
427 447
428# 448#
429# SCSI support type (disk, tape, CD-ROM) 449# SCSI support type (disk, tape, CD-ROM)
430# 450#
431CONFIG_BLK_DEV_SD=y 451CONFIG_BLK_DEV_SD=y
432CONFIG_CHR_DEV_ST=y 452# CONFIG_CHR_DEV_ST is not set
433CONFIG_CHR_DEV_OSST=y 453# CONFIG_CHR_DEV_OSST is not set
434CONFIG_BLK_DEV_SR=y 454CONFIG_BLK_DEV_SR=y
435CONFIG_BLK_DEV_SR_VENDOR=y 455CONFIG_BLK_DEV_SR_VENDOR=y
436CONFIG_CHR_DEV_SG=y 456CONFIG_CHR_DEV_SG=m
437# CONFIG_CHR_DEV_SCH is not set 457# CONFIG_CHR_DEV_SCH is not set
438 458
439# 459#
@@ -443,35 +463,36 @@ CONFIG_SCSI_MULTI_LUN=y
443CONFIG_SCSI_CONSTANTS=y 463CONFIG_SCSI_CONSTANTS=y
444CONFIG_SCSI_LOGGING=y 464CONFIG_SCSI_LOGGING=y
445CONFIG_SCSI_SCAN_ASYNC=y 465CONFIG_SCSI_SCAN_ASYNC=y
466CONFIG_SCSI_WAIT_SCAN=m
446 467
447# 468#
448# SCSI Transports 469# SCSI Transports
449# 470#
450CONFIG_SCSI_SPI_ATTRS=y 471CONFIG_SCSI_SPI_ATTRS=y
451CONFIG_SCSI_FC_ATTRS=y 472# CONFIG_SCSI_FC_ATTRS is not set
452# CONFIG_SCSI_ISCSI_ATTRS is not set 473# CONFIG_SCSI_ISCSI_ATTRS is not set
453CONFIG_SCSI_SAS_ATTRS=y 474CONFIG_SCSI_SAS_ATTRS=y
454CONFIG_SCSI_SAS_LIBSAS=y 475CONFIG_SCSI_SAS_LIBSAS=y
476CONFIG_SCSI_SAS_HOST_SMP=y
455# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set 477# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
456 478# CONFIG_SCSI_SRP_ATTRS is not set
457# 479CONFIG_SCSI_LOWLEVEL=y
458# SCSI low-level drivers
459#
460# CONFIG_ISCSI_TCP is not set 480# CONFIG_ISCSI_TCP is not set
461# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 481# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
462# CONFIG_SCSI_3W_9XXX is not set 482# CONFIG_SCSI_3W_9XXX is not set
463# CONFIG_SCSI_ACARD is not set 483# CONFIG_SCSI_ACARD is not set
464# CONFIG_SCSI_AACRAID is not set 484# CONFIG_SCSI_AACRAID is not set
465CONFIG_SCSI_AIC7XXX=y 485CONFIG_SCSI_AIC7XXX=y
466CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 486CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
467CONFIG_AIC7XXX_RESET_DELAY_MS=15000 487CONFIG_AIC7XXX_RESET_DELAY_MS=15000
468CONFIG_AIC7XXX_DEBUG_ENABLE=y 488CONFIG_AIC7XXX_DEBUG_ENABLE=y
469CONFIG_AIC7XXX_DEBUG_MASK=0 489CONFIG_AIC7XXX_DEBUG_MASK=0
470CONFIG_AIC7XXX_REG_PRETTY_PRINT=y 490CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
471# CONFIG_SCSI_AIC7XXX_OLD is not set 491# CONFIG_SCSI_AIC7XXX_OLD is not set
472# CONFIG_SCSI_AIC79XX is not set 492# CONFIG_SCSI_AIC79XX is not set
473CONFIG_SCSI_AIC94XX=y 493# CONFIG_SCSI_AIC94XX is not set
474# CONFIG_AIC94XX_DEBUG is not set 494# CONFIG_SCSI_DPT_I2O is not set
495# CONFIG_SCSI_ADVANSYS is not set
475# CONFIG_SCSI_ARCMSR is not set 496# CONFIG_SCSI_ARCMSR is not set
476# CONFIG_MEGARAID_NEWGEN is not set 497# CONFIG_MEGARAID_NEWGEN is not set
477# CONFIG_MEGARAID_LEGACY is not set 498# CONFIG_MEGARAID_LEGACY is not set
@@ -482,6 +503,7 @@ CONFIG_SCSI_AIC94XX=y
482# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
483# CONFIG_SCSI_INITIO is not set 504# CONFIG_SCSI_INITIO is not set
484# CONFIG_SCSI_INIA100 is not set 505# CONFIG_SCSI_INIA100 is not set
506# CONFIG_SCSI_MVSAS is not set
485# CONFIG_SCSI_STEX is not set 507# CONFIG_SCSI_STEX is not set
486# CONFIG_SCSI_SYM53C8XX_2 is not set 508# CONFIG_SCSI_SYM53C8XX_2 is not set
487# CONFIG_SCSI_QLOGIC_1280 is not set 509# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -492,147 +514,81 @@ CONFIG_SCSI_AIC94XX=y
492# CONFIG_SCSI_DC390T is not set 514# CONFIG_SCSI_DC390T is not set
493# CONFIG_SCSI_DEBUG is not set 515# CONFIG_SCSI_DEBUG is not set
494# CONFIG_SCSI_SRP is not set 516# CONFIG_SCSI_SRP is not set
495 517# CONFIG_SCSI_DH is not set
496#
497# Serial ATA (prod) and Parallel ATA (experimental) drivers
498#
499# CONFIG_ATA is not set 518# CONFIG_ATA is not set
500
501#
502# Multi-device support (RAID and LVM)
503#
504# CONFIG_MD is not set 519# CONFIG_MD is not set
505
506#
507# Fusion MPT device support
508#
509# CONFIG_FUSION is not set 520# CONFIG_FUSION is not set
510# CONFIG_FUSION_SPI is not set
511# CONFIG_FUSION_FC is not set
512# CONFIG_FUSION_SAS is not set
513 521
514# 522#
515# IEEE 1394 (FireWire) support 523# IEEE 1394 (FireWire) support
516# 524#
517# CONFIG_IEEE1394 is not set
518 525
519# 526#
520# I2O device support 527# Enable only one of the two stacks, unless you know what you are doing
521# 528#
529# CONFIG_FIREWIRE is not set
530# CONFIG_IEEE1394 is not set
522# CONFIG_I2O is not set 531# CONFIG_I2O is not set
523
524#
525# Network device support
526#
527CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
528# CONFIG_DUMMY is not set 533CONFIG_DUMMY=m
529# CONFIG_BONDING is not set 534CONFIG_BONDING=m
535# CONFIG_MACVLAN is not set
530# CONFIG_EQUALIZER is not set 536# CONFIG_EQUALIZER is not set
531# CONFIG_TUN is not set 537# CONFIG_TUN is not set
532 538# CONFIG_VETH is not set
533#
534# ARCnet devices
535#
536# CONFIG_ARCNET is not set 539# CONFIG_ARCNET is not set
537 540# CONFIG_PHYLIB is not set
538#
539# PHY device support
540#
541CONFIG_PHYLIB=y
542
543#
544# MII PHY device drivers
545#
546CONFIG_MARVELL_PHY=y
547CONFIG_DAVICOM_PHY=y
548CONFIG_QSEMI_PHY=y
549CONFIG_LXT_PHY=y
550CONFIG_CICADA_PHY=y
551CONFIG_VITESSE_PHY=y
552CONFIG_SMSC_PHY=y
553# CONFIG_BROADCOM_PHY is not set
554# CONFIG_FIXED_PHY is not set
555
556#
557# Ethernet (10 or 100Mbit)
558#
559CONFIG_NET_ETHERNET=y 541CONFIG_NET_ETHERNET=y
560# CONFIG_MII is not set 542CONFIG_MII=y
543# CONFIG_AX88796 is not set
561CONFIG_SGI_O2MACE_ETH=y 544CONFIG_SGI_O2MACE_ETH=y
562# CONFIG_HAPPYMEAL is not set 545# CONFIG_HAPPYMEAL is not set
563# CONFIG_SUNGEM is not set 546# CONFIG_SUNGEM is not set
564# CONFIG_CASSINI is not set 547# CONFIG_CASSINI is not set
565# CONFIG_NET_VENDOR_3COM is not set 548# CONFIG_NET_VENDOR_3COM is not set
549# CONFIG_SMC91X is not set
566# CONFIG_DM9000 is not set 550# CONFIG_DM9000 is not set
567 551CONFIG_NET_TULIP=y
568# 552CONFIG_DE2104X=m
569# Tulip family network device support 553CONFIG_TULIP=m
570# 554# CONFIG_TULIP_MWI is not set
571# CONFIG_NET_TULIP is not set 555CONFIG_TULIP_MMIO=y
556# CONFIG_TULIP_NAPI is not set
557# CONFIG_DE4X5 is not set
558# CONFIG_WINBOND_840 is not set
559# CONFIG_DM9102 is not set
560# CONFIG_ULI526X is not set
572# CONFIG_HP100 is not set 561# CONFIG_HP100 is not set
562# CONFIG_IBM_NEW_EMAC_ZMII is not set
563# CONFIG_IBM_NEW_EMAC_RGMII is not set
564# CONFIG_IBM_NEW_EMAC_TAH is not set
565# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
566# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
567# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
568# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
573# CONFIG_NET_PCI is not set 569# CONFIG_NET_PCI is not set
574 570# CONFIG_B44 is not set
575# 571# CONFIG_ATL2 is not set
576# Ethernet (1000 Mbit) 572# CONFIG_NETDEV_1000 is not set
577# 573# CONFIG_NETDEV_10000 is not set
578# CONFIG_ACENIC is not set
579# CONFIG_DL2K is not set
580# CONFIG_E1000 is not set
581# CONFIG_NS83820 is not set
582# CONFIG_HAMACHI is not set
583# CONFIG_YELLOWFIN is not set
584# CONFIG_R8169 is not set
585# CONFIG_SIS190 is not set
586# CONFIG_SKGE is not set
587# CONFIG_SKY2 is not set
588# CONFIG_SK98LIN is not set
589# CONFIG_TIGON3 is not set
590# CONFIG_BNX2 is not set
591CONFIG_QLA3XXX=y
592# CONFIG_ATL1 is not set
593
594#
595# Ethernet (10000 Mbit)
596#
597# CONFIG_CHELSIO_T1 is not set
598CONFIG_CHELSIO_T3=y
599# CONFIG_IXGB is not set
600# CONFIG_S2IO is not set
601# CONFIG_MYRI10GE is not set
602CONFIG_NETXEN_NIC=y
603
604#
605# Token Ring devices
606#
607# CONFIG_TR is not set 574# CONFIG_TR is not set
608 575
609# 576#
610# Wireless LAN (non-hamradio) 577# Wireless LAN
611#
612# CONFIG_NET_RADIO is not set
613
614#
615# Wan interfaces
616# 578#
579# CONFIG_WLAN_PRE80211 is not set
580# CONFIG_WLAN_80211 is not set
581# CONFIG_IWLWIFI_LEDS is not set
617# CONFIG_WAN is not set 582# CONFIG_WAN is not set
618# CONFIG_FDDI is not set 583# CONFIG_FDDI is not set
619# CONFIG_HIPPI is not set 584# CONFIG_HIPPI is not set
620# CONFIG_PPP is not set 585# CONFIG_PPP is not set
621# CONFIG_SLIP is not set 586# CONFIG_SLIP is not set
622# CONFIG_NET_FC is not set 587# CONFIG_NET_FC is not set
623# CONFIG_SHAPER is not set
624# CONFIG_NETCONSOLE is not set 588# CONFIG_NETCONSOLE is not set
625# CONFIG_NETPOLL is not set 589# CONFIG_NETPOLL is not set
626# CONFIG_NET_POLL_CONTROLLER is not set 590# CONFIG_NET_POLL_CONTROLLER is not set
627
628#
629# ISDN subsystem
630#
631# CONFIG_ISDN is not set 591# CONFIG_ISDN is not set
632
633#
634# Telephony Support
635#
636# CONFIG_PHONE is not set 592# CONFIG_PHONE is not set
637 593
638# 594#
@@ -640,6 +596,7 @@ CONFIG_NETXEN_NIC=y
640# 596#
641CONFIG_INPUT=y 597CONFIG_INPUT=y
642# CONFIG_INPUT_FF_MEMLESS is not set 598# CONFIG_INPUT_FF_MEMLESS is not set
599# CONFIG_INPUT_POLLDEV is not set
643 600
644# 601#
645# Userland interfaces 602# Userland interfaces
@@ -649,16 +606,32 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
649CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 606CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
650CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 607CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
651# CONFIG_INPUT_JOYDEV is not set 608# CONFIG_INPUT_JOYDEV is not set
652# CONFIG_INPUT_TSDEV is not set 609CONFIG_INPUT_EVDEV=m
653# CONFIG_INPUT_EVDEV is not set
654# CONFIG_INPUT_EVBUG is not set 610# CONFIG_INPUT_EVBUG is not set
655 611
656# 612#
657# Input Device Drivers 613# Input Device Drivers
658# 614#
659# CONFIG_INPUT_KEYBOARD is not set 615CONFIG_INPUT_KEYBOARD=y
660# CONFIG_INPUT_MOUSE is not set 616CONFIG_KEYBOARD_ATKBD=y
617# CONFIG_KEYBOARD_SUNKBD is not set
618# CONFIG_KEYBOARD_LKKBD is not set
619# CONFIG_KEYBOARD_XTKBD is not set
620# CONFIG_KEYBOARD_NEWTON is not set
621# CONFIG_KEYBOARD_STOWAWAY is not set
622CONFIG_INPUT_MOUSE=y
623CONFIG_MOUSE_PS2=y
624CONFIG_MOUSE_PS2_ALPS=y
625CONFIG_MOUSE_PS2_LOGIPS2PP=y
626CONFIG_MOUSE_PS2_SYNAPTICS=y
627CONFIG_MOUSE_PS2_LIFEBOOK=y
628CONFIG_MOUSE_PS2_TRACKPOINT=y
629# CONFIG_MOUSE_PS2_ELANTECH is not set
630# CONFIG_MOUSE_PS2_TOUCHKIT is not set
631# CONFIG_MOUSE_SERIAL is not set
632# CONFIG_MOUSE_VSXXXAA is not set
661# CONFIG_INPUT_JOYSTICK is not set 633# CONFIG_INPUT_JOYSTICK is not set
634# CONFIG_INPUT_TABLET is not set
662# CONFIG_INPUT_TOUCHSCREEN is not set 635# CONFIG_INPUT_TOUCHSCREEN is not set
663# CONFIG_INPUT_MISC is not set 636# CONFIG_INPUT_MISC is not set
664 637
@@ -669,8 +642,8 @@ CONFIG_SERIO=y
669# CONFIG_SERIO_I8042 is not set 642# CONFIG_SERIO_I8042 is not set
670CONFIG_SERIO_SERPORT=y 643CONFIG_SERIO_SERPORT=y
671# CONFIG_SERIO_PCIPS2 is not set 644# CONFIG_SERIO_PCIPS2 is not set
672# CONFIG_SERIO_MACEPS2 is not set 645CONFIG_SERIO_MACEPS2=y
673# CONFIG_SERIO_LIBPS2 is not set 646CONFIG_SERIO_LIBPS2=y
674CONFIG_SERIO_RAW=y 647CONFIG_SERIO_RAW=y
675# CONFIG_GAMEPORT is not set 648# CONFIG_GAMEPORT is not set
676 649
@@ -678,10 +651,13 @@ CONFIG_SERIO_RAW=y
678# Character devices 651# Character devices
679# 652#
680CONFIG_VT=y 653CONFIG_VT=y
654# CONFIG_CONSOLE_TRANSLATIONS is not set
681CONFIG_VT_CONSOLE=y 655CONFIG_VT_CONSOLE=y
682CONFIG_HW_CONSOLE=y 656CONFIG_HW_CONSOLE=y
683CONFIG_VT_HW_CONSOLE_BINDING=y 657# CONFIG_VT_HW_CONSOLE_BINDING is not set
658CONFIG_DEVKMEM=y
684# CONFIG_SERIAL_NONSTANDARD is not set 659# CONFIG_SERIAL_NONSTANDARD is not set
660# CONFIG_NOZOMI is not set
685 661
686# 662#
687# Serial drivers 663# Serial drivers
@@ -702,192 +678,304 @@ CONFIG_SERIAL_CORE_CONSOLE=y
702CONFIG_UNIX98_PTYS=y 678CONFIG_UNIX98_PTYS=y
703CONFIG_LEGACY_PTYS=y 679CONFIG_LEGACY_PTYS=y
704CONFIG_LEGACY_PTY_COUNT=256 680CONFIG_LEGACY_PTY_COUNT=256
705
706#
707# IPMI
708#
709# CONFIG_IPMI_HANDLER is not set 681# CONFIG_IPMI_HANDLER is not set
710 682CONFIG_HW_RANDOM=y
711#
712# Watchdog Cards
713#
714# CONFIG_WATCHDOG is not set
715# CONFIG_HW_RANDOM is not set
716# CONFIG_RTC is not set
717# CONFIG_GEN_RTC is not set
718# CONFIG_DTLK is not set
719# CONFIG_R3964 is not set 683# CONFIG_R3964 is not set
720# CONFIG_APPLICOM is not set 684# CONFIG_APPLICOM is not set
721# CONFIG_DRM is not set
722# CONFIG_RAW_DRIVER is not set 685# CONFIG_RAW_DRIVER is not set
723
724#
725# TPM devices
726#
727# CONFIG_TCG_TPM is not set 686# CONFIG_TCG_TPM is not set
687CONFIG_DEVPORT=y
688# CONFIG_I2C is not set
689# CONFIG_SPI is not set
690# CONFIG_W1 is not set
691# CONFIG_POWER_SUPPLY is not set
692CONFIG_HWMON=y
693# CONFIG_HWMON_VID is not set
694# CONFIG_SENSORS_I5K_AMB is not set
695# CONFIG_SENSORS_F71805F is not set
696# CONFIG_SENSORS_F71882FG is not set
697# CONFIG_SENSORS_IT87 is not set
698# CONFIG_SENSORS_PC87360 is not set
699# CONFIG_SENSORS_PC87427 is not set
700# CONFIG_SENSORS_SIS5595 is not set
701# CONFIG_SENSORS_SMSC47M1 is not set
702# CONFIG_SENSORS_SMSC47B397 is not set
703# CONFIG_SENSORS_VIA686A is not set
704# CONFIG_SENSORS_VT1211 is not set
705# CONFIG_SENSORS_VT8231 is not set
706# CONFIG_SENSORS_W83627HF is not set
707# CONFIG_SENSORS_W83627EHF is not set
708# CONFIG_HWMON_DEBUG_CHIP is not set
709# CONFIG_THERMAL is not set
710# CONFIG_THERMAL_HWMON is not set
711CONFIG_WATCHDOG=y
712# CONFIG_WATCHDOG_NOWAYOUT is not set
728 713
729# 714#
730# I2C support 715# Watchdog Device Drivers
731# 716#
732# CONFIG_I2C is not set 717# CONFIG_SOFT_WATCHDOG is not set
718# CONFIG_ALIM7101_WDT is not set
733 719
734# 720#
735# SPI support 721# PCI-based Watchdog Cards
736# 722#
737# CONFIG_SPI is not set 723# CONFIG_PCIPCWATCHDOG is not set
738# CONFIG_SPI_MASTER is not set 724# CONFIG_WDTPCI is not set
725CONFIG_SSB_POSSIBLE=y
739 726
740# 727#
741# Dallas's 1-wire bus 728# Sonics Silicon Backplane
742# 729#
743# CONFIG_W1 is not set 730# CONFIG_SSB is not set
744 731
745# 732#
746# Hardware Monitoring support 733# Multifunction device drivers
747# 734#
748# CONFIG_HWMON is not set 735# CONFIG_MFD_CORE is not set
749# CONFIG_HWMON_VID is not set 736# CONFIG_MFD_SM501 is not set
737# CONFIG_HTC_PASIC3 is not set
738# CONFIG_MFD_TMIO is not set
739# CONFIG_REGULATOR is not set
750 740
751# 741#
752# Multimedia devices 742# Multimedia devices
753# 743#
754# CONFIG_VIDEO_DEV is not set
755 744
756# 745#
757# Digital Video Broadcasting Devices 746# Multimedia core support
758# 747#
759# CONFIG_DVB is not set 748CONFIG_VIDEO_DEV=m
749CONFIG_VIDEO_V4L2_COMMON=m
750CONFIG_VIDEO_ALLOW_V4L1=y
751CONFIG_VIDEO_V4L1_COMPAT=y
752# CONFIG_DVB_CORE is not set
753CONFIG_VIDEO_MEDIA=m
760 754
761# 755#
762# Graphics support 756# Multimedia drivers
763# 757#
764# CONFIG_FIRMWARE_EDID is not set 758# CONFIG_MEDIA_ATTACH is not set
765# CONFIG_FB is not set 759CONFIG_VIDEO_V4L2=m
760CONFIG_VIDEO_V4L1=m
761CONFIG_VIDEOBUF_GEN=m
762CONFIG_VIDEOBUF_VMALLOC=m
763CONFIG_VIDEO_CAPTURE_DRIVERS=y
764# CONFIG_VIDEO_ADV_DEBUG is not set
765# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
766CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
767CONFIG_VIDEO_VIVI=m
768# CONFIG_VIDEO_CPIA is not set
769# CONFIG_VIDEO_STRADIS is not set
770# CONFIG_SOC_CAMERA is not set
771CONFIG_RADIO_ADAPTERS=y
772# CONFIG_RADIO_GEMTEK_PCI is not set
773# CONFIG_RADIO_MAXIRADIO is not set
774# CONFIG_RADIO_MAESTRO is not set
775CONFIG_DAB=y
766 776
767# 777#
768# Console display driver support 778# Graphics support
769# 779#
770# CONFIG_VGA_CONSOLE is not set 780# CONFIG_DRM is not set
771CONFIG_DUMMY_CONSOLE=y 781# CONFIG_VGASTATE is not set
782CONFIG_VIDEO_OUTPUT_CONTROL=y
783CONFIG_FB=y
784CONFIG_FIRMWARE_EDID=y
785# CONFIG_FB_DDC is not set
786# CONFIG_FB_BOOT_VESA_SUPPORT is not set
787CONFIG_FB_CFB_FILLRECT=y
788CONFIG_FB_CFB_COPYAREA=y
789CONFIG_FB_CFB_IMAGEBLIT=y
790# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
791# CONFIG_FB_SYS_FILLRECT is not set
792# CONFIG_FB_SYS_COPYAREA is not set
793# CONFIG_FB_SYS_IMAGEBLIT is not set
794# CONFIG_FB_FOREIGN_ENDIAN is not set
795# CONFIG_FB_SYS_FOPS is not set
796# CONFIG_FB_SVGALIB is not set
797# CONFIG_FB_MACMODES is not set
798# CONFIG_FB_BACKLIGHT is not set
799# CONFIG_FB_MODE_HELPERS is not set
800# CONFIG_FB_TILEBLITTING is not set
801
802#
803# Frame buffer hardware drivers
804#
805# CONFIG_FB_CIRRUS is not set
806# CONFIG_FB_PM2 is not set
807# CONFIG_FB_CYBER2000 is not set
808# CONFIG_FB_ASILIANT is not set
809# CONFIG_FB_IMSTT is not set
810# CONFIG_FB_UVESA is not set
811CONFIG_FB_GBE=y
812CONFIG_FB_GBE_MEM=4
813# CONFIG_FB_S1D13XXX is not set
814# CONFIG_FB_NVIDIA is not set
815# CONFIG_FB_RIVA is not set
816# CONFIG_FB_MATROX is not set
817# CONFIG_FB_RADEON is not set
818# CONFIG_FB_ATY128 is not set
819# CONFIG_FB_ATY is not set
820# CONFIG_FB_S3 is not set
821# CONFIG_FB_SAVAGE is not set
822# CONFIG_FB_SIS is not set
823# CONFIG_FB_VIA is not set
824# CONFIG_FB_NEOMAGIC is not set
825# CONFIG_FB_KYRO is not set
826# CONFIG_FB_3DFX is not set
827# CONFIG_FB_VOODOO1 is not set
828# CONFIG_FB_VT8623 is not set
829# CONFIG_FB_TRIDENT is not set
830# CONFIG_FB_ARK is not set
831# CONFIG_FB_PM3 is not set
832# CONFIG_FB_CARMINE is not set
833# CONFIG_FB_VIRTUAL is not set
834# CONFIG_FB_METRONOME is not set
835# CONFIG_FB_MB862XX is not set
772# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 836# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
773 837
774# 838#
775# Sound 839# Display device support
776# 840#
777# CONFIG_SOUND is not set 841# CONFIG_DISPLAY_SUPPORT is not set
778 842
779# 843#
780# HID Devices 844# Console display driver support
781# 845#
846# CONFIG_VGA_CONSOLE is not set
847CONFIG_DUMMY_CONSOLE=y
848CONFIG_FRAMEBUFFER_CONSOLE=y
849# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
850# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
851CONFIG_FONTS=y
852CONFIG_FONT_8x8=y
853CONFIG_FONT_8x16=y
854# CONFIG_FONT_6x11 is not set
855# CONFIG_FONT_7x14 is not set
856# CONFIG_FONT_PEARL_8x8 is not set
857# CONFIG_FONT_ACORN_8x8 is not set
858# CONFIG_FONT_MINI_4x6 is not set
859# CONFIG_FONT_SUN8x16 is not set
860# CONFIG_FONT_SUN12x22 is not set
861# CONFIG_FONT_10x18 is not set
862CONFIG_LOGO=y
863# CONFIG_LOGO_LINUX_MONO is not set
864# CONFIG_LOGO_LINUX_VGA16 is not set
865# CONFIG_LOGO_LINUX_CLUT224 is not set
866CONFIG_LOGO_SGI_CLUT224=y
867# CONFIG_SOUND is not set
868CONFIG_HID_SUPPORT=y
782CONFIG_HID=y 869CONFIG_HID=y
783# CONFIG_HID_DEBUG is not set 870# CONFIG_HID_DEBUG is not set
871# CONFIG_HIDRAW is not set
872# CONFIG_HID_PID is not set
784 873
785# 874#
786# USB support 875# Special HID drivers
787#
788CONFIG_USB_ARCH_HAS_HCD=y
789CONFIG_USB_ARCH_HAS_OHCI=y
790CONFIG_USB_ARCH_HAS_EHCI=y
791# CONFIG_USB is not set
792
793#
794# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
795#
796
797#
798# USB Gadget Support
799#
800# CONFIG_USB_GADGET is not set
801
802#
803# MMC/SD Card support
804# 876#
877CONFIG_HID_COMPAT=y
878# CONFIG_USB_SUPPORT is not set
879# CONFIG_UWB is not set
805# CONFIG_MMC is not set 880# CONFIG_MMC is not set
806 881# CONFIG_MEMSTICK is not set
807#
808# LED devices
809#
810# CONFIG_NEW_LEDS is not set 882# CONFIG_NEW_LEDS is not set
811 883# CONFIG_ACCESSIBILITY is not set
812#
813# LED drivers
814#
815
816#
817# LED Triggers
818#
819
820#
821# InfiniBand support
822#
823# CONFIG_INFINIBAND is not set 884# CONFIG_INFINIBAND is not set
885CONFIG_RTC_LIB=y
886CONFIG_RTC_CLASS=y
887# CONFIG_RTC_HCTOSYS is not set
888# CONFIG_RTC_DEBUG is not set
824 889
825# 890#
826# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 891# RTC interfaces
827# 892#
893# CONFIG_RTC_INTF_SYSFS is not set
894# CONFIG_RTC_INTF_PROC is not set
895CONFIG_RTC_INTF_DEV=y
896# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
897# CONFIG_RTC_DRV_TEST is not set
828 898
829# 899#
830# Real Time Clock 900# SPI RTC drivers
831# 901#
832# CONFIG_RTC_CLASS is not set
833 902
834# 903#
835# DMA Engine support 904# Platform RTC drivers
836# 905#
837# CONFIG_DMA_ENGINE is not set 906CONFIG_RTC_DRV_CMOS=y
907# CONFIG_RTC_DRV_DS1286 is not set
908# CONFIG_RTC_DRV_DS1511 is not set
909# CONFIG_RTC_DRV_DS1553 is not set
910# CONFIG_RTC_DRV_DS1742 is not set
911# CONFIG_RTC_DRV_STK17TA8 is not set
912# CONFIG_RTC_DRV_M48T86 is not set
913# CONFIG_RTC_DRV_M48T35 is not set
914# CONFIG_RTC_DRV_M48T59 is not set
915# CONFIG_RTC_DRV_BQ4802 is not set
916# CONFIG_RTC_DRV_V3020 is not set
838 917
839# 918#
840# DMA Clients 919# on-CPU RTC drivers
841#
842
843#
844# DMA Devices
845#
846
847#
848# Auxiliary Display support
849#
850
851#
852# Virtualization
853# 920#
921# CONFIG_DMADEVICES is not set
922# CONFIG_UIO is not set
923# CONFIG_STAGING is not set
924CONFIG_STAGING_EXCLUDE_BUILD=y
854 925
855# 926#
856# File systems 927# File systems
857# 928#
858CONFIG_EXT2_FS=y 929CONFIG_EXT2_FS=y
859# CONFIG_EXT2_FS_XATTR is not set 930CONFIG_EXT2_FS_XATTR=y
931CONFIG_EXT2_FS_POSIX_ACL=y
932CONFIG_EXT2_FS_SECURITY=y
860# CONFIG_EXT2_FS_XIP is not set 933# CONFIG_EXT2_FS_XIP is not set
861# CONFIG_EXT3_FS is not set 934CONFIG_EXT3_FS=y
862# CONFIG_EXT4DEV_FS is not set 935CONFIG_EXT3_FS_XATTR=y
936CONFIG_EXT3_FS_POSIX_ACL=y
937CONFIG_EXT3_FS_SECURITY=y
938# CONFIG_EXT4_FS is not set
939CONFIG_JBD=y
940CONFIG_FS_MBCACHE=y
863# CONFIG_REISERFS_FS is not set 941# CONFIG_REISERFS_FS is not set
864# CONFIG_JFS_FS is not set 942# CONFIG_JFS_FS is not set
865CONFIG_FS_POSIX_ACL=y 943CONFIG_FS_POSIX_ACL=y
944CONFIG_FILE_LOCKING=y
866# CONFIG_XFS_FS is not set 945# CONFIG_XFS_FS is not set
867# CONFIG_GFS2_FS is not set 946# CONFIG_GFS2_FS is not set
868# CONFIG_OCFS2_FS is not set 947# CONFIG_OCFS2_FS is not set
869# CONFIG_MINIX_FS is not set 948CONFIG_DNOTIFY=y
870# CONFIG_ROMFS_FS is not set
871CONFIG_INOTIFY=y 949CONFIG_INOTIFY=y
872CONFIG_INOTIFY_USER=y 950CONFIG_INOTIFY_USER=y
873# CONFIG_QUOTA is not set 951CONFIG_QUOTA=y
874CONFIG_DNOTIFY=y 952# CONFIG_QUOTA_NETLINK_INTERFACE is not set
875# CONFIG_AUTOFS_FS is not set 953CONFIG_PRINT_QUOTA_WARNING=y
876# CONFIG_AUTOFS4_FS is not set 954CONFIG_QFMT_V1=m
877CONFIG_FUSE_FS=y 955CONFIG_QFMT_V2=m
956CONFIG_QUOTACTL=y
957CONFIG_AUTOFS_FS=m
958CONFIG_AUTOFS4_FS=m
959CONFIG_FUSE_FS=m
878CONFIG_GENERIC_ACL=y 960CONFIG_GENERIC_ACL=y
879 961
880# 962#
881# CD-ROM/DVD Filesystems 963# CD-ROM/DVD Filesystems
882# 964#
883# CONFIG_ISO9660_FS is not set 965CONFIG_ISO9660_FS=m
884# CONFIG_UDF_FS is not set 966CONFIG_JOLIET=y
967CONFIG_ZISOFS=y
968CONFIG_UDF_FS=m
969CONFIG_UDF_NLS=y
885 970
886# 971#
887# DOS/FAT/NT Filesystems 972# DOS/FAT/NT Filesystems
888# 973#
889# CONFIG_MSDOS_FS is not set 974CONFIG_FAT_FS=m
890# CONFIG_VFAT_FS is not set 975CONFIG_MSDOS_FS=m
976CONFIG_VFAT_FS=m
977CONFIG_FAT_DEFAULT_CODEPAGE=437
978CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
891# CONFIG_NTFS_FS is not set 979# CONFIG_NTFS_FS is not set
892 980
893# 981#
@@ -896,11 +984,11 @@ CONFIG_GENERIC_ACL=y
896CONFIG_PROC_FS=y 984CONFIG_PROC_FS=y
897CONFIG_PROC_KCORE=y 985CONFIG_PROC_KCORE=y
898CONFIG_PROC_SYSCTL=y 986CONFIG_PROC_SYSCTL=y
987CONFIG_PROC_PAGE_MONITOR=y
899CONFIG_SYSFS=y 988CONFIG_SYSFS=y
900CONFIG_TMPFS=y 989CONFIG_TMPFS=y
901CONFIG_TMPFS_POSIX_ACL=y 990CONFIG_TMPFS_POSIX_ACL=y
902# CONFIG_HUGETLB_PAGE is not set 991# CONFIG_HUGETLB_PAGE is not set
903CONFIG_RAMFS=y
904CONFIG_CONFIGFS_FS=y 992CONFIG_CONFIGFS_FS=y
905 993
906# 994#
@@ -916,33 +1004,42 @@ CONFIG_CONFIGFS_FS=y
916# CONFIG_EFS_FS is not set 1004# CONFIG_EFS_FS is not set
917# CONFIG_CRAMFS is not set 1005# CONFIG_CRAMFS is not set
918# CONFIG_VXFS_FS is not set 1006# CONFIG_VXFS_FS is not set
1007# CONFIG_MINIX_FS is not set
1008# CONFIG_OMFS_FS is not set
919# CONFIG_HPFS_FS is not set 1009# CONFIG_HPFS_FS is not set
920# CONFIG_QNX4FS_FS is not set 1010# CONFIG_QNX4FS_FS is not set
1011# CONFIG_ROMFS_FS is not set
921# CONFIG_SYSV_FS is not set 1012# CONFIG_SYSV_FS is not set
922# CONFIG_UFS_FS is not set 1013# CONFIG_UFS_FS is not set
923 1014CONFIG_NETWORK_FILESYSTEMS=y
924#
925# Network File Systems
926#
927CONFIG_NFS_FS=y 1015CONFIG_NFS_FS=y
928CONFIG_NFS_V3=y 1016CONFIG_NFS_V3=y
929# CONFIG_NFS_V3_ACL is not set 1017# CONFIG_NFS_V3_ACL is not set
930# CONFIG_NFS_V4 is not set 1018# CONFIG_NFS_V4 is not set
931# CONFIG_NFS_DIRECTIO is not set
932# CONFIG_NFSD is not set
933CONFIG_ROOT_NFS=y 1019CONFIG_ROOT_NFS=y
1020CONFIG_NFSD=m
1021CONFIG_NFSD_V3=y
1022# CONFIG_NFSD_V3_ACL is not set
1023# CONFIG_NFSD_V4 is not set
934CONFIG_LOCKD=y 1024CONFIG_LOCKD=y
935CONFIG_LOCKD_V4=y 1025CONFIG_LOCKD_V4=y
1026CONFIG_EXPORTFS=m
936CONFIG_NFS_COMMON=y 1027CONFIG_NFS_COMMON=y
937CONFIG_SUNRPC=y 1028CONFIG_SUNRPC=y
1029# CONFIG_SUNRPC_REGISTER_V4 is not set
938# CONFIG_RPCSEC_GSS_KRB5 is not set 1030# CONFIG_RPCSEC_GSS_KRB5 is not set
939# CONFIG_RPCSEC_GSS_SPKM3 is not set 1031# CONFIG_RPCSEC_GSS_SPKM3 is not set
940# CONFIG_SMB_FS is not set 1032# CONFIG_SMB_FS is not set
941# CONFIG_CIFS is not set 1033CONFIG_CIFS=m
1034# CONFIG_CIFS_STATS is not set
1035# CONFIG_CIFS_WEAK_PW_HASH is not set
1036# CONFIG_CIFS_UPCALL is not set
1037# CONFIG_CIFS_XATTR is not set
1038# CONFIG_CIFS_DEBUG2 is not set
1039# CONFIG_CIFS_EXPERIMENTAL is not set
942# CONFIG_NCP_FS is not set 1040# CONFIG_NCP_FS is not set
943# CONFIG_CODA_FS is not set 1041# CONFIG_CODA_FS is not set
944# CONFIG_AFS_FS is not set 1042# CONFIG_AFS_FS is not set
945# CONFIG_9P_FS is not set
946 1043
947# 1044#
948# Partition Types 1045# Partition Types
@@ -953,45 +1050,83 @@ CONFIG_PARTITION_ADVANCED=y
953# CONFIG_AMIGA_PARTITION is not set 1050# CONFIG_AMIGA_PARTITION is not set
954# CONFIG_ATARI_PARTITION is not set 1051# CONFIG_ATARI_PARTITION is not set
955# CONFIG_MAC_PARTITION is not set 1052# CONFIG_MAC_PARTITION is not set
956# CONFIG_MSDOS_PARTITION is not set 1053CONFIG_MSDOS_PARTITION=y
1054# CONFIG_BSD_DISKLABEL is not set
1055# CONFIG_MINIX_SUBPARTITION is not set
1056# CONFIG_SOLARIS_X86_PARTITION is not set
1057# CONFIG_UNIXWARE_DISKLABEL is not set
957# CONFIG_LDM_PARTITION is not set 1058# CONFIG_LDM_PARTITION is not set
958CONFIG_SGI_PARTITION=y 1059CONFIG_SGI_PARTITION=y
959# CONFIG_ULTRIX_PARTITION is not set 1060# CONFIG_ULTRIX_PARTITION is not set
960# CONFIG_SUN_PARTITION is not set 1061# CONFIG_SUN_PARTITION is not set
961# CONFIG_KARMA_PARTITION is not set 1062# CONFIG_KARMA_PARTITION is not set
962# CONFIG_EFI_PARTITION is not set 1063# CONFIG_EFI_PARTITION is not set
963 1064# CONFIG_SYSV68_PARTITION is not set
964# 1065CONFIG_NLS=y
965# Native Language Support 1066CONFIG_NLS_DEFAULT="iso8859-1"
966# 1067CONFIG_NLS_CODEPAGE_437=m
967# CONFIG_NLS is not set 1068CONFIG_NLS_CODEPAGE_737=m
968 1069CONFIG_NLS_CODEPAGE_775=m
969# 1070CONFIG_NLS_CODEPAGE_850=m
970# Distributed Lock Manager 1071CONFIG_NLS_CODEPAGE_852=m
971# 1072CONFIG_NLS_CODEPAGE_855=m
972CONFIG_DLM=y 1073CONFIG_NLS_CODEPAGE_857=m
973CONFIG_DLM_TCP=y 1074CONFIG_NLS_CODEPAGE_860=m
974# CONFIG_DLM_SCTP is not set 1075CONFIG_NLS_CODEPAGE_861=m
975# CONFIG_DLM_DEBUG is not set 1076CONFIG_NLS_CODEPAGE_862=m
976 1077CONFIG_NLS_CODEPAGE_863=m
977# 1078CONFIG_NLS_CODEPAGE_864=m
978# Profiling support 1079CONFIG_NLS_CODEPAGE_865=m
979# 1080CONFIG_NLS_CODEPAGE_866=m
980# CONFIG_PROFILING is not set 1081CONFIG_NLS_CODEPAGE_869=m
1082CONFIG_NLS_CODEPAGE_936=m
1083CONFIG_NLS_CODEPAGE_950=m
1084CONFIG_NLS_CODEPAGE_932=m
1085CONFIG_NLS_CODEPAGE_949=m
1086CONFIG_NLS_CODEPAGE_874=m
1087CONFIG_NLS_ISO8859_8=m
1088CONFIG_NLS_CODEPAGE_1250=m
1089CONFIG_NLS_CODEPAGE_1251=m
1090CONFIG_NLS_ASCII=m
1091CONFIG_NLS_ISO8859_1=m
1092CONFIG_NLS_ISO8859_2=m
1093CONFIG_NLS_ISO8859_3=m
1094CONFIG_NLS_ISO8859_4=m
1095CONFIG_NLS_ISO8859_5=m
1096CONFIG_NLS_ISO8859_6=m
1097CONFIG_NLS_ISO8859_7=m
1098CONFIG_NLS_ISO8859_9=m
1099CONFIG_NLS_ISO8859_13=m
1100CONFIG_NLS_ISO8859_14=m
1101CONFIG_NLS_ISO8859_15=m
1102CONFIG_NLS_KOI8_R=m
1103CONFIG_NLS_KOI8_U=m
1104CONFIG_NLS_UTF8=m
1105# CONFIG_DLM is not set
981 1106
982# 1107#
983# Kernel hacking 1108# Kernel hacking
984# 1109#
985CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1110CONFIG_TRACE_IRQFLAGS_SUPPORT=y
986# CONFIG_PRINTK_TIME is not set 1111# CONFIG_PRINTK_TIME is not set
1112CONFIG_ENABLE_WARN_DEPRECATED=y
987CONFIG_ENABLE_MUST_CHECK=y 1113CONFIG_ENABLE_MUST_CHECK=y
988# CONFIG_MAGIC_SYSRQ is not set 1114CONFIG_FRAME_WARN=2048
1115CONFIG_MAGIC_SYSRQ=y
989# CONFIG_UNUSED_SYMBOLS is not set 1116# CONFIG_UNUSED_SYMBOLS is not set
990# CONFIG_DEBUG_FS is not set 1117# CONFIG_DEBUG_FS is not set
991# CONFIG_HEADERS_CHECK is not set 1118# CONFIG_HEADERS_CHECK is not set
992# CONFIG_DEBUG_KERNEL is not set 1119# CONFIG_DEBUG_KERNEL is not set
993CONFIG_LOG_BUF_SHIFT=14 1120# CONFIG_DEBUG_MEMORY_INIT is not set
994CONFIG_CROSSCOMPILE=y 1121# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1122CONFIG_SYSCTL_SYSCALL_CHECK=y
1123
1124#
1125# Tracers
1126#
1127# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1128# CONFIG_SAMPLES is not set
1129CONFIG_HAVE_ARCH_KGDB=y
995CONFIG_CMDLINE="" 1130CONFIG_CMDLINE=""
996 1131
997# 1132#
@@ -1000,51 +1135,99 @@ CONFIG_CMDLINE=""
1000CONFIG_KEYS=y 1135CONFIG_KEYS=y
1001CONFIG_KEYS_DEBUG_PROC_KEYS=y 1136CONFIG_KEYS_DEBUG_PROC_KEYS=y
1002# CONFIG_SECURITY is not set 1137# CONFIG_SECURITY is not set
1138# CONFIG_SECURITYFS is not set
1139# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1140CONFIG_CRYPTO=y
1003 1141
1004# 1142#
1005# Cryptographic options 1143# Crypto core or helper
1006# 1144#
1007CONFIG_CRYPTO=y 1145# CONFIG_CRYPTO_FIPS is not set
1008CONFIG_CRYPTO_ALGAPI=y 1146CONFIG_CRYPTO_ALGAPI=y
1147CONFIG_CRYPTO_AEAD=y
1009CONFIG_CRYPTO_BLKCIPHER=y 1148CONFIG_CRYPTO_BLKCIPHER=y
1010CONFIG_CRYPTO_HASH=y 1149CONFIG_CRYPTO_HASH=y
1150CONFIG_CRYPTO_RNG=y
1011CONFIG_CRYPTO_MANAGER=y 1151CONFIG_CRYPTO_MANAGER=y
1152CONFIG_CRYPTO_GF128MUL=y
1153CONFIG_CRYPTO_NULL=y
1154# CONFIG_CRYPTO_CRYPTD is not set
1155CONFIG_CRYPTO_AUTHENC=m
1156# CONFIG_CRYPTO_TEST is not set
1157
1158#
1159# Authenticated Encryption with Associated Data
1160#
1161# CONFIG_CRYPTO_CCM is not set
1162# CONFIG_CRYPTO_GCM is not set
1163# CONFIG_CRYPTO_SEQIV is not set
1164
1165#
1166# Block modes
1167#
1168CONFIG_CRYPTO_CBC=y
1169# CONFIG_CRYPTO_CTR is not set
1170# CONFIG_CRYPTO_CTS is not set
1171CONFIG_CRYPTO_ECB=y
1172CONFIG_CRYPTO_LRW=y
1173CONFIG_CRYPTO_PCBC=y
1174# CONFIG_CRYPTO_XTS is not set
1175
1176#
1177# Hash modes
1178#
1012CONFIG_CRYPTO_HMAC=y 1179CONFIG_CRYPTO_HMAC=y
1013CONFIG_CRYPTO_XCBC=y 1180CONFIG_CRYPTO_XCBC=y
1014CONFIG_CRYPTO_NULL=y 1181
1182#
1183# Digest
1184#
1185CONFIG_CRYPTO_CRC32C=y
1015CONFIG_CRYPTO_MD4=y 1186CONFIG_CRYPTO_MD4=y
1016CONFIG_CRYPTO_MD5=y 1187CONFIG_CRYPTO_MD5=y
1188CONFIG_CRYPTO_MICHAEL_MIC=y
1189# CONFIG_CRYPTO_RMD128 is not set
1190# CONFIG_CRYPTO_RMD160 is not set
1191# CONFIG_CRYPTO_RMD256 is not set
1192# CONFIG_CRYPTO_RMD320 is not set
1017CONFIG_CRYPTO_SHA1=y 1193CONFIG_CRYPTO_SHA1=y
1018CONFIG_CRYPTO_SHA256=y 1194CONFIG_CRYPTO_SHA256=y
1019CONFIG_CRYPTO_SHA512=y 1195CONFIG_CRYPTO_SHA512=y
1020CONFIG_CRYPTO_WP512=y
1021CONFIG_CRYPTO_TGR192=y 1196CONFIG_CRYPTO_TGR192=y
1022CONFIG_CRYPTO_GF128MUL=y 1197CONFIG_CRYPTO_WP512=y
1023CONFIG_CRYPTO_ECB=y 1198
1024CONFIG_CRYPTO_CBC=y 1199#
1025CONFIG_CRYPTO_PCBC=y 1200# Ciphers
1026CONFIG_CRYPTO_LRW=y 1201#
1027CONFIG_CRYPTO_DES=y
1028CONFIG_CRYPTO_FCRYPT=y
1029CONFIG_CRYPTO_BLOWFISH=y
1030CONFIG_CRYPTO_TWOFISH=y
1031CONFIG_CRYPTO_TWOFISH_COMMON=y
1032CONFIG_CRYPTO_SERPENT=y
1033CONFIG_CRYPTO_AES=y 1202CONFIG_CRYPTO_AES=y
1203CONFIG_CRYPTO_ANUBIS=y
1204CONFIG_CRYPTO_ARC4=y
1205CONFIG_CRYPTO_BLOWFISH=y
1206CONFIG_CRYPTO_CAMELLIA=y
1034CONFIG_CRYPTO_CAST5=y 1207CONFIG_CRYPTO_CAST5=y
1035CONFIG_CRYPTO_CAST6=y 1208CONFIG_CRYPTO_CAST6=y
1036CONFIG_CRYPTO_TEA=y 1209CONFIG_CRYPTO_DES=y
1037CONFIG_CRYPTO_ARC4=y 1210CONFIG_CRYPTO_FCRYPT=y
1038CONFIG_CRYPTO_KHAZAD=y 1211CONFIG_CRYPTO_KHAZAD=y
1039CONFIG_CRYPTO_ANUBIS=y 1212# CONFIG_CRYPTO_SALSA20 is not set
1213# CONFIG_CRYPTO_SEED is not set
1214CONFIG_CRYPTO_SERPENT=y
1215CONFIG_CRYPTO_TEA=y
1216CONFIG_CRYPTO_TWOFISH=y
1217CONFIG_CRYPTO_TWOFISH_COMMON=y
1218
1219#
1220# Compression
1221#
1040CONFIG_CRYPTO_DEFLATE=y 1222CONFIG_CRYPTO_DEFLATE=y
1041CONFIG_CRYPTO_MICHAEL_MIC=y 1223# CONFIG_CRYPTO_LZO is not set
1042CONFIG_CRYPTO_CRC32C=y
1043CONFIG_CRYPTO_CAMELLIA=y
1044 1224
1045# 1225#
1046# Hardware crypto devices 1226# Random Number Generation
1047# 1227#
1228# CONFIG_CRYPTO_ANSI_CPRNG is not set
1229CONFIG_CRYPTO_HW=y
1230# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1048 1231
1049# 1232#
1050# Library routines 1233# Library routines
@@ -1052,10 +1235,15 @@ CONFIG_CRYPTO_CAMELLIA=y
1052CONFIG_BITREVERSE=y 1235CONFIG_BITREVERSE=y
1053# CONFIG_CRC_CCITT is not set 1236# CONFIG_CRC_CCITT is not set
1054CONFIG_CRC16=y 1237CONFIG_CRC16=y
1238CONFIG_CRC_T10DIF=y
1239CONFIG_CRC_ITU_T=m
1055CONFIG_CRC32=y 1240CONFIG_CRC32=y
1241# CONFIG_CRC7 is not set
1056CONFIG_LIBCRC32C=y 1242CONFIG_LIBCRC32C=y
1243CONFIG_AUDIT_GENERIC=y
1057CONFIG_ZLIB_INFLATE=y 1244CONFIG_ZLIB_INFLATE=y
1058CONFIG_ZLIB_DEFLATE=y 1245CONFIG_ZLIB_DEFLATE=y
1059CONFIG_PLIST=y 1246CONFIG_PLIST=y
1060CONFIG_HAS_IOMEM=y 1247CONFIG_HAS_IOMEM=y
1061CONFIG_HAS_IOPORT=y 1248CONFIG_HAS_IOPORT=y
1249CONFIG_HAS_DMA=y
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig
index 74daa0cf87e6..1ecdd3b65dc7 100644
--- a/arch/mips/configs/malta_defconfig
+++ b/arch/mips/configs/malta_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.23-rc2 3# Linux kernel version: 2.6.28-rc6
4# Tue Aug 7 12:59:29 2007 4# Mon Dec 1 08:08:19 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -11,20 +11,25 @@ CONFIG_MIPS=y
11CONFIG_ZONE_DMA=y 11CONFIG_ZONE_DMA=y
12# CONFIG_MACH_ALCHEMY is not set 12# CONFIG_MACH_ALCHEMY is not set
13# CONFIG_BASLER_EXCITE is not set 13# CONFIG_BASLER_EXCITE is not set
14# CONFIG_BCM47XX is not set
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
18# CONFIG_LASAT is not set
17# CONFIG_LEMOTE_FULONG is not set 19# CONFIG_LEMOTE_FULONG is not set
18CONFIG_MIPS_MALTA=y 20CONFIG_MIPS_MALTA=y
19# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
20# CONFIG_MARKEINS is not set 22# CONFIG_MACH_EMMA is not set
21# CONFIG_MACH_VR41XX is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
22# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
23# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
24# CONFIG_PMC_MSP is not set 28# CONFIG_PMC_MSP is not set
25# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
26# CONFIG_SGI_IP22 is not set 30# CONFIG_SGI_IP22 is not set
27# CONFIG_SGI_IP27 is not set 31# CONFIG_SGI_IP27 is not set
32# CONFIG_SGI_IP28 is not set
28# CONFIG_SGI_IP32 is not set 33# CONFIG_SGI_IP32 is not set
29# CONFIG_SIBYTE_CRHINE is not set 34# CONFIG_SIBYTE_CRHINE is not set
30# CONFIG_SIBYTE_CARMEL is not set 35# CONFIG_SIBYTE_CARMEL is not set
@@ -35,13 +40,14 @@ CONFIG_MIPS_MALTA=y
35# CONFIG_SIBYTE_SENTOSA is not set 40# CONFIG_SIBYTE_SENTOSA is not set
36# CONFIG_SIBYTE_BIGSUR is not set 41# CONFIG_SIBYTE_BIGSUR is not set
37# CONFIG_SNI_RM is not set 42# CONFIG_SNI_RM is not set
38# CONFIG_TOSHIBA_JMR3927 is not set 43# CONFIG_MACH_TX39XX is not set
39# CONFIG_TOSHIBA_RBTX4927 is not set 44# CONFIG_MACH_TX49XX is not set
40# CONFIG_TOSHIBA_RBTX4938 is not set 45# CONFIG_MIKROTIK_RB532 is not set
41# CONFIG_WR_PPMC is not set 46# CONFIG_WR_PPMC is not set
42CONFIG_RWSEM_GENERIC_SPINLOCK=y 47CONFIG_RWSEM_GENERIC_SPINLOCK=y
43# CONFIG_ARCH_HAS_ILOG2_U32 is not set 48# CONFIG_ARCH_HAS_ILOG2_U32 is not set
44# CONFIG_ARCH_HAS_ILOG2_U64 is not set 49# CONFIG_ARCH_HAS_ILOG2_U64 is not set
50CONFIG_ARCH_SUPPORTS_OPROFILE=y
45CONFIG_GENERIC_FIND_NEXT_BIT=y 51CONFIG_GENERIC_FIND_NEXT_BIT=y
46CONFIG_GENERIC_HWEIGHT=y 52CONFIG_GENERIC_HWEIGHT=y
47CONFIG_GENERIC_CALIBRATE_DELAY=y 53CONFIG_GENERIC_CALIBRATE_DELAY=y
@@ -51,21 +57,26 @@ CONFIG_GENERIC_CMOS_UPDATE=y
51CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 57CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
52# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 58# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
53CONFIG_ARCH_MAY_HAVE_PC_FDC=y 59CONFIG_ARCH_MAY_HAVE_PC_FDC=y
60CONFIG_BOOT_RAW=y
54CONFIG_CEVT_R4K=y 61CONFIG_CEVT_R4K=y
62CONFIG_CSRC_R4K=y
55CONFIG_DMA_NONCOHERENT=y 63CONFIG_DMA_NONCOHERENT=y
56CONFIG_DMA_NEED_PCI_MAP_STATE=y 64CONFIG_DMA_NEED_PCI_MAP_STATE=y
57CONFIG_EARLY_PRINTK=y 65CONFIG_EARLY_PRINTK=y
58CONFIG_SYS_HAS_EARLY_PRINTK=y 66CONFIG_SYS_HAS_EARLY_PRINTK=y
59CONFIG_GENERIC_ISA_DMA=y 67# CONFIG_HOTPLUG_CPU is not set
60CONFIG_I8259=y 68CONFIG_I8259=y
61CONFIG_MIPS_BONITO64=y 69CONFIG_MIPS_BONITO64=y
62CONFIG_MIPS_MSC=y 70CONFIG_MIPS_MSC=y
63# CONFIG_NO_IOPORT is not set 71# CONFIG_NO_IOPORT is not set
72CONFIG_GENERIC_ISA_DMA=y
64# CONFIG_CPU_BIG_ENDIAN is not set 73# CONFIG_CPU_BIG_ENDIAN is not set
65CONFIG_CPU_LITTLE_ENDIAN=y 74CONFIG_CPU_LITTLE_ENDIAN=y
66CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 75CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
67CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 76CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
68CONFIG_IRQ_CPU=y 77CONFIG_IRQ_CPU=y
78CONFIG_IRQ_GIC=y
79CONFIG_MIPS_BOARDS_GEN=y
69CONFIG_PCI_GT64XXX_PCI0=y 80CONFIG_PCI_GT64XXX_PCI0=y
70CONFIG_SWAP_IO_SPACE=y 81CONFIG_SWAP_IO_SPACE=y
71CONFIG_BOOT_ELF32=y 82CONFIG_BOOT_ELF32=y
@@ -74,10 +85,6 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
74# 85#
75# CPU selection 86# CPU selection
76# 87#
77CONFIG_TICK_ONESHOT=y
78CONFIG_NO_HZ=y
79CONFIG_HIGH_RES_TIMERS=y
80CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
81# CONFIG_CPU_LOONGSON2 is not set 88# CONFIG_CPU_LOONGSON2 is not set
82# CONFIG_CPU_MIPS32_R1 is not set 89# CONFIG_CPU_MIPS32_R1 is not set
83CONFIG_CPU_MIPS32_R2=y 90CONFIG_CPU_MIPS32_R2=y
@@ -91,6 +98,7 @@ CONFIG_CPU_MIPS32_R2=y
91# CONFIG_CPU_TX49XX is not set 98# CONFIG_CPU_TX49XX is not set
92# CONFIG_CPU_R5000 is not set 99# CONFIG_CPU_R5000 is not set
93# CONFIG_CPU_R5432 is not set 100# CONFIG_CPU_R5432 is not set
101# CONFIG_CPU_R5500 is not set
94# CONFIG_CPU_R6000 is not set 102# CONFIG_CPU_R6000 is not set
95# CONFIG_CPU_NEVADA is not set 103# CONFIG_CPU_NEVADA is not set
96# CONFIG_CPU_R8000 is not set 104# CONFIG_CPU_R8000 is not set
@@ -108,6 +116,7 @@ CONFIG_CPU_MIPSR2=y
108CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 116CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
109CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y 117CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
110CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 118CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
119CONFIG_HARDWARE_WATCHPOINTS=y
111 120
112# 121#
113# Kernel type 122# Kernel type
@@ -125,6 +134,8 @@ CONFIG_CPU_HAS_PREFETCH=y
125CONFIG_MIPS_MT_SMP=y 134CONFIG_MIPS_MT_SMP=y
126# CONFIG_MIPS_MT_SMTC is not set 135# CONFIG_MIPS_MT_SMTC is not set
127CONFIG_MIPS_MT=y 136CONFIG_MIPS_MT=y
137# CONFIG_SCHED_SMT is not set
138CONFIG_SYS_SUPPORTS_SCHED_SMT=y
128CONFIG_SYS_SUPPORTS_MULTITHREADING=y 139CONFIG_SYS_SUPPORTS_MULTITHREADING=y
129CONFIG_MIPS_MT_FPAFF=y 140CONFIG_MIPS_MT_FPAFF=y
130# CONFIG_MIPS_VPE_LOADER is not set 141# CONFIG_MIPS_VPE_LOADER is not set
@@ -132,7 +143,6 @@ CONFIG_CPU_HAS_LLSC=y
132# CONFIG_CPU_HAS_SMARTMIPS is not set 143# CONFIG_CPU_HAS_SMARTMIPS is not set
133CONFIG_CPU_MIPSR2_IRQ_VI=y 144CONFIG_CPU_MIPSR2_IRQ_VI=y
134CONFIG_CPU_MIPSR2_IRQ_EI=y 145CONFIG_CPU_MIPSR2_IRQ_EI=y
135CONFIG_CPU_MIPSR2_SRS=y
136CONFIG_CPU_HAS_SYNC=y 146CONFIG_CPU_HAS_SYNC=y
137CONFIG_GENERIC_HARDIRQS=y 147CONFIG_GENERIC_HARDIRQS=y
138CONFIG_GENERIC_IRQ_PROBE=y 148CONFIG_GENERIC_IRQ_PROBE=y
@@ -140,22 +150,30 @@ CONFIG_IRQ_PER_CPU=y
140CONFIG_CPU_SUPPORTS_HIGHMEM=y 150CONFIG_CPU_SUPPORTS_HIGHMEM=y
141CONFIG_SYS_SUPPORTS_SMARTMIPS=y 151CONFIG_SYS_SUPPORTS_SMARTMIPS=y
142CONFIG_ARCH_FLATMEM_ENABLE=y 152CONFIG_ARCH_FLATMEM_ENABLE=y
153CONFIG_ARCH_POPULATES_NODE_MAP=y
143CONFIG_SELECT_MEMORY_MODEL=y 154CONFIG_SELECT_MEMORY_MODEL=y
144CONFIG_FLATMEM_MANUAL=y 155CONFIG_FLATMEM_MANUAL=y
145# CONFIG_DISCONTIGMEM_MANUAL is not set 156# CONFIG_DISCONTIGMEM_MANUAL is not set
146# CONFIG_SPARSEMEM_MANUAL is not set 157# CONFIG_SPARSEMEM_MANUAL is not set
147CONFIG_FLATMEM=y 158CONFIG_FLATMEM=y
148CONFIG_FLAT_NODE_MEM_MAP=y 159CONFIG_FLAT_NODE_MEM_MAP=y
149# CONFIG_SPARSEMEM_STATIC is not set 160CONFIG_PAGEFLAGS_EXTENDED=y
150CONFIG_SPLIT_PTLOCK_CPUS=4 161CONFIG_SPLIT_PTLOCK_CPUS=4
151# CONFIG_RESOURCES_64BIT is not set 162# CONFIG_RESOURCES_64BIT is not set
163# CONFIG_PHYS_ADDR_T_64BIT is not set
152CONFIG_ZONE_DMA_FLAG=1 164CONFIG_ZONE_DMA_FLAG=1
153CONFIG_BOUNCE=y 165CONFIG_BOUNCE=y
154CONFIG_VIRT_TO_BUS=y 166CONFIG_VIRT_TO_BUS=y
167CONFIG_UNEVICTABLE_LRU=y
155CONFIG_SMP=y 168CONFIG_SMP=y
169CONFIG_SMP_UP=y
156CONFIG_SYS_SUPPORTS_SMP=y 170CONFIG_SYS_SUPPORTS_SMP=y
157CONFIG_NR_CPUS_DEFAULT_2=y 171CONFIG_NR_CPUS_DEFAULT_2=y
158CONFIG_NR_CPUS=2 172CONFIG_NR_CPUS=2
173CONFIG_TICK_ONESHOT=y
174CONFIG_NO_HZ=y
175CONFIG_HIGH_RES_TIMERS=y
176CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
159# CONFIG_HZ_48 is not set 177# CONFIG_HZ_48 is not set
160CONFIG_HZ_100=y 178CONFIG_HZ_100=y
161# CONFIG_HZ_128 is not set 179# CONFIG_HZ_128 is not set
@@ -168,7 +186,6 @@ CONFIG_HZ=100
168CONFIG_PREEMPT_NONE=y 186CONFIG_PREEMPT_NONE=y
169# CONFIG_PREEMPT_VOLUNTARY is not set 187# CONFIG_PREEMPT_VOLUNTARY is not set
170# CONFIG_PREEMPT is not set 188# CONFIG_PREEMPT is not set
171CONFIG_PREEMPT_BKL=y
172# CONFIG_KEXEC is not set 189# CONFIG_KEXEC is not set
173CONFIG_SECCOMP=y 190CONFIG_SECCOMP=y
174CONFIG_LOCKDEP_SUPPORT=y 191CONFIG_LOCKDEP_SUPPORT=y
@@ -189,13 +206,19 @@ CONFIG_SYSVIPC_SYSCTL=y
189# CONFIG_POSIX_MQUEUE is not set 206# CONFIG_POSIX_MQUEUE is not set
190# CONFIG_BSD_PROCESS_ACCT is not set 207# CONFIG_BSD_PROCESS_ACCT is not set
191# CONFIG_TASKSTATS is not set 208# CONFIG_TASKSTATS is not set
192# CONFIG_USER_NS is not set
193# CONFIG_AUDIT is not set 209# CONFIG_AUDIT is not set
194# CONFIG_IKCONFIG is not set 210# CONFIG_IKCONFIG is not set
195CONFIG_LOG_BUF_SHIFT=15 211CONFIG_LOG_BUF_SHIFT=15
196# CONFIG_CPUSETS is not set 212# CONFIG_CGROUPS is not set
213# CONFIG_GROUP_SCHED is not set
197CONFIG_SYSFS_DEPRECATED=y 214CONFIG_SYSFS_DEPRECATED=y
215CONFIG_SYSFS_DEPRECATED_V2=y
198CONFIG_RELAY=y 216CONFIG_RELAY=y
217CONFIG_NAMESPACES=y
218CONFIG_UTS_NS=y
219CONFIG_IPC_NS=y
220# CONFIG_USER_NS is not set
221CONFIG_PID_NS=y
199# CONFIG_BLK_DEV_INITRD is not set 222# CONFIG_BLK_DEV_INITRD is not set
200# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
201CONFIG_SYSCTL=y 224CONFIG_SYSCTL=y
@@ -207,6 +230,8 @@ CONFIG_HOTPLUG=y
207CONFIG_PRINTK=y 230CONFIG_PRINTK=y
208CONFIG_BUG=y 231CONFIG_BUG=y
209CONFIG_ELF_CORE=y 232CONFIG_ELF_CORE=y
233CONFIG_PCSPKR_PLATFORM=y
234# CONFIG_COMPAT_BRK is not set
210CONFIG_BASE_FULL=y 235CONFIG_BASE_FULL=y
211CONFIG_FUTEX=y 236CONFIG_FUTEX=y
212CONFIG_ANON_INODES=y 237CONFIG_ANON_INODES=y
@@ -215,14 +240,23 @@ CONFIG_SIGNALFD=y
215CONFIG_TIMERFD=y 240CONFIG_TIMERFD=y
216CONFIG_EVENTFD=y 241CONFIG_EVENTFD=y
217CONFIG_SHMEM=y 242CONFIG_SHMEM=y
243CONFIG_AIO=y
218CONFIG_VM_EVENT_COUNTERS=y 244CONFIG_VM_EVENT_COUNTERS=y
245CONFIG_PCI_QUIRKS=y
219CONFIG_SLAB=y 246CONFIG_SLAB=y
220# CONFIG_SLUB is not set 247# CONFIG_SLUB is not set
221# CONFIG_SLOB is not set 248# CONFIG_SLOB is not set
249# CONFIG_PROFILING is not set
250# CONFIG_MARKERS is not set
251CONFIG_HAVE_OPROFILE=y
252CONFIG_USE_GENERIC_SMP_HELPERS=y
253# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
254CONFIG_SLABINFO=y
222CONFIG_RT_MUTEXES=y 255CONFIG_RT_MUTEXES=y
223# CONFIG_TINY_SHMEM is not set 256# CONFIG_TINY_SHMEM is not set
224CONFIG_BASE_SMALL=0 257CONFIG_BASE_SMALL=0
225CONFIG_MODULES=y 258CONFIG_MODULES=y
259# CONFIG_MODULE_FORCE_LOAD is not set
226CONFIG_MODULE_UNLOAD=y 260CONFIG_MODULE_UNLOAD=y
227# CONFIG_MODULE_FORCE_UNLOAD is not set 261# CONFIG_MODULE_FORCE_UNLOAD is not set
228CONFIG_MODVERSIONS=y 262CONFIG_MODVERSIONS=y
@@ -234,6 +268,7 @@ CONFIG_BLOCK=y
234# CONFIG_BLK_DEV_IO_TRACE is not set 268# CONFIG_BLK_DEV_IO_TRACE is not set
235# CONFIG_LSF is not set 269# CONFIG_LSF is not set
236# CONFIG_BLK_DEV_BSG is not set 270# CONFIG_BLK_DEV_BSG is not set
271# CONFIG_BLK_DEV_INTEGRITY is not set
237 272
238# 273#
239# IO Schedulers 274# IO Schedulers
@@ -247,19 +282,19 @@ CONFIG_DEFAULT_AS=y
247# CONFIG_DEFAULT_CFQ is not set 282# CONFIG_DEFAULT_CFQ is not set
248# CONFIG_DEFAULT_NOOP is not set 283# CONFIG_DEFAULT_NOOP is not set
249CONFIG_DEFAULT_IOSCHED="anticipatory" 284CONFIG_DEFAULT_IOSCHED="anticipatory"
285CONFIG_CLASSIC_RCU=y
286# CONFIG_FREEZER is not set
250 287
251# 288#
252# Bus options (PCI, PCMCIA, EISA, ISA, TC) 289# Bus options (PCI, PCMCIA, EISA, ISA, TC)
253# 290#
254CONFIG_HW_HAS_PCI=y 291CONFIG_HW_HAS_PCI=y
255CONFIG_PCI=y 292CONFIG_PCI=y
293CONFIG_PCI_DOMAINS=y
256# CONFIG_ARCH_SUPPORTS_MSI is not set 294# CONFIG_ARCH_SUPPORTS_MSI is not set
295CONFIG_PCI_LEGACY=y
257CONFIG_MMU=y 296CONFIG_MMU=y
258CONFIG_I8253=y 297CONFIG_I8253=y
259
260#
261# PCCARD (PCMCIA/CardBus) support
262#
263# CONFIG_PCCARD is not set 298# CONFIG_PCCARD is not set
264# CONFIG_HOTPLUG_PCI is not set 299# CONFIG_HOTPLUG_PCI is not set
265 300
@@ -267,6 +302,8 @@ CONFIG_I8253=y
267# Executable file formats 302# Executable file formats
268# 303#
269CONFIG_BINFMT_ELF=y 304CONFIG_BINFMT_ELF=y
305# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
306# CONFIG_HAVE_AOUT is not set
270# CONFIG_BINFMT_MISC is not set 307# CONFIG_BINFMT_MISC is not set
271CONFIG_TRAD_SIGNALS=y 308CONFIG_TRAD_SIGNALS=y
272 309
@@ -274,12 +311,7 @@ CONFIG_TRAD_SIGNALS=y
274# Power management options 311# Power management options
275# 312#
276CONFIG_PM=y 313CONFIG_PM=y
277# CONFIG_PM_LEGACY is not set
278# CONFIG_PM_DEBUG is not set 314# CONFIG_PM_DEBUG is not set
279
280#
281# Networking
282#
283CONFIG_NET=y 315CONFIG_NET=y
284 316
285# 317#
@@ -292,6 +324,8 @@ CONFIG_XFRM=y
292CONFIG_XFRM_USER=m 324CONFIG_XFRM_USER=m
293# CONFIG_XFRM_SUB_POLICY is not set 325# CONFIG_XFRM_SUB_POLICY is not set
294CONFIG_XFRM_MIGRATE=y 326CONFIG_XFRM_MIGRATE=y
327# CONFIG_XFRM_STATISTICS is not set
328CONFIG_XFRM_IPCOMP=m
295CONFIG_NET_KEY=y 329CONFIG_NET_KEY=y
296CONFIG_NET_KEY_MIGRATE=y 330CONFIG_NET_KEY_MIGRATE=y
297CONFIG_INET=y 331CONFIG_INET=y
@@ -323,42 +357,13 @@ CONFIG_INET_TUNNEL=m
323CONFIG_INET_XFRM_MODE_TRANSPORT=m 357CONFIG_INET_XFRM_MODE_TRANSPORT=m
324CONFIG_INET_XFRM_MODE_TUNNEL=m 358CONFIG_INET_XFRM_MODE_TUNNEL=m
325CONFIG_INET_XFRM_MODE_BEET=y 359CONFIG_INET_XFRM_MODE_BEET=y
360CONFIG_INET_LRO=m
326CONFIG_INET_DIAG=y 361CONFIG_INET_DIAG=y
327CONFIG_INET_TCP_DIAG=y 362CONFIG_INET_TCP_DIAG=y
328# CONFIG_TCP_CONG_ADVANCED is not set 363# CONFIG_TCP_CONG_ADVANCED is not set
329CONFIG_TCP_CONG_CUBIC=y 364CONFIG_TCP_CONG_CUBIC=y
330CONFIG_DEFAULT_TCP_CONG="cubic" 365CONFIG_DEFAULT_TCP_CONG="cubic"
331CONFIG_TCP_MD5SIG=y 366CONFIG_TCP_MD5SIG=y
332CONFIG_IP_VS=m
333# CONFIG_IP_VS_DEBUG is not set
334CONFIG_IP_VS_TAB_BITS=12
335
336#
337# IPVS transport protocol load balancing support
338#
339CONFIG_IP_VS_PROTO_TCP=y
340CONFIG_IP_VS_PROTO_UDP=y
341CONFIG_IP_VS_PROTO_ESP=y
342CONFIG_IP_VS_PROTO_AH=y
343
344#
345# IPVS scheduler
346#
347CONFIG_IP_VS_RR=m
348CONFIG_IP_VS_WRR=m
349CONFIG_IP_VS_LC=m
350CONFIG_IP_VS_WLC=m
351CONFIG_IP_VS_LBLC=m
352CONFIG_IP_VS_LBLCR=m
353CONFIG_IP_VS_DH=m
354CONFIG_IP_VS_SH=m
355CONFIG_IP_VS_SED=m
356CONFIG_IP_VS_NQ=m
357
358#
359# IPVS application helper
360#
361CONFIG_IP_VS_FTP=m
362CONFIG_IPV6=m 367CONFIG_IPV6=m
363CONFIG_IPV6_PRIVACY=y 368CONFIG_IPV6_PRIVACY=y
364CONFIG_IPV6_ROUTER_PREF=y 369CONFIG_IPV6_ROUTER_PREF=y
@@ -375,11 +380,15 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
375CONFIG_INET6_XFRM_MODE_BEET=m 380CONFIG_INET6_XFRM_MODE_BEET=m
376# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 381# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
377CONFIG_IPV6_SIT=m 382CONFIG_IPV6_SIT=m
383CONFIG_IPV6_NDISC_NODETYPE=y
378CONFIG_IPV6_TUNNEL=m 384CONFIG_IPV6_TUNNEL=m
379# CONFIG_IPV6_MULTIPLE_TABLES is not set 385# CONFIG_IPV6_MULTIPLE_TABLES is not set
386CONFIG_IPV6_MROUTE=y
387CONFIG_IPV6_PIMSM_V2=y
380CONFIG_NETWORK_SECMARK=y 388CONFIG_NETWORK_SECMARK=y
381CONFIG_NETFILTER=y 389CONFIG_NETFILTER=y
382# CONFIG_NETFILTER_DEBUG is not set 390# CONFIG_NETFILTER_DEBUG is not set
391CONFIG_NETFILTER_ADVANCED=y
383CONFIG_BRIDGE_NETFILTER=y 392CONFIG_BRIDGE_NETFILTER=y
384 393
385# 394#
@@ -388,12 +397,12 @@ CONFIG_BRIDGE_NETFILTER=y
388CONFIG_NETFILTER_NETLINK=m 397CONFIG_NETFILTER_NETLINK=m
389CONFIG_NETFILTER_NETLINK_QUEUE=m 398CONFIG_NETFILTER_NETLINK_QUEUE=m
390CONFIG_NETFILTER_NETLINK_LOG=m 399CONFIG_NETFILTER_NETLINK_LOG=m
391CONFIG_NF_CONNTRACK_ENABLED=m
392CONFIG_NF_CONNTRACK=m 400CONFIG_NF_CONNTRACK=m
393CONFIG_NF_CT_ACCT=y 401CONFIG_NF_CT_ACCT=y
394CONFIG_NF_CONNTRACK_MARK=y 402CONFIG_NF_CONNTRACK_MARK=y
395CONFIG_NF_CONNTRACK_SECMARK=y 403CONFIG_NF_CONNTRACK_SECMARK=y
396CONFIG_NF_CONNTRACK_EVENTS=y 404CONFIG_NF_CONNTRACK_EVENTS=y
405CONFIG_NF_CT_PROTO_DCCP=m
397CONFIG_NF_CT_PROTO_GRE=m 406CONFIG_NF_CT_PROTO_GRE=m
398CONFIG_NF_CT_PROTO_SCTP=m 407CONFIG_NF_CT_PROTO_SCTP=m
399CONFIG_NF_CT_PROTO_UDPLITE=m 408CONFIG_NF_CT_PROTO_UDPLITE=m
@@ -407,18 +416,22 @@ CONFIG_NF_CONNTRACK_SANE=m
407CONFIG_NF_CONNTRACK_SIP=m 416CONFIG_NF_CONNTRACK_SIP=m
408CONFIG_NF_CONNTRACK_TFTP=m 417CONFIG_NF_CONNTRACK_TFTP=m
409CONFIG_NF_CT_NETLINK=m 418CONFIG_NF_CT_NETLINK=m
419CONFIG_NETFILTER_TPROXY=m
410CONFIG_NETFILTER_XTABLES=m 420CONFIG_NETFILTER_XTABLES=m
411CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 421CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
412CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 422CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
423# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set
413# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 424# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
414CONFIG_NETFILTER_XT_TARGET_MARK=m 425CONFIG_NETFILTER_XT_TARGET_MARK=m
415CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
416CONFIG_NETFILTER_XT_TARGET_NFLOG=m 426CONFIG_NETFILTER_XT_TARGET_NFLOG=m
427CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
417CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 428CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
429CONFIG_NETFILTER_XT_TARGET_RATEEST=m
430CONFIG_NETFILTER_XT_TARGET_TPROXY=m
418CONFIG_NETFILTER_XT_TARGET_TRACE=m 431CONFIG_NETFILTER_XT_TARGET_TRACE=m
419CONFIG_NETFILTER_XT_TARGET_SECMARK=m 432CONFIG_NETFILTER_XT_TARGET_SECMARK=m
420# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set
421CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 433CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
434CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
422CONFIG_NETFILTER_XT_MATCH_COMMENT=m 435CONFIG_NETFILTER_XT_MATCH_COMMENT=m
423CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 436CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
424CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 437CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -427,40 +440,76 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
427CONFIG_NETFILTER_XT_MATCH_DCCP=m 440CONFIG_NETFILTER_XT_MATCH_DCCP=m
428# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 441# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
429CONFIG_NETFILTER_XT_MATCH_ESP=m 442CONFIG_NETFILTER_XT_MATCH_ESP=m
443CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
430CONFIG_NETFILTER_XT_MATCH_HELPER=m 444CONFIG_NETFILTER_XT_MATCH_HELPER=m
445CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
431CONFIG_NETFILTER_XT_MATCH_LENGTH=m 446CONFIG_NETFILTER_XT_MATCH_LENGTH=m
432CONFIG_NETFILTER_XT_MATCH_LIMIT=m 447CONFIG_NETFILTER_XT_MATCH_LIMIT=m
433CONFIG_NETFILTER_XT_MATCH_MAC=m 448CONFIG_NETFILTER_XT_MATCH_MAC=m
434CONFIG_NETFILTER_XT_MATCH_MARK=m 449CONFIG_NETFILTER_XT_MATCH_MARK=m
435CONFIG_NETFILTER_XT_MATCH_POLICY=m
436CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 450CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
451CONFIG_NETFILTER_XT_MATCH_OWNER=m
452CONFIG_NETFILTER_XT_MATCH_POLICY=m
437# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set 453# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
438CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 454CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
439CONFIG_NETFILTER_XT_MATCH_QUOTA=m 455CONFIG_NETFILTER_XT_MATCH_QUOTA=m
456CONFIG_NETFILTER_XT_MATCH_RATEEST=m
440CONFIG_NETFILTER_XT_MATCH_REALM=m 457CONFIG_NETFILTER_XT_MATCH_REALM=m
458CONFIG_NETFILTER_XT_MATCH_RECENT=m
459# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
441CONFIG_NETFILTER_XT_MATCH_SCTP=m 460CONFIG_NETFILTER_XT_MATCH_SCTP=m
461CONFIG_NETFILTER_XT_MATCH_SOCKET=m
442CONFIG_NETFILTER_XT_MATCH_STATE=m 462CONFIG_NETFILTER_XT_MATCH_STATE=m
443CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 463CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
444CONFIG_NETFILTER_XT_MATCH_STRING=m 464CONFIG_NETFILTER_XT_MATCH_STRING=m
445CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 465CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
466CONFIG_NETFILTER_XT_MATCH_TIME=m
446CONFIG_NETFILTER_XT_MATCH_U32=m 467CONFIG_NETFILTER_XT_MATCH_U32=m
447CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 468CONFIG_IP_VS=m
469CONFIG_IP_VS_IPV6=y
470# CONFIG_IP_VS_DEBUG is not set
471CONFIG_IP_VS_TAB_BITS=12
472
473#
474# IPVS transport protocol load balancing support
475#
476CONFIG_IP_VS_PROTO_TCP=y
477CONFIG_IP_VS_PROTO_UDP=y
478CONFIG_IP_VS_PROTO_AH_ESP=y
479CONFIG_IP_VS_PROTO_ESP=y
480CONFIG_IP_VS_PROTO_AH=y
481
482#
483# IPVS scheduler
484#
485CONFIG_IP_VS_RR=m
486CONFIG_IP_VS_WRR=m
487CONFIG_IP_VS_LC=m
488CONFIG_IP_VS_WLC=m
489CONFIG_IP_VS_LBLC=m
490CONFIG_IP_VS_LBLCR=m
491CONFIG_IP_VS_DH=m
492CONFIG_IP_VS_SH=m
493CONFIG_IP_VS_SED=m
494CONFIG_IP_VS_NQ=m
495
496#
497# IPVS application helper
498#
499CONFIG_IP_VS_FTP=m
448 500
449# 501#
450# IP: Netfilter Configuration 502# IP: Netfilter Configuration
451# 503#
504CONFIG_NF_DEFRAG_IPV4=m
452CONFIG_NF_CONNTRACK_IPV4=m 505CONFIG_NF_CONNTRACK_IPV4=m
453CONFIG_NF_CONNTRACK_PROC_COMPAT=y 506CONFIG_NF_CONNTRACK_PROC_COMPAT=y
454CONFIG_IP_NF_QUEUE=m 507CONFIG_IP_NF_QUEUE=m
455CONFIG_IP_NF_IPTABLES=m 508CONFIG_IP_NF_IPTABLES=m
456CONFIG_IP_NF_MATCH_IPRANGE=m 509CONFIG_IP_NF_MATCH_ADDRTYPE=m
457CONFIG_IP_NF_MATCH_TOS=m
458CONFIG_IP_NF_MATCH_RECENT=m
459CONFIG_IP_NF_MATCH_ECN=m
460CONFIG_IP_NF_MATCH_AH=m 510CONFIG_IP_NF_MATCH_AH=m
511CONFIG_IP_NF_MATCH_ECN=m
461CONFIG_IP_NF_MATCH_TTL=m 512CONFIG_IP_NF_MATCH_TTL=m
462CONFIG_IP_NF_MATCH_OWNER=m
463CONFIG_IP_NF_MATCH_ADDRTYPE=m
464CONFIG_IP_NF_FILTER=m 513CONFIG_IP_NF_FILTER=m
465CONFIG_IP_NF_TARGET_REJECT=m 514CONFIG_IP_NF_TARGET_REJECT=m
466CONFIG_IP_NF_TARGET_LOG=m 515CONFIG_IP_NF_TARGET_LOG=m
@@ -468,11 +517,13 @@ CONFIG_IP_NF_TARGET_ULOG=m
468CONFIG_NF_NAT=m 517CONFIG_NF_NAT=m
469CONFIG_NF_NAT_NEEDED=y 518CONFIG_NF_NAT_NEEDED=y
470CONFIG_IP_NF_TARGET_MASQUERADE=m 519CONFIG_IP_NF_TARGET_MASQUERADE=m
471CONFIG_IP_NF_TARGET_REDIRECT=m
472CONFIG_IP_NF_TARGET_NETMAP=m 520CONFIG_IP_NF_TARGET_NETMAP=m
473CONFIG_IP_NF_TARGET_SAME=m 521CONFIG_IP_NF_TARGET_REDIRECT=m
474CONFIG_NF_NAT_SNMP_BASIC=m 522CONFIG_NF_NAT_SNMP_BASIC=m
523CONFIG_NF_NAT_PROTO_DCCP=m
475CONFIG_NF_NAT_PROTO_GRE=m 524CONFIG_NF_NAT_PROTO_GRE=m
525CONFIG_NF_NAT_PROTO_UDPLITE=m
526CONFIG_NF_NAT_PROTO_SCTP=m
476CONFIG_NF_NAT_FTP=m 527CONFIG_NF_NAT_FTP=m
477CONFIG_NF_NAT_IRC=m 528CONFIG_NF_NAT_IRC=m
478CONFIG_NF_NAT_TFTP=m 529CONFIG_NF_NAT_TFTP=m
@@ -481,40 +532,34 @@ CONFIG_NF_NAT_PPTP=m
481CONFIG_NF_NAT_H323=m 532CONFIG_NF_NAT_H323=m
482CONFIG_NF_NAT_SIP=m 533CONFIG_NF_NAT_SIP=m
483CONFIG_IP_NF_MANGLE=m 534CONFIG_IP_NF_MANGLE=m
484CONFIG_IP_NF_TARGET_TOS=m 535CONFIG_IP_NF_TARGET_CLUSTERIP=m
485CONFIG_IP_NF_TARGET_ECN=m 536CONFIG_IP_NF_TARGET_ECN=m
486CONFIG_IP_NF_TARGET_TTL=m 537CONFIG_IP_NF_TARGET_TTL=m
487CONFIG_IP_NF_TARGET_CLUSTERIP=m
488CONFIG_IP_NF_RAW=m 538CONFIG_IP_NF_RAW=m
489CONFIG_IP_NF_ARPTABLES=m 539CONFIG_IP_NF_ARPTABLES=m
490CONFIG_IP_NF_ARPFILTER=m 540CONFIG_IP_NF_ARPFILTER=m
491CONFIG_IP_NF_ARP_MANGLE=m 541CONFIG_IP_NF_ARP_MANGLE=m
492 542
493# 543#
494# IPv6: Netfilter Configuration (EXPERIMENTAL) 544# IPv6: Netfilter Configuration
495# 545#
496CONFIG_NF_CONNTRACK_IPV6=m 546CONFIG_NF_CONNTRACK_IPV6=m
497CONFIG_IP6_NF_QUEUE=m 547CONFIG_IP6_NF_QUEUE=m
498CONFIG_IP6_NF_IPTABLES=m 548CONFIG_IP6_NF_IPTABLES=m
499CONFIG_IP6_NF_MATCH_RT=m 549CONFIG_IP6_NF_MATCH_AH=m
500CONFIG_IP6_NF_MATCH_OPTS=m 550CONFIG_IP6_NF_MATCH_EUI64=m
501CONFIG_IP6_NF_MATCH_FRAG=m 551CONFIG_IP6_NF_MATCH_FRAG=m
552CONFIG_IP6_NF_MATCH_OPTS=m
502CONFIG_IP6_NF_MATCH_HL=m 553CONFIG_IP6_NF_MATCH_HL=m
503CONFIG_IP6_NF_MATCH_OWNER=m
504CONFIG_IP6_NF_MATCH_IPV6HEADER=m 554CONFIG_IP6_NF_MATCH_IPV6HEADER=m
505CONFIG_IP6_NF_MATCH_AH=m
506CONFIG_IP6_NF_MATCH_MH=m 555CONFIG_IP6_NF_MATCH_MH=m
507CONFIG_IP6_NF_MATCH_EUI64=m 556CONFIG_IP6_NF_MATCH_RT=m
508CONFIG_IP6_NF_FILTER=m
509CONFIG_IP6_NF_TARGET_LOG=m 557CONFIG_IP6_NF_TARGET_LOG=m
558CONFIG_IP6_NF_FILTER=m
510CONFIG_IP6_NF_TARGET_REJECT=m 559CONFIG_IP6_NF_TARGET_REJECT=m
511CONFIG_IP6_NF_MANGLE=m 560CONFIG_IP6_NF_MANGLE=m
512CONFIG_IP6_NF_TARGET_HL=m 561CONFIG_IP6_NF_TARGET_HL=m
513CONFIG_IP6_NF_RAW=m 562CONFIG_IP6_NF_RAW=m
514
515#
516# Bridge: Netfilter Configuration
517#
518CONFIG_BRIDGE_NF_EBTABLES=m 563CONFIG_BRIDGE_NF_EBTABLES=m
519CONFIG_BRIDGE_EBT_BROUTE=m 564CONFIG_BRIDGE_EBT_BROUTE=m
520CONFIG_BRIDGE_EBT_T_FILTER=m 565CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -523,6 +568,7 @@ CONFIG_BRIDGE_EBT_802_3=m
523CONFIG_BRIDGE_EBT_AMONG=m 568CONFIG_BRIDGE_EBT_AMONG=m
524CONFIG_BRIDGE_EBT_ARP=m 569CONFIG_BRIDGE_EBT_ARP=m
525CONFIG_BRIDGE_EBT_IP=m 570CONFIG_BRIDGE_EBT_IP=m
571CONFIG_BRIDGE_EBT_IP6=m
526CONFIG_BRIDGE_EBT_LIMIT=m 572CONFIG_BRIDGE_EBT_LIMIT=m
527CONFIG_BRIDGE_EBT_MARK=m 573CONFIG_BRIDGE_EBT_MARK=m
528CONFIG_BRIDGE_EBT_PKTTYPE=m 574CONFIG_BRIDGE_EBT_PKTTYPE=m
@@ -535,6 +581,7 @@ CONFIG_BRIDGE_EBT_REDIRECT=m
535CONFIG_BRIDGE_EBT_SNAT=m 581CONFIG_BRIDGE_EBT_SNAT=m
536CONFIG_BRIDGE_EBT_LOG=m 582CONFIG_BRIDGE_EBT_LOG=m
537CONFIG_BRIDGE_EBT_ULOG=m 583CONFIG_BRIDGE_EBT_ULOG=m
584CONFIG_BRIDGE_EBT_NFLOG=m
538# CONFIG_IP_DCCP is not set 585# CONFIG_IP_DCCP is not set
539CONFIG_IP_SCTP=m 586CONFIG_IP_SCTP=m
540# CONFIG_SCTP_DBG_MSG is not set 587# CONFIG_SCTP_DBG_MSG is not set
@@ -544,8 +591,12 @@ CONFIG_IP_SCTP=m
544CONFIG_SCTP_HMAC_MD5=y 591CONFIG_SCTP_HMAC_MD5=y
545# CONFIG_TIPC is not set 592# CONFIG_TIPC is not set
546# CONFIG_ATM is not set 593# CONFIG_ATM is not set
594CONFIG_STP=m
595CONFIG_GARP=m
547CONFIG_BRIDGE=m 596CONFIG_BRIDGE=m
597# CONFIG_NET_DSA is not set
548CONFIG_VLAN_8021Q=m 598CONFIG_VLAN_8021Q=m
599CONFIG_VLAN_8021Q_GVRP=y
549# CONFIG_DECNET is not set 600# CONFIG_DECNET is not set
550CONFIG_LLC=m 601CONFIG_LLC=m
551# CONFIG_LLC2 is not set 602# CONFIG_LLC2 is not set
@@ -559,12 +610,7 @@ CONFIG_IPDDP_DECAP=y
559# CONFIG_LAPB is not set 610# CONFIG_LAPB is not set
560# CONFIG_ECONET is not set 611# CONFIG_ECONET is not set
561# CONFIG_WAN_ROUTER is not set 612# CONFIG_WAN_ROUTER is not set
562
563#
564# QoS and/or fair queueing
565#
566CONFIG_NET_SCHED=y 613CONFIG_NET_SCHED=y
567CONFIG_NET_SCH_FIFO=y
568 614
569# 615#
570# Queueing/Scheduling 616# Queueing/Scheduling
@@ -573,7 +619,7 @@ CONFIG_NET_SCH_CBQ=m
573CONFIG_NET_SCH_HTB=m 619CONFIG_NET_SCH_HTB=m
574CONFIG_NET_SCH_HFSC=m 620CONFIG_NET_SCH_HFSC=m
575CONFIG_NET_SCH_PRIO=m 621CONFIG_NET_SCH_PRIO=m
576CONFIG_NET_SCH_RR=m 622# CONFIG_NET_SCH_MULTIQ is not set
577CONFIG_NET_SCH_RED=m 623CONFIG_NET_SCH_RED=m
578CONFIG_NET_SCH_SFQ=m 624CONFIG_NET_SCH_SFQ=m
579CONFIG_NET_SCH_TEQL=m 625CONFIG_NET_SCH_TEQL=m
@@ -597,6 +643,7 @@ CONFIG_NET_CLS_U32=m
597# CONFIG_CLS_U32_MARK is not set 643# CONFIG_CLS_U32_MARK is not set
598CONFIG_NET_CLS_RSVP=m 644CONFIG_NET_CLS_RSVP=m
599CONFIG_NET_CLS_RSVP6=m 645CONFIG_NET_CLS_RSVP6=m
646CONFIG_NET_CLS_FLOW=m
600# CONFIG_NET_EMATCH is not set 647# CONFIG_NET_EMATCH is not set
601CONFIG_NET_CLS_ACT=y 648CONFIG_NET_CLS_ACT=y
602CONFIG_NET_ACT_POLICE=y 649CONFIG_NET_ACT_POLICE=y
@@ -604,37 +651,51 @@ CONFIG_NET_ACT_GACT=m
604CONFIG_GACT_PROB=y 651CONFIG_GACT_PROB=y
605CONFIG_NET_ACT_MIRRED=m 652CONFIG_NET_ACT_MIRRED=m
606CONFIG_NET_ACT_IPT=m 653CONFIG_NET_ACT_IPT=m
654CONFIG_NET_ACT_NAT=m
607CONFIG_NET_ACT_PEDIT=m 655CONFIG_NET_ACT_PEDIT=m
608CONFIG_NET_ACT_SIMP=m 656CONFIG_NET_ACT_SIMP=m
609CONFIG_NET_CLS_POLICE=y 657CONFIG_NET_ACT_SKBEDIT=m
610CONFIG_NET_CLS_IND=y 658CONFIG_NET_CLS_IND=y
659CONFIG_NET_SCH_FIFO=y
611 660
612# 661#
613# Network testing 662# Network testing
614# 663#
615# CONFIG_NET_PKTGEN is not set 664# CONFIG_NET_PKTGEN is not set
616# CONFIG_HAMRADIO is not set 665# CONFIG_HAMRADIO is not set
666# CONFIG_CAN is not set
617# CONFIG_IRDA is not set 667# CONFIG_IRDA is not set
618# CONFIG_BT is not set 668# CONFIG_BT is not set
619# CONFIG_AF_RXRPC is not set 669# CONFIG_AF_RXRPC is not set
670CONFIG_PHONET=m
620CONFIG_FIB_RULES=y 671CONFIG_FIB_RULES=y
621 672CONFIG_WIRELESS=y
622#
623# Wireless
624#
625CONFIG_CFG80211=m 673CONFIG_CFG80211=m
674CONFIG_NL80211=y
675CONFIG_WIRELESS_OLD_REGULATORY=y
626CONFIG_WIRELESS_EXT=y 676CONFIG_WIRELESS_EXT=y
677CONFIG_WIRELESS_EXT_SYSFS=y
627CONFIG_MAC80211=m 678CONFIG_MAC80211=m
628# CONFIG_MAC80211_DEBUG is not set 679
680#
681# Rate control algorithm selection
682#
683CONFIG_MAC80211_RC_PID=y
684CONFIG_MAC80211_RC_MINSTREL=y
685CONFIG_MAC80211_RC_DEFAULT_PID=y
686# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
687CONFIG_MAC80211_RC_DEFAULT="pid"
688CONFIG_MAC80211_MESH=y
689CONFIG_MAC80211_LEDS=y
690# CONFIG_MAC80211_DEBUG_MENU is not set
629CONFIG_IEEE80211=m 691CONFIG_IEEE80211=m
630# CONFIG_IEEE80211_DEBUG is not set 692# CONFIG_IEEE80211_DEBUG is not set
631CONFIG_IEEE80211_CRYPT_WEP=m 693CONFIG_IEEE80211_CRYPT_WEP=m
632CONFIG_IEEE80211_CRYPT_CCMP=m 694CONFIG_IEEE80211_CRYPT_CCMP=m
633CONFIG_IEEE80211_CRYPT_TKIP=m 695CONFIG_IEEE80211_CRYPT_TKIP=m
634CONFIG_IEEE80211_SOFTMAC=m
635# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
636CONFIG_RFKILL=m 696CONFIG_RFKILL=m
637CONFIG_RFKILL_INPUT=m 697CONFIG_RFKILL_INPUT=m
698CONFIG_RFKILL_LEDS=y
638# CONFIG_NET_9P is not set 699# CONFIG_NET_9P is not set
639 700
640# 701#
@@ -644,9 +705,12 @@ CONFIG_RFKILL_INPUT=m
644# 705#
645# Generic Driver Options 706# Generic Driver Options
646# 707#
708CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
647CONFIG_STANDALONE=y 709CONFIG_STANDALONE=y
648CONFIG_PREVENT_FIRMWARE_BUILD=y 710CONFIG_PREVENT_FIRMWARE_BUILD=y
649CONFIG_FW_LOADER=y 711CONFIG_FW_LOADER=y
712CONFIG_FIRMWARE_IN_KERNEL=y
713CONFIG_EXTRA_FIRMWARE=""
650# CONFIG_SYS_HYPERVISOR is not set 714# CONFIG_SYS_HYPERVISOR is not set
651CONFIG_CONNECTOR=m 715CONFIG_CONNECTOR=m
652CONFIG_MTD=y 716CONFIG_MTD=y
@@ -655,6 +719,7 @@ CONFIG_MTD=y
655CONFIG_MTD_PARTITIONS=y 719CONFIG_MTD_PARTITIONS=y
656# CONFIG_MTD_REDBOOT_PARTS is not set 720# CONFIG_MTD_REDBOOT_PARTS is not set
657# CONFIG_MTD_CMDLINE_PARTS is not set 721# CONFIG_MTD_CMDLINE_PARTS is not set
722# CONFIG_MTD_AR7_PARTS is not set
658 723
659# 724#
660# User Modules And Translation Layers 725# User Modules And Translation Layers
@@ -667,6 +732,7 @@ CONFIG_MTD_BLOCK=y
667# CONFIG_INFTL is not set 732# CONFIG_INFTL is not set
668# CONFIG_RFD_FTL is not set 733# CONFIG_RFD_FTL is not set
669# CONFIG_SSFDC is not set 734# CONFIG_SSFDC is not set
735CONFIG_MTD_OOPS=m
670 736
671# 737#
672# RAM/ROM/Flash chip drivers 738# RAM/ROM/Flash chip drivers
@@ -701,6 +767,7 @@ CONFIG_MTD_PHYSMAP=y
701CONFIG_MTD_PHYSMAP_START=0x0 767CONFIG_MTD_PHYSMAP_START=0x0
702CONFIG_MTD_PHYSMAP_LEN=0x0 768CONFIG_MTD_PHYSMAP_LEN=0x0
703CONFIG_MTD_PHYSMAP_BANKWIDTH=0 769CONFIG_MTD_PHYSMAP_BANKWIDTH=0
770# CONFIG_MTD_INTEL_VR_NOR is not set
704# CONFIG_MTD_PLATRAM is not set 771# CONFIG_MTD_PLATRAM is not set
705 772
706# 773#
@@ -748,25 +815,26 @@ CONFIG_BLK_DEV_NBD=m
748CONFIG_BLK_DEV_RAM=y 815CONFIG_BLK_DEV_RAM=y
749CONFIG_BLK_DEV_RAM_COUNT=16 816CONFIG_BLK_DEV_RAM_COUNT=16
750CONFIG_BLK_DEV_RAM_SIZE=4096 817CONFIG_BLK_DEV_RAM_SIZE=4096
751CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 818# CONFIG_BLK_DEV_XIP is not set
752CONFIG_CDROM_PKTCDVD=m 819CONFIG_CDROM_PKTCDVD=m
753CONFIG_CDROM_PKTCDVD_BUFFERS=8 820CONFIG_CDROM_PKTCDVD_BUFFERS=8
754# CONFIG_CDROM_PKTCDVD_WCACHE is not set 821# CONFIG_CDROM_PKTCDVD_WCACHE is not set
755CONFIG_ATA_OVER_ETH=m 822CONFIG_ATA_OVER_ETH=m
823# CONFIG_BLK_DEV_HD is not set
756# CONFIG_MISC_DEVICES is not set 824# CONFIG_MISC_DEVICES is not set
825CONFIG_HAVE_IDE=y
757CONFIG_IDE=y 826CONFIG_IDE=y
758CONFIG_IDE_MAX_HWIFS=4
759CONFIG_BLK_DEV_IDE=y
760 827
761# 828#
762# Please see Documentation/ide.txt for help/info on IDE drives 829# Please see Documentation/ide/ide.txt for help/info on IDE drives
763# 830#
764# CONFIG_BLK_DEV_IDE_SATA is not set 831# CONFIG_BLK_DEV_IDE_SATA is not set
765CONFIG_BLK_DEV_IDEDISK=y 832CONFIG_IDE_GD=y
766# CONFIG_IDEDISK_MULTI_MODE is not set 833CONFIG_IDE_GD_ATA=y
834# CONFIG_IDE_GD_ATAPI is not set
767CONFIG_BLK_DEV_IDECD=y 835CONFIG_BLK_DEV_IDECD=y
836CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
768# CONFIG_BLK_DEV_IDETAPE is not set 837# CONFIG_BLK_DEV_IDETAPE is not set
769# CONFIG_BLK_DEV_IDEFLOPPY is not set
770# CONFIG_BLK_DEV_IDESCSI is not set 838# CONFIG_BLK_DEV_IDESCSI is not set
771# CONFIG_IDE_TASK_IOCTL is not set 839# CONFIG_IDE_TASK_IOCTL is not set
772CONFIG_IDE_PROC_FS=y 840CONFIG_IDE_PROC_FS=y
@@ -775,24 +843,25 @@ CONFIG_IDE_PROC_FS=y
775# IDE chipset support/bugfixes 843# IDE chipset support/bugfixes
776# 844#
777CONFIG_IDE_GENERIC=y 845CONFIG_IDE_GENERIC=y
846# CONFIG_BLK_DEV_PLATFORM is not set
847CONFIG_BLK_DEV_IDEDMA_SFF=y
848
849#
850# PCI IDE chipsets support
851#
778CONFIG_BLK_DEV_IDEPCI=y 852CONFIG_BLK_DEV_IDEPCI=y
779# CONFIG_IDEPCI_SHARE_IRQ is not set
780CONFIG_IDEPCI_PCIBUS_ORDER=y 853CONFIG_IDEPCI_PCIBUS_ORDER=y
781# CONFIG_BLK_DEV_OFFBOARD is not set 854# CONFIG_BLK_DEV_OFFBOARD is not set
782CONFIG_BLK_DEV_GENERIC=y 855CONFIG_BLK_DEV_GENERIC=y
783# CONFIG_BLK_DEV_OPTI621 is not set 856# CONFIG_BLK_DEV_OPTI621 is not set
784CONFIG_BLK_DEV_IDEDMA_PCI=y 857CONFIG_BLK_DEV_IDEDMA_PCI=y
785# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
786# CONFIG_IDEDMA_ONLYDISK is not set
787# CONFIG_BLK_DEV_AEC62XX is not set 858# CONFIG_BLK_DEV_AEC62XX is not set
788# CONFIG_BLK_DEV_ALI15X3 is not set 859# CONFIG_BLK_DEV_ALI15X3 is not set
789# CONFIG_BLK_DEV_AMD74XX is not set 860# CONFIG_BLK_DEV_AMD74XX is not set
790# CONFIG_BLK_DEV_CMD64X is not set 861# CONFIG_BLK_DEV_CMD64X is not set
791# CONFIG_BLK_DEV_TRIFLEX is not set 862# CONFIG_BLK_DEV_TRIFLEX is not set
792# CONFIG_BLK_DEV_CY82C693 is not set
793# CONFIG_BLK_DEV_CS5520 is not set 863# CONFIG_BLK_DEV_CS5520 is not set
794# CONFIG_BLK_DEV_CS5530 is not set 864# CONFIG_BLK_DEV_CS5530 is not set
795# CONFIG_BLK_DEV_HPT34X is not set
796# CONFIG_BLK_DEV_HPT366 is not set 865# CONFIG_BLK_DEV_HPT366 is not set
797# CONFIG_BLK_DEV_JMICRON is not set 866# CONFIG_BLK_DEV_JMICRON is not set
798# CONFIG_BLK_DEV_SC1200 is not set 867# CONFIG_BLK_DEV_SC1200 is not set
@@ -808,10 +877,7 @@ CONFIG_BLK_DEV_IT8213=m
808# CONFIG_BLK_DEV_TRM290 is not set 877# CONFIG_BLK_DEV_TRM290 is not set
809# CONFIG_BLK_DEV_VIA82CXXX is not set 878# CONFIG_BLK_DEV_VIA82CXXX is not set
810CONFIG_BLK_DEV_TC86C001=m 879CONFIG_BLK_DEV_TC86C001=m
811# CONFIG_IDE_ARM is not set
812CONFIG_BLK_DEV_IDEDMA=y 880CONFIG_BLK_DEV_IDEDMA=y
813# CONFIG_IDEDMA_IVB is not set
814# CONFIG_BLK_DEV_HD is not set
815 881
816# 882#
817# SCSI device support 883# SCSI device support
@@ -848,8 +914,10 @@ CONFIG_SCSI_WAIT_SCAN=m
848# 914#
849CONFIG_SCSI_SPI_ATTRS=m 915CONFIG_SCSI_SPI_ATTRS=m
850CONFIG_SCSI_FC_ATTRS=m 916CONFIG_SCSI_FC_ATTRS=m
917# CONFIG_SCSI_FC_TGT_ATTRS is not set
851CONFIG_SCSI_ISCSI_ATTRS=m 918CONFIG_SCSI_ISCSI_ATTRS=m
852# CONFIG_SCSI_SAS_LIBSAS is not set 919# CONFIG_SCSI_SAS_LIBSAS is not set
920# CONFIG_SCSI_SRP_ATTRS is not set
853CONFIG_SCSI_LOWLEVEL=y 921CONFIG_SCSI_LOWLEVEL=y
854CONFIG_ISCSI_TCP=m 922CONFIG_ISCSI_TCP=m
855CONFIG_BLK_DEV_3W_XXXX_RAID=m 923CONFIG_BLK_DEV_3W_XXXX_RAID=m
@@ -866,6 +934,7 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
866# CONFIG_SCSI_AIC79XX is not set 934# CONFIG_SCSI_AIC79XX is not set
867# CONFIG_SCSI_AIC94XX is not set 935# CONFIG_SCSI_AIC94XX is not set
868# CONFIG_SCSI_DPT_I2O is not set 936# CONFIG_SCSI_DPT_I2O is not set
937# CONFIG_SCSI_ADVANSYS is not set
869# CONFIG_SCSI_ARCMSR is not set 938# CONFIG_SCSI_ARCMSR is not set
870# CONFIG_MEGARAID_NEWGEN is not set 939# CONFIG_MEGARAID_NEWGEN is not set
871# CONFIG_MEGARAID_LEGACY is not set 940# CONFIG_MEGARAID_LEGACY is not set
@@ -876,6 +945,7 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
876# CONFIG_SCSI_IPS is not set 945# CONFIG_SCSI_IPS is not set
877# CONFIG_SCSI_INITIO is not set 946# CONFIG_SCSI_INITIO is not set
878# CONFIG_SCSI_INIA100 is not set 947# CONFIG_SCSI_INIA100 is not set
948# CONFIG_SCSI_MVSAS is not set
879# CONFIG_SCSI_STEX is not set 949# CONFIG_SCSI_STEX is not set
880# CONFIG_SCSI_SYM53C8XX_2 is not set 950# CONFIG_SCSI_SYM53C8XX_2 is not set
881# CONFIG_SCSI_QLOGIC_1280 is not set 951# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -887,6 +957,7 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
887# CONFIG_SCSI_NSP32 is not set 957# CONFIG_SCSI_NSP32 is not set
888# CONFIG_SCSI_DEBUG is not set 958# CONFIG_SCSI_DEBUG is not set
889# CONFIG_SCSI_SRP is not set 959# CONFIG_SCSI_SRP is not set
960# CONFIG_SCSI_DH is not set
890# CONFIG_ATA is not set 961# CONFIG_ATA is not set
891CONFIG_MD=y 962CONFIG_MD=y
892CONFIG_BLK_DEV_MD=m 963CONFIG_BLK_DEV_MD=m
@@ -905,32 +976,28 @@ CONFIG_DM_SNAPSHOT=m
905CONFIG_DM_MIRROR=m 976CONFIG_DM_MIRROR=m
906CONFIG_DM_ZERO=m 977CONFIG_DM_ZERO=m
907CONFIG_DM_MULTIPATH=m 978CONFIG_DM_MULTIPATH=m
908CONFIG_DM_MULTIPATH_EMC=m
909CONFIG_DM_MULTIPATH_RDAC=m
910# CONFIG_DM_DELAY is not set 979# CONFIG_DM_DELAY is not set
980# CONFIG_DM_UEVENT is not set
981# CONFIG_FUSION is not set
911 982
912# 983#
913# Fusion MPT device support 984# IEEE 1394 (FireWire) support
914# 985#
915# CONFIG_FUSION is not set
916# CONFIG_FUSION_SPI is not set
917# CONFIG_FUSION_FC is not set
918# CONFIG_FUSION_SAS is not set
919 986
920# 987#
921# IEEE 1394 (FireWire) support 988# Enable only one of the two stacks, unless you know what you are doing
922# 989#
923# CONFIG_FIREWIRE is not set 990# CONFIG_FIREWIRE is not set
924# CONFIG_IEEE1394 is not set 991# CONFIG_IEEE1394 is not set
925# CONFIG_I2O is not set 992# CONFIG_I2O is not set
926CONFIG_NETDEVICES=y 993CONFIG_NETDEVICES=y
927CONFIG_NETDEVICES_MULTIQUEUE=y
928CONFIG_IFB=m 994CONFIG_IFB=m
929CONFIG_DUMMY=m 995CONFIG_DUMMY=m
930CONFIG_BONDING=m 996CONFIG_BONDING=m
931CONFIG_MACVLAN=m 997CONFIG_MACVLAN=m
932CONFIG_EQUALIZER=m 998CONFIG_EQUALIZER=m
933CONFIG_TUN=m 999CONFIG_TUN=m
1000CONFIG_VETH=m
934# CONFIG_ARCNET is not set 1001# CONFIG_ARCNET is not set
935CONFIG_PHYLIB=m 1002CONFIG_PHYLIB=m
936 1003
@@ -946,26 +1013,34 @@ CONFIG_VITESSE_PHY=m
946CONFIG_SMSC_PHY=m 1013CONFIG_SMSC_PHY=m
947CONFIG_BROADCOM_PHY=m 1014CONFIG_BROADCOM_PHY=m
948CONFIG_ICPLUS_PHY=m 1015CONFIG_ICPLUS_PHY=m
949# CONFIG_FIXED_PHY is not set 1016CONFIG_REALTEK_PHY=m
1017CONFIG_MDIO_BITBANG=m
950CONFIG_NET_ETHERNET=y 1018CONFIG_NET_ETHERNET=y
951CONFIG_MII=y 1019CONFIG_MII=y
952CONFIG_AX88796=m 1020CONFIG_AX88796=m
1021# CONFIG_AX88796_93CX6 is not set
953# CONFIG_HAPPYMEAL is not set 1022# CONFIG_HAPPYMEAL is not set
954# CONFIG_SUNGEM is not set 1023# CONFIG_SUNGEM is not set
955# CONFIG_CASSINI is not set 1024# CONFIG_CASSINI is not set
956# CONFIG_NET_VENDOR_3COM is not set 1025# CONFIG_NET_VENDOR_3COM is not set
1026# CONFIG_SMC91X is not set
957# CONFIG_DM9000 is not set 1027# CONFIG_DM9000 is not set
958# CONFIG_NET_TULIP is not set 1028# CONFIG_NET_TULIP is not set
959# CONFIG_HP100 is not set 1029# CONFIG_HP100 is not set
1030# CONFIG_IBM_NEW_EMAC_ZMII is not set
1031# CONFIG_IBM_NEW_EMAC_RGMII is not set
1032# CONFIG_IBM_NEW_EMAC_TAH is not set
1033# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
1034# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
1035# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
1036# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
960CONFIG_NET_PCI=y 1037CONFIG_NET_PCI=y
961CONFIG_PCNET32=y 1038CONFIG_PCNET32=y
962# CONFIG_PCNET32_NAPI is not set
963# CONFIG_AMD8111_ETH is not set 1039# CONFIG_AMD8111_ETH is not set
964# CONFIG_ADAPTEC_STARFIRE is not set 1040# CONFIG_ADAPTEC_STARFIRE is not set
965# CONFIG_B44 is not set 1041# CONFIG_B44 is not set
966# CONFIG_FORCEDETH is not set 1042# CONFIG_FORCEDETH is not set
967CONFIG_TC35815=m 1043CONFIG_TC35815=m
968# CONFIG_DGRS is not set
969# CONFIG_EEPRO100 is not set 1044# CONFIG_EEPRO100 is not set
970# CONFIG_E100 is not set 1045# CONFIG_E100 is not set
971# CONFIG_FEALNX is not set 1046# CONFIG_FEALNX is not set
@@ -973,16 +1048,21 @@ CONFIG_TC35815=m
973# CONFIG_NE2K_PCI is not set 1048# CONFIG_NE2K_PCI is not set
974# CONFIG_8139CP is not set 1049# CONFIG_8139CP is not set
975# CONFIG_8139TOO is not set 1050# CONFIG_8139TOO is not set
1051# CONFIG_R6040 is not set
976# CONFIG_SIS900 is not set 1052# CONFIG_SIS900 is not set
977# CONFIG_EPIC100 is not set 1053# CONFIG_EPIC100 is not set
978# CONFIG_SUNDANCE is not set 1054# CONFIG_SUNDANCE is not set
979# CONFIG_TLAN is not set 1055# CONFIG_TLAN is not set
980# CONFIG_VIA_RHINE is not set 1056# CONFIG_VIA_RHINE is not set
981# CONFIG_SC92031 is not set 1057# CONFIG_SC92031 is not set
1058# CONFIG_ATL2 is not set
982CONFIG_NETDEV_1000=y 1059CONFIG_NETDEV_1000=y
983# CONFIG_ACENIC is not set 1060# CONFIG_ACENIC is not set
984# CONFIG_DL2K is not set 1061# CONFIG_DL2K is not set
985# CONFIG_E1000 is not set 1062# CONFIG_E1000 is not set
1063# CONFIG_E1000E is not set
1064# CONFIG_IP1000 is not set
1065# CONFIG_IGB is not set
986# CONFIG_NS83820 is not set 1066# CONFIG_NS83820 is not set
987# CONFIG_HAMACHI is not set 1067# CONFIG_HAMACHI is not set
988# CONFIG_YELLOWFIN is not set 1068# CONFIG_YELLOWFIN is not set
@@ -995,14 +1075,24 @@ CONFIG_NETDEV_1000=y
995# CONFIG_BNX2 is not set 1075# CONFIG_BNX2 is not set
996# CONFIG_QLA3XXX is not set 1076# CONFIG_QLA3XXX is not set
997# CONFIG_ATL1 is not set 1077# CONFIG_ATL1 is not set
1078# CONFIG_ATL1E is not set
1079# CONFIG_JME is not set
998CONFIG_NETDEV_10000=y 1080CONFIG_NETDEV_10000=y
999# CONFIG_CHELSIO_T1 is not set 1081# CONFIG_CHELSIO_T1 is not set
1000CONFIG_CHELSIO_T3=m 1082CONFIG_CHELSIO_T3=m
1083# CONFIG_ENIC is not set
1084# CONFIG_IXGBE is not set
1001# CONFIG_IXGB is not set 1085# CONFIG_IXGB is not set
1002# CONFIG_S2IO is not set 1086# CONFIG_S2IO is not set
1003# CONFIG_MYRI10GE is not set 1087# CONFIG_MYRI10GE is not set
1004CONFIG_NETXEN_NIC=m 1088CONFIG_NETXEN_NIC=m
1089# CONFIG_NIU is not set
1090# CONFIG_MLX4_EN is not set
1005# CONFIG_MLX4_CORE is not set 1091# CONFIG_MLX4_CORE is not set
1092# CONFIG_TEHUTI is not set
1093# CONFIG_BNX2X is not set
1094# CONFIG_QLGE is not set
1095# CONFIG_SFC is not set
1006# CONFIG_TR is not set 1096# CONFIG_TR is not set
1007 1097
1008# 1098#
@@ -1022,6 +1112,7 @@ CONFIG_IPW2200_QOS=y
1022# CONFIG_IPW2200_DEBUG is not set 1112# CONFIG_IPW2200_DEBUG is not set
1023CONFIG_LIBERTAS=m 1113CONFIG_LIBERTAS=m
1024# CONFIG_LIBERTAS_DEBUG is not set 1114# CONFIG_LIBERTAS_DEBUG is not set
1115# CONFIG_LIBERTAS_THINFIRM is not set
1025CONFIG_HERMES=m 1116CONFIG_HERMES=m
1026CONFIG_PLX_HERMES=m 1117CONFIG_PLX_HERMES=m
1027CONFIG_TMD_HERMES=m 1118CONFIG_TMD_HERMES=m
@@ -1030,25 +1121,30 @@ CONFIG_PCI_HERMES=m
1030CONFIG_ATMEL=m 1121CONFIG_ATMEL=m
1031CONFIG_PCI_ATMEL=m 1122CONFIG_PCI_ATMEL=m
1032CONFIG_PRISM54=m 1123CONFIG_PRISM54=m
1124# CONFIG_RTL8180 is not set
1125# CONFIG_ADM8211 is not set
1126# CONFIG_MAC80211_HWSIM is not set
1127# CONFIG_P54_COMMON is not set
1128# CONFIG_ATH5K is not set
1129# CONFIG_ATH9K is not set
1130# CONFIG_IWLCORE is not set
1131# CONFIG_IWLWIFI_LEDS is not set
1132# CONFIG_IWLAGN is not set
1133# CONFIG_IWL3945 is not set
1033CONFIG_HOSTAP=m 1134CONFIG_HOSTAP=m
1034CONFIG_HOSTAP_FIRMWARE=y 1135CONFIG_HOSTAP_FIRMWARE=y
1035CONFIG_HOSTAP_FIRMWARE_NVRAM=y 1136CONFIG_HOSTAP_FIRMWARE_NVRAM=y
1036CONFIG_HOSTAP_PLX=m 1137CONFIG_HOSTAP_PLX=m
1037CONFIG_HOSTAP_PCI=m 1138CONFIG_HOSTAP_PCI=m
1038CONFIG_BCM43XX=m 1139# CONFIG_B43 is not set
1039CONFIG_BCM43XX_DEBUG=y 1140# CONFIG_B43LEGACY is not set
1040CONFIG_BCM43XX_DMA=y 1141# CONFIG_RT2X00 is not set
1041CONFIG_BCM43XX_PIO=y
1042CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
1043# CONFIG_BCM43XX_DMA_MODE is not set
1044# CONFIG_BCM43XX_PIO_MODE is not set
1045# CONFIG_WAN is not set 1142# CONFIG_WAN is not set
1046# CONFIG_FDDI is not set 1143# CONFIG_FDDI is not set
1047# CONFIG_HIPPI is not set 1144# CONFIG_HIPPI is not set
1048# CONFIG_PPP is not set 1145# CONFIG_PPP is not set
1049# CONFIG_SLIP is not set 1146# CONFIG_SLIP is not set
1050# CONFIG_NET_FC is not set 1147# CONFIG_NET_FC is not set
1051# CONFIG_SHAPER is not set
1052# CONFIG_NETCONSOLE is not set 1148# CONFIG_NETCONSOLE is not set
1053# CONFIG_NETPOLL is not set 1149# CONFIG_NETPOLL is not set
1054# CONFIG_NET_POLL_CONTROLLER is not set 1150# CONFIG_NET_POLL_CONTROLLER is not set
@@ -1070,7 +1166,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
1070CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 1166CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
1071CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 1167CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
1072# CONFIG_INPUT_JOYDEV is not set 1168# CONFIG_INPUT_JOYDEV is not set
1073# CONFIG_INPUT_TSDEV is not set
1074# CONFIG_INPUT_EVDEV is not set 1169# CONFIG_INPUT_EVDEV is not set
1075# CONFIG_INPUT_EVBUG is not set 1170# CONFIG_INPUT_EVBUG is not set
1076 1171
@@ -1099,10 +1194,13 @@ CONFIG_SERIO_SERPORT=y
1099# Character devices 1194# Character devices
1100# 1195#
1101CONFIG_VT=y 1196CONFIG_VT=y
1197CONFIG_CONSOLE_TRANSLATIONS=y
1102CONFIG_VT_CONSOLE=y 1198CONFIG_VT_CONSOLE=y
1103CONFIG_HW_CONSOLE=y 1199CONFIG_HW_CONSOLE=y
1104CONFIG_VT_HW_CONSOLE_BINDING=y 1200CONFIG_VT_HW_CONSOLE_BINDING=y
1201CONFIG_DEVKMEM=y
1105# CONFIG_SERIAL_NONSTANDARD is not set 1202# CONFIG_SERIAL_NONSTANDARD is not set
1203# CONFIG_NOZOMI is not set
1106 1204
1107# 1205#
1108# Serial drivers 1206# Serial drivers
@@ -1124,101 +1222,165 @@ CONFIG_UNIX98_PTYS=y
1124CONFIG_LEGACY_PTYS=y 1222CONFIG_LEGACY_PTYS=y
1125CONFIG_LEGACY_PTY_COUNT=256 1223CONFIG_LEGACY_PTY_COUNT=256
1126# CONFIG_IPMI_HANDLER is not set 1224# CONFIG_IPMI_HANDLER is not set
1127# CONFIG_WATCHDOG is not set
1128CONFIG_HW_RANDOM=m 1225CONFIG_HW_RANDOM=m
1129CONFIG_RTC=y
1130# CONFIG_R3964 is not set 1226# CONFIG_R3964 is not set
1131# CONFIG_APPLICOM is not set 1227# CONFIG_APPLICOM is not set
1132# CONFIG_DRM is not set
1133# CONFIG_RAW_DRIVER is not set 1228# CONFIG_RAW_DRIVER is not set
1134# CONFIG_TCG_TPM is not set 1229# CONFIG_TCG_TPM is not set
1135CONFIG_DEVPORT=y 1230CONFIG_DEVPORT=y
1136# CONFIG_I2C is not set 1231# CONFIG_I2C is not set
1137
1138#
1139# SPI support
1140#
1141# CONFIG_SPI is not set 1232# CONFIG_SPI is not set
1142# CONFIG_SPI_MASTER is not set
1143# CONFIG_W1 is not set 1233# CONFIG_W1 is not set
1144# CONFIG_POWER_SUPPLY is not set 1234# CONFIG_POWER_SUPPLY is not set
1145# CONFIG_HWMON is not set 1235# CONFIG_HWMON is not set
1236# CONFIG_THERMAL is not set
1237# CONFIG_THERMAL_HWMON is not set
1238# CONFIG_WATCHDOG is not set
1239CONFIG_SSB_POSSIBLE=y
1240
1241#
1242# Sonics Silicon Backplane
1243#
1244# CONFIG_SSB is not set
1146 1245
1147# 1246#
1148# Multifunction device drivers 1247# Multifunction device drivers
1149# 1248#
1249# CONFIG_MFD_CORE is not set
1150# CONFIG_MFD_SM501 is not set 1250# CONFIG_MFD_SM501 is not set
1251# CONFIG_HTC_PASIC3 is not set
1252# CONFIG_MFD_TMIO is not set
1253# CONFIG_REGULATOR is not set
1151 1254
1152# 1255#
1153# Multimedia devices 1256# Multimedia devices
1154# 1257#
1258
1259#
1260# Multimedia core support
1261#
1155# CONFIG_VIDEO_DEV is not set 1262# CONFIG_VIDEO_DEV is not set
1156# CONFIG_DVB_CORE is not set 1263# CONFIG_DVB_CORE is not set
1264# CONFIG_VIDEO_MEDIA is not set
1265
1266#
1267# Multimedia drivers
1268#
1157# CONFIG_DAB is not set 1269# CONFIG_DAB is not set
1158 1270
1159# 1271#
1160# Graphics support 1272# Graphics support
1161# 1273#
1274# CONFIG_DRM is not set
1275# CONFIG_VGASTATE is not set
1276# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1277# CONFIG_FB is not set
1162# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1278# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1163 1279
1164# 1280#
1165# Display device support 1281# Display device support
1166# 1282#
1167# CONFIG_DISPLAY_SUPPORT is not set 1283# CONFIG_DISPLAY_SUPPORT is not set
1168# CONFIG_VGASTATE is not set
1169# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1170# CONFIG_FB is not set
1171 1284
1172# 1285#
1173# Console display driver support 1286# Console display driver support
1174# 1287#
1175# CONFIG_VGA_CONSOLE is not set 1288# CONFIG_VGA_CONSOLE is not set
1176CONFIG_DUMMY_CONSOLE=y 1289CONFIG_DUMMY_CONSOLE=y
1177
1178#
1179# Sound
1180#
1181# CONFIG_SOUND is not set 1290# CONFIG_SOUND is not set
1182CONFIG_HID_SUPPORT=y 1291CONFIG_HID_SUPPORT=y
1183CONFIG_HID=m 1292CONFIG_HID=m
1184# CONFIG_HID_DEBUG is not set 1293# CONFIG_HID_DEBUG is not set
1294# CONFIG_HIDRAW is not set
1295# CONFIG_HID_PID is not set
1296
1297#
1298# Special HID drivers
1299#
1300CONFIG_HID_COMPAT=y
1185CONFIG_USB_SUPPORT=y 1301CONFIG_USB_SUPPORT=y
1186CONFIG_USB_ARCH_HAS_HCD=y 1302CONFIG_USB_ARCH_HAS_HCD=y
1187CONFIG_USB_ARCH_HAS_OHCI=y 1303CONFIG_USB_ARCH_HAS_OHCI=y
1188CONFIG_USB_ARCH_HAS_EHCI=y 1304CONFIG_USB_ARCH_HAS_EHCI=y
1189# CONFIG_USB is not set 1305# CONFIG_USB is not set
1306# CONFIG_USB_OTG_WHITELIST is not set
1307# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1190 1308
1191# 1309#
1192# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1310# Enable Host or Gadget support to see Inventra options
1193# 1311#
1194 1312
1195# 1313#
1196# USB Gadget Support 1314# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1197# 1315#
1198# CONFIG_USB_GADGET is not set 1316# CONFIG_USB_GADGET is not set
1317# CONFIG_UWB is not set
1199# CONFIG_MMC is not set 1318# CONFIG_MMC is not set
1200# CONFIG_NEW_LEDS is not set 1319# CONFIG_MEMSTICK is not set
1320CONFIG_NEW_LEDS=y
1321CONFIG_LEDS_CLASS=m
1322
1323#
1324# LED drivers
1325#
1326
1327#
1328# LED Triggers
1329#
1330CONFIG_LEDS_TRIGGERS=y
1331CONFIG_LEDS_TRIGGER_TIMER=m
1332CONFIG_LEDS_TRIGGER_IDE_DISK=y
1333CONFIG_LEDS_TRIGGER_HEARTBEAT=m
1334CONFIG_LEDS_TRIGGER_BACKLIGHT=m
1335CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
1336# CONFIG_ACCESSIBILITY is not set
1201# CONFIG_INFINIBAND is not set 1337# CONFIG_INFINIBAND is not set
1202# CONFIG_RTC_CLASS is not set 1338CONFIG_RTC_LIB=y
1339CONFIG_RTC_CLASS=y
1340CONFIG_RTC_HCTOSYS=y
1341CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1342# CONFIG_RTC_DEBUG is not set
1203 1343
1204# 1344#
1205# DMA Engine support 1345# RTC interfaces
1206# 1346#
1207# CONFIG_DMA_ENGINE is not set 1347CONFIG_RTC_INTF_SYSFS=y
1348CONFIG_RTC_INTF_PROC=y
1349CONFIG_RTC_INTF_DEV=y
1350# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1351# CONFIG_RTC_DRV_TEST is not set
1208 1352
1209# 1353#
1210# DMA Clients 1354# SPI RTC drivers
1211# 1355#
1212 1356
1213# 1357#
1214# DMA Devices 1358# Platform RTC drivers
1215# 1359#
1360CONFIG_RTC_DRV_CMOS=y
1361# CONFIG_RTC_DRV_DS1286 is not set
1362# CONFIG_RTC_DRV_DS1511 is not set
1363# CONFIG_RTC_DRV_DS1553 is not set
1364# CONFIG_RTC_DRV_DS1742 is not set
1365# CONFIG_RTC_DRV_STK17TA8 is not set
1366# CONFIG_RTC_DRV_M48T86 is not set
1367# CONFIG_RTC_DRV_M48T35 is not set
1368# CONFIG_RTC_DRV_M48T59 is not set
1369# CONFIG_RTC_DRV_BQ4802 is not set
1370# CONFIG_RTC_DRV_V3020 is not set
1216 1371
1217# 1372#
1218# Userspace I/O 1373# on-CPU RTC drivers
1219# 1374#
1375# CONFIG_DMADEVICES is not set
1220CONFIG_UIO=m 1376CONFIG_UIO=m
1221CONFIG_UIO_CIF=m 1377CONFIG_UIO_CIF=m
1378# CONFIG_UIO_PDRV is not set
1379# CONFIG_UIO_PDRV_GENIRQ is not set
1380# CONFIG_UIO_SMX is not set
1381# CONFIG_UIO_SERCOS3 is not set
1382# CONFIG_STAGING is not set
1383CONFIG_STAGING_EXCLUDE_BUILD=y
1222 1384
1223# 1385#
1224# File systems 1386# File systems
@@ -1230,9 +1392,8 @@ CONFIG_EXT3_FS=y
1230CONFIG_EXT3_FS_XATTR=y 1392CONFIG_EXT3_FS_XATTR=y
1231# CONFIG_EXT3_FS_POSIX_ACL is not set 1393# CONFIG_EXT3_FS_POSIX_ACL is not set
1232# CONFIG_EXT3_FS_SECURITY is not set 1394# CONFIG_EXT3_FS_SECURITY is not set
1233# CONFIG_EXT4DEV_FS is not set 1395# CONFIG_EXT4_FS is not set
1234CONFIG_JBD=y 1396CONFIG_JBD=y
1235# CONFIG_JBD_DEBUG is not set
1236CONFIG_FS_MBCACHE=y 1397CONFIG_FS_MBCACHE=y
1237CONFIG_REISERFS_FS=m 1398CONFIG_REISERFS_FS=m
1238# CONFIG_REISERFS_CHECK is not set 1399# CONFIG_REISERFS_CHECK is not set
@@ -1246,22 +1407,22 @@ CONFIG_JFS_SECURITY=y
1246# CONFIG_JFS_DEBUG is not set 1407# CONFIG_JFS_DEBUG is not set
1247# CONFIG_JFS_STATISTICS is not set 1408# CONFIG_JFS_STATISTICS is not set
1248CONFIG_FS_POSIX_ACL=y 1409CONFIG_FS_POSIX_ACL=y
1410CONFIG_FILE_LOCKING=y
1249CONFIG_XFS_FS=m 1411CONFIG_XFS_FS=m
1250CONFIG_XFS_QUOTA=y 1412CONFIG_XFS_QUOTA=y
1251CONFIG_XFS_SECURITY=y
1252CONFIG_XFS_POSIX_ACL=y 1413CONFIG_XFS_POSIX_ACL=y
1253# CONFIG_XFS_RT is not set 1414# CONFIG_XFS_RT is not set
1254# CONFIG_GFS2_FS is not set 1415# CONFIG_XFS_DEBUG is not set
1255# CONFIG_OCFS2_FS is not set 1416# CONFIG_OCFS2_FS is not set
1256CONFIG_MINIX_FS=m 1417CONFIG_DNOTIFY=y
1257CONFIG_ROMFS_FS=m
1258CONFIG_INOTIFY=y 1418CONFIG_INOTIFY=y
1259CONFIG_INOTIFY_USER=y 1419CONFIG_INOTIFY_USER=y
1260CONFIG_QUOTA=y 1420CONFIG_QUOTA=y
1421# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1422CONFIG_PRINT_QUOTA_WARNING=y
1261# CONFIG_QFMT_V1 is not set 1423# CONFIG_QFMT_V1 is not set
1262CONFIG_QFMT_V2=y 1424CONFIG_QFMT_V2=y
1263CONFIG_QUOTACTL=y 1425CONFIG_QUOTACTL=y
1264CONFIG_DNOTIFY=y
1265CONFIG_AUTOFS_FS=y 1426CONFIG_AUTOFS_FS=y
1266# CONFIG_AUTOFS4_FS is not set 1427# CONFIG_AUTOFS4_FS is not set
1267CONFIG_FUSE_FS=m 1428CONFIG_FUSE_FS=m
@@ -1291,11 +1452,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1291CONFIG_PROC_FS=y 1452CONFIG_PROC_FS=y
1292CONFIG_PROC_KCORE=y 1453CONFIG_PROC_KCORE=y
1293CONFIG_PROC_SYSCTL=y 1454CONFIG_PROC_SYSCTL=y
1455CONFIG_PROC_PAGE_MONITOR=y
1294CONFIG_SYSFS=y 1456CONFIG_SYSFS=y
1295CONFIG_TMPFS=y 1457CONFIG_TMPFS=y
1296# CONFIG_TMPFS_POSIX_ACL is not set 1458# CONFIG_TMPFS_POSIX_ACL is not set
1297# CONFIG_HUGETLB_PAGE is not set 1459# CONFIG_HUGETLB_PAGE is not set
1298CONFIG_RAMFS=y
1299# CONFIG_CONFIGFS_FS is not set 1460# CONFIG_CONFIGFS_FS is not set
1300 1461
1301# 1462#
@@ -1312,46 +1473,48 @@ CONFIG_EFS_FS=m
1312CONFIG_JFFS2_FS=m 1473CONFIG_JFFS2_FS=m
1313CONFIG_JFFS2_FS_DEBUG=0 1474CONFIG_JFFS2_FS_DEBUG=0
1314CONFIG_JFFS2_FS_WRITEBUFFER=y 1475CONFIG_JFFS2_FS_WRITEBUFFER=y
1476# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1315# CONFIG_JFFS2_SUMMARY is not set 1477# CONFIG_JFFS2_SUMMARY is not set
1316CONFIG_JFFS2_FS_XATTR=y 1478CONFIG_JFFS2_FS_XATTR=y
1317CONFIG_JFFS2_FS_POSIX_ACL=y 1479CONFIG_JFFS2_FS_POSIX_ACL=y
1318CONFIG_JFFS2_FS_SECURITY=y 1480CONFIG_JFFS2_FS_SECURITY=y
1319CONFIG_JFFS2_COMPRESSION_OPTIONS=y 1481CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1320CONFIG_JFFS2_ZLIB=y 1482CONFIG_JFFS2_ZLIB=y
1483# CONFIG_JFFS2_LZO is not set
1321CONFIG_JFFS2_RTIME=y 1484CONFIG_JFFS2_RTIME=y
1322CONFIG_JFFS2_RUBIN=y 1485CONFIG_JFFS2_RUBIN=y
1323# CONFIG_JFFS2_CMODE_NONE is not set 1486# CONFIG_JFFS2_CMODE_NONE is not set
1324CONFIG_JFFS2_CMODE_PRIORITY=y 1487CONFIG_JFFS2_CMODE_PRIORITY=y
1325# CONFIG_JFFS2_CMODE_SIZE is not set 1488# CONFIG_JFFS2_CMODE_SIZE is not set
1489# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1490# CONFIG_UBIFS_FS is not set
1326CONFIG_CRAMFS=m 1491CONFIG_CRAMFS=m
1327CONFIG_VXFS_FS=m 1492CONFIG_VXFS_FS=m
1493CONFIG_MINIX_FS=m
1494# CONFIG_OMFS_FS is not set
1328# CONFIG_HPFS_FS is not set 1495# CONFIG_HPFS_FS is not set
1329# CONFIG_QNX4FS_FS is not set 1496# CONFIG_QNX4FS_FS is not set
1497CONFIG_ROMFS_FS=m
1330CONFIG_SYSV_FS=m 1498CONFIG_SYSV_FS=m
1331CONFIG_UFS_FS=m 1499CONFIG_UFS_FS=m
1332# CONFIG_UFS_FS_WRITE is not set 1500# CONFIG_UFS_FS_WRITE is not set
1333# CONFIG_UFS_DEBUG is not set 1501# CONFIG_UFS_DEBUG is not set
1334 1502CONFIG_NETWORK_FILESYSTEMS=y
1335#
1336# Network File Systems
1337#
1338CONFIG_NFS_FS=y 1503CONFIG_NFS_FS=y
1339CONFIG_NFS_V3=y 1504CONFIG_NFS_V3=y
1340# CONFIG_NFS_V3_ACL is not set 1505# CONFIG_NFS_V3_ACL is not set
1341# CONFIG_NFS_V4 is not set 1506# CONFIG_NFS_V4 is not set
1342# CONFIG_NFS_DIRECTIO is not set 1507CONFIG_ROOT_NFS=y
1343CONFIG_NFSD=y 1508CONFIG_NFSD=y
1344CONFIG_NFSD_V3=y 1509CONFIG_NFSD_V3=y
1345# CONFIG_NFSD_V3_ACL is not set 1510# CONFIG_NFSD_V3_ACL is not set
1346# CONFIG_NFSD_V4 is not set 1511# CONFIG_NFSD_V4 is not set
1347# CONFIG_NFSD_TCP is not set
1348CONFIG_ROOT_NFS=y
1349CONFIG_LOCKD=y 1512CONFIG_LOCKD=y
1350CONFIG_LOCKD_V4=y 1513CONFIG_LOCKD_V4=y
1351CONFIG_EXPORTFS=y 1514CONFIG_EXPORTFS=y
1352CONFIG_NFS_COMMON=y 1515CONFIG_NFS_COMMON=y
1353CONFIG_SUNRPC=y 1516CONFIG_SUNRPC=y
1354# CONFIG_SUNRPC_BIND34 is not set 1517# CONFIG_SUNRPC_REGISTER_V4 is not set
1355# CONFIG_RPCSEC_GSS_KRB5 is not set 1518# CONFIG_RPCSEC_GSS_KRB5 is not set
1356# CONFIG_RPCSEC_GSS_SPKM3 is not set 1519# CONFIG_RPCSEC_GSS_SPKM3 is not set
1357# CONFIG_SMB_FS is not set 1520# CONFIG_SMB_FS is not set
@@ -1365,10 +1528,6 @@ CONFIG_SUNRPC=y
1365# 1528#
1366# CONFIG_PARTITION_ADVANCED is not set 1529# CONFIG_PARTITION_ADVANCED is not set
1367CONFIG_MSDOS_PARTITION=y 1530CONFIG_MSDOS_PARTITION=y
1368
1369#
1370# Native Language Support
1371#
1372CONFIG_NLS=m 1531CONFIG_NLS=m
1373CONFIG_NLS_DEFAULT="iso8859-1" 1532CONFIG_NLS_DEFAULT="iso8859-1"
1374CONFIG_NLS_CODEPAGE_437=m 1533CONFIG_NLS_CODEPAGE_437=m
@@ -1409,29 +1568,30 @@ CONFIG_NLS_ISO8859_15=m
1409CONFIG_NLS_KOI8_R=m 1568CONFIG_NLS_KOI8_R=m
1410CONFIG_NLS_KOI8_U=m 1569CONFIG_NLS_KOI8_U=m
1411CONFIG_NLS_UTF8=m 1570CONFIG_NLS_UTF8=m
1412
1413#
1414# Distributed Lock Manager
1415#
1416# CONFIG_DLM is not set 1571# CONFIG_DLM is not set
1417 1572
1418# 1573#
1419# Profiling support
1420#
1421# CONFIG_PROFILING is not set
1422
1423#
1424# Kernel hacking 1574# Kernel hacking
1425# 1575#
1426CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1576CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1427# CONFIG_PRINTK_TIME is not set 1577# CONFIG_PRINTK_TIME is not set
1578CONFIG_ENABLE_WARN_DEPRECATED=y
1428CONFIG_ENABLE_MUST_CHECK=y 1579CONFIG_ENABLE_MUST_CHECK=y
1580CONFIG_FRAME_WARN=1024
1429# CONFIG_MAGIC_SYSRQ is not set 1581# CONFIG_MAGIC_SYSRQ is not set
1430# CONFIG_UNUSED_SYMBOLS is not set 1582# CONFIG_UNUSED_SYMBOLS is not set
1431# CONFIG_DEBUG_FS is not set 1583# CONFIG_DEBUG_FS is not set
1432# CONFIG_HEADERS_CHECK is not set 1584# CONFIG_HEADERS_CHECK is not set
1433# CONFIG_DEBUG_KERNEL is not set 1585# CONFIG_DEBUG_KERNEL is not set
1434CONFIG_CROSSCOMPILE=y 1586# CONFIG_DEBUG_MEMORY_INIT is not set
1587# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1588
1589#
1590# Tracers
1591#
1592# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1593# CONFIG_SAMPLES is not set
1594CONFIG_HAVE_ARCH_KGDB=y
1435CONFIG_CMDLINE="" 1595CONFIG_CMDLINE=""
1436 1596
1437# 1597#
@@ -1439,51 +1599,103 @@ CONFIG_CMDLINE=""
1439# 1599#
1440# CONFIG_KEYS is not set 1600# CONFIG_KEYS is not set
1441# CONFIG_SECURITY is not set 1601# CONFIG_SECURITY is not set
1602# CONFIG_SECURITYFS is not set
1603# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1442CONFIG_XOR_BLOCKS=m 1604CONFIG_XOR_BLOCKS=m
1443CONFIG_ASYNC_CORE=m 1605CONFIG_ASYNC_CORE=m
1444CONFIG_ASYNC_MEMCPY=m 1606CONFIG_ASYNC_MEMCPY=m
1445CONFIG_ASYNC_XOR=m 1607CONFIG_ASYNC_XOR=m
1446CONFIG_CRYPTO=y 1608CONFIG_CRYPTO=y
1609
1610#
1611# Crypto core or helper
1612#
1613# CONFIG_CRYPTO_FIPS is not set
1447CONFIG_CRYPTO_ALGAPI=y 1614CONFIG_CRYPTO_ALGAPI=y
1448CONFIG_CRYPTO_ABLKCIPHER=m 1615CONFIG_CRYPTO_AEAD=y
1449CONFIG_CRYPTO_BLKCIPHER=m 1616CONFIG_CRYPTO_BLKCIPHER=y
1450CONFIG_CRYPTO_HASH=y 1617CONFIG_CRYPTO_HASH=y
1618CONFIG_CRYPTO_RNG=y
1451CONFIG_CRYPTO_MANAGER=y 1619CONFIG_CRYPTO_MANAGER=y
1620CONFIG_CRYPTO_GF128MUL=m
1621CONFIG_CRYPTO_NULL=m
1622CONFIG_CRYPTO_CRYPTD=m
1623CONFIG_CRYPTO_AUTHENC=m
1624# CONFIG_CRYPTO_TEST is not set
1625
1626#
1627# Authenticated Encryption with Associated Data
1628#
1629# CONFIG_CRYPTO_CCM is not set
1630# CONFIG_CRYPTO_GCM is not set
1631# CONFIG_CRYPTO_SEQIV is not set
1632
1633#
1634# Block modes
1635#
1636CONFIG_CRYPTO_CBC=m
1637# CONFIG_CRYPTO_CTR is not set
1638# CONFIG_CRYPTO_CTS is not set
1639CONFIG_CRYPTO_ECB=m
1640CONFIG_CRYPTO_LRW=m
1641CONFIG_CRYPTO_PCBC=m
1642# CONFIG_CRYPTO_XTS is not set
1643
1644#
1645# Hash modes
1646#
1452CONFIG_CRYPTO_HMAC=y 1647CONFIG_CRYPTO_HMAC=y
1453CONFIG_CRYPTO_XCBC=m 1648CONFIG_CRYPTO_XCBC=m
1454CONFIG_CRYPTO_NULL=m 1649
1650#
1651# Digest
1652#
1653CONFIG_CRYPTO_CRC32C=m
1455CONFIG_CRYPTO_MD4=m 1654CONFIG_CRYPTO_MD4=m
1456CONFIG_CRYPTO_MD5=y 1655CONFIG_CRYPTO_MD5=y
1656CONFIG_CRYPTO_MICHAEL_MIC=m
1657# CONFIG_CRYPTO_RMD128 is not set
1658# CONFIG_CRYPTO_RMD160 is not set
1659# CONFIG_CRYPTO_RMD256 is not set
1660# CONFIG_CRYPTO_RMD320 is not set
1457CONFIG_CRYPTO_SHA1=m 1661CONFIG_CRYPTO_SHA1=m
1458CONFIG_CRYPTO_SHA256=m 1662CONFIG_CRYPTO_SHA256=m
1459CONFIG_CRYPTO_SHA512=m 1663CONFIG_CRYPTO_SHA512=m
1460CONFIG_CRYPTO_WP512=m
1461CONFIG_CRYPTO_TGR192=m 1664CONFIG_CRYPTO_TGR192=m
1462CONFIG_CRYPTO_GF128MUL=m 1665CONFIG_CRYPTO_WP512=m
1463CONFIG_CRYPTO_ECB=m 1666
1464CONFIG_CRYPTO_CBC=m 1667#
1465CONFIG_CRYPTO_PCBC=m 1668# Ciphers
1466CONFIG_CRYPTO_LRW=m 1669#
1467CONFIG_CRYPTO_CRYPTD=m
1468CONFIG_CRYPTO_DES=m
1469CONFIG_CRYPTO_FCRYPT=m
1470CONFIG_CRYPTO_BLOWFISH=m
1471CONFIG_CRYPTO_TWOFISH=m
1472CONFIG_CRYPTO_TWOFISH_COMMON=m
1473CONFIG_CRYPTO_SERPENT=m
1474CONFIG_CRYPTO_AES=m 1670CONFIG_CRYPTO_AES=m
1671CONFIG_CRYPTO_ANUBIS=m
1672CONFIG_CRYPTO_ARC4=m
1673CONFIG_CRYPTO_BLOWFISH=m
1674CONFIG_CRYPTO_CAMELLIA=m
1475CONFIG_CRYPTO_CAST5=m 1675CONFIG_CRYPTO_CAST5=m
1476CONFIG_CRYPTO_CAST6=m 1676CONFIG_CRYPTO_CAST6=m
1477CONFIG_CRYPTO_TEA=m 1677CONFIG_CRYPTO_DES=m
1478CONFIG_CRYPTO_ARC4=m 1678CONFIG_CRYPTO_FCRYPT=m
1479CONFIG_CRYPTO_KHAZAD=m 1679CONFIG_CRYPTO_KHAZAD=m
1480CONFIG_CRYPTO_ANUBIS=m 1680# CONFIG_CRYPTO_SALSA20 is not set
1681# CONFIG_CRYPTO_SEED is not set
1682CONFIG_CRYPTO_SERPENT=m
1683CONFIG_CRYPTO_TEA=m
1684CONFIG_CRYPTO_TWOFISH=m
1685CONFIG_CRYPTO_TWOFISH_COMMON=m
1686
1687#
1688# Compression
1689#
1481CONFIG_CRYPTO_DEFLATE=m 1690CONFIG_CRYPTO_DEFLATE=m
1482CONFIG_CRYPTO_MICHAEL_MIC=m 1691# CONFIG_CRYPTO_LZO is not set
1483CONFIG_CRYPTO_CRC32C=m 1692
1484CONFIG_CRYPTO_CAMELLIA=m 1693#
1485# CONFIG_CRYPTO_TEST is not set 1694# Random Number Generation
1695#
1696# CONFIG_CRYPTO_ANSI_CPRNG is not set
1486CONFIG_CRYPTO_HW=y 1697CONFIG_CRYPTO_HW=y
1698# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1487 1699
1488# 1700#
1489# Library routines 1701# Library routines
@@ -1491,7 +1703,8 @@ CONFIG_CRYPTO_HW=y
1491CONFIG_BITREVERSE=y 1703CONFIG_BITREVERSE=y
1492# CONFIG_CRC_CCITT is not set 1704# CONFIG_CRC_CCITT is not set
1493CONFIG_CRC16=m 1705CONFIG_CRC16=m
1494# CONFIG_CRC_ITU_T is not set 1706# CONFIG_CRC_T10DIF is not set
1707CONFIG_CRC_ITU_T=m
1495CONFIG_CRC32=y 1708CONFIG_CRC32=y
1496# CONFIG_CRC7 is not set 1709# CONFIG_CRC7 is not set
1497CONFIG_LIBCRC32C=m 1710CONFIG_LIBCRC32C=m
diff --git a/arch/mips/include/asm/asmmacro.h b/arch/mips/include/asm/asmmacro.h
index 7a881755800f..6c8342ae74db 100644
--- a/arch/mips/include/asm/asmmacro.h
+++ b/arch/mips/include/asm/asmmacro.h
@@ -35,6 +35,16 @@
35 mtc0 \reg, CP0_TCSTATUS 35 mtc0 \reg, CP0_TCSTATUS
36 _ehb 36 _ehb
37 .endm 37 .endm
38#elif defined(CONFIG_CPU_MIPSR2)
39 .macro local_irq_enable reg=t0
40 ei
41 irq_enable_hazard
42 .endm
43
44 .macro local_irq_disable reg=t0
45 di
46 irq_disable_hazard
47 .endm
38#else 48#else
39 .macro local_irq_enable reg=t0 49 .macro local_irq_enable reg=t0
40 mfc0 \reg, CP0_STATUS 50 mfc0 \reg, CP0_STATUS
diff --git a/arch/mips/include/asm/bug.h b/arch/mips/include/asm/bug.h
index 7eb63de808bc..08ea46863fe5 100644
--- a/arch/mips/include/asm/bug.h
+++ b/arch/mips/include/asm/bug.h
@@ -7,20 +7,31 @@
7 7
8#include <asm/break.h> 8#include <asm/break.h>
9 9
10#define BUG() \ 10static inline void __noreturn BUG(void)
11do { \ 11{
12 __asm__ __volatile__("break %0" : : "i" (BRK_BUG)); \ 12 __asm__ __volatile__("break %0" : : "i" (BRK_BUG));
13} while (0) 13 /* Fool GCC into thinking the function doesn't return. */
14 while (1)
15 ;
16}
14 17
15#define HAVE_ARCH_BUG 18#define HAVE_ARCH_BUG
16 19
17#if (_MIPS_ISA > _MIPS_ISA_MIPS1) 20#if (_MIPS_ISA > _MIPS_ISA_MIPS1)
18 21
19#define BUG_ON(condition) \ 22static inline void __BUG_ON(unsigned long condition)
20do { \ 23{
21 __asm__ __volatile__("tne $0, %0, %1" \ 24 if (__builtin_constant_p(condition)) {
22 : : "r" (condition), "i" (BRK_BUG)); \ 25 if (condition)
23} while (0) 26 BUG();
27 else
28 return;
29 }
30 __asm__ __volatile__("tne $0, %0, %1"
31 : : "r" (condition), "i" (BRK_BUG));
32}
33
34#define BUG_ON(C) __BUG_ON((unsigned long)(C))
24 35
25#define HAVE_ARCH_BUG_ON 36#define HAVE_ARCH_BUG_ON
26 37
diff --git a/arch/mips/include/asm/byteorder.h b/arch/mips/include/asm/byteorder.h
index 2988d29a0867..33790b9e0cc0 100644
--- a/arch/mips/include/asm/byteorder.h
+++ b/arch/mips/include/asm/byteorder.h
@@ -50,9 +50,8 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
50static inline __attribute_const__ __u64 __arch_swab64(__u64 x) 50static inline __attribute_const__ __u64 __arch_swab64(__u64 x)
51{ 51{
52 __asm__( 52 __asm__(
53 " dsbh %0, %1 \n" 53 " dsbh %0, %1\n"
54 " dshd %0, %0 \n" 54 " dshd %0, %0"
55 " drotr %0, %0, 32 \n"
56 : "=r" (x) 55 : "=r" (x)
57 : "r" (x)); 56 : "r" (x));
58 57
diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
index a8eac1697b3d..d58f128aa747 100644
--- a/arch/mips/include/asm/elf.h
+++ b/arch/mips/include/asm/elf.h
@@ -232,7 +232,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
232 */ 232 */
233#ifdef __MIPSEB__ 233#ifdef __MIPSEB__
234#define ELF_DATA ELFDATA2MSB 234#define ELF_DATA ELFDATA2MSB
235#elif __MIPSEL__ 235#elif defined(__MIPSEL__)
236#define ELF_DATA ELFDATA2LSB 236#define ELF_DATA ELFDATA2LSB
237#endif 237#endif
238#define ELF_ARCH EM_MIPS 238#define ELF_ARCH EM_MIPS
diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
index 5510c53b7feb..053e4634acee 100644
--- a/arch/mips/include/asm/pci.h
+++ b/arch/mips/include/asm/pci.h
@@ -79,6 +79,11 @@ static inline void pcibios_penalize_isa_irq(int irq, int active)
79 /* We don't do dynamic PCI IRQ allocation */ 79 /* We don't do dynamic PCI IRQ allocation */
80} 80}
81 81
82#define HAVE_PCI_MMAP
83
84extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
85 enum pci_mmap_state mmap_state, int write_combine);
86
82/* 87/*
83 * Dynamic DMA mapping stuff. 88 * Dynamic DMA mapping stuff.
84 * MIPS has everything mapped statically. 89 * MIPS has everything mapped statically.
diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h
index 813abd16255d..c2c8bac43307 100644
--- a/arch/mips/include/asm/ptrace.h
+++ b/arch/mips/include/asm/ptrace.h
@@ -9,10 +9,6 @@
9#ifndef _ASM_PTRACE_H 9#ifndef _ASM_PTRACE_H
10#define _ASM_PTRACE_H 10#define _ASM_PTRACE_H
11 11
12#ifdef CONFIG_64BIT
13#define __ARCH_WANT_COMPAT_SYS_PTRACE
14#endif
15
16/* 0 - 31 are integer registers, 32 - 63 are fp registers. */ 12/* 0 - 31 are integer registers, 32 - 63 are fp registers. */
17#define FPR_BASE 32 13#define FPR_BASE 32
18#define PC 64 14#define PC 64
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index 759f68066b5d..d0916a55cd77 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -262,14 +262,11 @@ bad_alignment:
262 LEAF(sys_syscall) 262 LEAF(sys_syscall)
263 subu t0, a0, __NR_O32_Linux # check syscall number 263 subu t0, a0, __NR_O32_Linux # check syscall number
264 sltiu v0, t0, __NR_O32_Linux_syscalls + 1 264 sltiu v0, t0, __NR_O32_Linux_syscalls + 1
265 beqz t0, einval # do not recurse
265 sll t1, t0, 3 266 sll t1, t0, 3
266 beqz v0, einval 267 beqz v0, einval
267
268 lw t2, sys_call_table(t1) # syscall routine 268 lw t2, sys_call_table(t1) # syscall routine
269 269
270 li v1, 4000 - __NR_O32_Linux # index of sys_syscall
271 beq t0, v1, einval # do not recurse
272
273 /* Some syscalls like execve get their arguments from struct pt_regs 270 /* Some syscalls like execve get their arguments from struct pt_regs
274 and claim zero arguments in the syscall table. Thus we have to 271 and claim zero arguments in the syscall table. Thus we have to
275 assume the worst case and shuffle around all potential arguments. 272 assume the worst case and shuffle around all potential arguments.
@@ -627,7 +624,7 @@ einval: li v0, -ENOSYS
627 sys sys_pselect6 6 624 sys sys_pselect6 6
628 sys sys_ppoll 5 625 sys sys_ppoll 5
629 sys sys_unshare 1 626 sys sys_unshare 1
630 sys sys_splice 4 627 sys sys_splice 6
631 sys sys_sync_file_range 7 /* 4305 */ 628 sys sys_sync_file_range 7 /* 4305 */
632 sys sys_tee 4 629 sys sys_tee 4
633 sys sys_vmsplice 4 630 sys sys_vmsplice 4
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index e266b3aa6560..30f3b6317a83 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -390,7 +390,7 @@ EXPORT(sysn32_call_table)
390 PTR sys_splice 390 PTR sys_splice
391 PTR sys_sync_file_range 391 PTR sys_sync_file_range
392 PTR sys_tee 392 PTR sys_tee
393 PTR sys_vmsplice /* 6270 */ 393 PTR compat_sys_vmsplice /* 6270 */
394 PTR sys_move_pages 394 PTR sys_move_pages
395 PTR compat_sys_set_robust_list 395 PTR compat_sys_set_robust_list
396 PTR compat_sys_get_robust_list 396 PTR compat_sys_get_robust_list
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 6c7ef8313ebd..fefef4af8595 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -174,14 +174,12 @@ not_o32_scall:
174 END(handle_sys) 174 END(handle_sys)
175 175
176LEAF(sys32_syscall) 176LEAF(sys32_syscall)
177 sltu v0, a0, __NR_O32_Linux + __NR_O32_Linux_syscalls + 1 177 subu t0, a0, __NR_O32_Linux # check syscall number
178 sltiu v0, t0, __NR_O32_Linux_syscalls + 1
179 beqz t0, einval # do not recurse
180 dsll t1, t0, 3
178 beqz v0, einval 181 beqz v0, einval
179 182 ld t2, sys_call_table(t1) # syscall routine
180 dsll v0, a0, 3
181 ld t2, (sys_call_table - (__NR_O32_Linux * 8))(v0)
182
183 li v1, 4000 # indirect syscall number
184 beq a0, v1, einval # do not recurse
185 183
186 move a0, a1 # shift argument registers 184 move a0, a1 # shift argument registers
187 move a1, a2 185 move a1, a2
@@ -198,7 +196,7 @@ LEAF(sys32_syscall)
198 jr t2 196 jr t2
199 /* Unreached */ 197 /* Unreached */
200 198
201einval: li v0, -EINVAL 199einval: li v0, -ENOSYS
202 jr ra 200 jr ra
203 END(sys32_syscall) 201 END(sys32_syscall)
204 202
@@ -512,7 +510,7 @@ sys_call_table:
512 PTR sys_splice 510 PTR sys_splice
513 PTR sys32_sync_file_range /* 4305 */ 511 PTR sys32_sync_file_range /* 4305 */
514 PTR sys_tee 512 PTR sys_tee
515 PTR sys_vmsplice 513 PTR compat_sys_vmsplice
516 PTR compat_sys_move_pages 514 PTR compat_sys_move_pages
517 PTR compat_sys_set_robust_list 515 PTR compat_sys_set_robust_list
518 PTR compat_sys_get_robust_list /* 4310 */ 516 PTR compat_sys_get_robust_list /* 4310 */
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index 972b2d2b8401..a1b3da6bad5c 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -1134,7 +1134,7 @@ static int vpe_release(struct inode *inode, struct file *filp)
1134 1134
1135 /* It's good to be able to run the SP and if it chokes have a look at 1135 /* It's good to be able to run the SP and if it chokes have a look at
1136 the /dev/rt?. But if we reset the pointer to the shared struct we 1136 the /dev/rt?. But if we reset the pointer to the shared struct we
1137 loose what has happened. So perhaps if garbage is sent to the vpe 1137 lose what has happened. So perhaps if garbage is sent to the vpe
1138 device, use it as a trigger for the reset. Hopefully a nice 1138 device, use it as a trigger for the reset. Hopefully a nice
1139 executable will be along shortly. */ 1139 executable will be along shortly. */
1140 if (ret < 0) 1140 if (ret < 0)
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c
index 5b98d0e731c2..e6708b3ad343 100644
--- a/arch/mips/mm/dma-default.c
+++ b/arch/mips/mm/dma-default.c
@@ -111,6 +111,7 @@ EXPORT_SYMBOL(dma_alloc_coherent);
111void dma_free_noncoherent(struct device *dev, size_t size, void *vaddr, 111void dma_free_noncoherent(struct device *dev, size_t size, void *vaddr,
112 dma_addr_t dma_handle) 112 dma_addr_t dma_handle)
113{ 113{
114 plat_unmap_dma_mem(dma_handle);
114 free_pages((unsigned long) vaddr, get_order(size)); 115 free_pages((unsigned long) vaddr, get_order(size));
115} 116}
116 117
@@ -121,6 +122,8 @@ void dma_free_coherent(struct device *dev, size_t size, void *vaddr,
121{ 122{
122 unsigned long addr = (unsigned long) vaddr; 123 unsigned long addr = (unsigned long) vaddr;
123 124
125 plat_unmap_dma_mem(dma_handle);
126
124 if (!plat_device_is_coherent(dev)) 127 if (!plat_device_is_coherent(dev))
125 addr = CAC_ADDR(addr); 128 addr = CAC_ADDR(addr);
126 129
diff --git a/arch/mips/mti-malta/Makefile b/arch/mips/mti-malta/Makefile
index cef2db8d2225..32e847808df1 100644
--- a/arch/mips/mti-malta/Makefile
+++ b/arch/mips/mti-malta/Makefile
@@ -7,9 +7,8 @@
7# 7#
8obj-y := malta-amon.o malta-cmdline.o \ 8obj-y := malta-amon.o malta-cmdline.o \
9 malta-display.o malta-init.o malta-int.o \ 9 malta-display.o malta-init.o malta-int.o \
10 malta-memory.o malta-mtd.o \ 10 malta-memory.o malta-platform.o \
11 malta-platform.o malta-reset.o \ 11 malta-reset.o malta-setup.o malta-time.o
12 malta-setup.o malta-time.o
13 12
14obj-$(CONFIG_EARLY_PRINTK) += malta-console.o 13obj-$(CONFIG_EARLY_PRINTK) += malta-console.o
15obj-$(CONFIG_PCI) += malta-pci.o 14obj-$(CONFIG_PCI) += malta-pci.o
diff --git a/arch/mips/mti-malta/malta-mtd.c b/arch/mips/mti-malta/malta-mtd.c
deleted file mode 100644
index 8ad9bdf25dce..000000000000
--- a/arch/mips/mti-malta/malta-mtd.c
+++ /dev/null
@@ -1,63 +0,0 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2006 MIPS Technologies, Inc.
7 * written by Ralf Baechle <ralf@linux-mips.org>
8 */
9
10#include <linux/init.h>
11#include <linux/platform_device.h>
12#include <linux/mtd/partitions.h>
13#include <linux/mtd/physmap.h>
14#include <mtd/mtd-abi.h>
15
16static struct mtd_partition malta_mtd_partitions[] = {
17 {
18 .name = "YAMON",
19 .offset = 0x0,
20 .size = 0x100000,
21 .mask_flags = MTD_WRITEABLE
22 }, {
23 .name = "User FS",
24 .offset = 0x100000,
25 .size = 0x2e0000
26 }, {
27 .name = "Board Config",
28 .offset = 0x3e0000,
29 .size = 0x020000,
30 .mask_flags = MTD_WRITEABLE
31 }
32};
33
34static struct physmap_flash_data malta_flash_data = {
35 .width = 4,
36 .nr_parts = ARRAY_SIZE(malta_mtd_partitions),
37 .parts = malta_mtd_partitions
38};
39
40static struct resource malta_flash_resource = {
41 .start = 0x1e000000,
42 .end = 0x1e3fffff,
43 .flags = IORESOURCE_MEM
44};
45
46static struct platform_device malta_flash = {
47 .name = "physmap-flash",
48 .id = 0,
49 .dev = {
50 .platform_data = &malta_flash_data,
51 },
52 .num_resources = 1,
53 .resource = &malta_flash_resource,
54};
55
56static int __init malta_mtd_init(void)
57{
58 platform_device_register(&malta_flash);
59
60 return 0;
61}
62
63module_init(malta_mtd_init)
diff --git a/arch/mips/mti-malta/malta-platform.c b/arch/mips/mti-malta/malta-platform.c
index 83b9bab3cd3f..72e32a7715be 100644
--- a/arch/mips/mti-malta/malta-platform.c
+++ b/arch/mips/mti-malta/malta-platform.c
@@ -3,10 +3,14 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (C) 2007 MIPS Technologies, Inc. 6 * Copyright (C) 2006, 07 MIPS Technologies, Inc.
7 * written by Ralf Baechle (ralf@linux-mips.org) 7 * written by Ralf Baechle (ralf@linux-mips.org)
8 * written by Ralf Baechle <ralf@linux-mips.org>
8 * 9 *
9 * Probe driver for the Malta's UART ports: 10 * Copyright (C) 2008 Wind River Systems, Inc.
11 * updated by Tiejun Chen <tiejun.chen@windriver.com>
12 *
13 * 1. Probe driver for the Malta's UART ports:
10 * 14 *
11 * o 2 ports in the SMC SuperIO 15 * o 2 ports in the SMC SuperIO
12 * o 1 port in the CBUS UART, a discrete 16550 which normally is only used 16 * o 1 port in the CBUS UART, a discrete 16550 which normally is only used
@@ -14,10 +18,17 @@
14 * 18 *
15 * We don't use 8250_platform.c on Malta as it would result in the CBUS 19 * We don't use 8250_platform.c on Malta as it would result in the CBUS
16 * UART becoming ttyS0. 20 * UART becoming ttyS0.
21 *
22 * 2. Register RTC-CMOS platform device on Malta.
17 */ 23 */
18#include <linux/module.h>
19#include <linux/init.h> 24#include <linux/init.h>
20#include <linux/serial_8250.h> 25#include <linux/serial_8250.h>
26#include <linux/mc146818rtc.h>
27#include <linux/module.h>
28#include <linux/mtd/partitions.h>
29#include <linux/mtd/physmap.h>
30#include <linux/platform_device.h>
31#include <mtd/mtd-abi.h>
21 32
22#define SMC_PORT(base, int) \ 33#define SMC_PORT(base, int) \
23{ \ 34{ \
@@ -45,21 +56,93 @@ static struct plat_serial8250_port uart8250_data[] = {
45 { }, 56 { },
46}; 57};
47 58
48static struct platform_device uart8250_device = { 59static struct platform_device malta_uart8250_device = {
49 .name = "serial8250", 60 .name = "serial8250",
50 .id = PLAT8250_DEV_PLATFORM2, 61 .id = PLAT8250_DEV_PLATFORM,
51 .dev = { 62 .dev = {
52 .platform_data = uart8250_data, 63 .platform_data = uart8250_data,
53 }, 64 },
54}; 65};
55 66
56static int __init uart8250_init(void) 67struct resource malta_rtc_resources[] = {
68 {
69 .start = RTC_PORT(0),
70 .end = RTC_PORT(7),
71 .flags = IORESOURCE_IO,
72 }, {
73 .start = RTC_IRQ,
74 .end = RTC_IRQ,
75 .flags = IORESOURCE_IRQ,
76 }
77};
78
79static struct platform_device malta_rtc_device = {
80 .name = "rtc_cmos",
81 .id = -1,
82 .resource = malta_rtc_resources,
83 .num_resources = ARRAY_SIZE(malta_rtc_resources),
84};
85
86static struct mtd_partition malta_mtd_partitions[] = {
87 {
88 .name = "YAMON",
89 .offset = 0x0,
90 .size = 0x100000,
91 .mask_flags = MTD_WRITEABLE
92 }, {
93 .name = "User FS",
94 .offset = 0x100000,
95 .size = 0x2e0000
96 }, {
97 .name = "Board Config",
98 .offset = 0x3e0000,
99 .size = 0x020000,
100 .mask_flags = MTD_WRITEABLE
101 }
102};
103
104static struct physmap_flash_data malta_flash_data = {
105 .width = 4,
106 .nr_parts = ARRAY_SIZE(malta_mtd_partitions),
107 .parts = malta_mtd_partitions
108};
109
110static struct resource malta_flash_resource = {
111 .start = 0x1e000000,
112 .end = 0x1e3fffff,
113 .flags = IORESOURCE_MEM
114};
115
116static struct platform_device malta_flash_device = {
117 .name = "physmap-flash",
118 .id = 0,
119 .dev = {
120 .platform_data = &malta_flash_data,
121 },
122 .num_resources = 1,
123 .resource = &malta_flash_resource,
124};
125
126static struct platform_device *malta_devices[] __initdata = {
127 &malta_uart8250_device,
128 &malta_rtc_device,
129 &malta_flash_device,
130};
131
132static int __init malta_add_devices(void)
57{ 133{
58 return platform_device_register(&uart8250_device); 134 int err;
59}
60 135
61module_init(uart8250_init); 136 err = platform_add_devices(malta_devices, ARRAY_SIZE(malta_devices));
137 if (err)
138 return err;
139
140 /*
141 * Set RTC to BCD mode to support current alarm code.
142 */
143 CMOS_WRITE(CMOS_READ(RTC_CONTROL) & ~RTC_DM_BINARY, RTC_CONTROL);
144
145 return 0;
146}
62 147
63MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>"); 148device_initcall(malta_add_devices);
64MODULE_LICENSE("GPL");
65MODULE_DESCRIPTION("8250 UART probe driver for the Malta CBUS UART");
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index a377e9d2d029..62cae740e250 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -354,6 +354,30 @@ EXPORT_SYMBOL(PCIBIOS_MIN_IO);
354EXPORT_SYMBOL(PCIBIOS_MIN_MEM); 354EXPORT_SYMBOL(PCIBIOS_MIN_MEM);
355#endif 355#endif
356 356
357int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
358 enum pci_mmap_state mmap_state, int write_combine)
359{
360 unsigned long prot;
361
362 /*
363 * I/O space can be accessed via normal processor loads and stores on
364 * this platform but for now we elect not to do this and portable
365 * drivers should not do this anyway.
366 */
367 if (mmap_state == pci_mmap_io)
368 return -EINVAL;
369
370 /*
371 * Ignore write-combine; for now only return uncached mappings.
372 */
373 prot = pgprot_val(vma->vm_page_prot);
374 prot = (prot & ~_CACHE_MASK) | _CACHE_UNCACHED;
375 vma->vm_page_prot = __pgprot(prot);
376
377 return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
378 vma->vm_end - vma->vm_start, vma->vm_page_prot);
379}
380
357char * (*pcibios_plat_setup)(char *str) __devinitdata; 381char * (*pcibios_plat_setup)(char *str) __devinitdata;
358 382
359char *__devinit pcibios_setup(char *str) 383char *__devinit pcibios_setup(char *str)
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S
index b7cbb1487af4..62fba8aa9b6e 100644
--- a/arch/mn10300/kernel/entry.S
+++ b/arch/mn10300/kernel/entry.S
@@ -180,6 +180,7 @@ ENTRY(resume_userspace)
180 180
181#ifdef CONFIG_PREEMPT 181#ifdef CONFIG_PREEMPT
182ENTRY(resume_kernel) 182ENTRY(resume_kernel)
183 __cli
183 mov (TI_preempt_count,a2),d0 # non-zero preempt_count ? 184 mov (TI_preempt_count,a2),d0 # non-zero preempt_count ?
184 cmp 0,d0 185 cmp 0,d0
185 bne restore_all 186 bne restore_all
@@ -190,7 +191,7 @@ need_resched:
190 mov (REG_EPSW,fp),d0 191 mov (REG_EPSW,fp),d0
191 and EPSW_IM,d0 192 and EPSW_IM,d0
192 cmp EPSW_IM_7,d0 # interrupts off (exception path) ? 193 cmp EPSW_IM_7,d0 # interrupts off (exception path) ?
193 beq restore_all 194 bne restore_all
194 call preempt_schedule_irq[],0 195 call preempt_schedule_irq[],0
195 jmp need_resched 196 jmp need_resched
196#endif 197#endif
diff --git a/arch/mn10300/kernel/gdb-io-serial.c b/arch/mn10300/kernel/gdb-io-serial.c
index 9a6d4e8ebe73..11584c51acd9 100644
--- a/arch/mn10300/kernel/gdb-io-serial.c
+++ b/arch/mn10300/kernel/gdb-io-serial.c
@@ -99,6 +99,7 @@ int gdbstub_io_rx_char(unsigned char *_ch, int nonblock)
99 try_again: 99 try_again:
100 /* pull chars out of the buffer */ 100 /* pull chars out of the buffer */
101 ix = gdbstub_rx_outp; 101 ix = gdbstub_rx_outp;
102 barrier();
102 if (ix == gdbstub_rx_inp) { 103 if (ix == gdbstub_rx_inp) {
103 if (nonblock) 104 if (nonblock)
104 return -EAGAIN; 105 return -EAGAIN;
@@ -110,6 +111,7 @@ int gdbstub_io_rx_char(unsigned char *_ch, int nonblock)
110 111
111 ch = gdbstub_rx_buffer[ix++]; 112 ch = gdbstub_rx_buffer[ix++];
112 st = gdbstub_rx_buffer[ix++]; 113 st = gdbstub_rx_buffer[ix++];
114 barrier();
113 gdbstub_rx_outp = ix & 0x00000fff; 115 gdbstub_rx_outp = ix & 0x00000fff;
114 116
115 if (st & UART_LSR_BI) { 117 if (st & UART_LSR_BI) {
diff --git a/arch/mn10300/kernel/gdb-stub.c b/arch/mn10300/kernel/gdb-stub.c
index 54be6afb5555..0ea7482c1522 100644
--- a/arch/mn10300/kernel/gdb-stub.c
+++ b/arch/mn10300/kernel/gdb-stub.c
@@ -522,17 +522,7 @@ static int gdbstub_single_step(struct pt_regs *regs)
522 } else { 522 } else {
523 switch (cur) { 523 switch (cur) {
524 /* Bxx (d8,PC) */ 524 /* Bxx (d8,PC) */
525 case 0xc0: 525 case 0xc0 ... 0xca:
526 case 0xc1:
527 case 0xc2:
528 case 0xc3:
529 case 0xc4:
530 case 0xc5:
531 case 0xc6:
532 case 0xc7:
533 case 0xc8:
534 case 0xc9:
535 case 0xca:
536 if (gdbstub_read_byte(pc + 1, (u8 *) &x) < 0) 526 if (gdbstub_read_byte(pc + 1, (u8 *) &x) < 0)
537 goto fault; 527 goto fault;
538 if (!__gdbstub_mark_bp(pc + 2, 0)) 528 if (!__gdbstub_mark_bp(pc + 2, 0))
@@ -543,17 +533,7 @@ static int gdbstub_single_step(struct pt_regs *regs)
543 break; 533 break;
544 534
545 /* LXX (d8,PC) */ 535 /* LXX (d8,PC) */
546 case 0xd0: 536 case 0xd0 ... 0xda:
547 case 0xd1:
548 case 0xd2:
549 case 0xd3:
550 case 0xd4:
551 case 0xd5:
552 case 0xd6:
553 case 0xd7:
554 case 0xd8:
555 case 0xd9:
556 case 0xda:
557 if (!__gdbstub_mark_bp(pc + 1, 0)) 537 if (!__gdbstub_mark_bp(pc + 1, 0))
558 goto fault; 538 goto fault;
559 if (regs->pc != regs->lar && 539 if (regs->pc != regs->lar &&
diff --git a/arch/mn10300/kernel/mn10300-serial.c b/arch/mn10300/kernel/mn10300-serial.c
index aa07d0cd1905..59b9c4bf9583 100644
--- a/arch/mn10300/kernel/mn10300-serial.c
+++ b/arch/mn10300/kernel/mn10300-serial.c
@@ -566,6 +566,11 @@ static void mn10300_serial_transmit_interrupt(struct mn10300_serial_port *port)
566{ 566{
567 _enter("%s", port->name); 567 _enter("%s", port->name);
568 568
569 if (!port->uart.info || !port->uart.info->port.tty) {
570 mn10300_serial_dis_tx_intr(port);
571 return;
572 }
573
569 if (uart_tx_stopped(&port->uart) || 574 if (uart_tx_stopped(&port->uart) ||
570 uart_circ_empty(&port->uart.info->xmit)) 575 uart_circ_empty(&port->uart.info->xmit))
571 mn10300_serial_dis_tx_intr(port); 576 mn10300_serial_dis_tx_intr(port);
diff --git a/arch/mn10300/kernel/module.c b/arch/mn10300/kernel/module.c
index 8fa36893df7a..6b287f2e8e84 100644
--- a/arch/mn10300/kernel/module.c
+++ b/arch/mn10300/kernel/module.c
@@ -1,6 +1,6 @@
1/* MN10300 Kernel module helper routines 1/* MN10300 Kernel module helper routines
2 * 2 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 3 * Copyright (C) 2007, 2008 Red Hat, Inc. All Rights Reserved.
4 * Written by Mark Salter (msalter@redhat.com) 4 * Written by Mark Salter (msalter@redhat.com)
5 * - Derived from arch/i386/kernel/module.c 5 * - Derived from arch/i386/kernel/module.c
6 * 6 *
@@ -64,21 +64,6 @@ int module_frob_arch_sections(Elf_Ehdr *hdr,
64 return 0; 64 return 0;
65} 65}
66 66
67static uint32_t reloc_get16(uint8_t *p)
68{
69 return p[0] | (p[1] << 8);
70}
71
72static uint32_t reloc_get24(uint8_t *p)
73{
74 return reloc_get16(p) | (p[2] << 16);
75}
76
77static uint32_t reloc_get32(uint8_t *p)
78{
79 return reloc_get16(p) | (reloc_get16(p+2) << 16);
80}
81
82static void reloc_put16(uint8_t *p, uint32_t val) 67static void reloc_put16(uint8_t *p, uint32_t val)
83{ 68{
84 p[0] = val & 0xff; 69 p[0] = val & 0xff;
@@ -144,25 +129,19 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
144 relocation = sym->st_value + rel[i].r_addend; 129 relocation = sym->st_value + rel[i].r_addend;
145 130
146 switch (ELF32_R_TYPE(rel[i].r_info)) { 131 switch (ELF32_R_TYPE(rel[i].r_info)) {
147 /* for the first four relocation types, we add the 132 /* for the first four relocation types, we simply
148 * adjustment into the value at the location given */ 133 * store the adjustment at the location given */
149 case R_MN10300_32: 134 case R_MN10300_32:
150 value = reloc_get32(location); 135 reloc_put32(location, relocation);
151 value += relocation;
152 reloc_put32(location, value);
153 break; 136 break;
154 case R_MN10300_24: 137 case R_MN10300_24:
155 value = reloc_get24(location); 138 reloc_put24(location, relocation);
156 value += relocation;
157 reloc_put24(location, value);
158 break; 139 break;
159 case R_MN10300_16: 140 case R_MN10300_16:
160 value = reloc_get16(location); 141 reloc_put16(location, relocation);
161 value += relocation;
162 reloc_put16(location, value);
163 break; 142 break;
164 case R_MN10300_8: 143 case R_MN10300_8:
165 *location += relocation; 144 *location = relocation;
166 break; 145 break;
167 146
168 /* for the next three relocation types, we write the 147 /* for the next three relocation types, we write the
diff --git a/arch/mn10300/kernel/setup.c b/arch/mn10300/kernel/setup.c
index 017121ce896f..e1d88ab51008 100644
--- a/arch/mn10300/kernel/setup.c
+++ b/arch/mn10300/kernel/setup.c
@@ -161,7 +161,7 @@ void __init setup_arch(char **cmdline_p)
161 reserve the page it is occupying. */ 161 reserve the page it is occupying. */
162 if (CONFIG_INTERRUPT_VECTOR_BASE >= CONFIG_KERNEL_RAM_BASE_ADDRESS && 162 if (CONFIG_INTERRUPT_VECTOR_BASE >= CONFIG_KERNEL_RAM_BASE_ADDRESS &&
163 CONFIG_INTERRUPT_VECTOR_BASE < memory_end) 163 CONFIG_INTERRUPT_VECTOR_BASE < memory_end)
164 reserve_bootmem(CONFIG_INTERRUPT_VECTOR_BASE, 1, 164 reserve_bootmem(CONFIG_INTERRUPT_VECTOR_BASE, PAGE_SIZE,
165 BOOTMEM_DEFAULT); 165 BOOTMEM_DEFAULT);
166 166
167 reserve_bootmem(PAGE_ALIGN(PFN_PHYS(free_pfn)), bootmap_size, 167 reserve_bootmem(PAGE_ALIGN(PFN_PHYS(free_pfn)), bootmap_size,
diff --git a/arch/mn10300/kernel/vmlinux.lds.S b/arch/mn10300/kernel/vmlinux.lds.S
index a3e80f444f55..b8259668f7dc 100644
--- a/arch/mn10300/kernel/vmlinux.lds.S
+++ b/arch/mn10300/kernel/vmlinux.lds.S
@@ -11,6 +11,7 @@
11#define __VMLINUX_LDS__ 11#define __VMLINUX_LDS__
12#include <asm-generic/vmlinux.lds.h> 12#include <asm-generic/vmlinux.lds.h>
13#include <asm/thread_info.h> 13#include <asm/thread_info.h>
14#include <asm/page.h>
14 15
15OUTPUT_FORMAT("elf32-am33lin", "elf32-am33lin", "elf32-am33lin") 16OUTPUT_FORMAT("elf32-am33lin", "elf32-am33lin", "elf32-am33lin")
16OUTPUT_ARCH(mn10300) 17OUTPUT_ARCH(mn10300)
@@ -55,13 +56,13 @@ SECTIONS
55 CONSTRUCTORS 56 CONSTRUCTORS
56 } 57 }
57 58
58 . = ALIGN(4096); 59 . = ALIGN(PAGE_SIZE);
59 __nosave_begin = .; 60 __nosave_begin = .;
60 .data_nosave : { *(.data.nosave) } 61 .data_nosave : { *(.data.nosave) }
61 . = ALIGN(4096); 62 . = ALIGN(PAGE_SIZE);
62 __nosave_end = .; 63 __nosave_end = .;
63 64
64 . = ALIGN(4096); 65 . = ALIGN(PAGE_SIZE);
65 .data.page_aligned : { *(.data.idt) } 66 .data.page_aligned : { *(.data.idt) }
66 67
67 . = ALIGN(32); 68 . = ALIGN(32);
@@ -78,7 +79,7 @@ SECTIONS
78 .data.init_task : { *(.data.init_task) } 79 .data.init_task : { *(.data.init_task) }
79 80
80 /* might get freed after init */ 81 /* might get freed after init */
81 . = ALIGN(4096); 82 . = ALIGN(PAGE_SIZE);
82 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { 83 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
83 __smp_locks = .; 84 __smp_locks = .;
84 *(.smp_locks) 85 *(.smp_locks)
@@ -86,7 +87,7 @@ SECTIONS
86 } 87 }
87 88
88 /* will be freed after init */ 89 /* will be freed after init */
89 . = ALIGN(4096); /* Init code and data */ 90 . = ALIGN(PAGE_SIZE); /* Init code and data */
90 __init_begin = .; 91 __init_begin = .;
91 .init.text : { 92 .init.text : {
92 _sinittext = .; 93 _sinittext = .;
@@ -120,17 +121,14 @@ SECTIONS
120 .exit.data : { *(.exit.data) } 121 .exit.data : { *(.exit.data) }
121 122
122#ifdef CONFIG_BLK_DEV_INITRD 123#ifdef CONFIG_BLK_DEV_INITRD
123 . = ALIGN(4096); 124 . = ALIGN(PAGE_SIZE);
124 __initramfs_start = .; 125 __initramfs_start = .;
125 .init.ramfs : { *(.init.ramfs) } 126 .init.ramfs : { *(.init.ramfs) }
126 __initramfs_end = .; 127 __initramfs_end = .;
127#endif 128#endif
128 129
129 . = ALIGN(32); 130 PERCPU(32)
130 __per_cpu_start = .; 131 . = ALIGN(PAGE_SIZE);
131 .data.percpu : { *(.data.percpu) }
132 __per_cpu_end = .;
133 . = ALIGN(4096);
134 __init_end = .; 132 __init_end = .;
135 /* freed after init ends here */ 133 /* freed after init ends here */
136 134
@@ -145,7 +143,7 @@ SECTIONS
145 _end = . ; 143 _end = . ;
146 144
147 /* This is where the kernel creates the early boot page tables */ 145 /* This is where the kernel creates the early boot page tables */
148 . = ALIGN(4096); 146 . = ALIGN(PAGE_SIZE);
149 pg0 = .; 147 pg0 = .;
150 148
151 /* Sections to be discarded */ 149 /* Sections to be discarded */
diff --git a/arch/parisc/include/asm/parisc-device.h b/arch/parisc/include/asm/parisc-device.h
index 7aa13f2add7a..9afdad6c2ffb 100644
--- a/arch/parisc/include/asm/parisc-device.h
+++ b/arch/parisc/include/asm/parisc-device.h
@@ -42,9 +42,9 @@ struct parisc_driver {
42#define to_parisc_driver(d) container_of(d, struct parisc_driver, drv) 42#define to_parisc_driver(d) container_of(d, struct parisc_driver, drv)
43#define parisc_parent(d) to_parisc_device(d->dev.parent) 43#define parisc_parent(d) to_parisc_device(d->dev.parent)
44 44
45static inline char *parisc_pathname(struct parisc_device *d) 45static inline const char *parisc_pathname(struct parisc_device *d)
46{ 46{
47 return d->dev.bus_id; 47 return dev_name(&d->dev);
48} 48}
49 49
50static inline void 50static inline void
diff --git a/arch/parisc/include/asm/posix_types.h b/arch/parisc/include/asm/posix_types.h
index bb725a6630bb..00da29a340ba 100644
--- a/arch/parisc/include/asm/posix_types.h
+++ b/arch/parisc/include/asm/posix_types.h
@@ -24,13 +24,12 @@ typedef int __kernel_daddr_t;
24typedef unsigned long __kernel_size_t; 24typedef unsigned long __kernel_size_t;
25typedef long __kernel_ssize_t; 25typedef long __kernel_ssize_t;
26typedef long __kernel_ptrdiff_t; 26typedef long __kernel_ptrdiff_t;
27typedef long __kernel_time_t;
28#else 27#else
29typedef unsigned int __kernel_size_t; 28typedef unsigned int __kernel_size_t;
30typedef int __kernel_ssize_t; 29typedef int __kernel_ssize_t;
31typedef int __kernel_ptrdiff_t; 30typedef int __kernel_ptrdiff_t;
32typedef long __kernel_time_t;
33#endif 31#endif
32typedef long __kernel_time_t;
34typedef char * __kernel_caddr_t; 33typedef char * __kernel_caddr_t;
35 34
36typedef unsigned short __kernel_uid16_t; 35typedef unsigned short __kernel_uid16_t;
diff --git a/arch/parisc/include/asm/ptrace.h b/arch/parisc/include/asm/ptrace.h
index afa5333187b4..302f68dc889c 100644
--- a/arch/parisc/include/asm/ptrace.h
+++ b/arch/parisc/include/asm/ptrace.h
@@ -47,8 +47,6 @@ struct pt_regs {
47 47
48#define task_regs(task) ((struct pt_regs *) ((char *)(task) + TASK_REGS)) 48#define task_regs(task) ((struct pt_regs *) ((char *)(task) + TASK_REGS))
49 49
50#define __ARCH_WANT_COMPAT_SYS_PTRACE
51
52struct task_struct; 50struct task_struct;
53#define arch_has_single_step() 1 51#define arch_has_single_step() 1
54void user_disable_single_step(struct task_struct *task); 52void user_disable_single_step(struct task_struct *task);
diff --git a/arch/parisc/include/asm/tlbflush.h b/arch/parisc/include/asm/tlbflush.h
index b72ec66db699..1f6fd4fc05b9 100644
--- a/arch/parisc/include/asm/tlbflush.h
+++ b/arch/parisc/include/asm/tlbflush.h
@@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm)
44{ 44{
45 BUG_ON(mm == &init_mm); /* Should never happen */ 45 BUG_ON(mm == &init_mm); /* Should never happen */
46 46
47#ifdef CONFIG_SMP 47#if 1 || defined(CONFIG_SMP)
48 flush_tlb_all(); 48 flush_tlb_all();
49#else 49#else
50 /* FIXME: currently broken, causing space id and protection ids
51 * to go out of sync, resulting in faults on userspace accesses.
52 */
50 if (mm) { 53 if (mm) {
51 if (mm->context != 0) 54 if (mm->context != 0)
52 free_sid(mm->context); 55 free_sid(mm->context);
diff --git a/arch/parisc/kernel/drivers.c b/arch/parisc/kernel/drivers.c
index 2ca654bd6322..884b7ce16a3b 100644
--- a/arch/parisc/kernel/drivers.c
+++ b/arch/parisc/kernel/drivers.c
@@ -43,7 +43,7 @@ struct hppa_dma_ops *hppa_dma_ops __read_mostly;
43EXPORT_SYMBOL(hppa_dma_ops); 43EXPORT_SYMBOL(hppa_dma_ops);
44 44
45static struct device root = { 45static struct device root = {
46 .bus_id = "parisc", 46 .init_name = "parisc",
47}; 47};
48 48
49static inline int check_dev(struct device *dev) 49static inline int check_dev(struct device *dev)
@@ -393,7 +393,8 @@ EXPORT_SYMBOL(print_pci_hwpath);
393static void setup_bus_id(struct parisc_device *padev) 393static void setup_bus_id(struct parisc_device *padev)
394{ 394{
395 struct hardware_path path; 395 struct hardware_path path;
396 char *output = padev->dev.bus_id; 396 char name[20];
397 char *output = name;
397 int i; 398 int i;
398 399
399 get_node_path(padev->dev.parent, &path); 400 get_node_path(padev->dev.parent, &path);
@@ -404,6 +405,7 @@ static void setup_bus_id(struct parisc_device *padev)
404 output += sprintf(output, "%u:", (unsigned char) path.bc[i]); 405 output += sprintf(output, "%u:", (unsigned char) path.bc[i]);
405 } 406 }
406 sprintf(output, "%u", (unsigned char) padev->hw_path); 407 sprintf(output, "%u", (unsigned char) padev->hw_path);
408 dev_set_name(&padev->dev, name);
407} 409}
408 410
409struct parisc_device * create_tree_node(char id, struct device *parent) 411struct parisc_device * create_tree_node(char id, struct device *parent)
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index 675f1d098f05..4c771cd580ec 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -24,7 +24,6 @@
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/interrupt.h> 25#include <linux/interrupt.h>
26#include <linux/console.h> 26#include <linux/console.h>
27#include <linux/kallsyms.h>
28#include <linux/bug.h> 27#include <linux/bug.h>
29 28
30#include <asm/assembly.h> 29#include <asm/assembly.h>
@@ -51,7 +50,7 @@
51DEFINE_SPINLOCK(pa_dbit_lock); 50DEFINE_SPINLOCK(pa_dbit_lock);
52#endif 51#endif
53 52
54void parisc_show_stack(struct task_struct *t, unsigned long *sp, 53static void parisc_show_stack(struct task_struct *task, unsigned long *sp,
55 struct pt_regs *regs); 54 struct pt_regs *regs);
56 55
57static int printbinary(char *buf, unsigned long x, int nbits) 56static int printbinary(char *buf, unsigned long x, int nbits)
@@ -121,18 +120,19 @@ static void print_fr(char *level, struct pt_regs *regs)
121 120
122void show_regs(struct pt_regs *regs) 121void show_regs(struct pt_regs *regs)
123{ 122{
124 int i; 123 int i, user;
125 char *level; 124 char *level;
126 unsigned long cr30, cr31; 125 unsigned long cr30, cr31;
127 126
128 level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT; 127 user = user_mode(regs);
128 level = user ? KERN_DEBUG : KERN_CRIT;
129 129
130 print_gr(level, regs); 130 print_gr(level, regs);
131 131
132 for (i = 0; i < 8; i += 4) 132 for (i = 0; i < 8; i += 4)
133 PRINTREGS(level, regs->sr, "sr", RFMT, i); 133 PRINTREGS(level, regs->sr, "sr", RFMT, i);
134 134
135 if (user_mode(regs)) 135 if (user)
136 print_fr(level, regs); 136 print_fr(level, regs);
137 137
138 cr30 = mfctl(30); 138 cr30 = mfctl(30);
@@ -145,14 +145,18 @@ void show_regs(struct pt_regs *regs)
145 printk("%s CPU: %8d CR30: " RFMT " CR31: " RFMT "\n", 145 printk("%s CPU: %8d CR30: " RFMT " CR31: " RFMT "\n",
146 level, current_thread_info()->cpu, cr30, cr31); 146 level, current_thread_info()->cpu, cr30, cr31);
147 printk("%s ORIG_R28: " RFMT "\n", level, regs->orig_r28); 147 printk("%s ORIG_R28: " RFMT "\n", level, regs->orig_r28);
148 printk(level); 148
149 print_symbol(" IAOQ[0]: %s\n", regs->iaoq[0]); 149 if (user) {
150 printk(level); 150 printk("%s IAOQ[0]: " RFMT "\n", level, regs->iaoq[0]);
151 print_symbol(" IAOQ[1]: %s\n", regs->iaoq[1]); 151 printk("%s IAOQ[1]: " RFMT "\n", level, regs->iaoq[1]);
152 printk(level); 152 printk("%s RP(r2): " RFMT "\n", level, regs->gr[2]);
153 print_symbol(" RP(r2): %s\n", regs->gr[2]); 153 } else {
154 154 printk("%s IAOQ[0]: %pS\n", level, (void *) regs->iaoq[0]);
155 parisc_show_stack(current, NULL, regs); 155 printk("%s IAOQ[1]: %pS\n", level, (void *) regs->iaoq[1]);
156 printk("%s RP(r2): %pS\n", level, (void *) regs->gr[2]);
157
158 parisc_show_stack(current, NULL, regs);
159 }
156} 160}
157 161
158 162
@@ -173,20 +177,15 @@ static void do_show_stack(struct unwind_frame_info *info)
173 break; 177 break;
174 178
175 if (__kernel_text_address(info->ip)) { 179 if (__kernel_text_address(info->ip)) {
176 printk("%s [<" RFMT ">] ", (i&0x3)==1 ? KERN_CRIT : "", info->ip); 180 printk(KERN_CRIT " [<" RFMT ">] %pS\n",
177#ifdef CONFIG_KALLSYMS 181 info->ip, (void *) info->ip);
178 print_symbol("%s\n", info->ip);
179#else
180 if ((i & 0x03) == 0)
181 printk("\n");
182#endif
183 i++; 182 i++;
184 } 183 }
185 } 184 }
186 printk("\n"); 185 printk(KERN_CRIT "\n");
187} 186}
188 187
189void parisc_show_stack(struct task_struct *task, unsigned long *sp, 188static void parisc_show_stack(struct task_struct *task, unsigned long *sp,
190 struct pt_regs *regs) 189 struct pt_regs *regs)
191{ 190{
192 struct unwind_frame_info info; 191 struct unwind_frame_info info;
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 8fc6d72849ae..3d3daa674299 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -41,6 +41,7 @@ $(obj)/4xx.o: BOOTCFLAGS += -mcpu=405
41$(obj)/ebony.o: BOOTCFLAGS += -mcpu=405 41$(obj)/ebony.o: BOOTCFLAGS += -mcpu=405
42$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405 42$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405
43$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405 43$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405
44$(obj)/cuboot-acadia.o: BOOTCFLAGS += -mcpu=405
44$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405 45$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405
45$(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405 46$(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405
46 47
diff --git a/arch/powerpc/boot/dts/mpc832x_rdb.dts b/arch/powerpc/boot/dts/mpc832x_rdb.dts
index 226ff066652b..dea30910c136 100644
--- a/arch/powerpc/boot/dts/mpc832x_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc832x_rdb.dts
@@ -18,8 +18,8 @@
18 #size-cells = <1>; 18 #size-cells = <1>;
19 19
20 aliases { 20 aliases {
21 ethernet0 = &enet0; 21 ethernet0 = &enet1;
22 ethernet1 = &enet1; 22 ethernet1 = &enet0;
23 serial0 = &serial0; 23 serial0 = &serial0;
24 serial1 = &serial1; 24 serial1 = &serial1;
25 pci0 = &pci0; 25 pci0 = &pci0;
diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts
index 2c9d54a35bc3..4bdbaf4993a1 100644
--- a/arch/powerpc/boot/dts/mpc8349emitx.dts
+++ b/arch/powerpc/boot/dts/mpc8349emitx.dts
@@ -91,6 +91,14 @@
91 interrupts = <18 0x8>; 91 interrupts = <18 0x8>;
92 interrupt-parent = <&ipic>; 92 interrupt-parent = <&ipic>;
93 }; 93 };
94
95 mcu_pio: mcu@a {
96 #gpio-cells = <2>;
97 compatible = "fsl,mc9s08qg8-mpc8349emitx",
98 "fsl,mcu-mpc8349emitx";
99 reg = <0x0a>;
100 gpio-controller;
101 };
94 }; 102 };
95 103
96 spi@7000 { 104 spi@7000 {
@@ -139,14 +147,6 @@
139 interrupt-parent = <&ipic>; 147 interrupt-parent = <&ipic>;
140 interrupts = <71 8>; 148 interrupts = <71 8>;
141 }; 149 };
142
143 mcu_pio: mcu@a {
144 #gpio-cells = <2>;
145 compatible = "fsl,mc9s08qg8-mpc8349emitx",
146 "fsl,mcu-mpc8349emitx";
147 reg = <0x0a>;
148 gpio-controller;
149 };
150 }; 150 };
151 151
152 usb@22000 { 152 usb@22000 {
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts
index cadd4652a695..5c69b2fafd32 100644
--- a/arch/powerpc/boot/dts/mpc8572ds.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds.dts
@@ -90,7 +90,7 @@
90 compatible = "fsl,mpc8572-l2-cache-controller"; 90 compatible = "fsl,mpc8572-l2-cache-controller";
91 reg = <0x20000 0x1000>; 91 reg = <0x20000 0x1000>;
92 cache-line-size = <32>; // 32 bytes 92 cache-line-size = <32>; // 32 bytes
93 cache-size = <0x80000>; // L2, 512K 93 cache-size = <0x100000>; // L2, 1M
94 interrupt-parent = <&mpic>; 94 interrupt-parent = <&mpic>;
95 interrupts = <16 2>; 95 interrupts = <16 2>;
96 }; 96 };
diff --git a/arch/powerpc/configs/40x/virtex_defconfig b/arch/powerpc/configs/40x/virtex_defconfig
new file mode 100644
index 000000000000..9a9350ded292
--- /dev/null
+++ b/arch/powerpc/configs/40x/virtex_defconfig
@@ -0,0 +1,1176 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc4
4# Fri Nov 14 10:49:16 2008
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx is not set
12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set
14CONFIG_40x=y
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_4xx=y
18# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y
21CONFIG_WORD_SIZE=32
22# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
23CONFIG_MMU=y
24CONFIG_GENERIC_CMOS_UPDATE=y
25CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
33CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y
37CONFIG_GENERIC_CALIBRATE_DELAY=y
38CONFIG_GENERIC_FIND_NEXT_BIT=y
39CONFIG_GENERIC_GPIO=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y
43CONFIG_GENERIC_NVRAM=y
44CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y
47CONFIG_OF=y
48CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set
53CONFIG_PPC_DCR_NATIVE=y
54# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_PPC_DCR=y
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
57
58#
59# General setup
60#
61CONFIG_EXPERIMENTAL=y
62CONFIG_BROKEN_ON_SMP=y
63CONFIG_LOCK_KERNEL=y
64CONFIG_INIT_ENV_ARG_LIMIT=32
65CONFIG_LOCALVERSION=""
66# CONFIG_LOCALVERSION_AUTO is not set
67CONFIG_SWAP=y
68CONFIG_SYSVIPC=y
69CONFIG_SYSVIPC_SYSCTL=y
70CONFIG_POSIX_MQUEUE=y
71# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set
74CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14
77# CONFIG_CGROUPS is not set
78# CONFIG_GROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set
82CONFIG_NAMESPACES=y
83# CONFIG_UTS_NS is not set
84# CONFIG_IPC_NS is not set
85# CONFIG_USER_NS is not set
86# CONFIG_PID_NS is not set
87CONFIG_BLK_DEV_INITRD=y
88CONFIG_INITRAMFS_SOURCE=""
89# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
90CONFIG_SYSCTL=y
91# CONFIG_EMBEDDED is not set
92CONFIG_SYSCTL_SYSCALL=y
93CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set
96CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y
98CONFIG_BUG=y
99CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104CONFIG_EPOLL=y
105CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y
107CONFIG_EVENTFD=y
108CONFIG_SHMEM=y
109CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
112CONFIG_SLAB=y
113# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set
116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set
128CONFIG_BASE_SMALL=0
129CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set
131CONFIG_MODULE_UNLOAD=y
132CONFIG_MODULE_FORCE_UNLOAD=y
133CONFIG_MODVERSIONS=y
134# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y
136CONFIG_BLOCK=y
137# CONFIG_LBD is not set
138# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set
142
143#
144# IO Schedulers
145#
146CONFIG_IOSCHED_NOOP=y
147CONFIG_IOSCHED_AS=y
148CONFIG_IOSCHED_DEADLINE=y
149CONFIG_IOSCHED_CFQ=y
150# CONFIG_DEFAULT_AS is not set
151# CONFIG_DEFAULT_DEADLINE is not set
152CONFIG_DEFAULT_CFQ=y
153# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="cfq"
155CONFIG_CLASSIC_RCU=y
156# CONFIG_FREEZER is not set
157# CONFIG_PPC4xx_PCI_EXPRESS is not set
158
159#
160# Platform support
161#
162# CONFIG_PPC_CELL is not set
163# CONFIG_PPC_CELL_NATIVE is not set
164# CONFIG_PQ2ADS is not set
165# CONFIG_PPC4xx_GPIO is not set
166CONFIG_XILINX_VIRTEX=y
167# CONFIG_ACADIA is not set
168# CONFIG_EP405 is not set
169# CONFIG_HCU4 is not set
170# CONFIG_KILAUEA is not set
171# CONFIG_MAKALU is not set
172# CONFIG_WALNUT is not set
173CONFIG_XILINX_VIRTEX_GENERIC_BOARD=y
174# CONFIG_PPC40x_SIMPLE is not set
175CONFIG_XILINX_VIRTEX_II_PRO=y
176CONFIG_XILINX_VIRTEX_4_FX=y
177CONFIG_IBM405_ERR77=y
178CONFIG_IBM405_ERR51=y
179# CONFIG_IPIC is not set
180# CONFIG_MPIC is not set
181# CONFIG_MPIC_WEIRD is not set
182# CONFIG_PPC_I8259 is not set
183# CONFIG_PPC_RTAS is not set
184# CONFIG_MMIO_NVRAM is not set
185# CONFIG_PPC_MPC106 is not set
186# CONFIG_PPC_970_NAP is not set
187# CONFIG_PPC_INDIRECT_IO is not set
188# CONFIG_GENERIC_IOMAP is not set
189# CONFIG_CPU_FREQ is not set
190# CONFIG_FSL_ULI1575 is not set
191
192#
193# Kernel options
194#
195# CONFIG_HIGHMEM is not set
196# CONFIG_NO_HZ is not set
197# CONFIG_HIGH_RES_TIMERS is not set
198CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
199# CONFIG_HZ_100 is not set
200CONFIG_HZ_250=y
201# CONFIG_HZ_300 is not set
202# CONFIG_HZ_1000 is not set
203CONFIG_HZ=250
204# CONFIG_SCHED_HRTICK is not set
205# CONFIG_PREEMPT_NONE is not set
206# CONFIG_PREEMPT_VOLUNTARY is not set
207CONFIG_PREEMPT=y
208# CONFIG_PREEMPT_RCU is not set
209CONFIG_BINFMT_ELF=y
210# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
211# CONFIG_HAVE_AOUT is not set
212# CONFIG_BINFMT_MISC is not set
213CONFIG_MATH_EMULATION=y
214# CONFIG_IOMMU_HELPER is not set
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
216CONFIG_ARCH_HAS_WALK_MEMORY=y
217CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
218CONFIG_ARCH_FLATMEM_ENABLE=y
219CONFIG_ARCH_POPULATES_NODE_MAP=y
220CONFIG_SELECT_MEMORY_MODEL=y
221CONFIG_FLATMEM_MANUAL=y
222# CONFIG_DISCONTIGMEM_MANUAL is not set
223# CONFIG_SPARSEMEM_MANUAL is not set
224CONFIG_FLATMEM=y
225CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y
229CONFIG_RESOURCES_64BIT=y
230# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y
237CONFIG_CMDLINE_BOOL=y
238CONFIG_CMDLINE=""
239CONFIG_EXTRA_TARGETS=""
240# CONFIG_PM is not set
241CONFIG_SECCOMP=y
242CONFIG_ISA_DMA_API=y
243
244#
245# Bus options
246#
247CONFIG_ZONE_DMA=y
248CONFIG_PPC_INDIRECT_PCI=y
249CONFIG_4xx_SOC=y
250CONFIG_PPC_PCI_CHOICE=y
251CONFIG_PCI=y
252CONFIG_PCI_DOMAINS=y
253CONFIG_PCI_SYSCALL=y
254# CONFIG_PCIEPORTBUS is not set
255CONFIG_ARCH_SUPPORTS_MSI=y
256# CONFIG_PCI_MSI is not set
257CONFIG_PCI_LEGACY=y
258# CONFIG_PCI_DEBUG is not set
259# CONFIG_PCCARD is not set
260# CONFIG_HOTPLUG_PCI is not set
261# CONFIG_HAS_RAPIDIO is not set
262
263#
264# Advanced setup
265#
266# CONFIG_ADVANCED_OPTIONS is not set
267
268#
269# Default settings for advanced configuration options are used
270#
271CONFIG_LOWMEM_SIZE=0x30000000
272CONFIG_PAGE_OFFSET=0xc0000000
273CONFIG_KERNEL_START=0xc0000000
274CONFIG_PHYSICAL_START=0x00000000
275CONFIG_TASK_SIZE=0xc0000000
276CONFIG_CONSISTENT_START=0xff100000
277CONFIG_CONSISTENT_SIZE=0x00200000
278CONFIG_NET=y
279
280#
281# Networking options
282#
283CONFIG_PACKET=y
284# CONFIG_PACKET_MMAP is not set
285CONFIG_UNIX=y
286CONFIG_XFRM=y
287# CONFIG_XFRM_USER is not set
288# CONFIG_XFRM_SUB_POLICY is not set
289# CONFIG_XFRM_MIGRATE is not set
290# CONFIG_XFRM_STATISTICS is not set
291# CONFIG_NET_KEY is not set
292CONFIG_INET=y
293CONFIG_IP_MULTICAST=y
294# CONFIG_IP_ADVANCED_ROUTER is not set
295CONFIG_IP_FIB_HASH=y
296CONFIG_IP_PNP=y
297CONFIG_IP_PNP_DHCP=y
298CONFIG_IP_PNP_BOOTP=y
299# CONFIG_IP_PNP_RARP is not set
300# CONFIG_NET_IPIP is not set
301# CONFIG_NET_IPGRE is not set
302# CONFIG_IP_MROUTE is not set
303# CONFIG_ARPD is not set
304# CONFIG_SYN_COOKIES is not set
305# CONFIG_INET_AH is not set
306# CONFIG_INET_ESP is not set
307# CONFIG_INET_IPCOMP is not set
308# CONFIG_INET_XFRM_TUNNEL is not set
309CONFIG_INET_TUNNEL=m
310CONFIG_INET_XFRM_MODE_TRANSPORT=y
311CONFIG_INET_XFRM_MODE_TUNNEL=y
312CONFIG_INET_XFRM_MODE_BEET=y
313# CONFIG_INET_LRO is not set
314CONFIG_INET_DIAG=y
315CONFIG_INET_TCP_DIAG=y
316# CONFIG_TCP_CONG_ADVANCED is not set
317CONFIG_TCP_CONG_CUBIC=y
318CONFIG_DEFAULT_TCP_CONG="cubic"
319# CONFIG_TCP_MD5SIG is not set
320CONFIG_IPV6=m
321# CONFIG_IPV6_PRIVACY is not set
322# CONFIG_IPV6_ROUTER_PREF is not set
323# CONFIG_IPV6_OPTIMISTIC_DAD is not set
324# CONFIG_INET6_AH is not set
325# CONFIG_INET6_ESP is not set
326# CONFIG_INET6_IPCOMP is not set
327# CONFIG_IPV6_MIP6 is not set
328# CONFIG_INET6_XFRM_TUNNEL is not set
329# CONFIG_INET6_TUNNEL is not set
330CONFIG_INET6_XFRM_MODE_TRANSPORT=m
331CONFIG_INET6_XFRM_MODE_TUNNEL=m
332CONFIG_INET6_XFRM_MODE_BEET=m
333# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
334CONFIG_IPV6_SIT=m
335CONFIG_IPV6_NDISC_NODETYPE=y
336# CONFIG_IPV6_TUNNEL is not set
337# CONFIG_IPV6_MULTIPLE_TABLES is not set
338# CONFIG_IPV6_MROUTE is not set
339# CONFIG_NETWORK_SECMARK is not set
340CONFIG_NETFILTER=y
341# CONFIG_NETFILTER_DEBUG is not set
342CONFIG_NETFILTER_ADVANCED=y
343
344#
345# Core Netfilter Configuration
346#
347# CONFIG_NETFILTER_NETLINK_QUEUE is not set
348# CONFIG_NETFILTER_NETLINK_LOG is not set
349# CONFIG_NF_CONNTRACK is not set
350CONFIG_NETFILTER_XTABLES=m
351# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
352# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
353# CONFIG_NETFILTER_XT_TARGET_MARK is not set
354# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
355# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
356# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
357# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
358# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
359# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
360# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
361# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
362# CONFIG_NETFILTER_XT_MATCH_ESP is not set
363# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
364# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
365# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
366# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
367# CONFIG_NETFILTER_XT_MATCH_MAC is not set
368# CONFIG_NETFILTER_XT_MATCH_MARK is not set
369# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
370# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
371# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
372# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
373# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
374# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
375# CONFIG_NETFILTER_XT_MATCH_REALM is not set
376# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
377# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
378# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
379# CONFIG_NETFILTER_XT_MATCH_STRING is not set
380# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
381# CONFIG_NETFILTER_XT_MATCH_TIME is not set
382# CONFIG_NETFILTER_XT_MATCH_U32 is not set
383# CONFIG_IP_VS is not set
384
385#
386# IP: Netfilter Configuration
387#
388# CONFIG_NF_DEFRAG_IPV4 is not set
389# CONFIG_IP_NF_QUEUE is not set
390CONFIG_IP_NF_IPTABLES=m
391# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
392# CONFIG_IP_NF_MATCH_AH is not set
393# CONFIG_IP_NF_MATCH_ECN is not set
394# CONFIG_IP_NF_MATCH_TTL is not set
395CONFIG_IP_NF_FILTER=m
396# CONFIG_IP_NF_TARGET_REJECT is not set
397# CONFIG_IP_NF_TARGET_LOG is not set
398# CONFIG_IP_NF_TARGET_ULOG is not set
399CONFIG_IP_NF_MANGLE=m
400# CONFIG_IP_NF_TARGET_ECN is not set
401# CONFIG_IP_NF_TARGET_TTL is not set
402# CONFIG_IP_NF_RAW is not set
403# CONFIG_IP_NF_ARPTABLES is not set
404
405#
406# IPv6: Netfilter Configuration
407#
408# CONFIG_IP6_NF_QUEUE is not set
409# CONFIG_IP6_NF_IPTABLES is not set
410# CONFIG_IP_DCCP is not set
411# CONFIG_IP_SCTP is not set
412# CONFIG_TIPC is not set
413# CONFIG_ATM is not set
414# CONFIG_BRIDGE is not set
415# CONFIG_NET_DSA is not set
416# CONFIG_VLAN_8021Q is not set
417# CONFIG_DECNET is not set
418# CONFIG_LLC2 is not set
419# CONFIG_IPX is not set
420# CONFIG_ATALK is not set
421# CONFIG_X25 is not set
422# CONFIG_LAPB is not set
423# CONFIG_ECONET is not set
424# CONFIG_WAN_ROUTER is not set
425# CONFIG_NET_SCHED is not set
426
427#
428# Network testing
429#
430# CONFIG_NET_PKTGEN is not set
431# CONFIG_HAMRADIO is not set
432# CONFIG_CAN is not set
433# CONFIG_IRDA is not set
434# CONFIG_BT is not set
435# CONFIG_AF_RXRPC is not set
436# CONFIG_PHONET is not set
437CONFIG_WIRELESS=y
438# CONFIG_CFG80211 is not set
439CONFIG_WIRELESS_OLD_REGULATORY=y
440# CONFIG_WIRELESS_EXT is not set
441# CONFIG_MAC80211 is not set
442# CONFIG_IEEE80211 is not set
443# CONFIG_RFKILL is not set
444# CONFIG_NET_9P is not set
445
446#
447# Device Drivers
448#
449
450#
451# Generic Driver Options
452#
453CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
454CONFIG_STANDALONE=y
455CONFIG_PREVENT_FIRMWARE_BUILD=y
456CONFIG_FW_LOADER=y
457CONFIG_FIRMWARE_IN_KERNEL=y
458CONFIG_EXTRA_FIRMWARE=""
459# CONFIG_DEBUG_DRIVER is not set
460# CONFIG_DEBUG_DEVRES is not set
461# CONFIG_SYS_HYPERVISOR is not set
462# CONFIG_CONNECTOR is not set
463# CONFIG_MTD is not set
464CONFIG_OF_DEVICE=y
465CONFIG_OF_GPIO=y
466# CONFIG_PARPORT is not set
467CONFIG_BLK_DEV=y
468# CONFIG_BLK_DEV_FD is not set
469# CONFIG_BLK_CPQ_DA is not set
470# CONFIG_BLK_CPQ_CISS_DA is not set
471# CONFIG_BLK_DEV_DAC960 is not set
472# CONFIG_BLK_DEV_UMEM is not set
473# CONFIG_BLK_DEV_COW_COMMON is not set
474CONFIG_BLK_DEV_LOOP=y
475# CONFIG_BLK_DEV_CRYPTOLOOP is not set
476# CONFIG_BLK_DEV_NBD is not set
477# CONFIG_BLK_DEV_SX8 is not set
478CONFIG_BLK_DEV_RAM=y
479CONFIG_BLK_DEV_RAM_COUNT=16
480CONFIG_BLK_DEV_RAM_SIZE=8192
481# CONFIG_BLK_DEV_XIP is not set
482# CONFIG_CDROM_PKTCDVD is not set
483# CONFIG_ATA_OVER_ETH is not set
484CONFIG_XILINX_SYSACE=y
485# CONFIG_BLK_DEV_HD is not set
486CONFIG_MISC_DEVICES=y
487# CONFIG_PHANTOM is not set
488# CONFIG_EEPROM_93CX6 is not set
489# CONFIG_SGI_IOC4 is not set
490# CONFIG_TIFM_CORE is not set
491# CONFIG_ENCLOSURE_SERVICES is not set
492# CONFIG_HP_ILO is not set
493# CONFIG_C2PORT is not set
494CONFIG_HAVE_IDE=y
495# CONFIG_IDE is not set
496
497#
498# SCSI device support
499#
500# CONFIG_RAID_ATTRS is not set
501# CONFIG_SCSI is not set
502# CONFIG_SCSI_DMA is not set
503# CONFIG_SCSI_NETLINK is not set
504# CONFIG_ATA is not set
505# CONFIG_MD is not set
506# CONFIG_FUSION is not set
507
508#
509# IEEE 1394 (FireWire) support
510#
511
512#
513# Enable only one of the two stacks, unless you know what you are doing
514#
515# CONFIG_FIREWIRE is not set
516# CONFIG_IEEE1394 is not set
517# CONFIG_I2O is not set
518# CONFIG_MACINTOSH_DRIVERS is not set
519CONFIG_NETDEVICES=y
520# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set
522# CONFIG_MACVLAN is not set
523# CONFIG_EQUALIZER is not set
524# CONFIG_TUN is not set
525# CONFIG_VETH is not set
526# CONFIG_ARCNET is not set
527# CONFIG_PHYLIB is not set
528CONFIG_NET_ETHERNET=y
529CONFIG_MII=y
530# CONFIG_HAPPYMEAL is not set
531# CONFIG_SUNGEM is not set
532# CONFIG_CASSINI is not set
533# CONFIG_NET_VENDOR_3COM is not set
534# CONFIG_NET_TULIP is not set
535# CONFIG_HP100 is not set
536# CONFIG_IBM_NEW_EMAC is not set
537# CONFIG_IBM_NEW_EMAC_ZMII is not set
538# CONFIG_IBM_NEW_EMAC_RGMII is not set
539# CONFIG_IBM_NEW_EMAC_TAH is not set
540# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
541# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
542# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
543# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
544# CONFIG_NET_PCI is not set
545# CONFIG_B44 is not set
546# CONFIG_ATL2 is not set
547CONFIG_NETDEV_1000=y
548# CONFIG_ACENIC is not set
549# CONFIG_DL2K is not set
550# CONFIG_E1000 is not set
551# CONFIG_E1000E is not set
552# CONFIG_IP1000 is not set
553# CONFIG_IGB is not set
554# CONFIG_NS83820 is not set
555# CONFIG_HAMACHI is not set
556# CONFIG_YELLOWFIN is not set
557# CONFIG_R8169 is not set
558# CONFIG_SIS190 is not set
559# CONFIG_SKGE is not set
560# CONFIG_SKY2 is not set
561# CONFIG_VIA_VELOCITY is not set
562# CONFIG_TIGON3 is not set
563# CONFIG_BNX2 is not set
564# CONFIG_QLA3XXX is not set
565# CONFIG_ATL1 is not set
566# CONFIG_ATL1E is not set
567# CONFIG_JME is not set
568# CONFIG_NETDEV_10000 is not set
569# CONFIG_TR is not set
570
571#
572# Wireless LAN
573#
574# CONFIG_WLAN_PRE80211 is not set
575# CONFIG_WLAN_80211 is not set
576# CONFIG_IWLWIFI_LEDS is not set
577# CONFIG_WAN is not set
578# CONFIG_FDDI is not set
579# CONFIG_HIPPI is not set
580# CONFIG_PPP is not set
581# CONFIG_SLIP is not set
582# CONFIG_NETCONSOLE is not set
583# CONFIG_NETPOLL is not set
584# CONFIG_NET_POLL_CONTROLLER is not set
585# CONFIG_ISDN is not set
586# CONFIG_PHONE is not set
587
588#
589# Input device support
590#
591CONFIG_INPUT=y
592# CONFIG_INPUT_FF_MEMLESS is not set
593# CONFIG_INPUT_POLLDEV is not set
594
595#
596# Userland interfaces
597#
598CONFIG_INPUT_MOUSEDEV=y
599CONFIG_INPUT_MOUSEDEV_PSAUX=y
600CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
601CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
602# CONFIG_INPUT_JOYDEV is not set
603# CONFIG_INPUT_EVDEV is not set
604# CONFIG_INPUT_EVBUG is not set
605
606#
607# Input Device Drivers
608#
609CONFIG_INPUT_KEYBOARD=y
610CONFIG_KEYBOARD_ATKBD=y
611# CONFIG_KEYBOARD_SUNKBD is not set
612# CONFIG_KEYBOARD_LKKBD is not set
613# CONFIG_KEYBOARD_XTKBD is not set
614# CONFIG_KEYBOARD_NEWTON is not set
615# CONFIG_KEYBOARD_STOWAWAY is not set
616# CONFIG_KEYBOARD_GPIO is not set
617CONFIG_INPUT_MOUSE=y
618CONFIG_MOUSE_PS2=y
619CONFIG_MOUSE_PS2_ALPS=y
620CONFIG_MOUSE_PS2_LOGIPS2PP=y
621CONFIG_MOUSE_PS2_SYNAPTICS=y
622CONFIG_MOUSE_PS2_LIFEBOOK=y
623CONFIG_MOUSE_PS2_TRACKPOINT=y
624# CONFIG_MOUSE_PS2_ELANTECH is not set
625# CONFIG_MOUSE_PS2_TOUCHKIT is not set
626# CONFIG_MOUSE_SERIAL is not set
627# CONFIG_MOUSE_VSXXXAA is not set
628# CONFIG_MOUSE_GPIO is not set
629# CONFIG_INPUT_JOYSTICK is not set
630# CONFIG_INPUT_TABLET is not set
631# CONFIG_INPUT_TOUCHSCREEN is not set
632# CONFIG_INPUT_MISC is not set
633
634#
635# Hardware I/O ports
636#
637CONFIG_SERIO=y
638# CONFIG_SERIO_I8042 is not set
639# CONFIG_SERIO_SERPORT is not set
640# CONFIG_SERIO_PCIPS2 is not set
641CONFIG_SERIO_LIBPS2=y
642# CONFIG_SERIO_RAW is not set
643CONFIG_SERIO_XILINX_XPS_PS2=y
644# CONFIG_GAMEPORT is not set
645
646#
647# Character devices
648#
649CONFIG_VT=y
650CONFIG_CONSOLE_TRANSLATIONS=y
651CONFIG_VT_CONSOLE=y
652CONFIG_HW_CONSOLE=y
653# CONFIG_VT_HW_CONSOLE_BINDING is not set
654CONFIG_DEVKMEM=y
655# CONFIG_SERIAL_NONSTANDARD is not set
656# CONFIG_NOZOMI is not set
657
658#
659# Serial drivers
660#
661CONFIG_SERIAL_8250=y
662CONFIG_SERIAL_8250_CONSOLE=y
663CONFIG_SERIAL_8250_PCI=y
664CONFIG_SERIAL_8250_NR_UARTS=4
665CONFIG_SERIAL_8250_RUNTIME_UARTS=4
666# CONFIG_SERIAL_8250_EXTENDED is not set
667
668#
669# Non-8250 serial port support
670#
671CONFIG_SERIAL_UARTLITE=y
672CONFIG_SERIAL_UARTLITE_CONSOLE=y
673CONFIG_SERIAL_CORE=y
674CONFIG_SERIAL_CORE_CONSOLE=y
675# CONFIG_SERIAL_JSM is not set
676# CONFIG_SERIAL_OF_PLATFORM is not set
677CONFIG_UNIX98_PTYS=y
678CONFIG_LEGACY_PTYS=y
679CONFIG_LEGACY_PTY_COUNT=256
680# CONFIG_IPMI_HANDLER is not set
681CONFIG_HW_RANDOM=m
682# CONFIG_NVRAM is not set
683# CONFIG_GEN_RTC is not set
684CONFIG_XILINX_HWICAP=y
685# CONFIG_R3964 is not set
686# CONFIG_APPLICOM is not set
687# CONFIG_RAW_DRIVER is not set
688# CONFIG_TCG_TPM is not set
689CONFIG_DEVPORT=y
690# CONFIG_I2C is not set
691# CONFIG_SPI is not set
692CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
693CONFIG_GPIOLIB=y
694# CONFIG_DEBUG_GPIO is not set
695CONFIG_GPIO_SYSFS=y
696
697#
698# Memory mapped GPIO expanders:
699#
700CONFIG_GPIO_XILINX=y
701
702#
703# I2C GPIO expanders:
704#
705
706#
707# PCI GPIO expanders:
708#
709# CONFIG_GPIO_BT8XX is not set
710
711#
712# SPI GPIO expanders:
713#
714# CONFIG_W1 is not set
715# CONFIG_POWER_SUPPLY is not set
716# CONFIG_HWMON is not set
717# CONFIG_THERMAL is not set
718# CONFIG_THERMAL_HWMON is not set
719# CONFIG_WATCHDOG is not set
720CONFIG_SSB_POSSIBLE=y
721
722#
723# Sonics Silicon Backplane
724#
725# CONFIG_SSB is not set
726
727#
728# Multifunction device drivers
729#
730# CONFIG_MFD_CORE is not set
731# CONFIG_MFD_SM501 is not set
732# CONFIG_HTC_PASIC3 is not set
733# CONFIG_MFD_TMIO is not set
734# CONFIG_REGULATOR is not set
735
736#
737# Multimedia devices
738#
739
740#
741# Multimedia core support
742#
743# CONFIG_VIDEO_DEV is not set
744# CONFIG_DVB_CORE is not set
745# CONFIG_VIDEO_MEDIA is not set
746
747#
748# Multimedia drivers
749#
750# CONFIG_DAB is not set
751
752#
753# Graphics support
754#
755# CONFIG_AGP is not set
756# CONFIG_DRM is not set
757# CONFIG_VGASTATE is not set
758# CONFIG_VIDEO_OUTPUT_CONTROL is not set
759CONFIG_FB=y
760# CONFIG_FIRMWARE_EDID is not set
761# CONFIG_FB_DDC is not set
762# CONFIG_FB_BOOT_VESA_SUPPORT is not set
763CONFIG_FB_CFB_FILLRECT=y
764CONFIG_FB_CFB_COPYAREA=y
765CONFIG_FB_CFB_IMAGEBLIT=y
766# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
767# CONFIG_FB_SYS_FILLRECT is not set
768# CONFIG_FB_SYS_COPYAREA is not set
769# CONFIG_FB_SYS_IMAGEBLIT is not set
770# CONFIG_FB_FOREIGN_ENDIAN is not set
771# CONFIG_FB_SYS_FOPS is not set
772# CONFIG_FB_SVGALIB is not set
773# CONFIG_FB_MACMODES is not set
774# CONFIG_FB_BACKLIGHT is not set
775# CONFIG_FB_MODE_HELPERS is not set
776# CONFIG_FB_TILEBLITTING is not set
777
778#
779# Frame buffer hardware drivers
780#
781# CONFIG_FB_CIRRUS is not set
782# CONFIG_FB_PM2 is not set
783# CONFIG_FB_CYBER2000 is not set
784# CONFIG_FB_OF is not set
785# CONFIG_FB_CT65550 is not set
786# CONFIG_FB_ASILIANT is not set
787# CONFIG_FB_IMSTT is not set
788# CONFIG_FB_VGA16 is not set
789# CONFIG_FB_S1D13XXX is not set
790# CONFIG_FB_NVIDIA is not set
791# CONFIG_FB_RIVA is not set
792# CONFIG_FB_MATROX is not set
793# CONFIG_FB_RADEON is not set
794# CONFIG_FB_ATY128 is not set
795# CONFIG_FB_ATY is not set
796# CONFIG_FB_S3 is not set
797# CONFIG_FB_SAVAGE is not set
798# CONFIG_FB_SIS is not set
799# CONFIG_FB_VIA is not set
800# CONFIG_FB_NEOMAGIC is not set
801# CONFIG_FB_KYRO is not set
802# CONFIG_FB_3DFX is not set
803# CONFIG_FB_VOODOO1 is not set
804# CONFIG_FB_VT8623 is not set
805# CONFIG_FB_TRIDENT is not set
806# CONFIG_FB_ARK is not set
807# CONFIG_FB_PM3 is not set
808# CONFIG_FB_CARMINE is not set
809# CONFIG_FB_IBM_GXT4500 is not set
810CONFIG_FB_XILINX=y
811# CONFIG_FB_VIRTUAL is not set
812# CONFIG_FB_METRONOME is not set
813# CONFIG_FB_MB862XX is not set
814# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
815
816#
817# Display device support
818#
819# CONFIG_DISPLAY_SUPPORT is not set
820
821#
822# Console display driver support
823#
824CONFIG_DUMMY_CONSOLE=y
825CONFIG_FRAMEBUFFER_CONSOLE=y
826# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
827# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
828CONFIG_FONTS=y
829CONFIG_FONT_8x8=y
830CONFIG_FONT_8x16=y
831# CONFIG_FONT_6x11 is not set
832# CONFIG_FONT_7x14 is not set
833# CONFIG_FONT_PEARL_8x8 is not set
834# CONFIG_FONT_ACORN_8x8 is not set
835# CONFIG_FONT_MINI_4x6 is not set
836# CONFIG_FONT_SUN8x16 is not set
837# CONFIG_FONT_SUN12x22 is not set
838# CONFIG_FONT_10x18 is not set
839CONFIG_LOGO=y
840CONFIG_LOGO_LINUX_MONO=y
841CONFIG_LOGO_LINUX_VGA16=y
842CONFIG_LOGO_LINUX_CLUT224=y
843# CONFIG_SOUND is not set
844# CONFIG_HID_SUPPORT is not set
845# CONFIG_USB_SUPPORT is not set
846# CONFIG_UWB is not set
847# CONFIG_MMC is not set
848# CONFIG_MEMSTICK is not set
849# CONFIG_NEW_LEDS is not set
850# CONFIG_ACCESSIBILITY is not set
851# CONFIG_INFINIBAND is not set
852# CONFIG_EDAC is not set
853# CONFIG_RTC_CLASS is not set
854# CONFIG_DMADEVICES is not set
855# CONFIG_UIO is not set
856# CONFIG_STAGING is not set
857CONFIG_STAGING_EXCLUDE_BUILD=y
858
859#
860# File systems
861#
862CONFIG_EXT2_FS=y
863# CONFIG_EXT2_FS_XATTR is not set
864# CONFIG_EXT2_FS_XIP is not set
865# CONFIG_EXT3_FS is not set
866# CONFIG_EXT4_FS is not set
867# CONFIG_REISERFS_FS is not set
868# CONFIG_JFS_FS is not set
869# CONFIG_FS_POSIX_ACL is not set
870CONFIG_FILE_LOCKING=y
871# CONFIG_XFS_FS is not set
872# CONFIG_OCFS2_FS is not set
873CONFIG_DNOTIFY=y
874CONFIG_INOTIFY=y
875CONFIG_INOTIFY_USER=y
876# CONFIG_QUOTA is not set
877CONFIG_AUTOFS_FS=y
878CONFIG_AUTOFS4_FS=y
879# CONFIG_FUSE_FS is not set
880
881#
882# CD-ROM/DVD Filesystems
883#
884# CONFIG_ISO9660_FS is not set
885# CONFIG_UDF_FS is not set
886
887#
888# DOS/FAT/NT Filesystems
889#
890CONFIG_FAT_FS=y
891CONFIG_MSDOS_FS=y
892CONFIG_VFAT_FS=y
893CONFIG_FAT_DEFAULT_CODEPAGE=437
894CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
895# CONFIG_NTFS_FS is not set
896
897#
898# Pseudo filesystems
899#
900CONFIG_PROC_FS=y
901# CONFIG_PROC_KCORE is not set
902CONFIG_PROC_SYSCTL=y
903CONFIG_PROC_PAGE_MONITOR=y
904CONFIG_SYSFS=y
905CONFIG_TMPFS=y
906# CONFIG_TMPFS_POSIX_ACL is not set
907# CONFIG_HUGETLB_PAGE is not set
908# CONFIG_CONFIGFS_FS is not set
909
910#
911# Miscellaneous filesystems
912#
913# CONFIG_ADFS_FS is not set
914# CONFIG_AFFS_FS is not set
915# CONFIG_HFS_FS is not set
916# CONFIG_HFSPLUS_FS is not set
917# CONFIG_BEFS_FS is not set
918# CONFIG_BFS_FS is not set
919# CONFIG_EFS_FS is not set
920CONFIG_CRAMFS=y
921# CONFIG_VXFS_FS is not set
922# CONFIG_MINIX_FS is not set
923# CONFIG_OMFS_FS is not set
924# CONFIG_HPFS_FS is not set
925# CONFIG_QNX4FS_FS is not set
926CONFIG_ROMFS_FS=y
927# CONFIG_SYSV_FS is not set
928# CONFIG_UFS_FS is not set
929CONFIG_NETWORK_FILESYSTEMS=y
930CONFIG_NFS_FS=y
931CONFIG_NFS_V3=y
932# CONFIG_NFS_V3_ACL is not set
933# CONFIG_NFS_V4 is not set
934CONFIG_ROOT_NFS=y
935# CONFIG_NFSD is not set
936CONFIG_LOCKD=y
937CONFIG_LOCKD_V4=y
938CONFIG_NFS_COMMON=y
939CONFIG_SUNRPC=y
940# CONFIG_SUNRPC_REGISTER_V4 is not set
941# CONFIG_RPCSEC_GSS_KRB5 is not set
942# CONFIG_RPCSEC_GSS_SPKM3 is not set
943# CONFIG_SMB_FS is not set
944# CONFIG_CIFS is not set
945# CONFIG_NCP_FS is not set
946# CONFIG_CODA_FS is not set
947# CONFIG_AFS_FS is not set
948
949#
950# Partition Types
951#
952# CONFIG_PARTITION_ADVANCED is not set
953CONFIG_MSDOS_PARTITION=y
954CONFIG_NLS=y
955CONFIG_NLS_DEFAULT="iso8859-1"
956CONFIG_NLS_CODEPAGE_437=y
957# CONFIG_NLS_CODEPAGE_737 is not set
958# CONFIG_NLS_CODEPAGE_775 is not set
959# CONFIG_NLS_CODEPAGE_850 is not set
960# CONFIG_NLS_CODEPAGE_852 is not set
961# CONFIG_NLS_CODEPAGE_855 is not set
962# CONFIG_NLS_CODEPAGE_857 is not set
963# CONFIG_NLS_CODEPAGE_860 is not set
964# CONFIG_NLS_CODEPAGE_861 is not set
965# CONFIG_NLS_CODEPAGE_862 is not set
966# CONFIG_NLS_CODEPAGE_863 is not set
967# CONFIG_NLS_CODEPAGE_864 is not set
968# CONFIG_NLS_CODEPAGE_865 is not set
969# CONFIG_NLS_CODEPAGE_866 is not set
970# CONFIG_NLS_CODEPAGE_869 is not set
971# CONFIG_NLS_CODEPAGE_936 is not set
972# CONFIG_NLS_CODEPAGE_950 is not set
973# CONFIG_NLS_CODEPAGE_932 is not set
974# CONFIG_NLS_CODEPAGE_949 is not set
975# CONFIG_NLS_CODEPAGE_874 is not set
976# CONFIG_NLS_ISO8859_8 is not set
977# CONFIG_NLS_CODEPAGE_1250 is not set
978# CONFIG_NLS_CODEPAGE_1251 is not set
979CONFIG_NLS_ASCII=m
980CONFIG_NLS_ISO8859_1=m
981# CONFIG_NLS_ISO8859_2 is not set
982# CONFIG_NLS_ISO8859_3 is not set
983# CONFIG_NLS_ISO8859_4 is not set
984# CONFIG_NLS_ISO8859_5 is not set
985# CONFIG_NLS_ISO8859_6 is not set
986# CONFIG_NLS_ISO8859_7 is not set
987# CONFIG_NLS_ISO8859_9 is not set
988# CONFIG_NLS_ISO8859_13 is not set
989# CONFIG_NLS_ISO8859_14 is not set
990# CONFIG_NLS_ISO8859_15 is not set
991# CONFIG_NLS_KOI8_R is not set
992# CONFIG_NLS_KOI8_U is not set
993CONFIG_NLS_UTF8=m
994# CONFIG_DLM is not set
995
996#
997# Library routines
998#
999CONFIG_BITREVERSE=y
1000CONFIG_CRC_CCITT=y
1001# CONFIG_CRC16 is not set
1002# CONFIG_CRC_T10DIF is not set
1003# CONFIG_CRC_ITU_T is not set
1004CONFIG_CRC32=y
1005# CONFIG_CRC7 is not set
1006# CONFIG_LIBCRC32C is not set
1007CONFIG_ZLIB_INFLATE=y
1008CONFIG_PLIST=y
1009CONFIG_HAS_IOMEM=y
1010CONFIG_HAS_IOPORT=y
1011CONFIG_HAS_DMA=y
1012CONFIG_HAVE_LMB=y
1013
1014#
1015# Kernel hacking
1016#
1017CONFIG_PRINTK_TIME=y
1018CONFIG_ENABLE_WARN_DEPRECATED=y
1019CONFIG_ENABLE_MUST_CHECK=y
1020CONFIG_FRAME_WARN=1024
1021# CONFIG_MAGIC_SYSRQ is not set
1022# CONFIG_UNUSED_SYMBOLS is not set
1023# CONFIG_DEBUG_FS is not set
1024# CONFIG_HEADERS_CHECK is not set
1025CONFIG_DEBUG_KERNEL=y
1026# CONFIG_DEBUG_SHIRQ is not set
1027CONFIG_DETECT_SOFTLOCKUP=y
1028# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1029CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1030CONFIG_SCHED_DEBUG=y
1031# CONFIG_SCHEDSTATS is not set
1032# CONFIG_TIMER_STATS is not set
1033# CONFIG_DEBUG_OBJECTS is not set
1034# CONFIG_DEBUG_SLAB is not set
1035# CONFIG_DEBUG_RT_MUTEXES is not set
1036# CONFIG_RT_MUTEX_TESTER is not set
1037# CONFIG_DEBUG_SPINLOCK is not set
1038# CONFIG_DEBUG_MUTEXES is not set
1039# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1040# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1041# CONFIG_DEBUG_KOBJECT is not set
1042CONFIG_DEBUG_BUGVERBOSE=y
1043CONFIG_DEBUG_INFO=y
1044# CONFIG_DEBUG_VM is not set
1045# CONFIG_DEBUG_WRITECOUNT is not set
1046CONFIG_DEBUG_MEMORY_INIT=y
1047# CONFIG_DEBUG_LIST is not set
1048# CONFIG_DEBUG_SG is not set
1049# CONFIG_BOOT_PRINTK_DELAY is not set
1050# CONFIG_RCU_TORTURE_TEST is not set
1051# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1052# CONFIG_BACKTRACE_SELF_TEST is not set
1053# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1054# CONFIG_FAULT_INJECTION is not set
1055# CONFIG_LATENCYTOP is not set
1056CONFIG_SYSCTL_SYSCALL_CHECK=y
1057CONFIG_HAVE_FUNCTION_TRACER=y
1058
1059#
1060# Tracers
1061#
1062# CONFIG_FUNCTION_TRACER is not set
1063# CONFIG_PREEMPT_TRACER is not set
1064# CONFIG_SCHED_TRACER is not set
1065# CONFIG_CONTEXT_SWITCH_TRACER is not set
1066# CONFIG_BOOT_TRACER is not set
1067# CONFIG_STACK_TRACER is not set
1068# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1069# CONFIG_SAMPLES is not set
1070CONFIG_HAVE_ARCH_KGDB=y
1071# CONFIG_KGDB is not set
1072# CONFIG_DEBUG_STACKOVERFLOW is not set
1073# CONFIG_DEBUG_STACK_USAGE is not set
1074# CONFIG_DEBUG_PAGEALLOC is not set
1075# CONFIG_CODE_PATCHING_SELFTEST is not set
1076# CONFIG_FTR_FIXUP_SELFTEST is not set
1077# CONFIG_MSI_BITMAP_SELFTEST is not set
1078# CONFIG_XMON is not set
1079# CONFIG_IRQSTACKS is not set
1080# CONFIG_BDI_SWITCH is not set
1081# CONFIG_PPC_EARLY_DEBUG is not set
1082
1083#
1084# Security options
1085#
1086# CONFIG_KEYS is not set
1087# CONFIG_SECURITY is not set
1088# CONFIG_SECURITYFS is not set
1089# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1090CONFIG_CRYPTO=y
1091
1092#
1093# Crypto core or helper
1094#
1095# CONFIG_CRYPTO_FIPS is not set
1096# CONFIG_CRYPTO_MANAGER is not set
1097# CONFIG_CRYPTO_GF128MUL is not set
1098# CONFIG_CRYPTO_NULL is not set
1099# CONFIG_CRYPTO_CRYPTD is not set
1100# CONFIG_CRYPTO_AUTHENC is not set
1101# CONFIG_CRYPTO_TEST is not set
1102
1103#
1104# Authenticated Encryption with Associated Data
1105#
1106# CONFIG_CRYPTO_CCM is not set
1107# CONFIG_CRYPTO_GCM is not set
1108# CONFIG_CRYPTO_SEQIV is not set
1109
1110#
1111# Block modes
1112#
1113# CONFIG_CRYPTO_CBC is not set
1114# CONFIG_CRYPTO_CTR is not set
1115# CONFIG_CRYPTO_CTS is not set
1116# CONFIG_CRYPTO_ECB is not set
1117# CONFIG_CRYPTO_LRW is not set
1118# CONFIG_CRYPTO_PCBC is not set
1119# CONFIG_CRYPTO_XTS is not set
1120
1121#
1122# Hash modes
1123#
1124# CONFIG_CRYPTO_HMAC is not set
1125# CONFIG_CRYPTO_XCBC is not set
1126
1127#
1128# Digest
1129#
1130# CONFIG_CRYPTO_CRC32C is not set
1131# CONFIG_CRYPTO_MD4 is not set
1132# CONFIG_CRYPTO_MD5 is not set
1133# CONFIG_CRYPTO_MICHAEL_MIC is not set
1134# CONFIG_CRYPTO_RMD128 is not set
1135# CONFIG_CRYPTO_RMD160 is not set
1136# CONFIG_CRYPTO_RMD256 is not set
1137# CONFIG_CRYPTO_RMD320 is not set
1138# CONFIG_CRYPTO_SHA1 is not set
1139# CONFIG_CRYPTO_SHA256 is not set
1140# CONFIG_CRYPTO_SHA512 is not set
1141# CONFIG_CRYPTO_TGR192 is not set
1142# CONFIG_CRYPTO_WP512 is not set
1143
1144#
1145# Ciphers
1146#
1147# CONFIG_CRYPTO_AES is not set
1148# CONFIG_CRYPTO_ANUBIS is not set
1149# CONFIG_CRYPTO_ARC4 is not set
1150# CONFIG_CRYPTO_BLOWFISH is not set
1151# CONFIG_CRYPTO_CAMELLIA is not set
1152# CONFIG_CRYPTO_CAST5 is not set
1153# CONFIG_CRYPTO_CAST6 is not set
1154# CONFIG_CRYPTO_DES is not set
1155# CONFIG_CRYPTO_FCRYPT is not set
1156# CONFIG_CRYPTO_KHAZAD is not set
1157# CONFIG_CRYPTO_SALSA20 is not set
1158# CONFIG_CRYPTO_SEED is not set
1159# CONFIG_CRYPTO_SERPENT is not set
1160# CONFIG_CRYPTO_TEA is not set
1161# CONFIG_CRYPTO_TWOFISH is not set
1162
1163#
1164# Compression
1165#
1166# CONFIG_CRYPTO_DEFLATE is not set
1167# CONFIG_CRYPTO_LZO is not set
1168
1169#
1170# Random Number Generation
1171#
1172# CONFIG_CRYPTO_ANSI_CPRNG is not set
1173CONFIG_CRYPTO_HW=y
1174# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1175# CONFIG_PPC_CLOCK is not set
1176# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig
index 663ec512b33b..7513d360e0b0 100644
--- a/arch/powerpc/configs/44x/virtex5_defconfig
+++ b/arch/powerpc/configs/44x/virtex5_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc1 3# Linux kernel version: 2.6.28-rc4
4# Tue Aug 5 09:20:16 2008 4# Fri Nov 14 10:31:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,14 +22,13 @@ CONFIG_PHYS_64BIT=y
22CONFIG_NOT_COHERENT_CACHE=y 22CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y 23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32 24CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y 25CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
26CONFIG_MMU=y 26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 28CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_GET_USER_PAGES_FAST is not set
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
@@ -40,6 +39,7 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
40CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
41CONFIG_GENERIC_CALIBRATE_DELAY=y 40CONFIG_GENERIC_CALIBRATE_DELAY=y
42CONFIG_GENERIC_FIND_NEXT_BIT=y 41CONFIG_GENERIC_FIND_NEXT_BIT=y
42CONFIG_GENERIC_GPIO=y
43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
44CONFIG_PPC=y 44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
@@ -93,8 +93,8 @@ CONFIG_INITRAMFS_SOURCE=""
93CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
94# CONFIG_EMBEDDED is not set 94# CONFIG_EMBEDDED is not set
95CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
97CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 98# CONFIG_KALLSYMS_EXTRA_PASS is not set
99CONFIG_HOTPLUG=y 99CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 100CONFIG_PRINTK=y
@@ -109,7 +109,9 @@ CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 109CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 110CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 111CONFIG_SHMEM=y
112CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 113CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_PCI_QUIRKS=y
113CONFIG_SLAB=y 115CONFIG_SLAB=y
114# CONFIG_SLUB is not set 116# CONFIG_SLUB is not set
115# CONFIG_SLOB is not set 117# CONFIG_SLOB is not set
@@ -122,10 +124,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 126CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
@@ -158,6 +156,7 @@ CONFIG_DEFAULT_CFQ=y
158# CONFIG_DEFAULT_NOOP is not set 156# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="cfq" 157CONFIG_DEFAULT_IOSCHED="cfq"
160CONFIG_CLASSIC_RCU=y 158CONFIG_CLASSIC_RCU=y
159# CONFIG_FREEZER is not set
161# CONFIG_PPC4xx_PCI_EXPRESS is not set 160# CONFIG_PPC4xx_PCI_EXPRESS is not set
162 161
163# 162#
@@ -174,9 +173,13 @@ CONFIG_CLASSIC_RCU=y
174# CONFIG_KATMAI is not set 173# CONFIG_KATMAI is not set
175# CONFIG_RAINIER is not set 174# CONFIG_RAINIER is not set
176# CONFIG_WARP is not set 175# CONFIG_WARP is not set
176# CONFIG_ARCHES is not set
177# CONFIG_CANYONLANDS is not set 177# CONFIG_CANYONLANDS is not set
178# CONFIG_GLACIER is not set
178# CONFIG_YOSEMITE is not set 179# CONFIG_YOSEMITE is not set
179CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y 180CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y
181# CONFIG_PPC44x_SIMPLE is not set
182# CONFIG_PPC4xx_GPIO is not set
180CONFIG_XILINX_VIRTEX=y 183CONFIG_XILINX_VIRTEX=y
181CONFIG_XILINX_VIRTEX_5_FXT=y 184CONFIG_XILINX_VIRTEX_5_FXT=y
182# CONFIG_IPIC is not set 185# CONFIG_IPIC is not set
@@ -196,7 +199,6 @@ CONFIG_XILINX_VIRTEX_5_FXT=y
196# Kernel options 199# Kernel options
197# 200#
198# CONFIG_HIGHMEM is not set 201# CONFIG_HIGHMEM is not set
199# CONFIG_TICK_ONESHOT is not set
200# CONFIG_NO_HZ is not set 202# CONFIG_NO_HZ is not set
201# CONFIG_HIGH_RES_TIMERS is not set 203# CONFIG_HIGH_RES_TIMERS is not set
202CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 204CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -211,6 +213,8 @@ CONFIG_HZ=250
211CONFIG_PREEMPT=y 213CONFIG_PREEMPT=y
212# CONFIG_PREEMPT_RCU is not set 214# CONFIG_PREEMPT_RCU is not set
213CONFIG_BINFMT_ELF=y 215CONFIG_BINFMT_ELF=y
216# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
217# CONFIG_HAVE_AOUT is not set
214# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
215CONFIG_MATH_EMULATION=y 219CONFIG_MATH_EMULATION=y
216# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
@@ -225,15 +229,15 @@ CONFIG_FLATMEM_MANUAL=y
225# CONFIG_SPARSEMEM_MANUAL is not set 229# CONFIG_SPARSEMEM_MANUAL is not set
226CONFIG_FLATMEM=y 230CONFIG_FLATMEM=y
227CONFIG_FLAT_NODE_MEM_MAP=y 231CONFIG_FLAT_NODE_MEM_MAP=y
228# CONFIG_SPARSEMEM_STATIC is not set
229# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
230CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 234CONFIG_MIGRATION=y
233CONFIG_RESOURCES_64BIT=y 235CONFIG_RESOURCES_64BIT=y
236CONFIG_PHYS_ADDR_T_64BIT=y
234CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y
237CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
239CONFIG_CMDLINE_BOOL=y 243CONFIG_CMDLINE_BOOL=y
@@ -256,6 +260,7 @@ CONFIG_PCI_SYSCALL=y
256CONFIG_ARCH_SUPPORTS_MSI=y 260CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 261# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 262CONFIG_PCI_LEGACY=y
263# CONFIG_PCI_DEBUG is not set
259# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
260# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
261# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -317,7 +322,6 @@ CONFIG_INET_TCP_DIAG=y
317CONFIG_TCP_CONG_CUBIC=y 322CONFIG_TCP_CONG_CUBIC=y
318CONFIG_DEFAULT_TCP_CONG="cubic" 323CONFIG_DEFAULT_TCP_CONG="cubic"
319# CONFIG_TCP_MD5SIG is not set 324# CONFIG_TCP_MD5SIG is not set
320# CONFIG_IP_VS is not set
321CONFIG_IPV6=m 325CONFIG_IPV6=m
322# CONFIG_IPV6_PRIVACY is not set 326# CONFIG_IPV6_PRIVACY is not set
323# CONFIG_IPV6_ROUTER_PREF is not set 327# CONFIG_IPV6_ROUTER_PREF is not set
@@ -352,8 +356,8 @@ CONFIG_NETFILTER_XTABLES=m
352# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 356# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
353# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 357# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
354# CONFIG_NETFILTER_XT_TARGET_MARK is not set 358# CONFIG_NETFILTER_XT_TARGET_MARK is not set
355# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
356# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 359# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
360# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
357# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set 361# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
358# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 362# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
359# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set 363# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
@@ -361,36 +365,38 @@ CONFIG_NETFILTER_XTABLES=m
361# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 365# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
362# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 366# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
363# CONFIG_NETFILTER_XT_MATCH_ESP is not set 367# CONFIG_NETFILTER_XT_MATCH_ESP is not set
368# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
364# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 369# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
365# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 370# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
366# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 371# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
367# CONFIG_NETFILTER_XT_MATCH_MAC is not set 372# CONFIG_NETFILTER_XT_MATCH_MAC is not set
368# CONFIG_NETFILTER_XT_MATCH_MARK is not set 373# CONFIG_NETFILTER_XT_MATCH_MARK is not set
374# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
369# CONFIG_NETFILTER_XT_MATCH_OWNER is not set 375# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
370# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 376# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
371# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
372# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set 377# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
373# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 378# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
374# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set 379# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
375# CONFIG_NETFILTER_XT_MATCH_REALM is not set 380# CONFIG_NETFILTER_XT_MATCH_REALM is not set
381# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
376# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 382# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
377# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 383# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
378# CONFIG_NETFILTER_XT_MATCH_STRING is not set 384# CONFIG_NETFILTER_XT_MATCH_STRING is not set
379# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 385# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
380# CONFIG_NETFILTER_XT_MATCH_TIME is not set 386# CONFIG_NETFILTER_XT_MATCH_TIME is not set
381# CONFIG_NETFILTER_XT_MATCH_U32 is not set 387# CONFIG_NETFILTER_XT_MATCH_U32 is not set
382# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 388# CONFIG_IP_VS is not set
383 389
384# 390#
385# IP: Netfilter Configuration 391# IP: Netfilter Configuration
386# 392#
393# CONFIG_NF_DEFRAG_IPV4 is not set
387# CONFIG_IP_NF_QUEUE is not set 394# CONFIG_IP_NF_QUEUE is not set
388CONFIG_IP_NF_IPTABLES=m 395CONFIG_IP_NF_IPTABLES=m
389# CONFIG_IP_NF_MATCH_RECENT is not set 396# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
390# CONFIG_IP_NF_MATCH_ECN is not set
391# CONFIG_IP_NF_MATCH_AH is not set 397# CONFIG_IP_NF_MATCH_AH is not set
398# CONFIG_IP_NF_MATCH_ECN is not set
392# CONFIG_IP_NF_MATCH_TTL is not set 399# CONFIG_IP_NF_MATCH_TTL is not set
393# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
394CONFIG_IP_NF_FILTER=m 400CONFIG_IP_NF_FILTER=m
395# CONFIG_IP_NF_TARGET_REJECT is not set 401# CONFIG_IP_NF_TARGET_REJECT is not set
396# CONFIG_IP_NF_TARGET_LOG is not set 402# CONFIG_IP_NF_TARGET_LOG is not set
@@ -411,6 +417,7 @@ CONFIG_IP_NF_MANGLE=m
411# CONFIG_TIPC is not set 417# CONFIG_TIPC is not set
412# CONFIG_ATM is not set 418# CONFIG_ATM is not set
413# CONFIG_BRIDGE is not set 419# CONFIG_BRIDGE is not set
420# CONFIG_NET_DSA is not set
414# CONFIG_VLAN_8021Q is not set 421# CONFIG_VLAN_8021Q is not set
415# CONFIG_DECNET is not set 422# CONFIG_DECNET is not set
416# CONFIG_LLC2 is not set 423# CONFIG_LLC2 is not set
@@ -431,11 +438,10 @@ CONFIG_IP_NF_MANGLE=m
431# CONFIG_IRDA is not set 438# CONFIG_IRDA is not set
432# CONFIG_BT is not set 439# CONFIG_BT is not set
433# CONFIG_AF_RXRPC is not set 440# CONFIG_AF_RXRPC is not set
434 441# CONFIG_PHONET is not set
435# 442CONFIG_WIRELESS=y
436# Wireless
437#
438# CONFIG_CFG80211 is not set 443# CONFIG_CFG80211 is not set
444CONFIG_WIRELESS_OLD_REGULATORY=y
439# CONFIG_WIRELESS_EXT is not set 445# CONFIG_WIRELESS_EXT is not set
440# CONFIG_MAC80211 is not set 446# CONFIG_MAC80211 is not set
441# CONFIG_IEEE80211 is not set 447# CONFIG_IEEE80211 is not set
@@ -455,11 +461,13 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
455CONFIG_FW_LOADER=y 461CONFIG_FW_LOADER=y
456CONFIG_FIRMWARE_IN_KERNEL=y 462CONFIG_FIRMWARE_IN_KERNEL=y
457CONFIG_EXTRA_FIRMWARE="" 463CONFIG_EXTRA_FIRMWARE=""
464# CONFIG_DEBUG_DRIVER is not set
465# CONFIG_DEBUG_DEVRES is not set
458# CONFIG_SYS_HYPERVISOR is not set 466# CONFIG_SYS_HYPERVISOR is not set
459# CONFIG_CONNECTOR is not set 467# CONFIG_CONNECTOR is not set
460# CONFIG_MTD is not set 468# CONFIG_MTD is not set
461CONFIG_OF_DEVICE=y 469CONFIG_OF_DEVICE=y
462CONFIG_OF_I2C=y 470CONFIG_OF_GPIO=y
463# CONFIG_PARPORT is not set 471# CONFIG_PARPORT is not set
464CONFIG_BLK_DEV=y 472CONFIG_BLK_DEV=y
465# CONFIG_BLK_DEV_FD is not set 473# CONFIG_BLK_DEV_FD is not set
@@ -478,7 +486,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
478# CONFIG_BLK_DEV_XIP is not set 486# CONFIG_BLK_DEV_XIP is not set
479# CONFIG_CDROM_PKTCDVD is not set 487# CONFIG_CDROM_PKTCDVD is not set
480# CONFIG_ATA_OVER_ETH is not set 488# CONFIG_ATA_OVER_ETH is not set
481# CONFIG_XILINX_SYSACE is not set 489CONFIG_XILINX_SYSACE=y
482# CONFIG_BLK_DEV_HD is not set 490# CONFIG_BLK_DEV_HD is not set
483CONFIG_MISC_DEVICES=y 491CONFIG_MISC_DEVICES=y
484# CONFIG_PHANTOM is not set 492# CONFIG_PHANTOM is not set
@@ -487,6 +495,7 @@ CONFIG_MISC_DEVICES=y
487# CONFIG_TIFM_CORE is not set 495# CONFIG_TIFM_CORE is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 496# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 497# CONFIG_HP_ILO is not set
498# CONFIG_C2PORT is not set
490CONFIG_HAVE_IDE=y 499CONFIG_HAVE_IDE=y
491# CONFIG_IDE is not set 500# CONFIG_IDE is not set
492 501
@@ -534,8 +543,12 @@ CONFIG_MII=y
534# CONFIG_IBM_NEW_EMAC_RGMII is not set 543# CONFIG_IBM_NEW_EMAC_RGMII is not set
535# CONFIG_IBM_NEW_EMAC_TAH is not set 544# CONFIG_IBM_NEW_EMAC_TAH is not set
536# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 545# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
546# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
547# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
548# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
537# CONFIG_NET_PCI is not set 549# CONFIG_NET_PCI is not set
538# CONFIG_B44 is not set 550# CONFIG_B44 is not set
551# CONFIG_ATL2 is not set
539CONFIG_NETDEV_1000=y 552CONFIG_NETDEV_1000=y
540# CONFIG_ACENIC is not set 553# CONFIG_ACENIC is not set
541# CONFIG_DL2K is not set 554# CONFIG_DL2K is not set
@@ -556,6 +569,7 @@ CONFIG_NETDEV_1000=y
556# CONFIG_QLA3XXX is not set 569# CONFIG_QLA3XXX is not set
557# CONFIG_ATL1 is not set 570# CONFIG_ATL1 is not set
558# CONFIG_ATL1E is not set 571# CONFIG_ATL1E is not set
572# CONFIG_JME is not set
559# CONFIG_NETDEV_10000 is not set 573# CONFIG_NETDEV_10000 is not set
560# CONFIG_TR is not set 574# CONFIG_TR is not set
561 575
@@ -604,6 +618,7 @@ CONFIG_KEYBOARD_ATKBD=y
604# CONFIG_KEYBOARD_XTKBD is not set 618# CONFIG_KEYBOARD_XTKBD is not set
605# CONFIG_KEYBOARD_NEWTON is not set 619# CONFIG_KEYBOARD_NEWTON is not set
606# CONFIG_KEYBOARD_STOWAWAY is not set 620# CONFIG_KEYBOARD_STOWAWAY is not set
621# CONFIG_KEYBOARD_GPIO is not set
607CONFIG_INPUT_MOUSE=y 622CONFIG_INPUT_MOUSE=y
608CONFIG_MOUSE_PS2=y 623CONFIG_MOUSE_PS2=y
609CONFIG_MOUSE_PS2_ALPS=y 624CONFIG_MOUSE_PS2_ALPS=y
@@ -611,9 +626,11 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
611CONFIG_MOUSE_PS2_SYNAPTICS=y 626CONFIG_MOUSE_PS2_SYNAPTICS=y
612CONFIG_MOUSE_PS2_LIFEBOOK=y 627CONFIG_MOUSE_PS2_LIFEBOOK=y
613CONFIG_MOUSE_PS2_TRACKPOINT=y 628CONFIG_MOUSE_PS2_TRACKPOINT=y
629# CONFIG_MOUSE_PS2_ELANTECH is not set
614# CONFIG_MOUSE_PS2_TOUCHKIT is not set 630# CONFIG_MOUSE_PS2_TOUCHKIT is not set
615# CONFIG_MOUSE_SERIAL is not set 631# CONFIG_MOUSE_SERIAL is not set
616# CONFIG_MOUSE_VSXXXAA is not set 632# CONFIG_MOUSE_VSXXXAA is not set
633# CONFIG_MOUSE_GPIO is not set
617# CONFIG_INPUT_JOYSTICK is not set 634# CONFIG_INPUT_JOYSTICK is not set
618# CONFIG_INPUT_TABLET is not set 635# CONFIG_INPUT_TABLET is not set
619# CONFIG_INPUT_TOUCHSCREEN is not set 636# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -624,11 +641,11 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
624# 641#
625CONFIG_SERIO=y 642CONFIG_SERIO=y
626# CONFIG_SERIO_I8042 is not set 643# CONFIG_SERIO_I8042 is not set
627CONFIG_SERIO_SERPORT=y 644# CONFIG_SERIO_SERPORT is not set
628# CONFIG_SERIO_PCIPS2 is not set 645# CONFIG_SERIO_PCIPS2 is not set
629CONFIG_SERIO_LIBPS2=y 646CONFIG_SERIO_LIBPS2=y
630# CONFIG_SERIO_RAW is not set 647# CONFIG_SERIO_RAW is not set
631# CONFIG_SERIO_XILINX_XPS_PS2 is not set 648CONFIG_SERIO_XILINX_XPS_PS2=y
632# CONFIG_GAMEPORT is not set 649# CONFIG_GAMEPORT is not set
633 650
634# 651#
@@ -656,11 +673,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
656# 673#
657# Non-8250 serial port support 674# Non-8250 serial port support
658# 675#
659# CONFIG_SERIAL_UARTLITE is not set 676CONFIG_SERIAL_UARTLITE=y
677CONFIG_SERIAL_UARTLITE_CONSOLE=y
660CONFIG_SERIAL_CORE=y 678CONFIG_SERIAL_CORE=y
661CONFIG_SERIAL_CORE_CONSOLE=y 679CONFIG_SERIAL_CORE_CONSOLE=y
662# CONFIG_SERIAL_JSM is not set 680# CONFIG_SERIAL_JSM is not set
663CONFIG_SERIAL_OF_PLATFORM=y 681# CONFIG_SERIAL_OF_PLATFORM is not set
664CONFIG_UNIX98_PTYS=y 682CONFIG_UNIX98_PTYS=y
665CONFIG_LEGACY_PTYS=y 683CONFIG_LEGACY_PTYS=y
666CONFIG_LEGACY_PTY_COUNT=256 684CONFIG_LEGACY_PTY_COUNT=256
@@ -674,87 +692,41 @@ CONFIG_XILINX_HWICAP=y
674# CONFIG_RAW_DRIVER is not set 692# CONFIG_RAW_DRIVER is not set
675# CONFIG_TCG_TPM is not set 693# CONFIG_TCG_TPM is not set
676CONFIG_DEVPORT=y 694CONFIG_DEVPORT=y
677CONFIG_I2C=y 695# CONFIG_I2C is not set
678CONFIG_I2C_BOARDINFO=y 696# CONFIG_SPI is not set
679CONFIG_I2C_CHARDEV=y 697CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
680 698CONFIG_GPIOLIB=y
681# 699# CONFIG_DEBUG_GPIO is not set
682# I2C Hardware Bus support 700CONFIG_GPIO_SYSFS=y
683#
684
685#
686# PC SMBus host controller drivers
687#
688# CONFIG_I2C_ALI1535 is not set
689# CONFIG_I2C_ALI1563 is not set
690# CONFIG_I2C_ALI15X3 is not set
691# CONFIG_I2C_AMD756 is not set
692# CONFIG_I2C_AMD8111 is not set
693# CONFIG_I2C_I801 is not set
694# CONFIG_I2C_ISCH is not set
695# CONFIG_I2C_PIIX4 is not set
696# CONFIG_I2C_NFORCE2 is not set
697# CONFIG_I2C_SIS5595 is not set
698# CONFIG_I2C_SIS630 is not set
699# CONFIG_I2C_SIS96X is not set
700# CONFIG_I2C_VIA is not set
701# CONFIG_I2C_VIAPRO is not set
702 701
703# 702#
704# I2C system bus drivers (mostly embedded / system-on-chip) 703# Memory mapped GPIO expanders:
705# 704#
706# CONFIG_I2C_IBM_IIC is not set 705CONFIG_GPIO_XILINX=y
707# CONFIG_I2C_MPC is not set
708# CONFIG_I2C_OCORES is not set
709# CONFIG_I2C_SIMTEC is not set
710 706
711# 707#
712# External I2C/SMBus adapter drivers 708# I2C GPIO expanders:
713# 709#
714# CONFIG_I2C_PARPORT_LIGHT is not set
715# CONFIG_I2C_TAOS_EVM is not set
716 710
717# 711#
718# Graphics adapter I2C/DDC channel drivers 712# PCI GPIO expanders:
719# 713#
720# CONFIG_I2C_VOODOO3 is not set 714# CONFIG_GPIO_BT8XX is not set
721 715
722# 716#
723# Other I2C/SMBus bus drivers 717# SPI GPIO expanders:
724# 718#
725# CONFIG_I2C_PCA_PLATFORM is not set
726# CONFIG_I2C_STUB is not set
727
728#
729# Miscellaneous I2C Chip support
730#
731# CONFIG_DS1682 is not set
732# CONFIG_AT24 is not set
733# CONFIG_SENSORS_EEPROM is not set
734# CONFIG_SENSORS_PCF8574 is not set
735# CONFIG_PCF8575 is not set
736# CONFIG_SENSORS_PCA9539 is not set
737# CONFIG_SENSORS_PCF8591 is not set
738# CONFIG_SENSORS_MAX6875 is not set
739# CONFIG_SENSORS_TSL2550 is not set
740CONFIG_I2C_DEBUG_CORE=y
741CONFIG_I2C_DEBUG_ALGO=y
742# CONFIG_I2C_DEBUG_BUS is not set
743# CONFIG_I2C_DEBUG_CHIP is not set
744# CONFIG_SPI is not set
745CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
746# CONFIG_GPIOLIB is not set
747# CONFIG_W1 is not set 719# CONFIG_W1 is not set
748# CONFIG_POWER_SUPPLY is not set 720# CONFIG_POWER_SUPPLY is not set
749# CONFIG_HWMON is not set 721# CONFIG_HWMON is not set
750# CONFIG_THERMAL is not set 722# CONFIG_THERMAL is not set
751# CONFIG_THERMAL_HWMON is not set 723# CONFIG_THERMAL_HWMON is not set
752# CONFIG_WATCHDOG is not set 724# CONFIG_WATCHDOG is not set
725CONFIG_SSB_POSSIBLE=y
753 726
754# 727#
755# Sonics Silicon Backplane 728# Sonics Silicon Backplane
756# 729#
757CONFIG_SSB_POSSIBLE=y
758# CONFIG_SSB is not set 730# CONFIG_SSB is not set
759 731
760# 732#
@@ -763,6 +735,8 @@ CONFIG_SSB_POSSIBLE=y
763# CONFIG_MFD_CORE is not set 735# CONFIG_MFD_CORE is not set
764# CONFIG_MFD_SM501 is not set 736# CONFIG_MFD_SM501 is not set
765# CONFIG_HTC_PASIC3 is not set 737# CONFIG_HTC_PASIC3 is not set
738# CONFIG_MFD_TMIO is not set
739# CONFIG_REGULATOR is not set
766 740
767# 741#
768# Multimedia devices 742# Multimedia devices
@@ -790,6 +764,7 @@ CONFIG_SSB_POSSIBLE=y
790CONFIG_FB=y 764CONFIG_FB=y
791# CONFIG_FIRMWARE_EDID is not set 765# CONFIG_FIRMWARE_EDID is not set
792# CONFIG_FB_DDC is not set 766# CONFIG_FB_DDC is not set
767# CONFIG_FB_BOOT_VESA_SUPPORT is not set
793CONFIG_FB_CFB_FILLRECT=y 768CONFIG_FB_CFB_FILLRECT=y
794CONFIG_FB_CFB_COPYAREA=y 769CONFIG_FB_CFB_COPYAREA=y
795CONFIG_FB_CFB_IMAGEBLIT=y 770CONFIG_FB_CFB_IMAGEBLIT=y
@@ -826,6 +801,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
826# CONFIG_FB_S3 is not set 801# CONFIG_FB_S3 is not set
827# CONFIG_FB_SAVAGE is not set 802# CONFIG_FB_SAVAGE is not set
828# CONFIG_FB_SIS is not set 803# CONFIG_FB_SIS is not set
804# CONFIG_FB_VIA is not set
829# CONFIG_FB_NEOMAGIC is not set 805# CONFIG_FB_NEOMAGIC is not set
830# CONFIG_FB_KYRO is not set 806# CONFIG_FB_KYRO is not set
831# CONFIG_FB_3DFX is not set 807# CONFIG_FB_3DFX is not set
@@ -838,6 +814,8 @@ CONFIG_FB_CFB_IMAGEBLIT=y
838# CONFIG_FB_IBM_GXT4500 is not set 814# CONFIG_FB_IBM_GXT4500 is not set
839CONFIG_FB_XILINX=y 815CONFIG_FB_XILINX=y
840# CONFIG_FB_VIRTUAL is not set 816# CONFIG_FB_VIRTUAL is not set
817# CONFIG_FB_METRONOME is not set
818# CONFIG_FB_MB862XX is not set
841# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 819# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
842 820
843# 821#
@@ -870,6 +848,7 @@ CONFIG_LOGO_LINUX_CLUT224=y
870# CONFIG_SOUND is not set 848# CONFIG_SOUND is not set
871# CONFIG_HID_SUPPORT is not set 849# CONFIG_HID_SUPPORT is not set
872# CONFIG_USB_SUPPORT is not set 850# CONFIG_USB_SUPPORT is not set
851# CONFIG_UWB is not set
873# CONFIG_MMC is not set 852# CONFIG_MMC is not set
874# CONFIG_MEMSTICK is not set 853# CONFIG_MEMSTICK is not set
875# CONFIG_NEW_LEDS is not set 854# CONFIG_NEW_LEDS is not set
@@ -879,6 +858,8 @@ CONFIG_LOGO_LINUX_CLUT224=y
879# CONFIG_RTC_CLASS is not set 858# CONFIG_RTC_CLASS is not set
880# CONFIG_DMADEVICES is not set 859# CONFIG_DMADEVICES is not set
881# CONFIG_UIO is not set 860# CONFIG_UIO is not set
861# CONFIG_STAGING is not set
862CONFIG_STAGING_EXCLUDE_BUILD=y
882 863
883# 864#
884# File systems 865# File systems
@@ -887,10 +868,11 @@ CONFIG_EXT2_FS=y
887# CONFIG_EXT2_FS_XATTR is not set 868# CONFIG_EXT2_FS_XATTR is not set
888# CONFIG_EXT2_FS_XIP is not set 869# CONFIG_EXT2_FS_XIP is not set
889# CONFIG_EXT3_FS is not set 870# CONFIG_EXT3_FS is not set
890# CONFIG_EXT4DEV_FS is not set 871# CONFIG_EXT4_FS is not set
891# CONFIG_REISERFS_FS is not set 872# CONFIG_REISERFS_FS is not set
892# CONFIG_JFS_FS is not set 873# CONFIG_JFS_FS is not set
893# CONFIG_FS_POSIX_ACL is not set 874# CONFIG_FS_POSIX_ACL is not set
875CONFIG_FILE_LOCKING=y
894# CONFIG_XFS_FS is not set 876# CONFIG_XFS_FS is not set
895# CONFIG_OCFS2_FS is not set 877# CONFIG_OCFS2_FS is not set
896CONFIG_DNOTIFY=y 878CONFIG_DNOTIFY=y
@@ -899,7 +881,7 @@ CONFIG_INOTIFY_USER=y
899# CONFIG_QUOTA is not set 881# CONFIG_QUOTA is not set
900CONFIG_AUTOFS_FS=y 882CONFIG_AUTOFS_FS=y
901CONFIG_AUTOFS4_FS=y 883CONFIG_AUTOFS4_FS=y
902CONFIG_FUSE_FS=m 884# CONFIG_FUSE_FS is not set
903 885
904# 886#
905# CD-ROM/DVD Filesystems 887# CD-ROM/DVD Filesystems
@@ -923,6 +905,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
923CONFIG_PROC_FS=y 905CONFIG_PROC_FS=y
924# CONFIG_PROC_KCORE is not set 906# CONFIG_PROC_KCORE is not set
925CONFIG_PROC_SYSCTL=y 907CONFIG_PROC_SYSCTL=y
908CONFIG_PROC_PAGE_MONITOR=y
926CONFIG_SYSFS=y 909CONFIG_SYSFS=y
927CONFIG_TMPFS=y 910CONFIG_TMPFS=y
928# CONFIG_TMPFS_POSIX_ACL is not set 911# CONFIG_TMPFS_POSIX_ACL is not set
@@ -954,19 +937,15 @@ CONFIG_NFS_V3=y
954# CONFIG_NFS_V3_ACL is not set 937# CONFIG_NFS_V3_ACL is not set
955# CONFIG_NFS_V4 is not set 938# CONFIG_NFS_V4 is not set
956CONFIG_ROOT_NFS=y 939CONFIG_ROOT_NFS=y
957CONFIG_NFSD=y 940# CONFIG_NFSD is not set
958CONFIG_NFSD_V3=y
959# CONFIG_NFSD_V3_ACL is not set
960# CONFIG_NFSD_V4 is not set
961CONFIG_LOCKD=y 941CONFIG_LOCKD=y
962CONFIG_LOCKD_V4=y 942CONFIG_LOCKD_V4=y
963CONFIG_EXPORTFS=y
964CONFIG_NFS_COMMON=y 943CONFIG_NFS_COMMON=y
965CONFIG_SUNRPC=y 944CONFIG_SUNRPC=y
945# CONFIG_SUNRPC_REGISTER_V4 is not set
966# CONFIG_RPCSEC_GSS_KRB5 is not set 946# CONFIG_RPCSEC_GSS_KRB5 is not set
967# CONFIG_RPCSEC_GSS_SPKM3 is not set 947# CONFIG_RPCSEC_GSS_SPKM3 is not set
968CONFIG_SMB_FS=y 948# CONFIG_SMB_FS is not set
969# CONFIG_SMB_NLS_DEFAULT is not set
970# CONFIG_CIFS is not set 949# CONFIG_CIFS is not set
971# CONFIG_NCP_FS is not set 950# CONFIG_NCP_FS is not set
972# CONFIG_CODA_FS is not set 951# CONFIG_CODA_FS is not set
@@ -1023,7 +1002,6 @@ CONFIG_NLS_UTF8=m
1023# Library routines 1002# Library routines
1024# 1003#
1025CONFIG_BITREVERSE=y 1004CONFIG_BITREVERSE=y
1026# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1027CONFIG_CRC_CCITT=y 1005CONFIG_CRC_CCITT=y
1028# CONFIG_CRC16 is not set 1006# CONFIG_CRC16 is not set
1029# CONFIG_CRC_T10DIF is not set 1007# CONFIG_CRC_T10DIF is not set
@@ -1041,7 +1019,7 @@ CONFIG_HAVE_LMB=y
1041# 1019#
1042# Kernel hacking 1020# Kernel hacking
1043# 1021#
1044# CONFIG_PRINTK_TIME is not set 1022CONFIG_PRINTK_TIME=y
1045CONFIG_ENABLE_WARN_DEPRECATED=y 1023CONFIG_ENABLE_WARN_DEPRECATED=y
1046CONFIG_ENABLE_MUST_CHECK=y 1024CONFIG_ENABLE_MUST_CHECK=y
1047CONFIG_FRAME_WARN=1024 1025CONFIG_FRAME_WARN=1024
@@ -1049,19 +1027,62 @@ CONFIG_FRAME_WARN=1024
1049# CONFIG_UNUSED_SYMBOLS is not set 1027# CONFIG_UNUSED_SYMBOLS is not set
1050# CONFIG_DEBUG_FS is not set 1028# CONFIG_DEBUG_FS is not set
1051# CONFIG_HEADERS_CHECK is not set 1029# CONFIG_HEADERS_CHECK is not set
1052# CONFIG_DEBUG_KERNEL is not set 1030CONFIG_DEBUG_KERNEL=y
1031# CONFIG_DEBUG_SHIRQ is not set
1032CONFIG_DETECT_SOFTLOCKUP=y
1033# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1034CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1035CONFIG_SCHED_DEBUG=y
1036# CONFIG_SCHEDSTATS is not set
1037# CONFIG_TIMER_STATS is not set
1038# CONFIG_DEBUG_OBJECTS is not set
1039# CONFIG_DEBUG_SLAB is not set
1040# CONFIG_DEBUG_RT_MUTEXES is not set
1041# CONFIG_RT_MUTEX_TESTER is not set
1042# CONFIG_DEBUG_SPINLOCK is not set
1043# CONFIG_DEBUG_MUTEXES is not set
1044# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1045# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1046# CONFIG_DEBUG_KOBJECT is not set
1053CONFIG_DEBUG_BUGVERBOSE=y 1047CONFIG_DEBUG_BUGVERBOSE=y
1048CONFIG_DEBUG_INFO=y
1049# CONFIG_DEBUG_VM is not set
1050# CONFIG_DEBUG_WRITECOUNT is not set
1054CONFIG_DEBUG_MEMORY_INIT=y 1051CONFIG_DEBUG_MEMORY_INIT=y
1052# CONFIG_DEBUG_LIST is not set
1053# CONFIG_DEBUG_SG is not set
1054# CONFIG_BOOT_PRINTK_DELAY is not set
1055# CONFIG_RCU_TORTURE_TEST is not set
1056# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1057# CONFIG_BACKTRACE_SELF_TEST is not set
1058# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1059# CONFIG_FAULT_INJECTION is not set
1055# CONFIG_LATENCYTOP is not set 1060# CONFIG_LATENCYTOP is not set
1056CONFIG_HAVE_FTRACE=y 1061CONFIG_SYSCTL_SYSCALL_CHECK=y
1057CONFIG_HAVE_DYNAMIC_FTRACE=y 1062CONFIG_HAVE_FUNCTION_TRACER=y
1058# CONFIG_FTRACE is not set 1063
1064#
1065# Tracers
1066#
1067# CONFIG_FUNCTION_TRACER is not set
1059# CONFIG_PREEMPT_TRACER is not set 1068# CONFIG_PREEMPT_TRACER is not set
1060# CONFIG_SCHED_TRACER is not set 1069# CONFIG_SCHED_TRACER is not set
1061# CONFIG_CONTEXT_SWITCH_TRACER is not set 1070# CONFIG_CONTEXT_SWITCH_TRACER is not set
1071# CONFIG_BOOT_TRACER is not set
1072# CONFIG_STACK_TRACER is not set
1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1062# CONFIG_SAMPLES is not set 1074# CONFIG_SAMPLES is not set
1063CONFIG_HAVE_ARCH_KGDB=y 1075CONFIG_HAVE_ARCH_KGDB=y
1076# CONFIG_KGDB is not set
1077# CONFIG_DEBUG_STACKOVERFLOW is not set
1078# CONFIG_DEBUG_STACK_USAGE is not set
1079# CONFIG_DEBUG_PAGEALLOC is not set
1080# CONFIG_CODE_PATCHING_SELFTEST is not set
1081# CONFIG_FTR_FIXUP_SELFTEST is not set
1082# CONFIG_MSI_BITMAP_SELFTEST is not set
1083# CONFIG_XMON is not set
1064# CONFIG_IRQSTACKS is not set 1084# CONFIG_IRQSTACKS is not set
1085# CONFIG_BDI_SWITCH is not set
1065# CONFIG_PPC_EARLY_DEBUG is not set 1086# CONFIG_PPC_EARLY_DEBUG is not set
1066 1087
1067# 1088#
@@ -1069,12 +1090,14 @@ CONFIG_HAVE_ARCH_KGDB=y
1069# 1090#
1070# CONFIG_KEYS is not set 1091# CONFIG_KEYS is not set
1071# CONFIG_SECURITY is not set 1092# CONFIG_SECURITY is not set
1093# CONFIG_SECURITYFS is not set
1072# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1094# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1073CONFIG_CRYPTO=y 1095CONFIG_CRYPTO=y
1074 1096
1075# 1097#
1076# Crypto core or helper 1098# Crypto core or helper
1077# 1099#
1100# CONFIG_CRYPTO_FIPS is not set
1078# CONFIG_CRYPTO_MANAGER is not set 1101# CONFIG_CRYPTO_MANAGER is not set
1079# CONFIG_CRYPTO_GF128MUL is not set 1102# CONFIG_CRYPTO_GF128MUL is not set
1080# CONFIG_CRYPTO_NULL is not set 1103# CONFIG_CRYPTO_NULL is not set
@@ -1147,6 +1170,11 @@ CONFIG_CRYPTO=y
1147# 1170#
1148# CONFIG_CRYPTO_DEFLATE is not set 1171# CONFIG_CRYPTO_DEFLATE is not set
1149# CONFIG_CRYPTO_LZO is not set 1172# CONFIG_CRYPTO_LZO is not set
1173
1174#
1175# Random Number Generation
1176#
1177# CONFIG_CRYPTO_ANSI_CPRNG is not set
1150CONFIG_CRYPTO_HW=y 1178CONFIG_CRYPTO_HW=y
1151# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1179# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1152# CONFIG_PPC_CLOCK is not set 1180# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig
index c10f7395aa1b..3df627494b65 100644
--- a/arch/powerpc/configs/52xx/cm5200_defconfig
+++ b/arch/powerpc/configs/52xx/cm5200_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25 3# Linux kernel version: 2.6.28-rc4
4# Tue Apr 29 07:11:37 2008 4# Thu Nov 13 02:12:40 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y
22# CONFIG_SMP is not set 22# CONFIG_SMP is not set
23CONFIG_PPC32=y 23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32 24CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y 25# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
26CONFIG_MMU=y 26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 28CONFIG_GENERIC_TIME=y
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -102,6 +103,7 @@ CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 103CONFIG_TIMERFD=y
103CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 105CONFIG_SHMEM=y
106CONFIG_AIO=y
105CONFIG_VM_EVENT_COUNTERS=y 107CONFIG_VM_EVENT_COUNTERS=y
106CONFIG_SLUB_DEBUG=y 108CONFIG_SLUB_DEBUG=y
107# CONFIG_SLAB is not set 109# CONFIG_SLAB is not set
@@ -110,9 +112,13 @@ CONFIG_SLUB=y
110# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y 119CONFIG_HAVE_ARCH_TRACEHOOK=y
120CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
116CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
117CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
118# CONFIG_TINY_SHMEM is not set 124# CONFIG_TINY_SHMEM is not set
@@ -123,6 +129,7 @@ CONFIG_BLOCK=y
123# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
124# CONFIG_LSF is not set 130# CONFIG_LSF is not set
125# CONFIG_BLK_DEV_BSG is not set 131# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set
126 133
127# 134#
128# IO Schedulers 135# IO Schedulers
@@ -137,19 +144,16 @@ CONFIG_DEFAULT_AS=y
137# CONFIG_DEFAULT_NOOP is not set 144# CONFIG_DEFAULT_NOOP is not set
138CONFIG_DEFAULT_IOSCHED="anticipatory" 145CONFIG_DEFAULT_IOSCHED="anticipatory"
139CONFIG_CLASSIC_RCU=y 146CONFIG_CLASSIC_RCU=y
147# CONFIG_FREEZER is not set
140 148
141# 149#
142# Platform support 150# Platform support
143# 151#
144CONFIG_PPC_MULTIPLATFORM=y 152CONFIG_PPC_MULTIPLATFORM=y
145# CONFIG_PPC_82xx is not set
146# CONFIG_PPC_83xx is not set
147# CONFIG_PPC_86xx is not set
148CONFIG_CLASSIC32=y 153CONFIG_CLASSIC32=y
149# CONFIG_PPC_CHRP is not set 154# CONFIG_PPC_CHRP is not set
150# CONFIG_PPC_MPC512x is not set
151# CONFIG_PPC_MPC5121 is not set
152# CONFIG_MPC5121_ADS is not set 155# CONFIG_MPC5121_ADS is not set
156# CONFIG_MPC5121_GENERIC is not set
153CONFIG_PPC_MPC52xx=y 157CONFIG_PPC_MPC52xx=y
154CONFIG_PPC_MPC5200_SIMPLE=y 158CONFIG_PPC_MPC5200_SIMPLE=y
155# CONFIG_PPC_EFIKA is not set 159# CONFIG_PPC_EFIKA is not set
@@ -159,7 +163,10 @@ CONFIG_PPC_MPC5200_SIMPLE=y
159# CONFIG_PPC_PMAC is not set 163# CONFIG_PPC_PMAC is not set
160# CONFIG_PPC_CELL is not set 164# CONFIG_PPC_CELL is not set
161# CONFIG_PPC_CELL_NATIVE is not set 165# CONFIG_PPC_CELL_NATIVE is not set
166# CONFIG_PPC_82xx is not set
162# CONFIG_PQ2ADS is not set 167# CONFIG_PQ2ADS is not set
168# CONFIG_PPC_83xx is not set
169# CONFIG_PPC_86xx is not set
163# CONFIG_EMBEDDED6xx is not set 170# CONFIG_EMBEDDED6xx is not set
164# CONFIG_IPIC is not set 171# CONFIG_IPIC is not set
165# CONFIG_MPIC is not set 172# CONFIG_MPIC is not set
@@ -183,7 +190,6 @@ CONFIG_PPC_BESTCOMM_FEC=y
183# Kernel options 190# Kernel options
184# 191#
185# CONFIG_HIGHMEM is not set 192# CONFIG_HIGHMEM is not set
186# CONFIG_TICK_ONESHOT is not set
187# CONFIG_NO_HZ is not set 193# CONFIG_NO_HZ is not set
188# CONFIG_HIGH_RES_TIMERS is not set 194# CONFIG_HIGH_RES_TIMERS is not set
189CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -197,6 +203,8 @@ CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
199CONFIG_BINFMT_ELF=y 205CONFIG_BINFMT_ELF=y
206# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
207# CONFIG_HAVE_AOUT is not set
200# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
201# CONFIG_IOMMU_HELPER is not set 209# CONFIG_IOMMU_HELPER is not set
202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -211,19 +219,20 @@ CONFIG_FLATMEM_MANUAL=y
211# CONFIG_SPARSEMEM_MANUAL is not set 219# CONFIG_SPARSEMEM_MANUAL is not set
212CONFIG_FLATMEM=y 220CONFIG_FLATMEM=y
213CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
214# CONFIG_SPARSEMEM_STATIC is not set
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
221CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y
222CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
225CONFIG_PM=y 235CONFIG_PM=y
226# CONFIG_PM_LEGACY is not set
227# CONFIG_PM_DEBUG is not set 236# CONFIG_PM_DEBUG is not set
228CONFIG_SECCOMP=y 237CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -233,7 +242,7 @@ CONFIG_ISA_DMA_API=y
233# 242#
234CONFIG_ZONE_DMA=y 243CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 244CONFIG_GENERIC_ISA_DMA=y
236CONFIG_FSL_SOC=y 245CONFIG_PPC_PCI_CHOICE=y
237# CONFIG_PCI is not set 246# CONFIG_PCI is not set
238# CONFIG_PCI_DOMAINS is not set 247# CONFIG_PCI_DOMAINS is not set
239# CONFIG_PCI_SYSCALL is not set 248# CONFIG_PCI_SYSCALL is not set
@@ -254,10 +263,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
254CONFIG_KERNEL_START=0xc0000000 263CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000 264CONFIG_PHYSICAL_START=0x00000000
256CONFIG_TASK_SIZE=0xc0000000 265CONFIG_TASK_SIZE=0xc0000000
257
258#
259# Networking
260#
261CONFIG_NET=y 266CONFIG_NET=y
262 267
263# 268#
@@ -308,6 +313,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
308# CONFIG_TIPC is not set 313# CONFIG_TIPC is not set
309# CONFIG_ATM is not set 314# CONFIG_ATM is not set
310# CONFIG_BRIDGE is not set 315# CONFIG_BRIDGE is not set
316# CONFIG_NET_DSA is not set
311# CONFIG_VLAN_8021Q is not set 317# CONFIG_VLAN_8021Q is not set
312# CONFIG_DECNET is not set 318# CONFIG_DECNET is not set
313# CONFIG_LLC2 is not set 319# CONFIG_LLC2 is not set
@@ -328,14 +334,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
328# CONFIG_IRDA is not set 334# CONFIG_IRDA is not set
329# CONFIG_BT is not set 335# CONFIG_BT is not set
330# CONFIG_AF_RXRPC is not set 336# CONFIG_AF_RXRPC is not set
331 337# CONFIG_PHONET is not set
332# 338# CONFIG_WIRELESS is not set
333# Wireless
334#
335# CONFIG_CFG80211 is not set
336# CONFIG_WIRELESS_EXT is not set
337# CONFIG_MAC80211 is not set
338# CONFIG_IEEE80211 is not set
339# CONFIG_RFKILL is not set 339# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set 340# CONFIG_NET_9P is not set
341 341
@@ -446,6 +446,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
446# CONFIG_BLK_DEV_XIP is not set 446# CONFIG_BLK_DEV_XIP is not set
447# CONFIG_CDROM_PKTCDVD is not set 447# CONFIG_CDROM_PKTCDVD is not set
448# CONFIG_ATA_OVER_ETH is not set 448# CONFIG_ATA_OVER_ETH is not set
449# CONFIG_BLK_DEV_HD is not set
449# CONFIG_MISC_DEVICES is not set 450# CONFIG_MISC_DEVICES is not set
450CONFIG_HAVE_IDE=y 451CONFIG_HAVE_IDE=y
451# CONFIG_IDE is not set 452# CONFIG_IDE is not set
@@ -487,11 +488,11 @@ CONFIG_CHR_DEV_SG=y
487# CONFIG_SCSI_SAS_LIBSAS is not set 488# CONFIG_SCSI_SAS_LIBSAS is not set
488# CONFIG_SCSI_SRP_ATTRS is not set 489# CONFIG_SCSI_SRP_ATTRS is not set
489# CONFIG_SCSI_LOWLEVEL is not set 490# CONFIG_SCSI_LOWLEVEL is not set
491# CONFIG_SCSI_DH is not set
490# CONFIG_ATA is not set 492# CONFIG_ATA is not set
491# CONFIG_MD is not set 493# CONFIG_MD is not set
492# CONFIG_MACINTOSH_DRIVERS is not set 494# CONFIG_MACINTOSH_DRIVERS is not set
493CONFIG_NETDEVICES=y 495CONFIG_NETDEVICES=y
494# CONFIG_NETDEVICES_MULTIQUEUE is not set
495# CONFIG_DUMMY is not set 496# CONFIG_DUMMY is not set
496# CONFIG_BONDING is not set 497# CONFIG_BONDING is not set
497# CONFIG_MACVLAN is not set 498# CONFIG_MACVLAN is not set
@@ -521,6 +522,9 @@ CONFIG_NET_ETHERNET=y
521# CONFIG_IBM_NEW_EMAC_RGMII is not set 522# CONFIG_IBM_NEW_EMAC_RGMII is not set
522# CONFIG_IBM_NEW_EMAC_TAH is not set 523# CONFIG_IBM_NEW_EMAC_TAH is not set
523# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 524# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
525# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
526# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
527# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
524# CONFIG_B44 is not set 528# CONFIG_B44 is not set
525CONFIG_FEC_MPC52xx=y 529CONFIG_FEC_MPC52xx=y
526CONFIG_FEC_MPC52xx_MDIO=y 530CONFIG_FEC_MPC52xx_MDIO=y
@@ -532,7 +536,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
532# 536#
533# CONFIG_WLAN_PRE80211 is not set 537# CONFIG_WLAN_PRE80211 is not set
534# CONFIG_WLAN_80211 is not set 538# CONFIG_WLAN_80211 is not set
535# CONFIG_IWLWIFI is not set
536# CONFIG_IWLWIFI_LEDS is not set 539# CONFIG_IWLWIFI_LEDS is not set
537 540
538# 541#
@@ -567,6 +570,7 @@ CONFIG_FEC_MPC52xx_MDIO=y
567# Character devices 570# Character devices
568# 571#
569# CONFIG_VT is not set 572# CONFIG_VT is not set
573CONFIG_DEVKMEM=y
570# CONFIG_SERIAL_NONSTANDARD is not set 574# CONFIG_SERIAL_NONSTANDARD is not set
571 575
572# 576#
@@ -596,25 +600,40 @@ CONFIG_LEGACY_PTY_COUNT=256
596CONFIG_I2C=y 600CONFIG_I2C=y
597CONFIG_I2C_BOARDINFO=y 601CONFIG_I2C_BOARDINFO=y
598CONFIG_I2C_CHARDEV=y 602CONFIG_I2C_CHARDEV=y
603CONFIG_I2C_HELPER_AUTO=y
599 604
600# 605#
601# I2C Hardware Bus support 606# I2C Hardware Bus support
602# 607#
608
609#
610# I2C system bus drivers (mostly embedded / system-on-chip)
611#
603CONFIG_I2C_MPC=y 612CONFIG_I2C_MPC=y
604# CONFIG_I2C_OCORES is not set 613# CONFIG_I2C_OCORES is not set
605# CONFIG_I2C_PARPORT_LIGHT is not set
606# CONFIG_I2C_SIMTEC is not set 614# CONFIG_I2C_SIMTEC is not set
615
616#
617# External I2C/SMBus adapter drivers
618#
619# CONFIG_I2C_PARPORT_LIGHT is not set
607# CONFIG_I2C_TAOS_EVM is not set 620# CONFIG_I2C_TAOS_EVM is not set
608# CONFIG_I2C_TINY_USB is not set 621# CONFIG_I2C_TINY_USB is not set
622
623#
624# Other I2C/SMBus bus drivers
625#
609# CONFIG_I2C_PCA_PLATFORM is not set 626# CONFIG_I2C_PCA_PLATFORM is not set
610 627
611# 628#
612# Miscellaneous I2C Chip support 629# Miscellaneous I2C Chip support
613# 630#
614# CONFIG_DS1682 is not set 631# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set
615# CONFIG_SENSORS_EEPROM is not set 633# CONFIG_SENSORS_EEPROM is not set
616# CONFIG_SENSORS_PCF8574 is not set 634# CONFIG_SENSORS_PCF8574 is not set
617# CONFIG_PCF8575 is not set 635# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set
618# CONFIG_SENSORS_PCF8591 is not set 637# CONFIG_SENSORS_PCF8591 is not set
619# CONFIG_SENSORS_MAX6875 is not set 638# CONFIG_SENSORS_MAX6875 is not set
620# CONFIG_SENSORS_TSL2550 is not set 639# CONFIG_SENSORS_TSL2550 is not set
@@ -623,10 +642,13 @@ CONFIG_I2C_MPC=y
623# CONFIG_I2C_DEBUG_BUS is not set 642# CONFIG_I2C_DEBUG_BUS is not set
624# CONFIG_I2C_DEBUG_CHIP is not set 643# CONFIG_I2C_DEBUG_CHIP is not set
625# CONFIG_SPI is not set 644# CONFIG_SPI is not set
645CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
646# CONFIG_GPIOLIB is not set
626# CONFIG_W1 is not set 647# CONFIG_W1 is not set
627# CONFIG_POWER_SUPPLY is not set 648# CONFIG_POWER_SUPPLY is not set
628# CONFIG_HWMON is not set 649# CONFIG_HWMON is not set
629# CONFIG_THERMAL is not set 650# CONFIG_THERMAL is not set
651# CONFIG_THERMAL_HWMON is not set
630CONFIG_WATCHDOG=y 652CONFIG_WATCHDOG=y
631# CONFIG_WATCHDOG_NOWAYOUT is not set 653# CONFIG_WATCHDOG_NOWAYOUT is not set
632 654
@@ -640,24 +662,39 @@ CONFIG_WATCHDOG=y
640# USB-based Watchdog Cards 662# USB-based Watchdog Cards
641# 663#
642# CONFIG_USBPCWATCHDOG is not set 664# CONFIG_USBPCWATCHDOG is not set
665CONFIG_SSB_POSSIBLE=y
643 666
644# 667#
645# Sonics Silicon Backplane 668# Sonics Silicon Backplane
646# 669#
647CONFIG_SSB_POSSIBLE=y
648# CONFIG_SSB is not set 670# CONFIG_SSB is not set
649 671
650# 672#
651# Multifunction device drivers 673# Multifunction device drivers
652# 674#
675# CONFIG_MFD_CORE is not set
653# CONFIG_MFD_SM501 is not set 676# CONFIG_MFD_SM501 is not set
654# CONFIG_HTC_PASIC3 is not set 677# CONFIG_HTC_PASIC3 is not set
678# CONFIG_MFD_TMIO is not set
679# CONFIG_PMIC_DA903X is not set
680# CONFIG_MFD_WM8400 is not set
681# CONFIG_MFD_WM8350_I2C is not set
682# CONFIG_REGULATOR is not set
655 683
656# 684#
657# Multimedia devices 685# Multimedia devices
658# 686#
687
688#
689# Multimedia core support
690#
659# CONFIG_VIDEO_DEV is not set 691# CONFIG_VIDEO_DEV is not set
660# CONFIG_DVB_CORE is not set 692# CONFIG_DVB_CORE is not set
693# CONFIG_VIDEO_MEDIA is not set
694
695#
696# Multimedia drivers
697#
661# CONFIG_DAB is not set 698# CONFIG_DAB is not set
662 699
663# 700#
@@ -672,10 +709,6 @@ CONFIG_SSB_POSSIBLE=y
672# Display device support 709# Display device support
673# 710#
674# CONFIG_DISPLAY_SUPPORT is not set 711# CONFIG_DISPLAY_SUPPORT is not set
675
676#
677# Sound
678#
679# CONFIG_SOUND is not set 712# CONFIG_SOUND is not set
680CONFIG_USB_SUPPORT=y 713CONFIG_USB_SUPPORT=y
681CONFIG_USB_ARCH_HAS_HCD=y 714CONFIG_USB_ARCH_HAS_HCD=y
@@ -695,11 +728,16 @@ CONFIG_USB_DEVICEFS=y
695# CONFIG_USB_OTG is not set 728# CONFIG_USB_OTG is not set
696# CONFIG_USB_OTG_WHITELIST is not set 729# CONFIG_USB_OTG_WHITELIST is not set
697# CONFIG_USB_OTG_BLACKLIST_HUB is not set 730# CONFIG_USB_OTG_BLACKLIST_HUB is not set
731# CONFIG_USB_MON is not set
732# CONFIG_USB_WUSB is not set
733# CONFIG_USB_WUSB_CBAF is not set
698 734
699# 735#
700# USB Host Controller Drivers 736# USB Host Controller Drivers
701# 737#
738# CONFIG_USB_C67X00_HCD is not set
702# CONFIG_USB_ISP116X_HCD is not set 739# CONFIG_USB_ISP116X_HCD is not set
740# CONFIG_USB_ISP1760_HCD is not set
703CONFIG_USB_OHCI_HCD=y 741CONFIG_USB_OHCI_HCD=y
704CONFIG_USB_OHCI_HCD_PPC_SOC=y 742CONFIG_USB_OHCI_HCD_PPC_SOC=y
705CONFIG_USB_OHCI_HCD_PPC_OF=y 743CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -710,12 +748,16 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
710# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set 748# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set
711# CONFIG_USB_SL811_HCD is not set 749# CONFIG_USB_SL811_HCD is not set
712# CONFIG_USB_R8A66597_HCD is not set 750# CONFIG_USB_R8A66597_HCD is not set
751# CONFIG_USB_HWA_HCD is not set
752# CONFIG_USB_MUSB_HDRC is not set
713 753
714# 754#
715# USB Device Class drivers 755# USB Device Class drivers
716# 756#
717# CONFIG_USB_ACM is not set 757# CONFIG_USB_ACM is not set
718# CONFIG_USB_PRINTER is not set 758# CONFIG_USB_PRINTER is not set
759# CONFIG_USB_WDM is not set
760# CONFIG_USB_TMC is not set
719 761
720# 762#
721# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 763# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -744,7 +786,6 @@ CONFIG_USB_STORAGE=y
744# 786#
745# CONFIG_USB_MDC800 is not set 787# CONFIG_USB_MDC800 is not set
746# CONFIG_USB_MICROTEK is not set 788# CONFIG_USB_MICROTEK is not set
747# CONFIG_USB_MON is not set
748 789
749# 790#
750# USB port drivers 791# USB port drivers
@@ -757,7 +798,7 @@ CONFIG_USB_STORAGE=y
757# CONFIG_USB_EMI62 is not set 798# CONFIG_USB_EMI62 is not set
758# CONFIG_USB_EMI26 is not set 799# CONFIG_USB_EMI26 is not set
759# CONFIG_USB_ADUTUX is not set 800# CONFIG_USB_ADUTUX is not set
760# CONFIG_USB_AUERSWALD is not set 801# CONFIG_USB_SEVSEG is not set
761# CONFIG_USB_RIO500 is not set 802# CONFIG_USB_RIO500 is not set
762# CONFIG_USB_LEGOTOWER is not set 803# CONFIG_USB_LEGOTOWER is not set
763# CONFIG_USB_LCD is not set 804# CONFIG_USB_LCD is not set
@@ -773,14 +814,19 @@ CONFIG_USB_STORAGE=y
773# CONFIG_USB_TRANCEVIBRATOR is not set 814# CONFIG_USB_TRANCEVIBRATOR is not set
774# CONFIG_USB_IOWARRIOR is not set 815# CONFIG_USB_IOWARRIOR is not set
775# CONFIG_USB_TEST is not set 816# CONFIG_USB_TEST is not set
817# CONFIG_USB_ISIGHTFW is not set
818# CONFIG_USB_VST is not set
776# CONFIG_USB_GADGET is not set 819# CONFIG_USB_GADGET is not set
777# CONFIG_MMC is not set 820# CONFIG_MMC is not set
778# CONFIG_MEMSTICK is not set 821# CONFIG_MEMSTICK is not set
779# CONFIG_NEW_LEDS is not set 822# CONFIG_NEW_LEDS is not set
823# CONFIG_ACCESSIBILITY is not set
780# CONFIG_EDAC is not set 824# CONFIG_EDAC is not set
781# CONFIG_RTC_CLASS is not set 825# CONFIG_RTC_CLASS is not set
782# CONFIG_DMADEVICES is not set 826# CONFIG_DMADEVICES is not set
783# CONFIG_UIO is not set 827# CONFIG_UIO is not set
828# CONFIG_STAGING is not set
829CONFIG_STAGING_EXCLUDE_BUILD=y
784 830
785# 831#
786# File systems 832# File systems
@@ -792,12 +838,13 @@ CONFIG_EXT3_FS=y
792CONFIG_EXT3_FS_XATTR=y 838CONFIG_EXT3_FS_XATTR=y
793# CONFIG_EXT3_FS_POSIX_ACL is not set 839# CONFIG_EXT3_FS_POSIX_ACL is not set
794# CONFIG_EXT3_FS_SECURITY is not set 840# CONFIG_EXT3_FS_SECURITY is not set
795# CONFIG_EXT4DEV_FS is not set 841# CONFIG_EXT4_FS is not set
796CONFIG_JBD=y 842CONFIG_JBD=y
797CONFIG_FS_MBCACHE=y 843CONFIG_FS_MBCACHE=y
798# CONFIG_REISERFS_FS is not set 844# CONFIG_REISERFS_FS is not set
799# CONFIG_JFS_FS is not set 845# CONFIG_JFS_FS is not set
800# CONFIG_FS_POSIX_ACL is not set 846# CONFIG_FS_POSIX_ACL is not set
847CONFIG_FILE_LOCKING=y
801# CONFIG_XFS_FS is not set 848# CONFIG_XFS_FS is not set
802# CONFIG_OCFS2_FS is not set 849# CONFIG_OCFS2_FS is not set
803CONFIG_DNOTIFY=y 850CONFIG_DNOTIFY=y
@@ -830,6 +877,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
830CONFIG_PROC_FS=y 877CONFIG_PROC_FS=y
831CONFIG_PROC_KCORE=y 878CONFIG_PROC_KCORE=y
832CONFIG_PROC_SYSCTL=y 879CONFIG_PROC_SYSCTL=y
880CONFIG_PROC_PAGE_MONITOR=y
833CONFIG_SYSFS=y 881CONFIG_SYSFS=y
834CONFIG_TMPFS=y 882CONFIG_TMPFS=y
835# CONFIG_TMPFS_POSIX_ACL is not set 883# CONFIG_TMPFS_POSIX_ACL is not set
@@ -860,6 +908,7 @@ CONFIG_JFFS2_RTIME=y
860CONFIG_CRAMFS=y 908CONFIG_CRAMFS=y
861# CONFIG_VXFS_FS is not set 909# CONFIG_VXFS_FS is not set
862# CONFIG_MINIX_FS is not set 910# CONFIG_MINIX_FS is not set
911# CONFIG_OMFS_FS is not set
863# CONFIG_HPFS_FS is not set 912# CONFIG_HPFS_FS is not set
864# CONFIG_QNX4FS_FS is not set 913# CONFIG_QNX4FS_FS is not set
865# CONFIG_ROMFS_FS is not set 914# CONFIG_ROMFS_FS is not set
@@ -870,14 +919,14 @@ CONFIG_NFS_FS=y
870CONFIG_NFS_V3=y 919CONFIG_NFS_V3=y
871# CONFIG_NFS_V3_ACL is not set 920# CONFIG_NFS_V3_ACL is not set
872CONFIG_NFS_V4=y 921CONFIG_NFS_V4=y
873# CONFIG_NFSD is not set
874CONFIG_ROOT_NFS=y 922CONFIG_ROOT_NFS=y
923# CONFIG_NFSD is not set
875CONFIG_LOCKD=y 924CONFIG_LOCKD=y
876CONFIG_LOCKD_V4=y 925CONFIG_LOCKD_V4=y
877CONFIG_NFS_COMMON=y 926CONFIG_NFS_COMMON=y
878CONFIG_SUNRPC=y 927CONFIG_SUNRPC=y
879CONFIG_SUNRPC_GSS=y 928CONFIG_SUNRPC_GSS=y
880# CONFIG_SUNRPC_BIND34 is not set 929# CONFIG_SUNRPC_REGISTER_V4 is not set
881CONFIG_RPCSEC_GSS_KRB5=y 930CONFIG_RPCSEC_GSS_KRB5=y
882# CONFIG_RPCSEC_GSS_SPKM3 is not set 931# CONFIG_RPCSEC_GSS_SPKM3 is not set
883# CONFIG_SMB_FS is not set 932# CONFIG_SMB_FS is not set
@@ -953,9 +1002,9 @@ CONFIG_NLS_ISO8859_1=y
953# Library routines 1002# Library routines
954# 1003#
955CONFIG_BITREVERSE=y 1004CONFIG_BITREVERSE=y
956# CONFIG_GENERIC_FIND_FIRST_BIT is not set
957# CONFIG_CRC_CCITT is not set 1005# CONFIG_CRC_CCITT is not set
958# CONFIG_CRC16 is not set 1006# CONFIG_CRC16 is not set
1007# CONFIG_CRC_T10DIF is not set
959# CONFIG_CRC_ITU_T is not set 1008# CONFIG_CRC_ITU_T is not set
960CONFIG_CRC32=y 1009CONFIG_CRC32=y
961# CONFIG_CRC7 is not set 1010# CONFIG_CRC7 is not set
@@ -982,9 +1031,12 @@ CONFIG_FRAME_WARN=1024
982CONFIG_DEBUG_KERNEL=y 1031CONFIG_DEBUG_KERNEL=y
983# CONFIG_DEBUG_SHIRQ is not set 1032# CONFIG_DEBUG_SHIRQ is not set
984CONFIG_DETECT_SOFTLOCKUP=y 1033CONFIG_DETECT_SOFTLOCKUP=y
1034# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1035CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
985CONFIG_SCHED_DEBUG=y 1036CONFIG_SCHED_DEBUG=y
986# CONFIG_SCHEDSTATS is not set 1037# CONFIG_SCHEDSTATS is not set
987# CONFIG_TIMER_STATS is not set 1038# CONFIG_TIMER_STATS is not set
1039# CONFIG_DEBUG_OBJECTS is not set
988# CONFIG_SLUB_DEBUG_ON is not set 1040# CONFIG_SLUB_DEBUG_ON is not set
989# CONFIG_SLUB_STATS is not set 1041# CONFIG_SLUB_STATS is not set
990# CONFIG_DEBUG_RT_MUTEXES is not set 1042# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -998,16 +1050,37 @@ CONFIG_SCHED_DEBUG=y
998# CONFIG_DEBUG_INFO is not set 1050# CONFIG_DEBUG_INFO is not set
999# CONFIG_DEBUG_VM is not set 1051# CONFIG_DEBUG_VM is not set
1000# CONFIG_DEBUG_WRITECOUNT is not set 1052# CONFIG_DEBUG_WRITECOUNT is not set
1053# CONFIG_DEBUG_MEMORY_INIT is not set
1001# CONFIG_DEBUG_LIST is not set 1054# CONFIG_DEBUG_LIST is not set
1002# CONFIG_DEBUG_SG is not set 1055# CONFIG_DEBUG_SG is not set
1003# CONFIG_BOOT_PRINTK_DELAY is not set 1056# CONFIG_BOOT_PRINTK_DELAY is not set
1057# CONFIG_RCU_TORTURE_TEST is not set
1058# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1004# CONFIG_BACKTRACE_SELF_TEST is not set 1059# CONFIG_BACKTRACE_SELF_TEST is not set
1060# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1005# CONFIG_FAULT_INJECTION is not set 1061# CONFIG_FAULT_INJECTION is not set
1062# CONFIG_LATENCYTOP is not set
1063CONFIG_HAVE_FUNCTION_TRACER=y
1064
1065#
1066# Tracers
1067#
1068# CONFIG_FUNCTION_TRACER is not set
1069# CONFIG_SCHED_TRACER is not set
1070# CONFIG_CONTEXT_SWITCH_TRACER is not set
1071# CONFIG_BOOT_TRACER is not set
1072# CONFIG_STACK_TRACER is not set
1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1006# CONFIG_SAMPLES is not set 1074# CONFIG_SAMPLES is not set
1075CONFIG_HAVE_ARCH_KGDB=y
1076# CONFIG_KGDB is not set
1007# CONFIG_DEBUG_STACKOVERFLOW is not set 1077# CONFIG_DEBUG_STACKOVERFLOW is not set
1008# CONFIG_DEBUG_STACK_USAGE is not set 1078# CONFIG_DEBUG_STACK_USAGE is not set
1009# CONFIG_DEBUG_PAGEALLOC is not set 1079# CONFIG_DEBUG_PAGEALLOC is not set
1010# CONFIG_DEBUGGER is not set 1080# CONFIG_CODE_PATCHING_SELFTEST is not set
1081# CONFIG_FTR_FIXUP_SELFTEST is not set
1082# CONFIG_MSI_BITMAP_SELFTEST is not set
1083# CONFIG_XMON is not set
1011# CONFIG_IRQSTACKS is not set 1084# CONFIG_IRQSTACKS is not set
1012# CONFIG_BDI_SWITCH is not set 1085# CONFIG_BDI_SWITCH is not set
1013# CONFIG_BOOTX_TEXT is not set 1086# CONFIG_BOOTX_TEXT is not set
@@ -1018,14 +1091,19 @@ CONFIG_SCHED_DEBUG=y
1018# 1091#
1019# CONFIG_KEYS is not set 1092# CONFIG_KEYS is not set
1020# CONFIG_SECURITY is not set 1093# CONFIG_SECURITY is not set
1094# CONFIG_SECURITYFS is not set
1021# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1095# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1022CONFIG_CRYPTO=y 1096CONFIG_CRYPTO=y
1023 1097
1024# 1098#
1025# Crypto core or helper 1099# Crypto core or helper
1026# 1100#
1101# CONFIG_CRYPTO_FIPS is not set
1027CONFIG_CRYPTO_ALGAPI=y 1102CONFIG_CRYPTO_ALGAPI=y
1103CONFIG_CRYPTO_AEAD=y
1028CONFIG_CRYPTO_BLKCIPHER=y 1104CONFIG_CRYPTO_BLKCIPHER=y
1105CONFIG_CRYPTO_HASH=y
1106CONFIG_CRYPTO_RNG=y
1029CONFIG_CRYPTO_MANAGER=y 1107CONFIG_CRYPTO_MANAGER=y
1030# CONFIG_CRYPTO_GF128MUL is not set 1108# CONFIG_CRYPTO_GF128MUL is not set
1031# CONFIG_CRYPTO_NULL is not set 1109# CONFIG_CRYPTO_NULL is not set
@@ -1063,6 +1141,10 @@ CONFIG_CRYPTO_PCBC=y
1063# CONFIG_CRYPTO_MD4 is not set 1141# CONFIG_CRYPTO_MD4 is not set
1064CONFIG_CRYPTO_MD5=y 1142CONFIG_CRYPTO_MD5=y
1065# CONFIG_CRYPTO_MICHAEL_MIC is not set 1143# CONFIG_CRYPTO_MICHAEL_MIC is not set
1144# CONFIG_CRYPTO_RMD128 is not set
1145# CONFIG_CRYPTO_RMD160 is not set
1146# CONFIG_CRYPTO_RMD256 is not set
1147# CONFIG_CRYPTO_RMD320 is not set
1066# CONFIG_CRYPTO_SHA1 is not set 1148# CONFIG_CRYPTO_SHA1 is not set
1067# CONFIG_CRYPTO_SHA256 is not set 1149# CONFIG_CRYPTO_SHA256 is not set
1068# CONFIG_CRYPTO_SHA512 is not set 1150# CONFIG_CRYPTO_SHA512 is not set
@@ -1093,6 +1175,11 @@ CONFIG_CRYPTO_DES=y
1093# 1175#
1094# CONFIG_CRYPTO_DEFLATE is not set 1176# CONFIG_CRYPTO_DEFLATE is not set
1095# CONFIG_CRYPTO_LZO is not set 1177# CONFIG_CRYPTO_LZO is not set
1178
1179#
1180# Random Number Generation
1181#
1182# CONFIG_CRYPTO_ANSI_CPRNG is not set
1096CONFIG_CRYPTO_HW=y 1183CONFIG_CRYPTO_HW=y
1097CONFIG_PPC_CLOCK=y 1184CONFIG_PPC_CLOCK=y
1098CONFIG_PPC_LIB_RHEAP=y 1185CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig
index 1a8a250fa11b..5b969f9c925e 100644
--- a/arch/powerpc/configs/52xx/lite5200b_defconfig
+++ b/arch/powerpc/configs/52xx/lite5200b_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25 3# Linux kernel version: 2.6.28-rc4
4# Tue Apr 29 07:12:56 2008 4# Thu Nov 13 02:10:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y
22# CONFIG_SMP is not set 22# CONFIG_SMP is not set
23CONFIG_PPC32=y 23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32 24CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y 25# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
26CONFIG_MMU=y 26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 28CONFIG_GENERIC_TIME=y
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -103,7 +104,9 @@ CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y 104CONFIG_TIMERFD=y
104CONFIG_EVENTFD=y 105CONFIG_EVENTFD=y
105CONFIG_SHMEM=y 106CONFIG_SHMEM=y
107CONFIG_AIO=y
106CONFIG_VM_EVENT_COUNTERS=y 108CONFIG_VM_EVENT_COUNTERS=y
109CONFIG_PCI_QUIRKS=y
107CONFIG_SLUB_DEBUG=y 110CONFIG_SLUB_DEBUG=y
108# CONFIG_SLAB is not set 111# CONFIG_SLAB is not set
109CONFIG_SLUB=y 112CONFIG_SLUB=y
@@ -111,24 +114,30 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
116CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_HAVE_ARCH_TRACEHOOK=y
122CONFIG_HAVE_CLK=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
117CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 126# CONFIG_TINY_SHMEM is not set
120CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
121CONFIG_MODULES=y 128CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set
122CONFIG_MODULE_UNLOAD=y 130CONFIG_MODULE_UNLOAD=y
123# CONFIG_MODULE_FORCE_UNLOAD is not set 131# CONFIG_MODULE_FORCE_UNLOAD is not set
124# CONFIG_MODVERSIONS is not set 132# CONFIG_MODVERSIONS is not set
125# CONFIG_MODULE_SRCVERSION_ALL is not set 133# CONFIG_MODULE_SRCVERSION_ALL is not set
126# CONFIG_KMOD is not set 134CONFIG_KMOD=y
127CONFIG_BLOCK=y 135CONFIG_BLOCK=y
128# CONFIG_LBD is not set 136# CONFIG_LBD is not set
129# CONFIG_BLK_DEV_IO_TRACE is not set 137# CONFIG_BLK_DEV_IO_TRACE is not set
130# CONFIG_LSF is not set 138# CONFIG_LSF is not set
131# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
140# CONFIG_BLK_DEV_INTEGRITY is not set
132 141
133# 142#
134# IO Schedulers 143# IO Schedulers
@@ -143,19 +152,16 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
144CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
145CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155CONFIG_FREEZER=y
146 156
147# 157#
148# Platform support 158# Platform support
149# 159#
150CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
151# CONFIG_PPC_82xx is not set
152# CONFIG_PPC_83xx is not set
153# CONFIG_PPC_86xx is not set
154CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
155# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
156# CONFIG_PPC_MPC512x is not set
157# CONFIG_PPC_MPC5121 is not set
158# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set
159CONFIG_PPC_MPC52xx=y 165CONFIG_PPC_MPC52xx=y
160CONFIG_PPC_MPC5200_SIMPLE=y 166CONFIG_PPC_MPC5200_SIMPLE=y
161# CONFIG_PPC_EFIKA is not set 167# CONFIG_PPC_EFIKA is not set
@@ -165,7 +171,10 @@ CONFIG_PPC_LITE5200=y
165# CONFIG_PPC_PMAC is not set 171# CONFIG_PPC_PMAC is not set
166# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
167# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
168# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
176# CONFIG_PPC_83xx is not set
177# CONFIG_PPC_86xx is not set
169# CONFIG_EMBEDDED6xx is not set 178# CONFIG_EMBEDDED6xx is not set
170# CONFIG_IPIC is not set 179# CONFIG_IPIC is not set
171# CONFIG_MPIC is not set 180# CONFIG_MPIC is not set
@@ -198,11 +207,13 @@ CONFIG_HZ_250=y
198# CONFIG_HZ_300 is not set 207# CONFIG_HZ_300 is not set
199# CONFIG_HZ_1000 is not set 208# CONFIG_HZ_1000 is not set
200CONFIG_HZ=250 209CONFIG_HZ=250
201# CONFIG_SCHED_HRTICK is not set 210CONFIG_SCHED_HRTICK=y
202CONFIG_PREEMPT_NONE=y 211CONFIG_PREEMPT_NONE=y
203# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
204# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
205CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
216# CONFIG_HAVE_AOUT is not set
206# CONFIG_BINFMT_MISC is not set 217# CONFIG_BINFMT_MISC is not set
207# CONFIG_IOMMU_HELPER is not set 218# CONFIG_IOMMU_HELPER is not set
208CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -217,19 +228,20 @@ CONFIG_FLATMEM_MANUAL=y
217# CONFIG_SPARSEMEM_MANUAL is not set 228# CONFIG_SPARSEMEM_MANUAL is not set
218CONFIG_FLATMEM=y 229CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y 230CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y
224# CONFIG_RESOURCES_64BIT is not set 234# CONFIG_RESOURCES_64BIT is not set
235# CONFIG_PHYS_ADDR_T_64BIT is not set
225CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
226CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
227CONFIG_VIRT_TO_BUS=y 238CONFIG_VIRT_TO_BUS=y
239CONFIG_UNEVICTABLE_LRU=y
228CONFIG_FORCE_MAX_ZONEORDER=11 240CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 241CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 242# CONFIG_CMDLINE_BOOL is not set
243CONFIG_EXTRA_TARGETS=""
231CONFIG_PM=y 244CONFIG_PM=y
232# CONFIG_PM_LEGACY is not set
233# CONFIG_PM_DEBUG is not set 245# CONFIG_PM_DEBUG is not set
234CONFIG_PM_SLEEP=y 246CONFIG_PM_SLEEP=y
235CONFIG_SUSPEND=y 247CONFIG_SUSPEND=y
@@ -243,7 +255,7 @@ CONFIG_ISA_DMA_API=y
243CONFIG_ZONE_DMA=y 255CONFIG_ZONE_DMA=y
244CONFIG_GENERIC_ISA_DMA=y 256CONFIG_GENERIC_ISA_DMA=y
245# CONFIG_PPC_INDIRECT_PCI is not set 257# CONFIG_PPC_INDIRECT_PCI is not set
246CONFIG_FSL_SOC=y 258CONFIG_PPC_PCI_CHOICE=y
247CONFIG_PCI=y 259CONFIG_PCI=y
248CONFIG_PCI_DOMAINS=y 260CONFIG_PCI_DOMAINS=y
249CONFIG_PCI_SYSCALL=y 261CONFIG_PCI_SYSCALL=y
@@ -269,10 +281,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
269CONFIG_KERNEL_START=0xc0000000 281CONFIG_KERNEL_START=0xc0000000
270CONFIG_PHYSICAL_START=0x00000000 282CONFIG_PHYSICAL_START=0x00000000
271CONFIG_TASK_SIZE=0xc0000000 283CONFIG_TASK_SIZE=0xc0000000
272
273#
274# Networking
275#
276CONFIG_NET=y 284CONFIG_NET=y
277 285
278# 286#
@@ -323,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
323# CONFIG_TIPC is not set 331# CONFIG_TIPC is not set
324# CONFIG_ATM is not set 332# CONFIG_ATM is not set
325# CONFIG_BRIDGE is not set 333# CONFIG_BRIDGE is not set
334# CONFIG_NET_DSA is not set
326# CONFIG_VLAN_8021Q is not set 335# CONFIG_VLAN_8021Q is not set
327# CONFIG_DECNET is not set 336# CONFIG_DECNET is not set
328# CONFIG_LLC2 is not set 337# CONFIG_LLC2 is not set
@@ -343,14 +352,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_IRDA is not set 352# CONFIG_IRDA is not set
344# CONFIG_BT is not set 353# CONFIG_BT is not set
345# CONFIG_AF_RXRPC is not set 354# CONFIG_AF_RXRPC is not set
346 355# CONFIG_PHONET is not set
347# 356# CONFIG_WIRELESS is not set
348# Wireless
349#
350# CONFIG_CFG80211 is not set
351# CONFIG_WIRELESS_EXT is not set
352# CONFIG_MAC80211 is not set
353# CONFIG_IEEE80211 is not set
354# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
355# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
356 359
@@ -390,12 +393,16 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
390# CONFIG_BLK_DEV_XIP is not set 393# CONFIG_BLK_DEV_XIP is not set
391# CONFIG_CDROM_PKTCDVD is not set 394# CONFIG_CDROM_PKTCDVD is not set
392# CONFIG_ATA_OVER_ETH is not set 395# CONFIG_ATA_OVER_ETH is not set
396# CONFIG_BLK_DEV_HD is not set
393CONFIG_MISC_DEVICES=y 397CONFIG_MISC_DEVICES=y
394# CONFIG_PHANTOM is not set 398# CONFIG_PHANTOM is not set
395# CONFIG_EEPROM_93CX6 is not set 399# CONFIG_EEPROM_93CX6 is not set
396# CONFIG_SGI_IOC4 is not set 400# CONFIG_SGI_IOC4 is not set
397# CONFIG_TIFM_CORE is not set 401# CONFIG_TIFM_CORE is not set
402# CONFIG_ICS932S401 is not set
398# CONFIG_ENCLOSURE_SERVICES is not set 403# CONFIG_ENCLOSURE_SERVICES is not set
404# CONFIG_HP_ILO is not set
405# CONFIG_C2PORT is not set
399CONFIG_HAVE_IDE=y 406CONFIG_HAVE_IDE=y
400# CONFIG_IDE is not set 407# CONFIG_IDE is not set
401 408
@@ -412,7 +419,7 @@ CONFIG_SCSI_DMA=y
412# 419#
413# SCSI support type (disk, tape, CD-ROM) 420# SCSI support type (disk, tape, CD-ROM)
414# 421#
415# CONFIG_BLK_DEV_SD is not set 422CONFIG_BLK_DEV_SD=y
416# CONFIG_CHR_DEV_ST is not set 423# CONFIG_CHR_DEV_ST is not set
417# CONFIG_CHR_DEV_OSST is not set 424# CONFIG_CHR_DEV_OSST is not set
418# CONFIG_BLK_DEV_SR is not set 425# CONFIG_BLK_DEV_SR is not set
@@ -474,12 +481,12 @@ CONFIG_SCSI_LOWLEVEL=y
474# CONFIG_SCSI_NSP32 is not set 481# CONFIG_SCSI_NSP32 is not set
475# CONFIG_SCSI_DEBUG is not set 482# CONFIG_SCSI_DEBUG is not set
476# CONFIG_SCSI_SRP is not set 483# CONFIG_SCSI_SRP is not set
484# CONFIG_SCSI_DH is not set
477CONFIG_ATA=y 485CONFIG_ATA=y
478# CONFIG_ATA_NONSTANDARD is not set 486# CONFIG_ATA_NONSTANDARD is not set
479CONFIG_SATA_PMP=y 487CONFIG_SATA_PMP=y
480# CONFIG_SATA_AHCI is not set 488# CONFIG_SATA_AHCI is not set
481# CONFIG_SATA_SIL24 is not set 489# CONFIG_SATA_SIL24 is not set
482# CONFIG_SATA_FSL is not set
483CONFIG_ATA_SFF=y 490CONFIG_ATA_SFF=y
484# CONFIG_SATA_SVW is not set 491# CONFIG_SATA_SVW is not set
485# CONFIG_ATA_PIIX is not set 492# CONFIG_ATA_PIIX is not set
@@ -535,18 +542,22 @@ CONFIG_PATA_MPC52xx=y
535# CONFIG_PATA_VIA is not set 542# CONFIG_PATA_VIA is not set
536# CONFIG_PATA_WINBOND is not set 543# CONFIG_PATA_WINBOND is not set
537# CONFIG_PATA_PLATFORM is not set 544# CONFIG_PATA_PLATFORM is not set
545# CONFIG_PATA_SCH is not set
538# CONFIG_MD is not set 546# CONFIG_MD is not set
539# CONFIG_FUSION is not set 547# CONFIG_FUSION is not set
540 548
541# 549#
542# IEEE 1394 (FireWire) support 550# IEEE 1394 (FireWire) support
543# 551#
552
553#
554# Enable only one of the two stacks, unless you know what you are doing
555#
544# CONFIG_FIREWIRE is not set 556# CONFIG_FIREWIRE is not set
545# CONFIG_IEEE1394 is not set 557# CONFIG_IEEE1394 is not set
546# CONFIG_I2O is not set 558# CONFIG_I2O is not set
547# CONFIG_MACINTOSH_DRIVERS is not set 559# CONFIG_MACINTOSH_DRIVERS is not set
548CONFIG_NETDEVICES=y 560CONFIG_NETDEVICES=y
549# CONFIG_NETDEVICES_MULTIQUEUE is not set
550# CONFIG_DUMMY is not set 561# CONFIG_DUMMY is not set
551# CONFIG_BONDING is not set 562# CONFIG_BONDING is not set
552# CONFIG_MACVLAN is not set 563# CONFIG_MACVLAN is not set
@@ -583,16 +594,19 @@ CONFIG_NET_ETHERNET=y
583# CONFIG_IBM_NEW_EMAC_RGMII is not set 594# CONFIG_IBM_NEW_EMAC_RGMII is not set
584# CONFIG_IBM_NEW_EMAC_TAH is not set 595# CONFIG_IBM_NEW_EMAC_TAH is not set
585# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 596# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
597# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
598# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
599# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
586# CONFIG_NET_PCI is not set 600# CONFIG_NET_PCI is not set
587# CONFIG_B44 is not set 601# CONFIG_B44 is not set
588CONFIG_FEC_MPC52xx=y 602CONFIG_FEC_MPC52xx=y
589CONFIG_FEC_MPC52xx_MDIO=y 603CONFIG_FEC_MPC52xx_MDIO=y
604# CONFIG_ATL2 is not set
590CONFIG_NETDEV_1000=y 605CONFIG_NETDEV_1000=y
591# CONFIG_ACENIC is not set 606# CONFIG_ACENIC is not set
592# CONFIG_DL2K is not set 607# CONFIG_DL2K is not set
593# CONFIG_E1000 is not set 608# CONFIG_E1000 is not set
594# CONFIG_E1000E is not set 609# CONFIG_E1000E is not set
595# CONFIG_E1000E_ENABLED is not set
596# CONFIG_IP1000 is not set 610# CONFIG_IP1000 is not set
597# CONFIG_IGB is not set 611# CONFIG_IGB is not set
598# CONFIG_NS83820 is not set 612# CONFIG_NS83820 is not set
@@ -605,22 +619,27 @@ CONFIG_NETDEV_1000=y
605# CONFIG_VIA_VELOCITY is not set 619# CONFIG_VIA_VELOCITY is not set
606# CONFIG_TIGON3 is not set 620# CONFIG_TIGON3 is not set
607# CONFIG_BNX2 is not set 621# CONFIG_BNX2 is not set
608# CONFIG_GIANFAR is not set
609# CONFIG_MV643XX_ETH is not set 622# CONFIG_MV643XX_ETH is not set
610# CONFIG_QLA3XXX is not set 623# CONFIG_QLA3XXX is not set
611# CONFIG_ATL1 is not set 624# CONFIG_ATL1 is not set
625# CONFIG_ATL1E is not set
626# CONFIG_JME is not set
612CONFIG_NETDEV_10000=y 627CONFIG_NETDEV_10000=y
613# CONFIG_CHELSIO_T1 is not set 628# CONFIG_CHELSIO_T1 is not set
614# CONFIG_CHELSIO_T3 is not set 629# CONFIG_CHELSIO_T3 is not set
630# CONFIG_ENIC is not set
615# CONFIG_IXGBE is not set 631# CONFIG_IXGBE is not set
616# CONFIG_IXGB is not set 632# CONFIG_IXGB is not set
617# CONFIG_S2IO is not set 633# CONFIG_S2IO is not set
618# CONFIG_MYRI10GE is not set 634# CONFIG_MYRI10GE is not set
619# CONFIG_NETXEN_NIC is not set 635# CONFIG_NETXEN_NIC is not set
620# CONFIG_NIU is not set 636# CONFIG_NIU is not set
637# CONFIG_MLX4_EN is not set
621# CONFIG_MLX4_CORE is not set 638# CONFIG_MLX4_CORE is not set
622# CONFIG_TEHUTI is not set 639# CONFIG_TEHUTI is not set
623# CONFIG_BNX2X is not set 640# CONFIG_BNX2X is not set
641# CONFIG_QLGE is not set
642# CONFIG_SFC is not set
624# CONFIG_TR is not set 643# CONFIG_TR is not set
625 644
626# 645#
@@ -628,7 +647,6 @@ CONFIG_NETDEV_10000=y
628# 647#
629# CONFIG_WLAN_PRE80211 is not set 648# CONFIG_WLAN_PRE80211 is not set
630# CONFIG_WLAN_80211 is not set 649# CONFIG_WLAN_80211 is not set
631# CONFIG_IWLWIFI is not set
632# CONFIG_IWLWIFI_LEDS is not set 650# CONFIG_IWLWIFI_LEDS is not set
633# CONFIG_WAN is not set 651# CONFIG_WAN is not set
634# CONFIG_FDDI is not set 652# CONFIG_FDDI is not set
@@ -657,6 +675,7 @@ CONFIG_NETDEV_10000=y
657# Character devices 675# Character devices
658# 676#
659# CONFIG_VT is not set 677# CONFIG_VT is not set
678CONFIG_DEVKMEM=y
660# CONFIG_SERIAL_NONSTANDARD is not set 679# CONFIG_SERIAL_NONSTANDARD is not set
661# CONFIG_NOZOMI is not set 680# CONFIG_NOZOMI is not set
662 681
@@ -691,42 +710,63 @@ CONFIG_DEVPORT=y
691CONFIG_I2C=y 710CONFIG_I2C=y
692CONFIG_I2C_BOARDINFO=y 711CONFIG_I2C_BOARDINFO=y
693CONFIG_I2C_CHARDEV=y 712CONFIG_I2C_CHARDEV=y
713CONFIG_I2C_HELPER_AUTO=y
694 714
695# 715#
696# I2C Hardware Bus support 716# I2C Hardware Bus support
697# 717#
718
719#
720# PC SMBus host controller drivers
721#
698# CONFIG_I2C_ALI1535 is not set 722# CONFIG_I2C_ALI1535 is not set
699# CONFIG_I2C_ALI1563 is not set 723# CONFIG_I2C_ALI1563 is not set
700# CONFIG_I2C_ALI15X3 is not set 724# CONFIG_I2C_ALI15X3 is not set
701# CONFIG_I2C_AMD756 is not set 725# CONFIG_I2C_AMD756 is not set
702# CONFIG_I2C_AMD8111 is not set 726# CONFIG_I2C_AMD8111 is not set
703# CONFIG_I2C_I801 is not set 727# CONFIG_I2C_I801 is not set
704# CONFIG_I2C_I810 is not set 728# CONFIG_I2C_ISCH is not set
705# CONFIG_I2C_PIIX4 is not set 729# CONFIG_I2C_PIIX4 is not set
706CONFIG_I2C_MPC=y
707# CONFIG_I2C_NFORCE2 is not set 730# CONFIG_I2C_NFORCE2 is not set
708# CONFIG_I2C_OCORES is not set
709# CONFIG_I2C_PARPORT_LIGHT is not set
710# CONFIG_I2C_PROSAVAGE is not set
711# CONFIG_I2C_SAVAGE4 is not set
712# CONFIG_I2C_SIMTEC is not set
713# CONFIG_I2C_SIS5595 is not set 731# CONFIG_I2C_SIS5595 is not set
714# CONFIG_I2C_SIS630 is not set 732# CONFIG_I2C_SIS630 is not set
715# CONFIG_I2C_SIS96X is not set 733# CONFIG_I2C_SIS96X is not set
716# CONFIG_I2C_TAOS_EVM is not set
717# CONFIG_I2C_STUB is not set
718# CONFIG_I2C_VIA is not set 734# CONFIG_I2C_VIA is not set
719# CONFIG_I2C_VIAPRO is not set 735# CONFIG_I2C_VIAPRO is not set
736
737#
738# I2C system bus drivers (mostly embedded / system-on-chip)
739#
740CONFIG_I2C_MPC=y
741# CONFIG_I2C_OCORES is not set
742# CONFIG_I2C_SIMTEC is not set
743
744#
745# External I2C/SMBus adapter drivers
746#
747# CONFIG_I2C_PARPORT_LIGHT is not set
748# CONFIG_I2C_TAOS_EVM is not set
749
750#
751# Graphics adapter I2C/DDC channel drivers
752#
720# CONFIG_I2C_VOODOO3 is not set 753# CONFIG_I2C_VOODOO3 is not set
754
755#
756# Other I2C/SMBus bus drivers
757#
721# CONFIG_I2C_PCA_PLATFORM is not set 758# CONFIG_I2C_PCA_PLATFORM is not set
759# CONFIG_I2C_STUB is not set
722 760
723# 761#
724# Miscellaneous I2C Chip support 762# Miscellaneous I2C Chip support
725# 763#
726# CONFIG_DS1682 is not set 764# CONFIG_DS1682 is not set
765# CONFIG_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set 766# CONFIG_SENSORS_EEPROM is not set
728# CONFIG_SENSORS_PCF8574 is not set 767# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set 768# CONFIG_PCF8575 is not set
769# CONFIG_SENSORS_PCA9539 is not set
730# CONFIG_SENSORS_PCF8591 is not set 770# CONFIG_SENSORS_PCF8591 is not set
731# CONFIG_SENSORS_MAX6875 is not set 771# CONFIG_SENSORS_MAX6875 is not set
732# CONFIG_SENSORS_TSL2550 is not set 772# CONFIG_SENSORS_TSL2550 is not set
@@ -735,29 +775,47 @@ CONFIG_I2C_MPC=y
735# CONFIG_I2C_DEBUG_BUS is not set 775# CONFIG_I2C_DEBUG_BUS is not set
736# CONFIG_I2C_DEBUG_CHIP is not set 776# CONFIG_I2C_DEBUG_CHIP is not set
737# CONFIG_SPI is not set 777# CONFIG_SPI is not set
778CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
779# CONFIG_GPIOLIB is not set
738# CONFIG_W1 is not set 780# CONFIG_W1 is not set
739# CONFIG_POWER_SUPPLY is not set 781# CONFIG_POWER_SUPPLY is not set
740# CONFIG_HWMON is not set 782# CONFIG_HWMON is not set
741# CONFIG_THERMAL is not set 783# CONFIG_THERMAL is not set
784# CONFIG_THERMAL_HWMON is not set
742# CONFIG_WATCHDOG is not set 785# CONFIG_WATCHDOG is not set
786CONFIG_SSB_POSSIBLE=y
743 787
744# 788#
745# Sonics Silicon Backplane 789# Sonics Silicon Backplane
746# 790#
747CONFIG_SSB_POSSIBLE=y
748# CONFIG_SSB is not set 791# CONFIG_SSB is not set
749 792
750# 793#
751# Multifunction device drivers 794# Multifunction device drivers
752# 795#
796# CONFIG_MFD_CORE is not set
753# CONFIG_MFD_SM501 is not set 797# CONFIG_MFD_SM501 is not set
754# CONFIG_HTC_PASIC3 is not set 798# CONFIG_HTC_PASIC3 is not set
799# CONFIG_MFD_TMIO is not set
800# CONFIG_PMIC_DA903X is not set
801# CONFIG_MFD_WM8400 is not set
802# CONFIG_MFD_WM8350_I2C is not set
803# CONFIG_REGULATOR is not set
755 804
756# 805#
757# Multimedia devices 806# Multimedia devices
758# 807#
808
809#
810# Multimedia core support
811#
759# CONFIG_VIDEO_DEV is not set 812# CONFIG_VIDEO_DEV is not set
760# CONFIG_DVB_CORE is not set 813# CONFIG_DVB_CORE is not set
814# CONFIG_VIDEO_MEDIA is not set
815
816#
817# Multimedia drivers
818#
761# CONFIG_DAB is not set 819# CONFIG_DAB is not set
762 820
763# 821#
@@ -774,10 +832,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
774# Display device support 832# Display device support
775# 833#
776# CONFIG_DISPLAY_SUPPORT is not set 834# CONFIG_DISPLAY_SUPPORT is not set
777
778#
779# Sound
780#
781# CONFIG_SOUND is not set 835# CONFIG_SOUND is not set
782CONFIG_USB_SUPPORT=y 836CONFIG_USB_SUPPORT=y
783CONFIG_USB_ARCH_HAS_HCD=y 837CONFIG_USB_ARCH_HAS_HCD=y
@@ -788,17 +842,25 @@ CONFIG_USB_ARCH_HAS_EHCI=y
788# CONFIG_USB_OTG_BLACKLIST_HUB is not set 842# CONFIG_USB_OTG_BLACKLIST_HUB is not set
789 843
790# 844#
845# Enable Host or Gadget support to see Inventra options
846#
847
848#
791# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 849# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
792# 850#
793# CONFIG_USB_GADGET is not set 851# CONFIG_USB_GADGET is not set
852# CONFIG_UWB is not set
794# CONFIG_MMC is not set 853# CONFIG_MMC is not set
795# CONFIG_MEMSTICK is not set 854# CONFIG_MEMSTICK is not set
796# CONFIG_NEW_LEDS is not set 855# CONFIG_NEW_LEDS is not set
856# CONFIG_ACCESSIBILITY is not set
797# CONFIG_INFINIBAND is not set 857# CONFIG_INFINIBAND is not set
798# CONFIG_EDAC is not set 858# CONFIG_EDAC is not set
799# CONFIG_RTC_CLASS is not set 859# CONFIG_RTC_CLASS is not set
800# CONFIG_DMADEVICES is not set 860# CONFIG_DMADEVICES is not set
801# CONFIG_UIO is not set 861# CONFIG_UIO is not set
862# CONFIG_STAGING is not set
863CONFIG_STAGING_EXCLUDE_BUILD=y
802 864
803# 865#
804# File systems 866# File systems
@@ -810,12 +872,13 @@ CONFIG_EXT3_FS=y
810CONFIG_EXT3_FS_XATTR=y 872CONFIG_EXT3_FS_XATTR=y
811# CONFIG_EXT3_FS_POSIX_ACL is not set 873# CONFIG_EXT3_FS_POSIX_ACL is not set
812# CONFIG_EXT3_FS_SECURITY is not set 874# CONFIG_EXT3_FS_SECURITY is not set
813# CONFIG_EXT4DEV_FS is not set 875# CONFIG_EXT4_FS is not set
814CONFIG_JBD=y 876CONFIG_JBD=y
815CONFIG_FS_MBCACHE=y 877CONFIG_FS_MBCACHE=y
816# CONFIG_REISERFS_FS is not set 878# CONFIG_REISERFS_FS is not set
817# CONFIG_JFS_FS is not set 879# CONFIG_JFS_FS is not set
818# CONFIG_FS_POSIX_ACL is not set 880# CONFIG_FS_POSIX_ACL is not set
881CONFIG_FILE_LOCKING=y
819# CONFIG_XFS_FS is not set 882# CONFIG_XFS_FS is not set
820# CONFIG_OCFS2_FS is not set 883# CONFIG_OCFS2_FS is not set
821CONFIG_DNOTIFY=y 884CONFIG_DNOTIFY=y
@@ -845,6 +908,7 @@ CONFIG_INOTIFY_USER=y
845CONFIG_PROC_FS=y 908CONFIG_PROC_FS=y
846CONFIG_PROC_KCORE=y 909CONFIG_PROC_KCORE=y
847CONFIG_PROC_SYSCTL=y 910CONFIG_PROC_SYSCTL=y
911CONFIG_PROC_PAGE_MONITOR=y
848CONFIG_SYSFS=y 912CONFIG_SYSFS=y
849CONFIG_TMPFS=y 913CONFIG_TMPFS=y
850# CONFIG_TMPFS_POSIX_ACL is not set 914# CONFIG_TMPFS_POSIX_ACL is not set
@@ -864,6 +928,7 @@ CONFIG_TMPFS=y
864# CONFIG_CRAMFS is not set 928# CONFIG_CRAMFS is not set
865# CONFIG_VXFS_FS is not set 929# CONFIG_VXFS_FS is not set
866# CONFIG_MINIX_FS is not set 930# CONFIG_MINIX_FS is not set
931# CONFIG_OMFS_FS is not set
867# CONFIG_HPFS_FS is not set 932# CONFIG_HPFS_FS is not set
868# CONFIG_QNX4FS_FS is not set 933# CONFIG_QNX4FS_FS is not set
869# CONFIG_ROMFS_FS is not set 934# CONFIG_ROMFS_FS is not set
@@ -874,14 +939,14 @@ CONFIG_NFS_FS=y
874CONFIG_NFS_V3=y 939CONFIG_NFS_V3=y
875# CONFIG_NFS_V3_ACL is not set 940# CONFIG_NFS_V3_ACL is not set
876CONFIG_NFS_V4=y 941CONFIG_NFS_V4=y
877# CONFIG_NFSD is not set
878CONFIG_ROOT_NFS=y 942CONFIG_ROOT_NFS=y
943# CONFIG_NFSD is not set
879CONFIG_LOCKD=y 944CONFIG_LOCKD=y
880CONFIG_LOCKD_V4=y 945CONFIG_LOCKD_V4=y
881CONFIG_NFS_COMMON=y 946CONFIG_NFS_COMMON=y
882CONFIG_SUNRPC=y 947CONFIG_SUNRPC=y
883CONFIG_SUNRPC_GSS=y 948CONFIG_SUNRPC_GSS=y
884# CONFIG_SUNRPC_BIND34 is not set 949# CONFIG_SUNRPC_REGISTER_V4 is not set
885CONFIG_RPCSEC_GSS_KRB5=y 950CONFIG_RPCSEC_GSS_KRB5=y
886# CONFIG_RPCSEC_GSS_SPKM3 is not set 951# CONFIG_RPCSEC_GSS_SPKM3 is not set
887# CONFIG_SMB_FS is not set 952# CONFIG_SMB_FS is not set
@@ -902,9 +967,9 @@ CONFIG_MSDOS_PARTITION=y
902# Library routines 967# Library routines
903# 968#
904CONFIG_BITREVERSE=y 969CONFIG_BITREVERSE=y
905# CONFIG_GENERIC_FIND_FIRST_BIT is not set
906# CONFIG_CRC_CCITT is not set 970# CONFIG_CRC_CCITT is not set
907# CONFIG_CRC16 is not set 971# CONFIG_CRC16 is not set
972# CONFIG_CRC_T10DIF is not set
908# CONFIG_CRC_ITU_T is not set 973# CONFIG_CRC_ITU_T is not set
909CONFIG_CRC32=y 974CONFIG_CRC32=y
910# CONFIG_CRC7 is not set 975# CONFIG_CRC7 is not set
@@ -929,9 +994,12 @@ CONFIG_FRAME_WARN=1024
929CONFIG_DEBUG_KERNEL=y 994CONFIG_DEBUG_KERNEL=y
930# CONFIG_DEBUG_SHIRQ is not set 995# CONFIG_DEBUG_SHIRQ is not set
931CONFIG_DETECT_SOFTLOCKUP=y 996CONFIG_DETECT_SOFTLOCKUP=y
997# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
998CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
932CONFIG_SCHED_DEBUG=y 999CONFIG_SCHED_DEBUG=y
933# CONFIG_SCHEDSTATS is not set 1000# CONFIG_SCHEDSTATS is not set
934# CONFIG_TIMER_STATS is not set 1001# CONFIG_TIMER_STATS is not set
1002# CONFIG_DEBUG_OBJECTS is not set
935# CONFIG_SLUB_DEBUG_ON is not set 1003# CONFIG_SLUB_DEBUG_ON is not set
936# CONFIG_SLUB_STATS is not set 1004# CONFIG_SLUB_STATS is not set
937# CONFIG_DEBUG_RT_MUTEXES is not set 1005# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -945,17 +1013,37 @@ CONFIG_SCHED_DEBUG=y
945CONFIG_DEBUG_INFO=y 1013CONFIG_DEBUG_INFO=y
946# CONFIG_DEBUG_VM is not set 1014# CONFIG_DEBUG_VM is not set
947# CONFIG_DEBUG_WRITECOUNT is not set 1015# CONFIG_DEBUG_WRITECOUNT is not set
1016# CONFIG_DEBUG_MEMORY_INIT is not set
948# CONFIG_DEBUG_LIST is not set 1017# CONFIG_DEBUG_LIST is not set
949# CONFIG_DEBUG_SG is not set 1018# CONFIG_DEBUG_SG is not set
950# CONFIG_BOOT_PRINTK_DELAY is not set 1019# CONFIG_BOOT_PRINTK_DELAY is not set
951# CONFIG_RCU_TORTURE_TEST is not set 1020# CONFIG_RCU_TORTURE_TEST is not set
1021# CONFIG_RCU_CPU_STALL_DETECTOR is not set
952# CONFIG_BACKTRACE_SELF_TEST is not set 1022# CONFIG_BACKTRACE_SELF_TEST is not set
1023# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
953# CONFIG_FAULT_INJECTION is not set 1024# CONFIG_FAULT_INJECTION is not set
1025# CONFIG_LATENCYTOP is not set
1026CONFIG_HAVE_FUNCTION_TRACER=y
1027
1028#
1029# Tracers
1030#
1031# CONFIG_FUNCTION_TRACER is not set
1032# CONFIG_SCHED_TRACER is not set
1033# CONFIG_CONTEXT_SWITCH_TRACER is not set
1034# CONFIG_BOOT_TRACER is not set
1035# CONFIG_STACK_TRACER is not set
1036# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
954# CONFIG_SAMPLES is not set 1037# CONFIG_SAMPLES is not set
1038CONFIG_HAVE_ARCH_KGDB=y
1039# CONFIG_KGDB is not set
955# CONFIG_DEBUG_STACKOVERFLOW is not set 1040# CONFIG_DEBUG_STACKOVERFLOW is not set
956# CONFIG_DEBUG_STACK_USAGE is not set 1041# CONFIG_DEBUG_STACK_USAGE is not set
957# CONFIG_DEBUG_PAGEALLOC is not set 1042# CONFIG_DEBUG_PAGEALLOC is not set
958# CONFIG_DEBUGGER is not set 1043# CONFIG_CODE_PATCHING_SELFTEST is not set
1044# CONFIG_FTR_FIXUP_SELFTEST is not set
1045# CONFIG_MSI_BITMAP_SELFTEST is not set
1046# CONFIG_XMON is not set
959# CONFIG_IRQSTACKS is not set 1047# CONFIG_IRQSTACKS is not set
960# CONFIG_BDI_SWITCH is not set 1048# CONFIG_BDI_SWITCH is not set
961# CONFIG_BOOTX_TEXT is not set 1049# CONFIG_BOOTX_TEXT is not set
@@ -966,14 +1054,19 @@ CONFIG_DEBUG_INFO=y
966# 1054#
967# CONFIG_KEYS is not set 1055# CONFIG_KEYS is not set
968# CONFIG_SECURITY is not set 1056# CONFIG_SECURITY is not set
1057# CONFIG_SECURITYFS is not set
969# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1058# CONFIG_SECURITY_FILE_CAPABILITIES is not set
970CONFIG_CRYPTO=y 1059CONFIG_CRYPTO=y
971 1060
972# 1061#
973# Crypto core or helper 1062# Crypto core or helper
974# 1063#
1064# CONFIG_CRYPTO_FIPS is not set
975CONFIG_CRYPTO_ALGAPI=y 1065CONFIG_CRYPTO_ALGAPI=y
1066CONFIG_CRYPTO_AEAD=y
976CONFIG_CRYPTO_BLKCIPHER=y 1067CONFIG_CRYPTO_BLKCIPHER=y
1068CONFIG_CRYPTO_HASH=y
1069CONFIG_CRYPTO_RNG=y
977CONFIG_CRYPTO_MANAGER=y 1070CONFIG_CRYPTO_MANAGER=y
978# CONFIG_CRYPTO_GF128MUL is not set 1071# CONFIG_CRYPTO_GF128MUL is not set
979# CONFIG_CRYPTO_NULL is not set 1072# CONFIG_CRYPTO_NULL is not set
@@ -1012,6 +1105,10 @@ CONFIG_CRYPTO_CBC=y
1012# CONFIG_CRYPTO_MD4 is not set 1105# CONFIG_CRYPTO_MD4 is not set
1013CONFIG_CRYPTO_MD5=y 1106CONFIG_CRYPTO_MD5=y
1014# CONFIG_CRYPTO_MICHAEL_MIC is not set 1107# CONFIG_CRYPTO_MICHAEL_MIC is not set
1108# CONFIG_CRYPTO_RMD128 is not set
1109# CONFIG_CRYPTO_RMD160 is not set
1110# CONFIG_CRYPTO_RMD256 is not set
1111# CONFIG_CRYPTO_RMD320 is not set
1015# CONFIG_CRYPTO_SHA1 is not set 1112# CONFIG_CRYPTO_SHA1 is not set
1016# CONFIG_CRYPTO_SHA256 is not set 1113# CONFIG_CRYPTO_SHA256 is not set
1017# CONFIG_CRYPTO_SHA512 is not set 1114# CONFIG_CRYPTO_SHA512 is not set
@@ -1042,6 +1139,11 @@ CONFIG_CRYPTO_DES=y
1042# 1139#
1043# CONFIG_CRYPTO_DEFLATE is not set 1140# CONFIG_CRYPTO_DEFLATE is not set
1044# CONFIG_CRYPTO_LZO is not set 1141# CONFIG_CRYPTO_LZO is not set
1142
1143#
1144# Random Number Generation
1145#
1146# CONFIG_CRYPTO_ANSI_CPRNG is not set
1045CONFIG_CRYPTO_HW=y 1147CONFIG_CRYPTO_HW=y
1046# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1148# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1047CONFIG_PPC_CLOCK=y 1149CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig
index 8c7ba7c6ba49..3c0d4e561726 100644
--- a/arch/powerpc/configs/52xx/motionpro_defconfig
+++ b/arch/powerpc/configs/52xx/motionpro_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25 3# Linux kernel version: 2.6.28-rc4
4# Tue Apr 29 07:12:22 2008 4# Thu Nov 13 02:11:02 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y
22# CONFIG_SMP is not set 22# CONFIG_SMP is not set
23CONFIG_PPC32=y 23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32 24CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y 25# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
26CONFIG_MMU=y 26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 28CONFIG_GENERIC_TIME=y
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -102,6 +103,7 @@ CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 103CONFIG_TIMERFD=y
103CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 105CONFIG_SHMEM=y
106CONFIG_AIO=y
105CONFIG_VM_EVENT_COUNTERS=y 107CONFIG_VM_EVENT_COUNTERS=y
106CONFIG_SLUB_DEBUG=y 108CONFIG_SLUB_DEBUG=y
107# CONFIG_SLAB is not set 109# CONFIG_SLAB is not set
@@ -110,9 +112,13 @@ CONFIG_SLUB=y
110# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y 119CONFIG_HAVE_ARCH_TRACEHOOK=y
120CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
116CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
117CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
118# CONFIG_TINY_SHMEM is not set 124# CONFIG_TINY_SHMEM is not set
@@ -123,6 +129,7 @@ CONFIG_BLOCK=y
123# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
124# CONFIG_LSF is not set 130# CONFIG_LSF is not set
125# CONFIG_BLK_DEV_BSG is not set 131# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set
126 133
127# 134#
128# IO Schedulers 135# IO Schedulers
@@ -137,19 +144,16 @@ CONFIG_DEFAULT_AS=y
137# CONFIG_DEFAULT_NOOP is not set 144# CONFIG_DEFAULT_NOOP is not set
138CONFIG_DEFAULT_IOSCHED="anticipatory" 145CONFIG_DEFAULT_IOSCHED="anticipatory"
139CONFIG_CLASSIC_RCU=y 146CONFIG_CLASSIC_RCU=y
147# CONFIG_FREEZER is not set
140 148
141# 149#
142# Platform support 150# Platform support
143# 151#
144CONFIG_PPC_MULTIPLATFORM=y 152CONFIG_PPC_MULTIPLATFORM=y
145# CONFIG_PPC_82xx is not set
146# CONFIG_PPC_83xx is not set
147# CONFIG_PPC_86xx is not set
148CONFIG_CLASSIC32=y 153CONFIG_CLASSIC32=y
149# CONFIG_PPC_CHRP is not set 154# CONFIG_PPC_CHRP is not set
150# CONFIG_PPC_MPC512x is not set
151# CONFIG_PPC_MPC5121 is not set
152# CONFIG_MPC5121_ADS is not set 155# CONFIG_MPC5121_ADS is not set
156# CONFIG_MPC5121_GENERIC is not set
153CONFIG_PPC_MPC52xx=y 157CONFIG_PPC_MPC52xx=y
154CONFIG_PPC_MPC5200_SIMPLE=y 158CONFIG_PPC_MPC5200_SIMPLE=y
155# CONFIG_PPC_EFIKA is not set 159# CONFIG_PPC_EFIKA is not set
@@ -159,7 +163,10 @@ CONFIG_PPC_MPC5200_SIMPLE=y
159# CONFIG_PPC_PMAC is not set 163# CONFIG_PPC_PMAC is not set
160# CONFIG_PPC_CELL is not set 164# CONFIG_PPC_CELL is not set
161# CONFIG_PPC_CELL_NATIVE is not set 165# CONFIG_PPC_CELL_NATIVE is not set
166# CONFIG_PPC_82xx is not set
162# CONFIG_PQ2ADS is not set 167# CONFIG_PQ2ADS is not set
168# CONFIG_PPC_83xx is not set
169# CONFIG_PPC_86xx is not set
163# CONFIG_EMBEDDED6xx is not set 170# CONFIG_EMBEDDED6xx is not set
164# CONFIG_IPIC is not set 171# CONFIG_IPIC is not set
165# CONFIG_MPIC is not set 172# CONFIG_MPIC is not set
@@ -183,7 +190,6 @@ CONFIG_PPC_BESTCOMM_FEC=y
183# Kernel options 190# Kernel options
184# 191#
185# CONFIG_HIGHMEM is not set 192# CONFIG_HIGHMEM is not set
186# CONFIG_TICK_ONESHOT is not set
187# CONFIG_NO_HZ is not set 193# CONFIG_NO_HZ is not set
188# CONFIG_HIGH_RES_TIMERS is not set 194# CONFIG_HIGH_RES_TIMERS is not set
189CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -197,6 +203,8 @@ CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
199CONFIG_BINFMT_ELF=y 205CONFIG_BINFMT_ELF=y
206# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
207# CONFIG_HAVE_AOUT is not set
200# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
201# CONFIG_IOMMU_HELPER is not set 209# CONFIG_IOMMU_HELPER is not set
202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -211,19 +219,20 @@ CONFIG_FLATMEM_MANUAL=y
211# CONFIG_SPARSEMEM_MANUAL is not set 219# CONFIG_SPARSEMEM_MANUAL is not set
212CONFIG_FLATMEM=y 220CONFIG_FLATMEM=y
213CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
214# CONFIG_SPARSEMEM_STATIC is not set
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
221CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y
222CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
225CONFIG_PM=y 235CONFIG_PM=y
226# CONFIG_PM_LEGACY is not set
227# CONFIG_PM_DEBUG is not set 236# CONFIG_PM_DEBUG is not set
228CONFIG_SECCOMP=y 237CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -233,7 +242,7 @@ CONFIG_ISA_DMA_API=y
233# 242#
234CONFIG_ZONE_DMA=y 243CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 244CONFIG_GENERIC_ISA_DMA=y
236CONFIG_FSL_SOC=y 245CONFIG_PPC_PCI_CHOICE=y
237# CONFIG_PCI is not set 246# CONFIG_PCI is not set
238# CONFIG_PCI_DOMAINS is not set 247# CONFIG_PCI_DOMAINS is not set
239# CONFIG_PCI_SYSCALL is not set 248# CONFIG_PCI_SYSCALL is not set
@@ -254,10 +263,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
254CONFIG_KERNEL_START=0xc0000000 263CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000 264CONFIG_PHYSICAL_START=0x00000000
256CONFIG_TASK_SIZE=0xc0000000 265CONFIG_TASK_SIZE=0xc0000000
257
258#
259# Networking
260#
261CONFIG_NET=y 266CONFIG_NET=y
262 267
263# 268#
@@ -308,6 +313,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
308# CONFIG_TIPC is not set 313# CONFIG_TIPC is not set
309# CONFIG_ATM is not set 314# CONFIG_ATM is not set
310# CONFIG_BRIDGE is not set 315# CONFIG_BRIDGE is not set
316# CONFIG_NET_DSA is not set
311# CONFIG_VLAN_8021Q is not set 317# CONFIG_VLAN_8021Q is not set
312# CONFIG_DECNET is not set 318# CONFIG_DECNET is not set
313# CONFIG_LLC2 is not set 319# CONFIG_LLC2 is not set
@@ -328,14 +334,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
328# CONFIG_IRDA is not set 334# CONFIG_IRDA is not set
329# CONFIG_BT is not set 335# CONFIG_BT is not set
330# CONFIG_AF_RXRPC is not set 336# CONFIG_AF_RXRPC is not set
331 337# CONFIG_PHONET is not set
332# 338# CONFIG_WIRELESS is not set
333# Wireless
334#
335# CONFIG_CFG80211 is not set
336# CONFIG_WIRELESS_EXT is not set
337# CONFIG_MAC80211 is not set
338# CONFIG_IEEE80211 is not set
339# CONFIG_RFKILL is not set 339# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set 340# CONFIG_NET_9P is not set
341 341
@@ -445,9 +445,12 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
445# CONFIG_BLK_DEV_XIP is not set 445# CONFIG_BLK_DEV_XIP is not set
446# CONFIG_CDROM_PKTCDVD is not set 446# CONFIG_CDROM_PKTCDVD is not set
447# CONFIG_ATA_OVER_ETH is not set 447# CONFIG_ATA_OVER_ETH is not set
448# CONFIG_BLK_DEV_HD is not set
448CONFIG_MISC_DEVICES=y 449CONFIG_MISC_DEVICES=y
449# CONFIG_EEPROM_93CX6 is not set 450# CONFIG_EEPROM_93CX6 is not set
451# CONFIG_ICS932S401 is not set
450# CONFIG_ENCLOSURE_SERVICES is not set 452# CONFIG_ENCLOSURE_SERVICES is not set
453# CONFIG_C2PORT is not set
451CONFIG_HAVE_IDE=y 454CONFIG_HAVE_IDE=y
452# CONFIG_IDE is not set 455# CONFIG_IDE is not set
453 456
@@ -490,10 +493,10 @@ CONFIG_CHR_DEV_SG=y
490CONFIG_SCSI_LOWLEVEL=y 493CONFIG_SCSI_LOWLEVEL=y
491# CONFIG_ISCSI_TCP is not set 494# CONFIG_ISCSI_TCP is not set
492# CONFIG_SCSI_DEBUG is not set 495# CONFIG_SCSI_DEBUG is not set
496# CONFIG_SCSI_DH is not set
493CONFIG_ATA=y 497CONFIG_ATA=y
494# CONFIG_ATA_NONSTANDARD is not set 498# CONFIG_ATA_NONSTANDARD is not set
495CONFIG_SATA_PMP=y 499CONFIG_SATA_PMP=y
496# CONFIG_SATA_FSL is not set
497CONFIG_ATA_SFF=y 500CONFIG_ATA_SFF=y
498# CONFIG_SATA_MV is not set 501# CONFIG_SATA_MV is not set
499CONFIG_PATA_MPC52xx=y 502CONFIG_PATA_MPC52xx=y
@@ -501,7 +504,6 @@ CONFIG_PATA_MPC52xx=y
501# CONFIG_MD is not set 504# CONFIG_MD is not set
502# CONFIG_MACINTOSH_DRIVERS is not set 505# CONFIG_MACINTOSH_DRIVERS is not set
503CONFIG_NETDEVICES=y 506CONFIG_NETDEVICES=y
504# CONFIG_NETDEVICES_MULTIQUEUE is not set
505# CONFIG_DUMMY is not set 507# CONFIG_DUMMY is not set
506# CONFIG_BONDING is not set 508# CONFIG_BONDING is not set
507# CONFIG_MACVLAN is not set 509# CONFIG_MACVLAN is not set
@@ -531,6 +533,9 @@ CONFIG_MII=y
531# CONFIG_IBM_NEW_EMAC_RGMII is not set 533# CONFIG_IBM_NEW_EMAC_RGMII is not set
532# CONFIG_IBM_NEW_EMAC_TAH is not set 534# CONFIG_IBM_NEW_EMAC_TAH is not set
533# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 535# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
536# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
537# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
538# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
534# CONFIG_B44 is not set 539# CONFIG_B44 is not set
535CONFIG_FEC_MPC52xx=y 540CONFIG_FEC_MPC52xx=y
536CONFIG_FEC_MPC52xx_MDIO=y 541CONFIG_FEC_MPC52xx_MDIO=y
@@ -542,7 +547,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
542# 547#
543# CONFIG_WLAN_PRE80211 is not set 548# CONFIG_WLAN_PRE80211 is not set
544# CONFIG_WLAN_80211 is not set 549# CONFIG_WLAN_80211 is not set
545# CONFIG_IWLWIFI is not set
546# CONFIG_IWLWIFI_LEDS is not set 550# CONFIG_IWLWIFI_LEDS is not set
547# CONFIG_WAN is not set 551# CONFIG_WAN is not set
548# CONFIG_PPP is not set 552# CONFIG_PPP is not set
@@ -568,6 +572,7 @@ CONFIG_FEC_MPC52xx_MDIO=y
568# Character devices 572# Character devices
569# 573#
570# CONFIG_VT is not set 574# CONFIG_VT is not set
575CONFIG_DEVKMEM=y
571# CONFIG_SERIAL_NONSTANDARD is not set 576# CONFIG_SERIAL_NONSTANDARD is not set
572 577
573# 578#
@@ -596,24 +601,39 @@ CONFIG_LEGACY_PTY_COUNT=256
596CONFIG_I2C=y 601CONFIG_I2C=y
597CONFIG_I2C_BOARDINFO=y 602CONFIG_I2C_BOARDINFO=y
598CONFIG_I2C_CHARDEV=y 603CONFIG_I2C_CHARDEV=y
604CONFIG_I2C_HELPER_AUTO=y
599 605
600# 606#
601# I2C Hardware Bus support 607# I2C Hardware Bus support
602# 608#
609
610#
611# I2C system bus drivers (mostly embedded / system-on-chip)
612#
603CONFIG_I2C_MPC=y 613CONFIG_I2C_MPC=y
604# CONFIG_I2C_OCORES is not set 614# CONFIG_I2C_OCORES is not set
605# CONFIG_I2C_PARPORT_LIGHT is not set
606# CONFIG_I2C_SIMTEC is not set 615# CONFIG_I2C_SIMTEC is not set
616
617#
618# External I2C/SMBus adapter drivers
619#
620# CONFIG_I2C_PARPORT_LIGHT is not set
607# CONFIG_I2C_TAOS_EVM is not set 621# CONFIG_I2C_TAOS_EVM is not set
622
623#
624# Other I2C/SMBus bus drivers
625#
608# CONFIG_I2C_PCA_PLATFORM is not set 626# CONFIG_I2C_PCA_PLATFORM is not set
609 627
610# 628#
611# Miscellaneous I2C Chip support 629# Miscellaneous I2C Chip support
612# 630#
613# CONFIG_DS1682 is not set 631# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set
614CONFIG_SENSORS_EEPROM=y 633CONFIG_SENSORS_EEPROM=y
615# CONFIG_SENSORS_PCF8574 is not set 634# CONFIG_SENSORS_PCF8574 is not set
616# CONFIG_PCF8575 is not set 635# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set
617# CONFIG_SENSORS_PCF8591 is not set 637# CONFIG_SENSORS_PCF8591 is not set
618# CONFIG_SENSORS_MAX6875 is not set 638# CONFIG_SENSORS_MAX6875 is not set
619# CONFIG_SENSORS_TSL2550 is not set 639# CONFIG_SENSORS_TSL2550 is not set
@@ -622,10 +642,13 @@ CONFIG_SENSORS_EEPROM=y
622# CONFIG_I2C_DEBUG_BUS is not set 642# CONFIG_I2C_DEBUG_BUS is not set
623# CONFIG_I2C_DEBUG_CHIP is not set 643# CONFIG_I2C_DEBUG_CHIP is not set
624# CONFIG_SPI is not set 644# CONFIG_SPI is not set
645CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
646# CONFIG_GPIOLIB is not set
625# CONFIG_W1 is not set 647# CONFIG_W1 is not set
626# CONFIG_POWER_SUPPLY is not set 648# CONFIG_POWER_SUPPLY is not set
627CONFIG_HWMON=y 649CONFIG_HWMON=y
628# CONFIG_HWMON_VID is not set 650# CONFIG_HWMON_VID is not set
651# CONFIG_SENSORS_AD7414 is not set
629# CONFIG_SENSORS_AD7418 is not set 652# CONFIG_SENSORS_AD7418 is not set
630# CONFIG_SENSORS_ADM1021 is not set 653# CONFIG_SENSORS_ADM1021 is not set
631# CONFIG_SENSORS_ADM1025 is not set 654# CONFIG_SENSORS_ADM1025 is not set
@@ -633,6 +656,7 @@ CONFIG_HWMON=y
633# CONFIG_SENSORS_ADM1029 is not set 656# CONFIG_SENSORS_ADM1029 is not set
634# CONFIG_SENSORS_ADM1031 is not set 657# CONFIG_SENSORS_ADM1031 is not set
635# CONFIG_SENSORS_ADM9240 is not set 658# CONFIG_SENSORS_ADM9240 is not set
659# CONFIG_SENSORS_ADT7462 is not set
636# CONFIG_SENSORS_ADT7470 is not set 660# CONFIG_SENSORS_ADT7470 is not set
637# CONFIG_SENSORS_ADT7473 is not set 661# CONFIG_SENSORS_ADT7473 is not set
638# CONFIG_SENSORS_ATXP1 is not set 662# CONFIG_SENSORS_ATXP1 is not set
@@ -675,6 +699,7 @@ CONFIG_HWMON=y
675# CONFIG_SENSORS_W83627EHF is not set 699# CONFIG_SENSORS_W83627EHF is not set
676# CONFIG_HWMON_DEBUG_CHIP is not set 700# CONFIG_HWMON_DEBUG_CHIP is not set
677# CONFIG_THERMAL is not set 701# CONFIG_THERMAL is not set
702# CONFIG_THERMAL_HWMON is not set
678CONFIG_WATCHDOG=y 703CONFIG_WATCHDOG=y
679# CONFIG_WATCHDOG_NOWAYOUT is not set 704# CONFIG_WATCHDOG_NOWAYOUT is not set
680 705
@@ -683,24 +708,39 @@ CONFIG_WATCHDOG=y
683# 708#
684# CONFIG_SOFT_WATCHDOG is not set 709# CONFIG_SOFT_WATCHDOG is not set
685# CONFIG_MPC5200_WDT is not set 710# CONFIG_MPC5200_WDT is not set
711CONFIG_SSB_POSSIBLE=y
686 712
687# 713#
688# Sonics Silicon Backplane 714# Sonics Silicon Backplane
689# 715#
690CONFIG_SSB_POSSIBLE=y
691# CONFIG_SSB is not set 716# CONFIG_SSB is not set
692 717
693# 718#
694# Multifunction device drivers 719# Multifunction device drivers
695# 720#
721# CONFIG_MFD_CORE is not set
696# CONFIG_MFD_SM501 is not set 722# CONFIG_MFD_SM501 is not set
697# CONFIG_HTC_PASIC3 is not set 723# CONFIG_HTC_PASIC3 is not set
724# CONFIG_MFD_TMIO is not set
725# CONFIG_PMIC_DA903X is not set
726# CONFIG_MFD_WM8400 is not set
727# CONFIG_MFD_WM8350_I2C is not set
728# CONFIG_REGULATOR is not set
698 729
699# 730#
700# Multimedia devices 731# Multimedia devices
701# 732#
733
734#
735# Multimedia core support
736#
702# CONFIG_VIDEO_DEV is not set 737# CONFIG_VIDEO_DEV is not set
703# CONFIG_DVB_CORE is not set 738# CONFIG_DVB_CORE is not set
739# CONFIG_VIDEO_MEDIA is not set
740
741#
742# Multimedia drivers
743#
704CONFIG_DAB=y 744CONFIG_DAB=y
705 745
706# 746#
@@ -715,10 +755,6 @@ CONFIG_DAB=y
715# Display device support 755# Display device support
716# 756#
717# CONFIG_DISPLAY_SUPPORT is not set 757# CONFIG_DISPLAY_SUPPORT is not set
718
719#
720# Sound
721#
722# CONFIG_SOUND is not set 758# CONFIG_SOUND is not set
723# CONFIG_USB_SUPPORT is not set 759# CONFIG_USB_SUPPORT is not set
724# CONFIG_MMC is not set 760# CONFIG_MMC is not set
@@ -729,6 +765,7 @@ CONFIG_LEDS_CLASS=y
729# 765#
730# LED drivers 766# LED drivers
731# 767#
768# CONFIG_LEDS_PCA955X is not set
732 769
733# 770#
734# LED Triggers 771# LED Triggers
@@ -736,7 +773,9 @@ CONFIG_LEDS_CLASS=y
736CONFIG_LEDS_TRIGGERS=y 773CONFIG_LEDS_TRIGGERS=y
737CONFIG_LEDS_TRIGGER_TIMER=y 774CONFIG_LEDS_TRIGGER_TIMER=y
738# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 775# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
776# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
739# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 777# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
778# CONFIG_ACCESSIBILITY is not set
740# CONFIG_EDAC is not set 779# CONFIG_EDAC is not set
741CONFIG_RTC_LIB=y 780CONFIG_RTC_LIB=y
742CONFIG_RTC_CLASS=y 781CONFIG_RTC_CLASS=y
@@ -767,6 +806,8 @@ CONFIG_RTC_DRV_DS1307=y
767# CONFIG_RTC_DRV_PCF8583 is not set 806# CONFIG_RTC_DRV_PCF8583 is not set
768# CONFIG_RTC_DRV_M41T80 is not set 807# CONFIG_RTC_DRV_M41T80 is not set
769# CONFIG_RTC_DRV_S35390A is not set 808# CONFIG_RTC_DRV_S35390A is not set
809# CONFIG_RTC_DRV_FM3130 is not set
810# CONFIG_RTC_DRV_RX8581 is not set
770 811
771# 812#
772# SPI RTC drivers 813# SPI RTC drivers
@@ -776,19 +817,25 @@ CONFIG_RTC_DRV_DS1307=y
776# Platform RTC drivers 817# Platform RTC drivers
777# 818#
778# CONFIG_RTC_DRV_CMOS is not set 819# CONFIG_RTC_DRV_CMOS is not set
820# CONFIG_RTC_DRV_DS1286 is not set
779# CONFIG_RTC_DRV_DS1511 is not set 821# CONFIG_RTC_DRV_DS1511 is not set
780# CONFIG_RTC_DRV_DS1553 is not set 822# CONFIG_RTC_DRV_DS1553 is not set
781# CONFIG_RTC_DRV_DS1742 is not set 823# CONFIG_RTC_DRV_DS1742 is not set
782# CONFIG_RTC_DRV_STK17TA8 is not set 824# CONFIG_RTC_DRV_STK17TA8 is not set
783# CONFIG_RTC_DRV_M48T86 is not set 825# CONFIG_RTC_DRV_M48T86 is not set
826# CONFIG_RTC_DRV_M48T35 is not set
784# CONFIG_RTC_DRV_M48T59 is not set 827# CONFIG_RTC_DRV_M48T59 is not set
828# CONFIG_RTC_DRV_BQ4802 is not set
785# CONFIG_RTC_DRV_V3020 is not set 829# CONFIG_RTC_DRV_V3020 is not set
786 830
787# 831#
788# on-CPU RTC drivers 832# on-CPU RTC drivers
789# 833#
834# CONFIG_RTC_DRV_PPC is not set
790# CONFIG_DMADEVICES is not set 835# CONFIG_DMADEVICES is not set
791# CONFIG_UIO is not set 836# CONFIG_UIO is not set
837# CONFIG_STAGING is not set
838CONFIG_STAGING_EXCLUDE_BUILD=y
792 839
793# 840#
794# File systems 841# File systems
@@ -800,12 +847,13 @@ CONFIG_EXT3_FS=y
800CONFIG_EXT3_FS_XATTR=y 847CONFIG_EXT3_FS_XATTR=y
801# CONFIG_EXT3_FS_POSIX_ACL is not set 848# CONFIG_EXT3_FS_POSIX_ACL is not set
802# CONFIG_EXT3_FS_SECURITY is not set 849# CONFIG_EXT3_FS_SECURITY is not set
803# CONFIG_EXT4DEV_FS is not set 850# CONFIG_EXT4_FS is not set
804CONFIG_JBD=y 851CONFIG_JBD=y
805CONFIG_FS_MBCACHE=y 852CONFIG_FS_MBCACHE=y
806# CONFIG_REISERFS_FS is not set 853# CONFIG_REISERFS_FS is not set
807# CONFIG_JFS_FS is not set 854# CONFIG_JFS_FS is not set
808# CONFIG_FS_POSIX_ACL is not set 855# CONFIG_FS_POSIX_ACL is not set
856CONFIG_FILE_LOCKING=y
809# CONFIG_XFS_FS is not set 857# CONFIG_XFS_FS is not set
810# CONFIG_OCFS2_FS is not set 858# CONFIG_OCFS2_FS is not set
811CONFIG_DNOTIFY=y 859CONFIG_DNOTIFY=y
@@ -838,6 +886,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
838CONFIG_PROC_FS=y 886CONFIG_PROC_FS=y
839CONFIG_PROC_KCORE=y 887CONFIG_PROC_KCORE=y
840CONFIG_PROC_SYSCTL=y 888CONFIG_PROC_SYSCTL=y
889CONFIG_PROC_PAGE_MONITOR=y
841CONFIG_SYSFS=y 890CONFIG_SYSFS=y
842CONFIG_TMPFS=y 891CONFIG_TMPFS=y
843# CONFIG_TMPFS_POSIX_ACL is not set 892# CONFIG_TMPFS_POSIX_ACL is not set
@@ -868,6 +917,7 @@ CONFIG_JFFS2_RTIME=y
868CONFIG_CRAMFS=y 917CONFIG_CRAMFS=y
869# CONFIG_VXFS_FS is not set 918# CONFIG_VXFS_FS is not set
870# CONFIG_MINIX_FS is not set 919# CONFIG_MINIX_FS is not set
920# CONFIG_OMFS_FS is not set
871# CONFIG_HPFS_FS is not set 921# CONFIG_HPFS_FS is not set
872# CONFIG_QNX4FS_FS is not set 922# CONFIG_QNX4FS_FS is not set
873# CONFIG_ROMFS_FS is not set 923# CONFIG_ROMFS_FS is not set
@@ -878,14 +928,14 @@ CONFIG_NFS_FS=y
878CONFIG_NFS_V3=y 928CONFIG_NFS_V3=y
879# CONFIG_NFS_V3_ACL is not set 929# CONFIG_NFS_V3_ACL is not set
880CONFIG_NFS_V4=y 930CONFIG_NFS_V4=y
881# CONFIG_NFSD is not set
882CONFIG_ROOT_NFS=y 931CONFIG_ROOT_NFS=y
932# CONFIG_NFSD is not set
883CONFIG_LOCKD=y 933CONFIG_LOCKD=y
884CONFIG_LOCKD_V4=y 934CONFIG_LOCKD_V4=y
885CONFIG_NFS_COMMON=y 935CONFIG_NFS_COMMON=y
886CONFIG_SUNRPC=y 936CONFIG_SUNRPC=y
887CONFIG_SUNRPC_GSS=y 937CONFIG_SUNRPC_GSS=y
888# CONFIG_SUNRPC_BIND34 is not set 938# CONFIG_SUNRPC_REGISTER_V4 is not set
889CONFIG_RPCSEC_GSS_KRB5=y 939CONFIG_RPCSEC_GSS_KRB5=y
890# CONFIG_RPCSEC_GSS_SPKM3 is not set 940# CONFIG_RPCSEC_GSS_SPKM3 is not set
891# CONFIG_SMB_FS is not set 941# CONFIG_SMB_FS is not set
@@ -961,9 +1011,9 @@ CONFIG_NLS_ISO8859_1=y
961# Library routines 1011# Library routines
962# 1012#
963CONFIG_BITREVERSE=y 1013CONFIG_BITREVERSE=y
964# CONFIG_GENERIC_FIND_FIRST_BIT is not set
965# CONFIG_CRC_CCITT is not set 1014# CONFIG_CRC_CCITT is not set
966# CONFIG_CRC16 is not set 1015# CONFIG_CRC16 is not set
1016# CONFIG_CRC_T10DIF is not set
967# CONFIG_CRC_ITU_T is not set 1017# CONFIG_CRC_ITU_T is not set
968CONFIG_CRC32=y 1018CONFIG_CRC32=y
969# CONFIG_CRC7 is not set 1019# CONFIG_CRC7 is not set
@@ -990,9 +1040,12 @@ CONFIG_FRAME_WARN=1024
990CONFIG_DEBUG_KERNEL=y 1040CONFIG_DEBUG_KERNEL=y
991# CONFIG_DEBUG_SHIRQ is not set 1041# CONFIG_DEBUG_SHIRQ is not set
992CONFIG_DETECT_SOFTLOCKUP=y 1042CONFIG_DETECT_SOFTLOCKUP=y
1043# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1044CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
993CONFIG_SCHED_DEBUG=y 1045CONFIG_SCHED_DEBUG=y
994# CONFIG_SCHEDSTATS is not set 1046# CONFIG_SCHEDSTATS is not set
995# CONFIG_TIMER_STATS is not set 1047# CONFIG_TIMER_STATS is not set
1048# CONFIG_DEBUG_OBJECTS is not set
996# CONFIG_SLUB_DEBUG_ON is not set 1049# CONFIG_SLUB_DEBUG_ON is not set
997# CONFIG_SLUB_STATS is not set 1050# CONFIG_SLUB_STATS is not set
998# CONFIG_DEBUG_RT_MUTEXES is not set 1051# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1006,16 +1059,37 @@ CONFIG_SCHED_DEBUG=y
1006CONFIG_DEBUG_INFO=y 1059CONFIG_DEBUG_INFO=y
1007# CONFIG_DEBUG_VM is not set 1060# CONFIG_DEBUG_VM is not set
1008# CONFIG_DEBUG_WRITECOUNT is not set 1061# CONFIG_DEBUG_WRITECOUNT is not set
1062# CONFIG_DEBUG_MEMORY_INIT is not set
1009# CONFIG_DEBUG_LIST is not set 1063# CONFIG_DEBUG_LIST is not set
1010# CONFIG_DEBUG_SG is not set 1064# CONFIG_DEBUG_SG is not set
1011# CONFIG_BOOT_PRINTK_DELAY is not set 1065# CONFIG_BOOT_PRINTK_DELAY is not set
1066# CONFIG_RCU_TORTURE_TEST is not set
1067# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1012# CONFIG_BACKTRACE_SELF_TEST is not set 1068# CONFIG_BACKTRACE_SELF_TEST is not set
1069# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1013# CONFIG_FAULT_INJECTION is not set 1070# CONFIG_FAULT_INJECTION is not set
1071# CONFIG_LATENCYTOP is not set
1072CONFIG_HAVE_FUNCTION_TRACER=y
1073
1074#
1075# Tracers
1076#
1077# CONFIG_FUNCTION_TRACER is not set
1078# CONFIG_SCHED_TRACER is not set
1079# CONFIG_CONTEXT_SWITCH_TRACER is not set
1080# CONFIG_BOOT_TRACER is not set
1081# CONFIG_STACK_TRACER is not set
1082# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1014# CONFIG_SAMPLES is not set 1083# CONFIG_SAMPLES is not set
1084CONFIG_HAVE_ARCH_KGDB=y
1085# CONFIG_KGDB is not set
1015# CONFIG_DEBUG_STACKOVERFLOW is not set 1086# CONFIG_DEBUG_STACKOVERFLOW is not set
1016# CONFIG_DEBUG_STACK_USAGE is not set 1087# CONFIG_DEBUG_STACK_USAGE is not set
1017# CONFIG_DEBUG_PAGEALLOC is not set 1088# CONFIG_DEBUG_PAGEALLOC is not set
1018# CONFIG_DEBUGGER is not set 1089# CONFIG_CODE_PATCHING_SELFTEST is not set
1090# CONFIG_FTR_FIXUP_SELFTEST is not set
1091# CONFIG_MSI_BITMAP_SELFTEST is not set
1092# CONFIG_XMON is not set
1019# CONFIG_IRQSTACKS is not set 1093# CONFIG_IRQSTACKS is not set
1020# CONFIG_BDI_SWITCH is not set 1094# CONFIG_BDI_SWITCH is not set
1021# CONFIG_BOOTX_TEXT is not set 1095# CONFIG_BOOTX_TEXT is not set
@@ -1026,14 +1100,19 @@ CONFIG_DEBUG_INFO=y
1026# 1100#
1027# CONFIG_KEYS is not set 1101# CONFIG_KEYS is not set
1028# CONFIG_SECURITY is not set 1102# CONFIG_SECURITY is not set
1103# CONFIG_SECURITYFS is not set
1029# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1104# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1030CONFIG_CRYPTO=y 1105CONFIG_CRYPTO=y
1031 1106
1032# 1107#
1033# Crypto core or helper 1108# Crypto core or helper
1034# 1109#
1110# CONFIG_CRYPTO_FIPS is not set
1035CONFIG_CRYPTO_ALGAPI=y 1111CONFIG_CRYPTO_ALGAPI=y
1112CONFIG_CRYPTO_AEAD=y
1036CONFIG_CRYPTO_BLKCIPHER=y 1113CONFIG_CRYPTO_BLKCIPHER=y
1114CONFIG_CRYPTO_HASH=y
1115CONFIG_CRYPTO_RNG=y
1037CONFIG_CRYPTO_MANAGER=y 1116CONFIG_CRYPTO_MANAGER=y
1038# CONFIG_CRYPTO_GF128MUL is not set 1117# CONFIG_CRYPTO_GF128MUL is not set
1039# CONFIG_CRYPTO_NULL is not set 1118# CONFIG_CRYPTO_NULL is not set
@@ -1071,6 +1150,10 @@ CONFIG_CRYPTO_PCBC=y
1071# CONFIG_CRYPTO_MD4 is not set 1150# CONFIG_CRYPTO_MD4 is not set
1072CONFIG_CRYPTO_MD5=y 1151CONFIG_CRYPTO_MD5=y
1073# CONFIG_CRYPTO_MICHAEL_MIC is not set 1152# CONFIG_CRYPTO_MICHAEL_MIC is not set
1153# CONFIG_CRYPTO_RMD128 is not set
1154# CONFIG_CRYPTO_RMD160 is not set
1155# CONFIG_CRYPTO_RMD256 is not set
1156# CONFIG_CRYPTO_RMD320 is not set
1074# CONFIG_CRYPTO_SHA1 is not set 1157# CONFIG_CRYPTO_SHA1 is not set
1075# CONFIG_CRYPTO_SHA256 is not set 1158# CONFIG_CRYPTO_SHA256 is not set
1076# CONFIG_CRYPTO_SHA512 is not set 1159# CONFIG_CRYPTO_SHA512 is not set
@@ -1101,6 +1184,11 @@ CONFIG_CRYPTO_DES=y
1101# 1184#
1102# CONFIG_CRYPTO_DEFLATE is not set 1185# CONFIG_CRYPTO_DEFLATE is not set
1103# CONFIG_CRYPTO_LZO is not set 1186# CONFIG_CRYPTO_LZO is not set
1187
1188#
1189# Random Number Generation
1190#
1191# CONFIG_CRYPTO_ANSI_CPRNG is not set
1104CONFIG_CRYPTO_HW=y 1192CONFIG_CRYPTO_HW=y
1105CONFIG_PPC_CLOCK=y 1193CONFIG_PPC_CLOCK=y
1106CONFIG_PPC_LIB_RHEAP=y 1194CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig
index 9c0caa488b2e..9d0207783d60 100644
--- a/arch/powerpc/configs/52xx/pcm030_defconfig
+++ b/arch/powerpc/configs/52xx/pcm030_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25 3# Linux kernel version: 2.6.28-rc4
4# Tue Apr 29 07:13:19 2008 4# Thu Nov 13 02:13:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y
22# CONFIG_SMP is not set 22# CONFIG_SMP is not set
23CONFIG_PPC32=y 23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32 24CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y 25# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
26CONFIG_MMU=y 26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 28CONFIG_GENERIC_TIME=y
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -104,7 +105,9 @@ CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
105CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
106CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
107# CONFIG_VM_EVENT_COUNTERS is not set 109# CONFIG_VM_EVENT_COUNTERS is not set
110CONFIG_PCI_QUIRKS=y
108CONFIG_SLAB=y 111CONFIG_SLAB=y
109# CONFIG_SLUB is not set 112# CONFIG_SLUB is not set
110# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
@@ -112,24 +115,30 @@ CONFIG_SLAB=y
112# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
117CONFIG_PROC_PAGE_MONITOR=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_HAVE_CLK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
121CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
122CONFIG_MODULES=y 129CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set
123CONFIG_MODULE_UNLOAD=y 131CONFIG_MODULE_UNLOAD=y
124# CONFIG_MODULE_FORCE_UNLOAD is not set 132# CONFIG_MODULE_FORCE_UNLOAD is not set
125# CONFIG_MODVERSIONS is not set 133# CONFIG_MODVERSIONS is not set
126# CONFIG_MODULE_SRCVERSION_ALL is not set 134# CONFIG_MODULE_SRCVERSION_ALL is not set
127# CONFIG_KMOD is not set 135CONFIG_KMOD=y
128CONFIG_BLOCK=y 136CONFIG_BLOCK=y
129# CONFIG_LBD is not set 137# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set 139# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set
133 142
134# 143#
135# IO Schedulers 144# IO Schedulers
@@ -144,19 +153,16 @@ CONFIG_IOSCHED_NOOP=y
144CONFIG_DEFAULT_NOOP=y 153CONFIG_DEFAULT_NOOP=y
145CONFIG_DEFAULT_IOSCHED="noop" 154CONFIG_DEFAULT_IOSCHED="noop"
146CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_FREEZER is not set
147 157
148# 158#
149# Platform support 159# Platform support
150# 160#
151CONFIG_PPC_MULTIPLATFORM=y 161CONFIG_PPC_MULTIPLATFORM=y
152# CONFIG_PPC_82xx is not set
153# CONFIG_PPC_83xx is not set
154# CONFIG_PPC_86xx is not set
155CONFIG_CLASSIC32=y 162CONFIG_CLASSIC32=y
156# CONFIG_PPC_CHRP is not set 163# CONFIG_PPC_CHRP is not set
157# CONFIG_PPC_MPC512x is not set
158# CONFIG_PPC_MPC5121 is not set
159# CONFIG_MPC5121_ADS is not set 164# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set
160CONFIG_PPC_MPC52xx=y 166CONFIG_PPC_MPC52xx=y
161CONFIG_PPC_MPC5200_SIMPLE=y 167CONFIG_PPC_MPC5200_SIMPLE=y
162# CONFIG_PPC_EFIKA is not set 168# CONFIG_PPC_EFIKA is not set
@@ -166,7 +172,10 @@ CONFIG_PPC_MPC5200_SIMPLE=y
166# CONFIG_PPC_PMAC is not set 172# CONFIG_PPC_PMAC is not set
167# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
168# CONFIG_PPC_CELL_NATIVE is not set 174# CONFIG_PPC_CELL_NATIVE is not set
175# CONFIG_PPC_82xx is not set
169# CONFIG_PQ2ADS is not set 176# CONFIG_PQ2ADS is not set
177# CONFIG_PPC_83xx is not set
178# CONFIG_PPC_86xx is not set
170# CONFIG_EMBEDDED6xx is not set 179# CONFIG_EMBEDDED6xx is not set
171# CONFIG_IPIC is not set 180# CONFIG_IPIC is not set
172# CONFIG_MPIC is not set 181# CONFIG_MPIC is not set
@@ -199,12 +208,14 @@ CONFIG_HZ_100=y
199# CONFIG_HZ_300 is not set 208# CONFIG_HZ_300 is not set
200# CONFIG_HZ_1000 is not set 209# CONFIG_HZ_1000 is not set
201CONFIG_HZ=100 210CONFIG_HZ=100
202# CONFIG_SCHED_HRTICK is not set 211CONFIG_SCHED_HRTICK=y
203# CONFIG_PREEMPT_NONE is not set 212# CONFIG_PREEMPT_NONE is not set
204# CONFIG_PREEMPT_VOLUNTARY is not set 213# CONFIG_PREEMPT_VOLUNTARY is not set
205CONFIG_PREEMPT=y 214CONFIG_PREEMPT=y
206# CONFIG_PREEMPT_RCU is not set 215# CONFIG_PREEMPT_RCU is not set
207CONFIG_BINFMT_ELF=y 216CONFIG_BINFMT_ELF=y
217# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
218# CONFIG_HAVE_AOUT is not set
208# CONFIG_BINFMT_MISC is not set 219# CONFIG_BINFMT_MISC is not set
209# CONFIG_IOMMU_HELPER is not set 220# CONFIG_IOMMU_HELPER is not set
210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 221CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -219,17 +230,19 @@ CONFIG_FLATMEM_MANUAL=y
219# CONFIG_SPARSEMEM_MANUAL is not set 230# CONFIG_SPARSEMEM_MANUAL is not set
220CONFIG_FLATMEM=y 231CONFIG_FLATMEM=y
221CONFIG_FLAT_NODE_MEM_MAP=y 232CONFIG_FLAT_NODE_MEM_MAP=y
222# CONFIG_SPARSEMEM_STATIC is not set
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
235CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 240CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y
230CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 243CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 244# CONFIG_CMDLINE_BOOL is not set
245CONFIG_EXTRA_TARGETS=""
233# CONFIG_PM is not set 246# CONFIG_PM is not set
234# CONFIG_SECCOMP is not set 247# CONFIG_SECCOMP is not set
235CONFIG_ISA_DMA_API=y 248CONFIG_ISA_DMA_API=y
@@ -240,7 +253,7 @@ CONFIG_ISA_DMA_API=y
240CONFIG_ZONE_DMA=y 253CONFIG_ZONE_DMA=y
241CONFIG_GENERIC_ISA_DMA=y 254CONFIG_GENERIC_ISA_DMA=y
242# CONFIG_PPC_INDIRECT_PCI is not set 255# CONFIG_PPC_INDIRECT_PCI is not set
243CONFIG_FSL_SOC=y 256CONFIG_PPC_PCI_CHOICE=y
244CONFIG_PCI=y 257CONFIG_PCI=y
245CONFIG_PCI_DOMAINS=y 258CONFIG_PCI_DOMAINS=y
246CONFIG_PCI_SYSCALL=y 259CONFIG_PCI_SYSCALL=y
@@ -265,10 +278,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
265CONFIG_KERNEL_START=0xc0000000 278CONFIG_KERNEL_START=0xc0000000
266CONFIG_PHYSICAL_START=0x00000000 279CONFIG_PHYSICAL_START=0x00000000
267CONFIG_TASK_SIZE=0xc0000000 280CONFIG_TASK_SIZE=0xc0000000
268
269#
270# Networking
271#
272CONFIG_NET=y 281CONFIG_NET=y
273 282
274# 283#
@@ -313,6 +322,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
313# CONFIG_TIPC is not set 322# CONFIG_TIPC is not set
314# CONFIG_ATM is not set 323# CONFIG_ATM is not set
315# CONFIG_BRIDGE is not set 324# CONFIG_BRIDGE is not set
325# CONFIG_NET_DSA is not set
316# CONFIG_VLAN_8021Q is not set 326# CONFIG_VLAN_8021Q is not set
317# CONFIG_DECNET is not set 327# CONFIG_DECNET is not set
318# CONFIG_LLC2 is not set 328# CONFIG_LLC2 is not set
@@ -333,14 +343,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_IRDA is not set 343# CONFIG_IRDA is not set
334# CONFIG_BT is not set 344# CONFIG_BT is not set
335# CONFIG_AF_RXRPC is not set 345# CONFIG_AF_RXRPC is not set
336 346# CONFIG_PHONET is not set
337# 347# CONFIG_WIRELESS is not set
338# Wireless
339#
340# CONFIG_CFG80211 is not set
341# CONFIG_WIRELESS_EXT is not set
342# CONFIG_MAC80211 is not set
343# CONFIG_IEEE80211 is not set
344# CONFIG_RFKILL is not set 348# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 349# CONFIG_NET_9P is not set
346 350
@@ -484,12 +488,12 @@ CONFIG_SCSI_WAIT_SCAN=m
484# CONFIG_SCSI_SAS_LIBSAS is not set 488# CONFIG_SCSI_SAS_LIBSAS is not set
485# CONFIG_SCSI_SRP_ATTRS is not set 489# CONFIG_SCSI_SRP_ATTRS is not set
486# CONFIG_SCSI_LOWLEVEL is not set 490# CONFIG_SCSI_LOWLEVEL is not set
491# CONFIG_SCSI_DH is not set
487CONFIG_ATA=m 492CONFIG_ATA=m
488# CONFIG_ATA_NONSTANDARD is not set 493# CONFIG_ATA_NONSTANDARD is not set
489CONFIG_SATA_PMP=y 494CONFIG_SATA_PMP=y
490# CONFIG_SATA_AHCI is not set 495# CONFIG_SATA_AHCI is not set
491# CONFIG_SATA_SIL24 is not set 496# CONFIG_SATA_SIL24 is not set
492# CONFIG_SATA_FSL is not set
493CONFIG_ATA_SFF=y 497CONFIG_ATA_SFF=y
494# CONFIG_SATA_SVW is not set 498# CONFIG_SATA_SVW is not set
495# CONFIG_ATA_PIIX is not set 499# CONFIG_ATA_PIIX is not set
@@ -545,18 +549,22 @@ CONFIG_PATA_MPC52xx=m
545# CONFIG_PATA_VIA is not set 549# CONFIG_PATA_VIA is not set
546# CONFIG_PATA_WINBOND is not set 550# CONFIG_PATA_WINBOND is not set
547# CONFIG_PATA_PLATFORM is not set 551# CONFIG_PATA_PLATFORM is not set
552# CONFIG_PATA_SCH is not set
548# CONFIG_MD is not set 553# CONFIG_MD is not set
549# CONFIG_FUSION is not set 554# CONFIG_FUSION is not set
550 555
551# 556#
552# IEEE 1394 (FireWire) support 557# IEEE 1394 (FireWire) support
553# 558#
559
560#
561# Enable only one of the two stacks, unless you know what you are doing
562#
554# CONFIG_FIREWIRE is not set 563# CONFIG_FIREWIRE is not set
555# CONFIG_IEEE1394 is not set 564# CONFIG_IEEE1394 is not set
556# CONFIG_I2O is not set 565# CONFIG_I2O is not set
557# CONFIG_MACINTOSH_DRIVERS is not set 566# CONFIG_MACINTOSH_DRIVERS is not set
558CONFIG_NETDEVICES=y 567CONFIG_NETDEVICES=y
559# CONFIG_NETDEVICES_MULTIQUEUE is not set
560# CONFIG_DUMMY is not set 568# CONFIG_DUMMY is not set
561# CONFIG_BONDING is not set 569# CONFIG_BONDING is not set
562# CONFIG_MACVLAN is not set 570# CONFIG_MACVLAN is not set
@@ -593,10 +601,14 @@ CONFIG_MII=y
593# CONFIG_IBM_NEW_EMAC_RGMII is not set 601# CONFIG_IBM_NEW_EMAC_RGMII is not set
594# CONFIG_IBM_NEW_EMAC_TAH is not set 602# CONFIG_IBM_NEW_EMAC_TAH is not set
595# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 603# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
604# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
605# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
606# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
596# CONFIG_NET_PCI is not set 607# CONFIG_NET_PCI is not set
597# CONFIG_B44 is not set 608# CONFIG_B44 is not set
598CONFIG_FEC_MPC52xx=y 609CONFIG_FEC_MPC52xx=y
599CONFIG_FEC_MPC52xx_MDIO=y 610CONFIG_FEC_MPC52xx_MDIO=y
611# CONFIG_ATL2 is not set
600# CONFIG_NETDEV_1000 is not set 612# CONFIG_NETDEV_1000 is not set
601# CONFIG_NETDEV_10000 is not set 613# CONFIG_NETDEV_10000 is not set
602# CONFIG_TR is not set 614# CONFIG_TR is not set
@@ -606,7 +618,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
606# 618#
607# CONFIG_WLAN_PRE80211 is not set 619# CONFIG_WLAN_PRE80211 is not set
608# CONFIG_WLAN_80211 is not set 620# CONFIG_WLAN_80211 is not set
609# CONFIG_IWLWIFI is not set
610# CONFIG_IWLWIFI_LEDS is not set 621# CONFIG_IWLWIFI_LEDS is not set
611 622
612# 623#
@@ -644,6 +655,7 @@ CONFIG_FEC_MPC52xx_MDIO=y
644# Character devices 655# Character devices
645# 656#
646# CONFIG_VT is not set 657# CONFIG_VT is not set
658CONFIG_DEVKMEM=y
647# CONFIG_SERIAL_NONSTANDARD is not set 659# CONFIG_SERIAL_NONSTANDARD is not set
648# CONFIG_NOZOMI is not set 660# CONFIG_NOZOMI is not set
649 661
@@ -675,43 +687,64 @@ CONFIG_DEVPORT=y
675CONFIG_I2C=y 687CONFIG_I2C=y
676CONFIG_I2C_BOARDINFO=y 688CONFIG_I2C_BOARDINFO=y
677CONFIG_I2C_CHARDEV=y 689CONFIG_I2C_CHARDEV=y
690CONFIG_I2C_HELPER_AUTO=y
678 691
679# 692#
680# I2C Hardware Bus support 693# I2C Hardware Bus support
681# 694#
695
696#
697# PC SMBus host controller drivers
698#
682# CONFIG_I2C_ALI1535 is not set 699# CONFIG_I2C_ALI1535 is not set
683# CONFIG_I2C_ALI1563 is not set 700# CONFIG_I2C_ALI1563 is not set
684# CONFIG_I2C_ALI15X3 is not set 701# CONFIG_I2C_ALI15X3 is not set
685# CONFIG_I2C_AMD756 is not set 702# CONFIG_I2C_AMD756 is not set
686# CONFIG_I2C_AMD8111 is not set 703# CONFIG_I2C_AMD8111 is not set
687# CONFIG_I2C_I801 is not set 704# CONFIG_I2C_I801 is not set
688# CONFIG_I2C_I810 is not set 705# CONFIG_I2C_ISCH is not set
689# CONFIG_I2C_PIIX4 is not set 706# CONFIG_I2C_PIIX4 is not set
690CONFIG_I2C_MPC=y
691# CONFIG_I2C_NFORCE2 is not set 707# CONFIG_I2C_NFORCE2 is not set
692# CONFIG_I2C_OCORES is not set
693# CONFIG_I2C_PARPORT_LIGHT is not set
694# CONFIG_I2C_PROSAVAGE is not set
695# CONFIG_I2C_SAVAGE4 is not set
696# CONFIG_I2C_SIMTEC is not set
697# CONFIG_I2C_SIS5595 is not set 708# CONFIG_I2C_SIS5595 is not set
698# CONFIG_I2C_SIS630 is not set 709# CONFIG_I2C_SIS630 is not set
699# CONFIG_I2C_SIS96X is not set 710# CONFIG_I2C_SIS96X is not set
700# CONFIG_I2C_TAOS_EVM is not set
701# CONFIG_I2C_STUB is not set
702# CONFIG_I2C_TINY_USB is not set
703# CONFIG_I2C_VIA is not set 711# CONFIG_I2C_VIA is not set
704# CONFIG_I2C_VIAPRO is not set 712# CONFIG_I2C_VIAPRO is not set
713
714#
715# I2C system bus drivers (mostly embedded / system-on-chip)
716#
717CONFIG_I2C_MPC=y
718# CONFIG_I2C_OCORES is not set
719# CONFIG_I2C_SIMTEC is not set
720
721#
722# External I2C/SMBus adapter drivers
723#
724# CONFIG_I2C_PARPORT_LIGHT is not set
725# CONFIG_I2C_TAOS_EVM is not set
726# CONFIG_I2C_TINY_USB is not set
727
728#
729# Graphics adapter I2C/DDC channel drivers
730#
705# CONFIG_I2C_VOODOO3 is not set 731# CONFIG_I2C_VOODOO3 is not set
732
733#
734# Other I2C/SMBus bus drivers
735#
706# CONFIG_I2C_PCA_PLATFORM is not set 736# CONFIG_I2C_PCA_PLATFORM is not set
737# CONFIG_I2C_STUB is not set
707 738
708# 739#
709# Miscellaneous I2C Chip support 740# Miscellaneous I2C Chip support
710# 741#
711# CONFIG_DS1682 is not set 742# CONFIG_DS1682 is not set
743# CONFIG_AT24 is not set
712CONFIG_SENSORS_EEPROM=m 744CONFIG_SENSORS_EEPROM=m
713# CONFIG_SENSORS_PCF8574 is not set 745# CONFIG_SENSORS_PCF8574 is not set
714# CONFIG_PCF8575 is not set 746# CONFIG_PCF8575 is not set
747# CONFIG_SENSORS_PCA9539 is not set
715# CONFIG_SENSORS_PCF8591 is not set 748# CONFIG_SENSORS_PCF8591 is not set
716# CONFIG_SENSORS_MAX6875 is not set 749# CONFIG_SENSORS_MAX6875 is not set
717# CONFIG_SENSORS_TSL2550 is not set 750# CONFIG_SENSORS_TSL2550 is not set
@@ -720,29 +753,47 @@ CONFIG_SENSORS_EEPROM=m
720# CONFIG_I2C_DEBUG_BUS is not set 753# CONFIG_I2C_DEBUG_BUS is not set
721# CONFIG_I2C_DEBUG_CHIP is not set 754# CONFIG_I2C_DEBUG_CHIP is not set
722# CONFIG_SPI is not set 755# CONFIG_SPI is not set
756CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
757# CONFIG_GPIOLIB is not set
723# CONFIG_W1 is not set 758# CONFIG_W1 is not set
724# CONFIG_POWER_SUPPLY is not set 759# CONFIG_POWER_SUPPLY is not set
725# CONFIG_HWMON is not set 760# CONFIG_HWMON is not set
726# CONFIG_THERMAL is not set 761# CONFIG_THERMAL is not set
762# CONFIG_THERMAL_HWMON is not set
727# CONFIG_WATCHDOG is not set 763# CONFIG_WATCHDOG is not set
764CONFIG_SSB_POSSIBLE=y
728 765
729# 766#
730# Sonics Silicon Backplane 767# Sonics Silicon Backplane
731# 768#
732CONFIG_SSB_POSSIBLE=y
733# CONFIG_SSB is not set 769# CONFIG_SSB is not set
734 770
735# 771#
736# Multifunction device drivers 772# Multifunction device drivers
737# 773#
774# CONFIG_MFD_CORE is not set
738# CONFIG_MFD_SM501 is not set 775# CONFIG_MFD_SM501 is not set
739# CONFIG_HTC_PASIC3 is not set 776# CONFIG_HTC_PASIC3 is not set
777# CONFIG_MFD_TMIO is not set
778# CONFIG_PMIC_DA903X is not set
779# CONFIG_MFD_WM8400 is not set
780# CONFIG_MFD_WM8350_I2C is not set
781# CONFIG_REGULATOR is not set
740 782
741# 783#
742# Multimedia devices 784# Multimedia devices
743# 785#
786
787#
788# Multimedia core support
789#
744# CONFIG_VIDEO_DEV is not set 790# CONFIG_VIDEO_DEV is not set
745# CONFIG_DVB_CORE is not set 791# CONFIG_DVB_CORE is not set
792# CONFIG_VIDEO_MEDIA is not set
793
794#
795# Multimedia drivers
796#
746# CONFIG_DAB is not set 797# CONFIG_DAB is not set
747 798
748# 799#
@@ -759,10 +810,6 @@ CONFIG_SSB_POSSIBLE=y
759# Display device support 810# Display device support
760# 811#
761# CONFIG_DISPLAY_SUPPORT is not set 812# CONFIG_DISPLAY_SUPPORT is not set
762
763#
764# Sound
765#
766# CONFIG_SOUND is not set 813# CONFIG_SOUND is not set
767CONFIG_USB_SUPPORT=y 814CONFIG_USB_SUPPORT=y
768CONFIG_USB_ARCH_HAS_HCD=y 815CONFIG_USB_ARCH_HAS_HCD=y
@@ -781,12 +828,17 @@ CONFIG_USB_DEVICEFS=y
781# CONFIG_USB_OTG is not set 828# CONFIG_USB_OTG is not set
782# CONFIG_USB_OTG_WHITELIST is not set 829# CONFIG_USB_OTG_WHITELIST is not set
783# CONFIG_USB_OTG_BLACKLIST_HUB is not set 830# CONFIG_USB_OTG_BLACKLIST_HUB is not set
831# CONFIG_USB_MON is not set
832# CONFIG_USB_WUSB is not set
833# CONFIG_USB_WUSB_CBAF is not set
784 834
785# 835#
786# USB Host Controller Drivers 836# USB Host Controller Drivers
787# 837#
838# CONFIG_USB_C67X00_HCD is not set
788# CONFIG_USB_EHCI_HCD is not set 839# CONFIG_USB_EHCI_HCD is not set
789# CONFIG_USB_ISP116X_HCD is not set 840# CONFIG_USB_ISP116X_HCD is not set
841# CONFIG_USB_ISP1760_HCD is not set
790CONFIG_USB_OHCI_HCD=m 842CONFIG_USB_OHCI_HCD=m
791# CONFIG_USB_OHCI_HCD_PPC_SOC is not set 843# CONFIG_USB_OHCI_HCD_PPC_SOC is not set
792CONFIG_USB_OHCI_HCD_PPC_OF=y 844CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -799,12 +851,17 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
799# CONFIG_USB_UHCI_HCD is not set 851# CONFIG_USB_UHCI_HCD is not set
800# CONFIG_USB_SL811_HCD is not set 852# CONFIG_USB_SL811_HCD is not set
801# CONFIG_USB_R8A66597_HCD is not set 853# CONFIG_USB_R8A66597_HCD is not set
854# CONFIG_USB_WHCI_HCD is not set
855# CONFIG_USB_HWA_HCD is not set
856# CONFIG_USB_MUSB_HDRC is not set
802 857
803# 858#
804# USB Device Class drivers 859# USB Device Class drivers
805# 860#
806# CONFIG_USB_ACM is not set 861# CONFIG_USB_ACM is not set
807# CONFIG_USB_PRINTER is not set 862# CONFIG_USB_PRINTER is not set
863# CONFIG_USB_WDM is not set
864# CONFIG_USB_TMC is not set
808 865
809# 866#
810# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 867# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -833,7 +890,6 @@ CONFIG_USB_STORAGE=m
833# 890#
834# CONFIG_USB_MDC800 is not set 891# CONFIG_USB_MDC800 is not set
835# CONFIG_USB_MICROTEK is not set 892# CONFIG_USB_MICROTEK is not set
836# CONFIG_USB_MON is not set
837 893
838# 894#
839# USB port drivers 895# USB port drivers
@@ -846,7 +902,7 @@ CONFIG_USB_STORAGE=m
846# CONFIG_USB_EMI62 is not set 902# CONFIG_USB_EMI62 is not set
847# CONFIG_USB_EMI26 is not set 903# CONFIG_USB_EMI26 is not set
848# CONFIG_USB_ADUTUX is not set 904# CONFIG_USB_ADUTUX is not set
849# CONFIG_USB_AUERSWALD is not set 905# CONFIG_USB_SEVSEG is not set
850# CONFIG_USB_RIO500 is not set 906# CONFIG_USB_RIO500 is not set
851# CONFIG_USB_LEGOTOWER is not set 907# CONFIG_USB_LEGOTOWER is not set
852# CONFIG_USB_LCD is not set 908# CONFIG_USB_LCD is not set
@@ -862,10 +918,14 @@ CONFIG_USB_STORAGE=m
862# CONFIG_USB_TRANCEVIBRATOR is not set 918# CONFIG_USB_TRANCEVIBRATOR is not set
863# CONFIG_USB_IOWARRIOR is not set 919# CONFIG_USB_IOWARRIOR is not set
864# CONFIG_USB_TEST is not set 920# CONFIG_USB_TEST is not set
921# CONFIG_USB_ISIGHTFW is not set
922# CONFIG_USB_VST is not set
865# CONFIG_USB_GADGET is not set 923# CONFIG_USB_GADGET is not set
924# CONFIG_UWB is not set
866# CONFIG_MMC is not set 925# CONFIG_MMC is not set
867# CONFIG_MEMSTICK is not set 926# CONFIG_MEMSTICK is not set
868# CONFIG_NEW_LEDS is not set 927# CONFIG_NEW_LEDS is not set
928# CONFIG_ACCESSIBILITY is not set
869# CONFIG_INFINIBAND is not set 929# CONFIG_INFINIBAND is not set
870# CONFIG_EDAC is not set 930# CONFIG_EDAC is not set
871CONFIG_RTC_LIB=m 931CONFIG_RTC_LIB=m
@@ -894,6 +954,8 @@ CONFIG_RTC_DRV_PCF8563=m
894# CONFIG_RTC_DRV_PCF8583 is not set 954# CONFIG_RTC_DRV_PCF8583 is not set
895# CONFIG_RTC_DRV_M41T80 is not set 955# CONFIG_RTC_DRV_M41T80 is not set
896# CONFIG_RTC_DRV_S35390A is not set 956# CONFIG_RTC_DRV_S35390A is not set
957# CONFIG_RTC_DRV_FM3130 is not set
958# CONFIG_RTC_DRV_RX8581 is not set
897 959
898# 960#
899# SPI RTC drivers 961# SPI RTC drivers
@@ -903,19 +965,25 @@ CONFIG_RTC_DRV_PCF8563=m
903# Platform RTC drivers 965# Platform RTC drivers
904# 966#
905# CONFIG_RTC_DRV_CMOS is not set 967# CONFIG_RTC_DRV_CMOS is not set
968# CONFIG_RTC_DRV_DS1286 is not set
906# CONFIG_RTC_DRV_DS1511 is not set 969# CONFIG_RTC_DRV_DS1511 is not set
907# CONFIG_RTC_DRV_DS1553 is not set 970# CONFIG_RTC_DRV_DS1553 is not set
908# CONFIG_RTC_DRV_DS1742 is not set 971# CONFIG_RTC_DRV_DS1742 is not set
909# CONFIG_RTC_DRV_STK17TA8 is not set 972# CONFIG_RTC_DRV_STK17TA8 is not set
910# CONFIG_RTC_DRV_M48T86 is not set 973# CONFIG_RTC_DRV_M48T86 is not set
974# CONFIG_RTC_DRV_M48T35 is not set
911# CONFIG_RTC_DRV_M48T59 is not set 975# CONFIG_RTC_DRV_M48T59 is not set
976# CONFIG_RTC_DRV_BQ4802 is not set
912# CONFIG_RTC_DRV_V3020 is not set 977# CONFIG_RTC_DRV_V3020 is not set
913 978
914# 979#
915# on-CPU RTC drivers 980# on-CPU RTC drivers
916# 981#
982# CONFIG_RTC_DRV_PPC is not set
917# CONFIG_DMADEVICES is not set 983# CONFIG_DMADEVICES is not set
918# CONFIG_UIO is not set 984# CONFIG_UIO is not set
985# CONFIG_STAGING is not set
986CONFIG_STAGING_EXCLUDE_BUILD=y
919 987
920# 988#
921# File systems 989# File systems
@@ -927,12 +995,13 @@ CONFIG_EXT3_FS=m
927CONFIG_EXT3_FS_XATTR=y 995CONFIG_EXT3_FS_XATTR=y
928# CONFIG_EXT3_FS_POSIX_ACL is not set 996# CONFIG_EXT3_FS_POSIX_ACL is not set
929# CONFIG_EXT3_FS_SECURITY is not set 997# CONFIG_EXT3_FS_SECURITY is not set
930# CONFIG_EXT4DEV_FS is not set 998# CONFIG_EXT4_FS is not set
931CONFIG_JBD=m 999CONFIG_JBD=m
932CONFIG_FS_MBCACHE=m 1000CONFIG_FS_MBCACHE=m
933# CONFIG_REISERFS_FS is not set 1001# CONFIG_REISERFS_FS is not set
934# CONFIG_JFS_FS is not set 1002# CONFIG_JFS_FS is not set
935# CONFIG_FS_POSIX_ACL is not set 1003# CONFIG_FS_POSIX_ACL is not set
1004CONFIG_FILE_LOCKING=y
936# CONFIG_XFS_FS is not set 1005# CONFIG_XFS_FS is not set
937# CONFIG_OCFS2_FS is not set 1006# CONFIG_OCFS2_FS is not set
938# CONFIG_DNOTIFY is not set 1007# CONFIG_DNOTIFY is not set
@@ -964,6 +1033,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
964CONFIG_PROC_FS=y 1033CONFIG_PROC_FS=y
965# CONFIG_PROC_KCORE is not set 1034# CONFIG_PROC_KCORE is not set
966CONFIG_PROC_SYSCTL=y 1035CONFIG_PROC_SYSCTL=y
1036CONFIG_PROC_PAGE_MONITOR=y
967CONFIG_SYSFS=y 1037CONFIG_SYSFS=y
968CONFIG_TMPFS=y 1038CONFIG_TMPFS=y
969# CONFIG_TMPFS_POSIX_ACL is not set 1039# CONFIG_TMPFS_POSIX_ACL is not set
@@ -994,6 +1064,7 @@ CONFIG_JFFS2_RTIME=y
994# CONFIG_CRAMFS is not set 1064# CONFIG_CRAMFS is not set
995# CONFIG_VXFS_FS is not set 1065# CONFIG_VXFS_FS is not set
996# CONFIG_MINIX_FS is not set 1066# CONFIG_MINIX_FS is not set
1067# CONFIG_OMFS_FS is not set
997# CONFIG_HPFS_FS is not set 1068# CONFIG_HPFS_FS is not set
998# CONFIG_QNX4FS_FS is not set 1069# CONFIG_QNX4FS_FS is not set
999# CONFIG_ROMFS_FS is not set 1070# CONFIG_ROMFS_FS is not set
@@ -1004,13 +1075,13 @@ CONFIG_NFS_FS=y
1004CONFIG_NFS_V3=y 1075CONFIG_NFS_V3=y
1005# CONFIG_NFS_V3_ACL is not set 1076# CONFIG_NFS_V3_ACL is not set
1006# CONFIG_NFS_V4 is not set 1077# CONFIG_NFS_V4 is not set
1007# CONFIG_NFSD is not set
1008CONFIG_ROOT_NFS=y 1078CONFIG_ROOT_NFS=y
1079# CONFIG_NFSD is not set
1009CONFIG_LOCKD=y 1080CONFIG_LOCKD=y
1010CONFIG_LOCKD_V4=y 1081CONFIG_LOCKD_V4=y
1011CONFIG_NFS_COMMON=y 1082CONFIG_NFS_COMMON=y
1012CONFIG_SUNRPC=y 1083CONFIG_SUNRPC=y
1013# CONFIG_SUNRPC_BIND34 is not set 1084# CONFIG_SUNRPC_REGISTER_V4 is not set
1014# CONFIG_RPCSEC_GSS_KRB5 is not set 1085# CONFIG_RPCSEC_GSS_KRB5 is not set
1015# CONFIG_RPCSEC_GSS_SPKM3 is not set 1086# CONFIG_RPCSEC_GSS_SPKM3 is not set
1016# CONFIG_SMB_FS is not set 1087# CONFIG_SMB_FS is not set
@@ -1070,9 +1141,9 @@ CONFIG_NLS_ISO8859_1=y
1070# Library routines 1141# Library routines
1071# 1142#
1072CONFIG_BITREVERSE=y 1143CONFIG_BITREVERSE=y
1073# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1074# CONFIG_CRC_CCITT is not set 1144# CONFIG_CRC_CCITT is not set
1075# CONFIG_CRC16 is not set 1145# CONFIG_CRC16 is not set
1146# CONFIG_CRC_T10DIF is not set
1076# CONFIG_CRC_ITU_T is not set 1147# CONFIG_CRC_ITU_T is not set
1077CONFIG_CRC32=y 1148CONFIG_CRC32=y
1078# CONFIG_CRC7 is not set 1149# CONFIG_CRC7 is not set
@@ -1098,7 +1169,17 @@ CONFIG_FRAME_WARN=1024
1098# CONFIG_HEADERS_CHECK is not set 1169# CONFIG_HEADERS_CHECK is not set
1099# CONFIG_DEBUG_KERNEL is not set 1170# CONFIG_DEBUG_KERNEL is not set
1100# CONFIG_DEBUG_BUGVERBOSE is not set 1171# CONFIG_DEBUG_BUGVERBOSE is not set
1172# CONFIG_DEBUG_MEMORY_INIT is not set
1173# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1174# CONFIG_LATENCYTOP is not set
1175CONFIG_HAVE_FUNCTION_TRACER=y
1176
1177#
1178# Tracers
1179#
1180# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1101# CONFIG_SAMPLES is not set 1181# CONFIG_SAMPLES is not set
1182CONFIG_HAVE_ARCH_KGDB=y
1102# CONFIG_IRQSTACKS is not set 1183# CONFIG_IRQSTACKS is not set
1103# CONFIG_BOOTX_TEXT is not set 1184# CONFIG_BOOTX_TEXT is not set
1104# CONFIG_PPC_EARLY_DEBUG is not set 1185# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1108,6 +1189,7 @@ CONFIG_FRAME_WARN=1024
1108# 1189#
1109# CONFIG_KEYS is not set 1190# CONFIG_KEYS is not set
1110# CONFIG_SECURITY is not set 1191# CONFIG_SECURITY is not set
1192# CONFIG_SECURITYFS is not set
1111# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1193# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1112# CONFIG_CRYPTO is not set 1194# CONFIG_CRYPTO is not set
1113CONFIG_PPC_CLOCK=y 1195CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig
index 7672bfba3566..bc190051e8d5 100644
--- a/arch/powerpc/configs/52xx/tqm5200_defconfig
+++ b/arch/powerpc/configs/52xx/tqm5200_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25 3# Linux kernel version: 2.6.28-rc4
4# Tue Apr 29 07:12:39 2008 4# Thu Nov 13 02:09:30 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y
22# CONFIG_SMP is not set 22# CONFIG_SMP is not set
23CONFIG_PPC32=y 23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32 24CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y 25# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
26CONFIG_MMU=y 26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 28CONFIG_GENERIC_TIME=y
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -102,6 +103,7 @@ CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 103CONFIG_TIMERFD=y
103CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 105CONFIG_SHMEM=y
106CONFIG_AIO=y
105CONFIG_VM_EVENT_COUNTERS=y 107CONFIG_VM_EVENT_COUNTERS=y
106CONFIG_SLUB_DEBUG=y 108CONFIG_SLUB_DEBUG=y
107# CONFIG_SLAB is not set 109# CONFIG_SLAB is not set
@@ -110,14 +112,19 @@ CONFIG_SLUB=y
110# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y 119CONFIG_HAVE_ARCH_TRACEHOOK=y
120CONFIG_HAVE_CLK=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
116CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
117CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
118# CONFIG_TINY_SHMEM is not set 124# CONFIG_TINY_SHMEM is not set
119CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
120CONFIG_MODULES=y 126CONFIG_MODULES=y
127# CONFIG_MODULE_FORCE_LOAD is not set
121CONFIG_MODULE_UNLOAD=y 128CONFIG_MODULE_UNLOAD=y
122# CONFIG_MODULE_FORCE_UNLOAD is not set 129# CONFIG_MODULE_FORCE_UNLOAD is not set
123CONFIG_MODVERSIONS=y 130CONFIG_MODVERSIONS=y
@@ -128,6 +135,7 @@ CONFIG_BLOCK=y
128# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set 136# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set
131 139
132# 140#
133# IO Schedulers 141# IO Schedulers
@@ -142,19 +150,16 @@ CONFIG_DEFAULT_AS=y
142# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_FREEZER is not set
145 154
146# 155#
147# Platform support 156# Platform support
148# 157#
149CONFIG_PPC_MULTIPLATFORM=y 158CONFIG_PPC_MULTIPLATFORM=y
150# CONFIG_PPC_82xx is not set
151# CONFIG_PPC_83xx is not set
152# CONFIG_PPC_86xx is not set
153CONFIG_CLASSIC32=y 159CONFIG_CLASSIC32=y
154# CONFIG_PPC_CHRP is not set 160# CONFIG_PPC_CHRP is not set
155# CONFIG_PPC_MPC512x is not set
156# CONFIG_PPC_MPC5121 is not set
157# CONFIG_MPC5121_ADS is not set 161# CONFIG_MPC5121_ADS is not set
162# CONFIG_MPC5121_GENERIC is not set
158CONFIG_PPC_MPC52xx=y 163CONFIG_PPC_MPC52xx=y
159CONFIG_PPC_MPC5200_SIMPLE=y 164CONFIG_PPC_MPC5200_SIMPLE=y
160# CONFIG_PPC_EFIKA is not set 165# CONFIG_PPC_EFIKA is not set
@@ -164,7 +169,10 @@ CONFIG_PPC_MPC5200_BUGFIX=y
164# CONFIG_PPC_PMAC is not set 169# CONFIG_PPC_PMAC is not set
165# CONFIG_PPC_CELL is not set 170# CONFIG_PPC_CELL is not set
166# CONFIG_PPC_CELL_NATIVE is not set 171# CONFIG_PPC_CELL_NATIVE is not set
172# CONFIG_PPC_82xx is not set
167# CONFIG_PQ2ADS is not set 173# CONFIG_PQ2ADS is not set
174# CONFIG_PPC_83xx is not set
175# CONFIG_PPC_86xx is not set
168# CONFIG_EMBEDDED6xx is not set 176# CONFIG_EMBEDDED6xx is not set
169# CONFIG_IPIC is not set 177# CONFIG_IPIC is not set
170# CONFIG_MPIC is not set 178# CONFIG_MPIC is not set
@@ -188,7 +196,6 @@ CONFIG_PPC_BESTCOMM_FEC=y
188# Kernel options 196# Kernel options
189# 197#
190# CONFIG_HIGHMEM is not set 198# CONFIG_HIGHMEM is not set
191# CONFIG_TICK_ONESHOT is not set
192# CONFIG_NO_HZ is not set 199# CONFIG_NO_HZ is not set
193# CONFIG_HIGH_RES_TIMERS is not set 200# CONFIG_HIGH_RES_TIMERS is not set
194CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 201CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -202,6 +209,8 @@ CONFIG_PREEMPT_NONE=y
202# CONFIG_PREEMPT_VOLUNTARY is not set 209# CONFIG_PREEMPT_VOLUNTARY is not set
203# CONFIG_PREEMPT is not set 210# CONFIG_PREEMPT is not set
204CONFIG_BINFMT_ELF=y 211CONFIG_BINFMT_ELF=y
212# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
213# CONFIG_HAVE_AOUT is not set
205# CONFIG_BINFMT_MISC is not set 214# CONFIG_BINFMT_MISC is not set
206# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -216,19 +225,20 @@ CONFIG_FLATMEM_MANUAL=y
216# CONFIG_SPARSEMEM_MANUAL is not set 225# CONFIG_SPARSEMEM_MANUAL is not set
217CONFIG_FLATMEM=y 226CONFIG_FLATMEM=y
218CONFIG_FLAT_NODE_MEM_MAP=y 227CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_STATIC is not set
220# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
221CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
230CONFIG_MIGRATION=y
223# CONFIG_RESOURCES_64BIT is not set 231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y
227CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
228CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
229# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
240CONFIG_EXTRA_TARGETS=""
230CONFIG_PM=y 241CONFIG_PM=y
231# CONFIG_PM_LEGACY is not set
232# CONFIG_PM_DEBUG is not set 242# CONFIG_PM_DEBUG is not set
233CONFIG_SECCOMP=y 243CONFIG_SECCOMP=y
234CONFIG_ISA_DMA_API=y 244CONFIG_ISA_DMA_API=y
@@ -238,7 +248,7 @@ CONFIG_ISA_DMA_API=y
238# 248#
239CONFIG_ZONE_DMA=y 249CONFIG_ZONE_DMA=y
240CONFIG_GENERIC_ISA_DMA=y 250CONFIG_GENERIC_ISA_DMA=y
241CONFIG_FSL_SOC=y 251CONFIG_PPC_PCI_CHOICE=y
242# CONFIG_PCI is not set 252# CONFIG_PCI is not set
243# CONFIG_PCI_DOMAINS is not set 253# CONFIG_PCI_DOMAINS is not set
244# CONFIG_PCI_SYSCALL is not set 254# CONFIG_PCI_SYSCALL is not set
@@ -259,10 +269,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 269CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 270CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 271CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 272CONFIG_NET=y
267 273
268# 274#
@@ -313,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
313# CONFIG_TIPC is not set 319# CONFIG_TIPC is not set
314# CONFIG_ATM is not set 320# CONFIG_ATM is not set
315# CONFIG_BRIDGE is not set 321# CONFIG_BRIDGE is not set
322# CONFIG_NET_DSA is not set
316# CONFIG_VLAN_8021Q is not set 323# CONFIG_VLAN_8021Q is not set
317# CONFIG_DECNET is not set 324# CONFIG_DECNET is not set
318# CONFIG_LLC2 is not set 325# CONFIG_LLC2 is not set
@@ -333,14 +340,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_IRDA is not set 340# CONFIG_IRDA is not set
334# CONFIG_BT is not set 341# CONFIG_BT is not set
335# CONFIG_AF_RXRPC is not set 342# CONFIG_AF_RXRPC is not set
336 343# CONFIG_PHONET is not set
337# 344# CONFIG_WIRELESS is not set
338# Wireless
339#
340# CONFIG_CFG80211 is not set
341# CONFIG_WIRELESS_EXT is not set
342# CONFIG_MAC80211 is not set
343# CONFIG_IEEE80211 is not set
344# CONFIG_RFKILL is not set 345# CONFIG_RFKILL is not set
345# CONFIG_NET_9P is not set 346# CONFIG_NET_9P is not set
346 347
@@ -451,6 +452,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
451# CONFIG_BLK_DEV_XIP is not set 452# CONFIG_BLK_DEV_XIP is not set
452# CONFIG_CDROM_PKTCDVD is not set 453# CONFIG_CDROM_PKTCDVD is not set
453# CONFIG_ATA_OVER_ETH is not set 454# CONFIG_ATA_OVER_ETH is not set
455# CONFIG_BLK_DEV_HD is not set
454# CONFIG_MISC_DEVICES is not set 456# CONFIG_MISC_DEVICES is not set
455CONFIG_HAVE_IDE=y 457CONFIG_HAVE_IDE=y
456# CONFIG_IDE is not set 458# CONFIG_IDE is not set
@@ -495,10 +497,10 @@ CONFIG_SCSI_WAIT_SCAN=m
495CONFIG_SCSI_LOWLEVEL=y 497CONFIG_SCSI_LOWLEVEL=y
496# CONFIG_ISCSI_TCP is not set 498# CONFIG_ISCSI_TCP is not set
497# CONFIG_SCSI_DEBUG is not set 499# CONFIG_SCSI_DEBUG is not set
500# CONFIG_SCSI_DH is not set
498CONFIG_ATA=y 501CONFIG_ATA=y
499# CONFIG_ATA_NONSTANDARD is not set 502# CONFIG_ATA_NONSTANDARD is not set
500CONFIG_SATA_PMP=y 503CONFIG_SATA_PMP=y
501# CONFIG_SATA_FSL is not set
502CONFIG_ATA_SFF=y 504CONFIG_ATA_SFF=y
503# CONFIG_SATA_MV is not set 505# CONFIG_SATA_MV is not set
504CONFIG_PATA_MPC52xx=y 506CONFIG_PATA_MPC52xx=y
@@ -507,7 +509,6 @@ CONFIG_PATA_PLATFORM=y
507# CONFIG_MD is not set 509# CONFIG_MD is not set
508# CONFIG_MACINTOSH_DRIVERS is not set 510# CONFIG_MACINTOSH_DRIVERS is not set
509CONFIG_NETDEVICES=y 511CONFIG_NETDEVICES=y
510# CONFIG_NETDEVICES_MULTIQUEUE is not set
511# CONFIG_DUMMY is not set 512# CONFIG_DUMMY is not set
512# CONFIG_BONDING is not set 513# CONFIG_BONDING is not set
513# CONFIG_MACVLAN is not set 514# CONFIG_MACVLAN is not set
@@ -537,6 +538,9 @@ CONFIG_NET_ETHERNET=y
537# CONFIG_IBM_NEW_EMAC_RGMII is not set 538# CONFIG_IBM_NEW_EMAC_RGMII is not set
538# CONFIG_IBM_NEW_EMAC_TAH is not set 539# CONFIG_IBM_NEW_EMAC_TAH is not set
539# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 540# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
541# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
542# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
543# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
540# CONFIG_B44 is not set 544# CONFIG_B44 is not set
541CONFIG_FEC_MPC52xx=y 545CONFIG_FEC_MPC52xx=y
542CONFIG_FEC_MPC52xx_MDIO=y 546CONFIG_FEC_MPC52xx_MDIO=y
@@ -548,7 +552,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
548# 552#
549# CONFIG_WLAN_PRE80211 is not set 553# CONFIG_WLAN_PRE80211 is not set
550# CONFIG_WLAN_80211 is not set 554# CONFIG_WLAN_80211 is not set
551# CONFIG_IWLWIFI is not set
552# CONFIG_IWLWIFI_LEDS is not set 555# CONFIG_IWLWIFI_LEDS is not set
553 556
554# 557#
@@ -583,6 +586,7 @@ CONFIG_FEC_MPC52xx_MDIO=y
583# Character devices 586# Character devices
584# 587#
585# CONFIG_VT is not set 588# CONFIG_VT is not set
589CONFIG_DEVKMEM=y
586# CONFIG_SERIAL_NONSTANDARD is not set 590# CONFIG_SERIAL_NONSTANDARD is not set
587 591
588# 592#
@@ -611,26 +615,41 @@ CONFIG_LEGACY_PTY_COUNT=256
611CONFIG_I2C=y 615CONFIG_I2C=y
612CONFIG_I2C_BOARDINFO=y 616CONFIG_I2C_BOARDINFO=y
613CONFIG_I2C_CHARDEV=y 617CONFIG_I2C_CHARDEV=y
618CONFIG_I2C_HELPER_AUTO=y
614 619
615# 620#
616# I2C Hardware Bus support 621# I2C Hardware Bus support
617# 622#
623
624#
625# I2C system bus drivers (mostly embedded / system-on-chip)
626#
618CONFIG_I2C_MPC=y 627CONFIG_I2C_MPC=y
619# CONFIG_I2C_OCORES is not set 628# CONFIG_I2C_OCORES is not set
620# CONFIG_I2C_PARPORT_LIGHT is not set
621# CONFIG_I2C_SIMTEC is not set 629# CONFIG_I2C_SIMTEC is not set
630
631#
632# External I2C/SMBus adapter drivers
633#
634# CONFIG_I2C_PARPORT_LIGHT is not set
622# CONFIG_I2C_TAOS_EVM is not set 635# CONFIG_I2C_TAOS_EVM is not set
623# CONFIG_I2C_STUB is not set
624# CONFIG_I2C_TINY_USB is not set 636# CONFIG_I2C_TINY_USB is not set
637
638#
639# Other I2C/SMBus bus drivers
640#
625# CONFIG_I2C_PCA_PLATFORM is not set 641# CONFIG_I2C_PCA_PLATFORM is not set
642# CONFIG_I2C_STUB is not set
626 643
627# 644#
628# Miscellaneous I2C Chip support 645# Miscellaneous I2C Chip support
629# 646#
630# CONFIG_DS1682 is not set 647# CONFIG_DS1682 is not set
648# CONFIG_AT24 is not set
631# CONFIG_SENSORS_EEPROM is not set 649# CONFIG_SENSORS_EEPROM is not set
632# CONFIG_SENSORS_PCF8574 is not set 650# CONFIG_SENSORS_PCF8574 is not set
633# CONFIG_PCF8575 is not set 651# CONFIG_PCF8575 is not set
652# CONFIG_SENSORS_PCA9539 is not set
634# CONFIG_SENSORS_PCF8591 is not set 653# CONFIG_SENSORS_PCF8591 is not set
635# CONFIG_SENSORS_MAX6875 is not set 654# CONFIG_SENSORS_MAX6875 is not set
636# CONFIG_SENSORS_TSL2550 is not set 655# CONFIG_SENSORS_TSL2550 is not set
@@ -639,10 +658,13 @@ CONFIG_I2C_MPC=y
639# CONFIG_I2C_DEBUG_BUS is not set 658# CONFIG_I2C_DEBUG_BUS is not set
640# CONFIG_I2C_DEBUG_CHIP is not set 659# CONFIG_I2C_DEBUG_CHIP is not set
641# CONFIG_SPI is not set 660# CONFIG_SPI is not set
661CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
662# CONFIG_GPIOLIB is not set
642# CONFIG_W1 is not set 663# CONFIG_W1 is not set
643# CONFIG_POWER_SUPPLY is not set 664# CONFIG_POWER_SUPPLY is not set
644CONFIG_HWMON=y 665CONFIG_HWMON=y
645# CONFIG_HWMON_VID is not set 666# CONFIG_HWMON_VID is not set
667# CONFIG_SENSORS_AD7414 is not set
646# CONFIG_SENSORS_AD7418 is not set 668# CONFIG_SENSORS_AD7418 is not set
647# CONFIG_SENSORS_ADM1021 is not set 669# CONFIG_SENSORS_ADM1021 is not set
648# CONFIG_SENSORS_ADM1025 is not set 670# CONFIG_SENSORS_ADM1025 is not set
@@ -650,6 +672,7 @@ CONFIG_HWMON=y
650# CONFIG_SENSORS_ADM1029 is not set 672# CONFIG_SENSORS_ADM1029 is not set
651# CONFIG_SENSORS_ADM1031 is not set 673# CONFIG_SENSORS_ADM1031 is not set
652# CONFIG_SENSORS_ADM9240 is not set 674# CONFIG_SENSORS_ADM9240 is not set
675# CONFIG_SENSORS_ADT7462 is not set
653# CONFIG_SENSORS_ADT7470 is not set 676# CONFIG_SENSORS_ADT7470 is not set
654# CONFIG_SENSORS_ADT7473 is not set 677# CONFIG_SENSORS_ADT7473 is not set
655# CONFIG_SENSORS_ATXP1 is not set 678# CONFIG_SENSORS_ATXP1 is not set
@@ -692,6 +715,7 @@ CONFIG_HWMON=y
692# CONFIG_SENSORS_W83627EHF is not set 715# CONFIG_SENSORS_W83627EHF is not set
693# CONFIG_HWMON_DEBUG_CHIP is not set 716# CONFIG_HWMON_DEBUG_CHIP is not set
694# CONFIG_THERMAL is not set 717# CONFIG_THERMAL is not set
718# CONFIG_THERMAL_HWMON is not set
695CONFIG_WATCHDOG=y 719CONFIG_WATCHDOG=y
696# CONFIG_WATCHDOG_NOWAYOUT is not set 720# CONFIG_WATCHDOG_NOWAYOUT is not set
697 721
@@ -705,24 +729,39 @@ CONFIG_WATCHDOG=y
705# USB-based Watchdog Cards 729# USB-based Watchdog Cards
706# 730#
707# CONFIG_USBPCWATCHDOG is not set 731# CONFIG_USBPCWATCHDOG is not set
732CONFIG_SSB_POSSIBLE=y
708 733
709# 734#
710# Sonics Silicon Backplane 735# Sonics Silicon Backplane
711# 736#
712CONFIG_SSB_POSSIBLE=y
713# CONFIG_SSB is not set 737# CONFIG_SSB is not set
714 738
715# 739#
716# Multifunction device drivers 740# Multifunction device drivers
717# 741#
742# CONFIG_MFD_CORE is not set
718# CONFIG_MFD_SM501 is not set 743# CONFIG_MFD_SM501 is not set
719# CONFIG_HTC_PASIC3 is not set 744# CONFIG_HTC_PASIC3 is not set
745# CONFIG_MFD_TMIO is not set
746# CONFIG_PMIC_DA903X is not set
747# CONFIG_MFD_WM8400 is not set
748# CONFIG_MFD_WM8350_I2C is not set
749# CONFIG_REGULATOR is not set
720 750
721# 751#
722# Multimedia devices 752# Multimedia devices
723# 753#
754
755#
756# Multimedia core support
757#
724# CONFIG_VIDEO_DEV is not set 758# CONFIG_VIDEO_DEV is not set
725# CONFIG_DVB_CORE is not set 759# CONFIG_DVB_CORE is not set
760# CONFIG_VIDEO_MEDIA is not set
761
762#
763# Multimedia drivers
764#
726# CONFIG_DAB is not set 765# CONFIG_DAB is not set
727 766
728# 767#
@@ -737,10 +776,6 @@ CONFIG_SSB_POSSIBLE=y
737# Display device support 776# Display device support
738# 777#
739# CONFIG_DISPLAY_SUPPORT is not set 778# CONFIG_DISPLAY_SUPPORT is not set
740
741#
742# Sound
743#
744# CONFIG_SOUND is not set 779# CONFIG_SOUND is not set
745CONFIG_USB_SUPPORT=y 780CONFIG_USB_SUPPORT=y
746CONFIG_USB_ARCH_HAS_HCD=y 781CONFIG_USB_ARCH_HAS_HCD=y
@@ -760,11 +795,16 @@ CONFIG_USB_DEVICEFS=y
760# CONFIG_USB_OTG is not set 795# CONFIG_USB_OTG is not set
761# CONFIG_USB_OTG_WHITELIST is not set 796# CONFIG_USB_OTG_WHITELIST is not set
762# CONFIG_USB_OTG_BLACKLIST_HUB is not set 797# CONFIG_USB_OTG_BLACKLIST_HUB is not set
798CONFIG_USB_MON=y
799# CONFIG_USB_WUSB is not set
800# CONFIG_USB_WUSB_CBAF is not set
763 801
764# 802#
765# USB Host Controller Drivers 803# USB Host Controller Drivers
766# 804#
805# CONFIG_USB_C67X00_HCD is not set
767# CONFIG_USB_ISP116X_HCD is not set 806# CONFIG_USB_ISP116X_HCD is not set
807# CONFIG_USB_ISP1760_HCD is not set
768CONFIG_USB_OHCI_HCD=y 808CONFIG_USB_OHCI_HCD=y
769CONFIG_USB_OHCI_HCD_PPC_SOC=y 809CONFIG_USB_OHCI_HCD_PPC_SOC=y
770CONFIG_USB_OHCI_HCD_PPC_OF=y 810CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -775,12 +815,16 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
775# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set 815# CONFIG_USB_OHCI_LITTLE_ENDIAN is not set
776# CONFIG_USB_SL811_HCD is not set 816# CONFIG_USB_SL811_HCD is not set
777# CONFIG_USB_R8A66597_HCD is not set 817# CONFIG_USB_R8A66597_HCD is not set
818# CONFIG_USB_HWA_HCD is not set
819# CONFIG_USB_MUSB_HDRC is not set
778 820
779# 821#
780# USB Device Class drivers 822# USB Device Class drivers
781# 823#
782# CONFIG_USB_ACM is not set 824# CONFIG_USB_ACM is not set
783# CONFIG_USB_PRINTER is not set 825# CONFIG_USB_PRINTER is not set
826# CONFIG_USB_WDM is not set
827# CONFIG_USB_TMC is not set
784 828
785# 829#
786# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 830# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -809,7 +853,6 @@ CONFIG_USB_STORAGE=y
809# 853#
810# CONFIG_USB_MDC800 is not set 854# CONFIG_USB_MDC800 is not set
811# CONFIG_USB_MICROTEK is not set 855# CONFIG_USB_MICROTEK is not set
812CONFIG_USB_MON=y
813 856
814# 857#
815# USB port drivers 858# USB port drivers
@@ -822,7 +865,7 @@ CONFIG_USB_MON=y
822# CONFIG_USB_EMI62 is not set 865# CONFIG_USB_EMI62 is not set
823# CONFIG_USB_EMI26 is not set 866# CONFIG_USB_EMI26 is not set
824# CONFIG_USB_ADUTUX is not set 867# CONFIG_USB_ADUTUX is not set
825# CONFIG_USB_AUERSWALD is not set 868# CONFIG_USB_SEVSEG is not set
826# CONFIG_USB_RIO500 is not set 869# CONFIG_USB_RIO500 is not set
827# CONFIG_USB_LEGOTOWER is not set 870# CONFIG_USB_LEGOTOWER is not set
828# CONFIG_USB_LCD is not set 871# CONFIG_USB_LCD is not set
@@ -838,10 +881,13 @@ CONFIG_USB_MON=y
838# CONFIG_USB_TRANCEVIBRATOR is not set 881# CONFIG_USB_TRANCEVIBRATOR is not set
839# CONFIG_USB_IOWARRIOR is not set 882# CONFIG_USB_IOWARRIOR is not set
840# CONFIG_USB_TEST is not set 883# CONFIG_USB_TEST is not set
884# CONFIG_USB_ISIGHTFW is not set
885# CONFIG_USB_VST is not set
841# CONFIG_USB_GADGET is not set 886# CONFIG_USB_GADGET is not set
842# CONFIG_MMC is not set 887# CONFIG_MMC is not set
843# CONFIG_MEMSTICK is not set 888# CONFIG_MEMSTICK is not set
844# CONFIG_NEW_LEDS is not set 889# CONFIG_NEW_LEDS is not set
890# CONFIG_ACCESSIBILITY is not set
845# CONFIG_EDAC is not set 891# CONFIG_EDAC is not set
846CONFIG_RTC_LIB=y 892CONFIG_RTC_LIB=y
847CONFIG_RTC_CLASS=y 893CONFIG_RTC_CLASS=y
@@ -872,6 +918,8 @@ CONFIG_RTC_DRV_DS1307=y
872# CONFIG_RTC_DRV_PCF8583 is not set 918# CONFIG_RTC_DRV_PCF8583 is not set
873# CONFIG_RTC_DRV_M41T80 is not set 919# CONFIG_RTC_DRV_M41T80 is not set
874# CONFIG_RTC_DRV_S35390A is not set 920# CONFIG_RTC_DRV_S35390A is not set
921# CONFIG_RTC_DRV_FM3130 is not set
922# CONFIG_RTC_DRV_RX8581 is not set
875 923
876# 924#
877# SPI RTC drivers 925# SPI RTC drivers
@@ -881,19 +929,25 @@ CONFIG_RTC_DRV_DS1307=y
881# Platform RTC drivers 929# Platform RTC drivers
882# 930#
883# CONFIG_RTC_DRV_CMOS is not set 931# CONFIG_RTC_DRV_CMOS is not set
932# CONFIG_RTC_DRV_DS1286 is not set
884# CONFIG_RTC_DRV_DS1511 is not set 933# CONFIG_RTC_DRV_DS1511 is not set
885# CONFIG_RTC_DRV_DS1553 is not set 934# CONFIG_RTC_DRV_DS1553 is not set
886# CONFIG_RTC_DRV_DS1742 is not set 935# CONFIG_RTC_DRV_DS1742 is not set
887# CONFIG_RTC_DRV_STK17TA8 is not set 936# CONFIG_RTC_DRV_STK17TA8 is not set
888# CONFIG_RTC_DRV_M48T86 is not set 937# CONFIG_RTC_DRV_M48T86 is not set
938# CONFIG_RTC_DRV_M48T35 is not set
889# CONFIG_RTC_DRV_M48T59 is not set 939# CONFIG_RTC_DRV_M48T59 is not set
940# CONFIG_RTC_DRV_BQ4802 is not set
890# CONFIG_RTC_DRV_V3020 is not set 941# CONFIG_RTC_DRV_V3020 is not set
891 942
892# 943#
893# on-CPU RTC drivers 944# on-CPU RTC drivers
894# 945#
946# CONFIG_RTC_DRV_PPC is not set
895# CONFIG_DMADEVICES is not set 947# CONFIG_DMADEVICES is not set
896# CONFIG_UIO is not set 948# CONFIG_UIO is not set
949# CONFIG_STAGING is not set
950CONFIG_STAGING_EXCLUDE_BUILD=y
897 951
898# 952#
899# File systems 953# File systems
@@ -905,12 +959,13 @@ CONFIG_EXT3_FS=y
905CONFIG_EXT3_FS_XATTR=y 959CONFIG_EXT3_FS_XATTR=y
906# CONFIG_EXT3_FS_POSIX_ACL is not set 960# CONFIG_EXT3_FS_POSIX_ACL is not set
907# CONFIG_EXT3_FS_SECURITY is not set 961# CONFIG_EXT3_FS_SECURITY is not set
908# CONFIG_EXT4DEV_FS is not set 962# CONFIG_EXT4_FS is not set
909CONFIG_JBD=y 963CONFIG_JBD=y
910CONFIG_FS_MBCACHE=y 964CONFIG_FS_MBCACHE=y
911# CONFIG_REISERFS_FS is not set 965# CONFIG_REISERFS_FS is not set
912# CONFIG_JFS_FS is not set 966# CONFIG_JFS_FS is not set
913# CONFIG_FS_POSIX_ACL is not set 967# CONFIG_FS_POSIX_ACL is not set
968CONFIG_FILE_LOCKING=y
914# CONFIG_XFS_FS is not set 969# CONFIG_XFS_FS is not set
915# CONFIG_OCFS2_FS is not set 970# CONFIG_OCFS2_FS is not set
916CONFIG_DNOTIFY=y 971CONFIG_DNOTIFY=y
@@ -943,6 +998,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
943CONFIG_PROC_FS=y 998CONFIG_PROC_FS=y
944CONFIG_PROC_KCORE=y 999CONFIG_PROC_KCORE=y
945CONFIG_PROC_SYSCTL=y 1000CONFIG_PROC_SYSCTL=y
1001CONFIG_PROC_PAGE_MONITOR=y
946CONFIG_SYSFS=y 1002CONFIG_SYSFS=y
947CONFIG_TMPFS=y 1003CONFIG_TMPFS=y
948# CONFIG_TMPFS_POSIX_ACL is not set 1004# CONFIG_TMPFS_POSIX_ACL is not set
@@ -973,6 +1029,7 @@ CONFIG_JFFS2_RTIME=y
973CONFIG_CRAMFS=y 1029CONFIG_CRAMFS=y
974# CONFIG_VXFS_FS is not set 1030# CONFIG_VXFS_FS is not set
975# CONFIG_MINIX_FS is not set 1031# CONFIG_MINIX_FS is not set
1032# CONFIG_OMFS_FS is not set
976# CONFIG_HPFS_FS is not set 1033# CONFIG_HPFS_FS is not set
977# CONFIG_QNX4FS_FS is not set 1034# CONFIG_QNX4FS_FS is not set
978# CONFIG_ROMFS_FS is not set 1035# CONFIG_ROMFS_FS is not set
@@ -983,14 +1040,14 @@ CONFIG_NFS_FS=y
983CONFIG_NFS_V3=y 1040CONFIG_NFS_V3=y
984# CONFIG_NFS_V3_ACL is not set 1041# CONFIG_NFS_V3_ACL is not set
985CONFIG_NFS_V4=y 1042CONFIG_NFS_V4=y
986# CONFIG_NFSD is not set
987CONFIG_ROOT_NFS=y 1043CONFIG_ROOT_NFS=y
1044# CONFIG_NFSD is not set
988CONFIG_LOCKD=y 1045CONFIG_LOCKD=y
989CONFIG_LOCKD_V4=y 1046CONFIG_LOCKD_V4=y
990CONFIG_NFS_COMMON=y 1047CONFIG_NFS_COMMON=y
991CONFIG_SUNRPC=y 1048CONFIG_SUNRPC=y
992CONFIG_SUNRPC_GSS=y 1049CONFIG_SUNRPC_GSS=y
993# CONFIG_SUNRPC_BIND34 is not set 1050# CONFIG_SUNRPC_REGISTER_V4 is not set
994CONFIG_RPCSEC_GSS_KRB5=y 1051CONFIG_RPCSEC_GSS_KRB5=y
995# CONFIG_RPCSEC_GSS_SPKM3 is not set 1052# CONFIG_RPCSEC_GSS_SPKM3 is not set
996# CONFIG_SMB_FS is not set 1053# CONFIG_SMB_FS is not set
@@ -1066,9 +1123,9 @@ CONFIG_NLS_ISO8859_1=y
1066# Library routines 1123# Library routines
1067# 1124#
1068CONFIG_BITREVERSE=y 1125CONFIG_BITREVERSE=y
1069# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1070# CONFIG_CRC_CCITT is not set 1126# CONFIG_CRC_CCITT is not set
1071# CONFIG_CRC16 is not set 1127# CONFIG_CRC16 is not set
1128# CONFIG_CRC_T10DIF is not set
1072# CONFIG_CRC_ITU_T is not set 1129# CONFIG_CRC_ITU_T is not set
1073CONFIG_CRC32=y 1130CONFIG_CRC32=y
1074# CONFIG_CRC7 is not set 1131# CONFIG_CRC7 is not set
@@ -1095,9 +1152,12 @@ CONFIG_FRAME_WARN=1024
1095CONFIG_DEBUG_KERNEL=y 1152CONFIG_DEBUG_KERNEL=y
1096# CONFIG_DEBUG_SHIRQ is not set 1153# CONFIG_DEBUG_SHIRQ is not set
1097CONFIG_DETECT_SOFTLOCKUP=y 1154CONFIG_DETECT_SOFTLOCKUP=y
1155# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1156CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1098CONFIG_SCHED_DEBUG=y 1157CONFIG_SCHED_DEBUG=y
1099# CONFIG_SCHEDSTATS is not set 1158# CONFIG_SCHEDSTATS is not set
1100# CONFIG_TIMER_STATS is not set 1159# CONFIG_TIMER_STATS is not set
1160# CONFIG_DEBUG_OBJECTS is not set
1101# CONFIG_SLUB_DEBUG_ON is not set 1161# CONFIG_SLUB_DEBUG_ON is not set
1102# CONFIG_SLUB_STATS is not set 1162# CONFIG_SLUB_STATS is not set
1103# CONFIG_DEBUG_RT_MUTEXES is not set 1163# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1111,17 +1171,37 @@ CONFIG_SCHED_DEBUG=y
1111CONFIG_DEBUG_INFO=y 1171CONFIG_DEBUG_INFO=y
1112# CONFIG_DEBUG_VM is not set 1172# CONFIG_DEBUG_VM is not set
1113# CONFIG_DEBUG_WRITECOUNT is not set 1173# CONFIG_DEBUG_WRITECOUNT is not set
1174# CONFIG_DEBUG_MEMORY_INIT is not set
1114# CONFIG_DEBUG_LIST is not set 1175# CONFIG_DEBUG_LIST is not set
1115# CONFIG_DEBUG_SG is not set 1176# CONFIG_DEBUG_SG is not set
1116# CONFIG_BOOT_PRINTK_DELAY is not set 1177# CONFIG_BOOT_PRINTK_DELAY is not set
1117# CONFIG_RCU_TORTURE_TEST is not set 1178# CONFIG_RCU_TORTURE_TEST is not set
1179# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1118# CONFIG_BACKTRACE_SELF_TEST is not set 1180# CONFIG_BACKTRACE_SELF_TEST is not set
1181# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1119# CONFIG_FAULT_INJECTION is not set 1182# CONFIG_FAULT_INJECTION is not set
1183# CONFIG_LATENCYTOP is not set
1184CONFIG_HAVE_FUNCTION_TRACER=y
1185
1186#
1187# Tracers
1188#
1189# CONFIG_FUNCTION_TRACER is not set
1190# CONFIG_SCHED_TRACER is not set
1191# CONFIG_CONTEXT_SWITCH_TRACER is not set
1192# CONFIG_BOOT_TRACER is not set
1193# CONFIG_STACK_TRACER is not set
1194# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1120# CONFIG_SAMPLES is not set 1195# CONFIG_SAMPLES is not set
1196CONFIG_HAVE_ARCH_KGDB=y
1197# CONFIG_KGDB is not set
1121# CONFIG_DEBUG_STACKOVERFLOW is not set 1198# CONFIG_DEBUG_STACKOVERFLOW is not set
1122# CONFIG_DEBUG_STACK_USAGE is not set 1199# CONFIG_DEBUG_STACK_USAGE is not set
1123# CONFIG_DEBUG_PAGEALLOC is not set 1200# CONFIG_DEBUG_PAGEALLOC is not set
1124# CONFIG_DEBUGGER is not set 1201# CONFIG_CODE_PATCHING_SELFTEST is not set
1202# CONFIG_FTR_FIXUP_SELFTEST is not set
1203# CONFIG_MSI_BITMAP_SELFTEST is not set
1204# CONFIG_XMON is not set
1125# CONFIG_IRQSTACKS is not set 1205# CONFIG_IRQSTACKS is not set
1126# CONFIG_BDI_SWITCH is not set 1206# CONFIG_BDI_SWITCH is not set
1127# CONFIG_BOOTX_TEXT is not set 1207# CONFIG_BOOTX_TEXT is not set
@@ -1132,14 +1212,19 @@ CONFIG_DEBUG_INFO=y
1132# 1212#
1133# CONFIG_KEYS is not set 1213# CONFIG_KEYS is not set
1134# CONFIG_SECURITY is not set 1214# CONFIG_SECURITY is not set
1215# CONFIG_SECURITYFS is not set
1135# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1216# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1136CONFIG_CRYPTO=y 1217CONFIG_CRYPTO=y
1137 1218
1138# 1219#
1139# Crypto core or helper 1220# Crypto core or helper
1140# 1221#
1222# CONFIG_CRYPTO_FIPS is not set
1141CONFIG_CRYPTO_ALGAPI=y 1223CONFIG_CRYPTO_ALGAPI=y
1224CONFIG_CRYPTO_AEAD=y
1142CONFIG_CRYPTO_BLKCIPHER=y 1225CONFIG_CRYPTO_BLKCIPHER=y
1226CONFIG_CRYPTO_HASH=y
1227CONFIG_CRYPTO_RNG=y
1143CONFIG_CRYPTO_MANAGER=y 1228CONFIG_CRYPTO_MANAGER=y
1144# CONFIG_CRYPTO_GF128MUL is not set 1229# CONFIG_CRYPTO_GF128MUL is not set
1145# CONFIG_CRYPTO_NULL is not set 1230# CONFIG_CRYPTO_NULL is not set
@@ -1178,6 +1263,10 @@ CONFIG_CRYPTO_PCBC=y
1178# CONFIG_CRYPTO_MD4 is not set 1263# CONFIG_CRYPTO_MD4 is not set
1179CONFIG_CRYPTO_MD5=y 1264CONFIG_CRYPTO_MD5=y
1180# CONFIG_CRYPTO_MICHAEL_MIC is not set 1265# CONFIG_CRYPTO_MICHAEL_MIC is not set
1266# CONFIG_CRYPTO_RMD128 is not set
1267# CONFIG_CRYPTO_RMD160 is not set
1268# CONFIG_CRYPTO_RMD256 is not set
1269# CONFIG_CRYPTO_RMD320 is not set
1181# CONFIG_CRYPTO_SHA1 is not set 1270# CONFIG_CRYPTO_SHA1 is not set
1182# CONFIG_CRYPTO_SHA256 is not set 1271# CONFIG_CRYPTO_SHA256 is not set
1183# CONFIG_CRYPTO_SHA512 is not set 1272# CONFIG_CRYPTO_SHA512 is not set
@@ -1208,6 +1297,11 @@ CONFIG_CRYPTO_DES=y
1208# 1297#
1209# CONFIG_CRYPTO_DEFLATE is not set 1298# CONFIG_CRYPTO_DEFLATE is not set
1210# CONFIG_CRYPTO_LZO is not set 1299# CONFIG_CRYPTO_LZO is not set
1300
1301#
1302# Random Number Generation
1303#
1304# CONFIG_CRYPTO_ANSI_CPRNG is not set
1211CONFIG_CRYPTO_HW=y 1305CONFIG_CRYPTO_HW=y
1212CONFIG_PPC_CLOCK=y 1306CONFIG_PPC_CLOCK=y
1213CONFIG_PPC_LIB_RHEAP=y 1307CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index e55ff7c47a36..07a674f5344e 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
@@ -723,7 +723,7 @@ CONFIG_CICADA_PHY=y
723# CONFIG_BROADCOM_PHY is not set 723# CONFIG_BROADCOM_PHY is not set
724# CONFIG_ICPLUS_PHY is not set 724# CONFIG_ICPLUS_PHY is not set
725# CONFIG_REALTEK_PHY is not set 725# CONFIG_REALTEK_PHY is not set
726# CONFIG_FIXED_PHY is not set 726CONFIG_FIXED_PHY=y
727# CONFIG_MDIO_BITBANG is not set 727# CONFIG_MDIO_BITBANG is not set
728# CONFIG_NET_ETHERNET is not set 728# CONFIG_NET_ETHERNET is not set
729CONFIG_NETDEV_1000=y 729CONFIG_NETDEV_1000=y
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 2da13e00a807..07ccaf89f379 100644
--- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
@@ -838,7 +838,7 @@ CONFIG_PHYLIB=y
838# 838#
839# MII PHY device drivers 839# MII PHY device drivers
840# 840#
841CONFIG_MARVELL_PHY=y 841# CONFIG_MARVELL_PHY is not set
842# CONFIG_DAVICOM_PHY is not set 842# CONFIG_DAVICOM_PHY is not set
843# CONFIG_QSEMI_PHY is not set 843# CONFIG_QSEMI_PHY is not set
844# CONFIG_LXT_PHY is not set 844# CONFIG_LXT_PHY is not set
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig
index 740c9f2b7de6..15c5604d0b26 100644
--- a/arch/powerpc/configs/mpc5200_defconfig
+++ b/arch/powerpc/configs/mpc5200_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.28-rc4
4# Fri Jan 18 14:19:54 2008 4# Thu Nov 13 02:09:07 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,14 +22,18 @@ CONFIG_PPC_STD_MMU_32=y
22# CONFIG_SMP is not set 22# CONFIG_SMP is not set
23CONFIG_PPC32=y 23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32 24CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y 25# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
26CONFIG_MMU=y 26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 28CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
35CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -47,7 +51,8 @@ CONFIG_OF=y
47# CONFIG_GENERIC_TBSYNC is not set 51# CONFIG_GENERIC_TBSYNC is not set
48CONFIG_AUDIT_ARCH=y 52CONFIG_AUDIT_ARCH=y
49CONFIG_GENERIC_BUG=y 53CONFIG_GENERIC_BUG=y
50# CONFIG_DEFAULT_UIMAGE is not set 54CONFIG_DEFAULT_UIMAGE=y
55CONFIG_ARCH_SUSPEND_POSSIBLE=y
51# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
52# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
53CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -66,17 +71,15 @@ CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 71# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 72# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 73# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_PID_NS is not set
71# CONFIG_AUDIT is not set 74# CONFIG_AUDIT is not set
72# CONFIG_IKCONFIG is not set 75# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 76CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 77# CONFIG_CGROUPS is not set
75CONFIG_FAIR_GROUP_SCHED=y 78# CONFIG_GROUP_SCHED is not set
76CONFIG_FAIR_USER_SCHED=y
77# CONFIG_FAIR_CGROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
80CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
81CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -88,32 +91,49 @@ CONFIG_HOTPLUG=y
88CONFIG_PRINTK=y 91CONFIG_PRINTK=y
89CONFIG_BUG=y 92CONFIG_BUG=y
90CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
91CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
92CONFIG_FUTEX=y 96CONFIG_FUTEX=y
93CONFIG_ANON_INODES=y 97CONFIG_ANON_INODES=y
94# CONFIG_EPOLL is not set 98# CONFIG_EPOLL is not set
95CONFIG_SIGNALFD=y 99CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 102CONFIG_SHMEM=y
103CONFIG_AIO=y
98CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
105CONFIG_PCI_QUIRKS=y
99CONFIG_SLUB_DEBUG=y 106CONFIG_SLUB_DEBUG=y
100# CONFIG_SLAB is not set 107# CONFIG_SLAB is not set
101CONFIG_SLUB=y 108CONFIG_SLUB=y
102# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y
103CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
104# CONFIG_TINY_SHMEM is not set 122# CONFIG_TINY_SHMEM is not set
105CONFIG_BASE_SMALL=0 123CONFIG_BASE_SMALL=0
106CONFIG_MODULES=y 124CONFIG_MODULES=y
125# CONFIG_MODULE_FORCE_LOAD is not set
107CONFIG_MODULE_UNLOAD=y 126CONFIG_MODULE_UNLOAD=y
108# CONFIG_MODULE_FORCE_UNLOAD is not set 127# CONFIG_MODULE_FORCE_UNLOAD is not set
109# CONFIG_MODVERSIONS is not set 128# CONFIG_MODVERSIONS is not set
110# CONFIG_MODULE_SRCVERSION_ALL is not set 129# CONFIG_MODULE_SRCVERSION_ALL is not set
111# CONFIG_KMOD is not set 130CONFIG_KMOD=y
112CONFIG_BLOCK=y 131CONFIG_BLOCK=y
113# CONFIG_LBD is not set 132# CONFIG_LBD is not set
114# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
115# CONFIG_LSF is not set 134# CONFIG_LSF is not set
116# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set
117 137
118# 138#
119# IO Schedulers 139# IO Schedulers
@@ -127,29 +147,34 @@ CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_CFQ is not set 147# CONFIG_DEFAULT_CFQ is not set
128# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
129CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y
151CONFIG_FREEZER=y
130 152
131# 153#
132# Platform support 154# Platform support
133# 155#
134CONFIG_PPC_MULTIPLATFORM=y 156CONFIG_PPC_MULTIPLATFORM=y
135# CONFIG_PPC_82xx is not set
136# CONFIG_PPC_83xx is not set
137# CONFIG_PPC_86xx is not set
138CONFIG_CLASSIC32=y 157CONFIG_CLASSIC32=y
139# CONFIG_PPC_CHRP is not set 158# CONFIG_PPC_CHRP is not set
159# CONFIG_MPC5121_ADS is not set
160# CONFIG_MPC5121_GENERIC is not set
140CONFIG_PPC_MPC52xx=y 161CONFIG_PPC_MPC52xx=y
141CONFIG_PPC_MPC5200=y
142CONFIG_PPC_MPC5200_BUGFIX=y
143CONFIG_PPC_MPC5200_SIMPLE=y 162CONFIG_PPC_MPC5200_SIMPLE=y
144CONFIG_PPC_EFIKA=y 163CONFIG_PPC_EFIKA=y
145CONFIG_PPC_LITE5200=y 164CONFIG_PPC_LITE5200=y
165CONFIG_PPC_MPC5200_BUGFIX=y
166# CONFIG_PPC_MPC5200_GPIO is not set
146# CONFIG_PPC_PMAC is not set 167# CONFIG_PPC_PMAC is not set
147# CONFIG_PPC_CELL is not set 168# CONFIG_PPC_CELL is not set
148# CONFIG_PPC_CELL_NATIVE is not set 169# CONFIG_PPC_CELL_NATIVE is not set
170# CONFIG_PPC_82xx is not set
149# CONFIG_PQ2ADS is not set 171# CONFIG_PQ2ADS is not set
172# CONFIG_PPC_83xx is not set
173# CONFIG_PPC_86xx is not set
150# CONFIG_EMBEDDED6xx is not set 174# CONFIG_EMBEDDED6xx is not set
151CONFIG_PPC_NATIVE=y 175CONFIG_PPC_NATIVE=y
152# CONFIG_UDBG_RTAS_CONSOLE is not set 176# CONFIG_UDBG_RTAS_CONSOLE is not set
177# CONFIG_IPIC is not set
153# CONFIG_MPIC is not set 178# CONFIG_MPIC is not set
154# CONFIG_MPIC_WEIRD is not set 179# CONFIG_MPIC_WEIRD is not set
155# CONFIG_PPC_I8259 is not set 180# CONFIG_PPC_I8259 is not set
@@ -163,7 +188,6 @@ CONFIG_RTAS_PROC=y
163# CONFIG_GENERIC_IOMAP is not set 188# CONFIG_GENERIC_IOMAP is not set
164# CONFIG_CPU_FREQ is not set 189# CONFIG_CPU_FREQ is not set
165# CONFIG_TAU is not set 190# CONFIG_TAU is not set
166# CONFIG_CPM2 is not set
167# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
168CONFIG_PPC_BESTCOMM=y 192CONFIG_PPC_BESTCOMM=y
169CONFIG_PPC_BESTCOMM_ATA=y 193CONFIG_PPC_BESTCOMM_ATA=y
@@ -183,12 +207,18 @@ CONFIG_HZ_250=y
183# CONFIG_HZ_300 is not set 207# CONFIG_HZ_300 is not set
184# CONFIG_HZ_1000 is not set 208# CONFIG_HZ_1000 is not set
185CONFIG_HZ=250 209CONFIG_HZ=250
210CONFIG_SCHED_HRTICK=y
186CONFIG_PREEMPT_NONE=y 211CONFIG_PREEMPT_NONE=y
187# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
188# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
189CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
216# CONFIG_HAVE_AOUT is not set
190# CONFIG_BINFMT_MISC is not set 217# CONFIG_BINFMT_MISC is not set
218# CONFIG_IOMMU_HELPER is not set
191CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
220CONFIG_ARCH_HAS_WALK_MEMORY=y
221CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
192# CONFIG_KEXEC is not set 222# CONFIG_KEXEC is not set
193CONFIG_ARCH_FLATMEM_ENABLE=y 223CONFIG_ARCH_FLATMEM_ENABLE=y
194CONFIG_ARCH_POPULATES_NODE_MAP=y 224CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -198,26 +228,25 @@ CONFIG_FLATMEM_MANUAL=y
198# CONFIG_SPARSEMEM_MANUAL is not set 228# CONFIG_SPARSEMEM_MANUAL is not set
199CONFIG_FLATMEM=y 229CONFIG_FLATMEM=y
200CONFIG_FLAT_NODE_MEM_MAP=y 230CONFIG_FLAT_NODE_MEM_MAP=y
201# CONFIG_SPARSEMEM_STATIC is not set 231CONFIG_PAGEFLAGS_EXTENDED=y
202# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
203CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y
204# CONFIG_RESOURCES_64BIT is not set 234# CONFIG_RESOURCES_64BIT is not set
235# CONFIG_PHYS_ADDR_T_64BIT is not set
205CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
206CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
207CONFIG_VIRT_TO_BUS=y 238CONFIG_VIRT_TO_BUS=y
239CONFIG_UNEVICTABLE_LRU=y
240CONFIG_FORCE_MAX_ZONEORDER=11
208CONFIG_PROC_DEVICETREE=y 241CONFIG_PROC_DEVICETREE=y
209# CONFIG_CMDLINE_BOOL is not set 242# CONFIG_CMDLINE_BOOL is not set
243CONFIG_EXTRA_TARGETS=""
210CONFIG_PM=y 244CONFIG_PM=y
211# CONFIG_PM_LEGACY is not set
212# CONFIG_PM_DEBUG is not set 245# CONFIG_PM_DEBUG is not set
213CONFIG_PM_SLEEP=y 246CONFIG_PM_SLEEP=y
214CONFIG_SUSPEND_UP_POSSIBLE=y
215CONFIG_SUSPEND=y 247CONFIG_SUSPEND=y
216CONFIG_HIBERNATION_UP_POSSIBLE=y 248CONFIG_SUSPEND_FREEZER=y
217# CONFIG_HIBERNATION is not set
218CONFIG_SECCOMP=y 249CONFIG_SECCOMP=y
219CONFIG_WANT_DEVICE_TREE=y
220CONFIG_DEVICE_TREE=""
221CONFIG_ISA_DMA_API=y 250CONFIG_ISA_DMA_API=y
222 251
223# 252#
@@ -226,7 +255,7 @@ CONFIG_ISA_DMA_API=y
226CONFIG_ZONE_DMA=y 255CONFIG_ZONE_DMA=y
227CONFIG_GENERIC_ISA_DMA=y 256CONFIG_GENERIC_ISA_DMA=y
228# CONFIG_PPC_INDIRECT_PCI is not set 257# CONFIG_PPC_INDIRECT_PCI is not set
229CONFIG_FSL_SOC=y 258CONFIG_PPC_PCI_CHOICE=y
230CONFIG_PCI=y 259CONFIG_PCI=y
231CONFIG_PCI_DOMAINS=y 260CONFIG_PCI_DOMAINS=y
232CONFIG_PCI_SYSCALL=y 261CONFIG_PCI_SYSCALL=y
@@ -237,6 +266,7 @@ CONFIG_PCI_LEGACY=y
237# CONFIG_PCI_DEBUG is not set 266# CONFIG_PCI_DEBUG is not set
238# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
239# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set
240 270
241# 271#
242# Advanced setup 272# Advanced setup
@@ -246,15 +276,11 @@ CONFIG_PCI_LEGACY=y
246# 276#
247# Default settings for advanced configuration options are used 277# Default settings for advanced configuration options are used
248# 278#
249CONFIG_HIGHMEM_START=0xfe000000
250CONFIG_LOWMEM_SIZE=0x30000000 279CONFIG_LOWMEM_SIZE=0x30000000
280CONFIG_PAGE_OFFSET=0xc0000000
251CONFIG_KERNEL_START=0xc0000000 281CONFIG_KERNEL_START=0xc0000000
282CONFIG_PHYSICAL_START=0x00000000
252CONFIG_TASK_SIZE=0xc0000000 283CONFIG_TASK_SIZE=0xc0000000
253CONFIG_BOOT_LOAD=0x00800000
254
255#
256# Networking
257#
258CONFIG_NET=y 284CONFIG_NET=y
259 285
260# 286#
@@ -267,6 +293,7 @@ CONFIG_XFRM=y
267CONFIG_XFRM_USER=m 293CONFIG_XFRM_USER=m
268# CONFIG_XFRM_SUB_POLICY is not set 294# CONFIG_XFRM_SUB_POLICY is not set
269# CONFIG_XFRM_MIGRATE is not set 295# CONFIG_XFRM_MIGRATE is not set
296# CONFIG_XFRM_STATISTICS is not set
270# CONFIG_NET_KEY is not set 297# CONFIG_NET_KEY is not set
271CONFIG_INET=y 298CONFIG_INET=y
272CONFIG_IP_MULTICAST=y 299CONFIG_IP_MULTICAST=y
@@ -297,8 +324,6 @@ CONFIG_TCP_CONG_CUBIC=y
297CONFIG_DEFAULT_TCP_CONG="cubic" 324CONFIG_DEFAULT_TCP_CONG="cubic"
298# CONFIG_TCP_MD5SIG is not set 325# CONFIG_TCP_MD5SIG is not set
299# CONFIG_IPV6 is not set 326# CONFIG_IPV6 is not set
300# CONFIG_INET6_XFRM_TUNNEL is not set
301# CONFIG_INET6_TUNNEL is not set
302# CONFIG_NETWORK_SECMARK is not set 327# CONFIG_NETWORK_SECMARK is not set
303# CONFIG_NETFILTER is not set 328# CONFIG_NETFILTER is not set
304# CONFIG_IP_DCCP is not set 329# CONFIG_IP_DCCP is not set
@@ -306,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
306# CONFIG_TIPC is not set 331# CONFIG_TIPC is not set
307# CONFIG_ATM is not set 332# CONFIG_ATM is not set
308# CONFIG_BRIDGE is not set 333# CONFIG_BRIDGE is not set
334# CONFIG_NET_DSA is not set
309# CONFIG_VLAN_8021Q is not set 335# CONFIG_VLAN_8021Q is not set
310# CONFIG_DECNET is not set 336# CONFIG_DECNET is not set
311# CONFIG_LLC2 is not set 337# CONFIG_LLC2 is not set
@@ -322,17 +348,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# 348#
323# CONFIG_NET_PKTGEN is not set 349# CONFIG_NET_PKTGEN is not set
324# CONFIG_HAMRADIO is not set 350# CONFIG_HAMRADIO is not set
351# CONFIG_CAN is not set
325# CONFIG_IRDA is not set 352# CONFIG_IRDA is not set
326# CONFIG_BT is not set 353# CONFIG_BT is not set
327# CONFIG_AF_RXRPC is not set 354# CONFIG_AF_RXRPC is not set
328 355# CONFIG_PHONET is not set
329# 356# CONFIG_WIRELESS is not set
330# Wireless
331#
332# CONFIG_CFG80211 is not set
333# CONFIG_WIRELESS_EXT is not set
334# CONFIG_MAC80211 is not set
335# CONFIG_IEEE80211 is not set
336# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
337# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
338 359
@@ -357,6 +378,8 @@ CONFIG_MTD_CONCAT=y
357CONFIG_MTD_PARTITIONS=y 378CONFIG_MTD_PARTITIONS=y
358# CONFIG_MTD_REDBOOT_PARTS is not set 379# CONFIG_MTD_REDBOOT_PARTS is not set
359CONFIG_MTD_CMDLINE_PARTS=y 380CONFIG_MTD_CMDLINE_PARTS=y
381# CONFIG_MTD_OF_PARTS is not set
382# CONFIG_MTD_AR7_PARTS is not set
360 383
361# 384#
362# User Modules And Translation Layers 385# User Modules And Translation Layers
@@ -428,6 +451,7 @@ CONFIG_MTD_PHYSMAP_OF=y
428# 451#
429# CONFIG_MTD_UBI is not set 452# CONFIG_MTD_UBI is not set
430CONFIG_OF_DEVICE=y 453CONFIG_OF_DEVICE=y
454CONFIG_OF_I2C=y
431# CONFIG_PARPORT is not set 455# CONFIG_PARPORT is not set
432CONFIG_BLK_DEV=y 456CONFIG_BLK_DEV=y
433# CONFIG_BLK_DEV_FD is not set 457# CONFIG_BLK_DEV_FD is not set
@@ -444,14 +468,20 @@ CONFIG_BLK_DEV_LOOP=y
444CONFIG_BLK_DEV_RAM=y 468CONFIG_BLK_DEV_RAM=y
445CONFIG_BLK_DEV_RAM_COUNT=16 469CONFIG_BLK_DEV_RAM_COUNT=16
446CONFIG_BLK_DEV_RAM_SIZE=32768 470CONFIG_BLK_DEV_RAM_SIZE=32768
447CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 471# CONFIG_BLK_DEV_XIP is not set
448# CONFIG_CDROM_PKTCDVD is not set 472# CONFIG_CDROM_PKTCDVD is not set
449# CONFIG_ATA_OVER_ETH is not set 473# CONFIG_ATA_OVER_ETH is not set
474# CONFIG_BLK_DEV_HD is not set
450CONFIG_MISC_DEVICES=y 475CONFIG_MISC_DEVICES=y
451# CONFIG_PHANTOM is not set 476# CONFIG_PHANTOM is not set
452# CONFIG_EEPROM_93CX6 is not set 477# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_SGI_IOC4 is not set 478# CONFIG_SGI_IOC4 is not set
454# CONFIG_TIFM_CORE is not set 479# CONFIG_TIFM_CORE is not set
480# CONFIG_ICS932S401 is not set
481# CONFIG_ENCLOSURE_SERVICES is not set
482# CONFIG_HP_ILO is not set
483# CONFIG_C2PORT is not set
484CONFIG_HAVE_IDE=y
455# CONFIG_IDE is not set 485# CONFIG_IDE is not set
456 486
457# 487#
@@ -516,6 +546,7 @@ CONFIG_SCSI_LOWLEVEL=y
516# CONFIG_SCSI_IPS is not set 546# CONFIG_SCSI_IPS is not set
517# CONFIG_SCSI_INITIO is not set 547# CONFIG_SCSI_INITIO is not set
518# CONFIG_SCSI_INIA100 is not set 548# CONFIG_SCSI_INIA100 is not set
549# CONFIG_SCSI_MVSAS is not set
519# CONFIG_SCSI_STEX is not set 550# CONFIG_SCSI_STEX is not set
520# CONFIG_SCSI_SYM53C8XX_2 is not set 551# CONFIG_SCSI_SYM53C8XX_2 is not set
521# CONFIG_SCSI_IPR is not set 552# CONFIG_SCSI_IPR is not set
@@ -528,9 +559,13 @@ CONFIG_SCSI_LOWLEVEL=y
528# CONFIG_SCSI_NSP32 is not set 559# CONFIG_SCSI_NSP32 is not set
529# CONFIG_SCSI_DEBUG is not set 560# CONFIG_SCSI_DEBUG is not set
530# CONFIG_SCSI_SRP is not set 561# CONFIG_SCSI_SRP is not set
562# CONFIG_SCSI_DH is not set
531CONFIG_ATA=y 563CONFIG_ATA=y
532# CONFIG_ATA_NONSTANDARD is not set 564# CONFIG_ATA_NONSTANDARD is not set
565CONFIG_SATA_PMP=y
533# CONFIG_SATA_AHCI is not set 566# CONFIG_SATA_AHCI is not set
567# CONFIG_SATA_SIL24 is not set
568CONFIG_ATA_SFF=y
534# CONFIG_SATA_SVW is not set 569# CONFIG_SATA_SVW is not set
535# CONFIG_ATA_PIIX is not set 570# CONFIG_ATA_PIIX is not set
536# CONFIG_SATA_MV is not set 571# CONFIG_SATA_MV is not set
@@ -540,7 +575,6 @@ CONFIG_ATA=y
540# CONFIG_SATA_PROMISE is not set 575# CONFIG_SATA_PROMISE is not set
541# CONFIG_SATA_SX4 is not set 576# CONFIG_SATA_SX4 is not set
542# CONFIG_SATA_SIL is not set 577# CONFIG_SATA_SIL is not set
543# CONFIG_SATA_SIL24 is not set
544# CONFIG_SATA_SIS is not set 578# CONFIG_SATA_SIS is not set
545# CONFIG_SATA_ULI is not set 579# CONFIG_SATA_ULI is not set
546# CONFIG_SATA_VIA is not set 580# CONFIG_SATA_VIA is not set
@@ -570,6 +604,7 @@ CONFIG_PATA_MPC52xx=y
570# CONFIG_PATA_MPIIX is not set 604# CONFIG_PATA_MPIIX is not set
571# CONFIG_PATA_OLDPIIX is not set 605# CONFIG_PATA_OLDPIIX is not set
572# CONFIG_PATA_NETCELL is not set 606# CONFIG_PATA_NETCELL is not set
607# CONFIG_PATA_NINJA32 is not set
573# CONFIG_PATA_NS87410 is not set 608# CONFIG_PATA_NS87410 is not set
574# CONFIG_PATA_NS87415 is not set 609# CONFIG_PATA_NS87415 is not set
575# CONFIG_PATA_OPTI is not set 610# CONFIG_PATA_OPTI is not set
@@ -586,25 +621,28 @@ CONFIG_PATA_MPC52xx=y
586# CONFIG_PATA_WINBOND is not set 621# CONFIG_PATA_WINBOND is not set
587CONFIG_PATA_PLATFORM=y 622CONFIG_PATA_PLATFORM=y
588# CONFIG_PATA_OF_PLATFORM is not set 623# CONFIG_PATA_OF_PLATFORM is not set
624# CONFIG_PATA_SCH is not set
589# CONFIG_MD is not set 625# CONFIG_MD is not set
590# CONFIG_FUSION is not set 626# CONFIG_FUSION is not set
591 627
592# 628#
593# IEEE 1394 (FireWire) support 629# IEEE 1394 (FireWire) support
594# 630#
631
632#
633# Enable only one of the two stacks, unless you know what you are doing
634#
595# CONFIG_FIREWIRE is not set 635# CONFIG_FIREWIRE is not set
596# CONFIG_IEEE1394 is not set 636# CONFIG_IEEE1394 is not set
597# CONFIG_I2O is not set 637# CONFIG_I2O is not set
598# CONFIG_MACINTOSH_DRIVERS is not set 638# CONFIG_MACINTOSH_DRIVERS is not set
599CONFIG_NETDEVICES=y 639CONFIG_NETDEVICES=y
600# CONFIG_NETDEVICES_MULTIQUEUE is not set
601# CONFIG_DUMMY is not set 640# CONFIG_DUMMY is not set
602# CONFIG_BONDING is not set 641# CONFIG_BONDING is not set
603# CONFIG_MACVLAN is not set 642# CONFIG_MACVLAN is not set
604# CONFIG_EQUALIZER is not set 643# CONFIG_EQUALIZER is not set
605# CONFIG_TUN is not set 644# CONFIG_TUN is not set
606# CONFIG_VETH is not set 645# CONFIG_VETH is not set
607# CONFIG_IP1000 is not set
608# CONFIG_ARCNET is not set 646# CONFIG_ARCNET is not set
609CONFIG_PHYLIB=y 647CONFIG_PHYLIB=y
610 648
@@ -620,6 +658,7 @@ CONFIG_PHYLIB=y
620# CONFIG_SMSC_PHY is not set 658# CONFIG_SMSC_PHY is not set
621# CONFIG_BROADCOM_PHY is not set 659# CONFIG_BROADCOM_PHY is not set
622# CONFIG_ICPLUS_PHY is not set 660# CONFIG_ICPLUS_PHY is not set
661# CONFIG_REALTEK_PHY is not set
623# CONFIG_FIXED_PHY is not set 662# CONFIG_FIXED_PHY is not set
624# CONFIG_MDIO_BITBANG is not set 663# CONFIG_MDIO_BITBANG is not set
625CONFIG_NET_ETHERNET=y 664CONFIG_NET_ETHERNET=y
@@ -634,10 +673,14 @@ CONFIG_NET_ETHERNET=y
634# CONFIG_IBM_NEW_EMAC_RGMII is not set 673# CONFIG_IBM_NEW_EMAC_RGMII is not set
635# CONFIG_IBM_NEW_EMAC_TAH is not set 674# CONFIG_IBM_NEW_EMAC_TAH is not set
636# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 675# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
676# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
677# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
678# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
637# CONFIG_NET_PCI is not set 679# CONFIG_NET_PCI is not set
638# CONFIG_B44 is not set 680# CONFIG_B44 is not set
639CONFIG_FEC_MPC52xx=y 681CONFIG_FEC_MPC52xx=y
640CONFIG_FEC_MPC52xx_MDIO=y 682CONFIG_FEC_MPC52xx_MDIO=y
683# CONFIG_ATL2 is not set
641# CONFIG_NETDEV_1000 is not set 684# CONFIG_NETDEV_1000 is not set
642# CONFIG_NETDEV_10000 is not set 685# CONFIG_NETDEV_10000 is not set
643# CONFIG_TR is not set 686# CONFIG_TR is not set
@@ -647,6 +690,7 @@ CONFIG_FEC_MPC52xx_MDIO=y
647# 690#
648# CONFIG_WLAN_PRE80211 is not set 691# CONFIG_WLAN_PRE80211 is not set
649# CONFIG_WLAN_80211 is not set 692# CONFIG_WLAN_80211 is not set
693# CONFIG_IWLWIFI_LEDS is not set
650 694
651# 695#
652# USB Network Adapters 696# USB Network Adapters
@@ -662,7 +706,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
662# CONFIG_PPP is not set 706# CONFIG_PPP is not set
663# CONFIG_SLIP is not set 707# CONFIG_SLIP is not set
664# CONFIG_NET_FC is not set 708# CONFIG_NET_FC is not set
665# CONFIG_SHAPER is not set
666# CONFIG_NETCONSOLE is not set 709# CONFIG_NETCONSOLE is not set
667# CONFIG_NETPOLL is not set 710# CONFIG_NETPOLL is not set
668# CONFIG_NET_POLL_CONTROLLER is not set 711# CONFIG_NET_POLL_CONTROLLER is not set
@@ -672,7 +715,30 @@ CONFIG_FEC_MPC52xx_MDIO=y
672# 715#
673# Input device support 716# Input device support
674# 717#
675# CONFIG_INPUT is not set 718CONFIG_INPUT=y
719# CONFIG_INPUT_FF_MEMLESS is not set
720# CONFIG_INPUT_POLLDEV is not set
721
722#
723# Userland interfaces
724#
725CONFIG_INPUT_MOUSEDEV=y
726CONFIG_INPUT_MOUSEDEV_PSAUX=y
727CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
728CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
729# CONFIG_INPUT_JOYDEV is not set
730# CONFIG_INPUT_EVDEV is not set
731# CONFIG_INPUT_EVBUG is not set
732
733#
734# Input Device Drivers
735#
736# CONFIG_INPUT_KEYBOARD is not set
737# CONFIG_INPUT_MOUSE is not set
738# CONFIG_INPUT_JOYSTICK is not set
739# CONFIG_INPUT_TABLET is not set
740# CONFIG_INPUT_TOUCHSCREEN is not set
741# CONFIG_INPUT_MISC is not set
676 742
677# 743#
678# Hardware I/O ports 744# Hardware I/O ports
@@ -683,8 +749,14 @@ CONFIG_FEC_MPC52xx_MDIO=y
683# 749#
684# Character devices 750# Character devices
685# 751#
686# CONFIG_VT is not set 752CONFIG_VT=y
753CONFIG_CONSOLE_TRANSLATIONS=y
754CONFIG_VT_CONSOLE=y
755CONFIG_HW_CONSOLE=y
756# CONFIG_VT_HW_CONSOLE_BINDING is not set
757CONFIG_DEVKMEM=y
687# CONFIG_SERIAL_NONSTANDARD is not set 758# CONFIG_SERIAL_NONSTANDARD is not set
759# CONFIG_NOZOMI is not set
688 760
689# 761#
690# Serial drivers 762# Serial drivers
@@ -718,16 +790,15 @@ CONFIG_DEVPORT=y
718CONFIG_I2C=y 790CONFIG_I2C=y
719CONFIG_I2C_BOARDINFO=y 791CONFIG_I2C_BOARDINFO=y
720CONFIG_I2C_CHARDEV=y 792CONFIG_I2C_CHARDEV=y
793CONFIG_I2C_HELPER_AUTO=y
794CONFIG_I2C_ALGOBIT=y
721 795
722# 796#
723# I2C Algorithms 797# I2C Hardware Bus support
724# 798#
725# CONFIG_I2C_ALGOBIT is not set
726# CONFIG_I2C_ALGOPCF is not set
727# CONFIG_I2C_ALGOPCA is not set
728 799
729# 800#
730# I2C Hardware Bus support 801# PC SMBus host controller drivers
731# 802#
732# CONFIG_I2C_ALI1535 is not set 803# CONFIG_I2C_ALI1535 is not set
733# CONFIG_I2C_ALI1563 is not set 804# CONFIG_I2C_ALI1563 is not set
@@ -735,52 +806,64 @@ CONFIG_I2C_CHARDEV=y
735# CONFIG_I2C_AMD756 is not set 806# CONFIG_I2C_AMD756 is not set
736# CONFIG_I2C_AMD8111 is not set 807# CONFIG_I2C_AMD8111 is not set
737# CONFIG_I2C_I801 is not set 808# CONFIG_I2C_I801 is not set
738# CONFIG_I2C_I810 is not set 809# CONFIG_I2C_ISCH is not set
739# CONFIG_I2C_PIIX4 is not set 810# CONFIG_I2C_PIIX4 is not set
740CONFIG_I2C_MPC=y
741# CONFIG_I2C_NFORCE2 is not set 811# CONFIG_I2C_NFORCE2 is not set
742# CONFIG_I2C_OCORES is not set
743# CONFIG_I2C_PARPORT_LIGHT is not set
744# CONFIG_I2C_PROSAVAGE is not set
745# CONFIG_I2C_SAVAGE4 is not set
746# CONFIG_I2C_SIMTEC is not set
747# CONFIG_I2C_SIS5595 is not set 812# CONFIG_I2C_SIS5595 is not set
748# CONFIG_I2C_SIS630 is not set 813# CONFIG_I2C_SIS630 is not set
749# CONFIG_I2C_SIS96X is not set 814# CONFIG_I2C_SIS96X is not set
750# CONFIG_I2C_TAOS_EVM is not set
751# CONFIG_I2C_STUB is not set
752# CONFIG_I2C_TINY_USB is not set
753# CONFIG_I2C_VIA is not set 815# CONFIG_I2C_VIA is not set
754# CONFIG_I2C_VIAPRO is not set 816# CONFIG_I2C_VIAPRO is not set
817
818#
819# I2C system bus drivers (mostly embedded / system-on-chip)
820#
821CONFIG_I2C_MPC=y
822# CONFIG_I2C_OCORES is not set
823# CONFIG_I2C_SIMTEC is not set
824
825#
826# External I2C/SMBus adapter drivers
827#
828# CONFIG_I2C_PARPORT_LIGHT is not set
829# CONFIG_I2C_TAOS_EVM is not set
830# CONFIG_I2C_TINY_USB is not set
831
832#
833# Graphics adapter I2C/DDC channel drivers
834#
755# CONFIG_I2C_VOODOO3 is not set 835# CONFIG_I2C_VOODOO3 is not set
756 836
757# 837#
838# Other I2C/SMBus bus drivers
839#
840# CONFIG_I2C_PCA_PLATFORM is not set
841# CONFIG_I2C_STUB is not set
842
843#
758# Miscellaneous I2C Chip support 844# Miscellaneous I2C Chip support
759# 845#
760# CONFIG_SENSORS_DS1337 is not set
761# CONFIG_SENSORS_DS1374 is not set
762# CONFIG_DS1682 is not set 846# CONFIG_DS1682 is not set
847# CONFIG_AT24 is not set
763# CONFIG_SENSORS_EEPROM is not set 848# CONFIG_SENSORS_EEPROM is not set
764# CONFIG_SENSORS_PCF8574 is not set 849# CONFIG_SENSORS_PCF8574 is not set
850# CONFIG_PCF8575 is not set
765# CONFIG_SENSORS_PCA9539 is not set 851# CONFIG_SENSORS_PCA9539 is not set
766# CONFIG_SENSORS_PCF8591 is not set 852# CONFIG_SENSORS_PCF8591 is not set
767# CONFIG_SENSORS_M41T00 is not set
768# CONFIG_SENSORS_MAX6875 is not set 853# CONFIG_SENSORS_MAX6875 is not set
769# CONFIG_SENSORS_TSL2550 is not set 854# CONFIG_SENSORS_TSL2550 is not set
770# CONFIG_I2C_DEBUG_CORE is not set 855# CONFIG_I2C_DEBUG_CORE is not set
771# CONFIG_I2C_DEBUG_ALGO is not set 856# CONFIG_I2C_DEBUG_ALGO is not set
772# CONFIG_I2C_DEBUG_BUS is not set 857# CONFIG_I2C_DEBUG_BUS is not set
773# CONFIG_I2C_DEBUG_CHIP is not set 858# CONFIG_I2C_DEBUG_CHIP is not set
774
775#
776# SPI support
777#
778# CONFIG_SPI is not set 859# CONFIG_SPI is not set
779# CONFIG_SPI_MASTER is not set 860CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
861# CONFIG_GPIOLIB is not set
780# CONFIG_W1 is not set 862# CONFIG_W1 is not set
781# CONFIG_POWER_SUPPLY is not set 863# CONFIG_POWER_SUPPLY is not set
782CONFIG_HWMON=y 864CONFIG_HWMON=y
783# CONFIG_HWMON_VID is not set 865# CONFIG_HWMON_VID is not set
866# CONFIG_SENSORS_AD7414 is not set
784# CONFIG_SENSORS_AD7418 is not set 867# CONFIG_SENSORS_AD7418 is not set
785# CONFIG_SENSORS_ADM1021 is not set 868# CONFIG_SENSORS_ADM1021 is not set
786# CONFIG_SENSORS_ADM1025 is not set 869# CONFIG_SENSORS_ADM1025 is not set
@@ -788,7 +871,9 @@ CONFIG_HWMON=y
788# CONFIG_SENSORS_ADM1029 is not set 871# CONFIG_SENSORS_ADM1029 is not set
789# CONFIG_SENSORS_ADM1031 is not set 872# CONFIG_SENSORS_ADM1031 is not set
790# CONFIG_SENSORS_ADM9240 is not set 873# CONFIG_SENSORS_ADM9240 is not set
874# CONFIG_SENSORS_ADT7462 is not set
791# CONFIG_SENSORS_ADT7470 is not set 875# CONFIG_SENSORS_ADT7470 is not set
876# CONFIG_SENSORS_ADT7473 is not set
792# CONFIG_SENSORS_ATXP1 is not set 877# CONFIG_SENSORS_ATXP1 is not set
793# CONFIG_SENSORS_DS1621 is not set 878# CONFIG_SENSORS_DS1621 is not set
794# CONFIG_SENSORS_I5K_AMB is not set 879# CONFIG_SENSORS_I5K_AMB is not set
@@ -818,6 +903,7 @@ CONFIG_HWMON=y
818# CONFIG_SENSORS_SMSC47M1 is not set 903# CONFIG_SENSORS_SMSC47M1 is not set
819# CONFIG_SENSORS_SMSC47M192 is not set 904# CONFIG_SENSORS_SMSC47M192 is not set
820# CONFIG_SENSORS_SMSC47B397 is not set 905# CONFIG_SENSORS_SMSC47B397 is not set
906# CONFIG_SENSORS_ADS7828 is not set
821# CONFIG_SENSORS_THMC50 is not set 907# CONFIG_SENSORS_THMC50 is not set
822# CONFIG_SENSORS_VIA686A is not set 908# CONFIG_SENSORS_VIA686A is not set
823# CONFIG_SENSORS_VT1211 is not set 909# CONFIG_SENSORS_VT1211 is not set
@@ -827,9 +913,12 @@ CONFIG_HWMON=y
827# CONFIG_SENSORS_W83792D is not set 913# CONFIG_SENSORS_W83792D is not set
828# CONFIG_SENSORS_W83793 is not set 914# CONFIG_SENSORS_W83793 is not set
829# CONFIG_SENSORS_W83L785TS is not set 915# CONFIG_SENSORS_W83L785TS is not set
916# CONFIG_SENSORS_W83L786NG is not set
830# CONFIG_SENSORS_W83627HF is not set 917# CONFIG_SENSORS_W83627HF is not set
831# CONFIG_SENSORS_W83627EHF is not set 918# CONFIG_SENSORS_W83627EHF is not set
832# CONFIG_HWMON_DEBUG_CHIP is not set 919# CONFIG_HWMON_DEBUG_CHIP is not set
920# CONFIG_THERMAL is not set
921# CONFIG_THERMAL_HWMON is not set
833CONFIG_WATCHDOG=y 922CONFIG_WATCHDOG=y
834# CONFIG_WATCHDOG_NOWAYOUT is not set 923# CONFIG_WATCHDOG_NOWAYOUT is not set
835 924
@@ -837,6 +926,7 @@ CONFIG_WATCHDOG=y
837# Watchdog Device Drivers 926# Watchdog Device Drivers
838# 927#
839# CONFIG_SOFT_WATCHDOG is not set 928# CONFIG_SOFT_WATCHDOG is not set
929# CONFIG_ALIM7101_WDT is not set
840# CONFIG_MPC5200_WDT is not set 930# CONFIG_MPC5200_WDT is not set
841# CONFIG_WATCHDOG_RTAS is not set 931# CONFIG_WATCHDOG_RTAS is not set
842 932
@@ -850,23 +940,39 @@ CONFIG_WATCHDOG=y
850# USB-based Watchdog Cards 940# USB-based Watchdog Cards
851# 941#
852# CONFIG_USBPCWATCHDOG is not set 942# CONFIG_USBPCWATCHDOG is not set
943CONFIG_SSB_POSSIBLE=y
853 944
854# 945#
855# Sonics Silicon Backplane 946# Sonics Silicon Backplane
856# 947#
857CONFIG_SSB_POSSIBLE=y
858# CONFIG_SSB is not set 948# CONFIG_SSB is not set
859 949
860# 950#
861# Multifunction device drivers 951# Multifunction device drivers
862# 952#
953# CONFIG_MFD_CORE is not set
863# CONFIG_MFD_SM501 is not set 954# CONFIG_MFD_SM501 is not set
955# CONFIG_HTC_PASIC3 is not set
956# CONFIG_MFD_TMIO is not set
957# CONFIG_PMIC_DA903X is not set
958# CONFIG_MFD_WM8400 is not set
959# CONFIG_MFD_WM8350_I2C is not set
960# CONFIG_REGULATOR is not set
864 961
865# 962#
866# Multimedia devices 963# Multimedia devices
867# 964#
965
966#
967# Multimedia core support
968#
868# CONFIG_VIDEO_DEV is not set 969# CONFIG_VIDEO_DEV is not set
869# CONFIG_DVB_CORE is not set 970# CONFIG_DVB_CORE is not set
971# CONFIG_VIDEO_MEDIA is not set
972
973#
974# Multimedia drivers
975#
870CONFIG_DAB=y 976CONFIG_DAB=y
871# CONFIG_USB_DABUSB is not set 977# CONFIG_USB_DABUSB is not set
872 978
@@ -874,11 +980,78 @@ CONFIG_DAB=y
874# Graphics support 980# Graphics support
875# 981#
876# CONFIG_AGP is not set 982# CONFIG_AGP is not set
877# CONFIG_DRM is not set 983CONFIG_DRM=y
984# CONFIG_DRM_TDFX is not set
985# CONFIG_DRM_R128 is not set
986# CONFIG_DRM_RADEON is not set
987# CONFIG_DRM_MGA is not set
988# CONFIG_DRM_VIA is not set
989# CONFIG_DRM_SAVAGE is not set
878# CONFIG_VGASTATE is not set 990# CONFIG_VGASTATE is not set
879CONFIG_VIDEO_OUTPUT_CONTROL=m 991CONFIG_VIDEO_OUTPUT_CONTROL=y
880# CONFIG_FB is not set 992CONFIG_FB=y
881# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 993# CONFIG_FIRMWARE_EDID is not set
994CONFIG_FB_DDC=y
995# CONFIG_FB_BOOT_VESA_SUPPORT is not set
996CONFIG_FB_CFB_FILLRECT=y
997CONFIG_FB_CFB_COPYAREA=y
998CONFIG_FB_CFB_IMAGEBLIT=y
999# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1000# CONFIG_FB_SYS_FILLRECT is not set
1001# CONFIG_FB_SYS_COPYAREA is not set
1002# CONFIG_FB_SYS_IMAGEBLIT is not set
1003# CONFIG_FB_FOREIGN_ENDIAN is not set
1004# CONFIG_FB_SYS_FOPS is not set
1005# CONFIG_FB_SVGALIB is not set
1006CONFIG_FB_MACMODES=y
1007CONFIG_FB_BACKLIGHT=y
1008CONFIG_FB_MODE_HELPERS=y
1009# CONFIG_FB_TILEBLITTING is not set
1010
1011#
1012# Frame buffer hardware drivers
1013#
1014# CONFIG_FB_CIRRUS is not set
1015# CONFIG_FB_PM2 is not set
1016# CONFIG_FB_CYBER2000 is not set
1017# CONFIG_FB_OF is not set
1018# CONFIG_FB_CT65550 is not set
1019# CONFIG_FB_ASILIANT is not set
1020# CONFIG_FB_IMSTT is not set
1021# CONFIG_FB_VGA16 is not set
1022# CONFIG_FB_S1D13XXX is not set
1023# CONFIG_FB_NVIDIA is not set
1024# CONFIG_FB_RIVA is not set
1025# CONFIG_FB_MATROX is not set
1026CONFIG_FB_RADEON=y
1027CONFIG_FB_RADEON_I2C=y
1028CONFIG_FB_RADEON_BACKLIGHT=y
1029# CONFIG_FB_RADEON_DEBUG is not set
1030# CONFIG_FB_ATY128 is not set
1031# CONFIG_FB_ATY is not set
1032# CONFIG_FB_S3 is not set
1033# CONFIG_FB_SAVAGE is not set
1034# CONFIG_FB_SIS is not set
1035# CONFIG_FB_VIA is not set
1036# CONFIG_FB_NEOMAGIC is not set
1037# CONFIG_FB_KYRO is not set
1038# CONFIG_FB_3DFX is not set
1039# CONFIG_FB_VOODOO1 is not set
1040# CONFIG_FB_VT8623 is not set
1041# CONFIG_FB_TRIDENT is not set
1042# CONFIG_FB_ARK is not set
1043# CONFIG_FB_PM3 is not set
1044# CONFIG_FB_CARMINE is not set
1045# CONFIG_FB_IBM_GXT4500 is not set
1046# CONFIG_FB_VIRTUAL is not set
1047# CONFIG_FB_METRONOME is not set
1048# CONFIG_FB_MB862XX is not set
1049CONFIG_BACKLIGHT_LCD_SUPPORT=y
1050CONFIG_LCD_CLASS_DEVICE=m
1051# CONFIG_LCD_ILI9320 is not set
1052# CONFIG_LCD_PLATFORM is not set
1053CONFIG_BACKLIGHT_CLASS_DEVICE=y
1054# CONFIG_BACKLIGHT_CORGI is not set
882 1055
883# 1056#
884# Display device support 1057# Display device support
@@ -886,15 +1059,64 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
886# CONFIG_DISPLAY_SUPPORT is not set 1059# CONFIG_DISPLAY_SUPPORT is not set
887 1060
888# 1061#
889# Sound 1062# Console display driver support
890# 1063#
1064# CONFIG_VGA_CONSOLE is not set
1065CONFIG_DUMMY_CONSOLE=y
1066CONFIG_FRAMEBUFFER_CONSOLE=y
1067# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1068# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1069# CONFIG_FONTS is not set
1070CONFIG_FONT_8x8=y
1071CONFIG_FONT_8x16=y
1072CONFIG_LOGO=y
1073CONFIG_LOGO_LINUX_MONO=y
1074CONFIG_LOGO_LINUX_VGA16=y
1075CONFIG_LOGO_LINUX_CLUT224=y
891# CONFIG_SOUND is not set 1076# CONFIG_SOUND is not set
1077CONFIG_HID_SUPPORT=y
1078CONFIG_HID=y
1079# CONFIG_HID_DEBUG is not set
1080# CONFIG_HIDRAW is not set
1081
1082#
1083# USB Input Devices
1084#
1085CONFIG_USB_HID=y
1086# CONFIG_HID_PID is not set
1087# CONFIG_USB_HIDDEV is not set
1088
1089#
1090# Special HID drivers
1091#
1092CONFIG_HID_COMPAT=y
1093CONFIG_HID_A4TECH=y
1094# CONFIG_HID_APPLE is not set
1095CONFIG_HID_BELKIN=y
1096CONFIG_HID_BRIGHT=y
1097CONFIG_HID_CHERRY=y
1098# CONFIG_HID_CHICONY is not set
1099CONFIG_HID_CYPRESS=y
1100CONFIG_HID_DELL=y
1101CONFIG_HID_EZKEY=y
1102# CONFIG_HID_GYRATION is not set
1103# CONFIG_HID_LOGITECH is not set
1104# CONFIG_HID_MICROSOFT is not set
1105# CONFIG_HID_MONTEREY is not set
1106# CONFIG_HID_PANTHERLORD is not set
1107# CONFIG_HID_PETALYNX is not set
1108# CONFIG_HID_SAMSUNG is not set
1109# CONFIG_HID_SONY is not set
1110# CONFIG_HID_SUNPLUS is not set
1111# CONFIG_THRUSTMASTER_FF is not set
1112# CONFIG_ZEROPLUS_FF is not set
892CONFIG_USB_SUPPORT=y 1113CONFIG_USB_SUPPORT=y
893CONFIG_USB_ARCH_HAS_HCD=y 1114CONFIG_USB_ARCH_HAS_HCD=y
894CONFIG_USB_ARCH_HAS_OHCI=y 1115CONFIG_USB_ARCH_HAS_OHCI=y
895CONFIG_USB_ARCH_HAS_EHCI=y 1116CONFIG_USB_ARCH_HAS_EHCI=y
896CONFIG_USB=y 1117CONFIG_USB=y
897# CONFIG_USB_DEBUG is not set 1118# CONFIG_USB_DEBUG is not set
1119# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
898 1120
899# 1121#
900# Miscellaneous USB options 1122# Miscellaneous USB options
@@ -903,14 +1125,20 @@ CONFIG_USB_DEVICEFS=y
903# CONFIG_USB_DEVICE_CLASS is not set 1125# CONFIG_USB_DEVICE_CLASS is not set
904# CONFIG_USB_DYNAMIC_MINORS is not set 1126# CONFIG_USB_DYNAMIC_MINORS is not set
905# CONFIG_USB_SUSPEND is not set 1127# CONFIG_USB_SUSPEND is not set
906# CONFIG_USB_PERSIST is not set
907# CONFIG_USB_OTG is not set 1128# CONFIG_USB_OTG is not set
1129# CONFIG_USB_OTG_WHITELIST is not set
1130# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1131CONFIG_USB_MON=y
1132# CONFIG_USB_WUSB is not set
1133# CONFIG_USB_WUSB_CBAF is not set
908 1134
909# 1135#
910# USB Host Controller Drivers 1136# USB Host Controller Drivers
911# 1137#
1138# CONFIG_USB_C67X00_HCD is not set
912# CONFIG_USB_EHCI_HCD is not set 1139# CONFIG_USB_EHCI_HCD is not set
913# CONFIG_USB_ISP116X_HCD is not set 1140# CONFIG_USB_ISP116X_HCD is not set
1141# CONFIG_USB_ISP1760_HCD is not set
914CONFIG_USB_OHCI_HCD=y 1142CONFIG_USB_OHCI_HCD=y
915CONFIG_USB_OHCI_HCD_PPC_SOC=y 1143CONFIG_USB_OHCI_HCD_PPC_SOC=y
916CONFIG_USB_OHCI_HCD_PPC_OF=y 1144CONFIG_USB_OHCI_HCD_PPC_OF=y
@@ -923,12 +1151,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
923# CONFIG_USB_UHCI_HCD is not set 1151# CONFIG_USB_UHCI_HCD is not set
924# CONFIG_USB_SL811_HCD is not set 1152# CONFIG_USB_SL811_HCD is not set
925# CONFIG_USB_R8A66597_HCD is not set 1153# CONFIG_USB_R8A66597_HCD is not set
1154# CONFIG_USB_WHCI_HCD is not set
1155# CONFIG_USB_HWA_HCD is not set
1156# CONFIG_USB_MUSB_HDRC is not set
926 1157
927# 1158#
928# USB Device Class drivers 1159# USB Device Class drivers
929# 1160#
930# CONFIG_USB_ACM is not set 1161# CONFIG_USB_ACM is not set
931# CONFIG_USB_PRINTER is not set 1162# CONFIG_USB_PRINTER is not set
1163# CONFIG_USB_WDM is not set
1164# CONFIG_USB_TMC is not set
932 1165
933# 1166#
934# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1167# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -948,7 +1181,9 @@ CONFIG_USB_STORAGE=y
948# CONFIG_USB_STORAGE_SDDR55 is not set 1181# CONFIG_USB_STORAGE_SDDR55 is not set
949# CONFIG_USB_STORAGE_JUMPSHOT is not set 1182# CONFIG_USB_STORAGE_JUMPSHOT is not set
950# CONFIG_USB_STORAGE_ALAUDA is not set 1183# CONFIG_USB_STORAGE_ALAUDA is not set
1184# CONFIG_USB_STORAGE_ONETOUCH is not set
951# CONFIG_USB_STORAGE_KARMA is not set 1185# CONFIG_USB_STORAGE_KARMA is not set
1186# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
952# CONFIG_USB_LIBUSUAL is not set 1187# CONFIG_USB_LIBUSUAL is not set
953 1188
954# 1189#
@@ -956,15 +1191,10 @@ CONFIG_USB_STORAGE=y
956# 1191#
957# CONFIG_USB_MDC800 is not set 1192# CONFIG_USB_MDC800 is not set
958# CONFIG_USB_MICROTEK is not set 1193# CONFIG_USB_MICROTEK is not set
959CONFIG_USB_MON=y
960 1194
961# 1195#
962# USB port drivers 1196# USB port drivers
963# 1197#
964
965#
966# USB Serial Converter support
967#
968# CONFIG_USB_SERIAL is not set 1198# CONFIG_USB_SERIAL is not set
969 1199
970# 1200#
@@ -973,7 +1203,7 @@ CONFIG_USB_MON=y
973# CONFIG_USB_EMI62 is not set 1203# CONFIG_USB_EMI62 is not set
974# CONFIG_USB_EMI26 is not set 1204# CONFIG_USB_EMI26 is not set
975# CONFIG_USB_ADUTUX is not set 1205# CONFIG_USB_ADUTUX is not set
976# CONFIG_USB_AUERSWALD is not set 1206# CONFIG_USB_SEVSEG is not set
977# CONFIG_USB_RIO500 is not set 1207# CONFIG_USB_RIO500 is not set
978# CONFIG_USB_LEGOTOWER is not set 1208# CONFIG_USB_LEGOTOWER is not set
979# CONFIG_USB_LCD is not set 1209# CONFIG_USB_LCD is not set
@@ -989,18 +1219,14 @@ CONFIG_USB_MON=y
989# CONFIG_USB_TRANCEVIBRATOR is not set 1219# CONFIG_USB_TRANCEVIBRATOR is not set
990# CONFIG_USB_IOWARRIOR is not set 1220# CONFIG_USB_IOWARRIOR is not set
991# CONFIG_USB_TEST is not set 1221# CONFIG_USB_TEST is not set
992 1222# CONFIG_USB_ISIGHTFW is not set
993# 1223# CONFIG_USB_VST is not set
994# USB DSL modem support
995#
996
997#
998# USB Gadget Support
999#
1000# CONFIG_USB_GADGET is not set 1224# CONFIG_USB_GADGET is not set
1225# CONFIG_UWB is not set
1001# CONFIG_MMC is not set 1226# CONFIG_MMC is not set
1227# CONFIG_MEMSTICK is not set
1002CONFIG_NEW_LEDS=y 1228CONFIG_NEW_LEDS=y
1003CONFIG_LEDS_CLASS=y 1229# CONFIG_LEDS_CLASS is not set
1004 1230
1005# 1231#
1006# LED drivers 1232# LED drivers
@@ -1009,17 +1235,15 @@ CONFIG_LEDS_CLASS=y
1009# 1235#
1010# LED Triggers 1236# LED Triggers
1011# 1237#
1012CONFIG_LEDS_TRIGGERS=y 1238# CONFIG_LEDS_TRIGGERS is not set
1013CONFIG_LEDS_TRIGGER_TIMER=y 1239# CONFIG_ACCESSIBILITY is not set
1014# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1015# CONFIG_INFINIBAND is not set 1240# CONFIG_INFINIBAND is not set
1016# CONFIG_EDAC is not set 1241# CONFIG_EDAC is not set
1017# CONFIG_RTC_CLASS is not set 1242# CONFIG_RTC_CLASS is not set
1018 1243# CONFIG_DMADEVICES is not set
1019#
1020# Userspace I/O
1021#
1022# CONFIG_UIO is not set 1244# CONFIG_UIO is not set
1245# CONFIG_STAGING is not set
1246CONFIG_STAGING_EXCLUDE_BUILD=y
1023 1247
1024# 1248#
1025# File systems 1249# File systems
@@ -1031,21 +1255,19 @@ CONFIG_EXT3_FS=y
1031CONFIG_EXT3_FS_XATTR=y 1255CONFIG_EXT3_FS_XATTR=y
1032# CONFIG_EXT3_FS_POSIX_ACL is not set 1256# CONFIG_EXT3_FS_POSIX_ACL is not set
1033# CONFIG_EXT3_FS_SECURITY is not set 1257# CONFIG_EXT3_FS_SECURITY is not set
1034# CONFIG_EXT4DEV_FS is not set 1258# CONFIG_EXT4_FS is not set
1035CONFIG_JBD=y 1259CONFIG_JBD=y
1036CONFIG_FS_MBCACHE=y 1260CONFIG_FS_MBCACHE=y
1037# CONFIG_REISERFS_FS is not set 1261# CONFIG_REISERFS_FS is not set
1038# CONFIG_JFS_FS is not set 1262# CONFIG_JFS_FS is not set
1039# CONFIG_FS_POSIX_ACL is not set 1263# CONFIG_FS_POSIX_ACL is not set
1264CONFIG_FILE_LOCKING=y
1040# CONFIG_XFS_FS is not set 1265# CONFIG_XFS_FS is not set
1041# CONFIG_GFS2_FS is not set
1042# CONFIG_OCFS2_FS is not set 1266# CONFIG_OCFS2_FS is not set
1043# CONFIG_MINIX_FS is not set 1267CONFIG_DNOTIFY=y
1044# CONFIG_ROMFS_FS is not set
1045CONFIG_INOTIFY=y 1268CONFIG_INOTIFY=y
1046CONFIG_INOTIFY_USER=y 1269CONFIG_INOTIFY_USER=y
1047# CONFIG_QUOTA is not set 1270# CONFIG_QUOTA is not set
1048CONFIG_DNOTIFY=y
1049# CONFIG_AUTOFS_FS is not set 1271# CONFIG_AUTOFS_FS is not set
1050# CONFIG_AUTOFS4_FS is not set 1272# CONFIG_AUTOFS4_FS is not set
1051# CONFIG_FUSE_FS is not set 1273# CONFIG_FUSE_FS is not set
@@ -1072,6 +1294,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1072CONFIG_PROC_FS=y 1294CONFIG_PROC_FS=y
1073CONFIG_PROC_KCORE=y 1295CONFIG_PROC_KCORE=y
1074CONFIG_PROC_SYSCTL=y 1296CONFIG_PROC_SYSCTL=y
1297CONFIG_PROC_PAGE_MONITOR=y
1075CONFIG_SYSFS=y 1298CONFIG_SYSFS=y
1076CONFIG_TMPFS=y 1299CONFIG_TMPFS=y
1077# CONFIG_TMPFS_POSIX_ACL is not set 1300# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1101,8 +1324,11 @@ CONFIG_JFFS2_RTIME=y
1101# CONFIG_JFFS2_RUBIN is not set 1324# CONFIG_JFFS2_RUBIN is not set
1102CONFIG_CRAMFS=y 1325CONFIG_CRAMFS=y
1103# CONFIG_VXFS_FS is not set 1326# CONFIG_VXFS_FS is not set
1327# CONFIG_MINIX_FS is not set
1328# CONFIG_OMFS_FS is not set
1104# CONFIG_HPFS_FS is not set 1329# CONFIG_HPFS_FS is not set
1105# CONFIG_QNX4FS_FS is not set 1330# CONFIG_QNX4FS_FS is not set
1331# CONFIG_ROMFS_FS is not set
1106# CONFIG_SYSV_FS is not set 1332# CONFIG_SYSV_FS is not set
1107# CONFIG_UFS_FS is not set 1333# CONFIG_UFS_FS is not set
1108CONFIG_NETWORK_FILESYSTEMS=y 1334CONFIG_NETWORK_FILESYSTEMS=y
@@ -1110,15 +1336,14 @@ CONFIG_NFS_FS=y
1110CONFIG_NFS_V3=y 1336CONFIG_NFS_V3=y
1111# CONFIG_NFS_V3_ACL is not set 1337# CONFIG_NFS_V3_ACL is not set
1112CONFIG_NFS_V4=y 1338CONFIG_NFS_V4=y
1113# CONFIG_NFS_DIRECTIO is not set
1114# CONFIG_NFSD is not set
1115CONFIG_ROOT_NFS=y 1339CONFIG_ROOT_NFS=y
1340# CONFIG_NFSD is not set
1116CONFIG_LOCKD=y 1341CONFIG_LOCKD=y
1117CONFIG_LOCKD_V4=y 1342CONFIG_LOCKD_V4=y
1118CONFIG_NFS_COMMON=y 1343CONFIG_NFS_COMMON=y
1119CONFIG_SUNRPC=y 1344CONFIG_SUNRPC=y
1120CONFIG_SUNRPC_GSS=y 1345CONFIG_SUNRPC_GSS=y
1121# CONFIG_SUNRPC_BIND34 is not set 1346# CONFIG_SUNRPC_REGISTER_V4 is not set
1122CONFIG_RPCSEC_GSS_KRB5=y 1347CONFIG_RPCSEC_GSS_KRB5=y
1123# CONFIG_RPCSEC_GSS_SPKM3 is not set 1348# CONFIG_RPCSEC_GSS_SPKM3 is not set
1124# CONFIG_SMB_FS is not set 1349# CONFIG_SMB_FS is not set
@@ -1173,7 +1398,6 @@ CONFIG_NLS_ISO8859_1=y
1173# CONFIG_NLS_KOI8_U is not set 1398# CONFIG_NLS_KOI8_U is not set
1174# CONFIG_NLS_UTF8 is not set 1399# CONFIG_NLS_UTF8 is not set
1175# CONFIG_DLM is not set 1400# CONFIG_DLM is not set
1176# CONFIG_UCC_SLOW is not set
1177 1401
1178# 1402#
1179# Library routines 1403# Library routines
@@ -1181,6 +1405,7 @@ CONFIG_NLS_ISO8859_1=y
1181CONFIG_BITREVERSE=y 1405CONFIG_BITREVERSE=y
1182# CONFIG_CRC_CCITT is not set 1406# CONFIG_CRC_CCITT is not set
1183# CONFIG_CRC16 is not set 1407# CONFIG_CRC16 is not set
1408# CONFIG_CRC_T10DIF is not set
1184# CONFIG_CRC_ITU_T is not set 1409# CONFIG_CRC_ITU_T is not set
1185CONFIG_CRC32=y 1410CONFIG_CRC32=y
1186# CONFIG_CRC7 is not set 1411# CONFIG_CRC7 is not set
@@ -1191,7 +1416,7 @@ CONFIG_PLIST=y
1191CONFIG_HAS_IOMEM=y 1416CONFIG_HAS_IOMEM=y
1192CONFIG_HAS_IOPORT=y 1417CONFIG_HAS_IOPORT=y
1193CONFIG_HAS_DMA=y 1418CONFIG_HAS_DMA=y
1194# CONFIG_INSTRUMENTATION is not set 1419CONFIG_HAVE_LMB=y
1195 1420
1196# 1421#
1197# Kernel hacking 1422# Kernel hacking
@@ -1199,6 +1424,7 @@ CONFIG_HAS_DMA=y
1199CONFIG_PRINTK_TIME=y 1424CONFIG_PRINTK_TIME=y
1200CONFIG_ENABLE_WARN_DEPRECATED=y 1425CONFIG_ENABLE_WARN_DEPRECATED=y
1201CONFIG_ENABLE_MUST_CHECK=y 1426CONFIG_ENABLE_MUST_CHECK=y
1427CONFIG_FRAME_WARN=1024
1202# CONFIG_MAGIC_SYSRQ is not set 1428# CONFIG_MAGIC_SYSRQ is not set
1203# CONFIG_UNUSED_SYMBOLS is not set 1429# CONFIG_UNUSED_SYMBOLS is not set
1204# CONFIG_DEBUG_FS is not set 1430# CONFIG_DEBUG_FS is not set
@@ -1206,10 +1432,14 @@ CONFIG_ENABLE_MUST_CHECK=y
1206CONFIG_DEBUG_KERNEL=y 1432CONFIG_DEBUG_KERNEL=y
1207# CONFIG_DEBUG_SHIRQ is not set 1433# CONFIG_DEBUG_SHIRQ is not set
1208CONFIG_DETECT_SOFTLOCKUP=y 1434CONFIG_DETECT_SOFTLOCKUP=y
1435# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1436CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1209CONFIG_SCHED_DEBUG=y 1437CONFIG_SCHED_DEBUG=y
1210# CONFIG_SCHEDSTATS is not set 1438# CONFIG_SCHEDSTATS is not set
1211# CONFIG_TIMER_STATS is not set 1439# CONFIG_TIMER_STATS is not set
1440# CONFIG_DEBUG_OBJECTS is not set
1212# CONFIG_SLUB_DEBUG_ON is not set 1441# CONFIG_SLUB_DEBUG_ON is not set
1442# CONFIG_SLUB_STATS is not set
1213# CONFIG_DEBUG_RT_MUTEXES is not set 1443# CONFIG_DEBUG_RT_MUTEXES is not set
1214# CONFIG_RT_MUTEX_TESTER is not set 1444# CONFIG_RT_MUTEX_TESTER is not set
1215# CONFIG_DEBUG_SPINLOCK is not set 1445# CONFIG_DEBUG_SPINLOCK is not set
@@ -1220,17 +1450,39 @@ CONFIG_SCHED_DEBUG=y
1220# CONFIG_DEBUG_BUGVERBOSE is not set 1450# CONFIG_DEBUG_BUGVERBOSE is not set
1221CONFIG_DEBUG_INFO=y 1451CONFIG_DEBUG_INFO=y
1222# CONFIG_DEBUG_VM is not set 1452# CONFIG_DEBUG_VM is not set
1453# CONFIG_DEBUG_WRITECOUNT is not set
1454# CONFIG_DEBUG_MEMORY_INIT is not set
1223# CONFIG_DEBUG_LIST is not set 1455# CONFIG_DEBUG_LIST is not set
1224# CONFIG_DEBUG_SG is not set 1456# CONFIG_DEBUG_SG is not set
1225CONFIG_FORCED_INLINING=y
1226# CONFIG_BOOT_PRINTK_DELAY is not set 1457# CONFIG_BOOT_PRINTK_DELAY is not set
1227# CONFIG_RCU_TORTURE_TEST is not set 1458# CONFIG_RCU_TORTURE_TEST is not set
1459# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1460# CONFIG_BACKTRACE_SELF_TEST is not set
1461# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1228# CONFIG_FAULT_INJECTION is not set 1462# CONFIG_FAULT_INJECTION is not set
1463# CONFIG_LATENCYTOP is not set
1464CONFIG_HAVE_FUNCTION_TRACER=y
1465
1466#
1467# Tracers
1468#
1469# CONFIG_FUNCTION_TRACER is not set
1470# CONFIG_SCHED_TRACER is not set
1471# CONFIG_CONTEXT_SWITCH_TRACER is not set
1472# CONFIG_BOOT_TRACER is not set
1473# CONFIG_STACK_TRACER is not set
1474# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1229# CONFIG_SAMPLES is not set 1475# CONFIG_SAMPLES is not set
1476CONFIG_HAVE_ARCH_KGDB=y
1477# CONFIG_KGDB is not set
1230# CONFIG_DEBUG_STACKOVERFLOW is not set 1478# CONFIG_DEBUG_STACKOVERFLOW is not set
1231# CONFIG_DEBUG_STACK_USAGE is not set 1479# CONFIG_DEBUG_STACK_USAGE is not set
1232# CONFIG_DEBUG_PAGEALLOC is not set 1480# CONFIG_DEBUG_PAGEALLOC is not set
1233# CONFIG_DEBUGGER is not set 1481# CONFIG_CODE_PATCHING_SELFTEST is not set
1482# CONFIG_FTR_FIXUP_SELFTEST is not set
1483# CONFIG_MSI_BITMAP_SELFTEST is not set
1484# CONFIG_XMON is not set
1485# CONFIG_IRQSTACKS is not set
1234# CONFIG_BDI_SWITCH is not set 1486# CONFIG_BDI_SWITCH is not set
1235# CONFIG_BOOTX_TEXT is not set 1487# CONFIG_BOOTX_TEXT is not set
1236# CONFIG_PPC_EARLY_DEBUG is not set 1488# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1240,47 +1492,98 @@ CONFIG_FORCED_INLINING=y
1240# 1492#
1241# CONFIG_KEYS is not set 1493# CONFIG_KEYS is not set
1242# CONFIG_SECURITY is not set 1494# CONFIG_SECURITY is not set
1495# CONFIG_SECURITYFS is not set
1243# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1496# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1244CONFIG_CRYPTO=y 1497CONFIG_CRYPTO=y
1498
1499#
1500# Crypto core or helper
1501#
1502# CONFIG_CRYPTO_FIPS is not set
1245CONFIG_CRYPTO_ALGAPI=y 1503CONFIG_CRYPTO_ALGAPI=y
1504CONFIG_CRYPTO_AEAD=y
1246CONFIG_CRYPTO_BLKCIPHER=y 1505CONFIG_CRYPTO_BLKCIPHER=y
1506CONFIG_CRYPTO_HASH=y
1507CONFIG_CRYPTO_RNG=y
1247CONFIG_CRYPTO_MANAGER=y 1508CONFIG_CRYPTO_MANAGER=y
1509# CONFIG_CRYPTO_GF128MUL is not set
1510# CONFIG_CRYPTO_NULL is not set
1511# CONFIG_CRYPTO_CRYPTD is not set
1512# CONFIG_CRYPTO_AUTHENC is not set
1513# CONFIG_CRYPTO_TEST is not set
1514
1515#
1516# Authenticated Encryption with Associated Data
1517#
1518# CONFIG_CRYPTO_CCM is not set
1519# CONFIG_CRYPTO_GCM is not set
1520# CONFIG_CRYPTO_SEQIV is not set
1521
1522#
1523# Block modes
1524#
1525CONFIG_CRYPTO_CBC=y
1526# CONFIG_CRYPTO_CTR is not set
1527# CONFIG_CRYPTO_CTS is not set
1528# CONFIG_CRYPTO_ECB is not set
1529# CONFIG_CRYPTO_LRW is not set
1530# CONFIG_CRYPTO_PCBC is not set
1531# CONFIG_CRYPTO_XTS is not set
1532
1533#
1534# Hash modes
1535#
1248# CONFIG_CRYPTO_HMAC is not set 1536# CONFIG_CRYPTO_HMAC is not set
1249# CONFIG_CRYPTO_XCBC is not set 1537# CONFIG_CRYPTO_XCBC is not set
1250# CONFIG_CRYPTO_NULL is not set 1538
1539#
1540# Digest
1541#
1542# CONFIG_CRYPTO_CRC32C is not set
1251# CONFIG_CRYPTO_MD4 is not set 1543# CONFIG_CRYPTO_MD4 is not set
1252CONFIG_CRYPTO_MD5=y 1544CONFIG_CRYPTO_MD5=y
1545# CONFIG_CRYPTO_MICHAEL_MIC is not set
1546# CONFIG_CRYPTO_RMD128 is not set
1547# CONFIG_CRYPTO_RMD160 is not set
1548# CONFIG_CRYPTO_RMD256 is not set
1549# CONFIG_CRYPTO_RMD320 is not set
1253# CONFIG_CRYPTO_SHA1 is not set 1550# CONFIG_CRYPTO_SHA1 is not set
1254# CONFIG_CRYPTO_SHA256 is not set 1551# CONFIG_CRYPTO_SHA256 is not set
1255# CONFIG_CRYPTO_SHA512 is not set 1552# CONFIG_CRYPTO_SHA512 is not set
1256# CONFIG_CRYPTO_WP512 is not set
1257# CONFIG_CRYPTO_TGR192 is not set 1553# CONFIG_CRYPTO_TGR192 is not set
1258# CONFIG_CRYPTO_GF128MUL is not set 1554# CONFIG_CRYPTO_WP512 is not set
1259# CONFIG_CRYPTO_ECB is not set 1555
1260CONFIG_CRYPTO_CBC=y 1556#
1261# CONFIG_CRYPTO_PCBC is not set 1557# Ciphers
1262# CONFIG_CRYPTO_LRW is not set 1558#
1263# CONFIG_CRYPTO_XTS is not set
1264# CONFIG_CRYPTO_CRYPTD is not set
1265CONFIG_CRYPTO_DES=y
1266# CONFIG_CRYPTO_FCRYPT is not set
1267# CONFIG_CRYPTO_BLOWFISH is not set
1268# CONFIG_CRYPTO_TWOFISH is not set
1269# CONFIG_CRYPTO_SERPENT is not set
1270# CONFIG_CRYPTO_AES is not set 1559# CONFIG_CRYPTO_AES is not set
1560# CONFIG_CRYPTO_ANUBIS is not set
1561# CONFIG_CRYPTO_ARC4 is not set
1562# CONFIG_CRYPTO_BLOWFISH is not set
1563# CONFIG_CRYPTO_CAMELLIA is not set
1271# CONFIG_CRYPTO_CAST5 is not set 1564# CONFIG_CRYPTO_CAST5 is not set
1272# CONFIG_CRYPTO_CAST6 is not set 1565# CONFIG_CRYPTO_CAST6 is not set
1273# CONFIG_CRYPTO_TEA is not set 1566CONFIG_CRYPTO_DES=y
1274# CONFIG_CRYPTO_ARC4 is not set 1567# CONFIG_CRYPTO_FCRYPT is not set
1275# CONFIG_CRYPTO_KHAZAD is not set 1568# CONFIG_CRYPTO_KHAZAD is not set
1276# CONFIG_CRYPTO_ANUBIS is not set 1569# CONFIG_CRYPTO_SALSA20 is not set
1277# CONFIG_CRYPTO_SEED is not set 1570# CONFIG_CRYPTO_SEED is not set
1571# CONFIG_CRYPTO_SERPENT is not set
1572# CONFIG_CRYPTO_TEA is not set
1573# CONFIG_CRYPTO_TWOFISH is not set
1574
1575#
1576# Compression
1577#
1278# CONFIG_CRYPTO_DEFLATE is not set 1578# CONFIG_CRYPTO_DEFLATE is not set
1279# CONFIG_CRYPTO_MICHAEL_MIC is not set 1579# CONFIG_CRYPTO_LZO is not set
1280# CONFIG_CRYPTO_CRC32C is not set 1580
1281# CONFIG_CRYPTO_CAMELLIA is not set 1581#
1282# CONFIG_CRYPTO_TEST is not set 1582# Random Number Generation
1283# CONFIG_CRYPTO_AUTHENC is not set 1583#
1584# CONFIG_CRYPTO_ANSI_CPRNG is not set
1284CONFIG_CRYPTO_HW=y 1585CONFIG_CRYPTO_HW=y
1586# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1285CONFIG_PPC_CLOCK=y 1587CONFIG_PPC_CLOCK=y
1286CONFIG_PPC_LIB_RHEAP=y 1588CONFIG_PPC_LIB_RHEAP=y
1589# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 15eb30c9b3f9..d582014b0a38 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_defconfig
@@ -682,7 +682,7 @@ CONFIG_VITESSE_PHY=y
682# CONFIG_BROADCOM_PHY is not set 682# CONFIG_BROADCOM_PHY is not set
683CONFIG_ICPLUS_PHY=y 683CONFIG_ICPLUS_PHY=y
684# CONFIG_REALTEK_PHY is not set 684# CONFIG_REALTEK_PHY is not set
685# CONFIG_FIXED_PHY is not set 685CONFIG_FIXED_PHY=y
686# CONFIG_MDIO_BITBANG is not set 686# CONFIG_MDIO_BITBANG is not set
687CONFIG_NET_ETHERNET=y 687CONFIG_NET_ETHERNET=y
688CONFIG_MII=y 688CONFIG_MII=y
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig
index c15c91deb2ab..4256e2c4534b 100644
--- a/arch/powerpc/configs/ppc40x_defconfig
+++ b/arch/powerpc/configs/ppc40x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc2 3# Linux kernel version: 2.6.28-rc4
4# Tue Oct 28 08:56:44 2008 4# Fri Nov 14 09:54:44 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -500,15 +500,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000
500# CONFIG_BLK_DEV_XIP is not set 500# CONFIG_BLK_DEV_XIP is not set
501# CONFIG_CDROM_PKTCDVD is not set 501# CONFIG_CDROM_PKTCDVD is not set
502# CONFIG_ATA_OVER_ETH is not set 502# CONFIG_ATA_OVER_ETH is not set
503# CONFIG_XILINX_SYSACE is not set 503CONFIG_XILINX_SYSACE=m
504# CONFIG_BLK_DEV_HD is not set 504# CONFIG_BLK_DEV_HD is not set
505CONFIG_MISC_DEVICES=y 505CONFIG_MISC_DEVICES=y
506# CONFIG_PHANTOM is not set 506# CONFIG_PHANTOM is not set
507# CONFIG_EEPROM_93CX6 is not set 507# CONFIG_EEPROM_93CX6 is not set
508# CONFIG_SGI_IOC4 is not set 508# CONFIG_SGI_IOC4 is not set
509# CONFIG_TIFM_CORE is not set 509# CONFIG_TIFM_CORE is not set
510# CONFIG_ICS932S401 is not set
510# CONFIG_ENCLOSURE_SERVICES is not set 511# CONFIG_ENCLOSURE_SERVICES is not set
511# CONFIG_HP_ILO is not set 512# CONFIG_HP_ILO is not set
513# CONFIG_C2PORT is not set
512CONFIG_HAVE_IDE=y 514CONFIG_HAVE_IDE=y
513# CONFIG_IDE is not set 515# CONFIG_IDE is not set
514 516
@@ -632,7 +634,13 @@ CONFIG_NETDEV_10000=y
632# 634#
633# Hardware I/O ports 635# Hardware I/O ports
634# 636#
635# CONFIG_SERIO is not set 637CONFIG_SERIO=m
638# CONFIG_SERIO_I8042 is not set
639# CONFIG_SERIO_SERPORT is not set
640# CONFIG_SERIO_PCIPS2 is not set
641# CONFIG_SERIO_LIBPS2 is not set
642# CONFIG_SERIO_RAW is not set
643CONFIG_SERIO_XILINX_XPS_PS2=m
636# CONFIG_GAMEPORT is not set 644# CONFIG_GAMEPORT is not set
637 645
638# 646#
@@ -660,7 +668,8 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
660# 668#
661# Non-8250 serial port support 669# Non-8250 serial port support
662# 670#
663# CONFIG_SERIAL_UARTLITE is not set 671CONFIG_SERIAL_UARTLITE=y
672CONFIG_SERIAL_UARTLITE_CONSOLE=y
664CONFIG_SERIAL_CORE=y 673CONFIG_SERIAL_CORE=y
665CONFIG_SERIAL_CORE_CONSOLE=y 674CONFIG_SERIAL_CORE_CONSOLE=y
666# CONFIG_SERIAL_JSM is not set 675# CONFIG_SERIAL_JSM is not set
@@ -757,6 +766,11 @@ CONFIG_GPIOLIB=y
757# CONFIG_GPIO_SYSFS is not set 766# CONFIG_GPIO_SYSFS is not set
758 767
759# 768#
769# Memory mapped GPIO expanders:
770#
771CONFIG_GPIO_XILINX=y
772
773#
760# I2C GPIO expanders: 774# I2C GPIO expanders:
761# 775#
762# CONFIG_GPIO_MAX732X is not set 776# CONFIG_GPIO_MAX732X is not set
@@ -776,11 +790,11 @@ CONFIG_GPIOLIB=y
776# CONFIG_HWMON is not set 790# CONFIG_HWMON is not set
777CONFIG_THERMAL=y 791CONFIG_THERMAL=y
778# CONFIG_WATCHDOG is not set 792# CONFIG_WATCHDOG is not set
793CONFIG_SSB_POSSIBLE=y
779 794
780# 795#
781# Sonics Silicon Backplane 796# Sonics Silicon Backplane
782# 797#
783CONFIG_SSB_POSSIBLE=y
784# CONFIG_SSB is not set 798# CONFIG_SSB is not set
785 799
786# 800#
@@ -792,6 +806,7 @@ CONFIG_SSB_POSSIBLE=y
792# CONFIG_MFD_TMIO is not set 806# CONFIG_MFD_TMIO is not set
793# CONFIG_MFD_WM8400 is not set 807# CONFIG_MFD_WM8400 is not set
794# CONFIG_MFD_WM8350_I2C is not set 808# CONFIG_MFD_WM8350_I2C is not set
809# CONFIG_REGULATOR is not set
795 810
796# 811#
797# Multimedia devices 812# Multimedia devices
@@ -816,13 +831,65 @@ CONFIG_SSB_POSSIBLE=y
816# CONFIG_DRM is not set 831# CONFIG_DRM is not set
817# CONFIG_VGASTATE is not set 832# CONFIG_VGASTATE is not set
818CONFIG_VIDEO_OUTPUT_CONTROL=m 833CONFIG_VIDEO_OUTPUT_CONTROL=m
819# CONFIG_FB is not set 834CONFIG_FB=m
835# CONFIG_FIRMWARE_EDID is not set
836# CONFIG_FB_DDC is not set
837# CONFIG_FB_BOOT_VESA_SUPPORT is not set
838CONFIG_FB_CFB_FILLRECT=m
839CONFIG_FB_CFB_COPYAREA=m
840CONFIG_FB_CFB_IMAGEBLIT=m
841# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
842# CONFIG_FB_SYS_FILLRECT is not set
843# CONFIG_FB_SYS_COPYAREA is not set
844# CONFIG_FB_SYS_IMAGEBLIT is not set
845# CONFIG_FB_FOREIGN_ENDIAN is not set
846# CONFIG_FB_SYS_FOPS is not set
847# CONFIG_FB_SVGALIB is not set
848# CONFIG_FB_MACMODES is not set
849# CONFIG_FB_BACKLIGHT is not set
850# CONFIG_FB_MODE_HELPERS is not set
851# CONFIG_FB_TILEBLITTING is not set
852
853#
854# Frame buffer hardware drivers
855#
856# CONFIG_FB_CIRRUS is not set
857# CONFIG_FB_PM2 is not set
858# CONFIG_FB_CYBER2000 is not set
859# CONFIG_FB_VGA16 is not set
860# CONFIG_FB_UVESA is not set
861# CONFIG_FB_S1D13XXX is not set
862# CONFIG_FB_NVIDIA is not set
863# CONFIG_FB_RIVA is not set
864# CONFIG_FB_MATROX is not set
865# CONFIG_FB_RADEON is not set
866# CONFIG_FB_ATY128 is not set
867# CONFIG_FB_ATY is not set
868# CONFIG_FB_S3 is not set
869# CONFIG_FB_SAVAGE is not set
870# CONFIG_FB_SIS is not set
871# CONFIG_FB_VIA is not set
872# CONFIG_FB_NEOMAGIC is not set
873# CONFIG_FB_KYRO is not set
874# CONFIG_FB_3DFX is not set
875# CONFIG_FB_VOODOO1 is not set
876# CONFIG_FB_VT8623 is not set
877# CONFIG_FB_TRIDENT is not set
878# CONFIG_FB_ARK is not set
879# CONFIG_FB_PM3 is not set
880# CONFIG_FB_CARMINE is not set
881# CONFIG_FB_IBM_GXT4500 is not set
882CONFIG_FB_XILINX=m
883# CONFIG_FB_VIRTUAL is not set
884# CONFIG_FB_METRONOME is not set
885# CONFIG_FB_MB862XX is not set
820# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 886# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
821 887
822# 888#
823# Display device support 889# Display device support
824# 890#
825# CONFIG_DISPLAY_SUPPORT is not set 891# CONFIG_DISPLAY_SUPPORT is not set
892# CONFIG_LOGO is not set
826# CONFIG_SOUND is not set 893# CONFIG_SOUND is not set
827CONFIG_USB_SUPPORT=y 894CONFIG_USB_SUPPORT=y
828CONFIG_USB_ARCH_HAS_HCD=y 895CONFIG_USB_ARCH_HAS_HCD=y
@@ -851,6 +918,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
851# CONFIG_DMADEVICES is not set 918# CONFIG_DMADEVICES is not set
852# CONFIG_UIO is not set 919# CONFIG_UIO is not set
853# CONFIG_STAGING is not set 920# CONFIG_STAGING is not set
921CONFIG_STAGING_EXCLUDE_BUILD=y
854 922
855# 923#
856# File systems 924# File systems
@@ -1077,10 +1145,12 @@ CONFIG_DEBUG_BUGVERBOSE=y
1077# CONFIG_FAULT_INJECTION is not set 1145# CONFIG_FAULT_INJECTION is not set
1078# CONFIG_LATENCYTOP is not set 1146# CONFIG_LATENCYTOP is not set
1079CONFIG_SYSCTL_SYSCALL_CHECK=y 1147CONFIG_SYSCTL_SYSCALL_CHECK=y
1080CONFIG_NOP_TRACER=y 1148CONFIG_HAVE_FUNCTION_TRACER=y
1081CONFIG_HAVE_FTRACE=y 1149
1082CONFIG_HAVE_DYNAMIC_FTRACE=y 1150#
1083# CONFIG_FTRACE is not set 1151# Tracers
1152#
1153# CONFIG_FUNCTION_TRACER is not set
1084# CONFIG_SCHED_TRACER is not set 1154# CONFIG_SCHED_TRACER is not set
1085# CONFIG_CONTEXT_SWITCH_TRACER is not set 1155# CONFIG_CONTEXT_SWITCH_TRACER is not set
1086# CONFIG_BOOT_TRACER is not set 1156# CONFIG_BOOT_TRACER is not set
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig
index 55edbd545b61..cfc94cfcf4cb 100644
--- a/arch/powerpc/configs/ppc44x_defconfig
+++ b/arch/powerpc/configs/ppc44x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc2 3# Linux kernel version: 2.6.28-rc4
4# Tue Oct 28 09:28:58 2008 4# Fri Nov 14 10:06:19 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -506,15 +506,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000
506# CONFIG_BLK_DEV_XIP is not set 506# CONFIG_BLK_DEV_XIP is not set
507# CONFIG_CDROM_PKTCDVD is not set 507# CONFIG_CDROM_PKTCDVD is not set
508# CONFIG_ATA_OVER_ETH is not set 508# CONFIG_ATA_OVER_ETH is not set
509# CONFIG_XILINX_SYSACE is not set 509CONFIG_XILINX_SYSACE=m
510# CONFIG_BLK_DEV_HD is not set 510# CONFIG_BLK_DEV_HD is not set
511CONFIG_MISC_DEVICES=y 511CONFIG_MISC_DEVICES=y
512# CONFIG_PHANTOM is not set 512# CONFIG_PHANTOM is not set
513# CONFIG_EEPROM_93CX6 is not set 513# CONFIG_EEPROM_93CX6 is not set
514# CONFIG_SGI_IOC4 is not set 514# CONFIG_SGI_IOC4 is not set
515# CONFIG_TIFM_CORE is not set 515# CONFIG_TIFM_CORE is not set
516# CONFIG_ICS932S401 is not set
516# CONFIG_ENCLOSURE_SERVICES is not set 517# CONFIG_ENCLOSURE_SERVICES is not set
517# CONFIG_HP_ILO is not set 518# CONFIG_HP_ILO is not set
519# CONFIG_C2PORT is not set
518CONFIG_HAVE_IDE=y 520CONFIG_HAVE_IDE=y
519# CONFIG_IDE is not set 521# CONFIG_IDE is not set
520 522
@@ -680,7 +682,13 @@ CONFIG_NETDEV_10000=y
680# 682#
681# Hardware I/O ports 683# Hardware I/O ports
682# 684#
683# CONFIG_SERIO is not set 685CONFIG_SERIO=m
686# CONFIG_SERIO_I8042 is not set
687# CONFIG_SERIO_SERPORT is not set
688# CONFIG_SERIO_PCIPS2 is not set
689# CONFIG_SERIO_LIBPS2 is not set
690# CONFIG_SERIO_RAW is not set
691CONFIG_SERIO_XILINX_XPS_PS2=m
684# CONFIG_GAMEPORT is not set 692# CONFIG_GAMEPORT is not set
685 693
686# 694#
@@ -708,7 +716,8 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
708# 716#
709# Non-8250 serial port support 717# Non-8250 serial port support
710# 718#
711# CONFIG_SERIAL_UARTLITE is not set 719CONFIG_SERIAL_UARTLITE=y
720CONFIG_SERIAL_UARTLITE_CONSOLE=y
712CONFIG_SERIAL_CORE=y 721CONFIG_SERIAL_CORE=y
713CONFIG_SERIAL_CORE_CONSOLE=y 722CONFIG_SERIAL_CORE_CONSOLE=y
714# CONFIG_SERIAL_JSM is not set 723# CONFIG_SERIAL_JSM is not set
@@ -806,6 +815,11 @@ CONFIG_GPIOLIB=y
806# CONFIG_GPIO_SYSFS is not set 815# CONFIG_GPIO_SYSFS is not set
807 816
808# 817#
818# Memory mapped GPIO expanders:
819#
820CONFIG_GPIO_XILINX=y
821
822#
809# I2C GPIO expanders: 823# I2C GPIO expanders:
810# 824#
811# CONFIG_GPIO_MAX732X is not set 825# CONFIG_GPIO_MAX732X is not set
@@ -826,11 +840,11 @@ CONFIG_GPIOLIB=y
826# CONFIG_THERMAL is not set 840# CONFIG_THERMAL is not set
827# CONFIG_THERMAL_HWMON is not set 841# CONFIG_THERMAL_HWMON is not set
828# CONFIG_WATCHDOG is not set 842# CONFIG_WATCHDOG is not set
843CONFIG_SSB_POSSIBLE=y
829 844
830# 845#
831# Sonics Silicon Backplane 846# Sonics Silicon Backplane
832# 847#
833CONFIG_SSB_POSSIBLE=y
834# CONFIG_SSB is not set 848# CONFIG_SSB is not set
835 849
836# 850#
@@ -842,6 +856,7 @@ CONFIG_SSB_POSSIBLE=y
842# CONFIG_MFD_TMIO is not set 856# CONFIG_MFD_TMIO is not set
843# CONFIG_MFD_WM8400 is not set 857# CONFIG_MFD_WM8400 is not set
844# CONFIG_MFD_WM8350_I2C is not set 858# CONFIG_MFD_WM8350_I2C is not set
859# CONFIG_REGULATOR is not set
845 860
846# 861#
847# Multimedia devices 862# Multimedia devices
@@ -866,13 +881,65 @@ CONFIG_SSB_POSSIBLE=y
866# CONFIG_DRM is not set 881# CONFIG_DRM is not set
867# CONFIG_VGASTATE is not set 882# CONFIG_VGASTATE is not set
868# CONFIG_VIDEO_OUTPUT_CONTROL is not set 883# CONFIG_VIDEO_OUTPUT_CONTROL is not set
869# CONFIG_FB is not set 884CONFIG_FB=m
885# CONFIG_FIRMWARE_EDID is not set
886# CONFIG_FB_DDC is not set
887# CONFIG_FB_BOOT_VESA_SUPPORT is not set
888CONFIG_FB_CFB_FILLRECT=m
889CONFIG_FB_CFB_COPYAREA=m
890CONFIG_FB_CFB_IMAGEBLIT=m
891# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
892# CONFIG_FB_SYS_FILLRECT is not set
893# CONFIG_FB_SYS_COPYAREA is not set
894# CONFIG_FB_SYS_IMAGEBLIT is not set
895# CONFIG_FB_FOREIGN_ENDIAN is not set
896# CONFIG_FB_SYS_FOPS is not set
897# CONFIG_FB_SVGALIB is not set
898# CONFIG_FB_MACMODES is not set
899# CONFIG_FB_BACKLIGHT is not set
900# CONFIG_FB_MODE_HELPERS is not set
901# CONFIG_FB_TILEBLITTING is not set
902
903#
904# Frame buffer hardware drivers
905#
906# CONFIG_FB_CIRRUS is not set
907# CONFIG_FB_PM2 is not set
908# CONFIG_FB_CYBER2000 is not set
909# CONFIG_FB_VGA16 is not set
910# CONFIG_FB_UVESA is not set
911# CONFIG_FB_S1D13XXX is not set
912# CONFIG_FB_NVIDIA is not set
913# CONFIG_FB_RIVA is not set
914# CONFIG_FB_MATROX is not set
915# CONFIG_FB_RADEON is not set
916# CONFIG_FB_ATY128 is not set
917# CONFIG_FB_ATY is not set
918# CONFIG_FB_S3 is not set
919# CONFIG_FB_SAVAGE is not set
920# CONFIG_FB_SIS is not set
921# CONFIG_FB_VIA is not set
922# CONFIG_FB_NEOMAGIC is not set
923# CONFIG_FB_KYRO is not set
924# CONFIG_FB_3DFX is not set
925# CONFIG_FB_VOODOO1 is not set
926# CONFIG_FB_VT8623 is not set
927# CONFIG_FB_TRIDENT is not set
928# CONFIG_FB_ARK is not set
929# CONFIG_FB_PM3 is not set
930# CONFIG_FB_CARMINE is not set
931# CONFIG_FB_IBM_GXT4500 is not set
932CONFIG_FB_XILINX=m
933# CONFIG_FB_VIRTUAL is not set
934# CONFIG_FB_METRONOME is not set
935# CONFIG_FB_MB862XX is not set
870# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 936# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
871 937
872# 938#
873# Display device support 939# Display device support
874# 940#
875# CONFIG_DISPLAY_SUPPORT is not set 941# CONFIG_DISPLAY_SUPPORT is not set
942# CONFIG_LOGO is not set
876# CONFIG_SOUND is not set 943# CONFIG_SOUND is not set
877CONFIG_USB_SUPPORT=y 944CONFIG_USB_SUPPORT=y
878CONFIG_USB_ARCH_HAS_HCD=y 945CONFIG_USB_ARCH_HAS_HCD=y
@@ -1002,6 +1069,7 @@ CONFIG_USB_STORAGE=m
1002# CONFIG_DMADEVICES is not set 1069# CONFIG_DMADEVICES is not set
1003# CONFIG_UIO is not set 1070# CONFIG_UIO is not set
1004# CONFIG_STAGING is not set 1071# CONFIG_STAGING is not set
1072CONFIG_STAGING_EXCLUDE_BUILD=y
1005 1073
1006# 1074#
1007# File systems 1075# File systems
@@ -1227,10 +1295,12 @@ CONFIG_DEBUG_BUGVERBOSE=y
1227# CONFIG_FAULT_INJECTION is not set 1295# CONFIG_FAULT_INJECTION is not set
1228# CONFIG_LATENCYTOP is not set 1296# CONFIG_LATENCYTOP is not set
1229CONFIG_SYSCTL_SYSCALL_CHECK=y 1297CONFIG_SYSCTL_SYSCALL_CHECK=y
1230CONFIG_NOP_TRACER=y 1298CONFIG_HAVE_FUNCTION_TRACER=y
1231CONFIG_HAVE_FTRACE=y 1299
1232CONFIG_HAVE_DYNAMIC_FTRACE=y 1300#
1233# CONFIG_FTRACE is not set 1301# Tracers
1302#
1303# CONFIG_FUNCTION_TRACER is not set
1234# CONFIG_SCHED_TRACER is not set 1304# CONFIG_SCHED_TRACER is not set
1235# CONFIG_CONTEXT_SWITCH_TRACER is not set 1305# CONFIG_CONTEXT_SWITCH_TRACER is not set
1236# CONFIG_BOOT_TRACER is not set 1306# CONFIG_BOOT_TRACER is not set
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
index 8931ba729d2b..bb62ad876de3 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -104,4 +104,6 @@ static inline void kvmppc_set_pid(struct kvm_vcpu *vcpu, u32 new_pid)
104 } 104 }
105} 105}
106 106
107extern void kvmppc_core_destroy_mmu(struct kvm_vcpu *vcpu);
108
107#endif /* __POWERPC_KVM_PPC_H__ */ 109#endif /* __POWERPC_KVM_PPC_H__ */
diff --git a/arch/powerpc/include/asm/mmu-hash64.h b/arch/powerpc/include/asm/mmu-hash64.h
index 5a441742ffba..68b752626808 100644
--- a/arch/powerpc/include/asm/mmu-hash64.h
+++ b/arch/powerpc/include/asm/mmu-hash64.h
@@ -280,7 +280,6 @@ extern int hash_huge_page(struct mm_struct *mm, unsigned long access,
280extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend, 280extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
281 unsigned long pstart, unsigned long prot, 281 unsigned long pstart, unsigned long prot,
282 int psize, int ssize); 282 int psize, int ssize);
283extern void set_huge_psize(int psize);
284extern void add_gpage(unsigned long addr, unsigned long page_size, 283extern void add_gpage(unsigned long addr, unsigned long page_size,
285 unsigned long number_of_pages); 284 unsigned long number_of_pages);
286extern void demote_segment_4k(struct mm_struct *mm, unsigned long addr); 285extern void demote_segment_4k(struct mm_struct *mm, unsigned long addr);
diff --git a/arch/powerpc/include/asm/ptrace.h b/arch/powerpc/include/asm/ptrace.h
index 280a90cc9894..c9c678fb2538 100644
--- a/arch/powerpc/include/asm/ptrace.h
+++ b/arch/powerpc/include/asm/ptrace.h
@@ -55,8 +55,6 @@ struct pt_regs {
55 55
56#ifdef __powerpc64__ 56#ifdef __powerpc64__
57 57
58#define __ARCH_WANT_COMPAT_SYS_PTRACE
59
60#define STACK_FRAME_OVERHEAD 112 /* size of minimum stack frame */ 58#define STACK_FRAME_OVERHEAD 112 /* size of minimum stack frame */
61#define STACK_FRAME_LR_SAVE 2 /* Location of LR in stack frame */ 59#define STACK_FRAME_LR_SAVE 2 /* Location of LR in stack frame */
62#define STACK_FRAME_REGS_MARKER ASM_CONST(0x7265677368657265) 60#define STACK_FRAME_REGS_MARKER ASM_CONST(0x7265677368657265)
diff --git a/arch/powerpc/kernel/cpu_setup_44x.S b/arch/powerpc/kernel/cpu_setup_44x.S
index 80cac984d85d..10b4ab1008af 100644
--- a/arch/powerpc/kernel/cpu_setup_44x.S
+++ b/arch/powerpc/kernel/cpu_setup_44x.S
@@ -34,7 +34,13 @@ _GLOBAL(__setup_cpu_440grx)
34 blr 34 blr
35_GLOBAL(__setup_cpu_460ex) 35_GLOBAL(__setup_cpu_460ex)
36_GLOBAL(__setup_cpu_460gt) 36_GLOBAL(__setup_cpu_460gt)
37 b __init_fpu_44x 37 mflr r4
38 bl __init_fpu_44x
39 bl __fixup_440A_mcheck
40 mtlr r4
41 blr
42
43_GLOBAL(__setup_cpu_440x5)
38_GLOBAL(__setup_cpu_440gx) 44_GLOBAL(__setup_cpu_440gx)
39_GLOBAL(__setup_cpu_440spe) 45_GLOBAL(__setup_cpu_440spe)
40 b __fixup_440A_mcheck 46 b __fixup_440A_mcheck
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index b1eb834bc0fc..7e8719504f39 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -39,6 +39,7 @@ extern void __setup_cpu_440epx(unsigned long offset, struct cpu_spec* spec);
39extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec); 39extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec);
40extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec); 40extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec);
41extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec); 41extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec);
42extern void __setup_cpu_440x5(unsigned long offset, struct cpu_spec* spec);
42extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec); 43extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec);
43extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec); 44extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec);
44extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec); 45extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
@@ -1500,6 +1501,8 @@ static struct cpu_spec __initdata cpu_specs[] = {
1500 .cpu_user_features = COMMON_USER_BOOKE, 1501 .cpu_user_features = COMMON_USER_BOOKE,
1501 .icache_bsize = 32, 1502 .icache_bsize = 32,
1502 .dcache_bsize = 32, 1503 .dcache_bsize = 32,
1504 .cpu_setup = __setup_cpu_440x5,
1505 .machine_check = machine_check_440A,
1503 .platform = "ppc440", 1506 .platform = "ppc440",
1504 }, 1507 },
1505 { /* 460EX */ 1508 { /* 460EX */
diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
index 1562daf8839a..3a6eaa876ee1 100644
--- a/arch/powerpc/kernel/dma.c
+++ b/arch/powerpc/kernel/dma.c
@@ -75,6 +75,7 @@ static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl,
75 for_each_sg(sgl, sg, nents, i) { 75 for_each_sg(sgl, sg, nents, i) {
76 sg->dma_address = sg_phys(sg) + get_dma_direct_offset(dev); 76 sg->dma_address = sg_phys(sg) + get_dma_direct_offset(dev);
77 sg->dma_length = sg->length; 77 sg->dma_length = sg->length;
78 __dma_sync_page(sg_page(sg), sg->offset, sg->length, direction);
78 } 79 }
79 80
80 return nents; 81 return nents;
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index e6d52845854f..e0bcf9354286 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -57,12 +57,18 @@ system_call_common:
57 beq- 1f 57 beq- 1f
58 ld r1,PACAKSAVE(r13) 58 ld r1,PACAKSAVE(r13)
591: std r10,0(r1) 591: std r10,0(r1)
60 crclr so
61 std r11,_NIP(r1) 60 std r11,_NIP(r1)
62 std r12,_MSR(r1) 61 std r12,_MSR(r1)
63 std r0,GPR0(r1) 62 std r0,GPR0(r1)
64 std r10,GPR1(r1) 63 std r10,GPR1(r1)
65 ACCOUNT_CPU_USER_ENTRY(r10, r11) 64 ACCOUNT_CPU_USER_ENTRY(r10, r11)
65 /*
66 * This "crclr so" clears CR0.SO, which is the error indication on
67 * return from this system call. There must be no cmp instruction
68 * between it and the "mfcr r9" below, otherwise if XER.SO is set,
69 * CR0.SO will get set, causing all system calls to appear to fail.
70 */
71 crclr so
66 std r2,GPR2(r1) 72 std r2,GPR2(r1)
67 std r3,GPR3(r1) 73 std r3,GPR3(r1)
68 std r4,GPR4(r1) 74 std r4,GPR4(r1)
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index bdc8b0e860e5..5c33bc14bd9f 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -479,17 +479,20 @@ _GLOBAL(_tlbil_pid)
479 * (no broadcast) 479 * (no broadcast)
480 */ 480 */
481_GLOBAL(_tlbil_va) 481_GLOBAL(_tlbil_va)
482 mfmsr r10
483 wrteei 0
482 slwi r4,r4,16 484 slwi r4,r4,16
483 mtspr SPRN_MAS6,r4 /* assume AS=0 for now */ 485 mtspr SPRN_MAS6,r4 /* assume AS=0 for now */
484 tlbsx 0,r3 486 tlbsx 0,r3
485 mfspr r4,SPRN_MAS1 /* check valid */ 487 mfspr r4,SPRN_MAS1 /* check valid */
486 andis. r3,r4,MAS1_VALID@h 488 andis. r3,r4,MAS1_VALID@h
487 beqlr 489 beq 1f
488 rlwinm r4,r4,0,1,31 490 rlwinm r4,r4,0,1,31
489 mtspr SPRN_MAS1,r4 491 mtspr SPRN_MAS1,r4
490 tlbwe 492 tlbwe
491 msync 493 msync
492 isync 494 isync
4951: wrtee r10
493 blr 496 blr
494#endif /* CONFIG_FSL_BOOKE */ 497#endif /* CONFIG_FSL_BOOKE */
495 498
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c
index bc1fb27368af..a11d68976dc8 100644
--- a/arch/powerpc/kernel/prom_parse.c
+++ b/arch/powerpc/kernel/prom_parse.c
@@ -250,8 +250,11 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
250 * parsing 250 * parsing
251 */ 251 */
252 dn = pci_device_to_OF_node(pdev); 252 dn = pci_device_to_OF_node(pdev);
253 if (dn) 253 if (dn) {
254 return of_irq_map_one(dn, 0, out_irq); 254 rc = of_irq_map_one(dn, 0, out_irq);
255 if (!rc)
256 return rc;
257 }
255 258
256 /* Ok, we don't, time to have fun. Let's start by building up an 259 /* Ok, we don't, time to have fun. Let's start by building up an
257 * interrupt spec. we assume #interrupt-cells is 1, which is standard 260 * interrupt spec. we assume #interrupt-cells is 1, which is standard
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
index 86a2ffccef25..20885a38237a 100644
--- a/arch/powerpc/kernel/sysfs.c
+++ b/arch/powerpc/kernel/sysfs.c
@@ -717,9 +717,11 @@ static void unregister_cpu_online(unsigned int cpu)
717 717
718 BUG_ON(!c->hotpluggable); 718 BUG_ON(!c->hotpluggable);
719 719
720#ifdef CONFIG_PPC64
720 if (!firmware_has_feature(FW_FEATURE_ISERIES) && 721 if (!firmware_has_feature(FW_FEATURE_ISERIES) &&
721 cpu_has_feature(CPU_FTR_SMT)) 722 cpu_has_feature(CPU_FTR_SMT))
722 sysdev_remove_file(s, &attr_smt_snooze_delay); 723 sysdev_remove_file(s, &attr_smt_snooze_delay);
724#endif
723 725
724 /* PMC stuff */ 726 /* PMC stuff */
725 switch (cur_cpu_spec->pmc_type) { 727 switch (cur_cpu_spec->pmc_type) {
diff --git a/arch/powerpc/kvm/44x_tlb.c b/arch/powerpc/kvm/44x_tlb.c
index 2e227a412bc2..ad72c6f9811f 100644
--- a/arch/powerpc/kvm/44x_tlb.c
+++ b/arch/powerpc/kvm/44x_tlb.c
@@ -124,6 +124,14 @@ static void kvmppc_44x_shadow_release(struct kvm_vcpu *vcpu,
124 } 124 }
125} 125}
126 126
127void kvmppc_core_destroy_mmu(struct kvm_vcpu *vcpu)
128{
129 int i;
130
131 for (i = 0; i <= tlb_44x_hwater; i++)
132 kvmppc_44x_shadow_release(vcpu, i);
133}
134
127void kvmppc_tlbe_set_modified(struct kvm_vcpu *vcpu, unsigned int i) 135void kvmppc_tlbe_set_modified(struct kvm_vcpu *vcpu, unsigned int i)
128{ 136{
129 vcpu->arch.shadow_tlb_mod[i] = 1; 137 vcpu->arch.shadow_tlb_mod[i] = 1;
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 90a6fc422b23..fda9baada132 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -238,6 +238,7 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
238 238
239void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) 239void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
240{ 240{
241 kvmppc_core_destroy_mmu(vcpu);
241} 242}
242 243
243/* Note: clearing MSR[DE] just means that the debug interrupt will not be 244/* Note: clearing MSR[DE] just means that the debug interrupt will not be
diff --git a/arch/powerpc/lib/rheap.c b/arch/powerpc/lib/rheap.c
index 29b2941cada0..45907c1dae66 100644
--- a/arch/powerpc/lib/rheap.c
+++ b/arch/powerpc/lib/rheap.c
@@ -556,6 +556,7 @@ unsigned long rh_alloc_fixed(rh_info_t * info, unsigned long start, int size, co
556 be = blk->start + blk->size; 556 be = blk->start + blk->size;
557 if (s >= bs && e <= be) 557 if (s >= bs && e <= be)
558 break; 558 break;
559 blk = NULL;
559 } 560 }
560 561
561 if (blk == NULL) 562 if (blk == NULL)
diff --git a/arch/powerpc/mm/40x_mmu.c b/arch/powerpc/mm/40x_mmu.c
index cecbbc76f624..29954dc28942 100644
--- a/arch/powerpc/mm/40x_mmu.c
+++ b/arch/powerpc/mm/40x_mmu.c
@@ -93,7 +93,7 @@ void __init MMU_init_hw(void)
93 93
94unsigned long __init mmu_mapin_ram(void) 94unsigned long __init mmu_mapin_ram(void)
95{ 95{
96 unsigned long v, s; 96 unsigned long v, s, mapped;
97 phys_addr_t p; 97 phys_addr_t p;
98 98
99 v = KERNELBASE; 99 v = KERNELBASE;
@@ -130,5 +130,17 @@ unsigned long __init mmu_mapin_ram(void)
130 s -= LARGE_PAGE_SIZE_4M; 130 s -= LARGE_PAGE_SIZE_4M;
131 } 131 }
132 132
133 return total_lowmem - s; 133 mapped = total_lowmem - s;
134
135 /* If the size of RAM is not an exact power of two, we may not
136 * have covered RAM in its entirety with 16 and 4 MiB
137 * pages. Consequently, restrict the top end of RAM currently
138 * allocable so that calls to the LMB to allocate PTEs for "tail"
139 * coverage with normal-sized pages (or other reasons) do not
140 * attempt to allocate outside the allowed range.
141 */
142
143 __initial_memory_limit_addr = memstart_addr + mapped;
144
145 return mapped;
134} 146}
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index a117024ab8cd..f0c3b88d50fa 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -507,6 +507,9 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
507{ 507{
508 struct hstate *hstate = hstate_file(file); 508 struct hstate *hstate = hstate_file(file);
509 int mmu_psize = shift_to_mmu_psize(huge_page_shift(hstate)); 509 int mmu_psize = shift_to_mmu_psize(huge_page_shift(hstate));
510
511 if (!mmu_huge_psizes[mmu_psize])
512 return -EINVAL;
510 return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0); 513 return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0);
511} 514}
512 515
@@ -677,7 +680,7 @@ repeat:
677 return err; 680 return err;
678} 681}
679 682
680void set_huge_psize(int psize) 683static void __init set_huge_psize(int psize)
681{ 684{
682 /* Check that it is a page size supported by the hardware and 685 /* Check that it is a page size supported by the hardware and
683 * that it fits within pagetable limits. */ 686 * that it fits within pagetable limits. */
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index eb505ad34a85..cf81049e1e51 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -865,10 +865,77 @@ static struct notifier_block __cpuinitdata ppc64_numa_nb = {
865 .priority = 1 /* Must run before sched domains notifier. */ 865 .priority = 1 /* Must run before sched domains notifier. */
866}; 866};
867 867
868static void mark_reserved_regions_for_nid(int nid)
869{
870 struct pglist_data *node = NODE_DATA(nid);
871 int i;
872
873 for (i = 0; i < lmb.reserved.cnt; i++) {
874 unsigned long physbase = lmb.reserved.region[i].base;
875 unsigned long size = lmb.reserved.region[i].size;
876 unsigned long start_pfn = physbase >> PAGE_SHIFT;
877 unsigned long end_pfn = ((physbase + size) >> PAGE_SHIFT);
878 struct node_active_region node_ar;
879 unsigned long node_end_pfn = node->node_start_pfn +
880 node->node_spanned_pages;
881
882 /*
883 * Check to make sure that this lmb.reserved area is
884 * within the bounds of the node that we care about.
885 * Checking the nid of the start and end points is not
886 * sufficient because the reserved area could span the
887 * entire node.
888 */
889 if (end_pfn <= node->node_start_pfn ||
890 start_pfn >= node_end_pfn)
891 continue;
892
893 get_node_active_region(start_pfn, &node_ar);
894 while (start_pfn < end_pfn &&
895 node_ar.start_pfn < node_ar.end_pfn) {
896 unsigned long reserve_size = size;
897 /*
898 * if reserved region extends past active region
899 * then trim size to active region
900 */
901 if (end_pfn > node_ar.end_pfn)
902 reserve_size = (node_ar.end_pfn << PAGE_SHIFT)
903 - (start_pfn << PAGE_SHIFT);
904 /*
905 * Only worry about *this* node, others may not
906 * yet have valid NODE_DATA().
907 */
908 if (node_ar.nid == nid) {
909 dbg("reserve_bootmem %lx %lx nid=%d\n",
910 physbase, reserve_size, node_ar.nid);
911 reserve_bootmem_node(NODE_DATA(node_ar.nid),
912 physbase, reserve_size,
913 BOOTMEM_DEFAULT);
914 }
915 /*
916 * if reserved region is contained in the active region
917 * then done.
918 */
919 if (end_pfn <= node_ar.end_pfn)
920 break;
921
922 /*
923 * reserved region extends past the active region
924 * get next active region that contains this
925 * reserved region
926 */
927 start_pfn = node_ar.end_pfn;
928 physbase = start_pfn << PAGE_SHIFT;
929 size = size - reserve_size;
930 get_node_active_region(start_pfn, &node_ar);
931 }
932 }
933}
934
935
868void __init do_init_bootmem(void) 936void __init do_init_bootmem(void)
869{ 937{
870 int nid; 938 int nid;
871 unsigned int i;
872 939
873 min_low_pfn = 0; 940 min_low_pfn = 0;
874 max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT; 941 max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT;
@@ -890,7 +957,13 @@ void __init do_init_bootmem(void)
890 957
891 get_pfn_range_for_nid(nid, &start_pfn, &end_pfn); 958 get_pfn_range_for_nid(nid, &start_pfn, &end_pfn);
892 959
893 /* Allocate the node structure node local if possible */ 960 /*
961 * Allocate the node structure node local if possible
962 *
963 * Be careful moving this around, as it relies on all
964 * previous nodes' bootmem to be initialized and have
965 * all reserved areas marked.
966 */
894 NODE_DATA(nid) = careful_allocation(nid, 967 NODE_DATA(nid) = careful_allocation(nid,
895 sizeof(struct pglist_data), 968 sizeof(struct pglist_data),
896 SMP_CACHE_BYTES, end_pfn); 969 SMP_CACHE_BYTES, end_pfn);
@@ -922,53 +995,14 @@ void __init do_init_bootmem(void)
922 start_pfn, end_pfn); 995 start_pfn, end_pfn);
923 996
924 free_bootmem_with_active_regions(nid, end_pfn); 997 free_bootmem_with_active_regions(nid, end_pfn);
925 } 998 /*
926 999 * Be very careful about moving this around. Future
927 /* Mark reserved regions */ 1000 * calls to careful_allocation() depend on this getting
928 for (i = 0; i < lmb.reserved.cnt; i++) { 1001 * done correctly.
929 unsigned long physbase = lmb.reserved.region[i].base; 1002 */
930 unsigned long size = lmb.reserved.region[i].size; 1003 mark_reserved_regions_for_nid(nid);
931 unsigned long start_pfn = physbase >> PAGE_SHIFT;
932 unsigned long end_pfn = ((physbase + size) >> PAGE_SHIFT);
933 struct node_active_region node_ar;
934
935 get_node_active_region(start_pfn, &node_ar);
936 while (start_pfn < end_pfn &&
937 node_ar.start_pfn < node_ar.end_pfn) {
938 unsigned long reserve_size = size;
939 /*
940 * if reserved region extends past active region
941 * then trim size to active region
942 */
943 if (end_pfn > node_ar.end_pfn)
944 reserve_size = (node_ar.end_pfn << PAGE_SHIFT)
945 - (start_pfn << PAGE_SHIFT);
946 dbg("reserve_bootmem %lx %lx nid=%d\n", physbase,
947 reserve_size, node_ar.nid);
948 reserve_bootmem_node(NODE_DATA(node_ar.nid), physbase,
949 reserve_size, BOOTMEM_DEFAULT);
950 /*
951 * if reserved region is contained in the active region
952 * then done.
953 */
954 if (end_pfn <= node_ar.end_pfn)
955 break;
956
957 /*
958 * reserved region extends past the active region
959 * get next active region that contains this
960 * reserved region
961 */
962 start_pfn = node_ar.end_pfn;
963 physbase = start_pfn << PAGE_SHIFT;
964 size = size - reserve_size;
965 get_node_active_region(start_pfn, &node_ar);
966 }
967
968 }
969
970 for_each_online_node(nid)
971 sparse_memory_present_with_active_regions(nid); 1004 sparse_memory_present_with_active_regions(nid);
1005 }
972} 1006}
973 1007
974void __init paging_init(void) 1008void __init paging_init(void)
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index 896548ba1ca1..0ce45c2b42f8 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -95,6 +95,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
95 struct axon_msic *msic = get_irq_data(irq); 95 struct axon_msic *msic = get_irq_data(irq);
96 u32 write_offset, msi; 96 u32 write_offset, msi;
97 int idx; 97 int idx;
98 int retry = 0;
98 99
99 write_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG); 100 write_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG);
100 pr_debug("axon_msi: original write_offset 0x%x\n", write_offset); 101 pr_debug("axon_msi: original write_offset 0x%x\n", write_offset);
@@ -102,7 +103,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
102 /* write_offset doesn't wrap properly, so we have to mask it */ 103 /* write_offset doesn't wrap properly, so we have to mask it */
103 write_offset &= MSIC_FIFO_SIZE_MASK; 104 write_offset &= MSIC_FIFO_SIZE_MASK;
104 105
105 while (msic->read_offset != write_offset) { 106 while (msic->read_offset != write_offset && retry < 100) {
106 idx = msic->read_offset / sizeof(__le32); 107 idx = msic->read_offset / sizeof(__le32);
107 msi = le32_to_cpu(msic->fifo_virt[idx]); 108 msi = le32_to_cpu(msic->fifo_virt[idx]);
108 msi &= 0xFFFF; 109 msi &= 0xFFFF;
@@ -110,13 +111,37 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
110 pr_debug("axon_msi: woff %x roff %x msi %x\n", 111 pr_debug("axon_msi: woff %x roff %x msi %x\n",
111 write_offset, msic->read_offset, msi); 112 write_offset, msic->read_offset, msi);
112 113
114 if (msi < NR_IRQS && irq_map[msi].host == msic->irq_host) {
115 generic_handle_irq(msi);
116 msic->fifo_virt[idx] = cpu_to_le32(0xffffffff);
117 } else {
118 /*
119 * Reading the MSIC_WRITE_OFFSET_REG does not
120 * reliably flush the outstanding DMA to the
121 * FIFO buffer. Here we were reading stale
122 * data, so we need to retry.
123 */
124 udelay(1);
125 retry++;
126 pr_debug("axon_msi: invalid irq 0x%x!\n", msi);
127 continue;
128 }
129
130 if (retry) {
131 pr_debug("axon_msi: late irq 0x%x, retry %d\n",
132 msi, retry);
133 retry = 0;
134 }
135
113 msic->read_offset += MSIC_FIFO_ENTRY_SIZE; 136 msic->read_offset += MSIC_FIFO_ENTRY_SIZE;
114 msic->read_offset &= MSIC_FIFO_SIZE_MASK; 137 msic->read_offset &= MSIC_FIFO_SIZE_MASK;
138 }
115 139
116 if (msi < NR_IRQS && irq_map[msi].host == msic->irq_host) 140 if (retry) {
117 generic_handle_irq(msi); 141 printk(KERN_WARNING "axon_msi: irq timed out\n");
118 else 142
119 pr_debug("axon_msi: invalid irq 0x%x!\n", msi); 143 msic->read_offset += MSIC_FIFO_ENTRY_SIZE;
144 msic->read_offset &= MSIC_FIFO_SIZE_MASK;
120 } 145 }
121 146
122 desc->chip->eoi(irq); 147 desc->chip->eoi(irq);
@@ -364,6 +389,7 @@ static int axon_msi_probe(struct of_device *device,
364 dn->full_name); 389 dn->full_name);
365 goto out_free_fifo; 390 goto out_free_fifo;
366 } 391 }
392 memset(msic->fifo_virt, 0xff, MSIC_FIFO_SIZE_BYTES);
367 393
368 msic->irq_host = irq_alloc_host(dn, IRQ_HOST_MAP_NOMAP, 394 msic->irq_host = irq_alloc_host(dn, IRQ_HOST_MAP_NOMAP,
369 NR_IRQS, &msic_host_ops, 0); 395 NR_IRQS, &msic_host_ops, 0);
@@ -387,6 +413,9 @@ static int axon_msi_probe(struct of_device *device,
387 MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE | 413 MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE |
388 MSIC_CTRL_FIFO_SIZE); 414 MSIC_CTRL_FIFO_SIZE);
389 415
416 msic->read_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG)
417 & MSIC_FIFO_SIZE_MASK;
418
390 device->dev.platform_data = msic; 419 device->dev.platform_data = msic;
391 420
392 ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs; 421 ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs;
diff --git a/arch/powerpc/platforms/cell/smp.c b/arch/powerpc/platforms/cell/smp.c
index c0d86e1f56ea..9046803c8276 100644
--- a/arch/powerpc/platforms/cell/smp.c
+++ b/arch/powerpc/platforms/cell/smp.c
@@ -129,10 +129,15 @@ static int __init smp_iic_probe(void)
129 return cpus_weight(cpu_possible_map); 129 return cpus_weight(cpu_possible_map);
130} 130}
131 131
132static void __devinit smp_iic_setup_cpu(int cpu) 132static void __devinit smp_cell_setup_cpu(int cpu)
133{ 133{
134 if (cpu != boot_cpuid) 134 if (cpu != boot_cpuid)
135 iic_setup_cpu(); 135 iic_setup_cpu();
136
137 /*
138 * change default DABRX to allow user watchpoints
139 */
140 mtspr(SPRN_DABRX, DABRX_KERNEL | DABRX_USER);
136} 141}
137 142
138static DEFINE_SPINLOCK(timebase_lock); 143static DEFINE_SPINLOCK(timebase_lock);
@@ -192,7 +197,7 @@ static struct smp_ops_t bpa_iic_smp_ops = {
192 .message_pass = smp_iic_message_pass, 197 .message_pass = smp_iic_message_pass,
193 .probe = smp_iic_probe, 198 .probe = smp_iic_probe,
194 .kick_cpu = smp_cell_kick_cpu, 199 .kick_cpu = smp_cell_kick_cpu,
195 .setup_cpu = smp_iic_setup_cpu, 200 .setup_cpu = smp_cell_setup_cpu,
196 .cpu_bootable = smp_cell_cpu_bootable, 201 .cpu_bootable = smp_cell_cpu_bootable,
197}; 202};
198 203
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
index b73c369cc6f1..1b26071a86ca 100644
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
@@ -390,6 +390,9 @@ static int spufs_ps_fault(struct vm_area_struct *vma,
390 if (offset >= ps_size) 390 if (offset >= ps_size)
391 return VM_FAULT_SIGBUS; 391 return VM_FAULT_SIGBUS;
392 392
393 if (fatal_signal_pending(current))
394 return VM_FAULT_SIGBUS;
395
393 /* 396 /*
394 * Because we release the mmap_sem, the context may be destroyed while 397 * Because we release the mmap_sem, the context may be destroyed while
395 * we're in spu_wait. Grab an extra reference so it isn't destroyed 398 * we're in spu_wait. Grab an extra reference so it isn't destroyed
diff --git a/arch/powerpc/sysdev/bestcomm/Kconfig b/arch/powerpc/sysdev/bestcomm/Kconfig
index 57cc56562567..0b192a1c429d 100644
--- a/arch/powerpc/sysdev/bestcomm/Kconfig
+++ b/arch/powerpc/sysdev/bestcomm/Kconfig
@@ -17,23 +17,20 @@ config PPC_BESTCOMM
17 answer Y or M. Otherwise say N. 17 answer Y or M. Otherwise say N.
18 18
19config PPC_BESTCOMM_ATA 19config PPC_BESTCOMM_ATA
20 tristate "Bestcomm ATA task support" 20 tristate
21 depends on PPC_BESTCOMM 21 depends on PPC_BESTCOMM
22 default n
23 help 22 help
24 This option enables the support for the ATA task. 23 This option enables the support for the ATA task.
25 24
26config PPC_BESTCOMM_FEC 25config PPC_BESTCOMM_FEC
27 tristate "Bestcomm FEC tasks support" 26 tristate
28 depends on PPC_BESTCOMM 27 depends on PPC_BESTCOMM
29 default n
30 help 28 help
31 This option enables the support for the FEC tasks. 29 This option enables the support for the FEC tasks.
32 30
33config PPC_BESTCOMM_GEN_BD 31config PPC_BESTCOMM_GEN_BD
34 tristate "Bestcomm GenBD tasks support" 32 tristate
35 depends on PPC_BESTCOMM 33 depends on PPC_BESTCOMM
36 default n
37 help 34 help
38 This option enables the support for the GenBD tasks. 35 This option enables the support for the GenBD tasks.
39 36
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index f6299cca7814..1890fb085cde 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -600,7 +600,7 @@ static int irq_choose_cpu(unsigned int virt_irq)
600 cpuid = first_cpu(tmp); 600 cpuid = first_cpu(tmp);
601 } 601 }
602 602
603 return cpuid; 603 return get_hard_smp_processor_id(cpuid);
604} 604}
605#else 605#else
606static int irq_choose_cpu(unsigned int virt_irq) 606static int irq_choose_cpu(unsigned int virt_irq)
@@ -1271,6 +1271,7 @@ void __init mpic_set_default_senses(struct mpic *mpic, u8 *senses, int count)
1271void __init mpic_init(struct mpic *mpic) 1271void __init mpic_init(struct mpic *mpic)
1272{ 1272{
1273 int i; 1273 int i;
1274 int cpu;
1274 1275
1275 BUG_ON(mpic->num_sources == 0); 1276 BUG_ON(mpic->num_sources == 0);
1276 1277
@@ -1313,6 +1314,11 @@ void __init mpic_init(struct mpic *mpic)
1313 1314
1314 mpic_pasemi_msi_init(mpic); 1315 mpic_pasemi_msi_init(mpic);
1315 1316
1317 if (mpic->flags & MPIC_PRIMARY)
1318 cpu = hard_smp_processor_id();
1319 else
1320 cpu = 0;
1321
1316 for (i = 0; i < mpic->num_sources; i++) { 1322 for (i = 0; i < mpic->num_sources; i++) {
1317 /* start with vector = source number, and masked */ 1323 /* start with vector = source number, and masked */
1318 u32 vecpri = MPIC_VECPRI_MASK | i | 1324 u32 vecpri = MPIC_VECPRI_MASK | i |
@@ -1323,8 +1329,7 @@ void __init mpic_init(struct mpic *mpic)
1323 continue; 1329 continue;
1324 /* init hw */ 1330 /* init hw */
1325 mpic_irq_write(i, MPIC_INFO(IRQ_VECTOR_PRI), vecpri); 1331 mpic_irq_write(i, MPIC_INFO(IRQ_VECTOR_PRI), vecpri);
1326 mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), 1332 mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), 1 << cpu);
1327 1 << hard_smp_processor_id());
1328 } 1333 }
1329 1334
1330 /* Init spurious vector */ 1335 /* Init spurious vector */
diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
index b7aefd0d45cb..a22e1a2df1af 100644
--- a/arch/powerpc/sysdev/xilinx_intc.c
+++ b/arch/powerpc/sysdev/xilinx_intc.c
@@ -107,8 +107,8 @@ xilinx_intc_init(struct device_node *np)
107 } 107 }
108 regs = ioremap(res.start, 32); 108 regs = ioremap(res.start, 32);
109 109
110 printk(KERN_INFO "Xilinx intc at 0x%08LX mapped to 0x%p\n", 110 printk(KERN_INFO "Xilinx intc at 0x%08llx mapped to 0x%p\n",
111 res.start, regs); 111 (unsigned long long) res.start, regs);
112 112
113 /* Setup interrupt controller */ 113 /* Setup interrupt controller */
114 out_be32(regs + XINTC_IER, 0); /* disable all irqs */ 114 out_be32(regs + XINTC_IER, 0); /* disable all irqs */
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index 9b0bc2c9fba0..a0e748da9909 100644
--- a/arch/s390/defconfig
+++ b/arch/s390/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc6
4# Thu Aug 21 19:43:29 2008 4# Thu Nov 27 11:00:49 2008
5# 5#
6CONFIG_SCHED_MC=y 6CONFIG_SCHED_MC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -45,6 +45,7 @@ CONFIG_LOG_BUF_SHIFT=17
45CONFIG_CGROUPS=y 45CONFIG_CGROUPS=y
46# CONFIG_CGROUP_DEBUG is not set 46# CONFIG_CGROUP_DEBUG is not set
47CONFIG_CGROUP_NS=y 47CONFIG_CGROUP_NS=y
48# CONFIG_CGROUP_FREEZER is not set
48# CONFIG_CGROUP_DEVICE is not set 49# CONFIG_CGROUP_DEVICE is not set
49# CONFIG_CPUSETS is not set 50# CONFIG_CPUSETS is not set
50CONFIG_GROUP_SCHED=y 51CONFIG_GROUP_SCHED=y
@@ -84,6 +85,7 @@ CONFIG_SIGNALFD=y
84CONFIG_TIMERFD=y 85CONFIG_TIMERFD=y
85CONFIG_EVENTFD=y 86CONFIG_EVENTFD=y
86CONFIG_SHMEM=y 87CONFIG_SHMEM=y
88CONFIG_AIO=y
87CONFIG_VM_EVENT_COUNTERS=y 89CONFIG_VM_EVENT_COUNTERS=y
88CONFIG_SLAB=y 90CONFIG_SLAB=y
89# CONFIG_SLUB is not set 91# CONFIG_SLUB is not set
@@ -92,16 +94,10 @@ CONFIG_SLAB=y
92# CONFIG_MARKERS is not set 94# CONFIG_MARKERS is not set
93CONFIG_HAVE_OPROFILE=y 95CONFIG_HAVE_OPROFILE=y
94CONFIG_KPROBES=y 96CONFIG_KPROBES=y
95# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
96CONFIG_KRETPROBES=y 97CONFIG_KRETPROBES=y
97# CONFIG_HAVE_IOREMAP_PROT is not set
98CONFIG_HAVE_KPROBES=y 98CONFIG_HAVE_KPROBES=y
99CONFIG_HAVE_KRETPROBES=y 99CONFIG_HAVE_KRETPROBES=y
100# CONFIG_HAVE_ARCH_TRACEHOOK is not set 100CONFIG_HAVE_ARCH_TRACEHOOK=y
101# CONFIG_HAVE_DMA_ATTRS is not set
102# CONFIG_USE_GENERIC_SMP_HELPERS is not set
103# CONFIG_HAVE_CLK is not set
104CONFIG_PROC_PAGE_MONITOR=y
105# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 101# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
106CONFIG_SLABINFO=y 102CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
@@ -135,6 +131,7 @@ CONFIG_DEFAULT_DEADLINE=y
135CONFIG_DEFAULT_IOSCHED="deadline" 131CONFIG_DEFAULT_IOSCHED="deadline"
136CONFIG_PREEMPT_NOTIFIERS=y 132CONFIG_PREEMPT_NOTIFIERS=y
137CONFIG_CLASSIC_RCU=y 133CONFIG_CLASSIC_RCU=y
134# CONFIG_FREEZER is not set
138 135
139# 136#
140# Base setup 137# Base setup
@@ -189,7 +186,6 @@ CONFIG_SELECT_MEMORY_MODEL=y
189CONFIG_SPARSEMEM_MANUAL=y 186CONFIG_SPARSEMEM_MANUAL=y
190CONFIG_SPARSEMEM=y 187CONFIG_SPARSEMEM=y
191CONFIG_HAVE_MEMORY_PRESENT=y 188CONFIG_HAVE_MEMORY_PRESENT=y
192# CONFIG_SPARSEMEM_STATIC is not set
193CONFIG_SPARSEMEM_EXTREME=y 189CONFIG_SPARSEMEM_EXTREME=y
194CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 190CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
195CONFIG_SPARSEMEM_VMEMMAP=y 191CONFIG_SPARSEMEM_VMEMMAP=y
@@ -200,9 +196,11 @@ CONFIG_PAGEFLAGS_EXTENDED=y
200CONFIG_SPLIT_PTLOCK_CPUS=4 196CONFIG_SPLIT_PTLOCK_CPUS=4
201CONFIG_MIGRATION=y 197CONFIG_MIGRATION=y
202CONFIG_RESOURCES_64BIT=y 198CONFIG_RESOURCES_64BIT=y
199CONFIG_PHYS_ADDR_T_64BIT=y
203CONFIG_ZONE_DMA_FLAG=1 200CONFIG_ZONE_DMA_FLAG=1
204CONFIG_BOUNCE=y 201CONFIG_BOUNCE=y
205CONFIG_VIRT_TO_BUS=y 202CONFIG_VIRT_TO_BUS=y
203CONFIG_UNEVICTABLE_LRU=y
206 204
207# 205#
208# I/O subsystem configuration 206# I/O subsystem configuration
@@ -220,6 +218,8 @@ CONFIG_IPL=y
220CONFIG_IPL_VM=y 218CONFIG_IPL_VM=y
221CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
222CONFIG_COMPAT_BINFMT_ELF=y 220CONFIG_COMPAT_BINFMT_ELF=y
221# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
222# CONFIG_HAVE_AOUT is not set
223CONFIG_BINFMT_MISC=m 223CONFIG_BINFMT_MISC=m
224CONFIG_FORCE_MAX_ZONEORDER=9 224CONFIG_FORCE_MAX_ZONEORDER=9
225# CONFIG_PROCESS_DEBUG is not set 225# CONFIG_PROCESS_DEBUG is not set
@@ -255,7 +255,7 @@ CONFIG_XFRM=y
255# CONFIG_XFRM_STATISTICS is not set 255# CONFIG_XFRM_STATISTICS is not set
256CONFIG_NET_KEY=y 256CONFIG_NET_KEY=y
257# CONFIG_NET_KEY_MIGRATE is not set 257# CONFIG_NET_KEY_MIGRATE is not set
258CONFIG_IUCV=m 258CONFIG_IUCV=y
259CONFIG_AFIUCV=m 259CONFIG_AFIUCV=m
260CONFIG_INET=y 260CONFIG_INET=y
261CONFIG_IP_MULTICAST=y 261CONFIG_IP_MULTICAST=y
@@ -282,7 +282,6 @@ CONFIG_INET_TCP_DIAG=y
282CONFIG_TCP_CONG_CUBIC=y 282CONFIG_TCP_CONG_CUBIC=y
283CONFIG_DEFAULT_TCP_CONG="cubic" 283CONFIG_DEFAULT_TCP_CONG="cubic"
284# CONFIG_TCP_MD5SIG is not set 284# CONFIG_TCP_MD5SIG is not set
285# CONFIG_IP_VS is not set
286CONFIG_IPV6=y 285CONFIG_IPV6=y
287# CONFIG_IPV6_PRIVACY is not set 286# CONFIG_IPV6_PRIVACY is not set
288# CONFIG_IPV6_ROUTER_PREF is not set 287# CONFIG_IPV6_ROUTER_PREF is not set
@@ -331,10 +330,12 @@ CONFIG_NF_CONNTRACK=m
331# CONFIG_NF_CONNTRACK_TFTP is not set 330# CONFIG_NF_CONNTRACK_TFTP is not set
332# CONFIG_NF_CT_NETLINK is not set 331# CONFIG_NF_CT_NETLINK is not set
333# CONFIG_NETFILTER_XTABLES is not set 332# CONFIG_NETFILTER_XTABLES is not set
333# CONFIG_IP_VS is not set
334 334
335# 335#
336# IP: Netfilter Configuration 336# IP: Netfilter Configuration
337# 337#
338# CONFIG_NF_DEFRAG_IPV4 is not set
338# CONFIG_NF_CONNTRACK_IPV4 is not set 339# CONFIG_NF_CONNTRACK_IPV4 is not set
339# CONFIG_IP_NF_QUEUE is not set 340# CONFIG_IP_NF_QUEUE is not set
340# CONFIG_IP_NF_IPTABLES is not set 341# CONFIG_IP_NF_IPTABLES is not set
@@ -374,6 +375,7 @@ CONFIG_NET_SCH_CBQ=m
374# CONFIG_NET_SCH_HTB is not set 375# CONFIG_NET_SCH_HTB is not set
375# CONFIG_NET_SCH_HFSC is not set 376# CONFIG_NET_SCH_HFSC is not set
376CONFIG_NET_SCH_PRIO=m 377CONFIG_NET_SCH_PRIO=m
378CONFIG_NET_SCH_MULTIQ=y
377CONFIG_NET_SCH_RED=m 379CONFIG_NET_SCH_RED=m
378CONFIG_NET_SCH_SFQ=m 380CONFIG_NET_SCH_SFQ=m
379CONFIG_NET_SCH_TEQL=m 381CONFIG_NET_SCH_TEQL=m
@@ -406,6 +408,7 @@ CONFIG_NET_ACT_POLICE=y
406CONFIG_NET_ACT_NAT=m 408CONFIG_NET_ACT_NAT=m
407# CONFIG_NET_ACT_PEDIT is not set 409# CONFIG_NET_ACT_PEDIT is not set
408# CONFIG_NET_ACT_SIMP is not set 410# CONFIG_NET_ACT_SIMP is not set
411# CONFIG_NET_ACT_SKBEDIT is not set
409# CONFIG_NET_CLS_IND is not set 412# CONFIG_NET_CLS_IND is not set
410CONFIG_NET_SCH_FIFO=y 413CONFIG_NET_SCH_FIFO=y
411 414
@@ -424,6 +427,7 @@ CONFIG_CAN_BCM=m
424CONFIG_CAN_VCAN=m 427CONFIG_CAN_VCAN=m
425# CONFIG_CAN_DEBUG_DEVICES is not set 428# CONFIG_CAN_DEBUG_DEVICES is not set
426# CONFIG_AF_RXRPC is not set 429# CONFIG_AF_RXRPC is not set
430# CONFIG_PHONET is not set
427# CONFIG_RFKILL is not set 431# CONFIG_RFKILL is not set
428# CONFIG_NET_9P is not set 432# CONFIG_NET_9P is not set
429# CONFIG_PCMCIA is not set 433# CONFIG_PCMCIA is not set
@@ -473,7 +477,7 @@ CONFIG_VIRTIO_BLK=m
473CONFIG_MISC_DEVICES=y 477CONFIG_MISC_DEVICES=y
474# CONFIG_EEPROM_93CX6 is not set 478# CONFIG_EEPROM_93CX6 is not set
475# CONFIG_ENCLOSURE_SERVICES is not set 479# CONFIG_ENCLOSURE_SERVICES is not set
476# CONFIG_HAVE_IDE is not set 480# CONFIG_C2PORT is not set
477 481
478# 482#
479# SCSI device support 483# SCSI device support
@@ -525,6 +529,7 @@ CONFIG_SCSI_DH_EMC=m
525CONFIG_SCSI_DH_ALUA=m 529CONFIG_SCSI_DH_ALUA=m
526CONFIG_MD=y 530CONFIG_MD=y
527CONFIG_BLK_DEV_MD=y 531CONFIG_BLK_DEV_MD=y
532CONFIG_MD_AUTODETECT=y
528CONFIG_MD_LINEAR=m 533CONFIG_MD_LINEAR=m
529CONFIG_MD_RAID0=m 534CONFIG_MD_RAID0=m
530CONFIG_MD_RAID1=m 535CONFIG_MD_RAID1=m
@@ -555,6 +560,9 @@ CONFIG_NET_ETHERNET=y
555# CONFIG_IBM_NEW_EMAC_RGMII is not set 560# CONFIG_IBM_NEW_EMAC_RGMII is not set
556# CONFIG_IBM_NEW_EMAC_TAH is not set 561# CONFIG_IBM_NEW_EMAC_TAH is not set
557# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 562# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
563# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
564# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
565# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
558CONFIG_NETDEV_1000=y 566CONFIG_NETDEV_1000=y
559CONFIG_NETDEV_10000=y 567CONFIG_NETDEV_10000=y
560# CONFIG_TR is not set 568# CONFIG_TR is not set
@@ -632,13 +640,12 @@ CONFIG_S390_VMUR=m
632# CONFIG_THERMAL is not set 640# CONFIG_THERMAL is not set
633# CONFIG_THERMAL_HWMON is not set 641# CONFIG_THERMAL_HWMON is not set
634# CONFIG_WATCHDOG is not set 642# CONFIG_WATCHDOG is not set
635 643# CONFIG_REGULATOR is not set
636#
637# Sonics Silicon Backplane
638#
639# CONFIG_MEMSTICK is not set 644# CONFIG_MEMSTICK is not set
640# CONFIG_NEW_LEDS is not set 645# CONFIG_NEW_LEDS is not set
641CONFIG_ACCESSIBILITY=y 646CONFIG_ACCESSIBILITY=y
647# CONFIG_STAGING is not set
648CONFIG_STAGING_EXCLUDE_BUILD=y
642 649
643# 650#
644# File systems 651# File systems
@@ -650,13 +657,14 @@ CONFIG_EXT3_FS=y
650CONFIG_EXT3_FS_XATTR=y 657CONFIG_EXT3_FS_XATTR=y
651# CONFIG_EXT3_FS_POSIX_ACL is not set 658# CONFIG_EXT3_FS_POSIX_ACL is not set
652# CONFIG_EXT3_FS_SECURITY is not set 659# CONFIG_EXT3_FS_SECURITY is not set
653# CONFIG_EXT4DEV_FS is not set 660# CONFIG_EXT4_FS is not set
654CONFIG_JBD=y 661CONFIG_JBD=y
655# CONFIG_JBD_DEBUG is not set 662# CONFIG_JBD_DEBUG is not set
656CONFIG_FS_MBCACHE=y 663CONFIG_FS_MBCACHE=y
657# CONFIG_REISERFS_FS is not set 664# CONFIG_REISERFS_FS is not set
658# CONFIG_JFS_FS is not set 665# CONFIG_JFS_FS is not set
659CONFIG_FS_POSIX_ACL=y 666CONFIG_FS_POSIX_ACL=y
667CONFIG_FILE_LOCKING=y
660# CONFIG_XFS_FS is not set 668# CONFIG_XFS_FS is not set
661# CONFIG_GFS2_FS is not set 669# CONFIG_GFS2_FS is not set
662# CONFIG_OCFS2_FS is not set 670# CONFIG_OCFS2_FS is not set
@@ -688,6 +696,7 @@ CONFIG_GENERIC_ACL=y
688CONFIG_PROC_FS=y 696CONFIG_PROC_FS=y
689CONFIG_PROC_KCORE=y 697CONFIG_PROC_KCORE=y
690CONFIG_PROC_SYSCTL=y 698CONFIG_PROC_SYSCTL=y
699CONFIG_PROC_PAGE_MONITOR=y
691CONFIG_SYSFS=y 700CONFIG_SYSFS=y
692CONFIG_TMPFS=y 701CONFIG_TMPFS=y
693CONFIG_TMPFS_POSIX_ACL=y 702CONFIG_TMPFS_POSIX_ACL=y
@@ -728,6 +737,7 @@ CONFIG_LOCKD_V4=y
728CONFIG_EXPORTFS=y 737CONFIG_EXPORTFS=y
729CONFIG_NFS_COMMON=y 738CONFIG_NFS_COMMON=y
730CONFIG_SUNRPC=y 739CONFIG_SUNRPC=y
740# CONFIG_SUNRPC_REGISTER_V4 is not set
731# CONFIG_RPCSEC_GSS_KRB5 is not set 741# CONFIG_RPCSEC_GSS_KRB5 is not set
732# CONFIG_RPCSEC_GSS_SPKM3 is not set 742# CONFIG_RPCSEC_GSS_SPKM3 is not set
733# CONFIG_SMB_FS is not set 743# CONFIG_SMB_FS is not set
@@ -800,12 +810,24 @@ CONFIG_DEBUG_MEMORY_INIT=y
800# CONFIG_DEBUG_SG is not set 810# CONFIG_DEBUG_SG is not set
801# CONFIG_FRAME_POINTER is not set 811# CONFIG_FRAME_POINTER is not set
802# CONFIG_RCU_TORTURE_TEST is not set 812# CONFIG_RCU_TORTURE_TEST is not set
813# CONFIG_RCU_CPU_STALL_DETECTOR is not set
803# CONFIG_KPROBES_SANITY_TEST is not set 814# CONFIG_KPROBES_SANITY_TEST is not set
804# CONFIG_BACKTRACE_SELF_TEST is not set 815# CONFIG_BACKTRACE_SELF_TEST is not set
816# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
805# CONFIG_LKDTM is not set 817# CONFIG_LKDTM is not set
806# CONFIG_FAULT_INJECTION is not set 818# CONFIG_FAULT_INJECTION is not set
807# CONFIG_LATENCYTOP is not set 819# CONFIG_LATENCYTOP is not set
808CONFIG_SYSCTL_SYSCALL_CHECK=y 820CONFIG_SYSCTL_SYSCALL_CHECK=y
821
822#
823# Tracers
824#
825# CONFIG_IRQSOFF_TRACER is not set
826# CONFIG_PREEMPT_TRACER is not set
827# CONFIG_SCHED_TRACER is not set
828# CONFIG_CONTEXT_SWITCH_TRACER is not set
829# CONFIG_BOOT_TRACER is not set
830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
809CONFIG_SAMPLES=y 831CONFIG_SAMPLES=y
810# CONFIG_SAMPLE_KOBJECT is not set 832# CONFIG_SAMPLE_KOBJECT is not set
811# CONFIG_SAMPLE_KPROBES is not set 833# CONFIG_SAMPLE_KPROBES is not set
@@ -816,16 +838,19 @@ CONFIG_SAMPLES=y
816# 838#
817# CONFIG_KEYS is not set 839# CONFIG_KEYS is not set
818# CONFIG_SECURITY is not set 840# CONFIG_SECURITY is not set
841# CONFIG_SECURITYFS is not set
819# CONFIG_SECURITY_FILE_CAPABILITIES is not set 842# CONFIG_SECURITY_FILE_CAPABILITIES is not set
820CONFIG_CRYPTO=y 843CONFIG_CRYPTO=y
821 844
822# 845#
823# Crypto core or helper 846# Crypto core or helper
824# 847#
848CONFIG_CRYPTO_FIPS=y
825CONFIG_CRYPTO_ALGAPI=y 849CONFIG_CRYPTO_ALGAPI=y
826CONFIG_CRYPTO_AEAD=m 850CONFIG_CRYPTO_AEAD=y
827CONFIG_CRYPTO_BLKCIPHER=y 851CONFIG_CRYPTO_BLKCIPHER=y
828CONFIG_CRYPTO_HASH=m 852CONFIG_CRYPTO_HASH=y
853CONFIG_CRYPTO_RNG=y
829CONFIG_CRYPTO_MANAGER=y 854CONFIG_CRYPTO_MANAGER=y
830CONFIG_CRYPTO_GF128MUL=m 855CONFIG_CRYPTO_GF128MUL=m
831# CONFIG_CRYPTO_NULL is not set 856# CONFIG_CRYPTO_NULL is not set
@@ -877,7 +902,7 @@ CONFIG_CRYPTO_SHA1=m
877# 902#
878# Ciphers 903# Ciphers
879# 904#
880# CONFIG_CRYPTO_AES is not set 905CONFIG_CRYPTO_AES=m
881# CONFIG_CRYPTO_ANUBIS is not set 906# CONFIG_CRYPTO_ANUBIS is not set
882# CONFIG_CRYPTO_ARC4 is not set 907# CONFIG_CRYPTO_ARC4 is not set
883# CONFIG_CRYPTO_BLOWFISH is not set 908# CONFIG_CRYPTO_BLOWFISH is not set
@@ -898,6 +923,11 @@ CONFIG_CRYPTO_SEED=m
898# 923#
899# CONFIG_CRYPTO_DEFLATE is not set 924# CONFIG_CRYPTO_DEFLATE is not set
900CONFIG_CRYPTO_LZO=m 925CONFIG_CRYPTO_LZO=m
926
927#
928# Random Number Generation
929#
930CONFIG_CRYPTO_ANSI_CPRNG=m
901CONFIG_CRYPTO_HW=y 931CONFIG_CRYPTO_HW=y
902CONFIG_ZCRYPT=m 932CONFIG_ZCRYPT=m
903# CONFIG_ZCRYPT_MONOLITHIC is not set 933# CONFIG_ZCRYPT_MONOLITHIC is not set
@@ -912,8 +942,6 @@ CONFIG_S390_PRNG=m
912# Library routines 942# Library routines
913# 943#
914CONFIG_BITREVERSE=m 944CONFIG_BITREVERSE=m
915# CONFIG_GENERIC_FIND_FIRST_BIT is not set
916# CONFIG_GENERIC_FIND_NEXT_BIT is not set
917# CONFIG_CRC_CCITT is not set 945# CONFIG_CRC_CCITT is not set
918# CONFIG_CRC16 is not set 946# CONFIG_CRC16 is not set
919CONFIG_CRC_T10DIF=y 947CONFIG_CRC_T10DIF=y
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h
index 7fc76133b3e4..5caddd4f7bed 100644
--- a/arch/s390/include/asm/pgtable.h
+++ b/arch/s390/include/asm/pgtable.h
@@ -679,8 +679,6 @@ static inline void pmd_clear(pmd_t *pmd)
679 679
680static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) 680static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
681{ 681{
682 if (mm->context.has_pgste)
683 ptep_rcp_copy(ptep);
684 pte_val(*ptep) = _PAGE_TYPE_EMPTY; 682 pte_val(*ptep) = _PAGE_TYPE_EMPTY;
685 if (mm->context.noexec) 683 if (mm->context.noexec)
686 pte_val(ptep[PTRS_PER_PTE]) = _PAGE_TYPE_EMPTY; 684 pte_val(ptep[PTRS_PER_PTE]) = _PAGE_TYPE_EMPTY;
diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h
index a7226f8143fb..5396f9f12263 100644
--- a/arch/s390/include/asm/ptrace.h
+++ b/arch/s390/include/asm/ptrace.h
@@ -321,8 +321,8 @@ struct pt_regs
321 psw_t psw; 321 psw_t psw;
322 unsigned long gprs[NUM_GPRS]; 322 unsigned long gprs[NUM_GPRS];
323 unsigned long orig_gpr2; 323 unsigned long orig_gpr2;
324 unsigned short svcnr;
324 unsigned short ilc; 325 unsigned short ilc;
325 unsigned short trap;
326}; 326};
327#endif 327#endif
328 328
@@ -486,8 +486,6 @@ struct task_struct;
486extern void user_enable_single_step(struct task_struct *); 486extern void user_enable_single_step(struct task_struct *);
487extern void user_disable_single_step(struct task_struct *); 487extern void user_disable_single_step(struct task_struct *);
488 488
489#define __ARCH_WANT_COMPAT_SYS_PTRACE
490
491#define user_mode(regs) (((regs)->psw.mask & PSW_MASK_PSTATE) != 0) 489#define user_mode(regs) (((regs)->psw.mask & PSW_MASK_PSTATE) != 0)
492#define instruction_pointer(regs) ((regs)->psw.addr & PSW_ADDR_INSN) 490#define instruction_pointer(regs) ((regs)->psw.addr & PSW_ADDR_INSN)
493#define user_stack_pointer(regs)((regs)->gprs[15]) 491#define user_stack_pointer(regs)((regs)->gprs[15])
diff --git a/arch/s390/include/asm/syscall.h b/arch/s390/include/asm/syscall.h
index 6e623971fbb9..2429b87eb28d 100644
--- a/arch/s390/include/asm/syscall.h
+++ b/arch/s390/include/asm/syscall.h
@@ -17,9 +17,7 @@
17static inline long syscall_get_nr(struct task_struct *task, 17static inline long syscall_get_nr(struct task_struct *task,
18 struct pt_regs *regs) 18 struct pt_regs *regs)
19{ 19{
20 if (regs->trap != __LC_SVC_OLD_PSW) 20 return regs->svcnr ? regs->svcnr : -1;
21 return -1;
22 return regs->gprs[2];
23} 21}
24 22
25static inline void syscall_rollback(struct task_struct *task, 23static inline void syscall_rollback(struct task_struct *task,
@@ -52,18 +50,20 @@ static inline void syscall_get_arguments(struct task_struct *task,
52 unsigned int i, unsigned int n, 50 unsigned int i, unsigned int n,
53 unsigned long *args) 51 unsigned long *args)
54{ 52{
53 unsigned long mask = -1UL;
54
55 BUG_ON(i + n > 6); 55 BUG_ON(i + n > 6);
56#ifdef CONFIG_COMPAT 56#ifdef CONFIG_COMPAT
57 if (test_tsk_thread_flag(task, TIF_31BIT)) { 57 if (test_tsk_thread_flag(task, TIF_31BIT))
58 if (i + n == 6) 58 mask = 0xffffffff;
59 args[--n] = (u32) regs->args[0];
60 while (n-- > 0)
61 args[n] = (u32) regs->gprs[2 + i + n];
62 }
63#endif 59#endif
64 if (i + n == 6) 60 if (i + n == 6)
65 args[--n] = regs->args[0]; 61 args[--n] = regs->args[0] & mask;
66 memcpy(args, &regs->gprs[2 + i], n * sizeof(args[0])); 62 while (n-- > 0)
63 if (i + n > 0)
64 args[n] = regs->gprs[2 + i + n] & mask;
65 if (i == 0)
66 args[0] = regs->orig_gpr2 & mask;
67} 67}
68 68
69static inline void syscall_set_arguments(struct task_struct *task, 69static inline void syscall_set_arguments(struct task_struct *task,
@@ -74,7 +74,11 @@ static inline void syscall_set_arguments(struct task_struct *task,
74 BUG_ON(i + n > 6); 74 BUG_ON(i + n > 6);
75 if (i + n == 6) 75 if (i + n == 6)
76 regs->args[0] = args[--n]; 76 regs->args[0] = args[--n];
77 memcpy(&regs->gprs[2 + i], args, n * sizeof(args[0])); 77 while (n-- > 0)
78 if (i + n > 0)
79 regs->gprs[2 + i + n] = args[n];
80 if (i == 0)
81 regs->orig_gpr2 = args[0];
78} 82}
79 83
80#endif /* _ASM_SYSCALL_H */ 84#endif /* _ASM_SYSCALL_H */
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index fa28ecae636b..3d144e6020c6 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -32,7 +32,7 @@ int main(void)
32 DEFINE(__PT_GPRS, offsetof(struct pt_regs, gprs)); 32 DEFINE(__PT_GPRS, offsetof(struct pt_regs, gprs));
33 DEFINE(__PT_ORIG_GPR2, offsetof(struct pt_regs, orig_gpr2)); 33 DEFINE(__PT_ORIG_GPR2, offsetof(struct pt_regs, orig_gpr2));
34 DEFINE(__PT_ILC, offsetof(struct pt_regs, ilc)); 34 DEFINE(__PT_ILC, offsetof(struct pt_regs, ilc));
35 DEFINE(__PT_TRAP, offsetof(struct pt_regs, trap)); 35 DEFINE(__PT_SVCNR, offsetof(struct pt_regs, svcnr));
36 DEFINE(__PT_SIZE, sizeof(struct pt_regs)); 36 DEFINE(__PT_SIZE, sizeof(struct pt_regs));
37 BLANK(); 37 BLANK();
38 DEFINE(__SF_BACKCHAIN, offsetof(struct stack_frame, back_chain)); 38 DEFINE(__SF_BACKCHAIN, offsetof(struct stack_frame, back_chain));
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index c7f02e777af2..b537cb0e9b55 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -340,7 +340,7 @@ static int restore_sigregs32(struct pt_regs *regs,_sigregs32 __user *sregs)
340 return err; 340 return err;
341 341
342 restore_fp_regs(&current->thread.fp_regs); 342 restore_fp_regs(&current->thread.fp_regs);
343 regs->trap = -1; /* disable syscall checks */ 343 regs->svcnr = 0; /* disable syscall checks */
344 return 0; 344 return 0;
345} 345}
346 346
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index 08844fc24a2e..198ea18a534d 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -46,7 +46,7 @@ SP_R14 = STACK_FRAME_OVERHEAD + __PT_GPRS + 56
46SP_R15 = STACK_FRAME_OVERHEAD + __PT_GPRS + 60 46SP_R15 = STACK_FRAME_OVERHEAD + __PT_GPRS + 60
47SP_ORIG_R2 = STACK_FRAME_OVERHEAD + __PT_ORIG_GPR2 47SP_ORIG_R2 = STACK_FRAME_OVERHEAD + __PT_ORIG_GPR2
48SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC 48SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC
49SP_TRAP = STACK_FRAME_OVERHEAD + __PT_TRAP 49SP_SVCNR = STACK_FRAME_OVERHEAD + __PT_SVCNR
50SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE 50SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE
51 51
52_TIF_WORK_SVC = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \ 52_TIF_WORK_SVC = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \
@@ -183,11 +183,10 @@ STACK_SIZE = 1 << STACK_SHIFT
183 .macro CREATE_STACK_FRAME psworg,savearea 183 .macro CREATE_STACK_FRAME psworg,savearea
184 s %r15,BASED(.Lc_spsize) # make room for registers & psw 184 s %r15,BASED(.Lc_spsize) # make room for registers & psw
185 mvc SP_PSW(8,%r15),0(%r12) # move user PSW to stack 185 mvc SP_PSW(8,%r15),0(%r12) # move user PSW to stack
186 la %r12,\psworg
187 st %r2,SP_ORIG_R2(%r15) # store original content of gpr 2 186 st %r2,SP_ORIG_R2(%r15) # store original content of gpr 2
188 icm %r12,12,__LC_SVC_ILC 187 icm %r12,3,__LC_SVC_ILC
189 stm %r0,%r11,SP_R0(%r15) # store gprs %r0-%r11 to kernel stack 188 stm %r0,%r11,SP_R0(%r15) # store gprs %r0-%r11 to kernel stack
190 st %r12,SP_ILC(%r15) 189 st %r12,SP_SVCNR(%r15)
191 mvc SP_R12(16,%r15),\savearea # move %r12-%r15 to stack 190 mvc SP_R12(16,%r15),\savearea # move %r12-%r15 to stack
192 la %r12,0 191 la %r12,0
193 st %r12,__SF_BACKCHAIN(%r15) # clear back chain 192 st %r12,__SF_BACKCHAIN(%r15) # clear back chain
@@ -264,16 +263,17 @@ sysc_update:
264#endif 263#endif
265sysc_do_svc: 264sysc_do_svc:
266 l %r9,__LC_THREAD_INFO # load pointer to thread_info struct 265 l %r9,__LC_THREAD_INFO # load pointer to thread_info struct
267 sla %r7,2 # *4 and test for svc 0 266 ltr %r7,%r7 # test for svc 0
268 bnz BASED(sysc_nr_ok) # svc number > 0 267 bnz BASED(sysc_nr_ok) # svc number > 0
269 # svc 0: system call number in %r1 268 # svc 0: system call number in %r1
270 cl %r1,BASED(.Lnr_syscalls) 269 cl %r1,BASED(.Lnr_syscalls)
271 bnl BASED(sysc_nr_ok) 270 bnl BASED(sysc_nr_ok)
272 lr %r7,%r1 # copy svc number to %r7 271 lr %r7,%r1 # copy svc number to %r7
273 sla %r7,2 # *4
274sysc_nr_ok: 272sysc_nr_ok:
275 mvc SP_ARGS(4,%r15),SP_R7(%r15) 273 mvc SP_ARGS(4,%r15),SP_R7(%r15)
276sysc_do_restart: 274sysc_do_restart:
275 sth %r7,SP_SVCNR(%r15)
276 sll %r7,2 # svc number *4
277 l %r8,BASED(.Lsysc_table) 277 l %r8,BASED(.Lsysc_table)
278 tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT) 278 tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)
279 l %r8,0(%r7,%r8) # get system call addr. 279 l %r8,0(%r7,%r8) # get system call addr.
@@ -376,7 +376,6 @@ sysc_notify_resume:
376sysc_restart: 376sysc_restart:
377 ni __TI_flags+3(%r9),255-_TIF_RESTART_SVC # clear TIF_RESTART_SVC 377 ni __TI_flags+3(%r9),255-_TIF_RESTART_SVC # clear TIF_RESTART_SVC
378 l %r7,SP_R2(%r15) # load new svc number 378 l %r7,SP_R2(%r15) # load new svc number
379 sla %r7,2
380 mvc SP_R2(4,%r15),SP_ORIG_R2(%r15) # restore first argument 379 mvc SP_R2(4,%r15),SP_ORIG_R2(%r15) # restore first argument
381 lm %r2,%r6,SP_R2(%r15) # load svc arguments 380 lm %r2,%r6,SP_R2(%r15) # load svc arguments
382 b BASED(sysc_do_restart) # restart svc 381 b BASED(sysc_do_restart) # restart svc
@@ -386,7 +385,8 @@ sysc_restart:
386# 385#
387sysc_singlestep: 386sysc_singlestep:
388 ni __TI_flags+3(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP 387 ni __TI_flags+3(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP
389 mvi SP_TRAP+1(%r15),0x28 # set trap indication to pgm check 388 mvi SP_SVCNR(%r15),0xff # set trap indication to pgm check
389 mvi SP_SVCNR+1(%r15),0xff
390 la %r2,SP_PTREGS(%r15) # address of register-save area 390 la %r2,SP_PTREGS(%r15) # address of register-save area
391 l %r1,BASED(.Lhandle_per) # load adr. of per handler 391 l %r1,BASED(.Lhandle_per) # load adr. of per handler
392 la %r14,BASED(sysc_return) # load adr. of system return 392 la %r14,BASED(sysc_return) # load adr. of system return
@@ -407,7 +407,7 @@ sysc_tracesys:
407 bnl BASED(sysc_tracenogo) 407 bnl BASED(sysc_tracenogo)
408 l %r8,BASED(.Lsysc_table) 408 l %r8,BASED(.Lsysc_table)
409 lr %r7,%r2 409 lr %r7,%r2
410 sll %r7,2 # *4 410 sll %r7,2 # svc number *4
411 l %r8,0(%r7,%r8) 411 l %r8,0(%r7,%r8)
412sysc_tracego: 412sysc_tracego:
413 lm %r3,%r6,SP_R3(%r15) 413 lm %r3,%r6,SP_R3(%r15)
@@ -586,7 +586,8 @@ pgm_svcper:
586# per was called from kernel, must be kprobes 586# per was called from kernel, must be kprobes
587# 587#
588kernel_per: 588kernel_per:
589 mvi SP_TRAP+1(%r15),0x28 # set trap indication to pgm check 589 mvi SP_SVCNR(%r15),0xff # set trap indication to pgm check
590 mvi SP_SVCNR+1(%r15),0xff
590 la %r2,SP_PTREGS(%r15) # address of register-save area 591 la %r2,SP_PTREGS(%r15) # address of register-save area
591 l %r1,BASED(.Lhandle_per) # load adr. of per handler 592 l %r1,BASED(.Lhandle_per) # load adr. of per handler
592 la %r14,BASED(sysc_restore)# load adr. of system return 593 la %r14,BASED(sysc_restore)# load adr. of system return
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index 41aca06682aa..89c121ae6339 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -46,7 +46,7 @@ SP_R14 = STACK_FRAME_OVERHEAD + __PT_GPRS + 112
46SP_R15 = STACK_FRAME_OVERHEAD + __PT_GPRS + 120 46SP_R15 = STACK_FRAME_OVERHEAD + __PT_GPRS + 120
47SP_ORIG_R2 = STACK_FRAME_OVERHEAD + __PT_ORIG_GPR2 47SP_ORIG_R2 = STACK_FRAME_OVERHEAD + __PT_ORIG_GPR2
48SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC 48SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC
49SP_TRAP = STACK_FRAME_OVERHEAD + __PT_TRAP 49SP_SVCNR = STACK_FRAME_OVERHEAD + __PT_SVCNR
50SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE 50SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE
51 51
52STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER 52STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER
@@ -171,11 +171,10 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \
171 .macro CREATE_STACK_FRAME psworg,savearea 171 .macro CREATE_STACK_FRAME psworg,savearea
172 aghi %r15,-SP_SIZE # make room for registers & psw 172 aghi %r15,-SP_SIZE # make room for registers & psw
173 mvc SP_PSW(16,%r15),0(%r12) # move user PSW to stack 173 mvc SP_PSW(16,%r15),0(%r12) # move user PSW to stack
174 la %r12,\psworg
175 stg %r2,SP_ORIG_R2(%r15) # store original content of gpr 2 174 stg %r2,SP_ORIG_R2(%r15) # store original content of gpr 2
176 icm %r12,12,__LC_SVC_ILC 175 icm %r12,3,__LC_SVC_ILC
177 stmg %r0,%r11,SP_R0(%r15) # store gprs %r0-%r11 to kernel stack 176 stmg %r0,%r11,SP_R0(%r15) # store gprs %r0-%r11 to kernel stack
178 st %r12,SP_ILC(%r15) 177 st %r12,SP_SVCNR(%r15)
179 mvc SP_R12(32,%r15),\savearea # move %r12-%r15 to stack 178 mvc SP_R12(32,%r15),\savearea # move %r12-%r15 to stack
180 la %r12,0 179 la %r12,0
181 stg %r12,__SF_BACKCHAIN(%r15) 180 stg %r12,__SF_BACKCHAIN(%r15)
@@ -250,16 +249,17 @@ sysc_update:
250#endif 249#endif
251sysc_do_svc: 250sysc_do_svc:
252 lg %r9,__LC_THREAD_INFO # load pointer to thread_info struct 251 lg %r9,__LC_THREAD_INFO # load pointer to thread_info struct
253 slag %r7,%r7,2 # *4 and test for svc 0 252 ltgr %r7,%r7 # test for svc 0
254 jnz sysc_nr_ok 253 jnz sysc_nr_ok
255 # svc 0: system call number in %r1 254 # svc 0: system call number in %r1
256 cl %r1,BASED(.Lnr_syscalls) 255 cl %r1,BASED(.Lnr_syscalls)
257 jnl sysc_nr_ok 256 jnl sysc_nr_ok
258 lgfr %r7,%r1 # clear high word in r1 257 lgfr %r7,%r1 # clear high word in r1
259 slag %r7,%r7,2 # svc 0: system call number in %r1
260sysc_nr_ok: 258sysc_nr_ok:
261 mvc SP_ARGS(8,%r15),SP_R7(%r15) 259 mvc SP_ARGS(8,%r15),SP_R7(%r15)
262sysc_do_restart: 260sysc_do_restart:
261 sth %r7,SP_SVCNR(%r15)
262 sllg %r7,%r7,2 # svc number * 4
263 larl %r10,sys_call_table 263 larl %r10,sys_call_table
264#ifdef CONFIG_COMPAT 264#ifdef CONFIG_COMPAT
265 tm __TI_flags+5(%r9),(_TIF_31BIT>>16) # running in 31 bit mode ? 265 tm __TI_flags+5(%r9),(_TIF_31BIT>>16) # running in 31 bit mode ?
@@ -363,7 +363,6 @@ sysc_notify_resume:
363sysc_restart: 363sysc_restart:
364 ni __TI_flags+7(%r9),255-_TIF_RESTART_SVC # clear TIF_RESTART_SVC 364 ni __TI_flags+7(%r9),255-_TIF_RESTART_SVC # clear TIF_RESTART_SVC
365 lg %r7,SP_R2(%r15) # load new svc number 365 lg %r7,SP_R2(%r15) # load new svc number
366 slag %r7,%r7,2 # *4
367 mvc SP_R2(8,%r15),SP_ORIG_R2(%r15) # restore first argument 366 mvc SP_R2(8,%r15),SP_ORIG_R2(%r15) # restore first argument
368 lmg %r2,%r6,SP_R2(%r15) # load svc arguments 367 lmg %r2,%r6,SP_R2(%r15) # load svc arguments
369 j sysc_do_restart # restart svc 368 j sysc_do_restart # restart svc
@@ -372,9 +371,8 @@ sysc_restart:
372# _TIF_SINGLE_STEP is set, call do_single_step 371# _TIF_SINGLE_STEP is set, call do_single_step
373# 372#
374sysc_singlestep: 373sysc_singlestep:
375 ni __TI_flags+7(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP 374 ni __TI_flags+7(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP
376 lhi %r0,__LC_PGM_OLD_PSW 375 xc SP_SVCNR(2,%r15),SP_SVCNR(%r15) # clear svc number
377 sth %r0,SP_TRAP(%r15) # set trap indication to pgm check
378 la %r2,SP_PTREGS(%r15) # address of register-save area 376 la %r2,SP_PTREGS(%r15) # address of register-save area
379 larl %r14,sysc_return # load adr. of system return 377 larl %r14,sysc_return # load adr. of system return
380 jg do_single_step # branch to do_sigtrap 378 jg do_single_step # branch to do_sigtrap
@@ -392,7 +390,7 @@ sysc_tracesys:
392 lghi %r0,NR_syscalls 390 lghi %r0,NR_syscalls
393 clgr %r0,%r2 391 clgr %r0,%r2
394 jnh sysc_tracenogo 392 jnh sysc_tracenogo
395 slag %r7,%r2,2 # *4 393 sllg %r7,%r2,2 # svc number *4
396 lgf %r8,0(%r7,%r10) 394 lgf %r8,0(%r7,%r10)
397sysc_tracego: 395sysc_tracego:
398 lmg %r3,%r6,SP_R3(%r15) 396 lmg %r3,%r6,SP_R3(%r15)
@@ -567,8 +565,7 @@ pgm_svcper:
567# per was called from kernel, must be kprobes 565# per was called from kernel, must be kprobes
568# 566#
569kernel_per: 567kernel_per:
570 lhi %r0,__LC_PGM_OLD_PSW 568 xc SP_SVCNR(2,%r15),SP_SVCNR(%r15) # clear svc number
571 sth %r0,SP_TRAP(%r15) # set trap indication to pgm check
572 la %r2,SP_PTREGS(%r15) # address of register-save area 569 la %r2,SP_PTREGS(%r15) # address of register-save area
573 larl %r14,sysc_restore # load adr. of system ret, no work 570 larl %r14,sysc_restore # load adr. of system ret, no work
574 jg do_single_step # branch to do_single_step 571 jg do_single_step # branch to do_single_step
diff --git a/arch/s390/kernel/init_task.c b/arch/s390/kernel/init_task.c
index 7ad003969251..e80716843619 100644
--- a/arch/s390/kernel/init_task.c
+++ b/arch/s390/kernel/init_task.c
@@ -26,7 +26,7 @@ EXPORT_SYMBOL(init_mm);
26/* 26/*
27 * Initial thread structure. 27 * Initial thread structure.
28 * 28 *
29 * We need to make sure that this is 8192-byte aligned due to the 29 * We need to make sure that this is THREAD_SIZE aligned due to the
30 * way process stacks are handled. This is done by having a special 30 * way process stacks are handled. This is done by having a special
31 * "init_task" linker map entry.. 31 * "init_task" linker map entry..
32 */ 32 */
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
index 1f31be1ecc4b..38ff2bce1203 100644
--- a/arch/s390/kernel/ptrace.c
+++ b/arch/s390/kernel/ptrace.c
@@ -657,7 +657,7 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
657 * debugger stored an invalid system call number. Skip 657 * debugger stored an invalid system call number. Skip
658 * the system call and the system call restart handling. 658 * the system call and the system call restart handling.
659 */ 659 */
660 regs->trap = -1; 660 regs->svcnr = 0;
661 ret = -1; 661 ret = -1;
662 } 662 }
663 663
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
index 4f7fc3059a8e..8e6812a22670 100644
--- a/arch/s390/kernel/signal.c
+++ b/arch/s390/kernel/signal.c
@@ -160,7 +160,7 @@ static int restore_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
160 current->thread.fp_regs.fpc &= FPC_VALID_MASK; 160 current->thread.fp_regs.fpc &= FPC_VALID_MASK;
161 161
162 restore_fp_regs(&current->thread.fp_regs); 162 restore_fp_regs(&current->thread.fp_regs);
163 regs->trap = -1; /* disable syscall checks */ 163 regs->svcnr = 0; /* disable syscall checks */
164 return 0; 164 return 0;
165} 165}
166 166
@@ -445,7 +445,7 @@ void do_signal(struct pt_regs *regs)
445 oldset = &current->blocked; 445 oldset = &current->blocked;
446 446
447 /* Are we from a system call? */ 447 /* Are we from a system call? */
448 if (regs->trap == __LC_SVC_OLD_PSW) { 448 if (regs->svcnr) {
449 continue_addr = regs->psw.addr; 449 continue_addr = regs->psw.addr;
450 restart_addr = continue_addr - regs->ilc; 450 restart_addr = continue_addr - regs->ilc;
451 retval = regs->gprs[2]; 451 retval = regs->gprs[2];
@@ -462,7 +462,7 @@ void do_signal(struct pt_regs *regs)
462 case -ERESTART_RESTARTBLOCK: 462 case -ERESTART_RESTARTBLOCK:
463 regs->gprs[2] = -EINTR; 463 regs->gprs[2] = -EINTR;
464 } 464 }
465 regs->trap = -1; /* Don't deal with this again. */ 465 regs->svcnr = 0; /* Don't deal with this again. */
466 } 466 }
467 467
468 /* Get signal to deliver. When running under ptrace, at this point 468 /* Get signal to deliver. When running under ptrace, at this point
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index b94e9e3b694a..eccefbbff887 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -59,7 +59,7 @@
59 59
60static ext_int_info_t ext_int_info_cc; 60static ext_int_info_t ext_int_info_cc;
61static ext_int_info_t ext_int_etr_cc; 61static ext_int_info_t ext_int_etr_cc;
62static u64 jiffies_timer_cc; 62static u64 sched_clock_base_cc;
63 63
64static DEFINE_PER_CPU(struct clock_event_device, comparators); 64static DEFINE_PER_CPU(struct clock_event_device, comparators);
65 65
@@ -68,7 +68,7 @@ static DEFINE_PER_CPU(struct clock_event_device, comparators);
68 */ 68 */
69unsigned long long sched_clock(void) 69unsigned long long sched_clock(void)
70{ 70{
71 return ((get_clock_xt() - jiffies_timer_cc) * 125) >> 9; 71 return ((get_clock_xt() - sched_clock_base_cc) * 125) >> 9;
72} 72}
73 73
74/* 74/*
@@ -229,13 +229,10 @@ static struct clocksource clocksource_tod = {
229 */ 229 */
230void __init time_init(void) 230void __init time_init(void)
231{ 231{
232 u64 init_timer_cc; 232 sched_clock_base_cc = reset_tod_clock();
233
234 init_timer_cc = reset_tod_clock();
235 jiffies_timer_cc = init_timer_cc - jiffies_64 * CLK_TICKS_PER_JIFFY;
236 233
237 /* set xtime */ 234 /* set xtime */
238 tod_to_timeval(init_timer_cc - TOD_UNIX_EPOCH, &xtime); 235 tod_to_timeval(sched_clock_base_cc - TOD_UNIX_EPOCH, &xtime);
239 set_normalized_timespec(&wall_to_monotonic, 236 set_normalized_timespec(&wall_to_monotonic,
240 -xtime.tv_sec, -xtime.tv_nsec); 237 -xtime.tv_sec, -xtime.tv_nsec);
241 238
@@ -289,7 +286,7 @@ static unsigned long long adjust_time(unsigned long long old,
289 delta = -delta; 286 delta = -delta;
290 adjust.offset = -ticks * (1000000 / HZ); 287 adjust.offset = -ticks * (1000000 / HZ);
291 } 288 }
292 jiffies_timer_cc += delta; 289 sched_clock_base_cc += delta;
293 if (adjust.offset != 0) { 290 if (adjust.offset != 0) {
294 printk(KERN_NOTICE "etr: time adjusted by %li micro-seconds\n", 291 printk(KERN_NOTICE "etr: time adjusted by %li micro-seconds\n",
295 adjust.offset); 292 adjust.offset);
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 607bd67a18ce..d796d05c9c01 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -2,6 +2,7 @@
2 * Written by Martin Schwidefsky (schwidefsky@de.ibm.com) 2 * Written by Martin Schwidefsky (schwidefsky@de.ibm.com)
3 */ 3 */
4 4
5#include <asm/thread_info.h>
5#include <asm/page.h> 6#include <asm/page.h>
6#include <asm-generic/vmlinux.lds.h> 7#include <asm-generic/vmlinux.lds.h>
7 8
@@ -86,7 +87,7 @@ SECTIONS
86 } 87 }
87 _edata = .; /* End of data section */ 88 _edata = .; /* End of data section */
88 89
89 . = ALIGN(2 * PAGE_SIZE); /* init_task */ 90 . = ALIGN(THREAD_SIZE); /* init_task */
90 .data.init_task : { 91 .data.init_task : {
91 *(.data.init_task) 92 *(.data.init_task)
92 } 93 }
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c
index 170392687ce0..2a01b9e02801 100644
--- a/arch/s390/kvm/sigp.c
+++ b/arch/s390/kvm/sigp.c
@@ -237,6 +237,11 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu)
237 u8 order_code; 237 u8 order_code;
238 int rc; 238 int rc;
239 239
240 /* sigp in userspace can exit */
241 if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE)
242 return kvm_s390_inject_program_int(vcpu,
243 PGM_PRIVILEGED_OPERATION);
244
240 order_code = disp2; 245 order_code = disp2;
241 if (base2) 246 if (base2)
242 order_code += vcpu->arch.guest_gprs[base2]; 247 order_code += vcpu->arch.guest_gprs[base2];
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 80119b3398e7..5c9cbfc14c4d 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -55,6 +55,8 @@ config GENERIC_HARDIRQS
55 55
56config GENERIC_HARDIRQS_NO__DO_IRQ 56config GENERIC_HARDIRQS_NO__DO_IRQ
57 def_bool y 57 def_bool y
58 depends on SUPERH32 && (!SH_DREAMCAST && !SH_SH4202_MICRODEV && \
59 !SH_7751_SYSTEMH && !HD64461)
58 60
59config GENERIC_IRQ_PROBE 61config GENERIC_IRQ_PROBE
60 def_bool y 62 def_bool y
diff --git a/arch/sparc/include/asm/bitops_32.h b/arch/sparc/include/asm/bitops_32.h
index 68b98a7e6454..9cf4ae0cd7ba 100644
--- a/arch/sparc/include/asm/bitops_32.h
+++ b/arch/sparc/include/asm/bitops_32.h
@@ -98,6 +98,7 @@ static inline void change_bit(unsigned long nr, volatile unsigned long *addr)
98#include <asm-generic/bitops/sched.h> 98#include <asm-generic/bitops/sched.h>
99#include <asm-generic/bitops/ffs.h> 99#include <asm-generic/bitops/ffs.h>
100#include <asm-generic/bitops/fls.h> 100#include <asm-generic/bitops/fls.h>
101#include <asm-generic/bitops/__fls.h>
101#include <asm-generic/bitops/fls64.h> 102#include <asm-generic/bitops/fls64.h>
102#include <asm-generic/bitops/hweight.h> 103#include <asm-generic/bitops/hweight.h>
103#include <asm-generic/bitops/lock.h> 104#include <asm-generic/bitops/lock.h>
diff --git a/arch/sparc/include/asm/ptrace_32.h b/arch/sparc/include/asm/ptrace_32.h
index d409c4f21a5c..4cef450167dd 100644
--- a/arch/sparc/include/asm/ptrace_32.h
+++ b/arch/sparc/include/asm/ptrace_32.h
@@ -62,6 +62,8 @@ struct sparc_stackf {
62 62
63#ifdef __KERNEL__ 63#ifdef __KERNEL__
64 64
65#include <asm/system.h>
66
65static inline bool pt_regs_is_syscall(struct pt_regs *regs) 67static inline bool pt_regs_is_syscall(struct pt_regs *regs)
66{ 68{
67 return (regs->psr & PSR_SYSCALL); 69 return (regs->psr & PSR_SYSCALL);
@@ -72,6 +74,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
72 return (regs->psr &= ~PSR_SYSCALL); 74 return (regs->psr &= ~PSR_SYSCALL);
73} 75}
74 76
77#define arch_ptrace_stop_needed(exit_code, info) \
78({ flush_user_windows(); \
79 current_thread_info()->w_saved != 0; \
80})
81
82#define arch_ptrace_stop(exit_code, info) \
83 synchronize_user_stack()
84
75#define user_mode(regs) (!((regs)->psr & PSR_PS)) 85#define user_mode(regs) (!((regs)->psr & PSR_PS))
76#define instruction_pointer(regs) ((regs)->pc) 86#define instruction_pointer(regs) ((regs)->pc)
77#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP]) 87#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP])
diff --git a/arch/sparc/include/asm/ptrace_64.h b/arch/sparc/include/asm/ptrace_64.h
index 3d3e9c161d8b..cd6fbfc20435 100644
--- a/arch/sparc/include/asm/ptrace_64.h
+++ b/arch/sparc/include/asm/ptrace_64.h
@@ -114,6 +114,7 @@ struct sparc_trapf {
114#ifdef __KERNEL__ 114#ifdef __KERNEL__
115 115
116#include <linux/threads.h> 116#include <linux/threads.h>
117#include <asm/system.h>
117 118
118static inline int pt_regs_trap_type(struct pt_regs *regs) 119static inline int pt_regs_trap_type(struct pt_regs *regs)
119{ 120{
@@ -130,6 +131,14 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
130 return (regs->tstate &= ~TSTATE_SYSCALL); 131 return (regs->tstate &= ~TSTATE_SYSCALL);
131} 132}
132 133
134#define arch_ptrace_stop_needed(exit_code, info) \
135({ flush_user_windows(); \
136 get_thread_wsaved() != 0; \
137})
138
139#define arch_ptrace_stop(exit_code, info) \
140 synchronize_user_stack()
141
133struct global_reg_snapshot { 142struct global_reg_snapshot {
134 unsigned long tstate; 143 unsigned long tstate;
135 unsigned long tpc; 144 unsigned long tpc;
@@ -142,8 +151,6 @@ struct global_reg_snapshot {
142}; 151};
143extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; 152extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS];
144 153
145#define __ARCH_WANT_COMPAT_SYS_PTRACE
146
147#define force_successful_syscall_return() \ 154#define force_successful_syscall_return() \
148do { current_thread_info()->syscall_noerror = 1; \ 155do { current_thread_info()->syscall_noerror = 1; \
149} while (0) 156} while (0)
diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c
index e7a0edfc1a32..1fc17f59c6bf 100644
--- a/arch/sparc/kernel/cpu.c
+++ b/arch/sparc/kernel/cpu.c
@@ -126,7 +126,7 @@ char *sparc_fpu_type;
126 126
127unsigned int fsr_storage; 127unsigned int fsr_storage;
128 128
129void __init cpu_probe(void) 129void __cpuinit cpu_probe(void)
130{ 130{
131 int psr_impl, psr_vers, fpu_vers; 131 int psr_impl, psr_vers, fpu_vers;
132 int i, psr; 132 int i, psr;
diff --git a/arch/sparc/kernel/head.S b/arch/sparc/kernel/head.S
index 2d325fd84579..51b40426f9c6 100644
--- a/arch/sparc/kernel/head.S
+++ b/arch/sparc/kernel/head.S
@@ -72,7 +72,7 @@ sun4e_notsup:
72 .align 4 72 .align 4
73 73
74 /* The Sparc trap table, bootloader gives us control at _start. */ 74 /* The Sparc trap table, bootloader gives us control at _start. */
75 .text 75 .section .text.head,"ax"
76 .globl start, _stext, _start, __stext 76 .globl start, _stext, _start, __stext
77 .globl trapbase 77 .globl trapbase
78_start: /* danger danger */ 78_start: /* danger danger */
diff --git a/arch/sparc/kernel/smp.c b/arch/sparc/kernel/smp.c
index 1619ec15c099..e396c1f17a92 100644
--- a/arch/sparc/kernel/smp.c
+++ b/arch/sparc/kernel/smp.c
@@ -35,7 +35,7 @@
35 35
36#include "irq.h" 36#include "irq.h"
37 37
38volatile unsigned long cpu_callin_map[NR_CPUS] __initdata = {0,}; 38volatile unsigned long cpu_callin_map[NR_CPUS] __cpuinitdata = {0,};
39unsigned char boot_cpu_id = 0; 39unsigned char boot_cpu_id = 0;
40unsigned char boot_cpu_id4 = 0; /* boot_cpu_id << 2 */ 40unsigned char boot_cpu_id4 = 0; /* boot_cpu_id << 2 */
41 41
@@ -120,7 +120,7 @@ void cpu_panic(void)
120 panic("SMP bolixed\n"); 120 panic("SMP bolixed\n");
121} 121}
122 122
123struct linux_prom_registers smp_penguin_ctable __initdata = { 0 }; 123struct linux_prom_registers smp_penguin_ctable __cpuinitdata = { 0 };
124 124
125void smp_send_reschedule(int cpu) 125void smp_send_reschedule(int cpu)
126{ 126{
diff --git a/arch/sparc/kernel/sun4d_smp.c b/arch/sparc/kernel/sun4d_smp.c
index 7a6a5e795928..16ab0cb731c5 100644
--- a/arch/sparc/kernel/sun4d_smp.c
+++ b/arch/sparc/kernel/sun4d_smp.c
@@ -83,7 +83,7 @@ static inline void show_leds(int cpuid)
83 "i" (ASI_M_CTL)); 83 "i" (ASI_M_CTL));
84} 84}
85 85
86void __init smp4d_callin(void) 86void __cpuinit smp4d_callin(void)
87{ 87{
88 int cpuid = hard_smp4d_processor_id(); 88 int cpuid = hard_smp4d_processor_id();
89 extern spinlock_t sun4d_imsk_lock; 89 extern spinlock_t sun4d_imsk_lock;
@@ -386,7 +386,7 @@ void smp4d_percpu_timer_interrupt(struct pt_regs *regs)
386 386
387extern unsigned int lvl14_resolution; 387extern unsigned int lvl14_resolution;
388 388
389static void __init smp_setup_percpu_timer(void) 389static void __cpuinit smp_setup_percpu_timer(void)
390{ 390{
391 int cpu = hard_smp4d_processor_id(); 391 int cpu = hard_smp4d_processor_id();
392 392
diff --git a/arch/sparc/kernel/sun4m_smp.c b/arch/sparc/kernel/sun4m_smp.c
index 5fc386d08c47..4f8d60586b07 100644
--- a/arch/sparc/kernel/sun4m_smp.c
+++ b/arch/sparc/kernel/sun4m_smp.c
@@ -343,7 +343,7 @@ void smp4m_percpu_timer_interrupt(struct pt_regs *regs)
343 343
344extern unsigned int lvl14_resolution; 344extern unsigned int lvl14_resolution;
345 345
346static void __init smp_setup_percpu_timer(void) 346static void __cpuinit smp_setup_percpu_timer(void)
347{ 347{
348 int cpu = smp_processor_id(); 348 int cpu = smp_processor_id();
349 349
diff --git a/arch/sparc/kernel/trampoline.S b/arch/sparc/kernel/trampoline.S
index 356c56aebc62..5e235c52d667 100644
--- a/arch/sparc/kernel/trampoline.S
+++ b/arch/sparc/kernel/trampoline.S
@@ -18,7 +18,7 @@
18 .globl sun4m_cpu_startup, __smp4m_processor_id 18 .globl sun4m_cpu_startup, __smp4m_processor_id
19 .globl sun4d_cpu_startup, __smp4d_processor_id 19 .globl sun4d_cpu_startup, __smp4d_processor_id
20 20
21 __INIT 21 __CPUINIT
22 .align 4 22 .align 4
23 23
24/* When we start up a cpu for the first time it enters this routine. 24/* When we start up a cpu for the first time it enters this routine.
@@ -109,7 +109,7 @@ __smp4d_processor_id:
109/* CPUID in bootbus can be found at PA 0xff0140000 */ 109/* CPUID in bootbus can be found at PA 0xff0140000 */
110#define SUN4D_BOOTBUS_CPUID 0xf0140000 110#define SUN4D_BOOTBUS_CPUID 0xf0140000
111 111
112 __INIT 112 __CPUINIT
113 .align 4 113 .align 4
114 114
115sun4d_cpu_startup: 115sun4d_cpu_startup:
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S
index b1002c607196..5b7e69a8c32f 100644
--- a/arch/sparc/kernel/vmlinux.lds.S
+++ b/arch/sparc/kernel/vmlinux.lds.S
@@ -13,6 +13,7 @@ SECTIONS
13 .text 0xf0004000 : 13 .text 0xf0004000 :
14 { 14 {
15 _text = .; 15 _text = .;
16 *(.text.head)
16 TEXT_TEXT 17 TEXT_TEXT
17 SCHED_TEXT 18 SCHED_TEXT
18 LOCK_TEXT 19 LOCK_TEXT
diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c
index 6a5d7cabc044..dd8aa36f366c 100644
--- a/arch/sparc/mm/srmmu.c
+++ b/arch/sparc/mm/srmmu.c
@@ -1251,7 +1251,7 @@ static inline void map_kernel(void)
1251/* Paging initialization on the Sparc Reference MMU. */ 1251/* Paging initialization on the Sparc Reference MMU. */
1252extern void sparc_context_init(int); 1252extern void sparc_context_init(int);
1253 1253
1254void (*poke_srmmu)(void) __initdata = NULL; 1254void (*poke_srmmu)(void) __cpuinitdata = NULL;
1255 1255
1256extern unsigned long bootmem_init(unsigned long *pages_avail); 1256extern unsigned long bootmem_init(unsigned long *pages_avail);
1257 1257
@@ -1446,7 +1446,7 @@ static void __init init_vac_layout(void)
1446 (int)vac_cache_size, (int)vac_line_size); 1446 (int)vac_cache_size, (int)vac_line_size);
1447} 1447}
1448 1448
1449static void __init poke_hypersparc(void) 1449static void __cpuinit poke_hypersparc(void)
1450{ 1450{
1451 volatile unsigned long clear; 1451 volatile unsigned long clear;
1452 unsigned long mreg = srmmu_get_mmureg(); 1452 unsigned long mreg = srmmu_get_mmureg();
@@ -1501,7 +1501,7 @@ static void __init init_hypersparc(void)
1501 hypersparc_setup_blockops(); 1501 hypersparc_setup_blockops();
1502} 1502}
1503 1503
1504static void __init poke_cypress(void) 1504static void __cpuinit poke_cypress(void)
1505{ 1505{
1506 unsigned long mreg = srmmu_get_mmureg(); 1506 unsigned long mreg = srmmu_get_mmureg();
1507 unsigned long faddr, tagval; 1507 unsigned long faddr, tagval;
@@ -1589,7 +1589,7 @@ static void __init init_cypress_605(unsigned long mrev)
1589 init_cypress_common(); 1589 init_cypress_common();
1590} 1590}
1591 1591
1592static void __init poke_swift(void) 1592static void __cpuinit poke_swift(void)
1593{ 1593{
1594 unsigned long mreg; 1594 unsigned long mreg;
1595 1595
@@ -1771,7 +1771,7 @@ static void turbosparc_flush_tlb_page(struct vm_area_struct *vma, unsigned long
1771} 1771}
1772 1772
1773 1773
1774static void __init poke_turbosparc(void) 1774static void __cpuinit poke_turbosparc(void)
1775{ 1775{
1776 unsigned long mreg = srmmu_get_mmureg(); 1776 unsigned long mreg = srmmu_get_mmureg();
1777 unsigned long ccreg; 1777 unsigned long ccreg;
@@ -1834,7 +1834,7 @@ static void __init init_turbosparc(void)
1834 poke_srmmu = poke_turbosparc; 1834 poke_srmmu = poke_turbosparc;
1835} 1835}
1836 1836
1837static void __init poke_tsunami(void) 1837static void __cpuinit poke_tsunami(void)
1838{ 1838{
1839 unsigned long mreg = srmmu_get_mmureg(); 1839 unsigned long mreg = srmmu_get_mmureg();
1840 1840
@@ -1876,7 +1876,7 @@ static void __init init_tsunami(void)
1876 tsunami_setup_blockops(); 1876 tsunami_setup_blockops();
1877} 1877}
1878 1878
1879static void __init poke_viking(void) 1879static void __cpuinit poke_viking(void)
1880{ 1880{
1881 unsigned long mreg = srmmu_get_mmureg(); 1881 unsigned long mreg = srmmu_get_mmureg();
1882 static int smp_catch; 1882 static int smp_catch;
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c
index f43adbc773ca..a941c610e7ce 100644
--- a/arch/sparc64/kernel/ptrace.c
+++ b/arch/sparc64/kernel/ptrace.c
@@ -1014,7 +1014,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
1014 break; 1014 break;
1015 1015
1016 case PTRACE_SETFPREGS64: 1016 case PTRACE_SETFPREGS64:
1017 ret = copy_regset_to_user(child, view, REGSET_FP, 1017 ret = copy_regset_from_user(child, view, REGSET_FP,
1018 0 * sizeof(u64), 1018 0 * sizeof(u64),
1019 33 * sizeof(u64), 1019 33 * sizeof(u64),
1020 fps); 1020 fps);
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index e5627118e613..f500b0618bb0 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -282,7 +282,7 @@ static unsigned long kimage_addr_to_ra(void *p)
282 return kern_base + (val - KERNBASE); 282 return kern_base + (val - KERNBASE);
283} 283}
284 284
285static void ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg) 285static void __cpuinit ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg)
286{ 286{
287 extern unsigned long sparc64_ttable_tl0; 287 extern unsigned long sparc64_ttable_tl0;
288 extern unsigned long kern_locked_tte_data; 288 extern unsigned long kern_locked_tte_data;
@@ -343,7 +343,7 @@ extern unsigned long sparc64_cpu_startup;
343 */ 343 */
344static struct thread_info *cpu_new_thread = NULL; 344static struct thread_info *cpu_new_thread = NULL;
345 345
346static int __devinit smp_boot_one_cpu(unsigned int cpu) 346static int __cpuinit smp_boot_one_cpu(unsigned int cpu)
347{ 347{
348 struct trap_per_cpu *tb = &trap_block[cpu]; 348 struct trap_per_cpu *tb = &trap_block[cpu];
349 unsigned long entry = 349 unsigned long entry =
diff --git a/arch/sparc64/kernel/visemul.c b/arch/sparc64/kernel/visemul.c
index 9e05cb5cb855..b956fd71c131 100644
--- a/arch/sparc64/kernel/visemul.c
+++ b/arch/sparc64/kernel/visemul.c
@@ -131,7 +131,7 @@
131#define VIS_OPF_SHIFT 5 131#define VIS_OPF_SHIFT 5
132#define VIS_OPF_MASK (0x1ff << VIS_OPF_SHIFT) 132#define VIS_OPF_MASK (0x1ff << VIS_OPF_SHIFT)
133 133
134#define RS1(INSN) (((INSN) >> 24) & 0x1f) 134#define RS1(INSN) (((INSN) >> 14) & 0x1f)
135#define RS2(INSN) (((INSN) >> 0) & 0x1f) 135#define RS2(INSN) (((INSN) >> 0) & 0x1f)
136#define RD(INSN) (((INSN) >> 25) & 0x1f) 136#define RD(INSN) (((INSN) >> 25) & 0x1f)
137 137
@@ -445,7 +445,7 @@ static void pdist(struct pt_regs *regs, unsigned int insn)
445 unsigned long i; 445 unsigned long i;
446 446
447 rs1 = fpd_regval(f, RS1(insn)); 447 rs1 = fpd_regval(f, RS1(insn));
448 rs2 = fpd_regval(f, RS1(insn)); 448 rs2 = fpd_regval(f, RS2(insn));
449 rd = fpd_regaddr(f, RD(insn)); 449 rd = fpd_regaddr(f, RD(insn));
450 450
451 rd_val = *rd; 451 rd_val = *rd;
@@ -807,6 +807,8 @@ int vis_emul(struct pt_regs *regs, unsigned int insn)
807 if (get_user(insn, (u32 __user *) pc)) 807 if (get_user(insn, (u32 __user *) pc))
808 return -EFAULT; 808 return -EFAULT;
809 809
810 save_and_clear_fpu();
811
810 opf = (insn & VIS_OPF_MASK) >> VIS_OPF_SHIFT; 812 opf = (insn & VIS_OPF_MASK) >> VIS_OPF_SHIFT;
811 switch (opf) { 813 switch (opf) {
812 default: 814 default:
diff --git a/arch/sparc64/lib/user_fixup.c b/arch/sparc64/lib/user_fixup.c
index 19d1fdb17d0e..05a361b0a1a4 100644
--- a/arch/sparc64/lib/user_fixup.c
+++ b/arch/sparc64/lib/user_fixup.c
@@ -24,7 +24,7 @@ static unsigned long compute_size(unsigned long start, unsigned long size, unsig
24 if (fault_addr < start || fault_addr >= end) { 24 if (fault_addr < start || fault_addr >= end) {
25 *offset = 0; 25 *offset = 0;
26 } else { 26 } else {
27 *offset = start - fault_addr; 27 *offset = fault_addr - start;
28 size = end - fault_addr; 28 size = end - fault_addr;
29 } 29 }
30 return size; 30 return size;
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 3c10daf8fc01..185f34679110 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -956,7 +956,7 @@ int of_node_to_nid(struct device_node *dp)
956 return nid; 956 return nid;
957} 957}
958 958
959static void add_node_ranges(void) 959static void __init add_node_ranges(void)
960{ 960{
961 int i; 961 int i;
962 962
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c
index 19d579d74d27..8f44ebb0dec8 100644
--- a/arch/um/drivers/mconsole_kern.c
+++ b/arch/um/drivers/mconsole_kern.c
@@ -16,6 +16,8 @@
16#include <linux/slab.h> 16#include <linux/slab.h>
17#include <linux/syscalls.h> 17#include <linux/syscalls.h>
18#include <linux/utsname.h> 18#include <linux/utsname.h>
19#include <linux/socket.h>
20#include <linux/un.h>
19#include <linux/workqueue.h> 21#include <linux/workqueue.h>
20#include <linux/mutex.h> 22#include <linux/mutex.h>
21#include <asm/uaccess.h> 23#include <asm/uaccess.h>
@@ -785,7 +787,7 @@ static int __init mconsole_init(void)
785 /* long to avoid size mismatch warnings from gcc */ 787 /* long to avoid size mismatch warnings from gcc */
786 long sock; 788 long sock;
787 int err; 789 int err;
788 char file[256]; 790 char file[UNIX_PATH_MAX];
789 791
790 if (umid_file_name("mconsole", file, sizeof(file))) 792 if (umid_file_name("mconsole", file, sizeof(file)))
791 return -1; 793 return -1;
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index b815664fe370..8e99073b9e0f 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -520,6 +520,7 @@ config X86_PTRACE_BTS
520 bool "Branch Trace Store" 520 bool "Branch Trace Store"
521 default y 521 default y
522 depends on X86_DEBUGCTLMSR 522 depends on X86_DEBUGCTLMSR
523 depends on BROKEN
523 help 524 help
524 This adds a ptrace interface to the hardware's branch trace store. 525 This adds a ptrace interface to the hardware's branch trace store.
525 526
diff --git a/arch/x86/boot/tty.c b/arch/x86/boot/tty.c
index 0be77b39328a..7e8e8b25f5f6 100644
--- a/arch/x86/boot/tty.c
+++ b/arch/x86/boot/tty.c
@@ -74,7 +74,7 @@ static int kbd_pending(void)
74{ 74{
75 u8 pending; 75 u8 pending;
76 asm volatile("int $0x16; setnz %0" 76 asm volatile("int $0x16; setnz %0"
77 : "=rm" (pending) 77 : "=qm" (pending)
78 : "a" (0x0100)); 78 : "a" (0x0100));
79 return pending; 79 return pending;
80} 80}
diff --git a/arch/x86/include/asm/amd_iommu_types.h b/arch/x86/include/asm/amd_iommu_types.h
index 1a30c0440c6b..ac302a2fa339 100644
--- a/arch/x86/include/asm/amd_iommu_types.h
+++ b/arch/x86/include/asm/amd_iommu_types.h
@@ -251,13 +251,6 @@ struct amd_iommu {
251 /* Pointer to PCI device of this IOMMU */ 251 /* Pointer to PCI device of this IOMMU */
252 struct pci_dev *dev; 252 struct pci_dev *dev;
253 253
254 /*
255 * Capability pointer. There could be more than one IOMMU per PCI
256 * device function if there are more than one AMD IOMMU capability
257 * pointers.
258 */
259 u16 cap_ptr;
260
261 /* physical address of MMIO space */ 254 /* physical address of MMIO space */
262 u64 mmio_phys; 255 u64 mmio_phys;
263 /* virtual address of MMIO space */ 256 /* virtual address of MMIO space */
@@ -266,6 +259,13 @@ struct amd_iommu {
266 /* capabilities of that IOMMU read from ACPI */ 259 /* capabilities of that IOMMU read from ACPI */
267 u32 cap; 260 u32 cap;
268 261
262 /*
263 * Capability pointer. There could be more than one IOMMU per PCI
264 * device function if there are more than one AMD IOMMU capability
265 * pointers.
266 */
267 u16 cap_ptr;
268
269 /* pci domain of this IOMMU */ 269 /* pci domain of this IOMMU */
270 u16 pci_seg; 270 u16 pci_seg;
271 271
@@ -284,19 +284,19 @@ struct amd_iommu {
284 /* size of command buffer */ 284 /* size of command buffer */
285 u32 cmd_buf_size; 285 u32 cmd_buf_size;
286 286
287 /* event buffer virtual address */
288 u8 *evt_buf;
289 /* size of event buffer */ 287 /* size of event buffer */
290 u32 evt_buf_size; 288 u32 evt_buf_size;
289 /* event buffer virtual address */
290 u8 *evt_buf;
291 /* MSI number for event interrupt */ 291 /* MSI number for event interrupt */
292 u16 evt_msi_num; 292 u16 evt_msi_num;
293 293
294 /* if one, we need to send a completion wait command */
295 int need_sync;
296
297 /* true if interrupts for this IOMMU are already enabled */ 294 /* true if interrupts for this IOMMU are already enabled */
298 bool int_enabled; 295 bool int_enabled;
299 296
297 /* if one, we need to send a completion wait command */
298 int need_sync;
299
300 /* default dma_ops domain for that IOMMU */ 300 /* default dma_ops domain for that IOMMU */
301 struct dma_ops_domain *default_dom; 301 struct dma_ops_domain *default_dom;
302}; 302};
diff --git a/arch/x86/include/asm/dma-mapping.h b/arch/x86/include/asm/dma-mapping.h
index 7f225a4b2a26..097794ff6b79 100644
--- a/arch/x86/include/asm/dma-mapping.h
+++ b/arch/x86/include/asm/dma-mapping.h
@@ -71,15 +71,13 @@ static inline struct dma_mapping_ops *get_dma_ops(struct device *dev)
71/* Make sure we keep the same behaviour */ 71/* Make sure we keep the same behaviour */
72static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) 72static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
73{ 73{
74#ifdef CONFIG_X86_32 74#ifdef CONFIG_X86_64
75 return 0;
76#else
77 struct dma_mapping_ops *ops = get_dma_ops(dev); 75 struct dma_mapping_ops *ops = get_dma_ops(dev);
78 if (ops->mapping_error) 76 if (ops->mapping_error)
79 return ops->mapping_error(dev, dma_addr); 77 return ops->mapping_error(dev, dma_addr);
80 78
81 return (dma_addr == bad_dma_address);
82#endif 79#endif
80 return (dma_addr == bad_dma_address);
83} 81}
84 82
85#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) 83#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
diff --git a/arch/x86/include/asm/ds.h b/arch/x86/include/asm/ds.h
index 72c5a190bf48..a95008457ea4 100644
--- a/arch/x86/include/asm/ds.h
+++ b/arch/x86/include/asm/ds.h
@@ -23,12 +23,13 @@
23#ifndef _ASM_X86_DS_H 23#ifndef _ASM_X86_DS_H
24#define _ASM_X86_DS_H 24#define _ASM_X86_DS_H
25 25
26#ifdef CONFIG_X86_DS
27 26
28#include <linux/types.h> 27#include <linux/types.h>
29#include <linux/init.h> 28#include <linux/init.h>
30 29
31 30
31#ifdef CONFIG_X86_DS
32
32struct task_struct; 33struct task_struct;
33 34
34/* 35/*
@@ -232,7 +233,8 @@ extern void ds_free(struct ds_context *context);
232 233
233#else /* CONFIG_X86_DS */ 234#else /* CONFIG_X86_DS */
234 235
235#define ds_init_intel(config) do {} while (0) 236struct cpuinfo_x86;
237static inline void __cpuinit ds_init_intel(struct cpuinfo_x86 *ignored) {}
236 238
237#endif /* CONFIG_X86_DS */ 239#endif /* CONFIG_X86_DS */
238#endif /* _ASM_X86_DS_H */ 240#endif /* _ASM_X86_DS_H */
diff --git a/arch/x86/include/asm/pci_64.h b/arch/x86/include/asm/pci_64.h
index 5b28995d664e..d02d936840a3 100644
--- a/arch/x86/include/asm/pci_64.h
+++ b/arch/x86/include/asm/pci_64.h
@@ -34,8 +34,6 @@ extern void pci_iommu_alloc(void);
34 */ 34 */
35#define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys) 35#define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys)
36 36
37#if defined(CONFIG_GART_IOMMU) || defined(CONFIG_CALGARY_IOMMU)
38
39#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ 37#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \
40 dma_addr_t ADDR_NAME; 38 dma_addr_t ADDR_NAME;
41#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ 39#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \
@@ -49,18 +47,6 @@ extern void pci_iommu_alloc(void);
49#define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ 47#define pci_unmap_len_set(PTR, LEN_NAME, VAL) \
50 (((PTR)->LEN_NAME) = (VAL)) 48 (((PTR)->LEN_NAME) = (VAL))
51 49
52#else
53/* No IOMMU */
54
55#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME)
56#define DECLARE_PCI_UNMAP_LEN(LEN_NAME)
57#define pci_unmap_addr(PTR, ADDR_NAME) (0)
58#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0)
59#define pci_unmap_len(PTR, LEN_NAME) (0)
60#define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0)
61
62#endif
63
64#endif /* __KERNEL__ */ 50#endif /* __KERNEL__ */
65 51
66#endif /* _ASM_X86_PCI_64_H */ 52#endif /* _ASM_X86_PCI_64_H */
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index d1531c8480b7..eefb0594b058 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -271,8 +271,6 @@ extern int do_get_thread_area(struct task_struct *p, int idx,
271extern int do_set_thread_area(struct task_struct *p, int idx, 271extern int do_set_thread_area(struct task_struct *p, int idx,
272 struct user_desc __user *info, int can_allocate); 272 struct user_desc __user *info, int can_allocate);
273 273
274#define __ARCH_WANT_COMPAT_SYS_PTRACE
275
276#endif /* __KERNEL__ */ 274#endif /* __KERNEL__ */
277 275
278#endif /* !__ASSEMBLY__ */ 276#endif /* !__ASSEMBLY__ */
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index 4850e4b02b61..ff386ff50ed7 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -239,7 +239,7 @@ struct pci_bus;
239void set_pci_bus_resources_arch_default(struct pci_bus *b); 239void set_pci_bus_resources_arch_default(struct pci_bus *b);
240 240
241#ifdef CONFIG_SMP 241#ifdef CONFIG_SMP
242#define mc_capable() (boot_cpu_data.x86_max_cores > 1) 242#define mc_capable() (cpus_weight(per_cpu(cpu_core_map, 0)) != nr_cpu_ids)
243#define smt_capable() (smp_num_siblings > 1) 243#define smt_capable() (smp_num_siblings > 1)
244#endif 244#endif
245 245
diff --git a/arch/x86/include/asm/vmi.h b/arch/x86/include/asm/vmi.h
index b7c0dea119fe..61e08c0a2907 100644
--- a/arch/x86/include/asm/vmi.h
+++ b/arch/x86/include/asm/vmi.h
@@ -223,9 +223,15 @@ struct pci_header {
223} __attribute__((packed)); 223} __attribute__((packed));
224 224
225/* Function prototypes for bootstrapping */ 225/* Function prototypes for bootstrapping */
226#ifdef CONFIG_VMI
226extern void vmi_init(void); 227extern void vmi_init(void);
228extern void vmi_activate(void);
227extern void vmi_bringup(void); 229extern void vmi_bringup(void);
228extern void vmi_apply_boot_page_allocations(void); 230#else
231static inline void vmi_init(void) {}
232static inline void vmi_activate(void) {}
233static inline void vmi_bringup(void) {}
234#endif
229 235
230/* State needed to start an application processor in an SMP system. */ 236/* State needed to start an application processor in an SMP system. */
231struct vmi_ap_state { 237struct vmi_ap_state {
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index e489ff9cb3e2..b62a7667828e 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -41,7 +41,7 @@ obj-$(CONFIG_X86_TRAMPOLINE) += trampoline.o
41obj-y += process.o 41obj-y += process.o
42obj-y += i387.o xsave.o 42obj-y += i387.o xsave.o
43obj-y += ptrace.o 43obj-y += ptrace.o
44obj-y += ds.o 44obj-$(CONFIG_X86_DS) += ds.o
45obj-$(CONFIG_X86_32) += tls.o 45obj-$(CONFIG_X86_32) += tls.o
46obj-$(CONFIG_IA32_EMULATION) += tls.o 46obj-$(CONFIG_IA32_EMULATION) += tls.o
47obj-y += step.o 47obj-y += step.o
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index e4899e0e8787..0a60d60ed036 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -187,6 +187,8 @@ static int iommu_queue_command(struct amd_iommu *iommu, struct iommu_cmd *cmd)
187 187
188 spin_lock_irqsave(&iommu->lock, flags); 188 spin_lock_irqsave(&iommu->lock, flags);
189 ret = __iommu_queue_command(iommu, cmd); 189 ret = __iommu_queue_command(iommu, cmd);
190 if (!ret)
191 iommu->need_sync = 1;
190 spin_unlock_irqrestore(&iommu->lock, flags); 192 spin_unlock_irqrestore(&iommu->lock, flags);
191 193
192 return ret; 194 return ret;
@@ -210,10 +212,13 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
210 cmd.data[0] = CMD_COMPL_WAIT_INT_MASK; 212 cmd.data[0] = CMD_COMPL_WAIT_INT_MASK;
211 CMD_SET_TYPE(&cmd, CMD_COMPL_WAIT); 213 CMD_SET_TYPE(&cmd, CMD_COMPL_WAIT);
212 214
213 iommu->need_sync = 0;
214
215 spin_lock_irqsave(&iommu->lock, flags); 215 spin_lock_irqsave(&iommu->lock, flags);
216 216
217 if (!iommu->need_sync)
218 goto out;
219
220 iommu->need_sync = 0;
221
217 ret = __iommu_queue_command(iommu, &cmd); 222 ret = __iommu_queue_command(iommu, &cmd);
218 223
219 if (ret) 224 if (ret)
@@ -230,8 +235,9 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
230 status &= ~MMIO_STATUS_COM_WAIT_INT_MASK; 235 status &= ~MMIO_STATUS_COM_WAIT_INT_MASK;
231 writel(status, iommu->mmio_base + MMIO_STATUS_OFFSET); 236 writel(status, iommu->mmio_base + MMIO_STATUS_OFFSET);
232 237
233 if (unlikely((i == EXIT_LOOP_COUNT) && printk_ratelimit())) 238 if (unlikely(i == EXIT_LOOP_COUNT))
234 printk(KERN_WARNING "AMD IOMMU: Completion wait loop failed\n"); 239 panic("AMD IOMMU: Completion wait loop failed\n");
240
235out: 241out:
236 spin_unlock_irqrestore(&iommu->lock, flags); 242 spin_unlock_irqrestore(&iommu->lock, flags);
237 243
@@ -254,8 +260,6 @@ static int iommu_queue_inv_dev_entry(struct amd_iommu *iommu, u16 devid)
254 260
255 ret = iommu_queue_command(iommu, &cmd); 261 ret = iommu_queue_command(iommu, &cmd);
256 262
257 iommu->need_sync = 1;
258
259 return ret; 263 return ret;
260} 264}
261 265
@@ -281,8 +285,6 @@ static int iommu_queue_inv_iommu_pages(struct amd_iommu *iommu,
281 285
282 ret = iommu_queue_command(iommu, &cmd); 286 ret = iommu_queue_command(iommu, &cmd);
283 287
284 iommu->need_sync = 1;
285
286 return ret; 288 return ret;
287} 289}
288 290
@@ -343,7 +345,7 @@ static int iommu_map(struct protection_domain *dom,
343 u64 __pte, *pte, *page; 345 u64 __pte, *pte, *page;
344 346
345 bus_addr = PAGE_ALIGN(bus_addr); 347 bus_addr = PAGE_ALIGN(bus_addr);
346 phys_addr = PAGE_ALIGN(bus_addr); 348 phys_addr = PAGE_ALIGN(phys_addr);
347 349
348 /* only support 512GB address spaces for now */ 350 /* only support 512GB address spaces for now */
349 if (bus_addr > IOMMU_MAP_SIZE_L3 || !(prot & IOMMU_PROT_MASK)) 351 if (bus_addr > IOMMU_MAP_SIZE_L3 || !(prot & IOMMU_PROT_MASK))
@@ -599,7 +601,7 @@ static void dma_ops_free_pagetable(struct dma_ops_domain *dma_dom)
599 continue; 601 continue;
600 602
601 p2 = IOMMU_PTE_PAGE(p1[i]); 603 p2 = IOMMU_PTE_PAGE(p1[i]);
602 for (j = 0; j < 512; ++i) { 604 for (j = 0; j < 512; ++j) {
603 if (!IOMMU_PTE_PRESENT(p2[j])) 605 if (!IOMMU_PTE_PRESENT(p2[j]))
604 continue; 606 continue;
605 p3 = IOMMU_PTE_PAGE(p2[j]); 607 p3 = IOMMU_PTE_PAGE(p2[j]);
@@ -762,8 +764,6 @@ static void set_device_domain(struct amd_iommu *iommu,
762 write_unlock_irqrestore(&amd_iommu_devtable_lock, flags); 764 write_unlock_irqrestore(&amd_iommu_devtable_lock, flags);
763 765
764 iommu_queue_inv_dev_entry(iommu, devid); 766 iommu_queue_inv_dev_entry(iommu, devid);
765
766 iommu->need_sync = 1;
767} 767}
768 768
769/***************************************************************************** 769/*****************************************************************************
@@ -858,6 +858,9 @@ static int get_device_resources(struct device *dev,
858 print_devid(_bdf, 1); 858 print_devid(_bdf, 1);
859 } 859 }
860 860
861 if (domain_for_device(_bdf) == NULL)
862 set_device_domain(*iommu, *domain, _bdf);
863
861 return 1; 864 return 1;
862} 865}
863 866
@@ -908,7 +911,7 @@ static void dma_ops_domain_unmap(struct amd_iommu *iommu,
908 if (address >= dom->aperture_size) 911 if (address >= dom->aperture_size)
909 return; 912 return;
910 913
911 WARN_ON(address & 0xfffULL || address > dom->aperture_size); 914 WARN_ON(address & ~PAGE_MASK || address >= dom->aperture_size);
912 915
913 pte = dom->pte_pages[IOMMU_PTE_L1_INDEX(address)]; 916 pte = dom->pte_pages[IOMMU_PTE_L1_INDEX(address)];
914 pte += IOMMU_PTE_L0_INDEX(address); 917 pte += IOMMU_PTE_L0_INDEX(address);
@@ -920,8 +923,8 @@ static void dma_ops_domain_unmap(struct amd_iommu *iommu,
920 923
921/* 924/*
922 * This function contains common code for mapping of a physically 925 * This function contains common code for mapping of a physically
923 * contiguous memory region into DMA address space. It is uses by all 926 * contiguous memory region into DMA address space. It is used by all
924 * mapping functions provided by this IOMMU driver. 927 * mapping functions provided with this IOMMU driver.
925 * Must be called with the domain lock held. 928 * Must be called with the domain lock held.
926 */ 929 */
927static dma_addr_t __map_single(struct device *dev, 930static dma_addr_t __map_single(struct device *dev,
@@ -981,7 +984,8 @@ static void __unmap_single(struct amd_iommu *iommu,
981 dma_addr_t i, start; 984 dma_addr_t i, start;
982 unsigned int pages; 985 unsigned int pages;
983 986
984 if ((dma_addr == 0) || (dma_addr + size > dma_dom->aperture_size)) 987 if ((dma_addr == bad_dma_address) ||
988 (dma_addr + size > dma_dom->aperture_size))
985 return; 989 return;
986 990
987 pages = iommu_num_pages(dma_addr, size, PAGE_SIZE); 991 pages = iommu_num_pages(dma_addr, size, PAGE_SIZE);
@@ -1031,8 +1035,7 @@ static dma_addr_t map_single(struct device *dev, phys_addr_t paddr,
1031 if (addr == bad_dma_address) 1035 if (addr == bad_dma_address)
1032 goto out; 1036 goto out;
1033 1037
1034 if (unlikely(iommu->need_sync)) 1038 iommu_completion_wait(iommu);
1035 iommu_completion_wait(iommu);
1036 1039
1037out: 1040out:
1038 spin_unlock_irqrestore(&domain->lock, flags); 1041 spin_unlock_irqrestore(&domain->lock, flags);
@@ -1060,8 +1063,7 @@ static void unmap_single(struct device *dev, dma_addr_t dma_addr,
1060 1063
1061 __unmap_single(iommu, domain->priv, dma_addr, size, dir); 1064 __unmap_single(iommu, domain->priv, dma_addr, size, dir);
1062 1065
1063 if (unlikely(iommu->need_sync)) 1066 iommu_completion_wait(iommu);
1064 iommu_completion_wait(iommu);
1065 1067
1066 spin_unlock_irqrestore(&domain->lock, flags); 1068 spin_unlock_irqrestore(&domain->lock, flags);
1067} 1069}
@@ -1127,8 +1129,7 @@ static int map_sg(struct device *dev, struct scatterlist *sglist,
1127 goto unmap; 1129 goto unmap;
1128 } 1130 }
1129 1131
1130 if (unlikely(iommu->need_sync)) 1132 iommu_completion_wait(iommu);
1131 iommu_completion_wait(iommu);
1132 1133
1133out: 1134out:
1134 spin_unlock_irqrestore(&domain->lock, flags); 1135 spin_unlock_irqrestore(&domain->lock, flags);
@@ -1173,8 +1174,7 @@ static void unmap_sg(struct device *dev, struct scatterlist *sglist,
1173 s->dma_address = s->dma_length = 0; 1174 s->dma_address = s->dma_length = 0;
1174 } 1175 }
1175 1176
1176 if (unlikely(iommu->need_sync)) 1177 iommu_completion_wait(iommu);
1177 iommu_completion_wait(iommu);
1178 1178
1179 spin_unlock_irqrestore(&domain->lock, flags); 1179 spin_unlock_irqrestore(&domain->lock, flags);
1180} 1180}
@@ -1225,8 +1225,7 @@ static void *alloc_coherent(struct device *dev, size_t size,
1225 goto out; 1225 goto out;
1226 } 1226 }
1227 1227
1228 if (unlikely(iommu->need_sync)) 1228 iommu_completion_wait(iommu);
1229 iommu_completion_wait(iommu);
1230 1229
1231out: 1230out:
1232 spin_unlock_irqrestore(&domain->lock, flags); 1231 spin_unlock_irqrestore(&domain->lock, flags);
@@ -1257,8 +1256,7 @@ static void free_coherent(struct device *dev, size_t size,
1257 1256
1258 __unmap_single(iommu, domain->priv, dma_addr, size, DMA_BIDIRECTIONAL); 1257 __unmap_single(iommu, domain->priv, dma_addr, size, DMA_BIDIRECTIONAL);
1259 1258
1260 if (unlikely(iommu->need_sync)) 1259 iommu_completion_wait(iommu);
1261 iommu_completion_wait(iommu);
1262 1260
1263 spin_unlock_irqrestore(&domain->lock, flags); 1261 spin_unlock_irqrestore(&domain->lock, flags);
1264 1262
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
index 30ae2701b3df..c6cc22815d35 100644
--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -427,6 +427,10 @@ static u8 * __init alloc_command_buffer(struct amd_iommu *iommu)
427 memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET, 427 memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET,
428 &entry, sizeof(entry)); 428 &entry, sizeof(entry));
429 429
430 /* set head and tail to zero manually */
431 writel(0x00, iommu->mmio_base + MMIO_CMD_HEAD_OFFSET);
432 writel(0x00, iommu->mmio_base + MMIO_CMD_TAIL_OFFSET);
433
430 iommu_feature_enable(iommu, CONTROL_CMDBUF_EN); 434 iommu_feature_enable(iommu, CONTROL_CMDBUF_EN);
431 435
432 return cmd_buf; 436 return cmd_buf;
@@ -1074,7 +1078,8 @@ int __init amd_iommu_init(void)
1074 goto free; 1078 goto free;
1075 1079
1076 /* IOMMU rlookup table - find the IOMMU for a specific device */ 1080 /* IOMMU rlookup table - find the IOMMU for a specific device */
1077 amd_iommu_rlookup_table = (void *)__get_free_pages(GFP_KERNEL, 1081 amd_iommu_rlookup_table = (void *)__get_free_pages(
1082 GFP_KERNEL | __GFP_ZERO,
1078 get_order(rlookup_table_size)); 1083 get_order(rlookup_table_size));
1079 if (amd_iommu_rlookup_table == NULL) 1084 if (amd_iommu_rlookup_table == NULL)
1080 goto free; 1085 goto free;
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c
index 04a7f960bbc0..16f94879b525 100644
--- a/arch/x86/kernel/apic.c
+++ b/arch/x86/kernel/apic.c
@@ -1315,7 +1315,7 @@ void enable_x2apic(void)
1315 } 1315 }
1316} 1316}
1317 1317
1318void enable_IR_x2apic(void) 1318void __init enable_IR_x2apic(void)
1319{ 1319{
1320#ifdef CONFIG_INTR_REMAP 1320#ifdef CONFIG_INTR_REMAP
1321 int ret; 1321 int ret;
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
index d3dcd58b87cd..7f05f44b97e9 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
@@ -115,9 +115,20 @@ static int query_current_values_with_pending_wait(struct powernow_k8_data *data)
115 u32 i = 0; 115 u32 i = 0;
116 116
117 if (cpu_family == CPU_HW_PSTATE) { 117 if (cpu_family == CPU_HW_PSTATE) {
118 rdmsr(MSR_PSTATE_STATUS, lo, hi); 118 if (data->currpstate == HW_PSTATE_INVALID) {
119 i = lo & HW_PSTATE_MASK; 119 /* read (initial) hw pstate if not yet set */
120 data->currpstate = i; 120 rdmsr(MSR_PSTATE_STATUS, lo, hi);
121 i = lo & HW_PSTATE_MASK;
122
123 /*
124 * a workaround for family 11h erratum 311 might cause
125 * an "out-of-range Pstate if the core is in Pstate-0
126 */
127 if (i >= data->numps)
128 data->currpstate = HW_PSTATE_0;
129 else
130 data->currpstate = i;
131 }
121 return 0; 132 return 0;
122 } 133 }
123 do { 134 do {
@@ -1121,6 +1132,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
1121 } 1132 }
1122 1133
1123 data->cpu = pol->cpu; 1134 data->cpu = pol->cpu;
1135 data->currpstate = HW_PSTATE_INVALID;
1124 1136
1125 if (powernow_k8_cpu_init_acpi(data)) { 1137 if (powernow_k8_cpu_init_acpi(data)) {
1126 /* 1138 /*
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.h b/arch/x86/kernel/cpu/cpufreq/powernow-k8.h
index ab48cfed4d96..65cfb5d7f77f 100644
--- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.h
+++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.h
@@ -5,6 +5,19 @@
5 * http://www.gnu.org/licenses/gpl.html 5 * http://www.gnu.org/licenses/gpl.html
6 */ 6 */
7 7
8
9enum pstate {
10 HW_PSTATE_INVALID = 0xff,
11 HW_PSTATE_0 = 0,
12 HW_PSTATE_1 = 1,
13 HW_PSTATE_2 = 2,
14 HW_PSTATE_3 = 3,
15 HW_PSTATE_4 = 4,
16 HW_PSTATE_5 = 5,
17 HW_PSTATE_6 = 6,
18 HW_PSTATE_7 = 7,
19};
20
8struct powernow_k8_data { 21struct powernow_k8_data {
9 unsigned int cpu; 22 unsigned int cpu;
10 23
@@ -23,7 +36,9 @@ struct powernow_k8_data {
23 u32 exttype; /* extended interface = 1 */ 36 u32 exttype; /* extended interface = 1 */
24 37
25 /* keep track of the current fid / vid or pstate */ 38 /* keep track of the current fid / vid or pstate */
26 u32 currvid, currfid, currpstate; 39 u32 currvid;
40 u32 currfid;
41 enum pstate currpstate;
27 42
28 /* the powernow_table includes all frequency and vid/fid pairings: 43 /* the powernow_table includes all frequency and vid/fid pairings:
29 * fid are the lower 8 bits of the index, vid are the upper 8 bits. 44 * fid are the lower 8 bits of the index, vid are the upper 8 bits.
diff --git a/arch/x86/kernel/cpu/mcheck/mce_64.c b/arch/x86/kernel/cpu/mcheck/mce_64.c
index 4b031a4ac856..1c838032fd37 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_64.c
@@ -510,12 +510,9 @@ static void __cpuinit mce_cpu_features(struct cpuinfo_x86 *c)
510 */ 510 */
511void __cpuinit mcheck_init(struct cpuinfo_x86 *c) 511void __cpuinit mcheck_init(struct cpuinfo_x86 *c)
512{ 512{
513 static cpumask_t mce_cpus = CPU_MASK_NONE;
514
515 mce_cpu_quirks(c); 513 mce_cpu_quirks(c);
516 514
517 if (mce_dont_init || 515 if (mce_dont_init ||
518 cpu_test_and_set(smp_processor_id(), mce_cpus) ||
519 !mce_available(c)) 516 !mce_available(c))
520 return; 517 return;
521 518
diff --git a/arch/x86/kernel/ds.c b/arch/x86/kernel/ds.c
index d1a121443bde..a2d1176c38ee 100644
--- a/arch/x86/kernel/ds.c
+++ b/arch/x86/kernel/ds.c
@@ -21,8 +21,6 @@
21 */ 21 */
22 22
23 23
24#ifdef CONFIG_X86_DS
25
26#include <asm/ds.h> 24#include <asm/ds.h>
27 25
28#include <linux/errno.h> 26#include <linux/errno.h>
@@ -211,14 +209,15 @@ static DEFINE_PER_CPU(struct ds_context *, system_context);
211static inline struct ds_context *ds_get_context(struct task_struct *task) 209static inline struct ds_context *ds_get_context(struct task_struct *task)
212{ 210{
213 struct ds_context *context; 211 struct ds_context *context;
212 unsigned long irq;
214 213
215 spin_lock(&ds_lock); 214 spin_lock_irqsave(&ds_lock, irq);
216 215
217 context = (task ? task->thread.ds_ctx : this_system_context); 216 context = (task ? task->thread.ds_ctx : this_system_context);
218 if (context) 217 if (context)
219 context->count++; 218 context->count++;
220 219
221 spin_unlock(&ds_lock); 220 spin_unlock_irqrestore(&ds_lock, irq);
222 221
223 return context; 222 return context;
224} 223}
@@ -226,55 +225,46 @@ static inline struct ds_context *ds_get_context(struct task_struct *task)
226/* 225/*
227 * Same as ds_get_context, but allocates the context and it's DS 226 * Same as ds_get_context, but allocates the context and it's DS
228 * structure, if necessary; returns NULL; if out of memory. 227 * structure, if necessary; returns NULL; if out of memory.
229 *
230 * pre: requires ds_lock to be held
231 */ 228 */
232static inline struct ds_context *ds_alloc_context(struct task_struct *task) 229static inline struct ds_context *ds_alloc_context(struct task_struct *task)
233{ 230{
234 struct ds_context **p_context = 231 struct ds_context **p_context =
235 (task ? &task->thread.ds_ctx : &this_system_context); 232 (task ? &task->thread.ds_ctx : &this_system_context);
236 struct ds_context *context = *p_context; 233 struct ds_context *context = *p_context;
234 unsigned long irq;
237 235
238 if (!context) { 236 if (!context) {
239 spin_unlock(&ds_lock);
240
241 context = kzalloc(sizeof(*context), GFP_KERNEL); 237 context = kzalloc(sizeof(*context), GFP_KERNEL);
242 238 if (!context)
243 if (!context) {
244 spin_lock(&ds_lock);
245 return NULL; 239 return NULL;
246 }
247 240
248 context->ds = kzalloc(ds_cfg.sizeof_ds, GFP_KERNEL); 241 context->ds = kzalloc(ds_cfg.sizeof_ds, GFP_KERNEL);
249 if (!context->ds) { 242 if (!context->ds) {
250 kfree(context); 243 kfree(context);
251 spin_lock(&ds_lock);
252 return NULL; 244 return NULL;
253 } 245 }
254 246
255 spin_lock(&ds_lock); 247 spin_lock_irqsave(&ds_lock, irq);
256 /* 248
257 * Check for race - another CPU could have allocated
258 * it meanwhile:
259 */
260 if (*p_context) { 249 if (*p_context) {
261 kfree(context->ds); 250 kfree(context->ds);
262 kfree(context); 251 kfree(context);
263 return *p_context;
264 }
265 252
266 *p_context = context; 253 context = *p_context;
254 } else {
255 *p_context = context;
267 256
268 context->this = p_context; 257 context->this = p_context;
269 context->task = task; 258 context->task = task;
270 259
271 if (task) 260 if (task)
272 set_tsk_thread_flag(task, TIF_DS_AREA_MSR); 261 set_tsk_thread_flag(task, TIF_DS_AREA_MSR);
273 262
274 if (!task || (task == current)) 263 if (!task || (task == current))
275 wrmsr(MSR_IA32_DS_AREA, (unsigned long)context->ds, 0); 264 wrmsrl(MSR_IA32_DS_AREA,
276 265 (unsigned long)context->ds);
277 get_tracer(task); 266 }
267 spin_unlock_irqrestore(&ds_lock, irq);
278 } 268 }
279 269
280 context->count++; 270 context->count++;
@@ -288,10 +278,12 @@ static inline struct ds_context *ds_alloc_context(struct task_struct *task)
288 */ 278 */
289static inline void ds_put_context(struct ds_context *context) 279static inline void ds_put_context(struct ds_context *context)
290{ 280{
281 unsigned long irq;
282
291 if (!context) 283 if (!context)
292 return; 284 return;
293 285
294 spin_lock(&ds_lock); 286 spin_lock_irqsave(&ds_lock, irq);
295 287
296 if (--context->count) 288 if (--context->count)
297 goto out; 289 goto out;
@@ -313,7 +305,7 @@ static inline void ds_put_context(struct ds_context *context)
313 kfree(context->ds); 305 kfree(context->ds);
314 kfree(context); 306 kfree(context);
315 out: 307 out:
316 spin_unlock(&ds_lock); 308 spin_unlock_irqrestore(&ds_lock, irq);
317} 309}
318 310
319 311
@@ -384,6 +376,7 @@ static int ds_request(struct task_struct *task, void *base, size_t size,
384 struct ds_context *context; 376 struct ds_context *context;
385 unsigned long buffer, adj; 377 unsigned long buffer, adj;
386 const unsigned long alignment = (1 << 3); 378 const unsigned long alignment = (1 << 3);
379 unsigned long irq;
387 int error = 0; 380 int error = 0;
388 381
389 if (!ds_cfg.sizeof_ds) 382 if (!ds_cfg.sizeof_ds)
@@ -398,26 +391,27 @@ static int ds_request(struct task_struct *task, void *base, size_t size,
398 return -EOPNOTSUPP; 391 return -EOPNOTSUPP;
399 392
400 393
401 spin_lock(&ds_lock);
402
403 error = -ENOMEM;
404 context = ds_alloc_context(task); 394 context = ds_alloc_context(task);
405 if (!context) 395 if (!context)
406 goto out_unlock; 396 return -ENOMEM;
397
398 spin_lock_irqsave(&ds_lock, irq);
407 399
408 error = -EPERM; 400 error = -EPERM;
409 if (!check_tracer(task)) 401 if (!check_tracer(task))
410 goto out_unlock; 402 goto out_unlock;
411 403
404 get_tracer(task);
405
412 error = -EALREADY; 406 error = -EALREADY;
413 if (context->owner[qual] == current) 407 if (context->owner[qual] == current)
414 goto out_unlock; 408 goto out_put_tracer;
415 error = -EPERM; 409 error = -EPERM;
416 if (context->owner[qual] != NULL) 410 if (context->owner[qual] != NULL)
417 goto out_unlock; 411 goto out_put_tracer;
418 context->owner[qual] = current; 412 context->owner[qual] = current;
419 413
420 spin_unlock(&ds_lock); 414 spin_unlock_irqrestore(&ds_lock, irq);
421 415
422 416
423 error = -ENOMEM; 417 error = -ENOMEM;
@@ -465,10 +459,17 @@ static int ds_request(struct task_struct *task, void *base, size_t size,
465 out_release: 459 out_release:
466 context->owner[qual] = NULL; 460 context->owner[qual] = NULL;
467 ds_put_context(context); 461 ds_put_context(context);
462 put_tracer(task);
463 return error;
464
465 out_put_tracer:
466 spin_unlock_irqrestore(&ds_lock, irq);
467 ds_put_context(context);
468 put_tracer(task);
468 return error; 469 return error;
469 470
470 out_unlock: 471 out_unlock:
471 spin_unlock(&ds_lock); 472 spin_unlock_irqrestore(&ds_lock, irq);
472 ds_put_context(context); 473 ds_put_context(context);
473 return error; 474 return error;
474} 475}
@@ -818,13 +819,21 @@ static const struct ds_configuration ds_cfg_var = {
818 .sizeof_ds = sizeof(long) * 12, 819 .sizeof_ds = sizeof(long) * 12,
819 .sizeof_field = sizeof(long), 820 .sizeof_field = sizeof(long),
820 .sizeof_rec[ds_bts] = sizeof(long) * 3, 821 .sizeof_rec[ds_bts] = sizeof(long) * 3,
822#ifdef __i386__
821 .sizeof_rec[ds_pebs] = sizeof(long) * 10 823 .sizeof_rec[ds_pebs] = sizeof(long) * 10
824#else
825 .sizeof_rec[ds_pebs] = sizeof(long) * 18
826#endif
822}; 827};
823static const struct ds_configuration ds_cfg_64 = { 828static const struct ds_configuration ds_cfg_64 = {
824 .sizeof_ds = 8 * 12, 829 .sizeof_ds = 8 * 12,
825 .sizeof_field = 8, 830 .sizeof_field = 8,
826 .sizeof_rec[ds_bts] = 8 * 3, 831 .sizeof_rec[ds_bts] = 8 * 3,
832#ifdef __i386__
827 .sizeof_rec[ds_pebs] = 8 * 10 833 .sizeof_rec[ds_pebs] = 8 * 10
834#else
835 .sizeof_rec[ds_pebs] = 8 * 18
836#endif
828}; 837};
829 838
830static inline void 839static inline void
@@ -878,4 +887,3 @@ void ds_free(struct ds_context *context)
878 while (leftovers--) 887 while (leftovers--)
879 ds_put_context(context); 888 ds_put_context(context);
880} 889}
881#endif /* CONFIG_X86_DS */
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
index 1f20608d4ca8..b0f61f0dcd0a 100644
--- a/arch/x86/kernel/i387.c
+++ b/arch/x86/kernel/i387.c
@@ -58,7 +58,7 @@ void __cpuinit mxcsr_feature_mask_init(void)
58 stts(); 58 stts();
59} 59}
60 60
61void __init init_thread_xstate(void) 61void __cpuinit init_thread_xstate(void)
62{ 62{
63 if (!HAVE_HWFP) { 63 if (!HAVE_HWFP) {
64 xstate_size = sizeof(struct i387_soft_struct); 64 xstate_size = sizeof(struct i387_soft_struct);
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index c9513e1ff28d..9043251210fb 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -3608,27 +3608,7 @@ int __init io_apic_get_redir_entries (int ioapic)
3608 3608
3609int __init probe_nr_irqs(void) 3609int __init probe_nr_irqs(void)
3610{ 3610{
3611 int idx; 3611 return NR_IRQS;
3612 int nr = 0;
3613#ifndef CONFIG_XEN
3614 int nr_min = 32;
3615#else
3616 int nr_min = NR_IRQS;
3617#endif
3618
3619 for (idx = 0; idx < nr_ioapics; idx++)
3620 nr += io_apic_get_redir_entries(idx) + 1;
3621
3622 /* double it for hotplug and msi and nmi */
3623 nr <<= 1;
3624
3625 /* something wrong ? */
3626 if (nr < nr_min)
3627 nr = nr_min;
3628 if (WARN_ON(nr > NR_IRQS))
3629 nr = NR_IRQS;
3630
3631 return nr;
3632} 3612}
3633 3613
3634/* -------------------------------------------------------------------------- 3614/* --------------------------------------------------------------------------
@@ -3775,7 +3755,9 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
3775void __init setup_ioapic_dest(void) 3755void __init setup_ioapic_dest(void)
3776{ 3756{
3777 int pin, ioapic, irq, irq_entry; 3757 int pin, ioapic, irq, irq_entry;
3758 struct irq_desc *desc;
3778 struct irq_cfg *cfg; 3759 struct irq_cfg *cfg;
3760 cpumask_t mask;
3779 3761
3780 if (skip_ioapic_setup == 1) 3762 if (skip_ioapic_setup == 1)
3781 return; 3763 return;
@@ -3792,16 +3774,30 @@ void __init setup_ioapic_dest(void)
3792 * cpu is online. 3774 * cpu is online.
3793 */ 3775 */
3794 cfg = irq_cfg(irq); 3776 cfg = irq_cfg(irq);
3795 if (!cfg->vector) 3777 if (!cfg->vector) {
3796 setup_IO_APIC_irq(ioapic, pin, irq, 3778 setup_IO_APIC_irq(ioapic, pin, irq,
3797 irq_trigger(irq_entry), 3779 irq_trigger(irq_entry),
3798 irq_polarity(irq_entry)); 3780 irq_polarity(irq_entry));
3781 continue;
3782
3783 }
3784
3785 /*
3786 * Honour affinities which have been set in early boot
3787 */
3788 desc = irq_to_desc(irq);
3789 if (desc->status &
3790 (IRQ_NO_BALANCING | IRQ_AFFINITY_SET))
3791 mask = desc->affinity;
3792 else
3793 mask = TARGET_CPUS;
3794
3799#ifdef CONFIG_INTR_REMAP 3795#ifdef CONFIG_INTR_REMAP
3800 else if (intr_remapping_enabled) 3796 if (intr_remapping_enabled)
3801 set_ir_ioapic_affinity_irq(irq, TARGET_CPUS); 3797 set_ir_ioapic_affinity_irq(irq, mask);
3802#endif
3803 else 3798 else
3804 set_ioapic_affinity_irq(irq, TARGET_CPUS); 3799#endif
3800 set_ioapic_affinity_irq(irq, mask);
3805 } 3801 }
3806 3802
3807 } 3803 }
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 1c9cc431ea4f..e169ae9b6a62 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -128,7 +128,7 @@ static int kvm_register_clock(char *txt)
128} 128}
129 129
130#ifdef CONFIG_X86_LOCAL_APIC 130#ifdef CONFIG_X86_LOCAL_APIC
131static void __devinit kvm_setup_secondary_clock(void) 131static void __cpuinit kvm_setup_secondary_clock(void)
132{ 132{
133 /* 133 /*
134 * Now that the first cpu already had this clocksource initialized, 134 * Now that the first cpu already had this clocksource initialized,
diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c
index 82fb2809ce32..c4b5b24e0217 100644
--- a/arch/x86/kernel/microcode_core.c
+++ b/arch/x86/kernel/microcode_core.c
@@ -272,13 +272,18 @@ static struct attribute_group mc_attr_group = {
272 .name = "microcode", 272 .name = "microcode",
273}; 273};
274 274
275static void microcode_fini_cpu(int cpu) 275static void __microcode_fini_cpu(int cpu)
276{ 276{
277 struct ucode_cpu_info *uci = ucode_cpu_info + cpu; 277 struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
278 278
279 mutex_lock(&microcode_mutex);
280 microcode_ops->microcode_fini_cpu(cpu); 279 microcode_ops->microcode_fini_cpu(cpu);
281 uci->valid = 0; 280 uci->valid = 0;
281}
282
283static void microcode_fini_cpu(int cpu)
284{
285 mutex_lock(&microcode_mutex);
286 __microcode_fini_cpu(cpu);
282 mutex_unlock(&microcode_mutex); 287 mutex_unlock(&microcode_mutex);
283} 288}
284 289
@@ -306,12 +311,16 @@ static int microcode_resume_cpu(int cpu)
306 * to this cpu (a bit of paranoia): 311 * to this cpu (a bit of paranoia):
307 */ 312 */
308 if (microcode_ops->collect_cpu_info(cpu, &nsig)) { 313 if (microcode_ops->collect_cpu_info(cpu, &nsig)) {
309 microcode_fini_cpu(cpu); 314 __microcode_fini_cpu(cpu);
315 printk(KERN_ERR "failed to collect_cpu_info for resuming cpu #%d\n",
316 cpu);
310 return -1; 317 return -1;
311 } 318 }
312 319
313 if (memcmp(&nsig, &uci->cpu_sig, sizeof(nsig))) { 320 if ((nsig.sig != uci->cpu_sig.sig) || (nsig.pf != uci->cpu_sig.pf)) {
314 microcode_fini_cpu(cpu); 321 __microcode_fini_cpu(cpu);
322 printk(KERN_ERR "cached ucode doesn't match the resuming cpu #%d\n",
323 cpu);
315 /* Should we look for a new ucode here? */ 324 /* Should we look for a new ucode here? */
316 return 1; 325 return 1;
317 } 326 }
diff --git a/arch/x86/kernel/microcode_intel.c b/arch/x86/kernel/microcode_intel.c
index 622dc4a21784..a8e62792d171 100644
--- a/arch/x86/kernel/microcode_intel.c
+++ b/arch/x86/kernel/microcode_intel.c
@@ -155,6 +155,7 @@ static DEFINE_SPINLOCK(microcode_update_lock);
155static int collect_cpu_info(int cpu_num, struct cpu_signature *csig) 155static int collect_cpu_info(int cpu_num, struct cpu_signature *csig)
156{ 156{
157 struct cpuinfo_x86 *c = &cpu_data(cpu_num); 157 struct cpuinfo_x86 *c = &cpu_data(cpu_num);
158 unsigned long flags;
158 unsigned int val[2]; 159 unsigned int val[2];
159 160
160 memset(csig, 0, sizeof(*csig)); 161 memset(csig, 0, sizeof(*csig));
@@ -174,11 +175,16 @@ static int collect_cpu_info(int cpu_num, struct cpu_signature *csig)
174 csig->pf = 1 << ((val[1] >> 18) & 7); 175 csig->pf = 1 << ((val[1] >> 18) & 7);
175 } 176 }
176 177
178 /* serialize access to the physical write to MSR 0x79 */
179 spin_lock_irqsave(&microcode_update_lock, flags);
180
177 wrmsr(MSR_IA32_UCODE_REV, 0, 0); 181 wrmsr(MSR_IA32_UCODE_REV, 0, 0);
178 /* see notes above for revision 1.07. Apparent chip bug */ 182 /* see notes above for revision 1.07. Apparent chip bug */
179 sync_core(); 183 sync_core();
180 /* get the current revision from MSR 0x8B */ 184 /* get the current revision from MSR 0x8B */
181 rdmsr(MSR_IA32_UCODE_REV, val[0], csig->rev); 185 rdmsr(MSR_IA32_UCODE_REV, val[0], csig->rev);
186 spin_unlock_irqrestore(&microcode_update_lock, flags);
187
182 pr_debug("microcode: collect_cpu_info : sig=0x%x, pf=0x%x, rev=0x%x\n", 188 pr_debug("microcode: collect_cpu_info : sig=0x%x, pf=0x%x, rev=0x%x\n",
183 csig->sig, csig->pf, csig->rev); 189 csig->sig, csig->pf, csig->rev);
184 190
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index f98f4e1dba09..0f4c1fd5a1f4 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -604,6 +604,9 @@ static void __init __get_smp_config(unsigned int early)
604 printk(KERN_INFO "Using ACPI for processor (LAPIC) " 604 printk(KERN_INFO "Using ACPI for processor (LAPIC) "
605 "configuration information\n"); 605 "configuration information\n");
606 606
607 if (!mpf)
608 return;
609
607 printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n", 610 printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n",
608 mpf->mpf_specification); 611 mpf->mpf_specification);
609#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32) 612#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32)
diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
index 0e9f1982b1dd..95777b0faa73 100644
--- a/arch/x86/kernel/paravirt-spinlocks.c
+++ b/arch/x86/kernel/paravirt-spinlocks.c
@@ -7,7 +7,8 @@
7 7
8#include <asm/paravirt.h> 8#include <asm/paravirt.h>
9 9
10static void default_spin_lock_flags(struct raw_spinlock *lock, unsigned long flags) 10static inline void
11default_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
11{ 12{
12 __raw_spin_lock(lock); 13 __raw_spin_lock(lock);
13} 14}
diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
index e1e731d78f38..d28bbdc35e4e 100644
--- a/arch/x86/kernel/pci-calgary_64.c
+++ b/arch/x86/kernel/pci-calgary_64.c
@@ -1567,7 +1567,7 @@ static int __init calgary_parse_options(char *p)
1567 ++p; 1567 ++p;
1568 if (*p == '\0') 1568 if (*p == '\0')
1569 break; 1569 break;
1570 bridge = simple_strtol(p, &endp, 0); 1570 bridge = simple_strtoul(p, &endp, 0);
1571 if (p == endp) 1571 if (p == endp)
1572 break; 1572 break;
1573 1573
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c
index a42b02b4df68..a35eaa379ff6 100644
--- a/arch/x86/kernel/pci-gart_64.c
+++ b/arch/x86/kernel/pci-gart_64.c
@@ -123,6 +123,8 @@ static void free_iommu(unsigned long offset, int size)
123 123
124 spin_lock_irqsave(&iommu_bitmap_lock, flags); 124 spin_lock_irqsave(&iommu_bitmap_lock, flags);
125 iommu_area_free(iommu_gart_bitmap, offset, size); 125 iommu_area_free(iommu_gart_bitmap, offset, size);
126 if (offset >= next_bit)
127 next_bit = offset + size;
126 spin_unlock_irqrestore(&iommu_bitmap_lock, flags); 128 spin_unlock_irqrestore(&iommu_bitmap_lock, flags);
127} 129}
128 130
@@ -743,10 +745,8 @@ void __init gart_iommu_init(void)
743 unsigned long scratch; 745 unsigned long scratch;
744 long i; 746 long i;
745 747
746 if (cache_k8_northbridges() < 0 || num_k8_northbridges == 0) { 748 if (cache_k8_northbridges() < 0 || num_k8_northbridges == 0)
747 printk(KERN_INFO "PCI-GART: No AMD GART found.\n");
748 return; 749 return;
749 }
750 750
751#ifndef CONFIG_AGP_AMD64 751#ifndef CONFIG_AGP_AMD64
752 no_agp = 1; 752 no_agp = 1;
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 9d5674f7b6cc..bdec76e55594 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -794,6 +794,9 @@ void __init setup_arch(char **cmdline_p)
794 printk(KERN_INFO "Command line: %s\n", boot_command_line); 794 printk(KERN_INFO "Command line: %s\n", boot_command_line);
795#endif 795#endif
796 796
797 /* VMI may relocate the fixmap; do this before touching ioremap area */
798 vmi_init();
799
797 early_cpu_init(); 800 early_cpu_init();
798 early_ioremap_init(); 801 early_ioremap_init();
799 802
@@ -880,13 +883,8 @@ void __init setup_arch(char **cmdline_p)
880 check_efer(); 883 check_efer();
881#endif 884#endif
882 885
883#if defined(CONFIG_VMI) && defined(CONFIG_X86_32) 886 /* Must be before kernel pagetables are setup */
884 /* 887 vmi_activate();
885 * Must be before kernel pagetables are setup
886 * or fixmap area is touched.
887 */
888 vmi_init();
889#endif
890 888
891 /* after early param, so could get panic from serial */ 889 /* after early param, so could get panic from serial */
892 reserve_early_setup_data(); 890 reserve_early_setup_data();
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 7b1093397319..f71f96fc9e62 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -294,9 +294,7 @@ static void __cpuinit start_secondary(void *unused)
294 * fragile that we want to limit the things done here to the 294 * fragile that we want to limit the things done here to the
295 * most necessary things. 295 * most necessary things.
296 */ 296 */
297#ifdef CONFIG_VMI
298 vmi_bringup(); 297 vmi_bringup();
299#endif
300 cpu_init(); 298 cpu_init();
301 preempt_disable(); 299 preempt_disable();
302 smp_callin(); 300 smp_callin();
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c
index 8b6c393ab9fd..22fd6577156a 100644
--- a/arch/x86/kernel/vmi_32.c
+++ b/arch/x86/kernel/vmi_32.c
@@ -960,8 +960,6 @@ static inline int __init activate_vmi(void)
960 960
961void __init vmi_init(void) 961void __init vmi_init(void)
962{ 962{
963 unsigned long flags;
964
965 if (!vmi_rom) 963 if (!vmi_rom)
966 probe_vmi_rom(); 964 probe_vmi_rom();
967 else 965 else
@@ -973,13 +971,21 @@ void __init vmi_init(void)
973 971
974 reserve_top_address(-vmi_rom->virtual_top); 972 reserve_top_address(-vmi_rom->virtual_top);
975 973
976 local_irq_save(flags);
977 activate_vmi();
978
979#ifdef CONFIG_X86_IO_APIC 974#ifdef CONFIG_X86_IO_APIC
980 /* This is virtual hardware; timer routing is wired correctly */ 975 /* This is virtual hardware; timer routing is wired correctly */
981 no_timer_check = 1; 976 no_timer_check = 1;
982#endif 977#endif
978}
979
980void vmi_activate(void)
981{
982 unsigned long flags;
983
984 if (!vmi_rom)
985 return;
986
987 local_irq_save(flags);
988 activate_vmi();
983 local_irq_restore(flags & X86_EFLAGS_IF); 989 local_irq_restore(flags & X86_EFLAGS_IF);
984} 990}
985 991
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
index b13acb75e822..15c3e6999182 100644
--- a/arch/x86/kernel/xsave.c
+++ b/arch/x86/kernel/xsave.c
@@ -310,7 +310,7 @@ static void __init setup_xstate_init(void)
310/* 310/*
311 * Enable and initialize the xsave feature. 311 * Enable and initialize the xsave feature.
312 */ 312 */
313void __init xsave_cntxt_init(void) 313void __ref xsave_cntxt_init(void)
314{ 314{
315 unsigned int eax, ebx, ecx, edx; 315 unsigned int eax, ebx, ecx, edx;
316 316
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index f1983d9477cd..410ddbc1aa2e 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1038,13 +1038,13 @@ static int kvm_sync_page(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
1038 } 1038 }
1039 1039
1040 rmap_write_protect(vcpu->kvm, sp->gfn); 1040 rmap_write_protect(vcpu->kvm, sp->gfn);
1041 kvm_unlink_unsync_page(vcpu->kvm, sp);
1041 if (vcpu->arch.mmu.sync_page(vcpu, sp)) { 1042 if (vcpu->arch.mmu.sync_page(vcpu, sp)) {
1042 kvm_mmu_zap_page(vcpu->kvm, sp); 1043 kvm_mmu_zap_page(vcpu->kvm, sp);
1043 return 1; 1044 return 1;
1044 } 1045 }
1045 1046
1046 kvm_mmu_flush_tlb(vcpu); 1047 kvm_mmu_flush_tlb(vcpu);
1047 kvm_unlink_unsync_page(vcpu->kvm, sp);
1048 return 0; 1048 return 0;
1049} 1049}
1050 1050
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
index 613ec9aa674a..84eee43bbe74 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
@@ -331,6 +331,7 @@ static int FNAME(shadow_walk_entry)(struct kvm_shadow_walk *_sw,
331 r = kvm_read_guest_atomic(vcpu->kvm, gw->pte_gpa[level - 2], 331 r = kvm_read_guest_atomic(vcpu->kvm, gw->pte_gpa[level - 2],
332 &curr_pte, sizeof(curr_pte)); 332 &curr_pte, sizeof(curr_pte));
333 if (r || curr_pte != gw->ptes[level - 2]) { 333 if (r || curr_pte != gw->ptes[level - 2]) {
334 kvm_mmu_put_page(shadow_page, sptep);
334 kvm_release_pfn_clean(sw->pfn); 335 kvm_release_pfn_clean(sw->pfn);
335 sw->sptep = NULL; 336 sw->sptep = NULL;
336 return 1; 337 return 1;
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index d06b4dc0e2ea..a4018b01e1f9 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3149,7 +3149,9 @@ static void vmx_intr_assist(struct kvm_vcpu *vcpu)
3149 3149
3150 if (cpu_has_virtual_nmis()) { 3150 if (cpu_has_virtual_nmis()) {
3151 if (vcpu->arch.nmi_pending && !vcpu->arch.nmi_injected) { 3151 if (vcpu->arch.nmi_pending && !vcpu->arch.nmi_injected) {
3152 if (vmx_nmi_enabled(vcpu)) { 3152 if (vcpu->arch.interrupt.pending) {
3153 enable_nmi_window(vcpu);
3154 } else if (vmx_nmi_enabled(vcpu)) {
3153 vcpu->arch.nmi_pending = false; 3155 vcpu->arch.nmi_pending = false;
3154 vcpu->arch.nmi_injected = true; 3156 vcpu->arch.nmi_injected = true;
3155 } else { 3157 } else {
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
index 022cd41ea9b4..202864ad49a7 100644
--- a/arch/x86/oprofile/nmi_int.c
+++ b/arch/x86/oprofile/nmi_int.c
@@ -401,14 +401,13 @@ static int __init ppro_init(char **cpu_type)
401 *cpu_type = "i386/pii"; 401 *cpu_type = "i386/pii";
402 break; 402 break;
403 case 6 ... 8: 403 case 6 ... 8:
404 case 10 ... 11:
404 *cpu_type = "i386/piii"; 405 *cpu_type = "i386/piii";
405 break; 406 break;
406 case 9: 407 case 9:
408 case 13:
407 *cpu_type = "i386/p6_mobile"; 409 *cpu_type = "i386/p6_mobile";
408 break; 410 break;
409 case 10 ... 13:
410 *cpu_type = "i386/p6";
411 break;
412 case 14: 411 case 14:
413 *cpu_type = "i386/core"; 412 *cpu_type = "i386/core";
414 break; 413 break;
diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
index 3f1b81a83e2e..e9f80c744cf3 100644
--- a/arch/x86/oprofile/op_model_ppro.c
+++ b/arch/x86/oprofile/op_model_ppro.c
@@ -69,7 +69,7 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs)
69 int i; 69 int i;
70 70
71 if (!reset_value) { 71 if (!reset_value) {
72 reset_value = kmalloc(sizeof(unsigned) * num_counters, 72 reset_value = kmalloc(sizeof(reset_value[0]) * num_counters,
73 GFP_ATOMIC); 73 GFP_ATOMIC);
74 if (!reset_value) 74 if (!reset_value)
75 return; 75 return;
@@ -156,6 +156,8 @@ static void ppro_start(struct op_msrs const * const msrs)
156 unsigned int low, high; 156 unsigned int low, high;
157 int i; 157 int i;
158 158
159 if (!reset_value)
160 return;
159 for (i = 0; i < num_counters; ++i) { 161 for (i = 0; i < num_counters; ++i) {
160 if (reset_value[i]) { 162 if (reset_value[i]) {
161 CTRL_READ(low, high, msrs, i); 163 CTRL_READ(low, high, msrs, i);
@@ -171,6 +173,8 @@ static void ppro_stop(struct op_msrs const * const msrs)
171 unsigned int low, high; 173 unsigned int low, high;
172 int i; 174 int i;
173 175
176 if (!reset_value)
177 return;
174 for (i = 0; i < num_counters; ++i) { 178 for (i = 0; i < num_counters; ++i) {
175 if (!reset_value[i]) 179 if (!reset_value[i])
176 continue; 180 continue;
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
index 3c27a809393b..2051dc96b8e9 100644
--- a/arch/x86/pci/fixup.c
+++ b/arch/x86/pci/fixup.c
@@ -496,21 +496,24 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SIEMENS, 0x0015,
496 pci_siemens_interrupt_controller); 496 pci_siemens_interrupt_controller);
497 497
498/* 498/*
499 * Regular PCI devices have 256 bytes, but AMD Family 10h Opteron ext config 499 * Regular PCI devices have 256 bytes, but AMD Family 10h/11h CPUs have
500 * have 4096 bytes. Even if the device is capable, that doesn't mean we can 500 * 4096 bytes configuration space for each function of their processor
501 * access it. Maybe we don't have a way to generate extended config space 501 * configuration space.
502 * accesses. So check it
503 */ 502 */
504static void fam10h_pci_cfg_space_size(struct pci_dev *dev) 503static void amd_cpu_pci_cfg_space_size(struct pci_dev *dev)
505{ 504{
506 dev->cfg_size = pci_cfg_space_size_ext(dev); 505 dev->cfg_size = pci_cfg_space_size_ext(dev);
507} 506}
508 507DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1200, amd_cpu_pci_cfg_space_size);
509DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1200, fam10h_pci_cfg_space_size); 508DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1201, amd_cpu_pci_cfg_space_size);
510DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1201, fam10h_pci_cfg_space_size); 509DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1202, amd_cpu_pci_cfg_space_size);
511DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1202, fam10h_pci_cfg_space_size); 510DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1203, amd_cpu_pci_cfg_space_size);
512DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1203, fam10h_pci_cfg_space_size); 511DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1204, amd_cpu_pci_cfg_space_size);
513DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1204, fam10h_pci_cfg_space_size); 512DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1300, amd_cpu_pci_cfg_space_size);
513DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1301, amd_cpu_pci_cfg_space_size);
514DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1302, amd_cpu_pci_cfg_space_size);
515DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1303, amd_cpu_pci_cfg_space_size);
516DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1304, amd_cpu_pci_cfg_space_size);
514 517
515/* 518/*
516 * SB600: Disable BAR1 on device 14.0 to avoid HPET resources from 519 * SB600: Disable BAR1 on device 14.0 to avoid HPET resources from
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 688936044dc9..636ef4caa52d 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -661,12 +661,11 @@ void xen_set_pgd(pgd_t *ptr, pgd_t val)
661 * For 64-bit, we must skip the Xen hole in the middle of the address 661 * For 64-bit, we must skip the Xen hole in the middle of the address
662 * space, just after the big x86-64 virtual hole. 662 * space, just after the big x86-64 virtual hole.
663 */ 663 */
664static int xen_pgd_walk(struct mm_struct *mm, 664static int __xen_pgd_walk(struct mm_struct *mm, pgd_t *pgd,
665 int (*func)(struct mm_struct *mm, struct page *, 665 int (*func)(struct mm_struct *mm, struct page *,
666 enum pt_level), 666 enum pt_level),
667 unsigned long limit) 667 unsigned long limit)
668{ 668{
669 pgd_t *pgd = mm->pgd;
670 int flush = 0; 669 int flush = 0;
671 unsigned hole_low, hole_high; 670 unsigned hole_low, hole_high;
672 unsigned pgdidx_limit, pudidx_limit, pmdidx_limit; 671 unsigned pgdidx_limit, pudidx_limit, pmdidx_limit;
@@ -753,6 +752,14 @@ out:
753 return flush; 752 return flush;
754} 753}
755 754
755static int xen_pgd_walk(struct mm_struct *mm,
756 int (*func)(struct mm_struct *mm, struct page *,
757 enum pt_level),
758 unsigned long limit)
759{
760 return __xen_pgd_walk(mm, mm->pgd, func, limit);
761}
762
756/* If we're using split pte locks, then take the page's lock and 763/* If we're using split pte locks, then take the page's lock and
757 return a pointer to it. Otherwise return NULL. */ 764 return a pointer to it. Otherwise return NULL. */
758static spinlock_t *xen_pte_lock(struct page *page, struct mm_struct *mm) 765static spinlock_t *xen_pte_lock(struct page *page, struct mm_struct *mm)
@@ -854,7 +861,7 @@ static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd)
854 861
855 xen_mc_batch(); 862 xen_mc_batch();
856 863
857 if (xen_pgd_walk(mm, xen_pin_page, USER_LIMIT)) { 864 if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) {
858 /* re-enable interrupts for flushing */ 865 /* re-enable interrupts for flushing */
859 xen_mc_issue(0); 866 xen_mc_issue(0);
860 867
@@ -998,7 +1005,7 @@ static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd)
998 PT_PMD); 1005 PT_PMD);
999#endif 1006#endif
1000 1007
1001 xen_pgd_walk(mm, xen_unpin_page, USER_LIMIT); 1008 __xen_pgd_walk(mm, pgd, xen_unpin_page, USER_LIMIT);
1002 1009
1003 xen_mc_issue(0); 1010 xen_mc_issue(0);
1004} 1011}
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index d77da613b1d2..acd9b6705e02 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -362,7 +362,7 @@ static void xen_cpu_die(unsigned int cpu)
362 alternatives_smp_switch(0); 362 alternatives_smp_switch(0);
363} 363}
364 364
365static void xen_play_dead(void) 365static void __cpuinit xen_play_dead(void) /* used only with CPU_HOTPLUG */
366{ 366{
367 play_dead_common(); 367 play_dead_common();
368 HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); 368 HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL);
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index d7422dc2a55c..9e1afae8461f 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -49,7 +49,7 @@ bool xen_vcpu_stolen(int vcpu);
49 49
50void xen_mark_init_mm_pinned(void); 50void xen_mark_init_mm_pinned(void);
51 51
52void __init xen_setup_vcpu_info_placement(void); 52void xen_setup_vcpu_info_placement(void);
53 53
54#ifdef CONFIG_SMP 54#ifdef CONFIG_SMP
55void xen_smp_init(void); 55void xen_smp_init(void);
diff --git a/block/blk-barrier.c b/block/blk-barrier.c
index 5c99ff8d2db8..6e72d661ae42 100644
--- a/block/blk-barrier.c
+++ b/block/blk-barrier.c
@@ -161,7 +161,7 @@ static inline struct request *start_ordered(struct request_queue *q,
161 /* 161 /*
162 * Prep proxy barrier request. 162 * Prep proxy barrier request.
163 */ 163 */
164 blkdev_dequeue_request(rq); 164 elv_dequeue_request(q, rq);
165 q->orig_bar_rq = rq; 165 q->orig_bar_rq = rq;
166 rq = &q->bar_rq; 166 rq = &q->bar_rq;
167 blk_rq_init(q, rq); 167 blk_rq_init(q, rq);
@@ -219,7 +219,7 @@ int blk_do_ordered(struct request_queue *q, struct request **rqp)
219 * This can happen when the queue switches to 219 * This can happen when the queue switches to
220 * ORDERED_NONE while this request is on it. 220 * ORDERED_NONE while this request is on it.
221 */ 221 */
222 blkdev_dequeue_request(rq); 222 elv_dequeue_request(q, rq);
223 if (__blk_end_request(rq, -EOPNOTSUPP, 223 if (__blk_end_request(rq, -EOPNOTSUPP,
224 blk_rq_bytes(rq))) 224 blk_rq_bytes(rq)))
225 BUG(); 225 BUG();
diff --git a/block/blk-core.c b/block/blk-core.c
index 10e8a64a5a5b..c36aa98fafa3 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -592,7 +592,7 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id)
592 1 << QUEUE_FLAG_STACKABLE); 592 1 << QUEUE_FLAG_STACKABLE);
593 q->queue_lock = lock; 593 q->queue_lock = lock;
594 594
595 blk_queue_segment_boundary(q, 0xffffffff); 595 blk_queue_segment_boundary(q, BLK_SEG_BOUNDARY_MASK);
596 596
597 blk_queue_make_request(q, __make_request); 597 blk_queue_make_request(q, __make_request);
598 blk_queue_max_segment_size(q, MAX_SEGMENT_SIZE); 598 blk_queue_max_segment_size(q, MAX_SEGMENT_SIZE);
@@ -1637,6 +1637,28 @@ int blk_insert_cloned_request(struct request_queue *q, struct request *rq)
1637EXPORT_SYMBOL_GPL(blk_insert_cloned_request); 1637EXPORT_SYMBOL_GPL(blk_insert_cloned_request);
1638 1638
1639/** 1639/**
1640 * blkdev_dequeue_request - dequeue request and start timeout timer
1641 * @req: request to dequeue
1642 *
1643 * Dequeue @req and start timeout timer on it. This hands off the
1644 * request to the driver.
1645 *
1646 * Block internal functions which don't want to start timer should
1647 * call elv_dequeue_request().
1648 */
1649void blkdev_dequeue_request(struct request *req)
1650{
1651 elv_dequeue_request(req->q, req);
1652
1653 /*
1654 * We are now handing the request to the hardware, add the
1655 * timeout handler.
1656 */
1657 blk_add_timer(req);
1658}
1659EXPORT_SYMBOL(blkdev_dequeue_request);
1660
1661/**
1640 * __end_that_request_first - end I/O on a request 1662 * __end_that_request_first - end I/O on a request
1641 * @req: the request being processed 1663 * @req: the request being processed
1642 * @error: %0 for success, < %0 for error 1664 * @error: %0 for success, < %0 for error
@@ -1774,7 +1796,7 @@ static void end_that_request_last(struct request *req, int error)
1774 blk_queue_end_tag(req->q, req); 1796 blk_queue_end_tag(req->q, req);
1775 1797
1776 if (blk_queued_rq(req)) 1798 if (blk_queued_rq(req))
1777 blkdev_dequeue_request(req); 1799 elv_dequeue_request(req->q, req);
1778 1800
1779 if (unlikely(laptop_mode) && blk_fs_request(req)) 1801 if (unlikely(laptop_mode) && blk_fs_request(req))
1780 laptop_io_completion(); 1802 laptop_io_completion();
diff --git a/block/blk-map.c b/block/blk-map.c
index 0f4b4b881811..2990447f45e9 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -224,7 +224,7 @@ int blk_rq_map_user_iov(struct request_queue *q, struct request *rq,
224 */ 224 */
225 bio_get(bio); 225 bio_get(bio);
226 bio_endio(bio, 0); 226 bio_endio(bio, 0);
227 bio_unmap_user(bio); 227 __blk_rq_unmap_user(bio);
228 return -EINVAL; 228 return -EINVAL;
229 } 229 }
230 230
diff --git a/block/blk-settings.c b/block/blk-settings.c
index 41392fbe19ff..afa55e14e278 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -125,6 +125,9 @@ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)
125 q->nr_requests = BLKDEV_MAX_RQ; 125 q->nr_requests = BLKDEV_MAX_RQ;
126 blk_queue_max_phys_segments(q, MAX_PHYS_SEGMENTS); 126 blk_queue_max_phys_segments(q, MAX_PHYS_SEGMENTS);
127 blk_queue_max_hw_segments(q, MAX_HW_SEGMENTS); 127 blk_queue_max_hw_segments(q, MAX_HW_SEGMENTS);
128 blk_queue_segment_boundary(q, BLK_SEG_BOUNDARY_MASK);
129 blk_queue_max_segment_size(q, MAX_SEGMENT_SIZE);
130
128 q->make_request_fn = mfn; 131 q->make_request_fn = mfn;
129 q->backing_dev_info.ra_pages = 132 q->backing_dev_info.ra_pages =
130 (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE; 133 (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE;
@@ -314,6 +317,7 @@ void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b)
314 /* zero is "infinity" */ 317 /* zero is "infinity" */
315 t->max_sectors = min_not_zero(t->max_sectors, b->max_sectors); 318 t->max_sectors = min_not_zero(t->max_sectors, b->max_sectors);
316 t->max_hw_sectors = min_not_zero(t->max_hw_sectors, b->max_hw_sectors); 319 t->max_hw_sectors = min_not_zero(t->max_hw_sectors, b->max_hw_sectors);
320 t->seg_boundary_mask = min_not_zero(t->seg_boundary_mask, b->seg_boundary_mask);
317 321
318 t->max_phys_segments = min(t->max_phys_segments, b->max_phys_segments); 322 t->max_phys_segments = min(t->max_phys_segments, b->max_phys_segments);
319 t->max_hw_segments = min(t->max_hw_segments, b->max_hw_segments); 323 t->max_hw_segments = min(t->max_hw_segments, b->max_hw_segments);
diff --git a/block/bsg.c b/block/bsg.c
index e8bd2475682a..e73e50daf3d0 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -202,6 +202,8 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
202 rq->timeout = q->sg_timeout; 202 rq->timeout = q->sg_timeout;
203 if (!rq->timeout) 203 if (!rq->timeout)
204 rq->timeout = BLK_DEFAULT_SG_TIMEOUT; 204 rq->timeout = BLK_DEFAULT_SG_TIMEOUT;
205 if (rq->timeout < BLK_MIN_SG_TIMEOUT)
206 rq->timeout = BLK_MIN_SG_TIMEOUT;
205 207
206 return 0; 208 return 0;
207} 209}
diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
index 3d3e7a46f38c..67eb93cff699 100644
--- a/block/compat_ioctl.c
+++ b/block/compat_ioctl.c
@@ -677,6 +677,29 @@ static int compat_blkdev_driver_ioctl(struct block_device *bdev, fmode_t mode,
677 case DVD_WRITE_STRUCT: 677 case DVD_WRITE_STRUCT:
678 case DVD_AUTH: 678 case DVD_AUTH:
679 arg = (unsigned long)compat_ptr(arg); 679 arg = (unsigned long)compat_ptr(arg);
680 /* These intepret arg as an unsigned long, not as a pointer,
681 * so we must not do compat_ptr() conversion. */
682 case HDIO_SET_MULTCOUNT:
683 case HDIO_SET_UNMASKINTR:
684 case HDIO_SET_KEEPSETTINGS:
685 case HDIO_SET_32BIT:
686 case HDIO_SET_NOWERR:
687 case HDIO_SET_DMA:
688 case HDIO_SET_PIO_MODE:
689 case HDIO_SET_NICE:
690 case HDIO_SET_WCACHE:
691 case HDIO_SET_ACOUSTIC:
692 case HDIO_SET_BUSSTATE:
693 case HDIO_SET_ADDRESS:
694 case CDROMEJECT_SW:
695 case CDROM_SET_OPTIONS:
696 case CDROM_CLEAR_OPTIONS:
697 case CDROM_SELECT_SPEED:
698 case CDROM_SELECT_DISC:
699 case CDROM_MEDIA_CHANGED:
700 case CDROM_DRIVE_STATUS:
701 case CDROM_LOCKDOOR:
702 case CDROM_DEBUG:
680 break; 703 break;
681 default: 704 default:
682 /* unknown ioctl number */ 705 /* unknown ioctl number */
@@ -699,8 +722,14 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg)
699 struct backing_dev_info *bdi; 722 struct backing_dev_info *bdi;
700 loff_t size; 723 loff_t size;
701 724
725 /*
726 * O_NDELAY can be altered using fcntl(.., F_SETFL, ..), so we have
727 * to updated it before every ioctl.
728 */
702 if (file->f_flags & O_NDELAY) 729 if (file->f_flags & O_NDELAY)
703 mode |= FMODE_NDELAY_NOW; 730 mode |= FMODE_NDELAY;
731 else
732 mode &= ~FMODE_NDELAY;
704 733
705 switch (cmd) { 734 switch (cmd) {
706 case HDIO_GETGEO: 735 case HDIO_GETGEO:
diff --git a/block/elevator.c b/block/elevator.c
index 9ac82dde99dd..a6951f76ba0c 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -844,14 +844,7 @@ void elv_dequeue_request(struct request_queue *q, struct request *rq)
844 */ 844 */
845 if (blk_account_rq(rq)) 845 if (blk_account_rq(rq))
846 q->in_flight++; 846 q->in_flight++;
847
848 /*
849 * We are now handing the request to the hardware, add the
850 * timeout handler.
851 */
852 blk_add_timer(rq);
853} 847}
854EXPORT_SYMBOL(elv_dequeue_request);
855 848
856int elv_queue_empty(struct request_queue *q) 849int elv_queue_empty(struct request_queue *q)
857{ 850{
diff --git a/block/genhd.c b/block/genhd.c
index 27549e470da5..2f7feda61e35 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -1102,6 +1102,7 @@ struct gendisk *alloc_disk_node(int minors, int node_id)
1102 kfree(disk); 1102 kfree(disk);
1103 return NULL; 1103 return NULL;
1104 } 1104 }
1105 disk->node_id = node_id;
1105 if (disk_expand_part_tbl(disk, 0)) { 1106 if (disk_expand_part_tbl(disk, 0)) {
1106 free_part_stats(&disk->part0); 1107 free_part_stats(&disk->part0);
1107 kfree(disk); 1108 kfree(disk);
@@ -1116,7 +1117,6 @@ struct gendisk *alloc_disk_node(int minors, int node_id)
1116 device_initialize(disk_to_dev(disk)); 1117 device_initialize(disk_to_dev(disk));
1117 INIT_WORK(&disk->async_notify, 1118 INIT_WORK(&disk->async_notify,
1118 media_change_notify_thread); 1119 media_change_notify_thread);
1119 disk->node_id = node_id;
1120 } 1120 }
1121 return disk; 1121 return disk;
1122} 1122}
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
index 5963cf91a3a0..d0bb92cbefb9 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -208,6 +208,8 @@ static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
208 rq->timeout = q->sg_timeout; 208 rq->timeout = q->sg_timeout;
209 if (!rq->timeout) 209 if (!rq->timeout)
210 rq->timeout = BLK_DEFAULT_SG_TIMEOUT; 210 rq->timeout = BLK_DEFAULT_SG_TIMEOUT;
211 if (rq->timeout < BLK_MIN_SG_TIMEOUT)
212 rq->timeout = BLK_MIN_SG_TIMEOUT;
211 213
212 return 0; 214 return 0;
213} 215}
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 39dbd8e4dde1..dc20a34ba5ef 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -31,35 +31,63 @@ config CRYPTO_FIPS
31 31
32config CRYPTO_ALGAPI 32config CRYPTO_ALGAPI
33 tristate 33 tristate
34 select CRYPTO_ALGAPI2
34 help 35 help
35 This option provides the API for cryptographic algorithms. 36 This option provides the API for cryptographic algorithms.
36 37
38config CRYPTO_ALGAPI2
39 tristate
40
37config CRYPTO_AEAD 41config CRYPTO_AEAD
38 tristate 42 tristate
43 select CRYPTO_AEAD2
39 select CRYPTO_ALGAPI 44 select CRYPTO_ALGAPI
40 45
46config CRYPTO_AEAD2
47 tristate
48 select CRYPTO_ALGAPI2
49
41config CRYPTO_BLKCIPHER 50config CRYPTO_BLKCIPHER
42 tristate 51 tristate
52 select CRYPTO_BLKCIPHER2
43 select CRYPTO_ALGAPI 53 select CRYPTO_ALGAPI
44 select CRYPTO_RNG 54
55config CRYPTO_BLKCIPHER2
56 tristate
57 select CRYPTO_ALGAPI2
58 select CRYPTO_RNG2
45 59
46config CRYPTO_HASH 60config CRYPTO_HASH
47 tristate 61 tristate
62 select CRYPTO_HASH2
48 select CRYPTO_ALGAPI 63 select CRYPTO_ALGAPI
49 64
65config CRYPTO_HASH2
66 tristate
67 select CRYPTO_ALGAPI2
68
50config CRYPTO_RNG 69config CRYPTO_RNG
51 tristate 70 tristate
71 select CRYPTO_RNG2
52 select CRYPTO_ALGAPI 72 select CRYPTO_ALGAPI
53 73
74config CRYPTO_RNG2
75 tristate
76 select CRYPTO_ALGAPI2
77
54config CRYPTO_MANAGER 78config CRYPTO_MANAGER
55 tristate "Cryptographic algorithm manager" 79 tristate "Cryptographic algorithm manager"
56 select CRYPTO_AEAD 80 select CRYPTO_MANAGER2
57 select CRYPTO_HASH
58 select CRYPTO_BLKCIPHER
59 help 81 help
60 Create default cryptographic template instantiations such as 82 Create default cryptographic template instantiations such as
61 cbc(aes). 83 cbc(aes).
62 84
85config CRYPTO_MANAGER2
86 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
87 select CRYPTO_AEAD2
88 select CRYPTO_HASH2
89 select CRYPTO_BLKCIPHER2
90
63config CRYPTO_GF128MUL 91config CRYPTO_GF128MUL
64 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)" 92 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
65 depends on EXPERIMENTAL 93 depends on EXPERIMENTAL
diff --git a/crypto/Makefile b/crypto/Makefile
index 5862b807334e..cd4a4ed078ff 100644
--- a/crypto/Makefile
+++ b/crypto/Makefile
@@ -9,24 +9,24 @@ obj-$(CONFIG_CRYPTO_FIPS) += fips.o
9 9
10crypto_algapi-$(CONFIG_PROC_FS) += proc.o 10crypto_algapi-$(CONFIG_PROC_FS) += proc.o
11crypto_algapi-objs := algapi.o scatterwalk.o $(crypto_algapi-y) 11crypto_algapi-objs := algapi.o scatterwalk.o $(crypto_algapi-y)
12obj-$(CONFIG_CRYPTO_ALGAPI) += crypto_algapi.o 12obj-$(CONFIG_CRYPTO_ALGAPI2) += crypto_algapi.o
13 13
14obj-$(CONFIG_CRYPTO_AEAD) += aead.o 14obj-$(CONFIG_CRYPTO_AEAD2) += aead.o
15 15
16crypto_blkcipher-objs := ablkcipher.o 16crypto_blkcipher-objs := ablkcipher.o
17crypto_blkcipher-objs += blkcipher.o 17crypto_blkcipher-objs += blkcipher.o
18obj-$(CONFIG_CRYPTO_BLKCIPHER) += crypto_blkcipher.o 18obj-$(CONFIG_CRYPTO_BLKCIPHER2) += crypto_blkcipher.o
19obj-$(CONFIG_CRYPTO_BLKCIPHER) += chainiv.o 19obj-$(CONFIG_CRYPTO_BLKCIPHER2) += chainiv.o
20obj-$(CONFIG_CRYPTO_BLKCIPHER) += eseqiv.o 20obj-$(CONFIG_CRYPTO_BLKCIPHER2) += eseqiv.o
21obj-$(CONFIG_CRYPTO_SEQIV) += seqiv.o 21obj-$(CONFIG_CRYPTO_SEQIV) += seqiv.o
22 22
23crypto_hash-objs := hash.o 23crypto_hash-objs := hash.o
24crypto_hash-objs += ahash.o 24crypto_hash-objs += ahash.o
25obj-$(CONFIG_CRYPTO_HASH) += crypto_hash.o 25obj-$(CONFIG_CRYPTO_HASH2) += crypto_hash.o
26 26
27cryptomgr-objs := algboss.o testmgr.o 27cryptomgr-objs := algboss.o testmgr.o
28 28
29obj-$(CONFIG_CRYPTO_MANAGER) += cryptomgr.o 29obj-$(CONFIG_CRYPTO_MANAGER2) += cryptomgr.o
30obj-$(CONFIG_CRYPTO_HMAC) += hmac.o 30obj-$(CONFIG_CRYPTO_HMAC) += hmac.o
31obj-$(CONFIG_CRYPTO_XCBC) += xcbc.o 31obj-$(CONFIG_CRYPTO_XCBC) += xcbc.o
32obj-$(CONFIG_CRYPTO_NULL) += crypto_null.o 32obj-$(CONFIG_CRYPTO_NULL) += crypto_null.o
@@ -73,8 +73,8 @@ obj-$(CONFIG_CRYPTO_MICHAEL_MIC) += michael_mic.o
73obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o 73obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o
74obj-$(CONFIG_CRYPTO_AUTHENC) += authenc.o 74obj-$(CONFIG_CRYPTO_AUTHENC) += authenc.o
75obj-$(CONFIG_CRYPTO_LZO) += lzo.o 75obj-$(CONFIG_CRYPTO_LZO) += lzo.o
76obj-$(CONFIG_CRYPTO_RNG) += rng.o 76obj-$(CONFIG_CRYPTO_RNG2) += rng.o
77obj-$(CONFIG_CRYPTO_RNG) += krng.o 77obj-$(CONFIG_CRYPTO_RNG2) += krng.o
78obj-$(CONFIG_CRYPTO_ANSI_CPRNG) += ansi_cprng.o 78obj-$(CONFIG_CRYPTO_ANSI_CPRNG) += ansi_cprng.o
79obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o 79obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o
80 80
diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c
index c029d3eb9ef0..595b78672b36 100644
--- a/crypto/async_tx/async_xor.c
+++ b/crypto/async_tx/async_xor.c
@@ -53,10 +53,17 @@ do_async_xor(struct dma_chan *chan, struct page *dest, struct page **src_list,
53 int xor_src_cnt; 53 int xor_src_cnt;
54 dma_addr_t dma_dest; 54 dma_addr_t dma_dest;
55 55
56 dma_dest = dma_map_page(dma->dev, dest, offset, len, DMA_FROM_DEVICE); 56 /* map the dest bidrectional in case it is re-used as a source */
57 for (i = 0; i < src_cnt; i++) 57 dma_dest = dma_map_page(dma->dev, dest, offset, len, DMA_BIDIRECTIONAL);
58 for (i = 0; i < src_cnt; i++) {
59 /* only map the dest once */
60 if (unlikely(src_list[i] == dest)) {
61 dma_src[i] = dma_dest;
62 continue;
63 }
58 dma_src[i] = dma_map_page(dma->dev, src_list[i], offset, 64 dma_src[i] = dma_map_page(dma->dev, src_list[i], offset,
59 len, DMA_TO_DEVICE); 65 len, DMA_TO_DEVICE);
66 }
60 67
61 while (src_cnt) { 68 while (src_cnt) {
62 async_flags = flags; 69 async_flags = flags;
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
index ea92bac42c53..09c69806c1fc 100644
--- a/drivers/acpi/blacklist.c
+++ b/drivers/acpi/blacklist.c
@@ -176,16 +176,6 @@ static int __init dmi_enable_osi_linux(const struct dmi_system_id *d)
176 acpi_dmi_osi_linux(1, d); /* enable */ 176 acpi_dmi_osi_linux(1, d); /* enable */
177 return 0; 177 return 0;
178} 178}
179static int __init dmi_disable_osi_linux(const struct dmi_system_id *d)
180{
181 acpi_dmi_osi_linux(0, d); /* disable */
182 return 0;
183}
184static int __init dmi_unknown_osi_linux(const struct dmi_system_id *d)
185{
186 acpi_dmi_osi_linux(-1, d); /* unknown */
187 return 0;
188}
189static int __init dmi_disable_osi_vista(const struct dmi_system_id *d) 179static int __init dmi_disable_osi_vista(const struct dmi_system_id *d)
190{ 180{
191 printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident); 181 printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident);
@@ -193,295 +183,21 @@ static int __init dmi_disable_osi_vista(const struct dmi_system_id *d)
193 return 0; 183 return 0;
194} 184}
195 185
196/*
197 * Most BIOS that invoke OSI(Linux) do nothing with it.
198 * But some cause Linux to break.
199 * Only a couple use it to make Linux run better.
200 *
201 * Thus, Linux should continue to disable OSI(Linux) by default,
202 * should continue to discourage BIOS writers from using it, and
203 * should whitelist the few existing systems that require it.
204 *
205 * If it appears clear a vendor isn't using OSI(Linux)
206 * for anything constructive, blacklist them by name to disable
207 * unnecessary dmesg warnings on all of their products.
208 */
209
210static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { 186static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
211 /*
212 * Disable OSI(Linux) warnings on all "Acer, inc."
213 *
214 * _OSI(Linux) disables the latest Windows BIOS code:
215 * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 3100"),
216 * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5050"),
217 * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5100"),
218 * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5580"),
219 * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 3010"),
220 * _OSI(Linux) effect unknown:
221 * DMI_MATCH(DMI_PRODUCT_NAME, "Ferrari 5000"),
222 */
223 /*
224 * note that dmi_check_system() uses strstr()
225 * to match sub-strings rather than !strcmp(),
226 * so "Acer" below matches "Acer, inc." above.
227 */
228 /*
229 * Disable OSI(Linux) warnings on all "Acer"
230 *
231 * _OSI(Linux) effect unknown:
232 * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"),
233 * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720Z"),
234 * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 5520"),
235 * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 6460"),
236 * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 7510"),
237 *
238 * _OSI(Linux) is a NOP:
239 * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5315"),
240 * DMI_MATCH(DMI_PRODUCT_NAME, "Extensa 5220"),
241 */
242 {
243 .callback = dmi_disable_osi_linux,
244 .ident = "Acer",
245 .matches = {
246 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
247 },
248 },
249 /*
250 * Disable OSI(Linux) warnings on all "Apple Computer, Inc."
251 * Disable OSI(Linux) warnings on all "Apple Inc."
252 *
253 * _OSI(Linux) confirmed to be a NOP:
254 * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"),
255 * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook2,1"),
256 * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro2,2"),
257 * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro3,1"),
258 * _OSI(Linux) effect unknown:
259 * DMI_MATCH(DMI_PRODUCT_NAME, "MacPro2,1"),
260 * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro1,1"),
261 */
262 {
263 .callback = dmi_disable_osi_linux,
264 .ident = "Apple",
265 .matches = {
266 DMI_MATCH(DMI_SYS_VENDOR, "Apple"),
267 },
268 },
269 /*
270 * Disable OSI(Linux) warnings on all "BenQ"
271 *
272 * _OSI(Linux) confirmed to be a NOP:
273 * DMI_MATCH(DMI_PRODUCT_NAME, "Joybook S31"),
274 */
275 {
276 .callback = dmi_disable_osi_linux,
277 .ident = "BenQ",
278 .matches = {
279 DMI_MATCH(DMI_SYS_VENDOR, "BenQ"),
280 },
281 },
282 /*
283 * Disable OSI(Linux) warnings on all "Clevo Co."
284 *
285 * _OSI(Linux) confirmed to be a NOP:
286 * DMI_MATCH(DMI_PRODUCT_NAME, "M570RU"),
287 */
288 {
289 .callback = dmi_disable_osi_linux,
290 .ident = "Clevo",
291 .matches = {
292 DMI_MATCH(DMI_SYS_VENDOR, "Clevo Co."),
293 },
294 },
295 /*
296 * Disable OSI(Linux) warnings on all "COMPAL"
297 *
298 * _OSI(Linux) confirmed to be a NOP:
299 * DMI_MATCH(DMI_BOARD_NAME, "HEL8X"),
300 * _OSI(Linux) unknown effect:
301 * DMI_MATCH(DMI_BOARD_NAME, "IFL91"),
302 */
303 {
304 .callback = dmi_disable_osi_linux,
305 .ident = "Compal",
306 .matches = {
307 DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"),
308 },
309 },
310 { /* OSI(Linux) touches USB, unknown side-effect */
311 .callback = dmi_disable_osi_linux,
312 .ident = "Dell Dimension 5150",
313 .matches = {
314 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
315 DMI_MATCH(DMI_PRODUCT_NAME, "Dell DM051"),
316 },
317 },
318 { /* OSI(Linux) is a NOP */
319 .callback = dmi_disable_osi_linux,
320 .ident = "Dell i1501",
321 .matches = {
322 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
323 DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1501"),
324 },
325 },
326 { /* OSI(Linux) effect unknown */
327 .callback = dmi_unknown_osi_linux,
328 .ident = "Dell Latitude D830",
329 .matches = {
330 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
331 DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D830"),
332 },
333 },
334 { /* OSI(Linux) effect unknown */
335 .callback = dmi_unknown_osi_linux,
336 .ident = "Dell OptiPlex GX620",
337 .matches = {
338 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
339 DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex GX620"),
340 },
341 },
342 { /* OSI(Linux) causes some USB initialization to not run */
343 .callback = dmi_unknown_osi_linux,
344 .ident = "Dell OptiPlex 755",
345 .matches = {
346 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
347 DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 755"),
348 },
349 },
350 { /* OSI(Linux) effect unknown */
351 .callback = dmi_unknown_osi_linux,
352 .ident = "Dell PE 1900",
353 .matches = {
354 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
355 DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1900"),
356 },
357 },
358 { /* OSI(Linux) is a NOP */
359 .callback = dmi_unknown_osi_linux,
360 .ident = "Dell PE 1950",
361 .matches = {
362 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
363 DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1950"),
364 },
365 },
366 { /* OSI(Linux) is a NOP */
367 .callback = dmi_disable_osi_linux,
368 .ident = "Dell PE R200",
369 .matches = {
370 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
371 DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R200"),
372 },
373 },
374 { /* OSI(Linux) touches USB */
375 .callback = dmi_disable_osi_linux,
376 .ident = "Dell PR 390",
377 .matches = {
378 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
379 DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation 390"),
380 },
381 },
382 { /* OSI(Linux) touches USB */
383 .callback = dmi_unknown_osi_linux,
384 .ident = "Dell PR 390",
385 .matches = {
386 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
387 DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation 690"),
388 },
389 },
390 { /* OSI(Linux) unknown - ASL looks benign, but may effect dock/SMM */
391 .callback = dmi_unknown_osi_linux,
392 .ident = "Dell PR M4300",
393 .matches = {
394 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
395 DMI_MATCH(DMI_PRODUCT_NAME, "Precision M4300"),
396 },
397 },
398 { /* OSI(Linux) is a NOP */
399 .callback = dmi_disable_osi_linux,
400 .ident = "Dell Vostro 1000",
401 .matches = {
402 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
403 DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 1000"),
404 },
405 },
406 { /* OSI(Linux) effect unknown */
407 .callback = dmi_unknown_osi_linux,
408 .ident = "Dell PE SC440",
409 .matches = {
410 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
411 DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge SC440"),
412 },
413 },
414 { /* OSI(Linux) effect unknown */
415 .callback = dmi_unknown_osi_linux,
416 .ident = "Dialogue Flybook V5",
417 .matches = {
418 DMI_MATCH(DMI_SYS_VENDOR, "Dialogue Technology Corporation"),
419 DMI_MATCH(DMI_PRODUCT_NAME, "Flybook V5"),
420 },
421 },
422 /*
423 * Disable OSI(Linux) warnings on all "FUJITSU SIEMENS"
424 *
425 * _OSI(Linux) disables latest Windows BIOS code:
426 * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pa 2510"),
427 * _OSI(Linux) confirmed to be a NOP:
428 * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pi 1536"),
429 * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pi 1556"),
430 * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 1546"),
431 * DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"),
432 * _OSI(Linux) unknown effect:
433 * DMI_MATCH(DMI_PRODUCT_NAME, "Amilo M1425"),
434 * DMI_MATCH(DMI_PRODUCT_NAME, "Amilo Si 1520"),
435 */
436 {
437 .callback = dmi_disable_osi_linux,
438 .ident = "Fujitsu Siemens",
439 .matches = {
440 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
441 },
442 },
443 { 187 {
444 .callback = dmi_disable_osi_vista, 188 .callback = dmi_disable_osi_vista,
445 .ident = "Fujitsu Siemens", 189 .ident = "Fujitsu Siemens",
446 .matches = { 190 .matches = {
447 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), 191 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
448 DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"), 192 DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"),
449 }, 193 },
450 }, 194 },
195
451 /* 196 /*
452 * Disable OSI(Linux) warnings on all "Hewlett-Packard" 197 * BIOS invocation of _OSI(Linux) is almost always a BIOS bug.
453 * 198 * Linux ignores it, except for the machines enumerated below.
454 * _OSI(Linux) confirmed to be a NOP:
455 * .ident = "HP Pavilion tx 1000"
456 * DMI_MATCH(DMI_BOARD_NAME, "30BF"),
457 * .ident = "HP Pavilion dv2000"
458 * DMI_MATCH(DMI_BOARD_NAME, "30B5"),
459 * .ident = "HP Pavilion dv5000",
460 * DMI_MATCH(DMI_BOARD_NAME, "30A7"),
461 * .ident = "HP Pavilion dv6300 30BC",
462 * DMI_MATCH(DMI_BOARD_NAME, "30BC"),
463 * .ident = "HP Pavilion dv6000",
464 * DMI_MATCH(DMI_BOARD_NAME, "30B7"),
465 * DMI_MATCH(DMI_BOARD_NAME, "30B8"),
466 * .ident = "HP Pavilion dv9000",
467 * DMI_MATCH(DMI_BOARD_NAME, "30B9"),
468 * .ident = "HP Pavilion dv9500",
469 * DMI_MATCH(DMI_BOARD_NAME, "30CB"),
470 * .ident = "HP/Compaq Presario C500",
471 * DMI_MATCH(DMI_BOARD_NAME, "30C6"),
472 * .ident = "HP/Compaq Presario F500",
473 * DMI_MATCH(DMI_BOARD_NAME, "30D3"),
474 * _OSI(Linux) unknown effect:
475 * .ident = "HP Pavilion dv6500",
476 * DMI_MATCH(DMI_BOARD_NAME, "30D0"),
477 */ 199 */
478 { 200
479 .callback = dmi_disable_osi_linux,
480 .ident = "Hewlett-Packard",
481 .matches = {
482 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
483 },
484 },
485 /* 201 /*
486 * Lenovo has a mix of systems OSI(Linux) situations 202 * Lenovo has a mix of systems OSI(Linux) situations
487 * and thus we can not wildcard the vendor. 203 * and thus we can not wildcard the vendor.
@@ -519,113 +235,6 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
519 DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X61"), 235 DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X61"),
520 }, 236 },
521 }, 237 },
522 {
523 .callback = dmi_disable_osi_linux,
524 .ident = "Lenovo 3000 V100",
525 .matches = {
526 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
527 DMI_MATCH(DMI_PRODUCT_VERSION, "LENOVO3000 V100"),
528 },
529 },
530 {
531 .callback = dmi_disable_osi_linux,
532 .ident = "Lenovo 3000 N100",
533 .matches = {
534 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
535 DMI_MATCH(DMI_PRODUCT_VERSION, "3000 N100"),
536 },
537 },
538 /*
539 * Disable OSI(Linux) warnings on all "LG Electronics"
540 *
541 * _OSI(Linux) confirmed to be a NOP:
542 * DMI_MATCH(DMI_PRODUCT_NAME, "P1-J150B"),
543 * with DMI_MATCH(DMI_BOARD_NAME, "ROCKY"),
544 *
545 * unknown:
546 * DMI_MATCH(DMI_PRODUCT_NAME, "S1-MDGDG"),
547 * with DMI_MATCH(DMI_BOARD_NAME, "ROCKY"),
548 */
549 {
550 .callback = dmi_disable_osi_linux,
551 .ident = "LG",
552 .matches = {
553 DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"),
554 },
555 },
556 /* NEC - OSI(Linux) effect unknown */
557 {
558 .callback = dmi_unknown_osi_linux,
559 .ident = "NEC VERSA M360",
560 .matches = {
561 DMI_MATCH(DMI_SYS_VENDOR, "NEC Computers SAS"),
562 DMI_MATCH(DMI_PRODUCT_NAME, "NEC VERSA M360"),
563 },
564 },
565 /* Panasonic */
566 {
567 .callback = dmi_unknown_osi_linux,
568 .ident = "Panasonic",
569 .matches = {
570 DMI_MATCH(DMI_SYS_VENDOR, "Matsushita"),
571 /* Toughbook CF-52 */
572 DMI_MATCH(DMI_PRODUCT_NAME, "CF-52CCABVBG"),
573 },
574 },
575 /*
576 * Disable OSI(Linux) warnings on all "Samsung Electronics"
577 *
578 * OSI(Linux) disables PNP0C32 and other BIOS code for Windows:
579 * DMI_MATCH(DMI_PRODUCT_NAME, "R40P/R41P"),
580 * DMI_MATCH(DMI_PRODUCT_NAME, "R59P/R60P/R61P"),
581 */
582 {
583 .callback = dmi_disable_osi_linux,
584 .ident = "Samsung",
585 .matches = {
586 DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
587 },
588 },
589 /*
590 * Disable OSI(Linux) warnings on all "Sony Corporation"
591 *
592 * _OSI(Linux) is a NOP:
593 * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-NR11S_S"),
594 * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SZ38GP_C"),
595 * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SZ650N"),
596 * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-TZ21MN_N"),
597 * _OSI(Linux) unknown effect:
598 * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FZ11M"),
599 */
600 {
601 .callback = dmi_disable_osi_linux,
602 .ident = "Sony",
603 .matches = {
604 DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
605 },
606 },
607 /*
608 * Disable OSI(Linux) warnings on all "TOSHIBA"
609 *
610 * _OSI(Linux) breaks sound (bugzilla 7787):
611 * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P100"),
612 * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P105"),
613 * _OSI(Linux) is a NOP:
614 * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A100"),
615 * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A210"),
616 * _OSI(Linux) unknown effect:
617 * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A135"),
618 * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A200"),
619 * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P205"),
620 * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite U305"),
621 */
622 {
623 .callback = dmi_disable_osi_linux,
624 .ident = "Toshiba",
625 .matches = {
626 DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
627 },
628 },
629 {} 238 {}
630}; 239};
631 240
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 7edf6d913c13..765fd1c56cd6 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -688,14 +688,6 @@ void __init acpi_early_init(void)
688 if (acpi_disabled) 688 if (acpi_disabled)
689 return; 689 return;
690 690
691 /*
692 * ACPI CA initializes acpi_dbg_level to non-zero, which means
693 * we get debug output merely by turning on CONFIG_ACPI_DEBUG.
694 * Turn it off so we don't get output unless the user specifies
695 * acpi.debug_level.
696 */
697 acpi_dbg_level = 0;
698
699 printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION); 691 printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);
700 692
701 /* enable workarounds, unless strict ACPI spec. compliance */ 693 /* enable workarounds, unless strict ACPI spec. compliance */
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index cf41f9fc24a7..30f3ef236ecb 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -219,7 +219,8 @@ static void gpe_transaction(struct acpi_ec *ec, u8 status)
219 goto unlock; 219 goto unlock;
220err: 220err:
221 /* false interrupt, state didn't change */ 221 /* false interrupt, state didn't change */
222 ++ec->curr->irq_count; 222 if (in_interrupt())
223 ++ec->curr->irq_count;
223unlock: 224unlock:
224 spin_unlock_irqrestore(&ec->curr_lock, flags); 225 spin_unlock_irqrestore(&ec->curr_lock, flags);
225} 226}
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 4be252145cb4..c8111424dcb8 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -35,7 +35,6 @@
35#include <linux/interrupt.h> 35#include <linux/interrupt.h>
36#include <linux/kmod.h> 36#include <linux/kmod.h>
37#include <linux/delay.h> 37#include <linux/delay.h>
38#include <linux/dmi.h>
39#include <linux/workqueue.h> 38#include <linux/workqueue.h>
40#include <linux/nmi.h> 39#include <linux/nmi.h>
41#include <linux/acpi.h> 40#include <linux/acpi.h>
@@ -97,54 +96,44 @@ static DEFINE_SPINLOCK(acpi_res_lock);
97static char osi_additional_string[OSI_STRING_LENGTH_MAX]; 96static char osi_additional_string[OSI_STRING_LENGTH_MAX];
98 97
99/* 98/*
100 * "Ode to _OSI(Linux)" 99 * The story of _OSI(Linux)
101 * 100 *
102 * osi_linux -- Control response to BIOS _OSI(Linux) query. 101 * From pre-history through Linux-2.6.22,
102 * Linux responded TRUE upon a BIOS OSI(Linux) query.
103 * 103 *
104 * As Linux evolves, the features that it supports change. 104 * Unfortunately, reference BIOS writers got wind of this
105 * So an OSI string such as "Linux" is not specific enough 105 * and put OSI(Linux) in their example code, quickly exposing
106 * to be useful across multiple versions of Linux. It 106 * this string as ill-conceived and opening the door to
107 * doesn't identify any particular feature, interface, 107 * an un-bounded number of BIOS incompatibilities.
108 * or even any particular version of Linux...
109 * 108 *
110 * Unfortunately, Linux-2.6.22 and earlier responded "yes" 109 * For example, OSI(Linux) was used on resume to re-POST a
111 * to a BIOS _OSI(Linux) query. When 110 * video card on one system, because Linux at that time
112 * a reference mobile BIOS started using it, its use 111 * could not do a speedy restore in its native driver.
113 * started to spread to many vendor platforms. 112 * But then upon gaining quick native restore capability,
114 * As it is not supportable, we need to halt that spread. 113 * Linux has no way to tell the BIOS to skip the time-consuming
114 * POST -- putting Linux at a permanent performance disadvantage.
115 * On another system, the BIOS writer used OSI(Linux)
116 * to infer native OS support for IPMI! On other systems,
117 * OSI(Linux) simply got in the way of Linux claiming to
118 * be compatible with other operating systems, exposing
119 * BIOS issues such as skipped device initialization.
115 * 120 *
116 * Today, most BIOS references to _OSI(Linux) are noise -- 121 * So "Linux" turned out to be a really poor chose of
117 * they have no functional effect and are just dead code 122 * OSI string, and from Linux-2.6.23 onward we respond FALSE.
118 * carried over from the reference BIOS.
119 *
120 * The next most common case is that _OSI(Linux) harms Linux,
121 * usually by causing the BIOS to follow paths that are
122 * not tested during Windows validation.
123 *
124 * Finally, there is a short list of platforms
125 * where OSI(Linux) benefits Linux.
126 *
127 * In Linux-2.6.23, OSI(Linux) is first disabled by default.
128 * DMI is used to disable the dmesg warning about OSI(Linux)
129 * on platforms where it is known to have no effect.
130 * But a dmesg warning remains for systems where
131 * we do not know if OSI(Linux) is good or bad for the system.
132 * DMI is also used to enable OSI(Linux) for the machines
133 * that are known to need it.
134 * 123 *
135 * BIOS writers should NOT query _OSI(Linux) on future systems. 124 * BIOS writers should NOT query _OSI(Linux) on future systems.
136 * It will be ignored by default, and to get Linux to 125 * Linux will complain on the console when it sees it, and return FALSE.
137 * not ignore it will require a kernel source update to 126 * To get Linux to return TRUE for your system will require
138 * add a DMI entry, or a boot-time "acpi_osi=Linux" invocation. 127 * a kernel source update to add a DMI entry,
128 * or boot with "acpi_osi=Linux"
139 */ 129 */
140#define OSI_LINUX_ENABLE 0
141 130
142static struct osi_linux { 131static struct osi_linux {
143 unsigned int enable:1; 132 unsigned int enable:1;
144 unsigned int dmi:1; 133 unsigned int dmi:1;
145 unsigned int cmdline:1; 134 unsigned int cmdline:1;
146 unsigned int known:1; 135 unsigned int known:1;
147} osi_linux = { OSI_LINUX_ENABLE, 0, 0, 0}; 136} osi_linux = { 0, 0, 0, 0};
148 137
149static void __init acpi_request_region (struct acpi_generic_address *addr, 138static void __init acpi_request_region (struct acpi_generic_address *addr,
150 unsigned int length, char *desc) 139 unsigned int length, char *desc)
@@ -1296,34 +1285,6 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object)
1296 return (AE_OK); 1285 return (AE_OK);
1297} 1286}
1298 1287
1299/**
1300 * acpi_dmi_dump - dump DMI slots needed for blacklist entry
1301 *
1302 * Returns 0 on success
1303 */
1304static int acpi_dmi_dump(void)
1305{
1306
1307 if (!dmi_available)
1308 return -1;
1309
1310 printk(KERN_NOTICE PREFIX "DMI System Vendor: %s\n",
1311 dmi_get_system_info(DMI_SYS_VENDOR));
1312 printk(KERN_NOTICE PREFIX "DMI Product Name: %s\n",
1313 dmi_get_system_info(DMI_PRODUCT_NAME));
1314 printk(KERN_NOTICE PREFIX "DMI Product Version: %s\n",
1315 dmi_get_system_info(DMI_PRODUCT_VERSION));
1316 printk(KERN_NOTICE PREFIX "DMI Board Name: %s\n",
1317 dmi_get_system_info(DMI_BOARD_NAME));
1318 printk(KERN_NOTICE PREFIX "DMI BIOS Vendor: %s\n",
1319 dmi_get_system_info(DMI_BIOS_VENDOR));
1320 printk(KERN_NOTICE PREFIX "DMI BIOS Date: %s\n",
1321 dmi_get_system_info(DMI_BIOS_DATE));
1322
1323 return 0;
1324}
1325
1326
1327/****************************************************************************** 1288/******************************************************************************
1328 * 1289 *
1329 * FUNCTION: acpi_os_validate_interface 1290 * FUNCTION: acpi_os_validate_interface
@@ -1350,21 +1311,6 @@ acpi_os_validate_interface (char *interface)
1350 osi_linux.cmdline ? " via cmdline" : 1311 osi_linux.cmdline ? " via cmdline" :
1351 osi_linux.dmi ? " via DMI" : ""); 1312 osi_linux.dmi ? " via DMI" : "");
1352 1313
1353 if (!osi_linux.dmi) {
1354 if (acpi_dmi_dump())
1355 printk(KERN_NOTICE PREFIX
1356 "[please extract dmidecode output]\n");
1357 printk(KERN_NOTICE PREFIX
1358 "Please send DMI info above to "
1359 "linux-acpi@vger.kernel.org\n");
1360 }
1361 if (!osi_linux.known && !osi_linux.cmdline) {
1362 printk(KERN_NOTICE PREFIX
1363 "If \"acpi_osi=%sLinux\" works better, "
1364 "please notify linux-acpi@vger.kernel.org\n",
1365 osi_linux.enable ? "!" : "");
1366 }
1367
1368 if (osi_linux.enable) 1314 if (osi_linux.enable)
1369 return AE_OK; 1315 return AE_OK;
1370 } 1316 }
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index bd5253ee5c85..39b7233c3485 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -751,16 +751,6 @@ static int acpi_bus_get_wakeup_device_flags(struct acpi_device *device)
751 if (!acpi_match_device_ids(device, button_device_ids)) 751 if (!acpi_match_device_ids(device, button_device_ids))
752 device->wakeup.flags.run_wake = 1; 752 device->wakeup.flags.run_wake = 1;
753 753
754 /*
755 * Don't set Power button GPE as run_wake
756 * if Fixed Power button is used
757 */
758 if (!strcmp(device->pnp.hardware_id, "PNP0C0C") &&
759 !(acpi_gbl_FADT.flags & ACPI_FADT_POWER_BUTTON)) {
760 device->wakeup.flags.run_wake = 0;
761 device->wakeup.flags.valid = 0;
762 }
763
764 end: 754 end:
765 if (ACPI_FAILURE(status)) 755 if (ACPI_FAILURE(status))
766 device->flags.wake_capable = 0; 756 device->flags.wake_capable = 0;
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c
index 80c0868d0480..28a691cc625e 100644
--- a/drivers/acpi/sleep/main.c
+++ b/drivers/acpi/sleep/main.c
@@ -90,6 +90,18 @@ void __init acpi_old_suspend_ordering(void)
90 old_suspend_ordering = true; 90 old_suspend_ordering = true;
91} 91}
92 92
93/*
94 * According to the ACPI specification the BIOS should make sure that ACPI is
95 * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still,
96 * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI
97 * on such systems during resume. Unfortunately that doesn't help in
98 * particularly pathological cases in which SCI_EN has to be set directly on
99 * resume, although the specification states very clearly that this flag is
100 * owned by the hardware. The set_sci_en_on_resume variable will be set in such
101 * cases.
102 */
103static bool set_sci_en_on_resume;
104
93/** 105/**
94 * acpi_pm_disable_gpes - Disable the GPEs. 106 * acpi_pm_disable_gpes - Disable the GPEs.
95 */ 107 */
@@ -235,7 +247,11 @@ static int acpi_suspend_enter(suspend_state_t pm_state)
235 } 247 }
236 248
237 /* If ACPI is not enabled by the BIOS, we need to enable it here. */ 249 /* If ACPI is not enabled by the BIOS, we need to enable it here. */
238 acpi_enable(); 250 if (set_sci_en_on_resume)
251 acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1);
252 else
253 acpi_enable();
254
239 /* Reprogram control registers and execute _BFS */ 255 /* Reprogram control registers and execute _BFS */
240 acpi_leave_sleep_state_prep(acpi_state); 256 acpi_leave_sleep_state_prep(acpi_state);
241 257
@@ -323,6 +339,12 @@ static int __init init_old_suspend_ordering(const struct dmi_system_id *d)
323 return 0; 339 return 0;
324} 340}
325 341
342static int __init init_set_sci_en_on_resume(const struct dmi_system_id *d)
343{
344 set_sci_en_on_resume = true;
345 return 0;
346}
347
326static struct dmi_system_id __initdata acpisleep_dmi_table[] = { 348static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
327 { 349 {
328 .callback = init_old_suspend_ordering, 350 .callback = init_old_suspend_ordering,
@@ -340,6 +362,22 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
340 DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"), 362 DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"),
341 }, 363 },
342 }, 364 },
365 {
366 .callback = init_set_sci_en_on_resume,
367 .ident = "Apple MacBook 1,1",
368 .matches = {
369 DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."),
370 DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"),
371 },
372 },
373 {
374 .callback = init_set_sci_en_on_resume,
375 .ident = "Apple MacMini 1,1",
376 .matches = {
377 DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."),
378 DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"),
379 },
380 },
343 {}, 381 {},
344}; 382};
345#endif /* CONFIG_SUSPEND */ 383#endif /* CONFIG_SUSPEND */
diff --git a/drivers/acpi/toshiba_acpi.c b/drivers/acpi/toshiba_acpi.c
index 66aac06f2ac5..40e60fc2e596 100644
--- a/drivers/acpi/toshiba_acpi.c
+++ b/drivers/acpi/toshiba_acpi.c
@@ -824,34 +824,36 @@ static int __init toshiba_acpi_init(void)
824 toshiba_acpi_exit(); 824 toshiba_acpi_exit();
825 return -ENOMEM; 825 return -ENOMEM;
826 } 826 }
827 }
828 827
829 /* Register input device for kill switch */ 828 /* Register input device for kill switch */
830 toshiba_acpi.poll_dev = input_allocate_polled_device(); 829 toshiba_acpi.poll_dev = input_allocate_polled_device();
831 if (!toshiba_acpi.poll_dev) { 830 if (!toshiba_acpi.poll_dev) {
832 printk(MY_ERR "unable to allocate kill-switch input device\n"); 831 printk(MY_ERR
833 toshiba_acpi_exit(); 832 "unable to allocate kill-switch input device\n");
834 return -ENOMEM; 833 toshiba_acpi_exit();
835 } 834 return -ENOMEM;
836 toshiba_acpi.poll_dev->private = &toshiba_acpi; 835 }
837 toshiba_acpi.poll_dev->poll = bt_poll_rfkill; 836 toshiba_acpi.poll_dev->private = &toshiba_acpi;
838 toshiba_acpi.poll_dev->poll_interval = 1000; /* msecs */ 837 toshiba_acpi.poll_dev->poll = bt_poll_rfkill;
839 838 toshiba_acpi.poll_dev->poll_interval = 1000; /* msecs */
840 toshiba_acpi.poll_dev->input->name = toshiba_acpi.rfk_name; 839
841 toshiba_acpi.poll_dev->input->id.bustype = BUS_HOST; 840 toshiba_acpi.poll_dev->input->name = toshiba_acpi.rfk_name;
842 toshiba_acpi.poll_dev->input->id.vendor = 0x0930; /* Toshiba USB ID */ 841 toshiba_acpi.poll_dev->input->id.bustype = BUS_HOST;
843 set_bit(EV_SW, toshiba_acpi.poll_dev->input->evbit); 842 /* Toshiba USB ID */
844 set_bit(SW_RFKILL_ALL, toshiba_acpi.poll_dev->input->swbit); 843 toshiba_acpi.poll_dev->input->id.vendor = 0x0930;
845 input_report_switch(toshiba_acpi.poll_dev->input, SW_RFKILL_ALL, TRUE); 844 set_bit(EV_SW, toshiba_acpi.poll_dev->input->evbit);
846 input_sync(toshiba_acpi.poll_dev->input); 845 set_bit(SW_RFKILL_ALL, toshiba_acpi.poll_dev->input->swbit);
847 846 input_report_switch(toshiba_acpi.poll_dev->input,
848 ret = input_register_polled_device(toshiba_acpi.poll_dev); 847 SW_RFKILL_ALL, TRUE);
849 if (ret) { 848 input_sync(toshiba_acpi.poll_dev->input);
850 printk(MY_ERR "unable to register kill-switch input device\n"); 849
851 rfkill_free(toshiba_acpi.rfk_dev); 850 ret = input_register_polled_device(toshiba_acpi.poll_dev);
852 toshiba_acpi.rfk_dev = NULL; 851 if (ret) {
853 toshiba_acpi_exit(); 852 printk(MY_ERR
854 return ret; 853 "unable to register kill-switch input device\n");
854 toshiba_acpi_exit();
855 return ret;
856 }
855 } 857 }
856 858
857 return 0; 859 return 0;
diff --git a/drivers/acpi/utilities/utglobal.c b/drivers/acpi/utilities/utglobal.c
index 670551b95e56..17ed5ac840f7 100644
--- a/drivers/acpi/utilities/utglobal.c
+++ b/drivers/acpi/utilities/utglobal.c
@@ -64,7 +64,7 @@ u32 acpi_dbg_level = ACPI_DEBUG_DEFAULT;
64 64
65/* Debug switch - layer (component) mask */ 65/* Debug switch - layer (component) mask */
66 66
67u32 acpi_dbg_layer = ACPI_COMPONENT_DEFAULT | ACPI_ALL_DRIVERS; 67u32 acpi_dbg_layer = 0;
68u32 acpi_gbl_nesting_level = 0; 68u32 acpi_gbl_nesting_level = 0;
69 69
70/* Debugger globals */ 70/* Debugger globals */
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index e827be36ee8d..f844941089bb 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -259,34 +259,26 @@ acpi_evaluate_integer(acpi_handle handle,
259 struct acpi_object_list *arguments, unsigned long long *data) 259 struct acpi_object_list *arguments, unsigned long long *data)
260{ 260{
261 acpi_status status = AE_OK; 261 acpi_status status = AE_OK;
262 union acpi_object *element; 262 union acpi_object element;
263 struct acpi_buffer buffer = { 0, NULL }; 263 struct acpi_buffer buffer = { 0, NULL };
264 264
265
266 if (!data) 265 if (!data)
267 return AE_BAD_PARAMETER; 266 return AE_BAD_PARAMETER;
268 267
269 element = kzalloc(sizeof(union acpi_object), irqs_disabled() ? GFP_ATOMIC: GFP_KERNEL);
270 if (!element)
271 return AE_NO_MEMORY;
272
273 buffer.length = sizeof(union acpi_object); 268 buffer.length = sizeof(union acpi_object);
274 buffer.pointer = element; 269 buffer.pointer = &element;
275 status = acpi_evaluate_object(handle, pathname, arguments, &buffer); 270 status = acpi_evaluate_object(handle, pathname, arguments, &buffer);
276 if (ACPI_FAILURE(status)) { 271 if (ACPI_FAILURE(status)) {
277 acpi_util_eval_error(handle, pathname, status); 272 acpi_util_eval_error(handle, pathname, status);
278 kfree(element);
279 return status; 273 return status;
280 } 274 }
281 275
282 if (element->type != ACPI_TYPE_INTEGER) { 276 if (element.type != ACPI_TYPE_INTEGER) {
283 acpi_util_eval_error(handle, pathname, AE_BAD_DATA); 277 acpi_util_eval_error(handle, pathname, AE_BAD_DATA);
284 kfree(element);
285 return AE_BAD_DATA; 278 return AE_BAD_DATA;
286 } 279 }
287 280
288 *data = element->integer.value; 281 *data = element.integer.value;
289 kfree(element);
290 282
291 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Return value [%llu]\n", *data)); 283 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Return value [%llu]\n", *data));
292 284
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 78fbec8ceda0..421b7c71e72d 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -153,7 +153,7 @@ config SATA_PROMISE
153 If unsure, say N. 153 If unsure, say N.
154 154
155config SATA_SX4 155config SATA_SX4
156 tristate "Promise SATA SX4 support" 156 tristate "Promise SATA SX4 support (Experimental)"
157 depends on PCI && EXPERIMENTAL 157 depends on PCI && EXPERIMENTAL
158 help 158 help
159 This option enables support for Promise Serial ATA SX4. 159 This option enables support for Promise Serial ATA SX4.
@@ -219,8 +219,8 @@ config PATA_ACPI
219 otherwise unsupported hardware. 219 otherwise unsupported hardware.
220 220
221config PATA_ALI 221config PATA_ALI
222 tristate "ALi PATA support (Experimental)" 222 tristate "ALi PATA support"
223 depends on PCI && EXPERIMENTAL 223 depends on PCI
224 help 224 help
225 This option enables support for the ALi ATA interfaces 225 This option enables support for the ALi ATA interfaces
226 found on the many ALi chipsets. 226 found on the many ALi chipsets.
@@ -263,7 +263,7 @@ config PATA_ATIIXP
263 If unsure, say N. 263 If unsure, say N.
264 264
265config PATA_CMD640_PCI 265config PATA_CMD640_PCI
266 tristate "CMD640 PCI PATA support (Very Experimental)" 266 tristate "CMD640 PCI PATA support (Experimental)"
267 depends on PCI && EXPERIMENTAL 267 depends on PCI && EXPERIMENTAL
268 help 268 help
269 This option enables support for the CMD640 PCI IDE 269 This option enables support for the CMD640 PCI IDE
@@ -291,8 +291,8 @@ config PATA_CS5520
291 If unsure, say N. 291 If unsure, say N.
292 292
293config PATA_CS5530 293config PATA_CS5530
294 tristate "CS5530 PATA support (Experimental)" 294 tristate "CS5530 PATA support"
295 depends on PCI && EXPERIMENTAL 295 depends on PCI
296 help 296 help
297 This option enables support for the Cyrix/NatSemi/AMD CS5530 297 This option enables support for the Cyrix/NatSemi/AMD CS5530
298 companion chip used with the MediaGX/Geode processor family. 298 companion chip used with the MediaGX/Geode processor family.
@@ -309,8 +309,8 @@ config PATA_CS5535
309 If unsure, say N. 309 If unsure, say N.
310 310
311config PATA_CS5536 311config PATA_CS5536
312 tristate "CS5536 PATA support (Experimental)" 312 tristate "CS5536 PATA support"
313 depends on PCI && X86 && !X86_64 && EXPERIMENTAL 313 depends on PCI && X86 && !X86_64
314 help 314 help
315 This option enables support for the AMD CS5536 315 This option enables support for the AMD CS5536
316 companion chip used with the Geode LX processor family. 316 companion chip used with the Geode LX processor family.
@@ -363,7 +363,7 @@ config PATA_HPT37X
363 If unsure, say N. 363 If unsure, say N.
364 364
365config PATA_HPT3X2N 365config PATA_HPT3X2N
366 tristate "HPT 372N/302N PATA support (Very Experimental)" 366 tristate "HPT 372N/302N PATA support (Experimental)"
367 depends on PCI && EXPERIMENTAL 367 depends on PCI && EXPERIMENTAL
368 help 368 help
369 This option enables support for the N variant HPT PATA 369 This option enables support for the N variant HPT PATA
@@ -389,8 +389,8 @@ config PATA_HPT3X3_DMA
389 problems with DMA on this chipset. 389 problems with DMA on this chipset.
390 390
391config PATA_ISAPNP 391config PATA_ISAPNP
392 tristate "ISA Plug and Play PATA support (Experimental)" 392 tristate "ISA Plug and Play PATA support"
393 depends on EXPERIMENTAL && ISAPNP 393 depends on ISAPNP
394 help 394 help
395 This option enables support for ISA plug & play ATA 395 This option enables support for ISA plug & play ATA
396 controllers such as those found on old soundcards. 396 controllers such as those found on old soundcards.
@@ -498,8 +498,8 @@ config PATA_NINJA32
498 If unsure, say N. 498 If unsure, say N.
499 499
500config PATA_NS87410 500config PATA_NS87410
501 tristate "Nat Semi NS87410 PATA support (Experimental)" 501 tristate "Nat Semi NS87410 PATA support"
502 depends on PCI && EXPERIMENTAL 502 depends on PCI
503 help 503 help
504 This option enables support for the National Semiconductor 504 This option enables support for the National Semiconductor
505 NS87410 PCI-IDE controller. 505 NS87410 PCI-IDE controller.
@@ -507,8 +507,8 @@ config PATA_NS87410
507 If unsure, say N. 507 If unsure, say N.
508 508
509config PATA_NS87415 509config PATA_NS87415
510 tristate "Nat Semi NS87415 PATA support (Experimental)" 510 tristate "Nat Semi NS87415 PATA support"
511 depends on PCI && EXPERIMENTAL 511 depends on PCI
512 help 512 help
513 This option enables support for the National Semiconductor 513 This option enables support for the National Semiconductor
514 NS87415 PCI-IDE controller. 514 NS87415 PCI-IDE controller.
@@ -544,8 +544,8 @@ config PATA_PCMCIA
544 If unsure, say N. 544 If unsure, say N.
545 545
546config PATA_PDC_OLD 546config PATA_PDC_OLD
547 tristate "Older Promise PATA controller support (Experimental)" 547 tristate "Older Promise PATA controller support"
548 depends on PCI && EXPERIMENTAL 548 depends on PCI
549 help 549 help
550 This option enables support for the Promise 20246, 20262, 20263, 550 This option enables support for the Promise 20246, 20262, 20263,
551 20265 and 20267 adapters. 551 20265 and 20267 adapters.
@@ -559,7 +559,7 @@ config PATA_QDI
559 Support for QDI 6500 and 6580 PATA controllers on VESA local bus. 559 Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
560 560
561config PATA_RADISYS 561config PATA_RADISYS
562 tristate "RADISYS 82600 PATA support (Very Experimental)" 562 tristate "RADISYS 82600 PATA support (Experimental)"
563 depends on PCI && EXPERIMENTAL 563 depends on PCI && EXPERIMENTAL
564 help 564 help
565 This option enables support for the RADISYS 82600 565 This option enables support for the RADISYS 82600
@@ -586,8 +586,8 @@ config PATA_RZ1000
586 If unsure, say N. 586 If unsure, say N.
587 587
588config PATA_SC1200 588config PATA_SC1200
589 tristate "SC1200 PATA support (Very Experimental)" 589 tristate "SC1200 PATA support"
590 depends on PCI && EXPERIMENTAL 590 depends on PCI
591 help 591 help
592 This option enables support for the NatSemi/AMD SC1200 SoC 592 This option enables support for the NatSemi/AMD SC1200 SoC
593 companion chip used with the Geode processor family. 593 companion chip used with the Geode processor family.
@@ -620,8 +620,8 @@ config PATA_SIL680
620 If unsure, say N. 620 If unsure, say N.
621 621
622config PATA_SIS 622config PATA_SIS
623 tristate "SiS PATA support (Experimental)" 623 tristate "SiS PATA support"
624 depends on PCI && EXPERIMENTAL 624 depends on PCI
625 help 625 help
626 This option enables support for SiS PATA controllers 626 This option enables support for SiS PATA controllers
627 627
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 8e37be19bbf5..c11936e13dd3 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1066,6 +1066,28 @@ static int piix_broken_suspend(void)
1066 if (dmi_find_device(DMI_DEV_TYPE_OEM_STRING, oemstrs[i], NULL)) 1066 if (dmi_find_device(DMI_DEV_TYPE_OEM_STRING, oemstrs[i], NULL))
1067 return 1; 1067 return 1;
1068 1068
1069 /* TECRA M4 sometimes forgets its identify and reports bogus
1070 * DMI information. As the bogus information is a bit
1071 * generic, match as many entries as possible. This manual
1072 * matching is necessary because dmi_system_id.matches is
1073 * limited to four entries.
1074 */
1075 if (dmi_get_system_info(DMI_SYS_VENDOR) &&
1076 dmi_get_system_info(DMI_PRODUCT_NAME) &&
1077 dmi_get_system_info(DMI_PRODUCT_VERSION) &&
1078 dmi_get_system_info(DMI_PRODUCT_SERIAL) &&
1079 dmi_get_system_info(DMI_BOARD_VENDOR) &&
1080 dmi_get_system_info(DMI_BOARD_NAME) &&
1081 dmi_get_system_info(DMI_BOARD_VERSION) &&
1082 !strcmp(dmi_get_system_info(DMI_SYS_VENDOR), "TOSHIBA") &&
1083 !strcmp(dmi_get_system_info(DMI_PRODUCT_NAME), "000000") &&
1084 !strcmp(dmi_get_system_info(DMI_PRODUCT_VERSION), "000000") &&
1085 !strcmp(dmi_get_system_info(DMI_PRODUCT_SERIAL), "000000") &&
1086 !strcmp(dmi_get_system_info(DMI_BOARD_VENDOR), "TOSHIBA") &&
1087 !strcmp(dmi_get_system_info(DMI_BOARD_NAME), "Portable PC") &&
1088 !strcmp(dmi_get_system_info(DMI_BOARD_VERSION), "Version A0"))
1089 return 1;
1090
1069 return 0; 1091 return 0;
1070} 1092}
1071 1093
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 4214bfb13bbd..bc6695e3c848 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2492,6 +2492,13 @@ int ata_dev_configure(struct ata_device *dev)
2492 } 2492 }
2493 } 2493 }
2494 2494
2495 if ((dev->horkage & ATA_HORKAGE_FIRMWARE_WARN) && print_info) {
2496 ata_dev_printk(dev, KERN_WARNING, "WARNING: device requires "
2497 "firmware update to be fully functional.\n");
2498 ata_dev_printk(dev, KERN_WARNING, " contact the vendor "
2499 "or visit http://ata.wiki.kernel.org.\n");
2500 }
2501
2495 return 0; 2502 return 0;
2496 2503
2497err_out_nosup: 2504err_out_nosup:
@@ -4042,6 +4049,73 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
4042 { "ST380817AS", "3.42", ATA_HORKAGE_NONCQ }, 4049 { "ST380817AS", "3.42", ATA_HORKAGE_NONCQ },
4043 { "ST3160023AS", "3.42", ATA_HORKAGE_NONCQ }, 4050 { "ST3160023AS", "3.42", ATA_HORKAGE_NONCQ },
4044 4051
4052 /* Seagate NCQ + FLUSH CACHE firmware bug */
4053 { "ST31500341AS", "SD15", ATA_HORKAGE_NONCQ |
4054 ATA_HORKAGE_FIRMWARE_WARN },
4055 { "ST31500341AS", "SD16", ATA_HORKAGE_NONCQ |
4056 ATA_HORKAGE_FIRMWARE_WARN },
4057 { "ST31500341AS", "SD17", ATA_HORKAGE_NONCQ |
4058 ATA_HORKAGE_FIRMWARE_WARN },
4059 { "ST31500341AS", "SD18", ATA_HORKAGE_NONCQ |
4060 ATA_HORKAGE_FIRMWARE_WARN },
4061 { "ST31500341AS", "SD19", ATA_HORKAGE_NONCQ |
4062 ATA_HORKAGE_FIRMWARE_WARN },
4063
4064 { "ST31000333AS", "SD15", ATA_HORKAGE_NONCQ |
4065 ATA_HORKAGE_FIRMWARE_WARN },
4066 { "ST31000333AS", "SD16", ATA_HORKAGE_NONCQ |
4067 ATA_HORKAGE_FIRMWARE_WARN },
4068 { "ST31000333AS", "SD17", ATA_HORKAGE_NONCQ |
4069 ATA_HORKAGE_FIRMWARE_WARN },
4070 { "ST31000333AS", "SD18", ATA_HORKAGE_NONCQ |
4071 ATA_HORKAGE_FIRMWARE_WARN },
4072 { "ST31000333AS", "SD19", ATA_HORKAGE_NONCQ |
4073 ATA_HORKAGE_FIRMWARE_WARN },
4074
4075 { "ST3640623AS", "SD15", ATA_HORKAGE_NONCQ |
4076 ATA_HORKAGE_FIRMWARE_WARN },
4077 { "ST3640623AS", "SD16", ATA_HORKAGE_NONCQ |
4078 ATA_HORKAGE_FIRMWARE_WARN },
4079 { "ST3640623AS", "SD17", ATA_HORKAGE_NONCQ |
4080 ATA_HORKAGE_FIRMWARE_WARN },
4081 { "ST3640623AS", "SD18", ATA_HORKAGE_NONCQ |
4082 ATA_HORKAGE_FIRMWARE_WARN },
4083 { "ST3640623AS", "SD19", ATA_HORKAGE_NONCQ |
4084 ATA_HORKAGE_FIRMWARE_WARN },
4085
4086 { "ST3640323AS", "SD15", ATA_HORKAGE_NONCQ |
4087 ATA_HORKAGE_FIRMWARE_WARN },
4088 { "ST3640323AS", "SD16", ATA_HORKAGE_NONCQ |
4089 ATA_HORKAGE_FIRMWARE_WARN },
4090 { "ST3640323AS", "SD17", ATA_HORKAGE_NONCQ |
4091 ATA_HORKAGE_FIRMWARE_WARN },
4092 { "ST3640323AS", "SD18", ATA_HORKAGE_NONCQ |
4093 ATA_HORKAGE_FIRMWARE_WARN },
4094 { "ST3640323AS", "SD19", ATA_HORKAGE_NONCQ |
4095 ATA_HORKAGE_FIRMWARE_WARN },
4096
4097 { "ST3320813AS", "SD15", ATA_HORKAGE_NONCQ |
4098 ATA_HORKAGE_FIRMWARE_WARN },
4099 { "ST3320813AS", "SD16", ATA_HORKAGE_NONCQ |
4100 ATA_HORKAGE_FIRMWARE_WARN },
4101 { "ST3320813AS", "SD17", ATA_HORKAGE_NONCQ |
4102 ATA_HORKAGE_FIRMWARE_WARN },
4103 { "ST3320813AS", "SD18", ATA_HORKAGE_NONCQ |
4104 ATA_HORKAGE_FIRMWARE_WARN },
4105 { "ST3320813AS", "SD19", ATA_HORKAGE_NONCQ |
4106 ATA_HORKAGE_FIRMWARE_WARN },
4107
4108 { "ST3320613AS", "SD15", ATA_HORKAGE_NONCQ |
4109 ATA_HORKAGE_FIRMWARE_WARN },
4110 { "ST3320613AS", "SD16", ATA_HORKAGE_NONCQ |
4111 ATA_HORKAGE_FIRMWARE_WARN },
4112 { "ST3320613AS", "SD17", ATA_HORKAGE_NONCQ |
4113 ATA_HORKAGE_FIRMWARE_WARN },
4114 { "ST3320613AS", "SD18", ATA_HORKAGE_NONCQ |
4115 ATA_HORKAGE_FIRMWARE_WARN },
4116 { "ST3320613AS", "SD19", ATA_HORKAGE_NONCQ |
4117 ATA_HORKAGE_FIRMWARE_WARN },
4118
4045 /* Blacklist entries taken from Silicon Image 3124/3132 4119 /* Blacklist entries taken from Silicon Image 3124/3132
4046 Windows driver .inf file - also several Linux problem reports */ 4120 Windows driver .inf file - also several Linux problem reports */
4047 { "HTS541060G9SA00", "MB3OC60D", ATA_HORKAGE_NONCQ, }, 4121 { "HTS541060G9SA00", "MB3OC60D", ATA_HORKAGE_NONCQ, },
diff --git a/drivers/ata/pata_hpt366.c b/drivers/ata/pata_hpt366.c
index f2b83eabc7c7..e0c4f05d7d57 100644
--- a/drivers/ata/pata_hpt366.c
+++ b/drivers/ata/pata_hpt366.c
@@ -183,7 +183,9 @@ static unsigned long hpt366_filter(struct ata_device *adev, unsigned long mask)
183 mask &= ~(0xF8 << ATA_SHIFT_UDMA); 183 mask &= ~(0xF8 << ATA_SHIFT_UDMA);
184 if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4)) 184 if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4))
185 mask &= ~(0xF0 << ATA_SHIFT_UDMA); 185 mask &= ~(0xF0 << ATA_SHIFT_UDMA);
186 } 186 } else if (adev->class == ATA_DEV_ATAPI)
187 mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA);
188
187 return ata_bmdma_mode_filter(adev, mask); 189 return ata_bmdma_mode_filter(adev, mask);
188} 190}
189 191
@@ -211,11 +213,15 @@ static u32 hpt36x_find_mode(struct ata_port *ap, int speed)
211 213
212static int hpt36x_cable_detect(struct ata_port *ap) 214static int hpt36x_cable_detect(struct ata_port *ap)
213{ 215{
214 u8 ata66;
215 struct pci_dev *pdev = to_pci_dev(ap->host->dev); 216 struct pci_dev *pdev = to_pci_dev(ap->host->dev);
217 u8 ata66;
216 218
219 /*
220 * Each channel of pata_hpt366 occupies separate PCI function
221 * as the primary channel and bit1 indicates the cable type.
222 */
217 pci_read_config_byte(pdev, 0x5A, &ata66); 223 pci_read_config_byte(pdev, 0x5A, &ata66);
218 if (ata66 & (1 << ap->port_no)) 224 if (ata66 & 2)
219 return ATA_CBL_PATA40; 225 return ATA_CBL_PATA40;
220 return ATA_CBL_PATA80; 226 return ATA_CBL_PATA80;
221} 227}
@@ -382,10 +388,10 @@ static int hpt36x_init_one(struct pci_dev *dev, const struct pci_device_id *id)
382 /* PCI clocking determines the ATA timing values to use */ 388 /* PCI clocking determines the ATA timing values to use */
383 /* info_hpt366 is safe against re-entry so we can scribble on it */ 389 /* info_hpt366 is safe against re-entry so we can scribble on it */
384 switch((reg1 & 0x700) >> 8) { 390 switch((reg1 & 0x700) >> 8) {
385 case 5: 391 case 9:
386 hpriv = &hpt366_40; 392 hpriv = &hpt366_40;
387 break; 393 break;
388 case 9: 394 case 5:
389 hpriv = &hpt366_25; 395 hpriv = &hpt366_25;
390 break; 396 break;
391 default: 397 default:
diff --git a/drivers/ata/pata_ninja32.c b/drivers/ata/pata_ninja32.c
index 4e466eae8b46..4dd9a3b031e4 100644
--- a/drivers/ata/pata_ninja32.c
+++ b/drivers/ata/pata_ninja32.c
@@ -44,7 +44,7 @@
44#include <linux/libata.h> 44#include <linux/libata.h>
45 45
46#define DRV_NAME "pata_ninja32" 46#define DRV_NAME "pata_ninja32"
47#define DRV_VERSION "0.1.1" 47#define DRV_VERSION "0.1.3"
48 48
49 49
50/** 50/**
@@ -130,7 +130,8 @@ static int ninja32_init_one(struct pci_dev *dev, const struct pci_device_id *id)
130 return rc; 130 return rc;
131 pci_set_master(dev); 131 pci_set_master(dev);
132 132
133 /* Set up the register mappings */ 133 /* Set up the register mappings. We use the I/O mapping as only the
134 older chips also have MMIO on BAR 1 */
134 base = host->iomap[0]; 135 base = host->iomap[0];
135 if (!base) 136 if (!base)
136 return -ENOMEM; 137 return -ENOMEM;
@@ -167,8 +168,12 @@ static int ninja32_reinit_one(struct pci_dev *pdev)
167#endif 168#endif
168 169
169static const struct pci_device_id ninja32[] = { 170static const struct pci_device_id ninja32[] = {
171 { 0x10FC, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
172 { 0x1145, 0x8008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
173 { 0x1145, 0xf008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
170 { 0x1145, 0xf021, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 174 { 0x1145, 0xf021, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
171 { 0x1145, 0xf024, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 175 { 0x1145, 0xf024, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
176 { 0x1145, 0xf02C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
172 { }, 177 { },
173}; 178};
174 179
diff --git a/drivers/ata/pata_rb532_cf.c b/drivers/ata/pata_rb532_cf.c
index f8b3ffc8ae9e..c2e6fb9f2ef9 100644
--- a/drivers/ata/pata_rb532_cf.c
+++ b/drivers/ata/pata_rb532_cf.c
@@ -39,9 +39,11 @@
39#define RB500_CF_MAXPORTS 1 39#define RB500_CF_MAXPORTS 1
40#define RB500_CF_IO_DELAY 400 40#define RB500_CF_IO_DELAY 400
41 41
42#define RB500_CF_REG_CMD 0x0800 42#define RB500_CF_REG_BASE 0x0800
43#define RB500_CF_REG_ERR 0x080D
43#define RB500_CF_REG_CTRL 0x080E 44#define RB500_CF_REG_CTRL 0x080E
44#define RB500_CF_REG_DATA 0x0C00 45/* 32bit buffered data register offset */
46#define RB500_CF_REG_DBUF32 0x0C00
45 47
46struct rb532_cf_info { 48struct rb532_cf_info {
47 void __iomem *iobase; 49 void __iomem *iobase;
@@ -72,11 +74,12 @@ static void rb532_pata_exec_command(struct ata_port *ap,
72 rb532_pata_finish_io(ap); 74 rb532_pata_finish_io(ap);
73} 75}
74 76
75static void rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf, 77static unsigned int rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
76 unsigned int buflen, int write_data) 78 unsigned int buflen, int write_data)
77{ 79{
78 struct ata_port *ap = adev->link->ap; 80 struct ata_port *ap = adev->link->ap;
79 void __iomem *ioaddr = ap->ioaddr.data_addr; 81 void __iomem *ioaddr = ap->ioaddr.data_addr;
82 int retlen = buflen;
80 83
81 if (write_data) { 84 if (write_data) {
82 for (; buflen > 0; buflen--, buf++) 85 for (; buflen > 0; buflen--, buf++)
@@ -87,6 +90,7 @@ static void rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf,
87 } 90 }
88 91
89 rb532_pata_finish_io(adev->link->ap); 92 rb532_pata_finish_io(adev->link->ap);
93 return retlen;
90} 94}
91 95
92static void rb532_pata_freeze(struct ata_port *ap) 96static void rb532_pata_freeze(struct ata_port *ap)
@@ -146,13 +150,14 @@ static void rb532_pata_setup_ports(struct ata_host *ah)
146 ap->pio_mask = 0x1f; /* PIO4 */ 150 ap->pio_mask = 0x1f; /* PIO4 */
147 ap->flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_MMIO; 151 ap->flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_MMIO;
148 152
149 ap->ioaddr.cmd_addr = info->iobase + RB500_CF_REG_CMD; 153 ap->ioaddr.cmd_addr = info->iobase + RB500_CF_REG_BASE;
150 ap->ioaddr.ctl_addr = info->iobase + RB500_CF_REG_CTRL; 154 ap->ioaddr.ctl_addr = info->iobase + RB500_CF_REG_CTRL;
151 ap->ioaddr.altstatus_addr = info->iobase + RB500_CF_REG_CTRL; 155 ap->ioaddr.altstatus_addr = info->iobase + RB500_CF_REG_CTRL;
152 156
153 ata_sff_std_ports(&ap->ioaddr); 157 ata_sff_std_ports(&ap->ioaddr);
154 158
155 ap->ioaddr.data_addr = info->iobase + RB500_CF_REG_DATA; 159 ap->ioaddr.data_addr = info->iobase + RB500_CF_REG_DBUF32;
160 ap->ioaddr.error_addr = info->iobase + RB500_CF_REG_ERR;
156} 161}
157 162
158static __devinit int rb532_pata_driver_probe(struct platform_device *pdev) 163static __devinit int rb532_pata_driver_probe(struct platform_device *pdev)
diff --git a/drivers/ata/pata_sis.c b/drivers/ata/pata_sis.c
index d34236611752..e4be55e047f6 100644
--- a/drivers/ata/pata_sis.c
+++ b/drivers/ata/pata_sis.c
@@ -56,7 +56,6 @@ static const struct sis_laptop sis_laptop[] = {
56 { 0x5513, 0x1043, 0x1107 }, /* ASUS A6K */ 56 { 0x5513, 0x1043, 0x1107 }, /* ASUS A6K */
57 { 0x5513, 0x1734, 0x105F }, /* FSC Amilo A1630 */ 57 { 0x5513, 0x1734, 0x105F }, /* FSC Amilo A1630 */
58 { 0x5513, 0x1071, 0x8640 }, /* EasyNote K5305 */ 58 { 0x5513, 0x1071, 0x8640 }, /* EasyNote K5305 */
59 { 0x5513, 0x1039, 0x5513 }, /* Targa Visionary 1000 */
60 /* end marker */ 59 /* end marker */
61 { 0, } 60 { 0, }
62}; 61};
diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
index 615412364e99..6b969f8c684f 100644
--- a/drivers/atm/horizon.c
+++ b/drivers/atm/horizon.c
@@ -2705,7 +2705,7 @@ static int __devinit hrz_probe(struct pci_dev *pci_dev, const struct pci_device_
2705 2705
2706 /* XXX DEV_LABEL is a guess */ 2706 /* XXX DEV_LABEL is a guess */
2707 if (!request_region(iobase, HRZ_IO_EXTENT, DEV_LABEL)) { 2707 if (!request_region(iobase, HRZ_IO_EXTENT, DEV_LABEL)) {
2708 return -EINVAL; 2708 err = -EINVAL;
2709 goto out_disable; 2709 goto out_disable;
2710 } 2710 }
2711 2711
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 9364dc554257..9f7c543cc04b 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -1693,6 +1693,11 @@ static int rebuild_lun_table(ctlr_info_t *h, int first_time)
1693 for (i = 0; i <= h->highest_lun; i++) { 1693 for (i = 0; i <= h->highest_lun; i++) {
1694 int j; 1694 int j;
1695 drv_found = 0; 1695 drv_found = 0;
1696
1697 /* skip holes in the array from already deleted drives */
1698 if (h->drv[i].raid_level == -1)
1699 continue;
1700
1696 for (j = 0; j < num_luns; j++) { 1701 for (j = 0; j < num_luns; j++) {
1697 memcpy(&lunid, &ld_buff->LUN[j][0], 4); 1702 memcpy(&lunid, &ld_buff->LUN[j][0], 4);
1698 lunid = le32_to_cpu(lunid); 1703 lunid = le32_to_cpu(lunid);
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index f20bf359b84f..dc7a8c352da2 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -302,7 +302,7 @@ static struct kobj_type kobj_pkt_type_wqueue = {
302static void pkt_sysfs_dev_new(struct pktcdvd_device *pd) 302static void pkt_sysfs_dev_new(struct pktcdvd_device *pd)
303{ 303{
304 if (class_pktcdvd) { 304 if (class_pktcdvd) {
305 pd->dev = device_create(class_pktcdvd, NULL, pd->pkt_dev, NULL, 305 pd->dev = device_create(class_pktcdvd, NULL, MKDEV(0, 0), NULL,
306 "%s", pd->name); 306 "%s", pd->name);
307 if (IS_ERR(pd->dev)) 307 if (IS_ERR(pd->dev))
308 pd->dev = NULL; 308 pd->dev = NULL;
@@ -2790,7 +2790,7 @@ static int pkt_new_dev(struct pktcdvd_device *pd, dev_t dev)
2790 return 0; 2790 return 0;
2791 2791
2792out_mem: 2792out_mem:
2793 blkdev_put(bdev, FMODE_READ|FMODE_WRITE); 2793 blkdev_put(bdev, FMODE_READ | FMODE_NDELAY);
2794 /* This is safe: open() is still holding a reference. */ 2794 /* This is safe: open() is still holding a reference. */
2795 module_put(THIS_MODULE); 2795 module_put(THIS_MODULE);
2796 return ret; 2796 return ret;
@@ -2975,7 +2975,7 @@ static int pkt_remove_dev(dev_t pkt_dev)
2975 pkt_debugfs_dev_remove(pd); 2975 pkt_debugfs_dev_remove(pd);
2976 pkt_sysfs_dev_remove(pd); 2976 pkt_sysfs_dev_remove(pd);
2977 2977
2978 blkdev_put(pd->bdev, FMODE_READ|FMODE_WRITE); 2978 blkdev_put(pd->bdev, FMODE_READ | FMODE_NDELAY);
2979 2979
2980 remove_proc_entry(pd->name, pkt_proc); 2980 remove_proc_entry(pd->name, pkt_proc);
2981 DPRINTK(DRIVER_NAME": writer %s unmapped\n", pd->name); 2981 DPRINTK(DRIVER_NAME": writer %s unmapped\n", pd->name);
diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c
index ecab9e67d47a..29e1dfafb7c6 100644
--- a/drivers/block/xsysace.c
+++ b/drivers/block/xsysace.c
@@ -194,7 +194,7 @@ struct ace_device {
194 int in_irq; 194 int in_irq;
195 195
196 /* Details of hardware device */ 196 /* Details of hardware device */
197 unsigned long physaddr; 197 resource_size_t physaddr;
198 void __iomem *baseaddr; 198 void __iomem *baseaddr;
199 int irq; 199 int irq;
200 int bus_width; /* 0 := 8 bit; 1 := 16 bit */ 200 int bus_width; /* 0 := 8 bit; 1 := 16 bit */
@@ -628,8 +628,8 @@ static void ace_fsm_dostate(struct ace_device *ace)
628 628
629 /* Okay, it's a data request, set it up for transfer */ 629 /* Okay, it's a data request, set it up for transfer */
630 dev_dbg(ace->dev, 630 dev_dbg(ace->dev,
631 "request: sec=%lx hcnt=%lx, ccnt=%x, dir=%i\n", 631 "request: sec=%llx hcnt=%lx, ccnt=%x, dir=%i\n",
632 req->sector, req->hard_nr_sectors, 632 (unsigned long long) req->sector, req->hard_nr_sectors,
633 req->current_nr_sectors, rq_data_dir(req)); 633 req->current_nr_sectors, rq_data_dir(req));
634 634
635 ace->req = req; 635 ace->req = req;
@@ -935,7 +935,8 @@ static int __devinit ace_setup(struct ace_device *ace)
935 int rc; 935 int rc;
936 936
937 dev_dbg(ace->dev, "ace_setup(ace=0x%p)\n", ace); 937 dev_dbg(ace->dev, "ace_setup(ace=0x%p)\n", ace);
938 dev_dbg(ace->dev, "physaddr=0x%lx irq=%i\n", ace->physaddr, ace->irq); 938 dev_dbg(ace->dev, "physaddr=0x%llx irq=%i\n",
939 (unsigned long long)ace->physaddr, ace->irq);
939 940
940 spin_lock_init(&ace->lock); 941 spin_lock_init(&ace->lock);
941 init_completion(&ace->id_completion); 942 init_completion(&ace->id_completion);
@@ -1017,8 +1018,8 @@ static int __devinit ace_setup(struct ace_device *ace)
1017 /* Print the identification */ 1018 /* Print the identification */
1018 dev_info(ace->dev, "Xilinx SystemACE revision %i.%i.%i\n", 1019 dev_info(ace->dev, "Xilinx SystemACE revision %i.%i.%i\n",
1019 (version >> 12) & 0xf, (version >> 8) & 0x0f, version & 0xff); 1020 (version >> 12) & 0xf, (version >> 8) & 0x0f, version & 0xff);
1020 dev_dbg(ace->dev, "physaddr 0x%lx, mapped to 0x%p, irq=%i\n", 1021 dev_dbg(ace->dev, "physaddr 0x%llx, mapped to 0x%p, irq=%i\n",
1021 ace->physaddr, ace->baseaddr, ace->irq); 1022 (unsigned long long) ace->physaddr, ace->baseaddr, ace->irq);
1022 1023
1023 ace->media_change = 1; 1024 ace->media_change = 1;
1024 ace_revalidate_disk(ace->gd); 1025 ace_revalidate_disk(ace->gd);
@@ -1035,8 +1036,8 @@ err_alloc_disk:
1035err_blk_initq: 1036err_blk_initq:
1036 iounmap(ace->baseaddr); 1037 iounmap(ace->baseaddr);
1037err_ioremap: 1038err_ioremap:
1038 dev_info(ace->dev, "xsysace: error initializing device at 0x%lx\n", 1039 dev_info(ace->dev, "xsysace: error initializing device at 0x%llx\n",
1039 ace->physaddr); 1040 (unsigned long long) ace->physaddr);
1040 return -ENOMEM; 1041 return -ENOMEM;
1041} 1042}
1042 1043
@@ -1059,7 +1060,7 @@ static void __devexit ace_teardown(struct ace_device *ace)
1059} 1060}
1060 1061
1061static int __devinit 1062static int __devinit
1062ace_alloc(struct device *dev, int id, unsigned long physaddr, 1063ace_alloc(struct device *dev, int id, resource_size_t physaddr,
1063 int irq, int bus_width) 1064 int irq, int bus_width)
1064{ 1065{
1065 struct ace_device *ace; 1066 struct ace_device *ace;
@@ -1119,7 +1120,7 @@ static void __devexit ace_free(struct device *dev)
1119 1120
1120static int __devinit ace_probe(struct platform_device *dev) 1121static int __devinit ace_probe(struct platform_device *dev)
1121{ 1122{
1122 unsigned long physaddr = 0; 1123 resource_size_t physaddr = 0;
1123 int bus_width = ACE_BUS_WIDTH_16; /* FIXME: should not be hard coded */ 1124 int bus_width = ACE_BUS_WIDTH_16; /* FIXME: should not be hard coded */
1124 int id = dev->id; 1125 int id = dev->id;
1125 int irq = NO_IRQ; 1126 int irq = NO_IRQ;
@@ -1165,7 +1166,7 @@ static int __devinit
1165ace_of_probe(struct of_device *op, const struct of_device_id *match) 1166ace_of_probe(struct of_device *op, const struct of_device_id *match)
1166{ 1167{
1167 struct resource res; 1168 struct resource res;
1168 unsigned long physaddr; 1169 resource_size_t physaddr;
1169 const u32 *id; 1170 const u32 *id;
1170 int irq, bus_width, rc; 1171 int irq, bus_width, rc;
1171 1172
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index d16b02423d61..7d2e91cccb13 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -2081,10 +2081,6 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf,
2081 if (!q) 2081 if (!q)
2082 return -ENXIO; 2082 return -ENXIO;
2083 2083
2084 rq = blk_get_request(q, READ, GFP_KERNEL);
2085 if (!rq)
2086 return -ENOMEM;
2087
2088 cdi->last_sense = 0; 2084 cdi->last_sense = 0;
2089 2085
2090 while (nframes) { 2086 while (nframes) {
@@ -2096,9 +2092,17 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf,
2096 2092
2097 len = nr * CD_FRAMESIZE_RAW; 2093 len = nr * CD_FRAMESIZE_RAW;
2098 2094
2095 rq = blk_get_request(q, READ, GFP_KERNEL);
2096 if (!rq) {
2097 ret = -ENOMEM;
2098 break;
2099 }
2100
2099 ret = blk_rq_map_user(q, rq, NULL, ubuf, len, GFP_KERNEL); 2101 ret = blk_rq_map_user(q, rq, NULL, ubuf, len, GFP_KERNEL);
2100 if (ret) 2102 if (ret) {
2103 blk_put_request(rq);
2101 break; 2104 break;
2105 }
2102 2106
2103 rq->cmd[0] = GPCMD_READ_CD; 2107 rq->cmd[0] = GPCMD_READ_CD;
2104 rq->cmd[1] = 1 << 2; 2108 rq->cmd[1] = 1 << 2;
@@ -2124,6 +2128,7 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf,
2124 2128
2125 if (blk_rq_unmap_user(bio)) 2129 if (blk_rq_unmap_user(bio))
2126 ret = -EFAULT; 2130 ret = -EFAULT;
2131 blk_put_request(rq);
2127 2132
2128 if (ret) 2133 if (ret)
2129 break; 2134 break;
@@ -2133,7 +2138,6 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf,
2133 ubuf += len; 2138 ubuf += len;
2134 } 2139 }
2135 2140
2136 blk_put_request(rq);
2137 return ret; 2141 return ret;
2138} 2142}
2139 2143
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 0f004b65ec03..03f95ec08f59 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -27,7 +27,7 @@
27static int uninorth_rev; 27static int uninorth_rev;
28static int is_u3; 28static int is_u3;
29 29
30static char __devinitdata *aperture = NULL; 30static char *aperture = NULL;
31 31
32static int uninorth_fetch_size(void) 32static int uninorth_fetch_size(void)
33{ 33{
diff --git a/drivers/char/cp437.uni b/drivers/char/cp437.uni
index 1f06889a96b9..bc6163484f62 100644
--- a/drivers/char/cp437.uni
+++ b/drivers/char/cp437.uni
@@ -27,7 +27,7 @@
270x0c U+2640 270x0c U+2640
280x0d U+266a 280x0d U+266a
290x0e U+266b 290x0e U+266b
300x0f U+263c 300x0f U+263c U+00a4
310x10 U+25b6 U+25ba 310x10 U+25b6 U+25ba
320x11 U+25c0 U+25c4 320x11 U+25c0 U+25c4
330x12 U+2195 330x12 U+2195
@@ -55,7 +55,7 @@
550x24 U+0024 550x24 U+0024
560x25 U+0025 560x25 U+0025
570x26 U+0026 570x26 U+0026
580x27 U+0027 580x27 U+0027 U+00b4
590x28 U+0028 590x28 U+0028
600x29 U+0029 600x29 U+0029
610x2a U+002a 610x2a U+002a
@@ -84,7 +84,7 @@
840x41 U+0041 U+00c0 U+00c1 U+00c2 U+00c3 840x41 U+0041 U+00c0 U+00c1 U+00c2 U+00c3
850x42 U+0042 850x42 U+0042
860x43 U+0043 U+00a9 860x43 U+0043 U+00a9
870x44 U+0044 870x44 U+0044 U+00d0
880x45 U+0045 U+00c8 U+00ca U+00cb 880x45 U+0045 U+00c8 U+00ca U+00cb
890x46 U+0046 890x46 U+0046
900x47 U+0047 900x47 U+0047
@@ -140,7 +140,7 @@
1400x79 U+0079 U+00fd 1400x79 U+0079 U+00fd
1410x7a U+007a 1410x7a U+007a
1420x7b U+007b 1420x7b U+007b
1430x7c U+007c U+00a5 1430x7c U+007c U+00a6
1440x7d U+007d 1440x7d U+007d
1450x7e U+007e 1450x7e U+007e
146# 146#
@@ -263,10 +263,10 @@
2630xe8 U+03a6 U+00d8 2630xe8 U+03a6 U+00d8
2640xe9 U+0398 2640xe9 U+0398
2650xea U+03a9 U+2126 2650xea U+03a9 U+2126
2660xeb U+03b4 2660xeb U+03b4 U+00f0
2670xec U+221e 2670xec U+221e
2680xed U+03c6 U+00f8 2680xed U+03c6 U+00f8
2690xee U+03b5 2690xee U+03b5 U+2208
2700xef U+2229 2700xef U+2229
2710xf0 U+2261 2710xf0 U+2261
2720xf1 U+00b1 2720xf1 U+00b1
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c
index 44e5d60f517e..4b10770fa937 100644
--- a/drivers/char/istallion.c
+++ b/drivers/char/istallion.c
@@ -3739,7 +3739,7 @@ static int stli_getbrdnr(void)
3739 * do is go probing around in the usual places hoping we can find it. 3739 * do is go probing around in the usual places hoping we can find it.
3740 */ 3740 */
3741 3741
3742static int stli_findeisabrds(void) 3742static int __init stli_findeisabrds(void)
3743{ 3743{
3744 struct stlibrd *brdp; 3744 struct stlibrd *brdp;
3745 unsigned int iobase, eid, i; 3745 unsigned int iobase, eid, i;
@@ -3935,7 +3935,7 @@ static struct stlibrd *stli_allocbrd(void)
3935 * can find. 3935 * can find.
3936 */ 3936 */
3937 3937
3938static int stli_initbrds(void) 3938static int __init stli_initbrds(void)
3939{ 3939{
3940 struct stlibrd *brdp, *nxtbrdp; 3940 struct stlibrd *brdp, *nxtbrdp;
3941 struct stlconf conf; 3941 struct stlconf conf;
diff --git a/drivers/char/serial167.c b/drivers/char/serial167.c
index 3b23270eaa65..a8f15e6be594 100644
--- a/drivers/char/serial167.c
+++ b/drivers/char/serial167.c
@@ -418,7 +418,7 @@ static irqreturn_t cd2401_rxerr_interrupt(int irq, void *dev_id)
418 TTY_OVERRUN); 418 TTY_OVERRUN);
419 /* 419 /*
420 If the flip buffer itself is 420 If the flip buffer itself is
421 overflowing, we still loose 421 overflowing, we still lose
422 the next incoming character. 422 the next incoming character.
423 */ 423 */
424 if (tty_buffer_request_room(tty, 1) != 424 if (tty_buffer_request_room(tty, 1) !=
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
index 59f472143f08..1412a8d1e58d 100644
--- a/drivers/char/tty_io.c
+++ b/drivers/char/tty_io.c
@@ -1795,12 +1795,15 @@ retry_open:
1795 } 1795 }
1796#endif 1796#endif
1797 if (device == MKDEV(TTYAUX_MAJOR, 1)) { 1797 if (device == MKDEV(TTYAUX_MAJOR, 1)) {
1798 driver = tty_driver_kref_get(console_device(&index)); 1798 struct tty_driver *console_driver = console_device(&index);
1799 if (driver) { 1799 if (console_driver) {
1800 /* Don't let /dev/console block */ 1800 driver = tty_driver_kref_get(console_driver);
1801 filp->f_flags |= O_NONBLOCK; 1801 if (driver) {
1802 noctty = 1; 1802 /* Don't let /dev/console block */
1803 goto got_driver; 1803 filp->f_flags |= O_NONBLOCK;
1804 noctty = 1;
1805 goto got_driver;
1806 }
1804 } 1807 }
1805 mutex_unlock(&tty_mutex); 1808 mutex_unlock(&tty_mutex);
1806 return -ENODEV; 1809 return -ENODEV;
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index a5af6072e2b3..008176edbd64 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -2274,7 +2274,7 @@ rescan_last_byte:
2274 continue; /* nothing to display */ 2274 continue; /* nothing to display */
2275 } 2275 }
2276 /* Glyph not found */ 2276 /* Glyph not found */
2277 if ((!(vc->vc_utf && !vc->vc_disp_ctrl) || c < 128) && !(c & ~charmask)) { 2277 if ((!(vc->vc_utf && !vc->vc_disp_ctrl) && c < 128) && !(c & ~charmask)) {
2278 /* In legacy mode use the glyph we get by a 1:1 mapping. 2278 /* In legacy mode use the glyph we get by a 1:1 mapping.
2279 This would make absolutely no sense with Unicode in mind, 2279 This would make absolutely no sense with Unicode in mind,
2280 but do this for ASCII characters since a font may lack 2280 but do this for ASCII characters since a font may lack
diff --git a/drivers/char/xilinx_hwicap/buffer_icap.c b/drivers/char/xilinx_hwicap/buffer_icap.c
index aa7f7962a9a0..05d897764f02 100644
--- a/drivers/char/xilinx_hwicap/buffer_icap.c
+++ b/drivers/char/xilinx_hwicap/buffer_icap.c
@@ -21,9 +21,6 @@
21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 * FOR A PARTICULAR PURPOSE. 22 * FOR A PARTICULAR PURPOSE.
23 * 23 *
24 * Xilinx products are not intended for use in life support appliances,
25 * devices, or systems. Use in such applications is expressly prohibited.
26 *
27 * (c) Copyright 2003-2008 Xilinx Inc. 24 * (c) Copyright 2003-2008 Xilinx Inc.
28 * All rights reserved. 25 * All rights reserved.
29 * 26 *
diff --git a/drivers/char/xilinx_hwicap/buffer_icap.h b/drivers/char/xilinx_hwicap/buffer_icap.h
index 8b0252bf06e2..d4f419ee87ab 100644
--- a/drivers/char/xilinx_hwicap/buffer_icap.h
+++ b/drivers/char/xilinx_hwicap/buffer_icap.h
@@ -21,9 +21,6 @@
21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 * FOR A PARTICULAR PURPOSE. 22 * FOR A PARTICULAR PURPOSE.
23 * 23 *
24 * Xilinx products are not intended for use in life support appliances,
25 * devices, or systems. Use in such applications is expressly prohibited.
26 *
27 * (c) Copyright 2003-2008 Xilinx Inc. 24 * (c) Copyright 2003-2008 Xilinx Inc.
28 * All rights reserved. 25 * All rights reserved.
29 * 26 *
diff --git a/drivers/char/xilinx_hwicap/fifo_icap.c b/drivers/char/xilinx_hwicap/fifo_icap.c
index 776b50528478..02225eb19cf6 100644
--- a/drivers/char/xilinx_hwicap/fifo_icap.c
+++ b/drivers/char/xilinx_hwicap/fifo_icap.c
@@ -21,9 +21,6 @@
21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 * FOR A PARTICULAR PURPOSE. 22 * FOR A PARTICULAR PURPOSE.
23 * 23 *
24 * Xilinx products are not intended for use in life support appliances,
25 * devices, or systems. Use in such applications is expressly prohibited.
26 *
27 * (c) Copyright 2007-2008 Xilinx Inc. 24 * (c) Copyright 2007-2008 Xilinx Inc.
28 * All rights reserved. 25 * All rights reserved.
29 * 26 *
diff --git a/drivers/char/xilinx_hwicap/fifo_icap.h b/drivers/char/xilinx_hwicap/fifo_icap.h
index 62bda453c90b..4c9dd9a3b62a 100644
--- a/drivers/char/xilinx_hwicap/fifo_icap.h
+++ b/drivers/char/xilinx_hwicap/fifo_icap.h
@@ -21,9 +21,6 @@
21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 * FOR A PARTICULAR PURPOSE. 22 * FOR A PARTICULAR PURPOSE.
23 * 23 *
24 * Xilinx products are not intended for use in life support appliances,
25 * devices, or systems. Use in such applications is expressly prohibited.
26 *
27 * (c) Copyright 2007-2008 Xilinx Inc. 24 * (c) Copyright 2007-2008 Xilinx Inc.
28 * All rights reserved. 25 * All rights reserved.
29 * 26 *
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
index ed132fe55d3d..f40ab699860f 100644
--- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c
+++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
@@ -21,9 +21,6 @@
21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 * FOR A PARTICULAR PURPOSE. 22 * FOR A PARTICULAR PURPOSE.
23 * 23 *
24 * Xilinx products are not intended for use in life support appliances,
25 * devices, or systems. Use in such applications is expressly prohibited.
26 *
27 * (c) Copyright 2002 Xilinx Inc., Systems Engineering Group 24 * (c) Copyright 2002 Xilinx Inc., Systems Engineering Group
28 * (c) Copyright 2004 Xilinx Inc., Systems Engineering Group 25 * (c) Copyright 2004 Xilinx Inc., Systems Engineering Group
29 * (c) Copyright 2007-2008 Xilinx Inc. 26 * (c) Copyright 2007-2008 Xilinx Inc.
@@ -626,7 +623,7 @@ static int __devinit hwicap_setup(struct device *dev, int id,
626 if (!request_mem_region(drvdata->mem_start, 623 if (!request_mem_region(drvdata->mem_start,
627 drvdata->mem_size, DRIVER_NAME)) { 624 drvdata->mem_size, DRIVER_NAME)) {
628 dev_err(dev, "Couldn't lock memory region at %Lx\n", 625 dev_err(dev, "Couldn't lock memory region at %Lx\n",
629 regs_res->start); 626 (unsigned long long) regs_res->start);
630 retval = -EBUSY; 627 retval = -EBUSY;
631 goto failed1; 628 goto failed1;
632 } 629 }
@@ -645,9 +642,10 @@ static int __devinit hwicap_setup(struct device *dev, int id,
645 mutex_init(&drvdata->sem); 642 mutex_init(&drvdata->sem);
646 drvdata->is_open = 0; 643 drvdata->is_open = 0;
647 644
648 dev_info(dev, "ioremap %lx to %p with size %Lx\n", 645 dev_info(dev, "ioremap %llx to %p with size %llx\n",
649 (unsigned long int)drvdata->mem_start, 646 (unsigned long long) drvdata->mem_start,
650 drvdata->base_address, drvdata->mem_size); 647 drvdata->base_address,
648 (unsigned long long) drvdata->mem_size);
651 649
652 cdev_init(&drvdata->cdev, &hwicap_fops); 650 cdev_init(&drvdata->cdev, &hwicap_fops);
653 drvdata->cdev.owner = THIS_MODULE; 651 drvdata->cdev.owner = THIS_MODULE;
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.h b/drivers/char/xilinx_hwicap/xilinx_hwicap.h
index 24d0d9b938fb..8cca11981c5f 100644
--- a/drivers/char/xilinx_hwicap/xilinx_hwicap.h
+++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.h
@@ -21,9 +21,6 @@
21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21 * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 * FOR A PARTICULAR PURPOSE. 22 * FOR A PARTICULAR PURPOSE.
23 * 23 *
24 * Xilinx products are not intended for use in life support appliances,
25 * devices, or systems. Use in such applications is expressly prohibited.
26 *
27 * (c) Copyright 2003-2007 Xilinx Inc. 24 * (c) Copyright 2003-2007 Xilinx Inc.
28 * All rights reserved. 25 * All rights reserved.
29 * 26 *
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index b6ad3ac5916e..24607669a52b 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -1357,7 +1357,7 @@ static int hw_supports(struct device *dev, __be32 desc_hdr_template)
1357 return ret; 1357 return ret;
1358} 1358}
1359 1359
1360static int __devexit talitos_remove(struct of_device *ofdev) 1360static int talitos_remove(struct of_device *ofdev)
1361{ 1361{
1362 struct device *dev = &ofdev->dev; 1362 struct device *dev = &ofdev->dev;
1363 struct talitos_private *priv = dev_get_drvdata(dev); 1363 struct talitos_private *priv = dev_get_drvdata(dev);
@@ -1622,7 +1622,7 @@ static struct of_platform_driver talitos_driver = {
1622 .name = "talitos", 1622 .name = "talitos",
1623 .match_table = talitos_match, 1623 .match_table = talitos_match,
1624 .probe = talitos_probe, 1624 .probe = talitos_probe,
1625 .remove = __devexit_p(talitos_remove), 1625 .remove = talitos_remove,
1626}; 1626};
1627 1627
1628static int __init talitos_init(void) 1628static int __init talitos_init(void)
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index 5317e08221ec..657996517374 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -388,7 +388,10 @@ int dma_async_device_register(struct dma_device *device)
388 388
389 init_completion(&device->done); 389 init_completion(&device->done);
390 kref_init(&device->refcount); 390 kref_init(&device->refcount);
391
392 mutex_lock(&dma_list_mutex);
391 device->dev_id = id++; 393 device->dev_id = id++;
394 mutex_unlock(&dma_list_mutex);
392 395
393 /* represent channels in sysfs. Probably want devs too */ 396 /* represent channels in sysfs. Probably want devs too */
394 list_for_each_entry(chan, &device->channels, device_node) { 397 list_for_each_entry(chan, &device->channels, device_node) {
diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c
index ecd743f7cc61..6607fdd00b1c 100644
--- a/drivers/dma/ioat_dma.c
+++ b/drivers/dma/ioat_dma.c
@@ -1341,10 +1341,12 @@ static void ioat_dma_start_null_desc(struct ioat_dma_chan *ioat_chan)
1341 */ 1341 */
1342#define IOAT_TEST_SIZE 2000 1342#define IOAT_TEST_SIZE 2000
1343 1343
1344DECLARE_COMPLETION(test_completion);
1344static void ioat_dma_test_callback(void *dma_async_param) 1345static void ioat_dma_test_callback(void *dma_async_param)
1345{ 1346{
1346 printk(KERN_ERR "ioatdma: ioat_dma_test_callback(%p)\n", 1347 printk(KERN_ERR "ioatdma: ioat_dma_test_callback(%p)\n",
1347 dma_async_param); 1348 dma_async_param);
1349 complete(&test_completion);
1348} 1350}
1349 1351
1350/** 1352/**
@@ -1410,7 +1412,8 @@ static int ioat_dma_self_test(struct ioatdma_device *device)
1410 goto free_resources; 1412 goto free_resources;
1411 } 1413 }
1412 device->common.device_issue_pending(dma_chan); 1414 device->common.device_issue_pending(dma_chan);
1413 msleep(1); 1415
1416 wait_for_completion_timeout(&test_completion, msecs_to_jiffies(3000));
1414 1417
1415 if (device->common.device_is_tx_complete(dma_chan, cookie, NULL, NULL) 1418 if (device->common.device_is_tx_complete(dma_chan, cookie, NULL, NULL)
1416 != DMA_SUCCESS) { 1419 != DMA_SUCCESS) {
diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c
index c7a9306d951d..6be317262200 100644
--- a/drivers/dma/iop-adma.c
+++ b/drivers/dma/iop-adma.c
@@ -85,18 +85,28 @@ iop_adma_run_tx_complete_actions(struct iop_adma_desc_slot *desc,
85 enum dma_ctrl_flags flags = desc->async_tx.flags; 85 enum dma_ctrl_flags flags = desc->async_tx.flags;
86 u32 src_cnt; 86 u32 src_cnt;
87 dma_addr_t addr; 87 dma_addr_t addr;
88 dma_addr_t dest;
88 89
90 src_cnt = unmap->unmap_src_cnt;
91 dest = iop_desc_get_dest_addr(unmap, iop_chan);
89 if (!(flags & DMA_COMPL_SKIP_DEST_UNMAP)) { 92 if (!(flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
90 addr = iop_desc_get_dest_addr(unmap, iop_chan); 93 enum dma_data_direction dir;
91 dma_unmap_page(dev, addr, len, DMA_FROM_DEVICE); 94
95 if (src_cnt > 1) /* is xor? */
96 dir = DMA_BIDIRECTIONAL;
97 else
98 dir = DMA_FROM_DEVICE;
99
100 dma_unmap_page(dev, dest, len, dir);
92 } 101 }
93 102
94 if (!(flags & DMA_COMPL_SKIP_SRC_UNMAP)) { 103 if (!(flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
95 src_cnt = unmap->unmap_src_cnt;
96 while (src_cnt--) { 104 while (src_cnt--) {
97 addr = iop_desc_get_src_addr(unmap, 105 addr = iop_desc_get_src_addr(unmap,
98 iop_chan, 106 iop_chan,
99 src_cnt); 107 src_cnt);
108 if (addr == dest)
109 continue;
100 dma_unmap_page(dev, addr, len, 110 dma_unmap_page(dev, addr, len,
101 DMA_TO_DEVICE); 111 DMA_TO_DEVICE);
102 } 112 }
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index 0328da020a10..bcda17426411 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -311,17 +311,26 @@ mv_xor_run_tx_complete_actions(struct mv_xor_desc_slot *desc,
311 enum dma_ctrl_flags flags = desc->async_tx.flags; 311 enum dma_ctrl_flags flags = desc->async_tx.flags;
312 u32 src_cnt; 312 u32 src_cnt;
313 dma_addr_t addr; 313 dma_addr_t addr;
314 dma_addr_t dest;
314 315
316 src_cnt = unmap->unmap_src_cnt;
317 dest = mv_desc_get_dest_addr(unmap);
315 if (!(flags & DMA_COMPL_SKIP_DEST_UNMAP)) { 318 if (!(flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
316 addr = mv_desc_get_dest_addr(unmap); 319 enum dma_data_direction dir;
317 dma_unmap_page(dev, addr, len, DMA_FROM_DEVICE); 320
321 if (src_cnt > 1) /* is xor ? */
322 dir = DMA_BIDIRECTIONAL;
323 else
324 dir = DMA_FROM_DEVICE;
325 dma_unmap_page(dev, dest, len, dir);
318 } 326 }
319 327
320 if (!(flags & DMA_COMPL_SKIP_SRC_UNMAP)) { 328 if (!(flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
321 src_cnt = unmap->unmap_src_cnt;
322 while (src_cnt--) { 329 while (src_cnt--) {
323 addr = mv_desc_get_src_addr(unmap, 330 addr = mv_desc_get_src_addr(unmap,
324 src_cnt); 331 src_cnt);
332 if (addr == dest)
333 continue;
325 dma_unmap_page(dev, addr, len, 334 dma_unmap_page(dev, addr, len,
326 DMA_TO_DEVICE); 335 DMA_TO_DEVICE);
327 } 336 }
diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
index 5fcd3d89c75d..4041e9143283 100644
--- a/drivers/edac/edac_device.c
+++ b/drivers/edac/edac_device.c
@@ -394,6 +394,12 @@ static void edac_device_workq_function(struct work_struct *work_req)
394 394
395 mutex_lock(&device_ctls_mutex); 395 mutex_lock(&device_ctls_mutex);
396 396
397 /* If we are being removed, bail out immediately */
398 if (edac_dev->op_state == OP_OFFLINE) {
399 mutex_unlock(&device_ctls_mutex);
400 return;
401 }
402
397 /* Only poll controllers that are running polled and have a check */ 403 /* Only poll controllers that are running polled and have a check */
398 if ((edac_dev->op_state == OP_RUNNING_POLL) && 404 if ((edac_dev->op_state == OP_RUNNING_POLL) &&
399 (edac_dev->edac_check != NULL)) { 405 (edac_dev->edac_check != NULL)) {
@@ -585,14 +591,14 @@ struct edac_device_ctl_info *edac_device_del_device(struct device *dev)
585 /* mark this instance as OFFLINE */ 591 /* mark this instance as OFFLINE */
586 edac_dev->op_state = OP_OFFLINE; 592 edac_dev->op_state = OP_OFFLINE;
587 593
588 /* clear workq processing on this instance */
589 edac_device_workq_teardown(edac_dev);
590
591 /* deregister from global list */ 594 /* deregister from global list */
592 del_edac_device_from_global_list(edac_dev); 595 del_edac_device_from_global_list(edac_dev);
593 596
594 mutex_unlock(&device_ctls_mutex); 597 mutex_unlock(&device_ctls_mutex);
595 598
599 /* clear workq processing on this instance */
600 edac_device_workq_teardown(edac_dev);
601
596 /* Tear down the sysfs entries for this instance */ 602 /* Tear down the sysfs entries for this instance */
597 edac_device_remove_sysfs(edac_dev); 603 edac_device_remove_sysfs(edac_dev);
598 604
diff --git a/drivers/edac/i82875p_edac.c b/drivers/edac/i82875p_edac.c
index e43bdc43a1bf..ebb037b78758 100644
--- a/drivers/edac/i82875p_edac.c
+++ b/drivers/edac/i82875p_edac.c
@@ -182,8 +182,6 @@ static struct pci_dev *mci_pdev; /* init dev: in case that AGP code has
182 * already registered driver 182 * already registered driver
183 */ 183 */
184 184
185static int i82875p_registered = 1;
186
187static struct edac_pci_ctl_info *i82875p_pci; 185static struct edac_pci_ctl_info *i82875p_pci;
188 186
189static void i82875p_get_error_info(struct mem_ctl_info *mci, 187static void i82875p_get_error_info(struct mem_ctl_info *mci,
@@ -295,6 +293,7 @@ static int i82875p_setup_overfl_dev(struct pci_dev *pdev,
295 "%s(): pci_bus_add_device() Failed\n", 293 "%s(): pci_bus_add_device() Failed\n",
296 __func__); 294 __func__);
297 } 295 }
296 pci_bus_assign_resources(dev->bus);
298 } 297 }
299 298
300 *ovrfl_pdev = dev; 299 *ovrfl_pdev = dev;
@@ -409,6 +408,9 @@ static int i82875p_probe1(struct pci_dev *pdev, int dev_idx)
409 goto fail0; 408 goto fail0;
410 } 409 }
411 410
411 /* Keeps mci available after edac_mc_del_mc() till edac_mc_free() */
412 kobject_get(&mci->edac_mci_kobj);
413
412 debugf3("%s(): init mci\n", __func__); 414 debugf3("%s(): init mci\n", __func__);
413 mci->dev = &pdev->dev; 415 mci->dev = &pdev->dev;
414 mci->mtype_cap = MEM_FLAG_DDR; 416 mci->mtype_cap = MEM_FLAG_DDR;
@@ -451,6 +453,7 @@ static int i82875p_probe1(struct pci_dev *pdev, int dev_idx)
451 return 0; 453 return 0;
452 454
453fail1: 455fail1:
456 kobject_put(&mci->edac_mci_kobj);
454 edac_mc_free(mci); 457 edac_mc_free(mci);
455 458
456fail0: 459fail0:
@@ -578,12 +581,11 @@ static void __exit i82875p_exit(void)
578{ 581{
579 debugf3("%s()\n", __func__); 582 debugf3("%s()\n", __func__);
580 583
584 i82875p_remove_one(mci_pdev);
585 pci_dev_put(mci_pdev);
586
581 pci_unregister_driver(&i82875p_driver); 587 pci_unregister_driver(&i82875p_driver);
582 588
583 if (!i82875p_registered) {
584 i82875p_remove_one(mci_pdev);
585 pci_dev_put(mci_pdev);
586 }
587} 589}
588 590
589module_init(i82875p_init); 591module_init(i82875p_init);
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index 46610b090415..ab9c01e462ef 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -974,6 +974,7 @@ at_context_queue_packet(struct context *ctx, struct fw_packet *packet)
974 packet->ack = RCODE_SEND_ERROR; 974 packet->ack = RCODE_SEND_ERROR;
975 return -1; 975 return -1;
976 } 976 }
977 packet->payload_bus = payload_bus;
977 978
978 d[2].req_count = cpu_to_le16(packet->payload_length); 979 d[2].req_count = cpu_to_le16(packet->payload_length);
979 d[2].data_address = cpu_to_le32(payload_bus); 980 d[2].data_address = cpu_to_le32(payload_bus);
@@ -1025,7 +1026,6 @@ static int handle_at_packet(struct context *context,
1025 struct driver_data *driver_data; 1026 struct driver_data *driver_data;
1026 struct fw_packet *packet; 1027 struct fw_packet *packet;
1027 struct fw_ohci *ohci = context->ohci; 1028 struct fw_ohci *ohci = context->ohci;
1028 dma_addr_t payload_bus;
1029 int evt; 1029 int evt;
1030 1030
1031 if (last->transfer_status == 0) 1031 if (last->transfer_status == 0)
@@ -1038,9 +1038,8 @@ static int handle_at_packet(struct context *context,
1038 /* This packet was cancelled, just continue. */ 1038 /* This packet was cancelled, just continue. */
1039 return 1; 1039 return 1;
1040 1040
1041 payload_bus = le32_to_cpu(last->data_address); 1041 if (packet->payload_bus)
1042 if (payload_bus != 0) 1042 dma_unmap_single(ohci->card.device, packet->payload_bus,
1043 dma_unmap_single(ohci->card.device, payload_bus,
1044 packet->payload_length, DMA_TO_DEVICE); 1043 packet->payload_length, DMA_TO_DEVICE);
1045 1044
1046 evt = le16_to_cpu(last->transfer_status) & 0x1f; 1045 evt = le16_to_cpu(last->transfer_status) & 0x1f;
@@ -1697,6 +1696,10 @@ static int ohci_cancel_packet(struct fw_card *card, struct fw_packet *packet)
1697 if (packet->ack != 0) 1696 if (packet->ack != 0)
1698 goto out; 1697 goto out;
1699 1698
1699 if (packet->payload_bus)
1700 dma_unmap_single(ohci->card.device, packet->payload_bus,
1701 packet->payload_length, DMA_TO_DEVICE);
1702
1700 log_ar_at_event('T', packet->speed, packet->header, 0x20); 1703 log_ar_at_event('T', packet->speed, packet->header, 0x20);
1701 driver_data->packet = NULL; 1704 driver_data->packet = NULL;
1702 packet->ack = RCODE_CANCELLED; 1705 packet->ack = RCODE_CANCELLED;
diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c
index 97df6dac3a82..e54403ee59e7 100644
--- a/drivers/firewire/fw-sbp2.c
+++ b/drivers/firewire/fw-sbp2.c
@@ -372,6 +372,11 @@ static const struct {
372 }, 372 },
373 /* iPod mini */ { 373 /* iPod mini */ {
374 .firmware_revision = 0x0a2700, 374 .firmware_revision = 0x0a2700,
375 .model = 0x000022,
376 .workarounds = SBP2_WORKAROUND_FIX_CAPACITY,
377 },
378 /* iPod mini */ {
379 .firmware_revision = 0x0a2700,
375 .model = 0x000023, 380 .model = 0x000023,
376 .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, 381 .workarounds = SBP2_WORKAROUND_FIX_CAPACITY,
377 }, 382 },
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index 022ac4fabb67..2884f876397b 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -207,6 +207,7 @@ fw_fill_request(struct fw_packet *packet, int tcode, int tlabel,
207 packet->speed = speed; 207 packet->speed = speed;
208 packet->generation = generation; 208 packet->generation = generation;
209 packet->ack = 0; 209 packet->ack = 0;
210 packet->payload_bus = 0;
210} 211}
211 212
212/** 213/**
@@ -581,6 +582,8 @@ fw_fill_response(struct fw_packet *response, u32 *request_header,
581 BUG(); 582 BUG();
582 return; 583 return;
583 } 584 }
585
586 response->payload_bus = 0;
584} 587}
585EXPORT_SYMBOL(fw_fill_response); 588EXPORT_SYMBOL(fw_fill_response);
586 589
diff --git a/drivers/firewire/fw-transaction.h b/drivers/firewire/fw-transaction.h
index aed7dbb17cda..839466f0a795 100644
--- a/drivers/firewire/fw-transaction.h
+++ b/drivers/firewire/fw-transaction.h
@@ -27,6 +27,7 @@
27#include <linux/list.h> 27#include <linux/list.h>
28#include <linux/spinlock_types.h> 28#include <linux/spinlock_types.h>
29#include <linux/timer.h> 29#include <linux/timer.h>
30#include <linux/types.h>
30#include <linux/workqueue.h> 31#include <linux/workqueue.h>
31 32
32#define TCODE_IS_READ_REQUEST(tcode) (((tcode) & ~1) == 4) 33#define TCODE_IS_READ_REQUEST(tcode) (((tcode) & ~1) == 4)
@@ -153,6 +154,7 @@ struct fw_packet {
153 size_t header_length; 154 size_t header_length;
154 void *payload; 155 void *payload;
155 size_t payload_length; 156 size_t payload_length;
157 dma_addr_t payload_bus;
156 u32 timestamp; 158 u32 timestamp;
157 159
158 /* 160 /*
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 3ab1e9cc4692..996097acb5e7 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -305,6 +305,8 @@ static void drm_cleanup(struct drm_device * dev)
305 return; 305 return;
306 } 306 }
307 307
308 drm_vblank_cleanup(dev);
309
308 drm_lastclose(dev); 310 drm_lastclose(dev);
309 311
310 if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && 312 if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) &&
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 15c8dabc3e97..1e787f894b3c 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -94,7 +94,7 @@ static void vblank_disable_fn(unsigned long arg)
94 } 94 }
95} 95}
96 96
97static void drm_vblank_cleanup(struct drm_device *dev) 97void drm_vblank_cleanup(struct drm_device *dev)
98{ 98{
99 /* Bail if the driver didn't call drm_vblank_init() */ 99 /* Bail if the driver didn't call drm_vblank_init() */
100 if (dev->num_crtcs == 0) 100 if (dev->num_crtcs == 0)
@@ -278,8 +278,6 @@ int drm_irq_uninstall(struct drm_device * dev)
278 278
279 free_irq(dev->pdev->irq, dev); 279 free_irq(dev->pdev->irq, dev);
280 280
281 drm_vblank_cleanup(dev);
282
283 return 0; 281 return 0;
284} 282}
285EXPORT_SYMBOL(drm_irq_uninstall); 283EXPORT_SYMBOL(drm_irq_uninstall);
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 0d215e38606a..afa8a12cd009 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -717,7 +717,7 @@ static int i915_getparam(struct drm_device *dev, void *data,
717 value = dev->pci_device; 717 value = dev->pci_device;
718 break; 718 break;
719 case I915_PARAM_HAS_GEM: 719 case I915_PARAM_HAS_GEM:
720 value = 1; 720 value = dev_priv->has_gem;
721 break; 721 break;
722 default: 722 default:
723 DRM_ERROR("Unknown parameter %d\n", param->param); 723 DRM_ERROR("Unknown parameter %d\n", param->param);
@@ -830,6 +830,14 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
830 830
831 dev_priv->regs = ioremap(base, size); 831 dev_priv->regs = ioremap(base, size);
832 832
833#ifdef CONFIG_HIGHMEM64G
834 /* don't enable GEM on PAE - needs agp + set_memory_* interface fixes */
835 dev_priv->has_gem = 0;
836#else
837 /* enable GEM by default */
838 dev_priv->has_gem = 1;
839#endif
840
833 i915_gem_load(dev); 841 i915_gem_load(dev);
834 842
835 /* Init HWS */ 843 /* Init HWS */
@@ -847,15 +855,23 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
847 * and the registers being closely associated. 855 * and the registers being closely associated.
848 * 856 *
849 * According to chipset errata, on the 965GM, MSI interrupts may 857 * According to chipset errata, on the 965GM, MSI interrupts may
850 * be lost or delayed 858 * be lost or delayed, but we use them anyways to avoid
859 * stuck interrupts on some machines.
851 */ 860 */
852 if (!IS_I945G(dev) && !IS_I945GM(dev) && !IS_I965GM(dev)) 861 if (!IS_I945G(dev) && !IS_I945GM(dev))
853 pci_enable_msi(dev->pdev); 862 pci_enable_msi(dev->pdev);
854 863
855 intel_opregion_init(dev); 864 intel_opregion_init(dev);
856 865
857 spin_lock_init(&dev_priv->user_irq_lock); 866 spin_lock_init(&dev_priv->user_irq_lock);
858 867
868 ret = drm_vblank_init(dev, I915_NUM_PIPE);
869
870 if (ret) {
871 (void) i915_driver_unload(dev);
872 return ret;
873 }
874
859 return ret; 875 return ret;
860} 876}
861 877
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ef1c0b8f8d07..b3cc4731aa7c 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -47,6 +47,8 @@ enum pipe {
47 PIPE_B, 47 PIPE_B,
48}; 48};
49 49
50#define I915_NUM_PIPE 2
51
50/* Interface history: 52/* Interface history:
51 * 53 *
52 * 1.1: Original. 54 * 1.1: Original.
@@ -104,6 +106,8 @@ struct intel_opregion {
104typedef struct drm_i915_private { 106typedef struct drm_i915_private {
105 struct drm_device *dev; 107 struct drm_device *dev;
106 108
109 int has_gem;
110
107 void __iomem *regs; 111 void __iomem *regs;
108 drm_local_map_t *sarea; 112 drm_local_map_t *sarea;
109 113
@@ -132,6 +136,7 @@ typedef struct drm_i915_private {
132 int user_irq_refcount; 136 int user_irq_refcount;
133 /** Cached value of IMR to avoid reads in updating the bitfield */ 137 /** Cached value of IMR to avoid reads in updating the bitfield */
134 u32 irq_mask_reg; 138 u32 irq_mask_reg;
139 u32 pipestat[2];
135 140
136 int tex_lru_log_granularity; 141 int tex_lru_log_granularity;
137 int allow_batchbuffer; 142 int allow_batchbuffer;
@@ -147,6 +152,7 @@ typedef struct drm_i915_private {
147 u32 saveDSPBCNTR; 152 u32 saveDSPBCNTR;
148 u32 saveDSPARB; 153 u32 saveDSPARB;
149 u32 saveRENDERSTANDBY; 154 u32 saveRENDERSTANDBY;
155 u32 saveHWS;
150 u32 savePIPEACONF; 156 u32 savePIPEACONF;
151 u32 savePIPEBCONF; 157 u32 savePIPEBCONF;
152 u32 savePIPEASRC; 158 u32 savePIPEASRC;
@@ -240,6 +246,10 @@ typedef struct drm_i915_private {
240 * List of objects currently involved in rendering from the 246 * List of objects currently involved in rendering from the
241 * ringbuffer. 247 * ringbuffer.
242 * 248 *
249 * Includes buffers having the contents of their GPU caches
250 * flushed, not necessarily primitives. last_rendering_seqno
251 * represents when the rendering involved will be completed.
252 *
243 * A reference is held on the buffer while on this list. 253 * A reference is held on the buffer while on this list.
244 */ 254 */
245 struct list_head active_list; 255 struct list_head active_list;
@@ -249,6 +259,8 @@ typedef struct drm_i915_private {
249 * still have a write_domain which needs to be flushed before 259 * still have a write_domain which needs to be flushed before
250 * unbinding. 260 * unbinding.
251 * 261 *
262 * last_rendering_seqno is 0 while an object is in this list.
263 *
252 * A reference is held on the buffer while on this list. 264 * A reference is held on the buffer while on this list.
253 */ 265 */
254 struct list_head flushing_list; 266 struct list_head flushing_list;
@@ -257,6 +269,8 @@ typedef struct drm_i915_private {
257 * LRU list of objects which are not in the ringbuffer and 269 * LRU list of objects which are not in the ringbuffer and
258 * are ready to unbind, but are still in the GTT. 270 * are ready to unbind, but are still in the GTT.
259 * 271 *
272 * last_rendering_seqno is 0 while an object is in this list.
273 *
260 * A reference is not held on the buffer while on this list, 274 * A reference is not held on the buffer while on this list,
261 * as merely being GTT-bound shouldn't prevent its being 275 * as merely being GTT-bound shouldn't prevent its being
262 * freed, and we'll pull it off the list in the free path. 276 * freed, and we'll pull it off the list in the free path.
@@ -367,8 +381,8 @@ struct drm_i915_gem_object {
367 uint32_t agp_type; 381 uint32_t agp_type;
368 382
369 /** 383 /**
370 * Flagging of which individual pages are valid in GEM_DOMAIN_CPU when 384 * If present, while GEM_DOMAIN_CPU is in the read domain this array
371 * GEM_DOMAIN_CPU is not in the object's read domain. 385 * flags which individual pages are valid.
372 */ 386 */
373 uint8_t *page_cpu_valid; 387 uint8_t *page_cpu_valid;
374}; 388};
@@ -390,9 +404,6 @@ struct drm_i915_gem_request {
390 /** Time at which this request was emitted, in jiffies. */ 404 /** Time at which this request was emitted, in jiffies. */
391 unsigned long emitted_jiffies; 405 unsigned long emitted_jiffies;
392 406
393 /** Cache domains that were flushed at the start of the request. */
394 uint32_t flush_domains;
395
396 struct list_head list; 407 struct list_head list;
397}; 408};
398 409
@@ -446,6 +457,13 @@ extern int i915_vblank_swap(struct drm_device *dev, void *data,
446 struct drm_file *file_priv); 457 struct drm_file *file_priv);
447extern void i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask); 458extern void i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask);
448 459
460void
461i915_enable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask);
462
463void
464i915_disable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask);
465
466
449/* i915_mem.c */ 467/* i915_mem.c */
450extern int i915_mem_alloc(struct drm_device *dev, void *data, 468extern int i915_mem_alloc(struct drm_device *dev, void *data,
451 struct drm_file *file_priv); 469 struct drm_file *file_priv);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 6b4a2bd20640..24fe8c10b4b2 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -31,21 +31,23 @@
31#include "i915_drv.h" 31#include "i915_drv.h"
32#include <linux/swap.h> 32#include <linux/swap.h>
33 33
34static int 34#define I915_GEM_GPU_DOMAINS (~(I915_GEM_DOMAIN_CPU | I915_GEM_DOMAIN_GTT))
35i915_gem_object_set_domain(struct drm_gem_object *obj, 35
36 uint32_t read_domains, 36static void
37 uint32_t write_domain); 37i915_gem_object_set_to_gpu_domain(struct drm_gem_object *obj,
38static int 38 uint32_t read_domains,
39i915_gem_object_set_domain_range(struct drm_gem_object *obj, 39 uint32_t write_domain);
40 uint64_t offset, 40static void i915_gem_object_flush_gpu_write_domain(struct drm_gem_object *obj);
41 uint64_t size, 41static void i915_gem_object_flush_gtt_write_domain(struct drm_gem_object *obj);
42 uint32_t read_domains, 42static void i915_gem_object_flush_cpu_write_domain(struct drm_gem_object *obj);
43 uint32_t write_domain); 43static int i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj,
44static int 44 int write);
45i915_gem_set_domain(struct drm_gem_object *obj, 45static int i915_gem_object_set_to_cpu_domain(struct drm_gem_object *obj,
46 struct drm_file *file_priv, 46 int write);
47 uint32_t read_domains, 47static int i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
48 uint32_t write_domain); 48 uint64_t offset,
49 uint64_t size);
50static void i915_gem_object_set_to_full_cpu_read_domain(struct drm_gem_object *obj);
49static int i915_gem_object_get_page_list(struct drm_gem_object *obj); 51static int i915_gem_object_get_page_list(struct drm_gem_object *obj);
50static void i915_gem_object_free_page_list(struct drm_gem_object *obj); 52static void i915_gem_object_free_page_list(struct drm_gem_object *obj);
51static int i915_gem_object_wait_rendering(struct drm_gem_object *obj); 53static int i915_gem_object_wait_rendering(struct drm_gem_object *obj);
@@ -83,20 +85,14 @@ int
83i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data, 85i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data,
84 struct drm_file *file_priv) 86 struct drm_file *file_priv)
85{ 87{
86 drm_i915_private_t *dev_priv = dev->dev_private;
87 struct drm_i915_gem_get_aperture *args = data; 88 struct drm_i915_gem_get_aperture *args = data;
88 struct drm_i915_gem_object *obj_priv;
89 89
90 if (!(dev->driver->driver_features & DRIVER_GEM)) 90 if (!(dev->driver->driver_features & DRIVER_GEM))
91 return -ENODEV; 91 return -ENODEV;
92 92
93 args->aper_size = dev->gtt_total; 93 args->aper_size = dev->gtt_total;
94 args->aper_available_size = args->aper_size; 94 args->aper_available_size = (args->aper_size -
95 95 atomic_read(&dev->pin_memory));
96 list_for_each_entry(obj_priv, &dev_priv->mm.active_list, list) {
97 if (obj_priv->pin_count > 0)
98 args->aper_available_size -= obj_priv->obj->size;
99 }
100 96
101 return 0; 97 return 0;
102} 98}
@@ -166,8 +162,8 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
166 162
167 mutex_lock(&dev->struct_mutex); 163 mutex_lock(&dev->struct_mutex);
168 164
169 ret = i915_gem_object_set_domain_range(obj, args->offset, args->size, 165 ret = i915_gem_object_set_cpu_read_domain_range(obj, args->offset,
170 I915_GEM_DOMAIN_CPU, 0); 166 args->size);
171 if (ret != 0) { 167 if (ret != 0) {
172 drm_gem_object_unreference(obj); 168 drm_gem_object_unreference(obj);
173 mutex_unlock(&dev->struct_mutex); 169 mutex_unlock(&dev->struct_mutex);
@@ -264,8 +260,7 @@ i915_gem_gtt_pwrite(struct drm_device *dev, struct drm_gem_object *obj,
264 mutex_unlock(&dev->struct_mutex); 260 mutex_unlock(&dev->struct_mutex);
265 return ret; 261 return ret;
266 } 262 }
267 ret = i915_gem_set_domain(obj, file_priv, 263 ret = i915_gem_object_set_to_gtt_domain(obj, 1);
268 I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
269 if (ret) 264 if (ret)
270 goto fail; 265 goto fail;
271 266
@@ -324,8 +319,7 @@ i915_gem_shmem_pwrite(struct drm_device *dev, struct drm_gem_object *obj,
324 319
325 mutex_lock(&dev->struct_mutex); 320 mutex_lock(&dev->struct_mutex);
326 321
327 ret = i915_gem_set_domain(obj, file_priv, 322 ret = i915_gem_object_set_to_cpu_domain(obj, 1);
328 I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
329 if (ret) { 323 if (ret) {
330 mutex_unlock(&dev->struct_mutex); 324 mutex_unlock(&dev->struct_mutex);
331 return ret; 325 return ret;
@@ -401,7 +395,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
401} 395}
402 396
403/** 397/**
404 * Called when user space prepares to use an object 398 * Called when user space prepares to use an object with the CPU, either
399 * through the mmap ioctl's mapping or a GTT mapping.
405 */ 400 */
406int 401int
407i915_gem_set_domain_ioctl(struct drm_device *dev, void *data, 402i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
@@ -409,11 +404,26 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
409{ 404{
410 struct drm_i915_gem_set_domain *args = data; 405 struct drm_i915_gem_set_domain *args = data;
411 struct drm_gem_object *obj; 406 struct drm_gem_object *obj;
407 uint32_t read_domains = args->read_domains;
408 uint32_t write_domain = args->write_domain;
412 int ret; 409 int ret;
413 410
414 if (!(dev->driver->driver_features & DRIVER_GEM)) 411 if (!(dev->driver->driver_features & DRIVER_GEM))
415 return -ENODEV; 412 return -ENODEV;
416 413
414 /* Only handle setting domains to types used by the CPU. */
415 if (write_domain & ~(I915_GEM_DOMAIN_CPU | I915_GEM_DOMAIN_GTT))
416 return -EINVAL;
417
418 if (read_domains & ~(I915_GEM_DOMAIN_CPU | I915_GEM_DOMAIN_GTT))
419 return -EINVAL;
420
421 /* Having something in the write domain implies it's in the read
422 * domain, and only that read domain. Enforce that in the request.
423 */
424 if (write_domain != 0 && read_domains != write_domain)
425 return -EINVAL;
426
417 obj = drm_gem_object_lookup(dev, file_priv, args->handle); 427 obj = drm_gem_object_lookup(dev, file_priv, args->handle);
418 if (obj == NULL) 428 if (obj == NULL)
419 return -EBADF; 429 return -EBADF;
@@ -421,10 +431,21 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
421 mutex_lock(&dev->struct_mutex); 431 mutex_lock(&dev->struct_mutex);
422#if WATCH_BUF 432#if WATCH_BUF
423 DRM_INFO("set_domain_ioctl %p(%d), %08x %08x\n", 433 DRM_INFO("set_domain_ioctl %p(%d), %08x %08x\n",
424 obj, obj->size, args->read_domains, args->write_domain); 434 obj, obj->size, read_domains, write_domain);
425#endif 435#endif
426 ret = i915_gem_set_domain(obj, file_priv, 436 if (read_domains & I915_GEM_DOMAIN_GTT) {
427 args->read_domains, args->write_domain); 437 ret = i915_gem_object_set_to_gtt_domain(obj, write_domain != 0);
438
439 /* Silently promote "you're not bound, there was nothing to do"
440 * to success, since the client was just asking us to
441 * make sure everything was done.
442 */
443 if (ret == -EINVAL)
444 ret = 0;
445 } else {
446 ret = i915_gem_object_set_to_cpu_domain(obj, write_domain != 0);
447 }
448
428 drm_gem_object_unreference(obj); 449 drm_gem_object_unreference(obj);
429 mutex_unlock(&dev->struct_mutex); 450 mutex_unlock(&dev->struct_mutex);
430 return ret; 451 return ret;
@@ -459,10 +480,9 @@ i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
459 obj_priv = obj->driver_private; 480 obj_priv = obj->driver_private;
460 481
461 /* Pinned buffers may be scanout, so flush the cache */ 482 /* Pinned buffers may be scanout, so flush the cache */
462 if ((obj->write_domain & I915_GEM_DOMAIN_CPU) && obj_priv->pin_count) { 483 if (obj_priv->pin_count)
463 i915_gem_clflush_object(obj); 484 i915_gem_object_flush_cpu_write_domain(obj);
464 drm_agp_chipset_flush(dev); 485
465 }
466 drm_gem_object_unreference(obj); 486 drm_gem_object_unreference(obj);
467 mutex_unlock(&dev->struct_mutex); 487 mutex_unlock(&dev->struct_mutex);
468 return ret; 488 return ret;
@@ -536,7 +556,7 @@ i915_gem_object_free_page_list(struct drm_gem_object *obj)
536} 556}
537 557
538static void 558static void
539i915_gem_object_move_to_active(struct drm_gem_object *obj) 559i915_gem_object_move_to_active(struct drm_gem_object *obj, uint32_t seqno)
540{ 560{
541 struct drm_device *dev = obj->dev; 561 struct drm_device *dev = obj->dev;
542 drm_i915_private_t *dev_priv = dev->dev_private; 562 drm_i915_private_t *dev_priv = dev->dev_private;
@@ -550,8 +570,20 @@ i915_gem_object_move_to_active(struct drm_gem_object *obj)
550 /* Move from whatever list we were on to the tail of execution. */ 570 /* Move from whatever list we were on to the tail of execution. */
551 list_move_tail(&obj_priv->list, 571 list_move_tail(&obj_priv->list,
552 &dev_priv->mm.active_list); 572 &dev_priv->mm.active_list);
573 obj_priv->last_rendering_seqno = seqno;
553} 574}
554 575
576static void
577i915_gem_object_move_to_flushing(struct drm_gem_object *obj)
578{
579 struct drm_device *dev = obj->dev;
580 drm_i915_private_t *dev_priv = dev->dev_private;
581 struct drm_i915_gem_object *obj_priv = obj->driver_private;
582
583 BUG_ON(!obj_priv->active);
584 list_move_tail(&obj_priv->list, &dev_priv->mm.flushing_list);
585 obj_priv->last_rendering_seqno = 0;
586}
555 587
556static void 588static void
557i915_gem_object_move_to_inactive(struct drm_gem_object *obj) 589i915_gem_object_move_to_inactive(struct drm_gem_object *obj)
@@ -566,6 +598,7 @@ i915_gem_object_move_to_inactive(struct drm_gem_object *obj)
566 else 598 else
567 list_move_tail(&obj_priv->list, &dev_priv->mm.inactive_list); 599 list_move_tail(&obj_priv->list, &dev_priv->mm.inactive_list);
568 600
601 obj_priv->last_rendering_seqno = 0;
569 if (obj_priv->active) { 602 if (obj_priv->active) {
570 obj_priv->active = 0; 603 obj_priv->active = 0;
571 drm_gem_object_unreference(obj); 604 drm_gem_object_unreference(obj);
@@ -614,10 +647,28 @@ i915_add_request(struct drm_device *dev, uint32_t flush_domains)
614 647
615 request->seqno = seqno; 648 request->seqno = seqno;
616 request->emitted_jiffies = jiffies; 649 request->emitted_jiffies = jiffies;
617 request->flush_domains = flush_domains;
618 was_empty = list_empty(&dev_priv->mm.request_list); 650 was_empty = list_empty(&dev_priv->mm.request_list);
619 list_add_tail(&request->list, &dev_priv->mm.request_list); 651 list_add_tail(&request->list, &dev_priv->mm.request_list);
620 652
653 /* Associate any objects on the flushing list matching the write
654 * domain we're flushing with our flush.
655 */
656 if (flush_domains != 0) {
657 struct drm_i915_gem_object *obj_priv, *next;
658
659 list_for_each_entry_safe(obj_priv, next,
660 &dev_priv->mm.flushing_list, list) {
661 struct drm_gem_object *obj = obj_priv->obj;
662
663 if ((obj->write_domain & flush_domains) ==
664 obj->write_domain) {
665 obj->write_domain = 0;
666 i915_gem_object_move_to_active(obj, seqno);
667 }
668 }
669
670 }
671
621 if (was_empty && !dev_priv->mm.suspended) 672 if (was_empty && !dev_priv->mm.suspended)
622 schedule_delayed_work(&dev_priv->mm.retire_work, HZ); 673 schedule_delayed_work(&dev_priv->mm.retire_work, HZ);
623 return seqno; 674 return seqno;
@@ -680,30 +731,10 @@ i915_gem_retire_request(struct drm_device *dev,
680 __func__, request->seqno, obj); 731 __func__, request->seqno, obj);
681#endif 732#endif
682 733
683 if (obj->write_domain != 0) { 734 if (obj->write_domain != 0)
684 list_move_tail(&obj_priv->list, 735 i915_gem_object_move_to_flushing(obj);
685 &dev_priv->mm.flushing_list); 736 else
686 } else {
687 i915_gem_object_move_to_inactive(obj); 737 i915_gem_object_move_to_inactive(obj);
688 }
689 }
690
691 if (request->flush_domains != 0) {
692 struct drm_i915_gem_object *obj_priv, *next;
693
694 /* Clear the write domain and activity from any buffers
695 * that are just waiting for a flush matching the one retired.
696 */
697 list_for_each_entry_safe(obj_priv, next,
698 &dev_priv->mm.flushing_list, list) {
699 struct drm_gem_object *obj = obj_priv->obj;
700
701 if (obj->write_domain & request->flush_domains) {
702 obj->write_domain = 0;
703 i915_gem_object_move_to_inactive(obj);
704 }
705 }
706
707 } 738 }
708} 739}
709 740
@@ -896,25 +927,10 @@ i915_gem_object_wait_rendering(struct drm_gem_object *obj)
896 struct drm_i915_gem_object *obj_priv = obj->driver_private; 927 struct drm_i915_gem_object *obj_priv = obj->driver_private;
897 int ret; 928 int ret;
898 929
899 /* If there are writes queued to the buffer, flush and 930 /* This function only exists to support waiting for existing rendering,
900 * create a new seqno to wait for. 931 * not for emitting required flushes.
901 */ 932 */
902 if (obj->write_domain & ~(I915_GEM_DOMAIN_CPU|I915_GEM_DOMAIN_GTT)) { 933 BUG_ON((obj->write_domain & I915_GEM_GPU_DOMAINS) != 0);
903 uint32_t write_domain = obj->write_domain;
904#if WATCH_BUF
905 DRM_INFO("%s: flushing object %p from write domain %08x\n",
906 __func__, obj, write_domain);
907#endif
908 i915_gem_flush(dev, 0, write_domain);
909
910 i915_gem_object_move_to_active(obj);
911 obj_priv->last_rendering_seqno = i915_add_request(dev,
912 write_domain);
913 BUG_ON(obj_priv->last_rendering_seqno == 0);
914#if WATCH_LRU
915 DRM_INFO("%s: flush moves to exec list %p\n", __func__, obj);
916#endif
917 }
918 934
919 /* If there is rendering queued on the buffer being evicted, wait for 935 /* If there is rendering queued on the buffer being evicted, wait for
920 * it. 936 * it.
@@ -954,24 +970,16 @@ i915_gem_object_unbind(struct drm_gem_object *obj)
954 return -EINVAL; 970 return -EINVAL;
955 } 971 }
956 972
957 /* Wait for any rendering to complete
958 */
959 ret = i915_gem_object_wait_rendering(obj);
960 if (ret) {
961 DRM_ERROR("wait_rendering failed: %d\n", ret);
962 return ret;
963 }
964
965 /* Move the object to the CPU domain to ensure that 973 /* Move the object to the CPU domain to ensure that
966 * any possible CPU writes while it's not in the GTT 974 * any possible CPU writes while it's not in the GTT
967 * are flushed when we go to remap it. This will 975 * are flushed when we go to remap it. This will
968 * also ensure that all pending GPU writes are finished 976 * also ensure that all pending GPU writes are finished
969 * before we unbind. 977 * before we unbind.
970 */ 978 */
971 ret = i915_gem_object_set_domain(obj, I915_GEM_DOMAIN_CPU, 979 ret = i915_gem_object_set_to_cpu_domain(obj, 1);
972 I915_GEM_DOMAIN_CPU);
973 if (ret) { 980 if (ret) {
974 DRM_ERROR("set_domain failed: %d\n", ret); 981 if (ret != -ERESTARTSYS)
982 DRM_ERROR("set_domain failed: %d\n", ret);
975 return ret; 983 return ret;
976 } 984 }
977 985
@@ -1087,6 +1095,21 @@ i915_gem_evict_something(struct drm_device *dev)
1087} 1095}
1088 1096
1089static int 1097static int
1098i915_gem_evict_everything(struct drm_device *dev)
1099{
1100 int ret;
1101
1102 for (;;) {
1103 ret = i915_gem_evict_something(dev);
1104 if (ret != 0)
1105 break;
1106 }
1107 if (ret == -ENOMEM)
1108 return 0;
1109 return ret;
1110}
1111
1112static int
1090i915_gem_object_get_page_list(struct drm_gem_object *obj) 1113i915_gem_object_get_page_list(struct drm_gem_object *obj)
1091{ 1114{
1092 struct drm_i915_gem_object *obj_priv = obj->driver_private; 1115 struct drm_i915_gem_object *obj_priv = obj->driver_private;
@@ -1172,7 +1195,8 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
1172 1195
1173 ret = i915_gem_evict_something(dev); 1196 ret = i915_gem_evict_something(dev);
1174 if (ret != 0) { 1197 if (ret != 0) {
1175 DRM_ERROR("Failed to evict a buffer %d\n", ret); 1198 if (ret != -ERESTARTSYS)
1199 DRM_ERROR("Failed to evict a buffer %d\n", ret);
1176 return ret; 1200 return ret;
1177 } 1201 }
1178 goto search_free; 1202 goto search_free;
@@ -1232,6 +1256,143 @@ i915_gem_clflush_object(struct drm_gem_object *obj)
1232 drm_clflush_pages(obj_priv->page_list, obj->size / PAGE_SIZE); 1256 drm_clflush_pages(obj_priv->page_list, obj->size / PAGE_SIZE);
1233} 1257}
1234 1258
1259/** Flushes any GPU write domain for the object if it's dirty. */
1260static void
1261i915_gem_object_flush_gpu_write_domain(struct drm_gem_object *obj)
1262{
1263 struct drm_device *dev = obj->dev;
1264 uint32_t seqno;
1265
1266 if ((obj->write_domain & I915_GEM_GPU_DOMAINS) == 0)
1267 return;
1268
1269 /* Queue the GPU write cache flushing we need. */
1270 i915_gem_flush(dev, 0, obj->write_domain);
1271 seqno = i915_add_request(dev, obj->write_domain);
1272 obj->write_domain = 0;
1273 i915_gem_object_move_to_active(obj, seqno);
1274}
1275
1276/** Flushes the GTT write domain for the object if it's dirty. */
1277static void
1278i915_gem_object_flush_gtt_write_domain(struct drm_gem_object *obj)
1279{
1280 if (obj->write_domain != I915_GEM_DOMAIN_GTT)
1281 return;
1282
1283 /* No actual flushing is required for the GTT write domain. Writes
1284 * to it immediately go to main memory as far as we know, so there's
1285 * no chipset flush. It also doesn't land in render cache.
1286 */
1287 obj->write_domain = 0;
1288}
1289
1290/** Flushes the CPU write domain for the object if it's dirty. */
1291static void
1292i915_gem_object_flush_cpu_write_domain(struct drm_gem_object *obj)
1293{
1294 struct drm_device *dev = obj->dev;
1295
1296 if (obj->write_domain != I915_GEM_DOMAIN_CPU)
1297 return;
1298
1299 i915_gem_clflush_object(obj);
1300 drm_agp_chipset_flush(dev);
1301 obj->write_domain = 0;
1302}
1303
1304/**
1305 * Moves a single object to the GTT read, and possibly write domain.
1306 *
1307 * This function returns when the move is complete, including waiting on
1308 * flushes to occur.
1309 */
1310static int
1311i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj, int write)
1312{
1313 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1314 int ret;
1315
1316 /* Not valid to be called on unbound objects. */
1317 if (obj_priv->gtt_space == NULL)
1318 return -EINVAL;
1319
1320 i915_gem_object_flush_gpu_write_domain(obj);
1321 /* Wait on any GPU rendering and flushing to occur. */
1322 ret = i915_gem_object_wait_rendering(obj);
1323 if (ret != 0)
1324 return ret;
1325
1326 /* If we're writing through the GTT domain, then CPU and GPU caches
1327 * will need to be invalidated at next use.
1328 */
1329 if (write)
1330 obj->read_domains &= I915_GEM_DOMAIN_GTT;
1331
1332 i915_gem_object_flush_cpu_write_domain(obj);
1333
1334 /* It should now be out of any other write domains, and we can update
1335 * the domain values for our changes.
1336 */
1337 BUG_ON((obj->write_domain & ~I915_GEM_DOMAIN_GTT) != 0);
1338 obj->read_domains |= I915_GEM_DOMAIN_GTT;
1339 if (write) {
1340 obj->write_domain = I915_GEM_DOMAIN_GTT;
1341 obj_priv->dirty = 1;
1342 }
1343
1344 return 0;
1345}
1346
1347/**
1348 * Moves a single object to the CPU read, and possibly write domain.
1349 *
1350 * This function returns when the move is complete, including waiting on
1351 * flushes to occur.
1352 */
1353static int
1354i915_gem_object_set_to_cpu_domain(struct drm_gem_object *obj, int write)
1355{
1356 struct drm_device *dev = obj->dev;
1357 int ret;
1358
1359 i915_gem_object_flush_gpu_write_domain(obj);
1360 /* Wait on any GPU rendering and flushing to occur. */
1361 ret = i915_gem_object_wait_rendering(obj);
1362 if (ret != 0)
1363 return ret;
1364
1365 i915_gem_object_flush_gtt_write_domain(obj);
1366
1367 /* If we have a partially-valid cache of the object in the CPU,
1368 * finish invalidating it and free the per-page flags.
1369 */
1370 i915_gem_object_set_to_full_cpu_read_domain(obj);
1371
1372 /* Flush the CPU cache if it's still invalid. */
1373 if ((obj->read_domains & I915_GEM_DOMAIN_CPU) == 0) {
1374 i915_gem_clflush_object(obj);
1375 drm_agp_chipset_flush(dev);
1376
1377 obj->read_domains |= I915_GEM_DOMAIN_CPU;
1378 }
1379
1380 /* It should now be out of any other write domains, and we can update
1381 * the domain values for our changes.
1382 */
1383 BUG_ON((obj->write_domain & ~I915_GEM_DOMAIN_CPU) != 0);
1384
1385 /* If we're writing through the CPU, then the GPU read domains will
1386 * need to be invalidated at next use.
1387 */
1388 if (write) {
1389 obj->read_domains &= I915_GEM_DOMAIN_CPU;
1390 obj->write_domain = I915_GEM_DOMAIN_CPU;
1391 }
1392
1393 return 0;
1394}
1395
1235/* 1396/*
1236 * Set the next domain for the specified object. This 1397 * Set the next domain for the specified object. This
1237 * may not actually perform the necessary flushing/invaliding though, 1398 * may not actually perform the necessary flushing/invaliding though,
@@ -1343,16 +1504,18 @@ i915_gem_clflush_object(struct drm_gem_object *obj)
1343 * MI_FLUSH 1504 * MI_FLUSH
1344 * drm_agp_chipset_flush 1505 * drm_agp_chipset_flush
1345 */ 1506 */
1346static int 1507static void
1347i915_gem_object_set_domain(struct drm_gem_object *obj, 1508i915_gem_object_set_to_gpu_domain(struct drm_gem_object *obj,
1348 uint32_t read_domains, 1509 uint32_t read_domains,
1349 uint32_t write_domain) 1510 uint32_t write_domain)
1350{ 1511{
1351 struct drm_device *dev = obj->dev; 1512 struct drm_device *dev = obj->dev;
1352 struct drm_i915_gem_object *obj_priv = obj->driver_private; 1513 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1353 uint32_t invalidate_domains = 0; 1514 uint32_t invalidate_domains = 0;
1354 uint32_t flush_domains = 0; 1515 uint32_t flush_domains = 0;
1355 int ret; 1516
1517 BUG_ON(read_domains & I915_GEM_DOMAIN_CPU);
1518 BUG_ON(write_domain == I915_GEM_DOMAIN_CPU);
1356 1519
1357#if WATCH_BUF 1520#if WATCH_BUF
1358 DRM_INFO("%s: object %p read %08x -> %08x write %08x -> %08x\n", 1521 DRM_INFO("%s: object %p read %08x -> %08x write %08x -> %08x\n",
@@ -1389,34 +1552,11 @@ i915_gem_object_set_domain(struct drm_gem_object *obj,
1389 DRM_INFO("%s: CPU domain flush %08x invalidate %08x\n", 1552 DRM_INFO("%s: CPU domain flush %08x invalidate %08x\n",
1390 __func__, flush_domains, invalidate_domains); 1553 __func__, flush_domains, invalidate_domains);
1391#endif 1554#endif
1392 /*
1393 * If we're invaliding the CPU cache and flushing a GPU cache,
1394 * then pause for rendering so that the GPU caches will be
1395 * flushed before the cpu cache is invalidated
1396 */
1397 if ((invalidate_domains & I915_GEM_DOMAIN_CPU) &&
1398 (flush_domains & ~(I915_GEM_DOMAIN_CPU |
1399 I915_GEM_DOMAIN_GTT))) {
1400 ret = i915_gem_object_wait_rendering(obj);
1401 if (ret)
1402 return ret;
1403 }
1404 i915_gem_clflush_object(obj); 1555 i915_gem_clflush_object(obj);
1405 } 1556 }
1406 1557
1407 if ((write_domain | flush_domains) != 0) 1558 if ((write_domain | flush_domains) != 0)
1408 obj->write_domain = write_domain; 1559 obj->write_domain = write_domain;
1409
1410 /* If we're invalidating the CPU domain, clear the per-page CPU
1411 * domain list as well.
1412 */
1413 if (obj_priv->page_cpu_valid != NULL &&
1414 (write_domain != 0 ||
1415 read_domains & I915_GEM_DOMAIN_CPU)) {
1416 drm_free(obj_priv->page_cpu_valid, obj->size / PAGE_SIZE,
1417 DRM_MEM_DRIVER);
1418 obj_priv->page_cpu_valid = NULL;
1419 }
1420 obj->read_domains = read_domains; 1560 obj->read_domains = read_domains;
1421 1561
1422 dev->invalidate_domains |= invalidate_domains; 1562 dev->invalidate_domains |= invalidate_domains;
@@ -1427,47 +1567,94 @@ i915_gem_object_set_domain(struct drm_gem_object *obj,
1427 obj->read_domains, obj->write_domain, 1567 obj->read_domains, obj->write_domain,
1428 dev->invalidate_domains, dev->flush_domains); 1568 dev->invalidate_domains, dev->flush_domains);
1429#endif 1569#endif
1430 return 0;
1431} 1570}
1432 1571
1433/** 1572/**
1434 * Set the read/write domain on a range of the object. 1573 * Moves the object from a partially CPU read to a full one.
1435 * 1574 *
1436 * Currently only implemented for CPU reads, otherwise drops to normal 1575 * Note that this only resolves i915_gem_object_set_cpu_read_domain_range(),
1437 * i915_gem_object_set_domain(). 1576 * and doesn't handle transitioning from !(read_domains & I915_GEM_DOMAIN_CPU).
1438 */ 1577 */
1439static int 1578static void
1440i915_gem_object_set_domain_range(struct drm_gem_object *obj, 1579i915_gem_object_set_to_full_cpu_read_domain(struct drm_gem_object *obj)
1441 uint64_t offset,
1442 uint64_t size,
1443 uint32_t read_domains,
1444 uint32_t write_domain)
1445{ 1580{
1581 struct drm_device *dev = obj->dev;
1446 struct drm_i915_gem_object *obj_priv = obj->driver_private; 1582 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1447 int ret, i;
1448 1583
1449 if (obj->read_domains & I915_GEM_DOMAIN_CPU) 1584 if (!obj_priv->page_cpu_valid)
1450 return 0; 1585 return;
1451 1586
1452 if (read_domains != I915_GEM_DOMAIN_CPU || 1587 /* If we're partially in the CPU read domain, finish moving it in.
1453 write_domain != 0) 1588 */
1454 return i915_gem_object_set_domain(obj, 1589 if (obj->read_domains & I915_GEM_DOMAIN_CPU) {
1455 read_domains, write_domain); 1590 int i;
1456 1591
1457 /* Wait on any GPU rendering to the object to be flushed. */ 1592 for (i = 0; i <= (obj->size - 1) / PAGE_SIZE; i++) {
1593 if (obj_priv->page_cpu_valid[i])
1594 continue;
1595 drm_clflush_pages(obj_priv->page_list + i, 1);
1596 }
1597 drm_agp_chipset_flush(dev);
1598 }
1599
1600 /* Free the page_cpu_valid mappings which are now stale, whether
1601 * or not we've got I915_GEM_DOMAIN_CPU.
1602 */
1603 drm_free(obj_priv->page_cpu_valid, obj->size / PAGE_SIZE,
1604 DRM_MEM_DRIVER);
1605 obj_priv->page_cpu_valid = NULL;
1606}
1607
1608/**
1609 * Set the CPU read domain on a range of the object.
1610 *
1611 * The object ends up with I915_GEM_DOMAIN_CPU in its read flags although it's
1612 * not entirely valid. The page_cpu_valid member of the object flags which
1613 * pages have been flushed, and will be respected by
1614 * i915_gem_object_set_to_cpu_domain() if it's called on to get a valid mapping
1615 * of the whole object.
1616 *
1617 * This function returns when the move is complete, including waiting on
1618 * flushes to occur.
1619 */
1620static int
1621i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
1622 uint64_t offset, uint64_t size)
1623{
1624 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1625 int i, ret;
1626
1627 if (offset == 0 && size == obj->size)
1628 return i915_gem_object_set_to_cpu_domain(obj, 0);
1629
1630 i915_gem_object_flush_gpu_write_domain(obj);
1631 /* Wait on any GPU rendering and flushing to occur. */
1458 ret = i915_gem_object_wait_rendering(obj); 1632 ret = i915_gem_object_wait_rendering(obj);
1459 if (ret) 1633 if (ret != 0)
1460 return ret; 1634 return ret;
1635 i915_gem_object_flush_gtt_write_domain(obj);
1461 1636
1637 /* If we're already fully in the CPU read domain, we're done. */
1638 if (obj_priv->page_cpu_valid == NULL &&
1639 (obj->read_domains & I915_GEM_DOMAIN_CPU) != 0)
1640 return 0;
1641
1642 /* Otherwise, create/clear the per-page CPU read domain flag if we're
1643 * newly adding I915_GEM_DOMAIN_CPU
1644 */
1462 if (obj_priv->page_cpu_valid == NULL) { 1645 if (obj_priv->page_cpu_valid == NULL) {
1463 obj_priv->page_cpu_valid = drm_calloc(1, obj->size / PAGE_SIZE, 1646 obj_priv->page_cpu_valid = drm_calloc(1, obj->size / PAGE_SIZE,
1464 DRM_MEM_DRIVER); 1647 DRM_MEM_DRIVER);
1465 } 1648 if (obj_priv->page_cpu_valid == NULL)
1649 return -ENOMEM;
1650 } else if ((obj->read_domains & I915_GEM_DOMAIN_CPU) == 0)
1651 memset(obj_priv->page_cpu_valid, 0, obj->size / PAGE_SIZE);
1466 1652
1467 /* Flush the cache on any pages that are still invalid from the CPU's 1653 /* Flush the cache on any pages that are still invalid from the CPU's
1468 * perspective. 1654 * perspective.
1469 */ 1655 */
1470 for (i = offset / PAGE_SIZE; i <= (offset + size - 1) / PAGE_SIZE; i++) { 1656 for (i = offset / PAGE_SIZE; i <= (offset + size - 1) / PAGE_SIZE;
1657 i++) {
1471 if (obj_priv->page_cpu_valid[i]) 1658 if (obj_priv->page_cpu_valid[i])
1472 continue; 1659 continue;
1473 1660
@@ -1476,39 +1663,14 @@ i915_gem_object_set_domain_range(struct drm_gem_object *obj,
1476 obj_priv->page_cpu_valid[i] = 1; 1663 obj_priv->page_cpu_valid[i] = 1;
1477 } 1664 }
1478 1665
1479 return 0; 1666 /* It should now be out of any other write domains, and we can update
1480} 1667 * the domain values for our changes.
1481
1482/**
1483 * Once all of the objects have been set in the proper domain,
1484 * perform the necessary flush and invalidate operations.
1485 *
1486 * Returns the write domains flushed, for use in flush tracking.
1487 */
1488static uint32_t
1489i915_gem_dev_set_domain(struct drm_device *dev)
1490{
1491 uint32_t flush_domains = dev->flush_domains;
1492
1493 /*
1494 * Now that all the buffers are synced to the proper domains,
1495 * flush and invalidate the collected domains
1496 */ 1668 */
1497 if (dev->invalidate_domains | dev->flush_domains) { 1669 BUG_ON((obj->write_domain & ~I915_GEM_DOMAIN_CPU) != 0);
1498#if WATCH_EXEC
1499 DRM_INFO("%s: invalidate_domains %08x flush_domains %08x\n",
1500 __func__,
1501 dev->invalidate_domains,
1502 dev->flush_domains);
1503#endif
1504 i915_gem_flush(dev,
1505 dev->invalidate_domains,
1506 dev->flush_domains);
1507 dev->invalidate_domains = 0;
1508 dev->flush_domains = 0;
1509 }
1510 1670
1511 return flush_domains; 1671 obj->read_domains |= I915_GEM_DOMAIN_CPU;
1672
1673 return 0;
1512} 1674}
1513 1675
1514/** 1676/**
@@ -1589,6 +1751,18 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
1589 return -EINVAL; 1751 return -EINVAL;
1590 } 1752 }
1591 1753
1754 if (reloc.write_domain & I915_GEM_DOMAIN_CPU ||
1755 reloc.read_domains & I915_GEM_DOMAIN_CPU) {
1756 DRM_ERROR("reloc with read/write CPU domains: "
1757 "obj %p target %d offset %d "
1758 "read %08x write %08x",
1759 obj, reloc.target_handle,
1760 (int) reloc.offset,
1761 reloc.read_domains,
1762 reloc.write_domain);
1763 return -EINVAL;
1764 }
1765
1592 if (reloc.write_domain && target_obj->pending_write_domain && 1766 if (reloc.write_domain && target_obj->pending_write_domain &&
1593 reloc.write_domain != target_obj->pending_write_domain) { 1767 reloc.write_domain != target_obj->pending_write_domain) {
1594 DRM_ERROR("Write domain conflict: " 1768 DRM_ERROR("Write domain conflict: "
@@ -1629,19 +1803,11 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
1629 continue; 1803 continue;
1630 } 1804 }
1631 1805
1632 /* Now that we're going to actually write some data in, 1806 ret = i915_gem_object_set_to_gtt_domain(obj, 1);
1633 * make sure that any rendering using this buffer's contents 1807 if (ret != 0) {
1634 * is completed. 1808 drm_gem_object_unreference(target_obj);
1635 */ 1809 i915_gem_object_unpin(obj);
1636 i915_gem_object_wait_rendering(obj); 1810 return -EINVAL;
1637
1638 /* As we're writing through the gtt, flush
1639 * any CPU writes before we write the relocations
1640 */
1641 if (obj->write_domain & I915_GEM_DOMAIN_CPU) {
1642 i915_gem_clflush_object(obj);
1643 drm_agp_chipset_flush(dev);
1644 obj->write_domain = 0;
1645 } 1811 }
1646 1812
1647 /* Map the page containing the relocation we're going to 1813 /* Map the page containing the relocation we're going to
@@ -1783,6 +1949,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
1783 int ret, i, pinned = 0; 1949 int ret, i, pinned = 0;
1784 uint64_t exec_offset; 1950 uint64_t exec_offset;
1785 uint32_t seqno, flush_domains; 1951 uint32_t seqno, flush_domains;
1952 int pin_tries;
1786 1953
1787#if WATCH_EXEC 1954#if WATCH_EXEC
1788 DRM_INFO("buffers_ptr %d buffer_count %d len %08x\n", 1955 DRM_INFO("buffers_ptr %d buffer_count %d len %08x\n",
@@ -1831,14 +1998,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
1831 return -EBUSY; 1998 return -EBUSY;
1832 } 1999 }
1833 2000
1834 /* Zero the gloabl flush/invalidate flags. These 2001 /* Look up object handles */
1835 * will be modified as each object is bound to the
1836 * gtt
1837 */
1838 dev->invalidate_domains = 0;
1839 dev->flush_domains = 0;
1840
1841 /* Look up object handles and perform the relocations */
1842 for (i = 0; i < args->buffer_count; i++) { 2002 for (i = 0; i < args->buffer_count; i++) {
1843 object_list[i] = drm_gem_object_lookup(dev, file_priv, 2003 object_list[i] = drm_gem_object_lookup(dev, file_priv,
1844 exec_list[i].handle); 2004 exec_list[i].handle);
@@ -1848,17 +2008,39 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
1848 ret = -EBADF; 2008 ret = -EBADF;
1849 goto err; 2009 goto err;
1850 } 2010 }
2011 }
1851 2012
1852 object_list[i]->pending_read_domains = 0; 2013 /* Pin and relocate */
1853 object_list[i]->pending_write_domain = 0; 2014 for (pin_tries = 0; ; pin_tries++) {
1854 ret = i915_gem_object_pin_and_relocate(object_list[i], 2015 ret = 0;
1855 file_priv, 2016 for (i = 0; i < args->buffer_count; i++) {
1856 &exec_list[i]); 2017 object_list[i]->pending_read_domains = 0;
1857 if (ret) { 2018 object_list[i]->pending_write_domain = 0;
1858 DRM_ERROR("object bind and relocate failed %d\n", ret); 2019 ret = i915_gem_object_pin_and_relocate(object_list[i],
2020 file_priv,
2021 &exec_list[i]);
2022 if (ret)
2023 break;
2024 pinned = i + 1;
2025 }
2026 /* success */
2027 if (ret == 0)
2028 break;
2029
2030 /* error other than GTT full, or we've already tried again */
2031 if (ret != -ENOMEM || pin_tries >= 1) {
2032 DRM_ERROR("Failed to pin buffers %d\n", ret);
1859 goto err; 2033 goto err;
1860 } 2034 }
1861 pinned = i + 1; 2035
2036 /* unpin all of our buffers */
2037 for (i = 0; i < pinned; i++)
2038 i915_gem_object_unpin(object_list[i]);
2039
2040 /* evict everyone we can from the aperture */
2041 ret = i915_gem_evict_everything(dev);
2042 if (ret)
2043 goto err;
1862 } 2044 }
1863 2045
1864 /* Set the pending read domains for the batch buffer to COMMAND */ 2046 /* Set the pending read domains for the batch buffer to COMMAND */
@@ -1868,32 +2050,37 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
1868 2050
1869 i915_verify_inactive(dev, __FILE__, __LINE__); 2051 i915_verify_inactive(dev, __FILE__, __LINE__);
1870 2052
2053 /* Zero the global flush/invalidate flags. These
2054 * will be modified as new domains are computed
2055 * for each object
2056 */
2057 dev->invalidate_domains = 0;
2058 dev->flush_domains = 0;
2059
1871 for (i = 0; i < args->buffer_count; i++) { 2060 for (i = 0; i < args->buffer_count; i++) {
1872 struct drm_gem_object *obj = object_list[i]; 2061 struct drm_gem_object *obj = object_list[i];
1873 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1874 2062
1875 if (obj_priv->gtt_space == NULL) { 2063 /* Compute new gpu domains and update invalidate/flush */
1876 /* We evicted the buffer in the process of validating 2064 i915_gem_object_set_to_gpu_domain(obj,
1877 * our set of buffers in. We could try to recover by 2065 obj->pending_read_domains,
1878 * kicking them everything out and trying again from 2066 obj->pending_write_domain);
1879 * the start.
1880 */
1881 ret = -ENOMEM;
1882 goto err;
1883 }
1884
1885 /* make sure all previous memory operations have passed */
1886 ret = i915_gem_object_set_domain(obj,
1887 obj->pending_read_domains,
1888 obj->pending_write_domain);
1889 if (ret)
1890 goto err;
1891 } 2067 }
1892 2068
1893 i915_verify_inactive(dev, __FILE__, __LINE__); 2069 i915_verify_inactive(dev, __FILE__, __LINE__);
1894 2070
1895 /* Flush/invalidate caches and chipset buffer */ 2071 if (dev->invalidate_domains | dev->flush_domains) {
1896 flush_domains = i915_gem_dev_set_domain(dev); 2072#if WATCH_EXEC
2073 DRM_INFO("%s: invalidate_domains %08x flush_domains %08x\n",
2074 __func__,
2075 dev->invalidate_domains,
2076 dev->flush_domains);
2077#endif
2078 i915_gem_flush(dev,
2079 dev->invalidate_domains,
2080 dev->flush_domains);
2081 if (dev->flush_domains)
2082 (void)i915_add_request(dev, dev->flush_domains);
2083 }
1897 2084
1898 i915_verify_inactive(dev, __FILE__, __LINE__); 2085 i915_verify_inactive(dev, __FILE__, __LINE__);
1899 2086
@@ -1913,8 +2100,6 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
1913 ~0); 2100 ~0);
1914#endif 2101#endif
1915 2102
1916 (void)i915_add_request(dev, flush_domains);
1917
1918 /* Exec the batchbuffer */ 2103 /* Exec the batchbuffer */
1919 ret = i915_dispatch_gem_execbuffer(dev, args, exec_offset); 2104 ret = i915_dispatch_gem_execbuffer(dev, args, exec_offset);
1920 if (ret) { 2105 if (ret) {
@@ -1942,10 +2127,8 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
1942 i915_file_priv->mm.last_gem_seqno = seqno; 2127 i915_file_priv->mm.last_gem_seqno = seqno;
1943 for (i = 0; i < args->buffer_count; i++) { 2128 for (i = 0; i < args->buffer_count; i++) {
1944 struct drm_gem_object *obj = object_list[i]; 2129 struct drm_gem_object *obj = object_list[i];
1945 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1946 2130
1947 i915_gem_object_move_to_active(obj); 2131 i915_gem_object_move_to_active(obj, seqno);
1948 obj_priv->last_rendering_seqno = seqno;
1949#if WATCH_LRU 2132#if WATCH_LRU
1950 DRM_INFO("%s: move to exec list %p\n", __func__, obj); 2133 DRM_INFO("%s: move to exec list %p\n", __func__, obj);
1951#endif 2134#endif
@@ -2076,11 +2259,7 @@ i915_gem_pin_ioctl(struct drm_device *dev, void *data,
2076 /* XXX - flush the CPU caches for pinned objects 2259 /* XXX - flush the CPU caches for pinned objects
2077 * as the X server doesn't manage domains yet 2260 * as the X server doesn't manage domains yet
2078 */ 2261 */
2079 if (obj->write_domain & I915_GEM_DOMAIN_CPU) { 2262 i915_gem_object_flush_cpu_write_domain(obj);
2080 i915_gem_clflush_object(obj);
2081 drm_agp_chipset_flush(dev);
2082 obj->write_domain = 0;
2083 }
2084 args->offset = obj_priv->gtt_offset; 2263 args->offset = obj_priv->gtt_offset;
2085 drm_gem_object_unreference(obj); 2264 drm_gem_object_unreference(obj);
2086 mutex_unlock(&dev->struct_mutex); 2265 mutex_unlock(&dev->struct_mutex);
@@ -2130,7 +2309,14 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data,
2130 } 2309 }
2131 2310
2132 obj_priv = obj->driver_private; 2311 obj_priv = obj->driver_private;
2133 args->busy = obj_priv->active; 2312 /* Don't count being on the flushing list against the object being
2313 * done. Otherwise, a buffer left on the flushing list but not getting
2314 * flushed (because nobody's flushing that domain) won't ever return
2315 * unbusy and get reused by libdrm's bo cache. The other expected
2316 * consumer of this interface, OpenGL's occlusion queries, also specs
2317 * that the objects get unbusy "eventually" without any interference.
2318 */
2319 args->busy = obj_priv->active && obj_priv->last_rendering_seqno != 0;
2134 2320
2135 drm_gem_object_unreference(obj); 2321 drm_gem_object_unreference(obj);
2136 mutex_unlock(&dev->struct_mutex); 2322 mutex_unlock(&dev->struct_mutex);
@@ -2182,29 +2368,6 @@ void i915_gem_free_object(struct drm_gem_object *obj)
2182 drm_free(obj->driver_private, 1, DRM_MEM_DRIVER); 2368 drm_free(obj->driver_private, 1, DRM_MEM_DRIVER);
2183} 2369}
2184 2370
2185static int
2186i915_gem_set_domain(struct drm_gem_object *obj,
2187 struct drm_file *file_priv,
2188 uint32_t read_domains,
2189 uint32_t write_domain)
2190{
2191 struct drm_device *dev = obj->dev;
2192 int ret;
2193 uint32_t flush_domains;
2194
2195 BUG_ON(!mutex_is_locked(&dev->struct_mutex));
2196
2197 ret = i915_gem_object_set_domain(obj, read_domains, write_domain);
2198 if (ret)
2199 return ret;
2200 flush_domains = i915_gem_dev_set_domain(obj->dev);
2201
2202 if (flush_domains & ~(I915_GEM_DOMAIN_CPU|I915_GEM_DOMAIN_GTT))
2203 (void) i915_add_request(dev, flush_domains);
2204
2205 return 0;
2206}
2207
2208/** Unbinds all objects that are on the given buffer list. */ 2371/** Unbinds all objects that are on the given buffer list. */
2209static int 2372static int
2210i915_gem_evict_from_list(struct drm_device *dev, struct list_head *head) 2373i915_gem_evict_from_list(struct drm_device *dev, struct list_head *head)
@@ -2299,29 +2462,52 @@ i915_gem_idle(struct drm_device *dev)
2299 2462
2300 i915_gem_retire_requests(dev); 2463 i915_gem_retire_requests(dev);
2301 2464
2302 /* Active and flushing should now be empty as we've 2465 if (!dev_priv->mm.wedged) {
2303 * waited for a sequence higher than any pending execbuffer 2466 /* Active and flushing should now be empty as we've
2304 */ 2467 * waited for a sequence higher than any pending execbuffer
2305 BUG_ON(!list_empty(&dev_priv->mm.active_list)); 2468 */
2306 BUG_ON(!list_empty(&dev_priv->mm.flushing_list)); 2469 WARN_ON(!list_empty(&dev_priv->mm.active_list));
2470 WARN_ON(!list_empty(&dev_priv->mm.flushing_list));
2471 /* Request should now be empty as we've also waited
2472 * for the last request in the list
2473 */
2474 WARN_ON(!list_empty(&dev_priv->mm.request_list));
2475 }
2307 2476
2308 /* Request should now be empty as we've also waited 2477 /* Empty the active and flushing lists to inactive. If there's
2309 * for the last request in the list 2478 * anything left at this point, it means that we're wedged and
2479 * nothing good's going to happen by leaving them there. So strip
2480 * the GPU domains and just stuff them onto inactive.
2310 */ 2481 */
2311 BUG_ON(!list_empty(&dev_priv->mm.request_list)); 2482 while (!list_empty(&dev_priv->mm.active_list)) {
2483 struct drm_i915_gem_object *obj_priv;
2484
2485 obj_priv = list_first_entry(&dev_priv->mm.active_list,
2486 struct drm_i915_gem_object,
2487 list);
2488 obj_priv->obj->write_domain &= ~I915_GEM_GPU_DOMAINS;
2489 i915_gem_object_move_to_inactive(obj_priv->obj);
2490 }
2491
2492 while (!list_empty(&dev_priv->mm.flushing_list)) {
2493 struct drm_i915_gem_object *obj_priv;
2312 2494
2313 /* Move all buffers out of the GTT. */ 2495 obj_priv = list_first_entry(&dev_priv->mm.flushing_list,
2496 struct drm_i915_gem_object,
2497 list);
2498 obj_priv->obj->write_domain &= ~I915_GEM_GPU_DOMAINS;
2499 i915_gem_object_move_to_inactive(obj_priv->obj);
2500 }
2501
2502
2503 /* Move all inactive buffers out of the GTT. */
2314 ret = i915_gem_evict_from_list(dev, &dev_priv->mm.inactive_list); 2504 ret = i915_gem_evict_from_list(dev, &dev_priv->mm.inactive_list);
2505 WARN_ON(!list_empty(&dev_priv->mm.inactive_list));
2315 if (ret) { 2506 if (ret) {
2316 mutex_unlock(&dev->struct_mutex); 2507 mutex_unlock(&dev->struct_mutex);
2317 return ret; 2508 return ret;
2318 } 2509 }
2319 2510
2320 BUG_ON(!list_empty(&dev_priv->mm.active_list));
2321 BUG_ON(!list_empty(&dev_priv->mm.flushing_list));
2322 BUG_ON(!list_empty(&dev_priv->mm.inactive_list));
2323 BUG_ON(!list_empty(&dev_priv->mm.request_list));
2324
2325 i915_gem_cleanup_ringbuffer(dev); 2511 i915_gem_cleanup_ringbuffer(dev);
2326 mutex_unlock(&dev->struct_mutex); 2512 mutex_unlock(&dev->struct_mutex);
2327 2513
diff --git a/drivers/gpu/drm/i915/i915_gem_proc.c b/drivers/gpu/drm/i915/i915_gem_proc.c
index 93de15b4c9a7..e8d5abe1250e 100644
--- a/drivers/gpu/drm/i915/i915_gem_proc.c
+++ b/drivers/gpu/drm/i915/i915_gem_proc.c
@@ -166,10 +166,9 @@ static int i915_gem_request_info(char *buf, char **start, off_t offset,
166 list_for_each_entry(gem_request, &dev_priv->mm.request_list, 166 list_for_each_entry(gem_request, &dev_priv->mm.request_list,
167 list) 167 list)
168 { 168 {
169 DRM_PROC_PRINT(" %d @ %d %08x\n", 169 DRM_PROC_PRINT(" %d @ %d\n",
170 gem_request->seqno, 170 gem_request->seqno,
171 (int) (jiffies - gem_request->emitted_jiffies), 171 (int) (jiffies - gem_request->emitted_jiffies));
172 gem_request->flush_domains);
173 } 172 }
174 if (len > request + offset) 173 if (len > request + offset)
175 return request; 174 return request;
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index e8b85ac4ca04..a8cb69469c64 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -119,9 +119,10 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
119 dcc & DCC_CHANNEL_XOR_DISABLE) { 119 dcc & DCC_CHANNEL_XOR_DISABLE) {
120 swizzle_x = I915_BIT_6_SWIZZLE_9_10; 120 swizzle_x = I915_BIT_6_SWIZZLE_9_10;
121 swizzle_y = I915_BIT_6_SWIZZLE_9; 121 swizzle_y = I915_BIT_6_SWIZZLE_9;
122 } else if (IS_I965GM(dev) || IS_GM45(dev)) { 122 } else if ((IS_I965GM(dev) || IS_GM45(dev)) &&
123 /* GM965 only does bit 11-based channel 123 (dcc & DCC_CHANNEL_XOR_BIT_17) == 0) {
124 * randomization 124 /* GM965/GM45 does either bit 11 or bit 17
125 * swizzling.
125 */ 126 */
126 swizzle_x = I915_BIT_6_SWIZZLE_9_10_11; 127 swizzle_x = I915_BIT_6_SWIZZLE_9_10_11;
127 swizzle_y = I915_BIT_6_SWIZZLE_9_11; 128 swizzle_y = I915_BIT_6_SWIZZLE_9_11;
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 82752d6177a4..69b9a42da95e 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -33,11 +33,23 @@
33 33
34#define MAX_NOPID ((u32)~0) 34#define MAX_NOPID ((u32)~0)
35 35
36/** These are the interrupts used by the driver */ 36/**
37#define I915_INTERRUPT_ENABLE_MASK (I915_USER_INTERRUPT | \ 37 * Interrupts that are always left unmasked.
38 I915_ASLE_INTERRUPT | \ 38 *
39 I915_DISPLAY_PIPE_A_EVENT_INTERRUPT | \ 39 * Since pipe events are edge-triggered from the PIPESTAT register to IIR,
40 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT) 40 * we leave them always unmasked in IMR and then control enabling them through
41 * PIPESTAT alone.
42 */
43#define I915_INTERRUPT_ENABLE_FIX (I915_ASLE_INTERRUPT | \
44 I915_DISPLAY_PIPE_A_EVENT_INTERRUPT | \
45 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT)
46
47/** Interrupts that we mask and unmask at runtime. */
48#define I915_INTERRUPT_ENABLE_VAR (I915_USER_INTERRUPT)
49
50/** These are all of the interrupts used by the driver */
51#define I915_INTERRUPT_ENABLE_MASK (I915_INTERRUPT_ENABLE_FIX | \
52 I915_INTERRUPT_ENABLE_VAR)
41 53
42void 54void
43i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask) 55i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask)
@@ -59,6 +71,41 @@ i915_disable_irq(drm_i915_private_t *dev_priv, u32 mask)
59 } 71 }
60} 72}
61 73
74static inline u32
75i915_pipestat(int pipe)
76{
77 if (pipe == 0)
78 return PIPEASTAT;
79 if (pipe == 1)
80 return PIPEBSTAT;
81 BUG();
82}
83
84void
85i915_enable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask)
86{
87 if ((dev_priv->pipestat[pipe] & mask) != mask) {
88 u32 reg = i915_pipestat(pipe);
89
90 dev_priv->pipestat[pipe] |= mask;
91 /* Enable the interrupt, clear any pending status */
92 I915_WRITE(reg, dev_priv->pipestat[pipe] | (mask >> 16));
93 (void) I915_READ(reg);
94 }
95}
96
97void
98i915_disable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask)
99{
100 if ((dev_priv->pipestat[pipe] & mask) != 0) {
101 u32 reg = i915_pipestat(pipe);
102
103 dev_priv->pipestat[pipe] &= ~mask;
104 I915_WRITE(reg, dev_priv->pipestat[pipe]);
105 (void) I915_READ(reg);
106 }
107}
108
62/** 109/**
63 * i915_pipe_enabled - check if a pipe is enabled 110 * i915_pipe_enabled - check if a pipe is enabled
64 * @dev: DRM device 111 * @dev: DRM device
@@ -121,80 +168,102 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
121{ 168{
122 struct drm_device *dev = (struct drm_device *) arg; 169 struct drm_device *dev = (struct drm_device *) arg;
123 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 170 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
124 u32 iir; 171 u32 iir, new_iir;
125 u32 pipea_stats, pipeb_stats; 172 u32 pipea_stats, pipeb_stats;
173 u32 vblank_status;
174 u32 vblank_enable;
126 int vblank = 0; 175 int vblank = 0;
176 unsigned long irqflags;
177 int irq_received;
178 int ret = IRQ_NONE;
127 179
128 atomic_inc(&dev_priv->irq_received); 180 atomic_inc(&dev_priv->irq_received);
129 181
130 if (dev->pdev->msi_enabled)
131 I915_WRITE(IMR, ~0);
132 iir = I915_READ(IIR); 182 iir = I915_READ(IIR);
133 183
134 if (iir == 0) { 184 if (IS_I965G(dev)) {
135 if (dev->pdev->msi_enabled) { 185 vblank_status = I915_START_VBLANK_INTERRUPT_STATUS;
136 I915_WRITE(IMR, dev_priv->irq_mask_reg); 186 vblank_enable = PIPE_START_VBLANK_INTERRUPT_ENABLE;
137 (void) I915_READ(IMR); 187 } else {
138 } 188 vblank_status = I915_VBLANK_INTERRUPT_STATUS;
139 return IRQ_NONE; 189 vblank_enable = I915_VBLANK_INTERRUPT_ENABLE;
140 } 190 }
141 191
142 /* 192 for (;;) {
143 * Clear the PIPE(A|B)STAT regs before the IIR otherwise 193 irq_received = iir != 0;
144 * we may get extra interrupts. 194
145 */ 195 /* Can't rely on pipestat interrupt bit in iir as it might
146 if (iir & I915_DISPLAY_PIPE_A_EVENT_INTERRUPT) { 196 * have been cleared after the pipestat interrupt was received.
197 * It doesn't set the bit in iir again, but it still produces
198 * interrupts (for non-MSI).
199 */
200 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags);
147 pipea_stats = I915_READ(PIPEASTAT); 201 pipea_stats = I915_READ(PIPEASTAT);
148 if (!(dev_priv->vblank_pipe & DRM_I915_VBLANK_PIPE_A)) 202 pipeb_stats = I915_READ(PIPEBSTAT);
149 pipea_stats &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE | 203 /*
150 PIPE_VBLANK_INTERRUPT_ENABLE); 204 * Clear the PIPE(A|B)STAT regs before the IIR
151 else if (pipea_stats & (PIPE_START_VBLANK_INTERRUPT_STATUS| 205 */
152 PIPE_VBLANK_INTERRUPT_STATUS)) { 206 if (pipea_stats & 0x8000ffff) {
207 I915_WRITE(PIPEASTAT, pipea_stats);
208 irq_received = 1;
209 }
210
211 if (pipeb_stats & 0x8000ffff) {
212 I915_WRITE(PIPEBSTAT, pipeb_stats);
213 irq_received = 1;
214 }
215 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags);
216
217 if (!irq_received)
218 break;
219
220 ret = IRQ_HANDLED;
221
222 I915_WRITE(IIR, iir);
223 new_iir = I915_READ(IIR); /* Flush posted writes */
224
225 if (dev_priv->sarea_priv)
226 dev_priv->sarea_priv->last_dispatch =
227 READ_BREADCRUMB(dev_priv);
228
229 if (iir & I915_USER_INTERRUPT) {
230 dev_priv->mm.irq_gem_seqno = i915_get_gem_seqno(dev);
231 DRM_WAKEUP(&dev_priv->irq_queue);
232 }
233
234 if (pipea_stats & vblank_status) {
153 vblank++; 235 vblank++;
154 drm_handle_vblank(dev, 0); 236 drm_handle_vblank(dev, 0);
155 } 237 }
156 238
157 I915_WRITE(PIPEASTAT, pipea_stats); 239 if (pipeb_stats & vblank_status) {
158 }
159 if (iir & I915_DISPLAY_PIPE_B_EVENT_INTERRUPT) {
160 pipeb_stats = I915_READ(PIPEBSTAT);
161 /* Ack the event */
162 I915_WRITE(PIPEBSTAT, pipeb_stats);
163
164 /* The vblank interrupt gets enabled even if we didn't ask for
165 it, so make sure it's shut down again */
166 if (!(dev_priv->vblank_pipe & DRM_I915_VBLANK_PIPE_B))
167 pipeb_stats &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE |
168 PIPE_VBLANK_INTERRUPT_ENABLE);
169 else if (pipeb_stats & (PIPE_START_VBLANK_INTERRUPT_STATUS|
170 PIPE_VBLANK_INTERRUPT_STATUS)) {
171 vblank++; 240 vblank++;
172 drm_handle_vblank(dev, 1); 241 drm_handle_vblank(dev, 1);
173 } 242 }
174 243
175 if (pipeb_stats & I915_LEGACY_BLC_EVENT_STATUS) 244 if ((pipeb_stats & I915_LEGACY_BLC_EVENT_STATUS) ||
245 (iir & I915_ASLE_INTERRUPT))
176 opregion_asle_intr(dev); 246 opregion_asle_intr(dev);
177 I915_WRITE(PIPEBSTAT, pipeb_stats);
178 }
179
180 I915_WRITE(IIR, iir);
181 if (dev->pdev->msi_enabled)
182 I915_WRITE(IMR, dev_priv->irq_mask_reg);
183 (void) I915_READ(IIR); /* Flush posted writes */
184
185 if (dev_priv->sarea_priv)
186 dev_priv->sarea_priv->last_dispatch =
187 READ_BREADCRUMB(dev_priv);
188 247
189 if (iir & I915_USER_INTERRUPT) { 248 /* With MSI, interrupts are only generated when iir
190 dev_priv->mm.irq_gem_seqno = i915_get_gem_seqno(dev); 249 * transitions from zero to nonzero. If another bit got
191 DRM_WAKEUP(&dev_priv->irq_queue); 250 * set while we were handling the existing iir bits, then
251 * we would never get another interrupt.
252 *
253 * This is fine on non-MSI as well, as if we hit this path
254 * we avoid exiting the interrupt handler only to generate
255 * another one.
256 *
257 * Note that for MSI this could cause a stray interrupt report
258 * if an interrupt landed in the time between writing IIR and
259 * the posting read. This should be rare enough to never
260 * trigger the 99% of 100,000 interrupts test for disabling
261 * stray interrupts.
262 */
263 iir = new_iir;
192 } 264 }
193 265
194 if (iir & I915_ASLE_INTERRUPT) 266 return ret;
195 opregion_asle_intr(dev);
196
197 return IRQ_HANDLED;
198} 267}
199 268
200static int i915_emit_irq(struct drm_device * dev) 269static int i915_emit_irq(struct drm_device * dev)
@@ -330,48 +399,16 @@ int i915_irq_wait(struct drm_device *dev, void *data,
330int i915_enable_vblank(struct drm_device *dev, int pipe) 399int i915_enable_vblank(struct drm_device *dev, int pipe)
331{ 400{
332 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 401 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
333 u32 pipestat_reg = 0;
334 u32 pipestat;
335 u32 interrupt = 0;
336 unsigned long irqflags; 402 unsigned long irqflags;
337 403
338 switch (pipe) {
339 case 0:
340 pipestat_reg = PIPEASTAT;
341 interrupt = I915_DISPLAY_PIPE_A_EVENT_INTERRUPT;
342 break;
343 case 1:
344 pipestat_reg = PIPEBSTAT;
345 interrupt = I915_DISPLAY_PIPE_B_EVENT_INTERRUPT;
346 break;
347 default:
348 DRM_ERROR("tried to enable vblank on non-existent pipe %d\n",
349 pipe);
350 return 0;
351 }
352
353 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); 404 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags);
354 /* Enabling vblank events in IMR comes before PIPESTAT write, or
355 * there's a race where the PIPESTAT vblank bit gets set to 1, so
356 * the OR of enabled PIPESTAT bits goes to 1, so the PIPExEVENT in
357 * ISR flashes to 1, but the IIR bit doesn't get set to 1 because
358 * IMR masks it. It doesn't ever get set after we clear the masking
359 * in IMR because the ISR bit is edge, not level-triggered, on the
360 * OR of PIPESTAT bits.
361 */
362 i915_enable_irq(dev_priv, interrupt);
363 pipestat = I915_READ(pipestat_reg);
364 if (IS_I965G(dev)) 405 if (IS_I965G(dev))
365 pipestat |= PIPE_START_VBLANK_INTERRUPT_ENABLE; 406 i915_enable_pipestat(dev_priv, pipe,
407 PIPE_START_VBLANK_INTERRUPT_ENABLE);
366 else 408 else
367 pipestat |= PIPE_VBLANK_INTERRUPT_ENABLE; 409 i915_enable_pipestat(dev_priv, pipe,
368 /* Clear any stale interrupt status */ 410 PIPE_VBLANK_INTERRUPT_ENABLE);
369 pipestat |= (PIPE_START_VBLANK_INTERRUPT_STATUS |
370 PIPE_VBLANK_INTERRUPT_STATUS);
371 I915_WRITE(pipestat_reg, pipestat);
372 (void) I915_READ(pipestat_reg); /* Posting read */
373 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); 411 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags);
374
375 return 0; 412 return 0;
376} 413}
377 414
@@ -381,37 +418,12 @@ int i915_enable_vblank(struct drm_device *dev, int pipe)
381void i915_disable_vblank(struct drm_device *dev, int pipe) 418void i915_disable_vblank(struct drm_device *dev, int pipe)
382{ 419{
383 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 420 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
384 u32 pipestat_reg = 0;
385 u32 pipestat;
386 u32 interrupt = 0;
387 unsigned long irqflags; 421 unsigned long irqflags;
388 422
389 switch (pipe) {
390 case 0:
391 pipestat_reg = PIPEASTAT;
392 interrupt = I915_DISPLAY_PIPE_A_EVENT_INTERRUPT;
393 break;
394 case 1:
395 pipestat_reg = PIPEBSTAT;
396 interrupt = I915_DISPLAY_PIPE_B_EVENT_INTERRUPT;
397 break;
398 default:
399 DRM_ERROR("tried to disable vblank on non-existent pipe %d\n",
400 pipe);
401 return;
402 break;
403 }
404
405 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); 423 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags);
406 i915_disable_irq(dev_priv, interrupt); 424 i915_disable_pipestat(dev_priv, pipe,
407 pipestat = I915_READ(pipestat_reg); 425 PIPE_VBLANK_INTERRUPT_ENABLE |
408 pipestat &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE | 426 PIPE_START_VBLANK_INTERRUPT_ENABLE);
409 PIPE_VBLANK_INTERRUPT_ENABLE);
410 /* Clear any stale interrupt status */
411 pipestat |= (PIPE_START_VBLANK_INTERRUPT_STATUS |
412 PIPE_VBLANK_INTERRUPT_STATUS);
413 I915_WRITE(pipestat_reg, pipestat);
414 (void) I915_READ(pipestat_reg); /* Posting read */
415 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); 427 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags);
416} 428}
417 429
@@ -476,32 +488,35 @@ void i915_driver_irq_preinstall(struct drm_device * dev)
476 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 488 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
477 489
478 I915_WRITE(HWSTAM, 0xeffe); 490 I915_WRITE(HWSTAM, 0xeffe);
491 I915_WRITE(PIPEASTAT, 0);
492 I915_WRITE(PIPEBSTAT, 0);
479 I915_WRITE(IMR, 0xffffffff); 493 I915_WRITE(IMR, 0xffffffff);
480 I915_WRITE(IER, 0x0); 494 I915_WRITE(IER, 0x0);
495 (void) I915_READ(IER);
481} 496}
482 497
483int i915_driver_irq_postinstall(struct drm_device *dev) 498int i915_driver_irq_postinstall(struct drm_device *dev)
484{ 499{
485 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 500 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
486 int ret, num_pipes = 2;
487
488 /* Set initial unmasked IRQs to just the selected vblank pipes. */
489 dev_priv->irq_mask_reg = ~0;
490
491 ret = drm_vblank_init(dev, num_pipes);
492 if (ret)
493 return ret;
494 501
495 dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B; 502 dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B;
496 dev_priv->irq_mask_reg &= ~I915_DISPLAY_PIPE_A_VBLANK_INTERRUPT;
497 dev_priv->irq_mask_reg &= ~I915_DISPLAY_PIPE_B_VBLANK_INTERRUPT;
498 503
499 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ 504 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
500 505
501 dev_priv->irq_mask_reg &= I915_INTERRUPT_ENABLE_MASK; 506 /* Unmask the interrupts that we always want on. */
507 dev_priv->irq_mask_reg = ~I915_INTERRUPT_ENABLE_FIX;
508
509 dev_priv->pipestat[0] = 0;
510 dev_priv->pipestat[1] = 0;
511
512 /* Disable pipe interrupt enables, clear pending pipe status */
513 I915_WRITE(PIPEASTAT, I915_READ(PIPEASTAT) & 0x8000ffff);
514 I915_WRITE(PIPEBSTAT, I915_READ(PIPEBSTAT) & 0x8000ffff);
515 /* Clear pending interrupt status */
516 I915_WRITE(IIR, I915_READ(IIR));
502 517
503 I915_WRITE(IMR, dev_priv->irq_mask_reg);
504 I915_WRITE(IER, I915_INTERRUPT_ENABLE_MASK); 518 I915_WRITE(IER, I915_INTERRUPT_ENABLE_MASK);
519 I915_WRITE(IMR, dev_priv->irq_mask_reg);
505 (void) I915_READ(IER); 520 (void) I915_READ(IER);
506 521
507 opregion_enable_asle(dev); 522 opregion_enable_asle(dev);
@@ -513,7 +528,6 @@ int i915_driver_irq_postinstall(struct drm_device *dev)
513void i915_driver_irq_uninstall(struct drm_device * dev) 528void i915_driver_irq_uninstall(struct drm_device * dev)
514{ 529{
515 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 530 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
516 u32 temp;
517 531
518 if (!dev_priv) 532 if (!dev_priv)
519 return; 533 return;
@@ -521,13 +535,12 @@ void i915_driver_irq_uninstall(struct drm_device * dev)
521 dev_priv->vblank_pipe = 0; 535 dev_priv->vblank_pipe = 0;
522 536
523 I915_WRITE(HWSTAM, 0xffffffff); 537 I915_WRITE(HWSTAM, 0xffffffff);
538 I915_WRITE(PIPEASTAT, 0);
539 I915_WRITE(PIPEBSTAT, 0);
524 I915_WRITE(IMR, 0xffffffff); 540 I915_WRITE(IMR, 0xffffffff);
525 I915_WRITE(IER, 0x0); 541 I915_WRITE(IER, 0x0);
526 542
527 temp = I915_READ(PIPEASTAT); 543 I915_WRITE(PIPEASTAT, I915_READ(PIPEASTAT) & 0x8000ffff);
528 I915_WRITE(PIPEASTAT, temp); 544 I915_WRITE(PIPEBSTAT, I915_READ(PIPEBSTAT) & 0x8000ffff);
529 temp = I915_READ(PIPEBSTAT); 545 I915_WRITE(IIR, I915_READ(IIR));
530 I915_WRITE(PIPEBSTAT, temp);
531 temp = I915_READ(IIR);
532 I915_WRITE(IIR, temp);
533} 546}
diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c
index 1787a0c7e3ab..13ae731a33db 100644
--- a/drivers/gpu/drm/i915/i915_opregion.c
+++ b/drivers/gpu/drm/i915/i915_opregion.c
@@ -235,17 +235,15 @@ void opregion_enable_asle(struct drm_device *dev)
235 struct opregion_asle *asle = dev_priv->opregion.asle; 235 struct opregion_asle *asle = dev_priv->opregion.asle;
236 236
237 if (asle) { 237 if (asle) {
238 u32 pipeb_stats = I915_READ(PIPEBSTAT);
239 if (IS_MOBILE(dev)) { 238 if (IS_MOBILE(dev)) {
240 /* Many devices trigger events with a write to the 239 unsigned long irqflags;
241 legacy backlight controller, so we need to ensure 240
242 that it's able to generate interrupts */ 241 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags);
243 I915_WRITE(PIPEBSTAT, pipeb_stats |= 242 i915_enable_pipestat(dev_priv, 1,
244 I915_LEGACY_BLC_EVENT_ENABLE); 243 I915_LEGACY_BLC_EVENT_ENABLE);
245 i915_enable_irq(dev_priv, I915_ASLE_INTERRUPT | 244 spin_unlock_irqrestore(&dev_priv->user_irq_lock,
246 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT); 245 irqflags);
247 } else 246 }
248 i915_enable_irq(dev_priv, I915_ASLE_INTERRUPT);
249 247
250 asle->tche = ASLE_ALS_EN | ASLE_BLC_EN | ASLE_PFIT_EN | 248 asle->tche = ASLE_ALS_EN | ASLE_BLC_EN | ASLE_PFIT_EN |
251 ASLE_PFMB_EN; 249 ASLE_PFMB_EN;
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 0e476eba36e6..9d24aaeb8a45 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -522,6 +522,7 @@
522#define DCC_ADDRESSING_MODE_DUAL_CHANNEL_INTERLEAVED (2 << 0) 522#define DCC_ADDRESSING_MODE_DUAL_CHANNEL_INTERLEAVED (2 << 0)
523#define DCC_ADDRESSING_MODE_MASK (3 << 0) 523#define DCC_ADDRESSING_MODE_MASK (3 << 0)
524#define DCC_CHANNEL_XOR_DISABLE (1 << 10) 524#define DCC_CHANNEL_XOR_DISABLE (1 << 10)
525#define DCC_CHANNEL_XOR_BIT_17 (1 << 9)
525 526
526/** 965 MCH register controlling DRAM channel configuration */ 527/** 965 MCH register controlling DRAM channel configuration */
527#define C0DRB3 0x10206 528#define C0DRB3 0x10206
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index 5ddc6e595c0c..5d84027ee8f3 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -244,6 +244,9 @@ int i915_save_state(struct drm_device *dev)
244 if (IS_I965G(dev) && IS_MOBILE(dev)) 244 if (IS_I965G(dev) && IS_MOBILE(dev))
245 dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY); 245 dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY);
246 246
247 /* Hardware status page */
248 dev_priv->saveHWS = I915_READ(HWS_PGA);
249
247 /* Display arbitration control */ 250 /* Display arbitration control */
248 dev_priv->saveDSPARB = I915_READ(DSPARB); 251 dev_priv->saveDSPARB = I915_READ(DSPARB);
249 252
@@ -373,6 +376,9 @@ int i915_restore_state(struct drm_device *dev)
373 if (IS_I965G(dev) && IS_MOBILE(dev)) 376 if (IS_I965G(dev) && IS_MOBILE(dev))
374 I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY); 377 I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY);
375 378
379 /* Hardware status page */
380 I915_WRITE(HWS_PGA, dev_priv->saveHWS);
381
376 /* Display arbitration */ 382 /* Display arbitration */
377 I915_WRITE(DSPARB, dev_priv->saveDSPARB); 383 I915_WRITE(DSPARB, dev_priv->saveDSPARB);
378 384
diff --git a/drivers/gpu/drm/mga/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c
index c1d12dbfa8d8..b49c5ff29585 100644
--- a/drivers/gpu/drm/mga/mga_dma.c
+++ b/drivers/gpu/drm/mga/mga_dma.c
@@ -396,6 +396,7 @@ int mga_freelist_put(struct drm_device * dev, struct drm_buf * buf)
396int mga_driver_load(struct drm_device * dev, unsigned long flags) 396int mga_driver_load(struct drm_device * dev, unsigned long flags)
397{ 397{
398 drm_mga_private_t *dev_priv; 398 drm_mga_private_t *dev_priv;
399 int ret;
399 400
400 dev_priv = drm_alloc(sizeof(drm_mga_private_t), DRM_MEM_DRIVER); 401 dev_priv = drm_alloc(sizeof(drm_mga_private_t), DRM_MEM_DRIVER);
401 if (!dev_priv) 402 if (!dev_priv)
@@ -415,6 +416,13 @@ int mga_driver_load(struct drm_device * dev, unsigned long flags)
415 dev->types[7] = _DRM_STAT_PRIMARY; 416 dev->types[7] = _DRM_STAT_PRIMARY;
416 dev->types[8] = _DRM_STAT_SECONDARY; 417 dev->types[8] = _DRM_STAT_SECONDARY;
417 418
419 ret = drm_vblank_init(dev, 1);
420
421 if (ret) {
422 (void) mga_driver_unload(dev);
423 return ret;
424 }
425
418 return 0; 426 return 0;
419} 427}
420 428
diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c
index bab42f41188b..daa6041a483a 100644
--- a/drivers/gpu/drm/mga/mga_irq.c
+++ b/drivers/gpu/drm/mga/mga_irq.c
@@ -152,11 +152,6 @@ void mga_driver_irq_preinstall(struct drm_device * dev)
152int mga_driver_irq_postinstall(struct drm_device *dev) 152int mga_driver_irq_postinstall(struct drm_device *dev)
153{ 153{
154 drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; 154 drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private;
155 int ret;
156
157 ret = drm_vblank_init(dev, 1);
158 if (ret)
159 return ret;
160 155
161 DRM_INIT_WAITQUEUE(&dev_priv->fence_queue); 156 DRM_INIT_WAITQUEUE(&dev_priv->fence_queue);
162 157
diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c
index 3265d53ba91f..601f4c0e5da5 100644
--- a/drivers/gpu/drm/r128/r128_drv.c
+++ b/drivers/gpu/drm/r128/r128_drv.c
@@ -45,6 +45,7 @@ static struct drm_driver driver = {
45 DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG | 45 DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG |
46 DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED, 46 DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
47 .dev_priv_size = sizeof(drm_r128_buf_priv_t), 47 .dev_priv_size = sizeof(drm_r128_buf_priv_t),
48 .load = r128_driver_load,
48 .preclose = r128_driver_preclose, 49 .preclose = r128_driver_preclose,
49 .lastclose = r128_driver_lastclose, 50 .lastclose = r128_driver_lastclose,
50 .get_vblank_counter = r128_get_vblank_counter, 51 .get_vblank_counter = r128_get_vblank_counter,
@@ -84,6 +85,11 @@ static struct drm_driver driver = {
84 .patchlevel = DRIVER_PATCHLEVEL, 85 .patchlevel = DRIVER_PATCHLEVEL,
85}; 86};
86 87
88int r128_driver_load(struct drm_device * dev, unsigned long flags)
89{
90 return drm_vblank_init(dev, 1);
91}
92
87static int __init r128_init(void) 93static int __init r128_init(void)
88{ 94{
89 driver.num_ioctls = r128_max_ioctl; 95 driver.num_ioctls = r128_max_ioctl;
diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h
index 5898b274279d..797a26c42dab 100644
--- a/drivers/gpu/drm/r128/r128_drv.h
+++ b/drivers/gpu/drm/r128/r128_drv.h
@@ -159,6 +159,7 @@ extern void r128_driver_irq_preinstall(struct drm_device * dev);
159extern int r128_driver_irq_postinstall(struct drm_device *dev); 159extern int r128_driver_irq_postinstall(struct drm_device *dev);
160extern void r128_driver_irq_uninstall(struct drm_device * dev); 160extern void r128_driver_irq_uninstall(struct drm_device * dev);
161extern void r128_driver_lastclose(struct drm_device * dev); 161extern void r128_driver_lastclose(struct drm_device * dev);
162extern int r128_driver_load(struct drm_device * dev, unsigned long flags);
162extern void r128_driver_preclose(struct drm_device * dev, 163extern void r128_driver_preclose(struct drm_device * dev,
163 struct drm_file *file_priv); 164 struct drm_file *file_priv);
164 165
diff --git a/drivers/gpu/drm/r128/r128_irq.c b/drivers/gpu/drm/r128/r128_irq.c
index d7349012a680..69810fb8ac49 100644
--- a/drivers/gpu/drm/r128/r128_irq.c
+++ b/drivers/gpu/drm/r128/r128_irq.c
@@ -102,7 +102,7 @@ void r128_driver_irq_preinstall(struct drm_device * dev)
102 102
103int r128_driver_irq_postinstall(struct drm_device *dev) 103int r128_driver_irq_postinstall(struct drm_device *dev)
104{ 104{
105 return drm_vblank_init(dev, 1); 105 return 0;
106} 106}
107 107
108void r128_driver_irq_uninstall(struct drm_device * dev) 108void r128_driver_irq_uninstall(struct drm_device * dev)
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
index abdc1ae38467..dcebb4bee7aa 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -1757,6 +1757,12 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
1757 if (ret != 0) 1757 if (ret != 0)
1758 return ret; 1758 return ret;
1759 1759
1760 ret = drm_vblank_init(dev, 2);
1761 if (ret) {
1762 radeon_driver_unload(dev);
1763 return ret;
1764 }
1765
1760 DRM_DEBUG("%s card detected\n", 1766 DRM_DEBUG("%s card detected\n",
1761 ((dev_priv->flags & RADEON_IS_AGP) ? "AGP" : (((dev_priv->flags & RADEON_IS_PCIE) ? "PCIE" : "PCI")))); 1767 ((dev_priv->flags & RADEON_IS_AGP) ? "AGP" : (((dev_priv->flags & RADEON_IS_PCIE) ? "PCIE" : "PCI"))));
1762 return ret; 1768 return ret;
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
index 7a183789be97..3bbb871b25d5 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -299,7 +299,6 @@ typedef struct drm_radeon_private {
299 atomic_t swi_emitted; 299 atomic_t swi_emitted;
300 int vblank_crtc; 300 int vblank_crtc;
301 uint32_t irq_enable_reg; 301 uint32_t irq_enable_reg;
302 int irq_enabled;
303 uint32_t r500_disp_irq_reg; 302 uint32_t r500_disp_irq_reg;
304 303
305 struct radeon_surface surfaces[RADEON_MAX_SURFACES]; 304 struct radeon_surface surfaces[RADEON_MAX_SURFACES];
diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
index 5079f7054a2f..8289e16419a8 100644
--- a/drivers/gpu/drm/radeon/radeon_irq.c
+++ b/drivers/gpu/drm/radeon/radeon_irq.c
@@ -44,7 +44,8 @@ void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state)
44 else 44 else
45 dev_priv->irq_enable_reg &= ~mask; 45 dev_priv->irq_enable_reg &= ~mask;
46 46
47 RADEON_WRITE(RADEON_GEN_INT_CNTL, dev_priv->irq_enable_reg); 47 if (dev->irq_enabled)
48 RADEON_WRITE(RADEON_GEN_INT_CNTL, dev_priv->irq_enable_reg);
48} 49}
49 50
50static void r500_vbl_irq_set_state(struct drm_device *dev, u32 mask, int state) 51static void r500_vbl_irq_set_state(struct drm_device *dev, u32 mask, int state)
@@ -56,7 +57,8 @@ static void r500_vbl_irq_set_state(struct drm_device *dev, u32 mask, int state)
56 else 57 else
57 dev_priv->r500_disp_irq_reg &= ~mask; 58 dev_priv->r500_disp_irq_reg &= ~mask;
58 59
59 RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv->r500_disp_irq_reg); 60 if (dev->irq_enabled)
61 RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv->r500_disp_irq_reg);
60} 62}
61 63
62int radeon_enable_vblank(struct drm_device *dev, int crtc) 64int radeon_enable_vblank(struct drm_device *dev, int crtc)
@@ -337,15 +339,10 @@ int radeon_driver_irq_postinstall(struct drm_device *dev)
337{ 339{
338 drm_radeon_private_t *dev_priv = 340 drm_radeon_private_t *dev_priv =
339 (drm_radeon_private_t *) dev->dev_private; 341 (drm_radeon_private_t *) dev->dev_private;
340 int ret;
341 342
342 atomic_set(&dev_priv->swi_emitted, 0); 343 atomic_set(&dev_priv->swi_emitted, 0);
343 DRM_INIT_WAITQUEUE(&dev_priv->swi_queue); 344 DRM_INIT_WAITQUEUE(&dev_priv->swi_queue);
344 345
345 ret = drm_vblank_init(dev, 2);
346 if (ret)
347 return ret;
348
349 dev->max_vblank_count = 0x001fffff; 346 dev->max_vblank_count = 0x001fffff;
350 347
351 radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1); 348 radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1);
@@ -360,8 +357,6 @@ void radeon_driver_irq_uninstall(struct drm_device * dev)
360 if (!dev_priv) 357 if (!dev_priv)
361 return; 358 return;
362 359
363 dev_priv->irq_enabled = 0;
364
365 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690) 360 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690)
366 RADEON_WRITE(R500_DxMODE_INT_MASK, 0); 361 RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
367 /* Disable *all* interrupts */ 362 /* Disable *all* interrupts */
diff --git a/drivers/gpu/drm/via/via_irq.c b/drivers/gpu/drm/via/via_irq.c
index 665d319b927b..c248c1d37268 100644
--- a/drivers/gpu/drm/via/via_irq.c
+++ b/drivers/gpu/drm/via/via_irq.c
@@ -314,7 +314,6 @@ int via_driver_irq_postinstall(struct drm_device *dev)
314 if (!dev_priv) 314 if (!dev_priv)
315 return -EINVAL; 315 return -EINVAL;
316 316
317 drm_vblank_init(dev, 1);
318 status = VIA_READ(VIA_REG_INTERRUPT); 317 status = VIA_READ(VIA_REG_INTERRUPT);
319 VIA_WRITE(VIA_REG_INTERRUPT, status | VIA_IRQ_GLOBAL 318 VIA_WRITE(VIA_REG_INTERRUPT, status | VIA_IRQ_GLOBAL
320 | dev_priv->irq_enable_mask); 319 | dev_priv->irq_enable_mask);
diff --git a/drivers/gpu/drm/via/via_map.c b/drivers/gpu/drm/via/via_map.c
index a967556be014..2c4f0b485792 100644
--- a/drivers/gpu/drm/via/via_map.c
+++ b/drivers/gpu/drm/via/via_map.c
@@ -107,8 +107,17 @@ int via_driver_load(struct drm_device *dev, unsigned long chipset)
107 ret = drm_sman_init(&dev_priv->sman, 2, 12, 8); 107 ret = drm_sman_init(&dev_priv->sman, 2, 12, 8);
108 if (ret) { 108 if (ret) {
109 drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER); 109 drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);
110 return ret;
110 } 111 }
111 return ret; 112
113 ret = drm_vblank_init(dev, 1);
114 if (ret) {
115 drm_sman_takedown(&dev_priv->sman);
116 drm_free(dev_priv, sizeof(drm_via_private_t), DRM_MEM_DRIVER);
117 return ret;
118 }
119
120 return 0;
112} 121}
113 122
114int via_driver_unload(struct drm_device *dev) 123int via_driver_unload(struct drm_device *dev)
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 9b97795e45ad..aa28aed0e46c 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -400,12 +400,12 @@ static const struct hid_device_id apple_devices[] = {
400 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS), 400 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS),
401 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | 401 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
402 APPLE_RDESC_JIS }, 402 APPLE_RDESC_JIS },
403 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI), 403 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI),
404 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, 404 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
405 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO), 405 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO),
406 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | 406 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
407 APPLE_ISO_KEYBOARD }, 407 APPLE_ISO_KEYBOARD },
408 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS), 408 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS),
409 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, 409 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
410 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI), 410 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI),
411 .driver_data = APPLE_HAS_FN }, 411 .driver_data = APPLE_HAS_FN },
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 147ec591a806..40df3e1b4bd1 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1241,9 +1241,9 @@ static const struct hid_device_id hid_blacklist[] = {
1241 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI) }, 1241 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI) },
1242 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO) }, 1242 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO) },
1243 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS) }, 1243 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS) },
1244 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI) }, 1244 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI) },
1245 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO) }, 1245 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO) },
1246 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS) }, 1246 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS) },
1247 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI) }, 1247 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI) },
1248 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO) }, 1248 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO) },
1249 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS) }, 1249 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS) },
@@ -1266,6 +1266,9 @@ static const struct hid_device_id hid_blacklist[] = {
1266 { HID_USB_DEVICE(USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_SK8115) }, 1266 { HID_USB_DEVICE(USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_SK8115) },
1267 { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) }, 1267 { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) },
1268 { HID_USB_DEVICE(USB_VENDOR_ID_GENERIC_13BA, USB_DEVICE_ID_GENERIC_13BA_KBD_MOUSE) }, 1268 { HID_USB_DEVICE(USB_VENDOR_ID_GENERIC_13BA, USB_DEVICE_ID_GENERIC_13BA_KBD_MOUSE) },
1269 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) },
1270 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR) },
1271 { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003) },
1269 { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE) }, 1272 { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE) },
1270 { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE_2) }, 1273 { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE_2) },
1271 { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC, USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) }, 1274 { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC, USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) },
@@ -1420,7 +1423,6 @@ static const struct hid_device_id hid_ignore_list[] = {
1420 { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EARTHMATE) }, 1423 { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EARTHMATE) },
1421 { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EM_LT20) }, 1424 { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EM_LT20) },
1422 { HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY, USB_DEVICE_ID_ESSENTIAL_REALITY_P5) }, 1425 { HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY, USB_DEVICE_ID_ESSENTIAL_REALITY_P5) },
1423 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) },
1424 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0001) }, 1426 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0001) },
1425 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0002) }, 1427 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0002) },
1426 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0003) }, 1428 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0003) },
@@ -1436,7 +1438,6 @@ static const struct hid_device_id hid_ignore_list[] = {
1436 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_SUPER_Q2) }, 1438 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_SUPER_Q2) },
1437 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_GOGOPEN) }, 1439 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_GOGOPEN) },
1438 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_PENPOWER) }, 1440 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_PENPOWER) },
1439 { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003) },
1440 { HID_USB_DEVICE(USB_VENDOR_ID_GRETAGMACBETH, USB_DEVICE_ID_GRETAGMACBETH_HUEY) }, 1441 { HID_USB_DEVICE(USB_VENDOR_ID_GRETAGMACBETH, USB_DEVICE_ID_GRETAGMACBETH_HUEY) },
1441 { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_POWERMATE) }, 1442 { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_POWERMATE) },
1442 { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_SOUNDKNOB) }, 1443 { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_SOUNDKNOB) },
@@ -1576,9 +1577,6 @@ static const struct hid_device_id hid_mouse_ignore_list[] = {
1576 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI) }, 1577 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI) },
1577 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO) }, 1578 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO) },
1578 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS) }, 1579 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS) },
1579 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) },
1580 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) },
1581 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) },
1582 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, 1580 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
1583 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, 1581 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
1584 { } 1582 { }
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index d70075dd3d81..39289699c32f 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -163,6 +163,7 @@
163 163
164#define USB_VENDOR_ID_GAMERON 0x0810 164#define USB_VENDOR_ID_GAMERON 0x0810
165#define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR 0x0001 165#define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR 0x0001
166#define USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR 0x0002
166 167
167#define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc 168#define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc
168 169
diff --git a/drivers/hid/hid-pl.c b/drivers/hid/hid-pl.c
index acd815586182..46941f979b9d 100644
--- a/drivers/hid/hid-pl.c
+++ b/drivers/hid/hid-pl.c
@@ -178,6 +178,8 @@ err:
178static const struct hid_device_id pl_devices[] = { 178static const struct hid_device_id pl_devices[] = {
179 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR), 179 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR),
180 .driver_data = 1 }, /* Twin USB Joystick */ 180 .driver_data = 1 }, /* Twin USB Joystick */
181 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR),
182 .driver_data = 1 }, /* Twin USB Joystick */
181 { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003), }, /* GreenAsia Inc. USB Joystick */ 183 { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003), }, /* GreenAsia Inc. USB Joystick */
182 { } 184 { }
183}; 185};
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index d746bf8284dd..606369ea24ca 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -796,7 +796,6 @@ static int usbhid_start(struct hid_device *hid)
796 if (insize > HID_MAX_BUFFER_SIZE) 796 if (insize > HID_MAX_BUFFER_SIZE)
797 insize = HID_MAX_BUFFER_SIZE; 797 insize = HID_MAX_BUFFER_SIZE;
798 798
799 mutex_lock(&usbhid->setup);
800 if (hid_alloc_buffers(dev, hid)) { 799 if (hid_alloc_buffers(dev, hid)) {
801 ret = -ENOMEM; 800 ret = -ENOMEM;
802 goto fail; 801 goto fail;
@@ -876,7 +875,6 @@ static int usbhid_start(struct hid_device *hid)
876 hid_dump_device(hid); 875 hid_dump_device(hid);
877 876
878 set_bit(HID_STARTED, &usbhid->iofl); 877 set_bit(HID_STARTED, &usbhid->iofl);
879 mutex_unlock(&usbhid->setup);
880 878
881 return 0; 879 return 0;
882 880
@@ -888,7 +886,6 @@ fail:
888 usbhid->urbout = NULL; 886 usbhid->urbout = NULL;
889 usbhid->urbctrl = NULL; 887 usbhid->urbctrl = NULL;
890 hid_free_buffers(dev, hid); 888 hid_free_buffers(dev, hid);
891 mutex_unlock(&usbhid->setup);
892 return ret; 889 return ret;
893} 890}
894 891
@@ -899,7 +896,6 @@ static void usbhid_stop(struct hid_device *hid)
899 if (WARN_ON(!usbhid)) 896 if (WARN_ON(!usbhid))
900 return; 897 return;
901 898
902 mutex_lock(&usbhid->setup);
903 clear_bit(HID_STARTED, &usbhid->iofl); 899 clear_bit(HID_STARTED, &usbhid->iofl);
904 spin_lock_irq(&usbhid->inlock); /* Sync with error handler */ 900 spin_lock_irq(&usbhid->inlock); /* Sync with error handler */
905 set_bit(HID_DISCONNECTED, &usbhid->iofl); 901 set_bit(HID_DISCONNECTED, &usbhid->iofl);
@@ -928,7 +924,6 @@ static void usbhid_stop(struct hid_device *hid)
928 usbhid->urbout = NULL; 924 usbhid->urbout = NULL;
929 925
930 hid_free_buffers(hid_to_usb_dev(hid), hid); 926 hid_free_buffers(hid_to_usb_dev(hid), hid);
931 mutex_unlock(&usbhid->setup);
932} 927}
933 928
934static struct hid_ll_driver usb_hid_driver = { 929static struct hid_ll_driver usb_hid_driver = {
@@ -1016,7 +1011,6 @@ static int hid_probe(struct usb_interface *intf, const struct usb_device_id *id)
1016 1011
1017 hid->driver_data = usbhid; 1012 hid->driver_data = usbhid;
1018 usbhid->hid = hid; 1013 usbhid->hid = hid;
1019 mutex_init(&usbhid->setup); /* needed on suspend/resume */
1020 1014
1021 ret = hid_add_device(hid); 1015 ret = hid_add_device(hid);
1022 if (ret) { 1016 if (ret) {
@@ -1051,18 +1045,14 @@ static int hid_suspend(struct usb_interface *intf, pm_message_t message)
1051 struct hid_device *hid = usb_get_intfdata (intf); 1045 struct hid_device *hid = usb_get_intfdata (intf);
1052 struct usbhid_device *usbhid = hid->driver_data; 1046 struct usbhid_device *usbhid = hid->driver_data;
1053 1047
1054 mutex_lock(&usbhid->setup); 1048 if (!test_bit(HID_STARTED, &usbhid->iofl))
1055 if (!test_bit(HID_STARTED, &usbhid->iofl)) {
1056 mutex_unlock(&usbhid->setup);
1057 return 0; 1049 return 0;
1058 }
1059 1050
1060 spin_lock_irq(&usbhid->inlock); /* Sync with error handler */ 1051 spin_lock_irq(&usbhid->inlock); /* Sync with error handler */
1061 set_bit(HID_SUSPENDED, &usbhid->iofl); 1052 set_bit(HID_SUSPENDED, &usbhid->iofl);
1062 spin_unlock_irq(&usbhid->inlock); 1053 spin_unlock_irq(&usbhid->inlock);
1063 del_timer_sync(&usbhid->io_retry); 1054 del_timer_sync(&usbhid->io_retry);
1064 usb_kill_urb(usbhid->urbin); 1055 usb_kill_urb(usbhid->urbin);
1065 mutex_unlock(&usbhid->setup);
1066 dev_dbg(&intf->dev, "suspend\n"); 1056 dev_dbg(&intf->dev, "suspend\n");
1067 return 0; 1057 return 0;
1068} 1058}
@@ -1073,16 +1063,12 @@ static int hid_resume(struct usb_interface *intf)
1073 struct usbhid_device *usbhid = hid->driver_data; 1063 struct usbhid_device *usbhid = hid->driver_data;
1074 int status; 1064 int status;
1075 1065
1076 mutex_lock(&usbhid->setup); 1066 if (!test_bit(HID_STARTED, &usbhid->iofl))
1077 if (!test_bit(HID_STARTED, &usbhid->iofl)) {
1078 mutex_unlock(&usbhid->setup);
1079 return 0; 1067 return 0;
1080 }
1081 1068
1082 clear_bit(HID_SUSPENDED, &usbhid->iofl); 1069 clear_bit(HID_SUSPENDED, &usbhid->iofl);
1083 usbhid->retry_delay = 0; 1070 usbhid->retry_delay = 0;
1084 status = hid_start_in(hid); 1071 status = hid_start_in(hid);
1085 mutex_unlock(&usbhid->setup);
1086 dev_dbg(&intf->dev, "resume status %d\n", status); 1072 dev_dbg(&intf->dev, "resume status %d\n", status);
1087 return status; 1073 return status;
1088} 1074}
diff --git a/drivers/hid/usbhid/usbhid.h b/drivers/hid/usbhid/usbhid.h
index 55973ff54008..332abcdf9956 100644
--- a/drivers/hid/usbhid/usbhid.h
+++ b/drivers/hid/usbhid/usbhid.h
@@ -74,7 +74,6 @@ struct usbhid_device {
74 dma_addr_t outbuf_dma; /* Output buffer dma */ 74 dma_addr_t outbuf_dma; /* Output buffer dma */
75 spinlock_t outlock; /* Output fifo spinlock */ 75 spinlock_t outlock; /* Output fifo spinlock */
76 76
77 struct mutex setup;
78 unsigned long iofl; /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */ 77 unsigned long iofl; /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */
79 struct timer_list io_retry; /* Retry timer */ 78 struct timer_list io_retry; /* Retry timer */
80 unsigned long stop_retry; /* Time to give up, in jiffies */ 79 unsigned long stop_retry; /* Time to give up, in jiffies */
diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
index f7dce8b9f64b..086c2a5cef0b 100644
--- a/drivers/hwmon/applesmc.c
+++ b/drivers/hwmon/applesmc.c
@@ -1564,3 +1564,4 @@ module_exit(applesmc_exit);
1564MODULE_AUTHOR("Nicolas Boichat"); 1564MODULE_AUTHOR("Nicolas Boichat");
1565MODULE_DESCRIPTION("Apple SMC"); 1565MODULE_DESCRIPTION("Apple SMC");
1566MODULE_LICENSE("GPL v2"); 1566MODULE_LICENSE("GPL v2");
1567MODULE_DEVICE_TABLE(dmi, applesmc_whitelist);
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c
index 228f75723063..3fcf78e906db 100644
--- a/drivers/i2c/busses/i2c-cpm.c
+++ b/drivers/i2c/busses/i2c-cpm.c
@@ -365,6 +365,7 @@ static int cpm_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
365 pmsg = &msgs[tptr]; 365 pmsg = &msgs[tptr];
366 if (pmsg->flags & I2C_M_RD) 366 if (pmsg->flags & I2C_M_RD)
367 ret = wait_event_interruptible_timeout(cpm->i2c_wait, 367 ret = wait_event_interruptible_timeout(cpm->i2c_wait,
368 (in_be16(&tbdf[tptr].cbd_sc) & BD_SC_NAK) ||
368 !(in_be16(&rbdf[rptr].cbd_sc) & BD_SC_EMPTY), 369 !(in_be16(&rbdf[rptr].cbd_sc) & BD_SC_EMPTY),
369 1 * HZ); 370 1 * HZ);
370 else 371 else
diff --git a/drivers/i2c/busses/i2c-highlander.c b/drivers/i2c/busses/i2c-highlander.c
index f4d22ae9d294..e5a8dae4a289 100644
--- a/drivers/i2c/busses/i2c-highlander.c
+++ b/drivers/i2c/busses/i2c-highlander.c
@@ -92,7 +92,7 @@ static void highlander_i2c_setup(struct highlander_i2c_dev *dev)
92static void smbus_write_data(u8 *src, u16 *dst, int len) 92static void smbus_write_data(u8 *src, u16 *dst, int len)
93{ 93{
94 for (; len > 1; len -= 2) { 94 for (; len > 1; len -= 2) {
95 *dst++ = be16_to_cpup((u16 *)src); 95 *dst++ = be16_to_cpup((__be16 *)src);
96 src += 2; 96 src += 2;
97 } 97 }
98 98
@@ -103,7 +103,7 @@ static void smbus_write_data(u8 *src, u16 *dst, int len)
103static void smbus_read_data(u16 *src, u8 *dst, int len) 103static void smbus_read_data(u16 *src, u8 *dst, int len)
104{ 104{
105 for (; len > 1; len -= 2) { 105 for (; len > 1; len -= 2) {
106 *(u16 *)dst = cpu_to_be16p(src++); 106 *(__be16 *)dst = cpu_to_be16p(src++);
107 dst += 2; 107 dst += 2;
108 } 108 }
109 109
diff --git a/drivers/i2c/busses/i2c-parport.c b/drivers/i2c/busses/i2c-parport.c
index 59ba2086d2f9..a257cd5cd134 100644
--- a/drivers/i2c/busses/i2c-parport.c
+++ b/drivers/i2c/busses/i2c-parport.c
@@ -189,8 +189,6 @@ static void i2c_parport_attach (struct parport *port)
189 if (adapter_parm[type].init.val) 189 if (adapter_parm[type].init.val)
190 line_set(port, 1, &adapter_parm[type].init); 190 line_set(port, 1, &adapter_parm[type].init);
191 191
192 parport_release(adapter->pdev);
193
194 if (i2c_bit_add_bus(&adapter->adapter) < 0) { 192 if (i2c_bit_add_bus(&adapter->adapter) < 0) {
195 printk(KERN_ERR "i2c-parport: Unable to register with I2C\n"); 193 printk(KERN_ERR "i2c-parport: Unable to register with I2C\n");
196 goto ERROR1; 194 goto ERROR1;
@@ -202,6 +200,7 @@ static void i2c_parport_attach (struct parport *port)
202 return; 200 return;
203 201
204ERROR1: 202ERROR1:
203 parport_release(adapter->pdev);
205 parport_unregister_device(adapter->pdev); 204 parport_unregister_device(adapter->pdev);
206ERROR0: 205ERROR0:
207 kfree(adapter); 206 kfree(adapter);
@@ -221,6 +220,7 @@ static void i2c_parport_detach (struct parport *port)
221 if (adapter_parm[type].init.val) 220 if (adapter_parm[type].init.val)
222 line_set(port, 0, &adapter_parm[type].init); 221 line_set(port, 0, &adapter_parm[type].init);
223 222
223 parport_release(adapter->pdev);
224 parport_unregister_device(adapter->pdev); 224 parport_unregister_device(adapter->pdev);
225 if (prev) 225 if (prev)
226 prev->next = adapter->next; 226 prev->next = adapter->next;
diff --git a/drivers/i2c/busses/i2c-pmcmsp.c b/drivers/i2c/busses/i2c-pmcmsp.c
index dcf2045b5222..0bdb2d7f0570 100644
--- a/drivers/i2c/busses/i2c-pmcmsp.c
+++ b/drivers/i2c/busses/i2c-pmcmsp.c
@@ -486,7 +486,7 @@ static enum pmcmsptwi_xfer_result pmcmsptwi_xfer_cmd(
486 486
487 if (cmd->type == MSP_TWI_CMD_WRITE || 487 if (cmd->type == MSP_TWI_CMD_WRITE ||
488 cmd->type == MSP_TWI_CMD_WRITE_READ) { 488 cmd->type == MSP_TWI_CMD_WRITE_READ) {
489 __be64 tmp = cpu_to_be64p((u64 *)cmd->write_data); 489 u64 tmp = be64_to_cpup((__be64 *)cmd->write_data);
490 tmp >>= (MSP_MAX_BYTES_PER_RW - cmd->write_len) * 8; 490 tmp >>= (MSP_MAX_BYTES_PER_RW - cmd->write_len) * 8;
491 dev_dbg(&pmcmsptwi_adapter.dev, "Writing 0x%016llx\n", tmp); 491 dev_dbg(&pmcmsptwi_adapter.dev, "Writing 0x%016llx\n", tmp);
492 pmcmsptwi_writel(tmp & 0x00000000ffffffffLL, 492 pmcmsptwi_writel(tmp & 0x00000000ffffffffLL,
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index 1fac4e233133..b7434d24904e 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -56,6 +56,7 @@ enum s3c24xx_i2c_state {
56struct s3c24xx_i2c { 56struct s3c24xx_i2c {
57 spinlock_t lock; 57 spinlock_t lock;
58 wait_queue_head_t wait; 58 wait_queue_head_t wait;
59 unsigned int suspended:1;
59 60
60 struct i2c_msg *msg; 61 struct i2c_msg *msg;
61 unsigned int msg_num; 62 unsigned int msg_num;
@@ -507,7 +508,7 @@ static int s3c24xx_i2c_doxfer(struct s3c24xx_i2c *i2c, struct i2c_msg *msgs, int
507 unsigned long timeout; 508 unsigned long timeout;
508 int ret; 509 int ret;
509 510
510 if (!(readl(i2c->regs + S3C2410_IICCON) & S3C2410_IICCON_IRQEN)) 511 if (i2c->suspended)
511 return -EIO; 512 return -EIO;
512 513
513 ret = s3c24xx_i2c_set_master(i2c); 514 ret = s3c24xx_i2c_set_master(i2c);
@@ -986,17 +987,26 @@ static int s3c24xx_i2c_remove(struct platform_device *pdev)
986} 987}
987 988
988#ifdef CONFIG_PM 989#ifdef CONFIG_PM
990static int s3c24xx_i2c_suspend_late(struct platform_device *dev,
991 pm_message_t msg)
992{
993 struct s3c24xx_i2c *i2c = platform_get_drvdata(dev);
994 i2c->suspended = 1;
995 return 0;
996}
997
989static int s3c24xx_i2c_resume(struct platform_device *dev) 998static int s3c24xx_i2c_resume(struct platform_device *dev)
990{ 999{
991 struct s3c24xx_i2c *i2c = platform_get_drvdata(dev); 1000 struct s3c24xx_i2c *i2c = platform_get_drvdata(dev);
992 1001
993 if (i2c != NULL) 1002 i2c->suspended = 0;
994 s3c24xx_i2c_init(i2c); 1003 s3c24xx_i2c_init(i2c);
995 1004
996 return 0; 1005 return 0;
997} 1006}
998 1007
999#else 1008#else
1009#define s3c24xx_i2c_suspend_late NULL
1000#define s3c24xx_i2c_resume NULL 1010#define s3c24xx_i2c_resume NULL
1001#endif 1011#endif
1002 1012
@@ -1005,6 +1015,7 @@ static int s3c24xx_i2c_resume(struct platform_device *dev)
1005static struct platform_driver s3c2410_i2c_driver = { 1015static struct platform_driver s3c2410_i2c_driver = {
1006 .probe = s3c24xx_i2c_probe, 1016 .probe = s3c24xx_i2c_probe,
1007 .remove = s3c24xx_i2c_remove, 1017 .remove = s3c24xx_i2c_remove,
1018 .suspend_late = s3c24xx_i2c_suspend_late,
1008 .resume = s3c24xx_i2c_resume, 1019 .resume = s3c24xx_i2c_resume,
1009 .driver = { 1020 .driver = {
1010 .owner = THIS_MODULE, 1021 .owner = THIS_MODULE,
@@ -1015,6 +1026,7 @@ static struct platform_driver s3c2410_i2c_driver = {
1015static struct platform_driver s3c2440_i2c_driver = { 1026static struct platform_driver s3c2440_i2c_driver = {
1016 .probe = s3c24xx_i2c_probe, 1027 .probe = s3c24xx_i2c_probe,
1017 .remove = s3c24xx_i2c_remove, 1028 .remove = s3c24xx_i2c_remove,
1029 .suspend_late = s3c24xx_i2c_suspend_late,
1018 .resume = s3c24xx_i2c_resume, 1030 .resume = s3c24xx_i2c_resume,
1019 .driver = { 1031 .driver = {
1020 .owner = THIS_MODULE, 1032 .owner = THIS_MODULE,
diff --git a/drivers/i2c/chips/isp1301_omap.c b/drivers/i2c/chips/isp1301_omap.c
index 28902ebd5539..e0d56ef2bcb0 100644
--- a/drivers/i2c/chips/isp1301_omap.c
+++ b/drivers/i2c/chips/isp1301_omap.c
@@ -25,6 +25,7 @@
25#include <linux/slab.h> 25#include <linux/slab.h>
26#include <linux/interrupt.h> 26#include <linux/interrupt.h>
27#include <linux/platform_device.h> 27#include <linux/platform_device.h>
28#include <linux/gpio.h>
28#include <linux/usb/ch9.h> 29#include <linux/usb/ch9.h>
29#include <linux/usb/gadget.h> 30#include <linux/usb/gadget.h>
30#include <linux/usb.h> 31#include <linux/usb.h>
@@ -33,7 +34,10 @@
33#include <linux/workqueue.h> 34#include <linux/workqueue.h>
34 35
35#include <asm/irq.h> 36#include <asm/irq.h>
37#include <asm/mach-types.h>
38
36#include <mach/usb.h> 39#include <mach/usb.h>
40#include <mach/mux.h>
37 41
38 42
39#ifndef DEBUG 43#ifndef DEBUG
@@ -88,14 +92,9 @@ struct isp1301 {
88 92
89/*-------------------------------------------------------------------------*/ 93/*-------------------------------------------------------------------------*/
90 94
91#ifdef CONFIG_MACH_OMAP_H2
92
93/* board-specific PM hooks */ 95/* board-specific PM hooks */
94 96
95#include <asm/gpio.h> 97#if defined(CONFIG_MACH_OMAP_H2) || defined(CONFIG_MACH_OMAP_H3)
96#include <mach/mux.h>
97#include <asm/mach-types.h>
98
99 98
100#if defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE) 99#if defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE)
101 100
@@ -135,6 +134,33 @@ static inline void notresponding(struct isp1301 *isp)
135 134
136#endif 135#endif
137 136
137#if defined(CONFIG_MACH_OMAP_H4)
138
139static void enable_vbus_draw(struct isp1301 *isp, unsigned mA)
140{
141 /* H4 controls this by DIP switch S2.4; no soft control.
142 * ON means the charger is always enabled. Leave it OFF
143 * unless the OTG port is used only in B-peripheral mode.
144 */
145}
146
147static void enable_vbus_source(struct isp1301 *isp)
148{
149 /* this board won't supply more than 8mA vbus power.
150 * some boards can switch a 100ma "unit load" (or more).
151 */
152}
153
154
155/* products will deliver OTG messages with LEDs, GUI, etc */
156static inline void notresponding(struct isp1301 *isp)
157{
158 printk(KERN_NOTICE "OTG device not responding.\n");
159}
160
161
162#endif
163
138/*-------------------------------------------------------------------------*/ 164/*-------------------------------------------------------------------------*/
139 165
140static struct i2c_driver isp1301_driver; 166static struct i2c_driver isp1301_driver;
@@ -334,8 +360,7 @@ static int gadget_suspend(struct isp1301 *isp)
334 * NOTE: guaranteeing certain response times might mean we shouldn't 360 * NOTE: guaranteeing certain response times might mean we shouldn't
335 * share keventd's work queue; a realtime task might be safest. 361 * share keventd's work queue; a realtime task might be safest.
336 */ 362 */
337void 363static void isp1301_defer_work(struct isp1301 *isp, int work)
338isp1301_defer_work(struct isp1301 *isp, int work)
339{ 364{
340 int status; 365 int status;
341 366
@@ -512,7 +537,6 @@ static void update_otg1(struct isp1301 *isp, u8 int_src)
512 otg_ctrl &= ~OTG_XCEIV_INPUTS; 537 otg_ctrl &= ~OTG_XCEIV_INPUTS;
513 otg_ctrl &= ~(OTG_ID|OTG_ASESSVLD|OTG_VBUSVLD); 538 otg_ctrl &= ~(OTG_ID|OTG_ASESSVLD|OTG_VBUSVLD);
514 539
515
516 if (int_src & INTR_SESS_VLD) 540 if (int_src & INTR_SESS_VLD)
517 otg_ctrl |= OTG_ASESSVLD; 541 otg_ctrl |= OTG_ASESSVLD;
518 else if (isp->otg.state == OTG_STATE_A_WAIT_VFALL) { 542 else if (isp->otg.state == OTG_STATE_A_WAIT_VFALL) {
@@ -886,11 +910,11 @@ static int otg_probe(struct platform_device *dev)
886 910
887static int otg_remove(struct platform_device *dev) 911static int otg_remove(struct platform_device *dev)
888{ 912{
889 otg_dev = 0; 913 otg_dev = NULL;
890 return 0; 914 return 0;
891} 915}
892 916
893struct platform_driver omap_otg_driver = { 917static struct platform_driver omap_otg_driver = {
894 .probe = otg_probe, 918 .probe = otg_probe,
895 .remove = otg_remove, 919 .remove = otg_remove,
896 .driver = { 920 .driver = {
@@ -1212,6 +1236,8 @@ static void isp1301_release(struct device *dev)
1212 1236
1213 isp = dev_get_drvdata(dev); 1237 isp = dev_get_drvdata(dev);
1214 1238
1239 /* FIXME -- not with a "new style" driver, it doesn't!! */
1240
1215 /* ugly -- i2c hijacks our memory hook to wait_for_completion() */ 1241 /* ugly -- i2c hijacks our memory hook to wait_for_completion() */
1216 if (isp->i2c_release) 1242 if (isp->i2c_release)
1217 isp->i2c_release(dev); 1243 isp->i2c_release(dev);
@@ -1233,7 +1259,7 @@ static int __exit isp1301_remove(struct i2c_client *i2c)
1233 otg_unbind(isp); 1259 otg_unbind(isp);
1234#endif 1260#endif
1235 if (machine_is_omap_h2()) 1261 if (machine_is_omap_h2())
1236 omap_free_gpio(2); 1262 gpio_free(2);
1237 1263
1238 isp->timer.data = 0; 1264 isp->timer.data = 0;
1239 set_bit(WORK_STOP, &isp->todo); 1265 set_bit(WORK_STOP, &isp->todo);
@@ -1241,7 +1267,7 @@ static int __exit isp1301_remove(struct i2c_client *i2c)
1241 flush_scheduled_work(); 1267 flush_scheduled_work();
1242 1268
1243 put_device(&i2c->dev); 1269 put_device(&i2c->dev);
1244 the_transceiver = 0; 1270 the_transceiver = NULL;
1245 1271
1246 return 0; 1272 return 0;
1247} 1273}
@@ -1295,7 +1321,7 @@ isp1301_set_host(struct otg_transceiver *otg, struct usb_bus *host)
1295 if (!host) { 1321 if (!host) {
1296 omap_writew(0, OTG_IRQ_EN); 1322 omap_writew(0, OTG_IRQ_EN);
1297 power_down(isp); 1323 power_down(isp);
1298 isp->otg.host = 0; 1324 isp->otg.host = NULL;
1299 return 0; 1325 return 0;
1300 } 1326 }
1301 1327
@@ -1344,7 +1370,9 @@ static int
1344isp1301_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *gadget) 1370isp1301_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *gadget)
1345{ 1371{
1346 struct isp1301 *isp = container_of(otg, struct isp1301, otg); 1372 struct isp1301 *isp = container_of(otg, struct isp1301, otg);
1373#ifndef CONFIG_USB_OTG
1347 u32 l; 1374 u32 l;
1375#endif
1348 1376
1349 if (!otg || isp != the_transceiver) 1377 if (!otg || isp != the_transceiver)
1350 return -ENODEV; 1378 return -ENODEV;
@@ -1354,7 +1382,7 @@ isp1301_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *gadget)
1354 if (!isp->otg.default_a) 1382 if (!isp->otg.default_a)
1355 enable_vbus_draw(isp, 0); 1383 enable_vbus_draw(isp, 0);
1356 usb_gadget_vbus_disconnect(isp->otg.gadget); 1384 usb_gadget_vbus_disconnect(isp->otg.gadget);
1357 isp->otg.gadget = 0; 1385 isp->otg.gadget = NULL;
1358 power_down(isp); 1386 power_down(isp);
1359 return 0; 1387 return 0;
1360 } 1388 }
@@ -1379,7 +1407,7 @@ isp1301_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *gadget)
1379 power_up(isp); 1407 power_up(isp);
1380 isp->otg.state = OTG_STATE_B_IDLE; 1408 isp->otg.state = OTG_STATE_B_IDLE;
1381 1409
1382 if (machine_is_omap_h2()) 1410 if (machine_is_omap_h2() || machine_is_omap_h3())
1383 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); 1411 isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0);
1384 1412
1385 isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, 1413 isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING,
@@ -1499,7 +1527,8 @@ isp1301_start_hnp(struct otg_transceiver *dev)
1499 1527
1500/*-------------------------------------------------------------------------*/ 1528/*-------------------------------------------------------------------------*/
1501 1529
1502static int __init isp1301_probe(struct i2c_client *i2c) 1530static int __init
1531isp1301_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
1503{ 1532{
1504 int status; 1533 int status;
1505 struct isp1301 *isp; 1534 struct isp1301 *isp;
@@ -1647,7 +1676,7 @@ module_init(isp_init);
1647static void __exit isp_exit(void) 1676static void __exit isp_exit(void)
1648{ 1677{
1649 if (the_transceiver) 1678 if (the_transceiver)
1650 otg_set_transceiver(0); 1679 otg_set_transceiver(NULL);
1651 i2c_del_driver(&isp1301_driver); 1680 i2c_del_driver(&isp1301_driver);
1652} 1681}
1653module_exit(isp_exit); 1682module_exit(isp_exit);
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 5a485c22660a..c6a63f46bc15 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -631,7 +631,7 @@ int i2c_del_adapter(struct i2c_adapter *adap)
631 631
632 /* detach any active clients. This must be done first, because 632 /* detach any active clients. This must be done first, because
633 * it can fail; in which case we give up. */ 633 * it can fail; in which case we give up. */
634 list_for_each_entry_safe(client, _n, &adap->clients, list) { 634 list_for_each_entry_safe_reverse(client, _n, &adap->clients, list) {
635 struct i2c_driver *driver; 635 struct i2c_driver *driver;
636 636
637 driver = client->driver; 637 driver = client->driver;
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index 6d7401772a8f..e6857e01d1ba 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -669,10 +669,12 @@ config BLK_DEV_CELLEB
669 669
670endif 670endif
671 671
672# TODO: BLK_DEV_IDEDMA_PCI -> BLK_DEV_IDEDMA_SFF
672config BLK_DEV_IDE_PMAC 673config BLK_DEV_IDE_PMAC
673 tristate "PowerMac on-board IDE support" 674 tristate "PowerMac on-board IDE support"
674 depends on PPC_PMAC && IDE=y 675 depends on PPC_PMAC && IDE=y
675 select IDE_TIMINGS 676 select IDE_TIMINGS
677 select BLK_DEV_IDEDMA_PCI
676 help 678 help
677 This driver provides support for the on-board IDE controller on 679 This driver provides support for the on-board IDE controller on
678 most of the recent Apple Power Macintoshes and PowerBooks. 680 most of the recent Apple Power Macintoshes and PowerBooks.
@@ -689,16 +691,6 @@ config BLK_DEV_IDE_PMAC_ATA100FIRST
689 CD-ROM on hda. This option changes this to more natural hda for 691 CD-ROM on hda. This option changes this to more natural hda for
690 hard disk and hdc for CD-ROM. 692 hard disk and hdc for CD-ROM.
691 693
692config BLK_DEV_IDEDMA_PMAC
693 bool "PowerMac IDE DMA support"
694 depends on BLK_DEV_IDE_PMAC
695 select BLK_DEV_IDEDMA_PCI
696 help
697 This option allows the driver for the on-board IDE controller on
698 Power Macintoshes and PowerBooks to use DMA (direct memory access)
699 to transfer data to and from memory. Saying Y is safe and improves
700 performance.
701
702config BLK_DEV_IDE_AU1XXX 694config BLK_DEV_IDE_AU1XXX
703 bool "IDE for AMD Alchemy Au1200" 695 bool "IDE for AMD Alchemy Au1200"
704 depends on SOC_AU1200 696 depends on SOC_AU1200
@@ -912,7 +904,7 @@ config BLK_DEV_UMC8672
912endif 904endif
913 905
914config BLK_DEV_IDEDMA 906config BLK_DEV_IDEDMA
915 def_bool BLK_DEV_IDEDMA_SFF || BLK_DEV_IDEDMA_PMAC || \ 907 def_bool BLK_DEV_IDEDMA_SFF || \
916 BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA 908 BLK_DEV_IDEDMA_ICS || BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
917 909
918endif # IDE 910endif # IDE
diff --git a/drivers/ide/alim15x3.c b/drivers/ide/alim15x3.c
index e56c7b72f9e2..45d2356bb725 100644
--- a/drivers/ide/alim15x3.c
+++ b/drivers/ide/alim15x3.c
@@ -591,7 +591,7 @@ static int __init ali15x3_ide_init(void)
591 591
592static void __exit ali15x3_ide_exit(void) 592static void __exit ali15x3_ide_exit(void)
593{ 593{
594 return pci_unregister_driver(&alim15x3_pci_driver); 594 pci_unregister_driver(&alim15x3_pci_driver);
595} 595}
596 596
597module_init(ali15x3_ide_init); 597module_init(ali15x3_ide_init);
diff --git a/drivers/ide/amd74xx.c b/drivers/ide/amd74xx.c
index 81ec73134eda..c6bcd3014a29 100644
--- a/drivers/ide/amd74xx.c
+++ b/drivers/ide/amd74xx.c
@@ -3,7 +3,7 @@
3 * IDE driver for Linux. 3 * IDE driver for Linux.
4 * 4 *
5 * Copyright (c) 2000-2002 Vojtech Pavlik 5 * Copyright (c) 2000-2002 Vojtech Pavlik
6 * Copyright (c) 2007 Bartlomiej Zolnierkiewicz 6 * Copyright (c) 2007-2008 Bartlomiej Zolnierkiewicz
7 * 7 *
8 * Based on the work of: 8 * Based on the work of:
9 * Andre Hedrick 9 * Andre Hedrick
@@ -263,6 +263,15 @@ static int __devinit amd74xx_probe(struct pci_dev *dev, const struct pci_device_
263 d.udma_mask = ATA_UDMA5; 263 d.udma_mask = ATA_UDMA5;
264 } 264 }
265 265
266 /*
267 * It seems that on some nVidia controllers using AltStatus
268 * register can be unreliable so default to Status register
269 * if the device is in Compatibility Mode.
270 */
271 if (dev->vendor == PCI_VENDOR_ID_NVIDIA &&
272 ide_pci_is_in_compatibility_mode(dev))
273 d.host_flags |= IDE_HFLAG_BROKEN_ALTSTATUS;
274
266 printk(KERN_INFO "%s %s: UDMA%s controller\n", 275 printk(KERN_INFO "%s %s: UDMA%s controller\n",
267 d.name, pci_name(dev), amd_dma[fls(d.udma_mask) - 1]); 276 d.name, pci_name(dev), amd_dma[fls(d.udma_mask) - 1]);
268 277
diff --git a/drivers/ide/cs5530.c b/drivers/ide/cs5530.c
index 53f079cc00af..d8ede85fe17f 100644
--- a/drivers/ide/cs5530.c
+++ b/drivers/ide/cs5530.c
@@ -81,11 +81,12 @@ static u8 cs5530_udma_filter(ide_drive_t *drive)
81{ 81{
82 ide_hwif_t *hwif = drive->hwif; 82 ide_hwif_t *hwif = drive->hwif;
83 ide_drive_t *mate = ide_get_pair_dev(drive); 83 ide_drive_t *mate = ide_get_pair_dev(drive);
84 u16 *mateid = mate->id; 84 u16 *mateid;
85 u8 mask = hwif->ultra_mask; 85 u8 mask = hwif->ultra_mask;
86 86
87 if (mate == NULL) 87 if (mate == NULL)
88 goto out; 88 goto out;
89 mateid = mate->id;
89 90
90 if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) { 91 if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
91 if ((mateid[ATA_ID_FIELD_VALID] & 4) && 92 if ((mateid[ATA_ID_FIELD_VALID] & 4) &&
diff --git a/drivers/ide/icside.c b/drivers/ide/icside.c
index 2d848010499d..81f70caeb40f 100644
--- a/drivers/ide/icside.c
+++ b/drivers/ide/icside.c
@@ -419,7 +419,7 @@ static void icside_setup_ports(hw_regs_t *hw, void __iomem *base,
419 hw->chipset = ide_acorn; 419 hw->chipset = ide_acorn;
420} 420}
421 421
422static int __init 422static int __devinit
423icside_register_v5(struct icside_state *state, struct expansion_card *ec) 423icside_register_v5(struct icside_state *state, struct expansion_card *ec)
424{ 424{
425 void __iomem *base; 425 void __iomem *base;
@@ -473,7 +473,7 @@ static const struct ide_port_info icside_v6_port_info __initdata = {
473 .swdma_mask = ATA_SWDMA2, 473 .swdma_mask = ATA_SWDMA2,
474}; 474};
475 475
476static int __init 476static int __devinit
477icside_register_v6(struct icside_state *state, struct expansion_card *ec) 477icside_register_v6(struct icside_state *state, struct expansion_card *ec)
478{ 478{
479 void __iomem *ioc_base, *easi_base; 479 void __iomem *ioc_base, *easi_base;
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 7162d67562af..cc35d6dbd410 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -132,10 +132,14 @@ int ide_end_request (ide_drive_t *drive, int uptodate, int nr_sectors)
132} 132}
133EXPORT_SYMBOL(ide_end_request); 133EXPORT_SYMBOL(ide_end_request);
134 134
135static void ide_complete_power_step(ide_drive_t *drive, struct request *rq, u8 stat, u8 error) 135static void ide_complete_power_step(ide_drive_t *drive, struct request *rq)
136{ 136{
137 struct request_pm_state *pm = rq->data; 137 struct request_pm_state *pm = rq->data;
138 138
139#ifdef DEBUG_PM
140 printk(KERN_INFO "%s: complete_power_step(step: %d)\n",
141 drive->name, pm->pm_step);
142#endif
139 if (drive->media != ide_disk) 143 if (drive->media != ide_disk)
140 return; 144 return;
141 145
@@ -172,7 +176,7 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request *
172 /* Not supported? Switch to next step now. */ 176 /* Not supported? Switch to next step now. */
173 if (ata_id_flush_enabled(drive->id) == 0 || 177 if (ata_id_flush_enabled(drive->id) == 0 ||
174 (drive->dev_flags & IDE_DFLAG_WCACHE) == 0) { 178 (drive->dev_flags & IDE_DFLAG_WCACHE) == 0) {
175 ide_complete_power_step(drive, rq, 0, 0); 179 ide_complete_power_step(drive, rq);
176 return ide_stopped; 180 return ide_stopped;
177 } 181 }
178 if (ata_id_flush_ext_enabled(drive->id)) 182 if (ata_id_flush_ext_enabled(drive->id))
@@ -191,7 +195,7 @@ static ide_startstop_t ide_start_power_step(ide_drive_t *drive, struct request *
191 if (drive->media != ide_disk) 195 if (drive->media != ide_disk)
192 pm->pm_step = IDE_PM_RESTORE_DMA; 196 pm->pm_step = IDE_PM_RESTORE_DMA;
193 else 197 else
194 ide_complete_power_step(drive, rq, 0, 0); 198 ide_complete_power_step(drive, rq);
195 return ide_stopped; 199 return ide_stopped;
196 case IDE_PM_IDLE: /* Resume step 2 (idle) */ 200 case IDE_PM_IDLE: /* Resume step 2 (idle) */
197 args->tf.command = ATA_CMD_IDLEIMMEDIATE; 201 args->tf.command = ATA_CMD_IDLEIMMEDIATE;
@@ -322,11 +326,8 @@ void ide_end_drive_cmd (ide_drive_t *drive, u8 stat, u8 err)
322 } 326 }
323 } else if (blk_pm_request(rq)) { 327 } else if (blk_pm_request(rq)) {
324 struct request_pm_state *pm = rq->data; 328 struct request_pm_state *pm = rq->data;
325#ifdef DEBUG_PM 329
326 printk("%s: complete_power_step(step: %d, stat: %x, err: %x)\n", 330 ide_complete_power_step(drive, rq);
327 drive->name, rq->pm->pm_step, stat, err);
328#endif
329 ide_complete_power_step(drive, rq, stat, err);
330 if (pm->pm_step == IDE_PM_COMPLETED) 331 if (pm->pm_step == IDE_PM_COMPLETED)
331 ide_complete_pm_request(drive, rq); 332 ide_complete_pm_request(drive, rq);
332 return; 333 return;
@@ -804,7 +805,7 @@ static ide_startstop_t start_request (ide_drive_t *drive, struct request *rq)
804 struct request_pm_state *pm = rq->data; 805 struct request_pm_state *pm = rq->data;
805#ifdef DEBUG_PM 806#ifdef DEBUG_PM
806 printk("%s: start_power_step(step: %d)\n", 807 printk("%s: start_power_step(step: %d)\n",
807 drive->name, rq->pm->pm_step); 808 drive->name, pm->pm_step);
808#endif 809#endif
809 startstop = ide_start_power_step(drive, rq); 810 startstop = ide_start_power_step(drive, rq);
810 if (startstop == ide_stopped && 811 if (startstop == ide_stopped &&
@@ -967,14 +968,13 @@ static void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
967 ide_startstop_t startstop; 968 ide_startstop_t startstop;
968 int loops = 0; 969 int loops = 0;
969 970
970 /* for atari only: POSSIBLY BROKEN HERE(?) */
971 ide_get_lock(ide_intr, hwgroup);
972
973 /* caller must own ide_lock */ 971 /* caller must own ide_lock */
974 BUG_ON(!irqs_disabled()); 972 BUG_ON(!irqs_disabled());
975 973
976 while (!hwgroup->busy) { 974 while (!hwgroup->busy) {
977 hwgroup->busy = 1; 975 hwgroup->busy = 1;
976 /* for atari only */
977 ide_get_lock(ide_intr, hwgroup);
978 drive = choose_drive(hwgroup); 978 drive = choose_drive(hwgroup);
979 if (drive == NULL) { 979 if (drive == NULL) {
980 int sleeping = 0; 980 int sleeping = 0;
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
index 5d6ba14e211d..c41c3b9b6f02 100644
--- a/drivers/ide/ide-iops.c
+++ b/drivers/ide/ide-iops.c
@@ -457,18 +457,14 @@ int drive_is_ready (ide_drive_t *drive)
457 if (drive->waiting_for_dma) 457 if (drive->waiting_for_dma)
458 return hwif->dma_ops->dma_test_irq(drive); 458 return hwif->dma_ops->dma_test_irq(drive);
459 459
460#if 0
461 /* need to guarantee 400ns since last command was issued */
462 udelay(1);
463#endif
464
465 /* 460 /*
466 * We do a passive status test under shared PCI interrupts on 461 * We do a passive status test under shared PCI interrupts on
467 * cards that truly share the ATA side interrupt, but may also share 462 * cards that truly share the ATA side interrupt, but may also share
468 * an interrupt with another pci card/device. We make no assumptions 463 * an interrupt with another pci card/device. We make no assumptions
469 * about possible isa-pnp and pci-pnp issues yet. 464 * about possible isa-pnp and pci-pnp issues yet.
470 */ 465 */
471 if (hwif->io_ports.ctl_addr) 466 if (hwif->io_ports.ctl_addr &&
467 (hwif->host_flags & IDE_HFLAG_BROKEN_ALTSTATUS) == 0)
472 stat = hwif->tp_ops->read_altstatus(hwif); 468 stat = hwif->tp_ops->read_altstatus(hwif);
473 else 469 else
474 /* Note: this may clear a pending IRQ!! */ 470 /* Note: this may clear a pending IRQ!! */
@@ -610,6 +606,7 @@ static const struct drive_list_entry ivb_list[] = {
610 { "TSSTcorp CDDVDW SH-S202N" , "SB01" }, 606 { "TSSTcorp CDDVDW SH-S202N" , "SB01" },
611 { "TSSTcorp CDDVDW SH-S202H" , "SB00" }, 607 { "TSSTcorp CDDVDW SH-S202H" , "SB00" },
612 { "TSSTcorp CDDVDW SH-S202H" , "SB01" }, 608 { "TSSTcorp CDDVDW SH-S202H" , "SB01" },
609 { "SAMSUNG SP0822N" , "WA100-10" },
613 { NULL , NULL } 610 { NULL , NULL }
614}; 611};
615 612
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 1649ea54f76c..c55bdbd22314 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -266,7 +266,8 @@ static int actual_try_to_identify (ide_drive_t *drive, u8 cmd)
266 /* take a deep breath */ 266 /* take a deep breath */
267 msleep(50); 267 msleep(50);
268 268
269 if (io_ports->ctl_addr) { 269 if (io_ports->ctl_addr &&
270 (hwif->host_flags & IDE_HFLAG_BROKEN_ALTSTATUS) == 0) {
270 a = tp_ops->read_altstatus(hwif); 271 a = tp_ops->read_altstatus(hwif);
271 s = tp_ops->read_status(hwif); 272 s = tp_ops->read_status(hwif);
272 if ((a ^ s) & ~ATA_IDX) 273 if ((a ^ s) & ~ATA_IDX)
diff --git a/drivers/ide/pmac.c b/drivers/ide/pmac.c
index 2e19d6298536..7c481bb56fab 100644
--- a/drivers/ide/pmac.c
+++ b/drivers/ide/pmac.c
@@ -66,7 +66,6 @@ typedef struct pmac_ide_hwif {
66 struct macio_dev *mdev; 66 struct macio_dev *mdev;
67 u32 timings[4]; 67 u32 timings[4];
68 volatile u32 __iomem * *kauai_fcr; 68 volatile u32 __iomem * *kauai_fcr;
69#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
70 /* Those fields are duplicating what is in hwif. We currently 69 /* Those fields are duplicating what is in hwif. We currently
71 * can't use the hwif ones because of some assumptions that are 70 * can't use the hwif ones because of some assumptions that are
72 * beeing done by the generic code about the kind of dma controller 71 * beeing done by the generic code about the kind of dma controller
@@ -74,8 +73,6 @@ typedef struct pmac_ide_hwif {
74 */ 73 */
75 volatile struct dbdma_regs __iomem * dma_regs; 74 volatile struct dbdma_regs __iomem * dma_regs;
76 struct dbdma_cmd* dma_table_cpu; 75 struct dbdma_cmd* dma_table_cpu;
77#endif
78
79} pmac_ide_hwif_t; 76} pmac_ide_hwif_t;
80 77
81enum { 78enum {
@@ -222,8 +219,6 @@ static const char* model_name[] = {
222#define KAUAI_FCR_UATA_RESET_N 0x00000002 219#define KAUAI_FCR_UATA_RESET_N 0x00000002
223#define KAUAI_FCR_UATA_ENABLE 0x00000001 220#define KAUAI_FCR_UATA_ENABLE 0x00000001
224 221
225#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
226
227/* Rounded Multiword DMA timings 222/* Rounded Multiword DMA timings
228 * 223 *
229 * I gave up finding a generic formula for all controller 224 * I gave up finding a generic formula for all controller
@@ -413,8 +408,6 @@ static int pmac_ide_build_dmatable(ide_drive_t *drive, struct request *rq);
413static void pmac_ide_selectproc(ide_drive_t *drive); 408static void pmac_ide_selectproc(ide_drive_t *drive);
414static void pmac_ide_kauai_selectproc(ide_drive_t *drive); 409static void pmac_ide_kauai_selectproc(ide_drive_t *drive);
415 410
416#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
417
418#define PMAC_IDE_REG(x) \ 411#define PMAC_IDE_REG(x) \
419 ((void __iomem *)((drive)->hwif->io_ports.data_addr + (x))) 412 ((void __iomem *)((drive)->hwif->io_ports.data_addr + (x)))
420 413
@@ -584,8 +577,6 @@ pmac_ide_set_pio_mode(ide_drive_t *drive, const u8 pio)
584 pmac_ide_do_update_timings(drive); 577 pmac_ide_do_update_timings(drive);
585} 578}
586 579
587#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
588
589/* 580/*
590 * Calculate KeyLargo ATA/66 UDMA timings 581 * Calculate KeyLargo ATA/66 UDMA timings
591 */ 582 */
@@ -786,7 +777,6 @@ set_timings_mdma(ide_drive_t *drive, int intf_type, u32 *timings, u32 *timings2,
786 drive->name, speed & 0xf, *timings); 777 drive->name, speed & 0xf, *timings);
787#endif 778#endif
788} 779}
789#endif /* #ifdef CONFIG_BLK_DEV_IDEDMA_PMAC */
790 780
791static void pmac_ide_set_dma_mode(ide_drive_t *drive, const u8 speed) 781static void pmac_ide_set_dma_mode(ide_drive_t *drive, const u8 speed)
792{ 782{
@@ -804,7 +794,6 @@ static void pmac_ide_set_dma_mode(ide_drive_t *drive, const u8 speed)
804 tl[0] = *timings; 794 tl[0] = *timings;
805 tl[1] = *timings2; 795 tl[1] = *timings2;
806 796
807#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
808 if (speed >= XFER_UDMA_0) { 797 if (speed >= XFER_UDMA_0) {
809 if (pmif->kind == controller_kl_ata4) 798 if (pmif->kind == controller_kl_ata4)
810 ret = set_timings_udma_ata4(&tl[0], speed); 799 ret = set_timings_udma_ata4(&tl[0], speed);
@@ -817,7 +806,7 @@ static void pmac_ide_set_dma_mode(ide_drive_t *drive, const u8 speed)
817 ret = -1; 806 ret = -1;
818 } else 807 } else
819 set_timings_mdma(drive, pmif->kind, &tl[0], &tl[1], speed); 808 set_timings_mdma(drive, pmif->kind, &tl[0], &tl[1], speed);
820#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */ 809
821 if (ret) 810 if (ret)
822 return; 811 return;
823 812
@@ -1008,9 +997,7 @@ static const struct ide_port_info pmac_port_info = {
1008 .chipset = ide_pmac, 997 .chipset = ide_pmac,
1009 .tp_ops = &pmac_tp_ops, 998 .tp_ops = &pmac_tp_ops,
1010 .port_ops = &pmac_ide_port_ops, 999 .port_ops = &pmac_ide_port_ops,
1011#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
1012 .dma_ops = &pmac_dma_ops, 1000 .dma_ops = &pmac_dma_ops,
1013#endif
1014 .host_flags = IDE_HFLAG_SET_PIO_MODE_KEEP_DMA | 1001 .host_flags = IDE_HFLAG_SET_PIO_MODE_KEEP_DMA |
1015 IDE_HFLAG_POST_SET_MODE | 1002 IDE_HFLAG_POST_SET_MODE |
1016 IDE_HFLAG_MMIO | 1003 IDE_HFLAG_MMIO |
@@ -1182,7 +1169,7 @@ pmac_ide_macio_attach(struct macio_dev *mdev, const struct of_device_id *match)
1182 pmif->regbase = regbase; 1169 pmif->regbase = regbase;
1183 pmif->irq = irq; 1170 pmif->irq = irq;
1184 pmif->kauai_fcr = NULL; 1171 pmif->kauai_fcr = NULL;
1185#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC 1172
1186 if (macio_resource_count(mdev) >= 2) { 1173 if (macio_resource_count(mdev) >= 2) {
1187 if (macio_request_resource(mdev, 1, "ide-pmac (dma)")) 1174 if (macio_request_resource(mdev, 1, "ide-pmac (dma)"))
1188 printk(KERN_WARNING "ide-pmac: can't request DMA " 1175 printk(KERN_WARNING "ide-pmac: can't request DMA "
@@ -1192,7 +1179,7 @@ pmac_ide_macio_attach(struct macio_dev *mdev, const struct of_device_id *match)
1192 pmif->dma_regs = ioremap(macio_resource_start(mdev, 1), 0x1000); 1179 pmif->dma_regs = ioremap(macio_resource_start(mdev, 1), 0x1000);
1193 } else 1180 } else
1194 pmif->dma_regs = NULL; 1181 pmif->dma_regs = NULL;
1195#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */ 1182
1196 dev_set_drvdata(&mdev->ofdev.dev, pmif); 1183 dev_set_drvdata(&mdev->ofdev.dev, pmif);
1197 1184
1198 memset(&hw, 0, sizeof(hw)); 1185 memset(&hw, 0, sizeof(hw));
@@ -1300,9 +1287,7 @@ pmac_ide_pci_attach(struct pci_dev *pdev, const struct pci_device_id *id)
1300 1287
1301 base = ioremap(rbase, rlen); 1288 base = ioremap(rbase, rlen);
1302 pmif->regbase = (unsigned long) base + 0x2000; 1289 pmif->regbase = (unsigned long) base + 0x2000;
1303#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
1304 pmif->dma_regs = base + 0x1000; 1290 pmif->dma_regs = base + 0x1000;
1305#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
1306 pmif->kauai_fcr = base; 1291 pmif->kauai_fcr = base;
1307 pmif->irq = pdev->irq; 1292 pmif->irq = pdev->irq;
1308 1293
@@ -1434,8 +1419,6 @@ out:
1434 return error; 1419 return error;
1435} 1420}
1436 1421
1437#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
1438
1439/* 1422/*
1440 * pmac_ide_build_dmatable builds the DBDMA command list 1423 * pmac_ide_build_dmatable builds the DBDMA command list
1441 * for a transfer and sets the DBDMA channel to point to it. 1424 * for a transfer and sets the DBDMA channel to point to it.
@@ -1723,13 +1706,6 @@ static int __devinit pmac_ide_init_dma(ide_hwif_t *hwif,
1723 1706
1724 return 0; 1707 return 0;
1725} 1708}
1726#else
1727static int __devinit pmac_ide_init_dma(ide_hwif_t *hwif,
1728 const struct ide_port_info *d)
1729{
1730 return -EOPNOTSUPP;
1731}
1732#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
1733 1709
1734module_init(pmac_ide_probe); 1710module_init(pmac_ide_probe);
1735 1711
diff --git a/drivers/ide/sc1200.c b/drivers/ide/sc1200.c
index f1a8758e3a99..ec7f766ef5e4 100644
--- a/drivers/ide/sc1200.c
+++ b/drivers/ide/sc1200.c
@@ -104,11 +104,12 @@ static u8 sc1200_udma_filter(ide_drive_t *drive)
104{ 104{
105 ide_hwif_t *hwif = drive->hwif; 105 ide_hwif_t *hwif = drive->hwif;
106 ide_drive_t *mate = ide_get_pair_dev(drive); 106 ide_drive_t *mate = ide_get_pair_dev(drive);
107 u16 *mateid = mate->id; 107 u16 *mateid;
108 u8 mask = hwif->ultra_mask; 108 u8 mask = hwif->ultra_mask;
109 109
110 if (mate == NULL) 110 if (mate == NULL)
111 goto out; 111 goto out;
112 mateid = mate->id;
112 113
113 if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) { 114 if (ata_id_has_dma(mateid) && __ide_dma_bad_drive(mate) == 0) {
114 if ((mateid[ATA_ID_FIELD_VALID] & 4) && 115 if ((mateid[ATA_ID_FIELD_VALID] & 4) &&
diff --git a/drivers/ide/sgiioc4.c b/drivers/ide/sgiioc4.c
index 7defa0ae2014..a687a7dfea6f 100644
--- a/drivers/ide/sgiioc4.c
+++ b/drivers/ide/sgiioc4.c
@@ -550,7 +550,7 @@ static const struct ide_dma_ops sgiioc4_dma_ops = {
550 .dma_timeout = ide_dma_timeout, 550 .dma_timeout = ide_dma_timeout,
551}; 551};
552 552
553static const struct ide_port_info sgiioc4_port_info __devinitdata = { 553static const struct ide_port_info sgiioc4_port_info __devinitconst = {
554 .name = DRV_NAME, 554 .name = DRV_NAME,
555 .chipset = ide_pci, 555 .chipset = ide_pci,
556 .init_dma = ide_dma_sgiioc4, 556 .init_dma = ide_dma_sgiioc4,
@@ -633,7 +633,7 @@ out:
633 return ret; 633 return ret;
634} 634}
635 635
636int 636int __devinit
637ioc4_ide_attach_one(struct ioc4_driver_data *idd) 637ioc4_ide_attach_one(struct ioc4_driver_data *idd)
638{ 638{
639 /* PCI-RT does not bring out IDE connection. 639 /* PCI-RT does not bring out IDE connection.
@@ -645,7 +645,7 @@ ioc4_ide_attach_one(struct ioc4_driver_data *idd)
645 return pci_init_sgiioc4(idd->idd_pdev); 645 return pci_init_sgiioc4(idd->idd_pdev);
646} 646}
647 647
648static struct ioc4_submodule ioc4_ide_submodule = { 648static struct ioc4_submodule __devinitdata ioc4_ide_submodule = {
649 .is_name = "IOC4_ide", 649 .is_name = "IOC4_ide",
650 .is_owner = THIS_MODULE, 650 .is_owner = THIS_MODULE,
651 .is_probe = ioc4_ide_attach_one, 651 .is_probe = ioc4_ide_attach_one,
diff --git a/drivers/ieee1394/highlevel.c b/drivers/ieee1394/highlevel.c
index 918ffc4fc8ac..272543a42a43 100644
--- a/drivers/ieee1394/highlevel.c
+++ b/drivers/ieee1394/highlevel.c
@@ -46,10 +46,6 @@ static DEFINE_RWLOCK(hl_irqs_lock);
46 46
47static DEFINE_RWLOCK(addr_space_lock); 47static DEFINE_RWLOCK(addr_space_lock);
48 48
49/* addr_space list will have zero and max already included as bounds */
50static struct hpsb_address_ops dummy_ops = { NULL, NULL, NULL, NULL };
51static struct hpsb_address_serve dummy_zero_addr, dummy_max_addr;
52
53 49
54static struct hl_host_info *hl_get_hostinfo(struct hpsb_highlevel *hl, 50static struct hl_host_info *hl_get_hostinfo(struct hpsb_highlevel *hl,
55 struct hpsb_host *host) 51 struct hpsb_host *host)
@@ -481,20 +477,23 @@ int hpsb_unregister_addrspace(struct hpsb_highlevel *hl, struct hpsb_host *host,
481 return retval; 477 return retval;
482} 478}
483 479
480static struct hpsb_address_ops dummy_ops;
481
482/* dummy address spaces as lower and upper bounds of the host's a.s. list */
484static void init_hpsb_highlevel(struct hpsb_host *host) 483static void init_hpsb_highlevel(struct hpsb_host *host)
485{ 484{
486 INIT_LIST_HEAD(&dummy_zero_addr.host_list); 485 INIT_LIST_HEAD(&host->dummy_zero_addr.host_list);
487 INIT_LIST_HEAD(&dummy_zero_addr.hl_list); 486 INIT_LIST_HEAD(&host->dummy_zero_addr.hl_list);
488 INIT_LIST_HEAD(&dummy_max_addr.host_list); 487 INIT_LIST_HEAD(&host->dummy_max_addr.host_list);
489 INIT_LIST_HEAD(&dummy_max_addr.hl_list); 488 INIT_LIST_HEAD(&host->dummy_max_addr.hl_list);
490 489
491 dummy_zero_addr.op = dummy_max_addr.op = &dummy_ops; 490 host->dummy_zero_addr.op = host->dummy_max_addr.op = &dummy_ops;
492 491
493 dummy_zero_addr.start = dummy_zero_addr.end = 0; 492 host->dummy_zero_addr.start = host->dummy_zero_addr.end = 0;
494 dummy_max_addr.start = dummy_max_addr.end = ((u64) 1) << 48; 493 host->dummy_max_addr.start = host->dummy_max_addr.end = ((u64) 1) << 48;
495 494
496 list_add_tail(&dummy_zero_addr.host_list, &host->addr_space); 495 list_add_tail(&host->dummy_zero_addr.host_list, &host->addr_space);
497 list_add_tail(&dummy_max_addr.host_list, &host->addr_space); 496 list_add_tail(&host->dummy_max_addr.host_list, &host->addr_space);
498} 497}
499 498
500void highlevel_add_host(struct hpsb_host *host) 499void highlevel_add_host(struct hpsb_host *host)
diff --git a/drivers/ieee1394/hosts.h b/drivers/ieee1394/hosts.h
index e4e8aeb4d778..dd229950acca 100644
--- a/drivers/ieee1394/hosts.h
+++ b/drivers/ieee1394/hosts.h
@@ -13,6 +13,7 @@ struct module;
13 13
14#include "ieee1394_types.h" 14#include "ieee1394_types.h"
15#include "csr.h" 15#include "csr.h"
16#include "highlevel.h"
16 17
17struct hpsb_packet; 18struct hpsb_packet;
18struct hpsb_iso; 19struct hpsb_iso;
@@ -72,6 +73,9 @@ struct hpsb_host {
72 struct { DECLARE_BITMAP(map, 64); } tl_pool[ALL_NODES]; 73 struct { DECLARE_BITMAP(map, 64); } tl_pool[ALL_NODES];
73 74
74 struct csr_control csr; 75 struct csr_control csr;
76
77 struct hpsb_address_serve dummy_zero_addr;
78 struct hpsb_address_serve dummy_max_addr;
75}; 79};
76 80
77enum devctl_cmd { 81enum devctl_cmd {
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c
index 9e39f73282ee..79ef5fd928ae 100644
--- a/drivers/ieee1394/nodemgr.c
+++ b/drivers/ieee1394/nodemgr.c
@@ -115,8 +115,14 @@ static int nodemgr_bus_read(struct csr1212_csr *csr, u64 addr, u16 length,
115 return error; 115 return error;
116} 116}
117 117
118#define OUI_FREECOM_TECHNOLOGIES_GMBH 0x0001db
119
118static int nodemgr_get_max_rom(quadlet_t *bus_info_data, void *__ci) 120static int nodemgr_get_max_rom(quadlet_t *bus_info_data, void *__ci)
119{ 121{
122 /* Freecom FireWire Hard Drive firmware bug */
123 if (be32_to_cpu(bus_info_data[3]) >> 8 == OUI_FREECOM_TECHNOLOGIES_GMBH)
124 return 0;
125
120 return (be32_to_cpu(bus_info_data[2]) >> 8) & 0x3; 126 return (be32_to_cpu(bus_info_data[2]) >> 8) & 0x3;
121} 127}
122 128
@@ -1685,6 +1691,7 @@ static int nodemgr_host_thread(void *data)
1685 g = get_hpsb_generation(host); 1691 g = get_hpsb_generation(host);
1686 for (i = 0; i < 4 ; i++) { 1692 for (i = 0; i < 4 ; i++) {
1687 msleep_interruptible(63); 1693 msleep_interruptible(63);
1694 try_to_freeze();
1688 if (kthread_should_stop()) 1695 if (kthread_should_stop())
1689 goto exit; 1696 goto exit;
1690 1697
@@ -1725,6 +1732,7 @@ static int nodemgr_host_thread(void *data)
1725 /* Sleep 3 seconds */ 1732 /* Sleep 3 seconds */
1726 for (i = 3000/200; i; i--) { 1733 for (i = 3000/200; i; i--) {
1727 msleep_interruptible(200); 1734 msleep_interruptible(200);
1735 try_to_freeze();
1728 if (kthread_should_stop()) 1736 if (kthread_should_stop())
1729 goto exit; 1737 goto exit;
1730 1738
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
index c52f6e6e8af2..a373c18cf7b8 100644
--- a/drivers/ieee1394/sbp2.c
+++ b/drivers/ieee1394/sbp2.c
@@ -402,6 +402,11 @@ static const struct {
402 }, 402 },
403 /* iPod mini */ { 403 /* iPod mini */ {
404 .firmware_revision = 0x0a2700, 404 .firmware_revision = 0x0a2700,
405 .model_id = 0x000022,
406 .workarounds = SBP2_WORKAROUND_FIX_CAPACITY,
407 },
408 /* iPod mini */ {
409 .firmware_revision = 0x0a2700,
405 .model_id = 0x000023, 410 .model_id = 0x000023,
406 .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, 411 .workarounds = SBP2_WORKAROUND_FIX_CAPACITY,
407 }, 412 },
@@ -890,12 +895,13 @@ static void sbp2_host_reset(struct hpsb_host *host)
890 return; 895 return;
891 896
892 read_lock_irqsave(&sbp2_hi_logical_units_lock, flags); 897 read_lock_irqsave(&sbp2_hi_logical_units_lock, flags);
898
893 list_for_each_entry(lu, &hi->logical_units, lu_list) 899 list_for_each_entry(lu, &hi->logical_units, lu_list)
894 if (likely(atomic_read(&lu->state) != 900 if (atomic_cmpxchg(&lu->state,
895 SBP2LU_STATE_IN_SHUTDOWN)) { 901 SBP2LU_STATE_RUNNING, SBP2LU_STATE_IN_RESET)
896 atomic_set(&lu->state, SBP2LU_STATE_IN_RESET); 902 == SBP2LU_STATE_RUNNING)
897 scsi_block_requests(lu->shost); 903 scsi_block_requests(lu->shost);
898 } 904
899 read_unlock_irqrestore(&sbp2_hi_logical_units_lock, flags); 905 read_unlock_irqrestore(&sbp2_hi_logical_units_lock, flags);
900} 906}
901 907
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h
index 4df887af66a5..7fc35cf0cddf 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -163,7 +163,8 @@ struct ehca_mod_qp_parm {
163/* struct for tracking if cqes have been reported to the application */ 163/* struct for tracking if cqes have been reported to the application */
164struct ehca_qmap_entry { 164struct ehca_qmap_entry {
165 u16 app_wr_id; 165 u16 app_wr_id;
166 u16 reported; 166 u8 reported;
167 u8 cqe_req;
167}; 168};
168 169
169struct ehca_queue_map { 170struct ehca_queue_map {
@@ -171,6 +172,7 @@ struct ehca_queue_map {
171 unsigned int entries; 172 unsigned int entries;
172 unsigned int tail; 173 unsigned int tail;
173 unsigned int left_to_poll; 174 unsigned int left_to_poll;
175 unsigned int next_wqe_idx; /* Idx to first wqe to be flushed */
174}; 176};
175 177
176struct ehca_qp { 178struct ehca_qp {
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index bb02a86aa526..bec7e0249358 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -994,8 +994,7 @@ static int ehca_mem_notifier(struct notifier_block *nb,
994 if (printk_timed_ratelimit(&ehca_dmem_warn_time, 994 if (printk_timed_ratelimit(&ehca_dmem_warn_time,
995 30 * 1000)) 995 30 * 1000))
996 ehca_gen_err("DMEM operations are not allowed" 996 ehca_gen_err("DMEM operations are not allowed"
997 "as long as an ehca adapter is" 997 "in conjunction with eHCA");
998 "attached to the LPAR");
999 return NOTIFY_BAD; 998 return NOTIFY_BAD;
1000 } 999 }
1001 } 1000 }
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index 9e05ee2db39b..cadbf0cdd910 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -435,9 +435,13 @@ static void reset_queue_map(struct ehca_queue_map *qmap)
435{ 435{
436 int i; 436 int i;
437 437
438 qmap->tail = 0; 438 qmap->tail = qmap->entries - 1;
439 for (i = 0; i < qmap->entries; i++) 439 qmap->left_to_poll = 0;
440 qmap->next_wqe_idx = 0;
441 for (i = 0; i < qmap->entries; i++) {
440 qmap->map[i].reported = 1; 442 qmap->map[i].reported = 1;
443 qmap->map[i].cqe_req = 0;
444 }
441} 445}
442 446
443/* 447/*
@@ -1121,6 +1125,7 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue,
1121 void *wqe_v; 1125 void *wqe_v;
1122 u64 q_ofs; 1126 u64 q_ofs;
1123 u32 wqe_idx; 1127 u32 wqe_idx;
1128 unsigned int tail_idx;
1124 1129
1125 /* convert real to abs address */ 1130 /* convert real to abs address */
1126 wqe_p = wqe_p & (~(1UL << 63)); 1131 wqe_p = wqe_p & (~(1UL << 63));
@@ -1133,12 +1138,17 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue,
1133 return -EFAULT; 1138 return -EFAULT;
1134 } 1139 }
1135 1140
1141 tail_idx = (qmap->tail + 1) % qmap->entries;
1136 wqe_idx = q_ofs / ipz_queue->qe_size; 1142 wqe_idx = q_ofs / ipz_queue->qe_size;
1137 if (wqe_idx < qmap->tail)
1138 qmap->left_to_poll = (qmap->entries - qmap->tail) + wqe_idx;
1139 else
1140 qmap->left_to_poll = wqe_idx - qmap->tail;
1141 1143
1144 /* check all processed wqes, whether a cqe is requested or not */
1145 while (tail_idx != wqe_idx) {
1146 if (qmap->map[tail_idx].cqe_req)
1147 qmap->left_to_poll++;
1148 tail_idx = (tail_idx + 1) % qmap->entries;
1149 }
1150 /* save index in queue, where we have to start flushing */
1151 qmap->next_wqe_idx = wqe_idx;
1142 return 0; 1152 return 0;
1143} 1153}
1144 1154
@@ -1185,10 +1195,14 @@ static int check_for_left_cqes(struct ehca_qp *my_qp, struct ehca_shca *shca)
1185 } else { 1195 } else {
1186 spin_lock_irqsave(&my_qp->send_cq->spinlock, flags); 1196 spin_lock_irqsave(&my_qp->send_cq->spinlock, flags);
1187 my_qp->sq_map.left_to_poll = 0; 1197 my_qp->sq_map.left_to_poll = 0;
1198 my_qp->sq_map.next_wqe_idx = (my_qp->sq_map.tail + 1) %
1199 my_qp->sq_map.entries;
1188 spin_unlock_irqrestore(&my_qp->send_cq->spinlock, flags); 1200 spin_unlock_irqrestore(&my_qp->send_cq->spinlock, flags);
1189 1201
1190 spin_lock_irqsave(&my_qp->recv_cq->spinlock, flags); 1202 spin_lock_irqsave(&my_qp->recv_cq->spinlock, flags);
1191 my_qp->rq_map.left_to_poll = 0; 1203 my_qp->rq_map.left_to_poll = 0;
1204 my_qp->rq_map.next_wqe_idx = (my_qp->rq_map.tail + 1) %
1205 my_qp->rq_map.entries;
1192 spin_unlock_irqrestore(&my_qp->recv_cq->spinlock, flags); 1206 spin_unlock_irqrestore(&my_qp->recv_cq->spinlock, flags);
1193 } 1207 }
1194 1208
diff --git a/drivers/infiniband/hw/ehca/ehca_reqs.c b/drivers/infiniband/hw/ehca/ehca_reqs.c
index 64928079eafa..00a648f4316c 100644
--- a/drivers/infiniband/hw/ehca/ehca_reqs.c
+++ b/drivers/infiniband/hw/ehca/ehca_reqs.c
@@ -179,6 +179,7 @@ static inline int ehca_write_swqe(struct ehca_qp *qp,
179 179
180 qmap_entry->app_wr_id = get_app_wr_id(send_wr->wr_id); 180 qmap_entry->app_wr_id = get_app_wr_id(send_wr->wr_id);
181 qmap_entry->reported = 0; 181 qmap_entry->reported = 0;
182 qmap_entry->cqe_req = 0;
182 183
183 switch (send_wr->opcode) { 184 switch (send_wr->opcode) {
184 case IB_WR_SEND: 185 case IB_WR_SEND:
@@ -203,8 +204,10 @@ static inline int ehca_write_swqe(struct ehca_qp *qp,
203 204
204 if ((send_wr->send_flags & IB_SEND_SIGNALED || 205 if ((send_wr->send_flags & IB_SEND_SIGNALED ||
205 qp->init_attr.sq_sig_type == IB_SIGNAL_ALL_WR) 206 qp->init_attr.sq_sig_type == IB_SIGNAL_ALL_WR)
206 && !hidden) 207 && !hidden) {
207 wqe_p->wr_flag |= WQE_WRFLAG_REQ_SIGNAL_COM; 208 wqe_p->wr_flag |= WQE_WRFLAG_REQ_SIGNAL_COM;
209 qmap_entry->cqe_req = 1;
210 }
208 211
209 if (send_wr->opcode == IB_WR_SEND_WITH_IMM || 212 if (send_wr->opcode == IB_WR_SEND_WITH_IMM ||
210 send_wr->opcode == IB_WR_RDMA_WRITE_WITH_IMM) { 213 send_wr->opcode == IB_WR_RDMA_WRITE_WITH_IMM) {
@@ -569,6 +572,7 @@ static int internal_post_recv(struct ehca_qp *my_qp,
569 qmap_entry = &my_qp->rq_map.map[rq_map_idx]; 572 qmap_entry = &my_qp->rq_map.map[rq_map_idx];
570 qmap_entry->app_wr_id = get_app_wr_id(cur_recv_wr->wr_id); 573 qmap_entry->app_wr_id = get_app_wr_id(cur_recv_wr->wr_id);
571 qmap_entry->reported = 0; 574 qmap_entry->reported = 0;
575 qmap_entry->cqe_req = 1;
572 576
573 wqe_cnt++; 577 wqe_cnt++;
574 } /* eof for cur_recv_wr */ 578 } /* eof for cur_recv_wr */
@@ -706,27 +710,34 @@ repoll:
706 goto repoll; 710 goto repoll;
707 wc->qp = &my_qp->ib_qp; 711 wc->qp = &my_qp->ib_qp;
708 712
713 qmap_tail_idx = get_app_wr_id(cqe->work_request_id);
714 if (!(cqe->w_completion_flags & WC_SEND_RECEIVE_BIT))
715 /* We got a send completion. */
716 qmap = &my_qp->sq_map;
717 else
718 /* We got a receive completion. */
719 qmap = &my_qp->rq_map;
720
721 /* advance the tail pointer */
722 qmap->tail = qmap_tail_idx;
723
709 if (is_error) { 724 if (is_error) {
710 /* 725 /*
711 * set left_to_poll to 0 because in error state, we will not 726 * set left_to_poll to 0 because in error state, we will not
712 * get any additional CQEs 727 * get any additional CQEs
713 */ 728 */
714 ehca_add_to_err_list(my_qp, 1); 729 my_qp->sq_map.next_wqe_idx = (my_qp->sq_map.tail + 1) %
730 my_qp->sq_map.entries;
715 my_qp->sq_map.left_to_poll = 0; 731 my_qp->sq_map.left_to_poll = 0;
732 ehca_add_to_err_list(my_qp, 1);
716 733
734 my_qp->rq_map.next_wqe_idx = (my_qp->rq_map.tail + 1) %
735 my_qp->rq_map.entries;
736 my_qp->rq_map.left_to_poll = 0;
717 if (HAS_RQ(my_qp)) 737 if (HAS_RQ(my_qp))
718 ehca_add_to_err_list(my_qp, 0); 738 ehca_add_to_err_list(my_qp, 0);
719 my_qp->rq_map.left_to_poll = 0;
720 } 739 }
721 740
722 qmap_tail_idx = get_app_wr_id(cqe->work_request_id);
723 if (!(cqe->w_completion_flags & WC_SEND_RECEIVE_BIT))
724 /* We got a send completion. */
725 qmap = &my_qp->sq_map;
726 else
727 /* We got a receive completion. */
728 qmap = &my_qp->rq_map;
729
730 qmap_entry = &qmap->map[qmap_tail_idx]; 741 qmap_entry = &qmap->map[qmap_tail_idx];
731 if (qmap_entry->reported) { 742 if (qmap_entry->reported) {
732 ehca_warn(cq->device, "Double cqe on qp_num=%#x", 743 ehca_warn(cq->device, "Double cqe on qp_num=%#x",
@@ -738,10 +749,6 @@ repoll:
738 wc->wr_id = replace_wr_id(cqe->work_request_id, qmap_entry->app_wr_id); 749 wc->wr_id = replace_wr_id(cqe->work_request_id, qmap_entry->app_wr_id);
739 qmap_entry->reported = 1; 750 qmap_entry->reported = 1;
740 751
741 /* this is a proper completion, we need to advance the tail pointer */
742 if (++qmap->tail == qmap->entries)
743 qmap->tail = 0;
744
745 /* if left_to_poll is decremented to 0, add the QP to the error list */ 752 /* if left_to_poll is decremented to 0, add the QP to the error list */
746 if (qmap->left_to_poll > 0) { 753 if (qmap->left_to_poll > 0) {
747 qmap->left_to_poll--; 754 qmap->left_to_poll--;
@@ -805,13 +812,14 @@ static int generate_flush_cqes(struct ehca_qp *my_qp, struct ib_cq *cq,
805 else 812 else
806 qmap = &my_qp->rq_map; 813 qmap = &my_qp->rq_map;
807 814
808 qmap_entry = &qmap->map[qmap->tail]; 815 qmap_entry = &qmap->map[qmap->next_wqe_idx];
809 816
810 while ((nr < num_entries) && (qmap_entry->reported == 0)) { 817 while ((nr < num_entries) && (qmap_entry->reported == 0)) {
811 /* generate flush CQE */ 818 /* generate flush CQE */
819
812 memset(wc, 0, sizeof(*wc)); 820 memset(wc, 0, sizeof(*wc));
813 821
814 offset = qmap->tail * ipz_queue->qe_size; 822 offset = qmap->next_wqe_idx * ipz_queue->qe_size;
815 wqe = (struct ehca_wqe *)ipz_qeit_calc(ipz_queue, offset); 823 wqe = (struct ehca_wqe *)ipz_qeit_calc(ipz_queue, offset);
816 if (!wqe) { 824 if (!wqe) {
817 ehca_err(cq->device, "Invalid wqe offset=%#lx on " 825 ehca_err(cq->device, "Invalid wqe offset=%#lx on "
@@ -850,11 +858,12 @@ static int generate_flush_cqes(struct ehca_qp *my_qp, struct ib_cq *cq,
850 858
851 wc->qp = &my_qp->ib_qp; 859 wc->qp = &my_qp->ib_qp;
852 860
853 /* mark as reported and advance tail pointer */ 861 /* mark as reported and advance next_wqe pointer */
854 qmap_entry->reported = 1; 862 qmap_entry->reported = 1;
855 if (++qmap->tail == qmap->entries) 863 qmap->next_wqe_idx++;
856 qmap->tail = 0; 864 if (qmap->next_wqe_idx == qmap->entries)
857 qmap_entry = &qmap->map[qmap->tail]; 865 qmap->next_wqe_idx = 0;
866 qmap_entry = &qmap->map[qmap->next_wqe_idx];
858 867
859 wc++; nr++; 868 wc++; nr++;
860 } 869 }
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c
index d0866a3636e2..18308494a195 100644
--- a/drivers/infiniband/hw/mlx4/cq.c
+++ b/drivers/infiniband/hw/mlx4/cq.c
@@ -343,6 +343,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
343{ 343{
344 struct mlx4_ib_dev *dev = to_mdev(ibcq->device); 344 struct mlx4_ib_dev *dev = to_mdev(ibcq->device);
345 struct mlx4_ib_cq *cq = to_mcq(ibcq); 345 struct mlx4_ib_cq *cq = to_mcq(ibcq);
346 struct mlx4_mtt mtt;
346 int outst_cqe; 347 int outst_cqe;
347 int err; 348 int err;
348 349
@@ -376,10 +377,13 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
376 goto out; 377 goto out;
377 } 378 }
378 379
380 mtt = cq->buf.mtt;
381
379 err = mlx4_cq_resize(dev->dev, &cq->mcq, entries, &cq->resize_buf->buf.mtt); 382 err = mlx4_cq_resize(dev->dev, &cq->mcq, entries, &cq->resize_buf->buf.mtt);
380 if (err) 383 if (err)
381 goto err_buf; 384 goto err_buf;
382 385
386 mlx4_mtt_cleanup(dev->dev, &mtt);
383 if (ibcq->uobject) { 387 if (ibcq->uobject) {
384 cq->buf = cq->resize_buf->buf; 388 cq->buf = cq->resize_buf->buf;
385 cq->ibcq.cqe = cq->resize_buf->cqe; 389 cq->ibcq.cqe = cq->resize_buf->cqe;
@@ -406,6 +410,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
406 goto out; 410 goto out;
407 411
408err_buf: 412err_buf:
413 mlx4_mtt_cleanup(dev->dev, &cq->resize_buf->buf.mtt);
409 if (!ibcq->uobject) 414 if (!ibcq->uobject)
410 mlx4_ib_free_cq_buf(dev, &cq->resize_buf->buf, 415 mlx4_ib_free_cq_buf(dev, &cq->resize_buf->buf,
411 cq->resize_buf->cqe); 416 cq->resize_buf->cqe);
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
index 6790e975a98c..bc4e40f3ede7 100644
--- a/drivers/input/ff-memless.c
+++ b/drivers/input/ff-memless.c
@@ -397,8 +397,9 @@ static int ml_ff_playback(struct input_dev *dev, int effect_id, int value)
397{ 397{
398 struct ml_device *ml = dev->ff->private; 398 struct ml_device *ml = dev->ff->private;
399 struct ml_effect_state *state = &ml->states[effect_id]; 399 struct ml_effect_state *state = &ml->states[effect_id];
400 unsigned long flags;
400 401
401 spin_lock_bh(&ml->timer_lock); 402 spin_lock_irqsave(&ml->timer_lock, flags);
402 403
403 if (value > 0) { 404 if (value > 0) {
404 debug("initiated play"); 405 debug("initiated play");
@@ -424,7 +425,7 @@ static int ml_ff_playback(struct input_dev *dev, int effect_id, int value)
424 ml_play_effects(ml); 425 ml_play_effects(ml);
425 } 426 }
426 427
427 spin_unlock_bh(&ml->timer_lock); 428 spin_unlock_irqrestore(&ml->timer_lock, flags);
428 429
429 return 0; 430 return 0;
430} 431}
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 22016ca15351..379b7ff354ec 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -824,7 +824,7 @@ static void atkbd_disconnect(struct serio *serio)
824 atkbd_disable(atkbd); 824 atkbd_disable(atkbd);
825 825
826 /* make sure we don't have a command in flight */ 826 /* make sure we don't have a command in flight */
827 flush_scheduled_work(); 827 cancel_delayed_work_sync(&atkbd->event_work);
828 828
829 sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group); 829 sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group);
830 input_unregister_device(atkbd->dev); 830 input_unregister_device(atkbd->dev);
@@ -868,6 +868,22 @@ static void atkbd_hp_keymap_fixup(struct atkbd *atkbd)
868} 868}
869 869
870/* 870/*
871 * Inventec system with broken key release on volume keys
872 */
873static void atkbd_inventec_keymap_fixup(struct atkbd *atkbd)
874{
875 const unsigned int forced_release_keys[] = {
876 0xae, 0xb0,
877 };
878 int i;
879
880 if (atkbd->set == 2)
881 for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++)
882 __set_bit(forced_release_keys[i],
883 atkbd->force_release_mask);
884}
885
886/*
871 * atkbd_set_keycode_table() initializes keyboard's keycode table 887 * atkbd_set_keycode_table() initializes keyboard's keycode table
872 * according to the selected scancode set 888 * according to the selected scancode set
873 */ 889 */
@@ -1468,6 +1484,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1468 .callback = atkbd_setup_fixup, 1484 .callback = atkbd_setup_fixup,
1469 .driver_data = atkbd_hp_keymap_fixup, 1485 .driver_data = atkbd_hp_keymap_fixup,
1470 }, 1486 },
1487 {
1488 .ident = "Inventec Symphony",
1489 .matches = {
1490 DMI_MATCH(DMI_SYS_VENDOR, "INVENTEC"),
1491 DMI_MATCH(DMI_PRODUCT_NAME, "SYMPHONY 6.0/7.0"),
1492 },
1493 .callback = atkbd_setup_fixup,
1494 .driver_data = atkbd_inventec_keymap_fixup,
1495 },
1471 { } 1496 { }
1472}; 1497};
1473 1498
diff --git a/drivers/input/misc/cm109.c b/drivers/input/misc/cm109.c
index bce160f4349b..86457feccfc4 100644
--- a/drivers/input/misc/cm109.c
+++ b/drivers/input/misc/cm109.c
@@ -42,7 +42,7 @@
42 42
43static char *phone = "kip1000"; 43static char *phone = "kip1000";
44module_param(phone, charp, S_IRUSR); 44module_param(phone, charp, S_IRUSR);
45MODULE_PARM_DESC(phone, "Phone name {kip1000, gtalk, usbph01}"); 45MODULE_PARM_DESC(phone, "Phone name {kip1000, gtalk, usbph01, atcom}");
46 46
47enum { 47enum {
48 /* HID Registers */ 48 /* HID Registers */
@@ -258,6 +258,37 @@ static unsigned short keymap_usbph01(int scancode)
258 } 258 }
259} 259}
260 260
261/*
262 * Keymap for ATCom AU-100
263 * http://www.atcom.cn/En_products_AU100.html
264 * http://www.packetizer.com/products/au100/
265 * http://www.voip-info.org/wiki/view/AU-100
266 *
267 * Contributed by daniel@gimpelevich.san-francisco.ca.us
268 */
269static unsigned short keymap_atcom(int scancode)
270{
271 switch (scancode) { /* phone key: */
272 case 0x82: return KEY_NUMERIC_0; /* 0 */
273 case 0x11: return KEY_NUMERIC_1; /* 1 */
274 case 0x12: return KEY_NUMERIC_2; /* 2 */
275 case 0x14: return KEY_NUMERIC_3; /* 3 */
276 case 0x21: return KEY_NUMERIC_4; /* 4 */
277 case 0x22: return KEY_NUMERIC_5; /* 5 */
278 case 0x24: return KEY_NUMERIC_6; /* 6 */
279 case 0x41: return KEY_NUMERIC_7; /* 7 */
280 case 0x42: return KEY_NUMERIC_8; /* 8 */
281 case 0x44: return KEY_NUMERIC_9; /* 9 */
282 case 0x84: return KEY_NUMERIC_POUND; /* # */
283 case 0x81: return KEY_NUMERIC_STAR; /* * */
284 case 0x18: return KEY_ENTER; /* pickup */
285 case 0x28: return KEY_ESC; /* hangup */
286 case 0x48: return KEY_LEFT; /* left arrow */
287 case 0x88: return KEY_RIGHT; /* right arrow */
288 default: return special_keymap(scancode);
289 }
290}
291
261static unsigned short (*keymap)(int) = keymap_kip1000; 292static unsigned short (*keymap)(int) = keymap_kip1000;
262 293
263/* 294/*
@@ -840,6 +871,10 @@ static int __init cm109_select_keymap(void)
840 keymap = keymap_usbph01; 871 keymap = keymap_usbph01;
841 printk(KERN_INFO KBUILD_MODNAME ": " 872 printk(KERN_INFO KBUILD_MODNAME ": "
842 "Keymap for Allied-Telesis Corega USBPH01 phone loaded\n"); 873 "Keymap for Allied-Telesis Corega USBPH01 phone loaded\n");
874 } else if (!strcasecmp(phone, "atcom")) {
875 keymap = keymap_atcom;
876 printk(KERN_INFO KBUILD_MODNAME ": "
877 "Keymap for ATCom AU-100 phone loaded\n");
843 } else { 878 } else {
844 printk(KERN_ERR KBUILD_MODNAME ": " 879 printk(KERN_ERR KBUILD_MODNAME ": "
845 "Unsupported phone: %s\n", phone); 880 "Unsupported phone: %s\n", phone);
diff --git a/drivers/input/mouse/hgpk.c b/drivers/input/mouse/hgpk.c
index e82d34201e97..88f04bf2ad6c 100644
--- a/drivers/input/mouse/hgpk.c
+++ b/drivers/input/mouse/hgpk.c
@@ -125,7 +125,7 @@ static void hgpk_spewing_hack(struct psmouse *psmouse,
125 */ 125 */
126static int hgpk_validate_byte(unsigned char *packet) 126static int hgpk_validate_byte(unsigned char *packet)
127{ 127{
128 return (packet[0] & 0x0C) == 0x08; 128 return (packet[0] & 0x0C) != 0x08;
129} 129}
130 130
131static void hgpk_process_packet(struct psmouse *psmouse) 131static void hgpk_process_packet(struct psmouse *psmouse)
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index eec375cd10e6..29e686388a2c 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -337,6 +337,20 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
337 DMI_MATCH(DMI_PRODUCT_NAME, "2656"), 337 DMI_MATCH(DMI_PRODUCT_NAME, "2656"),
338 }, 338 },
339 }, 339 },
340 {
341 .ident = "Dell XPS M1530",
342 .matches = {
343 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
344 DMI_MATCH(DMI_PRODUCT_NAME, "XPS M1530"),
345 },
346 },
347 {
348 .ident = "Compal HEL80I",
349 .matches = {
350 DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"),
351 DMI_MATCH(DMI_PRODUCT_NAME, "HEL80I"),
352 },
353 },
340 { } 354 { }
341}; 355};
342 356
diff --git a/drivers/input/tablet/wacom.h b/drivers/input/tablet/wacom.h
index ca62ec639f8f..677680e9f54f 100644
--- a/drivers/input/tablet/wacom.h
+++ b/drivers/input/tablet/wacom.h
@@ -66,6 +66,7 @@
66 * - Support Intuos3 4x6 66 * - Support Intuos3 4x6
67 * v1.47 (pc) - Added support for Bamboo 67 * v1.47 (pc) - Added support for Bamboo
68 * v1.48 (pc) - Added support for Bamboo1, BambooFun, and Cintiq 12WX 68 * v1.48 (pc) - Added support for Bamboo1, BambooFun, and Cintiq 12WX
69 * v1.49 (pc) - Added support for USB Tablet PC (0x90, 0x93, and 0x9A)
69 */ 70 */
70 71
71/* 72/*
@@ -86,7 +87,7 @@
86/* 87/*
87 * Version Information 88 * Version Information
88 */ 89 */
89#define DRIVER_VERSION "v1.48" 90#define DRIVER_VERSION "v1.49"
90#define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>" 91#define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>"
91#define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver" 92#define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver"
92#define DRIVER_LICENSE "GPL" 93#define DRIVER_LICENSE "GPL"
@@ -103,15 +104,15 @@ struct wacom {
103 struct usb_device *usbdev; 104 struct usb_device *usbdev;
104 struct usb_interface *intf; 105 struct usb_interface *intf;
105 struct urb *irq; 106 struct urb *irq;
106 struct wacom_wac * wacom_wac; 107 struct wacom_wac *wacom_wac;
107 struct mutex lock; 108 struct mutex lock;
108 unsigned int open:1; 109 unsigned int open:1;
109 char phys[32]; 110 char phys[32];
110}; 111};
111 112
112struct wacom_combo { 113struct wacom_combo {
113 struct wacom * wacom; 114 struct wacom *wacom;
114 struct urb * urb; 115 struct urb *urb;
115}; 116};
116 117
117extern int wacom_wac_irq(struct wacom_wac * wacom_wac, void * wcombo); 118extern int wacom_wac_irq(struct wacom_wac * wacom_wac, void * wcombo);
@@ -132,7 +133,7 @@ extern void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wa
132extern void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac); 133extern void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac);
133extern __u16 wacom_le16_to_cpu(unsigned char *data); 134extern __u16 wacom_le16_to_cpu(unsigned char *data);
134extern __u16 wacom_be16_to_cpu(unsigned char *data); 135extern __u16 wacom_be16_to_cpu(unsigned char *data);
135extern struct wacom_features * get_wacom_feature(const struct usb_device_id *id); 136extern struct wacom_features *get_wacom_feature(const struct usb_device_id *id);
136extern const struct usb_device_id * get_device_table(void); 137extern const struct usb_device_id *get_device_table(void);
137 138
138#endif 139#endif
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
index 09e227aa0d49..484496daa0f3 100644
--- a/drivers/input/tablet/wacom_sys.c
+++ b/drivers/input/tablet/wacom_sys.c
@@ -14,8 +14,41 @@
14#include "wacom.h" 14#include "wacom.h"
15#include "wacom_wac.h" 15#include "wacom_wac.h"
16 16
17/* defines to get HID report descriptor */
18#define HID_DEVICET_HID (USB_TYPE_CLASS | 0x01)
19#define HID_DEVICET_REPORT (USB_TYPE_CLASS | 0x02)
20#define HID_USAGE_UNDEFINED 0x00
21#define HID_USAGE_PAGE 0x05
22#define HID_USAGE_PAGE_DIGITIZER 0x0d
23#define HID_USAGE_PAGE_DESKTOP 0x01
24#define HID_USAGE 0x09
25#define HID_USAGE_X 0x30
26#define HID_USAGE_Y 0x31
27#define HID_USAGE_X_TILT 0x3d
28#define HID_USAGE_Y_TILT 0x3e
29#define HID_USAGE_FINGER 0x22
30#define HID_USAGE_STYLUS 0x20
31#define HID_COLLECTION 0xc0
32
33enum {
34 WCM_UNDEFINED = 0,
35 WCM_DESKTOP,
36 WCM_DIGITIZER,
37};
38
39struct hid_descriptor {
40 struct usb_descriptor_header header;
41 __le16 bcdHID;
42 u8 bCountryCode;
43 u8 bNumDescriptors;
44 u8 bDescriptorType;
45 __le16 wDescriptorLength;
46} __attribute__ ((packed));
47
48/* defines to get/set USB message */
17#define USB_REQ_GET_REPORT 0x01 49#define USB_REQ_GET_REPORT 0x01
18#define USB_REQ_SET_REPORT 0x09 50#define USB_REQ_SET_REPORT 0x09
51#define WAC_HID_FEATURE_REPORT 0x03
19 52
20static int usb_get_report(struct usb_interface *intf, unsigned char type, 53static int usb_get_report(struct usb_interface *intf, unsigned char type,
21 unsigned char id, void *buf, int size) 54 unsigned char id, void *buf, int size)
@@ -80,25 +113,21 @@ static void wacom_sys_irq(struct urb *urb)
80void wacom_report_key(void *wcombo, unsigned int key_type, int key_data) 113void wacom_report_key(void *wcombo, unsigned int key_type, int key_data)
81{ 114{
82 input_report_key(get_input_dev((struct wacom_combo *)wcombo), key_type, key_data); 115 input_report_key(get_input_dev((struct wacom_combo *)wcombo), key_type, key_data);
83 return;
84} 116}
85 117
86void wacom_report_abs(void *wcombo, unsigned int abs_type, int abs_data) 118void wacom_report_abs(void *wcombo, unsigned int abs_type, int abs_data)
87{ 119{
88 input_report_abs(get_input_dev((struct wacom_combo *)wcombo), abs_type, abs_data); 120 input_report_abs(get_input_dev((struct wacom_combo *)wcombo), abs_type, abs_data);
89 return;
90} 121}
91 122
92void wacom_report_rel(void *wcombo, unsigned int rel_type, int rel_data) 123void wacom_report_rel(void *wcombo, unsigned int rel_type, int rel_data)
93{ 124{
94 input_report_rel(get_input_dev((struct wacom_combo *)wcombo), rel_type, rel_data); 125 input_report_rel(get_input_dev((struct wacom_combo *)wcombo), rel_type, rel_data);
95 return;
96} 126}
97 127
98void wacom_input_event(void *wcombo, unsigned int type, unsigned int code, int value) 128void wacom_input_event(void *wcombo, unsigned int type, unsigned int code, int value)
99{ 129{
100 input_event(get_input_dev((struct wacom_combo *)wcombo), type, code, value); 130 input_event(get_input_dev((struct wacom_combo *)wcombo), type, code, value);
101 return;
102} 131}
103 132
104__u16 wacom_be16_to_cpu(unsigned char *data) 133__u16 wacom_be16_to_cpu(unsigned char *data)
@@ -118,7 +147,6 @@ __u16 wacom_le16_to_cpu(unsigned char *data)
118void wacom_input_sync(void *wcombo) 147void wacom_input_sync(void *wcombo)
119{ 148{
120 input_sync(get_input_dev((struct wacom_combo *)wcombo)); 149 input_sync(get_input_dev((struct wacom_combo *)wcombo));
121 return;
122} 150}
123 151
124static int wacom_open(struct input_dev *dev) 152static int wacom_open(struct input_dev *dev)
@@ -160,7 +188,7 @@ static void wacom_close(struct input_dev *dev)
160 188
161void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 189void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
162{ 190{
163 input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_1) | 191 input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_1) |
164 BIT_MASK(BTN_5); 192 BIT_MASK(BTN_5);
165 input_set_abs_params(input_dev, ABS_WHEEL, 0, 71, 0, 0); 193 input_set_abs_params(input_dev, ABS_WHEEL, 0, 71, 0, 0);
166} 194}
@@ -170,7 +198,7 @@ void input_dev_g4(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
170 input_dev->evbit[0] |= BIT_MASK(EV_MSC); 198 input_dev->evbit[0] |= BIT_MASK(EV_MSC);
171 input_dev->mscbit[0] |= BIT_MASK(MSC_SERIAL); 199 input_dev->mscbit[0] |= BIT_MASK(MSC_SERIAL);
172 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_FINGER); 200 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_FINGER);
173 input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_0) | 201 input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_0) |
174 BIT_MASK(BTN_4); 202 BIT_MASK(BTN_4);
175} 203}
176 204
@@ -178,7 +206,7 @@ void input_dev_g(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
178{ 206{
179 input_dev->evbit[0] |= BIT_MASK(EV_REL); 207 input_dev->evbit[0] |= BIT_MASK(EV_REL);
180 input_dev->relbit[0] |= BIT_MASK(REL_WHEEL); 208 input_dev->relbit[0] |= BIT_MASK(REL_WHEEL);
181 input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_LEFT) | 209 input_dev->keybit[BIT_WORD(BTN_MOUSE)] |= BIT_MASK(BTN_LEFT) |
182 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE); 210 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE);
183 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER) | 211 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER) |
184 BIT_MASK(BTN_TOOL_MOUSE) | BIT_MASK(BTN_STYLUS2); 212 BIT_MASK(BTN_TOOL_MOUSE) | BIT_MASK(BTN_STYLUS2);
@@ -188,7 +216,7 @@ void input_dev_g(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
188void input_dev_i3s(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 216void input_dev_i3s(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
189{ 217{
190 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_FINGER); 218 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_FINGER);
191 input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_0) | 219 input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_0) |
192 BIT_MASK(BTN_1) | BIT_MASK(BTN_2) | BIT_MASK(BTN_3); 220 BIT_MASK(BTN_1) | BIT_MASK(BTN_2) | BIT_MASK(BTN_3);
193 input_set_abs_params(input_dev, ABS_RX, 0, 4096, 0, 0); 221 input_set_abs_params(input_dev, ABS_RX, 0, 4096, 0, 0);
194 input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); 222 input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0);
@@ -196,14 +224,14 @@ void input_dev_i3s(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
196 224
197void input_dev_i3(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 225void input_dev_i3(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
198{ 226{
199 input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_4) | 227 input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_4) |
200 BIT_MASK(BTN_5) | BIT_MASK(BTN_6) | BIT_MASK(BTN_7); 228 BIT_MASK(BTN_5) | BIT_MASK(BTN_6) | BIT_MASK(BTN_7);
201 input_set_abs_params(input_dev, ABS_RY, 0, 4096, 0, 0); 229 input_set_abs_params(input_dev, ABS_RY, 0, 4096, 0, 0);
202} 230}
203 231
204void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 232void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
205{ 233{
206 input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_8) | BIT_MASK(BTN_9); 234 input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_8) | BIT_MASK(BTN_9);
207} 235}
208 236
209void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 237void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
@@ -211,7 +239,7 @@ void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
211 input_dev->evbit[0] |= BIT_MASK(EV_MSC) | BIT_MASK(EV_REL); 239 input_dev->evbit[0] |= BIT_MASK(EV_MSC) | BIT_MASK(EV_REL);
212 input_dev->mscbit[0] |= BIT_MASK(MSC_SERIAL); 240 input_dev->mscbit[0] |= BIT_MASK(MSC_SERIAL);
213 input_dev->relbit[0] |= BIT_MASK(REL_WHEEL); 241 input_dev->relbit[0] |= BIT_MASK(REL_WHEEL);
214 input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_LEFT) | 242 input_dev->keybit[BIT_WORD(BTN_MOUSE)] |= BIT_MASK(BTN_LEFT) |
215 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE) | 243 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE) |
216 BIT_MASK(BTN_SIDE) | BIT_MASK(BTN_EXTRA); 244 BIT_MASK(BTN_SIDE) | BIT_MASK(BTN_EXTRA);
217 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER) | 245 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER) |
@@ -228,8 +256,7 @@ void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
228 256
229void input_dev_pl(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 257void input_dev_pl(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
230{ 258{
231 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_STYLUS2) | 259 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_STYLUS2);
232 BIT_MASK(BTN_TOOL_RUBBER);
233} 260}
234 261
235void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 262void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
@@ -237,15 +264,129 @@ void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac)
237 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER); 264 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER);
238} 265}
239 266
267static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hid_desc,
268 struct wacom_wac *wacom_wac)
269{
270 struct usb_device *dev = interface_to_usbdev(intf);
271 struct wacom_features *features = wacom_wac->features;
272 char limit = 0, result = 0;
273 int i = 0, usage = WCM_UNDEFINED, finger = 0, pen = 0;
274 unsigned char *report;
275
276 report = kzalloc(hid_desc->wDescriptorLength, GFP_KERNEL);
277 if (!report)
278 return -ENOMEM;
279
280 /* retrive report descriptors */
281 do {
282 result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
283 USB_REQ_GET_DESCRIPTOR,
284 USB_RECIP_INTERFACE | USB_DIR_IN,
285 HID_DEVICET_REPORT << 8,
286 intf->altsetting[0].desc.bInterfaceNumber, /* interface */
287 report,
288 hid_desc->wDescriptorLength,
289 5000); /* 5 secs */
290 } while (result < 0 && limit++ < 5);
291
292 if (result < 0)
293 goto out;
294
295 for (i = 0; i < hid_desc->wDescriptorLength; i++) {
296
297 switch (report[i]) {
298 case HID_USAGE_PAGE:
299 switch (report[i + 1]) {
300 case HID_USAGE_PAGE_DIGITIZER:
301 usage = WCM_DIGITIZER;
302 i++;
303 break;
304
305 case HID_USAGE_PAGE_DESKTOP:
306 usage = WCM_DESKTOP;
307 i++;
308 break;
309 }
310 break;
311
312 case HID_USAGE:
313 switch (report[i + 1]) {
314 case HID_USAGE_X:
315 if (usage == WCM_DESKTOP) {
316 if (finger) {
317 features->touch_x_max =
318 features->touch_y_max =
319 wacom_le16_to_cpu(&report[i + 3]);
320 features->x_max =
321 wacom_le16_to_cpu(&report[i + 6]);
322 i += 7;
323 } else if (pen) {
324 features->x_max =
325 wacom_le16_to_cpu(&report[i + 3]);
326 i += 4;
327 }
328 } else if (usage == WCM_DIGITIZER) {
329 /* max pressure isn't reported
330 features->pressure_max = (unsigned short)
331 (report[i+4] << 8 | report[i + 3]);
332 */
333 features->pressure_max = 255;
334 i += 4;
335 }
336 break;
337
338 case HID_USAGE_Y:
339 if (usage == WCM_DESKTOP)
340 features->y_max =
341 wacom_le16_to_cpu(&report[i + 3]);
342 i += 4;
343 break;
344
345 case HID_USAGE_FINGER:
346 finger = 1;
347 i++;
348 break;
349
350 case HID_USAGE_STYLUS:
351 pen = 1;
352 i++;
353 break;
354
355 case HID_USAGE_UNDEFINED:
356 if (usage == WCM_DESKTOP && finger) /* capacity */
357 features->pressure_max =
358 wacom_le16_to_cpu(&report[i + 3]);
359 i += 4;
360 break;
361 }
362 break;
363
364 case HID_COLLECTION:
365 /* reset UsagePage ans Finger */
366 finger = usage = 0;
367 break;
368 }
369 }
370
371 result = 0;
372
373 out:
374 kfree(report);
375 return result;
376}
377
240static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *id) 378static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *id)
241{ 379{
242 struct usb_device *dev = interface_to_usbdev(intf); 380 struct usb_device *dev = interface_to_usbdev(intf);
381 struct usb_host_interface *interface = intf->cur_altsetting;
243 struct usb_endpoint_descriptor *endpoint; 382 struct usb_endpoint_descriptor *endpoint;
244 struct wacom *wacom; 383 struct wacom *wacom;
245 struct wacom_wac *wacom_wac; 384 struct wacom_wac *wacom_wac;
385 struct wacom_features *features;
246 struct input_dev *input_dev; 386 struct input_dev *input_dev;
247 int error = -ENOMEM; 387 int error = -ENOMEM;
248 char rep_data[2], limit = 0; 388 char rep_data[2], limit = 0;
389 struct hid_descriptor *hid_desc;
249 390
250 wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL); 391 wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL);
251 wacom_wac = kzalloc(sizeof(struct wacom_wac), GFP_KERNEL); 392 wacom_wac = kzalloc(sizeof(struct wacom_wac), GFP_KERNEL);
@@ -268,8 +409,8 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
268 usb_make_path(dev, wacom->phys, sizeof(wacom->phys)); 409 usb_make_path(dev, wacom->phys, sizeof(wacom->phys));
269 strlcat(wacom->phys, "/input0", sizeof(wacom->phys)); 410 strlcat(wacom->phys, "/input0", sizeof(wacom->phys));
270 411
271 wacom_wac->features = get_wacom_feature(id); 412 wacom_wac->features = features = get_wacom_feature(id);
272 BUG_ON(wacom_wac->features->pktlen > 10); 413 BUG_ON(features->pktlen > 10);
273 414
274 input_dev->name = wacom_wac->features->name; 415 input_dev->name = wacom_wac->features->name;
275 wacom->wacom_wac = wacom_wac; 416 wacom->wacom_wac = wacom_wac;
@@ -282,18 +423,37 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
282 input_dev->open = wacom_open; 423 input_dev->open = wacom_open;
283 input_dev->close = wacom_close; 424 input_dev->close = wacom_close;
284 425
426 endpoint = &intf->cur_altsetting->endpoint[0].desc;
427
428 /* TabletPC need to retrieve the physical and logical maximum from report descriptor */
429 if (wacom_wac->features->type == TABLETPC) {
430 if (usb_get_extra_descriptor(interface, HID_DEVICET_HID, &hid_desc)) {
431 if (usb_get_extra_descriptor(&interface->endpoint[0],
432 HID_DEVICET_REPORT, &hid_desc)) {
433 printk("wacom: can not retrive extra class descriptor\n");
434 goto fail2;
435 }
436 }
437 error = wacom_parse_hid(intf, hid_desc, wacom_wac);
438 if (error)
439 goto fail2;
440 }
441
285 input_dev->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); 442 input_dev->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
286 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_PEN) | 443 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_PEN) |
287 BIT_MASK(BTN_TOUCH) | BIT_MASK(BTN_STYLUS); 444 BIT_MASK(BTN_TOUCH) | BIT_MASK(BTN_STYLUS);
288 input_set_abs_params(input_dev, ABS_X, 0, wacom_wac->features->x_max, 4, 0); 445 input_set_abs_params(input_dev, ABS_X, 0, features->x_max, 4, 0);
289 input_set_abs_params(input_dev, ABS_Y, 0, wacom_wac->features->y_max, 4, 0); 446 input_set_abs_params(input_dev, ABS_Y, 0, features->y_max, 4, 0);
290 input_set_abs_params(input_dev, ABS_PRESSURE, 0, wacom_wac->features->pressure_max, 0, 0); 447 input_set_abs_params(input_dev, ABS_PRESSURE, 0, features->pressure_max, 0, 0);
448 if (features->type == TABLETPC) {
449 input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_DOUBLETAP);
450 input_set_abs_params(input_dev, ABS_RX, 0, features->touch_x_max, 4, 0);
451 input_set_abs_params(input_dev, ABS_RY, 0, features->touch_y_max, 4, 0);
452 }
291 input_dev->absbit[BIT_WORD(ABS_MISC)] |= BIT_MASK(ABS_MISC); 453 input_dev->absbit[BIT_WORD(ABS_MISC)] |= BIT_MASK(ABS_MISC);
292 454
293 wacom_init_input_dev(input_dev, wacom_wac); 455 wacom_init_input_dev(input_dev, wacom_wac);
294 456
295 endpoint = &intf->cur_altsetting->endpoint[0].desc;
296
297 usb_fill_int_urb(wacom->irq, dev, 457 usb_fill_int_urb(wacom->irq, dev,
298 usb_rcvintpipe(dev, endpoint->bEndpointAddress), 458 usb_rcvintpipe(dev, endpoint->bEndpointAddress),
299 wacom_wac->data, wacom_wac->features->pktlen, 459 wacom_wac->data, wacom_wac->features->pktlen,
@@ -305,13 +465,22 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
305 if (error) 465 if (error)
306 goto fail3; 466 goto fail3;
307 467
308 /* Ask the tablet to report tablet data. Repeat until it succeeds */ 468 /*
309 do { 469 * Ask the tablet to report tablet data if it is not a Tablet PC.
310 rep_data[0] = 2; 470 * Repeat until it succeeds
311 rep_data[1] = 2; 471 */
312 usb_set_report(intf, 3, 2, rep_data, 2); 472 if (wacom_wac->features->type != TABLETPC) {
313 usb_get_report(intf, 3, 2, rep_data, 2); 473 do {
314 } while (rep_data[1] != 2 && limit++ < 5); 474 rep_data[0] = 2;
475 rep_data[1] = 2;
476 error = usb_set_report(intf, WAC_HID_FEATURE_REPORT,
477 2, rep_data, 2);
478 if (error >= 0)
479 error = usb_get_report(intf,
480 WAC_HID_FEATURE_REPORT, 2,
481 rep_data, 2);
482 } while ((error < 0 || rep_data[1] != 2) && limit++ < 5);
483 }
315 484
316 usb_set_intfdata(intf, wacom); 485 usb_set_intfdata(intf, wacom);
317 return 0; 486 return 0;
@@ -333,7 +502,8 @@ static void wacom_disconnect(struct usb_interface *intf)
333 usb_kill_urb(wacom->irq); 502 usb_kill_urb(wacom->irq);
334 input_unregister_device(wacom->dev); 503 input_unregister_device(wacom->dev);
335 usb_free_urb(wacom->irq); 504 usb_free_urb(wacom->irq);
336 usb_buffer_free(interface_to_usbdev(intf), 10, wacom->wacom_wac->data, wacom->data_dma); 505 usb_buffer_free(interface_to_usbdev(intf), 10,
506 wacom->wacom_wac->data, wacom->data_dma);
337 kfree(wacom->wacom_wac); 507 kfree(wacom->wacom_wac);
338 kfree(wacom); 508 kfree(wacom);
339} 509}
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index bf3d9a8b2c1b..8dc8d1e59bea 100644
--- a/drivers/input/tablet/wacom_wac.c
+++ b/drivers/input/tablet/wacom_wac.c
@@ -535,31 +535,147 @@ static int wacom_intuos_irq(struct wacom_wac *wacom, void *wcombo)
535 return 1; 535 return 1;
536} 536}
537 537
538int wacom_tpc_irq(struct wacom_wac *wacom, void *wcombo)
539{
540 char *data = wacom->data;
541 int prox = 0, pressure;
542 static int stylusInProx, touchInProx = 1, touchOut;
543 struct urb *urb = ((struct wacom_combo *)wcombo)->urb;
544
545 dbg("wacom_tpc_irq: received report #%d", data[0]);
546
547 if (urb->actual_length == 5 || data[0] == 6) { /* Touch data */
548 if (urb->actual_length == 5) { /* with touch */
549 prox = data[0] & 0x03;
550 } else { /* with capacity */
551 prox = data[1] & 0x03;
552 }
553
554 if (!stylusInProx) { /* stylus not in prox */
555 if (prox) {
556 if (touchInProx) {
557 wacom->tool[1] = BTN_TOOL_DOUBLETAP;
558 wacom->id[0] = TOUCH_DEVICE_ID;
559 if (urb->actual_length != 5) {
560 wacom_report_abs(wcombo, ABS_X, wacom_le16_to_cpu(&data[2]));
561 wacom_report_abs(wcombo, ABS_Y, wacom_le16_to_cpu(&data[4]));
562 wacom_report_abs(wcombo, ABS_PRESSURE, wacom_le16_to_cpu(&data[6]));
563 wacom_report_key(wcombo, BTN_TOUCH, wacom_le16_to_cpu(&data[6]));
564 } else {
565 wacom_report_abs(wcombo, ABS_X, wacom_le16_to_cpu(&data[1]));
566 wacom_report_abs(wcombo, ABS_Y, wacom_le16_to_cpu(&data[3]));
567 wacom_report_key(wcombo, BTN_TOUCH, 1);
568 }
569 wacom_report_abs(wcombo, ABS_MISC, wacom->id[0]);
570 wacom_report_key(wcombo, wacom->tool[1], prox & 0x01);
571 touchOut = 1;
572 return 1;
573 }
574 } else {
575 wacom_report_abs(wcombo, ABS_MISC, wacom->id[0]);
576 wacom_report_key(wcombo, wacom->tool[1], prox & 0x01);
577 wacom_report_key(wcombo, BTN_TOUCH, 0);
578 touchOut = 0;
579 touchInProx = 1;
580 return 1;
581 }
582 } else if (touchOut || !prox) { /* force touch out-prox */
583 wacom_report_abs(wcombo, ABS_MISC, TOUCH_DEVICE_ID);
584 wacom_report_key(wcombo, BTN_TOUCH, 0);
585 touchOut = 0;
586 touchInProx = 1;
587 return 1;
588 }
589 } else if (data[0] == 2) { /* Penabled */
590 prox = data[1] & 0x20;
591
592 touchInProx = 0;
593
594 wacom->id[0] = ERASER_DEVICE_ID;
595
596 /*
597 * if going from out of proximity into proximity select between the eraser
598 * and the pen based on the state of the stylus2 button, choose eraser if
599 * pressed else choose pen. if not a proximity change from out to in, send
600 * an out of proximity for previous tool then a in for new tool.
601 */
602 if (prox) { /* in prox */
603 if (!wacom->tool[0]) {
604 /* Going into proximity select tool */
605 wacom->tool[1] = (data[1] & 0x08) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN;
606 if (wacom->tool[1] == BTN_TOOL_PEN)
607 wacom->id[0] = STYLUS_DEVICE_ID;
608 } else if (wacom->tool[1] == BTN_TOOL_RUBBER && !(data[1] & 0x08)) {
609 /*
610 * was entered with stylus2 pressed
611 * report out proximity for previous tool
612 */
613 wacom_report_abs(wcombo, ABS_MISC, wacom->id[0]);
614 wacom_report_key(wcombo, wacom->tool[1], 0);
615 wacom_input_sync(wcombo);
616
617 /* set new tool */
618 wacom->tool[1] = BTN_TOOL_PEN;
619 wacom->id[0] = STYLUS_DEVICE_ID;
620 return 0;
621 }
622 if (wacom->tool[1] != BTN_TOOL_RUBBER) {
623 /* Unknown tool selected default to pen tool */
624 wacom->tool[1] = BTN_TOOL_PEN;
625 wacom->id[0] = STYLUS_DEVICE_ID;
626 }
627 wacom_report_key(wcombo, BTN_STYLUS, data[1] & 0x02);
628 wacom_report_key(wcombo, BTN_STYLUS2, data[1] & 0x10);
629 wacom_report_abs(wcombo, ABS_X, wacom_le16_to_cpu(&data[2]));
630 wacom_report_abs(wcombo, ABS_Y, wacom_le16_to_cpu(&data[4]));
631 pressure = ((data[7] & 0x01) << 8) | data[6];
632 if (pressure < 0)
633 pressure = wacom->features->pressure_max + pressure + 1;
634 wacom_report_abs(wcombo, ABS_PRESSURE, pressure);
635 wacom_report_key(wcombo, BTN_TOUCH, pressure);
636 } else {
637 wacom_report_abs(wcombo, ABS_PRESSURE, 0);
638 wacom_report_key(wcombo, BTN_STYLUS, 0);
639 wacom_report_key(wcombo, BTN_STYLUS2, 0);
640 wacom_report_key(wcombo, BTN_TOUCH, 0);
641 }
642 wacom_report_key(wcombo, wacom->tool[1], prox);
643 wacom_report_abs(wcombo, ABS_MISC, wacom->id[0]);
644 stylusInProx = prox;
645 wacom->tool[0] = prox;
646 return 1;
647 }
648 return 0;
649}
650
538int wacom_wac_irq(struct wacom_wac *wacom_wac, void *wcombo) 651int wacom_wac_irq(struct wacom_wac *wacom_wac, void *wcombo)
539{ 652{
540 switch (wacom_wac->features->type) { 653 switch (wacom_wac->features->type) {
541 case PENPARTNER: 654 case PENPARTNER:
542 return (wacom_penpartner_irq(wacom_wac, wcombo)); 655 return wacom_penpartner_irq(wacom_wac, wcombo);
543 break; 656
544 case PL: 657 case PL:
545 return (wacom_pl_irq(wacom_wac, wcombo)); 658 return wacom_pl_irq(wacom_wac, wcombo);
546 break; 659
547 case WACOM_G4: 660 case WACOM_G4:
548 case GRAPHIRE: 661 case GRAPHIRE:
549 case WACOM_MO: 662 case WACOM_MO:
550 return (wacom_graphire_irq(wacom_wac, wcombo)); 663 return wacom_graphire_irq(wacom_wac, wcombo);
551 break; 664
552 case PTU: 665 case PTU:
553 return (wacom_ptu_irq(wacom_wac, wcombo)); 666 return wacom_ptu_irq(wacom_wac, wcombo);
554 break; 667
555 case INTUOS: 668 case INTUOS:
556 case INTUOS3S: 669 case INTUOS3S:
557 case INTUOS3: 670 case INTUOS3:
558 case INTUOS3L: 671 case INTUOS3L:
559 case CINTIQ: 672 case CINTIQ:
560 case WACOM_BEE: 673 case WACOM_BEE:
561 return (wacom_intuos_irq(wacom_wac, wcombo)); 674 return wacom_intuos_irq(wacom_wac, wcombo);
562 break; 675
676 case TABLETPC:
677 return wacom_tpc_irq(wacom_wac, wcombo);
678
563 default: 679 default:
564 return 0; 680 return 0;
565 } 681 }
@@ -586,13 +702,15 @@ void wacom_init_input_dev(struct input_dev *input_dev, struct wacom_wac *wacom_w
586 /* fall through */ 702 /* fall through */
587 case INTUOS3S: 703 case INTUOS3S:
588 input_dev_i3s(input_dev, wacom_wac); 704 input_dev_i3s(input_dev, wacom_wac);
705 /* fall through */
589 case INTUOS: 706 case INTUOS:
590 input_dev_i(input_dev, wacom_wac); 707 input_dev_i(input_dev, wacom_wac);
591 break; 708 break;
592 case PL: 709 case PL:
593 case PTU: 710 case PTU:
711 case TABLETPC:
594 input_dev_pl(input_dev, wacom_wac); 712 input_dev_pl(input_dev, wacom_wac);
595 break; 713 /* fall through */
596 case PENPARTNER: 714 case PENPARTNER:
597 input_dev_pt(input_dev, wacom_wac); 715 input_dev_pt(input_dev, wacom_wac);
598 break; 716 break;
@@ -611,6 +729,7 @@ static struct wacom_features wacom_features[] = {
611 { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 63, WACOM_G4 }, 729 { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 63, WACOM_G4 },
612 { "Wacom BambooFun 4x5", 9, 14760, 9225, 511, 63, WACOM_MO }, 730 { "Wacom BambooFun 4x5", 9, 14760, 9225, 511, 63, WACOM_MO },
613 { "Wacom BambooFun 6x8", 9, 21648, 13530, 511, 63, WACOM_MO }, 731 { "Wacom BambooFun 6x8", 9, 21648, 13530, 511, 63, WACOM_MO },
732 { "Wacom Bamboo1 Medium",8, 16704, 12064, 511, 63, GRAPHIRE },
614 { "Wacom Volito", 8, 5104, 3712, 511, 63, GRAPHIRE }, 733 { "Wacom Volito", 8, 5104, 3712, 511, 63, GRAPHIRE },
615 { "Wacom PenStation2", 8, 3250, 2320, 255, 63, GRAPHIRE }, 734 { "Wacom PenStation2", 8, 3250, 2320, 255, 63, GRAPHIRE },
616 { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 63, GRAPHIRE }, 735 { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 63, GRAPHIRE },
@@ -650,6 +769,10 @@ static struct wacom_features wacom_features[] = {
650 { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63, CINTIQ }, 769 { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63, CINTIQ },
651 { "Wacom Cintiq 20WSX", 10, 86680, 54180, 1023, 63, WACOM_BEE }, 770 { "Wacom Cintiq 20WSX", 10, 86680, 54180, 1023, 63, WACOM_BEE },
652 { "Wacom Cintiq 12WX", 10, 53020, 33440, 1023, 63, WACOM_BEE }, 771 { "Wacom Cintiq 12WX", 10, 53020, 33440, 1023, 63, WACOM_BEE },
772 { "Wacom DTU1931", 8, 37832, 30305, 511, 0, PL },
773 { "Wacom ISDv4 90", 8, 26202, 16325, 255, 0, TABLETPC },
774 { "Wacom ISDv4 93", 8, 26202, 16325, 255, 0, TABLETPC },
775 { "Wacom ISDv4 9A", 8, 26202, 16325, 255, 0, TABLETPC },
653 { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS }, 776 { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS },
654 { } 777 { }
655}; 778};
@@ -665,6 +788,7 @@ static struct usb_device_id wacom_ids[] = {
665 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x16) }, 788 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x16) },
666 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x17) }, 789 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x17) },
667 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x18) }, 790 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x18) },
791 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x19) },
668 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) }, 792 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) },
669 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x61) }, 793 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x61) },
670 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) }, 794 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) },
@@ -704,18 +828,26 @@ static struct usb_device_id wacom_ids[] = {
704 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) }, 828 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) },
705 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC5) }, 829 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC5) },
706 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC6) }, 830 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC6) },
831 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC7) },
832 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x90) },
833 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x93) },
834 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x9A) },
707 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, 835 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) },
708 { } 836 { }
709}; 837};
710 838
711const struct usb_device_id * get_device_table(void) { 839const struct usb_device_id *get_device_table(void)
712 const struct usb_device_id * id_table = wacom_ids; 840{
841 const struct usb_device_id *id_table = wacom_ids;
842
713 return id_table; 843 return id_table;
714} 844}
715 845
716struct wacom_features * get_wacom_feature(const struct usb_device_id * id) { 846struct wacom_features * get_wacom_feature(const struct usb_device_id *id)
847{
717 int index = id - wacom_ids; 848 int index = id - wacom_ids;
718 struct wacom_features *wf = &wacom_features[index]; 849 struct wacom_features *wf = &wacom_features[index];
850
719 return wf; 851 return wf;
720} 852}
721 853
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
index 3342bc05847d..f9c8b69673b7 100644
--- a/drivers/input/tablet/wacom_wac.h
+++ b/drivers/input/tablet/wacom_wac.h
@@ -10,6 +10,7 @@
10#define WACOM_WAC_H 10#define WACOM_WAC_H
11 11
12#define STYLUS_DEVICE_ID 0x02 12#define STYLUS_DEVICE_ID 0x02
13#define TOUCH_DEVICE_ID 0x03
13#define CURSOR_DEVICE_ID 0x06 14#define CURSOR_DEVICE_ID 0x06
14#define ERASER_DEVICE_ID 0x0A 15#define ERASER_DEVICE_ID 0x0A
15#define PAD_DEVICE_ID 0x0F 16#define PAD_DEVICE_ID 0x0F
@@ -27,6 +28,7 @@ enum {
27 CINTIQ, 28 CINTIQ,
28 WACOM_BEE, 29 WACOM_BEE,
29 WACOM_MO, 30 WACOM_MO,
31 TABLETPC,
30 MAX_TYPE 32 MAX_TYPE
31}; 33};
32 34
@@ -38,6 +40,8 @@ struct wacom_features {
38 int pressure_max; 40 int pressure_max;
39 int distance_max; 41 int distance_max;
40 int type; 42 int type;
43 int touch_x_max;
44 int touch_y_max;
41}; 45};
42 46
43struct wacom_wac { 47struct wacom_wac {
diff --git a/drivers/input/touchscreen/elo.c b/drivers/input/touchscreen/elo.c
index d20689cdbd5d..8f38c5e55ce6 100644
--- a/drivers/input/touchscreen/elo.c
+++ b/drivers/input/touchscreen/elo.c
@@ -262,7 +262,7 @@ static int elo_setup_10(struct elo *elo)
262 input_set_abs_params(dev, ABS_PRESSURE, 0, 255, 0, 0); 262 input_set_abs_params(dev, ABS_PRESSURE, 0, 255, 0, 0);
263 263
264 printk(KERN_INFO "elo: %sTouch touchscreen, fw: %02x.%02x, " 264 printk(KERN_INFO "elo: %sTouch touchscreen, fw: %02x.%02x, "
265 "features: %x02x, controller: 0x%02x\n", 265 "features: 0x%02x, controller: 0x%02x\n",
266 elo_types[(packet[1] -'0') & 0x03], 266 elo_types[(packet[1] -'0') & 0x03],
267 packet[5], packet[4], packet[3], packet[7]); 267 packet[5], packet[4], packet[3], packet[7]);
268 268
diff --git a/drivers/input/xen-kbdfront.c b/drivers/input/xen-kbdfront.c
index 3ab6362f043c..928d2ed8865f 100644
--- a/drivers/input/xen-kbdfront.c
+++ b/drivers/input/xen-kbdfront.c
@@ -323,7 +323,7 @@ static struct xenbus_device_id xenkbd_ids[] = {
323 { "" } 323 { "" }
324}; 324};
325 325
326static struct xenbus_driver xenkbd = { 326static struct xenbus_driver xenkbd_driver = {
327 .name = "vkbd", 327 .name = "vkbd",
328 .owner = THIS_MODULE, 328 .owner = THIS_MODULE,
329 .ids = xenkbd_ids, 329 .ids = xenkbd_ids,
@@ -342,12 +342,12 @@ static int __init xenkbd_init(void)
342 if (xen_initial_domain()) 342 if (xen_initial_domain())
343 return -ENODEV; 343 return -ENODEV;
344 344
345 return xenbus_register_frontend(&xenkbd); 345 return xenbus_register_frontend(&xenkbd_driver);
346} 346}
347 347
348static void __exit xenkbd_cleanup(void) 348static void __exit xenkbd_cleanup(void)
349{ 349{
350 xenbus_unregister_driver(&xenkbd); 350 xenbus_unregister_driver(&xenkbd_driver);
351} 351}
352 352
353module_init(xenkbd_init); 353module_init(xenkbd_init);
diff --git a/drivers/isdn/hardware/avm/b1isa.c b/drivers/isdn/hardware/avm/b1isa.c
index 1e288eeb5e2a..6461a32bc838 100644
--- a/drivers/isdn/hardware/avm/b1isa.c
+++ b/drivers/isdn/hardware/avm/b1isa.c
@@ -233,10 +233,8 @@ static void __exit b1isa_exit(void)
233 int i; 233 int i;
234 234
235 for (i = 0; i < MAX_CARDS; i++) { 235 for (i = 0; i < MAX_CARDS; i++) {
236 if (!io[i]) 236 if (isa_dev[i].resource[0].start)
237 break; 237 b1isa_remove(&isa_dev[i]);
238
239 b1isa_remove(&isa_dev[i]);
240 } 238 }
241 unregister_capi_driver(&capi_driver_b1isa); 239 unregister_capi_driver(&capi_driver_b1isa);
242} 240}
diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c
index 84d75a3f5d17..ded9d0baf607 100644
--- a/drivers/isdn/hisax/config.c
+++ b/drivers/isdn/hisax/config.c
@@ -1213,7 +1213,7 @@ static void HiSax_shiftcards(int idx)
1213 memcpy(&cards[i], &cards[i + 1], sizeof(cards[i])); 1213 memcpy(&cards[i], &cards[i + 1], sizeof(cards[i]));
1214} 1214}
1215 1215
1216static int HiSax_inithardware(int *busy_flag) 1216static int __init HiSax_inithardware(int *busy_flag)
1217{ 1217{
1218 int foundcards = 0; 1218 int foundcards = 0;
1219 int i = 0; 1219 int i = 0;
@@ -1542,7 +1542,9 @@ static void __exit HiSax_exit(void)
1542 printk(KERN_INFO "HiSax module removed\n"); 1542 printk(KERN_INFO "HiSax module removed\n");
1543} 1543}
1544 1544
1545int hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card) 1545#ifdef CONFIG_HOTPLUG
1546
1547int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card)
1546{ 1548{
1547 u_char ids[16]; 1549 u_char ids[16];
1548 int ret = -1; 1550 int ret = -1;
@@ -1563,6 +1565,8 @@ error:
1563} 1565}
1564 1566
1565EXPORT_SYMBOL(hisax_init_pcmcia); 1567EXPORT_SYMBOL(hisax_init_pcmcia);
1568#endif
1569
1566EXPORT_SYMBOL(HiSax_closecard); 1570EXPORT_SYMBOL(HiSax_closecard);
1567 1571
1568#include "hisax_if.h" 1572#include "hisax_if.h"
@@ -1580,6 +1584,11 @@ static void hisax_bc_close(struct BCState *bcs);
1580static void hisax_bh(struct work_struct *work); 1584static void hisax_bh(struct work_struct *work);
1581static void EChannel_proc_rcv(struct hisax_d_if *d_if); 1585static void EChannel_proc_rcv(struct hisax_d_if *d_if);
1582 1586
1587static int hisax_setup_card_dynamic(struct IsdnCard *card)
1588{
1589 return 2;
1590}
1591
1583int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[], 1592int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[],
1584 char *name, int protocol) 1593 char *name, int protocol)
1585{ 1594{
@@ -1599,7 +1608,8 @@ int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[],
1599 cards[i].protocol = protocol; 1608 cards[i].protocol = protocol;
1600 sprintf(id, "%s%d", name, i); 1609 sprintf(id, "%s%d", name, i);
1601 nrcards++; 1610 nrcards++;
1602 retval = checkcard(i, id, NULL, hisax_d_if->owner, hisax_cs_setup_card); 1611 retval = checkcard(i, id, NULL, hisax_d_if->owner,
1612 hisax_setup_card_dynamic);
1603 if (retval == 0) { // yuck 1613 if (retval == 0) { // yuck
1604 cards[i].typ = 0; 1614 cards[i].typ = 0;
1605 nrcards--; 1615 nrcards--;
diff --git a/drivers/isdn/hysdn/hysdn_net.c b/drivers/isdn/hysdn/hysdn_net.c
index cfa8fa5e44ab..3f2a0a20c19b 100644
--- a/drivers/isdn/hysdn/hysdn_net.c
+++ b/drivers/isdn/hysdn/hysdn_net.c
@@ -83,12 +83,12 @@ net_open(struct net_device *dev)
83 83
84 /* Fill in the MAC-level header (if not already set) */ 84 /* Fill in the MAC-level header (if not already set) */
85 if (!card->mac_addr[0]) { 85 if (!card->mac_addr[0]) {
86 for (i = 0; i < ETH_ALEN - sizeof(unsigned long); i++) 86 for (i = 0; i < ETH_ALEN; i++)
87 dev->dev_addr[i] = 0xfc; 87 dev->dev_addr[i] = 0xfc;
88 if ((in_dev = dev->ip_ptr) != NULL) { 88 if ((in_dev = dev->ip_ptr) != NULL) {
89 struct in_ifaddr *ifa = in_dev->ifa_list; 89 struct in_ifaddr *ifa = in_dev->ifa_list;
90 if (ifa != NULL) 90 if (ifa != NULL)
91 memcpy(dev->dev_addr + (ETH_ALEN - sizeof(unsigned long)), &ifa->ifa_local, sizeof(unsigned long)); 91 memcpy(dev->dev_addr + (ETH_ALEN - sizeof(ifa->ifa_local)), &ifa->ifa_local, sizeof(ifa->ifa_local));
92 } 92 }
93 } else 93 } else
94 memcpy(dev->dev_addr, card->mac_addr, ETH_ALEN); 94 memcpy(dev->dev_addr, card->mac_addr, ETH_ALEN);
diff --git a/drivers/macintosh/rack-meter.c b/drivers/macintosh/rack-meter.c
index 2c21d4f25cc8..a98ab72adf95 100644
--- a/drivers/macintosh/rack-meter.c
+++ b/drivers/macintosh/rack-meter.c
@@ -288,7 +288,7 @@ static void __devexit rackmeter_stop_cpu_sniffer(struct rackmeter *rm)
288 cancel_rearming_delayed_work(&rm->cpu[1].sniffer); 288 cancel_rearming_delayed_work(&rm->cpu[1].sniffer);
289} 289}
290 290
291static int rackmeter_setup(struct rackmeter *rm) 291static int __devinit rackmeter_setup(struct rackmeter *rm)
292{ 292{
293 pr_debug("rackmeter: setting up i2s..\n"); 293 pr_debug("rackmeter: setting up i2s..\n");
294 rackmeter_setup_i2s(rm); 294 rackmeter_setup_i2s(rm);
@@ -582,12 +582,12 @@ static struct of_device_id rackmeter_match[] = {
582 { } 582 { }
583}; 583};
584 584
585static struct macio_driver rackmeter_drv = { 585static struct macio_driver rackmeter_driver = {
586 .name = "rackmeter", 586 .name = "rackmeter",
587 .owner = THIS_MODULE, 587 .owner = THIS_MODULE,
588 .match_table = rackmeter_match, 588 .match_table = rackmeter_match,
589 .probe = rackmeter_probe, 589 .probe = rackmeter_probe,
590 .remove = rackmeter_remove, 590 .remove = __devexit_p(rackmeter_remove),
591 .shutdown = rackmeter_shutdown, 591 .shutdown = rackmeter_shutdown,
592}; 592};
593 593
@@ -596,14 +596,14 @@ static int __init rackmeter_init(void)
596{ 596{
597 pr_debug("rackmeter_init()\n"); 597 pr_debug("rackmeter_init()\n");
598 598
599 return macio_register_driver(&rackmeter_drv); 599 return macio_register_driver(&rackmeter_driver);
600} 600}
601 601
602static void __exit rackmeter_exit(void) 602static void __exit rackmeter_exit(void)
603{ 603{
604 pr_debug("rackmeter_exit()\n"); 604 pr_debug("rackmeter_exit()\n");
605 605
606 macio_unregister_driver(&rackmeter_drv); 606 macio_unregister_driver(&rackmeter_driver);
607} 607}
608 608
609module_init(rackmeter_init); 609module_init(rackmeter_init);
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index ac89a5deaca2..ab7c8e4a61f9 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -208,16 +208,19 @@ static void bitmap_checkfree(struct bitmap *bitmap, unsigned long page)
208 */ 208 */
209 209
210/* IO operations when bitmap is stored near all superblocks */ 210/* IO operations when bitmap is stored near all superblocks */
211static struct page *read_sb_page(mddev_t *mddev, long offset, unsigned long index) 211static struct page *read_sb_page(mddev_t *mddev, long offset,
212 struct page *page,
213 unsigned long index, int size)
212{ 214{
213 /* choose a good rdev and read the page from there */ 215 /* choose a good rdev and read the page from there */
214 216
215 mdk_rdev_t *rdev; 217 mdk_rdev_t *rdev;
216 struct list_head *tmp; 218 struct list_head *tmp;
217 struct page *page = alloc_page(GFP_KERNEL);
218 sector_t target; 219 sector_t target;
219 220
220 if (!page) 221 if (!page)
222 page = alloc_page(GFP_KERNEL);
223 if (!page)
221 return ERR_PTR(-ENOMEM); 224 return ERR_PTR(-ENOMEM);
222 225
223 rdev_for_each(rdev, tmp, mddev) { 226 rdev_for_each(rdev, tmp, mddev) {
@@ -227,7 +230,9 @@ static struct page *read_sb_page(mddev_t *mddev, long offset, unsigned long inde
227 230
228 target = rdev->sb_start + offset + index * (PAGE_SIZE/512); 231 target = rdev->sb_start + offset + index * (PAGE_SIZE/512);
229 232
230 if (sync_page_io(rdev->bdev, target, PAGE_SIZE, page, READ)) { 233 if (sync_page_io(rdev->bdev, target,
234 roundup(size, bdev_hardsect_size(rdev->bdev)),
235 page, READ)) {
231 page->index = index; 236 page->index = index;
232 attach_page_buffers(page, NULL); /* so that free_buffer will 237 attach_page_buffers(page, NULL); /* so that free_buffer will
233 * quietly no-op */ 238 * quietly no-op */
@@ -544,7 +549,9 @@ static int bitmap_read_sb(struct bitmap *bitmap)
544 549
545 bitmap->sb_page = read_page(bitmap->file, 0, bitmap, bytes); 550 bitmap->sb_page = read_page(bitmap->file, 0, bitmap, bytes);
546 } else { 551 } else {
547 bitmap->sb_page = read_sb_page(bitmap->mddev, bitmap->offset, 0); 552 bitmap->sb_page = read_sb_page(bitmap->mddev, bitmap->offset,
553 NULL,
554 0, sizeof(bitmap_super_t));
548 } 555 }
549 if (IS_ERR(bitmap->sb_page)) { 556 if (IS_ERR(bitmap->sb_page)) {
550 err = PTR_ERR(bitmap->sb_page); 557 err = PTR_ERR(bitmap->sb_page);
@@ -957,11 +964,16 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
957 */ 964 */
958 page = bitmap->sb_page; 965 page = bitmap->sb_page;
959 offset = sizeof(bitmap_super_t); 966 offset = sizeof(bitmap_super_t);
967 read_sb_page(bitmap->mddev, bitmap->offset,
968 page,
969 index, count);
960 } else if (file) { 970 } else if (file) {
961 page = read_page(file, index, bitmap, count); 971 page = read_page(file, index, bitmap, count);
962 offset = 0; 972 offset = 0;
963 } else { 973 } else {
964 page = read_sb_page(bitmap->mddev, bitmap->offset, index); 974 page = read_sb_page(bitmap->mddev, bitmap->offset,
975 NULL,
976 index, count);
965 offset = 0; 977 offset = 0;
966 } 978 }
967 if (IS_ERR(page)) { /* read error */ 979 if (IS_ERR(page)) { /* read error */
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index a63161aec487..04e5fd742c2c 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -668,7 +668,7 @@ static void check_for_valid_limits(struct io_restrictions *rs)
668 if (!rs->max_segment_size) 668 if (!rs->max_segment_size)
669 rs->max_segment_size = MAX_SEGMENT_SIZE; 669 rs->max_segment_size = MAX_SEGMENT_SIZE;
670 if (!rs->seg_boundary_mask) 670 if (!rs->seg_boundary_mask)
671 rs->seg_boundary_mask = -1; 671 rs->seg_boundary_mask = BLK_SEG_BOUNDARY_MASK;
672 if (!rs->bounce_pfn) 672 if (!rs->bounce_pfn)
673 rs->bounce_pfn = -1; 673 rs->bounce_pfn = -1;
674} 674}
diff --git a/drivers/media/dvb/b2c2/Kconfig b/drivers/media/dvb/b2c2/Kconfig
index 73dc2ee9b014..b34301d56cd2 100644
--- a/drivers/media/dvb/b2c2/Kconfig
+++ b/drivers/media/dvb/b2c2/Kconfig
@@ -9,11 +9,11 @@ config DVB_B2C2_FLEXCOP
9 select DVB_STV0297 if !DVB_FE_CUSTOMISE 9 select DVB_STV0297 if !DVB_FE_CUSTOMISE
10 select DVB_BCM3510 if !DVB_FE_CUSTOMISE 10 select DVB_BCM3510 if !DVB_FE_CUSTOMISE
11 select DVB_LGDT330X if !DVB_FE_CUSTOMISE 11 select DVB_LGDT330X if !DVB_FE_CUSTOMISE
12 select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
13 select DVB_S5H1420 if !DVB_FE_CUSTOMISE 12 select DVB_S5H1420 if !DVB_FE_CUSTOMISE
14 select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE 13 select DVB_TUNER_ITD1000 if !DVB_FE_CUSTOMISE
15 select DVB_ISL6421 if !DVB_FE_CUSTOMISE 14 select DVB_ISL6421 if !DVB_FE_CUSTOMISE
16 select DVB_CX24123 if !DVB_FE_CUSTOMISE 15 select DVB_CX24123 if !DVB_FE_CUSTOMISE
16 select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
17 help 17 help
18 Support for the digital TV receiver chip made by B2C2 Inc. included in 18 Support for the digital TV receiver chip made by B2C2 Inc. included in
19 Technisats PCI cards and USB boxes. 19 Technisats PCI cards and USB boxes.
diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
index a127a4175c40..5cded3708541 100644
--- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
+++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
@@ -628,12 +628,14 @@ int flexcop_frontend_init(struct flexcop_device *fc)
628 } 628 }
629 629
630 /* try the cable dvb (stv0297) */ 630 /* try the cable dvb (stv0297) */
631 fc->fc_i2c_adap[0].no_base_addr = 1;
631 fc->fe = dvb_attach(stv0297_attach, &alps_tdee4_stv0297_config, i2c); 632 fc->fe = dvb_attach(stv0297_attach, &alps_tdee4_stv0297_config, i2c);
632 if (fc->fe != NULL) { 633 if (fc->fe != NULL) {
633 fc->dev_type = FC_CABLE; 634 fc->dev_type = FC_CABLE;
634 fc->fe->ops.tuner_ops.set_params = alps_tdee4_stv0297_tuner_set_params; 635 fc->fe->ops.tuner_ops.set_params = alps_tdee4_stv0297_tuner_set_params;
635 goto fe_found; 636 goto fe_found;
636 } 637 }
638 fc->fc_i2c_adap[0].no_base_addr = 0;
637 639
638 /* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */ 640 /* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */
639 fc->fe = dvb_attach(mt312_attach, 641 fc->fe = dvb_attach(mt312_attach,
diff --git a/drivers/media/dvb/b2c2/flexcop-i2c.c b/drivers/media/dvb/b2c2/flexcop-i2c.c
index 43a112ec6d44..f13783f08f0f 100644
--- a/drivers/media/dvb/b2c2/flexcop-i2c.c
+++ b/drivers/media/dvb/b2c2/flexcop-i2c.c
@@ -47,9 +47,13 @@ static int flexcop_i2c_read4(struct flexcop_i2c_adapter *i2c,
47 int len = r100.tw_sm_c_100.total_bytes, /* remember total_bytes is buflen-1 */ 47 int len = r100.tw_sm_c_100.total_bytes, /* remember total_bytes is buflen-1 */
48 ret; 48 ret;
49 49
50 r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr;
51 ret = flexcop_i2c_operation(i2c->fc, &r100); 50 ret = flexcop_i2c_operation(i2c->fc, &r100);
52 if (ret != 0) { 51 if (ret != 0) {
52 deb_i2c("Retrying operation\n");
53 r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr;
54 ret = flexcop_i2c_operation(i2c->fc, &r100);
55 }
56 if (ret != 0) {
53 deb_i2c("read failed. %d\n", ret); 57 deb_i2c("read failed. %d\n", ret);
54 return ret; 58 return ret;
55 } 59 }
diff --git a/drivers/media/dvb/bt8xx/Kconfig b/drivers/media/dvb/bt8xx/Kconfig
index 7e9c090fc04e..27edb0ece587 100644
--- a/drivers/media/dvb/bt8xx/Kconfig
+++ b/drivers/media/dvb/bt8xx/Kconfig
@@ -8,7 +8,7 @@ config DVB_BT8XX
8 select DVB_OR51211 if !DVB_FE_CUSTOMISE 8 select DVB_OR51211 if !DVB_FE_CUSTOMISE
9 select DVB_LGDT330X if !DVB_FE_CUSTOMISE 9 select DVB_LGDT330X if !DVB_FE_CUSTOMISE
10 select DVB_ZL10353 if !DVB_FE_CUSTOMISE 10 select DVB_ZL10353 if !DVB_FE_CUSTOMISE
11 select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE 11 select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
12 help 12 help
13 Support for PCI cards based on the Bt8xx PCI bridge. Examples are 13 Support for PCI cards based on the Bt8xx PCI bridge. Examples are
14 the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards, 14 the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards,
diff --git a/drivers/media/dvb/dm1105/dm1105.c b/drivers/media/dvb/dm1105/dm1105.c
index 14e627ef6465..c1d92f838ca8 100644
--- a/drivers/media/dvb/dm1105/dm1105.c
+++ b/drivers/media/dvb/dm1105/dm1105.c
@@ -376,7 +376,7 @@ static void dm1105dvb_dma_unmap(struct dm1105dvb *dm1105dvb)
376 pci_free_consistent(dm1105dvb->pdev, 6*DM1105_DMA_BYTES, dm1105dvb->ts_buf, dm1105dvb->dma_addr); 376 pci_free_consistent(dm1105dvb->pdev, 6*DM1105_DMA_BYTES, dm1105dvb->ts_buf, dm1105dvb->dma_addr);
377} 377}
378 378
379static void __devinit dm1105dvb_enable_irqs(struct dm1105dvb *dm1105dvb) 379static void dm1105dvb_enable_irqs(struct dm1105dvb *dm1105dvb)
380{ 380{
381 outb(INTMAK_ALLMASK, dm_io_mem(DM1105_INTMAK)); 381 outb(INTMAK_ALLMASK, dm_io_mem(DM1105_INTMAK));
382 outb(1, dm_io_mem(DM1105_CR)); 382 outb(1, dm_io_mem(DM1105_CR));
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 8557bf12cfb4..7a421e9dba5a 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -585,6 +585,8 @@ restart:
585 if (fe->ops.set_voltage) 585 if (fe->ops.set_voltage)
586 fe->ops.set_voltage(fe, SEC_VOLTAGE_OFF); 586 fe->ops.set_voltage(fe, SEC_VOLTAGE_OFF);
587 if (fe->ops.tuner_ops.sleep) { 587 if (fe->ops.tuner_ops.sleep) {
588 if (fe->ops.i2c_gate_ctrl)
589 fe->ops.i2c_gate_ctrl(fe, 1);
588 fe->ops.tuner_ops.sleep(fe); 590 fe->ops.tuner_ops.sleep(fe);
589 if (fe->ops.i2c_gate_ctrl) 591 if (fe->ops.i2c_gate_ctrl)
590 fe->ops.i2c_gate_ctrl(fe, 0); 592 fe->ops.i2c_gate_ctrl(fe, 0);
@@ -934,7 +936,8 @@ void dtv_property_dump(struct dtv_property *tvp)
934int is_legacy_delivery_system(fe_delivery_system_t s) 936int is_legacy_delivery_system(fe_delivery_system_t s)
935{ 937{
936 if((s == SYS_UNDEFINED) || (s == SYS_DVBC_ANNEX_AC) || 938 if((s == SYS_UNDEFINED) || (s == SYS_DVBC_ANNEX_AC) ||
937 (s == SYS_DVBC_ANNEX_B) || (s == SYS_DVBT) || (s == SYS_DVBS)) 939 (s == SYS_DVBC_ANNEX_B) || (s == SYS_DVBT) || (s == SYS_DVBS) ||
940 (s == SYS_ATSC))
938 return 1; 941 return 1;
939 942
940 return 0; 943 return 0;
diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig
index 62b68c291d99..49f7b20c25d6 100644
--- a/drivers/media/dvb/dvb-usb/Kconfig
+++ b/drivers/media/dvb/dvb-usb/Kconfig
@@ -24,8 +24,8 @@ config DVB_USB_A800
24 tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)" 24 tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)"
25 depends on DVB_USB 25 depends on DVB_USB
26 select DVB_DIB3000MC 26 select DVB_DIB3000MC
27 select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
28 select DVB_PLL if !DVB_FE_CUSTOMISE 27 select DVB_PLL if !DVB_FE_CUSTOMISE
28 select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
29 help 29 help
30 Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver. 30 Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver.
31 31
@@ -34,7 +34,7 @@ config DVB_USB_DIBUSB_MB
34 depends on DVB_USB 34 depends on DVB_USB
35 select DVB_PLL if !DVB_FE_CUSTOMISE 35 select DVB_PLL if !DVB_FE_CUSTOMISE
36 select DVB_DIB3000MB 36 select DVB_DIB3000MB
37 select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE 37 select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
38 help 38 help
39 Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by 39 Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by
40 DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-B demodulator. 40 DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-B demodulator.
@@ -55,7 +55,7 @@ config DVB_USB_DIBUSB_MC
55 tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)" 55 tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)"
56 depends on DVB_USB 56 depends on DVB_USB
57 select DVB_DIB3000MC 57 select DVB_DIB3000MC
58 select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE 58 select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
59 help 59 help
60 Support for USB2.0 DVB-T receivers based on reference designs made by 60 Support for USB2.0 DVB-T receivers based on reference designs made by
61 DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-C/P demodulator. 61 DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-C/P demodulator.
@@ -73,11 +73,11 @@ config DVB_USB_DIB0700
73 select DVB_DIB7000M 73 select DVB_DIB7000M
74 select DVB_DIB3000MC 74 select DVB_DIB3000MC
75 select DVB_S5H1411 if !DVB_FE_CUSTOMISE 75 select DVB_S5H1411 if !DVB_FE_CUSTOMISE
76 select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
77 select MEDIA_TUNER_MT2266 if !DVB_FE_CUSTOMISE
78 select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMISE
79 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
80 select DVB_TUNER_DIB0070 76 select DVB_TUNER_DIB0070
77 select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
78 select MEDIA_TUNER_MT2266 if !MEDIA_TUNER_CUSTOMIZE
79 select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
80 select MEDIA_TUNER_XC5000 if !MEDIA_TUNER_CUSTOMIZE
81 help 81 help
82 Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The 82 Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The
83 USB bridge is also present in devices having the DiB7700 DVB-T-USB 83 USB bridge is also present in devices having the DiB7700 DVB-T-USB
@@ -95,7 +95,7 @@ config DVB_USB_UMT_010
95 depends on DVB_USB 95 depends on DVB_USB
96 select DVB_PLL if !DVB_FE_CUSTOMISE 96 select DVB_PLL if !DVB_FE_CUSTOMISE
97 select DVB_DIB3000MC 97 select DVB_DIB3000MC
98 select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE 98 select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
99 help 99 help
100 Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver. 100 Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver.
101 101
@@ -107,11 +107,11 @@ config DVB_USB_CXUSB
107 select DVB_LGDT330X if !DVB_FE_CUSTOMISE 107 select DVB_LGDT330X if !DVB_FE_CUSTOMISE
108 select DVB_MT352 if !DVB_FE_CUSTOMISE 108 select DVB_MT352 if !DVB_FE_CUSTOMISE
109 select DVB_ZL10353 if !DVB_FE_CUSTOMISE 109 select DVB_ZL10353 if !DVB_FE_CUSTOMISE
110 select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
111 select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMISE
112 select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE
113 select DVB_DIB7000P if !DVB_FE_CUSTOMISE 110 select DVB_DIB7000P if !DVB_FE_CUSTOMISE
114 select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE 111 select DVB_TUNER_DIB0070 if !DVB_FE_CUSTOMISE
112 select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
113 select MEDIA_TUNER_XC2028 if !MEDIA_TUNER_CUSTOMIZE
114 select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
115 help 115 help
116 Say Y here to support the Conexant USB2.0 hybrid reference design. 116 Say Y here to support the Conexant USB2.0 hybrid reference design.
117 Currently, only DVB and ATSC modes are supported, analog mode 117 Currently, only DVB and ATSC modes are supported, analog mode
@@ -124,9 +124,9 @@ config DVB_USB_M920X
124 tristate "Uli m920x DVB-T USB2.0 support" 124 tristate "Uli m920x DVB-T USB2.0 support"
125 depends on DVB_USB 125 depends on DVB_USB
126 select DVB_MT352 if !DVB_FE_CUSTOMISE 126 select DVB_MT352 if !DVB_FE_CUSTOMISE
127 select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
128 select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE
129 select DVB_TDA1004X if !DVB_FE_CUSTOMISE 127 select DVB_TDA1004X if !DVB_FE_CUSTOMISE
128 select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
129 select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
130 help 130 help
131 Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver. 131 Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver.
132 Currently, only devices with a product id of 132 Currently, only devices with a product id of
@@ -137,7 +137,7 @@ config DVB_USB_GL861
137 tristate "Genesys Logic GL861 USB2.0 support" 137 tristate "Genesys Logic GL861 USB2.0 support"
138 depends on DVB_USB 138 depends on DVB_USB
139 select DVB_ZL10353 if !DVB_FE_CUSTOMISE 139 select DVB_ZL10353 if !DVB_FE_CUSTOMISE
140 select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE 140 select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
141 help 141 help
142 Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0 142 Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0
143 receiver with USB ID 0db0:5581. 143 receiver with USB ID 0db0:5581.
@@ -146,7 +146,7 @@ config DVB_USB_AU6610
146 tristate "Alcor Micro AU6610 USB2.0 support" 146 tristate "Alcor Micro AU6610 USB2.0 support"
147 depends on DVB_USB 147 depends on DVB_USB
148 select DVB_ZL10353 if !DVB_FE_CUSTOMISE 148 select DVB_ZL10353 if !DVB_FE_CUSTOMISE
149 select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE 149 select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
150 help 150 help
151 Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver. 151 Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver.
152 152
@@ -198,8 +198,8 @@ config DVB_USB_NOVA_T_USB2
198 tristate "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support" 198 tristate "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
199 depends on DVB_USB 199 depends on DVB_USB
200 select DVB_DIB3000MC 200 select DVB_DIB3000MC
201 select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE
202 select DVB_PLL if !DVB_FE_CUSTOMISE 201 select DVB_PLL if !DVB_FE_CUSTOMISE
202 select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
203 help 203 help
204 Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver. 204 Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver.
205 205
@@ -235,8 +235,8 @@ config DVB_USB_OPERA1
235config DVB_USB_AF9005 235config DVB_USB_AF9005
236 tristate "Afatech AF9005 DVB-T USB1.1 support" 236 tristate "Afatech AF9005 DVB-T USB1.1 support"
237 depends on DVB_USB && EXPERIMENTAL 237 depends on DVB_USB && EXPERIMENTAL
238 select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE 238 select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
239 select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE 239 select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
240 help 240 help
241 Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver 241 Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
242 and the TerraTec Cinergy T USB XE (Rev.1) 242 and the TerraTec Cinergy T USB XE (Rev.1)
@@ -284,7 +284,7 @@ config DVB_USB_DTV5100
284 tristate "AME DTV-5100 USB2.0 DVB-T support" 284 tristate "AME DTV-5100 USB2.0 DVB-T support"
285 depends on DVB_USB 285 depends on DVB_USB
286 select DVB_ZL10353 if !DVB_FE_CUSTOMISE 286 select DVB_ZL10353 if !DVB_FE_CUSTOMISE
287 select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE 287 select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
288 help 288 help
289 Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver. 289 Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver.
290 290
@@ -293,9 +293,9 @@ config DVB_USB_AF9015
293 depends on DVB_USB && EXPERIMENTAL 293 depends on DVB_USB && EXPERIMENTAL
294 select DVB_AF9013 294 select DVB_AF9013
295 select DVB_PLL if !DVB_FE_CUSTOMISE 295 select DVB_PLL if !DVB_FE_CUSTOMISE
296 select MEDIA_TUNER_MT2060 if !DVB_FE_CUSTOMISE 296 select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMIZE
297 select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE 297 select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE
298 select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMISE 298 select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE
299 select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE 299 select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
300 help 300 help
301 Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver 301 Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index 847d8fdd9ec4..e9ab0249d133 100644
--- a/drivers/media/dvb/dvb-usb/af9015.c
+++ b/drivers/media/dvb/dvb-usb/af9015.c
@@ -681,12 +681,6 @@ static int af9015_download_firmware(struct usb_device *udev,
681 goto error; 681 goto error;
682 } 682 }
683 683
684 /* firmware is running, reconnect device in the usb bus */
685 req.cmd = RECONNECT_USB;
686 ret = af9015_rw_udev(udev, &req);
687 if (ret)
688 err("reconnect failed: %d", ret);
689
690error: 684error:
691 return ret; 685 return ret;
692} 686}
@@ -1208,6 +1202,7 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1208 .usb_ctrl = DEVICE_SPECIFIC, 1202 .usb_ctrl = DEVICE_SPECIFIC,
1209 .download_firmware = af9015_download_firmware, 1203 .download_firmware = af9015_download_firmware,
1210 .firmware = "dvb-usb-af9015.fw", 1204 .firmware = "dvb-usb-af9015.fw",
1205 .no_reconnect = 1,
1211 1206
1212 .size_of_priv = sizeof(struct af9015_state), \ 1207 .size_of_priv = sizeof(struct af9015_state), \
1213 1208
@@ -1306,6 +1301,7 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1306 .usb_ctrl = DEVICE_SPECIFIC, 1301 .usb_ctrl = DEVICE_SPECIFIC,
1307 .download_firmware = af9015_download_firmware, 1302 .download_firmware = af9015_download_firmware,
1308 .firmware = "dvb-usb-af9015.fw", 1303 .firmware = "dvb-usb-af9015.fw",
1304 .no_reconnect = 1,
1309 1305
1310 .size_of_priv = sizeof(struct af9015_state), \ 1306 .size_of_priv = sizeof(struct af9015_state), \
1311 1307
diff --git a/drivers/media/dvb/dvb-usb/dib0700.h b/drivers/media/dvb/dvb-usb/dib0700.h
index 739193943c17..8b544fe79b0d 100644
--- a/drivers/media/dvb/dvb-usb/dib0700.h
+++ b/drivers/media/dvb/dvb-usb/dib0700.h
@@ -22,7 +22,7 @@ extern int dvb_usb_dib0700_debug;
22 22
23#define REQUEST_I2C_READ 0x2 23#define REQUEST_I2C_READ 0x2
24#define REQUEST_I2C_WRITE 0x3 24#define REQUEST_I2C_WRITE 0x3
25#define REQUEST_POLL_RC 0x4 25#define REQUEST_POLL_RC 0x4 /* deprecated in firmware v1.20 */
26#define REQUEST_JUMPRAM 0x8 26#define REQUEST_JUMPRAM 0x8
27#define REQUEST_SET_CLOCK 0xB 27#define REQUEST_SET_CLOCK 0xB
28#define REQUEST_SET_GPIO 0xC 28#define REQUEST_SET_GPIO 0xC
@@ -40,11 +40,14 @@ struct dib0700_state {
40 u16 mt2060_if1[2]; 40 u16 mt2060_if1[2];
41 u8 rc_toggle; 41 u8 rc_toggle;
42 u8 rc_counter; 42 u8 rc_counter;
43 u8 rc_func_version;
43 u8 is_dib7000pc; 44 u8 is_dib7000pc;
44 u8 fw_use_new_i2c_api; 45 u8 fw_use_new_i2c_api;
45 u8 disable_streaming_master_mode; 46 u8 disable_streaming_master_mode;
46}; 47};
47 48
49extern int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
50 u32 *romversion, u32 *ramversion, u32 *fwtype);
48extern int dib0700_set_gpio(struct dvb_usb_device *, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val); 51extern int dib0700_set_gpio(struct dvb_usb_device *, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val);
49extern int dib0700_ctrl_clock(struct dvb_usb_device *d, u32 clk_MHz, u8 clock_out_gp3); 52extern int dib0700_ctrl_clock(struct dvb_usb_device *d, u32 clk_MHz, u8 clock_out_gp3);
50extern int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen); 53extern int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen);
diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
index dd53cee3896d..200b215f4d8b 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_core.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
@@ -19,6 +19,22 @@ MODULE_PARM_DESC(dvb_usb_dib0700_ir_proto, "set ir protocol (0=NEC, 1=RC5 (defau
19 19
20DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); 20DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
21 21
22
23int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
24 u32 *romversion, u32 *ramversion, u32 *fwtype)
25{
26 u8 b[16];
27 int ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0),
28 REQUEST_GET_VERSION,
29 USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
30 b, sizeof(b), USB_CTRL_GET_TIMEOUT);
31 *hwversion = (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3];
32 *romversion = (b[4] << 24) | (b[5] << 16) | (b[6] << 8) | b[7];
33 *ramversion = (b[8] << 24) | (b[9] << 16) | (b[10] << 8) | b[11];
34 *fwtype = (b[12] << 24) | (b[13] << 16) | (b[14] << 8) | b[15];
35 return ret;
36}
37
22/* expecting rx buffer: request data[0] data[1] ... data[2] */ 38/* expecting rx buffer: request data[0] data[1] ... data[2] */
23static int dib0700_ctrl_wr(struct dvb_usb_device *d, u8 *tx, u8 txlen) 39static int dib0700_ctrl_wr(struct dvb_usb_device *d, u8 *tx, u8 txlen)
24{ 40{
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 0cfccc24b190..391732788911 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -38,6 +38,7 @@ static struct mt2060_config bristol_mt2060_config[2] = {
38 } 38 }
39}; 39};
40 40
41
41static struct dibx000_agc_config bristol_dib3000p_mt2060_agc_config = { 42static struct dibx000_agc_config bristol_dib3000p_mt2060_agc_config = {
42 .band_caps = BAND_VHF | BAND_UHF, 43 .band_caps = BAND_VHF | BAND_UHF,
43 .setup = (1 << 8) | (5 << 5) | (0 << 4) | (0 << 3) | (0 << 2) | (2 << 0), 44 .setup = (1 << 8) | (5 << 5) | (0 << 4) | (0 << 3) | (0 << 2) | (2 << 0),
@@ -445,14 +446,19 @@ static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap)
445 == NULL ? -ENODEV : 0; 446 == NULL ? -ENODEV : 0;
446} 447}
447 448
448#define DEFAULT_RC_INTERVAL 150 449#define DEFAULT_RC_INTERVAL 50
449 450
450static u8 rc_request[] = { REQUEST_POLL_RC, 0 }; 451static u8 rc_request[] = { REQUEST_POLL_RC, 0 };
451 452
452/* Number of keypresses to ignore before start repeating */ 453/* Number of keypresses to ignore before start repeating */
453#define RC_REPEAT_DELAY 2 454#define RC_REPEAT_DELAY 6
455#define RC_REPEAT_DELAY_V1_20 10
454 456
455static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state) 457
458
459/* Used by firmware versions < 1.20 (deprecated) */
460static int dib0700_rc_query_legacy(struct dvb_usb_device *d, u32 *event,
461 int *state)
456{ 462{
457 u8 key[4]; 463 u8 key[4];
458 int i; 464 int i;
@@ -529,6 +535,137 @@ static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
529 return 0; 535 return 0;
530} 536}
531 537
538/* This is the structure of the RC response packet starting in firmware 1.20 */
539struct dib0700_rc_response {
540 u8 report_id;
541 u8 data_state;
542 u8 system_msb;
543 u8 system_lsb;
544 u8 data;
545 u8 not_data;
546};
547
548/* This supports the new IR response format for firmware v1.20 */
549static int dib0700_rc_query_v1_20(struct dvb_usb_device *d, u32 *event,
550 int *state)
551{
552 struct dvb_usb_rc_key *keymap = d->props.rc_key_map;
553 struct dib0700_state *st = d->priv;
554 struct dib0700_rc_response poll_reply;
555 u8 buf[6];
556 int i;
557 int status;
558 int actlen;
559 int found = 0;
560
561 /* Set initial results in case we exit the function early */
562 *event = 0;
563 *state = REMOTE_NO_KEY_PRESSED;
564
565 /* Firmware v1.20 provides RC data via bulk endpoint 1 */
566 status = usb_bulk_msg(d->udev, usb_rcvbulkpipe(d->udev, 1), buf,
567 sizeof(buf), &actlen, 50);
568 if (status < 0) {
569 /* No data available (meaning no key press) */
570 return 0;
571 }
572
573 if (actlen != sizeof(buf)) {
574 /* We didn't get back the 6 byte message we expected */
575 err("Unexpected RC response size [%d]", actlen);
576 return -1;
577 }
578
579 poll_reply.report_id = buf[0];
580 poll_reply.data_state = buf[1];
581 poll_reply.system_msb = buf[2];
582 poll_reply.system_lsb = buf[3];
583 poll_reply.data = buf[4];
584 poll_reply.not_data = buf[5];
585
586 /*
587 info("rid=%02x ds=%02x sm=%02x sl=%02x d=%02x nd=%02x\n",
588 poll_reply.report_id, poll_reply.data_state,
589 poll_reply.system_msb, poll_reply.system_lsb,
590 poll_reply.data, poll_reply.not_data);
591 */
592
593 if ((poll_reply.data + poll_reply.not_data) != 0xff) {
594 /* Key failed integrity check */
595 err("key failed integrity check: %02x %02x %02x %02x",
596 poll_reply.system_msb, poll_reply.system_lsb,
597 poll_reply.data, poll_reply.not_data);
598 return -1;
599 }
600
601 /* Find the key in the map */
602 for (i = 0; i < d->props.rc_key_map_size; i++) {
603 if (keymap[i].custom == poll_reply.system_lsb &&
604 keymap[i].data == poll_reply.data) {
605 *event = keymap[i].event;
606 found = 1;
607 break;
608 }
609 }
610
611 if (found == 0) {
612 err("Unknown remote controller key: %02x %02x %02x %02x",
613 poll_reply.system_msb, poll_reply.system_lsb,
614 poll_reply.data, poll_reply.not_data);
615 d->last_event = 0;
616 return 0;
617 }
618
619 if (poll_reply.data_state == 1) {
620 /* New key hit */
621 st->rc_counter = 0;
622 *event = keymap[i].event;
623 *state = REMOTE_KEY_PRESSED;
624 d->last_event = keymap[i].event;
625 } else if (poll_reply.data_state == 2) {
626 /* Key repeated */
627 st->rc_counter++;
628
629 /* prevents unwanted double hits */
630 if (st->rc_counter > RC_REPEAT_DELAY_V1_20) {
631 *event = d->last_event;
632 *state = REMOTE_KEY_PRESSED;
633 st->rc_counter = RC_REPEAT_DELAY_V1_20;
634 }
635 } else {
636 err("Unknown data state [%d]", poll_reply.data_state);
637 }
638
639 return 0;
640}
641
642static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
643{
644 struct dib0700_state *st = d->priv;
645
646 /* Because some people may have improperly named firmware files,
647 let's figure out whether to use the new firmware call or the legacy
648 call based on the firmware version embedded in the file */
649 if (st->rc_func_version == 0) {
650 u32 hwver, romver, ramver, fwtype;
651 int ret = dib0700_get_version(d, &hwver, &romver, &ramver,
652 &fwtype);
653 if (ret < 0) {
654 err("Could not determine version info");
655 return -1;
656 }
657 if (ramver < 0x10200)
658 st->rc_func_version = 1;
659 else
660 st->rc_func_version = 2;
661 }
662
663 if (st->rc_func_version == 2)
664 return dib0700_rc_query_v1_20(d, event, state);
665 else
666 return dib0700_rc_query_legacy(d, event, state);
667}
668
532static struct dvb_usb_rc_key dib0700_rc_keys[] = { 669static struct dvb_usb_rc_key dib0700_rc_keys[] = {
533 /* Key codes for the tiny Pinnacle remote*/ 670 /* Key codes for the tiny Pinnacle remote*/
534 { 0x07, 0x00, KEY_MUTE }, 671 { 0x07, 0x00, KEY_MUTE },
diff --git a/drivers/media/dvb/dvb-usb/usb-urb.c b/drivers/media/dvb/dvb-usb/usb-urb.c
index 397f51a7b2ad..da93b9e982c0 100644
--- a/drivers/media/dvb/dvb-usb/usb-urb.c
+++ b/drivers/media/dvb/dvb-usb/usb-urb.c
@@ -135,7 +135,7 @@ stream->buf_list[stream->buf_num], (long long)stream->dma_addr[stream->buf_num])
135 135
136static int usb_bulk_urb_init(struct usb_data_stream *stream) 136static int usb_bulk_urb_init(struct usb_data_stream *stream)
137{ 137{
138 int i; 138 int i, j;
139 139
140 if ((i = usb_allocate_stream_buffers(stream,stream->props.count, 140 if ((i = usb_allocate_stream_buffers(stream,stream->props.count,
141 stream->props.u.bulk.buffersize)) < 0) 141 stream->props.u.bulk.buffersize)) < 0)
@@ -143,9 +143,13 @@ static int usb_bulk_urb_init(struct usb_data_stream *stream)
143 143
144 /* allocate the URBs */ 144 /* allocate the URBs */
145 for (i = 0; i < stream->props.count; i++) { 145 for (i = 0; i < stream->props.count; i++) {
146 if ((stream->urb_list[i] = usb_alloc_urb(0,GFP_ATOMIC)) == NULL) 146 stream->urb_list[i] = usb_alloc_urb(0, GFP_ATOMIC);
147 if (!stream->urb_list[i]) {
148 deb_mem("not enough memory for urb_alloc_urb!.\n");
149 for (j = 0; j < i; j++)
150 usb_free_urb(stream->urb_list[i]);
147 return -ENOMEM; 151 return -ENOMEM;
148 152 }
149 usb_fill_bulk_urb( stream->urb_list[i], stream->udev, 153 usb_fill_bulk_urb( stream->urb_list[i], stream->udev,
150 usb_rcvbulkpipe(stream->udev,stream->props.endpoint), 154 usb_rcvbulkpipe(stream->udev,stream->props.endpoint),
151 stream->buf_list[i], 155 stream->buf_list[i],
@@ -170,9 +174,14 @@ static int usb_isoc_urb_init(struct usb_data_stream *stream)
170 for (i = 0; i < stream->props.count; i++) { 174 for (i = 0; i < stream->props.count; i++) {
171 struct urb *urb; 175 struct urb *urb;
172 int frame_offset = 0; 176 int frame_offset = 0;
173 if ((stream->urb_list[i] = 177
174 usb_alloc_urb(stream->props.u.isoc.framesperurb,GFP_ATOMIC)) == NULL) 178 stream->urb_list[i] = usb_alloc_urb(stream->props.u.isoc.framesperurb, GFP_ATOMIC);
179 if (!stream->urb_list[i]) {
180 deb_mem("not enough memory for urb_alloc_urb!\n");
181 for (j = 0; j < i; j++)
182 usb_free_urb(stream->urb_list[i]);
175 return -ENOMEM; 183 return -ENOMEM;
184 }
176 185
177 urb = stream->urb_list[i]; 186 urb = stream->urb_list[i];
178 187
diff --git a/drivers/media/dvb/siano/sms-cards.c b/drivers/media/dvb/siano/sms-cards.c
index 6f9b77360440..e98d6caf2c23 100644
--- a/drivers/media/dvb/siano/sms-cards.c
+++ b/drivers/media/dvb/siano/sms-cards.c
@@ -95,7 +95,7 @@ static struct sms_board sms_boards[] = {
95 [SMS1XXX_BOARD_HAUPPAUGE_WINDHAM] = { 95 [SMS1XXX_BOARD_HAUPPAUGE_WINDHAM] = {
96 .name = "Hauppauge WinTV MiniStick", 96 .name = "Hauppauge WinTV MiniStick",
97 .type = SMS_NOVA_B0, 97 .type = SMS_NOVA_B0,
98 .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-01.fw", 98 .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw",
99 }, 99 },
100}; 100};
101 101
diff --git a/drivers/media/dvb/ttpci/Kconfig b/drivers/media/dvb/ttpci/Kconfig
index 867027ceab3e..401a04effc06 100644
--- a/drivers/media/dvb/ttpci/Kconfig
+++ b/drivers/media/dvb/ttpci/Kconfig
@@ -106,7 +106,7 @@ config DVB_BUDGET_CI
106 select DVB_TDA1004X if !DVB_FE_CUSTOMISE 106 select DVB_TDA1004X if !DVB_FE_CUSTOMISE
107 select DVB_LNBP21 if !DVB_FE_CUSTOMISE 107 select DVB_LNBP21 if !DVB_FE_CUSTOMISE
108 select DVB_TDA10023 if !DVB_FE_CUSTOMISE 108 select DVB_TDA10023 if !DVB_FE_CUSTOMISE
109 select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE 109 select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
110 select VIDEO_IR 110 select VIDEO_IR
111 help 111 help
112 Support for simple SAA7146 based DVB cards 112 Support for simple SAA7146 based DVB cards
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
index 66ab0c6e9783..4a3f2b8ea37d 100644
--- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
@@ -808,6 +808,12 @@ static int ttusb_alloc_iso_urbs(struct ttusb *ttusb)
808 ISO_BUF_COUNT, 808 ISO_BUF_COUNT,
809 &ttusb->iso_dma_handle); 809 &ttusb->iso_dma_handle);
810 810
811 if (!ttusb->iso_buffer) {
812 dprintk("%s: pci_alloc_consistent - not enough memory\n",
813 __func__);
814 return -ENOMEM;
815 }
816
811 memset(ttusb->iso_buffer, 0, 817 memset(ttusb->iso_buffer, 0,
812 ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT); 818 ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT);
813 819
@@ -1659,7 +1665,14 @@ static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *i
1659 1665
1660 ttusb_setup_interfaces(ttusb); 1666 ttusb_setup_interfaces(ttusb);
1661 1667
1662 ttusb_alloc_iso_urbs(ttusb); 1668 result = ttusb_alloc_iso_urbs(ttusb);
1669 if (result < 0) {
1670 dprintk("%s: ttusb_alloc_iso_urbs - failed\n", __func__);
1671 mutex_unlock(&ttusb->semi2c);
1672 kfree(ttusb);
1673 return result;
1674 }
1675
1663 if (ttusb_init_controller(ttusb)) 1676 if (ttusb_init_controller(ttusb))
1664 printk("ttusb_init_controller: error\n"); 1677 printk("ttusb_init_controller: error\n");
1665 1678
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
index ab33fec8a19f..0aa96df80fc2 100644
--- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
@@ -1157,6 +1157,12 @@ static int ttusb_dec_alloc_iso_urbs(struct ttusb_dec *dec)
1157 ISO_BUF_COUNT), 1157 ISO_BUF_COUNT),
1158 &dec->iso_dma_handle); 1158 &dec->iso_dma_handle);
1159 1159
1160 if (!dec->iso_buffer) {
1161 dprintk("%s: pci_alloc_consistent - not enough memory\n",
1162 __func__);
1163 return -ENOMEM;
1164 }
1165
1160 memset(dec->iso_buffer, 0, 1166 memset(dec->iso_buffer, 0,
1161 ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT)); 1167 ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT));
1162 1168
@@ -1254,6 +1260,7 @@ static int ttusb_dec_init_usb(struct ttusb_dec *dec)
1254 dec->irq_buffer = usb_buffer_alloc(dec->udev,IRQ_PACKET_SIZE, 1260 dec->irq_buffer = usb_buffer_alloc(dec->udev,IRQ_PACKET_SIZE,
1255 GFP_ATOMIC, &dec->irq_dma_handle); 1261 GFP_ATOMIC, &dec->irq_dma_handle);
1256 if(!dec->irq_buffer) { 1262 if(!dec->irq_buffer) {
1263 usb_free_urb(dec->irq_urb);
1257 return -ENOMEM; 1264 return -ENOMEM;
1258 } 1265 }
1259 usb_fill_int_urb(dec->irq_urb, dec->udev,dec->irq_pipe, 1266 usb_fill_int_urb(dec->irq_urb, dec->udev,dec->irq_pipe,
diff --git a/drivers/media/video/compat_ioctl32.c b/drivers/media/video/compat_ioctl32.c
index e6ca4012b5f0..0ea85a05e5c0 100644
--- a/drivers/media/video/compat_ioctl32.c
+++ b/drivers/media/video/compat_ioctl32.c
@@ -831,7 +831,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
831{ 831{
832 int ret = -ENOIOCTLCMD; 832 int ret = -ENOIOCTLCMD;
833 833
834 if (!file->f_op->ioctl) 834 if (!file->f_op->ioctl && !file->f_op->unlocked_ioctl)
835 return ret; 835 return ret;
836 836
837 switch (cmd) { 837 switch (cmd) {
diff --git a/drivers/media/video/cx18/Kconfig b/drivers/media/video/cx18/Kconfig
index ef48565de7f1..8940b5387dec 100644
--- a/drivers/media/video/cx18/Kconfig
+++ b/drivers/media/video/cx18/Kconfig
@@ -9,7 +9,7 @@ config VIDEO_CX18
9 select VIDEO_CX2341X 9 select VIDEO_CX2341X
10 select VIDEO_CS5345 10 select VIDEO_CS5345
11 select DVB_S5H1409 if !DVB_FE_CUSTOMISE 11 select DVB_S5H1409 if !DVB_FE_CUSTOMISE
12 select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE 12 select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE
13 ---help--- 13 ---help---
14 This is a video4linux driver for Conexant cx23418 based 14 This is a video4linux driver for Conexant cx23418 based
15 PCI combo video recorder devices. 15 PCI combo video recorder devices.
diff --git a/drivers/media/video/cx23885/Kconfig b/drivers/media/video/cx23885/Kconfig
index 8c1b7fa47a41..00f1e2e8889e 100644
--- a/drivers/media/video/cx23885/Kconfig
+++ b/drivers/media/video/cx23885/Kconfig
@@ -11,16 +11,16 @@ config VIDEO_CX23885
11 select VIDEO_CX25840 11 select VIDEO_CX25840
12 select VIDEO_CX2341X 12 select VIDEO_CX2341X
13 select DVB_DIB7000P if !DVB_FE_CUSTOMISE 13 select DVB_DIB7000P if !DVB_FE_CUSTOMISE
14 select MEDIA_TUNER_MT2131 if !DVB_FE_CUSTOMISE
15 select DVB_S5H1409 if !DVB_FE_CUSTOMISE 14 select DVB_S5H1409 if !DVB_FE_CUSTOMISE
16 select DVB_S5H1411 if !DVB_FE_CUSTOMISE 15 select DVB_S5H1411 if !DVB_FE_CUSTOMISE
17 select DVB_LGDT330X if !DVB_FE_CUSTOMISE 16 select DVB_LGDT330X if !DVB_FE_CUSTOMISE
18 select DVB_ZL10353 if !DVB_FE_CUSTOMISE 17 select DVB_ZL10353 if !DVB_FE_CUSTOMISE
18 select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
19 select MEDIA_TUNER_MT2131 if !MEDIA_TUNER_CUSTOMIZE
19 select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMIZE 20 select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMIZE
20 select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE 21 select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
21 select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE 22 select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
22 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE 23 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
23 select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
24 ---help--- 24 ---help---
25 This is a video4linux driver for Conexant 23885 based 25 This is a video4linux driver for Conexant 23885 based
26 TV cards. 26 TV cards.
diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig
index 0b9e5fac6239..b0f837588e01 100644
--- a/drivers/media/video/cx88/Kconfig
+++ b/drivers/media/video/cx88/Kconfig
@@ -56,12 +56,12 @@ config VIDEO_CX88_DVB
56 select DVB_NXT200X if !DVB_FE_CUSTOMISE 56 select DVB_NXT200X if !DVB_FE_CUSTOMISE
57 select DVB_CX24123 if !DVB_FE_CUSTOMISE 57 select DVB_CX24123 if !DVB_FE_CUSTOMISE
58 select DVB_ISL6421 if !DVB_FE_CUSTOMISE 58 select DVB_ISL6421 if !DVB_FE_CUSTOMISE
59 select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE
60 select DVB_S5H1411 if !DVB_FE_CUSTOMISE 59 select DVB_S5H1411 if !DVB_FE_CUSTOMISE
61 select DVB_CX24116 if !DVB_FE_CUSTOMISE 60 select DVB_CX24116 if !DVB_FE_CUSTOMISE
62 select DVB_STV0299 if !DVB_FE_CUSTOMISE 61 select DVB_STV0299 if !DVB_FE_CUSTOMISE
63 select DVB_STV0288 if !DVB_FE_CUSTOMISE 62 select DVB_STV0288 if !DVB_FE_CUSTOMISE
64 select DVB_STB6000 if !DVB_FE_CUSTOMISE 63 select DVB_STB6000 if !DVB_FE_CUSTOMISE
64 select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
65 ---help--- 65 ---help---
66 This adds support for DVB/ATSC cards based on the 66 This adds support for DVB/ATSC cards based on the
67 Conexant 2388x chip. 67 Conexant 2388x chip.
diff --git a/drivers/media/video/em28xx/em28xx-audio.c b/drivers/media/video/em28xx/em28xx-audio.c
index ac3292d7646c..7a8d49ef646e 100644
--- a/drivers/media/video/em28xx/em28xx-audio.c
+++ b/drivers/media/video/em28xx/em28xx-audio.c
@@ -62,7 +62,7 @@ static int em28xx_isoc_audio_deinit(struct em28xx *dev)
62 62
63 dprintk("Stopping isoc\n"); 63 dprintk("Stopping isoc\n");
64 for (i = 0; i < EM28XX_AUDIO_BUFS; i++) { 64 for (i = 0; i < EM28XX_AUDIO_BUFS; i++) {
65 usb_kill_urb(dev->adev->urb[i]); 65 usb_unlink_urb(dev->adev->urb[i]);
66 usb_free_urb(dev->adev->urb[i]); 66 usb_free_urb(dev->adev->urb[i]);
67 dev->adev->urb[i] = NULL; 67 dev->adev->urb[i] = NULL;
68 } 68 }
@@ -75,7 +75,6 @@ static void em28xx_audio_isocirq(struct urb *urb)
75 struct em28xx *dev = urb->context; 75 struct em28xx *dev = urb->context;
76 int i; 76 int i;
77 unsigned int oldptr; 77 unsigned int oldptr;
78 unsigned long flags;
79 int period_elapsed = 0; 78 int period_elapsed = 0;
80 int status; 79 int status;
81 unsigned char *cp; 80 unsigned char *cp;
@@ -96,9 +95,21 @@ static void em28xx_audio_isocirq(struct urb *urb)
96 if (!length) 95 if (!length)
97 continue; 96 continue;
98 97
99 spin_lock_irqsave(&dev->adev->slock, flags);
100
101 oldptr = dev->adev->hwptr_done_capture; 98 oldptr = dev->adev->hwptr_done_capture;
99 if (oldptr + length >= runtime->buffer_size) {
100 unsigned int cnt =
101 runtime->buffer_size - oldptr;
102 memcpy(runtime->dma_area + oldptr * stride, cp,
103 cnt * stride);
104 memcpy(runtime->dma_area, cp + cnt * stride,
105 length * stride - cnt * stride);
106 } else {
107 memcpy(runtime->dma_area + oldptr * stride, cp,
108 length * stride);
109 }
110
111 snd_pcm_stream_lock(substream);
112
102 dev->adev->hwptr_done_capture += length; 113 dev->adev->hwptr_done_capture += length;
103 if (dev->adev->hwptr_done_capture >= 114 if (dev->adev->hwptr_done_capture >=
104 runtime->buffer_size) 115 runtime->buffer_size)
@@ -113,19 +124,7 @@ static void em28xx_audio_isocirq(struct urb *urb)
113 period_elapsed = 1; 124 period_elapsed = 1;
114 } 125 }
115 126
116 spin_unlock_irqrestore(&dev->adev->slock, flags); 127 snd_pcm_stream_unlock(substream);
117
118 if (oldptr + length >= runtime->buffer_size) {
119 unsigned int cnt =
120 runtime->buffer_size - oldptr;
121 memcpy(runtime->dma_area + oldptr * stride, cp,
122 cnt * stride);
123 memcpy(runtime->dma_area, cp + cnt * stride,
124 length * stride - cnt * stride);
125 } else {
126 memcpy(runtime->dma_area + oldptr * stride, cp,
127 length * stride);
128 }
129 } 128 }
130 if (period_elapsed) 129 if (period_elapsed)
131 snd_pcm_period_elapsed(substream); 130 snd_pcm_period_elapsed(substream);
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
index 5d837c16ee22..15e2b525310d 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -69,19 +69,33 @@ int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg,
69 int ret, byte; 69 int ret, byte;
70 70
71 if (dev->state & DEV_DISCONNECTED) 71 if (dev->state & DEV_DISCONNECTED)
72 return(-ENODEV); 72 return -ENODEV;
73
74 if (len > URB_MAX_CTRL_SIZE)
75 return -EINVAL;
73 76
74 em28xx_regdbg("req=%02x, reg=%02x ", req, reg); 77 em28xx_regdbg("req=%02x, reg=%02x ", req, reg);
75 78
79 mutex_lock(&dev->ctrl_urb_lock);
76 ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), req, 80 ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), req,
77 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 81 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
78 0x0000, reg, buf, len, HZ); 82 0x0000, reg, dev->urb_buf, len, HZ);
83 if (ret < 0) {
84 if (reg_debug)
85 printk(" failed!\n");
86 mutex_unlock(&dev->ctrl_urb_lock);
87 return ret;
88 }
89
90 if (len)
91 memcpy(buf, dev->urb_buf, len);
92
93 mutex_unlock(&dev->ctrl_urb_lock);
79 94
80 if (reg_debug) { 95 if (reg_debug) {
81 printk(ret < 0 ? " failed!\n" : "%02x values: ", ret); 96 printk("%02x values: ", ret);
82 for (byte = 0; byte < len; byte++) 97 for (byte = 0; byte < len; byte++)
83 printk(" %02x", (unsigned char)buf[byte]); 98 printk(" %02x", (unsigned char)buf[byte]);
84
85 printk("\n"); 99 printk("\n");
86 } 100 }
87 101
@@ -102,16 +116,20 @@ int em28xx_read_reg_req(struct em28xx *dev, u8 req, u16 reg)
102 116
103 em28xx_regdbg("req=%02x, reg=%02x:", req, reg); 117 em28xx_regdbg("req=%02x, reg=%02x:", req, reg);
104 118
119 mutex_lock(&dev->ctrl_urb_lock);
105 ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), req, 120 ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), req,
106 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 121 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
107 0x0000, reg, &val, 1, HZ); 122 0x0000, reg, dev->urb_buf, 1, HZ);
108 123 val = dev->urb_buf[0];
109 if (reg_debug) 124 mutex_unlock(&dev->ctrl_urb_lock);
110 printk(ret < 0 ? " failed!\n" :
111 "%02x\n", (unsigned char) val);
112 125
113 if (ret < 0) 126 if (ret < 0) {
127 printk(" failed!\n");
114 return ret; 128 return ret;
129 }
130
131 if (reg_debug)
132 printk("%02x\n", (unsigned char) val);
115 133
116 return val; 134 return val;
117} 135}
@@ -130,19 +148,13 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
130{ 148{
131 int ret; 149 int ret;
132 150
133 /*usb_control_msg seems to expect a kmalloced buffer */
134 unsigned char *bufs;
135
136 if (dev->state & DEV_DISCONNECTED) 151 if (dev->state & DEV_DISCONNECTED)
137 return -ENODEV; 152 return -ENODEV;
138 153
139 if (len < 1) 154 if ((len < 1) || (len > URB_MAX_CTRL_SIZE))
140 return -EINVAL; 155 return -EINVAL;
141 156
142 bufs = kmalloc(len, GFP_KERNEL);
143
144 em28xx_regdbg("req=%02x reg=%02x:", req, reg); 157 em28xx_regdbg("req=%02x reg=%02x:", req, reg);
145
146 if (reg_debug) { 158 if (reg_debug) {
147 int i; 159 int i;
148 for (i = 0; i < len; ++i) 160 for (i = 0; i < len; ++i)
@@ -150,16 +162,16 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
150 printk("\n"); 162 printk("\n");
151 } 163 }
152 164
153 if (!bufs) 165 mutex_lock(&dev->ctrl_urb_lock);
154 return -ENOMEM; 166 memcpy(dev->urb_buf, buf, len);
155 memcpy(bufs, buf, len);
156 ret = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), req, 167 ret = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), req,
157 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 168 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
158 0x0000, reg, bufs, len, HZ); 169 0x0000, reg, dev->urb_buf, len, HZ);
170 mutex_unlock(&dev->ctrl_urb_lock);
171
159 if (dev->wait_after_write) 172 if (dev->wait_after_write)
160 msleep(dev->wait_after_write); 173 msleep(dev->wait_after_write);
161 174
162 kfree(bufs);
163 return ret; 175 return ret;
164} 176}
165 177
@@ -270,6 +282,8 @@ static int em28xx_set_audio_source(struct em28xx *dev)
270 break; 282 break;
271 case EM28XX_AMUX_LINE_IN: 283 case EM28XX_AMUX_LINE_IN:
272 input = EM28XX_AUDIO_SRC_LINE; 284 input = EM28XX_AUDIO_SRC_LINE;
285 video = disable;
286 line = enable;
273 break; 287 break;
274 case EM28XX_AMUX_AC97_VIDEO: 288 case EM28XX_AMUX_AC97_VIDEO:
275 input = EM28XX_AUDIO_SRC_LINE; 289 input = EM28XX_AUDIO_SRC_LINE;
diff --git a/drivers/media/video/em28xx/em28xx-i2c.c b/drivers/media/video/em28xx/em28xx-i2c.c
index 3bab56b997fc..2360c61ddca9 100644
--- a/drivers/media/video/em28xx/em28xx-i2c.c
+++ b/drivers/media/video/em28xx/em28xx-i2c.c
@@ -337,9 +337,9 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned char *eedata, int len)
337 /* Check if board has eeprom */ 337 /* Check if board has eeprom */
338 err = i2c_master_recv(&dev->i2c_client, &buf, 0); 338 err = i2c_master_recv(&dev->i2c_client, &buf, 0);
339 if (err < 0) { 339 if (err < 0) {
340 em28xx_errdev("%s: i2c_master_recv failed! err [%d]\n", 340 em28xx_errdev("board has no eeprom\n");
341 __func__, err); 341 memset(eedata, 0, len);
342 return err; 342 return -ENODEV;
343 } 343 }
344 344
345 buf = 0; 345 buf = 0;
@@ -609,14 +609,16 @@ int em28xx_i2c_register(struct em28xx *dev)
609 dev->i2c_client.adapter = &dev->i2c_adap; 609 dev->i2c_client.adapter = &dev->i2c_adap;
610 610
611 retval = em28xx_i2c_eeprom(dev, dev->eedata, sizeof(dev->eedata)); 611 retval = em28xx_i2c_eeprom(dev, dev->eedata, sizeof(dev->eedata));
612 if (retval < 0) { 612 if ((retval < 0) && (retval != -ENODEV)) {
613 em28xx_errdev("%s: em28xx_i2_eeprom failed! retval [%d]\n", 613 em28xx_errdev("%s: em28xx_i2_eeprom failed! retval [%d]\n",
614 __func__, retval); 614 __func__, retval);
615
615 return retval; 616 return retval;
616 } 617 }
617 618
618 if (i2c_scan) 619 if (i2c_scan)
619 em28xx_do_i2c_scan(dev); 620 em28xx_do_i2c_scan(dev);
621
620 return 0; 622 return 0;
621} 623}
622 624
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index a1ab2ef45578..4ea1f1e04897 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -73,6 +73,7 @@ MODULE_DESCRIPTION(DRIVER_DESC);
73MODULE_LICENSE("GPL"); 73MODULE_LICENSE("GPL");
74 74
75static LIST_HEAD(em28xx_devlist); 75static LIST_HEAD(em28xx_devlist);
76static DEFINE_MUTEX(em28xx_devlist_mutex);
76 77
77static unsigned int card[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET }; 78static unsigned int card[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET };
78static unsigned int video_nr[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET }; 79static unsigned int video_nr[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET };
@@ -548,10 +549,11 @@ static int em28xx_config(struct em28xx *dev)
548static void em28xx_config_i2c(struct em28xx *dev) 549static void em28xx_config_i2c(struct em28xx *dev)
549{ 550{
550 struct v4l2_routing route; 551 struct v4l2_routing route;
552 int zero = 0;
551 553
552 route.input = INPUT(dev->ctl_input)->vmux; 554 route.input = INPUT(dev->ctl_input)->vmux;
553 route.output = 0; 555 route.output = 0;
554 em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, NULL); 556 em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, &zero);
555 em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route); 557 em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route);
556 em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL); 558 em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
557} 559}
@@ -1519,7 +1521,7 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp)
1519 struct em28xx_fh *fh; 1521 struct em28xx_fh *fh;
1520 enum v4l2_buf_type fh_type = 0; 1522 enum v4l2_buf_type fh_type = 0;
1521 1523
1522 lock_kernel(); 1524 mutex_lock(&em28xx_devlist_mutex);
1523 list_for_each_entry(h, &em28xx_devlist, devlist) { 1525 list_for_each_entry(h, &em28xx_devlist, devlist) {
1524 if (h->vdev->minor == minor) { 1526 if (h->vdev->minor == minor) {
1525 dev = h; 1527 dev = h;
@@ -1535,10 +1537,11 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp)
1535 dev = h; 1537 dev = h;
1536 } 1538 }
1537 } 1539 }
1538 if (NULL == dev) { 1540 mutex_unlock(&em28xx_devlist_mutex);
1539 unlock_kernel(); 1541 if (NULL == dev)
1540 return -ENODEV; 1542 return -ENODEV;
1541 } 1543
1544 mutex_lock(&dev->lock);
1542 1545
1543 em28xx_videodbg("open minor=%d type=%s users=%d\n", 1546 em28xx_videodbg("open minor=%d type=%s users=%d\n",
1544 minor, v4l2_type_names[fh_type], dev->users); 1547 minor, v4l2_type_names[fh_type], dev->users);
@@ -1547,10 +1550,9 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp)
1547 fh = kzalloc(sizeof(struct em28xx_fh), GFP_KERNEL); 1550 fh = kzalloc(sizeof(struct em28xx_fh), GFP_KERNEL);
1548 if (!fh) { 1551 if (!fh) {
1549 em28xx_errdev("em28xx-video.c: Out of memory?!\n"); 1552 em28xx_errdev("em28xx-video.c: Out of memory?!\n");
1550 unlock_kernel(); 1553 mutex_unlock(&dev->lock);
1551 return -ENOMEM; 1554 return -ENOMEM;
1552 } 1555 }
1553 mutex_lock(&dev->lock);
1554 fh->dev = dev; 1556 fh->dev = dev;
1555 fh->radio = radio; 1557 fh->radio = radio;
1556 fh->type = fh_type; 1558 fh->type = fh_type;
@@ -1584,7 +1586,6 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp)
1584 sizeof(struct em28xx_buffer), fh); 1586 sizeof(struct em28xx_buffer), fh);
1585 1587
1586 mutex_unlock(&dev->lock); 1588 mutex_unlock(&dev->lock);
1587 unlock_kernel();
1588 1589
1589 return errCode; 1590 return errCode;
1590} 1591}
@@ -1871,6 +1872,7 @@ int em28xx_register_extension(struct em28xx_ops *ops)
1871{ 1872{
1872 struct em28xx *dev = NULL; 1873 struct em28xx *dev = NULL;
1873 1874
1875 mutex_lock(&em28xx_devlist_mutex);
1874 mutex_lock(&em28xx_extension_devlist_lock); 1876 mutex_lock(&em28xx_extension_devlist_lock);
1875 list_add_tail(&ops->next, &em28xx_extension_devlist); 1877 list_add_tail(&ops->next, &em28xx_extension_devlist);
1876 list_for_each_entry(dev, &em28xx_devlist, devlist) { 1878 list_for_each_entry(dev, &em28xx_devlist, devlist) {
@@ -1879,6 +1881,7 @@ int em28xx_register_extension(struct em28xx_ops *ops)
1879 } 1881 }
1880 printk(KERN_INFO "Em28xx: Initialized (%s) extension\n", ops->name); 1882 printk(KERN_INFO "Em28xx: Initialized (%s) extension\n", ops->name);
1881 mutex_unlock(&em28xx_extension_devlist_lock); 1883 mutex_unlock(&em28xx_extension_devlist_lock);
1884 mutex_unlock(&em28xx_devlist_mutex);
1882 return 0; 1885 return 0;
1883} 1886}
1884EXPORT_SYMBOL(em28xx_register_extension); 1887EXPORT_SYMBOL(em28xx_register_extension);
@@ -1887,6 +1890,7 @@ void em28xx_unregister_extension(struct em28xx_ops *ops)
1887{ 1890{
1888 struct em28xx *dev = NULL; 1891 struct em28xx *dev = NULL;
1889 1892
1893 mutex_lock(&em28xx_devlist_mutex);
1890 list_for_each_entry(dev, &em28xx_devlist, devlist) { 1894 list_for_each_entry(dev, &em28xx_devlist, devlist) {
1891 if (dev) 1895 if (dev)
1892 ops->fini(dev); 1896 ops->fini(dev);
@@ -1896,6 +1900,7 @@ void em28xx_unregister_extension(struct em28xx_ops *ops)
1896 printk(KERN_INFO "Em28xx: Removed (%s) extension\n", ops->name); 1900 printk(KERN_INFO "Em28xx: Removed (%s) extension\n", ops->name);
1897 list_del(&ops->next); 1901 list_del(&ops->next);
1898 mutex_unlock(&em28xx_extension_devlist_lock); 1902 mutex_unlock(&em28xx_extension_devlist_lock);
1903 mutex_unlock(&em28xx_devlist_mutex);
1899} 1904}
1900EXPORT_SYMBOL(em28xx_unregister_extension); 1905EXPORT_SYMBOL(em28xx_unregister_extension);
1901 1906
@@ -1921,6 +1926,60 @@ static struct video_device *em28xx_vdev_init(struct em28xx *dev,
1921} 1926}
1922 1927
1923 1928
1929static int register_analog_devices(struct em28xx *dev)
1930{
1931 int ret;
1932
1933 /* allocate and fill video video_device struct */
1934 dev->vdev = em28xx_vdev_init(dev, &em28xx_video_template, "video");
1935 if (!dev->vdev) {
1936 em28xx_errdev("cannot allocate video_device.\n");
1937 return -ENODEV;
1938 }
1939
1940 /* register v4l2 video video_device */
1941 ret = video_register_device(dev->vdev, VFL_TYPE_GRABBER,
1942 video_nr[dev->devno]);
1943 if (ret) {
1944 em28xx_errdev("unable to register video device (error=%i).\n",
1945 ret);
1946 return ret;
1947 }
1948
1949 /* Allocate and fill vbi video_device struct */
1950 dev->vbi_dev = em28xx_vdev_init(dev, &em28xx_video_template, "vbi");
1951
1952 /* register v4l2 vbi video_device */
1953 ret = video_register_device(dev->vbi_dev, VFL_TYPE_VBI,
1954 vbi_nr[dev->devno]);
1955 if (ret < 0) {
1956 em28xx_errdev("unable to register vbi device\n");
1957 return ret;
1958 }
1959
1960 if (em28xx_boards[dev->model].radio.type == EM28XX_RADIO) {
1961 dev->radio_dev = em28xx_vdev_init(dev, &em28xx_radio_template, "radio");
1962 if (!dev->radio_dev) {
1963 em28xx_errdev("cannot allocate video_device.\n");
1964 return -ENODEV;
1965 }
1966 ret = video_register_device(dev->radio_dev, VFL_TYPE_RADIO,
1967 radio_nr[dev->devno]);
1968 if (ret < 0) {
1969 em28xx_errdev("can't register radio device\n");
1970 return ret;
1971 }
1972 em28xx_info("Registered radio device as /dev/radio%d\n",
1973 dev->radio_dev->num);
1974 }
1975
1976 em28xx_info("V4L2 device registered as /dev/video%d and /dev/vbi%d\n",
1977 dev->vdev->num, dev->vbi_dev->num);
1978
1979 return 0;
1980}
1981
1982
1924/* 1983/*
1925 * em28xx_init_dev() 1984 * em28xx_init_dev()
1926 * allocates and inits the device structs, registers i2c bus and v4l device 1985 * allocates and inits the device structs, registers i2c bus and v4l device
@@ -1936,6 +1995,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
1936 1995
1937 dev->udev = udev; 1996 dev->udev = udev;
1938 mutex_init(&dev->lock); 1997 mutex_init(&dev->lock);
1998 mutex_init(&dev->ctrl_urb_lock);
1939 spin_lock_init(&dev->slock); 1999 spin_lock_init(&dev->slock);
1940 init_waitqueue_head(&dev->open); 2000 init_waitqueue_head(&dev->open);
1941 init_waitqueue_head(&dev->wait_frame); 2001 init_waitqueue_head(&dev->wait_frame);
@@ -1953,8 +2013,6 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
1953 errCode = em28xx_config(dev); 2013 errCode = em28xx_config(dev);
1954 if (errCode) { 2014 if (errCode) {
1955 em28xx_errdev("error configuring device\n"); 2015 em28xx_errdev("error configuring device\n");
1956 em28xx_devused &= ~(1<<dev->devno);
1957 kfree(dev);
1958 return -ENOMEM; 2016 return -ENOMEM;
1959 } 2017 }
1960 2018
@@ -2001,50 +2059,6 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
2001 return errCode; 2059 return errCode;
2002 } 2060 }
2003 2061
2004 list_add_tail(&dev->devlist, &em28xx_devlist);
2005
2006 /* allocate and fill video video_device struct */
2007 dev->vdev = em28xx_vdev_init(dev, &em28xx_video_template, "video");
2008 if (NULL == dev->vdev) {
2009 em28xx_errdev("cannot allocate video_device.\n");
2010 goto fail_unreg;
2011 }
2012
2013 /* register v4l2 video video_device */
2014 retval = video_register_device(dev->vdev, VFL_TYPE_GRABBER,
2015 video_nr[dev->devno]);
2016 if (retval) {
2017 em28xx_errdev("unable to register video device (error=%i).\n",
2018 retval);
2019 goto fail_unreg;
2020 }
2021
2022 /* Allocate and fill vbi video_device struct */
2023 dev->vbi_dev = em28xx_vdev_init(dev, &em28xx_video_template, "vbi");
2024 /* register v4l2 vbi video_device */
2025 if (video_register_device(dev->vbi_dev, VFL_TYPE_VBI,
2026 vbi_nr[dev->devno]) < 0) {
2027 em28xx_errdev("unable to register vbi device\n");
2028 retval = -ENODEV;
2029 goto fail_unreg;
2030 }
2031
2032 if (em28xx_boards[dev->model].radio.type == EM28XX_RADIO) {
2033 dev->radio_dev = em28xx_vdev_init(dev, &em28xx_radio_template, "radio");
2034 if (NULL == dev->radio_dev) {
2035 em28xx_errdev("cannot allocate video_device.\n");
2036 goto fail_unreg;
2037 }
2038 retval = video_register_device(dev->radio_dev, VFL_TYPE_RADIO,
2039 radio_nr[dev->devno]);
2040 if (retval < 0) {
2041 em28xx_errdev("can't register radio device\n");
2042 goto fail_unreg;
2043 }
2044 em28xx_info("Registered radio device as /dev/radio%d\n",
2045 dev->radio_dev->num);
2046 }
2047
2048 /* init video dma queues */ 2062 /* init video dma queues */
2049 INIT_LIST_HEAD(&dev->vidq.active); 2063 INIT_LIST_HEAD(&dev->vidq.active);
2050 INIT_LIST_HEAD(&dev->vidq.queued); 2064 INIT_LIST_HEAD(&dev->vidq.queued);
@@ -2071,8 +2085,14 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
2071 2085
2072 video_mux(dev, 0); 2086 video_mux(dev, 0);
2073 2087
2074 em28xx_info("V4L2 device registered as /dev/video%d and /dev/vbi%d\n", 2088 mutex_lock(&em28xx_devlist_mutex);
2075 dev->vdev->num, dev->vbi_dev->num); 2089 list_add_tail(&dev->devlist, &em28xx_devlist);
2090 retval = register_analog_devices(dev);
2091 if (retval < 0) {
2092 em28xx_release_resources(dev);
2093 mutex_unlock(&em28xx_devlist_mutex);
2094 goto fail_reg_devices;
2095 }
2076 2096
2077 mutex_lock(&em28xx_extension_devlist_lock); 2097 mutex_lock(&em28xx_extension_devlist_lock);
2078 if (!list_empty(&em28xx_extension_devlist)) { 2098 if (!list_empty(&em28xx_extension_devlist)) {
@@ -2082,13 +2102,12 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
2082 } 2102 }
2083 } 2103 }
2084 mutex_unlock(&em28xx_extension_devlist_lock); 2104 mutex_unlock(&em28xx_extension_devlist_lock);
2105 mutex_unlock(&em28xx_devlist_mutex);
2085 2106
2086 return 0; 2107 return 0;
2087 2108
2088fail_unreg: 2109fail_reg_devices:
2089 em28xx_release_resources(dev);
2090 mutex_unlock(&dev->lock); 2110 mutex_unlock(&dev->lock);
2091 kfree(dev);
2092 return retval; 2111 return retval;
2093} 2112}
2094 2113
@@ -2231,8 +2250,12 @@ static int em28xx_usb_probe(struct usb_interface *interface,
2231 2250
2232 /* allocate device struct */ 2251 /* allocate device struct */
2233 retval = em28xx_init_dev(&dev, udev, nr); 2252 retval = em28xx_init_dev(&dev, udev, nr);
2234 if (retval) 2253 if (retval) {
2254 em28xx_devused &= ~(1<<dev->devno);
2255 kfree(dev);
2256
2235 return retval; 2257 return retval;
2258 }
2236 2259
2237 em28xx_info("Found %s\n", em28xx_boards[dev->model].name); 2260 em28xx_info("Found %s\n", em28xx_boards[dev->model].name);
2238 2261
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index 82781178e0a3..5956e9b3062f 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -102,6 +102,9 @@
102#define EM28XX_MIN_BUF 4 102#define EM28XX_MIN_BUF 4
103#define EM28XX_DEF_BUF 8 103#define EM28XX_DEF_BUF 8
104 104
105/*Limits the max URB message size */
106#define URB_MAX_CTRL_SIZE 80
107
105/* Params for validated field */ 108/* Params for validated field */
106#define EM28XX_BOARD_NOT_VALIDATED 1 109#define EM28XX_BOARD_NOT_VALIDATED 1
107#define EM28XX_BOARD_VALIDATED 0 110#define EM28XX_BOARD_VALIDATED 0
@@ -430,6 +433,7 @@ struct em28xx {
430 433
431 /* locks */ 434 /* locks */
432 struct mutex lock; 435 struct mutex lock;
436 struct mutex ctrl_urb_lock; /* protects urb_buf */
433 /* spinlock_t queue_lock; */ 437 /* spinlock_t queue_lock; */
434 struct list_head inqueue, outqueue; 438 struct list_head inqueue, outqueue;
435 wait_queue_head_t open, wait_frame, wait_stream; 439 wait_queue_head_t open, wait_frame, wait_stream;
@@ -451,6 +455,8 @@ struct em28xx {
451 unsigned int *alt_max_pkt_size; /* array of wMaxPacketSize */ 455 unsigned int *alt_max_pkt_size; /* array of wMaxPacketSize */
452 struct urb *urb[EM28XX_NUM_BUFS]; /* urb for isoc transfers */ 456 struct urb *urb[EM28XX_NUM_BUFS]; /* urb for isoc transfers */
453 char *transfer_buffer[EM28XX_NUM_BUFS]; /* transfer buffers for isoc transfer */ 457 char *transfer_buffer[EM28XX_NUM_BUFS]; /* transfer buffers for isoc transfer */
458 char urb_buf[URB_MAX_CTRL_SIZE]; /* urb control msg buffer */
459
454 /* helper funcs that call usb_control_msg */ 460 /* helper funcs that call usb_control_msg */
455 int (*em28xx_write_regs) (struct em28xx *dev, u16 reg, 461 int (*em28xx_write_regs) (struct em28xx *dev, u16 reg,
456 char *buf, int len); 462 char *buf, int len);
diff --git a/drivers/media/video/gspca/conex.c b/drivers/media/video/gspca/conex.c
index a9d51ba7c57c..de28354ea5ba 100644
--- a/drivers/media/video/gspca/conex.c
+++ b/drivers/media/video/gspca/conex.c
@@ -846,10 +846,13 @@ static int sd_start(struct gspca_dev *gspca_dev)
846 return 0; 846 return 0;
847} 847}
848 848
849/* called on streamoff with alt 0 and on disconnect */
849static void sd_stop0(struct gspca_dev *gspca_dev) 850static void sd_stop0(struct gspca_dev *gspca_dev)
850{ 851{
851 int retry = 50; 852 int retry = 50;
852 853
854 if (!gspca_dev->present)
855 return;
853 reg_w_val(gspca_dev, 0x0000, 0x00); 856 reg_w_val(gspca_dev, 0x0000, 0x00);
854 reg_r(gspca_dev, 0x0002, 1); 857 reg_r(gspca_dev, 0x0002, 1);
855 reg_w_val(gspca_dev, 0x0053, 0x00); 858 reg_w_val(gspca_dev, 0x0053, 0x00);
diff --git a/drivers/media/video/gspca/finepix.c b/drivers/media/video/gspca/finepix.c
index 65d3cbfe6b27..607942fd7970 100644
--- a/drivers/media/video/gspca/finepix.c
+++ b/drivers/media/video/gspca/finepix.c
@@ -276,6 +276,12 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
276 /* Stop the state machine */ 276 /* Stop the state machine */
277 if (dev->state != FPIX_NOP) 277 if (dev->state != FPIX_NOP)
278 wait_for_completion(&dev->can_close); 278 wait_for_completion(&dev->can_close);
279}
280
281/* called on streamoff with alt 0 and disconnect */
282static void sd_stop0(struct gspca_dev *gspca_dev)
283{
284 struct usb_fpix *dev = (struct usb_fpix *) gspca_dev;
279 285
280 usb_free_urb(dev->control_urb); 286 usb_free_urb(dev->control_urb);
281 dev->control_urb = NULL; 287 dev->control_urb = NULL;
@@ -385,6 +391,7 @@ static int sd_start(struct gspca_dev *gspca_dev)
385error: 391error:
386 /* Free the ressources */ 392 /* Free the ressources */
387 sd_stopN(gspca_dev); 393 sd_stopN(gspca_dev);
394 sd_stop0(gspca_dev);
388 return ret; 395 return ret;
389} 396}
390 397
@@ -425,6 +432,7 @@ static const struct sd_desc sd_desc = {
425 .init = sd_init, 432 .init = sd_init,
426 .start = sd_start, 433 .start = sd_start,
427 .stopN = sd_stopN, 434 .stopN = sd_stopN,
435 .stop0 = sd_stop0,
428}; 436};
429 437
430/* -- device connect -- */ 438/* -- device connect -- */
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index e48fbfc8ad05..02a6e9ef0337 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -646,15 +646,14 @@ static void gspca_stream_off(struct gspca_dev *gspca_dev)
646{ 646{
647 gspca_dev->streaming = 0; 647 gspca_dev->streaming = 0;
648 atomic_set(&gspca_dev->nevent, 0); 648 atomic_set(&gspca_dev->nevent, 0);
649 if (gspca_dev->present) { 649 if (gspca_dev->present
650 if (gspca_dev->sd_desc->stopN) 650 && gspca_dev->sd_desc->stopN)
651 gspca_dev->sd_desc->stopN(gspca_dev); 651 gspca_dev->sd_desc->stopN(gspca_dev);
652 destroy_urbs(gspca_dev); 652 destroy_urbs(gspca_dev);
653 gspca_set_alt0(gspca_dev); 653 gspca_set_alt0(gspca_dev);
654 if (gspca_dev->sd_desc->stop0) 654 if (gspca_dev->sd_desc->stop0)
655 gspca_dev->sd_desc->stop0(gspca_dev); 655 gspca_dev->sd_desc->stop0(gspca_dev);
656 PDEBUG(D_STREAM, "stream off OK"); 656 PDEBUG(D_STREAM, "stream off OK");
657 }
658} 657}
659 658
660static void gspca_set_default_mode(struct gspca_dev *gspca_dev) 659static void gspca_set_default_mode(struct gspca_dev *gspca_dev)
@@ -863,7 +862,7 @@ static int dev_open(struct inode *inode, struct file *file)
863 int ret; 862 int ret;
864 863
865 PDEBUG(D_STREAM, "%s open", current->comm); 864 PDEBUG(D_STREAM, "%s open", current->comm);
866 gspca_dev = (struct gspca_dev *) video_devdata(file); 865 gspca_dev = video_drvdata(file);
867 if (mutex_lock_interruptible(&gspca_dev->queue_lock)) 866 if (mutex_lock_interruptible(&gspca_dev->queue_lock))
868 return -ERESTARTSYS; 867 return -ERESTARTSYS;
869 if (!gspca_dev->present) { 868 if (!gspca_dev->present) {
@@ -875,6 +874,13 @@ static int dev_open(struct inode *inode, struct file *file)
875 ret = -EBUSY; 874 ret = -EBUSY;
876 goto out; 875 goto out;
877 } 876 }
877
878 /* protect the subdriver against rmmod */
879 if (!try_module_get(gspca_dev->module)) {
880 ret = -ENODEV;
881 goto out;
882 }
883
878 gspca_dev->users++; 884 gspca_dev->users++;
879 885
880 /* one more user */ 886 /* one more user */
@@ -884,10 +890,10 @@ static int dev_open(struct inode *inode, struct file *file)
884#ifdef GSPCA_DEBUG 890#ifdef GSPCA_DEBUG
885 /* activate the v4l2 debug */ 891 /* activate the v4l2 debug */
886 if (gspca_debug & D_V4L2) 892 if (gspca_debug & D_V4L2)
887 gspca_dev->vdev.debug |= V4L2_DEBUG_IOCTL 893 gspca_dev->vdev->debug |= V4L2_DEBUG_IOCTL
888 | V4L2_DEBUG_IOCTL_ARG; 894 | V4L2_DEBUG_IOCTL_ARG;
889 else 895 else
890 gspca_dev->vdev.debug &= ~(V4L2_DEBUG_IOCTL 896 gspca_dev->vdev->debug &= ~(V4L2_DEBUG_IOCTL
891 | V4L2_DEBUG_IOCTL_ARG); 897 | V4L2_DEBUG_IOCTL_ARG);
892#endif 898#endif
893 ret = 0; 899 ret = 0;
@@ -921,6 +927,7 @@ static int dev_close(struct inode *inode, struct file *file)
921 gspca_dev->memory = GSPCA_MEMORY_NO; 927 gspca_dev->memory = GSPCA_MEMORY_NO;
922 } 928 }
923 file->private_data = NULL; 929 file->private_data = NULL;
930 module_put(gspca_dev->module);
924 mutex_unlock(&gspca_dev->queue_lock); 931 mutex_unlock(&gspca_dev->queue_lock);
925 932
926 PDEBUG(D_STREAM, "close done"); 933 PDEBUG(D_STREAM, "close done");
@@ -1257,10 +1264,10 @@ static int vidioc_s_jpegcomp(struct file *file, void *priv,
1257 struct gspca_dev *gspca_dev = priv; 1264 struct gspca_dev *gspca_dev = priv;
1258 int ret; 1265 int ret;
1259 1266
1260 if (mutex_lock_interruptible(&gspca_dev->usb_lock))
1261 return -ERESTARTSYS;
1262 if (!gspca_dev->sd_desc->set_jcomp) 1267 if (!gspca_dev->sd_desc->set_jcomp)
1263 return -EINVAL; 1268 return -EINVAL;
1269 if (mutex_lock_interruptible(&gspca_dev->usb_lock))
1270 return -ERESTARTSYS;
1264 ret = gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp); 1271 ret = gspca_dev->sd_desc->set_jcomp(gspca_dev, jpegcomp);
1265 mutex_unlock(&gspca_dev->usb_lock); 1272 mutex_unlock(&gspca_dev->usb_lock);
1266 return ret; 1273 return ret;
@@ -1748,11 +1755,6 @@ out:
1748 return ret; 1755 return ret;
1749} 1756}
1750 1757
1751static void dev_release(struct video_device *vfd)
1752{
1753 /* nothing */
1754}
1755
1756static struct file_operations dev_fops = { 1758static struct file_operations dev_fops = {
1757 .owner = THIS_MODULE, 1759 .owner = THIS_MODULE,
1758 .open = dev_open, 1760 .open = dev_open,
@@ -1800,7 +1802,7 @@ static struct video_device gspca_template = {
1800 .name = "gspca main driver", 1802 .name = "gspca main driver",
1801 .fops = &dev_fops, 1803 .fops = &dev_fops,
1802 .ioctl_ops = &dev_ioctl_ops, 1804 .ioctl_ops = &dev_ioctl_ops,
1803 .release = dev_release, /* mandatory */ 1805 .release = video_device_release,
1804 .minor = -1, 1806 .minor = -1,
1805}; 1807};
1806 1808
@@ -1869,17 +1871,18 @@ int gspca_dev_probe(struct usb_interface *intf,
1869 init_waitqueue_head(&gspca_dev->wq); 1871 init_waitqueue_head(&gspca_dev->wq);
1870 1872
1871 /* init video stuff */ 1873 /* init video stuff */
1872 memcpy(&gspca_dev->vdev, &gspca_template, sizeof gspca_template); 1874 gspca_dev->vdev = video_device_alloc();
1873 gspca_dev->vdev.parent = &dev->dev; 1875 memcpy(gspca_dev->vdev, &gspca_template, sizeof gspca_template);
1874 memcpy(&gspca_dev->fops, &dev_fops, sizeof gspca_dev->fops); 1876 gspca_dev->vdev->parent = &dev->dev;
1875 gspca_dev->vdev.fops = &gspca_dev->fops; 1877 gspca_dev->module = module;
1876 gspca_dev->fops.owner = module; /* module protection */
1877 gspca_dev->present = 1; 1878 gspca_dev->present = 1;
1878 ret = video_register_device(&gspca_dev->vdev, 1879 video_set_drvdata(gspca_dev->vdev, gspca_dev);
1880 ret = video_register_device(gspca_dev->vdev,
1879 VFL_TYPE_GRABBER, 1881 VFL_TYPE_GRABBER,
1880 video_nr); 1882 video_nr);
1881 if (ret < 0) { 1883 if (ret < 0) {
1882 err("video_register_device err %d", ret); 1884 err("video_register_device err %d", ret);
1885 video_device_release(gspca_dev->vdev);
1883 goto out; 1886 goto out;
1884 } 1887 }
1885 1888
@@ -1887,7 +1890,8 @@ int gspca_dev_probe(struct usb_interface *intf,
1887 PDEBUG(D_PROBE, "probe ok"); 1890 PDEBUG(D_PROBE, "probe ok");
1888 return 0; 1891 return 0;
1889out: 1892out:
1890 kref_put(&gspca_dev->kref, gspca_delete); 1893 kfree(gspca_dev->usb_buf);
1894 kfree(gspca_dev);
1891 return ret; 1895 return ret;
1892} 1896}
1893EXPORT_SYMBOL(gspca_dev_probe); 1897EXPORT_SYMBOL(gspca_dev_probe);
@@ -1905,7 +1909,7 @@ void gspca_disconnect(struct usb_interface *intf)
1905 usb_set_intfdata(intf, NULL); 1909 usb_set_intfdata(intf, NULL);
1906 1910
1907/* We don't want people trying to open up the device */ 1911/* We don't want people trying to open up the device */
1908 video_unregister_device(&gspca_dev->vdev); 1912 video_unregister_device(gspca_dev->vdev);
1909 1913
1910 gspca_dev->present = 0; 1914 gspca_dev->present = 0;
1911 gspca_dev->streaming = 0; 1915 gspca_dev->streaming = 0;
diff --git a/drivers/media/video/gspca/gspca.h b/drivers/media/video/gspca/gspca.h
index 1d9dc90b4791..d25e8d69373b 100644
--- a/drivers/media/video/gspca/gspca.h
+++ b/drivers/media/video/gspca/gspca.h
@@ -97,7 +97,7 @@ struct sd_desc {
97 cam_pkt_op pkt_scan; 97 cam_pkt_op pkt_scan;
98/* optional operations */ 98/* optional operations */
99 cam_v_op stopN; /* called on stream off - main alt */ 99 cam_v_op stopN; /* called on stream off - main alt */
100 cam_v_op stop0; /* called on stream off - alt 0 */ 100 cam_v_op stop0; /* called on stream off & disconnect - alt 0 */
101 cam_v_op dq_callback; /* called when a frame has been dequeued */ 101 cam_v_op dq_callback; /* called when a frame has been dequeued */
102 cam_jpg_op get_jcomp; 102 cam_jpg_op get_jcomp;
103 cam_jpg_op set_jcomp; 103 cam_jpg_op set_jcomp;
@@ -120,8 +120,8 @@ struct gspca_frame {
120}; 120};
121 121
122struct gspca_dev { 122struct gspca_dev {
123 struct video_device vdev; /* !! must be the first item */ 123 struct video_device *vdev;
124 struct file_operations fops; 124 struct module *module; /* subdriver handling the device */
125 struct usb_device *dev; 125 struct usb_device *dev;
126 struct kref kref; 126 struct kref kref;
127 struct file *capt_file; /* file doing video capture */ 127 struct file *capt_file; /* file doing video capture */
diff --git a/drivers/media/video/gspca/pac7311.c b/drivers/media/video/gspca/pac7311.c
index e5ff9a6199ef..fbd45e235d97 100644
--- a/drivers/media/video/gspca/pac7311.c
+++ b/drivers/media/video/gspca/pac7311.c
@@ -749,10 +749,13 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
749 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */ 749 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */
750} 750}
751 751
752/* called on streamoff with alt 0 and on disconnect */
752static void sd_stop0(struct gspca_dev *gspca_dev) 753static void sd_stop0(struct gspca_dev *gspca_dev)
753{ 754{
754 struct sd *sd = (struct sd *) gspca_dev; 755 struct sd *sd = (struct sd *) gspca_dev;
755 756
757 if (!gspca_dev->present)
758 return;
756 if (sd->sensor == SENSOR_PAC7302) { 759 if (sd->sensor == SENSOR_PAC7302) {
757 reg_w(gspca_dev, 0xff, 0x01); 760 reg_w(gspca_dev, 0xff, 0x01);
758 reg_w(gspca_dev, 0x78, 0x40); 761 reg_w(gspca_dev, 0x78, 0x40);
diff --git a/drivers/media/video/gspca/spca501.c b/drivers/media/video/gspca/spca501.c
index b742f260c7ca..e29954c1c38c 100644
--- a/drivers/media/video/gspca/spca501.c
+++ b/drivers/media/video/gspca/spca501.c
@@ -2022,8 +2022,11 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
2022 reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x01, 0x00); 2022 reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x01, 0x00);
2023} 2023}
2024 2024
2025/* called on streamoff with alt 0 and on disconnect */
2025static void sd_stop0(struct gspca_dev *gspca_dev) 2026static void sd_stop0(struct gspca_dev *gspca_dev)
2026{ 2027{
2028 if (!gspca_dev->present)
2029 return;
2027 reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x05, 0x00); 2030 reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x05, 0x00);
2028} 2031}
2029 2032
diff --git a/drivers/media/video/gspca/spca505.c b/drivers/media/video/gspca/spca505.c
index b345749213cf..895b9fe4018c 100644
--- a/drivers/media/video/gspca/spca505.c
+++ b/drivers/media/video/gspca/spca505.c
@@ -742,8 +742,12 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
742 reg_write(gspca_dev->dev, 0x02, 0x00, 0x00); 742 reg_write(gspca_dev->dev, 0x02, 0x00, 0x00);
743} 743}
744 744
745/* called on streamoff with alt 0 and on disconnect */
745static void sd_stop0(struct gspca_dev *gspca_dev) 746static void sd_stop0(struct gspca_dev *gspca_dev)
746{ 747{
748 if (!gspca_dev->present)
749 return;
750
747 /* This maybe reset or power control */ 751 /* This maybe reset or power control */
748 reg_write(gspca_dev->dev, 0x03, 0x03, 0x20); 752 reg_write(gspca_dev->dev, 0x03, 0x03, 0x20);
749 reg_write(gspca_dev->dev, 0x03, 0x01, 0x0); 753 reg_write(gspca_dev->dev, 0x03, 0x01, 0x0);
diff --git a/drivers/media/video/gspca/spca561.c b/drivers/media/video/gspca/spca561.c
index 020a03c466c1..c3de4e44123d 100644
--- a/drivers/media/video/gspca/spca561.c
+++ b/drivers/media/video/gspca/spca561.c
@@ -766,10 +766,13 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
766 } 766 }
767} 767}
768 768
769/* called on streamoff with alt 0 and on disconnect */
769static void sd_stop0(struct gspca_dev *gspca_dev) 770static void sd_stop0(struct gspca_dev *gspca_dev)
770{ 771{
771 struct sd *sd = (struct sd *) gspca_dev; 772 struct sd *sd = (struct sd *) gspca_dev;
772 773
774 if (!gspca_dev->present)
775 return;
773 if (sd->chip_revision == Rev012A) { 776 if (sd->chip_revision == Rev012A) {
774 reg_w_val(gspca_dev->dev, 0x8118, 0x29); 777 reg_w_val(gspca_dev->dev, 0x8118, 0x29);
775 reg_w_val(gspca_dev->dev, 0x8114, 0x08); 778 reg_w_val(gspca_dev->dev, 0x8114, 0x08);
diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c
index be46d9232540..17af353ddd1c 100644
--- a/drivers/media/video/gspca/vc032x.c
+++ b/drivers/media/video/gspca/vc032x.c
@@ -1633,10 +1633,13 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1633 reg_w(dev, 0xa0, 0x09, 0xb003); 1633 reg_w(dev, 0xa0, 0x09, 0xb003);
1634} 1634}
1635 1635
1636/* called on streamoff with alt 0 and on disconnect */
1636static void sd_stop0(struct gspca_dev *gspca_dev) 1637static void sd_stop0(struct gspca_dev *gspca_dev)
1637{ 1638{
1638 struct usb_device *dev = gspca_dev->dev; 1639 struct usb_device *dev = gspca_dev->dev;
1639 1640
1641 if (!gspca_dev->present)
1642 return;
1640 reg_w(dev, 0x89, 0xffff, 0xffff); 1643 reg_w(dev, 0x89, 0xffff, 0xffff);
1641} 1644}
1642 1645
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c
index 8b3101d347c3..0befacf49855 100644
--- a/drivers/media/video/gspca/zc3xx.c
+++ b/drivers/media/video/gspca/zc3xx.c
@@ -7336,10 +7336,13 @@ static int sd_start(struct gspca_dev *gspca_dev)
7336 return 0; 7336 return 0;
7337} 7337}
7338 7338
7339/* called on streamoff with alt 0 and on disconnect */
7339static void sd_stop0(struct gspca_dev *gspca_dev) 7340static void sd_stop0(struct gspca_dev *gspca_dev)
7340{ 7341{
7341 struct sd *sd = (struct sd *) gspca_dev; 7342 struct sd *sd = (struct sd *) gspca_dev;
7342 7343
7344 if (!gspca_dev->present)
7345 return;
7343 send_unknown(gspca_dev->dev, sd->sensor); 7346 send_unknown(gspca_dev->dev, sd->sensor);
7344} 7347}
7345 7348
diff --git a/drivers/media/video/pvrusb2/Kconfig b/drivers/media/video/pvrusb2/Kconfig
index 19eb274c9cd0..854c2a885358 100644
--- a/drivers/media/video/pvrusb2/Kconfig
+++ b/drivers/media/video/pvrusb2/Kconfig
@@ -42,7 +42,7 @@ config VIDEO_PVRUSB2_DVB
42 select DVB_S5H1411 if !DVB_FE_CUSTOMISE 42 select DVB_S5H1411 if !DVB_FE_CUSTOMISE
43 select DVB_TDA10048 if !DVB_FE_CUSTOMIZE 43 select DVB_TDA10048 if !DVB_FE_CUSTOMIZE
44 select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE 44 select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
45 select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE 45 select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
46 select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE 46 select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
47 ---help--- 47 ---help---
48 48
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c
index 5272926db73e..3c3f8cf73108 100644
--- a/drivers/media/video/s2255drv.c
+++ b/drivers/media/video/s2255drv.c
@@ -192,7 +192,7 @@ struct s2255_dmaqueue {
192#define S2255_FW_FAILED 3 192#define S2255_FW_FAILED 3
193#define S2255_FW_DISCONNECTING 4 193#define S2255_FW_DISCONNECTING 4
194 194
195#define S2255_FW_MARKER 0x22552f2f 195#define S2255_FW_MARKER cpu_to_le32(0x22552f2f)
196/* 2255 read states */ 196/* 2255 read states */
197#define S2255_READ_IDLE 0 197#define S2255_READ_IDLE 0
198#define S2255_READ_FRAME 1 198#define S2255_READ_FRAME 1
diff --git a/drivers/media/video/saa7134/Kconfig b/drivers/media/video/saa7134/Kconfig
index 7021bbf5897b..fc2164e28e76 100644
--- a/drivers/media/video/saa7134/Kconfig
+++ b/drivers/media/video/saa7134/Kconfig
@@ -34,9 +34,9 @@ config VIDEO_SAA7134_DVB
34 select DVB_NXT200X if !DVB_FE_CUSTOMISE 34 select DVB_NXT200X if !DVB_FE_CUSTOMISE
35 select DVB_TDA10086 if !DVB_FE_CUSTOMISE 35 select DVB_TDA10086 if !DVB_FE_CUSTOMISE
36 select DVB_TDA826X if !DVB_FE_CUSTOMISE 36 select DVB_TDA826X if !DVB_FE_CUSTOMISE
37 select MEDIA_TUNER_TDA827X if !DVB_FE_CUSTOMISE
38 select DVB_ISL6421 if !DVB_FE_CUSTOMISE 37 select DVB_ISL6421 if !DVB_FE_CUSTOMISE
39 select MEDIA_TUNER_SIMPLE if !DVB_FE_CUSTOMISE 38 select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE
39 select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE
40 ---help--- 40 ---help---
41 This adds support for DVB cards based on the 41 This adds support for DVB cards based on the
42 Philips saa7134 chip. 42 Philips saa7134 chip.
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index d62fd4f6b52e..ee090413e598 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -2008,6 +2008,9 @@ mptscsih_host_reset(struct scsi_cmnd *SCpnt)
2008 return FAILED; 2008 return FAILED;
2009 } 2009 }
2010 2010
2011 /* make sure we have no outstanding commands at this stage */
2012 mptscsih_flush_running_cmds(hd);
2013
2011 ioc = hd->ioc; 2014 ioc = hd->ioc;
2012 printk(MYIOC_s_INFO_FMT "attempting host reset! (sc=%p)\n", 2015 printk(MYIOC_s_INFO_FMT "attempting host reset! (sc=%p)\n",
2013 ioc->name, SCpnt); 2016 ioc->name, SCpnt);
diff --git a/drivers/message/i2o/i2o_block.c b/drivers/message/i2o/i2o_block.c
index 84bdc2ee69e6..a443e136dc41 100644
--- a/drivers/message/i2o/i2o_block.c
+++ b/drivers/message/i2o/i2o_block.c
@@ -354,7 +354,7 @@ static inline void i2o_block_sglist_free(struct i2o_block_request *ireq)
354 * @req: the request to prepare 354 * @req: the request to prepare
355 * 355 *
356 * Allocate the necessary i2o_block_request struct and connect it to 356 * Allocate the necessary i2o_block_request struct and connect it to
357 * the request. This is needed that we not loose the SG list later on. 357 * the request. This is needed that we not lose the SG list later on.
358 * 358 *
359 * Returns BLKPREP_OK on success or BLKPREP_DEFER on failure. 359 * Returns BLKPREP_OK on success or BLKPREP_DEFER on failure.
360 */ 360 */
diff --git a/drivers/message/i2o/iop.c b/drivers/message/i2o/iop.c
index be2b5926d26c..6e53a30bfd38 100644
--- a/drivers/message/i2o/iop.c
+++ b/drivers/message/i2o/iop.c
@@ -49,7 +49,6 @@ static int i2o_hrt_get(struct i2o_controller *c);
49/** 49/**
50 * i2o_msg_get_wait - obtain an I2O message from the IOP 50 * i2o_msg_get_wait - obtain an I2O message from the IOP
51 * @c: I2O controller 51 * @c: I2O controller
52 * @msg: pointer to a I2O message pointer
53 * @wait: how long to wait until timeout 52 * @wait: how long to wait until timeout
54 * 53 *
55 * This function waits up to wait seconds for a message slot to be 54 * This function waits up to wait seconds for a message slot to be
diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
index 8c389d606c30..3ee698ad8599 100644
--- a/drivers/misc/sgi-gru/grufault.c
+++ b/drivers/misc/sgi-gru/grufault.c
@@ -254,7 +254,11 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
254 return 1; 254 return 1;
255 255
256 *paddr = pte_pfn(pte) << PAGE_SHIFT; 256 *paddr = pte_pfn(pte) << PAGE_SHIFT;
257#ifdef CONFIG_HUGETLB_PAGE
257 *pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT; 258 *pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
259#else
260 *pageshift = PAGE_SHIFT;
261#endif
258 return 0; 262 return 0;
259 263
260err: 264err:
diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c
index 5c027b6b4e5a..650983806392 100644
--- a/drivers/misc/sgi-gru/grufile.c
+++ b/drivers/misc/sgi-gru/grufile.c
@@ -481,7 +481,7 @@ struct vm_operations_struct gru_vm_ops = {
481 .fault = gru_fault, 481 .fault = gru_fault,
482}; 482};
483 483
484module_init(gru_init); 484fs_initcall(gru_init);
485module_exit(gru_exit); 485module_exit(gru_exit);
486 486
487module_param(gru_options, ulong, 0644); 487module_param(gru_options, ulong, 0644);
diff --git a/drivers/misc/sony-laptop.c b/drivers/misc/sony-laptop.c
index 7bcb81002dcf..571b211608d1 100644
--- a/drivers/misc/sony-laptop.c
+++ b/drivers/misc/sony-laptop.c
@@ -1038,8 +1038,8 @@ static int sony_nc_add(struct acpi_device *device)
1038 goto outinput; 1038 goto outinput;
1039 } 1039 }
1040 1040
1041 if (!acpi_video_backlight_support()) { 1041 if (acpi_video_backlight_support()) {
1042 printk(KERN_INFO DRV_PFX "Sony: Brightness ignored, must be " 1042 printk(KERN_INFO DRV_PFX "brightness ignored, must be "
1043 "controlled by ACPI video driver\n"); 1043 "controlled by ACPI video driver\n");
1044 } else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT", 1044 } else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT",
1045 &handle))) { 1045 &handle))) {
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index 7a4a26b0edd2..899766e16fa8 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -5318,6 +5318,7 @@ static enum fan_control_commands fan_control_commands;
5318 5318
5319static u8 fan_control_initial_status; 5319static u8 fan_control_initial_status;
5320static u8 fan_control_desired_level; 5320static u8 fan_control_desired_level;
5321static u8 fan_control_resume_level;
5321static int fan_watchdog_maxinterval; 5322static int fan_watchdog_maxinterval;
5322 5323
5323static struct mutex fan_mutex; 5324static struct mutex fan_mutex;
@@ -5440,8 +5441,8 @@ static int fan_set_level(int level)
5440 5441
5441 case TPACPI_FAN_WR_ACPI_FANS: 5442 case TPACPI_FAN_WR_ACPI_FANS:
5442 case TPACPI_FAN_WR_TPEC: 5443 case TPACPI_FAN_WR_TPEC:
5443 if ((level != TP_EC_FAN_AUTO) && 5444 if (!(level & TP_EC_FAN_AUTO) &&
5444 (level != TP_EC_FAN_FULLSPEED) && 5445 !(level & TP_EC_FAN_FULLSPEED) &&
5445 ((level < 0) || (level > 7))) 5446 ((level < 0) || (level > 7)))
5446 return -EINVAL; 5447 return -EINVAL;
5447 5448
@@ -6005,38 +6006,67 @@ static void fan_exit(void)
6005 6006
6006static void fan_suspend(pm_message_t state) 6007static void fan_suspend(pm_message_t state)
6007{ 6008{
6009 int rc;
6010
6008 if (!fan_control_allowed) 6011 if (!fan_control_allowed)
6009 return; 6012 return;
6010 6013
6011 /* Store fan status in cache */ 6014 /* Store fan status in cache */
6012 fan_get_status_safe(NULL); 6015 fan_control_resume_level = 0;
6016 rc = fan_get_status_safe(&fan_control_resume_level);
6017 if (rc < 0)
6018 printk(TPACPI_NOTICE
6019 "failed to read fan level for later "
6020 "restore during resume: %d\n", rc);
6021
6022 /* if it is undefined, don't attempt to restore it.
6023 * KEEP THIS LAST */
6013 if (tp_features.fan_ctrl_status_undef) 6024 if (tp_features.fan_ctrl_status_undef)
6014 fan_control_desired_level = TP_EC_FAN_AUTO; 6025 fan_control_resume_level = 0;
6015} 6026}
6016 6027
6017static void fan_resume(void) 6028static void fan_resume(void)
6018{ 6029{
6019 u8 saved_fan_level;
6020 u8 current_level = 7; 6030 u8 current_level = 7;
6021 bool do_set = false; 6031 bool do_set = false;
6032 int rc;
6022 6033
6023 /* DSDT *always* updates status on resume */ 6034 /* DSDT *always* updates status on resume */
6024 tp_features.fan_ctrl_status_undef = 0; 6035 tp_features.fan_ctrl_status_undef = 0;
6025 6036
6026 saved_fan_level = fan_control_desired_level;
6027 if (!fan_control_allowed || 6037 if (!fan_control_allowed ||
6038 !fan_control_resume_level ||
6028 (fan_get_status_safe(&current_level) < 0)) 6039 (fan_get_status_safe(&current_level) < 0))
6029 return; 6040 return;
6030 6041
6031 switch (fan_control_access_mode) { 6042 switch (fan_control_access_mode) {
6032 case TPACPI_FAN_WR_ACPI_SFAN: 6043 case TPACPI_FAN_WR_ACPI_SFAN:
6033 do_set = (saved_fan_level > current_level); 6044 /* never decrease fan level */
6045 do_set = (fan_control_resume_level > current_level);
6034 break; 6046 break;
6035 case TPACPI_FAN_WR_ACPI_FANS: 6047 case TPACPI_FAN_WR_ACPI_FANS:
6036 case TPACPI_FAN_WR_TPEC: 6048 case TPACPI_FAN_WR_TPEC:
6037 do_set = ((saved_fan_level & TP_EC_FAN_FULLSPEED) || 6049 /* never decrease fan level, scale is:
6038 (saved_fan_level == 7 && 6050 * TP_EC_FAN_FULLSPEED > 7 >= TP_EC_FAN_AUTO
6039 !(current_level & TP_EC_FAN_FULLSPEED))); 6051 *
6052 * We expect the firmware to set either 7 or AUTO, but we
6053 * handle FULLSPEED out of paranoia.
6054 *
6055 * So, we can safely only restore FULLSPEED or 7, anything
6056 * else could slow the fan. Restoring AUTO is useless, at
6057 * best that's exactly what the DSDT already set (it is the
6058 * slower it uses).
6059 *
6060 * Always keep in mind that the DSDT *will* have set the
6061 * fans to what the vendor supposes is the best level. We
6062 * muck with it only to speed the fan up.
6063 */
6064 if (fan_control_resume_level != 7 &&
6065 !(fan_control_resume_level & TP_EC_FAN_FULLSPEED))
6066 return;
6067 else
6068 do_set = !(current_level & TP_EC_FAN_FULLSPEED) &&
6069 (current_level != fan_control_resume_level);
6040 break; 6070 break;
6041 default: 6071 default:
6042 return; 6072 return;
@@ -6044,8 +6074,11 @@ static void fan_resume(void)
6044 if (do_set) { 6074 if (do_set) {
6045 printk(TPACPI_NOTICE 6075 printk(TPACPI_NOTICE
6046 "restoring fan level to 0x%02x\n", 6076 "restoring fan level to 0x%02x\n",
6047 saved_fan_level); 6077 fan_control_resume_level);
6048 fan_set_level_safe(saved_fan_level); 6078 rc = fan_set_level_safe(fan_control_resume_level);
6079 if (rc < 0)
6080 printk(TPACPI_NOTICE
6081 "failed to restore fan level: %d\n", rc);
6049 } 6082 }
6050} 6083}
6051 6084
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 76a76751da36..6659b2275c0c 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -37,9 +37,9 @@
37#define OPCODE_NORM_READ 0x03 /* Read data bytes (low frequency) */ 37#define OPCODE_NORM_READ 0x03 /* Read data bytes (low frequency) */
38#define OPCODE_FAST_READ 0x0b /* Read data bytes (high frequency) */ 38#define OPCODE_FAST_READ 0x0b /* Read data bytes (high frequency) */
39#define OPCODE_PP 0x02 /* Page program (up to 256 bytes) */ 39#define OPCODE_PP 0x02 /* Page program (up to 256 bytes) */
40#define OPCODE_BE_4K 0x20 /* Erase 4KiB block */ 40#define OPCODE_BE_4K 0x20 /* Erase 4KiB block */
41#define OPCODE_BE_32K 0x52 /* Erase 32KiB block */ 41#define OPCODE_BE_32K 0x52 /* Erase 32KiB block */
42#define OPCODE_BE 0xc7 /* Erase whole flash block */ 42#define OPCODE_CHIP_ERASE 0xc7 /* Erase whole flash chip */
43#define OPCODE_SE 0xd8 /* Sector erase (usually 64KiB) */ 43#define OPCODE_SE 0xd8 /* Sector erase (usually 64KiB) */
44#define OPCODE_RDID 0x9f /* Read JEDEC ID */ 44#define OPCODE_RDID 0x9f /* Read JEDEC ID */
45 45
@@ -167,7 +167,7 @@ static int wait_till_ready(struct m25p *flash)
167 * 167 *
168 * Returns 0 if successful, non-zero otherwise. 168 * Returns 0 if successful, non-zero otherwise.
169 */ 169 */
170static int erase_block(struct m25p *flash) 170static int erase_chip(struct m25p *flash)
171{ 171{
172 DEBUG(MTD_DEBUG_LEVEL3, "%s: %s %dKiB\n", 172 DEBUG(MTD_DEBUG_LEVEL3, "%s: %s %dKiB\n",
173 flash->spi->dev.bus_id, __func__, 173 flash->spi->dev.bus_id, __func__,
@@ -181,7 +181,7 @@ static int erase_block(struct m25p *flash)
181 write_enable(flash); 181 write_enable(flash);
182 182
183 /* Set up command buffer. */ 183 /* Set up command buffer. */
184 flash->command[0] = OPCODE_BE; 184 flash->command[0] = OPCODE_CHIP_ERASE;
185 185
186 spi_write(flash->spi, flash->command, 1); 186 spi_write(flash->spi, flash->command, 1);
187 187
@@ -250,15 +250,18 @@ static int m25p80_erase(struct mtd_info *mtd, struct erase_info *instr)
250 250
251 mutex_lock(&flash->lock); 251 mutex_lock(&flash->lock);
252 252
253 /* REVISIT in some cases we could speed up erasing large regions 253 /* whole-chip erase? */
254 * by using OPCODE_SE instead of OPCODE_BE_4K 254 if (len == flash->mtd.size && erase_chip(flash)) {
255 */
256
257 /* now erase those sectors */
258 if (len == flash->mtd.size && erase_block(flash)) {
259 instr->state = MTD_ERASE_FAILED; 255 instr->state = MTD_ERASE_FAILED;
260 mutex_unlock(&flash->lock); 256 mutex_unlock(&flash->lock);
261 return -EIO; 257 return -EIO;
258
259 /* REVISIT in some cases we could speed up erasing large regions
260 * by using OPCODE_SE instead of OPCODE_BE_4K. We may have set up
261 * to use "small sector erase", but that's not always optimal.
262 */
263
264 /* "sector"-at-a-time erase */
262 } else { 265 } else {
263 while (len) { 266 while (len) {
264 if (erase_sector(flash, addr)) { 267 if (erase_sector(flash, addr)) {
@@ -574,10 +577,11 @@ static struct flash_info *__devinit jedec_probe(struct spi_device *spi)
574 for (tmp = 0, info = m25p_data; 577 for (tmp = 0, info = m25p_data;
575 tmp < ARRAY_SIZE(m25p_data); 578 tmp < ARRAY_SIZE(m25p_data);
576 tmp++, info++) { 579 tmp++, info++) {
577 if (info->jedec_id == jedec) 580 if (info->jedec_id == jedec) {
578 if (ext_jedec != 0 && info->ext_id != ext_jedec) 581 if (info->ext_id != 0 && info->ext_id != ext_jedec)
579 continue; 582 continue;
580 return info; 583 return info;
584 }
581 } 585 }
582 dev_err(&spi->dev, "unrecognized JEDEC id %06x\n", jedec); 586 dev_err(&spi->dev, "unrecognized JEDEC id %06x\n", jedec);
583 return NULL; 587 return NULL;
diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c
index 42d844f8f6bf..dfbf3f270cea 100644
--- a/drivers/mtd/maps/physmap.c
+++ b/drivers/mtd/maps/physmap.c
@@ -19,7 +19,7 @@
19#include <linux/mtd/partitions.h> 19#include <linux/mtd/partitions.h>
20#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
21#include <linux/mtd/concat.h> 21#include <linux/mtd/concat.h>
22#include <asm/io.h> 22#include <linux/io.h>
23 23
24#define MAX_RESOURCES 4 24#define MAX_RESOURCES 4
25 25
@@ -27,7 +27,6 @@ struct physmap_flash_info {
27 struct mtd_info *mtd[MAX_RESOURCES]; 27 struct mtd_info *mtd[MAX_RESOURCES];
28 struct mtd_info *cmtd; 28 struct mtd_info *cmtd;
29 struct map_info map[MAX_RESOURCES]; 29 struct map_info map[MAX_RESOURCES];
30 struct resource *res;
31#ifdef CONFIG_MTD_PARTITIONS 30#ifdef CONFIG_MTD_PARTITIONS
32 int nr_parts; 31 int nr_parts;
33 struct mtd_partition *parts; 32 struct mtd_partition *parts;
@@ -70,16 +69,7 @@ static int physmap_flash_remove(struct platform_device *dev)
70#endif 69#endif
71 map_destroy(info->mtd[i]); 70 map_destroy(info->mtd[i]);
72 } 71 }
73
74 if (info->map[i].virt != NULL)
75 iounmap(info->map[i].virt);
76 }
77
78 if (info->res != NULL) {
79 release_resource(info->res);
80 kfree(info->res);
81 } 72 }
82
83 return 0; 73 return 0;
84} 74}
85 75
@@ -101,7 +91,8 @@ static int physmap_flash_probe(struct platform_device *dev)
101 if (physmap_data == NULL) 91 if (physmap_data == NULL)
102 return -ENODEV; 92 return -ENODEV;
103 93
104 info = kzalloc(sizeof(struct physmap_flash_info), GFP_KERNEL); 94 info = devm_kzalloc(&dev->dev, sizeof(struct physmap_flash_info),
95 GFP_KERNEL);
105 if (info == NULL) { 96 if (info == NULL) {
106 err = -ENOMEM; 97 err = -ENOMEM;
107 goto err_out; 98 goto err_out;
@@ -114,10 +105,10 @@ static int physmap_flash_probe(struct platform_device *dev)
114 (unsigned long long)(dev->resource[i].end - dev->resource[i].start + 1), 105 (unsigned long long)(dev->resource[i].end - dev->resource[i].start + 1),
115 (unsigned long long)dev->resource[i].start); 106 (unsigned long long)dev->resource[i].start);
116 107
117 info->res = request_mem_region(dev->resource[i].start, 108 if (!devm_request_mem_region(&dev->dev,
118 dev->resource[i].end - dev->resource[i].start + 1, 109 dev->resource[i].start,
119 dev->dev.bus_id); 110 dev->resource[i].end - dev->resource[i].start + 1,
120 if (info->res == NULL) { 111 dev->dev.bus_id)) {
121 dev_err(&dev->dev, "Could not reserve memory region\n"); 112 dev_err(&dev->dev, "Could not reserve memory region\n");
122 err = -ENOMEM; 113 err = -ENOMEM;
123 goto err_out; 114 goto err_out;
@@ -129,7 +120,8 @@ static int physmap_flash_probe(struct platform_device *dev)
129 info->map[i].bankwidth = physmap_data->width; 120 info->map[i].bankwidth = physmap_data->width;
130 info->map[i].set_vpp = physmap_data->set_vpp; 121 info->map[i].set_vpp = physmap_data->set_vpp;
131 122
132 info->map[i].virt = ioremap(info->map[i].phys, info->map[i].size); 123 info->map[i].virt = devm_ioremap(&dev->dev, info->map[i].phys,
124 info->map[i].size);
133 if (info->map[i].virt == NULL) { 125 if (info->map[i].virt == NULL) {
134 dev_err(&dev->dev, "Failed to ioremap flash region\n"); 126 dev_err(&dev->dev, "Failed to ioremap flash region\n");
135 err = EIO; 127 err = EIO;
diff --git a/drivers/mtd/nand/fsl_upm.c b/drivers/mtd/nand/fsl_upm.c
index 024e3fffd4bb..a83192f80eba 100644
--- a/drivers/mtd/nand/fsl_upm.c
+++ b/drivers/mtd/nand/fsl_upm.c
@@ -163,9 +163,11 @@ static int __devinit fun_chip_init(struct fsl_upm_nand *fun,
163 ret = parse_mtd_partitions(&fun->mtd, part_types, &fun->parts, 0); 163 ret = parse_mtd_partitions(&fun->mtd, part_types, &fun->parts, 0);
164 164
165#ifdef CONFIG_MTD_OF_PARTS 165#ifdef CONFIG_MTD_OF_PARTS
166 if (ret == 0) 166 if (ret == 0) {
167 ret = of_mtd_parse_partitions(fun->dev, &fun->mtd, 167 ret = of_mtd_parse_partitions(fun->dev, flash_np, &fun->parts);
168 flash_np, &fun->parts); 168 if (ret < 0)
169 goto err;
170 }
169#endif 171#endif
170 if (ret > 0) 172 if (ret > 0)
171 ret = add_mtd_partitions(&fun->mtd, fun->parts, ret); 173 ret = add_mtd_partitions(&fun->mtd, fun->parts, ret);
diff --git a/drivers/mtd/nand/pasemi_nand.c b/drivers/mtd/nand/pasemi_nand.c
index 75c899039023..9bd6c9ac8443 100644
--- a/drivers/mtd/nand/pasemi_nand.c
+++ b/drivers/mtd/nand/pasemi_nand.c
@@ -141,6 +141,7 @@ static int __devinit pasemi_nand_probe(struct of_device *ofdev,
141 } 141 }
142 142
143 lpcctl = pci_resource_start(pdev, 0); 143 lpcctl = pci_resource_start(pdev, 0);
144 pci_dev_put(pdev);
144 145
145 if (!request_region(lpcctl, 4, driver_name)) { 146 if (!request_region(lpcctl, 4, driver_name)) {
146 err = -EBUSY; 147 err = -EBUSY;
diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
index c0fa9c9edf08..15f0a26730ae 100644
--- a/drivers/mtd/nand/pxa3xx_nand.c
+++ b/drivers/mtd/nand/pxa3xx_nand.c
@@ -269,6 +269,7 @@ static struct pxa3xx_nand_timing stm2GbX16_timing = {
269 269
270static struct pxa3xx_nand_flash stm2GbX16 = { 270static struct pxa3xx_nand_flash stm2GbX16 = {
271 .timing = &stm2GbX16_timing, 271 .timing = &stm2GbX16_timing,
272 .cmdset = &largepage_cmdset,
272 .page_per_block = 64, 273 .page_per_block = 64,
273 .page_size = 2048, 274 .page_size = 2048,
274 .flash_width = 16, 275 .flash_width = 16,
diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c
index e39b21d3e168..a7e4d985f5ef 100644
--- a/drivers/mtd/onenand/omap2.c
+++ b/drivers/mtd/onenand/omap2.c
@@ -32,19 +32,18 @@
32#include <linux/platform_device.h> 32#include <linux/platform_device.h>
33#include <linux/interrupt.h> 33#include <linux/interrupt.h>
34#include <linux/delay.h> 34#include <linux/delay.h>
35#include <linux/dma-mapping.h>
36#include <linux/io.h>
35 37
36#include <asm/io.h>
37#include <asm/mach/flash.h> 38#include <asm/mach/flash.h>
38#include <asm/arch/gpmc.h> 39#include <mach/gpmc.h>
39#include <asm/arch/onenand.h> 40#include <mach/onenand.h>
40#include <asm/arch/gpio.h> 41#include <mach/gpio.h>
41#include <asm/arch/pm.h> 42#include <mach/pm.h>
42 43
43#include <linux/dma-mapping.h> 44#include <mach/dma.h>
44#include <asm/dma-mapping.h>
45#include <asm/arch/dma.h>
46 45
47#include <asm/arch/board.h> 46#include <mach/board.h>
48 47
49#define DRIVER_NAME "omap2-onenand" 48#define DRIVER_NAME "omap2-onenand"
50 49
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index e04bcf1dff87..d8966bae0e0b 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -1022,7 +1022,7 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to,
1022 } 1022 }
1023 1023
1024 /* 1024 /*
1025 * OK, now the LEB is locked and we can safely start moving iy. Since 1025 * OK, now the LEB is locked and we can safely start moving it. Since
1026 * this function utilizes thie @ubi->peb1_buf buffer which is shared 1026 * this function utilizes thie @ubi->peb1_buf buffer which is shared
1027 * with some other functions, so lock the buffer by taking the 1027 * with some other functions, so lock the buffer by taking the
1028 * @ubi->buf_mutex. 1028 * @ubi->buf_mutex.
diff --git a/drivers/mtd/ubi/scan.c b/drivers/mtd/ubi/scan.c
index 4f2daa5bbecf..41d47e1cf15c 100644
--- a/drivers/mtd/ubi/scan.c
+++ b/drivers/mtd/ubi/scan.c
@@ -320,7 +320,7 @@ static int compare_lebs(struct ubi_device *ubi, const struct ubi_scan_leb *seb,
320 } 320 }
321 321
322 err = ubi_io_read_data(ubi, buf, pnum, 0, len); 322 err = ubi_io_read_data(ubi, buf, pnum, 0, len);
323 if (err && err != UBI_IO_BITFLIPS) 323 if (err && err != UBI_IO_BITFLIPS && err != -EBADMSG)
324 goto out_free_buf; 324 goto out_free_buf;
325 325
326 data_crc = be32_to_cpu(vid_hdr->data_crc); 326 data_crc = be32_to_cpu(vid_hdr->data_crc);
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
index 05d70937b543..dcb6dac1dc54 100644
--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -1396,7 +1396,8 @@ int ubi_thread(void *u)
1396 ubi_msg("%s: %d consecutive failures", 1396 ubi_msg("%s: %d consecutive failures",
1397 ubi->bgt_name, WL_MAX_FAILURES); 1397 ubi->bgt_name, WL_MAX_FAILURES);
1398 ubi_ro_mode(ubi); 1398 ubi_ro_mode(ubi);
1399 break; 1399 ubi->thread_enabled = 0;
1400 continue;
1400 } 1401 }
1401 } else 1402 } else
1402 failures = 0; 1403 failures = 0;
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 11f143f4adf6..231eeaf1d552 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1825,9 +1825,10 @@ config FEC2
1825 1825
1826config FEC_MPC52xx 1826config FEC_MPC52xx
1827 tristate "MPC52xx FEC driver" 1827 tristate "MPC52xx FEC driver"
1828 depends on PPC_MPC52xx && PPC_BESTCOMM_FEC 1828 depends on PPC_MPC52xx && PPC_BESTCOMM
1829 select CRC32 1829 select CRC32
1830 select PHYLIB 1830 select PHYLIB
1831 select PPC_BESTCOMM_FEC
1831 ---help--- 1832 ---help---
1832 This option enables support for the MPC5200's on-chip 1833 This option enables support for the MPC5200's on-chip
1833 Fast Ethernet Controller 1834 Fast Ethernet Controller
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index f19acf8b9220..017383ad5ec6 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -114,7 +114,7 @@ obj-$(CONFIG_EL2) += 3c503.o 8390p.o
114obj-$(CONFIG_NE2000) += ne.o 8390p.o 114obj-$(CONFIG_NE2000) += ne.o 8390p.o
115obj-$(CONFIG_NE2_MCA) += ne2.o 8390p.o 115obj-$(CONFIG_NE2_MCA) += ne2.o 8390p.o
116obj-$(CONFIG_HPLAN) += hp.o 8390p.o 116obj-$(CONFIG_HPLAN) += hp.o 8390p.o
117obj-$(CONFIG_HPLAN_PLUS) += hp-plus.o 8390.o 117obj-$(CONFIG_HPLAN_PLUS) += hp-plus.o 8390p.o
118obj-$(CONFIG_ULTRA) += smc-ultra.o 8390.o 118obj-$(CONFIG_ULTRA) += smc-ultra.o 8390.o
119obj-$(CONFIG_ULTRAMCA) += smc-mca.o 8390.o 119obj-$(CONFIG_ULTRAMCA) += smc-mca.o 8390.o
120obj-$(CONFIG_ULTRA32) += smc-ultra32.o 8390.o 120obj-$(CONFIG_ULTRA32) += smc-ultra32.o 8390.o
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index d07e3f148951..9e8222f9e90e 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -543,9 +543,9 @@ bnx2_free_rx_mem(struct bnx2 *bp)
543 for (j = 0; j < bp->rx_max_pg_ring; j++) { 543 for (j = 0; j < bp->rx_max_pg_ring; j++) {
544 if (rxr->rx_pg_desc_ring[j]) 544 if (rxr->rx_pg_desc_ring[j])
545 pci_free_consistent(bp->pdev, RXBD_RING_SIZE, 545 pci_free_consistent(bp->pdev, RXBD_RING_SIZE,
546 rxr->rx_pg_desc_ring[i], 546 rxr->rx_pg_desc_ring[j],
547 rxr->rx_pg_desc_mapping[i]); 547 rxr->rx_pg_desc_mapping[j]);
548 rxr->rx_pg_desc_ring[i] = NULL; 548 rxr->rx_pg_desc_ring[j] = NULL;
549 } 549 }
550 if (rxr->rx_pg_ring) 550 if (rxr->rx_pg_ring)
551 vfree(rxr->rx_pg_ring); 551 vfree(rxr->rx_pg_ring);
@@ -3144,6 +3144,28 @@ bnx2_has_work(struct bnx2_napi *bnapi)
3144 return 0; 3144 return 0;
3145} 3145}
3146 3146
3147static void
3148bnx2_chk_missed_msi(struct bnx2 *bp)
3149{
3150 struct bnx2_napi *bnapi = &bp->bnx2_napi[0];
3151 u32 msi_ctrl;
3152
3153 if (bnx2_has_work(bnapi)) {
3154 msi_ctrl = REG_RD(bp, BNX2_PCICFG_MSI_CONTROL);
3155 if (!(msi_ctrl & BNX2_PCICFG_MSI_CONTROL_ENABLE))
3156 return;
3157
3158 if (bnapi->last_status_idx == bp->idle_chk_status_idx) {
3159 REG_WR(bp, BNX2_PCICFG_MSI_CONTROL, msi_ctrl &
3160 ~BNX2_PCICFG_MSI_CONTROL_ENABLE);
3161 REG_WR(bp, BNX2_PCICFG_MSI_CONTROL, msi_ctrl);
3162 bnx2_msi(bp->irq_tbl[0].vector, bnapi);
3163 }
3164 }
3165
3166 bp->idle_chk_status_idx = bnapi->last_status_idx;
3167}
3168
3147static void bnx2_poll_link(struct bnx2 *bp, struct bnx2_napi *bnapi) 3169static void bnx2_poll_link(struct bnx2 *bp, struct bnx2_napi *bnapi)
3148{ 3170{
3149 struct status_block *sblk = bnapi->status_blk.msi; 3171 struct status_block *sblk = bnapi->status_blk.msi;
@@ -3218,14 +3240,15 @@ static int bnx2_poll(struct napi_struct *napi, int budget)
3218 3240
3219 work_done = bnx2_poll_work(bp, bnapi, work_done, budget); 3241 work_done = bnx2_poll_work(bp, bnapi, work_done, budget);
3220 3242
3221 if (unlikely(work_done >= budget))
3222 break;
3223
3224 /* bnapi->last_status_idx is used below to tell the hw how 3243 /* bnapi->last_status_idx is used below to tell the hw how
3225 * much work has been processed, so we must read it before 3244 * much work has been processed, so we must read it before
3226 * checking for more work. 3245 * checking for more work.
3227 */ 3246 */
3228 bnapi->last_status_idx = sblk->status_idx; 3247 bnapi->last_status_idx = sblk->status_idx;
3248
3249 if (unlikely(work_done >= budget))
3250 break;
3251
3229 rmb(); 3252 rmb();
3230 if (likely(!bnx2_has_work(bnapi))) { 3253 if (likely(!bnx2_has_work(bnapi))) {
3231 netif_rx_complete(bp->dev, napi); 3254 netif_rx_complete(bp->dev, napi);
@@ -4570,6 +4593,8 @@ bnx2_init_chip(struct bnx2 *bp)
4570 for (i = 0; i < BNX2_MAX_MSIX_VEC; i++) 4593 for (i = 0; i < BNX2_MAX_MSIX_VEC; i++)
4571 bp->bnx2_napi[i].last_status_idx = 0; 4594 bp->bnx2_napi[i].last_status_idx = 0;
4572 4595
4596 bp->idle_chk_status_idx = 0xffff;
4597
4573 bp->rx_mode = BNX2_EMAC_RX_MODE_SORT_MODE; 4598 bp->rx_mode = BNX2_EMAC_RX_MODE_SORT_MODE;
4574 4599
4575 /* Set up how to generate a link change interrupt. */ 4600 /* Set up how to generate a link change interrupt. */
@@ -5718,6 +5743,10 @@ bnx2_timer(unsigned long data)
5718 if (atomic_read(&bp->intr_sem) != 0) 5743 if (atomic_read(&bp->intr_sem) != 0)
5719 goto bnx2_restart_timer; 5744 goto bnx2_restart_timer;
5720 5745
5746 if ((bp->flags & (BNX2_FLAG_USING_MSI | BNX2_FLAG_ONE_SHOT_MSI)) ==
5747 BNX2_FLAG_USING_MSI)
5748 bnx2_chk_missed_msi(bp);
5749
5721 bnx2_send_heart_beat(bp); 5750 bnx2_send_heart_beat(bp);
5722 5751
5723 bp->stats_blk->stat_FwRxDrop = 5752 bp->stats_blk->stat_FwRxDrop =
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h
index 617d95340160..0b032c3c7b61 100644
--- a/drivers/net/bnx2.h
+++ b/drivers/net/bnx2.h
@@ -378,6 +378,9 @@ struct l2_fhdr {
378 * pci_config_l definition 378 * pci_config_l definition
379 * offset: 0000 379 * offset: 0000
380 */ 380 */
381#define BNX2_PCICFG_MSI_CONTROL 0x00000058
382#define BNX2_PCICFG_MSI_CONTROL_ENABLE (1L<<16)
383
381#define BNX2_PCICFG_MISC_CONFIG 0x00000068 384#define BNX2_PCICFG_MISC_CONFIG 0x00000068
382#define BNX2_PCICFG_MISC_CONFIG_TARGET_BYTE_SWAP (1L<<2) 385#define BNX2_PCICFG_MISC_CONFIG_TARGET_BYTE_SWAP (1L<<2)
383#define BNX2_PCICFG_MISC_CONFIG_TARGET_MB_WORD_SWAP (1L<<3) 386#define BNX2_PCICFG_MISC_CONFIG_TARGET_MB_WORD_SWAP (1L<<3)
@@ -6863,6 +6866,9 @@ struct bnx2 {
6863 6866
6864 u8 num_tx_rings; 6867 u8 num_tx_rings;
6865 u8 num_rx_rings; 6868 u8 num_rx_rings;
6869
6870 u32 idle_chk_status_idx;
6871
6866}; 6872};
6867 6873
6868#define REG_RD(bp, offset) \ 6874#define REG_RD(bp, offset) \
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
index d6c7d2aa761b..7092df50ff78 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1035,10 +1035,6 @@ MODULE_PARM_DESC(copybreak, "Receive copy threshold");
1035 * @pdev: the PCI device that received the packet 1035 * @pdev: the PCI device that received the packet
1036 * @fl: the SGE free list holding the packet 1036 * @fl: the SGE free list holding the packet
1037 * @len: the actual packet length, excluding any SGE padding 1037 * @len: the actual packet length, excluding any SGE padding
1038 * @dma_pad: padding at beginning of buffer left by SGE DMA
1039 * @skb_pad: padding to be used if the packet is copied
1040 * @copy_thres: length threshold under which a packet should be copied
1041 * @drop_thres: # of remaining buffers before we start dropping packets
1042 * 1038 *
1043 * Get the next packet from a free list and complete setup of the 1039 * Get the next packet from a free list and complete setup of the
1044 * sk_buff. If the packet is small we make a copy and recycle the 1040 * sk_buff. If the packet is small we make a copy and recycle the
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c
index 523b9716a543..d115a6d30f29 100644
--- a/drivers/net/e1000e/ich8lan.c
+++ b/drivers/net/e1000e/ich8lan.c
@@ -1893,12 +1893,17 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw)
1893 ctrl |= E1000_CTRL_PHY_RST; 1893 ctrl |= E1000_CTRL_PHY_RST;
1894 } 1894 }
1895 ret_val = e1000_acquire_swflag_ich8lan(hw); 1895 ret_val = e1000_acquire_swflag_ich8lan(hw);
1896 /* Whether or not the swflag was acquired, we need to reset the part */
1896 hw_dbg(hw, "Issuing a global reset to ich8lan"); 1897 hw_dbg(hw, "Issuing a global reset to ich8lan");
1897 ew32(CTRL, (ctrl | E1000_CTRL_RST)); 1898 ew32(CTRL, (ctrl | E1000_CTRL_RST));
1898 msleep(20); 1899 msleep(20);
1899 1900
1900 /* release the swflag because it is not reset by hardware reset */ 1901 if (!ret_val) {
1901 e1000_release_swflag_ich8lan(hw); 1902 /* release the swflag because it is not reset by
1903 * hardware reset
1904 */
1905 e1000_release_swflag_ich8lan(hw);
1906 }
1902 1907
1903 ret_val = e1000e_get_auto_rd_done(hw); 1908 ret_val = e1000e_get_auto_rd_done(hw);
1904 if (ret_val) { 1909 if (ret_val) {
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 91795f78c3e4..122539a0e1fe 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -345,7 +345,6 @@ no_buffers:
345/** 345/**
346 * e1000_alloc_jumbo_rx_buffers - Replace used jumbo receive buffers 346 * e1000_alloc_jumbo_rx_buffers - Replace used jumbo receive buffers
347 * @adapter: address of board private structure 347 * @adapter: address of board private structure
348 * @rx_ring: pointer to receive ring structure
349 * @cleaned_count: number of buffers to allocate this pass 348 * @cleaned_count: number of buffers to allocate this pass
350 **/ 349 **/
351 350
diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c
index e1b441effbbe..36cb6e95b465 100644
--- a/drivers/net/enc28j60.c
+++ b/drivers/net/enc28j60.c
@@ -568,6 +568,17 @@ static u16 erxrdpt_workaround(u16 next_packet_ptr, u16 start, u16 end)
568 return erxrdpt; 568 return erxrdpt;
569} 569}
570 570
571/*
572 * Calculate wrap around when reading beyond the end of the RX buffer
573 */
574static u16 rx_packet_start(u16 ptr)
575{
576 if (ptr + RSV_SIZE > RXEND_INIT)
577 return (ptr + RSV_SIZE) - (RXEND_INIT - RXSTART_INIT + 1);
578 else
579 return ptr + RSV_SIZE;
580}
581
571static void nolock_rxfifo_init(struct enc28j60_net *priv, u16 start, u16 end) 582static void nolock_rxfifo_init(struct enc28j60_net *priv, u16 start, u16 end)
572{ 583{
573 u16 erxrdpt; 584 u16 erxrdpt;
@@ -938,8 +949,9 @@ static void enc28j60_hw_rx(struct net_device *ndev)
938 skb->dev = ndev; 949 skb->dev = ndev;
939 skb_reserve(skb, NET_IP_ALIGN); 950 skb_reserve(skb, NET_IP_ALIGN);
940 /* copy the packet from the receive buffer */ 951 /* copy the packet from the receive buffer */
941 enc28j60_mem_read(priv, priv->next_pk_ptr + sizeof(rsv), 952 enc28j60_mem_read(priv,
942 len, skb_put(skb, len)); 953 rx_packet_start(priv->next_pk_ptr),
954 len, skb_put(skb, len));
943 if (netif_msg_pktdata(priv)) 955 if (netif_msg_pktdata(priv))
944 dump_packet(__func__, skb->len, skb->data); 956 dump_packet(__func__, skb->len, skb->data);
945 skb->protocol = eth_type_trans(skb, ndev); 957 skb->protocol = eth_type_trans(skb, ndev);
@@ -947,7 +959,7 @@ static void enc28j60_hw_rx(struct net_device *ndev)
947 ndev->stats.rx_packets++; 959 ndev->stats.rx_packets++;
948 ndev->stats.rx_bytes += len; 960 ndev->stats.rx_bytes += len;
949 ndev->last_rx = jiffies; 961 ndev->last_rx = jiffies;
950 netif_rx(skb); 962 netif_rx_ni(skb);
951 } 963 }
952 } 964 }
953 /* 965 /*
diff --git a/drivers/net/hp-plus.c b/drivers/net/hp-plus.c
index fbbd3e660c27..c01e290d09d2 100644
--- a/drivers/net/hp-plus.c
+++ b/drivers/net/hp-plus.c
@@ -230,7 +230,7 @@ static int __init hpp_probe1(struct net_device *dev, int ioaddr)
230 dev->open = &hpp_open; 230 dev->open = &hpp_open;
231 dev->stop = &hpp_close; 231 dev->stop = &hpp_close;
232#ifdef CONFIG_NET_POLL_CONTROLLER 232#ifdef CONFIG_NET_POLL_CONTROLLER
233 dev->poll_controller = ei_poll; 233 dev->poll_controller = eip_poll;
234#endif 234#endif
235 235
236 ei_status.name = name; 236 ei_status.name = name;
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 1cbae85b1426..20d27e622ec1 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -1980,7 +1980,6 @@ static void igb_configure_rx(struct igb_adapter *adapter)
1980 1980
1981/** 1981/**
1982 * igb_free_tx_resources - Free Tx Resources per Queue 1982 * igb_free_tx_resources - Free Tx Resources per Queue
1983 * @adapter: board private structure
1984 * @tx_ring: Tx descriptor ring for a specific queue 1983 * @tx_ring: Tx descriptor ring for a specific queue
1985 * 1984 *
1986 * Free all transmit software resources 1985 * Free all transmit software resources
@@ -2033,7 +2032,6 @@ static void igb_unmap_and_free_tx_resource(struct igb_adapter *adapter,
2033 2032
2034/** 2033/**
2035 * igb_clean_tx_ring - Free Tx Buffers 2034 * igb_clean_tx_ring - Free Tx Buffers
2036 * @adapter: board private structure
2037 * @tx_ring: ring to be cleaned 2035 * @tx_ring: ring to be cleaned
2038 **/ 2036 **/
2039static void igb_clean_tx_ring(struct igb_ring *tx_ring) 2037static void igb_clean_tx_ring(struct igb_ring *tx_ring)
@@ -2080,7 +2078,6 @@ static void igb_clean_all_tx_rings(struct igb_adapter *adapter)
2080 2078
2081/** 2079/**
2082 * igb_free_rx_resources - Free Rx Resources 2080 * igb_free_rx_resources - Free Rx Resources
2083 * @adapter: board private structure
2084 * @rx_ring: ring to clean the resources from 2081 * @rx_ring: ring to clean the resources from
2085 * 2082 *
2086 * Free all receive software resources 2083 * Free all receive software resources
@@ -2120,7 +2117,6 @@ static void igb_free_all_rx_resources(struct igb_adapter *adapter)
2120 2117
2121/** 2118/**
2122 * igb_clean_rx_ring - Free Rx Buffers per Queue 2119 * igb_clean_rx_ring - Free Rx Buffers per Queue
2123 * @adapter: board private structure
2124 * @rx_ring: ring to free buffers from 2120 * @rx_ring: ring to free buffers from
2125 **/ 2121 **/
2126static void igb_clean_rx_ring(struct igb_ring *rx_ring) 2122static void igb_clean_rx_ring(struct igb_ring *rx_ring)
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 36f2bb666bf7..5236f633ee36 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1320,7 +1320,6 @@ static inline void ixgbe_irq_enable(struct ixgbe_adapter *adapter)
1320 * ixgbe_intr - legacy mode Interrupt Handler 1320 * ixgbe_intr - legacy mode Interrupt Handler
1321 * @irq: interrupt number 1321 * @irq: interrupt number
1322 * @data: pointer to a network interface device structure 1322 * @data: pointer to a network interface device structure
1323 * @pt_regs: CPU registers structure
1324 **/ 1323 **/
1325static irqreturn_t ixgbe_intr(int irq, void *data) 1324static irqreturn_t ixgbe_intr(int irq, void *data)
1326{ 1325{
@@ -2330,7 +2329,7 @@ static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,
2330 * Once we know the feature-set enabled for the device, we'll cache 2329 * Once we know the feature-set enabled for the device, we'll cache
2331 * the register offset the descriptor ring is assigned to. 2330 * the register offset the descriptor ring is assigned to.
2332 **/ 2331 **/
2333static void __devinit ixgbe_cache_ring_register(struct ixgbe_adapter *adapter) 2332static void ixgbe_cache_ring_register(struct ixgbe_adapter *adapter)
2334{ 2333{
2335 int feature_mask = 0, rss_i; 2334 int feature_mask = 0, rss_i;
2336 int i, txr_idx, rxr_idx; 2335 int i, txr_idx, rxr_idx;
@@ -2367,7 +2366,7 @@ static void __devinit ixgbe_cache_ring_register(struct ixgbe_adapter *adapter)
2367 * number of queues at compile-time. The polling_netdev array is 2366 * number of queues at compile-time. The polling_netdev array is
2368 * intended for Multiqueue, but should work fine with a single queue. 2367 * intended for Multiqueue, but should work fine with a single queue.
2369 **/ 2368 **/
2370static int __devinit ixgbe_alloc_queues(struct ixgbe_adapter *adapter) 2369static int ixgbe_alloc_queues(struct ixgbe_adapter *adapter)
2371{ 2370{
2372 int i; 2371 int i;
2373 2372
@@ -2408,8 +2407,7 @@ err_tx_ring_allocation:
2408 * Attempt to configure the interrupts using the best available 2407 * Attempt to configure the interrupts using the best available
2409 * capabilities of the hardware and the kernel. 2408 * capabilities of the hardware and the kernel.
2410 **/ 2409 **/
2411static int __devinit ixgbe_set_interrupt_capability(struct ixgbe_adapter 2410static int ixgbe_set_interrupt_capability(struct ixgbe_adapter *adapter)
2412 *adapter)
2413{ 2411{
2414 int err = 0; 2412 int err = 0;
2415 int vector, v_budget; 2413 int vector, v_budget;
@@ -2501,7 +2499,7 @@ static void ixgbe_reset_interrupt_capability(struct ixgbe_adapter *adapter)
2501 * - Hardware queue count (num_*_queues) 2499 * - Hardware queue count (num_*_queues)
2502 * - defined by miscellaneous hardware support/features (RSS, etc.) 2500 * - defined by miscellaneous hardware support/features (RSS, etc.)
2503 **/ 2501 **/
2504static int __devinit ixgbe_init_interrupt_scheme(struct ixgbe_adapter *adapter) 2502static int ixgbe_init_interrupt_scheme(struct ixgbe_adapter *adapter)
2505{ 2503{
2506 int err; 2504 int err;
2507 2505
diff --git a/drivers/net/jme.h b/drivers/net/jme.h
index f863aee6648b..3f5d91543246 100644
--- a/drivers/net/jme.h
+++ b/drivers/net/jme.h
@@ -22,7 +22,7 @@
22 */ 22 */
23 23
24#ifndef __JME_H_INCLUDED__ 24#ifndef __JME_H_INCLUDED__
25#define __JME_H_INCLUDEE__ 25#define __JME_H_INCLUDED__
26 26
27#define DRV_NAME "jme" 27#define DRV_NAME "jme"
28#define DRV_VERSION "1.0.3" 28#define DRV_VERSION "1.0.3"
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 42394505bb50..590039cbb146 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -70,6 +70,9 @@ static void macvlan_broadcast(struct sk_buff *skb,
70 struct sk_buff *nskb; 70 struct sk_buff *nskb;
71 unsigned int i; 71 unsigned int i;
72 72
73 if (skb->protocol == htons(ETH_P_PAUSE))
74 return;
75
73 for (i = 0; i < MACVLAN_HASH_SIZE; i++) { 76 for (i = 0; i < MACVLAN_HASH_SIZE; i++) {
74 hlist_for_each_entry_rcu(vlan, n, &port->vlan_hash[i], hlist) { 77 hlist_for_each_entry_rcu(vlan, n, &port->vlan_hash[i], hlist) {
75 dev = vlan->dev; 78 dev = vlan->dev;
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 468921b8f4b6..90a0281d15ea 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -753,6 +753,7 @@ static int mlx4_setup_hca(struct mlx4_dev *dev)
753 struct mlx4_priv *priv = mlx4_priv(dev); 753 struct mlx4_priv *priv = mlx4_priv(dev);
754 int err; 754 int err;
755 int port; 755 int port;
756 __be32 ib_port_default_caps;
756 757
757 err = mlx4_init_uar_table(dev); 758 err = mlx4_init_uar_table(dev);
758 if (err) { 759 if (err) {
@@ -852,6 +853,13 @@ static int mlx4_setup_hca(struct mlx4_dev *dev)
852 } 853 }
853 854
854 for (port = 1; port <= dev->caps.num_ports; port++) { 855 for (port = 1; port <= dev->caps.num_ports; port++) {
856 ib_port_default_caps = 0;
857 err = mlx4_get_port_ib_caps(dev, port, &ib_port_default_caps);
858 if (err)
859 mlx4_warn(dev, "failed to get port %d default "
860 "ib capabilities (%d). Continuing with "
861 "caps = 0\n", port, err);
862 dev->caps.ib_port_def_cap[port] = ib_port_default_caps;
855 err = mlx4_SET_PORT(dev, port); 863 err = mlx4_SET_PORT(dev, port);
856 if (err) { 864 if (err) {
857 mlx4_err(dev, "Failed to set port %d, aborting\n", 865 mlx4_err(dev, "Failed to set port %d, aborting\n",
diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h
index 56a2e213fe62..34c909deaff3 100644
--- a/drivers/net/mlx4/mlx4.h
+++ b/drivers/net/mlx4/mlx4.h
@@ -385,5 +385,6 @@ void mlx4_init_mac_table(struct mlx4_dev *dev, struct mlx4_mac_table *table);
385void mlx4_init_vlan_table(struct mlx4_dev *dev, struct mlx4_vlan_table *table); 385void mlx4_init_vlan_table(struct mlx4_dev *dev, struct mlx4_vlan_table *table);
386 386
387int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port); 387int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port);
388int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps);
388 389
389#endif /* MLX4_H */ 390#endif /* MLX4_H */
diff --git a/drivers/net/mlx4/port.c b/drivers/net/mlx4/port.c
index e2fdab42c4ce..0a057e5dc63b 100644
--- a/drivers/net/mlx4/port.c
+++ b/drivers/net/mlx4/port.c
@@ -258,6 +258,42 @@ out:
258} 258}
259EXPORT_SYMBOL_GPL(mlx4_unregister_vlan); 259EXPORT_SYMBOL_GPL(mlx4_unregister_vlan);
260 260
261int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps)
262{
263 struct mlx4_cmd_mailbox *inmailbox, *outmailbox;
264 u8 *inbuf, *outbuf;
265 int err;
266
267 inmailbox = mlx4_alloc_cmd_mailbox(dev);
268 if (IS_ERR(inmailbox))
269 return PTR_ERR(inmailbox);
270
271 outmailbox = mlx4_alloc_cmd_mailbox(dev);
272 if (IS_ERR(outmailbox)) {
273 mlx4_free_cmd_mailbox(dev, inmailbox);
274 return PTR_ERR(outmailbox);
275 }
276
277 inbuf = inmailbox->buf;
278 outbuf = outmailbox->buf;
279 memset(inbuf, 0, 256);
280 memset(outbuf, 0, 256);
281 inbuf[0] = 1;
282 inbuf[1] = 1;
283 inbuf[2] = 1;
284 inbuf[3] = 1;
285 *(__be16 *) (&inbuf[16]) = cpu_to_be16(0x0015);
286 *(__be32 *) (&inbuf[20]) = cpu_to_be32(port);
287
288 err = mlx4_cmd_box(dev, inmailbox->dma, outmailbox->dma, port, 3,
289 MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C);
290 if (!err)
291 *caps = *(__be32 *) (outbuf + 84);
292 mlx4_free_cmd_mailbox(dev, inmailbox);
293 mlx4_free_cmd_mailbox(dev, outmailbox);
294 return err;
295}
296
261int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port) 297int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port)
262{ 298{
263 struct mlx4_cmd_mailbox *mailbox; 299 struct mlx4_cmd_mailbox *mailbox;
@@ -273,7 +309,8 @@ int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port)
273 ((u8 *) mailbox->buf)[3] = 6; 309 ((u8 *) mailbox->buf)[3] = 6;
274 ((__be16 *) mailbox->buf)[4] = cpu_to_be16(1 << 15); 310 ((__be16 *) mailbox->buf)[4] = cpu_to_be16(1 << 15);
275 ((__be16 *) mailbox->buf)[6] = cpu_to_be16(1 << 15); 311 ((__be16 *) mailbox->buf)[6] = cpu_to_be16(1 << 15);
276 } 312 } else
313 ((__be32 *) mailbox->buf)[1] = dev->caps.ib_port_def_cap[port];
277 err = mlx4_cmd(dev, mailbox->dma, port, is_eth, MLX4_CMD_SET_PORT, 314 err = mlx4_cmd(dev, mailbox->dma, port, is_eth, MLX4_CMD_SET_PORT,
278 MLX4_CMD_TIME_CLASS_B); 315 MLX4_CMD_TIME_CLASS_B);
279 316
diff --git a/drivers/net/netx-eth.c b/drivers/net/netx-eth.c
index b9bed82e1d21..b289a0a2b945 100644
--- a/drivers/net/netx-eth.c
+++ b/drivers/net/netx-eth.c
@@ -401,6 +401,8 @@ static int netx_eth_drv_probe(struct platform_device *pdev)
401 priv->xmac_base = priv->xc->xmac_base; 401 priv->xmac_base = priv->xc->xmac_base;
402 priv->sram_base = priv->xc->sram_base; 402 priv->sram_base = priv->xc->sram_base;
403 403
404 spin_lock_init(&priv->lock);
405
404 ret = pfifo_request(PFIFO_MASK(priv->id)); 406 ret = pfifo_request(PFIFO_MASK(priv->id));
405 if (ret) { 407 if (ret) {
406 printk("unable to request PFIFO\n"); 408 printk("unable to request PFIFO\n");
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index b37a498939ae..0418045166c3 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -779,6 +779,7 @@ static struct pcmcia_device_id axnet_ids[] = {
779 PCMCIA_DEVICE_PROD_ID12("IO DATA", "ETXPCM", 0x547e66dc, 0x233adac2), 779 PCMCIA_DEVICE_PROD_ID12("IO DATA", "ETXPCM", 0x547e66dc, 0x233adac2),
780 PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100 V3)", 0x0733cc81, 0x232019a8), 780 PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100 V3)", 0x0733cc81, 0x232019a8),
781 PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC3-TX", 0x481e0094, 0xf91af609), 781 PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC3-TX", 0x481e0094, 0xf91af609),
782 PCMCIA_DEVICE_PROD_ID12("NETGEAR", "FA411", 0x9aa79dc3, 0x40fad875),
782 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "100BASE", 0x281f1c5d, 0x7c2add04), 783 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "100BASE", 0x281f1c5d, 0x7c2add04),
783 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "FastEtherCard", 0x281f1c5d, 0x7ef26116), 784 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "FastEtherCard", 0x281f1c5d, 0x7ef26116),
784 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "FEP501", 0x281f1c5d, 0x2e272058), 785 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "FEP501", 0x281f1c5d, 0x2e272058),
@@ -1174,7 +1175,6 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
1174 * ax_interrupt - handle the interrupts from an 8390 1175 * ax_interrupt - handle the interrupts from an 8390
1175 * @irq: interrupt number 1176 * @irq: interrupt number
1176 * @dev_id: a pointer to the net_device 1177 * @dev_id: a pointer to the net_device
1177 * @regs: unused
1178 * 1178 *
1179 * Handle the ether interface interrupts. We pull packets from 1179 * Handle the ether interface interrupts. We pull packets from
1180 * the 8390 via the card specific functions and fire them at the networking 1180 * the 8390 via the card specific functions and fire them at the networking
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c
index cf3cca4642f2..f51944b28cfa 100644
--- a/drivers/net/pcmcia/ibmtr_cs.c
+++ b/drivers/net/pcmcia/ibmtr_cs.c
@@ -349,7 +349,7 @@ static int ibmtr_suspend(struct pcmcia_device *link)
349 return 0; 349 return 0;
350} 350}
351 351
352static int ibmtr_resume(struct pcmcia_device *link) 352static int __devinit ibmtr_resume(struct pcmcia_device *link)
353{ 353{
354 ibmtr_dev_t *info = link->priv; 354 ibmtr_dev_t *info = link->priv;
355 struct net_device *dev = info->dev; 355 struct net_device *dev = info->dev;
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index e40d6301aa7a..ce486f094492 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -1693,7 +1693,6 @@ static struct pcmcia_device_id pcnet_ids[] = {
1693 PCMCIA_DEVICE_PROD_ID12("National Semiconductor", "InfoMover NE4100", 0x36e1191f, 0xa6617ec8), 1693 PCMCIA_DEVICE_PROD_ID12("National Semiconductor", "InfoMover NE4100", 0x36e1191f, 0xa6617ec8),
1694 PCMCIA_DEVICE_PROD_ID12("NEC", "PC-9801N-J12", 0x18df0ba0, 0xbc912d76), 1694 PCMCIA_DEVICE_PROD_ID12("NEC", "PC-9801N-J12", 0x18df0ba0, 0xbc912d76),
1695 PCMCIA_DEVICE_PROD_ID12("NETGEAR", "FA410TX", 0x9aa79dc3, 0x60e5bc0e), 1695 PCMCIA_DEVICE_PROD_ID12("NETGEAR", "FA410TX", 0x9aa79dc3, 0x60e5bc0e),
1696 PCMCIA_DEVICE_PROD_ID12("NETGEAR", "FA411", 0x9aa79dc3, 0x40fad875),
1697 PCMCIA_DEVICE_PROD_ID12("Network Everywhere", "Fast Ethernet 10/100 PC Card", 0x820a67b6, 0x31ed1a5f), 1696 PCMCIA_DEVICE_PROD_ID12("Network Everywhere", "Fast Ethernet 10/100 PC Card", 0x820a67b6, 0x31ed1a5f),
1698 PCMCIA_DEVICE_PROD_ID12("NextCom K.K.", "Next Hawk", 0xaedaec74, 0xad050ef1), 1697 PCMCIA_DEVICE_PROD_ID12("NextCom K.K.", "Next Hawk", 0xaedaec74, 0xad050ef1),
1699 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "10/100Mbps Ethernet Card", 0x281f1c5d, 0x6e41773b), 1698 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "10/100Mbps Ethernet Card", 0x281f1c5d, 0x6e41773b),
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 536bda1f428b..289fc267edf3 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -105,8 +105,6 @@ int mdiobus_register(struct mii_bus *bus)
105 return -EINVAL; 105 return -EINVAL;
106 } 106 }
107 107
108 bus->state = MDIOBUS_REGISTERED;
109
110 mutex_init(&bus->mdio_lock); 108 mutex_init(&bus->mdio_lock);
111 109
112 if (bus->reset) 110 if (bus->reset)
@@ -123,6 +121,9 @@ int mdiobus_register(struct mii_bus *bus)
123 } 121 }
124 } 122 }
125 123
124 if (!err)
125 bus->state = MDIOBUS_REGISTERED;
126
126 pr_info("%s: probed\n", bus->name); 127 pr_info("%s: probed\n", bus->name);
127 128
128 return err; 129 return err;
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 55bc24b234e3..25acbbde4a60 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -227,8 +227,17 @@ struct phy_device * get_phy_device(struct mii_bus *bus, int addr)
227 if (r) 227 if (r)
228 return ERR_PTR(r); 228 return ERR_PTR(r);
229 229
230 /* If the phy_id is all Fs or all 0s, there is no device there */ 230 /* If the phy_id is mostly Fs, there is no device there */
231 if ((0xffff == phy_id) || (0x00 == phy_id)) 231 if ((phy_id & 0x1fffffff) == 0x1fffffff)
232 return NULL;
233
234 /*
235 * Broken hardware is sometimes missing the pull down resistor on the
236 * MDIO line, which results in reads to non-existent devices returning
237 * 0 rather than 0xffff. Catch this here and treat 0 as a non-existent
238 * device as well.
239 */
240 if (phy_id == 0)
232 return NULL; 241 return NULL;
233 242
234 dev = phy_device_create(bus, addr, phy_id); 243 dev = phy_device_create(bus, addr, phy_id);
diff --git a/drivers/net/phy/vitesse.c b/drivers/net/phy/vitesse.c
index 8874497b6bbf..dd3b2447e85a 100644
--- a/drivers/net/phy/vitesse.c
+++ b/drivers/net/phy/vitesse.c
@@ -34,6 +34,8 @@
34#define MII_VSC8244_IMASK_DUPLEX 0x1000 34#define MII_VSC8244_IMASK_DUPLEX 0x1000
35#define MII_VSC8244_IMASK_MASK 0xf000 35#define MII_VSC8244_IMASK_MASK 0xf000
36 36
37#define MII_VSC8221_IMASK_MASK 0xa000
38
37/* Vitesse Interrupt Status Register */ 39/* Vitesse Interrupt Status Register */
38#define MII_VSC8244_ISTAT 0x1a 40#define MII_VSC8244_ISTAT 0x1a
39#define MII_VSC8244_ISTAT_STATUS 0x8000 41#define MII_VSC8244_ISTAT_STATUS 0x8000
@@ -49,6 +51,12 @@
49#define MII_VSC8244_AUXCONSTAT_GBIT 0x0010 51#define MII_VSC8244_AUXCONSTAT_GBIT 0x0010
50#define MII_VSC8244_AUXCONSTAT_100 0x0008 52#define MII_VSC8244_AUXCONSTAT_100 0x0008
51 53
54#define MII_VSC8221_AUXCONSTAT_INIT 0x0004 /* need to set this bit? */
55#define MII_VSC8221_AUXCONSTAT_RESERVED 0x0004
56
57#define PHY_ID_VSC8244 0x000fc6c0
58#define PHY_ID_VSC8221 0x000fc550
59
52MODULE_DESCRIPTION("Vitesse PHY driver"); 60MODULE_DESCRIPTION("Vitesse PHY driver");
53MODULE_AUTHOR("Kriston Carson"); 61MODULE_AUTHOR("Kriston Carson");
54MODULE_LICENSE("GPL"); 62MODULE_LICENSE("GPL");
@@ -95,13 +103,15 @@ static int vsc824x_ack_interrupt(struct phy_device *phydev)
95 return (err < 0) ? err : 0; 103 return (err < 0) ? err : 0;
96} 104}
97 105
98static int vsc824x_config_intr(struct phy_device *phydev) 106static int vsc82xx_config_intr(struct phy_device *phydev)
99{ 107{
100 int err; 108 int err;
101 109
102 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) 110 if (phydev->interrupts == PHY_INTERRUPT_ENABLED)
103 err = phy_write(phydev, MII_VSC8244_IMASK, 111 err = phy_write(phydev, MII_VSC8244_IMASK,
104 MII_VSC8244_IMASK_MASK); 112 phydev->drv->phy_id == PHY_ID_VSC8244 ?
113 MII_VSC8244_IMASK_MASK :
114 MII_VSC8221_IMASK_MASK);
105 else { 115 else {
106 /* 116 /*
107 * The Vitesse PHY cannot clear the interrupt 117 * The Vitesse PHY cannot clear the interrupt
@@ -120,7 +130,7 @@ static int vsc824x_config_intr(struct phy_device *phydev)
120 130
121/* Vitesse 824x */ 131/* Vitesse 824x */
122static struct phy_driver vsc8244_driver = { 132static struct phy_driver vsc8244_driver = {
123 .phy_id = 0x000fc6c0, 133 .phy_id = PHY_ID_VSC8244,
124 .name = "Vitesse VSC8244", 134 .name = "Vitesse VSC8244",
125 .phy_id_mask = 0x000fffc0, 135 .phy_id_mask = 0x000fffc0,
126 .features = PHY_GBIT_FEATURES, 136 .features = PHY_GBIT_FEATURES,
@@ -129,19 +139,55 @@ static struct phy_driver vsc8244_driver = {
129 .config_aneg = &genphy_config_aneg, 139 .config_aneg = &genphy_config_aneg,
130 .read_status = &genphy_read_status, 140 .read_status = &genphy_read_status,
131 .ack_interrupt = &vsc824x_ack_interrupt, 141 .ack_interrupt = &vsc824x_ack_interrupt,
132 .config_intr = &vsc824x_config_intr, 142 .config_intr = &vsc82xx_config_intr,
133 .driver = { .owner = THIS_MODULE,}, 143 .driver = { .owner = THIS_MODULE,},
134}; 144};
135 145
136static int __init vsc8244_init(void) 146static int vsc8221_config_init(struct phy_device *phydev)
137{ 147{
138 return phy_driver_register(&vsc8244_driver); 148 int err;
149
150 err = phy_write(phydev, MII_VSC8244_AUX_CONSTAT,
151 MII_VSC8221_AUXCONSTAT_INIT);
152 return err;
153
154 /* Perhaps we should set EXT_CON1 based on the interface?
155 Options are 802.3Z SerDes or SGMII */
156}
157
158/* Vitesse 8221 */
159static struct phy_driver vsc8221_driver = {
160 .phy_id = PHY_ID_VSC8221,
161 .phy_id_mask = 0x000ffff0,
162 .name = "Vitesse VSC8221",
163 .features = PHY_GBIT_FEATURES,
164 .flags = PHY_HAS_INTERRUPT,
165 .config_init = &vsc8221_config_init,
166 .config_aneg = &genphy_config_aneg,
167 .read_status = &genphy_read_status,
168 .ack_interrupt = &vsc824x_ack_interrupt,
169 .config_intr = &vsc82xx_config_intr,
170 .driver = { .owner = THIS_MODULE,},
171};
172
173static int __init vsc82xx_init(void)
174{
175 int err;
176
177 err = phy_driver_register(&vsc8244_driver);
178 if (err < 0)
179 return err;
180 err = phy_driver_register(&vsc8221_driver);
181 if (err < 0)
182 phy_driver_unregister(&vsc8244_driver);
183 return err;
139} 184}
140 185
141static void __exit vsc8244_exit(void) 186static void __exit vsc82xx_exit(void)
142{ 187{
143 phy_driver_unregister(&vsc8244_driver); 188 phy_driver_unregister(&vsc8244_driver);
189 phy_driver_unregister(&vsc8221_driver);
144} 190}
145 191
146module_init(vsc8244_init); 192module_init(vsc82xx_init);
147module_exit(vsc8244_exit); 193module_exit(vsc82xx_exit);
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
index 7e857e938adb..714a23035de1 100644
--- a/drivers/net/ppp_generic.c
+++ b/drivers/net/ppp_generic.c
@@ -116,6 +116,7 @@ struct ppp {
116 unsigned long last_xmit; /* jiffies when last pkt sent 9c */ 116 unsigned long last_xmit; /* jiffies when last pkt sent 9c */
117 unsigned long last_recv; /* jiffies when last pkt rcvd a0 */ 117 unsigned long last_recv; /* jiffies when last pkt rcvd a0 */
118 struct net_device *dev; /* network interface device a4 */ 118 struct net_device *dev; /* network interface device a4 */
119 int closing; /* is device closing down? a8 */
119#ifdef CONFIG_PPP_MULTILINK 120#ifdef CONFIG_PPP_MULTILINK
120 int nxchan; /* next channel to send something on */ 121 int nxchan; /* next channel to send something on */
121 u32 nxseq; /* next sequence number to send */ 122 u32 nxseq; /* next sequence number to send */
@@ -995,7 +996,7 @@ ppp_xmit_process(struct ppp *ppp)
995 struct sk_buff *skb; 996 struct sk_buff *skb;
996 997
997 ppp_xmit_lock(ppp); 998 ppp_xmit_lock(ppp);
998 if (ppp->dev) { 999 if (!ppp->closing) {
999 ppp_push(ppp); 1000 ppp_push(ppp);
1000 while (!ppp->xmit_pending 1001 while (!ppp->xmit_pending
1001 && (skb = skb_dequeue(&ppp->file.xq))) 1002 && (skb = skb_dequeue(&ppp->file.xq)))
@@ -1463,8 +1464,7 @@ static inline void
1463ppp_do_recv(struct ppp *ppp, struct sk_buff *skb, struct channel *pch) 1464ppp_do_recv(struct ppp *ppp, struct sk_buff *skb, struct channel *pch)
1464{ 1465{
1465 ppp_recv_lock(ppp); 1466 ppp_recv_lock(ppp);
1466 /* ppp->dev == 0 means interface is closing down */ 1467 if (!ppp->closing)
1467 if (ppp->dev)
1468 ppp_receive_frame(ppp, skb, pch); 1468 ppp_receive_frame(ppp, skb, pch);
1469 else 1469 else
1470 kfree_skb(skb); 1470 kfree_skb(skb);
@@ -2498,18 +2498,16 @@ init_ppp_file(struct ppp_file *pf, int kind)
2498 */ 2498 */
2499static void ppp_shutdown_interface(struct ppp *ppp) 2499static void ppp_shutdown_interface(struct ppp *ppp)
2500{ 2500{
2501 struct net_device *dev;
2502
2503 mutex_lock(&all_ppp_mutex); 2501 mutex_lock(&all_ppp_mutex);
2504 ppp_lock(ppp);
2505 dev = ppp->dev;
2506 ppp->dev = NULL;
2507 ppp_unlock(ppp);
2508 /* This will call dev_close() for us. */ 2502 /* This will call dev_close() for us. */
2509 if (dev) { 2503 ppp_lock(ppp);
2510 unregister_netdev(dev); 2504 if (!ppp->closing) {
2511 free_netdev(dev); 2505 ppp->closing = 1;
2512 } 2506 ppp_unlock(ppp);
2507 unregister_netdev(ppp->dev);
2508 } else
2509 ppp_unlock(ppp);
2510
2513 cardmap_set(&all_ppp_units, ppp->file.index, NULL); 2511 cardmap_set(&all_ppp_units, ppp->file.index, NULL);
2514 ppp->file.dead = 1; 2512 ppp->file.dead = 1;
2515 ppp->owner = NULL; 2513 ppp->owner = NULL;
@@ -2554,7 +2552,7 @@ static void ppp_destroy_interface(struct ppp *ppp)
2554 if (ppp->xmit_pending) 2552 if (ppp->xmit_pending)
2555 kfree_skb(ppp->xmit_pending); 2553 kfree_skb(ppp->xmit_pending);
2556 2554
2557 kfree(ppp); 2555 free_netdev(ppp->dev);
2558} 2556}
2559 2557
2560/* 2558/*
@@ -2616,7 +2614,7 @@ ppp_connect_channel(struct channel *pch, int unit)
2616 if (pch->file.hdrlen > ppp->file.hdrlen) 2614 if (pch->file.hdrlen > ppp->file.hdrlen)
2617 ppp->file.hdrlen = pch->file.hdrlen; 2615 ppp->file.hdrlen = pch->file.hdrlen;
2618 hdrlen = pch->file.hdrlen + 2; /* for protocol bytes */ 2616 hdrlen = pch->file.hdrlen + 2; /* for protocol bytes */
2619 if (ppp->dev && hdrlen > ppp->dev->hard_header_len) 2617 if (hdrlen > ppp->dev->hard_header_len)
2620 ppp->dev->hard_header_len = hdrlen; 2618 ppp->dev->hard_header_len = hdrlen;
2621 list_add_tail(&pch->clist, &ppp->channels); 2619 list_add_tail(&pch->clist, &ppp->channels);
2622 ++ppp->n_channels; 2620 ++ppp->n_channels;
diff --git a/drivers/net/pppol2tp.c b/drivers/net/pppol2tp.c
index 185b1dff10a8..e98d9773158d 100644
--- a/drivers/net/pppol2tp.c
+++ b/drivers/net/pppol2tp.c
@@ -1353,6 +1353,7 @@ static int pppol2tp_release(struct socket *sock)
1353 kfree_skb(skb); 1353 kfree_skb(skb);
1354 sock_put(sk); 1354 sock_put(sk);
1355 } 1355 }
1356 sock_put(sk);
1356 } 1357 }
1357 1358
1358 release_sock(sk); 1359 release_sock(sk);
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index fa3a460f8e2f..8e8337e8b072 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -1630,7 +1630,6 @@ sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
1630 * sis900_interrupt - sis900 interrupt handler 1630 * sis900_interrupt - sis900 interrupt handler
1631 * @irq: the irq number 1631 * @irq: the irq number
1632 * @dev_instance: the client data object 1632 * @dev_instance: the client data object
1633 * @regs: snapshot of processor context
1634 * 1633 *
1635 * The interrupt handler does all of the Rx thread work, 1634 * The interrupt handler does all of the Rx thread work,
1636 * and cleans up after the Tx thread 1635 * and cleans up after the Tx thread
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index b185cd12269c..9a16a79b67d0 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -1735,7 +1735,7 @@ static const struct ethtool_ops smc911x_ethtool_ops = {
1735 * This routine has a simple purpose -- make the SMC chip generate an 1735 * This routine has a simple purpose -- make the SMC chip generate an
1736 * interrupt, so an auto-detect routine can detect it, and find the IRQ, 1736 * interrupt, so an auto-detect routine can detect it, and find the IRQ,
1737 */ 1737 */
1738static int __init smc911x_findirq(struct net_device *dev) 1738static int __devinit smc911x_findirq(struct net_device *dev)
1739{ 1739{
1740 struct smc911x_local *lp = netdev_priv(dev); 1740 struct smc911x_local *lp = netdev_priv(dev);
1741 int timeout = 20; 1741 int timeout = 20;
@@ -1799,7 +1799,7 @@ static int __init smc911x_findirq(struct net_device *dev)
1799 * o actually GRAB the irq. 1799 * o actually GRAB the irq.
1800 * o GRAB the region 1800 * o GRAB the region
1801 */ 1801 */
1802static int __init smc911x_probe(struct net_device *dev) 1802static int __devinit smc911x_probe(struct net_device *dev)
1803{ 1803{
1804 struct smc911x_local *lp = netdev_priv(dev); 1804 struct smc911x_local *lp = netdev_priv(dev);
1805 int i, retval; 1805 int i, retval;
@@ -2048,7 +2048,7 @@ err_out:
2048 * 0 --> there is a device 2048 * 0 --> there is a device
2049 * anything else, error 2049 * anything else, error
2050 */ 2050 */
2051static int smc911x_drv_probe(struct platform_device *pdev) 2051static int __devinit smc911x_drv_probe(struct platform_device *pdev)
2052{ 2052{
2053#ifdef SMC_DYNAMIC_BUS_CONFIG 2053#ifdef SMC_DYNAMIC_BUS_CONFIG
2054 struct smc911x_platdata *pd = pdev->dev.platform_data; 2054 struct smc911x_platdata *pd = pdev->dev.platform_data;
@@ -2124,7 +2124,7 @@ out:
2124 return ret; 2124 return ret;
2125} 2125}
2126 2126
2127static int smc911x_drv_remove(struct platform_device *pdev) 2127static int __devexit smc911x_drv_remove(struct platform_device *pdev)
2128{ 2128{
2129 struct net_device *ndev = platform_get_drvdata(pdev); 2129 struct net_device *ndev = platform_get_drvdata(pdev);
2130 struct smc911x_local *lp = netdev_priv(ndev); 2130 struct smc911x_local *lp = netdev_priv(ndev);
@@ -2195,7 +2195,7 @@ static int smc911x_drv_resume(struct platform_device *dev)
2195 2195
2196static struct platform_driver smc911x_driver = { 2196static struct platform_driver smc911x_driver = {
2197 .probe = smc911x_drv_probe, 2197 .probe = smc911x_drv_probe,
2198 .remove = smc911x_drv_remove, 2198 .remove = __devexit_p(smc911x_drv_remove),
2199 .suspend = smc911x_drv_suspend, 2199 .suspend = smc911x_drv_suspend,
2200 .resume = smc911x_drv_resume, 2200 .resume = smc911x_drv_resume,
2201 .driver = { 2201 .driver = {
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index fc80f250da31..35c56abf4113 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -1696,7 +1696,7 @@ static const struct ethtool_ops smc_ethtool_ops = {
1696 * I just deleted auto_irq.c, since it was never built... 1696 * I just deleted auto_irq.c, since it was never built...
1697 * --jgarzik 1697 * --jgarzik
1698 */ 1698 */
1699static int __init smc_findirq(struct smc_local *lp) 1699static int __devinit smc_findirq(struct smc_local *lp)
1700{ 1700{
1701 void __iomem *ioaddr = lp->base; 1701 void __iomem *ioaddr = lp->base;
1702 int timeout = 20; 1702 int timeout = 20;
@@ -1770,7 +1770,7 @@ static int __init smc_findirq(struct smc_local *lp)
1770 * o actually GRAB the irq. 1770 * o actually GRAB the irq.
1771 * o GRAB the region 1771 * o GRAB the region
1772 */ 1772 */
1773static int __init smc_probe(struct net_device *dev, void __iomem *ioaddr, 1773static int __devinit smc_probe(struct net_device *dev, void __iomem *ioaddr,
1774 unsigned long irq_flags) 1774 unsigned long irq_flags)
1775{ 1775{
1776 struct smc_local *lp = netdev_priv(dev); 1776 struct smc_local *lp = netdev_priv(dev);
@@ -2126,7 +2126,7 @@ static void smc_release_datacs(struct platform_device *pdev, struct net_device *
2126 * 0 --> there is a device 2126 * 0 --> there is a device
2127 * anything else, error 2127 * anything else, error
2128 */ 2128 */
2129static int smc_drv_probe(struct platform_device *pdev) 2129static int __devinit smc_drv_probe(struct platform_device *pdev)
2130{ 2130{
2131 struct smc91x_platdata *pd = pdev->dev.platform_data; 2131 struct smc91x_platdata *pd = pdev->dev.platform_data;
2132 struct smc_local *lp; 2132 struct smc_local *lp;
@@ -2240,7 +2240,7 @@ static int smc_drv_probe(struct platform_device *pdev)
2240 return ret; 2240 return ret;
2241} 2241}
2242 2242
2243static int smc_drv_remove(struct platform_device *pdev) 2243static int __devexit smc_drv_remove(struct platform_device *pdev)
2244{ 2244{
2245 struct net_device *ndev = platform_get_drvdata(pdev); 2245 struct net_device *ndev = platform_get_drvdata(pdev);
2246 struct smc_local *lp = netdev_priv(ndev); 2246 struct smc_local *lp = netdev_priv(ndev);
@@ -2305,7 +2305,7 @@ static int smc_drv_resume(struct platform_device *dev)
2305 2305
2306static struct platform_driver smc_driver = { 2306static struct platform_driver smc_driver = {
2307 .probe = smc_drv_probe, 2307 .probe = smc_drv_probe,
2308 .remove = smc_drv_remove, 2308 .remove = __devexit_p(smc_drv_remove),
2309 .suspend = smc_drv_suspend, 2309 .suspend = smc_drv_suspend,
2310 .resume = smc_drv_resume, 2310 .resume = smc_drv_resume,
2311 .driver = { 2311 .driver = {
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index b6435d0d71f9..07599b492359 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -672,7 +672,6 @@ write_hash:
672/** 672/**
673 * spider_net_prepare_tx_descr - fill tx descriptor with skb data 673 * spider_net_prepare_tx_descr - fill tx descriptor with skb data
674 * @card: card structure 674 * @card: card structure
675 * @descr: descriptor structure to fill out
676 * @skb: packet to use 675 * @skb: packet to use
677 * 676 *
678 * returns 0 on success, <0 on failure. 677 * returns 0 on success, <0 on failure.
@@ -867,7 +866,6 @@ spider_net_release_tx_chain(struct spider_net_card *card, int brutal)
867/** 866/**
868 * spider_net_kick_tx_dma - enables TX DMA processing 867 * spider_net_kick_tx_dma - enables TX DMA processing
869 * @card: card structure 868 * @card: card structure
870 * @descr: descriptor address to enable TX processing at
871 * 869 *
872 * This routine will start the transmit DMA running if 870 * This routine will start the transmit DMA running if
873 * it is not already running. This routine ned only be 871 * it is not already running. This routine ned only be
@@ -1637,7 +1635,6 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg,
1637 * spider_net_interrupt - interrupt handler for spider_net 1635 * spider_net_interrupt - interrupt handler for spider_net
1638 * @irq: interrupt number 1636 * @irq: interrupt number
1639 * @ptr: pointer to net_device 1637 * @ptr: pointer to net_device
1640 * @regs: PU registers
1641 * 1638 *
1642 * returns IRQ_HANDLED, if interrupt was for driver, or IRQ_NONE, if no 1639 * returns IRQ_HANDLED, if interrupt was for driver, or IRQ_NONE, if no
1643 * interrupt found raised by card. 1640 * interrupt found raised by card.
@@ -2419,7 +2416,6 @@ spider_net_undo_pci_setup(struct spider_net_card *card)
2419 2416
2420/** 2417/**
2421 * spider_net_setup_pci_dev - sets up the device in terms of PCI operations 2418 * spider_net_setup_pci_dev - sets up the device in terms of PCI operations
2422 * @card: card structure
2423 * @pdev: PCI device 2419 * @pdev: PCI device
2424 * 2420 *
2425 * Returns the card structure or NULL if any errors occur 2421 * Returns the card structure or NULL if any errors occur
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 1d2ef8f47780..5a40f2d78beb 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -1509,6 +1509,11 @@ static int __netdev_rx(struct net_device *dev, int *quota)
1509 desc->status = 0; 1509 desc->status = 0;
1510 np->rx_done = (np->rx_done + 1) % DONE_Q_SIZE; 1510 np->rx_done = (np->rx_done + 1) % DONE_Q_SIZE;
1511 } 1511 }
1512
1513 if (*quota == 0) { /* out of rx quota */
1514 retcode = 1;
1515 goto out;
1516 }
1512 writew(np->rx_done, np->base + CompletionQConsumerIdx); 1517 writew(np->rx_done, np->base + CompletionQConsumerIdx);
1513 1518
1514 out: 1519 out:
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 4291458955ef..fed7eba65ead 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -1142,6 +1142,70 @@ static int gem_start_xmit(struct sk_buff *skb, struct net_device *dev)
1142 return NETDEV_TX_OK; 1142 return NETDEV_TX_OK;
1143} 1143}
1144 1144
1145static void gem_pcs_reset(struct gem *gp)
1146{
1147 int limit;
1148 u32 val;
1149
1150 /* Reset PCS unit. */
1151 val = readl(gp->regs + PCS_MIICTRL);
1152 val |= PCS_MIICTRL_RST;
1153 writel(val, gp->regs + PCS_MIICTRL);
1154
1155 limit = 32;
1156 while (readl(gp->regs + PCS_MIICTRL) & PCS_MIICTRL_RST) {
1157 udelay(100);
1158 if (limit-- <= 0)
1159 break;
1160 }
1161 if (limit <= 0)
1162 printk(KERN_WARNING "%s: PCS reset bit would not clear.\n",
1163 gp->dev->name);
1164}
1165
1166static void gem_pcs_reinit_adv(struct gem *gp)
1167{
1168 u32 val;
1169
1170 /* Make sure PCS is disabled while changing advertisement
1171 * configuration.
1172 */
1173 val = readl(gp->regs + PCS_CFG);
1174 val &= ~(PCS_CFG_ENABLE | PCS_CFG_TO);
1175 writel(val, gp->regs + PCS_CFG);
1176
1177 /* Advertise all capabilities except assymetric
1178 * pause.
1179 */
1180 val = readl(gp->regs + PCS_MIIADV);
1181 val |= (PCS_MIIADV_FD | PCS_MIIADV_HD |
1182 PCS_MIIADV_SP | PCS_MIIADV_AP);
1183 writel(val, gp->regs + PCS_MIIADV);
1184
1185 /* Enable and restart auto-negotiation, disable wrapback/loopback,
1186 * and re-enable PCS.
1187 */
1188 val = readl(gp->regs + PCS_MIICTRL);
1189 val |= (PCS_MIICTRL_RAN | PCS_MIICTRL_ANE);
1190 val &= ~PCS_MIICTRL_WB;
1191 writel(val, gp->regs + PCS_MIICTRL);
1192
1193 val = readl(gp->regs + PCS_CFG);
1194 val |= PCS_CFG_ENABLE;
1195 writel(val, gp->regs + PCS_CFG);
1196
1197 /* Make sure serialink loopback is off. The meaning
1198 * of this bit is logically inverted based upon whether
1199 * you are in Serialink or SERDES mode.
1200 */
1201 val = readl(gp->regs + PCS_SCTRL);
1202 if (gp->phy_type == phy_serialink)
1203 val &= ~PCS_SCTRL_LOOP;
1204 else
1205 val |= PCS_SCTRL_LOOP;
1206 writel(val, gp->regs + PCS_SCTRL);
1207}
1208
1145#define STOP_TRIES 32 1209#define STOP_TRIES 32
1146 1210
1147/* Must be invoked under gp->lock and gp->tx_lock. */ 1211/* Must be invoked under gp->lock and gp->tx_lock. */
@@ -1168,6 +1232,9 @@ static void gem_reset(struct gem *gp)
1168 1232
1169 if (limit <= 0) 1233 if (limit <= 0)
1170 printk(KERN_ERR "%s: SW reset is ghetto.\n", gp->dev->name); 1234 printk(KERN_ERR "%s: SW reset is ghetto.\n", gp->dev->name);
1235
1236 if (gp->phy_type == phy_serialink || gp->phy_type == phy_serdes)
1237 gem_pcs_reinit_adv(gp);
1171} 1238}
1172 1239
1173/* Must be invoked under gp->lock and gp->tx_lock. */ 1240/* Must be invoked under gp->lock and gp->tx_lock. */
@@ -1324,7 +1391,7 @@ static int gem_set_link_modes(struct gem *gp)
1324 gp->phy_type == phy_serdes) { 1391 gp->phy_type == phy_serdes) {
1325 u32 pcs_lpa = readl(gp->regs + PCS_MIILP); 1392 u32 pcs_lpa = readl(gp->regs + PCS_MIILP);
1326 1393
1327 if (pcs_lpa & PCS_MIIADV_FD) 1394 if ((pcs_lpa & PCS_MIIADV_FD) || gp->phy_type == phy_serdes)
1328 full_duplex = 1; 1395 full_duplex = 1;
1329 speed = SPEED_1000; 1396 speed = SPEED_1000;
1330 } 1397 }
@@ -1488,6 +1555,9 @@ static void gem_link_timer(unsigned long data)
1488 val = readl(gp->regs + PCS_MIISTAT); 1555 val = readl(gp->regs + PCS_MIISTAT);
1489 1556
1490 if ((val & PCS_MIISTAT_LS) != 0) { 1557 if ((val & PCS_MIISTAT_LS) != 0) {
1558 if (gp->lstate == link_up)
1559 goto restart;
1560
1491 gp->lstate = link_up; 1561 gp->lstate = link_up;
1492 netif_carrier_on(gp->dev); 1562 netif_carrier_on(gp->dev);
1493 (void)gem_set_link_modes(gp); 1563 (void)gem_set_link_modes(gp);
@@ -1708,61 +1778,8 @@ static void gem_init_phy(struct gem *gp)
1708 if (gp->phy_mii.def && gp->phy_mii.def->ops->init) 1778 if (gp->phy_mii.def && gp->phy_mii.def->ops->init)
1709 gp->phy_mii.def->ops->init(&gp->phy_mii); 1779 gp->phy_mii.def->ops->init(&gp->phy_mii);
1710 } else { 1780 } else {
1711 u32 val; 1781 gem_pcs_reset(gp);
1712 int limit; 1782 gem_pcs_reinit_adv(gp);
1713
1714 /* Reset PCS unit. */
1715 val = readl(gp->regs + PCS_MIICTRL);
1716 val |= PCS_MIICTRL_RST;
1717 writeb(val, gp->regs + PCS_MIICTRL);
1718
1719 limit = 32;
1720 while (readl(gp->regs + PCS_MIICTRL) & PCS_MIICTRL_RST) {
1721 udelay(100);
1722 if (limit-- <= 0)
1723 break;
1724 }
1725 if (limit <= 0)
1726 printk(KERN_WARNING "%s: PCS reset bit would not clear.\n",
1727 gp->dev->name);
1728
1729 /* Make sure PCS is disabled while changing advertisement
1730 * configuration.
1731 */
1732 val = readl(gp->regs + PCS_CFG);
1733 val &= ~(PCS_CFG_ENABLE | PCS_CFG_TO);
1734 writel(val, gp->regs + PCS_CFG);
1735
1736 /* Advertise all capabilities except assymetric
1737 * pause.
1738 */
1739 val = readl(gp->regs + PCS_MIIADV);
1740 val |= (PCS_MIIADV_FD | PCS_MIIADV_HD |
1741 PCS_MIIADV_SP | PCS_MIIADV_AP);
1742 writel(val, gp->regs + PCS_MIIADV);
1743
1744 /* Enable and restart auto-negotiation, disable wrapback/loopback,
1745 * and re-enable PCS.
1746 */
1747 val = readl(gp->regs + PCS_MIICTRL);
1748 val |= (PCS_MIICTRL_RAN | PCS_MIICTRL_ANE);
1749 val &= ~PCS_MIICTRL_WB;
1750 writel(val, gp->regs + PCS_MIICTRL);
1751
1752 val = readl(gp->regs + PCS_CFG);
1753 val |= PCS_CFG_ENABLE;
1754 writel(val, gp->regs + PCS_CFG);
1755
1756 /* Make sure serialink loopback is off. The meaning
1757 * of this bit is logically inverted based upon whether
1758 * you are in Serialink or SERDES mode.
1759 */
1760 val = readl(gp->regs + PCS_SCTRL);
1761 if (gp->phy_type == phy_serialink)
1762 val &= ~PCS_SCTRL_LOOP;
1763 else
1764 val |= PCS_SCTRL_LOOP;
1765 writel(val, gp->regs + PCS_SCTRL);
1766 } 1783 }
1767 1784
1768 /* Default aneg parameters */ 1785 /* Default aneg parameters */
@@ -2680,6 +2697,21 @@ static int gem_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
2680 cmd->speed = 0; 2697 cmd->speed = 0;
2681 cmd->duplex = cmd->port = cmd->phy_address = 2698 cmd->duplex = cmd->port = cmd->phy_address =
2682 cmd->transceiver = cmd->autoneg = 0; 2699 cmd->transceiver = cmd->autoneg = 0;
2700
2701 /* serdes means usually a Fibre connector, with most fixed */
2702 if (gp->phy_type == phy_serdes) {
2703 cmd->port = PORT_FIBRE;
2704 cmd->supported = (SUPPORTED_1000baseT_Half |
2705 SUPPORTED_1000baseT_Full |
2706 SUPPORTED_FIBRE | SUPPORTED_Autoneg |
2707 SUPPORTED_Pause | SUPPORTED_Asym_Pause);
2708 cmd->advertising = cmd->supported;
2709 cmd->transceiver = XCVR_INTERNAL;
2710 if (gp->lstate == link_up)
2711 cmd->speed = SPEED_1000;
2712 cmd->duplex = DUPLEX_FULL;
2713 cmd->autoneg = 1;
2714 }
2683 } 2715 }
2684 cmd->maxtxpkt = cmd->maxrxpkt = 0; 2716 cmd->maxtxpkt = cmd->maxrxpkt = 0;
2685 2717
diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
index c41d68761364..e60498232b94 100644
--- a/drivers/net/tlan.c
+++ b/drivers/net/tlan.c
@@ -1098,6 +1098,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
1098 dma_addr_t tail_list_phys; 1098 dma_addr_t tail_list_phys;
1099 u8 *tail_buffer; 1099 u8 *tail_buffer;
1100 unsigned long flags; 1100 unsigned long flags;
1101 unsigned int txlen;
1101 1102
1102 if ( ! priv->phyOnline ) { 1103 if ( ! priv->phyOnline ) {
1103 TLAN_DBG( TLAN_DEBUG_TX, "TRANSMIT: %s PHY is not ready\n", 1104 TLAN_DBG( TLAN_DEBUG_TX, "TRANSMIT: %s PHY is not ready\n",
@@ -1108,6 +1109,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
1108 1109
1109 if (skb_padto(skb, TLAN_MIN_FRAME_SIZE)) 1110 if (skb_padto(skb, TLAN_MIN_FRAME_SIZE))
1110 return 0; 1111 return 0;
1112 txlen = max(skb->len, (unsigned int)TLAN_MIN_FRAME_SIZE);
1111 1113
1112 tail_list = priv->txList + priv->txTail; 1114 tail_list = priv->txList + priv->txTail;
1113 tail_list_phys = priv->txListDMA + sizeof(TLanList) * priv->txTail; 1115 tail_list_phys = priv->txListDMA + sizeof(TLanList) * priv->txTail;
@@ -1125,16 +1127,16 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
1125 1127
1126 if ( bbuf ) { 1128 if ( bbuf ) {
1127 tail_buffer = priv->txBuffer + ( priv->txTail * TLAN_MAX_FRAME_SIZE ); 1129 tail_buffer = priv->txBuffer + ( priv->txTail * TLAN_MAX_FRAME_SIZE );
1128 skb_copy_from_linear_data(skb, tail_buffer, skb->len); 1130 skb_copy_from_linear_data(skb, tail_buffer, txlen);
1129 } else { 1131 } else {
1130 tail_list->buffer[0].address = pci_map_single(priv->pciDev, 1132 tail_list->buffer[0].address = pci_map_single(priv->pciDev,
1131 skb->data, skb->len, 1133 skb->data, txlen,
1132 PCI_DMA_TODEVICE); 1134 PCI_DMA_TODEVICE);
1133 TLan_StoreSKB(tail_list, skb); 1135 TLan_StoreSKB(tail_list, skb);
1134 } 1136 }
1135 1137
1136 tail_list->frameSize = (u16) skb->len; 1138 tail_list->frameSize = (u16) txlen;
1137 tail_list->buffer[0].count = TLAN_LAST_BUFFER | (u32) skb->len; 1139 tail_list->buffer[0].count = TLAN_LAST_BUFFER | (u32) txlen;
1138 tail_list->buffer[1].count = 0; 1140 tail_list->buffer[1].count = 0;
1139 tail_list->buffer[1].address = 0; 1141 tail_list->buffer[1].address = 0;
1140 1142
@@ -1431,7 +1433,9 @@ static u32 TLan_HandleTxEOF( struct net_device *dev, u16 host_int )
1431 if ( ! bbuf ) { 1433 if ( ! bbuf ) {
1432 struct sk_buff *skb = TLan_GetSKB(head_list); 1434 struct sk_buff *skb = TLan_GetSKB(head_list);
1433 pci_unmap_single(priv->pciDev, head_list->buffer[0].address, 1435 pci_unmap_single(priv->pciDev, head_list->buffer[0].address,
1434 skb->len, PCI_DMA_TODEVICE); 1436 max(skb->len,
1437 (unsigned int)TLAN_MIN_FRAME_SIZE),
1438 PCI_DMA_TODEVICE);
1435 dev_kfree_skb_any(skb); 1439 dev_kfree_skb_any(skb);
1436 head_list->buffer[8].address = 0; 1440 head_list->buffer[8].address = 0;
1437 head_list->buffer[9].address = 0; 1441 head_list->buffer[9].address = 0;
@@ -2055,9 +2059,12 @@ static void TLan_FreeLists( struct net_device *dev )
2055 list = priv->txList + i; 2059 list = priv->txList + i;
2056 skb = TLan_GetSKB(list); 2060 skb = TLan_GetSKB(list);
2057 if ( skb ) { 2061 if ( skb ) {
2058 pci_unmap_single(priv->pciDev, 2062 pci_unmap_single(
2059 list->buffer[0].address, skb->len, 2063 priv->pciDev,
2060 PCI_DMA_TODEVICE); 2064 list->buffer[0].address,
2065 max(skb->len,
2066 (unsigned int)TLAN_MIN_FRAME_SIZE),
2067 PCI_DMA_TODEVICE);
2061 dev_kfree_skb_any( skb ); 2068 dev_kfree_skb_any( skb );
2062 list->buffer[8].address = 0; 2069 list->buffer[8].address = 0;
2063 list->buffer[9].address = 0; 2070 list->buffer[9].address = 0;
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index cfd4d052d666..2d14255eb103 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -240,6 +240,10 @@ static u64 ath5k_get_tsf(struct ieee80211_hw *hw);
240static void ath5k_reset_tsf(struct ieee80211_hw *hw); 240static void ath5k_reset_tsf(struct ieee80211_hw *hw);
241static int ath5k_beacon_update(struct ieee80211_hw *hw, 241static int ath5k_beacon_update(struct ieee80211_hw *hw,
242 struct sk_buff *skb); 242 struct sk_buff *skb);
243static void ath5k_bss_info_changed(struct ieee80211_hw *hw,
244 struct ieee80211_vif *vif,
245 struct ieee80211_bss_conf *bss_conf,
246 u32 changes);
243 247
244static struct ieee80211_ops ath5k_hw_ops = { 248static struct ieee80211_ops ath5k_hw_ops = {
245 .tx = ath5k_tx, 249 .tx = ath5k_tx,
@@ -256,6 +260,7 @@ static struct ieee80211_ops ath5k_hw_ops = {
256 .get_tx_stats = ath5k_get_tx_stats, 260 .get_tx_stats = ath5k_get_tx_stats,
257 .get_tsf = ath5k_get_tsf, 261 .get_tsf = ath5k_get_tsf,
258 .reset_tsf = ath5k_reset_tsf, 262 .reset_tsf = ath5k_reset_tsf,
263 .bss_info_changed = ath5k_bss_info_changed,
259}; 264};
260 265
261/* 266/*
@@ -2942,7 +2947,7 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw,
2942 sc->opmode != NL80211_IFTYPE_MESH_POINT && 2947 sc->opmode != NL80211_IFTYPE_MESH_POINT &&
2943 test_bit(ATH_STAT_PROMISC, sc->status)) 2948 test_bit(ATH_STAT_PROMISC, sc->status))
2944 rfilt |= AR5K_RX_FILTER_PROM; 2949 rfilt |= AR5K_RX_FILTER_PROM;
2945 if (sc->opmode == NL80211_IFTYPE_STATION || 2950 if ((sc->opmode == NL80211_IFTYPE_STATION && sc->assoc) ||
2946 sc->opmode == NL80211_IFTYPE_ADHOC) { 2951 sc->opmode == NL80211_IFTYPE_ADHOC) {
2947 rfilt |= AR5K_RX_FILTER_BEACON; 2952 rfilt |= AR5K_RX_FILTER_BEACON;
2948 } 2953 }
@@ -3083,4 +3088,32 @@ ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
3083end: 3088end:
3084 return ret; 3089 return ret;
3085} 3090}
3091static void
3092set_beacon_filter(struct ieee80211_hw *hw, bool enable)
3093{
3094 struct ath5k_softc *sc = hw->priv;
3095 struct ath5k_hw *ah = sc->ah;
3096 u32 rfilt;
3097 rfilt = ath5k_hw_get_rx_filter(ah);
3098 if (enable)
3099 rfilt |= AR5K_RX_FILTER_BEACON;
3100 else
3101 rfilt &= ~AR5K_RX_FILTER_BEACON;
3102 ath5k_hw_set_rx_filter(ah, rfilt);
3103 sc->filter_flags = rfilt;
3104}
3086 3105
3106static void ath5k_bss_info_changed(struct ieee80211_hw *hw,
3107 struct ieee80211_vif *vif,
3108 struct ieee80211_bss_conf *bss_conf,
3109 u32 changes)
3110{
3111 struct ath5k_softc *sc = hw->priv;
3112 if (changes & BSS_CHANGED_ASSOC) {
3113 mutex_lock(&sc->lock);
3114 sc->assoc = bss_conf->assoc;
3115 if (sc->opmode == NL80211_IFTYPE_STATION)
3116 set_beacon_filter(hw, sc->assoc);
3117 mutex_unlock(&sc->lock);
3118 }
3119}
diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h
index 06d1054ca94b..facc60ddada2 100644
--- a/drivers/net/wireless/ath5k/base.h
+++ b/drivers/net/wireless/ath5k/base.h
@@ -179,6 +179,7 @@ struct ath5k_softc {
179 179
180 struct timer_list calib_tim; /* calibration timer */ 180 struct timer_list calib_tim; /* calibration timer */
181 int power_level; /* Requested tx power in dbm */ 181 int power_level; /* Requested tx power in dbm */
182 bool assoc; /* assocate state */
182}; 183};
183 184
184#define ath5k_hw_hasbssidmask(_ah) \ 185#define ath5k_hw_hasbssidmask(_ah) \
diff --git a/drivers/net/wireless/ath5k/debug.c b/drivers/net/wireless/ath5k/debug.c
index 19980cbd5d5f..ccaeb5c219d2 100644
--- a/drivers/net/wireless/ath5k/debug.c
+++ b/drivers/net/wireless/ath5k/debug.c
@@ -417,19 +417,19 @@ ath5k_debug_init_device(struct ath5k_softc *sc)
417 sc->debug.debugfs_phydir = debugfs_create_dir(wiphy_name(sc->hw->wiphy), 417 sc->debug.debugfs_phydir = debugfs_create_dir(wiphy_name(sc->hw->wiphy),
418 ath5k_global_debugfs); 418 ath5k_global_debugfs);
419 419
420 sc->debug.debugfs_debug = debugfs_create_file("debug", 0666, 420 sc->debug.debugfs_debug = debugfs_create_file("debug", S_IWUSR | S_IRUGO,
421 sc->debug.debugfs_phydir, sc, &fops_debug); 421 sc->debug.debugfs_phydir, sc, &fops_debug);
422 422
423 sc->debug.debugfs_registers = debugfs_create_file("registers", 0444, 423 sc->debug.debugfs_registers = debugfs_create_file("registers", S_IRUGO,
424 sc->debug.debugfs_phydir, sc, &fops_registers); 424 sc->debug.debugfs_phydir, sc, &fops_registers);
425 425
426 sc->debug.debugfs_tsf = debugfs_create_file("tsf", 0666, 426 sc->debug.debugfs_tsf = debugfs_create_file("tsf", S_IWUSR | S_IRUGO,
427 sc->debug.debugfs_phydir, sc, &fops_tsf); 427 sc->debug.debugfs_phydir, sc, &fops_tsf);
428 428
429 sc->debug.debugfs_beacon = debugfs_create_file("beacon", 0666, 429 sc->debug.debugfs_beacon = debugfs_create_file("beacon", S_IWUSR | S_IRUGO,
430 sc->debug.debugfs_phydir, sc, &fops_beacon); 430 sc->debug.debugfs_phydir, sc, &fops_beacon);
431 431
432 sc->debug.debugfs_reset = debugfs_create_file("reset", 0222, 432 sc->debug.debugfs_reset = debugfs_create_file("reset", S_IWUSR,
433 sc->debug.debugfs_phydir, sc, &fops_reset); 433 sc->debug.debugfs_phydir, sc, &fops_reset);
434} 434}
435 435
diff --git a/drivers/net/wireless/ath9k/beacon.c b/drivers/net/wireless/ath9k/beacon.c
index 9e15c30bbc06..4dd1c1bda0fb 100644
--- a/drivers/net/wireless/ath9k/beacon.c
+++ b/drivers/net/wireless/ath9k/beacon.c
@@ -170,7 +170,7 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
170 skb = (struct sk_buff *)bf->bf_mpdu; 170 skb = (struct sk_buff *)bf->bf_mpdu;
171 if (skb) { 171 if (skb) {
172 pci_unmap_single(sc->pdev, bf->bf_dmacontext, 172 pci_unmap_single(sc->pdev, bf->bf_dmacontext,
173 skb_end_pointer(skb) - skb->head, 173 skb->len,
174 PCI_DMA_TODEVICE); 174 PCI_DMA_TODEVICE);
175 } 175 }
176 176
@@ -193,7 +193,7 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
193 193
194 bf->bf_buf_addr = bf->bf_dmacontext = 194 bf->bf_buf_addr = bf->bf_dmacontext =
195 pci_map_single(sc->pdev, skb->data, 195 pci_map_single(sc->pdev, skb->data,
196 skb_end_pointer(skb) - skb->head, 196 skb->len,
197 PCI_DMA_TODEVICE); 197 PCI_DMA_TODEVICE);
198 198
199 skb = ieee80211_get_buffered_bc(sc->hw, avp->av_if_data); 199 skb = ieee80211_get_buffered_bc(sc->hw, avp->av_if_data);
@@ -352,7 +352,7 @@ int ath_beacon_alloc(struct ath_softc *sc, int if_id)
352 if (bf->bf_mpdu != NULL) { 352 if (bf->bf_mpdu != NULL) {
353 skb = (struct sk_buff *)bf->bf_mpdu; 353 skb = (struct sk_buff *)bf->bf_mpdu;
354 pci_unmap_single(sc->pdev, bf->bf_dmacontext, 354 pci_unmap_single(sc->pdev, bf->bf_dmacontext,
355 skb_end_pointer(skb) - skb->head, 355 skb->len,
356 PCI_DMA_TODEVICE); 356 PCI_DMA_TODEVICE);
357 dev_kfree_skb_any(skb); 357 dev_kfree_skb_any(skb);
358 bf->bf_mpdu = NULL; 358 bf->bf_mpdu = NULL;
@@ -412,7 +412,7 @@ int ath_beacon_alloc(struct ath_softc *sc, int if_id)
412 412
413 bf->bf_buf_addr = bf->bf_dmacontext = 413 bf->bf_buf_addr = bf->bf_dmacontext =
414 pci_map_single(sc->pdev, skb->data, 414 pci_map_single(sc->pdev, skb->data,
415 skb_end_pointer(skb) - skb->head, 415 skb->len,
416 PCI_DMA_TODEVICE); 416 PCI_DMA_TODEVICE);
417 bf->bf_mpdu = skb; 417 bf->bf_mpdu = skb;
418 418
@@ -439,7 +439,7 @@ void ath_beacon_return(struct ath_softc *sc, struct ath_vap *avp)
439 if (bf->bf_mpdu != NULL) { 439 if (bf->bf_mpdu != NULL) {
440 struct sk_buff *skb = (struct sk_buff *)bf->bf_mpdu; 440 struct sk_buff *skb = (struct sk_buff *)bf->bf_mpdu;
441 pci_unmap_single(sc->pdev, bf->bf_dmacontext, 441 pci_unmap_single(sc->pdev, bf->bf_dmacontext,
442 skb_end_pointer(skb) - skb->head, 442 skb->len,
443 PCI_DMA_TODEVICE); 443 PCI_DMA_TODEVICE);
444 dev_kfree_skb_any(skb); 444 dev_kfree_skb_any(skb);
445 bf->bf_mpdu = NULL; 445 bf->bf_mpdu = NULL;
diff --git a/drivers/net/wireless/ath9k/recv.c b/drivers/net/wireless/ath9k/recv.c
index 4983402af559..504a0444d89f 100644
--- a/drivers/net/wireless/ath9k/recv.c
+++ b/drivers/net/wireless/ath9k/recv.c
@@ -49,10 +49,12 @@ static void ath_rx_buf_link(struct ath_softc *sc, struct ath_buf *bf)
49 ASSERT(skb != NULL); 49 ASSERT(skb != NULL);
50 ds->ds_vdata = skb->data; 50 ds->ds_vdata = skb->data;
51 51
52 /* setup rx descriptors */ 52 /* setup rx descriptors. The sc_rxbufsize here tells the harware
53 * how much data it can DMA to us and that we are prepared
54 * to process */
53 ath9k_hw_setuprxdesc(ah, 55 ath9k_hw_setuprxdesc(ah,
54 ds, 56 ds,
55 skb_tailroom(skb), /* buffer size */ 57 sc->sc_rxbufsize,
56 0); 58 0);
57 59
58 if (sc->sc_rxlink == NULL) 60 if (sc->sc_rxlink == NULL)
@@ -398,6 +400,13 @@ static struct sk_buff *ath_rxbuf_alloc(struct ath_softc *sc,
398 * in rx'd frames. 400 * in rx'd frames.
399 */ 401 */
400 402
403 /* Note: the kernel can allocate a value greater than
404 * what we ask it to give us. We really only need 4 KB as that
405 * is this hardware supports and in fact we need at least 3849
406 * as that is the MAX AMSDU size this hardware supports.
407 * Unfortunately this means we may get 8 KB here from the
408 * kernel... and that is actually what is observed on some
409 * systems :( */
401 skb = dev_alloc_skb(len + sc->sc_cachelsz - 1); 410 skb = dev_alloc_skb(len + sc->sc_cachelsz - 1);
402 if (skb != NULL) { 411 if (skb != NULL) {
403 off = ((unsigned long) skb->data) % sc->sc_cachelsz; 412 off = ((unsigned long) skb->data) % sc->sc_cachelsz;
@@ -456,7 +465,7 @@ static int ath_rx_indicate(struct ath_softc *sc,
456 if (nskb != NULL) { 465 if (nskb != NULL) {
457 bf->bf_mpdu = nskb; 466 bf->bf_mpdu = nskb;
458 bf->bf_buf_addr = pci_map_single(sc->pdev, nskb->data, 467 bf->bf_buf_addr = pci_map_single(sc->pdev, nskb->data,
459 skb_end_pointer(nskb) - nskb->head, 468 sc->sc_rxbufsize,
460 PCI_DMA_FROMDEVICE); 469 PCI_DMA_FROMDEVICE);
461 bf->bf_dmacontext = bf->bf_buf_addr; 470 bf->bf_dmacontext = bf->bf_buf_addr;
462 ATH_RX_CONTEXT(nskb)->ctx_rxbuf = bf; 471 ATH_RX_CONTEXT(nskb)->ctx_rxbuf = bf;
@@ -542,7 +551,7 @@ int ath_rx_init(struct ath_softc *sc, int nbufs)
542 551
543 bf->bf_mpdu = skb; 552 bf->bf_mpdu = skb;
544 bf->bf_buf_addr = pci_map_single(sc->pdev, skb->data, 553 bf->bf_buf_addr = pci_map_single(sc->pdev, skb->data,
545 skb_end_pointer(skb) - skb->head, 554 sc->sc_rxbufsize,
546 PCI_DMA_FROMDEVICE); 555 PCI_DMA_FROMDEVICE);
547 bf->bf_dmacontext = bf->bf_buf_addr; 556 bf->bf_dmacontext = bf->bf_buf_addr;
548 ATH_RX_CONTEXT(skb)->ctx_rxbuf = bf; 557 ATH_RX_CONTEXT(skb)->ctx_rxbuf = bf;
@@ -1007,7 +1016,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush)
1007 1016
1008 pci_dma_sync_single_for_cpu(sc->pdev, 1017 pci_dma_sync_single_for_cpu(sc->pdev,
1009 bf->bf_buf_addr, 1018 bf->bf_buf_addr,
1010 skb_tailroom(skb), 1019 sc->sc_rxbufsize,
1011 PCI_DMA_FROMDEVICE); 1020 PCI_DMA_FROMDEVICE);
1012 pci_unmap_single(sc->pdev, 1021 pci_unmap_single(sc->pdev,
1013 bf->bf_buf_addr, 1022 bf->bf_buf_addr,
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index dcce3542d5a7..7a9f901d4ff6 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -3897,6 +3897,7 @@ static int ipw_disassociate(void *data)
3897 if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING))) 3897 if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING)))
3898 return 0; 3898 return 0;
3899 ipw_send_disassociate(data, 0); 3899 ipw_send_disassociate(data, 0);
3900 netif_carrier_off(priv->net_dev);
3900 return 1; 3901 return 1;
3901} 3902}
3902 3903
@@ -10190,6 +10191,9 @@ static int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb,
10190 u16 remaining_bytes; 10191 u16 remaining_bytes;
10191 int fc; 10192 int fc;
10192 10193
10194 if (!(priv->status & STATUS_ASSOCIATED))
10195 goto drop;
10196
10193 hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl)); 10197 hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl));
10194 switch (priv->ieee->iw_mode) { 10198 switch (priv->ieee->iw_mode) {
10195 case IW_MODE_ADHOC: 10199 case IW_MODE_ADHOC:
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 444c5cc05f03..c4c0371c763b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1384,9 +1384,11 @@ void iwl_rx_handle(struct iwl_priv *priv)
1384 1384
1385 rxq->queue[i] = NULL; 1385 rxq->queue[i] = NULL;
1386 1386
1387 pci_dma_sync_single_for_cpu(priv->pci_dev, rxb->aligned_dma_addr, 1387 dma_sync_single_range_for_cpu(
1388 priv->hw_params.rx_buf_size, 1388 &priv->pci_dev->dev, rxb->real_dma_addr,
1389 PCI_DMA_FROMDEVICE); 1389 rxb->aligned_dma_addr - rxb->real_dma_addr,
1390 priv->hw_params.rx_buf_size,
1391 PCI_DMA_FROMDEVICE);
1390 pkt = (struct iwl_rx_packet *)rxb->skb->data; 1392 pkt = (struct iwl_rx_packet *)rxb->skb->data;
1391 1393
1392 /* Reclaim a command buffer only if this packet is a response 1394 /* Reclaim a command buffer only if this packet is a response
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 4c312c55f90c..01a845851338 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -290,6 +290,9 @@ void iwl_clear_stations_table(struct iwl_priv *priv)
290 priv->num_stations = 0; 290 priv->num_stations = 0;
291 memset(priv->stations, 0, sizeof(priv->stations)); 291 memset(priv->stations, 0, sizeof(priv->stations));
292 292
293 /* clean ucode key table bit map */
294 priv->ucode_key_table = 0;
295
293 spin_unlock_irqrestore(&priv->sta_lock, flags); 296 spin_unlock_irqrestore(&priv->sta_lock, flags);
294} 297}
295EXPORT_SYMBOL(iwl_clear_stations_table); 298EXPORT_SYMBOL(iwl_clear_stations_table);
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c
index 61797f3f8d5c..26f7084d3011 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.c
@@ -475,7 +475,7 @@ static int iwl_get_free_ucode_key_index(struct iwl_priv *priv)
475 if (!test_and_set_bit(i, &priv->ucode_key_table)) 475 if (!test_and_set_bit(i, &priv->ucode_key_table))
476 return i; 476 return i;
477 477
478 return -1; 478 return WEP_INVALID_OFFSET;
479} 479}
480 480
481int iwl_send_static_wepkey_cmd(struct iwl_priv *priv, u8 send_if_empty) 481int iwl_send_static_wepkey_cmd(struct iwl_priv *priv, u8 send_if_empty)
@@ -620,6 +620,9 @@ static int iwl_set_wep_dynamic_key_info(struct iwl_priv *priv,
620 /* else, we are overriding an existing key => no need to allocated room 620 /* else, we are overriding an existing key => no need to allocated room
621 * in uCode. */ 621 * in uCode. */
622 622
623 WARN(priv->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET,
624 "no space for new kew");
625
623 priv->stations[sta_id].sta.key.key_flags = key_flags; 626 priv->stations[sta_id].sta.key.key_flags = key_flags;
624 priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; 627 priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK;
625 priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; 628 priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK;
@@ -637,6 +640,7 @@ static int iwl_set_ccmp_dynamic_key_info(struct iwl_priv *priv,
637{ 640{
638 unsigned long flags; 641 unsigned long flags;
639 __le16 key_flags = 0; 642 __le16 key_flags = 0;
643 int ret;
640 644
641 key_flags |= (STA_KEY_FLG_CCMP | STA_KEY_FLG_MAP_KEY_MSK); 645 key_flags |= (STA_KEY_FLG_CCMP | STA_KEY_FLG_MAP_KEY_MSK);
642 key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS); 646 key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
@@ -664,14 +668,18 @@ static int iwl_set_ccmp_dynamic_key_info(struct iwl_priv *priv,
664 /* else, we are overriding an existing key => no need to allocated room 668 /* else, we are overriding an existing key => no need to allocated room
665 * in uCode. */ 669 * in uCode. */
666 670
671 WARN(priv->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET,
672 "no space for new kew");
673
667 priv->stations[sta_id].sta.key.key_flags = key_flags; 674 priv->stations[sta_id].sta.key.key_flags = key_flags;
668 priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; 675 priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK;
669 priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; 676 priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK;
670 677
678 ret = iwl_send_add_sta(priv, &priv->stations[sta_id].sta, CMD_ASYNC);
679
671 spin_unlock_irqrestore(&priv->sta_lock, flags); 680 spin_unlock_irqrestore(&priv->sta_lock, flags);
672 681
673 IWL_DEBUG_INFO("hwcrypto: modify ucode station key info\n"); 682 return ret;
674 return iwl_send_add_sta(priv, &priv->stations[sta_id].sta, CMD_ASYNC);
675} 683}
676 684
677static int iwl_set_tkip_dynamic_key_info(struct iwl_priv *priv, 685static int iwl_set_tkip_dynamic_key_info(struct iwl_priv *priv,
@@ -696,6 +704,9 @@ static int iwl_set_tkip_dynamic_key_info(struct iwl_priv *priv,
696 /* else, we are overriding an existing key => no need to allocated room 704 /* else, we are overriding an existing key => no need to allocated room
697 * in uCode. */ 705 * in uCode. */
698 706
707 WARN(priv->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET,
708 "no space for new kew");
709
699 /* This copy is acutally not needed: we get the key with each TX */ 710 /* This copy is acutally not needed: we get the key with each TX */
700 memcpy(priv->stations[sta_id].keyinfo.key, keyconf->key, 16); 711 memcpy(priv->stations[sta_id].keyinfo.key, keyconf->key, 16);
701 712
@@ -734,6 +745,13 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
734 return 0; 745 return 0;
735 } 746 }
736 747
748 if (priv->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET) {
749 IWL_WARNING("Removing wrong key %d 0x%x\n",
750 keyconf->keyidx, key_flags);
751 spin_unlock_irqrestore(&priv->sta_lock, flags);
752 return 0;
753 }
754
737 if (!test_and_clear_bit(priv->stations[sta_id].sta.key.key_offset, 755 if (!test_and_clear_bit(priv->stations[sta_id].sta.key.key_offset,
738 &priv->ucode_key_table)) 756 &priv->ucode_key_table))
739 IWL_ERROR("index %d not used in uCode key table.\n", 757 IWL_ERROR("index %d not used in uCode key table.\n",
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
index fe1867b25ff7..cac732f4047f 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -615,7 +615,7 @@ static int filter_ack(struct ieee80211_hw *hw, struct ieee80211_hdr *rx_hdr,
615 struct ieee80211_hdr *tx_hdr; 615 struct ieee80211_hdr *tx_hdr;
616 616
617 tx_hdr = (struct ieee80211_hdr *)skb->data; 617 tx_hdr = (struct ieee80211_hdr *)skb->data;
618 if (likely(!compare_ether_addr(tx_hdr->addr2, rx_hdr->addr1))) 618 if (likely(!memcmp(tx_hdr->addr2, rx_hdr->addr1, ETH_ALEN)))
619 { 619 {
620 __skb_unlink(skb, q); 620 __skb_unlink(skb, q);
621 tx_status(hw, skb, IEEE80211_TX_STAT_ACK, stats->signal, 1); 621 tx_status(hw, skb, IEEE80211_TX_STAT_ACK, stats->signal, 1);
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index c6948d8f53f6..6d017adc914a 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1785,7 +1785,7 @@ static int __devexit xennet_remove(struct xenbus_device *dev)
1785 return 0; 1785 return 0;
1786} 1786}
1787 1787
1788static struct xenbus_driver netfront = { 1788static struct xenbus_driver netfront_driver = {
1789 .name = "vif", 1789 .name = "vif",
1790 .owner = THIS_MODULE, 1790 .owner = THIS_MODULE,
1791 .ids = netfront_ids, 1791 .ids = netfront_ids,
@@ -1805,7 +1805,7 @@ static int __init netif_init(void)
1805 1805
1806 printk(KERN_INFO "Initialising Xen virtual ethernet driver.\n"); 1806 printk(KERN_INFO "Initialising Xen virtual ethernet driver.\n");
1807 1807
1808 return xenbus_register_frontend(&netfront); 1808 return xenbus_register_frontend(&netfront_driver);
1809} 1809}
1810module_init(netif_init); 1810module_init(netif_init);
1811 1811
@@ -1815,7 +1815,7 @@ static void __exit netif_exit(void)
1815 if (xen_initial_domain()) 1815 if (xen_initial_domain())
1816 return; 1816 return;
1817 1817
1818 xenbus_unregister_driver(&netfront); 1818 xenbus_unregister_driver(&netfront_driver);
1819} 1819}
1820module_exit(netif_exit); 1820module_exit(netif_exit);
1821 1821
diff --git a/drivers/parport/parport_serial.c b/drivers/parport/parport_serial.c
index e2e95b36a603..101ed49a2d15 100644
--- a/drivers/parport/parport_serial.c
+++ b/drivers/parport/parport_serial.c
@@ -70,6 +70,8 @@ static int __devinit netmos_parallel_init(struct pci_dev *dev, struct parport_pc
70 * parallel ports and <S> is the number of serial ports. 70 * parallel ports and <S> is the number of serial ports.
71 */ 71 */
72 card->numports = (dev->subsystem_device & 0xf0) >> 4; 72 card->numports = (dev->subsystem_device & 0xf0) >> 4;
73 if (card->numports > ARRAY_SIZE(card->addr))
74 card->numports = ARRAY_SIZE(card->addr);
73 return 0; 75 return 0;
74} 76}
75 77
diff --git a/drivers/pci/hotplug/acpiphp.h b/drivers/pci/hotplug/acpiphp.h
index f9e244da30ae..9bcb6cbd5aa9 100644
--- a/drivers/pci/hotplug/acpiphp.h
+++ b/drivers/pci/hotplug/acpiphp.h
@@ -113,7 +113,7 @@ struct acpiphp_slot {
113 113
114 u8 device; /* pci device# */ 114 u8 device; /* pci device# */
115 115
116 u32 sun; /* ACPI _SUN (slot unique number) */ 116 unsigned long long sun; /* ACPI _SUN (slot unique number) */
117 u32 flags; /* see below */ 117 u32 flags; /* see below */
118}; 118};
119 119
diff --git a/drivers/pci/hotplug/acpiphp_core.c b/drivers/pci/hotplug/acpiphp_core.c
index 95b536a23d25..43c10bd261b4 100644
--- a/drivers/pci/hotplug/acpiphp_core.c
+++ b/drivers/pci/hotplug/acpiphp_core.c
@@ -337,7 +337,7 @@ int acpiphp_register_hotplug_slot(struct acpiphp_slot *acpiphp_slot)
337 slot->hotplug_slot->info->cur_bus_speed = PCI_SPEED_UNKNOWN; 337 slot->hotplug_slot->info->cur_bus_speed = PCI_SPEED_UNKNOWN;
338 338
339 acpiphp_slot->slot = slot; 339 acpiphp_slot->slot = slot;
340 snprintf(name, SLOT_NAME_SIZE, "%u", slot->acpi_slot->sun); 340 snprintf(name, SLOT_NAME_SIZE, "%llu", slot->acpi_slot->sun);
341 341
342 retval = pci_hp_register(slot->hotplug_slot, 342 retval = pci_hp_register(slot->hotplug_slot,
343 acpiphp_slot->bridge->pci_bus, 343 acpiphp_slot->bridge->pci_bus,
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 955aae4071f7..3affc6472e65 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -255,13 +255,13 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
255 255
256 bridge->nr_slots++; 256 bridge->nr_slots++;
257 257
258 dbg("found ACPI PCI Hotplug slot %d at PCI %04x:%02x:%02x\n", 258 dbg("found ACPI PCI Hotplug slot %llu at PCI %04x:%02x:%02x\n",
259 slot->sun, pci_domain_nr(bridge->pci_bus), 259 slot->sun, pci_domain_nr(bridge->pci_bus),
260 bridge->pci_bus->number, slot->device); 260 bridge->pci_bus->number, slot->device);
261 retval = acpiphp_register_hotplug_slot(slot); 261 retval = acpiphp_register_hotplug_slot(slot);
262 if (retval) { 262 if (retval) {
263 if (retval == -EBUSY) 263 if (retval == -EBUSY)
264 warn("Slot %d already registered by another " 264 warn("Slot %llu already registered by another "
265 "hotplug driver\n", slot->sun); 265 "hotplug driver\n", slot->sun);
266 else 266 else
267 warn("acpiphp_register_hotplug_slot failed " 267 warn("acpiphp_register_hotplug_slot failed "
diff --git a/drivers/pci/hotplug/ibmphp_core.c b/drivers/pci/hotplug/ibmphp_core.c
index c892daae74d6..633e743442ac 100644
--- a/drivers/pci/hotplug/ibmphp_core.c
+++ b/drivers/pci/hotplug/ibmphp_core.c
@@ -1402,10 +1402,6 @@ static int __init ibmphp_init(void)
1402 goto error; 1402 goto error;
1403 } 1403 }
1404 1404
1405 /* lock ourselves into memory with a module
1406 * count of -1 so that no one can unload us. */
1407 module_put(THIS_MODULE);
1408
1409exit: 1405exit:
1410 return rc; 1406 return rc;
1411 1407
@@ -1423,4 +1419,3 @@ static void __exit ibmphp_exit(void)
1423} 1419}
1424 1420
1425module_init(ibmphp_init); 1421module_init(ibmphp_init);
1426module_exit(ibmphp_exit);
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index 4b23bc39b11e..39cf248d24e3 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -432,18 +432,19 @@ static int pciehp_probe(struct pcie_device *dev, const struct pcie_port_service_
432 goto err_out_release_ctlr; 432 goto err_out_release_ctlr;
433 } 433 }
434 434
435 /* Check if slot is occupied */
435 t_slot = pciehp_find_slot(ctrl, ctrl->slot_device_offset); 436 t_slot = pciehp_find_slot(ctrl, ctrl->slot_device_offset);
436 437 t_slot->hpc_ops->get_adapter_status(t_slot, &value);
437 t_slot->hpc_ops->get_adapter_status(t_slot, &value); /* Check if slot is occupied */ 438 if (value) {
438 if (value && pciehp_force) { 439 if (pciehp_force)
439 rc = pciehp_enable_slot(t_slot); 440 pciehp_enable_slot(t_slot);
440 if (rc) /* -ENODEV: shouldn't happen, but deal with it */ 441 } else {
441 value = 0; 442 /* Power off slot if not occupied */
442 } 443 if (POWER_CTRL(ctrl)) {
443 if ((POWER_CTRL(ctrl)) && !value) { 444 rc = t_slot->hpc_ops->power_off_slot(t_slot);
444 rc = t_slot->hpc_ops->power_off_slot(t_slot); /* Power off slot if not occupied*/ 445 if (rc)
445 if (rc) 446 goto err_out_free_ctrl_slot;
446 goto err_out_free_ctrl_slot; 447 }
447 } 448 }
448 449
449 return 0; 450 return 0;
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 28af496b441e..061d1ee0046a 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -2042,7 +2042,7 @@ static int __devinit pci_init(void)
2042 return 0; 2042 return 0;
2043} 2043}
2044 2044
2045static int __devinit pci_setup(char *str) 2045static int __init pci_setup(char *str)
2046{ 2046{
2047 while (str) { 2047 while (str) {
2048 char *k = strchr(str, ','); 2048 char *k = strchr(str, ',');
diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c
index dfc63d01f20a..aac7006949f1 100644
--- a/drivers/pci/pcie/aer/aerdrv_core.c
+++ b/drivers/pci/pcie/aer/aerdrv_core.c
@@ -252,7 +252,7 @@ static void report_resume(struct pci_dev *dev, void *data)
252 252
253 if (!dev->driver || 253 if (!dev->driver ||
254 !dev->driver->err_handler || 254 !dev->driver->err_handler ||
255 !dev->driver->err_handler->slot_reset) 255 !dev->driver->err_handler->resume)
256 return; 256 return;
257 257
258 err_handler = dev->driver->err_handler; 258 err_handler = dev->driver->err_handler;
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 8f63f4c6b85f..9aad608bcf3f 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -16,6 +16,7 @@
16#include <linux/pm.h> 16#include <linux/pm.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/slab.h> 18#include <linux/slab.h>
19#include <linux/jiffies.h>
19#include <linux/pci-aspm.h> 20#include <linux/pci-aspm.h>
20#include "../pci.h" 21#include "../pci.h"
21 22
@@ -161,11 +162,12 @@ static void pcie_check_clock_pm(struct pci_dev *pdev)
161 */ 162 */
162static void pcie_aspm_configure_common_clock(struct pci_dev *pdev) 163static void pcie_aspm_configure_common_clock(struct pci_dev *pdev)
163{ 164{
164 int pos, child_pos; 165 int pos, child_pos, i = 0;
165 u16 reg16 = 0; 166 u16 reg16 = 0;
166 struct pci_dev *child_dev; 167 struct pci_dev *child_dev;
167 int same_clock = 1; 168 int same_clock = 1;
168 169 unsigned long start_jiffies;
170 u16 child_regs[8], parent_reg;
169 /* 171 /*
170 * all functions of a slot should have the same Slot Clock 172 * all functions of a slot should have the same Slot Clock
171 * Configuration, so just check one function 173 * Configuration, so just check one function
@@ -191,16 +193,19 @@ static void pcie_aspm_configure_common_clock(struct pci_dev *pdev)
191 child_pos = pci_find_capability(child_dev, PCI_CAP_ID_EXP); 193 child_pos = pci_find_capability(child_dev, PCI_CAP_ID_EXP);
192 pci_read_config_word(child_dev, child_pos + PCI_EXP_LNKCTL, 194 pci_read_config_word(child_dev, child_pos + PCI_EXP_LNKCTL,
193 &reg16); 195 &reg16);
196 child_regs[i] = reg16;
194 if (same_clock) 197 if (same_clock)
195 reg16 |= PCI_EXP_LNKCTL_CCC; 198 reg16 |= PCI_EXP_LNKCTL_CCC;
196 else 199 else
197 reg16 &= ~PCI_EXP_LNKCTL_CCC; 200 reg16 &= ~PCI_EXP_LNKCTL_CCC;
198 pci_write_config_word(child_dev, child_pos + PCI_EXP_LNKCTL, 201 pci_write_config_word(child_dev, child_pos + PCI_EXP_LNKCTL,
199 reg16); 202 reg16);
203 i++;
200 } 204 }
201 205
202 /* Configure upstream component */ 206 /* Configure upstream component */
203 pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &reg16); 207 pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &reg16);
208 parent_reg = reg16;
204 if (same_clock) 209 if (same_clock)
205 reg16 |= PCI_EXP_LNKCTL_CCC; 210 reg16 |= PCI_EXP_LNKCTL_CCC;
206 else 211 else
@@ -212,12 +217,30 @@ static void pcie_aspm_configure_common_clock(struct pci_dev *pdev)
212 pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, reg16); 217 pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, reg16);
213 218
214 /* Wait for link training end */ 219 /* Wait for link training end */
215 while (1) { 220 /* break out after waiting for 1 second */
221 start_jiffies = jiffies;
222 while ((jiffies - start_jiffies) < HZ) {
216 pci_read_config_word(pdev, pos + PCI_EXP_LNKSTA, &reg16); 223 pci_read_config_word(pdev, pos + PCI_EXP_LNKSTA, &reg16);
217 if (!(reg16 & PCI_EXP_LNKSTA_LT)) 224 if (!(reg16 & PCI_EXP_LNKSTA_LT))
218 break; 225 break;
219 cpu_relax(); 226 cpu_relax();
220 } 227 }
228 /* training failed -> recover */
229 if ((jiffies - start_jiffies) >= HZ) {
230 dev_printk (KERN_ERR, &pdev->dev, "ASPM: Could not configure"
231 " common clock\n");
232 i = 0;
233 list_for_each_entry(child_dev, &pdev->subordinate->devices,
234 bus_list) {
235 child_pos = pci_find_capability(child_dev,
236 PCI_CAP_ID_EXP);
237 pci_write_config_word(child_dev,
238 child_pos + PCI_EXP_LNKCTL,
239 child_regs[i]);
240 i++;
241 }
242 pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, parent_reg);
243 }
221} 244}
222 245
223/* 246/*
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 5049a47030ac..5f4f85f56cb7 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -22,6 +22,7 @@
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/acpi.h> 23#include <linux/acpi.h>
24#include <linux/kallsyms.h> 24#include <linux/kallsyms.h>
25#include <linux/dmi.h>
25#include "pci.h" 26#include "pci.h"
26 27
27int isa_dma_bridge_buggy; 28int isa_dma_bridge_buggy;
@@ -1828,6 +1829,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SERVERWORKS,
1828 PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB, 1829 PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB,
1829 ht_enable_msi_mapping); 1830 ht_enable_msi_mapping);
1830 1831
1832/* The P5N32-SLI Premium motherboard from Asus has a problem with msi
1833 * for the MCP55 NIC. It is not yet determined whether the msi problem
1834 * also affects other devices. As for now, turn off msi for this device.
1835 */
1836static void __devinit nvenet_msi_disable(struct pci_dev *dev)
1837{
1838 if (dmi_name_in_vendors("P5N32-SLI PREMIUM")) {
1839 dev_info(&dev->dev,
1840 "Disabling msi for MCP55 NIC on P5N32-SLI Premium\n");
1841 dev->no_msi = 1;
1842 }
1843}
1844DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA,
1845 PCI_DEVICE_ID_NVIDIA_NVENET_15,
1846 nvenet_msi_disable);
1847
1831static void __devinit nv_msi_ht_cap_quirk(struct pci_dev *dev) 1848static void __devinit nv_msi_ht_cap_quirk(struct pci_dev *dev)
1832{ 1849{
1833 struct pci_dev *host_bridge; 1850 struct pci_dev *host_bridge;
diff --git a/drivers/pci/slot.c b/drivers/pci/slot.c
index 4dd1c3e157ae..5a8ccb4f604d 100644
--- a/drivers/pci/slot.c
+++ b/drivers/pci/slot.c
@@ -253,6 +253,7 @@ placeholder:
253 __func__, pci_domain_nr(parent), parent->number, slot_nr); 253 __func__, pci_domain_nr(parent), parent->number, slot_nr);
254 254
255out: 255out:
256 kfree(slot_name);
256 up_write(&pci_bus_sem); 257 up_write(&pci_bus_sem);
257 return slot; 258 return slot;
258err: 259err:
diff --git a/drivers/pcmcia/bfin_cf_pcmcia.c b/drivers/pcmcia/bfin_cf_pcmcia.c
index bb7338863fb9..b59d4115d20f 100644
--- a/drivers/pcmcia/bfin_cf_pcmcia.c
+++ b/drivers/pcmcia/bfin_cf_pcmcia.c
@@ -334,6 +334,6 @@ static void __exit bfin_cf_exit(void)
334module_init(bfin_cf_init); 334module_init(bfin_cf_init);
335module_exit(bfin_cf_exit); 335module_exit(bfin_cf_exit);
336 336
337MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>") 337MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
338MODULE_DESCRIPTION("BFIN CF/PCMCIA Driver"); 338MODULE_DESCRIPTION("BFIN CF/PCMCIA Driver");
339MODULE_LICENSE("GPL"); 339MODULE_LICENSE("GPL");
diff --git a/drivers/rapidio/rio-scan.c b/drivers/rapidio/rio-scan.c
index a926c896475e..643a6b98462b 100644
--- a/drivers/rapidio/rio-scan.c
+++ b/drivers/rapidio/rio-scan.c
@@ -879,7 +879,7 @@ static void rio_update_route_tables(struct rio_mport *port)
879 * link, then start recursive peer enumeration. Returns %0 if 879 * link, then start recursive peer enumeration. Returns %0 if
880 * enumeration succeeds or %-EBUSY if enumeration fails. 880 * enumeration succeeds or %-EBUSY if enumeration fails.
881 */ 881 */
882int rio_enum_mport(struct rio_mport *mport) 882int __devinit rio_enum_mport(struct rio_mport *mport)
883{ 883{
884 struct rio_net *net = NULL; 884 struct rio_net *net = NULL;
885 int rc = 0; 885 int rc = 0;
@@ -972,7 +972,7 @@ static void rio_enum_timeout(unsigned long data)
972 * peer discovery. Returns %0 if discovery succeeds or %-EBUSY 972 * peer discovery. Returns %0 if discovery succeeds or %-EBUSY
973 * on failure. 973 * on failure.
974 */ 974 */
975int rio_disc_mport(struct rio_mport *mport) 975int __devinit rio_disc_mport(struct rio_mport *mport)
976{ 976{
977 struct rio_net *net = NULL; 977 struct rio_net *net = NULL;
978 int enum_timeout_flag = 0; 978 int enum_timeout_flag = 0;
diff --git a/drivers/rapidio/rio.c b/drivers/rapidio/rio.c
index 680661abbc4b..6395c780008b 100644
--- a/drivers/rapidio/rio.c
+++ b/drivers/rapidio/rio.c
@@ -467,7 +467,7 @@ static int __devinit rio_init(void)
467 467
468device_initcall(rio_init); 468device_initcall(rio_init);
469 469
470int rio_init_mports(void) 470int __devinit rio_init_mports(void)
471{ 471{
472 int rc = 0; 472 int rc = 0;
473 struct rio_mport *port; 473 struct rio_mport *port;
diff --git a/drivers/rtc/rtc-ds1672.c b/drivers/rtc/rtc-ds1672.c
index 341d7a5b45a2..4e91419e8911 100644
--- a/drivers/rtc/rtc-ds1672.c
+++ b/drivers/rtc/rtc-ds1672.c
@@ -209,12 +209,18 @@ static int ds1672_probe(struct i2c_client *client,
209 return err; 209 return err;
210} 210}
211 211
212static struct i2c_device_id ds1672_id[] = {
213 { "ds1672", 0 },
214 { }
215};
216
212static struct i2c_driver ds1672_driver = { 217static struct i2c_driver ds1672_driver = {
213 .driver = { 218 .driver = {
214 .name = "rtc-ds1672", 219 .name = "rtc-ds1672",
215 }, 220 },
216 .probe = &ds1672_probe, 221 .probe = &ds1672_probe,
217 .remove = &ds1672_remove, 222 .remove = &ds1672_remove,
223 .id_table = ds1672_id,
218}; 224};
219 225
220static int __init ds1672_init(void) 226static int __init ds1672_init(void)
diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
index 2cd77ab8fc66..054e05294af8 100644
--- a/drivers/rtc/rtc-isl1208.c
+++ b/drivers/rtc/rtc-isl1208.c
@@ -328,6 +328,13 @@ isl1208_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm)
328 int sr; 328 int sr;
329 u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, }; 329 u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, };
330 330
331 /* The clock has an 8 bit wide bcd-coded register (they never learn)
332 * for the year. tm_year is an offset from 1900 and we are interested
333 * in the 2000-2099 range, so any value less than 100 is invalid.
334 */
335 if (tm->tm_year < 100)
336 return -EINVAL;
337
331 regs[ISL1208_REG_SC] = bin2bcd(tm->tm_sec); 338 regs[ISL1208_REG_SC] = bin2bcd(tm->tm_sec);
332 regs[ISL1208_REG_MN] = bin2bcd(tm->tm_min); 339 regs[ISL1208_REG_MN] = bin2bcd(tm->tm_min);
333 regs[ISL1208_REG_HR] = bin2bcd(tm->tm_hour) | ISL1208_REG_HR_MIL; 340 regs[ISL1208_REG_HR] = bin2bcd(tm->tm_hour) | ISL1208_REG_HR_MIL;
diff --git a/drivers/rtc/rtc-max6900.c b/drivers/rtc/rtc-max6900.c
index 80782798763f..a4f6665ab3c5 100644
--- a/drivers/rtc/rtc-max6900.c
+++ b/drivers/rtc/rtc-max6900.c
@@ -247,12 +247,18 @@ max6900_probe(struct i2c_client *client, const struct i2c_device_id *id)
247 return 0; 247 return 0;
248} 248}
249 249
250static struct i2c_device_id max6900_id[] = {
251 { "max6900", 0 },
252 { }
253};
254
250static struct i2c_driver max6900_driver = { 255static struct i2c_driver max6900_driver = {
251 .driver = { 256 .driver = {
252 .name = "rtc-max6900", 257 .name = "rtc-max6900",
253 }, 258 },
254 .probe = max6900_probe, 259 .probe = max6900_probe,
255 .remove = max6900_remove, 260 .remove = max6900_remove,
261 .id_table = max6900_id,
256}; 262};
257 263
258static int __init max6900_init(void) 264static int __init max6900_init(void)
diff --git a/drivers/rtc/rtc-starfire.c b/drivers/rtc/rtc-starfire.c
index 7ccb0dd700af..5be98bfd7ed3 100644
--- a/drivers/rtc/rtc-starfire.c
+++ b/drivers/rtc/rtc-starfire.c
@@ -6,7 +6,6 @@
6#include <linux/kernel.h> 6#include <linux/kernel.h>
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/init.h> 8#include <linux/init.h>
9#include <linux/time.h>
10#include <linux/rtc.h> 9#include <linux/rtc.h>
11#include <linux/platform_device.h> 10#include <linux/platform_device.h>
12 11
@@ -16,11 +15,6 @@ MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
16MODULE_DESCRIPTION("Starfire RTC driver"); 15MODULE_DESCRIPTION("Starfire RTC driver");
17MODULE_LICENSE("GPL"); 16MODULE_LICENSE("GPL");
18 17
19struct starfire_rtc {
20 struct rtc_device *rtc;
21 spinlock_t lock;
22};
23
24static u32 starfire_get_time(void) 18static u32 starfire_get_time(void)
25{ 19{
26 static char obp_gettod[32]; 20 static char obp_gettod[32];
@@ -35,64 +29,31 @@ static u32 starfire_get_time(void)
35 29
36static int starfire_read_time(struct device *dev, struct rtc_time *tm) 30static int starfire_read_time(struct device *dev, struct rtc_time *tm)
37{ 31{
38 struct starfire_rtc *p = dev_get_drvdata(dev); 32 rtc_time_to_tm(starfire_get_time(), tm);
39 unsigned long flags, secs; 33 return rtc_valid_tm(tm);
40
41 spin_lock_irqsave(&p->lock, flags);
42 secs = starfire_get_time();
43 spin_unlock_irqrestore(&p->lock, flags);
44
45 rtc_time_to_tm(secs, tm);
46
47 return 0;
48}
49
50static int starfire_set_time(struct device *dev, struct rtc_time *tm)
51{
52 unsigned long secs;
53 int err;
54
55 err = rtc_tm_to_time(tm, &secs);
56 if (err)
57 return err;
58
59 /* Do nothing, time is set using the service processor
60 * console on this platform.
61 */
62 return 0;
63} 34}
64 35
65static const struct rtc_class_ops starfire_rtc_ops = { 36static const struct rtc_class_ops starfire_rtc_ops = {
66 .read_time = starfire_read_time, 37 .read_time = starfire_read_time,
67 .set_time = starfire_set_time,
68}; 38};
69 39
70static int __devinit starfire_rtc_probe(struct platform_device *pdev) 40static int __init starfire_rtc_probe(struct platform_device *pdev)
71{ 41{
72 struct starfire_rtc *p = kzalloc(sizeof(*p), GFP_KERNEL); 42 struct rtc_device *rtc = rtc_device_register("starfire", &pdev->dev,
73 43 &starfire_rtc_ops, THIS_MODULE);
74 if (!p) 44 if (IS_ERR(rtc))
75 return -ENOMEM; 45 return PTR_ERR(rtc);
76 46
77 spin_lock_init(&p->lock); 47 platform_set_drvdata(pdev, rtc);
78 48
79 p->rtc = rtc_device_register("starfire", &pdev->dev,
80 &starfire_rtc_ops, THIS_MODULE);
81 if (IS_ERR(p->rtc)) {
82 int err = PTR_ERR(p->rtc);
83 kfree(p);
84 return err;
85 }
86 platform_set_drvdata(pdev, p);
87 return 0; 49 return 0;
88} 50}
89 51
90static int __devexit starfire_rtc_remove(struct platform_device *pdev) 52static int __exit starfire_rtc_remove(struct platform_device *pdev)
91{ 53{
92 struct starfire_rtc *p = platform_get_drvdata(pdev); 54 struct rtc_device *rtc = platform_get_drvdata(pdev);
93 55
94 rtc_device_unregister(p->rtc); 56 rtc_device_unregister(rtc);
95 kfree(p);
96 57
97 return 0; 58 return 0;
98} 59}
@@ -102,13 +63,12 @@ static struct platform_driver starfire_rtc_driver = {
102 .name = "rtc-starfire", 63 .name = "rtc-starfire",
103 .owner = THIS_MODULE, 64 .owner = THIS_MODULE,
104 }, 65 },
105 .probe = starfire_rtc_probe, 66 .remove = __exit_p(starfire_rtc_remove),
106 .remove = __devexit_p(starfire_rtc_remove),
107}; 67};
108 68
109static int __init starfire_rtc_init(void) 69static int __init starfire_rtc_init(void)
110{ 70{
111 return platform_driver_register(&starfire_rtc_driver); 71 return platform_driver_probe(&starfire_rtc_driver, starfire_rtc_probe);
112} 72}
113 73
114static void __exit starfire_rtc_exit(void) 74static void __exit starfire_rtc_exit(void)
diff --git a/drivers/rtc/rtc-twl4030.c b/drivers/rtc/rtc-twl4030.c
index abe87a4d2665..01d8da9afdc8 100644
--- a/drivers/rtc/rtc-twl4030.c
+++ b/drivers/rtc/rtc-twl4030.c
@@ -337,7 +337,7 @@ static int twl4030_rtc_ioctl(struct device *dev, unsigned int cmd,
337} 337}
338 338
339#else 339#else
340#define omap_rtc_ioctl NULL 340#define twl4030_rtc_ioctl NULL
341#endif 341#endif
342 342
343static irqreturn_t twl4030_rtc_interrupt(int irq, void *rtc) 343static irqreturn_t twl4030_rtc_interrupt(int irq, void *rtc)
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 35364f64da7f..c557ba34e1aa 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -720,7 +720,6 @@ static int zfcp_erp_adapter_strategy_generic(struct zfcp_erp_action *act,
720 goto failed_openfcp; 720 goto failed_openfcp;
721 721
722 atomic_set_mask(ZFCP_STATUS_COMMON_OPEN, &act->adapter->status); 722 atomic_set_mask(ZFCP_STATUS_COMMON_OPEN, &act->adapter->status);
723 schedule_work(&act->adapter->scan_work);
724 723
725 return ZFCP_ERP_SUCCEEDED; 724 return ZFCP_ERP_SUCCEEDED;
726 725
@@ -1186,7 +1185,9 @@ static void zfcp_erp_scsi_scan(struct work_struct *work)
1186 container_of(work, struct zfcp_erp_add_work, work); 1185 container_of(work, struct zfcp_erp_add_work, work);
1187 struct zfcp_unit *unit = p->unit; 1186 struct zfcp_unit *unit = p->unit;
1188 struct fc_rport *rport = unit->port->rport; 1187 struct fc_rport *rport = unit->port->rport;
1189 scsi_scan_target(&rport->dev, 0, rport->scsi_target_id, 1188
1189 if (rport && rport->port_state == FC_PORTSTATE_ONLINE)
1190 scsi_scan_target(&rport->dev, 0, rport->scsi_target_id,
1190 scsilun_to_int((struct scsi_lun *)&unit->fcp_lun), 0); 1191 scsilun_to_int((struct scsi_lun *)&unit->fcp_lun), 0);
1191 atomic_clear_mask(ZFCP_STATUS_UNIT_SCSI_WORK_PENDING, &unit->status); 1192 atomic_clear_mask(ZFCP_STATUS_UNIT_SCSI_WORK_PENDING, &unit->status);
1192 zfcp_unit_put(unit); 1193 zfcp_unit_put(unit);
@@ -1282,6 +1283,8 @@ static void zfcp_erp_action_cleanup(struct zfcp_erp_action *act, int result)
1282 case ZFCP_ERP_ACTION_REOPEN_ADAPTER: 1283 case ZFCP_ERP_ACTION_REOPEN_ADAPTER:
1283 if (result != ZFCP_ERP_SUCCEEDED) 1284 if (result != ZFCP_ERP_SUCCEEDED)
1284 zfcp_erp_rports_del(adapter); 1285 zfcp_erp_rports_del(adapter);
1286 else
1287 schedule_work(&adapter->scan_work);
1285 zfcp_adapter_put(adapter); 1288 zfcp_adapter_put(adapter);
1286 break; 1289 break;
1287 } 1290 }
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c
index 1a7c80a77ff5..8aab3091a7b1 100644
--- a/drivers/s390/scsi/zfcp_fc.c
+++ b/drivers/s390/scsi/zfcp_fc.c
@@ -50,7 +50,8 @@ static int zfcp_wka_port_get(struct zfcp_wka_port *wka_port)
50 if (mutex_lock_interruptible(&wka_port->mutex)) 50 if (mutex_lock_interruptible(&wka_port->mutex))
51 return -ERESTARTSYS; 51 return -ERESTARTSYS;
52 52
53 if (wka_port->status != ZFCP_WKA_PORT_ONLINE) { 53 if (wka_port->status == ZFCP_WKA_PORT_OFFLINE ||
54 wka_port->status == ZFCP_WKA_PORT_CLOSING) {
54 wka_port->status = ZFCP_WKA_PORT_OPENING; 55 wka_port->status = ZFCP_WKA_PORT_OPENING;
55 if (zfcp_fsf_open_wka_port(wka_port)) 56 if (zfcp_fsf_open_wka_port(wka_port))
56 wka_port->status = ZFCP_WKA_PORT_OFFLINE; 57 wka_port->status = ZFCP_WKA_PORT_OFFLINE;
@@ -125,8 +126,7 @@ static void _zfcp_fc_incoming_rscn(struct zfcp_fsf_req *fsf_req, u32 range,
125 126
126 read_lock_irqsave(&zfcp_data.config_lock, flags); 127 read_lock_irqsave(&zfcp_data.config_lock, flags);
127 list_for_each_entry(port, &fsf_req->adapter->port_list_head, list) { 128 list_for_each_entry(port, &fsf_req->adapter->port_list_head, list) {
128 /* FIXME: ZFCP_STATUS_PORT_DID_DID check is racy */ 129 if (!(atomic_read(&port->status) & ZFCP_STATUS_PORT_PHYS_OPEN))
129 if (!(atomic_read(&port->status) & ZFCP_STATUS_PORT_DID_DID))
130 /* Try to connect to unused ports anyway. */ 130 /* Try to connect to unused ports anyway. */
131 zfcp_erp_port_reopen(port, 131 zfcp_erp_port_reopen(port,
132 ZFCP_STATUS_COMMON_ERP_FAILED, 132 ZFCP_STATUS_COMMON_ERP_FAILED,
@@ -610,7 +610,6 @@ int zfcp_scan_ports(struct zfcp_adapter *adapter)
610 int ret, i; 610 int ret, i;
611 struct zfcp_gpn_ft *gpn_ft; 611 struct zfcp_gpn_ft *gpn_ft;
612 612
613 zfcp_erp_wait(adapter); /* wait until adapter is finished with ERP */
614 if (fc_host_port_type(adapter->scsi_host) != FC_PORTTYPE_NPORT) 613 if (fc_host_port_type(adapter->scsi_host) != FC_PORTTYPE_NPORT)
615 return 0; 614 return 0;
616 615
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index d024442ee128..dc0367690405 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -930,8 +930,10 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_command(unsigned long old_req_id,
930 goto out; 930 goto out;
931 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND, 931 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND,
932 req_flags, adapter->pool.fsf_req_abort); 932 req_flags, adapter->pool.fsf_req_abort);
933 if (IS_ERR(req)) 933 if (IS_ERR(req)) {
934 req = NULL;
934 goto out; 935 goto out;
936 }
935 937
936 if (unlikely(!(atomic_read(&unit->status) & 938 if (unlikely(!(atomic_read(&unit->status) &
937 ZFCP_STATUS_COMMON_UNBLOCKED))) 939 ZFCP_STATUS_COMMON_UNBLOCKED)))
@@ -1584,6 +1586,7 @@ static void zfcp_fsf_open_wka_port_handler(struct zfcp_fsf_req *req)
1584 wka_port->status = ZFCP_WKA_PORT_OFFLINE; 1586 wka_port->status = ZFCP_WKA_PORT_OFFLINE;
1585 break; 1587 break;
1586 case FSF_PORT_ALREADY_OPEN: 1588 case FSF_PORT_ALREADY_OPEN:
1589 break;
1587 case FSF_GOOD: 1590 case FSF_GOOD:
1588 wka_port->handle = header->port_handle; 1591 wka_port->handle = header->port_handle;
1589 wka_port->status = ZFCP_WKA_PORT_ONLINE; 1592 wka_port->status = ZFCP_WKA_PORT_ONLINE;
@@ -2113,18 +2116,21 @@ static inline void zfcp_fsf_trace_latency(struct zfcp_fsf_req *fsf_req)
2113 2116
2114static void zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *req) 2117static void zfcp_fsf_send_fcp_command_task_handler(struct zfcp_fsf_req *req)
2115{ 2118{
2116 struct scsi_cmnd *scpnt = req->data; 2119 struct scsi_cmnd *scpnt;
2117 struct fcp_rsp_iu *fcp_rsp_iu = (struct fcp_rsp_iu *) 2120 struct fcp_rsp_iu *fcp_rsp_iu = (struct fcp_rsp_iu *)
2118 &(req->qtcb->bottom.io.fcp_rsp); 2121 &(req->qtcb->bottom.io.fcp_rsp);
2119 u32 sns_len; 2122 u32 sns_len;
2120 char *fcp_rsp_info = (unsigned char *) &fcp_rsp_iu[1]; 2123 char *fcp_rsp_info = (unsigned char *) &fcp_rsp_iu[1];
2121 unsigned long flags; 2124 unsigned long flags;
2122 2125
2123 if (unlikely(!scpnt))
2124 return;
2125
2126 read_lock_irqsave(&req->adapter->abort_lock, flags); 2126 read_lock_irqsave(&req->adapter->abort_lock, flags);
2127 2127
2128 scpnt = req->data;
2129 if (unlikely(!scpnt)) {
2130 read_unlock_irqrestore(&req->adapter->abort_lock, flags);
2131 return;
2132 }
2133
2128 if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ABORTED)) { 2134 if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ABORTED)) {
2129 set_host_byte(scpnt, DID_SOFT_ERROR); 2135 set_host_byte(scpnt, DID_SOFT_ERROR);
2130 set_driver_byte(scpnt, SUGGEST_RETRY); 2136 set_driver_byte(scpnt, SUGGEST_RETRY);
@@ -2442,8 +2448,10 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_ctm(struct zfcp_adapter *adapter,
2442 goto out; 2448 goto out;
2443 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags, 2449 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
2444 adapter->pool.fsf_req_scsi); 2450 adapter->pool.fsf_req_scsi);
2445 if (IS_ERR(req)) 2451 if (IS_ERR(req)) {
2452 req = NULL;
2446 goto out; 2453 goto out;
2454 }
2447 2455
2448 req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT; 2456 req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT;
2449 req->data = unit; 2457 req->data = unit;
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index e46fd3e9f68f..468c880f8b6d 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -88,7 +88,7 @@ static int zfcp_scsi_queuecommand(struct scsi_cmnd *scpnt,
88 ret = zfcp_fsf_send_fcp_command_task(adapter, unit, scpnt, 0, 88 ret = zfcp_fsf_send_fcp_command_task(adapter, unit, scpnt, 0,
89 ZFCP_REQ_AUTO_CLEANUP); 89 ZFCP_REQ_AUTO_CLEANUP);
90 if (unlikely(ret == -EBUSY)) 90 if (unlikely(ret == -EBUSY))
91 zfcp_scsi_command_fail(scpnt, DID_NO_CONNECT); 91 return SCSI_MLQUEUE_DEVICE_BUSY;
92 else if (unlikely(ret < 0)) 92 else if (unlikely(ret < 0))
93 return SCSI_MLQUEUE_HOST_BUSY; 93 return SCSI_MLQUEUE_HOST_BUSY;
94 94
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
index 9aa301c1ed07..94acbeed4e7c 100644
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -175,8 +175,8 @@ static struct aac_driver_ident aac_drivers[] = {
175 { aac_rx_init, "percraid", "DELL ", "PERCRAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* PERC 3/Di (Boxster/PERC3DiB) */ 175 { aac_rx_init, "percraid", "DELL ", "PERCRAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* PERC 3/Di (Boxster/PERC3DiB) */
176 { aac_rx_init, "aacraid", "ADAPTEC ", "catapult ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* catapult */ 176 { aac_rx_init, "aacraid", "ADAPTEC ", "catapult ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* catapult */
177 { aac_rx_init, "aacraid", "ADAPTEC ", "tomcat ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* tomcat */ 177 { aac_rx_init, "aacraid", "ADAPTEC ", "tomcat ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* tomcat */
178 { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2120S ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2120S (Crusader) */ 178 { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2120S ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Adaptec 2120S (Crusader) */
179 { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2200S (Vulcan) */ 179 { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Adaptec 2200S (Vulcan) */
180 { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2200S (Vulcan-2m) */ 180 { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2200S (Vulcan-2m) */
181 { aac_rx_init, "aacraid", "Legend ", "Legend S220 ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Legend S220 (Legend Crusader) */ 181 { aac_rx_init, "aacraid", "Legend ", "Legend S220 ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Legend S220 (Legend Crusader) */
182 { aac_rx_init, "aacraid", "Legend ", "Legend S230 ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Legend S230 (Legend Vulcan) */ 182 { aac_rx_init, "aacraid", "Legend ", "Legend S230 ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Legend S230 (Legend Vulcan) */
@@ -427,8 +427,8 @@ static int aac_slave_configure(struct scsi_device *sdev)
427 * Firmware has an individual device recovery time typically 427 * Firmware has an individual device recovery time typically
428 * of 35 seconds, give us a margin. 428 * of 35 seconds, give us a margin.
429 */ 429 */
430 if (sdev->timeout < (45 * HZ)) 430 if (sdev->request_queue->rq_timeout < (45 * HZ))
431 sdev->timeout = 45 * HZ; 431 blk_queue_rq_timeout(sdev->request_queue, 45*HZ);
432 for (cid = 0; cid < aac->maximum_num_containers; ++cid) 432 for (cid = 0; cid < aac->maximum_num_containers; ++cid)
433 if (aac->fsa_dev[cid].valid) 433 if (aac->fsa_dev[cid].valid)
434 ++num_lsu; 434 ++num_lsu;
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 218777bfc143..399fe559e4de 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -13872,8 +13872,10 @@ static int __devinit advansys_board_found(struct Scsi_Host *shost,
13872 advansys_wide_free_mem(boardp); 13872 advansys_wide_free_mem(boardp);
13873 free_irq(boardp->irq, shost); 13873 free_irq(boardp->irq, shost);
13874 err_free_dma: 13874 err_free_dma:
13875#ifdef CONFIG_ISA
13875 if (shost->dma_channel != NO_ISA_DMA) 13876 if (shost->dma_channel != NO_ISA_DMA)
13876 free_dma(shost->dma_channel); 13877 free_dma(shost->dma_channel);
13878#endif
13877 err_free_proc: 13879 err_free_proc:
13878 kfree(boardp->prtbuf); 13880 kfree(boardp->prtbuf);
13879 err_unmap: 13881 err_unmap:
@@ -13894,10 +13896,12 @@ static int advansys_release(struct Scsi_Host *shost)
13894 ASC_DBG(1, "begin\n"); 13896 ASC_DBG(1, "begin\n");
13895 scsi_remove_host(shost); 13897 scsi_remove_host(shost);
13896 free_irq(board->irq, shost); 13898 free_irq(board->irq, shost);
13899#ifdef CONFIG_ISA
13897 if (shost->dma_channel != NO_ISA_DMA) { 13900 if (shost->dma_channel != NO_ISA_DMA) {
13898 ASC_DBG(1, "free_dma()\n"); 13901 ASC_DBG(1, "free_dma()\n");
13899 free_dma(shost->dma_channel); 13902 free_dma(shost->dma_channel);
13900 } 13903 }
13904#endif
13901 if (ASC_NARROW_BOARD(board)) { 13905 if (ASC_NARROW_BOARD(board)) {
13902 dma_unmap_single(board->dev, 13906 dma_unmap_single(board->dev,
13903 board->dvc_var.asc_dvc_var.overrun_dma, 13907 board->dvc_var.asc_dvc_var.overrun_dma,
diff --git a/drivers/scsi/device_handler/scsi_dh_hp_sw.c b/drivers/scsi/device_handler/scsi_dh_hp_sw.c
index 9aec4ca64e56..f7da7530875e 100644
--- a/drivers/scsi/device_handler/scsi_dh_hp_sw.c
+++ b/drivers/scsi/device_handler/scsi_dh_hp_sw.c
@@ -107,6 +107,7 @@ static int hp_sw_tur(struct scsi_device *sdev, struct hp_sw_dh_data *h)
107 struct request *req; 107 struct request *req;
108 int ret; 108 int ret;
109 109
110retry:
110 req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO); 111 req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO);
111 if (!req) 112 if (!req)
112 return SCSI_DH_RES_TEMP_UNAVAIL; 113 return SCSI_DH_RES_TEMP_UNAVAIL;
@@ -121,7 +122,6 @@ static int hp_sw_tur(struct scsi_device *sdev, struct hp_sw_dh_data *h)
121 memset(req->sense, 0, SCSI_SENSE_BUFFERSIZE); 122 memset(req->sense, 0, SCSI_SENSE_BUFFERSIZE);
122 req->sense_len = 0; 123 req->sense_len = 0;
123 124
124retry:
125 ret = blk_execute_rq(req->q, NULL, req, 1); 125 ret = blk_execute_rq(req->q, NULL, req, 1);
126 if (ret == -EIO) { 126 if (ret == -EIO) {
127 if (req->sense_len > 0) { 127 if (req->sense_len > 0) {
@@ -136,8 +136,10 @@ retry:
136 h->path_state = HP_SW_PATH_ACTIVE; 136 h->path_state = HP_SW_PATH_ACTIVE;
137 ret = SCSI_DH_OK; 137 ret = SCSI_DH_OK;
138 } 138 }
139 if (ret == SCSI_DH_IMM_RETRY) 139 if (ret == SCSI_DH_IMM_RETRY) {
140 blk_put_request(req);
140 goto retry; 141 goto retry;
142 }
141 if (ret == SCSI_DH_DEV_OFFLINED) { 143 if (ret == SCSI_DH_DEV_OFFLINED) {
142 h->path_state = HP_SW_PATH_PASSIVE; 144 h->path_state = HP_SW_PATH_PASSIVE;
143 ret = SCSI_DH_OK; 145 ret = SCSI_DH_OK;
@@ -200,6 +202,7 @@ static int hp_sw_start_stop(struct scsi_device *sdev, struct hp_sw_dh_data *h)
200 struct request *req; 202 struct request *req;
201 int ret, retry; 203 int ret, retry;
202 204
205retry:
203 req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO); 206 req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO);
204 if (!req) 207 if (!req)
205 return SCSI_DH_RES_TEMP_UNAVAIL; 208 return SCSI_DH_RES_TEMP_UNAVAIL;
@@ -216,7 +219,6 @@ static int hp_sw_start_stop(struct scsi_device *sdev, struct hp_sw_dh_data *h)
216 req->sense_len = 0; 219 req->sense_len = 0;
217 retry = h->retries; 220 retry = h->retries;
218 221
219retry:
220 ret = blk_execute_rq(req->q, NULL, req, 1); 222 ret = blk_execute_rq(req->q, NULL, req, 1);
221 if (ret == -EIO) { 223 if (ret == -EIO) {
222 if (req->sense_len > 0) { 224 if (req->sense_len > 0) {
@@ -231,8 +233,10 @@ retry:
231 ret = SCSI_DH_OK; 233 ret = SCSI_DH_OK;
232 234
233 if (ret == SCSI_DH_RETRY) { 235 if (ret == SCSI_DH_RETRY) {
234 if (--retry) 236 if (--retry) {
237 blk_put_request(req);
235 goto retry; 238 goto retry;
239 }
236 ret = SCSI_DH_IO; 240 ret = SCSI_DH_IO;
237 } 241 }
238 242
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index c387c15a2128..fb247fdfa2bd 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -588,7 +588,7 @@ static struct pci_driver gdth_pci_driver = {
588 .remove = gdth_pci_remove_one, 588 .remove = gdth_pci_remove_one,
589}; 589};
590 590
591static void gdth_pci_remove_one(struct pci_dev *pdev) 591static void __devexit gdth_pci_remove_one(struct pci_dev *pdev)
592{ 592{
593 gdth_ha_str *ha = pci_get_drvdata(pdev); 593 gdth_ha_str *ha = pci_get_drvdata(pdev);
594 594
@@ -600,7 +600,7 @@ static void gdth_pci_remove_one(struct pci_dev *pdev)
600 pci_disable_device(pdev); 600 pci_disable_device(pdev);
601} 601}
602 602
603static int gdth_pci_init_one(struct pci_dev *pdev, 603static int __devinit gdth_pci_init_one(struct pci_dev *pdev,
604 const struct pci_device_id *ent) 604 const struct pci_device_id *ent)
605{ 605{
606 ushort vendor = pdev->vendor; 606 ushort vendor = pdev->vendor;
@@ -853,7 +853,7 @@ static int __init gdth_init_isa(ulong32 bios_adr,gdth_ha_str *ha)
853#endif /* CONFIG_ISA */ 853#endif /* CONFIG_ISA */
854 854
855#ifdef CONFIG_PCI 855#ifdef CONFIG_PCI
856static int gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr, 856static int __devinit gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr,
857 gdth_ha_str *ha) 857 gdth_ha_str *ha)
858{ 858{
859 register gdt6_dpram_str __iomem *dp6_ptr; 859 register gdt6_dpram_str __iomem *dp6_ptr;
@@ -1237,7 +1237,7 @@ static int gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr,
1237 1237
1238/* controller protocol functions */ 1238/* controller protocol functions */
1239 1239
1240static void __init gdth_enable_int(gdth_ha_str *ha) 1240static void __devinit gdth_enable_int(gdth_ha_str *ha)
1241{ 1241{
1242 ulong flags; 1242 ulong flags;
1243 gdt2_dpram_str __iomem *dp2_ptr; 1243 gdt2_dpram_str __iomem *dp2_ptr;
@@ -1553,7 +1553,7 @@ static int gdth_internal_cmd(gdth_ha_str *ha, unchar service, ushort opcode,
1553 1553
1554/* search for devices */ 1554/* search for devices */
1555 1555
1556static int __init gdth_search_drives(gdth_ha_str *ha) 1556static int __devinit gdth_search_drives(gdth_ha_str *ha)
1557{ 1557{
1558 ushort cdev_cnt, i; 1558 ushort cdev_cnt, i;
1559 int ok; 1559 int ok;
@@ -4935,7 +4935,7 @@ static int __init gdth_eisa_probe_one(ushort eisa_slot)
4935#endif /* CONFIG_EISA */ 4935#endif /* CONFIG_EISA */
4936 4936
4937#ifdef CONFIG_PCI 4937#ifdef CONFIG_PCI
4938static int gdth_pci_probe_one(gdth_pci_str *pcistr, 4938static int __devinit gdth_pci_probe_one(gdth_pci_str *pcistr,
4939 gdth_ha_str **ha_out) 4939 gdth_ha_str **ha_out)
4940{ 4940{
4941 struct Scsi_Host *shp; 4941 struct Scsi_Host *shp;
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index 87e09f35d3d4..6cad1758243a 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -1442,7 +1442,7 @@ static int ibmvscsi_slave_configure(struct scsi_device *sdev)
1442 spin_lock_irqsave(shost->host_lock, lock_flags); 1442 spin_lock_irqsave(shost->host_lock, lock_flags);
1443 if (sdev->type == TYPE_DISK) { 1443 if (sdev->type == TYPE_DISK) {
1444 sdev->allow_restart = 1; 1444 sdev->allow_restart = 1;
1445 sdev->timeout = 60 * HZ; 1445 blk_queue_rq_timeout(sdev->request_queue, 60 * HZ);
1446 } 1446 }
1447 scsi_adjust_queue_depth(sdev, 0, shost->cmd_per_lun); 1447 scsi_adjust_queue_depth(sdev, 0, shost->cmd_per_lun);
1448 spin_unlock_irqrestore(shost->host_lock, lock_flags); 1448 spin_unlock_irqrestore(shost->host_lock, lock_flags);
diff --git a/drivers/scsi/ibmvscsi/ibmvstgt.c b/drivers/scsi/ibmvscsi/ibmvstgt.c
index 2a5b29d12172..e2dd6a45924a 100644
--- a/drivers/scsi/ibmvscsi/ibmvstgt.c
+++ b/drivers/scsi/ibmvscsi/ibmvstgt.c
@@ -864,21 +864,23 @@ static int ibmvstgt_probe(struct vio_dev *dev, const struct vio_device_id *id)
864 864
865 INIT_WORK(&vport->crq_work, handle_crq); 865 INIT_WORK(&vport->crq_work, handle_crq);
866 866
867 err = crq_queue_create(&vport->crq_queue, target); 867 err = scsi_add_host(shost, target->dev);
868 if (err) 868 if (err)
869 goto free_srp_target; 869 goto free_srp_target;
870 870
871 err = scsi_add_host(shost, target->dev); 871 err = scsi_tgt_alloc_queue(shost);
872 if (err) 872 if (err)
873 goto destroy_queue; 873 goto remove_host;
874 874
875 err = scsi_tgt_alloc_queue(shost); 875 err = crq_queue_create(&vport->crq_queue, target);
876 if (err) 876 if (err)
877 goto destroy_queue; 877 goto free_queue;
878 878
879 return 0; 879 return 0;
880destroy_queue: 880free_queue:
881 crq_queue_destroy(target); 881 scsi_tgt_free_queue(shost);
882remove_host:
883 scsi_remove_host(shost);
882free_srp_target: 884free_srp_target:
883 srp_target_free(target); 885 srp_target_free(target);
884put_host: 886put_host:
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 801c7cf54d2e..3fdee7370ccc 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -489,12 +489,6 @@ __iscsi_conn_send_pdu(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
489 if (!__kfifo_get(session->cmdpool.queue, 489 if (!__kfifo_get(session->cmdpool.queue,
490 (void*)&task, sizeof(void*))) 490 (void*)&task, sizeof(void*)))
491 return NULL; 491 return NULL;
492
493 if ((hdr->opcode == (ISCSI_OP_NOOP_OUT | ISCSI_OP_IMMEDIATE)) &&
494 hdr->ttt == RESERVED_ITT) {
495 conn->ping_task = task;
496 conn->last_ping = jiffies;
497 }
498 } 492 }
499 /* 493 /*
500 * released in complete pdu for task we expect a response for, and 494 * released in complete pdu for task we expect a response for, and
@@ -703,6 +697,11 @@ static void iscsi_send_nopout(struct iscsi_conn *conn, struct iscsi_nopin *rhdr)
703 task = __iscsi_conn_send_pdu(conn, (struct iscsi_hdr *)&hdr, NULL, 0); 697 task = __iscsi_conn_send_pdu(conn, (struct iscsi_hdr *)&hdr, NULL, 0);
704 if (!task) 698 if (!task)
705 iscsi_conn_printk(KERN_ERR, conn, "Could not send nopout\n"); 699 iscsi_conn_printk(KERN_ERR, conn, "Could not send nopout\n");
700 else if (!rhdr) {
701 /* only track our nops */
702 conn->ping_task = task;
703 conn->last_ping = jiffies;
704 }
706} 705}
707 706
708static int iscsi_handle_reject(struct iscsi_conn *conn, struct iscsi_hdr *hdr, 707static int iscsi_handle_reject(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
diff --git a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c
index a454f94623d7..17ce7abe17ee 100644
--- a/drivers/scsi/megaraid/megaraid_sas.c
+++ b/drivers/scsi/megaraid/megaraid_sas.c
@@ -1016,7 +1016,8 @@ static int megasas_slave_configure(struct scsi_device *sdev)
1016 * The RAID firmware may require extended timeouts. 1016 * The RAID firmware may require extended timeouts.
1017 */ 1017 */
1018 if (sdev->channel >= MEGASAS_MAX_PD_CHANNELS) 1018 if (sdev->channel >= MEGASAS_MAX_PD_CHANNELS)
1019 sdev->timeout = MEGASAS_DEFAULT_CMD_TIMEOUT * HZ; 1019 blk_queue_rq_timeout(sdev->request_queue,
1020 MEGASAS_DEFAULT_CMD_TIMEOUT * HZ);
1020 return 0; 1021 return 0;
1021} 1022}
1022 1023
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index 386361778ebb..edfaf241c5ba 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -932,8 +932,7 @@ static int scsi_eh_try_stu(struct scsi_cmnd *scmd)
932 int i, rtn = NEEDS_RETRY; 932 int i, rtn = NEEDS_RETRY;
933 933
934 for (i = 0; rtn == NEEDS_RETRY && i < 2; i++) 934 for (i = 0; rtn == NEEDS_RETRY && i < 2; i++)
935 rtn = scsi_send_eh_cmnd(scmd, stu_command, 6, 935 rtn = scsi_send_eh_cmnd(scmd, stu_command, 6, scmd->device->request_queue->rq_timeout, 0);
936 scmd->device->timeout, 0);
937 936
938 if (rtn == SUCCESS) 937 if (rtn == SUCCESS)
939 return 0; 938 return 0;
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index f5d3b96890dc..148d3af92aef 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -567,15 +567,18 @@ static inline int scsi_host_is_busy(struct Scsi_Host *shost)
567 */ 567 */
568static void scsi_run_queue(struct request_queue *q) 568static void scsi_run_queue(struct request_queue *q)
569{ 569{
570 struct scsi_device *starved_head = NULL, *sdev = q->queuedata; 570 struct scsi_device *sdev = q->queuedata;
571 struct Scsi_Host *shost = sdev->host; 571 struct Scsi_Host *shost = sdev->host;
572 LIST_HEAD(starved_list);
572 unsigned long flags; 573 unsigned long flags;
573 574
574 if (scsi_target(sdev)->single_lun) 575 if (scsi_target(sdev)->single_lun)
575 scsi_single_lun_run(sdev); 576 scsi_single_lun_run(sdev);
576 577
577 spin_lock_irqsave(shost->host_lock, flags); 578 spin_lock_irqsave(shost->host_lock, flags);
578 while (!list_empty(&shost->starved_list) && !scsi_host_is_busy(shost)) { 579 list_splice_init(&shost->starved_list, &starved_list);
580
581 while (!list_empty(&starved_list)) {
579 int flagset; 582 int flagset;
580 583
581 /* 584 /*
@@ -588,24 +591,18 @@ static void scsi_run_queue(struct request_queue *q)
588 * scsi_request_fn must get the host_lock before checking 591 * scsi_request_fn must get the host_lock before checking
589 * or modifying starved_list or starved_entry. 592 * or modifying starved_list or starved_entry.
590 */ 593 */
591 sdev = list_entry(shost->starved_list.next, 594 if (scsi_host_is_busy(shost))
592 struct scsi_device, starved_entry);
593 /*
594 * The *queue_ready functions can add a device back onto the
595 * starved list's tail, so we must check for a infinite loop.
596 */
597 if (sdev == starved_head)
598 break; 595 break;
599 if (!starved_head)
600 starved_head = sdev;
601 596
597 sdev = list_entry(starved_list.next,
598 struct scsi_device, starved_entry);
599 list_del_init(&sdev->starved_entry);
602 if (scsi_target_is_busy(scsi_target(sdev))) { 600 if (scsi_target_is_busy(scsi_target(sdev))) {
603 list_move_tail(&sdev->starved_entry, 601 list_move_tail(&sdev->starved_entry,
604 &shost->starved_list); 602 &shost->starved_list);
605 continue; 603 continue;
606 } 604 }
607 605
608 list_del_init(&sdev->starved_entry);
609 spin_unlock(shost->host_lock); 606 spin_unlock(shost->host_lock);
610 607
611 spin_lock(sdev->request_queue->queue_lock); 608 spin_lock(sdev->request_queue->queue_lock);
@@ -621,6 +618,8 @@ static void scsi_run_queue(struct request_queue *q)
621 618
622 spin_lock(shost->host_lock); 619 spin_lock(shost->host_lock);
623 } 620 }
621 /* put any unprocessed entries back */
622 list_splice(&starved_list, &shost->starved_list);
624 spin_unlock_irqrestore(shost->host_lock, flags); 623 spin_unlock_irqrestore(shost->host_lock, flags);
625 624
626 blk_run_queue(q); 625 blk_run_queue(q);
@@ -649,8 +648,8 @@ static void scsi_requeue_command(struct request_queue *q, struct scsi_cmnd *cmd)
649 struct request *req = cmd->request; 648 struct request *req = cmd->request;
650 unsigned long flags; 649 unsigned long flags;
651 650
652 scsi_unprep_request(req);
653 spin_lock_irqsave(q->queue_lock, flags); 651 spin_lock_irqsave(q->queue_lock, flags);
652 scsi_unprep_request(req);
654 blk_requeue_request(q, req); 653 blk_requeue_request(q, req);
655 spin_unlock_irqrestore(q->queue_lock, flags); 654 spin_unlock_irqrestore(q->queue_lock, flags);
656 655
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index c9e1242eaf25..5081b3981d3c 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -757,7 +757,7 @@ static int sd_ioctl(struct block_device *bdev, fmode_t mode,
757 * access to the device is prohibited. 757 * access to the device is prohibited.
758 */ 758 */
759 error = scsi_nonblockable_ioctl(sdp, cmd, p, 759 error = scsi_nonblockable_ioctl(sdp, cmd, p,
760 (mode & FMODE_NDELAY_NOW) != 0); 760 (mode & FMODE_NDELAY) != 0);
761 if (!scsi_block_when_processing_errors(sdp) || !error) 761 if (!scsi_block_when_processing_errors(sdp) || !error)
762 return error; 762 return error;
763 763
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 62b6633e3a97..45b66b98a516 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -521,7 +521,7 @@ static int sr_block_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd,
521 * if it doesn't recognise the ioctl 521 * if it doesn't recognise the ioctl
522 */ 522 */
523 ret = scsi_nonblockable_ioctl(sdev, cmd, argp, 523 ret = scsi_nonblockable_ioctl(sdev, cmd, argp,
524 (mode & FMODE_NDELAY_NOW) != 0); 524 (mode & FMODE_NDELAY) != 0);
525 if (ret != -ENODEV) 525 if (ret != -ENODEV)
526 return ret; 526 return ret;
527 return scsi_ioctl(sdev, cmd, argp); 527 return scsi_ioctl(sdev, cmd, argp);
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index 3790906a77d1..2fa830c0be27 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -477,7 +477,7 @@ stex_slave_config(struct scsi_device *sdev)
477{ 477{
478 sdev->use_10_for_rw = 1; 478 sdev->use_10_for_rw = 1;
479 sdev->use_10_for_ms = 1; 479 sdev->use_10_for_ms = 1;
480 sdev->timeout = 60 * HZ; 480 blk_queue_rq_timeout(sdev->request_queue, 60 * HZ);
481 sdev->tagged_supported = 1; 481 sdev->tagged_supported = 1;
482 482
483 return 0; 483 return 0;
diff --git a/drivers/serial/ioc3_serial.c b/drivers/serial/ioc3_serial.c
index 6dd98f9fb89c..ae3699d77dd0 100644
--- a/drivers/serial/ioc3_serial.c
+++ b/drivers/serial/ioc3_serial.c
@@ -2149,7 +2149,7 @@ out4:
2149 return ret; 2149 return ret;
2150} 2150}
2151 2151
2152static struct ioc3_submodule ioc3uart_submodule = { 2152static struct ioc3_submodule ioc3uart_ops = {
2153 .name = "IOC3uart", 2153 .name = "IOC3uart",
2154 .probe = ioc3uart_probe, 2154 .probe = ioc3uart_probe,
2155 .remove = ioc3uart_remove, 2155 .remove = ioc3uart_remove,
@@ -2173,7 +2173,7 @@ static int __devinit ioc3uart_init(void)
2173 __func__); 2173 __func__);
2174 return ret; 2174 return ret;
2175 } 2175 }
2176 ret = ioc3_register_submodule(&ioc3uart_submodule); 2176 ret = ioc3_register_submodule(&ioc3uart_ops);
2177 if (ret) 2177 if (ret)
2178 uart_unregister_driver(&ioc3_uart); 2178 uart_unregister_driver(&ioc3_uart);
2179 return ret; 2179 return ret;
@@ -2181,7 +2181,7 @@ static int __devinit ioc3uart_init(void)
2181 2181
2182static void __devexit ioc3uart_exit(void) 2182static void __devexit ioc3uart_exit(void)
2183{ 2183{
2184 ioc3_unregister_submodule(&ioc3uart_submodule); 2184 ioc3_unregister_submodule(&ioc3uart_ops);
2185 uart_unregister_driver(&ioc3_uart); 2185 uart_unregister_driver(&ioc3_uart);
2186} 2186}
2187 2187
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 6117d3db0b66..28c00c3d58f5 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -591,8 +591,8 @@ mpc52xx_uart_set_termios(struct uart_port *port, struct ktermios *new,
591 /* Update the per-port timeout */ 591 /* Update the per-port timeout */
592 uart_update_timeout(port, new->c_cflag, baud); 592 uart_update_timeout(port, new->c_cflag, baud);
593 593
594 /* Do our best to flush TX & RX, so we don't loose anything */ 594 /* Do our best to flush TX & RX, so we don't lose anything */
595 /* But we don't wait indefinitly ! */ 595 /* But we don't wait indefinitely ! */
596 j = 5000000; /* Maximum wait */ 596 j = 5000000; /* Maximum wait */
597 /* FIXME Can't receive chars since set_termios might be called at early 597 /* FIXME Can't receive chars since set_termios might be called at early
598 * boot for the console, all stuff is not yet ready to receive at that 598 * boot for the console, all stuff is not yet ready to receive at that
diff --git a/drivers/serial/s3c2440.c b/drivers/serial/s3c2440.c
index 317d239ab740..29cbb0afef8e 100644
--- a/drivers/serial/s3c2440.c
+++ b/drivers/serial/s3c2440.c
@@ -177,5 +177,5 @@ module_exit(s3c2440_serial_exit);
177 177
178MODULE_DESCRIPTION("Samsung S3C2440,S3C2442 SoC Serial port driver"); 178MODULE_DESCRIPTION("Samsung S3C2440,S3C2442 SoC Serial port driver");
179MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); 179MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
180MODULE_LICENSE("GPLi v2"); 180MODULE_LICENSE("GPL v2");
181MODULE_ALIAS("platform:s3c2440-uart"); 181MODULE_ALIAS("platform:s3c2440-uart");
diff --git a/drivers/serial/uartlite.c b/drivers/serial/uartlite.c
index 6a3f8fb0c9dd..3317148a4b93 100644
--- a/drivers/serial/uartlite.c
+++ b/drivers/serial/uartlite.c
@@ -286,8 +286,8 @@ static void ulite_release_port(struct uart_port *port)
286 286
287static int ulite_request_port(struct uart_port *port) 287static int ulite_request_port(struct uart_port *port)
288{ 288{
289 pr_debug("ulite console: port=%p; port->mapbase=%x\n", 289 pr_debug("ulite console: port=%p; port->mapbase=%llx\n",
290 port, port->mapbase); 290 port, (unsigned long long) port->mapbase);
291 291
292 if (!request_mem_region(port->mapbase, ULITE_REGION, "uartlite")) { 292 if (!request_mem_region(port->mapbase, ULITE_REGION, "uartlite")) {
293 dev_err(port->dev, "Memory region busy\n"); 293 dev_err(port->dev, "Memory region busy\n");
diff --git a/drivers/sh/maple/maple.c b/drivers/sh/maple/maple.c
index d1812d32f47d..63f0de29aa14 100644
--- a/drivers/sh/maple/maple.c
+++ b/drivers/sh/maple/maple.c
@@ -827,7 +827,7 @@ static int __init maple_bus_init(void)
827 827
828 maple_queue_cache = 828 maple_queue_cache =
829 kmem_cache_create("maple_queue_cache", 0x400, 0, 829 kmem_cache_create("maple_queue_cache", 0x400, 0,
830 SLAB_POISON|SLAB_HWCACHE_ALIGN, NULL); 830 SLAB_HWCACHE_ALIGN, NULL);
831 831
832 if (!maple_queue_cache) 832 if (!maple_queue_cache)
833 goto cleanup_bothirqs; 833 goto cleanup_bothirqs;
diff --git a/drivers/spi/au1550_spi.c b/drivers/spi/au1550_spi.c
index 87b73e0169c5..b02f25c702fd 100644
--- a/drivers/spi/au1550_spi.c
+++ b/drivers/spi/au1550_spi.c
@@ -369,10 +369,23 @@ static int au1550_spi_dma_txrxb(struct spi_device *spi, struct spi_transfer *t)
369 dma_rx_addr = t->rx_dma; 369 dma_rx_addr = t->rx_dma;
370 370
371 /* 371 /*
372 * check if buffers are already dma mapped, map them otherwise 372 * check if buffers are already dma mapped, map them otherwise:
373 * - first map the TX buffer, so cache data gets written to memory
374 * - then map the RX buffer, so that cache entries (with
375 * soon-to-be-stale data) get removed
373 * use rx buffer in place of tx if tx buffer was not provided 376 * use rx buffer in place of tx if tx buffer was not provided
374 * use temp rx buffer (preallocated or realloc to fit) for rx dma 377 * use temp rx buffer (preallocated or realloc to fit) for rx dma
375 */ 378 */
379 if (t->tx_buf) {
380 if (t->tx_dma == 0) { /* if DMA_ADDR_INVALID, map it */
381 dma_tx_addr = dma_map_single(hw->dev,
382 (void *)t->tx_buf,
383 t->len, DMA_TO_DEVICE);
384 if (dma_mapping_error(hw->dev, dma_tx_addr))
385 dev_err(hw->dev, "tx dma map error\n");
386 }
387 }
388
376 if (t->rx_buf) { 389 if (t->rx_buf) {
377 if (t->rx_dma == 0) { /* if DMA_ADDR_INVALID, map it */ 390 if (t->rx_dma == 0) { /* if DMA_ADDR_INVALID, map it */
378 dma_rx_addr = dma_map_single(hw->dev, 391 dma_rx_addr = dma_map_single(hw->dev,
@@ -396,15 +409,8 @@ static int au1550_spi_dma_txrxb(struct spi_device *spi, struct spi_transfer *t)
396 dma_sync_single_for_device(hw->dev, dma_rx_addr, 409 dma_sync_single_for_device(hw->dev, dma_rx_addr,
397 t->len, DMA_FROM_DEVICE); 410 t->len, DMA_FROM_DEVICE);
398 } 411 }
399 if (t->tx_buf) { 412
400 if (t->tx_dma == 0) { /* if DMA_ADDR_INVALID, map it */ 413 if (!t->tx_buf) {
401 dma_tx_addr = dma_map_single(hw->dev,
402 (void *)t->tx_buf,
403 t->len, DMA_TO_DEVICE);
404 if (dma_mapping_error(hw->dev, dma_tx_addr))
405 dev_err(hw->dev, "tx dma map error\n");
406 }
407 } else {
408 dma_sync_single_for_device(hw->dev, dma_rx_addr, 414 dma_sync_single_for_device(hw->dev, dma_rx_addr,
409 t->len, DMA_BIDIRECTIONAL); 415 t->len, DMA_BIDIRECTIONAL);
410 hw->tx = hw->rx; 416 hw->tx = hw->rx;
diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c
index 0debe11b67b4..3b97803e1d11 100644
--- a/drivers/spi/mpc52xx_psc_spi.c
+++ b/drivers/spi/mpc52xx_psc_spi.c
@@ -142,6 +142,7 @@ static int mpc52xx_psc_spi_transfer_rxtx(struct spi_device *spi,
142 unsigned rfalarm; 142 unsigned rfalarm;
143 unsigned send_at_once = MPC52xx_PSC_BUFSIZE; 143 unsigned send_at_once = MPC52xx_PSC_BUFSIZE;
144 unsigned recv_at_once; 144 unsigned recv_at_once;
145 int last_block = 0;
145 146
146 if (!t->tx_buf && !t->rx_buf && t->len) 147 if (!t->tx_buf && !t->rx_buf && t->len)
147 return -EINVAL; 148 return -EINVAL;
@@ -151,15 +152,17 @@ static int mpc52xx_psc_spi_transfer_rxtx(struct spi_device *spi,
151 while (rb < t->len) { 152 while (rb < t->len) {
152 if (t->len - rb > MPC52xx_PSC_BUFSIZE) { 153 if (t->len - rb > MPC52xx_PSC_BUFSIZE) {
153 rfalarm = MPC52xx_PSC_RFALARM; 154 rfalarm = MPC52xx_PSC_RFALARM;
155 last_block = 0;
154 } else { 156 } else {
155 send_at_once = t->len - sb; 157 send_at_once = t->len - sb;
156 rfalarm = MPC52xx_PSC_BUFSIZE - (t->len - rb); 158 rfalarm = MPC52xx_PSC_BUFSIZE - (t->len - rb);
159 last_block = 1;
157 } 160 }
158 161
159 dev_dbg(&spi->dev, "send %d bytes...\n", send_at_once); 162 dev_dbg(&spi->dev, "send %d bytes...\n", send_at_once);
160 for (; send_at_once; sb++, send_at_once--) { 163 for (; send_at_once; sb++, send_at_once--) {
161 /* set EOF flag before the last word is sent */ 164 /* set EOF flag before the last word is sent */
162 if (send_at_once == 1) 165 if (send_at_once == 1 && last_block)
163 out_8(&psc->ircr2, 0x01); 166 out_8(&psc->ircr2, 0x01);
164 167
165 if (tx_buf) 168 if (tx_buf)
diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c
index 0b4db0ce78d6..269a55ec52ef 100644
--- a/drivers/spi/spi_imx.c
+++ b/drivers/spi/spi_imx.c
@@ -1456,7 +1456,7 @@ static int __init spi_imx_probe(struct platform_device *pdev)
1456 struct device *dev = &pdev->dev; 1456 struct device *dev = &pdev->dev;
1457 struct spi_imx_master *platform_info; 1457 struct spi_imx_master *platform_info;
1458 struct spi_master *master; 1458 struct spi_master *master;
1459 struct driver_data *drv_data = NULL; 1459 struct driver_data *drv_data;
1460 struct resource *res; 1460 struct resource *res;
1461 int irq, status = 0; 1461 int irq, status = 0;
1462 1462
@@ -1467,14 +1467,6 @@ static int __init spi_imx_probe(struct platform_device *pdev)
1467 goto err_no_pdata; 1467 goto err_no_pdata;
1468 } 1468 }
1469 1469
1470 drv_data->clk = clk_get(&pdev->dev, "perclk2");
1471 if (IS_ERR(drv_data->clk)) {
1472 dev_err(&pdev->dev, "probe - cannot get get\n");
1473 status = PTR_ERR(drv_data->clk);
1474 goto err_no_clk;
1475 }
1476 clk_enable(drv_data->clk);
1477
1478 /* Allocate master with space for drv_data */ 1470 /* Allocate master with space for drv_data */
1479 master = spi_alloc_master(dev, sizeof(struct driver_data)); 1471 master = spi_alloc_master(dev, sizeof(struct driver_data));
1480 if (!master) { 1472 if (!master) {
@@ -1495,6 +1487,14 @@ static int __init spi_imx_probe(struct platform_device *pdev)
1495 1487
1496 drv_data->dummy_dma_buf = SPI_DUMMY_u32; 1488 drv_data->dummy_dma_buf = SPI_DUMMY_u32;
1497 1489
1490 drv_data->clk = clk_get(&pdev->dev, "perclk2");
1491 if (IS_ERR(drv_data->clk)) {
1492 dev_err(&pdev->dev, "probe - cannot get clock\n");
1493 status = PTR_ERR(drv_data->clk);
1494 goto err_no_clk;
1495 }
1496 clk_enable(drv_data->clk);
1497
1498 /* Find and map resources */ 1498 /* Find and map resources */
1499 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1499 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1500 if (!res) { 1500 if (!res) {
@@ -1630,12 +1630,13 @@ err_no_iomap:
1630 kfree(drv_data->ioarea); 1630 kfree(drv_data->ioarea);
1631 1631
1632err_no_iores: 1632err_no_iores:
1633 spi_master_put(master);
1634
1635err_no_pdata:
1636 clk_disable(drv_data->clk); 1633 clk_disable(drv_data->clk);
1637 clk_put(drv_data->clk); 1634 clk_put(drv_data->clk);
1635
1638err_no_clk: 1636err_no_clk:
1637 spi_master_put(master);
1638
1639err_no_pdata:
1639err_no_mem: 1640err_no_mem:
1640 return status; 1641 return status;
1641} 1642}
diff --git a/drivers/spi/spi_s3c24xx_gpio.c b/drivers/spi/spi_s3c24xx_gpio.c
index cc1f647f579b..f2447a5476bb 100644
--- a/drivers/spi/spi_s3c24xx_gpio.c
+++ b/drivers/spi/spi_s3c24xx_gpio.c
@@ -34,7 +34,7 @@ struct s3c2410_spigpio {
34 34
35static inline struct s3c2410_spigpio *spidev_to_sg(struct spi_device *spi) 35static inline struct s3c2410_spigpio *spidev_to_sg(struct spi_device *spi)
36{ 36{
37 return spi->controller_data; 37 return spi_master_get_devdata(spi->master);
38} 38}
39 39
40static inline void setsck(struct spi_device *dev, int on) 40static inline void setsck(struct spi_device *dev, int on)
@@ -118,6 +118,7 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
118 /* setup spi bitbang adaptor */ 118 /* setup spi bitbang adaptor */
119 sp->bitbang.master = spi_master_get(master); 119 sp->bitbang.master = spi_master_get(master);
120 sp->bitbang.master->bus_num = info->bus_num; 120 sp->bitbang.master->bus_num = info->bus_num;
121 sp->bitbang.master->num_chipselect = info->num_chipselect;
121 sp->bitbang.chipselect = s3c2410_spigpio_chipselect; 122 sp->bitbang.chipselect = s3c2410_spigpio_chipselect;
122 123
123 sp->bitbang.txrx_word[SPI_MODE_0] = s3c2410_spigpio_txrx_mode0; 124 sp->bitbang.txrx_word[SPI_MODE_0] = s3c2410_spigpio_txrx_mode0;
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index 89a43755a453..5d869c4d3eb2 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -597,7 +597,9 @@ static int spidev_probe(struct spi_device *spi)
597 } 597 }
598 mutex_unlock(&device_list_lock); 598 mutex_unlock(&device_list_lock);
599 599
600 if (status != 0) 600 if (status == 0)
601 spi_set_drvdata(spi, spidev);
602 else
601 kfree(spidev); 603 kfree(spidev);
602 604
603 return status; 605 return status;
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index c95b286a1239..5d457c96bd7e 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -22,6 +22,8 @@ menuconfig STAGING
22 If in doubt, say N here. 22 If in doubt, say N here.
23 23
24 24
25if STAGING
26
25config STAGING_EXCLUDE_BUILD 27config STAGING_EXCLUDE_BUILD
26 bool "Exclude Staging drivers from being built" if STAGING 28 bool "Exclude Staging drivers from being built" if STAGING
27 default y 29 default y
@@ -62,3 +64,4 @@ source "drivers/staging/at76_usb/Kconfig"
62source "drivers/staging/poch/Kconfig" 64source "drivers/staging/poch/Kconfig"
63 65
64endif # !STAGING_EXCLUDE_BUILD 66endif # !STAGING_EXCLUDE_BUILD
67endif # STAGING
diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c
index 8e74657f106c..43a863c5cc43 100644
--- a/drivers/usb/class/usbtmc.c
+++ b/drivers/usb/class/usbtmc.c
@@ -51,6 +51,7 @@ static struct usb_device_id usbtmc_devices[] = {
51 { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 0), }, 51 { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 0), },
52 { 0, } /* terminating entry */ 52 { 0, } /* terminating entry */
53}; 53};
54MODULE_DEVICE_TABLE(usb, usbtmc_devices);
54 55
55/* 56/*
56 * This structure is the capabilities for the device 57 * This structure is the capabilities for the device
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 3d7793d93031..8c081308b0e2 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -279,7 +279,9 @@ static int usb_unbind_interface(struct device *dev)
279 * altsetting means creating new endpoint device entries). 279 * altsetting means creating new endpoint device entries).
280 * When either of these happens, defer the Set-Interface. 280 * When either of these happens, defer the Set-Interface.
281 */ 281 */
282 if (!error && intf->dev.power.status == DPM_ON) 282 if (intf->cur_altsetting->desc.bAlternateSetting == 0)
283 ; /* Already in altsetting 0 so skip Set-Interface */
284 else if (!error && intf->dev.power.status == DPM_ON)
283 usb_set_interface(udev, intf->altsetting[0]. 285 usb_set_interface(udev, intf->altsetting[0].
284 desc.bInterfaceNumber, 0); 286 desc.bInterfaceNumber, 0);
285 else 287 else
diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c
index 428b5993575a..3a8bb53fc473 100644
--- a/drivers/usb/gadget/f_rndis.c
+++ b/drivers/usb/gadget/f_rndis.c
@@ -651,6 +651,8 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
651 fs_in_desc.bEndpointAddress; 651 fs_in_desc.bEndpointAddress;
652 hs_out_desc.bEndpointAddress = 652 hs_out_desc.bEndpointAddress =
653 fs_out_desc.bEndpointAddress; 653 fs_out_desc.bEndpointAddress;
654 hs_notify_desc.bEndpointAddress =
655 fs_notify_desc.bEndpointAddress;
654 656
655 /* copy descriptors, and track endpoint copies */ 657 /* copy descriptors, and track endpoint copies */
656 f->hs_descriptors = usb_copy_descriptors(eth_hs_function); 658 f->hs_descriptors = usb_copy_descriptors(eth_hs_function);
@@ -662,6 +664,8 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
662 f->hs_descriptors, &hs_in_desc); 664 f->hs_descriptors, &hs_in_desc);
663 rndis->hs.out = usb_find_endpoint(eth_hs_function, 665 rndis->hs.out = usb_find_endpoint(eth_hs_function,
664 f->hs_descriptors, &hs_out_desc); 666 f->hs_descriptors, &hs_out_desc);
667 rndis->hs.notify = usb_find_endpoint(eth_hs_function,
668 f->hs_descriptors, &hs_notify_desc);
665 } 669 }
666 670
667 rndis->port.open = rndis_open; 671 rndis->port.open = rndis_open;
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index 1fe8b44787b3..b3408ff39fba 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -2363,6 +2363,9 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
2363 nuke(loop_ep, -ESHUTDOWN); 2363 nuke(loop_ep, -ESHUTDOWN);
2364 spin_unlock_irqrestore(&udc_controller->lock, flags); 2364 spin_unlock_irqrestore(&udc_controller->lock, flags);
2365 2365
2366 /* report disconnect; the controller is already quiesced */
2367 driver->disconnect(&udc_controller->gadget);
2368
2366 /* unbind gadget and unhook driver. */ 2369 /* unbind gadget and unhook driver. */
2367 driver->unbind(&udc_controller->gadget); 2370 driver->unbind(&udc_controller->gadget);
2368 udc_controller->gadget.dev.driver = NULL; 2371 udc_controller->gadget.dev.driver = NULL;
diff --git a/drivers/usb/gadget/fsl_usb2_udc.c b/drivers/usb/gadget/fsl_usb2_udc.c
index 091bb55c9aa7..f3c6703cffda 100644
--- a/drivers/usb/gadget/fsl_usb2_udc.c
+++ b/drivers/usb/gadget/fsl_usb2_udc.c
@@ -1836,6 +1836,9 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
1836 nuke(loop_ep, -ESHUTDOWN); 1836 nuke(loop_ep, -ESHUTDOWN);
1837 spin_unlock_irqrestore(&udc_controller->lock, flags); 1837 spin_unlock_irqrestore(&udc_controller->lock, flags);
1838 1838
1839 /* report disconnect; the controller is already quiesced */
1840 driver->disconnect(&udc_controller->gadget);
1841
1839 /* unbind gadget and unhook driver. */ 1842 /* unbind gadget and unhook driver. */
1840 driver->unbind(&udc_controller->gadget); 1843 driver->unbind(&udc_controller->gadget);
1841 udc_controller->gadget.dev.driver = NULL; 1844 udc_controller->gadget.dev.driver = NULL;
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index da6e93c201d2..2dbc0db0b46c 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -141,7 +141,11 @@ static int is_vbus_present(void)
141 141
142 if (mach->gpio_vbus) { 142 if (mach->gpio_vbus) {
143 int value = gpio_get_value(mach->gpio_vbus); 143 int value = gpio_get_value(mach->gpio_vbus);
144 return mach->gpio_vbus_inverted ? !value : value; 144
145 if (mach->gpio_vbus_inverted)
146 return !value;
147 else
148 return !!value;
145 } 149 }
146 if (mach->udc_is_connected) 150 if (mach->udc_is_connected)
147 return mach->udc_is_connected(); 151 return mach->udc_is_connected();
@@ -982,7 +986,7 @@ static int pxa25x_udc_vbus_session(struct usb_gadget *_gadget, int is_active)
982 struct pxa25x_udc *udc; 986 struct pxa25x_udc *udc;
983 987
984 udc = container_of(_gadget, struct pxa25x_udc, gadget); 988 udc = container_of(_gadget, struct pxa25x_udc, gadget);
985 udc->vbus = (is_active != 0); 989 udc->vbus = is_active;
986 DMSG("vbus %s\n", is_active ? "supplied" : "inactive"); 990 DMSG("vbus %s\n", is_active ? "supplied" : "inactive");
987 pullup(udc); 991 pullup(udc);
988 return 0; 992 return 0;
@@ -1399,12 +1403,8 @@ lubbock_vbus_irq(int irq, void *_dev)
1399static irqreturn_t udc_vbus_irq(int irq, void *_dev) 1403static irqreturn_t udc_vbus_irq(int irq, void *_dev)
1400{ 1404{
1401 struct pxa25x_udc *dev = _dev; 1405 struct pxa25x_udc *dev = _dev;
1402 int vbus = gpio_get_value(dev->mach->gpio_vbus);
1403 1406
1404 if (dev->mach->gpio_vbus_inverted) 1407 pxa25x_udc_vbus_session(&dev->gadget, is_vbus_present());
1405 vbus = !vbus;
1406
1407 pxa25x_udc_vbus_session(&dev->gadget, vbus);
1408 return IRQ_HANDLED; 1408 return IRQ_HANDLED;
1409} 1409}
1410 1410
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 9d0ea573aef6..36864f958444 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -169,18 +169,21 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
169 } 169 }
170 break; 170 break;
171 case PCI_VENDOR_ID_ATI: 171 case PCI_VENDOR_ID_ATI:
172 /* SB700 old version has a bug in EHCI controller, 172 /* SB600 and old version of SB700 have a bug in EHCI controller,
173 * which causes usb devices lose response in some cases. 173 * which causes usb devices lose response in some cases.
174 */ 174 */
175 if (pdev->device == 0x4396) { 175 if ((pdev->device == 0x4386) || (pdev->device == 0x4396)) {
176 p_smbus = pci_get_device(PCI_VENDOR_ID_ATI, 176 p_smbus = pci_get_device(PCI_VENDOR_ID_ATI,
177 PCI_DEVICE_ID_ATI_SBX00_SMBUS, 177 PCI_DEVICE_ID_ATI_SBX00_SMBUS,
178 NULL); 178 NULL);
179 if (!p_smbus) 179 if (!p_smbus)
180 break; 180 break;
181 rev = p_smbus->revision; 181 rev = p_smbus->revision;
182 if ((rev == 0x3a) || (rev == 0x3b)) { 182 if ((pdev->device == 0x4386) || (rev == 0x3a)
183 || (rev == 0x3b)) {
183 u8 tmp; 184 u8 tmp;
185 ehci_info(ehci, "applying AMD SB600/SB700 USB "
186 "freeze workaround\n");
184 pci_read_config_byte(pdev, 0x53, &tmp); 187 pci_read_config_byte(pdev, 0x53, &tmp);
185 pci_write_config_byte(pdev, 0x53, tmp | (1<<3)); 188 pci_write_config_byte(pdev, 0x53, tmp | (1<<3));
186 } 189 }
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index b11798d17ae5..c7d4b5a06bdb 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -183,16 +183,14 @@ timer_action (struct ehci_hcd *ehci, enum ehci_timer_action action)
183 * the async ring; just the I/O watchdog. Note that if a 183 * the async ring; just the I/O watchdog. Note that if a
184 * SHRINK were pending, OFF would never be requested. 184 * SHRINK were pending, OFF would never be requested.
185 */ 185 */
186 enum ehci_timer_action oldactions = ehci->actions; 186 if (timer_pending(&ehci->watchdog)
187 && ((BIT(TIMER_ASYNC_SHRINK) | BIT(TIMER_ASYNC_OFF))
188 & ehci->actions))
189 return;
187 190
188 if (!test_and_set_bit (action, &ehci->actions)) { 191 if (!test_and_set_bit (action, &ehci->actions)) {
189 unsigned long t; 192 unsigned long t;
190 193
191 if (timer_pending(&ehci->watchdog)
192 && ((BIT(TIMER_ASYNC_SHRINK) | BIT(TIMER_ASYNC_OFF))
193 & oldactions))
194 return;
195
196 switch (action) { 194 switch (action) {
197 case TIMER_IO_WATCHDOG: 195 case TIMER_IO_WATCHDOG:
198 t = EHCI_IO_JIFFIES; 196 t = EHCI_IO_JIFFIES;
@@ -208,7 +206,7 @@ timer_action (struct ehci_hcd *ehci, enum ehci_timer_action action)
208 t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1; 206 t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1;
209 break; 207 break;
210 } 208 }
211 mod_timer(&ehci->watchdog, round_jiffies(t + jiffies)); 209 mod_timer(&ehci->watchdog, t + jiffies);
212 } 210 }
213} 211}
214 212
diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
index 5b20de130e08..5b95009d2fbb 100644
--- a/drivers/usb/serial/console.c
+++ b/drivers/usb/serial/console.c
@@ -135,6 +135,7 @@ static int usb_console_setup(struct console *co, char *options)
135 err("no more memory"); 135 err("no more memory");
136 goto reset_open_count; 136 goto reset_open_count;
137 } 137 }
138 kref_init(&tty->kref);
138 termios = kzalloc(sizeof(*termios), GFP_KERNEL); 139 termios = kzalloc(sizeof(*termios), GFP_KERNEL);
139 if (!termios) { 140 if (!termios) {
140 retval = -ENOMEM; 141 retval = -ENOMEM;
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 51d7bdea2869..fb6f2933b01b 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -143,6 +143,7 @@ static struct ftdi_sio_quirk ftdi_HE_TIRA1_quirk = {
143static struct usb_device_id id_table_combined [] = { 143static struct usb_device_id id_table_combined [] = {
144 { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) }, 144 { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) },
145 { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) }, 145 { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) },
146 { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) },
146 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) }, 147 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) },
147 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_1_PID) }, 148 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_1_PID) },
148 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_2_PID) }, 149 { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_2_PID) },
@@ -166,6 +167,7 @@ static struct usb_device_id id_table_combined [] = {
166 { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) }, 167 { USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) },
167 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) }, 168 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) },
168 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) }, 169 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) },
170 { USB_DEVICE(FTDI_VID, FTDI_SPROG_II) },
169 { USB_DEVICE(FTDI_VID, FTDI_XF_632_PID) }, 171 { USB_DEVICE(FTDI_VID, FTDI_XF_632_PID) },
170 { USB_DEVICE(FTDI_VID, FTDI_XF_634_PID) }, 172 { USB_DEVICE(FTDI_VID, FTDI_XF_634_PID) },
171 { USB_DEVICE(FTDI_VID, FTDI_XF_547_PID) }, 173 { USB_DEVICE(FTDI_VID, FTDI_XF_547_PID) },
@@ -1498,7 +1500,7 @@ static int ftdi_open(struct tty_struct *tty,
1498 priv->interface, buf, 0, WDR_TIMEOUT); 1500 priv->interface, buf, 0, WDR_TIMEOUT);
1499 1501
1500 /* Termios defaults are set by usb_serial_init. We don't change 1502 /* Termios defaults are set by usb_serial_init. We don't change
1501 port->tty->termios - this would loose speed settings, etc. 1503 port->tty->termios - this would lose speed settings, etc.
1502 This is same behaviour as serial.c/rs_open() - Kuba */ 1504 This is same behaviour as serial.c/rs_open() - Kuba */
1503 1505
1504 /* ftdi_set_termios will send usb control messages */ 1506 /* ftdi_set_termios will send usb control messages */
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
index 07a3992abad2..373ee09975bb 100644
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -40,6 +40,9 @@
40/* AlphaMicro Components AMC-232USB01 device */ 40/* AlphaMicro Components AMC-232USB01 device */
41#define FTDI_AMC232_PID 0xFF00 /* Product Id */ 41#define FTDI_AMC232_PID 0xFF00 /* Product Id */
42 42
43/* www.candapter.com Ewert Energy Systems CANdapter device */
44#define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */
45
43/* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */ 46/* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */
44/* the VID is the standard ftdi vid (FTDI_VID) */ 47/* the VID is the standard ftdi vid (FTDI_VID) */
45#define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */ 48#define FTDI_SCS_DEVICE_0_PID 0xD010 /* SCS PTC-IIusb */
@@ -75,6 +78,9 @@
75/* OpenDCC (www.opendcc.de) product id */ 78/* OpenDCC (www.opendcc.de) product id */
76#define FTDI_OPENDCC_PID 0xBFD8 79#define FTDI_OPENDCC_PID 0xBFD8
77 80
81/* Sprog II (Andrew Crosland's SprogII DCC interface) */
82#define FTDI_SPROG_II 0xF0C8
83
78/* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */ 84/* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */
79/* they use the ftdi chipset for the USB interface and the vendor id is the same */ 85/* they use the ftdi chipset for the USB interface and the vendor id is the same */
80#define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ 86#define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 6fa1ec441b61..809697b3c7fc 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -224,6 +224,7 @@ static int option_send_setup(struct tty_struct *tty, struct usb_serial_port *po
224#define ONDA_VENDOR_ID 0x19d2 224#define ONDA_VENDOR_ID 0x19d2
225#define ONDA_PRODUCT_MSA501HS 0x0001 225#define ONDA_PRODUCT_MSA501HS 0x0001
226#define ONDA_PRODUCT_ET502HS 0x0002 226#define ONDA_PRODUCT_ET502HS 0x0002
227#define ONDA_PRODUCT_MT503HS 0x0200
227 228
228#define BANDRICH_VENDOR_ID 0x1A8D 229#define BANDRICH_VENDOR_ID 0x1A8D
229#define BANDRICH_PRODUCT_C100_1 0x1002 230#define BANDRICH_PRODUCT_C100_1 0x1002
@@ -413,6 +414,40 @@ static struct usb_device_id option_ids[] = {
413 { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) }, 414 { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
414 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) }, 415 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },
415 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) }, 416 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) },
417 { USB_DEVICE(ONDA_VENDOR_ID, 0x0003) },
418 { USB_DEVICE(ONDA_VENDOR_ID, 0x0004) },
419 { USB_DEVICE(ONDA_VENDOR_ID, 0x0005) },
420 { USB_DEVICE(ONDA_VENDOR_ID, 0x0006) },
421 { USB_DEVICE(ONDA_VENDOR_ID, 0x0007) },
422 { USB_DEVICE(ONDA_VENDOR_ID, 0x0008) },
423 { USB_DEVICE(ONDA_VENDOR_ID, 0x0009) },
424 { USB_DEVICE(ONDA_VENDOR_ID, 0x000a) },
425 { USB_DEVICE(ONDA_VENDOR_ID, 0x000b) },
426 { USB_DEVICE(ONDA_VENDOR_ID, 0x000c) },
427 { USB_DEVICE(ONDA_VENDOR_ID, 0x000d) },
428 { USB_DEVICE(ONDA_VENDOR_ID, 0x000e) },
429 { USB_DEVICE(ONDA_VENDOR_ID, 0x000f) },
430 { USB_DEVICE(ONDA_VENDOR_ID, 0x0010) },
431 { USB_DEVICE(ONDA_VENDOR_ID, 0x0011) },
432 { USB_DEVICE(ONDA_VENDOR_ID, 0x0012) },
433 { USB_DEVICE(ONDA_VENDOR_ID, 0x0013) },
434 { USB_DEVICE(ONDA_VENDOR_ID, 0x0014) },
435 { USB_DEVICE(ONDA_VENDOR_ID, 0x0015) },
436 { USB_DEVICE(ONDA_VENDOR_ID, 0x0016) },
437 { USB_DEVICE(ONDA_VENDOR_ID, 0x0017) },
438 { USB_DEVICE(ONDA_VENDOR_ID, 0x0018) },
439 { USB_DEVICE(ONDA_VENDOR_ID, 0x0019) },
440 { USB_DEVICE(ONDA_VENDOR_ID, 0x0020) },
441 { USB_DEVICE(ONDA_VENDOR_ID, 0x0021) },
442 { USB_DEVICE(ONDA_VENDOR_ID, 0x0022) },
443 { USB_DEVICE(ONDA_VENDOR_ID, 0x0023) },
444 { USB_DEVICE(ONDA_VENDOR_ID, 0x0024) },
445 { USB_DEVICE(ONDA_VENDOR_ID, 0x0025) },
446 { USB_DEVICE(ONDA_VENDOR_ID, 0x0026) },
447 { USB_DEVICE(ONDA_VENDOR_ID, 0x0027) },
448 { USB_DEVICE(ONDA_VENDOR_ID, 0x0028) },
449 { USB_DEVICE(ONDA_VENDOR_ID, 0x0029) },
450 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MT503HS) },
416 { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) }, 451 { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },
417 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) }, 452 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) },
418 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, 453 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) },
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 491c8857b644..1aed584be5eb 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -91,6 +91,8 @@ static struct usb_device_id id_table [] = {
91 { USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) }, 91 { USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) },
92 { USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) }, 92 { USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) },
93 { USB_DEVICE(YCCABLE_VENDOR_ID, YCCABLE_PRODUCT_ID) }, 93 { USB_DEVICE(YCCABLE_VENDOR_ID, YCCABLE_PRODUCT_ID) },
94 { USB_DEVICE(SUPERIAL_VENDOR_ID, SUPERIAL_PRODUCT_ID) },
95 { USB_DEVICE(HP_VENDOR_ID, HP_LD220_PRODUCT_ID) },
94 { } /* Terminating entry */ 96 { } /* Terminating entry */
95}; 97};
96 98
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index a3bd039c78e9..54974f446a8c 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -110,3 +110,11 @@
110/* Y.C. Cable U.S.A., Inc - USB to RS-232 */ 110/* Y.C. Cable U.S.A., Inc - USB to RS-232 */
111#define YCCABLE_VENDOR_ID 0x05ad 111#define YCCABLE_VENDOR_ID 0x05ad
112#define YCCABLE_PRODUCT_ID 0x0fba 112#define YCCABLE_PRODUCT_ID 0x0fba
113
114/* "Superial" USB - Serial */
115#define SUPERIAL_VENDOR_ID 0x5372
116#define SUPERIAL_PRODUCT_ID 0x2303
117
118/* Hewlett-Packard LD220-HP POS Pole Display */
119#define HP_VENDOR_ID 0x03f0
120#define HP_LD220_PRODUCT_ID 0x3524
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index 31c42d1cae13..01d0c70d60e9 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -16,56 +16,6 @@
16 * For questions or problems with this driver, contact Texas Instruments 16 * For questions or problems with this driver, contact Texas Instruments
17 * technical support, or Al Borchers <alborchers@steinerpoint.com>, or 17 * technical support, or Al Borchers <alborchers@steinerpoint.com>, or
18 * Peter Berger <pberger@brimson.com>. 18 * Peter Berger <pberger@brimson.com>.
19 *
20 * This driver needs this hotplug script in /etc/hotplug/usb/ti_usb_3410_5052
21 * or in /etc/hotplug.d/usb/ti_usb_3410_5052.hotplug to set the device
22 * configuration.
23 *
24 * #!/bin/bash
25 *
26 * BOOT_CONFIG=1
27 * ACTIVE_CONFIG=2
28 *
29 * if [[ "$ACTION" != "add" ]]
30 * then
31 * exit
32 * fi
33 *
34 * CONFIG_PATH=/sys${DEVPATH%/?*}/bConfigurationValue
35 *
36 * if [[ 0`cat $CONFIG_PATH` -ne $BOOT_CONFIG ]]
37 * then
38 * exit
39 * fi
40 *
41 * PRODUCT=${PRODUCT%/?*} # delete version
42 * VENDOR_ID=`printf "%d" 0x${PRODUCT%/?*}`
43 * PRODUCT_ID=`printf "%d" 0x${PRODUCT#*?/}`
44 *
45 * PARAM_PATH=/sys/module/ti_usb_3410_5052/parameters
46 *
47 * function scan() {
48 * s=$1
49 * shift
50 * for i
51 * do
52 * if [[ $s -eq $i ]]
53 * then
54 * return 0
55 * fi
56 * done
57 * return 1
58 * }
59 *
60 * IFS=$IFS,
61 *
62 * if (scan $VENDOR_ID 1105 `cat $PARAM_PATH/vendor_3410` &&
63 * scan $PRODUCT_ID 13328 `cat $PARAM_PATH/product_3410`) ||
64 * (scan $VENDOR_ID 1105 `cat $PARAM_PATH/vendor_5052` &&
65 * scan $PRODUCT_ID 20562 20818 20570 20575 `cat $PARAM_PATH/product_5052`)
66 * then
67 * echo $ACTIVE_CONFIG > $CONFIG_PATH
68 * fi
69 */ 19 */
70 20
71#include <linux/kernel.h> 21#include <linux/kernel.h>
@@ -457,9 +407,10 @@ static int ti_startup(struct usb_serial *serial)
457 goto free_tdev; 407 goto free_tdev;
458 } 408 }
459 409
460 /* the second configuration must be set (in sysfs by hotplug script) */ 410 /* the second configuration must be set */
461 if (dev->actconfig->desc.bConfigurationValue == TI_BOOT_CONFIG) { 411 if (dev->actconfig->desc.bConfigurationValue == TI_BOOT_CONFIG) {
462 status = -ENODEV; 412 status = usb_driver_set_configuration(dev, TI_ACTIVE_CONFIG);
413 status = status ? status : -ENODEV;
463 goto free_tdev; 414 goto free_tdev;
464 } 415 }
465 416
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index 6da9a7a962a8..bfcc1fe82518 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -167,8 +167,22 @@ UNUSUAL_DEV( 0x0421, 0x005d, 0x0001, 0x0600,
167 US_SC_DEVICE, US_PR_DEVICE, NULL, 167 US_SC_DEVICE, US_PR_DEVICE, NULL,
168 US_FL_FIX_CAPACITY ), 168 US_FL_FIX_CAPACITY ),
169 169
170/* Reported by Ozan Sener <themgzzy@gmail.com> */
171UNUSUAL_DEV( 0x0421, 0x0060, 0x0551, 0x0551,
172 "Nokia",
173 "3500c",
174 US_SC_DEVICE, US_PR_DEVICE, NULL,
175 US_FL_FIX_CAPACITY ),
176
177/* Reported by CSECSY Laszlo <boobaa@frugalware.org> */
178UNUSUAL_DEV( 0x0421, 0x0063, 0x0001, 0x0601,
179 "Nokia",
180 "Nokia 3109c",
181 US_SC_DEVICE, US_PR_DEVICE, NULL,
182 US_FL_FIX_CAPACITY ),
183
170/* Patch for Nokia 5310 capacity */ 184/* Patch for Nokia 5310 capacity */
171UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591, 185UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0701,
172 "Nokia", 186 "Nokia",
173 "5310", 187 "5310",
174 US_SC_DEVICE, US_PR_DEVICE, NULL, 188 US_SC_DEVICE, US_PR_DEVICE, NULL,
@@ -318,6 +332,18 @@ UNUSUAL_DEV( 0x045a, 0x5210, 0x0101, 0x0101,
318 US_SC_SCSI, US_PR_KARMA, rio_karma_init, 0), 332 US_SC_SCSI, US_PR_KARMA, rio_karma_init, 0),
319#endif 333#endif
320 334
335/* Reported by Tamas Kerecsen <kerecsen@bigfoot.com>
336 * Obviously the PROM has not been customized by the VAR;
337 * the Vendor and Product string descriptors are:
338 * Generic Mass Storage (PROTOTYPE--Remember to change idVendor)
339 * Generic Manufacturer (PROTOTYPE--Remember to change idVendor)
340 */
341UNUSUAL_DEV( 0x045e, 0xffff, 0x0000, 0x0000,
342 "Mitac",
343 "GPS",
344 US_SC_DEVICE, US_PR_DEVICE, NULL,
345 US_FL_MAX_SECTORS_64 ),
346
321/* 347/*
322 * This virtual floppy is found in Sun equipment (x4600, x4200m2, etc.) 348 * This virtual floppy is found in Sun equipment (x4600, x4200m2, etc.)
323 * Reported by Pete Zaitcev <zaitcev@redhat.com> 349 * Reported by Pete Zaitcev <zaitcev@redhat.com>
@@ -377,6 +403,13 @@ UNUSUAL_DEV( 0x04b0, 0x0401, 0x0200, 0x0200,
377 US_SC_DEVICE, US_PR_DEVICE, NULL, 403 US_SC_DEVICE, US_PR_DEVICE, NULL,
378 US_FL_FIX_CAPACITY), 404 US_FL_FIX_CAPACITY),
379 405
406/* Reported by Tobias Kunze Briseno <t-linux@fictive.com> */
407UNUSUAL_DEV( 0x04b0, 0x0403, 0x0200, 0x0200,
408 "NIKON",
409 "NIKON DSC D2H",
410 US_SC_DEVICE, US_PR_DEVICE, NULL,
411 US_FL_FIX_CAPACITY),
412
380/* Reported by Milinevsky Dmitry <niam.niam@gmail.com> */ 413/* Reported by Milinevsky Dmitry <niam.niam@gmail.com> */
381UNUSUAL_DEV( 0x04b0, 0x0409, 0x0100, 0x0100, 414UNUSUAL_DEV( 0x04b0, 0x0409, 0x0100, 0x0100,
382 "NIKON", 415 "NIKON",
diff --git a/drivers/video/aty/radeon_accel.c b/drivers/video/aty/radeon_accel.c
index 8718f7349d6b..a469a3d6edcb 100644
--- a/drivers/video/aty/radeon_accel.c
+++ b/drivers/video/aty/radeon_accel.c
@@ -5,61 +5,61 @@
5 * --dte 5 * --dte
6 */ 6 */
7 7
8#define FLUSH_CACHE_WORKAROUND 1 8static void radeon_fixup_offset(struct radeonfb_info *rinfo)
9
10void radeon_fifo_update_and_wait(struct radeonfb_info *rinfo, int entries)
11{ 9{
12 int i; 10 u32 local_base;
11
12 /* *** Ugly workaround *** */
13 /*
14 * On some platforms, the video memory is mapped at 0 in radeon chip space
15 * (like PPCs) by the firmware. X will always move it up so that it's seen
16 * by the chip to be at the same address as the PCI BAR.
17 * That means that when switching back from X, there is a mismatch between
18 * the offsets programmed into the engine. This means that potentially,
19 * accel operations done before radeonfb has a chance to re-init the engine
20 * will have incorrect offsets, and potentially trash system memory !
21 *
22 * The correct fix is for fbcon to never call any accel op before the engine
23 * has properly been re-initialized (by a call to set_var), but this is a
24 * complex fix. This workaround in the meantime, called before every accel
25 * operation, makes sure the offsets are in sync.
26 */
13 27
14 for (i=0; i<2000000; i++) { 28 radeon_fifo_wait (1);
15 rinfo->fifo_free = INREG(RBBM_STATUS) & 0x7f; 29 local_base = INREG(MC_FB_LOCATION) << 16;
16 if (rinfo->fifo_free >= entries) 30 if (local_base == rinfo->fb_local_base)
17 return; 31 return;
18 udelay(10);
19 }
20 printk(KERN_ERR "radeonfb: FIFO Timeout !\n");
21 /* XXX Todo: attempt to reset the engine */
22}
23 32
24static inline void radeon_fifo_wait(struct radeonfb_info *rinfo, int entries) 33 rinfo->fb_local_base = local_base;
25{
26 if (entries <= rinfo->fifo_free)
27 rinfo->fifo_free -= entries;
28 else
29 radeon_fifo_update_and_wait(rinfo, entries);
30}
31 34
32static inline void radeonfb_set_creg(struct radeonfb_info *rinfo, u32 reg, 35 radeon_fifo_wait (3);
33 u32 *cache, u32 new_val) 36 OUTREG(DEFAULT_PITCH_OFFSET, (rinfo->pitch << 0x16) |
34{ 37 (rinfo->fb_local_base >> 10));
35 if (new_val == *cache) 38 OUTREG(DST_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10));
36 return; 39 OUTREG(SRC_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10));
37 *cache = new_val;
38 radeon_fifo_wait(rinfo, 1);
39 OUTREG(reg, new_val);
40} 40}
41 41
42static void radeonfb_prim_fillrect(struct radeonfb_info *rinfo, 42static void radeonfb_prim_fillrect(struct radeonfb_info *rinfo,
43 const struct fb_fillrect *region) 43 const struct fb_fillrect *region)
44{ 44{
45 radeonfb_set_creg(rinfo, DP_GUI_MASTER_CNTL, &rinfo->dp_gui_mc_cache, 45 radeon_fifo_wait(4);
46 rinfo->dp_gui_mc_base | GMC_BRUSH_SOLID_COLOR | ROP3_P); 46
47 radeonfb_set_creg(rinfo, DP_CNTL, &rinfo->dp_cntl_cache, 47 OUTREG(DP_GUI_MASTER_CNTL,
48 DST_X_LEFT_TO_RIGHT | DST_Y_TOP_TO_BOTTOM); 48 rinfo->dp_gui_master_cntl /* contains, like GMC_DST_32BPP */
49 radeonfb_set_creg(rinfo, DP_BRUSH_FRGD_CLR, &rinfo->dp_brush_fg_cache, 49 | GMC_BRUSH_SOLID_COLOR
50 region->color); 50 | ROP3_P);
51 51 if (radeon_get_dstbpp(rinfo->depth) != DST_8BPP)
52 /* Ensure the dst cache is flushed and the engine idle before 52 OUTREG(DP_BRUSH_FRGD_CLR, rinfo->pseudo_palette[region->color]);
53 * issuing the operation. 53 else
54 * 54 OUTREG(DP_BRUSH_FRGD_CLR, region->color);
55 * This works around engine lockups on some cards 55 OUTREG(DP_WRITE_MSK, 0xffffffff);
56 */ 56 OUTREG(DP_CNTL, (DST_X_LEFT_TO_RIGHT | DST_Y_TOP_TO_BOTTOM));
57#if FLUSH_CACHE_WORKAROUND 57
58 radeon_fifo_wait(rinfo, 2); 58 radeon_fifo_wait(2);
59 OUTREG(DSTCACHE_CTLSTAT, RB2D_DC_FLUSH_ALL); 59 OUTREG(DSTCACHE_CTLSTAT, RB2D_DC_FLUSH_ALL);
60 OUTREG(WAIT_UNTIL, (WAIT_2D_IDLECLEAN | WAIT_DMA_GUI_IDLE)); 60 OUTREG(WAIT_UNTIL, (WAIT_2D_IDLECLEAN | WAIT_DMA_GUI_IDLE));
61#endif 61
62 radeon_fifo_wait(rinfo, 2); 62 radeon_fifo_wait(2);
63 OUTREG(DST_Y_X, (region->dy << 16) | region->dx); 63 OUTREG(DST_Y_X, (region->dy << 16) | region->dx);
64 OUTREG(DST_WIDTH_HEIGHT, (region->width << 16) | region->height); 64 OUTREG(DST_WIDTH_HEIGHT, (region->width << 16) | region->height);
65} 65}
@@ -70,14 +70,15 @@ void radeonfb_fillrect(struct fb_info *info, const struct fb_fillrect *region)
70 struct fb_fillrect modded; 70 struct fb_fillrect modded;
71 int vxres, vyres; 71 int vxres, vyres;
72 72
73 WARN_ON(rinfo->gfx_mode); 73 if (info->state != FBINFO_STATE_RUNNING)
74 if (info->state != FBINFO_STATE_RUNNING || rinfo->gfx_mode)
75 return; 74 return;
76 if (info->flags & FBINFO_HWACCEL_DISABLED) { 75 if (info->flags & FBINFO_HWACCEL_DISABLED) {
77 cfb_fillrect(info, region); 76 cfb_fillrect(info, region);
78 return; 77 return;
79 } 78 }
80 79
80 radeon_fixup_offset(rinfo);
81
81 vxres = info->var.xres_virtual; 82 vxres = info->var.xres_virtual;
82 vyres = info->var.yres_virtual; 83 vyres = info->var.yres_virtual;
83 84
@@ -90,10 +91,6 @@ void radeonfb_fillrect(struct fb_info *info, const struct fb_fillrect *region)
90 if(modded.dx + modded.width > vxres) modded.width = vxres - modded.dx; 91 if(modded.dx + modded.width > vxres) modded.width = vxres - modded.dx;
91 if(modded.dy + modded.height > vyres) modded.height = vyres - modded.dy; 92 if(modded.dy + modded.height > vyres) modded.height = vyres - modded.dy;
92 93
93 if (info->fix.visual == FB_VISUAL_TRUECOLOR ||
94 info->fix.visual == FB_VISUAL_DIRECTCOLOR )
95 modded.color = ((u32 *) (info->pseudo_palette))[region->color];
96
97 radeonfb_prim_fillrect(rinfo, &modded); 94 radeonfb_prim_fillrect(rinfo, &modded);
98} 95}
99 96
@@ -112,22 +109,22 @@ static void radeonfb_prim_copyarea(struct radeonfb_info *rinfo,
112 if ( xdir < 0 ) { sx += w-1; dx += w-1; } 109 if ( xdir < 0 ) { sx += w-1; dx += w-1; }
113 if ( ydir < 0 ) { sy += h-1; dy += h-1; } 110 if ( ydir < 0 ) { sy += h-1; dy += h-1; }
114 111
115 radeonfb_set_creg(rinfo, DP_GUI_MASTER_CNTL, &rinfo->dp_gui_mc_cache, 112 radeon_fifo_wait(3);
116 rinfo->dp_gui_mc_base | 113 OUTREG(DP_GUI_MASTER_CNTL,
117 GMC_BRUSH_NONE | 114 rinfo->dp_gui_master_cntl /* i.e. GMC_DST_32BPP */
118 GMC_SRC_DATATYPE_COLOR | 115 | GMC_BRUSH_NONE
119 ROP3_S | 116 | GMC_SRC_DSTCOLOR
120 DP_SRC_SOURCE_MEMORY); 117 | ROP3_S
121 radeonfb_set_creg(rinfo, DP_CNTL, &rinfo->dp_cntl_cache, 118 | DP_SRC_SOURCE_MEMORY );
122 (xdir>=0 ? DST_X_LEFT_TO_RIGHT : 0) | 119 OUTREG(DP_WRITE_MSK, 0xffffffff);
123 (ydir>=0 ? DST_Y_TOP_TO_BOTTOM : 0)); 120 OUTREG(DP_CNTL, (xdir>=0 ? DST_X_LEFT_TO_RIGHT : 0)
124 121 | (ydir>=0 ? DST_Y_TOP_TO_BOTTOM : 0));
125#if FLUSH_CACHE_WORKAROUND 122
126 radeon_fifo_wait(rinfo, 2); 123 radeon_fifo_wait(2);
127 OUTREG(DSTCACHE_CTLSTAT, RB2D_DC_FLUSH_ALL); 124 OUTREG(DSTCACHE_CTLSTAT, RB2D_DC_FLUSH_ALL);
128 OUTREG(WAIT_UNTIL, (WAIT_2D_IDLECLEAN | WAIT_DMA_GUI_IDLE)); 125 OUTREG(WAIT_UNTIL, (WAIT_2D_IDLECLEAN | WAIT_DMA_GUI_IDLE));
129#endif 126
130 radeon_fifo_wait(rinfo, 3); 127 radeon_fifo_wait(3);
131 OUTREG(SRC_Y_X, (sy << 16) | sx); 128 OUTREG(SRC_Y_X, (sy << 16) | sx);
132 OUTREG(DST_Y_X, (dy << 16) | dx); 129 OUTREG(DST_Y_X, (dy << 16) | dx);
133 OUTREG(DST_HEIGHT_WIDTH, (h << 16) | w); 130 OUTREG(DST_HEIGHT_WIDTH, (h << 16) | w);
@@ -146,14 +143,15 @@ void radeonfb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
146 modded.width = area->width; 143 modded.width = area->width;
147 modded.height = area->height; 144 modded.height = area->height;
148 145
149 WARN_ON(rinfo->gfx_mode); 146 if (info->state != FBINFO_STATE_RUNNING)
150 if (info->state != FBINFO_STATE_RUNNING || rinfo->gfx_mode)
151 return; 147 return;
152 if (info->flags & FBINFO_HWACCEL_DISABLED) { 148 if (info->flags & FBINFO_HWACCEL_DISABLED) {
153 cfb_copyarea(info, area); 149 cfb_copyarea(info, area);
154 return; 150 return;
155 } 151 }
156 152
153 radeon_fixup_offset(rinfo);
154
157 vxres = info->var.xres_virtual; 155 vxres = info->var.xres_virtual;
158 vyres = info->var.yres_virtual; 156 vyres = info->var.yres_virtual;
159 157
@@ -170,112 +168,13 @@ void radeonfb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
170 radeonfb_prim_copyarea(rinfo, &modded); 168 radeonfb_prim_copyarea(rinfo, &modded);
171} 169}
172 170
173static void radeonfb_prim_imageblit(struct radeonfb_info *rinfo,
174 const struct fb_image *image,
175 u32 fg, u32 bg)
176{
177 unsigned int src_bytes, dwords;
178 u32 *bits;
179
180 radeonfb_set_creg(rinfo, DP_GUI_MASTER_CNTL, &rinfo->dp_gui_mc_cache,
181 rinfo->dp_gui_mc_base |
182 GMC_BRUSH_NONE |
183 GMC_SRC_DATATYPE_MONO_FG_BG |
184 ROP3_S |
185 GMC_BYTE_ORDER_MSB_TO_LSB |
186 DP_SRC_SOURCE_HOST_DATA);
187 radeonfb_set_creg(rinfo, DP_CNTL, &rinfo->dp_cntl_cache,
188 DST_X_LEFT_TO_RIGHT | DST_Y_TOP_TO_BOTTOM);
189 radeonfb_set_creg(rinfo, DP_SRC_FRGD_CLR, &rinfo->dp_src_fg_cache, fg);
190 radeonfb_set_creg(rinfo, DP_SRC_BKGD_CLR, &rinfo->dp_src_bg_cache, bg);
191
192 radeon_fifo_wait(rinfo, 1);
193 OUTREG(DST_Y_X, (image->dy << 16) | image->dx);
194
195 /* Ensure the dst cache is flushed and the engine idle before
196 * issuing the operation.
197 *
198 * This works around engine lockups on some cards
199 */
200#if FLUSH_CACHE_WORKAROUND
201 radeon_fifo_wait(rinfo, 2);
202 OUTREG(DSTCACHE_CTLSTAT, RB2D_DC_FLUSH_ALL);
203 OUTREG(WAIT_UNTIL, (WAIT_2D_IDLECLEAN | WAIT_DMA_GUI_IDLE));
204#endif
205
206 /* X here pads width to a multiple of 32 and uses the clipper to
207 * adjust the result. Is that really necessary ? Things seem to
208 * work ok for me without that and the doco doesn't seem to imply
209 * there is such a restriction.
210 */
211 OUTREG(DST_WIDTH_HEIGHT, (image->width << 16) | image->height);
212
213 src_bytes = (((image->width * image->depth) + 7) / 8) * image->height;
214 dwords = (src_bytes + 3) / 4;
215 bits = (u32*)(image->data);
216
217 while(dwords >= 8) {
218 radeon_fifo_wait(rinfo, 8);
219#if BITS_PER_LONG == 64
220 __raw_writeq(*((u64 *)(bits)), rinfo->mmio_base + HOST_DATA0);
221 __raw_writeq(*((u64 *)(bits+2)), rinfo->mmio_base + HOST_DATA2);
222 __raw_writeq(*((u64 *)(bits+4)), rinfo->mmio_base + HOST_DATA4);
223 __raw_writeq(*((u64 *)(bits+6)), rinfo->mmio_base + HOST_DATA6);
224 bits += 8;
225#else
226 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA0);
227 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA1);
228 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA2);
229 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA3);
230 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA4);
231 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA5);
232 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA6);
233 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA7);
234#endif
235 dwords -= 8;
236 }
237 while(dwords--) {
238 radeon_fifo_wait(rinfo, 1);
239 __raw_writel(*(bits++), rinfo->mmio_base + HOST_DATA0);
240 }
241}
242
243void radeonfb_imageblit(struct fb_info *info, const struct fb_image *image) 171void radeonfb_imageblit(struct fb_info *info, const struct fb_image *image)
244{ 172{
245 struct radeonfb_info *rinfo = info->par; 173 struct radeonfb_info *rinfo = info->par;
246 u32 fg, bg;
247
248 WARN_ON(rinfo->gfx_mode);
249 if (info->state != FBINFO_STATE_RUNNING || rinfo->gfx_mode)
250 return;
251 174
252 if (!image->width || !image->height) 175 if (info->state != FBINFO_STATE_RUNNING)
253 return; 176 return;
254 177 radeon_engine_idle();
255 /* We only do 1 bpp color expansion for now */
256 if (info->flags & FBINFO_HWACCEL_DISABLED || image->depth != 1)
257 goto fallback;
258
259 /* Fallback if running out of the screen. We may do clipping
260 * in the future */
261 if ((image->dx + image->width) > info->var.xres_virtual ||
262 (image->dy + image->height) > info->var.yres_virtual)
263 goto fallback;
264
265 if (info->fix.visual == FB_VISUAL_TRUECOLOR ||
266 info->fix.visual == FB_VISUAL_DIRECTCOLOR) {
267 fg = ((u32*)(info->pseudo_palette))[image->fg_color];
268 bg = ((u32*)(info->pseudo_palette))[image->bg_color];
269 } else {
270 fg = image->fg_color;
271 bg = image->bg_color;
272 }
273
274 radeonfb_prim_imageblit(rinfo, image, fg, bg);
275 return;
276
277 fallback:
278 radeon_engine_idle(rinfo);
279 178
280 cfb_imageblit(info, image); 179 cfb_imageblit(info, image);
281} 180}
@@ -286,8 +185,7 @@ int radeonfb_sync(struct fb_info *info)
286 185
287 if (info->state != FBINFO_STATE_RUNNING) 186 if (info->state != FBINFO_STATE_RUNNING)
288 return 0; 187 return 0;
289 188 radeon_engine_idle();
290 radeon_engine_idle(rinfo);
291 189
292 return 0; 190 return 0;
293} 191}
@@ -363,10 +261,9 @@ void radeonfb_engine_init (struct radeonfb_info *rinfo)
363 /* disable 3D engine */ 261 /* disable 3D engine */
364 OUTREG(RB3D_CNTL, 0); 262 OUTREG(RB3D_CNTL, 0);
365 263
366 rinfo->fifo_free = 0;
367 radeonfb_engine_reset(rinfo); 264 radeonfb_engine_reset(rinfo);
368 265
369 radeon_fifo_wait(rinfo, 1); 266 radeon_fifo_wait (1);
370 if (IS_R300_VARIANT(rinfo)) { 267 if (IS_R300_VARIANT(rinfo)) {
371 OUTREG(RB2D_DSTCACHE_MODE, INREG(RB2D_DSTCACHE_MODE) | 268 OUTREG(RB2D_DSTCACHE_MODE, INREG(RB2D_DSTCACHE_MODE) |
372 RB2D_DC_AUTOFLUSH_ENABLE | 269 RB2D_DC_AUTOFLUSH_ENABLE |
@@ -380,7 +277,7 @@ void radeonfb_engine_init (struct radeonfb_info *rinfo)
380 OUTREG(RB2D_DSTCACHE_MODE, 0); 277 OUTREG(RB2D_DSTCACHE_MODE, 0);
381 } 278 }
382 279
383 radeon_fifo_wait(rinfo, 3); 280 radeon_fifo_wait (3);
384 /* We re-read MC_FB_LOCATION from card as it can have been 281 /* We re-read MC_FB_LOCATION from card as it can have been
385 * modified by XFree drivers (ouch !) 282 * modified by XFree drivers (ouch !)
386 */ 283 */
@@ -391,57 +288,41 @@ void radeonfb_engine_init (struct radeonfb_info *rinfo)
391 OUTREG(DST_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10)); 288 OUTREG(DST_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10));
392 OUTREG(SRC_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10)); 289 OUTREG(SRC_PITCH_OFFSET, (rinfo->pitch << 0x16) | (rinfo->fb_local_base >> 10));
393 290
394 radeon_fifo_wait(rinfo, 1); 291 radeon_fifo_wait (1);
395#ifdef __BIG_ENDIAN 292#if defined(__BIG_ENDIAN)
396 OUTREGP(DP_DATATYPE, HOST_BIG_ENDIAN_EN, ~HOST_BIG_ENDIAN_EN); 293 OUTREGP(DP_DATATYPE, HOST_BIG_ENDIAN_EN, ~HOST_BIG_ENDIAN_EN);
397#else 294#else
398 OUTREGP(DP_DATATYPE, 0, ~HOST_BIG_ENDIAN_EN); 295 OUTREGP(DP_DATATYPE, 0, ~HOST_BIG_ENDIAN_EN);
399#endif 296#endif
400 radeon_fifo_wait(rinfo, 2); 297 radeon_fifo_wait (2);
401 OUTREG(DEFAULT_SC_TOP_LEFT, 0); 298 OUTREG(DEFAULT_SC_TOP_LEFT, 0);
402 OUTREG(DEFAULT_SC_BOTTOM_RIGHT, (DEFAULT_SC_RIGHT_MAX | 299 OUTREG(DEFAULT_SC_BOTTOM_RIGHT, (DEFAULT_SC_RIGHT_MAX |
403 DEFAULT_SC_BOTTOM_MAX)); 300 DEFAULT_SC_BOTTOM_MAX));
404 301
405 /* set default DP_GUI_MASTER_CNTL */
406 temp = radeon_get_dstbpp(rinfo->depth); 302 temp = radeon_get_dstbpp(rinfo->depth);
407 rinfo->dp_gui_mc_base = ((temp << 8) | GMC_CLR_CMP_CNTL_DIS); 303 rinfo->dp_gui_master_cntl = ((temp << 8) | GMC_CLR_CMP_CNTL_DIS);
408 304
409 rinfo->dp_gui_mc_cache = rinfo->dp_gui_mc_base | 305 radeon_fifo_wait (1);
410 GMC_BRUSH_SOLID_COLOR | 306 OUTREG(DP_GUI_MASTER_CNTL, (rinfo->dp_gui_master_cntl |
411 GMC_SRC_DATATYPE_COLOR; 307 GMC_BRUSH_SOLID_COLOR |
412 radeon_fifo_wait(rinfo, 1); 308 GMC_SRC_DATATYPE_COLOR));
413 OUTREG(DP_GUI_MASTER_CNTL, rinfo->dp_gui_mc_cache);
414 309
310 radeon_fifo_wait (7);
415 311
416 /* clear line drawing regs */ 312 /* clear line drawing regs */
417 radeon_fifo_wait(rinfo, 2);
418 OUTREG(DST_LINE_START, 0); 313 OUTREG(DST_LINE_START, 0);
419 OUTREG(DST_LINE_END, 0); 314 OUTREG(DST_LINE_END, 0);
420 315
421 /* set brush and source color regs */ 316 /* set brush color regs */
422 rinfo->dp_brush_fg_cache = 0xffffffff; 317 OUTREG(DP_BRUSH_FRGD_CLR, 0xffffffff);
423 rinfo->dp_brush_bg_cache = 0x00000000; 318 OUTREG(DP_BRUSH_BKGD_CLR, 0x00000000);
424 rinfo->dp_src_fg_cache = 0xffffffff; 319
425 rinfo->dp_src_bg_cache = 0x00000000; 320 /* set source color regs */
426 radeon_fifo_wait(rinfo, 4); 321 OUTREG(DP_SRC_FRGD_CLR, 0xffffffff);
427 OUTREG(DP_BRUSH_FRGD_CLR, rinfo->dp_brush_fg_cache); 322 OUTREG(DP_SRC_BKGD_CLR, 0x00000000);
428 OUTREG(DP_BRUSH_BKGD_CLR, rinfo->dp_brush_bg_cache);
429 OUTREG(DP_SRC_FRGD_CLR, rinfo->dp_src_fg_cache);
430 OUTREG(DP_SRC_BKGD_CLR, rinfo->dp_src_bg_cache);
431
432 /* Default direction */
433 rinfo->dp_cntl_cache = DST_X_LEFT_TO_RIGHT | DST_Y_TOP_TO_BOTTOM;
434 radeon_fifo_wait(rinfo, 1);
435 OUTREG(DP_CNTL, rinfo->dp_cntl_cache);
436 323
437 /* default write mask */ 324 /* default write mask */
438 radeon_fifo_wait(rinfo, 1);
439 OUTREG(DP_WRITE_MSK, 0xffffffff); 325 OUTREG(DP_WRITE_MSK, 0xffffffff);
440 326
441 /* Default to no swapping of host data */ 327 radeon_engine_idle ();
442 radeon_fifo_wait(rinfo, 1);
443 OUTREG(RBBM_GUICNTL, RBBM_GUICNTL_HOST_DATA_SWAP_NONE);
444
445 /* Make sure it's settled */
446 radeon_engine_idle(rinfo);
447} 328}
diff --git a/drivers/video/aty/radeon_backlight.c b/drivers/video/aty/radeon_backlight.c
index f343ba83f0ae..1a056adb61c8 100644
--- a/drivers/video/aty/radeon_backlight.c
+++ b/drivers/video/aty/radeon_backlight.c
@@ -66,7 +66,7 @@ static int radeon_bl_update_status(struct backlight_device *bd)
66 level = bd->props.brightness; 66 level = bd->props.brightness;
67 67
68 del_timer_sync(&rinfo->lvds_timer); 68 del_timer_sync(&rinfo->lvds_timer);
69 radeon_engine_idle(rinfo); 69 radeon_engine_idle();
70 70
71 lvds_gen_cntl = INREG(LVDS_GEN_CNTL); 71 lvds_gen_cntl = INREG(LVDS_GEN_CNTL);
72 if (level > 0) { 72 if (level > 0) {
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c
index 9a5821c65ebf..d0f1a7fc2c9d 100644
--- a/drivers/video/aty/radeon_base.c
+++ b/drivers/video/aty/radeon_base.c
@@ -852,6 +852,7 @@ static int radeonfb_pan_display (struct fb_var_screeninfo *var,
852 if (rinfo->asleep) 852 if (rinfo->asleep)
853 return 0; 853 return 0;
854 854
855 radeon_fifo_wait(2);
855 OUTREG(CRTC_OFFSET, ((var->yoffset * var->xres_virtual + var->xoffset) 856 OUTREG(CRTC_OFFSET, ((var->yoffset * var->xres_virtual + var->xoffset)
856 * var->bits_per_pixel / 8) & ~7); 857 * var->bits_per_pixel / 8) & ~7);
857 return 0; 858 return 0;
@@ -881,6 +882,7 @@ static int radeonfb_ioctl (struct fb_info *info, unsigned int cmd,
881 if (rc) 882 if (rc)
882 return rc; 883 return rc;
883 884
885 radeon_fifo_wait(2);
884 if (value & 0x01) { 886 if (value & 0x01) {
885 tmp = INREG(LVDS_GEN_CNTL); 887 tmp = INREG(LVDS_GEN_CNTL);
886 888
@@ -938,7 +940,7 @@ int radeon_screen_blank(struct radeonfb_info *rinfo, int blank, int mode_switch)
938 if (rinfo->lock_blank) 940 if (rinfo->lock_blank)
939 return 0; 941 return 0;
940 942
941 radeon_engine_idle(rinfo); 943 radeon_engine_idle();
942 944
943 val = INREG(CRTC_EXT_CNTL); 945 val = INREG(CRTC_EXT_CNTL);
944 val &= ~(CRTC_DISPLAY_DIS | CRTC_HSYNC_DIS | 946 val &= ~(CRTC_DISPLAY_DIS | CRTC_HSYNC_DIS |
@@ -1046,7 +1048,7 @@ static int radeonfb_blank (int blank, struct fb_info *info)
1046 1048
1047 if (rinfo->asleep) 1049 if (rinfo->asleep)
1048 return 0; 1050 return 0;
1049 1051
1050 return radeon_screen_blank(rinfo, blank, 0); 1052 return radeon_screen_blank(rinfo, blank, 0);
1051} 1053}
1052 1054
@@ -1072,6 +1074,8 @@ static int radeon_setcolreg (unsigned regno, unsigned red, unsigned green,
1072 pindex = regno; 1074 pindex = regno;
1073 1075
1074 if (!rinfo->asleep) { 1076 if (!rinfo->asleep) {
1077 radeon_fifo_wait(9);
1078
1075 if (rinfo->bpp == 16) { 1079 if (rinfo->bpp == 16) {
1076 pindex = regno * 8; 1080 pindex = regno * 8;
1077 1081
@@ -1240,6 +1244,8 @@ static void radeon_write_pll_regs(struct radeonfb_info *rinfo, struct radeon_reg
1240{ 1244{
1241 int i; 1245 int i;
1242 1246
1247 radeon_fifo_wait(20);
1248
1243 /* Workaround from XFree */ 1249 /* Workaround from XFree */
1244 if (rinfo->is_mobility) { 1250 if (rinfo->is_mobility) {
1245 /* A temporal workaround for the occational blanking on certain laptop 1251 /* A temporal workaround for the occational blanking on certain laptop
@@ -1335,7 +1341,7 @@ static void radeon_lvds_timer_func(unsigned long data)
1335{ 1341{
1336 struct radeonfb_info *rinfo = (struct radeonfb_info *)data; 1342 struct radeonfb_info *rinfo = (struct radeonfb_info *)data;
1337 1343
1338 radeon_engine_idle(rinfo); 1344 radeon_engine_idle();
1339 1345
1340 OUTREG(LVDS_GEN_CNTL, rinfo->pending_lvds_gen_cntl); 1346 OUTREG(LVDS_GEN_CNTL, rinfo->pending_lvds_gen_cntl);
1341} 1347}
@@ -1353,11 +1359,10 @@ void radeon_write_mode (struct radeonfb_info *rinfo, struct radeon_regs *mode,
1353 if (nomodeset) 1359 if (nomodeset)
1354 return; 1360 return;
1355 1361
1356 radeon_engine_idle(rinfo);
1357
1358 if (!regs_only) 1362 if (!regs_only)
1359 radeon_screen_blank(rinfo, FB_BLANK_NORMAL, 0); 1363 radeon_screen_blank(rinfo, FB_BLANK_NORMAL, 0);
1360 1364
1365 radeon_fifo_wait(31);
1361 for (i=0; i<10; i++) 1366 for (i=0; i<10; i++)
1362 OUTREG(common_regs[i].reg, common_regs[i].val); 1367 OUTREG(common_regs[i].reg, common_regs[i].val);
1363 1368
@@ -1385,6 +1390,7 @@ void radeon_write_mode (struct radeonfb_info *rinfo, struct radeon_regs *mode,
1385 radeon_write_pll_regs(rinfo, mode); 1390 radeon_write_pll_regs(rinfo, mode);
1386 1391
1387 if ((primary_mon == MT_DFP) || (primary_mon == MT_LCD)) { 1392 if ((primary_mon == MT_DFP) || (primary_mon == MT_LCD)) {
1393 radeon_fifo_wait(10);
1388 OUTREG(FP_CRTC_H_TOTAL_DISP, mode->fp_crtc_h_total_disp); 1394 OUTREG(FP_CRTC_H_TOTAL_DISP, mode->fp_crtc_h_total_disp);
1389 OUTREG(FP_CRTC_V_TOTAL_DISP, mode->fp_crtc_v_total_disp); 1395 OUTREG(FP_CRTC_V_TOTAL_DISP, mode->fp_crtc_v_total_disp);
1390 OUTREG(FP_H_SYNC_STRT_WID, mode->fp_h_sync_strt_wid); 1396 OUTREG(FP_H_SYNC_STRT_WID, mode->fp_h_sync_strt_wid);
@@ -1399,6 +1405,7 @@ void radeon_write_mode (struct radeonfb_info *rinfo, struct radeon_regs *mode,
1399 if (!regs_only) 1405 if (!regs_only)
1400 radeon_screen_blank(rinfo, FB_BLANK_UNBLANK, 0); 1406 radeon_screen_blank(rinfo, FB_BLANK_UNBLANK, 0);
1401 1407
1408 radeon_fifo_wait(2);
1402 OUTPLL(VCLK_ECP_CNTL, mode->vclk_ecp_cntl); 1409 OUTPLL(VCLK_ECP_CNTL, mode->vclk_ecp_cntl);
1403 1410
1404 return; 1411 return;
@@ -1549,7 +1556,7 @@ static int radeonfb_set_par(struct fb_info *info)
1549 /* We always want engine to be idle on a mode switch, even 1556 /* We always want engine to be idle on a mode switch, even
1550 * if we won't actually change the mode 1557 * if we won't actually change the mode
1551 */ 1558 */
1552 radeon_engine_idle(rinfo); 1559 radeon_engine_idle();
1553 1560
1554 hSyncStart = mode->xres + mode->right_margin; 1561 hSyncStart = mode->xres + mode->right_margin;
1555 hSyncEnd = hSyncStart + mode->hsync_len; 1562 hSyncEnd = hSyncStart + mode->hsync_len;
@@ -1844,6 +1851,7 @@ static int radeonfb_set_par(struct fb_info *info)
1844 return 0; 1851 return 0;
1845} 1852}
1846 1853
1854
1847static struct fb_ops radeonfb_ops = { 1855static struct fb_ops radeonfb_ops = {
1848 .owner = THIS_MODULE, 1856 .owner = THIS_MODULE,
1849 .fb_check_var = radeonfb_check_var, 1857 .fb_check_var = radeonfb_check_var,
@@ -1867,7 +1875,6 @@ static int __devinit radeon_set_fbinfo (struct radeonfb_info *rinfo)
1867 info->par = rinfo; 1875 info->par = rinfo;
1868 info->pseudo_palette = rinfo->pseudo_palette; 1876 info->pseudo_palette = rinfo->pseudo_palette;
1869 info->flags = FBINFO_DEFAULT 1877 info->flags = FBINFO_DEFAULT
1870 | FBINFO_HWACCEL_IMAGEBLIT
1871 | FBINFO_HWACCEL_COPYAREA 1878 | FBINFO_HWACCEL_COPYAREA
1872 | FBINFO_HWACCEL_FILLRECT 1879 | FBINFO_HWACCEL_FILLRECT
1873 | FBINFO_HWACCEL_XPAN 1880 | FBINFO_HWACCEL_XPAN
@@ -1999,6 +2006,7 @@ static void radeon_identify_vram(struct radeonfb_info *rinfo)
1999 u32 tom = INREG(NB_TOM); 2006 u32 tom = INREG(NB_TOM);
2000 tmp = ((((tom >> 16) - (tom & 0xffff) + 1) << 6) * 1024); 2007 tmp = ((((tom >> 16) - (tom & 0xffff) + 1) << 6) * 1024);
2001 2008
2009 radeon_fifo_wait(6);
2002 OUTREG(MC_FB_LOCATION, tom); 2010 OUTREG(MC_FB_LOCATION, tom);
2003 OUTREG(DISPLAY_BASE_ADDR, (tom & 0xffff) << 16); 2011 OUTREG(DISPLAY_BASE_ADDR, (tom & 0xffff) << 16);
2004 OUTREG(CRTC2_DISPLAY_BASE_ADDR, (tom & 0xffff) << 16); 2012 OUTREG(CRTC2_DISPLAY_BASE_ADDR, (tom & 0xffff) << 16);
diff --git a/drivers/video/aty/radeon_pm.c b/drivers/video/aty/radeon_pm.c
index 3df5015f1d13..675abdafc2d8 100644
--- a/drivers/video/aty/radeon_pm.c
+++ b/drivers/video/aty/radeon_pm.c
@@ -2653,9 +2653,9 @@ int radeonfb_pci_suspend(struct pci_dev *pdev, pm_message_t mesg)
2653 2653
2654 if (!(info->flags & FBINFO_HWACCEL_DISABLED)) { 2654 if (!(info->flags & FBINFO_HWACCEL_DISABLED)) {
2655 /* Make sure engine is reset */ 2655 /* Make sure engine is reset */
2656 radeon_engine_idle(rinfo); 2656 radeon_engine_idle();
2657 radeonfb_engine_reset(rinfo); 2657 radeonfb_engine_reset(rinfo);
2658 radeon_engine_idle(rinfo); 2658 radeon_engine_idle();
2659 } 2659 }
2660 2660
2661 /* Blank display and LCD */ 2661 /* Blank display and LCD */
@@ -2767,7 +2767,7 @@ int radeonfb_pci_resume(struct pci_dev *pdev)
2767 2767
2768 rinfo->asleep = 0; 2768 rinfo->asleep = 0;
2769 } else 2769 } else
2770 radeon_engine_idle(rinfo); 2770 radeon_engine_idle();
2771 2771
2772 /* Restore display & engine */ 2772 /* Restore display & engine */
2773 radeon_write_mode (rinfo, &rinfo->state, 1); 2773 radeon_write_mode (rinfo, &rinfo->state, 1);
diff --git a/drivers/video/aty/radeonfb.h b/drivers/video/aty/radeonfb.h
index ea0b5b47acaf..3ea1b00fdd22 100644
--- a/drivers/video/aty/radeonfb.h
+++ b/drivers/video/aty/radeonfb.h
@@ -336,15 +336,7 @@ struct radeonfb_info {
336 int mon2_type; 336 int mon2_type;
337 u8 *mon2_EDID; 337 u8 *mon2_EDID;
338 338
339 /* accel bits */ 339 u32 dp_gui_master_cntl;
340 u32 dp_gui_mc_base;
341 u32 dp_gui_mc_cache;
342 u32 dp_cntl_cache;
343 u32 dp_brush_fg_cache;
344 u32 dp_brush_bg_cache;
345 u32 dp_src_fg_cache;
346 u32 dp_src_bg_cache;
347 u32 fifo_free;
348 340
349 struct pll_info pll; 341 struct pll_info pll;
350 342
@@ -356,7 +348,6 @@ struct radeonfb_info {
356 int lock_blank; 348 int lock_blank;
357 int dynclk; 349 int dynclk;
358 int no_schedule; 350 int no_schedule;
359 int gfx_mode;
360 enum radeon_pm_mode pm_mode; 351 enum radeon_pm_mode pm_mode;
361 reinit_function_ptr reinit_func; 352 reinit_function_ptr reinit_func;
362 353
@@ -401,14 +392,8 @@ static inline void _radeon_msleep(struct radeonfb_info *rinfo, unsigned long ms)
401#define OUTREG8(addr,val) writeb(val, (rinfo->mmio_base)+addr) 392#define OUTREG8(addr,val) writeb(val, (rinfo->mmio_base)+addr)
402#define INREG16(addr) readw((rinfo->mmio_base)+addr) 393#define INREG16(addr) readw((rinfo->mmio_base)+addr)
403#define OUTREG16(addr,val) writew(val, (rinfo->mmio_base)+addr) 394#define OUTREG16(addr,val) writew(val, (rinfo->mmio_base)+addr)
404
405#ifdef CONFIG_PPC
406#define INREG(addr) ({ eieio(); ld_le32(rinfo->mmio_base+(addr)); })
407#define OUTREG(addr,val) do { eieio(); st_le32(rinfo->mmio_base+(addr),(val)); } while(0)
408#else
409#define INREG(addr) readl((rinfo->mmio_base)+addr) 395#define INREG(addr) readl((rinfo->mmio_base)+addr)
410#define OUTREG(addr,val) writel(val, (rinfo->mmio_base)+addr) 396#define OUTREG(addr,val) writel(val, (rinfo->mmio_base)+addr)
411#endif
412 397
413static inline void _OUTREGP(struct radeonfb_info *rinfo, u32 addr, 398static inline void _OUTREGP(struct radeonfb_info *rinfo, u32 addr,
414 u32 val, u32 mask) 399 u32 val, u32 mask)
@@ -550,7 +535,17 @@ static inline u32 radeon_get_dstbpp(u16 depth)
550 * 2D Engine helper routines 535 * 2D Engine helper routines
551 */ 536 */
552 537
553extern void radeon_fifo_update_and_wait(struct radeonfb_info *rinfo, int entries); 538static inline void _radeon_fifo_wait(struct radeonfb_info *rinfo, int entries)
539{
540 int i;
541
542 for (i=0; i<2000000; i++) {
543 if ((INREG(RBBM_STATUS) & 0x7f) >= entries)
544 return;
545 udelay(1);
546 }
547 printk(KERN_ERR "radeonfb: FIFO Timeout !\n");
548}
554 549
555static inline void radeon_engine_flush (struct radeonfb_info *rinfo) 550static inline void radeon_engine_flush (struct radeonfb_info *rinfo)
556{ 551{
@@ -563,7 +558,7 @@ static inline void radeon_engine_flush (struct radeonfb_info *rinfo)
563 /* Ensure FIFO is empty, ie, make sure the flush commands 558 /* Ensure FIFO is empty, ie, make sure the flush commands
564 * has reached the cache 559 * has reached the cache
565 */ 560 */
566 radeon_fifo_update_and_wait(rinfo, 64); 561 _radeon_fifo_wait (rinfo, 64);
567 562
568 /* Wait for the flush to complete */ 563 /* Wait for the flush to complete */
569 for (i=0; i < 2000000; i++) { 564 for (i=0; i < 2000000; i++) {
@@ -575,12 +570,12 @@ static inline void radeon_engine_flush (struct radeonfb_info *rinfo)
575} 570}
576 571
577 572
578static inline void radeon_engine_idle(struct radeonfb_info *rinfo) 573static inline void _radeon_engine_idle(struct radeonfb_info *rinfo)
579{ 574{
580 int i; 575 int i;
581 576
582 /* ensure FIFO is empty before waiting for idle */ 577 /* ensure FIFO is empty before waiting for idle */
583 radeon_fifo_update_and_wait (rinfo, 64); 578 _radeon_fifo_wait (rinfo, 64);
584 579
585 for (i=0; i<2000000; i++) { 580 for (i=0; i<2000000; i++) {
586 if (((INREG(RBBM_STATUS) & GUI_ACTIVE)) == 0) { 581 if (((INREG(RBBM_STATUS) & GUI_ACTIVE)) == 0) {
@@ -593,6 +588,8 @@ static inline void radeon_engine_idle(struct radeonfb_info *rinfo)
593} 588}
594 589
595 590
591#define radeon_engine_idle() _radeon_engine_idle(rinfo)
592#define radeon_fifo_wait(entries) _radeon_fifo_wait(rinfo,entries)
596#define radeon_msleep(ms) _radeon_msleep(rinfo,ms) 593#define radeon_msleep(ms) _radeon_msleep(rinfo,ms)
597 594
598 595
@@ -622,7 +619,6 @@ extern void radeonfb_imageblit(struct fb_info *p, const struct fb_image *image);
622extern int radeonfb_sync(struct fb_info *info); 619extern int radeonfb_sync(struct fb_info *info);
623extern void radeonfb_engine_init (struct radeonfb_info *rinfo); 620extern void radeonfb_engine_init (struct radeonfb_info *rinfo);
624extern void radeonfb_engine_reset(struct radeonfb_info *rinfo); 621extern void radeonfb_engine_reset(struct radeonfb_info *rinfo);
625extern void radeon_fixup_mem_offset(struct radeonfb_info *rinfo);
626 622
627/* Other functions */ 623/* Other functions */
628extern int radeon_screen_blank(struct radeonfb_info *rinfo, int blank, int mode_switch); 624extern int radeon_screen_blank(struct radeonfb_info *rinfo, int blank, int mode_switch);
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index b92947d62ad6..0b2adefe9e3d 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -2389,16 +2389,13 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
2389 2389
2390 if (!fbcon_is_inactive(vc, info)) { 2390 if (!fbcon_is_inactive(vc, info)) {
2391 if (ops->blank_state != blank) { 2391 if (ops->blank_state != blank) {
2392 int ret = 1;
2393
2394 ops->blank_state = blank; 2392 ops->blank_state = blank;
2395 fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW); 2393 fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW);
2396 ops->cursor_flash = (!blank); 2394 ops->cursor_flash = (!blank);
2397 2395
2398 if (info->fbops->fb_blank) 2396 if (!(info->flags & FBINFO_MISC_USEREVENT))
2399 ret = info->fbops->fb_blank(blank, info); 2397 if (fb_blank(info, blank))
2400 if (ret) 2398 fbcon_generic_blank(vc, info, blank);
2401 fbcon_generic_blank(vc, info, blank);
2402 } 2399 }
2403 2400
2404 if (!blank) 2401 if (!blank)
@@ -3534,12 +3531,18 @@ static void fbcon_exit(void)
3534 softback_buf = 0UL; 3531 softback_buf = 0UL;
3535 3532
3536 for (i = 0; i < FB_MAX; i++) { 3533 for (i = 0; i < FB_MAX; i++) {
3534 int pending;
3535
3537 mapped = 0; 3536 mapped = 0;
3538 info = registered_fb[i]; 3537 info = registered_fb[i];
3539 3538
3540 if (info == NULL) 3539 if (info == NULL)
3541 continue; 3540 continue;
3542 3541
3542 pending = cancel_work_sync(&info->queue);
3543 DPRINTK("fbcon: %s pending work\n", (pending ? "canceled" :
3544 "no"));
3545
3543 for (j = first_fb_vc; j <= last_fb_vc; j++) { 3546 for (j = first_fb_vc; j <= last_fb_vc; j++) {
3544 if (con2fb_map[j] == i) 3547 if (con2fb_map[j] == i)
3545 mapped = 1; 3548 mapped = 1;
diff --git a/drivers/video/macfb.c b/drivers/video/macfb.c
index b790ddff76f9..ee380d5f3410 100644
--- a/drivers/video/macfb.c
+++ b/drivers/video/macfb.c
@@ -164,7 +164,6 @@ static struct fb_var_screeninfo macfb_defined = {
164}; 164};
165 165
166static struct fb_fix_screeninfo macfb_fix = { 166static struct fb_fix_screeninfo macfb_fix = {
167 .id = "Macintosh ",
168 .type = FB_TYPE_PACKED_PIXELS, 167 .type = FB_TYPE_PACKED_PIXELS,
169 .accel = FB_ACCEL_NONE, 168 .accel = FB_ACCEL_NONE,
170}; 169};
@@ -760,22 +759,22 @@ static int __init macfb_init(void)
760 759
761 switch(ndev->dr_hw) { 760 switch(ndev->dr_hw) {
762 case NUBUS_DRHW_APPLE_MDC: 761 case NUBUS_DRHW_APPLE_MDC:
763 strcat( macfb_fix.id, "Display Card" ); 762 strcpy(macfb_fix.id, "Mac Disp. Card");
764 macfb_setpalette = mdc_setpalette; 763 macfb_setpalette = mdc_setpalette;
765 macfb_defined.activate = FB_ACTIVATE_NOW; 764 macfb_defined.activate = FB_ACTIVATE_NOW;
766 break; 765 break;
767 case NUBUS_DRHW_APPLE_TFB: 766 case NUBUS_DRHW_APPLE_TFB:
768 strcat( macfb_fix.id, "Toby" ); 767 strcpy(macfb_fix.id, "Toby");
769 macfb_setpalette = toby_setpalette; 768 macfb_setpalette = toby_setpalette;
770 macfb_defined.activate = FB_ACTIVATE_NOW; 769 macfb_defined.activate = FB_ACTIVATE_NOW;
771 break; 770 break;
772 case NUBUS_DRHW_APPLE_JET: 771 case NUBUS_DRHW_APPLE_JET:
773 strcat( macfb_fix.id, "Jet"); 772 strcpy(macfb_fix.id, "Jet");
774 macfb_setpalette = jet_setpalette; 773 macfb_setpalette = jet_setpalette;
775 macfb_defined.activate = FB_ACTIVATE_NOW; 774 macfb_defined.activate = FB_ACTIVATE_NOW;
776 break; 775 break;
777 default: 776 default:
778 strcat( macfb_fix.id, "Generic NuBus" ); 777 strcpy(macfb_fix.id, "Generic NuBus");
779 break; 778 break;
780 } 779 }
781 } 780 }
@@ -786,21 +785,11 @@ static int __init macfb_init(void)
786 if (!video_is_nubus) 785 if (!video_is_nubus)
787 switch( mac_bi_data.id ) 786 switch( mac_bi_data.id )
788 { 787 {
789 /* These don't have onboard video. Eventually, we may
790 be able to write separate framebuffer drivers for
791 them (tobyfb.c, hiresfb.c, etc, etc) */
792 case MAC_MODEL_II:
793 case MAC_MODEL_IIX:
794 case MAC_MODEL_IICX:
795 case MAC_MODEL_IIFX:
796 strcat( macfb_fix.id, "Generic NuBus" );
797 break;
798
799 /* Valkyrie Quadras */ 788 /* Valkyrie Quadras */
800 case MAC_MODEL_Q630: 789 case MAC_MODEL_Q630:
801 /* I'm not sure about this one */ 790 /* I'm not sure about this one */
802 case MAC_MODEL_P588: 791 case MAC_MODEL_P588:
803 strcat( macfb_fix.id, "Valkyrie built-in" ); 792 strcpy(macfb_fix.id, "Valkyrie");
804 macfb_setpalette = valkyrie_setpalette; 793 macfb_setpalette = valkyrie_setpalette;
805 macfb_defined.activate = FB_ACTIVATE_NOW; 794 macfb_defined.activate = FB_ACTIVATE_NOW;
806 valkyrie_cmap_regs = ioremap(DAC_BASE, 0x1000); 795 valkyrie_cmap_regs = ioremap(DAC_BASE, 0x1000);
@@ -823,7 +812,7 @@ static int __init macfb_init(void)
823 case MAC_MODEL_Q700: 812 case MAC_MODEL_Q700:
824 case MAC_MODEL_Q900: 813 case MAC_MODEL_Q900:
825 case MAC_MODEL_Q950: 814 case MAC_MODEL_Q950:
826 strcat( macfb_fix.id, "DAFB built-in" ); 815 strcpy(macfb_fix.id, "DAFB");
827 macfb_setpalette = dafb_setpalette; 816 macfb_setpalette = dafb_setpalette;
828 macfb_defined.activate = FB_ACTIVATE_NOW; 817 macfb_defined.activate = FB_ACTIVATE_NOW;
829 dafb_cmap_regs = ioremap(DAFB_BASE, 0x1000); 818 dafb_cmap_regs = ioremap(DAFB_BASE, 0x1000);
@@ -831,7 +820,7 @@ static int __init macfb_init(void)
831 820
832 /* LC II uses the V8 framebuffer */ 821 /* LC II uses the V8 framebuffer */
833 case MAC_MODEL_LCII: 822 case MAC_MODEL_LCII:
834 strcat( macfb_fix.id, "V8 built-in" ); 823 strcpy(macfb_fix.id, "V8");
835 macfb_setpalette = v8_brazil_setpalette; 824 macfb_setpalette = v8_brazil_setpalette;
836 macfb_defined.activate = FB_ACTIVATE_NOW; 825 macfb_defined.activate = FB_ACTIVATE_NOW;
837 v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); 826 v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
@@ -843,7 +832,7 @@ static int __init macfb_init(void)
843 case MAC_MODEL_IIVI: 832 case MAC_MODEL_IIVI:
844 case MAC_MODEL_IIVX: 833 case MAC_MODEL_IIVX:
845 case MAC_MODEL_P600: 834 case MAC_MODEL_P600:
846 strcat( macfb_fix.id, "Brazil built-in" ); 835 strcpy(macfb_fix.id, "Brazil");
847 macfb_setpalette = v8_brazil_setpalette; 836 macfb_setpalette = v8_brazil_setpalette;
848 macfb_defined.activate = FB_ACTIVATE_NOW; 837 macfb_defined.activate = FB_ACTIVATE_NOW;
849 v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); 838 v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
@@ -860,7 +849,7 @@ static int __init macfb_init(void)
860 case MAC_MODEL_P460: 849 case MAC_MODEL_P460:
861 macfb_setpalette = v8_brazil_setpalette; 850 macfb_setpalette = v8_brazil_setpalette;
862 macfb_defined.activate = FB_ACTIVATE_NOW; 851 macfb_defined.activate = FB_ACTIVATE_NOW;
863 strcat( macfb_fix.id, "Sonora built-in" ); 852 strcpy(macfb_fix.id, "Sonora");
864 v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); 853 v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
865 break; 854 break;
866 855
@@ -871,7 +860,7 @@ static int __init macfb_init(void)
871 case MAC_MODEL_IISI: 860 case MAC_MODEL_IISI:
872 macfb_setpalette = rbv_setpalette; 861 macfb_setpalette = rbv_setpalette;
873 macfb_defined.activate = FB_ACTIVATE_NOW; 862 macfb_defined.activate = FB_ACTIVATE_NOW;
874 strcat( macfb_fix.id, "RBV built-in" ); 863 strcpy(macfb_fix.id, "RBV");
875 rbv_cmap_regs = ioremap(DAC_BASE, 0x1000); 864 rbv_cmap_regs = ioremap(DAC_BASE, 0x1000);
876 break; 865 break;
877 866
@@ -880,7 +869,7 @@ static int __init macfb_init(void)
880 case MAC_MODEL_C660: 869 case MAC_MODEL_C660:
881 macfb_setpalette = civic_setpalette; 870 macfb_setpalette = civic_setpalette;
882 macfb_defined.activate = FB_ACTIVATE_NOW; 871 macfb_defined.activate = FB_ACTIVATE_NOW;
883 strcat( macfb_fix.id, "Civic built-in" ); 872 strcpy(macfb_fix.id, "Civic");
884 civic_cmap_regs = ioremap(CIVIC_BASE, 0x1000); 873 civic_cmap_regs = ioremap(CIVIC_BASE, 0x1000);
885 break; 874 break;
886 875
@@ -901,7 +890,7 @@ static int __init macfb_init(void)
901 v8_brazil_cmap_regs = 890 v8_brazil_cmap_regs =
902 ioremap(DAC_BASE, 0x1000); 891 ioremap(DAC_BASE, 0x1000);
903 } 892 }
904 strcat( macfb_fix.id, "LC built-in" ); 893 strcpy(macfb_fix.id, "LC");
905 break; 894 break;
906 /* We think this may be like the LC II */ 895 /* We think this may be like the LC II */
907 case MAC_MODEL_CCL: 896 case MAC_MODEL_CCL:
@@ -911,18 +900,18 @@ static int __init macfb_init(void)
911 v8_brazil_cmap_regs = 900 v8_brazil_cmap_regs =
912 ioremap(DAC_BASE, 0x1000); 901 ioremap(DAC_BASE, 0x1000);
913 } 902 }
914 strcat( macfb_fix.id, "Color Classic built-in" ); 903 strcpy(macfb_fix.id, "Color Classic");
915 break; 904 break;
916 905
917 /* And we *do* mean "weirdos" */ 906 /* And we *do* mean "weirdos" */
918 case MAC_MODEL_TV: 907 case MAC_MODEL_TV:
919 strcat( macfb_fix.id, "Mac TV built-in" ); 908 strcpy(macfb_fix.id, "Mac TV");
920 break; 909 break;
921 910
922 /* These don't have colour, so no need to worry */ 911 /* These don't have colour, so no need to worry */
923 case MAC_MODEL_SE30: 912 case MAC_MODEL_SE30:
924 case MAC_MODEL_CLII: 913 case MAC_MODEL_CLII:
925 strcat( macfb_fix.id, "Monochrome built-in" ); 914 strcpy(macfb_fix.id, "Monochrome");
926 break; 915 break;
927 916
928 /* Powerbooks are particularly difficult. Many of 917 /* Powerbooks are particularly difficult. Many of
@@ -935,7 +924,7 @@ static int __init macfb_init(void)
935 case MAC_MODEL_PB140: 924 case MAC_MODEL_PB140:
936 case MAC_MODEL_PB145: 925 case MAC_MODEL_PB145:
937 case MAC_MODEL_PB170: 926 case MAC_MODEL_PB170:
938 strcat( macfb_fix.id, "DDC built-in" ); 927 strcpy(macfb_fix.id, "DDC");
939 break; 928 break;
940 929
941 /* Internal is GSC, External (if present) is ViSC */ 930 /* Internal is GSC, External (if present) is ViSC */
@@ -945,13 +934,13 @@ static int __init macfb_init(void)
945 case MAC_MODEL_PB180: 934 case MAC_MODEL_PB180:
946 case MAC_MODEL_PB210: 935 case MAC_MODEL_PB210:
947 case MAC_MODEL_PB230: 936 case MAC_MODEL_PB230:
948 strcat( macfb_fix.id, "GSC built-in" ); 937 strcpy(macfb_fix.id, "GSC");
949 break; 938 break;
950 939
951 /* Internal is TIM, External is ViSC */ 940 /* Internal is TIM, External is ViSC */
952 case MAC_MODEL_PB165C: 941 case MAC_MODEL_PB165C:
953 case MAC_MODEL_PB180C: 942 case MAC_MODEL_PB180C:
954 strcat( macfb_fix.id, "TIM built-in" ); 943 strcpy(macfb_fix.id, "TIM");
955 break; 944 break;
956 945
957 /* Internal is CSC, External is Keystone+Ariel. */ 946 /* Internal is CSC, External is Keystone+Ariel. */
@@ -963,12 +952,12 @@ static int __init macfb_init(void)
963 case MAC_MODEL_PB280C: 952 case MAC_MODEL_PB280C:
964 macfb_setpalette = csc_setpalette; 953 macfb_setpalette = csc_setpalette;
965 macfb_defined.activate = FB_ACTIVATE_NOW; 954 macfb_defined.activate = FB_ACTIVATE_NOW;
966 strcat( macfb_fix.id, "CSC built-in" ); 955 strcpy(macfb_fix.id, "CSC");
967 csc_cmap_regs = ioremap(CSC_BASE, 0x1000); 956 csc_cmap_regs = ioremap(CSC_BASE, 0x1000);
968 break; 957 break;
969 958
970 default: 959 default:
971 strcat( macfb_fix.id, "Unknown/Unsupported built-in" ); 960 strcpy(macfb_fix.id, "Unknown");
972 break; 961 break;
973 } 962 }
974 963
@@ -978,16 +967,23 @@ static int __init macfb_init(void)
978 fb_info.pseudo_palette = pseudo_palette; 967 fb_info.pseudo_palette = pseudo_palette;
979 fb_info.flags = FBINFO_DEFAULT; 968 fb_info.flags = FBINFO_DEFAULT;
980 969
981 fb_alloc_cmap(&fb_info.cmap, video_cmap_len, 0); 970 err = fb_alloc_cmap(&fb_info.cmap, video_cmap_len, 0);
971 if (err)
972 goto fail_unmap;
982 973
983 err = register_framebuffer(&fb_info); 974 err = register_framebuffer(&fb_info);
984 if (!err) 975 if (err)
985 printk("fb%d: %s frame buffer device\n", 976 goto fail_dealloc;
986 fb_info.node, fb_info.fix.id); 977
987 else { 978 printk("fb%d: %s frame buffer device\n",
988 iounmap(fb_info.screen_base); 979 fb_info.node, fb_info.fix.id);
989 iounmap_macfb(); 980 return 0;
990 } 981
982fail_dealloc:
983 fb_dealloc_cmap(&fb_info.cmap);
984fail_unmap:
985 iounmap(fb_info.screen_base);
986 iounmap_macfb();
991 return err; 987 return err;
992} 988}
993 989
diff --git a/drivers/video/mb862xx/mb862xxfb.c b/drivers/video/mb862xx/mb862xxfb.c
index 38718d95fbb9..fb64234a3825 100644
--- a/drivers/video/mb862xx/mb862xxfb.c
+++ b/drivers/video/mb862xx/mb862xxfb.c
@@ -927,9 +927,9 @@ static int __devinit mb862xx_pci_probe(struct pci_dev *pdev,
927 } 927 }
928 928
929 dev_dbg(dev, "fb phys 0x%llx 0x%lx\n", 929 dev_dbg(dev, "fb phys 0x%llx 0x%lx\n",
930 (u64)par->fb_base_phys, (ulong)par->mapped_vram); 930 (unsigned long long)par->fb_base_phys, (ulong)par->mapped_vram);
931 dev_dbg(dev, "mmio phys 0x%llx 0x%lx\n", 931 dev_dbg(dev, "mmio phys 0x%llx 0x%lx\n",
932 (u64)par->mmio_base_phys, (ulong)par->mmio_len); 932 (unsigned long long)par->mmio_base_phys, (ulong)par->mmio_len);
933 933
934 if (mb862xx_pci_gdc_init(par)) 934 if (mb862xx_pci_gdc_init(par))
935 goto io_unmap; 935 goto io_unmap;
diff --git a/drivers/video/omap/Makefile b/drivers/video/omap/Makefile
index 99da8b6d2c36..ed13889c1162 100644
--- a/drivers/video/omap/Makefile
+++ b/drivers/video/omap/Makefile
@@ -23,7 +23,6 @@ objs-y$(CONFIG_MACH_OMAP_PALMZ71) += lcd_palmz71.o
23objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o 23objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o
24objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o 24objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o
25objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o 25objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
26objs-y$(CONFIG_MACH_SX1) += lcd_sx1.o
27 26
28omapfb-objs := $(objs-yy) 27omapfb-objs := $(objs-yy)
29 28
diff --git a/drivers/video/omap/lcd_sx1.c b/drivers/video/omap/lcd_sx1.c
deleted file mode 100644
index e55de201b8ff..000000000000
--- a/drivers/video/omap/lcd_sx1.c
+++ /dev/null
@@ -1,327 +0,0 @@
1/*
2 * LCD panel support for the Siemens SX1 mobile phone
3 *
4 * Current version : Vovan888@gmail.com, great help from FCA00000
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 */
20
21#include <linux/module.h>
22#include <linux/platform_device.h>
23#include <linux/delay.h>
24#include <linux/io.h>
25
26#include <mach/gpio.h>
27#include <mach/omapfb.h>
28#include <mach/mcbsp.h>
29#include <mach/mux.h>
30
31/*
32 * OMAP310 GPIO registers
33 */
34#define GPIO_DATA_INPUT 0xfffce000
35#define GPIO_DATA_OUTPUT 0xfffce004
36#define GPIO_DIR_CONTROL 0xfffce008
37#define GPIO_INT_CONTROL 0xfffce00c
38#define GPIO_INT_MASK 0xfffce010
39#define GPIO_INT_STATUS 0xfffce014
40#define GPIO_PIN_CONTROL 0xfffce018
41
42
43#define A_LCD_SSC_RD 3
44#define A_LCD_SSC_SD 7
45#define _A_LCD_RESET 9
46#define _A_LCD_SSC_CS 12
47#define _A_LCD_SSC_A0 13
48
49#define DSP_REG 0xE1017024
50
51const unsigned char INIT_1[12] = {
52 0x1C, 0x02, 0x88, 0x00, 0x1E, 0xE0, 0x00, 0xDC, 0x00, 0x02, 0x00
53};
54
55const unsigned char INIT_2[127] = {
56 0x15, 0x00, 0x29, 0x00, 0x3E, 0x00, 0x51, 0x00,
57 0x65, 0x00, 0x7A, 0x00, 0x8D, 0x00, 0xA1, 0x00,
58 0xB6, 0x00, 0xC7, 0x00, 0xD8, 0x00, 0xEB, 0x00,
59 0xFB, 0x00, 0x0B, 0x01, 0x1B, 0x01, 0x27, 0x01,
60 0x34, 0x01, 0x41, 0x01, 0x4C, 0x01, 0x55, 0x01,
61 0x5F, 0x01, 0x68, 0x01, 0x70, 0x01, 0x78, 0x01,
62 0x7E, 0x01, 0x86, 0x01, 0x8C, 0x01, 0x94, 0x01,
63 0x9B, 0x01, 0xA1, 0x01, 0xA4, 0x01, 0xA9, 0x01,
64 0xAD, 0x01, 0xB2, 0x01, 0xB7, 0x01, 0xBC, 0x01,
65 0xC0, 0x01, 0xC4, 0x01, 0xC8, 0x01, 0xCB, 0x01,
66 0xCF, 0x01, 0xD2, 0x01, 0xD5, 0x01, 0xD8, 0x01,
67 0xDB, 0x01, 0xE0, 0x01, 0xE3, 0x01, 0xE6, 0x01,
68 0xE8, 0x01, 0xEB, 0x01, 0xEE, 0x01, 0xF1, 0x01,
69 0xF3, 0x01, 0xF8, 0x01, 0xF9, 0x01, 0xFC, 0x01,
70 0x00, 0x02, 0x03, 0x02, 0x07, 0x02, 0x09, 0x02,
71 0x0E, 0x02, 0x13, 0x02, 0x1C, 0x02, 0x00
72};
73
74const unsigned char INIT_3[15] = {
75 0x14, 0x26, 0x33, 0x3D, 0x45, 0x4D, 0x53, 0x59,
76 0x5E, 0x63, 0x67, 0x6D, 0x71, 0x78, 0xFF
77};
78
79static void epson_sendbyte(int flag, unsigned char byte)
80{
81 int i, shifter = 0x80;
82
83 if (!flag)
84 gpio_set_value(_A_LCD_SSC_A0, 0);
85 mdelay(2);
86 gpio_set_value(A_LCD_SSC_RD, 1);
87
88 gpio_set_value(A_LCD_SSC_SD, flag);
89
90 OMAP_MCBSP_WRITE(OMAP1510_MCBSP3_BASE, PCR0, 0x2200);
91 OMAP_MCBSP_WRITE(OMAP1510_MCBSP3_BASE, PCR0, 0x2202);
92 for (i = 0; i < 8; i++) {
93 OMAP_MCBSP_WRITE(OMAP1510_MCBSP3_BASE, PCR0, 0x2200);
94 gpio_set_value(A_LCD_SSC_SD, shifter & byte);
95 OMAP_MCBSP_WRITE(OMAP1510_MCBSP3_BASE, PCR0, 0x2202);
96 shifter >>= 1;
97 }
98 gpio_set_value(_A_LCD_SSC_A0, 1);
99}
100
101static void init_system(void)
102{
103 omap_mcbsp_request(OMAP_MCBSP3);
104 omap_mcbsp_stop(OMAP_MCBSP3);
105}
106
107static void setup_GPIO(void)
108{
109 /* new wave */
110 gpio_request(A_LCD_SSC_RD, "lcd_ssc_rd");
111 gpio_request(A_LCD_SSC_SD, "lcd_ssc_sd");
112 gpio_request(_A_LCD_RESET, "lcd_reset");
113 gpio_request(_A_LCD_SSC_CS, "lcd_ssc_cs");
114 gpio_request(_A_LCD_SSC_A0, "lcd_ssc_a0");
115
116 /* set GPIOs to output, with initial data */
117 gpio_direction_output(A_LCD_SSC_RD, 1);
118 gpio_direction_output(A_LCD_SSC_SD, 0);
119 gpio_direction_output(_A_LCD_RESET, 0);
120 gpio_direction_output(_A_LCD_SSC_CS, 1);
121 gpio_direction_output(_A_LCD_SSC_A0, 1);
122}
123
124static void display_init(void)
125{
126 int i;
127
128 omap_cfg_reg(MCBSP3_CLKX);
129
130 mdelay(2);
131 setup_GPIO();
132 mdelay(2);
133
134 /* reset LCD */
135 gpio_set_value(A_LCD_SSC_SD, 1);
136 epson_sendbyte(0, 0x25);
137
138 gpio_set_value(_A_LCD_RESET, 0);
139 mdelay(10);
140 gpio_set_value(_A_LCD_RESET, 1);
141
142 gpio_set_value(_A_LCD_SSC_CS, 1);
143 mdelay(2);
144 gpio_set_value(_A_LCD_SSC_CS, 0);
145
146 /* init LCD, phase 1 */
147 epson_sendbyte(0, 0xCA);
148 for (i = 0; i < 10; i++)
149 epson_sendbyte(1, INIT_1[i]);
150 gpio_set_value(_A_LCD_SSC_CS, 1);
151 gpio_set_value(_A_LCD_SSC_CS, 0);
152
153 /* init LCD phase 2 */
154 epson_sendbyte(0, 0xCB);
155 for (i = 0; i < 125; i++)
156 epson_sendbyte(1, INIT_2[i]);
157 gpio_set_value(_A_LCD_SSC_CS, 1);
158 gpio_set_value(_A_LCD_SSC_CS, 0);
159
160 /* init LCD phase 2a */
161 epson_sendbyte(0, 0xCC);
162 for (i = 0; i < 14; i++)
163 epson_sendbyte(1, INIT_3[i]);
164 gpio_set_value(_A_LCD_SSC_CS, 1);
165 gpio_set_value(_A_LCD_SSC_CS, 0);
166
167 /* init LCD phase 3 */
168 epson_sendbyte(0, 0xBC);
169 epson_sendbyte(1, 0x08);
170 gpio_set_value(_A_LCD_SSC_CS, 1);
171 gpio_set_value(_A_LCD_SSC_CS, 0);
172
173 /* init LCD phase 4 */
174 epson_sendbyte(0, 0x07);
175 epson_sendbyte(1, 0x05);
176 gpio_set_value(_A_LCD_SSC_CS, 1);
177 gpio_set_value(_A_LCD_SSC_CS, 0);
178
179 /* init LCD phase 5 */
180 epson_sendbyte(0, 0x94);
181 gpio_set_value(_A_LCD_SSC_CS, 1);
182 gpio_set_value(_A_LCD_SSC_CS, 0);
183
184 /* init LCD phase 6 */
185 epson_sendbyte(0, 0xC6);
186 epson_sendbyte(1, 0x80);
187 gpio_set_value(_A_LCD_SSC_CS, 1);
188 mdelay(100); /* used to be 1000 */
189 gpio_set_value(_A_LCD_SSC_CS, 0);
190
191 /* init LCD phase 7 */
192 epson_sendbyte(0, 0x16);
193 epson_sendbyte(1, 0x02);
194 epson_sendbyte(1, 0x00);
195 epson_sendbyte(1, 0xB1);
196 epson_sendbyte(1, 0x00);
197 gpio_set_value(_A_LCD_SSC_CS, 1);
198 gpio_set_value(_A_LCD_SSC_CS, 0);
199
200 /* init LCD phase 8 */
201 epson_sendbyte(0, 0x76);
202 epson_sendbyte(1, 0x00);
203 epson_sendbyte(1, 0x00);
204 epson_sendbyte(1, 0xDB);
205 epson_sendbyte(1, 0x00);
206 gpio_set_value(_A_LCD_SSC_CS, 1);
207 gpio_set_value(_A_LCD_SSC_CS, 0);
208
209 /* init LCD phase 9 */
210 epson_sendbyte(0, 0xAF);
211 gpio_set_value(_A_LCD_SSC_CS, 1);
212}
213
214static int sx1_panel_init(struct lcd_panel *panel, struct omapfb_device *fbdev)
215{
216 return 0;
217}
218
219static void sx1_panel_cleanup(struct lcd_panel *panel)
220{
221}
222
223static void sx1_panel_disable(struct lcd_panel *panel)
224{
225 printk(KERN_INFO "SX1: LCD panel disable\n");
226 sx1_setmmipower(0);
227 gpio_set_value(_A_LCD_SSC_CS, 1);
228
229 epson_sendbyte(0, 0x25);
230 gpio_set_value(_A_LCD_SSC_CS, 0);
231
232 epson_sendbyte(0, 0xAE);
233 gpio_set_value(_A_LCD_SSC_CS, 1);
234 mdelay(100);
235 gpio_set_value(_A_LCD_SSC_CS, 0);
236
237 epson_sendbyte(0, 0x95);
238 gpio_set_value(_A_LCD_SSC_CS, 1);
239}
240
241static int sx1_panel_enable(struct lcd_panel *panel)
242{
243 printk(KERN_INFO "lcd_sx1: LCD panel enable\n");
244 init_system();
245 display_init();
246
247 sx1_setmmipower(1);
248 sx1_setbacklight(0x18);
249 sx1_setkeylight (0x06);
250 return 0;
251}
252
253
254static unsigned long sx1_panel_get_caps(struct lcd_panel *panel)
255{
256 return 0;
257}
258
259struct lcd_panel sx1_panel = {
260 .name = "sx1",
261 .config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC |
262 OMAP_LCDC_INV_HSYNC | OMAP_LCDC_INV_PIX_CLOCK |
263 OMAP_LCDC_INV_OUTPUT_EN,
264
265 .x_res = 176,
266 .y_res = 220,
267 .data_lines = 16,
268 .bpp = 16,
269 .hsw = 5,
270 .hfp = 5,
271 .hbp = 5,
272 .vsw = 2,
273 .vfp = 1,
274 .vbp = 1,
275 .pixel_clock = 1500,
276
277 .init = sx1_panel_init,
278 .cleanup = sx1_panel_cleanup,
279 .enable = sx1_panel_enable,
280 .disable = sx1_panel_disable,
281 .get_caps = sx1_panel_get_caps,
282};
283
284static int sx1_panel_probe(struct platform_device *pdev)
285{
286 omapfb_register_panel(&sx1_panel);
287 return 0;
288}
289
290static int sx1_panel_remove(struct platform_device *pdev)
291{
292 return 0;
293}
294
295static int sx1_panel_suspend(struct platform_device *pdev, pm_message_t mesg)
296{
297 return 0;
298}
299
300static int sx1_panel_resume(struct platform_device *pdev)
301{
302 return 0;
303}
304
305struct platform_driver sx1_panel_driver = {
306 .probe = sx1_panel_probe,
307 .remove = sx1_panel_remove,
308 .suspend = sx1_panel_suspend,
309 .resume = sx1_panel_resume,
310 .driver = {
311 .name = "lcd_sx1",
312 .owner = THIS_MODULE,
313 },
314};
315
316static int sx1_panel_drv_init(void)
317{
318 return platform_driver_register(&sx1_panel_driver);
319}
320
321static void sx1_panel_drv_cleanup(void)
322{
323 platform_driver_unregister(&sx1_panel_driver);
324}
325
326module_init(sx1_panel_drv_init);
327module_exit(sx1_panel_drv_cleanup);
diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c
index 5a5e407dc45f..1a49519dafa4 100644
--- a/drivers/video/omap/omapfb_main.c
+++ b/drivers/video/omap/omapfb_main.c
@@ -392,7 +392,7 @@ static void set_fb_fix(struct fb_info *fbi)
392 int bpp; 392 int bpp;
393 393
394 rg = &plane->fbdev->mem_desc.region[plane->idx]; 394 rg = &plane->fbdev->mem_desc.region[plane->idx];
395 fbi->screen_base = (char __iomem *)rg->vaddr; 395 fbi->screen_base = rg->vaddr;
396 fix->smem_start = rg->paddr; 396 fix->smem_start = rg->paddr;
397 fix->smem_len = rg->size; 397 fix->smem_len = rg->size;
398 398
diff --git a/drivers/video/xen-fbfront.c b/drivers/video/xen-fbfront.c
index a463b3dd837b..2493f05e9f61 100644
--- a/drivers/video/xen-fbfront.c
+++ b/drivers/video/xen-fbfront.c
@@ -668,7 +668,7 @@ static struct xenbus_device_id xenfb_ids[] = {
668 { "" } 668 { "" }
669}; 669};
670 670
671static struct xenbus_driver xenfb = { 671static struct xenbus_driver xenfb_driver = {
672 .name = "vfb", 672 .name = "vfb",
673 .owner = THIS_MODULE, 673 .owner = THIS_MODULE,
674 .ids = xenfb_ids, 674 .ids = xenfb_ids,
@@ -687,12 +687,12 @@ static int __init xenfb_init(void)
687 if (xen_initial_domain()) 687 if (xen_initial_domain())
688 return -ENODEV; 688 return -ENODEV;
689 689
690 return xenbus_register_frontend(&xenfb); 690 return xenbus_register_frontend(&xenfb_driver);
691} 691}
692 692
693static void __exit xenfb_cleanup(void) 693static void __exit xenfb_cleanup(void)
694{ 694{
695 xenbus_unregister_driver(&xenfb); 695 xenbus_unregister_driver(&xenfb_driver);
696} 696}
697 697
698module_init(xenfb_init); 698module_init(xenfb_init);
diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
index 5da3d2423cc0..40a3a2afbfe7 100644
--- a/drivers/video/xilinxfb.c
+++ b/drivers/video/xilinxfb.c
@@ -298,8 +298,9 @@ static int xilinxfb_assign(struct device *dev, unsigned long physaddr,
298 298
299 /* Put a banner in the log (for DEBUG) */ 299 /* Put a banner in the log (for DEBUG) */
300 dev_dbg(dev, "regs: phys=%lx, virt=%p\n", physaddr, drvdata->regs); 300 dev_dbg(dev, "regs: phys=%lx, virt=%p\n", physaddr, drvdata->regs);
301 dev_dbg(dev, "fb: phys=%p, virt=%p, size=%x\n", 301 dev_dbg(dev, "fb: phys=%llx, virt=%p, size=%x\n",
302 (void*)drvdata->fb_phys, drvdata->fb_virt, fbsize); 302 (unsigned long long) drvdata->fb_phys, drvdata->fb_virt,
303 fbsize);
303 304
304 return 0; /* success */ 305 return 0; /* success */
305 306
diff --git a/drivers/w1/masters/Kconfig b/drivers/w1/masters/Kconfig
index a14d5b6e4c7c..90616822cd20 100644
--- a/drivers/w1/masters/Kconfig
+++ b/drivers/w1/masters/Kconfig
@@ -36,7 +36,7 @@ config W1_MASTER_DS2482
36 36
37config W1_MASTER_DS1WM 37config W1_MASTER_DS1WM
38 tristate "Maxim DS1WM 1-wire busmaster" 38 tristate "Maxim DS1WM 1-wire busmaster"
39 depends on W1 && ARM 39 depends on W1 && ARM && HAVE_CLK
40 help 40 help
41 Say Y here to enable the DS1WM 1-wire driver, such as that 41 Say Y here to enable the DS1WM 1-wire driver, such as that
42 in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like 42 in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like
diff --git a/drivers/w1/w1_io.c b/drivers/w1/w1_io.c
index 0d15b0eaf79a..5139c25ca962 100644
--- a/drivers/w1/w1_io.c
+++ b/drivers/w1/w1_io.c
@@ -356,7 +356,9 @@ int w1_reset_select_slave(struct w1_slave *sl)
356 w1_write_8(sl->master, W1_SKIP_ROM); 356 w1_write_8(sl->master, W1_SKIP_ROM);
357 else { 357 else {
358 u8 match[9] = {W1_MATCH_ROM, }; 358 u8 match[9] = {W1_MATCH_ROM, };
359 memcpy(&match[1], (u8 *)&sl->reg_num, 8); 359 u64 rn = le64_to_cpu(*((u64*)&sl->reg_num));
360
361 memcpy(&match[1], &rn, 8);
360 w1_write_block(sl->master, match, 9); 362 w1_write_block(sl->master, match, 9);
361 } 363 }
362 return 0; 364 return 0;
diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
index a3765e0be4a8..763c1ea5dce5 100644
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -40,6 +40,7 @@
40#include <linux/bootmem.h> 40#include <linux/bootmem.h>
41#include <linux/slab.h> 41#include <linux/slab.h>
42#include <asm/desc.h> 42#include <asm/desc.h>
43#include <asm/cacheflush.h>
43 44
44#define PCI_BIOS32_SD_VALUE 0x5F32335F /* "_32_" */ 45#define PCI_BIOS32_SD_VALUE 0x5F32335F /* "_32_" */
45#define CRU_BIOS_SIGNATURE_VALUE 0x55524324 46#define CRU_BIOS_SIGNATURE_VALUE 0x55524324
@@ -394,6 +395,8 @@ static void __devinit dmi_find_cru(const struct dmi_header *dm)
394 smbios_cru64_ptr->double_offset; 395 smbios_cru64_ptr->double_offset;
395 cru_rom_addr = ioremap(cru_physical_address, 396 cru_rom_addr = ioremap(cru_physical_address,
396 smbios_cru64_ptr->double_length); 397 smbios_cru64_ptr->double_length);
398 set_memory_x((unsigned long)cru_rom_addr & PAGE_MASK,
399 smbios_cru64_ptr->double_length >> PAGE_SHIFT);
397 } 400 }
398 } 401 }
399} 402}
@@ -482,7 +485,7 @@ static int hpwdt_pretimeout(struct notifier_block *nb, unsigned long ulReason,
482 "Management Log for details.\n"); 485 "Management Log for details.\n");
483 } 486 }
484 487
485 return NOTIFY_STOP; 488 return NOTIFY_OK;
486} 489}
487 490
488/* 491/*
diff --git a/drivers/watchdog/iTCO_vendor_support.c b/drivers/watchdog/iTCO_vendor_support.c
index ca344a85eb95..2474ebca88f6 100644
--- a/drivers/watchdog/iTCO_vendor_support.c
+++ b/drivers/watchdog/iTCO_vendor_support.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * intel TCO vendor specific watchdog driver support 2 * intel TCO vendor specific watchdog driver support
3 * 3 *
4 * (c) Copyright 2006 Wim Van Sebroeck <wim@iguana.be>. 4 * (c) Copyright 2006-2008 Wim Van Sebroeck <wim@iguana.be>.
5 * 5 *
6 * This program is free software; you can redistribute it and/or 6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License 7 * modify it under the terms of the GNU General Public License
@@ -19,8 +19,7 @@
19 19
20/* Module and version information */ 20/* Module and version information */
21#define DRV_NAME "iTCO_vendor_support" 21#define DRV_NAME "iTCO_vendor_support"
22#define DRV_VERSION "1.01" 22#define DRV_VERSION "1.02"
23#define DRV_RELDATE "11-Nov-2006"
24#define PFX DRV_NAME ": " 23#define PFX DRV_NAME ": "
25 24
26/* Includes */ 25/* Includes */
@@ -78,24 +77,6 @@ MODULE_PARM_DESC(vendorsupport, "iTCO vendor specific support mode, default=0 (n
78 * 20.6 seconds. 77 * 20.6 seconds.
79 */ 78 */
80 79
81static void supermicro_old_pre_start(unsigned long acpibase)
82{
83 unsigned long val32;
84
85 val32 = inl(SMI_EN);
86 val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
87 outl(val32, SMI_EN); /* Needed to activate watchdog */
88}
89
90static void supermicro_old_pre_stop(unsigned long acpibase)
91{
92 unsigned long val32;
93
94 val32 = inl(SMI_EN);
95 val32 &= 0x00002000; /* Turn on SMI clearing watchdog */
96 outl(val32, SMI_EN); /* Needed to deactivate watchdog */
97}
98
99static void supermicro_old_pre_keepalive(unsigned long acpibase) 80static void supermicro_old_pre_keepalive(unsigned long acpibase)
100{ 81{
101 /* Reload TCO Timer (done in iTCO_wdt_keepalive) + */ 82 /* Reload TCO Timer (done in iTCO_wdt_keepalive) + */
@@ -247,18 +228,14 @@ static void supermicro_new_pre_set_heartbeat(unsigned int heartbeat)
247void iTCO_vendor_pre_start(unsigned long acpibase, 228void iTCO_vendor_pre_start(unsigned long acpibase,
248 unsigned int heartbeat) 229 unsigned int heartbeat)
249{ 230{
250 if (vendorsupport == SUPERMICRO_OLD_BOARD) 231 if (vendorsupport == SUPERMICRO_NEW_BOARD)
251 supermicro_old_pre_start(acpibase);
252 else if (vendorsupport == SUPERMICRO_NEW_BOARD)
253 supermicro_new_pre_start(heartbeat); 232 supermicro_new_pre_start(heartbeat);
254} 233}
255EXPORT_SYMBOL(iTCO_vendor_pre_start); 234EXPORT_SYMBOL(iTCO_vendor_pre_start);
256 235
257void iTCO_vendor_pre_stop(unsigned long acpibase) 236void iTCO_vendor_pre_stop(unsigned long acpibase)
258{ 237{
259 if (vendorsupport == SUPERMICRO_OLD_BOARD) 238 if (vendorsupport == SUPERMICRO_NEW_BOARD)
260 supermicro_old_pre_stop(acpibase);
261 else if (vendorsupport == SUPERMICRO_NEW_BOARD)
262 supermicro_new_pre_stop(); 239 supermicro_new_pre_stop();
263} 240}
264EXPORT_SYMBOL(iTCO_vendor_pre_stop); 241EXPORT_SYMBOL(iTCO_vendor_pre_stop);
diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c
index bfb93bc2ca9f..5b395a4ddfdf 100644
--- a/drivers/watchdog/iTCO_wdt.c
+++ b/drivers/watchdog/iTCO_wdt.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * intel TCO Watchdog Driver (Used in i82801 and i6300ESB chipsets) 2 * intel TCO Watchdog Driver (Used in i82801 and i6300ESB chipsets)
3 * 3 *
4 * (c) Copyright 2006-2007 Wim Van Sebroeck <wim@iguana.be>. 4 * (c) Copyright 2006-2008 Wim Van Sebroeck <wim@iguana.be>.
5 * 5 *
6 * This program is free software; you can redistribute it and/or 6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License 7 * modify it under the terms of the GNU General Public License
@@ -20,34 +20,41 @@
20 * 82801BAM (ICH2-M) : document number 290687-002, 298242-027, 20 * 82801BAM (ICH2-M) : document number 290687-002, 298242-027,
21 * 82801CA (ICH3-S) : document number 290733-003, 290739-013, 21 * 82801CA (ICH3-S) : document number 290733-003, 290739-013,
22 * 82801CAM (ICH3-M) : document number 290716-001, 290718-007, 22 * 82801CAM (ICH3-M) : document number 290716-001, 290718-007,
23 * 82801DB (ICH4) : document number 290744-001, 290745-020, 23 * 82801DB (ICH4) : document number 290744-001, 290745-025,
24 * 82801DBM (ICH4-M) : document number 252337-001, 252663-005, 24 * 82801DBM (ICH4-M) : document number 252337-001, 252663-008,
25 * 82801E (C-ICH) : document number 273599-001, 273645-002, 25 * 82801E (C-ICH) : document number 273599-001, 273645-002,
26 * 82801EB (ICH5) : document number 252516-001, 252517-003, 26 * 82801EB (ICH5) : document number 252516-001, 252517-028,
27 * 82801ER (ICH5R) : document number 252516-001, 252517-003, 27 * 82801ER (ICH5R) : document number 252516-001, 252517-028,
28 * 82801FB (ICH6) : document number 301473-002, 301474-007, 28 * 6300ESB (6300ESB) : document number 300641-004, 300884-013,
29 * 82801FR (ICH6R) : document number 301473-002, 301474-007, 29 * 82801FB (ICH6) : document number 301473-002, 301474-026,
30 * 82801FBM (ICH6-M) : document number 301473-002, 301474-007, 30 * 82801FR (ICH6R) : document number 301473-002, 301474-026,
31 * 82801FW (ICH6W) : document number 301473-001, 301474-007, 31 * 82801FBM (ICH6-M) : document number 301473-002, 301474-026,
32 * 82801FRW (ICH6RW) : document number 301473-001, 301474-007, 32 * 82801FW (ICH6W) : document number 301473-001, 301474-026,
33 * 82801GB (ICH7) : document number 307013-002, 307014-009, 33 * 82801FRW (ICH6RW) : document number 301473-001, 301474-026,
34 * 82801GR (ICH7R) : document number 307013-002, 307014-009, 34 * 631xESB (631xESB) : document number 313082-001, 313075-006,
35 * 82801GDH (ICH7DH) : document number 307013-002, 307014-009, 35 * 632xESB (632xESB) : document number 313082-001, 313075-006,
36 * 82801GBM (ICH7-M) : document number 307013-002, 307014-009, 36 * 82801GB (ICH7) : document number 307013-003, 307014-024,
37 * 82801GHM (ICH7-M DH) : document number 307013-002, 307014-009, 37 * 82801GR (ICH7R) : document number 307013-003, 307014-024,
38 * 82801HB (ICH8) : document number 313056-003, 313057-009, 38 * 82801GDH (ICH7DH) : document number 307013-003, 307014-024,
39 * 82801HR (ICH8R) : document number 313056-003, 313057-009, 39 * 82801GBM (ICH7-M) : document number 307013-003, 307014-024,
40 * 82801HBM (ICH8M) : document number 313056-003, 313057-009, 40 * 82801GHM (ICH7-M DH) : document number 307013-003, 307014-024,
41 * 82801HH (ICH8DH) : document number 313056-003, 313057-009, 41 * 82801GU (ICH7-U) : document number 307013-003, 307014-024,
42 * 82801HO (ICH8DO) : document number 313056-003, 313057-009, 42 * 82801HB (ICH8) : document number 313056-003, 313057-017,
43 * 82801HEM (ICH8M-E) : document number 313056-003, 313057-009, 43 * 82801HR (ICH8R) : document number 313056-003, 313057-017,
44 * 82801IB (ICH9) : document number 316972-001, 316973-006, 44 * 82801HBM (ICH8M) : document number 313056-003, 313057-017,
45 * 82801IR (ICH9R) : document number 316972-001, 316973-006, 45 * 82801HH (ICH8DH) : document number 313056-003, 313057-017,
46 * 82801IH (ICH9DH) : document number 316972-001, 316973-006, 46 * 82801HO (ICH8DO) : document number 313056-003, 313057-017,
47 * 82801IO (ICH9DO) : document number 316972-001, 316973-006, 47 * 82801HEM (ICH8M-E) : document number 313056-003, 313057-017,
48 * 6300ESB (6300ESB) : document number 300641-003, 300884-010, 48 * 82801IB (ICH9) : document number 316972-004, 316973-012,
49 * 631xESB (631xESB) : document number 313082-001, 313075-005, 49 * 82801IR (ICH9R) : document number 316972-004, 316973-012,
50 * 632xESB (632xESB) : document number 313082-001, 313075-005 50 * 82801IH (ICH9DH) : document number 316972-004, 316973-012,
51 * 82801IO (ICH9DO) : document number 316972-004, 316973-012,
52 * 82801IBM (ICH9M) : document number 316972-004, 316973-012,
53 * 82801IEM (ICH9M-E) : document number 316972-004, 316973-012,
54 * 82801JIB (ICH10) : document number 319973-002, 319974-002,
55 * 82801JIR (ICH10R) : document number 319973-002, 319974-002,
56 * 82801JD (ICH10D) : document number 319973-002, 319974-002,
57 * 82801JDO (ICH10DO) : document number 319973-002, 319974-002
51 */ 58 */
52 59
53/* 60/*
@@ -56,8 +63,7 @@
56 63
57/* Module and version information */ 64/* Module and version information */
58#define DRV_NAME "iTCO_wdt" 65#define DRV_NAME "iTCO_wdt"
59#define DRV_VERSION "1.03" 66#define DRV_VERSION "1.04"
60#define DRV_RELDATE "30-Apr-2008"
61#define PFX DRV_NAME ": " 67#define PFX DRV_NAME ": "
62 68
63/* Includes */ 69/* Includes */
@@ -96,19 +102,26 @@ enum iTCO_chipsets {
96 TCO_ICH6, /* ICH6 & ICH6R */ 102 TCO_ICH6, /* ICH6 & ICH6R */
97 TCO_ICH6M, /* ICH6-M */ 103 TCO_ICH6M, /* ICH6-M */
98 TCO_ICH6W, /* ICH6W & ICH6RW */ 104 TCO_ICH6W, /* ICH6W & ICH6RW */
105 TCO_631XESB, /* 631xESB/632xESB */
99 TCO_ICH7, /* ICH7 & ICH7R */ 106 TCO_ICH7, /* ICH7 & ICH7R */
100 TCO_ICH7M, /* ICH7-M */ 107 TCO_ICH7DH, /* ICH7DH */
108 TCO_ICH7M, /* ICH7-M & ICH7-U */
101 TCO_ICH7MDH, /* ICH7-M DH */ 109 TCO_ICH7MDH, /* ICH7-M DH */
102 TCO_ICH8, /* ICH8 & ICH8R */ 110 TCO_ICH8, /* ICH8 & ICH8R */
103 TCO_ICH8ME, /* ICH8M-E */
104 TCO_ICH8DH, /* ICH8DH */ 111 TCO_ICH8DH, /* ICH8DH */
105 TCO_ICH8DO, /* ICH8DO */ 112 TCO_ICH8DO, /* ICH8DO */
106 TCO_ICH8M, /* ICH8M */ 113 TCO_ICH8M, /* ICH8M */
114 TCO_ICH8ME, /* ICH8M-E */
107 TCO_ICH9, /* ICH9 */ 115 TCO_ICH9, /* ICH9 */
108 TCO_ICH9R, /* ICH9R */ 116 TCO_ICH9R, /* ICH9R */
109 TCO_ICH9DH, /* ICH9DH */ 117 TCO_ICH9DH, /* ICH9DH */
110 TCO_ICH9DO, /* ICH9DO */ 118 TCO_ICH9DO, /* ICH9DO */
111 TCO_631XESB, /* 631xESB/632xESB */ 119 TCO_ICH9M, /* ICH9M */
120 TCO_ICH9ME, /* ICH9M-E */
121 TCO_ICH10, /* ICH10 */
122 TCO_ICH10R, /* ICH10R */
123 TCO_ICH10D, /* ICH10D */
124 TCO_ICH10DO, /* ICH10DO */
112}; 125};
113 126
114static struct { 127static struct {
@@ -129,19 +142,26 @@ static struct {
129 {"ICH6 or ICH6R", 2}, 142 {"ICH6 or ICH6R", 2},
130 {"ICH6-M", 2}, 143 {"ICH6-M", 2},
131 {"ICH6W or ICH6RW", 2}, 144 {"ICH6W or ICH6RW", 2},
145 {"631xESB/632xESB", 2},
132 {"ICH7 or ICH7R", 2}, 146 {"ICH7 or ICH7R", 2},
133 {"ICH7-M", 2}, 147 {"ICH7DH", 2},
148 {"ICH7-M or ICH7-U", 2},
134 {"ICH7-M DH", 2}, 149 {"ICH7-M DH", 2},
135 {"ICH8 or ICH8R", 2}, 150 {"ICH8 or ICH8R", 2},
136 {"ICH8M-E", 2},
137 {"ICH8DH", 2}, 151 {"ICH8DH", 2},
138 {"ICH8DO", 2}, 152 {"ICH8DO", 2},
139 {"ICH8M", 2}, 153 {"ICH8M", 2},
154 {"ICH8M-E", 2},
140 {"ICH9", 2}, 155 {"ICH9", 2},
141 {"ICH9R", 2}, 156 {"ICH9R", 2},
142 {"ICH9DH", 2}, 157 {"ICH9DH", 2},
143 {"ICH9DO", 2}, 158 {"ICH9DO", 2},
144 {"631xESB/632xESB", 2}, 159 {"ICH9M", 2},
160 {"ICH9M-E", 2},
161 {"ICH10", 2},
162 {"ICH10R", 2},
163 {"ICH10D", 2},
164 {"ICH10DO", 2},
145 {NULL, 0} 165 {NULL, 0}
146}; 166};
147 167
@@ -175,18 +195,6 @@ static struct pci_device_id iTCO_wdt_pci_tbl[] = {
175 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH6_0, TCO_ICH6)}, 195 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH6_0, TCO_ICH6)},
176 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH6_1, TCO_ICH6M)}, 196 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH6_1, TCO_ICH6M)},
177 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH6_2, TCO_ICH6W)}, 197 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH6_2, TCO_ICH6W)},
178 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH7_0, TCO_ICH7)},
179 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH7_1, TCO_ICH7M)},
180 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH7_31, TCO_ICH7MDH)},
181 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_0, TCO_ICH8)},
182 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_1, TCO_ICH8ME)},
183 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_2, TCO_ICH8DH)},
184 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_3, TCO_ICH8DO)},
185 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_4, TCO_ICH8M)},
186 { ITCO_PCI_DEVICE(0x2918, TCO_ICH9)},
187 { ITCO_PCI_DEVICE(0x2916, TCO_ICH9R)},
188 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH9_2, TCO_ICH9DH)},
189 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH9_4, TCO_ICH9DO)},
190 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ESB2_0, TCO_631XESB)}, 198 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ESB2_0, TCO_631XESB)},
191 { ITCO_PCI_DEVICE(0x2671, TCO_631XESB)}, 199 { ITCO_PCI_DEVICE(0x2671, TCO_631XESB)},
192 { ITCO_PCI_DEVICE(0x2672, TCO_631XESB)}, 200 { ITCO_PCI_DEVICE(0x2672, TCO_631XESB)},
@@ -203,6 +211,25 @@ static struct pci_device_id iTCO_wdt_pci_tbl[] = {
203 { ITCO_PCI_DEVICE(0x267d, TCO_631XESB)}, 211 { ITCO_PCI_DEVICE(0x267d, TCO_631XESB)},
204 { ITCO_PCI_DEVICE(0x267e, TCO_631XESB)}, 212 { ITCO_PCI_DEVICE(0x267e, TCO_631XESB)},
205 { ITCO_PCI_DEVICE(0x267f, TCO_631XESB)}, 213 { ITCO_PCI_DEVICE(0x267f, TCO_631XESB)},
214 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH7_0, TCO_ICH7)},
215 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH7_30, TCO_ICH7DH)},
216 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH7_1, TCO_ICH7M)},
217 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH7_31, TCO_ICH7MDH)},
218 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_0, TCO_ICH8)},
219 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_2, TCO_ICH8DH)},
220 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_3, TCO_ICH8DO)},
221 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_4, TCO_ICH8M)},
222 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH8_1, TCO_ICH8ME)},
223 { ITCO_PCI_DEVICE(0x2918, TCO_ICH9)},
224 { ITCO_PCI_DEVICE(0x2916, TCO_ICH9R)},
225 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH9_2, TCO_ICH9DH)},
226 { ITCO_PCI_DEVICE(PCI_DEVICE_ID_INTEL_ICH9_4, TCO_ICH9DO)},
227 { ITCO_PCI_DEVICE(0x2919, TCO_ICH9M)},
228 { ITCO_PCI_DEVICE(0x2917, TCO_ICH9ME)},
229 { ITCO_PCI_DEVICE(0x3a18, TCO_ICH10)},
230 { ITCO_PCI_DEVICE(0x3a16, TCO_ICH10R)},
231 { ITCO_PCI_DEVICE(0x3a1a, TCO_ICH10D)},
232 { ITCO_PCI_DEVICE(0x3a14, TCO_ICH10DO)},
206 { 0, }, /* End of list */ 233 { 0, }, /* End of list */
207}; 234};
208MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl); 235MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl);
@@ -311,6 +338,7 @@ static int iTCO_wdt_unset_NO_REBOOT_bit(void)
311static int iTCO_wdt_start(void) 338static int iTCO_wdt_start(void)
312{ 339{
313 unsigned int val; 340 unsigned int val;
341 unsigned long val32;
314 342
315 spin_lock(&iTCO_wdt_private.io_lock); 343 spin_lock(&iTCO_wdt_private.io_lock);
316 344
@@ -323,6 +351,18 @@ static int iTCO_wdt_start(void)
323 return -EIO; 351 return -EIO;
324 } 352 }
325 353
354 /* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */
355 val32 = inl(SMI_EN);
356 val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
357 outl(val32, SMI_EN);
358
359 /* Force the timer to its reload value by writing to the TCO_RLD
360 register */
361 if (iTCO_wdt_private.iTCO_version == 2)
362 outw(0x01, TCO_RLD);
363 else if (iTCO_wdt_private.iTCO_version == 1)
364 outb(0x01, TCO_RLD);
365
326 /* Bit 11: TCO Timer Halt -> 0 = The TCO timer is enabled to count */ 366 /* Bit 11: TCO Timer Halt -> 0 = The TCO timer is enabled to count */
327 val = inw(TCO1_CNT); 367 val = inw(TCO1_CNT);
328 val &= 0xf7ff; 368 val &= 0xf7ff;
@@ -338,6 +378,7 @@ static int iTCO_wdt_start(void)
338static int iTCO_wdt_stop(void) 378static int iTCO_wdt_stop(void)
339{ 379{
340 unsigned int val; 380 unsigned int val;
381 unsigned long val32;
341 382
342 spin_lock(&iTCO_wdt_private.io_lock); 383 spin_lock(&iTCO_wdt_private.io_lock);
343 384
@@ -349,6 +390,11 @@ static int iTCO_wdt_stop(void)
349 outw(val, TCO1_CNT); 390 outw(val, TCO1_CNT);
350 val = inw(TCO1_CNT); 391 val = inw(TCO1_CNT);
351 392
393 /* Bit 13: TCO_EN -> 1 = Enables the TCO logic to generate SMI# */
394 val32 = inl(SMI_EN);
395 val32 |= 0x00002000;
396 outl(val32, SMI_EN);
397
352 /* Set the NO_REBOOT bit to prevent later reboots, just for sure */ 398 /* Set the NO_REBOOT bit to prevent later reboots, just for sure */
353 iTCO_wdt_set_NO_REBOOT_bit(); 399 iTCO_wdt_set_NO_REBOOT_bit();
354 400
@@ -459,7 +505,6 @@ static int iTCO_wdt_open(struct inode *inode, struct file *file)
459 /* 505 /*
460 * Reload and activate timer 506 * Reload and activate timer
461 */ 507 */
462 iTCO_wdt_keepalive();
463 iTCO_wdt_start(); 508 iTCO_wdt_start();
464 return nonseekable_open(inode, file); 509 return nonseekable_open(inode, file);
465} 510}
@@ -604,7 +649,6 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
604 int ret; 649 int ret;
605 u32 base_address; 650 u32 base_address;
606 unsigned long RCBA; 651 unsigned long RCBA;
607 unsigned long val32;
608 652
609 /* 653 /*
610 * Find the ACPI/PM base I/O address which is the base 654 * Find the ACPI/PM base I/O address which is the base
@@ -644,17 +688,13 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
644 /* Set the NO_REBOOT bit to prevent later reboots, just for sure */ 688 /* Set the NO_REBOOT bit to prevent later reboots, just for sure */
645 iTCO_wdt_set_NO_REBOOT_bit(); 689 iTCO_wdt_set_NO_REBOOT_bit();
646 690
647 /* Set the TCO_EN bit in SMI_EN register */ 691 /* The TCO logic uses the TCO_EN bit in the SMI_EN register */
648 if (!request_region(SMI_EN, 4, "iTCO_wdt")) { 692 if (!request_region(SMI_EN, 4, "iTCO_wdt")) {
649 printk(KERN_ERR PFX 693 printk(KERN_ERR PFX
650 "I/O address 0x%04lx already in use\n", SMI_EN); 694 "I/O address 0x%04lx already in use\n", SMI_EN);
651 ret = -EIO; 695 ret = -EIO;
652 goto out; 696 goto out;
653 } 697 }
654 val32 = inl(SMI_EN);
655 val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
656 outl(val32, SMI_EN);
657 release_region(SMI_EN, 4);
658 698
659 /* The TCO I/O registers reside in a 32-byte range pointed to 699 /* The TCO I/O registers reside in a 32-byte range pointed to
660 by the TCOBASE value */ 700 by the TCOBASE value */
@@ -662,7 +702,7 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
662 printk(KERN_ERR PFX "I/O address 0x%04lx already in use\n", 702 printk(KERN_ERR PFX "I/O address 0x%04lx already in use\n",
663 TCOBASE); 703 TCOBASE);
664 ret = -EIO; 704 ret = -EIO;
665 goto out; 705 goto unreg_smi_en;
666 } 706 }
667 707
668 printk(KERN_INFO PFX 708 printk(KERN_INFO PFX
@@ -672,8 +712,9 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
672 TCOBASE); 712 TCOBASE);
673 713
674 /* Clear out the (probably old) status */ 714 /* Clear out the (probably old) status */
675 outb(0, TCO1_STS); 715 outb(8, TCO1_STS); /* Clear the Time Out Status bit */
676 outb(3, TCO2_STS); 716 outb(2, TCO2_STS); /* Clear SECOND_TO_STS bit */
717 outb(4, TCO2_STS); /* Clear BOOT_STS bit */
677 718
678 /* Make sure the watchdog is not running */ 719 /* Make sure the watchdog is not running */
679 iTCO_wdt_stop(); 720 iTCO_wdt_stop();
@@ -701,6 +742,8 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
701 742
702unreg_region: 743unreg_region:
703 release_region(TCOBASE, 0x20); 744 release_region(TCOBASE, 0x20);
745unreg_smi_en:
746 release_region(SMI_EN, 4);
704out: 747out:
705 if (iTCO_wdt_private.iTCO_version == 2) 748 if (iTCO_wdt_private.iTCO_version == 2)
706 iounmap(iTCO_wdt_private.gcs); 749 iounmap(iTCO_wdt_private.gcs);
@@ -718,6 +761,7 @@ static void __devexit iTCO_wdt_cleanup(void)
718 /* Deregister */ 761 /* Deregister */
719 misc_deregister(&iTCO_wdt_miscdev); 762 misc_deregister(&iTCO_wdt_miscdev);
720 release_region(TCOBASE, 0x20); 763 release_region(TCOBASE, 0x20);
764 release_region(SMI_EN, 4);
721 if (iTCO_wdt_private.iTCO_version == 2) 765 if (iTCO_wdt_private.iTCO_version == 2)
722 iounmap(iTCO_wdt_private.gcs); 766 iounmap(iTCO_wdt_private.gcs);
723 pci_dev_put(iTCO_wdt_private.pdev); 767 pci_dev_put(iTCO_wdt_private.pdev);
@@ -782,8 +826,8 @@ static int __init iTCO_wdt_init_module(void)
782{ 826{
783 int err; 827 int err;
784 828
785 printk(KERN_INFO PFX "Intel TCO WatchDog Timer Driver v%s (%s)\n", 829 printk(KERN_INFO PFX "Intel TCO WatchDog Timer Driver v%s\n",
786 DRV_VERSION, DRV_RELDATE); 830 DRV_VERSION);
787 831
788 err = platform_driver_register(&iTCO_wdt_driver); 832 err = platform_driver_register(&iTCO_wdt_driver);
789 if (err) 833 if (err)
diff --git a/drivers/watchdog/mtx-1_wdt.c b/drivers/watchdog/mtx-1_wdt.c
index b4b7b0a4c119..3acce623f209 100644
--- a/drivers/watchdog/mtx-1_wdt.c
+++ b/drivers/watchdog/mtx-1_wdt.c
@@ -98,6 +98,8 @@ static void mtx1_wdt_reset(void)
98 98
99static void mtx1_wdt_start(void) 99static void mtx1_wdt_start(void)
100{ 100{
101 unsigned long flags;
102
101 spin_lock_irqsave(&mtx1_wdt_device.lock, flags); 103 spin_lock_irqsave(&mtx1_wdt_device.lock, flags);
102 if (!mtx1_wdt_device.queue) { 104 if (!mtx1_wdt_device.queue) {
103 mtx1_wdt_device.queue = 1; 105 mtx1_wdt_device.queue = 1;
@@ -110,6 +112,8 @@ static void mtx1_wdt_start(void)
110 112
111static int mtx1_wdt_stop(void) 113static int mtx1_wdt_stop(void)
112{ 114{
115 unsigned long flags;
116
113 spin_lock_irqsave(&mtx1_wdt_device.lock, flags); 117 spin_lock_irqsave(&mtx1_wdt_device.lock, flags);
114 if (mtx1_wdt_device.queue) { 118 if (mtx1_wdt_device.queue) {
115 mtx1_wdt_device.queue = 0; 119 mtx1_wdt_device.queue = 0;
diff --git a/fs/9p/fid.c b/fs/9p/fid.c
index 3031e3233dd6..2a983d49d19c 100644
--- a/fs/9p/fid.c
+++ b/fs/9p/fid.c
@@ -45,7 +45,7 @@ int v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid)
45 struct v9fs_dentry *dent; 45 struct v9fs_dentry *dent;
46 46
47 P9_DPRINTK(P9_DEBUG_VFS, "fid %d dentry %s\n", 47 P9_DPRINTK(P9_DEBUG_VFS, "fid %d dentry %s\n",
48 fid->fid, dentry->d_iname); 48 fid->fid, dentry->d_name.name);
49 49
50 dent = dentry->d_fsdata; 50 dent = dentry->d_fsdata;
51 if (!dent) { 51 if (!dent) {
@@ -79,7 +79,7 @@ static struct p9_fid *v9fs_fid_find(struct dentry *dentry, u32 uid, int any)
79 struct p9_fid *fid, *ret; 79 struct p9_fid *fid, *ret;
80 80
81 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p) uid %d any %d\n", 81 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p) uid %d any %d\n",
82 dentry->d_iname, dentry, uid, any); 82 dentry->d_name.name, dentry, uid, any);
83 dent = (struct v9fs_dentry *) dentry->d_fsdata; 83 dent = (struct v9fs_dentry *) dentry->d_fsdata;
84 ret = NULL; 84 ret = NULL;
85 if (dent) { 85 if (dent) {
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index 24eb01087b6d..332b5ff02fec 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -160,7 +160,7 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses)
160 v9ses->flags |= V9FS_ACCESS_ANY; 160 v9ses->flags |= V9FS_ACCESS_ANY;
161 else { 161 else {
162 v9ses->flags |= V9FS_ACCESS_SINGLE; 162 v9ses->flags |= V9FS_ACCESS_SINGLE;
163 v9ses->uid = simple_strtol(s, &e, 10); 163 v9ses->uid = simple_strtoul(s, &e, 10);
164 if (*e != '\0') 164 if (*e != '\0')
165 v9ses->uid = ~0; 165 v9ses->uid = ~0;
166 } 166 }
diff --git a/fs/9p/vfs_dentry.c b/fs/9p/vfs_dentry.c
index f9534f18df0a..06dcc7c4f234 100644
--- a/fs/9p/vfs_dentry.c
+++ b/fs/9p/vfs_dentry.c
@@ -52,7 +52,8 @@
52 52
53static int v9fs_dentry_delete(struct dentry *dentry) 53static int v9fs_dentry_delete(struct dentry *dentry)
54{ 54{
55 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry); 55 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_name.name,
56 dentry);
56 57
57 return 1; 58 return 1;
58} 59}
@@ -69,7 +70,8 @@ static int v9fs_dentry_delete(struct dentry *dentry)
69static int v9fs_cached_dentry_delete(struct dentry *dentry) 70static int v9fs_cached_dentry_delete(struct dentry *dentry)
70{ 71{
71 struct inode *inode = dentry->d_inode; 72 struct inode *inode = dentry->d_inode;
72 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry); 73 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_name.name,
74 dentry);
73 75
74 if(!inode) 76 if(!inode)
75 return 1; 77 return 1;
@@ -88,7 +90,8 @@ void v9fs_dentry_release(struct dentry *dentry)
88 struct v9fs_dentry *dent; 90 struct v9fs_dentry *dent;
89 struct p9_fid *temp, *current_fid; 91 struct p9_fid *temp, *current_fid;
90 92
91 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry); 93 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_name.name,
94 dentry);
92 dent = dentry->d_fsdata; 95 dent = dentry->d_fsdata;
93 if (dent) { 96 if (dent) {
94 list_for_each_entry_safe(current_fid, temp, &dent->fidlist, 97 list_for_each_entry_safe(current_fid, temp, &dent->fidlist,
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index 8314d3f43b71..2dfcf5487efe 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -963,7 +963,8 @@ static int v9fs_vfs_readlink(struct dentry *dentry, char __user * buffer,
963 if (buflen > PATH_MAX) 963 if (buflen > PATH_MAX)
964 buflen = PATH_MAX; 964 buflen = PATH_MAX;
965 965
966 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry); 966 P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_name.name,
967 dentry);
967 968
968 retval = v9fs_readlink(dentry, link, buflen); 969 retval = v9fs_readlink(dentry, link, buflen);
969 970
@@ -1022,7 +1023,8 @@ v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
1022{ 1023{
1023 char *s = nd_get_link(nd); 1024 char *s = nd_get_link(nd);
1024 1025
1025 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name, s); 1026 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name,
1027 IS_ERR(s) ? "<error>" : s);
1026 if (!IS_ERR(s)) 1028 if (!IS_ERR(s))
1027 __putname(s); 1029 __putname(s);
1028} 1030}
diff --git a/fs/block_dev.c b/fs/block_dev.c
index db831efbdbbd..99e0ae1a4c78 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1135,12 +1135,15 @@ static int blkdev_open(struct inode * inode, struct file * filp)
1135 if (res) 1135 if (res)
1136 return res; 1136 return res;
1137 1137
1138 if (!(filp->f_mode & FMODE_EXCL)) 1138 if (filp->f_mode & FMODE_EXCL) {
1139 return 0; 1139 res = bd_claim(bdev, filp);
1140 if (res)
1141 goto out_blkdev_put;
1142 }
1140 1143
1141 if (!(res = bd_claim(bdev, filp))) 1144 return 0;
1142 return 0;
1143 1145
1146 out_blkdev_put:
1144 blkdev_put(bdev, filp->f_mode); 1147 blkdev_put(bdev, filp->f_mode);
1145 return res; 1148 return res;
1146} 1149}
@@ -1203,8 +1206,16 @@ static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg)
1203{ 1206{
1204 struct block_device *bdev = I_BDEV(file->f_mapping->host); 1207 struct block_device *bdev = I_BDEV(file->f_mapping->host);
1205 fmode_t mode = file->f_mode; 1208 fmode_t mode = file->f_mode;
1209
1210 /*
1211 * O_NDELAY can be altered using fcntl(.., F_SETFL, ..), so we have
1212 * to updated it before every ioctl.
1213 */
1206 if (file->f_flags & O_NDELAY) 1214 if (file->f_flags & O_NDELAY)
1207 mode |= FMODE_NDELAY_NOW; 1215 mode |= FMODE_NDELAY;
1216 else
1217 mode &= ~FMODE_NDELAY;
1218
1208 return blkdev_ioctl(bdev, mode, cmd, arg); 1219 return blkdev_ioctl(bdev, mode, cmd, arg);
1209} 1220}
1210 1221
diff --git a/fs/buffer.c b/fs/buffer.c
index 6569fda5cfed..10179cfa1152 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -878,6 +878,7 @@ void invalidate_inode_buffers(struct inode *inode)
878 spin_unlock(&buffer_mapping->private_lock); 878 spin_unlock(&buffer_mapping->private_lock);
879 } 879 }
880} 880}
881EXPORT_SYMBOL(invalidate_inode_buffers);
881 882
882/* 883/*
883 * Remove any clean buffers from the inode's buffer list. This is called 884 * Remove any clean buffers from the inode's buffer list. This is called
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 2af8626ced43..6d51696dc762 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -3983,7 +3983,8 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
3983 3983
3984 node->flags = le16_to_cpu(pSMBr->DFSFlags); 3984 node->flags = le16_to_cpu(pSMBr->DFSFlags);
3985 if (is_unicode) { 3985 if (is_unicode) {
3986 __le16 *tmp = kmalloc(strlen(searchName)*2, GFP_KERNEL); 3986 __le16 *tmp = kmalloc(strlen(searchName)*2 + 2,
3987 GFP_KERNEL);
3987 cifsConvertToUCS((__le16 *) tmp, searchName, 3988 cifsConvertToUCS((__le16 *) tmp, searchName,
3988 PATH_MAX, nls_codepage, remap); 3989 PATH_MAX, nls_codepage, remap);
3989 node->path_consumed = hostlen_fromUCS(tmp, 3990 node->path_consumed = hostlen_fromUCS(tmp,
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index b691b893a848..f0a81e631ae6 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -1475,7 +1475,11 @@ static int cifs_write_end(struct file *file, struct address_space *mapping,
1475 cFYI(1, ("write_end for page %p from pos %lld with %d bytes", 1475 cFYI(1, ("write_end for page %p from pos %lld with %d bytes",
1476 page, pos, copied)); 1476 page, pos, copied));
1477 1477
1478 if (!PageUptodate(page) && copied == PAGE_CACHE_SIZE) 1478 if (PageChecked(page)) {
1479 if (copied == len)
1480 SetPageUptodate(page);
1481 ClearPageChecked(page);
1482 } else if (!PageUptodate(page) && copied == PAGE_CACHE_SIZE)
1479 SetPageUptodate(page); 1483 SetPageUptodate(page);
1480 1484
1481 if (!PageUptodate(page)) { 1485 if (!PageUptodate(page)) {
@@ -2062,39 +2066,70 @@ static int cifs_write_begin(struct file *file, struct address_space *mapping,
2062{ 2066{
2063 pgoff_t index = pos >> PAGE_CACHE_SHIFT; 2067 pgoff_t index = pos >> PAGE_CACHE_SHIFT;
2064 loff_t offset = pos & (PAGE_CACHE_SIZE - 1); 2068 loff_t offset = pos & (PAGE_CACHE_SIZE - 1);
2069 loff_t page_start = pos & PAGE_MASK;
2070 loff_t i_size;
2071 struct page *page;
2072 int rc = 0;
2065 2073
2066 cFYI(1, ("write_begin from %lld len %d", (long long)pos, len)); 2074 cFYI(1, ("write_begin from %lld len %d", (long long)pos, len));
2067 2075
2068 *pagep = __grab_cache_page(mapping, index); 2076 page = __grab_cache_page(mapping, index);
2069 if (!*pagep) 2077 if (!page) {
2070 return -ENOMEM; 2078 rc = -ENOMEM;
2071 2079 goto out;
2072 if (PageUptodate(*pagep)) 2080 }
2073 return 0;
2074 2081
2075 /* If we are writing a full page it will be up to date, 2082 if (PageUptodate(page))
2076 no need to read from the server */ 2083 goto out;
2077 if (len == PAGE_CACHE_SIZE && flags & AOP_FLAG_UNINTERRUPTIBLE)
2078 return 0;
2079 2084
2080 if ((file->f_flags & O_ACCMODE) != O_WRONLY) { 2085 /*
2081 int rc; 2086 * If we write a full page it will be up to date, no need to read from
2087 * the server. If the write is short, we'll end up doing a sync write
2088 * instead.
2089 */
2090 if (len == PAGE_CACHE_SIZE)
2091 goto out;
2082 2092
2083 /* might as well read a page, it is fast enough */ 2093 /*
2084 rc = cifs_readpage_worker(file, *pagep, &offset); 2094 * optimize away the read when we have an oplock, and we're not
2095 * expecting to use any of the data we'd be reading in. That
2096 * is, when the page lies beyond the EOF, or straddles the EOF
2097 * and the write will cover all of the existing data.
2098 */
2099 if (CIFS_I(mapping->host)->clientCanCacheRead) {
2100 i_size = i_size_read(mapping->host);
2101 if (page_start >= i_size ||
2102 (offset == 0 && (pos + len) >= i_size)) {
2103 zero_user_segments(page, 0, offset,
2104 offset + len,
2105 PAGE_CACHE_SIZE);
2106 /*
2107 * PageChecked means that the parts of the page
2108 * to which we're not writing are considered up
2109 * to date. Once the data is copied to the
2110 * page, it can be set uptodate.
2111 */
2112 SetPageChecked(page);
2113 goto out;
2114 }
2115 }
2085 2116
2086 /* we do not need to pass errors back 2117 if ((file->f_flags & O_ACCMODE) != O_WRONLY) {
2087 e.g. if we do not have read access to the file 2118 /*
2088 because cifs_write_end will attempt synchronous writes 2119 * might as well read a page, it is fast enough. If we get
2089 -- shaggy */ 2120 * an error, we don't need to return it. cifs_write_end will
2121 * do a sync write instead since PG_uptodate isn't set.
2122 */
2123 cifs_readpage_worker(file, page, &page_start);
2090 } else { 2124 } else {
2091 /* we could try using another file handle if there is one - 2125 /* we could try using another file handle if there is one -
2092 but how would we lock it to prevent close of that handle 2126 but how would we lock it to prevent close of that handle
2093 racing with this read? In any case 2127 racing with this read? In any case
2094 this will be written out by write_end so is fine */ 2128 this will be written out by write_end so is fine */
2095 } 2129 }
2096 2130out:
2097 return 0; 2131 *pagep = page;
2132 return rc;
2098} 2133}
2099 2134
2100const struct address_space_operations cifs_addr_ops = { 2135const struct address_space_operations cifs_addr_ops = {
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index aec5c13f6341..96355d505347 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -102,6 +102,8 @@
102 102
103#define EP_UNACTIVE_PTR ((void *) -1L) 103#define EP_UNACTIVE_PTR ((void *) -1L)
104 104
105#define EP_ITEM_COST (sizeof(struct epitem) + sizeof(struct eppoll_entry))
106
105struct epoll_filefd { 107struct epoll_filefd {
106 struct file *file; 108 struct file *file;
107 int fd; 109 int fd;
@@ -200,6 +202,9 @@ struct eventpoll {
200 * holding ->lock. 202 * holding ->lock.
201 */ 203 */
202 struct epitem *ovflist; 204 struct epitem *ovflist;
205
206 /* The user that created the eventpoll descriptor */
207 struct user_struct *user;
203}; 208};
204 209
205/* Wait structure used by the poll hooks */ 210/* Wait structure used by the poll hooks */
@@ -227,9 +232,17 @@ struct ep_pqueue {
227}; 232};
228 233
229/* 234/*
235 * Configuration options available inside /proc/sys/fs/epoll/
236 */
237/* Maximum number of epoll devices, per user */
238static int max_user_instances __read_mostly;
239/* Maximum number of epoll watched descriptors, per user */
240static int max_user_watches __read_mostly;
241
242/*
230 * This mutex is used to serialize ep_free() and eventpoll_release_file(). 243 * This mutex is used to serialize ep_free() and eventpoll_release_file().
231 */ 244 */
232static struct mutex epmutex; 245static DEFINE_MUTEX(epmutex);
233 246
234/* Safe wake up implementation */ 247/* Safe wake up implementation */
235static struct poll_safewake psw; 248static struct poll_safewake psw;
@@ -240,6 +253,33 @@ static struct kmem_cache *epi_cache __read_mostly;
240/* Slab cache used to allocate "struct eppoll_entry" */ 253/* Slab cache used to allocate "struct eppoll_entry" */
241static struct kmem_cache *pwq_cache __read_mostly; 254static struct kmem_cache *pwq_cache __read_mostly;
242 255
256#ifdef CONFIG_SYSCTL
257
258#include <linux/sysctl.h>
259
260static int zero;
261
262ctl_table epoll_table[] = {
263 {
264 .procname = "max_user_instances",
265 .data = &max_user_instances,
266 .maxlen = sizeof(int),
267 .mode = 0644,
268 .proc_handler = &proc_dointvec_minmax,
269 .extra1 = &zero,
270 },
271 {
272 .procname = "max_user_watches",
273 .data = &max_user_watches,
274 .maxlen = sizeof(int),
275 .mode = 0644,
276 .proc_handler = &proc_dointvec_minmax,
277 .extra1 = &zero,
278 },
279 { .ctl_name = 0 }
280};
281#endif /* CONFIG_SYSCTL */
282
243 283
244/* Setup the structure that is used as key for the RB tree */ 284/* Setup the structure that is used as key for the RB tree */
245static inline void ep_set_ffd(struct epoll_filefd *ffd, 285static inline void ep_set_ffd(struct epoll_filefd *ffd,
@@ -402,6 +442,8 @@ static int ep_remove(struct eventpoll *ep, struct epitem *epi)
402 /* At this point it is safe to free the eventpoll item */ 442 /* At this point it is safe to free the eventpoll item */
403 kmem_cache_free(epi_cache, epi); 443 kmem_cache_free(epi_cache, epi);
404 444
445 atomic_dec(&ep->user->epoll_watches);
446
405 DNPRINTK(3, (KERN_INFO "[%p] eventpoll: ep_remove(%p, %p)\n", 447 DNPRINTK(3, (KERN_INFO "[%p] eventpoll: ep_remove(%p, %p)\n",
406 current, ep, file)); 448 current, ep, file));
407 449
@@ -449,6 +491,8 @@ static void ep_free(struct eventpoll *ep)
449 491
450 mutex_unlock(&epmutex); 492 mutex_unlock(&epmutex);
451 mutex_destroy(&ep->mtx); 493 mutex_destroy(&ep->mtx);
494 atomic_dec(&ep->user->epoll_devs);
495 free_uid(ep->user);
452 kfree(ep); 496 kfree(ep);
453} 497}
454 498
@@ -532,10 +576,19 @@ void eventpoll_release_file(struct file *file)
532 576
533static int ep_alloc(struct eventpoll **pep) 577static int ep_alloc(struct eventpoll **pep)
534{ 578{
535 struct eventpoll *ep = kzalloc(sizeof(*ep), GFP_KERNEL); 579 int error;
580 struct user_struct *user;
581 struct eventpoll *ep;
536 582
537 if (!ep) 583 user = get_current_user();
538 return -ENOMEM; 584 error = -EMFILE;
585 if (unlikely(atomic_read(&user->epoll_devs) >=
586 max_user_instances))
587 goto free_uid;
588 error = -ENOMEM;
589 ep = kzalloc(sizeof(*ep), GFP_KERNEL);
590 if (unlikely(!ep))
591 goto free_uid;
539 592
540 spin_lock_init(&ep->lock); 593 spin_lock_init(&ep->lock);
541 mutex_init(&ep->mtx); 594 mutex_init(&ep->mtx);
@@ -544,12 +597,17 @@ static int ep_alloc(struct eventpoll **pep)
544 INIT_LIST_HEAD(&ep->rdllist); 597 INIT_LIST_HEAD(&ep->rdllist);
545 ep->rbr = RB_ROOT; 598 ep->rbr = RB_ROOT;
546 ep->ovflist = EP_UNACTIVE_PTR; 599 ep->ovflist = EP_UNACTIVE_PTR;
600 ep->user = user;
547 601
548 *pep = ep; 602 *pep = ep;
549 603
550 DNPRINTK(3, (KERN_INFO "[%p] eventpoll: ep_alloc() ep=%p\n", 604 DNPRINTK(3, (KERN_INFO "[%p] eventpoll: ep_alloc() ep=%p\n",
551 current, ep)); 605 current, ep));
552 return 0; 606 return 0;
607
608free_uid:
609 free_uid(user);
610 return error;
553} 611}
554 612
555/* 613/*
@@ -703,9 +761,11 @@ static int ep_insert(struct eventpoll *ep, struct epoll_event *event,
703 struct epitem *epi; 761 struct epitem *epi;
704 struct ep_pqueue epq; 762 struct ep_pqueue epq;
705 763
706 error = -ENOMEM; 764 if (unlikely(atomic_read(&ep->user->epoll_watches) >=
765 max_user_watches))
766 return -ENOSPC;
707 if (!(epi = kmem_cache_alloc(epi_cache, GFP_KERNEL))) 767 if (!(epi = kmem_cache_alloc(epi_cache, GFP_KERNEL)))
708 goto error_return; 768 return -ENOMEM;
709 769
710 /* Item initialization follow here ... */ 770 /* Item initialization follow here ... */
711 INIT_LIST_HEAD(&epi->rdllink); 771 INIT_LIST_HEAD(&epi->rdllink);
@@ -735,6 +795,7 @@ static int ep_insert(struct eventpoll *ep, struct epoll_event *event,
735 * install process. Namely an allocation for a wait queue failed due 795 * install process. Namely an allocation for a wait queue failed due
736 * high memory pressure. 796 * high memory pressure.
737 */ 797 */
798 error = -ENOMEM;
738 if (epi->nwait < 0) 799 if (epi->nwait < 0)
739 goto error_unregister; 800 goto error_unregister;
740 801
@@ -765,6 +826,8 @@ static int ep_insert(struct eventpoll *ep, struct epoll_event *event,
765 826
766 spin_unlock_irqrestore(&ep->lock, flags); 827 spin_unlock_irqrestore(&ep->lock, flags);
767 828
829 atomic_inc(&ep->user->epoll_watches);
830
768 /* We have to call this outside the lock */ 831 /* We have to call this outside the lock */
769 if (pwake) 832 if (pwake)
770 ep_poll_safewake(&psw, &ep->poll_wait); 833 ep_poll_safewake(&psw, &ep->poll_wait);
@@ -789,7 +852,7 @@ error_unregister:
789 spin_unlock_irqrestore(&ep->lock, flags); 852 spin_unlock_irqrestore(&ep->lock, flags);
790 853
791 kmem_cache_free(epi_cache, epi); 854 kmem_cache_free(epi_cache, epi);
792error_return: 855
793 return error; 856 return error;
794} 857}
795 858
@@ -1078,6 +1141,7 @@ asmlinkage long sys_epoll_create1(int flags)
1078 flags & O_CLOEXEC); 1141 flags & O_CLOEXEC);
1079 if (fd < 0) 1142 if (fd < 0)
1080 ep_free(ep); 1143 ep_free(ep);
1144 atomic_inc(&ep->user->epoll_devs);
1081 1145
1082error_return: 1146error_return:
1083 DNPRINTK(3, (KERN_INFO "[%p] eventpoll: sys_epoll_create(%d) = %d\n", 1147 DNPRINTK(3, (KERN_INFO "[%p] eventpoll: sys_epoll_create(%d) = %d\n",
@@ -1299,7 +1363,12 @@ asmlinkage long sys_epoll_pwait(int epfd, struct epoll_event __user *events,
1299 1363
1300static int __init eventpoll_init(void) 1364static int __init eventpoll_init(void)
1301{ 1365{
1302 mutex_init(&epmutex); 1366 struct sysinfo si;
1367
1368 si_meminfo(&si);
1369 max_user_instances = 128;
1370 max_user_watches = (((si.totalram - si.totalhigh) / 32) << PAGE_SHIFT) /
1371 EP_ITEM_COST;
1303 1372
1304 /* Initialize the structure used to perform safe poll wait head wake ups */ 1373 /* Initialize the structure used to perform safe poll wait head wake ups */
1305 ep_poll_safewake_init(&psw); 1374 ep_poll_safewake_init(&psw);
diff --git a/fs/exec.c b/fs/exec.c
index 4e834f16d9da..ec5df9a38313 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1159,6 +1159,7 @@ EXPORT_SYMBOL(remove_arg_zero);
1159 */ 1159 */
1160int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs) 1160int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
1161{ 1161{
1162 unsigned int depth = bprm->recursion_depth;
1162 int try,retval; 1163 int try,retval;
1163 struct linux_binfmt *fmt; 1164 struct linux_binfmt *fmt;
1164#ifdef __alpha__ 1165#ifdef __alpha__
@@ -1219,8 +1220,15 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
1219 continue; 1220 continue;
1220 read_unlock(&binfmt_lock); 1221 read_unlock(&binfmt_lock);
1221 retval = fn(bprm, regs); 1222 retval = fn(bprm, regs);
1223 /*
1224 * Restore the depth counter to its starting value
1225 * in this call, so we don't have to rely on every
1226 * load_binary function to restore it on return.
1227 */
1228 bprm->recursion_depth = depth;
1222 if (retval >= 0) { 1229 if (retval >= 0) {
1223 tracehook_report_exec(fmt, bprm, regs); 1230 if (depth == 0)
1231 tracehook_report_exec(fmt, bprm, regs);
1224 put_binfmt(fmt); 1232 put_binfmt(fmt);
1225 allow_write_access(bprm->file); 1233 allow_write_access(bprm->file);
1226 if (bprm->file) 1234 if (bprm->file)
diff --git a/fs/exportfs/expfs.c b/fs/exportfs/expfs.c
index 80246bad1b7f..890e01828817 100644
--- a/fs/exportfs/expfs.c
+++ b/fs/exportfs/expfs.c
@@ -367,6 +367,8 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
367 * Try to get any dentry for the given file handle from the filesystem. 367 * Try to get any dentry for the given file handle from the filesystem.
368 */ 368 */
369 result = nop->fh_to_dentry(mnt->mnt_sb, fid, fh_len, fileid_type); 369 result = nop->fh_to_dentry(mnt->mnt_sb, fid, fh_len, fileid_type);
370 if (!result)
371 result = ERR_PTR(-ESTALE);
370 if (IS_ERR(result)) 372 if (IS_ERR(result))
371 return result; 373 return result;
372 374
@@ -420,6 +422,8 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
420 422
421 target_dir = nop->fh_to_parent(mnt->mnt_sb, fid, 423 target_dir = nop->fh_to_parent(mnt->mnt_sb, fid,
422 fh_len, fileid_type); 424 fh_len, fileid_type);
425 if (!target_dir)
426 goto err_result;
423 err = PTR_ERR(target_dir); 427 err = PTR_ERR(target_dir);
424 if (IS_ERR(target_dir)) 428 if (IS_ERR(target_dir))
425 goto err_result; 429 goto err_result;
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
index d2003cdc36aa..db35cfdb3c8b 100644
--- a/fs/ext4/balloc.c
+++ b/fs/ext4/balloc.c
@@ -609,8 +609,8 @@ int ext4_has_free_blocks(struct ext4_sb_info *sbi, s64 nblocks)
609 609
610 if (free_blocks - (nblocks + root_blocks + dirty_blocks) < 610 if (free_blocks - (nblocks + root_blocks + dirty_blocks) <
611 EXT4_FREEBLOCKS_WATERMARK) { 611 EXT4_FREEBLOCKS_WATERMARK) {
612 free_blocks = percpu_counter_sum(fbc); 612 free_blocks = percpu_counter_sum_positive(fbc);
613 dirty_blocks = percpu_counter_sum(dbc); 613 dirty_blocks = percpu_counter_sum_positive(dbc);
614 if (dirty_blocks < 0) { 614 if (dirty_blocks < 0) {
615 printk(KERN_CRIT "Dirty block accounting " 615 printk(KERN_CRIT "Dirty block accounting "
616 "went wrong %lld\n", 616 "went wrong %lld\n",
diff --git a/fs/fcntl.c b/fs/fcntl.c
index ac4f7db9f134..549daf8005fb 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -19,6 +19,7 @@
19#include <linux/signal.h> 19#include <linux/signal.h>
20#include <linux/rcupdate.h> 20#include <linux/rcupdate.h>
21#include <linux/pid_namespace.h> 21#include <linux/pid_namespace.h>
22#include <linux/smp_lock.h>
22 23
23#include <asm/poll.h> 24#include <asm/poll.h>
24#include <asm/siginfo.h> 25#include <asm/siginfo.h>
@@ -175,6 +176,11 @@ static int setfl(int fd, struct file * filp, unsigned long arg)
175 if (error) 176 if (error)
176 return error; 177 return error;
177 178
179 /*
180 * We still need a lock here for now to keep multiple FASYNC calls
181 * from racing with each other.
182 */
183 lock_kernel();
178 if ((arg ^ filp->f_flags) & FASYNC) { 184 if ((arg ^ filp->f_flags) & FASYNC) {
179 if (filp->f_op && filp->f_op->fasync) { 185 if (filp->f_op && filp->f_op->fasync) {
180 error = filp->f_op->fasync(fd, filp, (arg & FASYNC) != 0); 186 error = filp->f_op->fasync(fd, filp, (arg & FASYNC) != 0);
@@ -185,6 +191,7 @@ static int setfl(int fd, struct file * filp, unsigned long arg)
185 191
186 filp->f_flags = (arg & SETFL_MASK) | (filp->f_flags & ~SETFL_MASK); 192 filp->f_flags = (arg & SETFL_MASK) | (filp->f_flags & ~SETFL_MASK);
187 out: 193 out:
194 unlock_kernel();
188 return error; 195 return error;
189} 196}
190 197
diff --git a/fs/inotify.c b/fs/inotify.c
index 7bbed1b89825..dae3f28f30d4 100644
--- a/fs/inotify.c
+++ b/fs/inotify.c
@@ -428,11 +428,13 @@ void inotify_unmount_inodes(struct list_head *list)
428 watches = &inode->inotify_watches; 428 watches = &inode->inotify_watches;
429 list_for_each_entry_safe(watch, next_w, watches, i_list) { 429 list_for_each_entry_safe(watch, next_w, watches, i_list) {
430 struct inotify_handle *ih= watch->ih; 430 struct inotify_handle *ih= watch->ih;
431 get_inotify_watch(watch);
431 mutex_lock(&ih->mutex); 432 mutex_lock(&ih->mutex);
432 ih->in_ops->handle_event(watch, watch->wd, IN_UNMOUNT, 0, 433 ih->in_ops->handle_event(watch, watch->wd, IN_UNMOUNT, 0,
433 NULL, NULL); 434 NULL, NULL);
434 inotify_remove_watch_locked(ih, watch); 435 inotify_remove_watch_locked(ih, watch);
435 mutex_unlock(&ih->mutex); 436 mutex_unlock(&ih->mutex);
437 put_inotify_watch(watch);
436 } 438 }
437 mutex_unlock(&inode->inotify_mutex); 439 mutex_unlock(&inode->inotify_mutex);
438 iput(inode); 440 iput(inode);
diff --git a/fs/ioctl.c b/fs/ioctl.c
index d152856c371b..43e8b2c0664b 100644
--- a/fs/ioctl.c
+++ b/fs/ioctl.c
@@ -400,11 +400,9 @@ static int ioctl_fioasync(unsigned int fd, struct file *filp,
400 400
401 /* Did FASYNC state change ? */ 401 /* Did FASYNC state change ? */
402 if ((flag ^ filp->f_flags) & FASYNC) { 402 if ((flag ^ filp->f_flags) & FASYNC) {
403 if (filp->f_op && filp->f_op->fasync) { 403 if (filp->f_op && filp->f_op->fasync)
404 lock_kernel();
405 error = filp->f_op->fasync(fd, filp, on); 404 error = filp->f_op->fasync(fd, filp, on);
406 unlock_kernel(); 405 else
407 } else
408 error = -ENOTTY; 406 error = -ENOTTY;
409 } 407 }
410 if (error) 408 if (error)
@@ -440,11 +438,17 @@ int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
440 break; 438 break;
441 439
442 case FIONBIO: 440 case FIONBIO:
441 /* BKL needed to avoid races tweaking f_flags */
442 lock_kernel();
443 error = ioctl_fionbio(filp, argp); 443 error = ioctl_fionbio(filp, argp);
444 unlock_kernel();
444 break; 445 break;
445 446
446 case FIOASYNC: 447 case FIOASYNC:
448 /* BKL needed to avoid races tweaking f_flags */
449 lock_kernel();
447 error = ioctl_fioasync(fd, filp, argp); 450 error = ioctl_fioasync(fd, filp, argp);
451 unlock_kernel();
448 break; 452 break;
449 453
450 case FIOQSIZE: 454 case FIOQSIZE:
diff --git a/fs/lockd/host.c b/fs/lockd/host.c
index 9fd8889097b7..70fc63a1727b 100644
--- a/fs/lockd/host.c
+++ b/fs/lockd/host.c
@@ -167,7 +167,8 @@ static struct nlm_host *nlm_lookup_host(struct nlm_lookup_host_info *ni)
167 continue; 167 continue;
168 if (host->h_server != ni->server) 168 if (host->h_server != ni->server)
169 continue; 169 continue;
170 if (!nlm_cmp_addr(nlm_srcaddr(host), ni->src_sap)) 170 if (ni->server &&
171 !nlm_cmp_addr(nlm_srcaddr(host), ni->src_sap))
171 continue; 172 continue;
172 173
173 /* Move to head of hash chain. */ 174 /* Move to head of hash chain. */
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index c631a83931ce..56b076736b56 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -181,6 +181,7 @@ lockd(void *vrqstp)
181 } 181 }
182 flush_signals(current); 182 flush_signals(current);
183 cancel_delayed_work_sync(&grace_period_end); 183 cancel_delayed_work_sync(&grace_period_end);
184 locks_end_grace(&lockd_manager);
184 if (nlmsvc_ops) 185 if (nlmsvc_ops)
185 nlmsvc_invalidate_all(); 186 nlmsvc_invalidate_all();
186 nlm_shutdown_hosts(); 187 nlm_shutdown_hosts();
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index bb93946ace22..b79ec930d9f1 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -225,12 +225,12 @@ nfsd4_list_rec_dir(struct dentry *dir, recdir_func *f)
225 return 0; 225 return 0;
226 226
227 nfs4_save_user(&uid, &gid); 227 nfs4_save_user(&uid, &gid);
228 INIT_LIST_HEAD(dentries);
228 229
229 filp = dentry_open(dget(dir), mntget(rec_dir.mnt), O_RDONLY); 230 filp = dentry_open(dget(dir), mntget(rec_dir.mnt), O_RDONLY);
230 status = PTR_ERR(filp); 231 status = PTR_ERR(filp);
231 if (IS_ERR(filp)) 232 if (IS_ERR(filp))
232 goto out; 233 goto out;
233 INIT_LIST_HEAD(dentries);
234 status = vfs_readdir(filp, nfsd4_build_dentrylist, &dla); 234 status = vfs_readdir(filp, nfsd4_build_dentrylist, &dla);
235 fput(filp); 235 fput(filp);
236 while (!list_empty(dentries)) { 236 while (!list_empty(dentries)) {
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index b0bebc552a11..1a052ac2bde9 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -3261,6 +3261,7 @@ nfs4_state_shutdown(void)
3261{ 3261{
3262 cancel_rearming_delayed_workqueue(laundry_wq, &laundromat_work); 3262 cancel_rearming_delayed_workqueue(laundry_wq, &laundromat_work);
3263 destroy_workqueue(laundry_wq); 3263 destroy_workqueue(laundry_wq);
3264 locks_end_grace(&nfsd4_manager);
3264 nfs4_lock_state(); 3265 nfs4_lock_state();
3265 nfs4_release_reclaim(); 3266 nfs4_release_reclaim();
3266 __nfs4_state_shutdown(); 3267 __nfs4_state_shutdown();
diff --git a/fs/ntfs/debug.h b/fs/ntfs/debug.h
index 5e6724c1afd1..2142b1c68b61 100644
--- a/fs/ntfs/debug.h
+++ b/fs/ntfs/debug.h
@@ -30,7 +30,8 @@
30 30
31extern int debug_msgs; 31extern int debug_msgs;
32 32
33#if 0 /* Fool kernel-doc since it doesn't do macros yet */ 33extern void __ntfs_debug(const char *file, int line, const char *function,
34 const char *format, ...) __attribute__ ((format (printf, 4, 5)));
34/** 35/**
35 * ntfs_debug - write a debug level message to syslog 36 * ntfs_debug - write a debug level message to syslog
36 * @f: a printf format string containing the message 37 * @f: a printf format string containing the message
@@ -39,11 +40,6 @@ extern int debug_msgs;
39 * ntfs_debug() writes a DEBUG level message to the syslog but only if the 40 * ntfs_debug() writes a DEBUG level message to the syslog but only if the
40 * driver was compiled with -DDEBUG. Otherwise, the call turns into a NOP. 41 * driver was compiled with -DDEBUG. Otherwise, the call turns into a NOP.
41 */ 42 */
42static void ntfs_debug(const char *f, ...);
43#endif
44
45extern void __ntfs_debug (const char *file, int line, const char *function,
46 const char *format, ...) __attribute__ ((format (printf, 4, 5)));
47#define ntfs_debug(f, a...) \ 43#define ntfs_debug(f, a...) \
48 __ntfs_debug(__FILE__, __LINE__, __func__, f, ##a) 44 __ntfs_debug(__FILE__, __LINE__, __func__, f, ##a)
49 45
diff --git a/fs/ocfs2/buffer_head_io.c b/fs/ocfs2/buffer_head_io.c
index 7e947c672469..3a178ec48d7c 100644
--- a/fs/ocfs2/buffer_head_io.c
+++ b/fs/ocfs2/buffer_head_io.c
@@ -112,7 +112,7 @@ int ocfs2_read_blocks_sync(struct ocfs2_super *osb, u64 block,
112 bh = bhs[i]; 112 bh = bhs[i];
113 113
114 if (buffer_jbd(bh)) { 114 if (buffer_jbd(bh)) {
115 mlog(ML_ERROR, 115 mlog(ML_BH_IO,
116 "trying to sync read a jbd " 116 "trying to sync read a jbd "
117 "managed bh (blocknr = %llu), skipping\n", 117 "managed bh (blocknr = %llu), skipping\n",
118 (unsigned long long)bh->b_blocknr); 118 (unsigned long long)bh->b_blocknr);
@@ -147,15 +147,10 @@ int ocfs2_read_blocks_sync(struct ocfs2_super *osb, u64 block,
147 for (i = nr; i > 0; i--) { 147 for (i = nr; i > 0; i--) {
148 bh = bhs[i - 1]; 148 bh = bhs[i - 1];
149 149
150 if (buffer_jbd(bh)) { 150 /* No need to wait on the buffer if it's managed by JBD. */
151 mlog(ML_ERROR, 151 if (!buffer_jbd(bh))
152 "the journal got the buffer while it was " 152 wait_on_buffer(bh);
153 "locked for io! (blocknr = %llu)\n",
154 (unsigned long long)bh->b_blocknr);
155 BUG();
156 }
157 153
158 wait_on_buffer(bh);
159 if (!buffer_uptodate(bh)) { 154 if (!buffer_uptodate(bh)) {
160 /* Status won't be cleared from here on out, 155 /* Status won't be cleared from here on out,
161 * so we can safely record this and loop back 156 * so we can safely record this and loop back
@@ -251,8 +246,6 @@ int ocfs2_read_blocks(struct inode *inode, u64 block, int nr,
251 ignore_cache = 1; 246 ignore_cache = 1;
252 } 247 }
253 248
254 /* XXX: Can we ever get this and *not* have the cached
255 * flag set? */
256 if (buffer_jbd(bh)) { 249 if (buffer_jbd(bh)) {
257 if (ignore_cache) 250 if (ignore_cache)
258 mlog(ML_BH_IO, "trying to sync read a jbd " 251 mlog(ML_BH_IO, "trying to sync read a jbd "
diff --git a/fs/ocfs2/dlm/dlmfs.c b/fs/ocfs2/dlm/dlmfs.c
index 533a789c3ef8..ba962d71b34d 100644
--- a/fs/ocfs2/dlm/dlmfs.c
+++ b/fs/ocfs2/dlm/dlmfs.c
@@ -608,8 +608,10 @@ static int __init init_dlmfs_fs(void)
608 0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT| 608 0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT|
609 SLAB_MEM_SPREAD), 609 SLAB_MEM_SPREAD),
610 dlmfs_init_once); 610 dlmfs_init_once);
611 if (!dlmfs_inode_cache) 611 if (!dlmfs_inode_cache) {
612 status = -ENOMEM;
612 goto bail; 613 goto bail;
614 }
613 cleanup_inode = 1; 615 cleanup_inode = 1;
614 616
615 user_dlm_worker = create_singlethread_workqueue("user_dlm"); 617 user_dlm_worker = create_singlethread_workqueue("user_dlm");
diff --git a/fs/ocfs2/dlm/userdlm.h b/fs/ocfs2/dlm/userdlm.h
index 39ec27738499..0c3cc03c61fa 100644
--- a/fs/ocfs2/dlm/userdlm.h
+++ b/fs/ocfs2/dlm/userdlm.h
@@ -33,7 +33,7 @@
33#include <linux/workqueue.h> 33#include <linux/workqueue.h>
34 34
35/* user_lock_res->l_flags flags. */ 35/* user_lock_res->l_flags flags. */
36#define USER_LOCK_ATTACHED (0x00000001) /* have we initialized 36#define USER_LOCK_ATTACHED (0x00000001) /* we have initialized
37 * the lvb */ 37 * the lvb */
38#define USER_LOCK_BUSY (0x00000002) /* we are currently in 38#define USER_LOCK_BUSY (0x00000002) /* we are currently in
39 * dlm_lock */ 39 * dlm_lock */
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
index ec684426034b..6e6cc0a2e5f7 100644
--- a/fs/ocfs2/dlmglue.c
+++ b/fs/ocfs2/dlmglue.c
@@ -2841,9 +2841,8 @@ static void ocfs2_unlock_ast(void *opaque, int error)
2841 2841
2842 lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); 2842 lockres_clear_flags(lockres, OCFS2_LOCK_BUSY);
2843 lockres->l_unlock_action = OCFS2_UNLOCK_INVALID; 2843 lockres->l_unlock_action = OCFS2_UNLOCK_INVALID;
2844 spin_unlock_irqrestore(&lockres->l_lock, flags);
2845
2846 wake_up(&lockres->l_event); 2844 wake_up(&lockres->l_event);
2845 spin_unlock_irqrestore(&lockres->l_lock, flags);
2847 2846
2848 mlog_exit_void(); 2847 mlog_exit_void();
2849} 2848}
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
index fef7ece32376..3fed9e3d8992 100644
--- a/fs/ocfs2/ocfs2.h
+++ b/fs/ocfs2/ocfs2.h
@@ -85,7 +85,7 @@ enum ocfs2_unlock_action {
85}; 85};
86 86
87/* ocfs2_lock_res->l_flags flags. */ 87/* ocfs2_lock_res->l_flags flags. */
88#define OCFS2_LOCK_ATTACHED (0x00000001) /* have we initialized 88#define OCFS2_LOCK_ATTACHED (0x00000001) /* we have initialized
89 * the lvb */ 89 * the lvb */
90#define OCFS2_LOCK_BUSY (0x00000002) /* we are currently in 90#define OCFS2_LOCK_BUSY (0x00000002) /* we are currently in
91 * dlm_lock */ 91 * dlm_lock */
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h
index 5f180cf7abbd..5e0c0d0aef7d 100644
--- a/fs/ocfs2/ocfs2_fs.h
+++ b/fs/ocfs2/ocfs2_fs.h
@@ -86,7 +86,8 @@
86#define OCFS2_CLEAR_INCOMPAT_FEATURE(sb,mask) \ 86#define OCFS2_CLEAR_INCOMPAT_FEATURE(sb,mask) \
87 OCFS2_SB(sb)->s_feature_incompat &= ~(mask) 87 OCFS2_SB(sb)->s_feature_incompat &= ~(mask)
88 88
89#define OCFS2_FEATURE_COMPAT_SUPP OCFS2_FEATURE_COMPAT_BACKUP_SB 89#define OCFS2_FEATURE_COMPAT_SUPP (OCFS2_FEATURE_COMPAT_BACKUP_SB \
90 | OCFS2_FEATURE_COMPAT_JBD2_SB)
90#define OCFS2_FEATURE_INCOMPAT_SUPP (OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT \ 91#define OCFS2_FEATURE_INCOMPAT_SUPP (OCFS2_FEATURE_INCOMPAT_LOCAL_MOUNT \
91 | OCFS2_FEATURE_INCOMPAT_SPARSE_ALLOC \ 92 | OCFS2_FEATURE_INCOMPAT_SPARSE_ALLOC \
92 | OCFS2_FEATURE_INCOMPAT_INLINE_DATA \ 93 | OCFS2_FEATURE_INCOMPAT_INLINE_DATA \
@@ -153,6 +154,11 @@
153#define OCFS2_FEATURE_COMPAT_BACKUP_SB 0x0001 154#define OCFS2_FEATURE_COMPAT_BACKUP_SB 0x0001
154 155
155/* 156/*
157 * The filesystem will correctly handle journal feature bits.
158 */
159#define OCFS2_FEATURE_COMPAT_JBD2_SB 0x0002
160
161/*
156 * Unwritten extents support. 162 * Unwritten extents support.
157 */ 163 */
158#define OCFS2_FEATURE_RO_COMPAT_UNWRITTEN 0x0001 164#define OCFS2_FEATURE_RO_COMPAT_UNWRITTEN 0x0001
diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c
index faec2d879357..9b76d41a8ac6 100644
--- a/fs/ocfs2/stack_user.c
+++ b/fs/ocfs2/stack_user.c
@@ -740,6 +740,9 @@ static int user_dlm_lock_status(union ocfs2_dlm_lksb *lksb)
740 740
741static void *user_dlm_lvb(union ocfs2_dlm_lksb *lksb) 741static void *user_dlm_lvb(union ocfs2_dlm_lksb *lksb)
742{ 742{
743 if (!lksb->lksb_fsdlm.sb_lvbptr)
744 lksb->lksb_fsdlm.sb_lvbptr = (char *)lksb +
745 sizeof(struct dlm_lksb);
743 return (void *)(lksb->lksb_fsdlm.sb_lvbptr); 746 return (void *)(lksb->lksb_fsdlm.sb_lvbptr);
744} 747}
745 748
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
index 054e2efb0b7e..74d7367ade13 100644
--- a/fs/ocfs2/xattr.c
+++ b/fs/ocfs2/xattr.c
@@ -2645,9 +2645,9 @@ static int ocfs2_xattr_update_xattr_search(struct inode *inode,
2645 return ret; 2645 return ret;
2646 } 2646 }
2647 2647
2648 i = xs->here - old_xh->xh_entries;
2649 xs->here = &xs->header->xh_entries[i];
2650 } 2648 }
2649 i = xs->here - old_xh->xh_entries;
2650 xs->here = &xs->header->xh_entries[i];
2651 } 2651 }
2652 2652
2653 return ret; 2653 return ret;
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 486cf3fe7139..d4677603c889 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -371,7 +371,7 @@ static int lstats_show_proc(struct seq_file *m, void *v)
371 task->latency_record[i].time, 371 task->latency_record[i].time,
372 task->latency_record[i].max); 372 task->latency_record[i].max);
373 for (q = 0; q < LT_BACKTRACEDEPTH; q++) { 373 for (q = 0; q < LT_BACKTRACEDEPTH; q++) {
374 char sym[KSYM_NAME_LEN]; 374 char sym[KSYM_SYMBOL_LEN];
375 char *c; 375 char *c;
376 if (!task->latency_record[i].backtrace[q]) 376 if (!task->latency_record[i].backtrace[q])
377 break; 377 break;
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index b770c095e45c..3a8bdd7f5756 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -557,9 +557,9 @@ static u64 swap_pte_to_pagemap_entry(pte_t pte)
557 return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT); 557 return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT);
558} 558}
559 559
560static unsigned long pte_to_pagemap_entry(pte_t pte) 560static u64 pte_to_pagemap_entry(pte_t pte)
561{ 561{
562 unsigned long pme = 0; 562 u64 pme = 0;
563 if (is_swap_pte(pte)) 563 if (is_swap_pte(pte))
564 pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte)) 564 pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte))
565 | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP; 565 | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP;
diff --git a/fs/ubifs/commit.c b/fs/ubifs/commit.c
index 0a6aa2cc78f0..b49884c8c10e 100644
--- a/fs/ubifs/commit.c
+++ b/fs/ubifs/commit.c
@@ -234,8 +234,8 @@ int ubifs_bg_thread(void *info)
234 int err; 234 int err;
235 struct ubifs_info *c = info; 235 struct ubifs_info *c = info;
236 236
237 ubifs_msg("background thread \"%s\" started, PID %d", 237 dbg_msg("background thread \"%s\" started, PID %d",
238 c->bgt_name, current->pid); 238 c->bgt_name, current->pid);
239 set_freezable(); 239 set_freezable();
240 240
241 while (1) { 241 while (1) {
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c
index 7186400750e7..510ffa0bbda4 100644
--- a/fs/ubifs/debug.c
+++ b/fs/ubifs/debug.c
@@ -101,21 +101,24 @@ static void sprintf_key(const struct ubifs_info *c, const union ubifs_key *key,
101 if (c->key_fmt == UBIFS_SIMPLE_KEY_FMT) { 101 if (c->key_fmt == UBIFS_SIMPLE_KEY_FMT) {
102 switch (type) { 102 switch (type) {
103 case UBIFS_INO_KEY: 103 case UBIFS_INO_KEY:
104 sprintf(p, "(%lu, %s)", key_inum(c, key), 104 sprintf(p, "(%lu, %s)", (unsigned long)key_inum(c, key),
105 get_key_type(type)); 105 get_key_type(type));
106 break; 106 break;
107 case UBIFS_DENT_KEY: 107 case UBIFS_DENT_KEY:
108 case UBIFS_XENT_KEY: 108 case UBIFS_XENT_KEY:
109 sprintf(p, "(%lu, %s, %#08x)", key_inum(c, key), 109 sprintf(p, "(%lu, %s, %#08x)",
110 (unsigned long)key_inum(c, key),
110 get_key_type(type), key_hash(c, key)); 111 get_key_type(type), key_hash(c, key));
111 break; 112 break;
112 case UBIFS_DATA_KEY: 113 case UBIFS_DATA_KEY:
113 sprintf(p, "(%lu, %s, %u)", key_inum(c, key), 114 sprintf(p, "(%lu, %s, %u)",
115 (unsigned long)key_inum(c, key),
114 get_key_type(type), key_block(c, key)); 116 get_key_type(type), key_block(c, key));
115 break; 117 break;
116 case UBIFS_TRUN_KEY: 118 case UBIFS_TRUN_KEY:
117 sprintf(p, "(%lu, %s)", 119 sprintf(p, "(%lu, %s)",
118 key_inum(c, key), get_key_type(type)); 120 (unsigned long)key_inum(c, key),
121 get_key_type(type));
119 break; 122 break;
120 default: 123 default:
121 sprintf(p, "(bad key type: %#08x, %#08x)", 124 sprintf(p, "(bad key type: %#08x, %#08x)",
@@ -364,8 +367,8 @@ void dbg_dump_node(const struct ubifs_info *c, const void *node)
364 le32_to_cpu(mst->ihead_lnum)); 367 le32_to_cpu(mst->ihead_lnum));
365 printk(KERN_DEBUG "\tihead_offs %u\n", 368 printk(KERN_DEBUG "\tihead_offs %u\n",
366 le32_to_cpu(mst->ihead_offs)); 369 le32_to_cpu(mst->ihead_offs));
367 printk(KERN_DEBUG "\tindex_size %u\n", 370 printk(KERN_DEBUG "\tindex_size %llu\n",
368 le32_to_cpu(mst->index_size)); 371 (unsigned long long)le64_to_cpu(mst->index_size));
369 printk(KERN_DEBUG "\tlpt_lnum %u\n", 372 printk(KERN_DEBUG "\tlpt_lnum %u\n",
370 le32_to_cpu(mst->lpt_lnum)); 373 le32_to_cpu(mst->lpt_lnum));
371 printk(KERN_DEBUG "\tlpt_offs %u\n", 374 printk(KERN_DEBUG "\tlpt_offs %u\n",
@@ -1589,7 +1592,7 @@ static struct fsck_inode *add_inode(struct ubifs_info *c,
1589 1592
1590 if (inum > c->highest_inum) { 1593 if (inum > c->highest_inum) {
1591 ubifs_err("too high inode number, max. is %lu", 1594 ubifs_err("too high inode number, max. is %lu",
1592 c->highest_inum); 1595 (unsigned long)c->highest_inum);
1593 return ERR_PTR(-EINVAL); 1596 return ERR_PTR(-EINVAL);
1594 } 1597 }
1595 1598
@@ -1668,16 +1671,18 @@ static struct fsck_inode *read_add_inode(struct ubifs_info *c,
1668 ino_key_init(c, &key, inum); 1671 ino_key_init(c, &key, inum);
1669 err = ubifs_lookup_level0(c, &key, &znode, &n); 1672 err = ubifs_lookup_level0(c, &key, &znode, &n);
1670 if (!err) { 1673 if (!err) {
1671 ubifs_err("inode %lu not found in index", inum); 1674 ubifs_err("inode %lu not found in index", (unsigned long)inum);
1672 return ERR_PTR(-ENOENT); 1675 return ERR_PTR(-ENOENT);
1673 } else if (err < 0) { 1676 } else if (err < 0) {
1674 ubifs_err("error %d while looking up inode %lu", err, inum); 1677 ubifs_err("error %d while looking up inode %lu",
1678 err, (unsigned long)inum);
1675 return ERR_PTR(err); 1679 return ERR_PTR(err);
1676 } 1680 }
1677 1681
1678 zbr = &znode->zbranch[n]; 1682 zbr = &znode->zbranch[n];
1679 if (zbr->len < UBIFS_INO_NODE_SZ) { 1683 if (zbr->len < UBIFS_INO_NODE_SZ) {
1680 ubifs_err("bad node %lu node length %d", inum, zbr->len); 1684 ubifs_err("bad node %lu node length %d",
1685 (unsigned long)inum, zbr->len);
1681 return ERR_PTR(-EINVAL); 1686 return ERR_PTR(-EINVAL);
1682 } 1687 }
1683 1688
@@ -1697,7 +1702,7 @@ static struct fsck_inode *read_add_inode(struct ubifs_info *c,
1697 kfree(ino); 1702 kfree(ino);
1698 if (IS_ERR(fscki)) { 1703 if (IS_ERR(fscki)) {
1699 ubifs_err("error %ld while adding inode %lu node", 1704 ubifs_err("error %ld while adding inode %lu node",
1700 PTR_ERR(fscki), inum); 1705 PTR_ERR(fscki), (unsigned long)inum);
1701 return fscki; 1706 return fscki;
1702 } 1707 }
1703 1708
@@ -1786,7 +1791,8 @@ static int check_leaf(struct ubifs_info *c, struct ubifs_zbranch *zbr,
1786 if (IS_ERR(fscki)) { 1791 if (IS_ERR(fscki)) {
1787 err = PTR_ERR(fscki); 1792 err = PTR_ERR(fscki);
1788 ubifs_err("error %d while processing data node and " 1793 ubifs_err("error %d while processing data node and "
1789 "trying to find inode node %lu", err, inum); 1794 "trying to find inode node %lu",
1795 err, (unsigned long)inum);
1790 goto out_dump; 1796 goto out_dump;
1791 } 1797 }
1792 1798
@@ -1819,7 +1825,8 @@ static int check_leaf(struct ubifs_info *c, struct ubifs_zbranch *zbr,
1819 if (IS_ERR(fscki)) { 1825 if (IS_ERR(fscki)) {
1820 err = PTR_ERR(fscki); 1826 err = PTR_ERR(fscki);
1821 ubifs_err("error %d while processing entry node and " 1827 ubifs_err("error %d while processing entry node and "
1822 "trying to find inode node %lu", err, inum); 1828 "trying to find inode node %lu",
1829 err, (unsigned long)inum);
1823 goto out_dump; 1830 goto out_dump;
1824 } 1831 }
1825 1832
@@ -1832,7 +1839,7 @@ static int check_leaf(struct ubifs_info *c, struct ubifs_zbranch *zbr,
1832 err = PTR_ERR(fscki); 1839 err = PTR_ERR(fscki);
1833 ubifs_err("error %d while processing entry node and " 1840 ubifs_err("error %d while processing entry node and "
1834 "trying to find parent inode node %lu", 1841 "trying to find parent inode node %lu",
1835 err, inum); 1842 err, (unsigned long)inum);
1836 goto out_dump; 1843 goto out_dump;
1837 } 1844 }
1838 1845
@@ -1923,7 +1930,8 @@ static int check_inodes(struct ubifs_info *c, struct fsck_data *fsckd)
1923 fscki->references != 1) { 1930 fscki->references != 1) {
1924 ubifs_err("directory inode %lu has %d " 1931 ubifs_err("directory inode %lu has %d "
1925 "direntries which refer it, but " 1932 "direntries which refer it, but "
1926 "should be 1", fscki->inum, 1933 "should be 1",
1934 (unsigned long)fscki->inum,
1927 fscki->references); 1935 fscki->references);
1928 goto out_dump; 1936 goto out_dump;
1929 } 1937 }
@@ -1931,27 +1939,29 @@ static int check_inodes(struct ubifs_info *c, struct fsck_data *fsckd)
1931 fscki->references != 0) { 1939 fscki->references != 0) {
1932 ubifs_err("root inode %lu has non-zero (%d) " 1940 ubifs_err("root inode %lu has non-zero (%d) "
1933 "direntries which refer it", 1941 "direntries which refer it",
1934 fscki->inum, fscki->references); 1942 (unsigned long)fscki->inum,
1943 fscki->references);
1935 goto out_dump; 1944 goto out_dump;
1936 } 1945 }
1937 if (fscki->calc_sz != fscki->size) { 1946 if (fscki->calc_sz != fscki->size) {
1938 ubifs_err("directory inode %lu size is %lld, " 1947 ubifs_err("directory inode %lu size is %lld, "
1939 "but calculated size is %lld", 1948 "but calculated size is %lld",
1940 fscki->inum, fscki->size, 1949 (unsigned long)fscki->inum,
1941 fscki->calc_sz); 1950 fscki->size, fscki->calc_sz);
1942 goto out_dump; 1951 goto out_dump;
1943 } 1952 }
1944 if (fscki->calc_cnt != fscki->nlink) { 1953 if (fscki->calc_cnt != fscki->nlink) {
1945 ubifs_err("directory inode %lu nlink is %d, " 1954 ubifs_err("directory inode %lu nlink is %d, "
1946 "but calculated nlink is %d", 1955 "but calculated nlink is %d",
1947 fscki->inum, fscki->nlink, 1956 (unsigned long)fscki->inum,
1948 fscki->calc_cnt); 1957 fscki->nlink, fscki->calc_cnt);
1949 goto out_dump; 1958 goto out_dump;
1950 } 1959 }
1951 } else { 1960 } else {
1952 if (fscki->references != fscki->nlink) { 1961 if (fscki->references != fscki->nlink) {
1953 ubifs_err("inode %lu nlink is %d, but " 1962 ubifs_err("inode %lu nlink is %d, but "
1954 "calculated nlink is %d", fscki->inum, 1963 "calculated nlink is %d",
1964 (unsigned long)fscki->inum,
1955 fscki->nlink, fscki->references); 1965 fscki->nlink, fscki->references);
1956 goto out_dump; 1966 goto out_dump;
1957 } 1967 }
@@ -1959,20 +1969,21 @@ static int check_inodes(struct ubifs_info *c, struct fsck_data *fsckd)
1959 if (fscki->xattr_sz != fscki->calc_xsz) { 1969 if (fscki->xattr_sz != fscki->calc_xsz) {
1960 ubifs_err("inode %lu has xattr size %u, but " 1970 ubifs_err("inode %lu has xattr size %u, but "
1961 "calculated size is %lld", 1971 "calculated size is %lld",
1962 fscki->inum, fscki->xattr_sz, 1972 (unsigned long)fscki->inum, fscki->xattr_sz,
1963 fscki->calc_xsz); 1973 fscki->calc_xsz);
1964 goto out_dump; 1974 goto out_dump;
1965 } 1975 }
1966 if (fscki->xattr_cnt != fscki->calc_xcnt) { 1976 if (fscki->xattr_cnt != fscki->calc_xcnt) {
1967 ubifs_err("inode %lu has %u xattrs, but " 1977 ubifs_err("inode %lu has %u xattrs, but "
1968 "calculated count is %lld", fscki->inum, 1978 "calculated count is %lld",
1979 (unsigned long)fscki->inum,
1969 fscki->xattr_cnt, fscki->calc_xcnt); 1980 fscki->xattr_cnt, fscki->calc_xcnt);
1970 goto out_dump; 1981 goto out_dump;
1971 } 1982 }
1972 if (fscki->xattr_nms != fscki->calc_xnms) { 1983 if (fscki->xattr_nms != fscki->calc_xnms) {
1973 ubifs_err("inode %lu has xattr names' size %u, but " 1984 ubifs_err("inode %lu has xattr names' size %u, but "
1974 "calculated names' size is %lld", 1985 "calculated names' size is %lld",
1975 fscki->inum, fscki->xattr_nms, 1986 (unsigned long)fscki->inum, fscki->xattr_nms,
1976 fscki->calc_xnms); 1987 fscki->calc_xnms);
1977 goto out_dump; 1988 goto out_dump;
1978 } 1989 }
@@ -1985,11 +1996,12 @@ out_dump:
1985 ino_key_init(c, &key, fscki->inum); 1996 ino_key_init(c, &key, fscki->inum);
1986 err = ubifs_lookup_level0(c, &key, &znode, &n); 1997 err = ubifs_lookup_level0(c, &key, &znode, &n);
1987 if (!err) { 1998 if (!err) {
1988 ubifs_err("inode %lu not found in index", fscki->inum); 1999 ubifs_err("inode %lu not found in index",
2000 (unsigned long)fscki->inum);
1989 return -ENOENT; 2001 return -ENOENT;
1990 } else if (err < 0) { 2002 } else if (err < 0) {
1991 ubifs_err("error %d while looking up inode %lu", 2003 ubifs_err("error %d while looking up inode %lu",
1992 err, fscki->inum); 2004 err, (unsigned long)fscki->inum);
1993 return err; 2005 return err;
1994 } 2006 }
1995 2007
@@ -2007,7 +2019,7 @@ out_dump:
2007 } 2019 }
2008 2020
2009 ubifs_msg("dump of the inode %lu sitting in LEB %d:%d", 2021 ubifs_msg("dump of the inode %lu sitting in LEB %d:%d",
2010 fscki->inum, zbr->lnum, zbr->offs); 2022 (unsigned long)fscki->inum, zbr->lnum, zbr->offs);
2011 dbg_dump_node(c, ino); 2023 dbg_dump_node(c, ino);
2012 kfree(ino); 2024 kfree(ino);
2013 return -EINVAL; 2025 return -EINVAL;
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
index 526c01ec8003..0422c98e1793 100644
--- a/fs/ubifs/dir.c
+++ b/fs/ubifs/dir.c
@@ -161,7 +161,7 @@ struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir,
161 return ERR_PTR(-EINVAL); 161 return ERR_PTR(-EINVAL);
162 } 162 }
163 ubifs_warn("running out of inode numbers (current %lu, max %d)", 163 ubifs_warn("running out of inode numbers (current %lu, max %d)",
164 c->highest_inum, INUM_WATERMARK); 164 (unsigned long)c->highest_inum, INUM_WATERMARK);
165 } 165 }
166 166
167 inode->i_ino = ++c->highest_inum; 167 inode->i_ino = ++c->highest_inum;
@@ -428,7 +428,8 @@ static int ubifs_readdir(struct file *file, void *dirent, filldir_t filldir)
428 dbg_gen("feed '%s', ino %llu, new f_pos %#x", 428 dbg_gen("feed '%s', ino %llu, new f_pos %#x",
429 dent->name, (unsigned long long)le64_to_cpu(dent->inum), 429 dent->name, (unsigned long long)le64_to_cpu(dent->inum),
430 key_hash_flash(c, &dent->key)); 430 key_hash_flash(c, &dent->key));
431 ubifs_assert(dent->ch.sqnum > ubifs_inode(dir)->creat_sqnum); 431 ubifs_assert(le64_to_cpu(dent->ch.sqnum) >
432 ubifs_inode(dir)->creat_sqnum);
432 433
433 nm.len = le16_to_cpu(dent->nlen); 434 nm.len = le16_to_cpu(dent->nlen);
434 over = filldir(dirent, dent->name, nm.len, file->f_pos, 435 over = filldir(dirent, dent->name, nm.len, file->f_pos,
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 51cf511d44d9..2624411d9758 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -72,7 +72,7 @@ static int read_block(struct inode *inode, void *addr, unsigned int block,
72 return err; 72 return err;
73 } 73 }
74 74
75 ubifs_assert(dn->ch.sqnum > ubifs_inode(inode)->creat_sqnum); 75 ubifs_assert(le64_to_cpu(dn->ch.sqnum) > ubifs_inode(inode)->creat_sqnum);
76 76
77 len = le32_to_cpu(dn->size); 77 len = le32_to_cpu(dn->size);
78 if (len <= 0 || len > UBIFS_BLOCK_SIZE) 78 if (len <= 0 || len > UBIFS_BLOCK_SIZE)
@@ -626,7 +626,7 @@ static int populate_page(struct ubifs_info *c, struct page *page,
626 626
627 dn = bu->buf + (bu->zbranch[nn].offs - offs); 627 dn = bu->buf + (bu->zbranch[nn].offs - offs);
628 628
629 ubifs_assert(dn->ch.sqnum > 629 ubifs_assert(le64_to_cpu(dn->ch.sqnum) >
630 ubifs_inode(inode)->creat_sqnum); 630 ubifs_inode(inode)->creat_sqnum);
631 631
632 len = le32_to_cpu(dn->size); 632 len = le32_to_cpu(dn->size);
@@ -691,32 +691,22 @@ out_err:
691/** 691/**
692 * ubifs_do_bulk_read - do bulk-read. 692 * ubifs_do_bulk_read - do bulk-read.
693 * @c: UBIFS file-system description object 693 * @c: UBIFS file-system description object
694 * @page1: first page 694 * @bu: bulk-read information
695 * @page1: first page to read
695 * 696 *
696 * This function returns %1 if the bulk-read is done, otherwise %0 is returned. 697 * This function returns %1 if the bulk-read is done, otherwise %0 is returned.
697 */ 698 */
698static int ubifs_do_bulk_read(struct ubifs_info *c, struct page *page1) 699static int ubifs_do_bulk_read(struct ubifs_info *c, struct bu_info *bu,
700 struct page *page1)
699{ 701{
700 pgoff_t offset = page1->index, end_index; 702 pgoff_t offset = page1->index, end_index;
701 struct address_space *mapping = page1->mapping; 703 struct address_space *mapping = page1->mapping;
702 struct inode *inode = mapping->host; 704 struct inode *inode = mapping->host;
703 struct ubifs_inode *ui = ubifs_inode(inode); 705 struct ubifs_inode *ui = ubifs_inode(inode);
704 struct bu_info *bu;
705 int err, page_idx, page_cnt, ret = 0, n = 0; 706 int err, page_idx, page_cnt, ret = 0, n = 0;
707 int allocate = bu->buf ? 0 : 1;
706 loff_t isize; 708 loff_t isize;
707 709
708 bu = kmalloc(sizeof(struct bu_info), GFP_NOFS);
709 if (!bu)
710 return 0;
711
712 bu->buf_len = c->bulk_read_buf_size;
713 bu->buf = kmalloc(bu->buf_len, GFP_NOFS);
714 if (!bu->buf)
715 goto out_free;
716
717 data_key_init(c, &bu->key, inode->i_ino,
718 offset << UBIFS_BLOCKS_PER_PAGE_SHIFT);
719
720 err = ubifs_tnc_get_bu_keys(c, bu); 710 err = ubifs_tnc_get_bu_keys(c, bu);
721 if (err) 711 if (err)
722 goto out_warn; 712 goto out_warn;
@@ -735,12 +725,25 @@ static int ubifs_do_bulk_read(struct ubifs_info *c, struct page *page1)
735 * together. If all the pages were like this, bulk-read would 725 * together. If all the pages were like this, bulk-read would
736 * reduce performance, so we turn it off for a while. 726 * reduce performance, so we turn it off for a while.
737 */ 727 */
738 ui->read_in_a_row = 0; 728 goto out_bu_off;
739 ui->bulk_read = 0;
740 goto out_free;
741 } 729 }
742 730
743 if (bu->cnt) { 731 if (bu->cnt) {
732 if (allocate) {
733 /*
734 * Allocate bulk-read buffer depending on how many data
735 * nodes we are going to read.
736 */
737 bu->buf_len = bu->zbranch[bu->cnt - 1].offs +
738 bu->zbranch[bu->cnt - 1].len -
739 bu->zbranch[0].offs;
740 ubifs_assert(bu->buf_len > 0);
741 ubifs_assert(bu->buf_len <= c->leb_size);
742 bu->buf = kmalloc(bu->buf_len, GFP_NOFS | __GFP_NOWARN);
743 if (!bu->buf)
744 goto out_bu_off;
745 }
746
744 err = ubifs_tnc_bulk_read(c, bu); 747 err = ubifs_tnc_bulk_read(c, bu);
745 if (err) 748 if (err)
746 goto out_warn; 749 goto out_warn;
@@ -779,13 +782,17 @@ static int ubifs_do_bulk_read(struct ubifs_info *c, struct page *page1)
779 ui->last_page_read = offset + page_idx - 1; 782 ui->last_page_read = offset + page_idx - 1;
780 783
781out_free: 784out_free:
782 kfree(bu->buf); 785 if (allocate)
783 kfree(bu); 786 kfree(bu->buf);
784 return ret; 787 return ret;
785 788
786out_warn: 789out_warn:
787 ubifs_warn("ignoring error %d and skipping bulk-read", err); 790 ubifs_warn("ignoring error %d and skipping bulk-read", err);
788 goto out_free; 791 goto out_free;
792
793out_bu_off:
794 ui->read_in_a_row = ui->bulk_read = 0;
795 goto out_free;
789} 796}
790 797
791/** 798/**
@@ -803,18 +810,20 @@ static int ubifs_bulk_read(struct page *page)
803 struct ubifs_info *c = inode->i_sb->s_fs_info; 810 struct ubifs_info *c = inode->i_sb->s_fs_info;
804 struct ubifs_inode *ui = ubifs_inode(inode); 811 struct ubifs_inode *ui = ubifs_inode(inode);
805 pgoff_t index = page->index, last_page_read = ui->last_page_read; 812 pgoff_t index = page->index, last_page_read = ui->last_page_read;
806 int ret = 0; 813 struct bu_info *bu;
814 int err = 0, allocated = 0;
807 815
808 ui->last_page_read = index; 816 ui->last_page_read = index;
809
810 if (!c->bulk_read) 817 if (!c->bulk_read)
811 return 0; 818 return 0;
819
812 /* 820 /*
813 * Bulk-read is protected by ui_mutex, but it is an optimization, so 821 * Bulk-read is protected by @ui->ui_mutex, but it is an optimization,
814 * don't bother if we cannot lock the mutex. 822 * so don't bother if we cannot lock the mutex.
815 */ 823 */
816 if (!mutex_trylock(&ui->ui_mutex)) 824 if (!mutex_trylock(&ui->ui_mutex))
817 return 0; 825 return 0;
826
818 if (index != last_page_read + 1) { 827 if (index != last_page_read + 1) {
819 /* Turn off bulk-read if we stop reading sequentially */ 828 /* Turn off bulk-read if we stop reading sequentially */
820 ui->read_in_a_row = 1; 829 ui->read_in_a_row = 1;
@@ -822,6 +831,7 @@ static int ubifs_bulk_read(struct page *page)
822 ui->bulk_read = 0; 831 ui->bulk_read = 0;
823 goto out_unlock; 832 goto out_unlock;
824 } 833 }
834
825 if (!ui->bulk_read) { 835 if (!ui->bulk_read) {
826 ui->read_in_a_row += 1; 836 ui->read_in_a_row += 1;
827 if (ui->read_in_a_row < 3) 837 if (ui->read_in_a_row < 3)
@@ -829,10 +839,35 @@ static int ubifs_bulk_read(struct page *page)
829 /* Three reads in a row, so switch on bulk-read */ 839 /* Three reads in a row, so switch on bulk-read */
830 ui->bulk_read = 1; 840 ui->bulk_read = 1;
831 } 841 }
832 ret = ubifs_do_bulk_read(c, page); 842
843 /*
844 * If possible, try to use pre-allocated bulk-read information, which
845 * is protected by @c->bu_mutex.
846 */
847 if (mutex_trylock(&c->bu_mutex))
848 bu = &c->bu;
849 else {
850 bu = kmalloc(sizeof(struct bu_info), GFP_NOFS | __GFP_NOWARN);
851 if (!bu)
852 goto out_unlock;
853
854 bu->buf = NULL;
855 allocated = 1;
856 }
857
858 bu->buf_len = c->max_bu_buf_len;
859 data_key_init(c, &bu->key, inode->i_ino,
860 page->index << UBIFS_BLOCKS_PER_PAGE_SHIFT);
861 err = ubifs_do_bulk_read(c, bu, page);
862
863 if (!allocated)
864 mutex_unlock(&c->bu_mutex);
865 else
866 kfree(bu);
867
833out_unlock: 868out_unlock:
834 mutex_unlock(&ui->ui_mutex); 869 mutex_unlock(&ui->ui_mutex);
835 return ret; 870 return err;
836} 871}
837 872
838static int ubifs_readpage(struct file *file, struct page *page) 873static int ubifs_readpage(struct file *file, struct page *page)
diff --git a/fs/ubifs/journal.c b/fs/ubifs/journal.c
index 22993f867d19..f91b745908ea 100644
--- a/fs/ubifs/journal.c
+++ b/fs/ubifs/journal.c
@@ -690,8 +690,9 @@ int ubifs_jnl_write_data(struct ubifs_info *c, const struct inode *inode,
690 int dlen = UBIFS_DATA_NODE_SZ + UBIFS_BLOCK_SIZE * WORST_COMPR_FACTOR; 690 int dlen = UBIFS_DATA_NODE_SZ + UBIFS_BLOCK_SIZE * WORST_COMPR_FACTOR;
691 struct ubifs_inode *ui = ubifs_inode(inode); 691 struct ubifs_inode *ui = ubifs_inode(inode);
692 692
693 dbg_jnl("ino %lu, blk %u, len %d, key %s", key_inum(c, key), 693 dbg_jnl("ino %lu, blk %u, len %d, key %s",
694 key_block(c, key), len, DBGKEY(key)); 694 (unsigned long)key_inum(c, key), key_block(c, key), len,
695 DBGKEY(key));
695 ubifs_assert(len <= UBIFS_BLOCK_SIZE); 696 ubifs_assert(len <= UBIFS_BLOCK_SIZE);
696 697
697 data = kmalloc(dlen, GFP_NOFS); 698 data = kmalloc(dlen, GFP_NOFS);
@@ -1128,7 +1129,8 @@ int ubifs_jnl_truncate(struct ubifs_info *c, const struct inode *inode,
1128 ino_t inum = inode->i_ino; 1129 ino_t inum = inode->i_ino;
1129 unsigned int blk; 1130 unsigned int blk;
1130 1131
1131 dbg_jnl("ino %lu, size %lld -> %lld", inum, old_size, new_size); 1132 dbg_jnl("ino %lu, size %lld -> %lld",
1133 (unsigned long)inum, old_size, new_size);
1132 ubifs_assert(!ui->data_len); 1134 ubifs_assert(!ui->data_len);
1133 ubifs_assert(S_ISREG(inode->i_mode)); 1135 ubifs_assert(S_ISREG(inode->i_mode));
1134 ubifs_assert(mutex_is_locked(&ui->ui_mutex)); 1136 ubifs_assert(mutex_is_locked(&ui->ui_mutex));
diff --git a/fs/ubifs/key.h b/fs/ubifs/key.h
index 9ee65086f627..3f1f16bc25c9 100644
--- a/fs/ubifs/key.h
+++ b/fs/ubifs/key.h
@@ -345,7 +345,7 @@ static inline int key_type_flash(const struct ubifs_info *c, const void *k)
345{ 345{
346 const union ubifs_key *key = k; 346 const union ubifs_key *key = k;
347 347
348 return le32_to_cpu(key->u32[1]) >> UBIFS_S_KEY_BLOCK_BITS; 348 return le32_to_cpu(key->j32[1]) >> UBIFS_S_KEY_BLOCK_BITS;
349} 349}
350 350
351/** 351/**
@@ -416,7 +416,7 @@ static inline unsigned int key_block_flash(const struct ubifs_info *c,
416{ 416{
417 const union ubifs_key *key = k; 417 const union ubifs_key *key = k;
418 418
419 return le32_to_cpu(key->u32[1]) & UBIFS_S_KEY_BLOCK_MASK; 419 return le32_to_cpu(key->j32[1]) & UBIFS_S_KEY_BLOCK_MASK;
420} 420}
421 421
422/** 422/**
diff --git a/fs/ubifs/lpt_commit.c b/fs/ubifs/lpt_commit.c
index eed5a0025d63..a41434b42785 100644
--- a/fs/ubifs/lpt_commit.c
+++ b/fs/ubifs/lpt_commit.c
@@ -571,8 +571,6 @@ static struct ubifs_pnode *next_pnode(struct ubifs_info *c,
571 /* We assume here that LEB zero is never an LPT LEB */ 571 /* We assume here that LEB zero is never an LPT LEB */
572 if (nnode->nbranch[iip].lnum) 572 if (nnode->nbranch[iip].lnum)
573 return ubifs_get_pnode(c, nnode, iip); 573 return ubifs_get_pnode(c, nnode, iip);
574 else
575 return NULL;
576 } 574 }
577 575
578 /* Go up while can't go right */ 576 /* Go up while can't go right */
diff --git a/fs/ubifs/orphan.c b/fs/ubifs/orphan.c
index 02d3462f4d3e..9bd5a43d4526 100644
--- a/fs/ubifs/orphan.c
+++ b/fs/ubifs/orphan.c
@@ -105,7 +105,7 @@ int ubifs_add_orphan(struct ubifs_info *c, ino_t inum)
105 list_add_tail(&orphan->list, &c->orph_list); 105 list_add_tail(&orphan->list, &c->orph_list);
106 list_add_tail(&orphan->new_list, &c->orph_new); 106 list_add_tail(&orphan->new_list, &c->orph_new);
107 spin_unlock(&c->orphan_lock); 107 spin_unlock(&c->orphan_lock);
108 dbg_gen("ino %lu", inum); 108 dbg_gen("ino %lu", (unsigned long)inum);
109 return 0; 109 return 0;
110} 110}
111 111
@@ -132,14 +132,16 @@ void ubifs_delete_orphan(struct ubifs_info *c, ino_t inum)
132 else { 132 else {
133 if (o->dnext) { 133 if (o->dnext) {
134 spin_unlock(&c->orphan_lock); 134 spin_unlock(&c->orphan_lock);
135 dbg_gen("deleted twice ino %lu", inum); 135 dbg_gen("deleted twice ino %lu",
136 (unsigned long)inum);
136 return; 137 return;
137 } 138 }
138 if (o->cnext) { 139 if (o->cnext) {
139 o->dnext = c->orph_dnext; 140 o->dnext = c->orph_dnext;
140 c->orph_dnext = o; 141 c->orph_dnext = o;
141 spin_unlock(&c->orphan_lock); 142 spin_unlock(&c->orphan_lock);
142 dbg_gen("delete later ino %lu", inum); 143 dbg_gen("delete later ino %lu",
144 (unsigned long)inum);
143 return; 145 return;
144 } 146 }
145 rb_erase(p, &c->orph_tree); 147 rb_erase(p, &c->orph_tree);
@@ -151,12 +153,12 @@ void ubifs_delete_orphan(struct ubifs_info *c, ino_t inum)
151 } 153 }
152 spin_unlock(&c->orphan_lock); 154 spin_unlock(&c->orphan_lock);
153 kfree(o); 155 kfree(o);
154 dbg_gen("inum %lu", inum); 156 dbg_gen("inum %lu", (unsigned long)inum);
155 return; 157 return;
156 } 158 }
157 } 159 }
158 spin_unlock(&c->orphan_lock); 160 spin_unlock(&c->orphan_lock);
159 dbg_err("missing orphan ino %lu", inum); 161 dbg_err("missing orphan ino %lu", (unsigned long)inum);
160 dbg_dump_stack(); 162 dbg_dump_stack();
161} 163}
162 164
@@ -448,7 +450,7 @@ static void erase_deleted(struct ubifs_info *c)
448 rb_erase(&orphan->rb, &c->orph_tree); 450 rb_erase(&orphan->rb, &c->orph_tree);
449 list_del(&orphan->list); 451 list_del(&orphan->list);
450 c->tot_orphans -= 1; 452 c->tot_orphans -= 1;
451 dbg_gen("deleting orphan ino %lu", orphan->inum); 453 dbg_gen("deleting orphan ino %lu", (unsigned long)orphan->inum);
452 kfree(orphan); 454 kfree(orphan);
453 } 455 }
454 c->orph_dnext = NULL; 456 c->orph_dnext = NULL;
@@ -536,8 +538,8 @@ static int insert_dead_orphan(struct ubifs_info *c, ino_t inum)
536 list_add_tail(&orphan->list, &c->orph_list); 538 list_add_tail(&orphan->list, &c->orph_list);
537 orphan->dnext = c->orph_dnext; 539 orphan->dnext = c->orph_dnext;
538 c->orph_dnext = orphan; 540 c->orph_dnext = orphan;
539 dbg_mnt("ino %lu, new %d, tot %d", 541 dbg_mnt("ino %lu, new %d, tot %d", (unsigned long)inum,
540 inum, c->new_orphans, c->tot_orphans); 542 c->new_orphans, c->tot_orphans);
541 return 0; 543 return 0;
542} 544}
543 545
@@ -609,7 +611,8 @@ static int do_kill_orphans(struct ubifs_info *c, struct ubifs_scan_leb *sleb,
609 n = (le32_to_cpu(orph->ch.len) - UBIFS_ORPH_NODE_SZ) >> 3; 611 n = (le32_to_cpu(orph->ch.len) - UBIFS_ORPH_NODE_SZ) >> 3;
610 for (i = 0; i < n; i++) { 612 for (i = 0; i < n; i++) {
611 inum = le64_to_cpu(orph->inos[i]); 613 inum = le64_to_cpu(orph->inos[i]);
612 dbg_rcvry("deleting orphaned inode %lu", inum); 614 dbg_rcvry("deleting orphaned inode %lu",
615 (unsigned long)inum);
613 err = ubifs_tnc_remove_ino(c, inum); 616 err = ubifs_tnc_remove_ino(c, inum);
614 if (err) 617 if (err)
615 return err; 618 return err;
@@ -840,8 +843,8 @@ static int dbg_orphan_check(struct ubifs_info *c, struct ubifs_zbranch *zbr,
840 if (inum != ci->last_ino) { 843 if (inum != ci->last_ino) {
841 /* Lowest node type is the inode node, so it comes first */ 844 /* Lowest node type is the inode node, so it comes first */
842 if (key_type(c, &zbr->key) != UBIFS_INO_KEY) 845 if (key_type(c, &zbr->key) != UBIFS_INO_KEY)
843 ubifs_err("found orphan node ino %lu, type %d", inum, 846 ubifs_err("found orphan node ino %lu, type %d",
844 key_type(c, &zbr->key)); 847 (unsigned long)inum, key_type(c, &zbr->key));
845 ci->last_ino = inum; 848 ci->last_ino = inum;
846 ci->tot_inos += 1; 849 ci->tot_inos += 1;
847 err = ubifs_tnc_read_node(c, zbr, ci->node); 850 err = ubifs_tnc_read_node(c, zbr, ci->node);
@@ -853,7 +856,8 @@ static int dbg_orphan_check(struct ubifs_info *c, struct ubifs_zbranch *zbr,
853 /* Must be recorded as an orphan */ 856 /* Must be recorded as an orphan */
854 if (!dbg_find_check_orphan(&ci->root, inum) && 857 if (!dbg_find_check_orphan(&ci->root, inum) &&
855 !dbg_find_orphan(c, inum)) { 858 !dbg_find_orphan(c, inum)) {
856 ubifs_err("missing orphan, ino %lu", inum); 859 ubifs_err("missing orphan, ino %lu",
860 (unsigned long)inum);
857 ci->missing += 1; 861 ci->missing += 1;
858 } 862 }
859 } 863 }
diff --git a/fs/ubifs/recovery.c b/fs/ubifs/recovery.c
index 77d26c141cf6..90acac603e63 100644
--- a/fs/ubifs/recovery.c
+++ b/fs/ubifs/recovery.c
@@ -168,12 +168,12 @@ static int write_rcvrd_mst_node(struct ubifs_info *c,
168 struct ubifs_mst_node *mst) 168 struct ubifs_mst_node *mst)
169{ 169{
170 int err = 0, lnum = UBIFS_MST_LNUM, sz = c->mst_node_alsz; 170 int err = 0, lnum = UBIFS_MST_LNUM, sz = c->mst_node_alsz;
171 uint32_t save_flags; 171 __le32 save_flags;
172 172
173 dbg_rcvry("recovery"); 173 dbg_rcvry("recovery");
174 174
175 save_flags = mst->flags; 175 save_flags = mst->flags;
176 mst->flags = cpu_to_le32(le32_to_cpu(mst->flags) | UBIFS_MST_RCVRY); 176 mst->flags |= cpu_to_le32(UBIFS_MST_RCVRY);
177 177
178 ubifs_prepare_node(c, mst, UBIFS_MST_NODE_SZ, 1); 178 ubifs_prepare_node(c, mst, UBIFS_MST_NODE_SZ, 1);
179 err = ubi_leb_change(c->ubi, lnum, mst, sz, UBI_SHORTTERM); 179 err = ubi_leb_change(c->ubi, lnum, mst, sz, UBI_SHORTTERM);
@@ -1435,13 +1435,13 @@ static int fix_size_in_place(struct ubifs_info *c, struct size_entry *e)
1435 err = ubi_leb_change(c->ubi, lnum, c->sbuf, len, UBI_UNKNOWN); 1435 err = ubi_leb_change(c->ubi, lnum, c->sbuf, len, UBI_UNKNOWN);
1436 if (err) 1436 if (err)
1437 goto out; 1437 goto out;
1438 dbg_rcvry("inode %lu at %d:%d size %lld -> %lld ", e->inum, lnum, offs, 1438 dbg_rcvry("inode %lu at %d:%d size %lld -> %lld ",
1439 i_size, e->d_size); 1439 (unsigned long)e->inum, lnum, offs, i_size, e->d_size);
1440 return 0; 1440 return 0;
1441 1441
1442out: 1442out:
1443 ubifs_warn("inode %lu failed to fix size %lld -> %lld error %d", 1443 ubifs_warn("inode %lu failed to fix size %lld -> %lld error %d",
1444 e->inum, e->i_size, e->d_size, err); 1444 (unsigned long)e->inum, e->i_size, e->d_size, err);
1445 return err; 1445 return err;
1446} 1446}
1447 1447
@@ -1472,7 +1472,8 @@ int ubifs_recover_size(struct ubifs_info *c)
1472 return err; 1472 return err;
1473 if (err == -ENOENT) { 1473 if (err == -ENOENT) {
1474 /* Remove data nodes that have no inode */ 1474 /* Remove data nodes that have no inode */
1475 dbg_rcvry("removing ino %lu", e->inum); 1475 dbg_rcvry("removing ino %lu",
1476 (unsigned long)e->inum);
1476 err = ubifs_tnc_remove_ino(c, e->inum); 1477 err = ubifs_tnc_remove_ino(c, e->inum);
1477 if (err) 1478 if (err)
1478 return err; 1479 return err;
@@ -1493,8 +1494,8 @@ int ubifs_recover_size(struct ubifs_info *c)
1493 return PTR_ERR(inode); 1494 return PTR_ERR(inode);
1494 if (inode->i_size < e->d_size) { 1495 if (inode->i_size < e->d_size) {
1495 dbg_rcvry("ino %lu size %lld -> %lld", 1496 dbg_rcvry("ino %lu size %lld -> %lld",
1496 e->inum, e->d_size, 1497 (unsigned long)e->inum,
1497 inode->i_size); 1498 e->d_size, inode->i_size);
1498 inode->i_size = e->d_size; 1499 inode->i_size = e->d_size;
1499 ubifs_inode(inode)->ui_size = e->d_size; 1500 ubifs_inode(inode)->ui_size = e->d_size;
1500 e->inode = inode; 1501 e->inode = inode;
diff --git a/fs/ubifs/replay.c b/fs/ubifs/replay.c
index 7399692af859..21f7d047c306 100644
--- a/fs/ubifs/replay.c
+++ b/fs/ubifs/replay.c
@@ -1065,7 +1065,7 @@ int ubifs_replay_journal(struct ubifs_info *c)
1065 ubifs_assert(c->bud_bytes <= c->max_bud_bytes || c->need_recovery); 1065 ubifs_assert(c->bud_bytes <= c->max_bud_bytes || c->need_recovery);
1066 dbg_mnt("finished, log head LEB %d:%d, max_sqnum %llu, " 1066 dbg_mnt("finished, log head LEB %d:%d, max_sqnum %llu, "
1067 "highest_inum %lu", c->lhead_lnum, c->lhead_offs, c->max_sqnum, 1067 "highest_inum %lu", c->lhead_lnum, c->lhead_offs, c->max_sqnum,
1068 c->highest_inum); 1068 (unsigned long)c->highest_inum);
1069out: 1069out:
1070 destroy_replay_tree(c); 1070 destroy_replay_tree(c);
1071 destroy_bud_list(c); 1071 destroy_bud_list(c);
diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
index 2bf753b38889..0f392351dc5a 100644
--- a/fs/ubifs/sb.c
+++ b/fs/ubifs/sb.c
@@ -81,6 +81,7 @@ static int create_default_filesystem(struct ubifs_info *c)
81 int lpt_lebs, lpt_first, orph_lebs, big_lpt, ino_waste, sup_flags = 0; 81 int lpt_lebs, lpt_first, orph_lebs, big_lpt, ino_waste, sup_flags = 0;
82 int min_leb_cnt = UBIFS_MIN_LEB_CNT; 82 int min_leb_cnt = UBIFS_MIN_LEB_CNT;
83 uint64_t tmp64, main_bytes; 83 uint64_t tmp64, main_bytes;
84 __le64 tmp_le64;
84 85
85 /* Some functions called from here depend on the @c->key_len filed */ 86 /* Some functions called from here depend on the @c->key_len filed */
86 c->key_len = UBIFS_SK_LEN; 87 c->key_len = UBIFS_SK_LEN;
@@ -295,10 +296,10 @@ static int create_default_filesystem(struct ubifs_info *c)
295 ino->ch.node_type = UBIFS_INO_NODE; 296 ino->ch.node_type = UBIFS_INO_NODE;
296 ino->creat_sqnum = cpu_to_le64(++c->max_sqnum); 297 ino->creat_sqnum = cpu_to_le64(++c->max_sqnum);
297 ino->nlink = cpu_to_le32(2); 298 ino->nlink = cpu_to_le32(2);
298 tmp = cpu_to_le64(CURRENT_TIME_SEC.tv_sec); 299 tmp_le64 = cpu_to_le64(CURRENT_TIME_SEC.tv_sec);
299 ino->atime_sec = tmp; 300 ino->atime_sec = tmp_le64;
300 ino->ctime_sec = tmp; 301 ino->ctime_sec = tmp_le64;
301 ino->mtime_sec = tmp; 302 ino->mtime_sec = tmp_le64;
302 ino->atime_nsec = 0; 303 ino->atime_nsec = 0;
303 ino->ctime_nsec = 0; 304 ino->ctime_nsec = 0;
304 ino->mtime_nsec = 0; 305 ino->mtime_nsec = 0;
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index 8780efbf40ac..d80b2aef42b6 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -36,6 +36,12 @@
36#include <linux/mount.h> 36#include <linux/mount.h>
37#include "ubifs.h" 37#include "ubifs.h"
38 38
39/*
40 * Maximum amount of memory we may 'kmalloc()' without worrying that we are
41 * allocating too much.
42 */
43#define UBIFS_KMALLOC_OK (128*1024)
44
39/* Slab cache for UBIFS inodes */ 45/* Slab cache for UBIFS inodes */
40struct kmem_cache *ubifs_inode_slab; 46struct kmem_cache *ubifs_inode_slab;
41 47
@@ -561,18 +567,11 @@ static int init_constants_early(struct ubifs_info *c)
561 * calculations when reporting free space. 567 * calculations when reporting free space.
562 */ 568 */
563 c->leb_overhead = c->leb_size % UBIFS_MAX_DATA_NODE_SZ; 569 c->leb_overhead = c->leb_size % UBIFS_MAX_DATA_NODE_SZ;
564 /* Buffer size for bulk-reads */
565 c->bulk_read_buf_size = UBIFS_MAX_BULK_READ * UBIFS_MAX_DATA_NODE_SZ;
566 if (c->bulk_read_buf_size > c->leb_size)
567 c->bulk_read_buf_size = c->leb_size;
568 if (c->bulk_read_buf_size > 128 * 1024) {
569 /* Check if we can kmalloc more than 128KiB */
570 void *try = kmalloc(c->bulk_read_buf_size, GFP_KERNEL);
571 570
572 kfree(try); 571 /* Buffer size for bulk-reads */
573 if (!try) 572 c->max_bu_buf_len = UBIFS_MAX_BULK_READ * UBIFS_MAX_DATA_NODE_SZ;
574 c->bulk_read_buf_size = 128 * 1024; 573 if (c->max_bu_buf_len > c->leb_size)
575 } 574 c->max_bu_buf_len = c->leb_size;
576 return 0; 575 return 0;
577} 576}
578 577
@@ -992,6 +991,34 @@ static void destroy_journal(struct ubifs_info *c)
992} 991}
993 992
994/** 993/**
994 * bu_init - initialize bulk-read information.
995 * @c: UBIFS file-system description object
996 */
997static void bu_init(struct ubifs_info *c)
998{
999 ubifs_assert(c->bulk_read == 1);
1000
1001 if (c->bu.buf)
1002 return; /* Already initialized */
1003
1004again:
1005 c->bu.buf = kmalloc(c->max_bu_buf_len, GFP_KERNEL | __GFP_NOWARN);
1006 if (!c->bu.buf) {
1007 if (c->max_bu_buf_len > UBIFS_KMALLOC_OK) {
1008 c->max_bu_buf_len = UBIFS_KMALLOC_OK;
1009 goto again;
1010 }
1011
1012 /* Just disable bulk-read */
1013 ubifs_warn("Cannot allocate %d bytes of memory for bulk-read, "
1014 "disabling it", c->max_bu_buf_len);
1015 c->mount_opts.bulk_read = 1;
1016 c->bulk_read = 0;
1017 return;
1018 }
1019}
1020
1021/**
995 * mount_ubifs - mount UBIFS file-system. 1022 * mount_ubifs - mount UBIFS file-system.
996 * @c: UBIFS file-system description object 1023 * @c: UBIFS file-system description object
997 * 1024 *
@@ -1059,6 +1086,13 @@ static int mount_ubifs(struct ubifs_info *c)
1059 goto out_free; 1086 goto out_free;
1060 } 1087 }
1061 1088
1089 if (c->bulk_read == 1)
1090 bu_init(c);
1091
1092 /*
1093 * We have to check all CRCs, even for data nodes, when we mount the FS
1094 * (specifically, when we are replaying).
1095 */
1062 c->always_chk_crc = 1; 1096 c->always_chk_crc = 1;
1063 1097
1064 err = ubifs_read_superblock(c); 1098 err = ubifs_read_superblock(c);
@@ -1289,6 +1323,7 @@ out_cbuf:
1289out_dereg: 1323out_dereg:
1290 dbg_failure_mode_deregistration(c); 1324 dbg_failure_mode_deregistration(c);
1291out_free: 1325out_free:
1326 kfree(c->bu.buf);
1292 vfree(c->ileb_buf); 1327 vfree(c->ileb_buf);
1293 vfree(c->sbuf); 1328 vfree(c->sbuf);
1294 kfree(c->bottom_up_buf); 1329 kfree(c->bottom_up_buf);
@@ -1325,10 +1360,11 @@ static void ubifs_umount(struct ubifs_info *c)
1325 kfree(c->cbuf); 1360 kfree(c->cbuf);
1326 kfree(c->rcvrd_mst_node); 1361 kfree(c->rcvrd_mst_node);
1327 kfree(c->mst_node); 1362 kfree(c->mst_node);
1363 kfree(c->bu.buf);
1364 vfree(c->ileb_buf);
1328 vfree(c->sbuf); 1365 vfree(c->sbuf);
1329 kfree(c->bottom_up_buf); 1366 kfree(c->bottom_up_buf);
1330 UBIFS_DBG(vfree(c->dbg_buf)); 1367 UBIFS_DBG(vfree(c->dbg_buf));
1331 vfree(c->ileb_buf);
1332 dbg_failure_mode_deregistration(c); 1368 dbg_failure_mode_deregistration(c);
1333} 1369}
1334 1370
@@ -1626,6 +1662,7 @@ static int ubifs_remount_fs(struct super_block *sb, int *flags, char *data)
1626 ubifs_err("invalid or unknown remount parameter"); 1662 ubifs_err("invalid or unknown remount parameter");
1627 return err; 1663 return err;
1628 } 1664 }
1665
1629 if ((sb->s_flags & MS_RDONLY) && !(*flags & MS_RDONLY)) { 1666 if ((sb->s_flags & MS_RDONLY) && !(*flags & MS_RDONLY)) {
1630 err = ubifs_remount_rw(c); 1667 err = ubifs_remount_rw(c);
1631 if (err) 1668 if (err)
@@ -1633,6 +1670,14 @@ static int ubifs_remount_fs(struct super_block *sb, int *flags, char *data)
1633 } else if (!(sb->s_flags & MS_RDONLY) && (*flags & MS_RDONLY)) 1670 } else if (!(sb->s_flags & MS_RDONLY) && (*flags & MS_RDONLY))
1634 ubifs_remount_ro(c); 1671 ubifs_remount_ro(c);
1635 1672
1673 if (c->bulk_read == 1)
1674 bu_init(c);
1675 else {
1676 dbg_gen("disable bulk-read");
1677 kfree(c->bu.buf);
1678 c->bu.buf = NULL;
1679 }
1680
1636 return 0; 1681 return 0;
1637} 1682}
1638 1683
@@ -1723,6 +1768,7 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent)
1723 mutex_init(&c->log_mutex); 1768 mutex_init(&c->log_mutex);
1724 mutex_init(&c->mst_mutex); 1769 mutex_init(&c->mst_mutex);
1725 mutex_init(&c->umount_mutex); 1770 mutex_init(&c->umount_mutex);
1771 mutex_init(&c->bu_mutex);
1726 init_waitqueue_head(&c->cmt_wq); 1772 init_waitqueue_head(&c->cmt_wq);
1727 c->buds = RB_ROOT; 1773 c->buds = RB_ROOT;
1728 c->old_idx = RB_ROOT; 1774 c->old_idx = RB_ROOT;
diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c
index d27fd918b9c9..6eef5344a145 100644
--- a/fs/ubifs/tnc.c
+++ b/fs/ubifs/tnc.c
@@ -1501,7 +1501,12 @@ out:
1501 * @bu: bulk-read parameters and results 1501 * @bu: bulk-read parameters and results
1502 * 1502 *
1503 * Lookup consecutive data node keys for the same inode that reside 1503 * Lookup consecutive data node keys for the same inode that reside
1504 * consecutively in the same LEB. 1504 * consecutively in the same LEB. This function returns zero in case of success
1505 * and a negative error code in case of failure.
1506 *
1507 * Note, if the bulk-read buffer length (@bu->buf_len) is known, this function
1508 * makes sure bulk-read nodes fit the buffer. Otherwise, this function prepares
1509 * maxumum possible amount of nodes for bulk-read.
1505 */ 1510 */
1506int ubifs_tnc_get_bu_keys(struct ubifs_info *c, struct bu_info *bu) 1511int ubifs_tnc_get_bu_keys(struct ubifs_info *c, struct bu_info *bu)
1507{ 1512{
@@ -2677,7 +2682,7 @@ int ubifs_tnc_remove_ino(struct ubifs_info *c, ino_t inum)
2677 struct ubifs_dent_node *xent, *pxent = NULL; 2682 struct ubifs_dent_node *xent, *pxent = NULL;
2678 struct qstr nm = { .name = NULL }; 2683 struct qstr nm = { .name = NULL };
2679 2684
2680 dbg_tnc("ino %lu", inum); 2685 dbg_tnc("ino %lu", (unsigned long)inum);
2681 2686
2682 /* 2687 /*
2683 * Walk all extended attribute entries and remove them together with 2688 * Walk all extended attribute entries and remove them together with
@@ -2697,7 +2702,8 @@ int ubifs_tnc_remove_ino(struct ubifs_info *c, ino_t inum)
2697 } 2702 }
2698 2703
2699 xattr_inum = le64_to_cpu(xent->inum); 2704 xattr_inum = le64_to_cpu(xent->inum);
2700 dbg_tnc("xent '%s', ino %lu", xent->name, xattr_inum); 2705 dbg_tnc("xent '%s', ino %lu", xent->name,
2706 (unsigned long)xattr_inum);
2701 2707
2702 nm.name = xent->name; 2708 nm.name = xent->name;
2703 nm.len = le16_to_cpu(xent->nlen); 2709 nm.len = le16_to_cpu(xent->nlen);
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h
index a7bd32fa15b9..46b172560a06 100644
--- a/fs/ubifs/ubifs.h
+++ b/fs/ubifs/ubifs.h
@@ -753,7 +753,7 @@ struct ubifs_znode {
753}; 753};
754 754
755/** 755/**
756 * struct bu_info - bulk-read information 756 * struct bu_info - bulk-read information.
757 * @key: first data node key 757 * @key: first data node key
758 * @zbranch: zbranches of data nodes to bulk read 758 * @zbranch: zbranches of data nodes to bulk read
759 * @buf: buffer to read into 759 * @buf: buffer to read into
@@ -969,7 +969,10 @@ struct ubifs_mount_opts {
969 * @mst_node: master node 969 * @mst_node: master node
970 * @mst_offs: offset of valid master node 970 * @mst_offs: offset of valid master node
971 * @mst_mutex: protects the master node area, @mst_node, and @mst_offs 971 * @mst_mutex: protects the master node area, @mst_node, and @mst_offs
972 * @bulk_read_buf_size: buffer size for bulk-reads 972 *
973 * @max_bu_buf_len: maximum bulk-read buffer length
974 * @bu_mutex: protects the pre-allocated bulk-read buffer and @c->bu
975 * @bu: pre-allocated bulk-read information
973 * 976 *
974 * @log_lebs: number of logical eraseblocks in the log 977 * @log_lebs: number of logical eraseblocks in the log
975 * @log_bytes: log size in bytes 978 * @log_bytes: log size in bytes
@@ -1217,7 +1220,10 @@ struct ubifs_info {
1217 struct ubifs_mst_node *mst_node; 1220 struct ubifs_mst_node *mst_node;
1218 int mst_offs; 1221 int mst_offs;
1219 struct mutex mst_mutex; 1222 struct mutex mst_mutex;
1220 int bulk_read_buf_size; 1223
1224 int max_bu_buf_len;
1225 struct mutex bu_mutex;
1226 struct bu_info bu;
1221 1227
1222 int log_lebs; 1228 int log_lebs;
1223 long long log_bytes; 1229 long long log_bytes;
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index 6e74b117aaf0..30ebde490f7f 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -106,6 +106,7 @@ void udf_clear_inode(struct inode *inode)
106 udf_truncate_tail_extent(inode); 106 udf_truncate_tail_extent(inode);
107 unlock_kernel(); 107 unlock_kernel();
108 write_inode_now(inode, 0); 108 write_inode_now(inode, 0);
109 invalidate_inode_buffers(inode);
109 } 110 }
110 iinfo = UDF_I(inode); 111 iinfo = UDF_I(inode);
111 kfree(iinfo->i_ext.i_data); 112 kfree(iinfo->i_ext.i_data);
diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c
index d700dacdb10e..c903130be7fd 100644
--- a/fs/xfs/xfs_rename.c
+++ b/fs/xfs/xfs_rename.c
@@ -212,7 +212,7 @@ xfs_rename(
212 if (unlikely((target_dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) && 212 if (unlikely((target_dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) &&
213 (target_dp->i_d.di_projid != src_ip->i_d.di_projid))) { 213 (target_dp->i_d.di_projid != src_ip->i_d.di_projid))) {
214 error = XFS_ERROR(EXDEV); 214 error = XFS_ERROR(EXDEV);
215 xfs_rename_unlock4(inodes, XFS_ILOCK_SHARED); 215 xfs_rename_unlock4(inodes, XFS_ILOCK_EXCL);
216 xfs_trans_cancel(tp, cancel_flags); 216 xfs_trans_cancel(tp, cancel_flags);
217 goto std_return; 217 goto std_return;
218 } 218 }
diff --git a/include/acpi/acoutput.h b/include/acpi/acoutput.h
index 09d33c7740f0..db8852d8bcf7 100644
--- a/include/acpi/acoutput.h
+++ b/include/acpi/acoutput.h
@@ -172,7 +172,7 @@
172 172
173/* Defaults for debug_level, debug and normal */ 173/* Defaults for debug_level, debug and normal */
174 174
175#define ACPI_DEBUG_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT) 175#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO)
176#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT) 176#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT)
177#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL) 177#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
178 178
diff --git a/include/acpi/acpredef.h b/include/acpi/acpredef.h
index 619fb75f8861..16a9ca9a66e4 100644
--- a/include/acpi/acpredef.h
+++ b/include/acpi/acpredef.h
@@ -167,7 +167,7 @@ static const union acpi_predefined_info predefined_names[] = {
167 {.info = {"_BFS", 1, 0}}, 167 {.info = {"_BFS", 1, 0}},
168 {.info = {"_BIF", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 168 {.info = {"_BIF", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER,
169 9, 169 9,
170 ACPI_RTYPE_STRING, 4, 0}}, /* fixed (9 Int),(4 Str) */ 170 ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER, 4, 0}}, /* fixed (9 Int),(4 Str) */
171 {.info = {"_BLT", 3, 0}}, 171 {.info = {"_BLT", 3, 0}},
172 {.info = {"_BMC", 1, 0}}, 172 {.info = {"_BMC", 1, 0}},
173 {.info = {"_BMD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* fixed (5 Int) */ 173 {.info = {"_BMD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* fixed (5 Int) */
@@ -346,7 +346,7 @@ static const union acpi_predefined_info predefined_names[] = {
346 346
347 /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */ 347 /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */
348 348
349 {.info = {"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_PACKAGE}}, 349 {.info = {"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}},
350 {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0}}, /* fixed (2 Int), but is optional */ 350 {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0}}, /* fixed (2 Int), but is optional */
351 {.ret_info = {0, 0, 0, 0, 0, 0}} /* Table terminator */ 351 {.ret_info = {0, 0, 0, 0, 0, 0}} /* Table terminator */
352}; 352};
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
index 029c8c06c151..0515e754449d 100644
--- a/include/acpi/platform/aclinux.h
+++ b/include/acpi/platform/aclinux.h
@@ -141,6 +141,10 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache)
141/* 141/*
142 * We need to show where it is safe to preempt execution of ACPICA 142 * We need to show where it is safe to preempt execution of ACPICA
143 */ 143 */
144#define ACPI_PREEMPTION_POINT() cond_resched() 144#define ACPI_PREEMPTION_POINT() \
145 do { \
146 if (!irqs_disabled()) \
147 cond_resched(); \
148 } while (0)
145 149
146#endif /* __ACLINUX_H__ */ 150#endif /* __ACLINUX_H__ */
diff --git a/include/asm-generic/atomic.h b/include/asm-generic/atomic.h
index 4ec0a296bdec..7abdaa91ccd3 100644
--- a/include/asm-generic/atomic.h
+++ b/include/asm-generic/atomic.h
@@ -251,7 +251,7 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
251#define atomic_long_cmpxchg(l, old, new) \ 251#define atomic_long_cmpxchg(l, old, new) \
252 (atomic_cmpxchg((atomic_t *)(l), (old), (new))) 252 (atomic_cmpxchg((atomic_t *)(l), (old), (new)))
253#define atomic_long_xchg(v, new) \ 253#define atomic_long_xchg(v, new) \
254 (atomic_xchg((atomic_t *)(l), (new))) 254 (atomic_xchg((atomic_t *)(v), (new)))
255 255
256#endif /* BITS_PER_LONG == 64 */ 256#endif /* BITS_PER_LONG == 64 */
257 257
diff --git a/include/asm-generic/audit_write.h b/include/asm-generic/audit_write.h
index f10d367fb2a5..c5f1c2c920e2 100644
--- a/include/asm-generic/audit_write.h
+++ b/include/asm-generic/audit_write.h
@@ -1,6 +1,8 @@
1#include <asm-generic/audit_dir_write.h> 1#include <asm-generic/audit_dir_write.h>
2__NR_acct, 2__NR_acct,
3#ifdef __NR_swapon
3__NR_swapon, 4__NR_swapon,
5#endif
4__NR_quotactl, 6__NR_quotactl,
5__NR_truncate, 7__NR_truncate,
6#ifdef __NR_truncate64 8#ifdef __NR_truncate64
diff --git a/include/asm-mn10300/uaccess.h b/include/asm-mn10300/uaccess.h
index 46b9b647f3c3..8a3a4dd55763 100644
--- a/include/asm-mn10300/uaccess.h
+++ b/include/asm-mn10300/uaccess.h
@@ -266,7 +266,7 @@ extern int __get_user_unknown(void);
266 " .section .fixup,\"ax\" \n" \ 266 " .section .fixup,\"ax\" \n" \
267 "4: \n" \ 267 "4: \n" \
268 " mov %5,%0 \n" \ 268 " mov %5,%0 \n" \
269 " jmp 2b \n" \ 269 " jmp 3b \n" \
270 " .previous \n" \ 270 " .previous \n" \
271 " .section __ex_table,\"a\"\n" \ 271 " .section __ex_table,\"a\"\n" \
272 " .balign 4 \n" \ 272 " .balign 4 \n" \
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 28c7f1679d49..d5e8e5c89548 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1151,6 +1151,7 @@ extern u32 drm_vblank_count(struct drm_device *dev, int crtc);
1151extern void drm_handle_vblank(struct drm_device *dev, int crtc); 1151extern void drm_handle_vblank(struct drm_device *dev, int crtc);
1152extern int drm_vblank_get(struct drm_device *dev, int crtc); 1152extern int drm_vblank_get(struct drm_device *dev, int crtc);
1153extern void drm_vblank_put(struct drm_device *dev, int crtc); 1153extern void drm_vblank_put(struct drm_device *dev, int crtc);
1154extern void drm_vblank_cleanup(struct drm_device *dev);
1154/* Modesetting support */ 1155/* Modesetting support */
1155extern int drm_modeset_ctl(struct drm_device *dev, void *data, 1156extern int drm_modeset_ctl(struct drm_device *dev, void *data,
1156 struct drm_file *file_priv); 1157 struct drm_file *file_priv);
diff --git a/include/linux/audit.h b/include/linux/audit.h
index 6272a395d43c..8f0672d13eb1 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -391,6 +391,7 @@ extern int audit_classify_arch(int arch);
391#ifdef CONFIG_AUDITSYSCALL 391#ifdef CONFIG_AUDITSYSCALL
392/* These are defined in auditsc.c */ 392/* These are defined in auditsc.c */
393 /* Public API */ 393 /* Public API */
394extern void audit_finish_fork(struct task_struct *child);
394extern int audit_alloc(struct task_struct *task); 395extern int audit_alloc(struct task_struct *task);
395extern void audit_free(struct task_struct *task); 396extern void audit_free(struct task_struct *task);
396extern void audit_syscall_entry(int arch, 397extern void audit_syscall_entry(int arch,
@@ -434,7 +435,7 @@ static inline void audit_ptrace(struct task_struct *t)
434 435
435 /* Private API (for audit.c only) */ 436 /* Private API (for audit.c only) */
436extern unsigned int audit_serial(void); 437extern unsigned int audit_serial(void);
437extern void auditsc_get_stamp(struct audit_context *ctx, 438extern int auditsc_get_stamp(struct audit_context *ctx,
438 struct timespec *t, unsigned int *serial); 439 struct timespec *t, unsigned int *serial);
439extern int audit_set_loginuid(struct task_struct *task, uid_t loginuid); 440extern int audit_set_loginuid(struct task_struct *task, uid_t loginuid);
440#define audit_get_loginuid(t) ((t)->loginuid) 441#define audit_get_loginuid(t) ((t)->loginuid)
@@ -504,6 +505,7 @@ static inline int audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
504extern int audit_n_rules; 505extern int audit_n_rules;
505extern int audit_signals; 506extern int audit_signals;
506#else 507#else
508#define audit_finish_fork(t)
507#define audit_alloc(t) ({ 0; }) 509#define audit_alloc(t) ({ 0; })
508#define audit_free(t) do { ; } while (0) 510#define audit_free(t) do { ; } while (0)
509#define audit_syscall_entry(ta,a,b,c,d,e) do { ; } while (0) 511#define audit_syscall_entry(ta,a,b,c,d,e) do { ; } while (0)
@@ -516,7 +518,7 @@ extern int audit_signals;
516#define audit_inode(n,d) do { ; } while (0) 518#define audit_inode(n,d) do { ; } while (0)
517#define audit_inode_child(d,i,p) do { ; } while (0) 519#define audit_inode_child(d,i,p) do { ; } while (0)
518#define audit_core_dumps(i) do { ; } while (0) 520#define audit_core_dumps(i) do { ; } while (0)
519#define auditsc_get_stamp(c,t,s) do { BUG(); } while (0) 521#define auditsc_get_stamp(c,t,s) (0)
520#define audit_get_loginuid(t) (-1) 522#define audit_get_loginuid(t) (-1)
521#define audit_get_sessionid(t) (-1) 523#define audit_get_sessionid(t) (-1)
522#define audit_log_task_context(b) do { ; } while (0) 524#define audit_log_task_context(b) do { ; } while (0)
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index a135256b272c..031a315c0509 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -662,6 +662,7 @@ extern unsigned long blk_max_low_pfn, blk_max_pfn;
662 * default timeout for SG_IO if none specified 662 * default timeout for SG_IO if none specified
663 */ 663 */
664#define BLK_DEFAULT_SG_TIMEOUT (60 * HZ) 664#define BLK_DEFAULT_SG_TIMEOUT (60 * HZ)
665#define BLK_MIN_SG_TIMEOUT (7 * HZ)
665 666
666#ifdef CONFIG_BOUNCE 667#ifdef CONFIG_BOUNCE
667extern int init_emergency_isa_pool(void); 668extern int init_emergency_isa_pool(void);
@@ -786,6 +787,8 @@ static inline void blk_run_address_space(struct address_space *mapping)
786 blk_run_backing_dev(mapping->backing_dev_info, NULL); 787 blk_run_backing_dev(mapping->backing_dev_info, NULL);
787} 788}
788 789
790extern void blkdev_dequeue_request(struct request *req);
791
789/* 792/*
790 * blk_end_request() and friends. 793 * blk_end_request() and friends.
791 * __blk_end_request() and end_request() must be called with 794 * __blk_end_request() and end_request() must be called with
@@ -820,11 +823,6 @@ extern void blk_update_request(struct request *rq, int error,
820extern unsigned int blk_rq_bytes(struct request *rq); 823extern unsigned int blk_rq_bytes(struct request *rq);
821extern unsigned int blk_rq_cur_bytes(struct request *rq); 824extern unsigned int blk_rq_cur_bytes(struct request *rq);
822 825
823static inline void blkdev_dequeue_request(struct request *req)
824{
825 elv_dequeue_request(req->q, req);
826}
827
828/* 826/*
829 * Access functions for manipulating queue properties 827 * Access functions for manipulating queue properties
830 */ 828 */
@@ -921,6 +919,8 @@ extern void blk_set_cmd_filter_defaults(struct blk_cmd_filter *filter);
921 919
922#define MAX_SEGMENT_SIZE 65536 920#define MAX_SEGMENT_SIZE 65536
923 921
922#define BLK_SEG_BOUNDARY_MASK 0xFFFFFFFFUL
923
924#define blkdev_entry_to_request(entry) list_entry((entry), struct request, queuelist) 924#define blkdev_entry_to_request(entry) list_entry((entry), struct request, queuelist)
925 925
926static inline int queue_hardsect_size(struct request_queue *q) 926static inline int queue_hardsect_size(struct request_queue *q)
diff --git a/include/linux/can/core.h b/include/linux/can/core.h
index e9ca210ffa5b..f50785ad4781 100644
--- a/include/linux/can/core.h
+++ b/include/linux/can/core.h
@@ -19,7 +19,7 @@
19#include <linux/skbuff.h> 19#include <linux/skbuff.h>
20#include <linux/netdevice.h> 20#include <linux/netdevice.h>
21 21
22#define CAN_VERSION "20071116" 22#define CAN_VERSION "20081130"
23 23
24/* increment this number each time you change some user-space interface */ 24/* increment this number each time you change some user-space interface */
25#define CAN_ABI_VERSION "8" 25#define CAN_ABI_VERSION "8"
diff --git a/include/linux/compat.h b/include/linux/compat.h
index f061a1ea1b74..e88f3ecf38b4 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -252,12 +252,10 @@ extern int compat_ptrace_request(struct task_struct *child,
252 compat_long_t request, 252 compat_long_t request,
253 compat_ulong_t addr, compat_ulong_t data); 253 compat_ulong_t addr, compat_ulong_t data);
254 254
255#ifdef __ARCH_WANT_COMPAT_SYS_PTRACE
256extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request, 255extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
257 compat_ulong_t addr, compat_ulong_t data); 256 compat_ulong_t addr, compat_ulong_t data);
258asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, 257asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
259 compat_long_t addr, compat_long_t data); 258 compat_long_t addr, compat_long_t data);
260#endif /* __ARCH_WANT_COMPAT_SYS_PTRACE */
261 259
262/* 260/*
263 * epoll (fs/eventpoll.c) compat bits follow ... 261 * epoll (fs/eventpoll.c) compat bits follow ...
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 0dcdd9458f4b..4a853ef6fd35 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -63,23 +63,24 @@ extern int dir_notify_enable;
63#define MAY_ACCESS 16 63#define MAY_ACCESS 16
64#define MAY_OPEN 32 64#define MAY_OPEN 32
65 65
66#define FMODE_READ ((__force fmode_t)1) 66/* file is open for reading */
67#define FMODE_WRITE ((__force fmode_t)2) 67#define FMODE_READ ((__force fmode_t)1)
68 68/* file is open for writing */
69/* Internal kernel extensions */ 69#define FMODE_WRITE ((__force fmode_t)2)
70#define FMODE_LSEEK ((__force fmode_t)4) 70/* file is seekable */
71#define FMODE_PREAD ((__force fmode_t)8) 71#define FMODE_LSEEK ((__force fmode_t)4)
72#define FMODE_PWRITE FMODE_PREAD /* These go hand in hand */ 72/* file can be accessed using pread/pwrite */
73 73#define FMODE_PREAD ((__force fmode_t)8)
74/* File is being opened for execution. Primary users of this flag are 74#define FMODE_PWRITE FMODE_PREAD /* These go hand in hand */
75 distributed filesystems that can use it to achieve correct ETXTBUSY 75/* File is opened for execution with sys_execve / sys_uselib */
76 behavior for cross-node execution/opening_for_writing of files */ 76#define FMODE_EXEC ((__force fmode_t)16)
77#define FMODE_EXEC ((__force fmode_t)16) 77/* File is opened with O_NDELAY (only set for block devices) */
78 78#define FMODE_NDELAY ((__force fmode_t)32)
79#define FMODE_NDELAY ((__force fmode_t)32) 79/* File is opened with O_EXCL (only set for block devices) */
80#define FMODE_EXCL ((__force fmode_t)64) 80#define FMODE_EXCL ((__force fmode_t)64)
81/* File is opened using open(.., 3, ..) and is writeable only for ioctls
82 (specialy hack for floppy.c) */
81#define FMODE_WRITE_IOCTL ((__force fmode_t)128) 83#define FMODE_WRITE_IOCTL ((__force fmode_t)128)
82#define FMODE_NDELAY_NOW ((__force fmode_t)256)
83 84
84#define RW_MASK 1 85#define RW_MASK 1
85#define RWA_MASK 2 86#define RWA_MASK 2
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 703eb53cfa2b..9c5bc6be2b09 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -6,6 +6,7 @@
6#include <linux/ktime.h> 6#include <linux/ktime.h>
7#include <linux/init.h> 7#include <linux/init.h>
8#include <linux/types.h> 8#include <linux/types.h>
9#include <linux/module.h>
9#include <linux/kallsyms.h> 10#include <linux/kallsyms.h>
10 11
11#ifdef CONFIG_FUNCTION_TRACER 12#ifdef CONFIG_FUNCTION_TRACER
@@ -231,7 +232,7 @@ ftrace_init_module(unsigned long *start, unsigned long *end) { }
231 232
232struct boot_trace { 233struct boot_trace {
233 pid_t caller; 234 pid_t caller;
234 char func[KSYM_NAME_LEN]; 235 char func[KSYM_SYMBOL_LEN];
235 int result; 236 int result;
236 unsigned long long duration; /* usecs */ 237 unsigned long long duration; /* usecs */
237 ktime_t calltime; 238 ktime_t calltime;
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 7dcbc82f3b7b..13875ce9112a 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -63,12 +63,14 @@ static inline void *kmap_atomic(struct page *page, enum km_type idx)
63#endif /* CONFIG_HIGHMEM */ 63#endif /* CONFIG_HIGHMEM */
64 64
65/* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */ 65/* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */
66#ifndef clear_user_highpage
66static inline void clear_user_highpage(struct page *page, unsigned long vaddr) 67static inline void clear_user_highpage(struct page *page, unsigned long vaddr)
67{ 68{
68 void *addr = kmap_atomic(page, KM_USER0); 69 void *addr = kmap_atomic(page, KM_USER0);
69 clear_user_page(addr, vaddr, page); 70 clear_user_page(addr, vaddr, page);
70 kunmap_atomic(addr, KM_USER0); 71 kunmap_atomic(addr, KM_USER0);
71} 72}
73#endif
72 74
73#ifndef __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE 75#ifndef __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
74/** 76/**
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 54525be4b5f8..010fb26a1579 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1296,6 +1296,13 @@ extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *o
1296#define ide_pci_register_driver(d) pci_register_driver(d) 1296#define ide_pci_register_driver(d) pci_register_driver(d)
1297#endif 1297#endif
1298 1298
1299static inline int ide_pci_is_in_compatibility_mode(struct pci_dev *dev)
1300{
1301 if ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE && (dev->class & 5) != 5)
1302 return 1;
1303 return 0;
1304}
1305
1299void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *, int, 1306void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *, int,
1300 hw_regs_t *, hw_regs_t **); 1307 hw_regs_t *, hw_regs_t **);
1301void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *); 1308void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *);
@@ -1375,6 +1382,7 @@ enum {
1375 IDE_HFLAG_IO_32BIT = (1 << 24), 1382 IDE_HFLAG_IO_32BIT = (1 << 24),
1376 /* unmask IRQs */ 1383 /* unmask IRQs */
1377 IDE_HFLAG_UNMASK_IRQS = (1 << 25), 1384 IDE_HFLAG_UNMASK_IRQS = (1 << 25),
1385 IDE_HFLAG_BROKEN_ALTSTATUS = (1 << 26),
1378 /* serialize ports if DMA is possible (for sl82c105) */ 1386 /* serialize ports if DMA is possible (for sl82c105) */
1379 IDE_HFLAG_SERIALIZE_DMA = (1 << 27), 1387 IDE_HFLAG_SERIALIZE_DMA = (1 << 27),
1380 /* force host out of "simplex" mode */ 1388 /* force host out of "simplex" mode */
diff --git a/include/linux/idr.h b/include/linux/idr.h
index fa035f96f2a3..dd846df8cd32 100644
--- a/include/linux/idr.h
+++ b/include/linux/idr.h
@@ -52,13 +52,14 @@ struct idr_layer {
52 unsigned long bitmap; /* A zero bit means "space here" */ 52 unsigned long bitmap; /* A zero bit means "space here" */
53 struct idr_layer *ary[1<<IDR_BITS]; 53 struct idr_layer *ary[1<<IDR_BITS];
54 int count; /* When zero, we can release it */ 54 int count; /* When zero, we can release it */
55 int layer; /* distance from leaf */
55 struct rcu_head rcu_head; 56 struct rcu_head rcu_head;
56}; 57};
57 58
58struct idr { 59struct idr {
59 struct idr_layer *top; 60 struct idr_layer *top;
60 struct idr_layer *id_free; 61 struct idr_layer *id_free;
61 int layers; 62 int layers; /* only valid without concurrent changes */
62 int id_free_cnt; 63 int id_free_cnt;
63 spinlock_t lock; 64 spinlock_t lock;
64}; 65};
diff --git a/include/linux/irq.h b/include/linux/irq.h
index d058c57be02d..3dddfa703ebd 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -63,7 +63,8 @@ typedef void (*irq_flow_handler_t)(unsigned int irq,
63#define IRQ_MOVE_PENDING 0x00200000 /* need to re-target IRQ destination */ 63#define IRQ_MOVE_PENDING 0x00200000 /* need to re-target IRQ destination */
64#define IRQ_NO_BALANCING 0x00400000 /* IRQ is excluded from balancing */ 64#define IRQ_NO_BALANCING 0x00400000 /* IRQ is excluded from balancing */
65#define IRQ_SPURIOUS_DISABLED 0x00800000 /* IRQ was disabled by the spurious trap */ 65#define IRQ_SPURIOUS_DISABLED 0x00800000 /* IRQ was disabled by the spurious trap */
66#define IRQ_MOVE_PCNTXT 0x01000000 /* IRQ migration from process context */ 66#define IRQ_MOVE_PCNTXT 0x01000000 /* IRQ migration from process context */
67#define IRQ_AFFINITY_SET 0x02000000 /* IRQ affinity was set from userspace*/
67 68
68#ifdef CONFIG_IRQ_PER_CPU 69#ifdef CONFIG_IRQ_PER_CPU
69# define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU) 70# define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU)
@@ -130,7 +131,7 @@ struct irq_chip {
130 131
131/** 132/**
132 * struct irq_desc - interrupt descriptor 133 * struct irq_desc - interrupt descriptor
133 * 134 * @irq: interrupt number for this descriptor
134 * @handle_irq: highlevel irq-events handler [if NULL, __do_IRQ()] 135 * @handle_irq: highlevel irq-events handler [if NULL, __do_IRQ()]
135 * @chip: low level interrupt hardware access 136 * @chip: low level interrupt hardware access
136 * @msi_desc: MSI descriptor 137 * @msi_desc: MSI descriptor
@@ -149,7 +150,6 @@ struct irq_chip {
149 * @cpu: cpu index useful for balancing 150 * @cpu: cpu index useful for balancing
150 * @pending_mask: pending rebalanced interrupts 151 * @pending_mask: pending rebalanced interrupts
151 * @dir: /proc/irq/ procfs entry 152 * @dir: /proc/irq/ procfs entry
152 * @affinity_entry: /proc/irq/smp_affinity procfs entry on SMP
153 * @name: flow handler name for /proc/interrupts output 153 * @name: flow handler name for /proc/interrupts output
154 */ 154 */
155struct irq_desc { 155struct irq_desc {
@@ -210,7 +210,6 @@ extern int setup_irq(unsigned int irq, struct irqaction *new);
210 210
211#ifdef CONFIG_GENERIC_PENDING_IRQ 211#ifdef CONFIG_GENERIC_PENDING_IRQ
212 212
213void set_pending_irq(unsigned int irq, cpumask_t mask);
214void move_native_irq(int irq); 213void move_native_irq(int irq);
215void move_masked_irq(int irq); 214void move_masked_irq(int irq);
216 215
@@ -228,10 +227,6 @@ static inline void move_masked_irq(int irq)
228{ 227{
229} 228}
230 229
231static inline void set_pending_irq(unsigned int irq, cpumask_t mask)
232{
233}
234
235#endif /* CONFIG_GENERIC_PENDING_IRQ */ 230#endif /* CONFIG_GENERIC_PENDING_IRQ */
236 231
237#else /* CONFIG_SMP */ 232#else /* CONFIG_SMP */
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 59b0f1c807b5..ed3f26eb5df1 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -375,6 +375,7 @@ enum {
375 ATA_HORKAGE_BRIDGE_OK = (1 << 10), /* no bridge limits */ 375 ATA_HORKAGE_BRIDGE_OK = (1 << 10), /* no bridge limits */
376 ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), /* use ATAPI DMA for commands 376 ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), /* use ATAPI DMA for commands
377 not multiple of 16 bytes */ 377 not multiple of 16 bytes */
378 ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firwmare update warning */
378 379
379 /* DMA mask for user DMA control: User visible values; DO NOT 380 /* DMA mask for user DMA control: User visible values; DO NOT
380 renumber */ 381 renumber */
diff --git a/include/linux/memory.h b/include/linux/memory.h
index 2f5f8a5ef2a0..36c82c9e6ea7 100644
--- a/include/linux/memory.h
+++ b/include/linux/memory.h
@@ -91,7 +91,7 @@ extern int memory_notify(unsigned long val, void *v);
91 91
92#ifdef CONFIG_MEMORY_HOTPLUG 92#ifdef CONFIG_MEMORY_HOTPLUG
93#define hotplug_memory_notifier(fn, pri) { \ 93#define hotplug_memory_notifier(fn, pri) { \
94 static struct notifier_block fn##_mem_nb = \ 94 static __meminitdata struct notifier_block fn##_mem_nb =\
95 { .notifier_call = fn, .priority = pri }; \ 95 { .notifier_call = fn, .priority = pri }; \
96 register_memory_notifier(&fn##_mem_nb); \ 96 register_memory_notifier(&fn##_mem_nb); \
97} 97}
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index bd9977b89490..371086fd946f 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -179,6 +179,7 @@ struct mlx4_caps {
179 int num_ports; 179 int num_ports;
180 int vl_cap[MLX4_MAX_PORTS + 1]; 180 int vl_cap[MLX4_MAX_PORTS + 1];
181 int ib_mtu_cap[MLX4_MAX_PORTS + 1]; 181 int ib_mtu_cap[MLX4_MAX_PORTS + 1];
182 __be32 ib_port_def_cap[MLX4_MAX_PORTS + 1];
182 u64 def_mac[MLX4_MAX_PORTS + 1]; 183 u64 def_mac[MLX4_MAX_PORTS + 1];
183 int eth_mtu_cap[MLX4_MAX_PORTS + 1]; 184 int eth_mtu_cap[MLX4_MAX_PORTS + 1];
184 int gid_table_len[MLX4_MAX_PORTS + 1]; 185 int gid_table_len[MLX4_MAX_PORTS + 1];
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 9d77b1d7dca8..e26f54952892 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -319,6 +319,7 @@ enum
319{ 319{
320 NAPI_STATE_SCHED, /* Poll is scheduled */ 320 NAPI_STATE_SCHED, /* Poll is scheduled */
321 NAPI_STATE_DISABLE, /* Disable pending */ 321 NAPI_STATE_DISABLE, /* Disable pending */
322 NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */
322}; 323};
323 324
324extern void __napi_schedule(struct napi_struct *n); 325extern void __napi_schedule(struct napi_struct *n);
@@ -1497,6 +1498,12 @@ static inline void netif_rx_complete(struct net_device *dev,
1497{ 1498{
1498 unsigned long flags; 1499 unsigned long flags;
1499 1500
1501 /*
1502 * don't let napi dequeue from the cpu poll list
1503 * just in case its running on a different cpu
1504 */
1505 if (unlikely(test_bit(NAPI_STATE_NPSVC, &napi->state)))
1506 return;
1500 local_irq_save(flags); 1507 local_irq_save(flags);
1501 __netif_rx_complete(dev, napi); 1508 __netif_rx_complete(dev, napi);
1502 local_irq_restore(flags); 1509 local_irq_restore(flags);
diff --git a/include/linux/netfilter/nfnetlink_conntrack.h b/include/linux/netfilter/nfnetlink_conntrack.h
index c19595c89304..29fe9ea1d346 100644
--- a/include/linux/netfilter/nfnetlink_conntrack.h
+++ b/include/linux/netfilter/nfnetlink_conntrack.h
@@ -141,6 +141,7 @@ enum ctattr_protonat {
141#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1) 141#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
142 142
143enum ctattr_natseq { 143enum ctattr_natseq {
144 CTA_NAT_SEQ_UNSPEC,
144 CTA_NAT_SEQ_CORRECTION_POS, 145 CTA_NAT_SEQ_CORRECTION_POS,
145 CTA_NAT_SEQ_OFFSET_BEFORE, 146 CTA_NAT_SEQ_OFFSET_BEFORE,
146 CTA_NAT_SEQ_OFFSET_AFTER, 147 CTA_NAT_SEQ_OFFSET_AFTER,
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
index be41b609c88f..e52ce475d19f 100644
--- a/include/linux/netfilter/x_tables.h
+++ b/include/linux/netfilter/x_tables.h
@@ -251,7 +251,7 @@ struct xt_target_param {
251 */ 251 */
252struct xt_tgchk_param { 252struct xt_tgchk_param {
253 const char *table; 253 const char *table;
254 void *entryinfo; 254 const void *entryinfo;
255 const struct xt_target *target; 255 const struct xt_target *target;
256 void *targinfo; 256 void *targinfo;
257 unsigned int hook_mask; 257 unsigned int hook_mask;
diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h
index f546ad6fc028..1e6d34bfa094 100644
--- a/include/linux/page_cgroup.h
+++ b/include/linux/page_cgroup.h
@@ -17,7 +17,7 @@ struct page_cgroup {
17 struct list_head lru; /* per cgroup LRU list */ 17 struct list_head lru; /* per cgroup LRU list */
18}; 18};
19 19
20void __init pgdat_page_cgroup_init(struct pglist_data *pgdat); 20void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat);
21void __init page_cgroup_init(void); 21void __init page_cgroup_init(void);
22struct page_cgroup *lookup_page_cgroup(struct page *page); 22struct page_cgroup *lookup_page_cgroup(struct page *page);
23 23
@@ -91,7 +91,7 @@ static inline void unlock_page_cgroup(struct page_cgroup *pc)
91#else /* CONFIG_CGROUP_MEM_RES_CTLR */ 91#else /* CONFIG_CGROUP_MEM_RES_CTLR */
92struct page_cgroup; 92struct page_cgroup;
93 93
94static inline void pgdat_page_cgroup_init(struct pglist_data *pgdat) 94static inline void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat)
95{ 95{
96} 96}
97 97
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 644ffbda17ca..55e30d114477 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -630,6 +630,10 @@ struct user_struct {
630 atomic_t inotify_watches; /* How many inotify watches does this user have? */ 630 atomic_t inotify_watches; /* How many inotify watches does this user have? */
631 atomic_t inotify_devs; /* How many inotify devs does this user have opened? */ 631 atomic_t inotify_devs; /* How many inotify devs does this user have opened? */
632#endif 632#endif
633#ifdef CONFIG_EPOLL
634 atomic_t epoll_devs; /* The number of epoll descriptors currently open */
635 atomic_t epoll_watches; /* The number of file descriptors currently watched */
636#endif
633#ifdef CONFIG_POSIX_MQUEUE 637#ifdef CONFIG_POSIX_MQUEUE
634 /* protected by mq_lock */ 638 /* protected by mq_lock */
635 unsigned long mq_bytes; /* How many bytes can be allocated to mqueue? */ 639 unsigned long mq_bytes; /* How many bytes can be allocated to mqueue? */
diff --git a/include/linux/security.h b/include/linux/security.h
index c13f1cec9abb..e3d4ecda2673 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -1818,17 +1818,21 @@ static inline int security_settime(struct timespec *ts, struct timezone *tz)
1818 1818
1819static inline int security_vm_enough_memory(long pages) 1819static inline int security_vm_enough_memory(long pages)
1820{ 1820{
1821 WARN_ON(current->mm == NULL);
1821 return cap_vm_enough_memory(current->mm, pages); 1822 return cap_vm_enough_memory(current->mm, pages);
1822} 1823}
1823 1824
1824static inline int security_vm_enough_memory_kern(long pages) 1825static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages)
1825{ 1826{
1826 return cap_vm_enough_memory(current->mm, pages); 1827 WARN_ON(mm == NULL);
1828 return cap_vm_enough_memory(mm, pages);
1827} 1829}
1828 1830
1829static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages) 1831static inline int security_vm_enough_memory_kern(long pages)
1830{ 1832{
1831 return cap_vm_enough_memory(mm, pages); 1833 /* If current->mm is a kernel thread then we will pass NULL,
1834 for this specific case that is fine */
1835 return cap_vm_enough_memory(current->mm, pages);
1832} 1836}
1833 1837
1834static inline int security_bprm_alloc(struct linux_binprm *bprm) 1838static inline int security_bprm_alloc(struct linux_binprm *bprm)
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 3f9a60043a97..6e7ba16ff454 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -146,6 +146,8 @@ static inline void smp_send_reschedule(int cpu) { }
146}) 146})
147#define smp_call_function_mask(mask, func, info, wait) \ 147#define smp_call_function_mask(mask, func, info, wait) \
148 (up_smp_call_function(func, info)) 148 (up_smp_call_function(func, info))
149#define smp_call_function_many(mask, func, info, wait) \
150 (up_smp_call_function(func, info))
149static inline void init_call_single_data(void) 151static inline void init_call_single_data(void)
150{ 152{
151} 153}
diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h
index 73a2f4eb1f7a..9b42baed3900 100644
--- a/include/linux/usb/ch9.h
+++ b/include/linux/usb/ch9.h
@@ -158,8 +158,12 @@ struct usb_ctrlrequest {
158 * (rarely) accepted by SET_DESCRIPTOR. 158 * (rarely) accepted by SET_DESCRIPTOR.
159 * 159 *
160 * Note that all multi-byte values here are encoded in little endian 160 * Note that all multi-byte values here are encoded in little endian
161 * byte order "on the wire". But when exposed through Linux-USB APIs, 161 * byte order "on the wire". Within the kernel and when exposed
162 * they've been converted to cpu byte order. 162 * through the Linux-USB APIs, they are not converted to cpu byte
163 * order; it is the responsibility of the client code to do this.
164 * The single exception is when device and configuration descriptors (but
165 * not other descriptors) are read from usbfs (i.e. /proc/bus/usb/BBB/DDD);
166 * in this case the fields are converted to host endianness by the kernel.
163 */ 167 */
164 168
165/* 169/*
diff --git a/include/net/af_unix.h b/include/net/af_unix.h
index c29ff1da8a18..1614d78c60ed 100644
--- a/include/net/af_unix.h
+++ b/include/net/af_unix.h
@@ -9,6 +9,7 @@
9extern void unix_inflight(struct file *fp); 9extern void unix_inflight(struct file *fp);
10extern void unix_notinflight(struct file *fp); 10extern void unix_notinflight(struct file *fp);
11extern void unix_gc(void); 11extern void unix_gc(void);
12extern void wait_for_unix_gc(void);
12 13
13#define UNIX_HASH_SIZE 256 14#define UNIX_HASH_SIZE 256
14 15
diff --git a/include/net/irda/irda_device.h b/include/net/irda/irda_device.h
index 3025ae17ddbe..94c852d47d0f 100644
--- a/include/net/irda/irda_device.h
+++ b/include/net/irda/irda_device.h
@@ -135,9 +135,11 @@ struct dongle_reg {
135 135
136/* 136/*
137 * Per-packet information we need to hide inside sk_buff 137 * Per-packet information we need to hide inside sk_buff
138 * (must not exceed 48 bytes, check with struct sk_buff) 138 * (must not exceed 48 bytes, check with struct sk_buff)
139 * The default_qdisc_pad field is a temporary hack.
139 */ 140 */
140struct irda_skb_cb { 141struct irda_skb_cb {
142 unsigned int default_qdisc_pad;
141 magic_t magic; /* Be sure that we can trust the information */ 143 magic_t magic; /* Be sure that we can trust the information */
142 __u32 next_speed; /* The Speed to be set *after* this frame */ 144 __u32 next_speed; /* The Speed to be set *after* this frame */
143 __u16 mtt; /* Minimum turn around time */ 145 __u16 mtt; /* Minimum turn around time */
diff --git a/include/net/request_sock.h b/include/net/request_sock.h
index cac811e51f6d..c7190846e128 100644
--- a/include/net/request_sock.h
+++ b/include/net/request_sock.h
@@ -31,6 +31,7 @@ struct request_sock_ops {
31 int family; 31 int family;
32 int obj_size; 32 int obj_size;
33 struct kmem_cache *slab; 33 struct kmem_cache *slab;
34 char *slab_name;
34 int (*rtx_syn_ack)(struct sock *sk, 35 int (*rtx_syn_ack)(struct sock *sk,
35 struct request_sock *req); 36 struct request_sock *req);
36 void (*send_ack)(struct sock *sk, struct sk_buff *skb, 37 void (*send_ack)(struct sock *sk, struct sk_buff *skb,
diff --git a/include/net/timewait_sock.h b/include/net/timewait_sock.h
index 1e1ee3253fd8..97c3b14da55d 100644
--- a/include/net/timewait_sock.h
+++ b/include/net/timewait_sock.h
@@ -16,6 +16,7 @@
16 16
17struct timewait_sock_ops { 17struct timewait_sock_ops {
18 struct kmem_cache *twsk_slab; 18 struct kmem_cache *twsk_slab;
19 char *twsk_slab_name;
19 unsigned int twsk_obj_size; 20 unsigned int twsk_obj_size;
20 int (*twsk_unique)(struct sock *sk, 21 int (*twsk_unique)(struct sock *sk,
21 struct sock *sktw, void *twp); 22 struct sock *sktw, void *twp);
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
index 49d8913c4f86..6e04e6fe79c7 100644
--- a/include/scsi/scsi_transport_fc.h
+++ b/include/scsi/scsi_transport_fc.h
@@ -357,7 +357,7 @@ struct fc_rport { /* aka fc_starget_attrs */
357/* bit field values for struct fc_rport "flags" field: */ 357/* bit field values for struct fc_rport "flags" field: */
358#define FC_RPORT_DEVLOSS_PENDING 0x01 358#define FC_RPORT_DEVLOSS_PENDING 0x01
359#define FC_RPORT_SCAN_PENDING 0x02 359#define FC_RPORT_SCAN_PENDING 0x02
360#define FC_RPORT_FAST_FAIL_TIMEDOUT 0x03 360#define FC_RPORT_FAST_FAIL_TIMEDOUT 0x04
361 361
362#define dev_to_rport(d) \ 362#define dev_to_rport(d) \
363 container_of(d, struct fc_rport, dev) 363 container_of(d, struct fc_rport, dev)
diff --git a/include/video/radeon.h b/include/video/radeon.h
index d5dcaf154ba4..1cd09cc5b169 100644
--- a/include/video/radeon.h
+++ b/include/video/radeon.h
@@ -525,9 +525,6 @@
525#define CRTC_DISPLAY_DIS (1 << 10) 525#define CRTC_DISPLAY_DIS (1 << 10)
526#define CRTC_CRT_ON (1 << 15) 526#define CRTC_CRT_ON (1 << 15)
527 527
528/* DSTCACHE_MODE bits constants */
529#define RB2D_DC_AUTOFLUSH_ENABLE (1 << 8)
530#define RB2D_DC_DC_DISABLE_IGNORE_PE (1 << 17)
531 528
532/* DSTCACHE_CTLSTAT bit constants */ 529/* DSTCACHE_CTLSTAT bit constants */
533#define RB2D_DC_FLUSH_2D (1 << 0) 530#define RB2D_DC_FLUSH_2D (1 << 0)
@@ -869,10 +866,15 @@
869#define GMC_DST_16BPP_YVYU422 0x00000c00 866#define GMC_DST_16BPP_YVYU422 0x00000c00
870#define GMC_DST_32BPP_AYUV444 0x00000e00 867#define GMC_DST_32BPP_AYUV444 0x00000e00
871#define GMC_DST_16BPP_ARGB4444 0x00000f00 868#define GMC_DST_16BPP_ARGB4444 0x00000f00
869#define GMC_SRC_MONO 0x00000000
870#define GMC_SRC_MONO_LBKGD 0x00001000
871#define GMC_SRC_DSTCOLOR 0x00003000
872#define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000 872#define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000
873#define GMC_BYTE_ORDER_LSB_TO_MSB 0x00004000 873#define GMC_BYTE_ORDER_LSB_TO_MSB 0x00004000
874#define GMC_DP_CONVERSION_TEMP_9300 0x00008000 874#define GMC_DP_CONVERSION_TEMP_9300 0x00008000
875#define GMC_DP_CONVERSION_TEMP_6500 0x00000000 875#define GMC_DP_CONVERSION_TEMP_6500 0x00000000
876#define GMC_DP_SRC_RECT 0x02000000
877#define GMC_DP_SRC_HOST 0x03000000
876#define GMC_DP_SRC_HOST_BYTEALIGN 0x04000000 878#define GMC_DP_SRC_HOST_BYTEALIGN 0x04000000
877#define GMC_3D_FCN_EN_CLR 0x00000000 879#define GMC_3D_FCN_EN_CLR 0x00000000
878#define GMC_3D_FCN_EN_SET 0x08000000 880#define GMC_3D_FCN_EN_SET 0x08000000
@@ -883,9 +885,6 @@
883#define GMC_WRITE_MASK_LEAVE 0x00000000 885#define GMC_WRITE_MASK_LEAVE 0x00000000
884#define GMC_WRITE_MASK_SET 0x40000000 886#define GMC_WRITE_MASK_SET 0x40000000
885#define GMC_CLR_CMP_CNTL_DIS (1 << 28) 887#define GMC_CLR_CMP_CNTL_DIS (1 << 28)
886#define GMC_SRC_DATATYPE_MASK (3 << 12)
887#define GMC_SRC_DATATYPE_MONO_FG_BG (0 << 12)
888#define GMC_SRC_DATATYPE_MONO_FG_LA (1 << 12)
889#define GMC_SRC_DATATYPE_COLOR (3 << 12) 888#define GMC_SRC_DATATYPE_COLOR (3 << 12)
890#define ROP3_S 0x00cc0000 889#define ROP3_S 0x00cc0000
891#define ROP3_SRCCOPY 0x00cc0000 890#define ROP3_SRCCOPY 0x00cc0000
@@ -894,7 +893,6 @@
894#define DP_SRC_SOURCE_MASK (7 << 24) 893#define DP_SRC_SOURCE_MASK (7 << 24)
895#define GMC_BRUSH_NONE (15 << 4) 894#define GMC_BRUSH_NONE (15 << 4)
896#define DP_SRC_SOURCE_MEMORY (2 << 24) 895#define DP_SRC_SOURCE_MEMORY (2 << 24)
897#define DP_SRC_SOURCE_HOST_DATA (3 << 24)
898#define GMC_BRUSH_SOLIDCOLOR 0x000000d0 896#define GMC_BRUSH_SOLIDCOLOR 0x000000d0
899 897
900/* DP_MIX bit constants */ 898/* DP_MIX bit constants */
@@ -980,12 +978,6 @@
980#define DISP_PWR_MAN_TV_ENABLE_RST (1 << 25) 978#define DISP_PWR_MAN_TV_ENABLE_RST (1 << 25)
981#define DISP_PWR_MAN_AUTO_PWRUP_EN (1 << 26) 979#define DISP_PWR_MAN_AUTO_PWRUP_EN (1 << 26)
982 980
983/* RBBM_GUICNTL constants */
984#define RBBM_GUICNTL_HOST_DATA_SWAP_NONE (0 << 0)
985#define RBBM_GUICNTL_HOST_DATA_SWAP_16BIT (1 << 0)
986#define RBBM_GUICNTL_HOST_DATA_SWAP_32BIT (2 << 0)
987#define RBBM_GUICNTL_HOST_DATA_SWAP_HDW (3 << 0)
988
989/* masks */ 981/* masks */
990 982
991#define CONFIG_MEMSIZE_MASK 0x1f000000 983#define CONFIG_MEMSIZE_MASK 0x1f000000
diff --git a/kernel/audit.c b/kernel/audit.c
index 4414e93d8750..ce6d8ea3131e 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -61,8 +61,11 @@
61 61
62#include "audit.h" 62#include "audit.h"
63 63
64/* No auditing will take place until audit_initialized != 0. 64/* No auditing will take place until audit_initialized == AUDIT_INITIALIZED.
65 * (Initialization happens after skb_init is called.) */ 65 * (Initialization happens after skb_init is called.) */
66#define AUDIT_DISABLED -1
67#define AUDIT_UNINITIALIZED 0
68#define AUDIT_INITIALIZED 1
66static int audit_initialized; 69static int audit_initialized;
67 70
68#define AUDIT_OFF 0 71#define AUDIT_OFF 0
@@ -965,6 +968,9 @@ static int __init audit_init(void)
965{ 968{
966 int i; 969 int i;
967 970
971 if (audit_initialized == AUDIT_DISABLED)
972 return 0;
973
968 printk(KERN_INFO "audit: initializing netlink socket (%s)\n", 974 printk(KERN_INFO "audit: initializing netlink socket (%s)\n",
969 audit_default ? "enabled" : "disabled"); 975 audit_default ? "enabled" : "disabled");
970 audit_sock = netlink_kernel_create(&init_net, NETLINK_AUDIT, 0, 976 audit_sock = netlink_kernel_create(&init_net, NETLINK_AUDIT, 0,
@@ -976,7 +982,7 @@ static int __init audit_init(void)
976 982
977 skb_queue_head_init(&audit_skb_queue); 983 skb_queue_head_init(&audit_skb_queue);
978 skb_queue_head_init(&audit_skb_hold_queue); 984 skb_queue_head_init(&audit_skb_hold_queue);
979 audit_initialized = 1; 985 audit_initialized = AUDIT_INITIALIZED;
980 audit_enabled = audit_default; 986 audit_enabled = audit_default;
981 audit_ever_enabled |= !!audit_default; 987 audit_ever_enabled |= !!audit_default;
982 988
@@ -999,13 +1005,21 @@ __initcall(audit_init);
999static int __init audit_enable(char *str) 1005static int __init audit_enable(char *str)
1000{ 1006{
1001 audit_default = !!simple_strtol(str, NULL, 0); 1007 audit_default = !!simple_strtol(str, NULL, 0);
1002 printk(KERN_INFO "audit: %s%s\n", 1008 if (!audit_default)
1003 audit_default ? "enabled" : "disabled", 1009 audit_initialized = AUDIT_DISABLED;
1004 audit_initialized ? "" : " (after initialization)"); 1010
1005 if (audit_initialized) { 1011 printk(KERN_INFO "audit: %s", audit_default ? "enabled" : "disabled");
1012
1013 if (audit_initialized == AUDIT_INITIALIZED) {
1006 audit_enabled = audit_default; 1014 audit_enabled = audit_default;
1007 audit_ever_enabled |= !!audit_default; 1015 audit_ever_enabled |= !!audit_default;
1016 } else if (audit_initialized == AUDIT_UNINITIALIZED) {
1017 printk(" (after initialization)");
1018 } else {
1019 printk(" (until reboot)");
1008 } 1020 }
1021 printk("\n");
1022
1009 return 1; 1023 return 1;
1010} 1024}
1011 1025
@@ -1107,9 +1121,7 @@ unsigned int audit_serial(void)
1107static inline void audit_get_stamp(struct audit_context *ctx, 1121static inline void audit_get_stamp(struct audit_context *ctx,
1108 struct timespec *t, unsigned int *serial) 1122 struct timespec *t, unsigned int *serial)
1109{ 1123{
1110 if (ctx) 1124 if (!ctx || !auditsc_get_stamp(ctx, t, serial)) {
1111 auditsc_get_stamp(ctx, t, serial);
1112 else {
1113 *t = CURRENT_TIME; 1125 *t = CURRENT_TIME;
1114 *serial = audit_serial(); 1126 *serial = audit_serial();
1115 } 1127 }
@@ -1146,7 +1158,7 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask,
1146 int reserve; 1158 int reserve;
1147 unsigned long timeout_start = jiffies; 1159 unsigned long timeout_start = jiffies;
1148 1160
1149 if (!audit_initialized) 1161 if (audit_initialized != AUDIT_INITIALIZED)
1150 return NULL; 1162 return NULL;
1151 1163
1152 if (unlikely(audit_filter_type(type))) 1164 if (unlikely(audit_filter_type(type)))
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index cf5bc2f5f9c3..2a3f0afc4d2a 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -1459,7 +1459,6 @@ void audit_free(struct task_struct *tsk)
1459 1459
1460/** 1460/**
1461 * audit_syscall_entry - fill in an audit record at syscall entry 1461 * audit_syscall_entry - fill in an audit record at syscall entry
1462 * @tsk: task being audited
1463 * @arch: architecture type 1462 * @arch: architecture type
1464 * @major: major syscall type (function) 1463 * @major: major syscall type (function)
1465 * @a1: additional syscall register 1 1464 * @a1: additional syscall register 1
@@ -1548,9 +1547,25 @@ void audit_syscall_entry(int arch, int major,
1548 context->ppid = 0; 1547 context->ppid = 0;
1549} 1548}
1550 1549
1550void audit_finish_fork(struct task_struct *child)
1551{
1552 struct audit_context *ctx = current->audit_context;
1553 struct audit_context *p = child->audit_context;
1554 if (!p || !ctx || !ctx->auditable)
1555 return;
1556 p->arch = ctx->arch;
1557 p->major = ctx->major;
1558 memcpy(p->argv, ctx->argv, sizeof(ctx->argv));
1559 p->ctime = ctx->ctime;
1560 p->dummy = ctx->dummy;
1561 p->auditable = ctx->auditable;
1562 p->in_syscall = ctx->in_syscall;
1563 p->filterkey = kstrdup(ctx->filterkey, GFP_KERNEL);
1564 p->ppid = current->pid;
1565}
1566
1551/** 1567/**
1552 * audit_syscall_exit - deallocate audit context after a system call 1568 * audit_syscall_exit - deallocate audit context after a system call
1553 * @tsk: task being audited
1554 * @valid: success/failure flag 1569 * @valid: success/failure flag
1555 * @return_code: syscall return value 1570 * @return_code: syscall return value
1556 * 1571 *
@@ -1942,15 +1957,18 @@ EXPORT_SYMBOL_GPL(__audit_inode_child);
1942 * 1957 *
1943 * Also sets the context as auditable. 1958 * Also sets the context as auditable.
1944 */ 1959 */
1945void auditsc_get_stamp(struct audit_context *ctx, 1960int auditsc_get_stamp(struct audit_context *ctx,
1946 struct timespec *t, unsigned int *serial) 1961 struct timespec *t, unsigned int *serial)
1947{ 1962{
1963 if (!ctx->in_syscall)
1964 return 0;
1948 if (!ctx->serial) 1965 if (!ctx->serial)
1949 ctx->serial = audit_serial(); 1966 ctx->serial = audit_serial();
1950 t->tv_sec = ctx->ctime.tv_sec; 1967 t->tv_sec = ctx->ctime.tv_sec;
1951 t->tv_nsec = ctx->ctime.tv_nsec; 1968 t->tv_nsec = ctx->ctime.tv_nsec;
1952 *serial = ctx->serial; 1969 *serial = ctx->serial;
1953 ctx->auditable = 1; 1970 ctx->auditable = 1;
1971 return 1;
1954} 1972}
1955 1973
1956/* global counter which is incremented every time something logs in */ 1974/* global counter which is incremented every time something logs in */
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index fe00b3b983a8..2606d0fb4e54 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -702,7 +702,7 @@ static int rebind_subsystems(struct cgroupfs_root *root,
702 * any child cgroups exist. This is theoretically supportable 702 * any child cgroups exist. This is theoretically supportable
703 * but involves complex error handling, so it's being left until 703 * but involves complex error handling, so it's being left until
704 * later */ 704 * later */
705 if (!list_empty(&cgrp->children)) 705 if (root->number_of_cgroups > 1)
706 return -EBUSY; 706 return -EBUSY;
707 707
708 /* Process each subsystem */ 708 /* Process each subsystem */
@@ -1024,7 +1024,7 @@ static int cgroup_get_sb(struct file_system_type *fs_type,
1024 if (ret == -EBUSY) { 1024 if (ret == -EBUSY) {
1025 mutex_unlock(&cgroup_mutex); 1025 mutex_unlock(&cgroup_mutex);
1026 mutex_unlock(&inode->i_mutex); 1026 mutex_unlock(&inode->i_mutex);
1027 goto drop_new_super; 1027 goto free_cg_links;
1028 } 1028 }
1029 1029
1030 /* EBUSY should be the only error here */ 1030 /* EBUSY should be the only error here */
@@ -1073,10 +1073,11 @@ static int cgroup_get_sb(struct file_system_type *fs_type,
1073 1073
1074 return simple_set_mnt(mnt, sb); 1074 return simple_set_mnt(mnt, sb);
1075 1075
1076 free_cg_links:
1077 free_cg_links(&tmp_cg_links);
1076 drop_new_super: 1078 drop_new_super:
1077 up_write(&sb->s_umount); 1079 up_write(&sb->s_umount);
1078 deactivate_super(sb); 1080 deactivate_super(sb);
1079 free_cg_links(&tmp_cg_links);
1080 return ret; 1081 return ret;
1081} 1082}
1082 1083
@@ -2934,9 +2935,6 @@ int cgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys,
2934 again: 2935 again:
2935 root = subsys->root; 2936 root = subsys->root;
2936 if (root == &rootnode) { 2937 if (root == &rootnode) {
2937 printk(KERN_INFO
2938 "Not cloning cgroup for unused subsystem %s\n",
2939 subsys->name);
2940 mutex_unlock(&cgroup_mutex); 2938 mutex_unlock(&cgroup_mutex);
2941 return 0; 2939 return 0;
2942 } 2940 }
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 5a732c5ef08b..8ea32e8d68b0 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -462,7 +462,7 @@ out:
462 * It must be called by the arch code on the new cpu, before the new cpu 462 * It must be called by the arch code on the new cpu, before the new cpu
463 * enables interrupts and before the "boot" cpu returns from __cpu_up(). 463 * enables interrupts and before the "boot" cpu returns from __cpu_up().
464 */ 464 */
465void notify_cpu_starting(unsigned int cpu) 465void __cpuinit notify_cpu_starting(unsigned int cpu)
466{ 466{
467 unsigned long val = CPU_STARTING; 467 unsigned long val = CPU_STARTING;
468 468
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index da7ff6137f37..96c0ba13b8cd 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -585,7 +585,7 @@ static int generate_sched_domains(cpumask_t **domains,
585 int i, j, k; /* indices for partition finding loops */ 585 int i, j, k; /* indices for partition finding loops */
586 cpumask_t *doms; /* resulting partition; i.e. sched domains */ 586 cpumask_t *doms; /* resulting partition; i.e. sched domains */
587 struct sched_domain_attr *dattr; /* attributes for custom domains */ 587 struct sched_domain_attr *dattr; /* attributes for custom domains */
588 int ndoms; /* number of sched domains in result */ 588 int ndoms = 0; /* number of sched domains in result */
589 int nslot; /* next empty doms[] cpumask_t slot */ 589 int nslot; /* next empty doms[] cpumask_t slot */
590 590
591 doms = NULL; 591 doms = NULL;
diff --git a/kernel/fork.c b/kernel/fork.c
index 2a372a0e206f..495da2e9a8b4 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -315,17 +315,20 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
315 file = tmp->vm_file; 315 file = tmp->vm_file;
316 if (file) { 316 if (file) {
317 struct inode *inode = file->f_path.dentry->d_inode; 317 struct inode *inode = file->f_path.dentry->d_inode;
318 struct address_space *mapping = file->f_mapping;
319
318 get_file(file); 320 get_file(file);
319 if (tmp->vm_flags & VM_DENYWRITE) 321 if (tmp->vm_flags & VM_DENYWRITE)
320 atomic_dec(&inode->i_writecount); 322 atomic_dec(&inode->i_writecount);
321 323 spin_lock(&mapping->i_mmap_lock);
322 /* insert tmp into the share list, just after mpnt */ 324 if (tmp->vm_flags & VM_SHARED)
323 spin_lock(&file->f_mapping->i_mmap_lock); 325 mapping->i_mmap_writable++;
324 tmp->vm_truncate_count = mpnt->vm_truncate_count; 326 tmp->vm_truncate_count = mpnt->vm_truncate_count;
325 flush_dcache_mmap_lock(file->f_mapping); 327 flush_dcache_mmap_lock(mapping);
328 /* insert tmp into the share list, just after mpnt */
326 vma_prio_tree_add(tmp, mpnt); 329 vma_prio_tree_add(tmp, mpnt);
327 flush_dcache_mmap_unlock(file->f_mapping); 330 flush_dcache_mmap_unlock(mapping);
328 spin_unlock(&file->f_mapping->i_mmap_lock); 331 spin_unlock(&mapping->i_mmap_lock);
329 } 332 }
330 333
331 /* 334 /*
@@ -1398,6 +1401,7 @@ long do_fork(unsigned long clone_flags,
1398 init_completion(&vfork); 1401 init_completion(&vfork);
1399 } 1402 }
1400 1403
1404 audit_finish_fork(p);
1401 tracehook_report_clone(trace, regs, clone_flags, nr, p); 1405 tracehook_report_clone(trace, regs, clone_flags, nr, p);
1402 1406
1403 /* 1407 /*
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
index c9767e641980..64c1c7253dae 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
@@ -25,6 +25,8 @@ static inline void unregister_handler_proc(unsigned int irq,
25 struct irqaction *action) { } 25 struct irqaction *action) { }
26#endif 26#endif
27 27
28extern int irq_select_affinity_usr(unsigned int irq);
29
28/* 30/*
29 * Debugging printout: 31 * Debugging printout:
30 */ 32 */
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index c498a1b8c621..801addda3c43 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -82,24 +82,27 @@ int irq_can_set_affinity(unsigned int irq)
82int irq_set_affinity(unsigned int irq, cpumask_t cpumask) 82int irq_set_affinity(unsigned int irq, cpumask_t cpumask)
83{ 83{
84 struct irq_desc *desc = irq_to_desc(irq); 84 struct irq_desc *desc = irq_to_desc(irq);
85 unsigned long flags;
85 86
86 if (!desc->chip->set_affinity) 87 if (!desc->chip->set_affinity)
87 return -EINVAL; 88 return -EINVAL;
88 89
90 spin_lock_irqsave(&desc->lock, flags);
91
89#ifdef CONFIG_GENERIC_PENDING_IRQ 92#ifdef CONFIG_GENERIC_PENDING_IRQ
90 if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) { 93 if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) {
91 unsigned long flags;
92
93 spin_lock_irqsave(&desc->lock, flags);
94 desc->affinity = cpumask; 94 desc->affinity = cpumask;
95 desc->chip->set_affinity(irq, cpumask); 95 desc->chip->set_affinity(irq, cpumask);
96 spin_unlock_irqrestore(&desc->lock, flags); 96 } else {
97 } else 97 desc->status |= IRQ_MOVE_PENDING;
98 set_pending_irq(irq, cpumask); 98 desc->pending_mask = cpumask;
99 }
99#else 100#else
100 desc->affinity = cpumask; 101 desc->affinity = cpumask;
101 desc->chip->set_affinity(irq, cpumask); 102 desc->chip->set_affinity(irq, cpumask);
102#endif 103#endif
104 desc->status |= IRQ_AFFINITY_SET;
105 spin_unlock_irqrestore(&desc->lock, flags);
103 return 0; 106 return 0;
104} 107}
105 108
@@ -107,24 +110,59 @@ int irq_set_affinity(unsigned int irq, cpumask_t cpumask)
107/* 110/*
108 * Generic version of the affinity autoselector. 111 * Generic version of the affinity autoselector.
109 */ 112 */
110int irq_select_affinity(unsigned int irq) 113int do_irq_select_affinity(unsigned int irq, struct irq_desc *desc)
111{ 114{
112 cpumask_t mask; 115 cpumask_t mask;
113 struct irq_desc *desc;
114 116
115 if (!irq_can_set_affinity(irq)) 117 if (!irq_can_set_affinity(irq))
116 return 0; 118 return 0;
117 119
118 cpus_and(mask, cpu_online_map, irq_default_affinity); 120 cpus_and(mask, cpu_online_map, irq_default_affinity);
119 121
120 desc = irq_to_desc(irq); 122 /*
123 * Preserve an userspace affinity setup, but make sure that
124 * one of the targets is online.
125 */
126 if (desc->status & (IRQ_AFFINITY_SET | IRQ_NO_BALANCING)) {
127 if (cpus_intersects(desc->affinity, cpu_online_map))
128 mask = desc->affinity;
129 else
130 desc->status &= ~IRQ_AFFINITY_SET;
131 }
132
121 desc->affinity = mask; 133 desc->affinity = mask;
122 desc->chip->set_affinity(irq, mask); 134 desc->chip->set_affinity(irq, mask);
123 135
124 return 0; 136 return 0;
125} 137}
138#else
139static inline int do_irq_select_affinity(unsigned int irq, struct irq_desc *d)
140{
141 return irq_select_affinity(irq);
142}
126#endif 143#endif
127 144
145/*
146 * Called when affinity is set via /proc/irq
147 */
148int irq_select_affinity_usr(unsigned int irq)
149{
150 struct irq_desc *desc = irq_to_desc(irq);
151 unsigned long flags;
152 int ret;
153
154 spin_lock_irqsave(&desc->lock, flags);
155 ret = do_irq_select_affinity(irq, desc);
156 spin_unlock_irqrestore(&desc->lock, flags);
157
158 return ret;
159}
160
161#else
162static inline int do_irq_select_affinity(int irq, struct irq_desc *desc)
163{
164 return 0;
165}
128#endif 166#endif
129 167
130/** 168/**
@@ -327,7 +365,7 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned int irq,
327 * IRQF_TRIGGER_* but the PIC does not support multiple 365 * IRQF_TRIGGER_* but the PIC does not support multiple
328 * flow-types? 366 * flow-types?
329 */ 367 */
330 pr_warning("No set_type function for IRQ %d (%s)\n", irq, 368 pr_debug("No set_type function for IRQ %d (%s)\n", irq,
331 chip ? (chip->name ? : "unknown") : "unknown"); 369 chip ? (chip->name ? : "unknown") : "unknown");
332 return 0; 370 return 0;
333 } 371 }
@@ -445,8 +483,12 @@ __setup_irq(unsigned int irq, struct irq_desc * desc, struct irqaction *new)
445 /* Undo nested disables: */ 483 /* Undo nested disables: */
446 desc->depth = 1; 484 desc->depth = 1;
447 485
486 /* Exclude IRQ from balancing if requested */
487 if (new->flags & IRQF_NOBALANCING)
488 desc->status |= IRQ_NO_BALANCING;
489
448 /* Set default affinity mask once everything is setup */ 490 /* Set default affinity mask once everything is setup */
449 irq_select_affinity(irq); 491 do_irq_select_affinity(irq, desc);
450 492
451 } else if ((new->flags & IRQF_TRIGGER_MASK) 493 } else if ((new->flags & IRQF_TRIGGER_MASK)
452 && (new->flags & IRQF_TRIGGER_MASK) 494 && (new->flags & IRQF_TRIGGER_MASK)
@@ -459,10 +501,6 @@ __setup_irq(unsigned int irq, struct irq_desc * desc, struct irqaction *new)
459 501
460 *p = new; 502 *p = new;
461 503
462 /* Exclude IRQ from balancing */
463 if (new->flags & IRQF_NOBALANCING)
464 desc->status |= IRQ_NO_BALANCING;
465
466 /* Reset broken irq detection when installing new handler */ 504 /* Reset broken irq detection when installing new handler */
467 desc->irq_count = 0; 505 desc->irq_count = 0;
468 desc->irqs_unhandled = 0; 506 desc->irqs_unhandled = 0;
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c
index 90b920d3f52b..9db681d95814 100644
--- a/kernel/irq/migration.c
+++ b/kernel/irq/migration.c
@@ -1,17 +1,6 @@
1 1
2#include <linux/irq.h> 2#include <linux/irq.h>
3 3
4void set_pending_irq(unsigned int irq, cpumask_t mask)
5{
6 struct irq_desc *desc = irq_to_desc(irq);
7 unsigned long flags;
8
9 spin_lock_irqsave(&desc->lock, flags);
10 desc->status |= IRQ_MOVE_PENDING;
11 desc->pending_mask = mask;
12 spin_unlock_irqrestore(&desc->lock, flags);
13}
14
15void move_masked_irq(int irq) 4void move_masked_irq(int irq)
16{ 5{
17 struct irq_desc *desc = irq_to_desc(irq); 6 struct irq_desc *desc = irq_to_desc(irq);
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c
index 4d161c70ba55..d257e7d6a8a4 100644
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -62,7 +62,7 @@ static ssize_t irq_affinity_proc_write(struct file *file,
62 if (!cpus_intersects(new_value, cpu_online_map)) 62 if (!cpus_intersects(new_value, cpu_online_map))
63 /* Special case for empty set - allow the architecture 63 /* Special case for empty set - allow the architecture
64 code to set default SMP affinity. */ 64 code to set default SMP affinity. */
65 return irq_select_affinity(irq) ? -EINVAL : count; 65 return irq_select_affinity_usr(irq) ? -EINVAL : count;
66 66
67 irq_set_affinity(irq, new_value); 67 irq_set_affinity(irq, new_value);
68 68
diff --git a/kernel/latencytop.c b/kernel/latencytop.c
index 5e7b45c56923..449db466bdbc 100644
--- a/kernel/latencytop.c
+++ b/kernel/latencytop.c
@@ -191,7 +191,7 @@ static int lstats_show(struct seq_file *m, void *v)
191 latency_record[i].time, 191 latency_record[i].time,
192 latency_record[i].max); 192 latency_record[i].max);
193 for (q = 0; q < LT_BACKTRACEDEPTH; q++) { 193 for (q = 0; q < LT_BACKTRACEDEPTH; q++) {
194 char sym[KSYM_NAME_LEN]; 194 char sym[KSYM_SYMBOL_LEN];
195 char *c; 195 char *c;
196 if (!latency_record[i].backtrace[q]) 196 if (!latency_record[i].backtrace[q])
197 break; 197 break;
diff --git a/kernel/panic.c b/kernel/panic.c
index 6513aac8e992..4d5088355bfe 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -167,6 +167,7 @@ static const struct tnt tnts[] = {
167 * 'M' - System experienced a machine check exception. 167 * 'M' - System experienced a machine check exception.
168 * 'B' - System has hit bad_page. 168 * 'B' - System has hit bad_page.
169 * 'U' - Userspace-defined naughtiness. 169 * 'U' - Userspace-defined naughtiness.
170 * 'D' - Kernel has oopsed before
170 * 'A' - ACPI table overridden. 171 * 'A' - ACPI table overridden.
171 * 'W' - Taint on warning. 172 * 'W' - Taint on warning.
172 * 'C' - modules from drivers/staging are loaded. 173 * 'C' - modules from drivers/staging are loaded.
diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c
index 3f4377e0aa04..157de3a47832 100644
--- a/kernel/posix-cpu-timers.c
+++ b/kernel/posix-cpu-timers.c
@@ -311,7 +311,7 @@ static int cpu_clock_sample_group(const clockid_t which_clock,
311 struct task_cputime cputime; 311 struct task_cputime cputime;
312 312
313 thread_group_cputime(p, &cputime); 313 thread_group_cputime(p, &cputime);
314 switch (which_clock) { 314 switch (CPUCLOCK_WHICH(which_clock)) {
315 default: 315 default:
316 return -EINVAL; 316 return -EINVAL;
317 case CPUCLOCK_PROF: 317 case CPUCLOCK_PROF:
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c
index 5e79c662294b..a140e44eebba 100644
--- a/kernel/posix-timers.c
+++ b/kernel/posix-timers.c
@@ -197,6 +197,11 @@ static int common_timer_create(struct k_itimer *new_timer)
197 return 0; 197 return 0;
198} 198}
199 199
200static int no_timer_create(struct k_itimer *new_timer)
201{
202 return -EOPNOTSUPP;
203}
204
200/* 205/*
201 * Return nonzero if we know a priori this clockid_t value is bogus. 206 * Return nonzero if we know a priori this clockid_t value is bogus.
202 */ 207 */
@@ -248,6 +253,7 @@ static __init int init_posix_timers(void)
248 .clock_getres = hrtimer_get_res, 253 .clock_getres = hrtimer_get_res,
249 .clock_get = posix_get_monotonic_raw, 254 .clock_get = posix_get_monotonic_raw,
250 .clock_set = do_posix_clock_nosettime, 255 .clock_set = do_posix_clock_nosettime,
256 .timer_create = no_timer_create,
251 }; 257 };
252 258
253 register_posix_clock(CLOCK_REALTIME, &clock_realtime); 259 register_posix_clock(CLOCK_REALTIME, &clock_realtime);
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index b7713b53d07a..6da14358537c 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -633,7 +633,7 @@ void swsusp_close(fmode_t mode)
633 return; 633 return;
634 } 634 }
635 635
636 blkdev_put(resume_bdev, mode); /* move up */ 636 blkdev_put(resume_bdev, mode);
637} 637}
638 638
639static int swsusp_header_init(void) 639static int swsusp_header_init(void)
diff --git a/kernel/profile.c b/kernel/profile.c
index 5b7d1ac7124c..dc41827fbfee 100644
--- a/kernel/profile.c
+++ b/kernel/profile.c
@@ -351,7 +351,7 @@ out:
351 put_cpu(); 351 put_cpu();
352} 352}
353 353
354static int __devinit profile_cpu_callback(struct notifier_block *info, 354static int __cpuinit profile_cpu_callback(struct notifier_block *info,
355 unsigned long action, void *__cpu) 355 unsigned long action, void *__cpu)
356{ 356{
357 int node, cpu = (unsigned long)__cpu; 357 int node, cpu = (unsigned long)__cpu;
@@ -596,7 +596,7 @@ out_cleanup:
596#define create_hash_tables() ({ 0; }) 596#define create_hash_tables() ({ 0; })
597#endif 597#endif
598 598
599int create_proc_profile(void) 599int __ref create_proc_profile(void) /* false positive from hotcpu_notifier */
600{ 600{
601 struct proc_dir_entry *entry; 601 struct proc_dir_entry *entry;
602 602
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 1e68e4c39e2c..4c8bcd7dd8e0 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -612,7 +612,7 @@ int generic_ptrace_pokedata(struct task_struct *tsk, long addr, long data)
612 return (copied == sizeof(data)) ? 0 : -EIO; 612 return (copied == sizeof(data)) ? 0 : -EIO;
613} 613}
614 614
615#if defined CONFIG_COMPAT && defined __ARCH_WANT_COMPAT_SYS_PTRACE 615#if defined CONFIG_COMPAT
616#include <linux/compat.h> 616#include <linux/compat.h>
617 617
618int compat_ptrace_request(struct task_struct *child, compat_long_t request, 618int compat_ptrace_request(struct task_struct *child, compat_long_t request,
@@ -709,4 +709,4 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
709 unlock_kernel(); 709 unlock_kernel();
710 return ret; 710 return ret;
711} 711}
712#endif /* CONFIG_COMPAT && __ARCH_WANT_COMPAT_SYS_PTRACE */ 712#endif /* CONFIG_COMPAT */
diff --git a/kernel/relay.c b/kernel/relay.c
index 32b0befdcb6a..09ac2008f77b 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -1317,12 +1317,9 @@ static ssize_t relay_file_splice_read(struct file *in,
1317 if (ret < 0) 1317 if (ret < 0)
1318 break; 1318 break;
1319 else if (!ret) { 1319 else if (!ret) {
1320 if (spliced) 1320 if (flags & SPLICE_F_NONBLOCK)
1321 break;
1322 if (flags & SPLICE_F_NONBLOCK) {
1323 ret = -EAGAIN; 1321 ret = -EAGAIN;
1324 break; 1322 break;
1325 }
1326 } 1323 }
1327 1324
1328 *ppos += ret; 1325 *ppos += ret;
diff --git a/kernel/sched.c b/kernel/sched.c
index 558e5f284269..3e70963120a0 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -1453,9 +1453,10 @@ static int task_hot(struct task_struct *p, u64 now, struct sched_domain *sd);
1453static unsigned long cpu_avg_load_per_task(int cpu) 1453static unsigned long cpu_avg_load_per_task(int cpu)
1454{ 1454{
1455 struct rq *rq = cpu_rq(cpu); 1455 struct rq *rq = cpu_rq(cpu);
1456 unsigned long nr_running = ACCESS_ONCE(rq->nr_running);
1456 1457
1457 if (rq->nr_running) 1458 if (nr_running)
1458 rq->avg_load_per_task = rq->load.weight / rq->nr_running; 1459 rq->avg_load_per_task = rq->load.weight / nr_running;
1459 else 1460 else
1460 rq->avg_load_per_task = 0; 1461 rq->avg_load_per_task = 0;
1461 1462
@@ -6585,7 +6586,9 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
6585 req = list_entry(rq->migration_queue.next, 6586 req = list_entry(rq->migration_queue.next,
6586 struct migration_req, list); 6587 struct migration_req, list);
6587 list_del_init(&req->list); 6588 list_del_init(&req->list);
6589 spin_unlock_irq(&rq->lock);
6588 complete(&req->done); 6590 complete(&req->done);
6591 spin_lock_irq(&rq->lock);
6589 } 6592 }
6590 spin_unlock_irq(&rq->lock); 6593 spin_unlock_irq(&rq->lock);
6591 break; 6594 break;
diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c
index 81787248b60f..e8ab096ddfe3 100644
--- a/kernel/sched_clock.c
+++ b/kernel/sched_clock.c
@@ -118,13 +118,13 @@ static u64 __update_sched_clock(struct sched_clock_data *scd, u64 now)
118 118
119 /* 119 /*
120 * scd->clock = clamp(scd->tick_gtod + delta, 120 * scd->clock = clamp(scd->tick_gtod + delta,
121 * max(scd->tick_gtod, scd->clock), 121 * max(scd->tick_gtod, scd->clock),
122 * max(scd->clock, scd->tick_gtod + TICK_NSEC)); 122 * scd->tick_gtod + TICK_NSEC);
123 */ 123 */
124 124
125 clock = scd->tick_gtod + delta; 125 clock = scd->tick_gtod + delta;
126 min_clock = wrap_max(scd->tick_gtod, scd->clock); 126 min_clock = wrap_max(scd->tick_gtod, scd->clock);
127 max_clock = wrap_max(scd->clock, scd->tick_gtod + TICK_NSEC); 127 max_clock = scd->tick_gtod + TICK_NSEC;
128 128
129 clock = wrap_max(clock, min_clock); 129 clock = wrap_max(clock, min_clock);
130 clock = wrap_min(clock, max_clock); 130 clock = wrap_min(clock, max_clock);
diff --git a/kernel/softlockup.c b/kernel/softlockup.c
index 884e6cd2769c..1ab790c67b17 100644
--- a/kernel/softlockup.c
+++ b/kernel/softlockup.c
@@ -188,7 +188,7 @@ static void check_hung_task(struct task_struct *t, unsigned long now)
188 if ((long)(now - t->last_switch_timestamp) < 188 if ((long)(now - t->last_switch_timestamp) <
189 sysctl_hung_task_timeout_secs) 189 sysctl_hung_task_timeout_secs)
190 return; 190 return;
191 if (sysctl_hung_task_warnings < 0) 191 if (!sysctl_hung_task_warnings)
192 return; 192 return;
193 sysctl_hung_task_warnings--; 193 sysctl_hung_task_warnings--;
194 194
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 9d048fa2d902..3d56fe7570da 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -176,6 +176,9 @@ extern struct ctl_table random_table[];
176#ifdef CONFIG_INOTIFY_USER 176#ifdef CONFIG_INOTIFY_USER
177extern struct ctl_table inotify_table[]; 177extern struct ctl_table inotify_table[];
178#endif 178#endif
179#ifdef CONFIG_EPOLL
180extern struct ctl_table epoll_table[];
181#endif
179 182
180#ifdef HAVE_ARCH_PICK_MMAP_LAYOUT 183#ifdef HAVE_ARCH_PICK_MMAP_LAYOUT
181int sysctl_legacy_va_layout; 184int sysctl_legacy_va_layout;
@@ -1325,6 +1328,13 @@ static struct ctl_table fs_table[] = {
1325 .child = inotify_table, 1328 .child = inotify_table,
1326 }, 1329 },
1327#endif 1330#endif
1331#ifdef CONFIG_EPOLL
1332 {
1333 .procname = "epoll",
1334 .mode = 0555,
1335 .child = epoll_table,
1336 },
1337#endif
1328#endif 1338#endif
1329 { 1339 {
1330 .ctl_name = KERN_SETUID_DUMPABLE, 1340 .ctl_name = KERN_SETUID_DUMPABLE,
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index e7acfb482a68..fa05e88aa76f 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -518,6 +518,28 @@ void update_wall_time(void)
518 /* correct the clock when NTP error is too big */ 518 /* correct the clock when NTP error is too big */
519 clocksource_adjust(offset); 519 clocksource_adjust(offset);
520 520
521 /*
522 * Since in the loop above, we accumulate any amount of time
523 * in xtime_nsec over a second into xtime.tv_sec, its possible for
524 * xtime_nsec to be fairly small after the loop. Further, if we're
525 * slightly speeding the clocksource up in clocksource_adjust(),
526 * its possible the required corrective factor to xtime_nsec could
527 * cause it to underflow.
528 *
529 * Now, we cannot simply roll the accumulated second back, since
530 * the NTP subsystem has been notified via second_overflow. So
531 * instead we push xtime_nsec forward by the amount we underflowed,
532 * and add that amount into the error.
533 *
534 * We'll correct this error next time through this function, when
535 * xtime_nsec is not as small.
536 */
537 if (unlikely((s64)clock->xtime_nsec < 0)) {
538 s64 neg = -(s64)clock->xtime_nsec;
539 clock->xtime_nsec = 0;
540 clock->error += neg << (NTP_SCALE_SHIFT - clock->shift);
541 }
542
521 /* store full nanoseconds into xtime after rounding it up and 543 /* store full nanoseconds into xtime after rounding it up and
522 * add the remainder to the error difference. 544 * add the remainder to the error difference.
523 */ 545 */
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index f780e9552f91..668bbb5ef2bd 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -1215,7 +1215,7 @@ ring_buffer_lock_reserve(struct ring_buffer *buffer,
1215 1215
1216 out: 1216 out:
1217 if (resched) 1217 if (resched)
1218 preempt_enable_notrace(); 1218 preempt_enable_no_resched_notrace();
1219 else 1219 else
1220 preempt_enable_notrace(); 1220 preempt_enable_notrace();
1221 return NULL; 1221 return NULL;
diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
index f28484618ff0..e62cbf78eab6 100644
--- a/kernel/trace/trace_mmiotrace.c
+++ b/kernel/trace/trace_mmiotrace.c
@@ -18,12 +18,14 @@ struct header_iter {
18 18
19static struct trace_array *mmio_trace_array; 19static struct trace_array *mmio_trace_array;
20static bool overrun_detected; 20static bool overrun_detected;
21static unsigned long prev_overruns;
21 22
22static void mmio_reset_data(struct trace_array *tr) 23static void mmio_reset_data(struct trace_array *tr)
23{ 24{
24 int cpu; 25 int cpu;
25 26
26 overrun_detected = false; 27 overrun_detected = false;
28 prev_overruns = 0;
27 tr->time_start = ftrace_now(tr->cpu); 29 tr->time_start = ftrace_now(tr->cpu);
28 30
29 for_each_online_cpu(cpu) 31 for_each_online_cpu(cpu)
@@ -128,16 +130,12 @@ static void mmio_close(struct trace_iterator *iter)
128 130
129static unsigned long count_overruns(struct trace_iterator *iter) 131static unsigned long count_overruns(struct trace_iterator *iter)
130{ 132{
131 int cpu;
132 unsigned long cnt = 0; 133 unsigned long cnt = 0;
133/* FIXME: */ 134 unsigned long over = ring_buffer_overruns(iter->tr->buffer);
134#if 0 135
135 for_each_online_cpu(cpu) { 136 if (over > prev_overruns)
136 cnt += iter->overrun[cpu]; 137 cnt = over - prev_overruns;
137 iter->overrun[cpu] = 0; 138 prev_overruns = over;
138 }
139#endif
140 (void)cpu;
141 return cnt; 139 return cnt;
142} 140}
143 141
diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
index be682b62fe58..3bdb44bde4b7 100644
--- a/kernel/trace/trace_stack.c
+++ b/kernel/trace/trace_stack.c
@@ -184,11 +184,16 @@ static struct file_operations stack_max_size_fops = {
184static void * 184static void *
185t_next(struct seq_file *m, void *v, loff_t *pos) 185t_next(struct seq_file *m, void *v, loff_t *pos)
186{ 186{
187 long i = (long)m->private; 187 long i;
188 188
189 (*pos)++; 189 (*pos)++;
190 190
191 i++; 191 if (v == SEQ_START_TOKEN)
192 i = 0;
193 else {
194 i = *(long *)v;
195 i++;
196 }
192 197
193 if (i >= max_stack_trace.nr_entries || 198 if (i >= max_stack_trace.nr_entries ||
194 stack_dump_trace[i] == ULONG_MAX) 199 stack_dump_trace[i] == ULONG_MAX)
@@ -201,12 +206,15 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
201 206
202static void *t_start(struct seq_file *m, loff_t *pos) 207static void *t_start(struct seq_file *m, loff_t *pos)
203{ 208{
204 void *t = &m->private; 209 void *t = SEQ_START_TOKEN;
205 loff_t l = 0; 210 loff_t l = 0;
206 211
207 local_irq_disable(); 212 local_irq_disable();
208 __raw_spin_lock(&max_stack_lock); 213 __raw_spin_lock(&max_stack_lock);
209 214
215 if (*pos == 0)
216 return SEQ_START_TOKEN;
217
210 for (; t && l < *pos; t = t_next(m, t, &l)) 218 for (; t && l < *pos; t = t_next(m, t, &l))
211 ; 219 ;
212 220
@@ -235,10 +243,10 @@ static int trace_lookup_stack(struct seq_file *m, long i)
235 243
236static int t_show(struct seq_file *m, void *v) 244static int t_show(struct seq_file *m, void *v)
237{ 245{
238 long i = *(long *)v; 246 long i;
239 int size; 247 int size;
240 248
241 if (i < 0) { 249 if (v == SEQ_START_TOKEN) {
242 seq_printf(m, " Depth Size Location" 250 seq_printf(m, " Depth Size Location"
243 " (%d entries)\n" 251 " (%d entries)\n"
244 " ----- ---- --------\n", 252 " ----- ---- --------\n",
@@ -246,6 +254,8 @@ static int t_show(struct seq_file *m, void *v)
246 return 0; 254 return 0;
247 } 255 }
248 256
257 i = *(long *)v;
258
249 if (i >= max_stack_trace.nr_entries || 259 if (i >= max_stack_trace.nr_entries ||
250 stack_dump_trace[i] == ULONG_MAX) 260 stack_dump_trace[i] == ULONG_MAX)
251 return 0; 261 return 0;
@@ -275,10 +285,6 @@ static int stack_trace_open(struct inode *inode, struct file *file)
275 int ret; 285 int ret;
276 286
277 ret = seq_open(file, &stack_trace_seq_ops); 287 ret = seq_open(file, &stack_trace_seq_ops);
278 if (!ret) {
279 struct seq_file *m = file->private_data;
280 m->private = (void *)-1;
281 }
282 288
283 return ret; 289 return ret;
284} 290}
diff --git a/lib/dynamic_printk.c b/lib/dynamic_printk.c
index d83660fd6fdd..8e30295e8566 100644
--- a/lib/dynamic_printk.c
+++ b/lib/dynamic_printk.c
@@ -135,7 +135,7 @@ int unregister_dynamic_debug_module(char *mod_name)
135 nr_entries--; 135 nr_entries--;
136out: 136out:
137 up(&debug_list_mutex); 137 up(&debug_list_mutex);
138 return 0; 138 return ret;
139} 139}
140EXPORT_SYMBOL_GPL(unregister_dynamic_debug_module); 140EXPORT_SYMBOL_GPL(unregister_dynamic_debug_module);
141 141
@@ -289,7 +289,7 @@ static ssize_t pr_debug_write(struct file *file, const char __user *buf,
289 dynamic_enabled = DYNAMIC_ENABLED_SOME; 289 dynamic_enabled = DYNAMIC_ENABLED_SOME;
290 err = 0; 290 err = 0;
291 printk(KERN_DEBUG 291 printk(KERN_DEBUG
292 "debugging enabled for module %s", 292 "debugging enabled for module %s\n",
293 elem->name); 293 elem->name);
294 } else if (!value && (elem->enable == 1)) { 294 } else if (!value && (elem->enable == 1)) {
295 elem->enable = 0; 295 elem->enable = 0;
@@ -309,7 +309,7 @@ static ssize_t pr_debug_write(struct file *file, const char __user *buf,
309 err = 0; 309 err = 0;
310 printk(KERN_DEBUG 310 printk(KERN_DEBUG
311 "debugging disabled for module " 311 "debugging disabled for module "
312 "%s", elem->name); 312 "%s\n", elem->name);
313 } 313 }
314 } 314 }
315 } 315 }
diff --git a/lib/idr.c b/lib/idr.c
index e728c7fccc4d..1c4f9281f412 100644
--- a/lib/idr.c
+++ b/lib/idr.c
@@ -185,6 +185,7 @@ static int sub_alloc(struct idr *idp, int *starting_id, struct idr_layer **pa)
185 new = get_from_free_list(idp); 185 new = get_from_free_list(idp);
186 if (!new) 186 if (!new)
187 return -1; 187 return -1;
188 new->layer = l-1;
188 rcu_assign_pointer(p->ary[m], new); 189 rcu_assign_pointer(p->ary[m], new);
189 p->count++; 190 p->count++;
190 } 191 }
@@ -210,6 +211,7 @@ build_up:
210 if (unlikely(!p)) { 211 if (unlikely(!p)) {
211 if (!(p = get_from_free_list(idp))) 212 if (!(p = get_from_free_list(idp)))
212 return -1; 213 return -1;
214 p->layer = 0;
213 layers = 1; 215 layers = 1;
214 } 216 }
215 /* 217 /*
@@ -218,8 +220,14 @@ build_up:
218 */ 220 */
219 while ((layers < (MAX_LEVEL - 1)) && (id >= (1 << (layers*IDR_BITS)))) { 221 while ((layers < (MAX_LEVEL - 1)) && (id >= (1 << (layers*IDR_BITS)))) {
220 layers++; 222 layers++;
221 if (!p->count) 223 if (!p->count) {
224 /* special case: if the tree is currently empty,
225 * then we grow the tree by moving the top node
226 * upwards.
227 */
228 p->layer++;
222 continue; 229 continue;
230 }
223 if (!(new = get_from_free_list(idp))) { 231 if (!(new = get_from_free_list(idp))) {
224 /* 232 /*
225 * The allocation failed. If we built part of 233 * The allocation failed. If we built part of
@@ -237,6 +245,7 @@ build_up:
237 } 245 }
238 new->ary[0] = p; 246 new->ary[0] = p;
239 new->count = 1; 247 new->count = 1;
248 new->layer = layers-1;
240 if (p->bitmap == IDR_FULL) 249 if (p->bitmap == IDR_FULL)
241 __set_bit(0, &new->bitmap); 250 __set_bit(0, &new->bitmap);
242 p = new; 251 p = new;
@@ -493,17 +502,21 @@ void *idr_find(struct idr *idp, int id)
493 int n; 502 int n;
494 struct idr_layer *p; 503 struct idr_layer *p;
495 504
496 n = idp->layers * IDR_BITS;
497 p = rcu_dereference(idp->top); 505 p = rcu_dereference(idp->top);
506 if (!p)
507 return NULL;
508 n = (p->layer+1) * IDR_BITS;
498 509
499 /* Mask off upper bits we don't use for the search. */ 510 /* Mask off upper bits we don't use for the search. */
500 id &= MAX_ID_MASK; 511 id &= MAX_ID_MASK;
501 512
502 if (id >= (1 << n)) 513 if (id >= (1 << n))
503 return NULL; 514 return NULL;
515 BUG_ON(n == 0);
504 516
505 while (n > 0 && p) { 517 while (n > 0 && p) {
506 n -= IDR_BITS; 518 n -= IDR_BITS;
519 BUG_ON(n != p->layer*IDR_BITS);
507 p = rcu_dereference(p->ary[(id >> n) & IDR_MASK]); 520 p = rcu_dereference(p->ary[(id >> n) & IDR_MASK]);
508 } 521 }
509 return((void *)p); 522 return((void *)p);
@@ -582,8 +595,11 @@ void *idr_replace(struct idr *idp, void *ptr, int id)
582 int n; 595 int n;
583 struct idr_layer *p, *old_p; 596 struct idr_layer *p, *old_p;
584 597
585 n = idp->layers * IDR_BITS;
586 p = idp->top; 598 p = idp->top;
599 if (!p)
600 return ERR_PTR(-EINVAL);
601
602 n = (p->layer+1) * IDR_BITS;
587 603
588 id &= MAX_ID_MASK; 604 id &= MAX_ID_MASK;
589 605
diff --git a/lib/percpu_counter.c b/lib/percpu_counter.c
index a8663890a88c..b255b939bc1b 100644
--- a/lib/percpu_counter.c
+++ b/lib/percpu_counter.c
@@ -62,10 +62,7 @@ s64 __percpu_counter_sum(struct percpu_counter *fbc)
62 for_each_online_cpu(cpu) { 62 for_each_online_cpu(cpu) {
63 s32 *pcount = per_cpu_ptr(fbc->counters, cpu); 63 s32 *pcount = per_cpu_ptr(fbc->counters, cpu);
64 ret += *pcount; 64 ret += *pcount;
65 *pcount = 0;
66 } 65 }
67 fbc->count = ret;
68
69 spin_unlock(&fbc->lock); 66 spin_unlock(&fbc->lock);
70 return ret; 67 return ret;
71} 68}
@@ -104,13 +101,13 @@ void percpu_counter_destroy(struct percpu_counter *fbc)
104 if (!fbc->counters) 101 if (!fbc->counters)
105 return; 102 return;
106 103
107 free_percpu(fbc->counters);
108 fbc->counters = NULL;
109#ifdef CONFIG_HOTPLUG_CPU 104#ifdef CONFIG_HOTPLUG_CPU
110 mutex_lock(&percpu_counters_lock); 105 mutex_lock(&percpu_counters_lock);
111 list_del(&fbc->list); 106 list_del(&fbc->list);
112 mutex_unlock(&percpu_counters_lock); 107 mutex_unlock(&percpu_counters_lock);
113#endif 108#endif
109 free_percpu(fbc->counters);
110 fbc->counters = NULL;
114} 111}
115EXPORT_SYMBOL(percpu_counter_destroy); 112EXPORT_SYMBOL(percpu_counter_destroy);
116 113
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index f2e574dbc300..801c08b046e6 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -176,6 +176,9 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent,
176 int ret = 0; 176 int ret = 0;
177 struct device *dev; 177 struct device *dev;
178 178
179 if (bdi->dev) /* The driver needs to use separate queues per device */
180 goto exit;
181
179 va_start(args, fmt); 182 va_start(args, fmt);
180 dev = device_create_vargs(bdi_class, parent, MKDEV(0, 0), bdi, fmt, args); 183 dev = device_create_vargs(bdi_class, parent, MKDEV(0, 0), bdi, fmt, args);
181 va_end(args); 184 va_end(args);
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index b5b2b15085a8..b17371185468 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -189,7 +189,7 @@ static void grow_pgdat_span(struct pglist_data *pgdat, unsigned long start_pfn,
189 pgdat->node_start_pfn; 189 pgdat->node_start_pfn;
190} 190}
191 191
192static int __add_zone(struct zone *zone, unsigned long phys_start_pfn) 192static int __meminit __add_zone(struct zone *zone, unsigned long phys_start_pfn)
193{ 193{
194 struct pglist_data *pgdat = zone->zone_pgdat; 194 struct pglist_data *pgdat = zone->zone_pgdat;
195 int nr_pages = PAGES_PER_SECTION; 195 int nr_pages = PAGES_PER_SECTION;
@@ -216,7 +216,7 @@ static int __add_zone(struct zone *zone, unsigned long phys_start_pfn)
216 return 0; 216 return 0;
217} 217}
218 218
219static int __add_section(struct zone *zone, unsigned long phys_start_pfn) 219static int __meminit __add_section(struct zone *zone, unsigned long phys_start_pfn)
220{ 220{
221 int nr_pages = PAGES_PER_SECTION; 221 int nr_pages = PAGES_PER_SECTION;
222 int ret; 222 int ret;
@@ -273,7 +273,7 @@ static int __remove_section(struct zone *zone, struct mem_section *ms)
273 * call this function after deciding the zone to which to 273 * call this function after deciding the zone to which to
274 * add the new pages. 274 * add the new pages.
275 */ 275 */
276int __add_pages(struct zone *zone, unsigned long phys_start_pfn, 276int __ref __add_pages(struct zone *zone, unsigned long phys_start_pfn,
277 unsigned long nr_pages) 277 unsigned long nr_pages)
278{ 278{
279 unsigned long i; 279 unsigned long i;
@@ -470,7 +470,8 @@ static void rollback_node_hotadd(int nid, pg_data_t *pgdat)
470} 470}
471 471
472 472
473int add_memory(int nid, u64 start, u64 size) 473/* we are OK calling __meminit stuff here - we have CONFIG_MEMORY_HOTPLUG */
474int __ref add_memory(int nid, u64 start, u64 size)
474{ 475{
475 pg_data_t *pgdat = NULL; 476 pg_data_t *pgdat = NULL;
476 int new_pgdat = 0; 477 int new_pgdat = 0;
diff --git a/mm/migrate.c b/mm/migrate.c
index 1e0d6b237f44..037b0967c1e3 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -987,25 +987,18 @@ out:
987/* 987/*
988 * Determine the nodes of an array of pages and store it in an array of status. 988 * Determine the nodes of an array of pages and store it in an array of status.
989 */ 989 */
990static int do_pages_stat(struct mm_struct *mm, unsigned long nr_pages, 990static void do_pages_stat_array(struct mm_struct *mm, unsigned long nr_pages,
991 const void __user * __user *pages, 991 const void __user **pages, int *status)
992 int __user *status)
993{ 992{
994 unsigned long i; 993 unsigned long i;
995 int err;
996 994
997 down_read(&mm->mmap_sem); 995 down_read(&mm->mmap_sem);
998 996
999 for (i = 0; i < nr_pages; i++) { 997 for (i = 0; i < nr_pages; i++) {
1000 const void __user *p; 998 unsigned long addr = (unsigned long)(*pages);
1001 unsigned long addr;
1002 struct vm_area_struct *vma; 999 struct vm_area_struct *vma;
1003 struct page *page; 1000 struct page *page;
1004 1001 int err = -EFAULT;
1005 err = -EFAULT;
1006 if (get_user(p, pages+i))
1007 goto out;
1008 addr = (unsigned long) p;
1009 1002
1010 vma = find_vma(mm, addr); 1003 vma = find_vma(mm, addr);
1011 if (!vma) 1004 if (!vma)
@@ -1024,12 +1017,52 @@ static int do_pages_stat(struct mm_struct *mm, unsigned long nr_pages,
1024 1017
1025 err = page_to_nid(page); 1018 err = page_to_nid(page);
1026set_status: 1019set_status:
1027 put_user(err, status+i); 1020 *status = err;
1021
1022 pages++;
1023 status++;
1024 }
1025
1026 up_read(&mm->mmap_sem);
1027}
1028
1029/*
1030 * Determine the nodes of a user array of pages and store it in
1031 * a user array of status.
1032 */
1033static int do_pages_stat(struct mm_struct *mm, unsigned long nr_pages,
1034 const void __user * __user *pages,
1035 int __user *status)
1036{
1037#define DO_PAGES_STAT_CHUNK_NR 16
1038 const void __user *chunk_pages[DO_PAGES_STAT_CHUNK_NR];
1039 int chunk_status[DO_PAGES_STAT_CHUNK_NR];
1040 unsigned long i, chunk_nr = DO_PAGES_STAT_CHUNK_NR;
1041 int err;
1042
1043 for (i = 0; i < nr_pages; i += chunk_nr) {
1044 if (chunk_nr + i > nr_pages)
1045 chunk_nr = nr_pages - i;
1046
1047 err = copy_from_user(chunk_pages, &pages[i],
1048 chunk_nr * sizeof(*chunk_pages));
1049 if (err) {
1050 err = -EFAULT;
1051 goto out;
1052 }
1053
1054 do_pages_stat_array(mm, chunk_nr, chunk_pages, chunk_status);
1055
1056 err = copy_to_user(&status[i], chunk_status,
1057 chunk_nr * sizeof(*chunk_status));
1058 if (err) {
1059 err = -EFAULT;
1060 goto out;
1061 }
1028 } 1062 }
1029 err = 0; 1063 err = 0;
1030 1064
1031out: 1065out:
1032 up_read(&mm->mmap_sem);
1033 return err; 1066 return err;
1034} 1067}
1035 1068
diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c
index 1223d927904d..ab27ff750519 100644
--- a/mm/page_cgroup.c
+++ b/mm/page_cgroup.c
@@ -21,7 +21,7 @@ static unsigned long total_usage;
21#if !defined(CONFIG_SPARSEMEM) 21#if !defined(CONFIG_SPARSEMEM)
22 22
23 23
24void __init pgdat_page_cgroup_init(struct pglist_data *pgdat) 24void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat)
25{ 25{
26 pgdat->node_page_cgroup = NULL; 26 pgdat->node_page_cgroup = NULL;
27} 27}
@@ -49,6 +49,9 @@ static int __init alloc_node_page_cgroup(int nid)
49 start_pfn = NODE_DATA(nid)->node_start_pfn; 49 start_pfn = NODE_DATA(nid)->node_start_pfn;
50 nr_pages = NODE_DATA(nid)->node_spanned_pages; 50 nr_pages = NODE_DATA(nid)->node_spanned_pages;
51 51
52 if (!nr_pages)
53 return 0;
54
52 table_size = sizeof(struct page_cgroup) * nr_pages; 55 table_size = sizeof(struct page_cgroup) * nr_pages;
53 56
54 base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), 57 base = __alloc_bootmem_node_nopanic(NODE_DATA(nid),
@@ -97,7 +100,8 @@ struct page_cgroup *lookup_page_cgroup(struct page *page)
97 return section->page_cgroup + pfn; 100 return section->page_cgroup + pfn;
98} 101}
99 102
100int __meminit init_section_page_cgroup(unsigned long pfn) 103/* __alloc_bootmem...() is protected by !slab_available() */
104int __init_refok init_section_page_cgroup(unsigned long pfn)
101{ 105{
102 struct mem_section *section; 106 struct mem_section *section;
103 struct page_cgroup *base, *pc; 107 struct page_cgroup *base, *pc;
@@ -106,19 +110,29 @@ int __meminit init_section_page_cgroup(unsigned long pfn)
106 110
107 section = __pfn_to_section(pfn); 111 section = __pfn_to_section(pfn);
108 112
109 if (section->page_cgroup) 113 if (!section->page_cgroup) {
110 return 0; 114 nid = page_to_nid(pfn_to_page(pfn));
111 115 table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION;
112 nid = page_to_nid(pfn_to_page(pfn)); 116 if (slab_is_available()) {
113 117 base = kmalloc_node(table_size, GFP_KERNEL, nid);
114 table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; 118 if (!base)
115 if (slab_is_available()) { 119 base = vmalloc_node(table_size, nid);
116 base = kmalloc_node(table_size, GFP_KERNEL, nid); 120 } else {
117 if (!base) 121 base = __alloc_bootmem_node_nopanic(NODE_DATA(nid),
118 base = vmalloc_node(table_size, nid); 122 table_size,
119 } else {
120 base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), table_size,
121 PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); 123 PAGE_SIZE, __pa(MAX_DMA_ADDRESS));
124 }
125 } else {
126 /*
127 * We don't have to allocate page_cgroup again, but
128 * address of memmap may be changed. So, we have to initialize
129 * again.
130 */
131 base = section->page_cgroup + pfn;
132 table_size = 0;
133 /* check address of memmap is changed or not. */
134 if (base->page == pfn_to_page(pfn))
135 return 0;
122 } 136 }
123 137
124 if (!base) { 138 if (!base) {
@@ -158,7 +172,7 @@ void __free_page_cgroup(unsigned long pfn)
158 } 172 }
159} 173}
160 174
161int online_page_cgroup(unsigned long start_pfn, 175int __meminit online_page_cgroup(unsigned long start_pfn,
162 unsigned long nr_pages, 176 unsigned long nr_pages,
163 int nid) 177 int nid)
164{ 178{
@@ -183,7 +197,7 @@ int online_page_cgroup(unsigned long start_pfn,
183 return -ENOMEM; 197 return -ENOMEM;
184} 198}
185 199
186int offline_page_cgroup(unsigned long start_pfn, 200int __meminit offline_page_cgroup(unsigned long start_pfn,
187 unsigned long nr_pages, int nid) 201 unsigned long nr_pages, int nid)
188{ 202{
189 unsigned long start, end, pfn; 203 unsigned long start, end, pfn;
@@ -197,7 +211,7 @@ int offline_page_cgroup(unsigned long start_pfn,
197 211
198} 212}
199 213
200static int page_cgroup_callback(struct notifier_block *self, 214static int __meminit page_cgroup_callback(struct notifier_block *self,
201 unsigned long action, void *arg) 215 unsigned long action, void *arg)
202{ 216{
203 struct memory_notify *mn = arg; 217 struct memory_notify *mn = arg;
@@ -207,18 +221,23 @@ static int page_cgroup_callback(struct notifier_block *self,
207 ret = online_page_cgroup(mn->start_pfn, 221 ret = online_page_cgroup(mn->start_pfn,
208 mn->nr_pages, mn->status_change_nid); 222 mn->nr_pages, mn->status_change_nid);
209 break; 223 break;
210 case MEM_CANCEL_ONLINE:
211 case MEM_OFFLINE: 224 case MEM_OFFLINE:
212 offline_page_cgroup(mn->start_pfn, 225 offline_page_cgroup(mn->start_pfn,
213 mn->nr_pages, mn->status_change_nid); 226 mn->nr_pages, mn->status_change_nid);
214 break; 227 break;
228 case MEM_CANCEL_ONLINE:
215 case MEM_GOING_OFFLINE: 229 case MEM_GOING_OFFLINE:
216 break; 230 break;
217 case MEM_ONLINE: 231 case MEM_ONLINE:
218 case MEM_CANCEL_OFFLINE: 232 case MEM_CANCEL_OFFLINE:
219 break; 233 break;
220 } 234 }
221 ret = notifier_from_errno(ret); 235
236 if (ret)
237 ret = notifier_from_errno(ret);
238 else
239 ret = NOTIFY_OK;
240
222 return ret; 241 return ret;
223} 242}
224 243
@@ -248,7 +267,7 @@ void __init page_cgroup_init(void)
248 " want\n"); 267 " want\n");
249} 268}
250 269
251void __init pgdat_page_cgroup_init(struct pglist_data *pgdat) 270void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat)
252{ 271{
253 return; 272 return;
254} 273}
diff --git a/mm/slob.c b/mm/slob.c
index cb675d126791..bf7e8fc3aed8 100644
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -535,7 +535,7 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
535 struct kmem_cache *c; 535 struct kmem_cache *c;
536 536
537 c = slob_alloc(sizeof(struct kmem_cache), 537 c = slob_alloc(sizeof(struct kmem_cache),
538 flags, ARCH_KMALLOC_MINALIGN, -1); 538 GFP_KERNEL, ARCH_KMALLOC_MINALIGN, -1);
539 539
540 if (c) { 540 if (c) {
541 c->name = name; 541 c->name = name;
diff --git a/mm/slub.c b/mm/slub.c
index 7ad489af9561..a2cd47d89e0a 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2931,8 +2931,10 @@ static int slab_memory_callback(struct notifier_block *self,
2931 case MEM_CANCEL_OFFLINE: 2931 case MEM_CANCEL_OFFLINE:
2932 break; 2932 break;
2933 } 2933 }
2934 2934 if (ret)
2935 ret = notifier_from_errno(ret); 2935 ret = notifier_from_errno(ret);
2936 else
2937 ret = NOTIFY_OK;
2936 return ret; 2938 return ret;
2937} 2939}
2938 2940
@@ -3595,7 +3597,7 @@ static int list_locations(struct kmem_cache *s, char *buf,
3595 for (i = 0; i < t.count; i++) { 3597 for (i = 0; i < t.count; i++) {
3596 struct location *l = &t.loc[i]; 3598 struct location *l = &t.loc[i];
3597 3599
3598 if (len > PAGE_SIZE - 100) 3600 if (len > PAGE_SIZE - KSYM_SYMBOL_LEN - 100)
3599 break; 3601 break;
3600 len += sprintf(buf + len, "%7ld ", l->count); 3602 len += sprintf(buf + len, "%7ld ", l->count);
3601 3603
diff --git a/mm/sparse.c b/mm/sparse.c
index 39db301b920d..083f5b63e7a8 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -570,7 +570,7 @@ static void free_section_usemap(struct page *memmap, unsigned long *usemap)
570 * set. If this is <=0, then that means that the passed-in 570 * set. If this is <=0, then that means that the passed-in
571 * map was not consumed and must be freed. 571 * map was not consumed and must be freed.
572 */ 572 */
573int sparse_add_one_section(struct zone *zone, unsigned long start_pfn, 573int __meminit sparse_add_one_section(struct zone *zone, unsigned long start_pfn,
574 int nr_pages) 574 int nr_pages)
575{ 575{
576 unsigned long section_nr = pfn_to_section_nr(start_pfn); 576 unsigned long section_nr = pfn_to_section_nr(start_pfn);
diff --git a/mm/swap.c b/mm/swap.c
index 2152e48a7b8f..b135ec90cdeb 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -299,7 +299,6 @@ void lru_add_drain(void)
299 put_cpu(); 299 put_cpu();
300} 300}
301 301
302#if defined(CONFIG_NUMA) || defined(CONFIG_UNEVICTABLE_LRU)
303static void lru_add_drain_per_cpu(struct work_struct *dummy) 302static void lru_add_drain_per_cpu(struct work_struct *dummy)
304{ 303{
305 lru_add_drain(); 304 lru_add_drain();
@@ -313,18 +312,6 @@ int lru_add_drain_all(void)
313 return schedule_on_each_cpu(lru_add_drain_per_cpu); 312 return schedule_on_each_cpu(lru_add_drain_per_cpu);
314} 313}
315 314
316#else
317
318/*
319 * Returns 0 for success
320 */
321int lru_add_drain_all(void)
322{
323 lru_add_drain();
324 return 0;
325}
326#endif
327
328/* 315/*
329 * Batched page_cache_release(). Decrement the reference count on all the 316 * Batched page_cache_release(). Decrement the reference count on all the
330 * passed pages. If it fell to zero then remove the page from the LRU and 317 * passed pages. If it fell to zero then remove the page from the LRU and
@@ -445,6 +432,7 @@ void ____pagevec_lru_add(struct pagevec *pvec, enum lru_list lru)
445 for (i = 0; i < pagevec_count(pvec); i++) { 432 for (i = 0; i < pagevec_count(pvec); i++) {
446 struct page *page = pvec->pages[i]; 433 struct page *page = pvec->pages[i];
447 struct zone *pagezone = page_zone(page); 434 struct zone *pagezone = page_zone(page);
435 int file;
448 436
449 if (pagezone != zone) { 437 if (pagezone != zone) {
450 if (zone) 438 if (zone)
@@ -456,8 +444,12 @@ void ____pagevec_lru_add(struct pagevec *pvec, enum lru_list lru)
456 VM_BUG_ON(PageUnevictable(page)); 444 VM_BUG_ON(PageUnevictable(page));
457 VM_BUG_ON(PageLRU(page)); 445 VM_BUG_ON(PageLRU(page));
458 SetPageLRU(page); 446 SetPageLRU(page);
459 if (is_active_lru(lru)) 447 file = is_file_lru(lru);
448 zone->recent_scanned[file]++;
449 if (is_active_lru(lru)) {
460 SetPageActive(page); 450 SetPageActive(page);
451 zone->recent_rotated[file]++;
452 }
461 add_page_to_lru_list(zone, page, lru); 453 add_page_to_lru_list(zone, page, lru);
462 } 454 }
463 if (zone) 455 if (zone)
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 30f826d484f0..1ddb77ba3995 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -77,7 +77,6 @@ static void vunmap_page_range(unsigned long addr, unsigned long end)
77 77
78 BUG_ON(addr >= end); 78 BUG_ON(addr >= end);
79 pgd = pgd_offset_k(addr); 79 pgd = pgd_offset_k(addr);
80 flush_cache_vunmap(addr, end);
81 do { 80 do {
82 next = pgd_addr_end(addr, end); 81 next = pgd_addr_end(addr, end);
83 if (pgd_none_or_clear_bad(pgd)) 82 if (pgd_none_or_clear_bad(pgd))
@@ -543,9 +542,10 @@ static void purge_vmap_area_lazy(void)
543} 542}
544 543
545/* 544/*
546 * Free and unmap a vmap area 545 * Free and unmap a vmap area, caller ensuring flush_cache_vunmap had been
546 * called for the correct range previously.
547 */ 547 */
548static void free_unmap_vmap_area(struct vmap_area *va) 548static void free_unmap_vmap_area_noflush(struct vmap_area *va)
549{ 549{
550 va->flags |= VM_LAZY_FREE; 550 va->flags |= VM_LAZY_FREE;
551 atomic_add((va->va_end - va->va_start) >> PAGE_SHIFT, &vmap_lazy_nr); 551 atomic_add((va->va_end - va->va_start) >> PAGE_SHIFT, &vmap_lazy_nr);
@@ -553,6 +553,15 @@ static void free_unmap_vmap_area(struct vmap_area *va)
553 try_purge_vmap_area_lazy(); 553 try_purge_vmap_area_lazy();
554} 554}
555 555
556/*
557 * Free and unmap a vmap area
558 */
559static void free_unmap_vmap_area(struct vmap_area *va)
560{
561 flush_cache_vunmap(va->va_start, va->va_end);
562 free_unmap_vmap_area_noflush(va);
563}
564
556static struct vmap_area *find_vmap_area(unsigned long addr) 565static struct vmap_area *find_vmap_area(unsigned long addr)
557{ 566{
558 struct vmap_area *va; 567 struct vmap_area *va;
@@ -734,7 +743,7 @@ static void free_vmap_block(struct vmap_block *vb)
734 spin_unlock(&vmap_block_tree_lock); 743 spin_unlock(&vmap_block_tree_lock);
735 BUG_ON(tmp != vb); 744 BUG_ON(tmp != vb);
736 745
737 free_unmap_vmap_area(vb->va); 746 free_unmap_vmap_area_noflush(vb->va);
738 call_rcu(&vb->rcu_head, rcu_free_vb); 747 call_rcu(&vb->rcu_head, rcu_free_vb);
739} 748}
740 749
@@ -796,6 +805,9 @@ static void vb_free(const void *addr, unsigned long size)
796 805
797 BUG_ON(size & ~PAGE_MASK); 806 BUG_ON(size & ~PAGE_MASK);
798 BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); 807 BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC);
808
809 flush_cache_vunmap((unsigned long)addr, (unsigned long)addr + size);
810
799 order = get_order(size); 811 order = get_order(size);
800 812
801 offset = (unsigned long)addr & (VMAP_BLOCK_SIZE - 1); 813 offset = (unsigned long)addr & (VMAP_BLOCK_SIZE - 1);
@@ -1705,7 +1717,7 @@ static int s_show(struct seq_file *m, void *p)
1705 v->addr, v->addr + v->size, v->size); 1717 v->addr, v->addr + v->size, v->size);
1706 1718
1707 if (v->caller) { 1719 if (v->caller) {
1708 char buff[2 * KSYM_NAME_LEN]; 1720 char buff[KSYM_SYMBOL_LEN];
1709 1721
1710 seq_putc(m, ' '); 1722 seq_putc(m, ' ');
1711 sprint_symbol(buff, (unsigned long)v->caller); 1723 sprint_symbol(buff, (unsigned long)v->caller);
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 7ea1440b53db..62e7f62fb559 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1248,6 +1248,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
1248 list_add(&page->lru, &l_inactive); 1248 list_add(&page->lru, &l_inactive);
1249 } 1249 }
1250 1250
1251 spin_lock_irq(&zone->lru_lock);
1251 /* 1252 /*
1252 * Count referenced pages from currently used mappings as 1253 * Count referenced pages from currently used mappings as
1253 * rotated, even though they are moved to the inactive list. 1254 * rotated, even though they are moved to the inactive list.
@@ -1263,7 +1264,6 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
1263 1264
1264 pgmoved = 0; 1265 pgmoved = 0;
1265 lru = LRU_BASE + file * LRU_FILE; 1266 lru = LRU_BASE + file * LRU_FILE;
1266 spin_lock_irq(&zone->lru_lock);
1267 while (!list_empty(&l_inactive)) { 1267 while (!list_empty(&l_inactive)) {
1268 page = lru_to_page(&l_inactive); 1268 page = lru_to_page(&l_inactive);
1269 prefetchw_prev_lru_page(page, &l_inactive, flags); 1269 prefetchw_prev_lru_page(page, &l_inactive, flags);
diff --git a/net/atm/svc.c b/net/atm/svc.c
index de1e4f2f3a43..8fb54dc870b3 100644
--- a/net/atm/svc.c
+++ b/net/atm/svc.c
@@ -293,7 +293,10 @@ static int svc_listen(struct socket *sock,int backlog)
293 error = -EINVAL; 293 error = -EINVAL;
294 goto out; 294 goto out;
295 } 295 }
296 vcc_insert_socket(sk); 296 if (test_bit(ATM_VF_LISTEN, &vcc->flags)) {
297 error = -EADDRINUSE;
298 goto out;
299 }
297 set_bit(ATM_VF_WAITING, &vcc->flags); 300 set_bit(ATM_VF_WAITING, &vcc->flags);
298 prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); 301 prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE);
299 sigd_enq(vcc,as_listen,NULL,NULL,&vcc->local); 302 sigd_enq(vcc,as_listen,NULL,NULL,&vcc->local);
@@ -307,6 +310,7 @@ static int svc_listen(struct socket *sock,int backlog)
307 goto out; 310 goto out;
308 } 311 }
309 set_bit(ATM_VF_LISTEN,&vcc->flags); 312 set_bit(ATM_VF_LISTEN,&vcc->flags);
313 vcc_insert_socket(sk);
310 sk->sk_max_ack_backlog = backlog > 0 ? backlog : ATM_BACKLOG_DEFAULT; 314 sk->sk_max_ack_backlog = backlog > 0 ? backlog : ATM_BACKLOG_DEFAULT;
311 error = -sk->sk_err; 315 error = -sk->sk_err;
312out: 316out:
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index ba537fae0a4c..ce68e046d963 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -1786,8 +1786,6 @@ static inline void rfcomm_accept_connection(struct rfcomm_session *s)
1786 if (err < 0) 1786 if (err < 0)
1787 return; 1787 return;
1788 1788
1789 __module_get(nsock->ops->owner);
1790
1791 /* Set our callbacks */ 1789 /* Set our callbacks */
1792 nsock->sk->sk_data_ready = rfcomm_l2data_ready; 1790 nsock->sk->sk_data_ready = rfcomm_l2data_ready;
1793 nsock->sk->sk_state_change = rfcomm_l2state_change; 1791 nsock->sk->sk_state_change = rfcomm_l2state_change;
diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c
index fa5cda4e552a..45f61c348e36 100644
--- a/net/bridge/br_netfilter.c
+++ b/net/bridge/br_netfilter.c
@@ -101,6 +101,18 @@ static inline __be16 pppoe_proto(const struct sk_buff *skb)
101 pppoe_proto(skb) == htons(PPP_IPV6) && \ 101 pppoe_proto(skb) == htons(PPP_IPV6) && \
102 brnf_filter_pppoe_tagged) 102 brnf_filter_pppoe_tagged)
103 103
104static void fake_update_pmtu(struct dst_entry *dst, u32 mtu)
105{
106}
107
108static struct dst_ops fake_dst_ops = {
109 .family = AF_INET,
110 .protocol = __constant_htons(ETH_P_IP),
111 .update_pmtu = fake_update_pmtu,
112 .entry_size = sizeof(struct rtable),
113 .entries = ATOMIC_INIT(0),
114};
115
104/* 116/*
105 * Initialize bogus route table used to keep netfilter happy. 117 * Initialize bogus route table used to keep netfilter happy.
106 * Currently, we fill in the PMTU entry because netfilter 118 * Currently, we fill in the PMTU entry because netfilter
@@ -117,6 +129,7 @@ void br_netfilter_rtable_init(struct net_bridge *br)
117 rt->u.dst.path = &rt->u.dst; 129 rt->u.dst.path = &rt->u.dst;
118 rt->u.dst.metrics[RTAX_MTU - 1] = 1500; 130 rt->u.dst.metrics[RTAX_MTU - 1] = 1500;
119 rt->u.dst.flags = DST_NOXFRM; 131 rt->u.dst.flags = DST_NOXFRM;
132 rt->u.dst.ops = &fake_dst_ops;
120} 133}
121 134
122static inline struct rtable *bridge_parent_rtable(const struct net_device *dev) 135static inline struct rtable *bridge_parent_rtable(const struct net_device *dev)
diff --git a/net/can/af_can.c b/net/can/af_can.c
index 7d4d2b3c137e..3dadb338addd 100644
--- a/net/can/af_can.c
+++ b/net/can/af_can.c
@@ -319,23 +319,52 @@ static struct dev_rcv_lists *find_dev_rcv_lists(struct net_device *dev)
319 return n ? d : NULL; 319 return n ? d : NULL;
320} 320}
321 321
322/**
323 * find_rcv_list - determine optimal filterlist inside device filter struct
324 * @can_id: pointer to CAN identifier of a given can_filter
325 * @mask: pointer to CAN mask of a given can_filter
326 * @d: pointer to the device filter struct
327 *
328 * Description:
329 * Returns the optimal filterlist to reduce the filter handling in the
330 * receive path. This function is called by service functions that need
331 * to register or unregister a can_filter in the filter lists.
332 *
333 * A filter matches in general, when
334 *
335 * <received_can_id> & mask == can_id & mask
336 *
337 * so every bit set in the mask (even CAN_EFF_FLAG, CAN_RTR_FLAG) describe
338 * relevant bits for the filter.
339 *
340 * The filter can be inverted (CAN_INV_FILTER bit set in can_id) or it can
341 * filter for error frames (CAN_ERR_FLAG bit set in mask). For error frames
342 * there is a special filterlist and a special rx path filter handling.
343 *
344 * Return:
345 * Pointer to optimal filterlist for the given can_id/mask pair.
346 * Constistency checked mask.
347 * Reduced can_id to have a preprocessed filter compare value.
348 */
322static struct hlist_head *find_rcv_list(canid_t *can_id, canid_t *mask, 349static struct hlist_head *find_rcv_list(canid_t *can_id, canid_t *mask,
323 struct dev_rcv_lists *d) 350 struct dev_rcv_lists *d)
324{ 351{
325 canid_t inv = *can_id & CAN_INV_FILTER; /* save flag before masking */ 352 canid_t inv = *can_id & CAN_INV_FILTER; /* save flag before masking */
326 353
327 /* filter error frames */ 354 /* filter for error frames in extra filterlist */
328 if (*mask & CAN_ERR_FLAG) { 355 if (*mask & CAN_ERR_FLAG) {
329 /* clear CAN_ERR_FLAG in list entry */ 356 /* clear CAN_ERR_FLAG in filter entry */
330 *mask &= CAN_ERR_MASK; 357 *mask &= CAN_ERR_MASK;
331 return &d->rx[RX_ERR]; 358 return &d->rx[RX_ERR];
332 } 359 }
333 360
334 /* ensure valid values in can_mask */ 361 /* with cleared CAN_ERR_FLAG we have a simple mask/value filterpair */
335 if (*mask & CAN_EFF_FLAG) 362
336 *mask &= (CAN_EFF_MASK | CAN_EFF_FLAG | CAN_RTR_FLAG); 363#define CAN_EFF_RTR_FLAGS (CAN_EFF_FLAG | CAN_RTR_FLAG)
337 else 364
338 *mask &= (CAN_SFF_MASK | CAN_RTR_FLAG); 365 /* ensure valid values in can_mask for 'SFF only' frame filtering */
366 if ((*mask & CAN_EFF_FLAG) && !(*can_id & CAN_EFF_FLAG))
367 *mask &= (CAN_SFF_MASK | CAN_EFF_RTR_FLAGS);
339 368
340 /* reduce condition testing at receive time */ 369 /* reduce condition testing at receive time */
341 *can_id &= *mask; 370 *can_id &= *mask;
@@ -348,15 +377,19 @@ static struct hlist_head *find_rcv_list(canid_t *can_id, canid_t *mask,
348 if (!(*mask)) 377 if (!(*mask))
349 return &d->rx[RX_ALL]; 378 return &d->rx[RX_ALL];
350 379
351 /* use extra filterset for the subscription of exactly *ONE* can_id */ 380 /* extra filterlists for the subscription of a single non-RTR can_id */
352 if (*can_id & CAN_EFF_FLAG) { 381 if (((*mask & CAN_EFF_RTR_FLAGS) == CAN_EFF_RTR_FLAGS)
353 if (*mask == (CAN_EFF_MASK | CAN_EFF_FLAG)) { 382 && !(*can_id & CAN_RTR_FLAG)) {
354 /* RFC: a use-case for hash-tables in the future? */ 383
355 return &d->rx[RX_EFF]; 384 if (*can_id & CAN_EFF_FLAG) {
385 if (*mask == (CAN_EFF_MASK | CAN_EFF_RTR_FLAGS)) {
386 /* RFC: a future use-case for hash-tables? */
387 return &d->rx[RX_EFF];
388 }
389 } else {
390 if (*mask == (CAN_SFF_MASK | CAN_EFF_RTR_FLAGS))
391 return &d->rx_sff[*can_id];
356 } 392 }
357 } else {
358 if (*mask == CAN_SFF_MASK)
359 return &d->rx_sff[*can_id];
360 } 393 }
361 394
362 /* default: filter via can_id/can_mask */ 395 /* default: filter via can_id/can_mask */
@@ -589,7 +622,10 @@ static int can_rcv_filter(struct dev_rcv_lists *d, struct sk_buff *skb)
589 } 622 }
590 } 623 }
591 624
592 /* check CAN_ID specific entries */ 625 /* check filterlists for single non-RTR can_ids */
626 if (can_id & CAN_RTR_FLAG)
627 return matches;
628
593 if (can_id & CAN_EFF_FLAG) { 629 if (can_id & CAN_EFF_FLAG) {
594 hlist_for_each_entry_rcu(r, n, &d->rx[RX_EFF], list) { 630 hlist_for_each_entry_rcu(r, n, &d->rx[RX_EFF], list) {
595 if (r->can_id == can_id) { 631 if (r->can_id == can_id) {
diff --git a/net/can/bcm.c b/net/can/bcm.c
index d0dd382001e2..da0d426c0ce4 100644
--- a/net/can/bcm.c
+++ b/net/can/bcm.c
@@ -64,10 +64,11 @@
64#define BCM_CAN_DLC_MASK 0x0F /* clean private flags in can_dlc by masking */ 64#define BCM_CAN_DLC_MASK 0x0F /* clean private flags in can_dlc by masking */
65 65
66/* get best masking value for can_rx_register() for a given single can_id */ 66/* get best masking value for can_rx_register() for a given single can_id */
67#define REGMASK(id) ((id & CAN_RTR_FLAG) | ((id & CAN_EFF_FLAG) ? \ 67#define REGMASK(id) ((id & CAN_EFF_FLAG) ? \
68 (CAN_EFF_MASK | CAN_EFF_FLAG) : CAN_SFF_MASK)) 68 (CAN_EFF_MASK | CAN_EFF_FLAG | CAN_RTR_FLAG) : \
69 (CAN_SFF_MASK | CAN_EFF_FLAG | CAN_RTR_FLAG))
69 70
70#define CAN_BCM_VERSION "20080415" 71#define CAN_BCM_VERSION CAN_VERSION
71static __initdata const char banner[] = KERN_INFO 72static __initdata const char banner[] = KERN_INFO
72 "can: broadcast manager protocol (rev " CAN_BCM_VERSION ")\n"; 73 "can: broadcast manager protocol (rev " CAN_BCM_VERSION ")\n";
73 74
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index 6c7af390be0a..dadac6281f20 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -133,9 +133,11 @@ static int poll_one_napi(struct netpoll_info *npinfo,
133 133
134 npinfo->rx_flags |= NETPOLL_RX_DROP; 134 npinfo->rx_flags |= NETPOLL_RX_DROP;
135 atomic_inc(&trapped); 135 atomic_inc(&trapped);
136 set_bit(NAPI_STATE_NPSVC, &napi->state);
136 137
137 work = napi->poll(napi, budget); 138 work = napi->poll(napi, budget);
138 139
140 clear_bit(NAPI_STATE_NPSVC, &napi->state);
139 atomic_dec(&trapped); 141 atomic_dec(&trapped);
140 npinfo->rx_flags &= ~NETPOLL_RX_DROP; 142 npinfo->rx_flags &= ~NETPOLL_RX_DROP;
141 143
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index d49ef8301b5b..65f7757465bd 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -149,7 +149,7 @@ void skb_under_panic(struct sk_buff *skb, int sz, void *here)
149 149
150void skb_truesize_bug(struct sk_buff *skb) 150void skb_truesize_bug(struct sk_buff *skb)
151{ 151{
152 printk(KERN_ERR "SKB BUG: Invalid truesize (%u) " 152 WARN(net_ratelimit(), KERN_ERR "SKB BUG: Invalid truesize (%u) "
153 "len=%u, sizeof(sk_buff)=%Zd\n", 153 "len=%u, sizeof(sk_buff)=%Zd\n",
154 skb->truesize, skb->len, sizeof(struct sk_buff)); 154 skb->truesize, skb->len, sizeof(struct sk_buff));
155} 155}
diff --git a/net/core/sock.c b/net/core/sock.c
index 341e39456952..edf7220889a4 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -2035,9 +2035,6 @@ static inline void release_proto_idx(struct proto *prot)
2035 2035
2036int proto_register(struct proto *prot, int alloc_slab) 2036int proto_register(struct proto *prot, int alloc_slab)
2037{ 2037{
2038 char *request_sock_slab_name = NULL;
2039 char *timewait_sock_slab_name;
2040
2041 if (alloc_slab) { 2038 if (alloc_slab) {
2042 prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0, 2039 prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0,
2043 SLAB_HWCACHE_ALIGN, NULL); 2040 SLAB_HWCACHE_ALIGN, NULL);
@@ -2051,12 +2048,12 @@ int proto_register(struct proto *prot, int alloc_slab)
2051 if (prot->rsk_prot != NULL) { 2048 if (prot->rsk_prot != NULL) {
2052 static const char mask[] = "request_sock_%s"; 2049 static const char mask[] = "request_sock_%s";
2053 2050
2054 request_sock_slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL); 2051 prot->rsk_prot->slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL);
2055 if (request_sock_slab_name == NULL) 2052 if (prot->rsk_prot->slab_name == NULL)
2056 goto out_free_sock_slab; 2053 goto out_free_sock_slab;
2057 2054
2058 sprintf(request_sock_slab_name, mask, prot->name); 2055 sprintf(prot->rsk_prot->slab_name, mask, prot->name);
2059 prot->rsk_prot->slab = kmem_cache_create(request_sock_slab_name, 2056 prot->rsk_prot->slab = kmem_cache_create(prot->rsk_prot->slab_name,
2060 prot->rsk_prot->obj_size, 0, 2057 prot->rsk_prot->obj_size, 0,
2061 SLAB_HWCACHE_ALIGN, NULL); 2058 SLAB_HWCACHE_ALIGN, NULL);
2062 2059
@@ -2070,14 +2067,14 @@ int proto_register(struct proto *prot, int alloc_slab)
2070 if (prot->twsk_prot != NULL) { 2067 if (prot->twsk_prot != NULL) {
2071 static const char mask[] = "tw_sock_%s"; 2068 static const char mask[] = "tw_sock_%s";
2072 2069
2073 timewait_sock_slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL); 2070 prot->twsk_prot->twsk_slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL);
2074 2071
2075 if (timewait_sock_slab_name == NULL) 2072 if (prot->twsk_prot->twsk_slab_name == NULL)
2076 goto out_free_request_sock_slab; 2073 goto out_free_request_sock_slab;
2077 2074
2078 sprintf(timewait_sock_slab_name, mask, prot->name); 2075 sprintf(prot->twsk_prot->twsk_slab_name, mask, prot->name);
2079 prot->twsk_prot->twsk_slab = 2076 prot->twsk_prot->twsk_slab =
2080 kmem_cache_create(timewait_sock_slab_name, 2077 kmem_cache_create(prot->twsk_prot->twsk_slab_name,
2081 prot->twsk_prot->twsk_obj_size, 2078 prot->twsk_prot->twsk_obj_size,
2082 0, SLAB_HWCACHE_ALIGN, 2079 0, SLAB_HWCACHE_ALIGN,
2083 NULL); 2080 NULL);
@@ -2093,14 +2090,14 @@ int proto_register(struct proto *prot, int alloc_slab)
2093 return 0; 2090 return 0;
2094 2091
2095out_free_timewait_sock_slab_name: 2092out_free_timewait_sock_slab_name:
2096 kfree(timewait_sock_slab_name); 2093 kfree(prot->twsk_prot->twsk_slab_name);
2097out_free_request_sock_slab: 2094out_free_request_sock_slab:
2098 if (prot->rsk_prot && prot->rsk_prot->slab) { 2095 if (prot->rsk_prot && prot->rsk_prot->slab) {
2099 kmem_cache_destroy(prot->rsk_prot->slab); 2096 kmem_cache_destroy(prot->rsk_prot->slab);
2100 prot->rsk_prot->slab = NULL; 2097 prot->rsk_prot->slab = NULL;
2101 } 2098 }
2102out_free_request_sock_slab_name: 2099out_free_request_sock_slab_name:
2103 kfree(request_sock_slab_name); 2100 kfree(prot->rsk_prot->slab_name);
2104out_free_sock_slab: 2101out_free_sock_slab:
2105 kmem_cache_destroy(prot->slab); 2102 kmem_cache_destroy(prot->slab);
2106 prot->slab = NULL; 2103 prot->slab = NULL;
@@ -2123,18 +2120,14 @@ void proto_unregister(struct proto *prot)
2123 } 2120 }
2124 2121
2125 if (prot->rsk_prot != NULL && prot->rsk_prot->slab != NULL) { 2122 if (prot->rsk_prot != NULL && prot->rsk_prot->slab != NULL) {
2126 const char *name = kmem_cache_name(prot->rsk_prot->slab);
2127
2128 kmem_cache_destroy(prot->rsk_prot->slab); 2123 kmem_cache_destroy(prot->rsk_prot->slab);
2129 kfree(name); 2124 kfree(prot->rsk_prot->slab_name);
2130 prot->rsk_prot->slab = NULL; 2125 prot->rsk_prot->slab = NULL;
2131 } 2126 }
2132 2127
2133 if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) { 2128 if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) {
2134 const char *name = kmem_cache_name(prot->twsk_prot->twsk_slab);
2135
2136 kmem_cache_destroy(prot->twsk_prot->twsk_slab); 2129 kmem_cache_destroy(prot->twsk_prot->twsk_slab);
2137 kfree(name); 2130 kfree(prot->twsk_prot->twsk_slab_name);
2138 prot->twsk_prot->twsk_slab = NULL; 2131 prot->twsk_prot->twsk_slab = NULL;
2139 } 2132 }
2140} 2133}
diff --git a/net/ipv4/netfilter/nf_nat_rule.c b/net/ipv4/netfilter/nf_nat_rule.c
index bea54a685109..8d489e746b21 100644
--- a/net/ipv4/netfilter/nf_nat_rule.c
+++ b/net/ipv4/netfilter/nf_nat_rule.c
@@ -61,7 +61,7 @@ static struct
61static struct xt_table nat_table = { 61static struct xt_table nat_table = {
62 .name = "nat", 62 .name = "nat",
63 .valid_hooks = NAT_VALID_HOOKS, 63 .valid_hooks = NAT_VALID_HOOKS,
64 .lock = __RW_LOCK_UNLOCKED(__nat_table.lock), 64 .lock = __RW_LOCK_UNLOCKED(nat_table.lock),
65 .me = THIS_MODULE, 65 .me = THIS_MODULE,
66 .af = AF_INET, 66 .af = AF_INET,
67}; 67};
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index ba85d8831893..fe3b4bdfd251 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1028,10 +1028,6 @@ unsigned int tcp_sync_mss(struct sock *sk, u32 pmtu)
1028 1028
1029/* Compute the current effective MSS, taking SACKs and IP options, 1029/* Compute the current effective MSS, taking SACKs and IP options,
1030 * and even PMTU discovery events into account. 1030 * and even PMTU discovery events into account.
1031 *
1032 * LARGESEND note: !tcp_urg_mode is overkill, only frames up to snd_up
1033 * cannot be large. However, taking into account rare use of URG, this
1034 * is not a big flaw.
1035 */ 1031 */
1036unsigned int tcp_current_mss(struct sock *sk, int large_allowed) 1032unsigned int tcp_current_mss(struct sock *sk, int large_allowed)
1037{ 1033{
@@ -1046,7 +1042,7 @@ unsigned int tcp_current_mss(struct sock *sk, int large_allowed)
1046 1042
1047 mss_now = tp->mss_cache; 1043 mss_now = tp->mss_cache;
1048 1044
1049 if (large_allowed && sk_can_gso(sk) && !tcp_urg_mode(tp)) 1045 if (large_allowed && sk_can_gso(sk))
1050 doing_tso = 1; 1046 doing_tso = 1;
1051 1047
1052 if (dst) { 1048 if (dst) {
@@ -1516,6 +1512,10 @@ static int tcp_mtu_probe(struct sock *sk)
1516 * send_head. This happens as incoming acks open up the remote 1512 * send_head. This happens as incoming acks open up the remote
1517 * window for us. 1513 * window for us.
1518 * 1514 *
1515 * LARGESEND note: !tcp_urg_mode is overkill, only frames between
1516 * snd_up-64k-mss .. snd_up cannot be large. However, taking into
1517 * account rare use of URG, this is not a big flaw.
1518 *
1519 * Returns 1, if no segments are in flight and we have queued segments, but 1519 * Returns 1, if no segments are in flight and we have queued segments, but
1520 * cannot send anything now because of SWS or another problem. 1520 * cannot send anything now because of SWS or another problem.
1521 */ 1521 */
@@ -1567,7 +1567,7 @@ static int tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle)
1567 } 1567 }
1568 1568
1569 limit = mss_now; 1569 limit = mss_now;
1570 if (tso_segs > 1) 1570 if (tso_segs > 1 && !tcp_urg_mode(tp))
1571 limit = tcp_mss_split_point(sk, skb, mss_now, 1571 limit = tcp_mss_split_point(sk, skb, mss_now,
1572 cwnd_quota); 1572 cwnd_quota);
1573 1573
@@ -1616,6 +1616,7 @@ void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss,
1616 */ 1616 */
1617void tcp_push_one(struct sock *sk, unsigned int mss_now) 1617void tcp_push_one(struct sock *sk, unsigned int mss_now)
1618{ 1618{
1619 struct tcp_sock *tp = tcp_sk(sk);
1619 struct sk_buff *skb = tcp_send_head(sk); 1620 struct sk_buff *skb = tcp_send_head(sk);
1620 unsigned int tso_segs, cwnd_quota; 1621 unsigned int tso_segs, cwnd_quota;
1621 1622
@@ -1630,7 +1631,7 @@ void tcp_push_one(struct sock *sk, unsigned int mss_now)
1630 BUG_ON(!tso_segs); 1631 BUG_ON(!tso_segs);
1631 1632
1632 limit = mss_now; 1633 limit = mss_now;
1633 if (tso_segs > 1) 1634 if (tso_segs > 1 && !tcp_urg_mode(tp))
1634 limit = tcp_mss_split_point(sk, skb, mss_now, 1635 limit = tcp_mss_split_point(sk, skb, mss_now,
1635 cwnd_quota); 1636 cwnd_quota);
1636 1637
diff --git a/net/ipv4/tcp_vegas.c b/net/ipv4/tcp_vegas.c
index 14504dada116..a453aac91bd3 100644
--- a/net/ipv4/tcp_vegas.c
+++ b/net/ipv4/tcp_vegas.c
@@ -40,18 +40,14 @@
40 40
41#include "tcp_vegas.h" 41#include "tcp_vegas.h"
42 42
43/* Default values of the Vegas variables, in fixed-point representation 43static int alpha = 2;
44 * with V_PARAM_SHIFT bits to the right of the binary point. 44static int beta = 4;
45 */ 45static int gamma = 1;
46#define V_PARAM_SHIFT 1
47static int alpha = 2<<V_PARAM_SHIFT;
48static int beta = 4<<V_PARAM_SHIFT;
49static int gamma = 1<<V_PARAM_SHIFT;
50 46
51module_param(alpha, int, 0644); 47module_param(alpha, int, 0644);
52MODULE_PARM_DESC(alpha, "lower bound of packets in network (scale by 2)"); 48MODULE_PARM_DESC(alpha, "lower bound of packets in network");
53module_param(beta, int, 0644); 49module_param(beta, int, 0644);
54MODULE_PARM_DESC(beta, "upper bound of packets in network (scale by 2)"); 50MODULE_PARM_DESC(beta, "upper bound of packets in network");
55module_param(gamma, int, 0644); 51module_param(gamma, int, 0644);
56MODULE_PARM_DESC(gamma, "limit on increase (scale by 2)"); 52MODULE_PARM_DESC(gamma, "limit on increase (scale by 2)");
57 53
@@ -172,49 +168,13 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
172 return; 168 return;
173 } 169 }
174 170
175 /* The key players are v_beg_snd_una and v_beg_snd_nxt.
176 *
177 * These are so named because they represent the approximate values
178 * of snd_una and snd_nxt at the beginning of the current RTT. More
179 * precisely, they represent the amount of data sent during the RTT.
180 * At the end of the RTT, when we receive an ACK for v_beg_snd_nxt,
181 * we will calculate that (v_beg_snd_nxt - v_beg_snd_una) outstanding
182 * bytes of data have been ACKed during the course of the RTT, giving
183 * an "actual" rate of:
184 *
185 * (v_beg_snd_nxt - v_beg_snd_una) / (rtt duration)
186 *
187 * Unfortunately, v_beg_snd_una is not exactly equal to snd_una,
188 * because delayed ACKs can cover more than one segment, so they
189 * don't line up nicely with the boundaries of RTTs.
190 *
191 * Another unfortunate fact of life is that delayed ACKs delay the
192 * advance of the left edge of our send window, so that the number
193 * of bytes we send in an RTT is often less than our cwnd will allow.
194 * So we keep track of our cwnd separately, in v_beg_snd_cwnd.
195 */
196
197 if (after(ack, vegas->beg_snd_nxt)) { 171 if (after(ack, vegas->beg_snd_nxt)) {
198 /* Do the Vegas once-per-RTT cwnd adjustment. */ 172 /* Do the Vegas once-per-RTT cwnd adjustment. */
199 u32 old_wnd, old_snd_cwnd;
200
201
202 /* Here old_wnd is essentially the window of data that was
203 * sent during the previous RTT, and has all
204 * been acknowledged in the course of the RTT that ended
205 * with the ACK we just received. Likewise, old_snd_cwnd
206 * is the cwnd during the previous RTT.
207 */
208 old_wnd = (vegas->beg_snd_nxt - vegas->beg_snd_una) /
209 tp->mss_cache;
210 old_snd_cwnd = vegas->beg_snd_cwnd;
211 173
212 /* Save the extent of the current window so we can use this 174 /* Save the extent of the current window so we can use this
213 * at the end of the next RTT. 175 * at the end of the next RTT.
214 */ 176 */
215 vegas->beg_snd_una = vegas->beg_snd_nxt;
216 vegas->beg_snd_nxt = tp->snd_nxt; 177 vegas->beg_snd_nxt = tp->snd_nxt;
217 vegas->beg_snd_cwnd = tp->snd_cwnd;
218 178
219 /* We do the Vegas calculations only if we got enough RTT 179 /* We do the Vegas calculations only if we got enough RTT
220 * samples that we can be reasonably sure that we got 180 * samples that we can be reasonably sure that we got
@@ -252,22 +212,14 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
252 * 212 *
253 * This is: 213 * This is:
254 * (actual rate in segments) * baseRTT 214 * (actual rate in segments) * baseRTT
255 * We keep it as a fixed point number with
256 * V_PARAM_SHIFT bits to the right of the binary point.
257 */ 215 */
258 target_cwnd = ((u64)old_wnd * vegas->baseRTT); 216 target_cwnd = tp->snd_cwnd * vegas->baseRTT / rtt;
259 target_cwnd <<= V_PARAM_SHIFT;
260 do_div(target_cwnd, rtt);
261 217
262 /* Calculate the difference between the window we had, 218 /* Calculate the difference between the window we had,
263 * and the window we would like to have. This quantity 219 * and the window we would like to have. This quantity
264 * is the "Diff" from the Arizona Vegas papers. 220 * is the "Diff" from the Arizona Vegas papers.
265 *
266 * Again, this is a fixed point number with
267 * V_PARAM_SHIFT bits to the right of the binary
268 * point.
269 */ 221 */
270 diff = (old_wnd << V_PARAM_SHIFT) - target_cwnd; 222 diff = tp->snd_cwnd * (rtt-vegas->baseRTT) / vegas->baseRTT;
271 223
272 if (diff > gamma && tp->snd_ssthresh > 2 ) { 224 if (diff > gamma && tp->snd_ssthresh > 2 ) {
273 /* Going too fast. Time to slow down 225 /* Going too fast. Time to slow down
@@ -282,16 +234,13 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
282 * truncation robs us of full link 234 * truncation robs us of full link
283 * utilization. 235 * utilization.
284 */ 236 */
285 tp->snd_cwnd = min(tp->snd_cwnd, 237 tp->snd_cwnd = min(tp->snd_cwnd, (u32)target_cwnd+1);
286 ((u32)target_cwnd >>
287 V_PARAM_SHIFT)+1);
288 238
289 } else if (tp->snd_cwnd <= tp->snd_ssthresh) { 239 } else if (tp->snd_cwnd <= tp->snd_ssthresh) {
290 /* Slow start. */ 240 /* Slow start. */
291 tcp_slow_start(tp); 241 tcp_slow_start(tp);
292 } else { 242 } else {
293 /* Congestion avoidance. */ 243 /* Congestion avoidance. */
294 u32 next_snd_cwnd;
295 244
296 /* Figure out where we would like cwnd 245 /* Figure out where we would like cwnd
297 * to be. 246 * to be.
@@ -300,32 +249,25 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 in_flight)
300 /* The old window was too fast, so 249 /* The old window was too fast, so
301 * we slow down. 250 * we slow down.
302 */ 251 */
303 next_snd_cwnd = old_snd_cwnd - 1; 252 tp->snd_cwnd--;
304 } else if (diff < alpha) { 253 } else if (diff < alpha) {
305 /* We don't have enough extra packets 254 /* We don't have enough extra packets
306 * in the network, so speed up. 255 * in the network, so speed up.
307 */ 256 */
308 next_snd_cwnd = old_snd_cwnd + 1; 257 tp->snd_cwnd++;
309 } else { 258 } else {
310 /* Sending just as fast as we 259 /* Sending just as fast as we
311 * should be. 260 * should be.
312 */ 261 */
313 next_snd_cwnd = old_snd_cwnd;
314 } 262 }
315
316 /* Adjust cwnd upward or downward, toward the
317 * desired value.
318 */
319 if (next_snd_cwnd > tp->snd_cwnd)
320 tp->snd_cwnd++;
321 else if (next_snd_cwnd < tp->snd_cwnd)
322 tp->snd_cwnd--;
323 } 263 }
324 264
325 if (tp->snd_cwnd < 2) 265 if (tp->snd_cwnd < 2)
326 tp->snd_cwnd = 2; 266 tp->snd_cwnd = 2;
327 else if (tp->snd_cwnd > tp->snd_cwnd_clamp) 267 else if (tp->snd_cwnd > tp->snd_cwnd_clamp)
328 tp->snd_cwnd = tp->snd_cwnd_clamp; 268 tp->snd_cwnd = tp->snd_cwnd_clamp;
269
270 tp->snd_ssthresh = tcp_current_ssthresh(sk);
329 } 271 }
330 272
331 /* Wipe the slate clean for the next RTT. */ 273 /* Wipe the slate clean for the next RTT. */
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
index 172438320eec..d0f54d18e19b 100644
--- a/net/ipv6/ndisc.c
+++ b/net/ipv6/ndisc.c
@@ -912,8 +912,13 @@ static void ndisc_recv_na(struct sk_buff *skb)
912 is invalid, but ndisc specs say nothing 912 is invalid, but ndisc specs say nothing
913 about it. It could be misconfiguration, or 913 about it. It could be misconfiguration, or
914 an smart proxy agent tries to help us :-) 914 an smart proxy agent tries to help us :-)
915
916 We should not print the error if NA has been
917 received from loopback - it is just our own
918 unsolicited advertisement.
915 */ 919 */
916 ND_PRINTK1(KERN_WARNING 920 if (skb->pkt_type != PACKET_LOOPBACK)
921 ND_PRINTK1(KERN_WARNING
917 "ICMPv6 NA: someone advertises our address on %s!\n", 922 "ICMPv6 NA: someone advertises our address on %s!\n",
918 ifp->idev->dev->name); 923 ifp->idev->dev->name);
919 in6_ifa_put(ifp); 924 in6_ifa_put(ifp);
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 7fef8ea1f5ec..d254446b85b5 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -99,7 +99,7 @@ struct sta_info *sta_info_get(struct ieee80211_local *local, const u8 *addr)
99 99
100 sta = rcu_dereference(local->sta_hash[STA_HASH(addr)]); 100 sta = rcu_dereference(local->sta_hash[STA_HASH(addr)]);
101 while (sta) { 101 while (sta) {
102 if (compare_ether_addr(sta->sta.addr, addr) == 0) 102 if (memcmp(sta->sta.addr, addr, ETH_ALEN) == 0)
103 break; 103 break;
104 sta = rcu_dereference(sta->hnext); 104 sta = rcu_dereference(sta->hnext);
105 } 105 }
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
index 742f811ca416..ab4ddba874be 100644
--- a/net/mac80211/wext.c
+++ b/net/mac80211/wext.c
@@ -271,6 +271,7 @@ static int ieee80211_ioctl_siwmode(struct net_device *dev,
271 __u32 *mode, char *extra) 271 __u32 *mode, char *extra)
272{ 272{
273 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 273 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
274 struct ieee80211_local *local = sdata->local;
274 int type; 275 int type;
275 276
276 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) 277 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
@@ -281,6 +282,13 @@ static int ieee80211_ioctl_siwmode(struct net_device *dev,
281 type = NL80211_IFTYPE_STATION; 282 type = NL80211_IFTYPE_STATION;
282 break; 283 break;
283 case IW_MODE_ADHOC: 284 case IW_MODE_ADHOC:
285 /* Setting ad-hoc mode on non ibss channel is not
286 * supported.
287 */
288 if (local->oper_channel &&
289 (local->oper_channel->flags & IEEE80211_CHAN_NO_IBSS))
290 return -EOPNOTSUPP;
291
284 type = NL80211_IFTYPE_ADHOC; 292 type = NL80211_IFTYPE_ADHOC;
285 break; 293 break;
286 case IW_MODE_REPEAT: 294 case IW_MODE_REPEAT:
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index 622d7c671cb7..233fdd2d7d21 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -305,9 +305,7 @@ void nf_conntrack_hash_insert(struct nf_conn *ct)
305 hash = hash_conntrack(&ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple); 305 hash = hash_conntrack(&ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple);
306 repl_hash = hash_conntrack(&ct->tuplehash[IP_CT_DIR_REPLY].tuple); 306 repl_hash = hash_conntrack(&ct->tuplehash[IP_CT_DIR_REPLY].tuple);
307 307
308 spin_lock_bh(&nf_conntrack_lock);
309 __nf_conntrack_hash_insert(ct, hash, repl_hash); 308 __nf_conntrack_hash_insert(ct, hash, repl_hash);
310 spin_unlock_bh(&nf_conntrack_lock);
311} 309}
312EXPORT_SYMBOL_GPL(nf_conntrack_hash_insert); 310EXPORT_SYMBOL_GPL(nf_conntrack_hash_insert);
313 311
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index a040d46f85d6..5f4a6516b3b6 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -1090,7 +1090,7 @@ ctnetlink_create_conntrack(struct nlattr *cda[],
1090 struct nf_conn_help *help; 1090 struct nf_conn_help *help;
1091 struct nf_conntrack_helper *helper; 1091 struct nf_conntrack_helper *helper;
1092 1092
1093 ct = nf_conntrack_alloc(&init_net, otuple, rtuple, GFP_KERNEL); 1093 ct = nf_conntrack_alloc(&init_net, otuple, rtuple, GFP_ATOMIC);
1094 if (ct == NULL || IS_ERR(ct)) 1094 if (ct == NULL || IS_ERR(ct))
1095 return -ENOMEM; 1095 return -ENOMEM;
1096 1096
@@ -1138,7 +1138,7 @@ ctnetlink_create_conntrack(struct nlattr *cda[],
1138 } 1138 }
1139 } 1139 }
1140 1140
1141 nf_ct_acct_ext_add(ct, GFP_KERNEL); 1141 nf_ct_acct_ext_add(ct, GFP_ATOMIC);
1142 1142
1143#if defined(CONFIG_NF_CONNTRACK_MARK) 1143#if defined(CONFIG_NF_CONNTRACK_MARK)
1144 if (cda[CTA_MARK]) 1144 if (cda[CTA_MARK])
@@ -1212,13 +1212,14 @@ ctnetlink_new_conntrack(struct sock *ctnl, struct sk_buff *skb,
1212 atomic_inc(&master_ct->ct_general.use); 1212 atomic_inc(&master_ct->ct_general.use);
1213 } 1213 }
1214 1214
1215 spin_unlock_bh(&nf_conntrack_lock);
1216 err = -ENOENT; 1215 err = -ENOENT;
1217 if (nlh->nlmsg_flags & NLM_F_CREATE) 1216 if (nlh->nlmsg_flags & NLM_F_CREATE)
1218 err = ctnetlink_create_conntrack(cda, 1217 err = ctnetlink_create_conntrack(cda,
1219 &otuple, 1218 &otuple,
1220 &rtuple, 1219 &rtuple,
1221 master_ct); 1220 master_ct);
1221 spin_unlock_bh(&nf_conntrack_lock);
1222
1222 if (err < 0 && master_ct) 1223 if (err < 0 && master_ct)
1223 nf_ct_put(master_ct); 1224 nf_ct_put(master_ct);
1224 1225
diff --git a/net/netfilter/xt_socket.c b/net/netfilter/xt_socket.c
index 02a8fed21082..1acc089be7e9 100644
--- a/net/netfilter/xt_socket.c
+++ b/net/netfilter/xt_socket.c
@@ -141,7 +141,7 @@ socket_mt(const struct sk_buff *skb, const struct xt_match_param *par)
141 sk = nf_tproxy_get_sock_v4(dev_net(skb->dev), protocol, 141 sk = nf_tproxy_get_sock_v4(dev_net(skb->dev), protocol,
142 saddr, daddr, sport, dport, par->in, false); 142 saddr, daddr, sport, dport, par->in, false);
143 if (sk != NULL) { 143 if (sk != NULL) {
144 bool wildcard = (inet_sk(sk)->rcv_saddr == 0); 144 bool wildcard = (sk->sk_state != TCP_TIME_WAIT && inet_sk(sk)->rcv_saddr == 0);
145 145
146 nf_tproxy_put_sock(sk); 146 nf_tproxy_put_sock(sk);
147 if (wildcard) 147 if (wildcard)
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c
index e8a5c32b0f10..8c0308032178 100644
--- a/net/netlabel/netlabel_unlabeled.c
+++ b/net/netlabel/netlabel_unlabeled.c
@@ -562,7 +562,6 @@ static int netlbl_unlhsh_remove_addr4(struct net *net,
562 const struct in_addr *mask, 562 const struct in_addr *mask,
563 struct netlbl_audit *audit_info) 563 struct netlbl_audit *audit_info)
564{ 564{
565 int ret_val = 0;
566 struct netlbl_af4list *list_entry; 565 struct netlbl_af4list *list_entry;
567 struct netlbl_unlhsh_addr4 *entry; 566 struct netlbl_unlhsh_addr4 *entry;
568 struct audit_buffer *audit_buf; 567 struct audit_buffer *audit_buf;
@@ -574,9 +573,10 @@ static int netlbl_unlhsh_remove_addr4(struct net *net,
574 list_entry = netlbl_af4list_remove(addr->s_addr, mask->s_addr, 573 list_entry = netlbl_af4list_remove(addr->s_addr, mask->s_addr,
575 &iface->addr4_list); 574 &iface->addr4_list);
576 spin_unlock(&netlbl_unlhsh_lock); 575 spin_unlock(&netlbl_unlhsh_lock);
577 if (list_entry == NULL) 576 if (list_entry != NULL)
578 ret_val = -ENOENT; 577 entry = netlbl_unlhsh_addr4_entry(list_entry);
579 entry = netlbl_unlhsh_addr4_entry(list_entry); 578 else
579 entry = NULL;
580 580
581 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL, 581 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL,
582 audit_info); 582 audit_info);
@@ -587,19 +587,21 @@ static int netlbl_unlhsh_remove_addr4(struct net *net,
587 addr->s_addr, mask->s_addr); 587 addr->s_addr, mask->s_addr);
588 if (dev != NULL) 588 if (dev != NULL)
589 dev_put(dev); 589 dev_put(dev);
590 if (entry && security_secid_to_secctx(entry->secid, 590 if (entry != NULL &&
591 &secctx, 591 security_secid_to_secctx(entry->secid,
592 &secctx_len) == 0) { 592 &secctx, &secctx_len) == 0) {
593 audit_log_format(audit_buf, " sec_obj=%s", secctx); 593 audit_log_format(audit_buf, " sec_obj=%s", secctx);
594 security_release_secctx(secctx, secctx_len); 594 security_release_secctx(secctx, secctx_len);
595 } 595 }
596 audit_log_format(audit_buf, " res=%u", ret_val == 0 ? 1 : 0); 596 audit_log_format(audit_buf, " res=%u", entry != NULL ? 1 : 0);
597 audit_log_end(audit_buf); 597 audit_log_end(audit_buf);
598 } 598 }
599 599
600 if (ret_val == 0) 600 if (entry == NULL)
601 call_rcu(&entry->rcu, netlbl_unlhsh_free_addr4); 601 return -ENOENT;
602 return ret_val; 602
603 call_rcu(&entry->rcu, netlbl_unlhsh_free_addr4);
604 return 0;
603} 605}
604 606
605#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) 607#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
@@ -623,7 +625,6 @@ static int netlbl_unlhsh_remove_addr6(struct net *net,
623 const struct in6_addr *mask, 625 const struct in6_addr *mask,
624 struct netlbl_audit *audit_info) 626 struct netlbl_audit *audit_info)
625{ 627{
626 int ret_val = 0;
627 struct netlbl_af6list *list_entry; 628 struct netlbl_af6list *list_entry;
628 struct netlbl_unlhsh_addr6 *entry; 629 struct netlbl_unlhsh_addr6 *entry;
629 struct audit_buffer *audit_buf; 630 struct audit_buffer *audit_buf;
@@ -634,9 +635,10 @@ static int netlbl_unlhsh_remove_addr6(struct net *net,
634 spin_lock(&netlbl_unlhsh_lock); 635 spin_lock(&netlbl_unlhsh_lock);
635 list_entry = netlbl_af6list_remove(addr, mask, &iface->addr6_list); 636 list_entry = netlbl_af6list_remove(addr, mask, &iface->addr6_list);
636 spin_unlock(&netlbl_unlhsh_lock); 637 spin_unlock(&netlbl_unlhsh_lock);
637 if (list_entry == NULL) 638 if (list_entry != NULL)
638 ret_val = -ENOENT; 639 entry = netlbl_unlhsh_addr6_entry(list_entry);
639 entry = netlbl_unlhsh_addr6_entry(list_entry); 640 else
641 entry = NULL;
640 642
641 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL, 643 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL,
642 audit_info); 644 audit_info);
@@ -647,19 +649,21 @@ static int netlbl_unlhsh_remove_addr6(struct net *net,
647 addr, mask); 649 addr, mask);
648 if (dev != NULL) 650 if (dev != NULL)
649 dev_put(dev); 651 dev_put(dev);
650 if (entry && security_secid_to_secctx(entry->secid, 652 if (entry != NULL &&
651 &secctx, 653 security_secid_to_secctx(entry->secid,
652 &secctx_len) == 0) { 654 &secctx, &secctx_len) == 0) {
653 audit_log_format(audit_buf, " sec_obj=%s", secctx); 655 audit_log_format(audit_buf, " sec_obj=%s", secctx);
654 security_release_secctx(secctx, secctx_len); 656 security_release_secctx(secctx, secctx_len);
655 } 657 }
656 audit_log_format(audit_buf, " res=%u", ret_val == 0 ? 1 : 0); 658 audit_log_format(audit_buf, " res=%u", entry != NULL ? 1 : 0);
657 audit_log_end(audit_buf); 659 audit_log_end(audit_buf);
658 } 660 }
659 661
660 if (ret_val == 0) 662 if (entry == NULL)
661 call_rcu(&entry->rcu, netlbl_unlhsh_free_addr6); 663 return -ENOENT;
662 return ret_val; 664
665 call_rcu(&entry->rcu, netlbl_unlhsh_free_addr6);
666 return 0;
663} 667}
664#endif /* IPv6 */ 668#endif /* IPv6 */
665 669
diff --git a/net/phonet/pep-gprs.c b/net/phonet/pep-gprs.c
index 9978afbd9f2a..803eeef0aa85 100644
--- a/net/phonet/pep-gprs.c
+++ b/net/phonet/pep-gprs.c
@@ -155,12 +155,13 @@ static void gprs_data_ready(struct sock *sk, int len)
155static void gprs_write_space(struct sock *sk) 155static void gprs_write_space(struct sock *sk)
156{ 156{
157 struct gprs_dev *dev = sk->sk_user_data; 157 struct gprs_dev *dev = sk->sk_user_data;
158 struct net_device *net = dev->net;
158 unsigned credits = pep_writeable(sk); 159 unsigned credits = pep_writeable(sk);
159 160
160 spin_lock_bh(&dev->tx_lock); 161 spin_lock_bh(&dev->tx_lock);
161 dev->tx_max = credits; 162 dev->tx_max = credits;
162 if (credits > skb_queue_len(&dev->tx_queue)) 163 if (credits > skb_queue_len(&dev->tx_queue) && netif_running(net))
163 netif_wake_queue(dev->net); 164 netif_wake_queue(net);
164 spin_unlock_bh(&dev->tx_lock); 165 spin_unlock_bh(&dev->tx_lock);
165} 166}
166 167
@@ -168,6 +169,23 @@ static void gprs_write_space(struct sock *sk)
168 * Network device callbacks 169 * Network device callbacks
169 */ 170 */
170 171
172static int gprs_open(struct net_device *dev)
173{
174 struct gprs_dev *gp = netdev_priv(dev);
175
176 gprs_write_space(gp->sk);
177 return 0;
178}
179
180static int gprs_close(struct net_device *dev)
181{
182 struct gprs_dev *gp = netdev_priv(dev);
183
184 netif_stop_queue(dev);
185 flush_work(&gp->tx_work);
186 return 0;
187}
188
171static int gprs_xmit(struct sk_buff *skb, struct net_device *net) 189static int gprs_xmit(struct sk_buff *skb, struct net_device *net)
172{ 190{
173 struct gprs_dev *dev = netdev_priv(net); 191 struct gprs_dev *dev = netdev_priv(net);
@@ -254,6 +272,8 @@ static void gprs_setup(struct net_device *net)
254 net->tx_queue_len = 10; 272 net->tx_queue_len = 10;
255 273
256 net->destructor = free_netdev; 274 net->destructor = free_netdev;
275 net->open = gprs_open;
276 net->stop = gprs_close;
257 net->hard_start_xmit = gprs_xmit; /* mandatory */ 277 net->hard_start_xmit = gprs_xmit; /* mandatory */
258 net->change_mtu = gprs_set_mtu; 278 net->change_mtu = gprs_set_mtu;
259 net->get_stats = gprs_get_stats; 279 net->get_stats = gprs_get_stats;
@@ -318,7 +338,6 @@ int gprs_attach(struct sock *sk)
318 dev->sk = sk; 338 dev->sk = sk;
319 339
320 printk(KERN_DEBUG"%s: attached\n", net->name); 340 printk(KERN_DEBUG"%s: attached\n", net->name);
321 gprs_write_space(sk); /* kick off TX */
322 return net->ifindex; 341 return net->ifindex;
323 342
324out_rel: 343out_rel:
@@ -341,7 +360,5 @@ void gprs_detach(struct sock *sk)
341 360
342 printk(KERN_DEBUG"%s: detached\n", net->name); 361 printk(KERN_DEBUG"%s: detached\n", net->name);
343 unregister_netdev(net); 362 unregister_netdev(net);
344 flush_scheduled_work();
345 sock_put(sk); 363 sock_put(sk);
346 skb_queue_purge(&dev->tx_queue);
347} 364}
diff --git a/net/phonet/pn_dev.c b/net/phonet/pn_dev.c
index 53be9fc82aaa..f93ff8ef47d0 100644
--- a/net/phonet/pn_dev.c
+++ b/net/phonet/pn_dev.c
@@ -115,7 +115,7 @@ int phonet_address_del(struct net_device *dev, u8 addr)
115 pnd = __phonet_get(dev); 115 pnd = __phonet_get(dev);
116 if (!pnd || !test_and_clear_bit(addr >> 2, pnd->addrs)) 116 if (!pnd || !test_and_clear_bit(addr >> 2, pnd->addrs))
117 err = -EADDRNOTAVAIL; 117 err = -EADDRNOTAVAIL;
118 if (bitmap_empty(pnd->addrs, 64)) 118 else if (bitmap_empty(pnd->addrs, 64))
119 __phonet_device_free(pnd); 119 __phonet_device_free(pnd);
120 spin_unlock_bh(&pndevs.lock); 120 spin_unlock_bh(&pndevs.lock);
121 return err; 121 return err;
diff --git a/net/phonet/pn_netlink.c b/net/phonet/pn_netlink.c
index b1770d66bc8d..242fe8f8c322 100644
--- a/net/phonet/pn_netlink.c
+++ b/net/phonet/pn_netlink.c
@@ -123,6 +123,7 @@ nla_put_failure:
123 123
124static int getaddr_dumpit(struct sk_buff *skb, struct netlink_callback *cb) 124static int getaddr_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
125{ 125{
126 struct net *net = sock_net(skb->sk);
126 struct phonet_device *pnd; 127 struct phonet_device *pnd;
127 int dev_idx = 0, dev_start_idx = cb->args[0]; 128 int dev_idx = 0, dev_start_idx = cb->args[0];
128 int addr_idx = 0, addr_start_idx = cb->args[1]; 129 int addr_idx = 0, addr_start_idx = cb->args[1];
@@ -131,6 +132,8 @@ static int getaddr_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
131 list_for_each_entry(pnd, &pndevs.list, list) { 132 list_for_each_entry(pnd, &pndevs.list, list) {
132 u8 addr; 133 u8 addr;
133 134
135 if (!net_eq(dev_net(pnd->netdev), net))
136 continue;
134 if (dev_idx > dev_start_idx) 137 if (dev_idx > dev_start_idx)
135 addr_start_idx = 0; 138 addr_start_idx = 0;
136 if (dev_idx++ < dev_start_idx) 139 if (dev_idx++ < dev_start_idx)
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index a7f1ce11bc22..0c1cc7612800 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -1072,6 +1072,10 @@ static int rose_sendmsg(struct kiocb *iocb, struct socket *sock,
1072 unsigned char *asmptr; 1072 unsigned char *asmptr;
1073 int n, size, qbit = 0; 1073 int n, size, qbit = 0;
1074 1074
1075 /* ROSE empty frame has no meaning : don't send */
1076 if (len == 0)
1077 return 0;
1078
1075 if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR|MSG_CMSG_COMPAT)) 1079 if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR|MSG_CMSG_COMPAT))
1076 return -EINVAL; 1080 return -EINVAL;
1077 1081
@@ -1265,6 +1269,12 @@ static int rose_recvmsg(struct kiocb *iocb, struct socket *sock,
1265 skb_reset_transport_header(skb); 1269 skb_reset_transport_header(skb);
1266 copied = skb->len; 1270 copied = skb->len;
1267 1271
1272 /* ROSE empty frame has no meaning : ignore it */
1273 if (copied == 0) {
1274 skb_free_datagram(sk, skb);
1275 return copied;
1276 }
1277
1268 if (copied > size) { 1278 if (copied > size) {
1269 copied = size; 1279 copied = size;
1270 msg->msg_flags |= MSG_TRUNC; 1280 msg->msg_flags |= MSG_TRUNC;
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index a11959908d9a..98402f0efa47 100644
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -46,9 +46,6 @@
46 layering other disciplines. It does not need to do bandwidth 46 layering other disciplines. It does not need to do bandwidth
47 control either since that can be handled by using token 47 control either since that can be handled by using token
48 bucket or other rate control. 48 bucket or other rate control.
49
50 The simulator is limited by the Linux timer resolution
51 and will create packet bursts on the HZ boundary (1ms).
52*/ 49*/
53 50
54struct netem_sched_data { 51struct netem_sched_data {
diff --git a/net/socket.c b/net/socket.c
index 92764d836891..76ba80aeac1a 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -2307,6 +2307,7 @@ int kernel_accept(struct socket *sock, struct socket **newsock, int flags)
2307 } 2307 }
2308 2308
2309 (*newsock)->ops = sock->ops; 2309 (*newsock)->ops = sock->ops;
2310 __module_get((*newsock)->ops->owner);
2310 2311
2311done: 2312done:
2312 return err; 2313 return err;
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 95293f549e9c..a1951dcc5776 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -1183,7 +1183,11 @@ int svc_addsock(struct svc_serv *serv,
1183 else if (so->state > SS_UNCONNECTED) 1183 else if (so->state > SS_UNCONNECTED)
1184 err = -EISCONN; 1184 err = -EISCONN;
1185 else { 1185 else {
1186 svsk = svc_setup_socket(serv, so, &err, SVC_SOCK_DEFAULTS); 1186 if (!try_module_get(THIS_MODULE))
1187 err = -ENOENT;
1188 else
1189 svsk = svc_setup_socket(serv, so, &err,
1190 SVC_SOCK_DEFAULTS);
1187 if (svsk) { 1191 if (svsk) {
1188 struct sockaddr_storage addr; 1192 struct sockaddr_storage addr;
1189 struct sockaddr *sin = (struct sockaddr *)&addr; 1193 struct sockaddr *sin = (struct sockaddr *)&addr;
@@ -1196,7 +1200,8 @@ int svc_addsock(struct svc_serv *serv,
1196 spin_unlock_bh(&serv->sv_lock); 1200 spin_unlock_bh(&serv->sv_lock);
1197 svc_xprt_received(&svsk->sk_xprt); 1201 svc_xprt_received(&svsk->sk_xprt);
1198 err = 0; 1202 err = 0;
1199 } 1203 } else
1204 module_put(THIS_MODULE);
1200 } 1205 }
1201 if (err) { 1206 if (err) {
1202 sockfd_put(so); 1207 sockfd_put(so);
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index eb90f77bb0e2..66d5ac4773ab 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -1343,6 +1343,7 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock,
1343 1343
1344 if (NULL == siocb->scm) 1344 if (NULL == siocb->scm)
1345 siocb->scm = &tmp_scm; 1345 siocb->scm = &tmp_scm;
1346 wait_for_unix_gc();
1346 err = scm_send(sock, msg, siocb->scm); 1347 err = scm_send(sock, msg, siocb->scm);
1347 if (err < 0) 1348 if (err < 0)
1348 return err; 1349 return err;
@@ -1493,6 +1494,7 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
1493 1494
1494 if (NULL == siocb->scm) 1495 if (NULL == siocb->scm)
1495 siocb->scm = &tmp_scm; 1496 siocb->scm = &tmp_scm;
1497 wait_for_unix_gc();
1496 err = scm_send(sock, msg, siocb->scm); 1498 err = scm_send(sock, msg, siocb->scm);
1497 if (err < 0) 1499 if (err < 0)
1498 return err; 1500 return err;
diff --git a/net/unix/garbage.c b/net/unix/garbage.c
index 6d4a9a8de5ef..abb3ab34cb1e 100644
--- a/net/unix/garbage.c
+++ b/net/unix/garbage.c
@@ -80,6 +80,7 @@
80#include <linux/file.h> 80#include <linux/file.h>
81#include <linux/proc_fs.h> 81#include <linux/proc_fs.h>
82#include <linux/mutex.h> 82#include <linux/mutex.h>
83#include <linux/wait.h>
83 84
84#include <net/sock.h> 85#include <net/sock.h>
85#include <net/af_unix.h> 86#include <net/af_unix.h>
@@ -91,6 +92,7 @@
91static LIST_HEAD(gc_inflight_list); 92static LIST_HEAD(gc_inflight_list);
92static LIST_HEAD(gc_candidates); 93static LIST_HEAD(gc_candidates);
93static DEFINE_SPINLOCK(unix_gc_lock); 94static DEFINE_SPINLOCK(unix_gc_lock);
95static DECLARE_WAIT_QUEUE_HEAD(unix_gc_wait);
94 96
95unsigned int unix_tot_inflight; 97unsigned int unix_tot_inflight;
96 98
@@ -266,12 +268,16 @@ static void inc_inflight_move_tail(struct unix_sock *u)
266 list_move_tail(&u->link, &gc_candidates); 268 list_move_tail(&u->link, &gc_candidates);
267} 269}
268 270
269/* The external entry point: unix_gc() */ 271static bool gc_in_progress = false;
270 272
271void unix_gc(void) 273void wait_for_unix_gc(void)
272{ 274{
273 static bool gc_in_progress = false; 275 wait_event(unix_gc_wait, gc_in_progress == false);
276}
274 277
278/* The external entry point: unix_gc() */
279void unix_gc(void)
280{
275 struct unix_sock *u; 281 struct unix_sock *u;
276 struct unix_sock *next; 282 struct unix_sock *next;
277 struct sk_buff_head hitlist; 283 struct sk_buff_head hitlist;
@@ -376,6 +382,7 @@ void unix_gc(void)
376 /* All candidates should have been detached by now. */ 382 /* All candidates should have been detached by now. */
377 BUG_ON(!list_empty(&gc_candidates)); 383 BUG_ON(!list_empty(&gc_candidates));
378 gc_in_progress = false; 384 gc_in_progress = false;
385 wake_up(&unix_gc_wait);
379 386
380 out: 387 out:
381 spin_unlock(&unix_gc_lock); 388 spin_unlock(&unix_gc_lock);
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 626dbb688499..eb3b1a9f9b12 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -343,9 +343,9 @@ static int ignore_request(struct wiphy *wiphy, enum reg_set_by set_by,
343 return 0; 343 return 0;
344 return -EALREADY; 344 return -EALREADY;
345 } 345 }
346 if (WARN_ON(!is_alpha2_set(alpha2) || !is_an_alpha2(alpha2)), 346 if (WARN(!is_alpha2_set(alpha2) || !is_an_alpha2(alpha2),
347 "Invalid Country IE regulatory hint passed " 347 "Invalid Country IE regulatory hint passed "
348 "to the wireless core\n") 348 "to the wireless core\n"))
349 return -EINVAL; 349 return -EINVAL;
350 /* We ignore Country IE hints for now, as we haven't yet 350 /* We ignore Country IE hints for now, as we haven't yet
351 * added the dot11MultiDomainCapabilityEnabled flag 351 * added the dot11MultiDomainCapabilityEnabled flag
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 058f04f54b90..fb216c9adf86 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -817,6 +817,7 @@ int xfrm_policy_flush(u8 type, struct xfrm_audit *audit_info)
817 continue; 817 continue;
818 hlist_del(&pol->bydst); 818 hlist_del(&pol->bydst);
819 hlist_del(&pol->byidx); 819 hlist_del(&pol->byidx);
820 list_del(&pol->walk.all);
820 write_unlock_bh(&xfrm_policy_lock); 821 write_unlock_bh(&xfrm_policy_lock);
821 822
822 xfrm_audit_policy_delete(pol, 1, audit_info->loginuid, 823 xfrm_audit_policy_delete(pol, 1, audit_info->loginuid,
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index a53e2fc8dfb5..d27aad78e1d8 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -378,6 +378,10 @@ sub dump_section {
378# print STDERR "parameter def '$1' = '$contents'\n"; 378# print STDERR "parameter def '$1' = '$contents'\n";
379 $name = $1; 379 $name = $1;
380 $parameterdescs{$name} = $contents; 380 $parameterdescs{$name} = $contents;
381 } elsif ($name eq "@\.\.\.") {
382# print STDERR "parameter def '...' = '$contents'\n";
383 $name = "...";
384 $parameterdescs{$name} = $contents;
381 } else { 385 } else {
382# print STDERR "other section '$name' = '$contents'\n"; 386# print STDERR "other section '$name' = '$contents'\n";
383 if (defined($sections{$name}) && ($sections{$name} ne "")) { 387 if (defined($sections{$name}) && ($sections{$name} ne "")) {
@@ -1588,12 +1592,12 @@ sub push_parameter($$$) {
1588 1592
1589 if ($type eq "" && $param =~ /\.\.\.$/) 1593 if ($type eq "" && $param =~ /\.\.\.$/)
1590 { 1594 {
1591 $type=""; 1595 if (!defined $parameterdescs{$param} || $parameterdescs{$param} eq "") {
1592 $parameterdescs{$param} = "variable arguments"; 1596 $parameterdescs{$param} = "variable arguments";
1597 }
1593 } 1598 }
1594 elsif ($type eq "" && ($param eq "" or $param eq "void")) 1599 elsif ($type eq "" && ($param eq "" or $param eq "void"))
1595 { 1600 {
1596 $type="";
1597 $param="void"; 1601 $param="void";
1598 $parameterdescs{void} = "no arguments"; 1602 $parameterdescs{void} = "no arguments";
1599 } 1603 }
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index ba1ab737b55f..eb9164176dab 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1436,12 +1436,12 @@ static void set_dig_out(struct hda_codec *codec, hda_nid_t nid,
1436{ 1436{
1437 hda_nid_t *d; 1437 hda_nid_t *d;
1438 1438
1439 snd_hda_codec_write(codec, nid, 0, verb, val); 1439 snd_hda_codec_write_cache(codec, nid, 0, verb, val);
1440 d = codec->slave_dig_outs; 1440 d = codec->slave_dig_outs;
1441 if (!d) 1441 if (!d)
1442 return; 1442 return;
1443 for (; *d; d++) 1443 for (; *d; d++)
1444 snd_hda_codec_write(codec, *d, 0, verb, val); 1444 snd_hda_codec_write_cache(codec, *d, 0, verb, val);
1445} 1445}
1446 1446
1447static inline void set_dig_out_convert(struct hda_codec *codec, hda_nid_t nid, 1447static inline void set_dig_out_convert(struct hda_codec *codec, hda_nid_t nid,
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 9563b5bbb272..b77f330d2650 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -69,8 +69,11 @@ enum {
69}; 69};
70 70
71enum { 71enum {
72 STAC_92HD73XX_NO_JD, /* no jack-detection */
72 STAC_92HD73XX_REF, 73 STAC_92HD73XX_REF,
73 STAC_DELL_M6, 74 STAC_DELL_M6_AMIC,
75 STAC_DELL_M6_DMIC,
76 STAC_DELL_M6_BOTH,
74 STAC_DELL_EQ, 77 STAC_DELL_EQ,
75 STAC_92HD73XX_MODELS 78 STAC_92HD73XX_MODELS
76}; 79};
@@ -84,6 +87,7 @@ enum {
84 STAC_92HD71BXX_REF, 87 STAC_92HD71BXX_REF,
85 STAC_DELL_M4_1, 88 STAC_DELL_M4_1,
86 STAC_DELL_M4_2, 89 STAC_DELL_M4_2,
90 STAC_DELL_M4_3,
87 STAC_HP_M4, 91 STAC_HP_M4,
88 STAC_92HD71BXX_MODELS 92 STAC_92HD71BXX_MODELS
89}; 93};
@@ -124,6 +128,7 @@ enum {
124}; 128};
125 129
126enum { 130enum {
131 STAC_D965_REF_NO_JD, /* no jack-detection */
127 STAC_D965_REF, 132 STAC_D965_REF,
128 STAC_D965_3ST, 133 STAC_D965_3ST,
129 STAC_D965_5ST, 134 STAC_D965_5ST,
@@ -137,6 +142,7 @@ struct sigmatel_spec {
137 unsigned int num_mixers; 142 unsigned int num_mixers;
138 143
139 int board_config; 144 int board_config;
145 unsigned int eapd_switch: 1;
140 unsigned int surr_switch: 1; 146 unsigned int surr_switch: 1;
141 unsigned int line_switch: 1; 147 unsigned int line_switch: 1;
142 unsigned int mic_switch: 1; 148 unsigned int mic_switch: 1;
@@ -853,6 +859,7 @@ static struct hda_verb stac92hd83xxx_core_init[] = {
853 859
854 /* power state controls amps */ 860 /* power state controls amps */
855 { 0x01, AC_VERB_SET_EAPD, 1 << 2}, 861 { 0x01, AC_VERB_SET_EAPD, 1 << 2},
862 {}
856}; 863};
857 864
858static struct hda_verb stac92hd71bxx_core_init[] = { 865static struct hda_verb stac92hd71bxx_core_init[] = {
@@ -864,6 +871,7 @@ static struct hda_verb stac92hd71bxx_core_init[] = {
864 { 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, 871 { 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
865 { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, 872 { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
866 { 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, 873 { 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
874 {}
867}; 875};
868 876
869#define HD_DISABLE_PORTF 2 877#define HD_DISABLE_PORTF 2
@@ -1600,13 +1608,18 @@ static unsigned int dell_m6_pin_configs[13] = {
1600 1608
1601static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { 1609static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
1602 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, 1610 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
1603 [STAC_DELL_M6] = dell_m6_pin_configs, 1611 [STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
1612 [STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
1613 [STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
1604 [STAC_DELL_EQ] = dell_m6_pin_configs, 1614 [STAC_DELL_EQ] = dell_m6_pin_configs,
1605}; 1615};
1606 1616
1607static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { 1617static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
1618 [STAC_92HD73XX_NO_JD] = "no-jd",
1608 [STAC_92HD73XX_REF] = "ref", 1619 [STAC_92HD73XX_REF] = "ref",
1609 [STAC_DELL_M6] = "dell-m6", 1620 [STAC_DELL_M6_AMIC] = "dell-m6-amic",
1621 [STAC_DELL_M6_DMIC] = "dell-m6-dmic",
1622 [STAC_DELL_M6_BOTH] = "dell-m6",
1610 [STAC_DELL_EQ] = "dell-eq", 1623 [STAC_DELL_EQ] = "dell-eq",
1611}; 1624};
1612 1625
@@ -1615,19 +1628,25 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
1615 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, 1628 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
1616 "DFI LanParty", STAC_92HD73XX_REF), 1629 "DFI LanParty", STAC_92HD73XX_REF),
1617 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254, 1630 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254,
1618 "unknown Dell", STAC_DELL_M6), 1631 "Dell Studio 1535", STAC_DELL_M6_DMIC),
1619 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255, 1632 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255,
1620 "unknown Dell", STAC_DELL_M6), 1633 "unknown Dell", STAC_DELL_M6_DMIC),
1621 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256, 1634 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256,
1622 "unknown Dell", STAC_DELL_M6), 1635 "unknown Dell", STAC_DELL_M6_BOTH),
1623 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257, 1636 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257,
1624 "unknown Dell", STAC_DELL_M6), 1637 "unknown Dell", STAC_DELL_M6_BOTH),
1625 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e, 1638 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e,
1626 "unknown Dell", STAC_DELL_M6), 1639 "unknown Dell", STAC_DELL_M6_AMIC),
1627 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f, 1640 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f,
1628 "unknown Dell", STAC_DELL_M6), 1641 "unknown Dell", STAC_DELL_M6_AMIC),
1629 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271, 1642 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271,
1630 "unknown Dell", STAC_DELL_M6), 1643 "unknown Dell", STAC_DELL_M6_DMIC),
1644 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0272,
1645 "unknown Dell", STAC_DELL_M6_DMIC),
1646 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
1647 "Dell Studio 1537", STAC_DELL_M6_DMIC),
1648 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a0,
1649 "Dell Studio 17", STAC_DELL_M6_DMIC),
1631 {} /* terminator */ 1650 {} /* terminator */
1632}; 1651};
1633 1652
@@ -1650,6 +1669,7 @@ static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {
1650 /* SigmaTel reference board */ 1669 /* SigmaTel reference board */
1651 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, 1670 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
1652 "DFI LanParty", STAC_92HD71BXX_REF), 1671 "DFI LanParty", STAC_92HD71BXX_REF),
1672 {} /* terminator */
1653}; 1673};
1654 1674
1655static unsigned int ref92hd71bxx_pin_configs[11] = { 1675static unsigned int ref92hd71bxx_pin_configs[11] = {
@@ -1670,10 +1690,17 @@ static unsigned int dell_m4_2_pin_configs[11] = {
1670 0x40f000f0, 0x044413b0, 0x044413b0, 1690 0x40f000f0, 0x044413b0, 0x044413b0,
1671}; 1691};
1672 1692
1693static unsigned int dell_m4_3_pin_configs[11] = {
1694 0x0421101f, 0x04a11221, 0x90a70330, 0x90170110,
1695 0x40f000f0, 0x40f000f0, 0x40f000f0, 0x90a000f0,
1696 0x40f000f0, 0x044413b0, 0x044413b0,
1697};
1698
1673static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = { 1699static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = {
1674 [STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs, 1700 [STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs,
1675 [STAC_DELL_M4_1] = dell_m4_1_pin_configs, 1701 [STAC_DELL_M4_1] = dell_m4_1_pin_configs,
1676 [STAC_DELL_M4_2] = dell_m4_2_pin_configs, 1702 [STAC_DELL_M4_2] = dell_m4_2_pin_configs,
1703 [STAC_DELL_M4_3] = dell_m4_3_pin_configs,
1677 [STAC_HP_M4] = NULL, 1704 [STAC_HP_M4] = NULL,
1678}; 1705};
1679 1706
@@ -1681,6 +1708,7 @@ static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = {
1681 [STAC_92HD71BXX_REF] = "ref", 1708 [STAC_92HD71BXX_REF] = "ref",
1682 [STAC_DELL_M4_1] = "dell-m4-1", 1709 [STAC_DELL_M4_1] = "dell-m4-1",
1683 [STAC_DELL_M4_2] = "dell-m4-2", 1710 [STAC_DELL_M4_2] = "dell-m4-2",
1711 [STAC_DELL_M4_3] = "dell-m4-3",
1684 [STAC_HP_M4] = "hp-m4", 1712 [STAC_HP_M4] = "hp-m4",
1685}; 1713};
1686 1714
@@ -1716,6 +1744,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
1716 "unknown Dell", STAC_DELL_M4_2), 1744 "unknown Dell", STAC_DELL_M4_2),
1717 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0264, 1745 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0264,
1718 "unknown Dell", STAC_DELL_M4_2), 1746 "unknown Dell", STAC_DELL_M4_2),
1747 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02aa,
1748 "unknown Dell", STAC_DELL_M4_3),
1719 {} /* terminator */ 1749 {} /* terminator */
1720}; 1750};
1721 1751
@@ -2005,6 +2035,7 @@ static unsigned int dell_3st_pin_configs[14] = {
2005}; 2035};
2006 2036
2007static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = { 2037static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
2038 [STAC_D965_REF_NO_JD] = ref927x_pin_configs,
2008 [STAC_D965_REF] = ref927x_pin_configs, 2039 [STAC_D965_REF] = ref927x_pin_configs,
2009 [STAC_D965_3ST] = d965_3st_pin_configs, 2040 [STAC_D965_3ST] = d965_3st_pin_configs,
2010 [STAC_D965_5ST] = d965_5st_pin_configs, 2041 [STAC_D965_5ST] = d965_5st_pin_configs,
@@ -2013,6 +2044,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = {
2013}; 2044};
2014 2045
2015static const char *stac927x_models[STAC_927X_MODELS] = { 2046static const char *stac927x_models[STAC_927X_MODELS] = {
2047 [STAC_D965_REF_NO_JD] = "ref-no-jd",
2016 [STAC_D965_REF] = "ref", 2048 [STAC_D965_REF] = "ref",
2017 [STAC_D965_3ST] = "3stack", 2049 [STAC_D965_3ST] = "3stack",
2018 [STAC_D965_5ST] = "5stack", 2050 [STAC_D965_5ST] = "5stack",
@@ -2874,10 +2906,10 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
2874 } 2906 }
2875 2907
2876 if ((spec->multiout.num_dacs - cfg->line_outs) > 0 && 2908 if ((spec->multiout.num_dacs - cfg->line_outs) > 0 &&
2877 cfg->hp_outs && !spec->multiout.hp_nid) 2909 cfg->hp_outs == 1 && !spec->multiout.hp_nid)
2878 spec->multiout.hp_nid = nid; 2910 spec->multiout.hp_nid = nid;
2879 2911
2880 if (cfg->hp_outs > 1) { 2912 if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) {
2881 err = stac92xx_add_control(spec, 2913 err = stac92xx_add_control(spec,
2882 STAC_CTL_WIDGET_HP_SWITCH, 2914 STAC_CTL_WIDGET_HP_SWITCH,
2883 "Headphone as Line Out Switch", 2915 "Headphone as Line Out Switch",
@@ -3683,10 +3715,14 @@ static void stac92xx_power_down(struct hda_codec *codec)
3683 AC_VERB_SET_POWER_STATE, AC_PWRST_D3); 3715 AC_VERB_SET_POWER_STATE, AC_PWRST_D3);
3684} 3716}
3685 3717
3718static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid,
3719 int enable);
3720
3686static int stac92xx_init(struct hda_codec *codec) 3721static int stac92xx_init(struct hda_codec *codec)
3687{ 3722{
3688 struct sigmatel_spec *spec = codec->spec; 3723 struct sigmatel_spec *spec = codec->spec;
3689 struct auto_pin_cfg *cfg = &spec->autocfg; 3724 struct auto_pin_cfg *cfg = &spec->autocfg;
3725 unsigned int gpio;
3690 int i; 3726 int i;
3691 3727
3692 snd_hda_sequence_write(codec, spec->init); 3728 snd_hda_sequence_write(codec, spec->init);
@@ -3697,6 +3733,16 @@ static int stac92xx_init(struct hda_codec *codec)
3697 snd_hda_codec_write_cache(codec, 3733 snd_hda_codec_write_cache(codec,
3698 spec->adc_nids[i], 0, 3734 spec->adc_nids[i], 0,
3699 AC_VERB_SET_POWER_STATE, AC_PWRST_D3); 3735 AC_VERB_SET_POWER_STATE, AC_PWRST_D3);
3736
3737 /* set up GPIO */
3738 gpio = spec->gpio_data;
3739 /* turn on EAPD statically when spec->eapd_switch isn't set.
3740 * otherwise, unsol event will turn it on/off dynamically
3741 */
3742 if (!spec->eapd_switch)
3743 gpio |= spec->eapd_mask;
3744 stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir, gpio);
3745
3700 /* set up pins */ 3746 /* set up pins */
3701 if (spec->hp_detect) { 3747 if (spec->hp_detect) {
3702 /* Enable unsolicited responses on the HP widget */ 3748 /* Enable unsolicited responses on the HP widget */
@@ -3736,39 +3782,43 @@ static int stac92xx_init(struct hda_codec *codec)
3736 for (i = 0; i < spec->num_dmics; i++) 3782 for (i = 0; i < spec->num_dmics; i++)
3737 stac92xx_auto_set_pinctl(codec, spec->dmic_nids[i], 3783 stac92xx_auto_set_pinctl(codec, spec->dmic_nids[i],
3738 AC_PINCTL_IN_EN); 3784 AC_PINCTL_IN_EN);
3785 if (cfg->dig_out_pin)
3786 stac92xx_auto_set_pinctl(codec, cfg->dig_out_pin,
3787 AC_PINCTL_OUT_EN);
3788 if (cfg->dig_in_pin)
3789 stac92xx_auto_set_pinctl(codec, cfg->dig_in_pin,
3790 AC_PINCTL_IN_EN);
3739 for (i = 0; i < spec->num_pwrs; i++) { 3791 for (i = 0; i < spec->num_pwrs; i++) {
3740 int event = is_nid_hp_pin(cfg, spec->pwr_nids[i]) 3792 hda_nid_t nid = spec->pwr_nids[i];
3741 ? STAC_HP_EVENT : STAC_PWR_EVENT; 3793 int pinctl, def_conf;
3742 int pinctl = snd_hda_codec_read(codec, spec->pwr_nids[i], 3794 int event = STAC_PWR_EVENT;
3743 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); 3795
3744 int def_conf = snd_hda_codec_read(codec, spec->pwr_nids[i], 3796 if (is_nid_hp_pin(cfg, nid) && spec->hp_detect)
3745 0, AC_VERB_GET_CONFIG_DEFAULT, 0); 3797 continue; /* already has an unsol event */
3746 def_conf = get_defcfg_connect(def_conf); 3798
3799 pinctl = snd_hda_codec_read(codec, nid, 0,
3800 AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
3747 /* outputs are only ports capable of power management 3801 /* outputs are only ports capable of power management
3748 * any attempts on powering down a input port cause the 3802 * any attempts on powering down a input port cause the
3749 * referenced VREF to act quirky. 3803 * referenced VREF to act quirky.
3750 */ 3804 */
3751 if (pinctl & AC_PINCTL_IN_EN) 3805 if (pinctl & AC_PINCTL_IN_EN)
3752 continue; 3806 continue;
3807 def_conf = snd_hda_codec_read(codec, nid, 0,
3808 AC_VERB_GET_CONFIG_DEFAULT, 0);
3809 def_conf = get_defcfg_connect(def_conf);
3753 /* skip any ports that don't have jacks since presence 3810 /* skip any ports that don't have jacks since presence
3754 * detection is useless */ 3811 * detection is useless */
3755 if (def_conf && def_conf != AC_JACK_PORT_FIXED) 3812 if (def_conf != AC_JACK_PORT_COMPLEX) {
3813 if (def_conf != AC_JACK_PORT_NONE)
3814 stac_toggle_power_map(codec, nid, 1);
3756 continue; 3815 continue;
3816 }
3757 enable_pin_detect(codec, spec->pwr_nids[i], event | i); 3817 enable_pin_detect(codec, spec->pwr_nids[i], event | i);
3758 codec->patch_ops.unsol_event(codec, (event | i) << 26); 3818 codec->patch_ops.unsol_event(codec, (event | i) << 26);
3759 } 3819 }
3760 if (spec->dac_list) 3820 if (spec->dac_list)
3761 stac92xx_power_down(codec); 3821 stac92xx_power_down(codec);
3762 if (cfg->dig_out_pin)
3763 stac92xx_auto_set_pinctl(codec, cfg->dig_out_pin,
3764 AC_PINCTL_OUT_EN);
3765 if (cfg->dig_in_pin)
3766 stac92xx_auto_set_pinctl(codec, cfg->dig_in_pin,
3767 AC_PINCTL_IN_EN);
3768
3769 stac_gpio_set(codec, spec->gpio_mask,
3770 spec->gpio_dir, spec->gpio_data);
3771
3772 return 0; 3822 return 0;
3773} 3823}
3774 3824
@@ -3901,7 +3951,7 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res)
3901 for (i = 0; i < cfg->speaker_outs; i++) 3951 for (i = 0; i < cfg->speaker_outs; i++)
3902 stac92xx_reset_pinctl(codec, cfg->speaker_pins[i], 3952 stac92xx_reset_pinctl(codec, cfg->speaker_pins[i],
3903 AC_PINCTL_OUT_EN); 3953 AC_PINCTL_OUT_EN);
3904 if (spec->eapd_mask) 3954 if (spec->eapd_mask && spec->eapd_switch)
3905 stac_gpio_set(codec, spec->gpio_mask, 3955 stac_gpio_set(codec, spec->gpio_mask,
3906 spec->gpio_dir, spec->gpio_data & 3956 spec->gpio_dir, spec->gpio_data &
3907 ~spec->eapd_mask); 3957 ~spec->eapd_mask);
@@ -3916,7 +3966,7 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res)
3916 for (i = 0; i < cfg->speaker_outs; i++) 3966 for (i = 0; i < cfg->speaker_outs; i++)
3917 stac92xx_set_pinctl(codec, cfg->speaker_pins[i], 3967 stac92xx_set_pinctl(codec, cfg->speaker_pins[i],
3918 AC_PINCTL_OUT_EN); 3968 AC_PINCTL_OUT_EN);
3919 if (spec->eapd_mask) 3969 if (spec->eapd_mask && spec->eapd_switch)
3920 stac_gpio_set(codec, spec->gpio_mask, 3970 stac_gpio_set(codec, spec->gpio_mask,
3921 spec->gpio_dir, spec->gpio_data | 3971 spec->gpio_dir, spec->gpio_data |
3922 spec->eapd_mask); 3972 spec->eapd_mask);
@@ -3933,14 +3983,18 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res)
3933 } 3983 }
3934} 3984}
3935 3985
3936static void stac92xx_pin_sense(struct hda_codec *codec, int idx) 3986static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid,
3987 int enable)
3937{ 3988{
3938 struct sigmatel_spec *spec = codec->spec; 3989 struct sigmatel_spec *spec = codec->spec;
3939 hda_nid_t nid = spec->pwr_nids[idx]; 3990 unsigned int idx, val;
3940 int presence, val; 3991
3941 val = snd_hda_codec_read(codec, codec->afg, 0, 0x0fec, 0x0) 3992 for (idx = 0; idx < spec->num_pwrs; idx++) {
3942 & 0x000000ff; 3993 if (spec->pwr_nids[idx] == nid)
3943 presence = get_hp_pin_presence(codec, nid); 3994 break;
3995 }
3996 if (idx >= spec->num_pwrs)
3997 return;
3944 3998
3945 /* several codecs have two power down bits */ 3999 /* several codecs have two power down bits */
3946 if (spec->pwr_mapping) 4000 if (spec->pwr_mapping)
@@ -3948,14 +4002,20 @@ static void stac92xx_pin_sense(struct hda_codec *codec, int idx)
3948 else 4002 else
3949 idx = 1 << idx; 4003 idx = 1 << idx;
3950 4004
3951 if (presence) 4005 val = snd_hda_codec_read(codec, codec->afg, 0, 0x0fec, 0x0) & 0xff;
4006 if (enable)
3952 val &= ~idx; 4007 val &= ~idx;
3953 else 4008 else
3954 val |= idx; 4009 val |= idx;
3955 4010
3956 /* power down unused output ports */ 4011 /* power down unused output ports */
3957 snd_hda_codec_write(codec, codec->afg, 0, 0x7ec, val); 4012 snd_hda_codec_write(codec, codec->afg, 0, 0x7ec, val);
3958}; 4013}
4014
4015static void stac92xx_pin_sense(struct hda_codec *codec, hda_nid_t nid)
4016{
4017 stac_toggle_power_map(codec, nid, get_hp_pin_presence(codec, nid));
4018}
3959 4019
3960static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) 4020static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res)
3961{ 4021{
@@ -4204,14 +4264,17 @@ again:
4204 4264
4205 switch (spec->multiout.num_dacs) { 4265 switch (spec->multiout.num_dacs) {
4206 case 0x3: /* 6 Channel */ 4266 case 0x3: /* 6 Channel */
4267 spec->multiout.hp_nid = 0x17;
4207 spec->mixer = stac92hd73xx_6ch_mixer; 4268 spec->mixer = stac92hd73xx_6ch_mixer;
4208 spec->init = stac92hd73xx_6ch_core_init; 4269 spec->init = stac92hd73xx_6ch_core_init;
4209 break; 4270 break;
4210 case 0x4: /* 8 Channel */ 4271 case 0x4: /* 8 Channel */
4272 spec->multiout.hp_nid = 0x18;
4211 spec->mixer = stac92hd73xx_8ch_mixer; 4273 spec->mixer = stac92hd73xx_8ch_mixer;
4212 spec->init = stac92hd73xx_8ch_core_init; 4274 spec->init = stac92hd73xx_8ch_core_init;
4213 break; 4275 break;
4214 case 0x5: /* 10 Channel */ 4276 case 0x5: /* 10 Channel */
4277 spec->multiout.hp_nid = 0x19;
4215 spec->mixer = stac92hd73xx_10ch_mixer; 4278 spec->mixer = stac92hd73xx_10ch_mixer;
4216 spec->init = stac92hd73xx_10ch_core_init; 4279 spec->init = stac92hd73xx_10ch_core_init;
4217 }; 4280 };
@@ -4239,31 +4302,30 @@ again:
4239 case STAC_DELL_EQ: 4302 case STAC_DELL_EQ:
4240 spec->init = dell_eq_core_init; 4303 spec->init = dell_eq_core_init;
4241 /* fallthru */ 4304 /* fallthru */
4242 case STAC_DELL_M6: 4305 case STAC_DELL_M6_AMIC:
4306 case STAC_DELL_M6_DMIC:
4307 case STAC_DELL_M6_BOTH:
4243 spec->num_smuxes = 0; 4308 spec->num_smuxes = 0;
4244 spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; 4309 spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER];
4245 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; 4310 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
4311 spec->eapd_switch = 0;
4246 spec->num_amps = 1; 4312 spec->num_amps = 1;
4313 spec->multiout.hp_nid = 0; /* dual HPs */
4247 4314
4248 if (!spec->init) 4315 if (!spec->init)
4249 spec->init = dell_m6_core_init; 4316 spec->init = dell_m6_core_init;
4250 switch (codec->subsystem_id) { 4317 switch (spec->board_config) {
4251 case 0x1028025e: /* Analog Mics */ 4318 case STAC_DELL_M6_AMIC: /* Analog Mics */
4252 case 0x1028025f:
4253 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); 4319 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
4254 spec->num_dmics = 0; 4320 spec->num_dmics = 0;
4255 spec->private_dimux.num_items = 1; 4321 spec->private_dimux.num_items = 1;
4256 break; 4322 break;
4257 case 0x10280271: /* Digital Mics */ 4323 case STAC_DELL_M6_DMIC: /* Digital Mics */
4258 case 0x10280272:
4259 case 0x10280254:
4260 case 0x10280255:
4261 stac92xx_set_config_reg(codec, 0x13, 0x90A60160); 4324 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
4262 spec->num_dmics = 1; 4325 spec->num_dmics = 1;
4263 spec->private_dimux.num_items = 2; 4326 spec->private_dimux.num_items = 2;
4264 break; 4327 break;
4265 case 0x10280256: /* Both */ 4328 case STAC_DELL_M6_BOTH: /* Both */
4266 case 0x10280057:
4267 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); 4329 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
4268 stac92xx_set_config_reg(codec, 0x13, 0x90A60160); 4330 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
4269 spec->num_dmics = 1; 4331 spec->num_dmics = 1;
@@ -4274,6 +4336,7 @@ again:
4274 default: 4336 default:
4275 spec->num_dmics = STAC92HD73XX_NUM_DMICS; 4337 spec->num_dmics = STAC92HD73XX_NUM_DMICS;
4276 spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids); 4338 spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
4339 spec->eapd_switch = 1;
4277 } 4340 }
4278 if (spec->board_config > STAC_92HD73XX_REF) { 4341 if (spec->board_config > STAC_92HD73XX_REF) {
4279 /* GPIO0 High = Enable EAPD */ 4342 /* GPIO0 High = Enable EAPD */
@@ -4302,6 +4365,9 @@ again:
4302 return err; 4365 return err;
4303 } 4366 }
4304 4367
4368 if (spec->board_config == STAC_92HD73XX_NO_JD)
4369 spec->hp_detect = 0;
4370
4305 codec->patch_ops = stac92xx_patch_ops; 4371 codec->patch_ops = stac92xx_patch_ops;
4306 4372
4307 return 0; 4373 return 0;
@@ -4419,7 +4485,13 @@ static int stac92hd71xx_resume(struct hda_codec *codec)
4419 4485
4420static int stac92hd71xx_suspend(struct hda_codec *codec, pm_message_t state) 4486static int stac92hd71xx_suspend(struct hda_codec *codec, pm_message_t state)
4421{ 4487{
4488 struct sigmatel_spec *spec = codec->spec;
4489
4422 stac92hd71xx_set_power_state(codec, AC_PWRST_D3); 4490 stac92hd71xx_set_power_state(codec, AC_PWRST_D3);
4491 if (spec->eapd_mask)
4492 stac_gpio_set(codec, spec->gpio_mask,
4493 spec->gpio_dir, spec->gpio_data &
4494 ~spec->eapd_mask);
4423 return 0; 4495 return 0;
4424}; 4496};
4425 4497
@@ -4562,14 +4634,21 @@ again:
4562 4634
4563 switch (spec->board_config) { 4635 switch (spec->board_config) {
4564 case STAC_HP_M4: 4636 case STAC_HP_M4:
4565 spec->num_dmics = 0;
4566 spec->num_smuxes = 0;
4567 spec->num_dmuxes = 0;
4568
4569 /* enable internal microphone */ 4637 /* enable internal microphone */
4570 stac92xx_set_config_reg(codec, 0x0e, 0x01813040); 4638 stac92xx_set_config_reg(codec, 0x0e, 0x01813040);
4571 stac92xx_auto_set_pinctl(codec, 0x0e, 4639 stac92xx_auto_set_pinctl(codec, 0x0e,
4572 AC_PINCTL_IN_EN | AC_PINCTL_VREF_80); 4640 AC_PINCTL_IN_EN | AC_PINCTL_VREF_80);
4641 /* fallthru */
4642 case STAC_DELL_M4_2:
4643 spec->num_dmics = 0;
4644 spec->num_smuxes = 0;
4645 spec->num_dmuxes = 0;
4646 break;
4647 case STAC_DELL_M4_1:
4648 case STAC_DELL_M4_3:
4649 spec->num_dmics = 1;
4650 spec->num_smuxes = 0;
4651 spec->num_dmuxes = 0;
4573 break; 4652 break;
4574 default: 4653 default:
4575 spec->num_dmics = STAC92HD71BXX_NUM_DMICS; 4654 spec->num_dmics = STAC92HD71BXX_NUM_DMICS;
@@ -4806,6 +4885,7 @@ static int patch_stac927x(struct hda_codec *codec)
4806 spec->num_pwrs = 0; 4885 spec->num_pwrs = 0;
4807 spec->aloopback_mask = 0x40; 4886 spec->aloopback_mask = 0x40;
4808 spec->aloopback_shift = 0; 4887 spec->aloopback_shift = 0;
4888 spec->eapd_switch = 1;
4809 4889
4810 err = stac92xx_parse_auto_config(codec, 0x1e, 0x20); 4890 err = stac92xx_parse_auto_config(codec, 0x1e, 0x20);
4811 if (!err) { 4891 if (!err) {
@@ -4836,6 +4916,10 @@ static int patch_stac927x(struct hda_codec *codec)
4836 */ 4916 */
4837 codec->bus->needs_damn_long_delay = 1; 4917 codec->bus->needs_damn_long_delay = 1;
4838 4918
4919 /* no jack detecion for ref-no-jd model */
4920 if (spec->board_config == STAC_D965_REF_NO_JD)
4921 spec->hp_detect = 0;
4922
4839 return 0; 4923 return 0;
4840} 4924}
4841 4925
@@ -4886,6 +4970,7 @@ static int patch_stac9205(struct hda_codec *codec)
4886 4970
4887 spec->aloopback_mask = 0x40; 4971 spec->aloopback_mask = 0x40;
4888 spec->aloopback_shift = 0; 4972 spec->aloopback_shift = 0;
4973 spec->eapd_switch = 1;
4889 spec->multiout.dac_nids = spec->dac_nids; 4974 spec->multiout.dac_nids = spec->dac_nids;
4890 4975
4891 switch (spec->board_config){ 4976 switch (spec->board_config){
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
index bba9546ba5f5..8d73edc56102 100644
--- a/sound/soc/fsl/Kconfig
+++ b/sound/soc/fsl/Kconfig
@@ -20,7 +20,8 @@ config SND_SOC_MPC8610_HPCD
20 20
21config SND_SOC_MPC5200_I2S 21config SND_SOC_MPC5200_I2S
22 tristate "Freescale MPC5200 PSC in I2S mode driver" 22 tristate "Freescale MPC5200 PSC in I2S mode driver"
23 depends on SND_SOC && PPC_MPC52xx && PPC_BESTCOMM
23 select SND_SOC_OF_SIMPLE 24 select SND_SOC_OF_SIMPLE
24 depends on SND_SOC && PPC_MPC52xx 25 select PPC_BESTCOMM_GEN_BD
25 help 26 help
26 Say Y here to support the MPC5200 PSCs in I2S mode. 27 Say Y here to support the MPC5200 PSCs in I2S mode.
diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
index e9084fdd2082..acd68efb2b75 100644
--- a/sound/soc/omap/omap-pcm.c
+++ b/sound/soc/omap/omap-pcm.c
@@ -233,7 +233,7 @@ static int omap_pcm_open(struct snd_pcm_substream *substream)
233 if (ret < 0) 233 if (ret < 0)
234 goto out; 234 goto out;
235 235
236 prtd = kzalloc(sizeof(prtd), GFP_KERNEL); 236 prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
237 if (prtd == NULL) { 237 if (prtd == NULL) {
238 ret = -ENOMEM; 238 ret = -ENOMEM;
239 goto out; 239 goto out;
diff --git a/sound/sound_core.c b/sound/sound_core.c
index a75b289a5d78..10ba4218161b 100644
--- a/sound/sound_core.c
+++ b/sound/sound_core.c
@@ -457,7 +457,7 @@ EXPORT_SYMBOL(unregister_sound_mixer);
457 457
458void unregister_sound_midi(int unit) 458void unregister_sound_midi(int unit)
459{ 459{
460 return sound_remove_unit(&chains[2], unit); 460 sound_remove_unit(&chains[2], unit);
461} 461}
462 462
463EXPORT_SYMBOL(unregister_sound_midi); 463EXPORT_SYMBOL(unregister_sound_midi);
@@ -474,7 +474,7 @@ EXPORT_SYMBOL(unregister_sound_midi);
474 474
475void unregister_sound_dsp(int unit) 475void unregister_sound_dsp(int unit)
476{ 476{
477 return sound_remove_unit(&chains[3], unit); 477 sound_remove_unit(&chains[3], unit);
478} 478}
479 479
480 480
@@ -507,7 +507,7 @@ static struct sound_unit *__look_for_unit(int chain, int unit)
507 return NULL; 507 return NULL;
508} 508}
509 509
510int soundcore_open(struct inode *inode, struct file *file) 510static int soundcore_open(struct inode *inode, struct file *file)
511{ 511{
512 int chain; 512 int chain;
513 int unit = iminor(inode); 513 int unit = iminor(inode);