aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-12-18 15:54:49 -0500
committerIngo Molnar <mingo@elte.hu>2008-12-18 15:54:49 -0500
commitd110ec3a1e1f522e2e9dfceb9c36d6590c26d2d4 (patch)
tree86b2f8f1d22b74b05239525c55bd42e3db6afc03
parent343e9099c8152daff20e10d6269edec21da44fc0 (diff)
parent55dac3a5553b13891f0ae4bbd11920619b5436d4 (diff)
Merge branch 'linus' into core/rcu
-rw-r--r--Documentation/00-INDEX44
-rw-r--r--Documentation/ABI/testing/sysfs-c2port88
-rw-r--r--Documentation/ABI/testing/sysfs-firmware-acpi16
-rw-r--r--Documentation/DMA-API.txt8
-rw-r--r--Documentation/PCI/00-INDEX2
-rw-r--r--Documentation/PCI/MSI-HOWTO.txt (renamed from Documentation/MSI-HOWTO.txt)0
-rw-r--r--Documentation/acpi/debug.txt148
-rw-r--r--Documentation/arm/mem_alignment2
-rw-r--r--Documentation/blockdev/00-INDEX16
-rw-r--r--Documentation/blockdev/README.DAC960 (renamed from Documentation/README.DAC960)0
-rw-r--r--Documentation/blockdev/cciss.txt (renamed from Documentation/cciss.txt)3
-rw-r--r--Documentation/blockdev/cpqarray.txt (renamed from Documentation/cpqarray.txt)0
-rw-r--r--Documentation/blockdev/floppy.txt (renamed from Documentation/floppy.txt)0
-rw-r--r--Documentation/blockdev/nbd.txt (renamed from Documentation/nbd.txt)0
-rw-r--r--Documentation/blockdev/paride.txt (renamed from Documentation/paride.txt)0
-rw-r--r--Documentation/blockdev/ramdisk.txt (renamed from Documentation/ramdisk.txt)0
-rw-r--r--Documentation/c2port.txt90
-rw-r--r--Documentation/cgroups/freezer-subsystem.txt21
-rw-r--r--Documentation/cpu-freq/user-guide.txt12
-rw-r--r--Documentation/email-clients.txt25
-rw-r--r--Documentation/feature-removal-schedule.txt24
-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/filesystems/vfat.txt32
-rw-r--r--Documentation/filesystems/xip.txt9
-rw-r--r--Documentation/ftrace.txt171
-rw-r--r--Documentation/hwmon/adt746267
-rw-r--r--Documentation/hwmon/lis3lv02d49
-rw-r--r--Documentation/ics932s40131
-rw-r--r--Documentation/input/input-programming.txt3
-rw-r--r--Documentation/io-mapping.txt82
-rw-r--r--Documentation/ioctl/00-INDEX10
-rw-r--r--Documentation/ioctl/ioctl-number.txt (renamed from Documentation/ioctl-number.txt)0
-rw-r--r--Documentation/kernel-parameters.txt132
-rw-r--r--Documentation/local_ops.txt2
-rw-r--r--Documentation/networking/phy.txt2
-rw-r--r--Documentation/powerpc/booting-without-of.txt65
-rw-r--r--Documentation/printk-formats.txt35
-rw-r--r--Documentation/serial/00-INDEX24
-rw-r--r--Documentation/serial/README.cycladesZ (renamed from Documentation/README.cycladesZ)0
-rw-r--r--Documentation/serial/computone.txt (renamed from Documentation/computone.txt)2
-rw-r--r--Documentation/serial/digiepca.txt (renamed from Documentation/digiepca.txt)0
-rw-r--r--Documentation/serial/hayes-esp.txt (renamed from Documentation/hayes-esp.txt)0
-rw-r--r--Documentation/serial/moxa-smartio (renamed from Documentation/moxa-smartio)0
-rw-r--r--Documentation/serial/riscom8.txt (renamed from Documentation/riscom8.txt)0
-rw-r--r--Documentation/serial/rocket.txt (renamed from Documentation/rocket.txt)0
-rw-r--r--Documentation/serial/specialix.txt (renamed from Documentation/specialix.txt)0
-rw-r--r--Documentation/serial/stallion.txt (renamed from Documentation/stallion.txt)0
-rw-r--r--Documentation/serial/sx.txt (renamed from Documentation/sx.txt)0
-rw-r--r--Documentation/serial/tty.txt (renamed from Documentation/tty.txt)0
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt5
-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--Documentation/video4linux/README.cx884
-rw-r--r--Documentation/video4linux/si470x.txt118
-rw-r--r--Documentation/w1/masters/omap-hdq46
-rw-r--r--MAINTAINERS75
-rw-r--r--Makefile4
-rw-r--r--arch/Kconfig4
-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/dma-mapping.h13
-rw-r--r--arch/arm/include/asm/hardware/iop3xx-adma.h5
-rw-r--r--arch/arm/include/asm/hardware/iop_adma.h6
-rw-r--r--arch/arm/include/asm/mach/map.h13
-rw-r--r--arch/arm/include/asm/memory.h12
-rw-r--r--arch/arm/include/asm/processor.h2
-rw-r--r--arch/arm/include/asm/system.h4
-rw-r--r--arch/arm/kernel/armksyms.c4
-rw-r--r--arch/arm/kernel/elf.c6
-rw-r--r--arch/arm/kernel/module.c8
-rw-r--r--arch/arm/kernel/traps.c1
-rw-r--r--arch/arm/mach-clps711x/include/mach/hardware.h22
-rw-r--r--arch/arm/mach-clps7500/core.c6
-rw-r--r--arch/arm/mach-clps7500/include/mach/hardware.h6
-rw-r--r--arch/arm/mach-h720x/include/mach/boards.h6
-rw-r--r--arch/arm/mach-integrator/include/mach/platform.h19
-rw-r--r--arch/arm/mach-iop13xx/include/mach/adma.h3
-rw-r--r--arch/arm/mach-omap1/io.c2
-rw-r--r--arch/arm/mach-omap2/gpmc.c6
-rw-r--r--arch/arm/mach-pxa/include/mach/pxafb.h1
-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-pxa/reset.c7
-rw-r--r--arch/arm/mach-pxa/spitz.c4
-rw-r--r--arch/arm/mach-realview/clock.c2
-rw-r--r--arch/arm/mach-realview/include/mach/platform.h19
-rw-r--r--arch/arm/mach-s3c2410/include/mach/spi-gpio.h1
-rw-r--r--arch/arm/mach-versatile/clock.c2
-rw-r--r--arch/arm/mach-versatile/include/mach/platform.h18
-rw-r--r--arch/arm/mm/alignment.c26
-rw-r--r--arch/arm/mm/cache-feroceon-l2.c4
-rw-r--r--arch/arm/mm/cache-xsc3l2.c4
-rw-r--r--arch/arm/mm/fault.c1
-rw-r--r--arch/arm/mm/mmu.c117
-rw-r--r--arch/arm/mm/proc-v7.S12
-rw-r--r--arch/arm/plat-iop/setup.c5
-rw-r--r--arch/arm/plat-omap/clock.c20
-rw-r--r--arch/arm/plat-omap/gpio.c5
-rw-r--r--arch/arm/plat-omap/include/mach/entry-macro.S4
-rw-r--r--arch/arm/plat-omap/include/mach/irqs.h2
-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/blackfin/include/asm/bfin-global.h2
-rw-r--r--arch/blackfin/include/asm/dma-mapping.h6
-rw-r--r--arch/blackfin/kernel/bfin_gpio.c2
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbinit.c9
-rw-r--r--arch/blackfin/kernel/process.c7
-rw-r--r--arch/blackfin/kernel/setup.c12
-rw-r--r--arch/blackfin/kernel/traps.c11
-rw-r--r--arch/blackfin/mach-common/cache.S8
-rw-r--r--arch/blackfin/mach-common/cpufreq.c14
-rw-r--r--arch/blackfin/mach-common/entry.S2
-rw-r--r--arch/blackfin/mm/sram-alloc.c8
-rw-r--r--arch/frv/kernel/sys_frv.c17
-rw-r--r--arch/ia64/Kconfig19
-rw-r--r--arch/ia64/configs/generic_defconfig218
-rw-r--r--arch/ia64/hp/common/hwsw_iommu.c9
-rw-r--r--arch/ia64/hp/sim/Kconfig1
-rw-r--r--arch/ia64/include/asm/intrinsics.h2
-rw-r--r--arch/ia64/include/asm/io.h24
-rw-r--r--arch/ia64/include/asm/machvec.h22
-rw-r--r--arch/ia64/include/asm/meminit.h1
-rw-r--r--arch/ia64/include/asm/paravirt_privop.h12
-rw-r--r--arch/ia64/include/asm/ptrace.h2
-rw-r--r--arch/ia64/include/asm/sal.h15
-rw-r--r--arch/ia64/include/asm/sn/sn_sal.h45
-rw-r--r--arch/ia64/kernel/acpi.c29
-rw-r--r--arch/ia64/kernel/entry.S1
-rw-r--r--arch/ia64/kernel/head.S2
-rw-r--r--arch/ia64/kernel/mca.c2
-rw-r--r--arch/ia64/kernel/paravirt.c2
-rw-r--r--arch/ia64/kernel/pci-dma.c3
-rw-r--r--arch/ia64/kernel/setup.c9
-rw-r--r--arch/ia64/kernel/topology.c4
-rw-r--r--arch/ia64/kvm/Kconfig2
-rw-r--r--arch/ia64/kvm/Makefile2
-rw-r--r--arch/ia64/kvm/kvm-ia64.c12
-rw-r--r--arch/ia64/kvm/optvfault.S11
-rw-r--r--arch/ia64/kvm/vcpu.h5
-rw-r--r--arch/ia64/mm/discontig.c1
-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/ia64/uv/kernel/setup.c6
-rw-r--r--arch/ia64/xen/hypercall.S2
-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/m68k/kernel/ints.c2
-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/mach-rc32434/gpio.h2
-rw-r--r--arch/mips/include/asm/mach-rc32434/rb.h14
-rw-r--r--arch/mips/include/asm/pci.h5
-rw-r--r--arch/mips/include/asm/ptrace.h4
-rw-r--r--arch/mips/include/asm/time.h2
-rw-r--r--arch/mips/kernel/csrc-r4k.c2
-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/mm/sc-ip22.c2
-rw-r--r--arch/mips/mti-malta/Makefile5
-rw-r--r--arch/mips/mti-malta/malta-amon.c6
-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/mips/rb532/devices.c2
-rw-r--r--arch/mips/rb532/gpio.c193
-rw-r--r--arch/mn10300/Kconfig.debug9
-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/mn10300/mm/misalignment.c538
-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/smp.h2
-rw-r--r--arch/parisc/kernel/drivers.c6
-rw-r--r--arch/parisc/kernel/ptrace.c10
-rw-r--r--arch/parisc/kernel/traps.c43
-rw-r--r--arch/powerpc/boot/Makefile1
-rw-r--r--arch/powerpc/boot/dts/gef_sbc610.dts2
-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/asp8347_defconfig121
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig158
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig158
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig125
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig136
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig173
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig121
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig123
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig126
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig119
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig123
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig155
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig119
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig87
-rw-r--r--arch/powerpc/configs/85xx/mpc8536_ds_defconfig143
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig74
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig143
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig90
-rw-r--r--arch/powerpc/configs/85xx/mpc8568mds_defconfig93
-rw-r--r--arch/powerpc/configs/85xx/mpc8572_ds_defconfig143
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig91
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig75
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig78
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig115
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig91
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig96
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig98
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig96
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig96
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig283
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig177
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig175
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig152
-rw-r--r--arch/powerpc/configs/adder875_defconfig69
-rw-r--r--arch/powerpc/configs/c2k_defconfig179
-rw-r--r--arch/powerpc/configs/chrp32_defconfig159
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig113
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig67
-rw-r--r--arch/powerpc/configs/g5_defconfig142
-rw-r--r--arch/powerpc/configs/iseries_defconfig114
-rw-r--r--arch/powerpc/configs/linkstation_defconfig122
-rw-r--r--arch/powerpc/configs/maple_defconfig142
-rw-r--r--arch/powerpc/configs/mgcoge_defconfig234
-rw-r--r--arch/powerpc/configs/mgsuvd_defconfig107
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig573
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig78
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig113
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig158
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig145
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig77
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig144
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig67
-rw-r--r--arch/powerpc/configs/pmac32_defconfig160
-rw-r--r--arch/powerpc/configs/ppc40x_defconfig92
-rw-r--r--arch/powerpc/configs/ppc44x_defconfig92
-rw-r--r--arch/powerpc/configs/ppc64_defconfig174
-rw-r--r--arch/powerpc/configs/ppc6xx_defconfig286
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig137
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig126
-rw-r--r--arch/powerpc/configs/pseries_defconfig169
-rw-r--r--arch/powerpc/configs/storcenter_defconfig83
-rw-r--r--arch/powerpc/include/asm/immap_cpm2.h9
-rw-r--r--arch/powerpc/include/asm/immap_qe.h5
-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.S9
-rw-r--r--arch/powerpc/kernel/prom_parse.c7
-rw-r--r--arch/powerpc/kernel/signal_32.c18
-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/ras.c1
-rw-r--r--arch/powerpc/platforms/cell/smp.c9
-rw-r--r--arch/powerpc/platforms/cell/spufs/file.c3
-rw-r--r--arch/powerpc/platforms/pseries/pci_dlpar.c1
-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.S41
-rw-r--r--arch/s390/kernel/entry64.S34
-rw-r--r--arch/s390/kernel/init_task.c2
-rw-r--r--arch/s390/kernel/process.c3
-rw-r--r--arch/s390/kernel/ptrace.c2
-rw-r--r--arch/s390/kernel/setup.c4
-rw-r--r--arch/s390/kernel/signal.c6
-rw-r--r--arch/s390/kernel/sys_s390.c2
-rw-r--r--arch/s390/kernel/time.c13
-rw-r--r--arch/s390/kernel/topology.c11
-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/sh/include/asm/io.h4
-rw-r--r--arch/sh/include/asm/pgtable.h6
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7723.c6
-rw-r--r--arch/sh/kernel/early_printk.c3
-rw-r--r--arch/sh/kernel/timers/timer-tmu.c2
-rw-r--r--arch/sh/lib/copy_page.S11
-rw-r--r--arch/sh/mm/Makefile_322
-rw-r--r--arch/sh/mm/Makefile_642
-rw-r--r--arch/sh/mm/init.c12
-rw-r--r--arch/sh/mm/mmap.c31
-rw-r--r--arch/sh/mm/pg-sh4.c17
-rw-r--r--arch/sparc/include/asm/bitops_32.h1
-rw-r--r--arch/sparc/include/asm/ptrace_64.h2
-rw-r--r--arch/sparc/include/asm/termbits.h11
-rw-r--r--arch/sparc/include/asm/unistd_32.h3
-rw-r--r--arch/sparc/include/asm/unistd_64.h3
-rw-r--r--arch/sparc/kernel/cpu.c2
-rw-r--r--arch/sparc/kernel/head.S3
-rw-r--r--arch/sparc/kernel/of_device.c4
-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/systbls.S2
-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/defconfig232
-rw-r--r--arch/sparc64/kernel/ptrace.c2
-rw-r--r--arch/sparc64/kernel/smp.c4
-rw-r--r--arch/sparc64/kernel/sys32.S13
-rw-r--r--arch/sparc64/kernel/systbls.S4
-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/Kconfig11
-rw-r--r--arch/x86/boot/tty.c2
-rw-r--r--arch/x86/include/asm/acpi.h1
-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/fixmap.h4
-rw-r--r--arch/x86/include/asm/fixmap_32.h4
-rw-r--r--arch/x86/include/asm/highmem.h5
-rw-r--r--arch/x86/include/asm/iomap.h30
-rw-r--r--arch/x86/include/asm/iommu.h1
-rw-r--r--arch/x86/include/asm/irq_vectors.h20
-rw-r--r--arch/x86/include/asm/mmzone_32.h4
-rw-r--r--arch/x86/include/asm/msr.h2
-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.h9
-rw-r--r--arch/x86/include/asm/tsc.h8
-rw-r--r--arch/x86/include/asm/uaccess_64.h2
-rw-r--r--arch/x86/include/asm/unistd_64.h4
-rw-r--r--arch/x86/include/asm/vmi.h8
-rw-r--r--arch/x86/include/asm/voyager.h1
-rw-r--r--arch/x86/kernel/Makefile2
-rw-r--r--arch/x86/kernel/acpi/boot.c1
-rw-r--r--arch/x86/kernel/amd_iommu.c58
-rw-r--r--arch/x86/kernel/amd_iommu_init.c6
-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/ds.c81
-rw-r--r--arch/x86/kernel/early-quirks.c18
-rw-r--r--arch/x86/kernel/es7000_32.c9
-rw-r--r--arch/x86/kernel/hpet.c4
-rw-r--r--arch/x86/kernel/i387.c2
-rw-r--r--arch/x86/kernel/io_apic.c60
-rw-r--r--arch/x86/kernel/kvmclock.c2
-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.c2
-rw-r--r--arch/x86/kernel/reboot.c15
-rw-r--r--arch/x86/kernel/setup.c14
-rw-r--r--arch/x86/kernel/smpboot.c2
-rw-r--r--arch/x86/kernel/tlb_32.c6
-rw-r--r--arch/x86/kernel/tlb_64.c5
-rw-r--r--arch/x86/kernel/tsc.c10
-rw-r--r--arch/x86/kernel/tsc_sync.c4
-rw-r--r--arch/x86/kernel/vmi_32.c16
-rw-r--r--arch/x86/kernel/xsave.c2
-rw-r--r--arch/x86/kvm/Kconfig2
-rw-r--r--arch/x86/kvm/i8254.c4
-rw-r--r--arch/x86/kvm/mmu.c4
-rw-r--r--arch/x86/kvm/paging_tmpl.h1
-rw-r--r--arch/x86/kvm/vmx.c7
-rw-r--r--arch/x86/kvm/vmx.h1
-rw-r--r--arch/x86/mach-voyager/setup.c2
-rw-r--r--arch/x86/mach-voyager/voyager_smp.c18
-rw-r--r--arch/x86/mm/Makefile2
-rw-r--r--arch/x86/mm/init_32.c3
-rw-r--r--arch/x86/mm/iomap_32.c59
-rw-r--r--arch/x86/mm/numa_32.c35
-rw-r--r--arch/x86/mm/pageattr.c8
-rw-r--r--arch/x86/oprofile/nmi_int.c5
-rw-r--r--arch/x86/oprofile/op_model_ppro.c15
-rw-r--r--arch/x86/pci/fixup.c25
-rw-r--r--arch/x86/power/hibernate_32.c4
-rw-r--r--arch/x86/xen/enlighten.c5
-rw-r--r--arch/x86/xen/mmu.c32
-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.c30
-rw-r--r--block/blk-map.c8
-rw-r--r--block/blk-merge.c21
-rw-r--r--block/blk-settings.c4
-rw-r--r--block/blk-timeout.c20
-rw-r--r--block/bsg.c2
-rw-r--r--block/compat_ioctl.c31
-rw-r--r--block/elevator.c7
-rw-r--r--block/genhd.c4
-rw-r--r--block/ioctl.c7
-rw-r--r--block/scsi_ioctl.c2
-rw-r--r--crypto/Kconfig36
-rw-r--r--crypto/Makefile18
-rw-r--r--drivers/acpi/Kconfig22
-rw-r--r--drivers/acpi/Makefile8
-rw-r--r--drivers/acpi/ac.c3
-rw-r--r--drivers/acpi/acpi_memhotplug.c1
-rw-r--r--drivers/acpi/battery.c3
-rw-r--r--drivers/acpi/blacklist.c401
-rw-r--r--drivers/acpi/bus.c11
-rw-r--r--drivers/acpi/button.c3
-rw-r--r--drivers/acpi/cm_sbs.c7
-rw-r--r--drivers/acpi/container.c1
-rw-r--r--drivers/acpi/debug.c15
-rw-r--r--drivers/acpi/ec.c98
-rw-r--r--drivers/acpi/events/evgpe.c2
-rw-r--r--drivers/acpi/events/evxfevnt.c41
-rw-r--r--drivers/acpi/fan.c1
-rw-r--r--drivers/acpi/glue.c40
-rw-r--r--drivers/acpi/osl.c104
-rw-r--r--drivers/acpi/pci_link.c11
-rw-r--r--drivers/acpi/pci_root.c6
-rw-r--r--drivers/acpi/power.c11
-rw-r--r--drivers/acpi/processor_core.c93
-rw-r--r--drivers/acpi/processor_idle.c1
-rw-r--r--drivers/acpi/processor_perflib.c2
-rw-r--r--drivers/acpi/processor_thermal.c1
-rw-r--r--drivers/acpi/processor_throttling.c2
-rw-r--r--drivers/acpi/reboot.c25
-rw-r--r--drivers/acpi/scan.c52
-rw-r--r--drivers/acpi/sleep/main.c40
-rw-r--r--drivers/acpi/sleep/proc.c2
-rw-r--r--drivers/acpi/sleep/wakeup.c8
-rw-r--r--drivers/acpi/system.c48
-rw-r--r--drivers/acpi/tables/tbfadt.c2
-rw-r--r--drivers/acpi/thermal.c9
-rw-r--r--drivers/acpi/toshiba_acpi.c56
-rw-r--r--drivers/acpi/utils.c16
-rw-r--r--drivers/acpi/video.c42
-rw-r--r--drivers/acpi/video_detect.c267
-rw-r--r--drivers/acpi/wmi.c2
-rw-r--r--drivers/ata/Kconfig44
-rw-r--r--drivers/ata/ata_piix.c22
-rw-r--r--drivers/ata/libata-core.c148
-rw-r--r--drivers/ata/libata-eh.c21
-rw-r--r--drivers/ata/libata-scsi.c30
-rw-r--r--drivers/ata/libata-sff.c13
-rw-r--r--drivers/ata/libata.h19
-rw-r--r--drivers/ata/pata_cs5535.c1
-rw-r--r--drivers/ata/pata_cs5536.c1
-rw-r--r--drivers/ata/pata_hpt366.c16
-rw-r--r--drivers/ata/pata_ninja32.c9
-rw-r--r--drivers/ata/pata_pcmcia.c1
-rw-r--r--drivers/ata/pata_rb532_cf.c15
-rw-r--r--drivers/ata/pata_sch.c2
-rw-r--r--drivers/ata/pata_sis.c1
-rw-r--r--drivers/ata/sata_nv.c53
-rw-r--r--drivers/ata/sata_promise.c20
-rw-r--r--drivers/ata/sata_via.c4
-rw-r--r--drivers/atm/horizon.c2
-rw-r--r--drivers/block/Kconfig29
-rw-r--r--drivers/block/cciss.c37
-rw-r--r--drivers/block/cpqarray.c7
-rw-r--r--drivers/block/floppy.c2
-rw-r--r--drivers/block/pktcdvd.c6
-rw-r--r--drivers/block/ub.c20
-rw-r--r--drivers/block/xen-blkfront.c8
-rw-r--r--drivers/block/xsysace.c23
-rw-r--r--drivers/cdrom/cdrom.c16
-rw-r--r--drivers/char/Kconfig24
-rw-r--r--drivers/char/agp/uninorth-agp.c2
-rw-r--r--drivers/char/cp437.uni12
-rw-r--r--drivers/char/ipmi/ipmi_msghandler.c20
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c16
-rw-r--r--drivers/char/isicom.c6
-rw-r--r--drivers/char/istallion.c4
-rw-r--r--drivers/char/mxser.c3
-rw-r--r--drivers/char/serial167.c2
-rw-r--r--drivers/char/sonypi.c4
-rw-r--r--drivers/char/specialix.c2
-rw-r--r--drivers/char/tty_io.c15
-rw-r--r--drivers/char/vt.c12
-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/cpuidle/cpuidle.c4
-rw-r--r--drivers/crypto/talitos.c4
-rw-r--r--drivers/dca/dca-core.c2
-rw-r--r--drivers/dma/dmaengine.c4
-rw-r--r--drivers/dma/dmatest.c22
-rw-r--r--drivers/dma/ioat_dma.c11
-rw-r--r--drivers/dma/iop-adma.c11
-rw-r--r--drivers/dma/iovlock.c17
-rw-r--r--drivers/edac/i5000_edac.c4
-rw-r--r--drivers/edac/i82875p_edac.c14
-rw-r--r--drivers/firewire/fw-device.c14
-rw-r--r--drivers/firewire/fw-ohci.c13
-rw-r--r--drivers/firewire/fw-sbp2.c7
-rw-r--r--drivers/firewire/fw-transaction.c3
-rw-r--r--drivers/firewire/fw-transaction.h2
-rw-r--r--drivers/firmware/dmi_scan.c6
-rw-r--r--drivers/gpio/Kconfig8
-rw-r--r--drivers/gpio/Makefile1
-rw-r--r--drivers/gpio/gpiolib.c2
-rw-r--r--drivers/gpio/xilinx_gpio.c235
-rw-r--r--drivers/gpu/drm/drm_drv.c12
-rw-r--r--drivers/gpu/drm/drm_irq.c84
-rw-r--r--drivers/gpu/drm/drm_lock.c9
-rw-r--r--drivers/gpu/drm/drm_stub.c1
-rw-r--r--drivers/gpu/drm/i915/Makefile3
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c29
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h57
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c897
-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.c676
-rw-r--r--drivers/gpu/drm/i915/i915_opregion.c18
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h4
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c15
-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.c36
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.h15
-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.c17
-rw-r--r--drivers/hid/hid-core.c19
-rw-r--r--drivers/hid/hid-ids.h7
-rw-r--r--drivers/hid/hid-pl.c2
-rw-r--r--drivers/hid/hidraw.c30
-rw-r--r--drivers/hid/usbhid/hid-core.c43
-rw-r--r--drivers/hid/usbhid/usbhid.h1
-rw-r--r--drivers/hwmon/Kconfig29
-rw-r--r--drivers/hwmon/Makefile2
-rw-r--r--drivers/hwmon/adt7462.c2002
-rw-r--r--drivers/hwmon/adt7470.c75
-rw-r--r--drivers/hwmon/adt7473.c89
-rw-r--r--drivers/hwmon/applesmc.c56
-rw-r--r--drivers/hwmon/ibmaem.c18
-rw-r--r--drivers/hwmon/lis3lv02d.c581
-rw-r--r--drivers/hwmon/lis3lv02d.h149
-rw-r--r--drivers/hwmon/lm85.c52
-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/busses/i2c-sh_mobile.c3
-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/icside.c4
-rw-r--r--drivers/ide/ide-cs.c1
-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/sgiioc4.c6
-rw-r--r--drivers/idle/Kconfig3
-rw-r--r--drivers/ieee1394/dv1394.c10
-rw-r--r--drivers/ieee1394/highlevel.c25
-rw-r--r--drivers/ieee1394/hosts.c4
-rw-r--r--drivers/ieee1394/hosts.h4
-rw-r--r--drivers/ieee1394/nodemgr.c22
-rw-r--r--drivers/ieee1394/raw1394.c9
-rw-r--r--drivers/ieee1394/sbp2.c14
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_provider.c6
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_qp.c1
-rw-r--r--drivers/infiniband/hw/ehca/ehca_classes.h4
-rw-r--r--drivers/infiniband/hw/ehca/ehca_irq.c44
-rw-r--r--drivers/infiniband/hw/ehca/ehca_main.c3
-rw-r--r--drivers/infiniband/hw/ehca/ehca_qp.c31
-rw-r--r--drivers/infiniband/hw/ehca/ehca_reqs.c51
-rw-r--r--drivers/infiniband/hw/ipath/ipath_ruc.c10
-rw-r--r--drivers/infiniband/hw/mlx4/cq.c5
-rw-r--r--drivers/infiniband/hw/mlx4/mr.c1
-rw-r--r--drivers/infiniband/hw/nes/nes.c16
-rw-r--r--drivers/infiniband/hw/nes/nes_hw.h1
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c64
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c6
-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/isdn/i4l/isdn_net.c6
-rw-r--r--drivers/macintosh/rack-meter.c10
-rw-r--r--drivers/md/dm-mpath.c8
-rw-r--r--drivers/md/dm-raid1.c1
-rw-r--r--drivers/md/dm-stripe.c4
-rw-r--r--drivers/md/dm-table.c2
-rw-r--r--drivers/md/dm.c34
-rw-r--r--drivers/md/linear.c2
-rw-r--r--drivers/md/md.c6
-rw-r--r--drivers/md/raid10.c2
-rw-r--r--drivers/media/dvb/dm1105/dm1105.c2
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c7
-rw-r--r--drivers/media/dvb/dvb-usb/Kconfig3
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c22
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.h1
-rw-r--r--drivers/media/dvb/dvb-usb/anysee.c4
-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.c139
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-urb.c6
-rw-r--r--drivers/media/dvb/dvb-usb/usb-urb.c19
-rw-r--r--drivers/media/dvb/frontends/af9013.c6
-rw-r--r--drivers/media/dvb/siano/sms-cards.c2
-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/radio/Kconfig14
-rw-r--r--drivers/media/radio/radio-si470x.c19
-rw-r--r--drivers/media/video/cafe_ccic.c6
-rw-r--r--drivers/media/video/compat_ioctl32.c3
-rw-r--r--drivers/media/video/cx18/cx18-driver.c17
-rw-r--r--drivers/media/video/cx18/cx18-driver.h20
-rw-r--r--drivers/media/video/cx18/cx18-dvb.c23
-rw-r--r--drivers/media/video/cx18/cx18-dvb.h1
-rw-r--r--drivers/media/video/cx18/cx18-io.c17
-rw-r--r--drivers/media/video/cx18/cx18-io.h17
-rw-r--r--drivers/media/video/cx18/cx18-irq.c96
-rw-r--r--drivers/media/video/cx18/cx18-irq.h4
-rw-r--r--drivers/media/video/cx18/cx18-mailbox.c6
-rw-r--r--drivers/media/video/cx18/cx18-queue.c14
-rw-r--r--drivers/media/video/cx18/cx18-scb.h40
-rw-r--r--drivers/media/video/cx88/cx88-blackbird.c12
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c5
-rw-r--r--drivers/media/video/cx88/cx88-mpeg.c28
-rw-r--r--drivers/media/video/cx88/cx88-video.c10
-rw-r--r--drivers/media/video/cx88/cx88.h1
-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.c140
-rw-r--r--drivers/media/video/em28xx/em28xx.h6
-rw-r--r--drivers/media/video/gspca/Kconfig144
-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.c56
-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.c15
-rw-r--r--drivers/media/video/ivtv/Kconfig5
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c26
-rw-r--r--drivers/media/video/s2255drv.c2
-rw-r--r--drivers/media/video/saa7110.c4
-rw-r--r--drivers/media/video/saa7134/saa7134-core.c3
-rw-r--r--drivers/media/video/tvaudio.c231
-rw-r--r--drivers/media/video/usbvideo/ibmcam.c12
-rw-r--r--drivers/message/fusion/mptlan.c108
-rw-r--r--drivers/message/i2o/i2o_block.c2
-rw-r--r--drivers/message/i2o/iop.c1
-rw-r--r--drivers/mfd/da903x.c2
-rw-r--r--drivers/mfd/wm8350-i2c.c15
-rw-r--r--drivers/misc/Kconfig16
-rw-r--r--drivers/misc/Makefile2
-rw-r--r--drivers/misc/acer-wmi.c6
-rw-r--r--drivers/misc/asus-laptop.c10
-rw-r--r--drivers/misc/c2port/Kconfig35
-rw-r--r--drivers/misc/c2port/Makefile3
-rw-r--r--drivers/misc/c2port/c2port-duramar2150.c158
-rw-r--r--drivers/misc/c2port/core.c1003
-rw-r--r--drivers/misc/compal-laptop.c12
-rw-r--r--drivers/misc/eeepc-laptop.c12
-rw-r--r--drivers/misc/fujitsu-laptop.c43
-rw-r--r--drivers/misc/ics932s401.c515
-rw-r--r--drivers/misc/intel_menlow.c10
-rw-r--r--drivers/misc/msi-laptop.c16
-rw-r--r--drivers/misc/sgi-gru/Makefile4
-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.c6
-rw-r--r--drivers/misc/thinkpad_acpi.c86
-rw-r--r--drivers/mmc/core/bus.c3
-rw-r--r--drivers/mmc/core/core.c6
-rw-r--r--drivers/mmc/core/host.c5
-rw-r--r--drivers/mmc/core/sdio_bus.c3
-rw-r--r--drivers/mmc/host/mmc_spi.c2
-rw-r--r--drivers/mmc/host/sdhci.c2
-rw-r--r--drivers/mmc/host/tifm_sd.c16
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0002.c13
-rw-r--r--drivers/mtd/chips/jedec_probe.c10
-rw-r--r--drivers/mtd/devices/m25p80.c28
-rw-r--r--drivers/mtd/maps/cdb89712.c13
-rw-r--r--drivers/mtd/maps/h720x-flash.c6
-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.c18
-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/Kconfig21
-rw-r--r--drivers/net/Makefile2
-rw-r--r--drivers/net/atl1e/atl1e.h1
-rw-r--r--drivers/net/atl1e/atl1e_hw.c4
-rw-r--r--drivers/net/atlx/atl1.c17
-rw-r--r--drivers/net/atlx/atl2.c8
-rw-r--r--drivers/net/bnx2.c44
-rw-r--r--drivers/net/bnx2.h6
-rw-r--r--drivers/net/bnx2x_init.h9
-rw-r--r--drivers/net/bnx2x_main.c10
-rw-r--r--drivers/net/chelsio/sge.c4
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c4
-rw-r--r--drivers/net/cxgb3/t3_hw.c8
-rw-r--r--drivers/net/e100.c20
-rw-r--r--drivers/net/e1000/e1000_ethtool.c8
-rw-r--r--drivers/net/e1000/e1000_main.c1
-rw-r--r--drivers/net/e1000e/e1000.h5
-rw-r--r--drivers/net/e1000e/ethtool.c8
-rw-r--r--drivers/net/e1000e/ich8lan.c9
-rw-r--r--drivers/net/e1000e/netdev.c26
-rw-r--r--drivers/net/e1000e/param.c25
-rw-r--r--drivers/net/enc28j60.c16
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c6
-rw-r--r--drivers/net/gianfar.c15
-rw-r--r--drivers/net/hp-plus.c2
-rw-r--r--drivers/net/igb/igb_ethtool.c8
-rw-r--r--drivers/net/igb/igb_main.c12
-rw-r--r--drivers/net/ipg.c8
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c68
-rw-r--r--drivers/net/jme.c21
-rw-r--r--drivers/net/macvlan.c3
-rw-r--r--drivers/net/mlx4/en_netdev.c10
-rw-r--r--drivers/net/mlx4/en_params.c30
-rw-r--r--drivers/net/mlx4/main.c8
-rw-r--r--drivers/net/mlx4/mlx4.h10
-rw-r--r--drivers/net/mlx4/mlx4_en.h8
-rw-r--r--drivers/net/mlx4/port.c39
-rw-r--r--drivers/net/mv643xx_eth.c14
-rw-r--r--drivers/net/myri10ge/myri10ge.c4
-rw-r--r--drivers/net/netx-eth.c2
-rw-r--r--drivers/net/niu.c299
-rw-r--r--drivers/net/niu.h13
-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/marvell.c66
-rw-r--r--drivers/net/phy/mdio_bus.c2
-rw-r--r--drivers/net/phy/phy_device.c47
-rw-r--r--drivers/net/phy/vitesse.c64
-rw-r--r--drivers/net/pppol2tp.c1
-rw-r--r--drivers/net/qla3xxx.c19
-rw-r--r--drivers/net/sfc/ethtool.c4
-rw-r--r--drivers/net/sh_eth.c4
-rw-r--r--drivers/net/sis900.c1
-rw-r--r--drivers/net/smc911x.c18
-rw-r--r--drivers/net/smc91x.c12
-rw-r--r--drivers/net/spider_net.c4
-rw-r--r--drivers/net/sungem.c144
-rw-r--r--drivers/net/ucc_geth_ethtool.c7
-rw-r--r--drivers/net/usb/asix.c8
-rw-r--r--drivers/net/usb/hso.c12
-rw-r--r--drivers/net/via-velocity.c2
-rw-r--r--drivers/net/wireless/ath5k/base.c37
-rw-r--r--drivers/net/wireless/ath5k/base.h1
-rw-r--r--drivers/net/wireless/ath5k/debug.c10
-rw-r--r--drivers/net/wireless/ath5k/desc.c16
-rw-r--r--drivers/net/wireless/ath9k/beacon.c10
-rw-r--r--drivers/net/wireless/ath9k/recv.c19
-rw-r--r--drivers/net/wireless/hostap/hostap_wlan.h5
-rw-r--r--drivers/net/wireless/ipw2200.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c19
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rx.c26
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-sta.c24
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c14
-rw-r--r--drivers/net/wireless/libertas_tf/if_usb.c2
-rw-r--r--drivers/net/wireless/rtl8187_dev.c3
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.c2
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.c2
-rw-r--r--drivers/net/xen-netfront.c6
-rw-r--r--drivers/oprofile/event_buffer.c6
-rw-r--r--drivers/parport/Kconfig2
-rw-r--r--drivers/parport/parport_serial.c2
-rw-r--r--drivers/pci/intel-iommu.c6
-rw-r--r--drivers/pci/pci-acpi.c15
-rw-r--r--drivers/pci/pci-sysfs.c2
-rw-r--r--drivers/pci/pci.c6
-rw-r--r--drivers/pci/pcie/aspm.c29
-rw-r--r--drivers/pci/quirks.c53
-rw-r--r--drivers/pci/rom.c6
-rw-r--r--drivers/pci/slot.c1
-rw-r--r--drivers/pcmcia/bfin_cf_pcmcia.c2
-rw-r--r--drivers/pcmcia/cistpl.c3
-rw-r--r--drivers/pcmcia/cs.c14
-rw-r--r--drivers/pcmcia/ds.c11
-rw-r--r--drivers/pcmcia/pcmcia_resource.c3
-rw-r--r--drivers/pcmcia/rsrc_nonstatic.c6
-rw-r--r--drivers/pnp/interface.c1
-rw-r--r--drivers/ps3/ps3-lpm.c1
-rw-r--r--drivers/rapidio/rio-scan.c4
-rw-r--r--drivers/rapidio/rio.c2
-rw-r--r--drivers/regulator/Kconfig15
-rw-r--r--drivers/rtc/Kconfig29
-rw-r--r--drivers/rtc/Makefile3
-rw-r--r--drivers/rtc/interface.c2
-rw-r--r--drivers/rtc/rtc-cmos.c2
-rw-r--r--drivers/rtc/rtc-ds1390.c220
-rw-r--r--drivers/rtc/rtc-ds1672.c6
-rw-r--r--drivers/rtc/rtc-max6900.c6
-rw-r--r--drivers/rtc/rtc-rx8581.c281
-rw-r--r--drivers/rtc/rtc-starfire.c66
-rw-r--r--drivers/rtc/rtc-sun4v.c69
-rw-r--r--drivers/rtc/rtc-twl4030.c2
-rw-r--r--drivers/rtc/rtc-wm8350.c514
-rw-r--r--drivers/s390/block/dasd.c5
-rw-r--r--drivers/s390/char/sclp_cmd.c3
-rw-r--r--drivers/s390/cio/device.c4
-rw-r--r--drivers/s390/kvm/kvm_virtio.c4
-rw-r--r--drivers/s390/scsi/zfcp_aux.c3
-rw-r--r--drivers/s390/scsi/zfcp_ccw.c4
-rw-r--r--drivers/s390/scsi/zfcp_dbf.c42
-rw-r--r--drivers/s390/scsi/zfcp_dbf.h8
-rw-r--r--drivers/s390/scsi/zfcp_erp.c8
-rw-r--r--drivers/s390/scsi/zfcp_fc.c7
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c43
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c14
-rw-r--r--drivers/sbus/char/jsflash.c1
-rw-r--r--drivers/scsi/aacraid/linit.c4
-rw-r--r--drivers/scsi/advansys.c4
-rw-r--r--drivers/scsi/device_handler/scsi_dh_hp_sw.c12
-rw-r--r--drivers/scsi/dpt_i2o.c4
-rw-r--r--drivers/scsi/gdth.c12
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.c2
-rw-r--r--drivers/scsi/megaraid.c11
-rw-r--r--drivers/scsi/megaraid.h2
-rw-r--r--drivers/scsi/megaraid/megaraid_sas.c3
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h1
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c26
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c2
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c1
-rw-r--r--drivers/scsi/qla2xxx/qla_sup.c19
-rw-r--r--drivers/scsi/qla2xxx/qla_version.h2
-rw-r--r--drivers/scsi/scsi_error.c8
-rw-r--r--drivers/scsi/scsi_lib.c23
-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/atmel_serial.c17
-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/sh-sci.c22
-rw-r--r--drivers/serial/sh-sci.h16
-rw-r--r--drivers/serial/uartlite.c4
-rw-r--r--drivers/sh/maple/maple.c2
-rw-r--r--drivers/spi/atmel_spi.c3
-rw-r--r--drivers/spi/au1550_spi.c26
-rw-r--r--drivers/spi/mpc52xx_psc_spi.c5
-rw-r--r--drivers/spi/pxa2xx_spi.c24
-rw-r--r--drivers/spi/spi_imx.c70
-rw-r--r--drivers/spi/spi_s3c24xx_gpio.c3
-rw-r--r--drivers/spi/spidev.c4
-rw-r--r--drivers/ssb/Kconfig5
-rw-r--r--drivers/staging/Kconfig19
-rw-r--r--drivers/staging/echo/echo.c1
-rw-r--r--drivers/staging/me4000/me4000.c1
-rw-r--r--drivers/staging/usbip/Kconfig2
-rw-r--r--drivers/telephony/phonedev.c2
-rw-r--r--drivers/usb/class/cdc-acm.c9
-rw-r--r--drivers/usb/class/usbtmc.c1
-rw-r--r--drivers/usb/core/driver.c4
-rw-r--r--drivers/usb/core/message.c1
-rw-r--r--drivers/usb/core/sysfs.c2
-rw-r--r--drivers/usb/core/urb.c4
-rw-r--r--drivers/usb/gadget/f_acm.c4
-rw-r--r--drivers/usb/gadget/f_rndis.c7
-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/Kconfig23
-rw-r--r--drivers/usb/host/ehci-hcd.c25
-rw-r--r--drivers/usb/host/ehci-pci.c24
-rw-r--r--drivers/usb/host/ehci-ps3.c1
-rw-r--r--drivers/usb/host/ehci-sched.c4
-rw-r--r--drivers/usb/host/ehci.h12
-rw-r--r--drivers/usb/host/isp1760-if.c22
-rw-r--r--drivers/usb/host/ohci-ps3.c3
-rw-r--r--drivers/usb/host/r8a66597-hcd.c5
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb.c1
-rw-r--r--drivers/usb/misc/vstusb.c2
-rw-r--r--drivers/usb/mon/mon_bin.c5
-rw-r--r--drivers/usb/musb/musb_core.c6
-rw-r--r--drivers/usb/musb/musb_debug.h4
-rw-r--r--drivers/usb/musb/musb_host.c159
-rw-r--r--drivers/usb/musb/musb_host.h1
-rw-r--r--drivers/usb/musb/omap2430.c2
-rw-r--r--drivers/usb/musb/tusb6010.c2
-rw-r--r--drivers/usb/serial/console.c1
-rw-r--r--drivers/usb/serial/cp2101.c3
-rw-r--r--drivers/usb/serial/ftdi_sio.c4
-rw-r--r--drivers/usb/serial/ftdi_sio.h6
-rw-r--r--drivers/usb/serial/ir-usb.c2
-rw-r--r--drivers/usb/serial/option.c41
-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/Kconfig4
-rw-r--r--drivers/usb/storage/unusual_devs.h66
-rw-r--r--drivers/video/Kconfig32
-rw-r--r--drivers/video/Makefile1
-rw-r--r--drivers/video/atmel_lcdfb.c2
-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/backlight/da903x.c2
-rw-r--r--drivers/video/backlight/lcd.c11
-rw-r--r--drivers/video/cirrusfb.c3
-rw-r--r--drivers/video/console/fbcon.c15
-rw-r--r--drivers/video/fbmem.c65
-rw-r--r--drivers/video/macfb.c74
-rw-r--r--drivers/video/mb862xx/Makefile5
-rw-r--r--drivers/video/mb862xx/mb862xx_reg.h138
-rw-r--r--drivers/video/mb862xx/mb862xxfb.c1061
-rw-r--r--drivers/video/mb862xx/mb862xxfb.h83
-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/pxafb.c5
-rw-r--r--drivers/video/tmiofb.c10
-rw-r--r--drivers/video/via/viafbdev.c17
-rw-r--r--drivers/video/xen-fbfront.c6
-rw-r--r--drivers/video/xilinxfb.c5
-rw-r--r--drivers/w1/masters/Kconfig9
-rw-r--r--drivers/w1/masters/Makefile1
-rw-r--r--drivers/w1/masters/omap_hdq.c725
-rw-r--r--drivers/w1/slaves/Kconfig7
-rw-r--r--drivers/w1/slaves/Makefile2
-rw-r--r--drivers/w1/slaves/w1_bq27000.c123
-rw-r--r--drivers/w1/w1.h1
-rw-r--r--drivers/w1/w1_io.c3
-rw-r--r--drivers/watchdog/Kconfig8
-rw-r--r--drivers/watchdog/at91sam9_wdt.c2
-rw-r--r--drivers/watchdog/booke_wdt.c5
-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--drivers/xen/balloon.c10
-rw-r--r--fs/Makefile2
-rw-r--r--fs/autofs4/dev-ioctl.c5
-rw-r--r--fs/autofs4/expire.c19
-rw-r--r--fs/block_dev.c44
-rw-r--r--fs/buffer.c1
-rw-r--r--fs/cifs/CHANGES10
-rw-r--r--fs/cifs/cifs_debug.c277
-rw-r--r--fs/cifs/cifs_dfs_ref.c71
-rw-r--r--fs/cifs/cifs_spnego.c4
-rw-r--r--fs/cifs/cifsfs.c30
-rw-r--r--fs/cifs/cifsglob.h51
-rw-r--r--fs/cifs/cifsproto.h2
-rw-r--r--fs/cifs/cifssmb.c137
-rw-r--r--fs/cifs/connect.c873
-rw-r--r--fs/cifs/file.c107
-rw-r--r--fs/cifs/inode.c4
-rw-r--r--fs/cifs/misc.c93
-rw-r--r--fs/cifs/readdir.c5
-rw-r--r--fs/cifs/transport.c48
-rw-r--r--fs/dlm/lockspace.c2
-rw-r--r--fs/ecryptfs/keystore.c31
-rw-r--r--fs/eventpoll.c85
-rw-r--r--fs/exec.c10
-rw-r--r--fs/exportfs/expfs.c4
-rw-r--r--fs/ext3/super.c18
-rw-r--r--fs/ext4/balloc.c4
-rw-r--r--fs/ext4/ialloc.c2
-rw-r--r--fs/ext4/inode.c7
-rw-r--r--fs/ext4/mballoc.c1
-rw-r--r--fs/ext4/super.c24
-rw-r--r--fs/fat/Makefile6
-rw-r--r--fs/fat/cache.c25
-rw-r--r--fs/fat/dir.c20
-rw-r--r--fs/fat/fat.h329
-rw-r--r--fs/fat/fatent.c24
-rw-r--r--fs/fat/file.c49
-rw-r--r--fs/fat/inode.c131
-rw-r--r--fs/fat/misc.c155
-rw-r--r--fs/fat/namei_msdos.c (renamed from fs/msdos/namei.c)42
-rw-r--r--fs/fat/namei_vfat.c (renamed from fs/vfat/namei.c)161
-rw-r--r--fs/fcntl.c7
-rw-r--r--fs/hostfs/hostfs.h2
-rw-r--r--fs/hostfs/hostfs_kern.c4
-rw-r--r--fs/hostfs/hostfs_user.c2
-rw-r--r--fs/inotify.c152
-rw-r--r--fs/ioctl.c12
-rw-r--r--fs/jbd/checkpoint.c31
-rw-r--r--fs/jbd2/checkpoint.c32
-rw-r--r--fs/jbd2/journal.c2
-rw-r--r--fs/jffs2/background.c10
-rw-r--r--fs/jffs2/compr_lzo.c15
-rw-r--r--fs/jffs2/nodemgmt.c2
-rw-r--r--fs/lockd/host.c3
-rw-r--r--fs/lockd/svc.c1
-rw-r--r--fs/msdos/Makefile7
-rw-r--r--fs/namei.c2
-rw-r--r--fs/namespace.c4
-rw-r--r--fs/nfsd/nfs4recover.c2
-rw-r--r--fs/nfsd/nfs4state.c1
-rw-r--r--fs/nfsd/vfs.c5
-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/file.c27
-rw-r--r--fs/ocfs2/inode.c6
-rw-r--r--fs/ocfs2/journal.c1
-rw-r--r--fs/ocfs2/mmap.c6
-rw-r--r--fs/ocfs2/namei.c8
-rw-r--r--fs/ocfs2/ocfs2.h5
-rw-r--r--fs/ocfs2/ocfs2_fs.h25
-rw-r--r--fs/ocfs2/stack_user.c3
-rw-r--r--fs/ocfs2/xattr.c376
-rw-r--r--fs/ocfs2/xattr.h38
-rw-r--r--fs/partitions/check.c31
-rw-r--r--fs/proc/base.c2
-rw-r--r--fs/proc/proc_sysctl.c1
-rw-r--r--fs/proc/task_mmu.c4
-rw-r--r--fs/proc/uptime.c38
-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/vfat/Makefile7
-rw-r--r--fs/xfs/xfs_da_btree.c5
-rw-r--r--fs/xfs/xfs_dir2.c6
-rw-r--r--fs/xfs/xfs_inode.c2
-rw-r--r--fs/xfs/xfs_log.c39
-rw-r--r--fs/xfs/xfs_log_recover.c8
-rw-r--r--fs/xfs/xfs_mount.c5
-rw-r--r--fs/xfs/xfs_rename.c2
-rw-r--r--include/acpi/acpi_bus.h2
-rw-r--r--include/acpi/acpi_drivers.h22
-rw-r--r--include/acpi/acpixf.h4
-rw-r--r--include/acpi/acpredef.h4
-rw-r--r--include/acpi/actypes.h1
-rw-r--r--include/asm-generic/atomic.h2
-rw-r--r--include/asm-generic/audit_write.h2
-rw-r--r--include/asm-generic/memory_model.h2
-rw-r--r--include/asm-mn10300/uaccess.h2
-rw-r--r--include/drm/drmP.h6
-rw-r--r--include/drm/drm_pciids.h46
-rw-r--r--include/drm/i915_drm.h13
-rw-r--r--include/linux/acpi.h48
-rw-r--r--include/linux/audit.h6
-rw-r--r--include/linux/bio.h6
-rw-r--r--include/linux/blkdev.h10
-rw-r--r--include/linux/c2port.h65
-rw-r--r--include/linux/can/core.h2
-rw-r--r--include/linux/cnt32_to_63.h22
-rw-r--r--include/linux/compat.h2
-rw-r--r--include/linux/cpumask.h559
-rw-r--r--include/linux/cpuset.h4
-rw-r--r--include/linux/fs.h33
-rw-r--r--include/linux/ftrace.h3
-rw-r--r--include/linux/genhd.h4
-rw-r--r--include/linux/highmem.h2
-rw-r--r--include/linux/hrtimer.h7
-rw-r--r--include/linux/ide.h8
-rw-r--r--include/linux/idr.h3
-rw-r--r--include/linux/if_vlan.h7
-rw-r--r--include/linux/inotify.h11
-rw-r--r--include/linux/input.h2
-rw-r--r--include/linux/io-mapping.h125
-rw-r--r--include/linux/irq.h11
-rw-r--r--include/linux/kernel.h42
-rw-r--r--include/linux/libata.h4
-rw-r--r--include/linux/lockdep.h5
-rw-r--r--include/linux/memory.h2
-rw-r--r--include/linux/mfd/wm8350/rtc.h2
-rw-r--r--include/linux/mlx4/device.h1
-rw-r--r--include/linux/mmc/card.h2
-rw-r--r--include/linux/mmc/host.h2
-rw-r--r--include/linux/mmc/sdio_func.h2
-rw-r--r--include/linux/msdos_fs.h281
-rw-r--r--include/linux/mtd/cfi.h22
-rw-r--r--include/linux/net.h6
-rw-r--r--include/linux/netdevice.h7
-rw-r--r--include/linux/netfilter/x_tables.h2
-rw-r--r--include/linux/page_cgroup.h4
-rw-r--r--include/linux/pci.h2
-rw-r--r--include/linux/ratelimit.h7
-rw-r--r--include/linux/ring_buffer.h3
-rw-r--r--include/linux/sched.h7
-rw-r--r--include/linux/security.h12
-rw-r--r--include/linux/serial_core.h3
-rw-r--r--include/linux/slab.h28
-rw-r--r--include/linux/smp.h11
-rw-r--r--include/linux/ssb/ssb.h42
-rw-r--r--include/linux/syscalls.h3
-rw-r--r--include/linux/telephony.h2
-rw-r--r--include/linux/timer.h5
-rw-r--r--include/linux/topology.h8
-rw-r--r--include/linux/usb.h2
-rw-r--r--include/linux/usb/ch9.h8
-rw-r--r--include/linux/workqueue.h8
-rw-r--r--include/net/af_unix.h2
-rw-r--r--include/net/mac80211.h20
-rw-r--r--include/net/request_sock.h1
-rw-r--r--include/net/scm.h5
-rw-r--r--include/net/sock.h2
-rw-r--r--include/net/timewait_sock.h1
-rw-r--r--include/scsi/scsi_transport_fc.h2
-rw-r--r--include/sound/core.h10
-rw-r--r--include/video/atmel_lcdc.h2
-rw-r--r--include/video/radeon.h18
-rw-r--r--init/Kconfig8
-rw-r--r--ipc/util.c14
-rw-r--r--kernel/Makefile4
-rw-r--r--kernel/audit.c32
-rw-r--r--kernel/audit_tree.c91
-rw-r--r--kernel/auditfilter.c14
-rw-r--r--kernel/auditsc.c24
-rw-r--r--kernel/cgroup.c24
-rw-r--r--kernel/cgroup_freezer.c19
-rw-r--r--kernel/cpu.c5
-rw-r--r--kernel/cpuset.c33
-rw-r--r--kernel/exit.c14
-rw-r--r--kernel/fork.c27
-rw-r--r--kernel/hrtimer.c26
-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/kallsyms.c17
-rw-r--r--kernel/kprobes.c23
-rw-r--r--kernel/latencytop.c2
-rw-r--r--kernel/lockdep.c4
-rw-r--r--kernel/panic.c1
-rw-r--r--kernel/posix-cpu-timers.c9
-rw-r--r--kernel/power/main.c2
-rw-r--r--kernel/power/swap.c2
-rw-r--r--kernel/profile.c6
-rw-r--r--kernel/ptrace.c4
-rw-r--r--kernel/relay.c16
-rw-r--r--kernel/sched.c48
-rw-r--r--kernel/sched_clock.c6
-rw-r--r--kernel/sched_debug.c46
-rw-r--r--kernel/sched_fair.c83
-rw-r--r--kernel/sched_features.h1
-rw-r--r--kernel/sched_stats.h15
-rw-r--r--kernel/smp.c18
-rw-r--r--kernel/softirq.c7
-rw-r--r--kernel/softlockup.c2
-rw-r--r--kernel/stop_machine.c5
-rw-r--r--kernel/sys_ni.c2
-rw-r--r--kernel/sysctl.c10
-rw-r--r--kernel/time/tick-sched.c4
-rw-r--r--kernel/time/timekeeping.c22
-rw-r--r--kernel/timer.c129
-rw-r--r--kernel/trace/Kconfig2
-rw-r--r--kernel/trace/ftrace.c147
-rw-r--r--kernel/trace/ring_buffer.c176
-rw-r--r--kernel/trace/trace.c61
-rw-r--r--kernel/trace/trace_mmiotrace.c16
-rw-r--r--kernel/trace/trace_stack.c24
-rw-r--r--kernel/workqueue.c45
-rw-r--r--lib/cpumask.c79
-rw-r--r--lib/dynamic_printk.c6
-rw-r--r--lib/idr.c22
-rw-r--r--lib/percpu_counter.c7
-rw-r--r--lib/scatterlist.c2
-rw-r--r--lib/swiotlb.c10
-rw-r--r--mm/backing-dev.c3
-rw-r--r--mm/hugetlb.c54
-rw-r--r--mm/internal.h29
-rw-r--r--mm/memory_hotplug.c12
-rw-r--r--mm/mempolicy.c18
-rw-r--r--mm/migrate.c66
-rw-r--r--mm/mlock.c18
-rw-r--r--mm/mmap.c2
-rw-r--r--mm/oom_kill.c3
-rw-r--r--mm/page_alloc.c32
-rw-r--r--mm/page_cgroup.c63
-rw-r--r--mm/page_isolation.c5
-rw-r--r--mm/slob.c2
-rw-r--r--mm/slub.c8
-rw-r--r--mm/sparse-vmemmap.c2
-rw-r--r--mm/sparse.c2
-rw-r--r--mm/swap.c20
-rw-r--r--mm/vmalloc.c52
-rw-r--r--mm/vmscan.c46
-rw-r--r--net/8021q/vlan_core.c46
-rw-r--r--net/8021q/vlanproc.c2
-rw-r--r--net/9p/Kconfig10
-rw-r--r--net/9p/client.c59
-rw-r--r--net/9p/trans_rdma.c5
-rw-r--r--net/atm/svc.c6
-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/compat.c54
-rw-r--r--net/core/dev.c3
-rw-r--r--net/core/netpoll.c2
-rw-r--r--net/core/pktgen.c9
-rw-r--r--net/core/rtnetlink.c4
-rw-r--r--net/core/scm.c22
-rw-r--r--net/core/skbuff.c4
-rw-r--r--net/core/sock.c33
-rw-r--r--net/dsa/slave.c72
-rw-r--r--net/dsa/tag_dsa.c1
-rw-r--r--net/dsa/tag_edsa.c1
-rw-r--r--net/dsa/tag_trailer.c1
-rw-r--r--net/ipv4/af_inet.c1
-rw-r--r--net/ipv4/ip_input.c10
-rw-r--r--net/ipv4/ipmr.c9
-rw-r--r--net/ipv4/netfilter/nf_nat_rule.c2
-rw-r--r--net/ipv4/proc.c58
-rw-r--r--net/ipv4/tcp.c3
-rw-r--r--net/ipv4/tcp_htcp.c14
-rw-r--r--net/ipv4/tcp_output.c15
-rw-r--r--net/ipv4/tcp_vegas.c82
-rw-r--r--net/ipv4/udp.c1
-rw-r--r--net/ipv4/xfrm4_state.c1
-rw-r--r--net/ipv6/addrconf.c4
-rw-r--r--net/ipv6/datagram.c5
-rw-r--r--net/ipv6/ip6mr.c13
-rw-r--r--net/ipv6/ipv6_sockglue.c5
-rw-r--r--net/ipv6/ndisc.c7
-rw-r--r--net/ipv6/proc.c6
-rw-r--r--net/ipv6/udp.c28
-rw-r--r--net/ipv6/xfrm6_state.c1
-rw-r--r--net/key/af_key.c1
-rw-r--r--net/mac80211/debugfs_sta.c2
-rw-r--r--net/mac80211/mlme.c22
-rw-r--r--net/mac80211/sta_info.c2
-rw-r--r--net/mac80211/wext.c8
-rw-r--r--net/netfilter/ipvs/ip_vs_xmit.c3
-rw-r--r--net/netfilter/nf_conntrack_core.c2
-rw-r--r--net/netfilter/nf_conntrack_helper.c3
-rw-r--r--net/netfilter/nf_conntrack_netlink.c7
-rw-r--r--net/netfilter/nf_conntrack_proto.c5
-rw-r--r--net/netfilter/xt_socket.c2
-rw-r--r--net/netlabel/netlabel_unlabeled.c48
-rw-r--r--net/phonet/af_phonet.c56
-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/rfkill/rfkill.c2
-rw-r--r--net/rose/af_rose.c10
-rw-r--r--net/sched/sch_api.c2
-rw-r--r--net/sched/sch_generic.c7
-rw-r--r--net/sched/sch_netem.c3
-rw-r--r--net/socket.c80
-rw-r--r--net/sunrpc/auth_generic.c20
-rw-r--r--net/sunrpc/svcsock.c9
-rw-r--r--net/unix/af_unix.c33
-rw-r--r--net/unix/garbage.c62
-rw-r--r--net/wireless/reg.c4
-rw-r--r--net/xfrm/xfrm_policy.c5
-rw-r--r--net/xfrm/xfrm_user.c2
-rwxr-xr-xscripts/kernel-doc10
-rw-r--r--scripts/package/builddeb24
-rw-r--r--security/keys/internal.h1
-rw-r--r--security/keys/process_keys.c2
-rw-r--r--security/keys/request_key.c4
-rw-r--r--sound/aoa/soundbus/core.c2
-rw-r--r--sound/core/rawmidi.c8
-rw-r--r--sound/drivers/ml403-ac97cr.c4
-rw-r--r--sound/drivers/pcsp/pcsp_input.c4
-rw-r--r--sound/isa/Kconfig2
-rw-r--r--sound/isa/ad1848/ad1848.c6
-rw-r--r--sound/isa/adlib.c12
-rw-r--r--sound/isa/cs423x/cs4231.c8
-rw-r--r--sound/isa/cs423x/cs4236.c8
-rw-r--r--sound/isa/es1688/es1688.c9
-rw-r--r--sound/isa/gus/gusclassic.c13
-rw-r--r--sound/isa/gus/gusextreme.c19
-rw-r--r--sound/isa/sb/sb8.c4
-rw-r--r--sound/pci/emu10k1/emu10k1_main.c3
-rw-r--r--sound/pci/hda/hda_beep.c8
-rw-r--r--sound/pci/hda/hda_beep.h1
-rw-r--r--sound/pci/hda/hda_codec.c4
-rw-r--r--sound/pci/hda/hda_proc.c2
-rw-r--r--sound/pci/hda/patch_analog.c2
-rw-r--r--sound/pci/hda/patch_realtek.c30
-rw-r--r--sound/pci/hda/patch_sigmatel.c368
-rw-r--r--sound/pci/pcxhr/pcxhr.c5
-rw-r--r--sound/pci/rme9652/hdsp.c27
-rw-r--r--sound/soc/fsl/Kconfig3
-rw-r--r--sound/soc/soc-core.c4
-rw-r--r--sound/sound_core.c6
1372 files changed, 35525 insertions, 14728 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index edef85ce1195..2a39aeba1464 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -42,14 +42,8 @@ IRQ.txt
42 - description of what an IRQ is. 42 - description of what an IRQ is.
43ManagementStyle 43ManagementStyle
44 - how to (attempt to) manage kernel hackers. 44 - how to (attempt to) manage kernel hackers.
45MSI-HOWTO.txt
46 - the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
47RCU/ 45RCU/
48 - directory with info on RCU (read-copy update). 46 - directory with info on RCU (read-copy update).
49README.DAC960
50 - info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
51README.cycladesZ
52 - info on Cyclades-Z firmware loading.
53SAK.txt 47SAK.txt
54 - info on Secure Attention Keys. 48 - info on Secure Attention Keys.
55SM501.txt 49SM501.txt
@@ -86,20 +80,16 @@ blackfin/
86 - directory with documentation for the Blackfin arch. 80 - directory with documentation for the Blackfin arch.
87block/ 81block/
88 - info on the Block I/O (BIO) layer. 82 - info on the Block I/O (BIO) layer.
83blockdev/
84 - info on block devices & drivers
89cachetlb.txt 85cachetlb.txt
90 - describes the cache/TLB flushing interfaces Linux uses. 86 - describes the cache/TLB flushing interfaces Linux uses.
91cciss.txt
92 - info, major/minor #'s for Compaq's SMART Array Controllers.
93cdrom/ 87cdrom/
94 - directory with information on the CD-ROM drivers that Linux has. 88 - directory with information on the CD-ROM drivers that Linux has.
95computone.txt
96 - info on Computone Intelliport II/Plus Multiport Serial Driver.
97connector/ 89connector/
98 - docs on the netlink based userspace<->kernel space communication mod. 90 - docs on the netlink based userspace<->kernel space communication mod.
99console/ 91console/
100 - documentation on Linux console drivers. 92 - documentation on Linux console drivers.
101cpqarray.txt
102 - info on using Compaq's SMART2 Intelligent Disk Array Controllers.
103cpu-freq/ 93cpu-freq/
104 - info on CPU frequency and voltage scaling. 94 - info on CPU frequency and voltage scaling.
105cpu-hotplug.txt 95cpu-hotplug.txt
@@ -126,8 +116,6 @@ device-mapper/
126 - directory with info on Device Mapper. 116 - directory with info on Device Mapper.
127devices.txt 117devices.txt
128 - plain ASCII listing of all the nodes in /dev/ with major minor #'s. 118 - plain ASCII listing of all the nodes in /dev/ with major minor #'s.
129digiepca.txt
130 - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
131dontdiff 119dontdiff
132 - file containing a list of files that should never be diff'ed. 120 - file containing a list of files that should never be diff'ed.
133driver-model/ 121driver-model/
@@ -152,14 +140,10 @@ filesystems/
152 - info on the vfs and the various filesystems that Linux supports. 140 - info on the vfs and the various filesystems that Linux supports.
153firmware_class/ 141firmware_class/
154 - request_firmware() hotplug interface info. 142 - request_firmware() hotplug interface info.
155floppy.txt
156 - notes and driver options for the floppy disk driver.
157frv/ 143frv/
158 - Fujitsu FR-V Linux documentation. 144 - Fujitsu FR-V Linux documentation.
159gpio.txt 145gpio.txt
160 - overview of GPIO (General Purpose Input/Output) access conventions. 146 - overview of GPIO (General Purpose Input/Output) access conventions.
161hayes-esp.txt
162 - info on using the Hayes ESP serial driver.
163highuid.txt 147highuid.txt
164 - notes on the change from 16 bit to 32 bit user/group IDs. 148 - notes on the change from 16 bit to 32 bit user/group IDs.
165timers/ 149timers/
@@ -186,8 +170,6 @@ io_ordering.txt
186 - info on ordering I/O writes to memory-mapped addresses. 170 - info on ordering I/O writes to memory-mapped addresses.
187ioctl/ 171ioctl/
188 - directory with documents describing various IOCTL calls. 172 - directory with documents describing various IOCTL calls.
189ioctl-number.txt
190 - how to implement and register device/driver ioctl calls.
191iostats.txt 173iostats.txt
192 - info on I/O statistics Linux kernel provides. 174 - info on I/O statistics Linux kernel provides.
193irqflags-tracing.txt 175irqflags-tracing.txt
@@ -250,14 +232,10 @@ mips/
250 - directory with info about Linux on MIPS architecture. 232 - directory with info about Linux on MIPS architecture.
251mono.txt 233mono.txt
252 - how to execute Mono-based .NET binaries with the help of BINFMT_MISC. 234 - how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
253moxa-smartio
254 - file with info on installing/using Moxa multiport serial driver.
255mutex-design.txt 235mutex-design.txt
256 - info on the generic mutex subsystem. 236 - info on the generic mutex subsystem.
257namespaces/ 237namespaces/
258 - directory with various information about namespaces 238 - directory with various information about namespaces
259nbd.txt
260 - info on a TCP implementation of a network block device.
261netlabel/ 239netlabel/
262 - directory with information on the NetLabel subsystem. 240 - directory with information on the NetLabel subsystem.
263networking/ 241networking/
@@ -270,8 +248,6 @@ numastat.txt
270 - info on how to read Numa policy hit/miss statistics in sysfs. 248 - info on how to read Numa policy hit/miss statistics in sysfs.
271oops-tracing.txt 249oops-tracing.txt
272 - how to decode those nasty internal kernel error dump messages. 250 - how to decode those nasty internal kernel error dump messages.
273paride.txt
274 - information about the parallel port IDE subsystem.
275parisc/ 251parisc/
276 - directory with info on using Linux on PA-RISC architecture. 252 - directory with info on using Linux on PA-RISC architecture.
277parport.txt 253parport.txt
@@ -290,20 +266,16 @@ powerpc/
290 - directory with info on using Linux with the PowerPC. 266 - directory with info on using Linux with the PowerPC.
291preempt-locking.txt 267preempt-locking.txt
292 - info on locking under a preemptive kernel. 268 - info on locking under a preemptive kernel.
269printk-formats.txt
270 - how to get printk format specifiers right
293prio_tree.txt 271prio_tree.txt
294 - info on radix-priority-search-tree use for indexing vmas. 272 - info on radix-priority-search-tree use for indexing vmas.
295ramdisk.txt
296 - short guide on how to set up and use the RAM disk.
297rbtree.txt 273rbtree.txt
298 - info on what red-black trees are and what they are for. 274 - info on what red-black trees are and what they are for.
299riscom8.txt
300 - notes on using the RISCom/8 multi-port serial driver.
301robust-futex-ABI.txt 275robust-futex-ABI.txt
302 - documentation of the robust futex ABI. 276 - documentation of the robust futex ABI.
303robust-futexes.txt 277robust-futexes.txt
304 - a description of what robust futexes are. 278 - a description of what robust futexes are.
305rocket.txt
306 - info on the Comtrol RocketPort multiport serial driver.
307rt-mutex-design.txt 279rt-mutex-design.txt
308 - description of the RealTime mutex implementation design. 280 - description of the RealTime mutex implementation design.
309rt-mutex.txt 281rt-mutex.txt
@@ -332,8 +304,6 @@ sparc/
332 - directory with info on using Linux on Sparc architecture. 304 - directory with info on using Linux on Sparc architecture.
333sparse.txt 305sparse.txt
334 - info on how to obtain and use the sparse tool for typechecking. 306 - info on how to obtain and use the sparse tool for typechecking.
335specialix.txt
336 - info on hardware/driver for specialix IO8+ multiport serial card.
337spi/ 307spi/
338 - overview of Linux kernel Serial Peripheral Interface (SPI) support. 308 - overview of Linux kernel Serial Peripheral Interface (SPI) support.
339spinlocks.txt 309spinlocks.txt
@@ -342,14 +312,10 @@ stable_api_nonsense.txt
342 - info on why the kernel does not have a stable in-kernel api or abi. 312 - info on why the kernel does not have a stable in-kernel api or abi.
343stable_kernel_rules.txt 313stable_kernel_rules.txt
344 - rules and procedures for the -stable kernel releases. 314 - rules and procedures for the -stable kernel releases.
345stallion.txt
346 - info on using the Stallion multiport serial driver.
347svga.txt 315svga.txt
348 - short guide on selecting video modes at boot via VGA BIOS. 316 - short guide on selecting video modes at boot via VGA BIOS.
349sysfs-rules.txt 317sysfs-rules.txt
350 - How not to use sysfs. 318 - How not to use sysfs.
351sx.txt
352 - info on the Specialix SX/SI multiport serial driver.
353sysctl/ 319sysctl/
354 - directory with info on the /proc/sys/* files. 320 - directory with info on the /proc/sys/* files.
355sysrq.txt 321sysrq.txt
@@ -358,8 +324,6 @@ telephony/
358 - directory with info on telephony (e.g. voice over IP) support. 324 - directory with info on telephony (e.g. voice over IP) support.
359time_interpolators.txt 325time_interpolators.txt
360 - info on time interpolators. 326 - info on time interpolators.
361tty.txt
362 - guide to the locking policies of the tty layer.
363uml/ 327uml/
364 - directory with information about User Mode Linux. 328 - directory with information about User Mode Linux.
365unicode.txt 329unicode.txt
diff --git a/Documentation/ABI/testing/sysfs-c2port b/Documentation/ABI/testing/sysfs-c2port
new file mode 100644
index 000000000000..716cffc457e9
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-c2port
@@ -0,0 +1,88 @@
1What: /sys/class/c2port/
2Date: October 2008
3Contact: Rodolfo Giometti <giometti@linux.it>
4Description:
5 The /sys/class/c2port/ directory will contain files and
6 directories that will provide a unified interface to
7 the C2 port interface.
8
9What: /sys/class/c2port/c2portX
10Date: October 2008
11Contact: Rodolfo Giometti <giometti@linux.it>
12Description:
13 The /sys/class/c2port/c2portX/ directory is related to X-th
14 C2 port into the system. Each directory will contain files to
15 manage and control its C2 port.
16
17What: /sys/class/c2port/c2portX/access
18Date: October 2008
19Contact: Rodolfo Giometti <giometti@linux.it>
20Description:
21 The /sys/class/c2port/c2portX/access file enable the access
22 to the C2 port from the system. No commands can be sent
23 till this entry is set to 0.
24
25What: /sys/class/c2port/c2portX/dev_id
26Date: October 2008
27Contact: Rodolfo Giometti <giometti@linux.it>
28Description:
29 The /sys/class/c2port/c2portX/dev_id file show the device ID
30 of the connected micro.
31
32What: /sys/class/c2port/c2portX/flash_access
33Date: October 2008
34Contact: Rodolfo Giometti <giometti@linux.it>
35Description:
36 The /sys/class/c2port/c2portX/flash_access file enable the
37 access to the on-board flash of the connected micro.
38 No commands can be sent till this entry is set to 0.
39
40What: /sys/class/c2port/c2portX/flash_block_size
41Date: October 2008
42Contact: Rodolfo Giometti <giometti@linux.it>
43Description:
44 The /sys/class/c2port/c2portX/flash_block_size file show
45 the on-board flash block size of the connected micro.
46
47What: /sys/class/c2port/c2portX/flash_blocks_num
48Date: October 2008
49Contact: Rodolfo Giometti <giometti@linux.it>
50Description:
51 The /sys/class/c2port/c2portX/flash_blocks_num file show
52 the on-board flash blocks number of the connected micro.
53
54What: /sys/class/c2port/c2portX/flash_data
55Date: October 2008
56Contact: Rodolfo Giometti <giometti@linux.it>
57Description:
58 The /sys/class/c2port/c2portX/flash_data file export
59 the content of the on-board flash of the connected micro.
60
61What: /sys/class/c2port/c2portX/flash_erase
62Date: October 2008
63Contact: Rodolfo Giometti <giometti@linux.it>
64Description:
65 The /sys/class/c2port/c2portX/flash_erase file execute
66 the "erase" command on the on-board flash of the connected
67 micro.
68
69What: /sys/class/c2port/c2portX/flash_erase
70Date: October 2008
71Contact: Rodolfo Giometti <giometti@linux.it>
72Description:
73 The /sys/class/c2port/c2portX/flash_erase file show the
74 on-board flash size of the connected micro.
75
76What: /sys/class/c2port/c2portX/reset
77Date: October 2008
78Contact: Rodolfo Giometti <giometti@linux.it>
79Description:
80 The /sys/class/c2port/c2portX/reset file execute a "reset"
81 command on the connected micro.
82
83What: /sys/class/c2port/c2portX/rev_id
84Date: October 2008
85Contact: Rodolfo Giometti <giometti@linux.it>
86Description:
87 The /sys/class/c2port/c2portX/rev_id file show the revision ID
88 of the connected micro.
diff --git a/Documentation/ABI/testing/sysfs-firmware-acpi b/Documentation/ABI/testing/sysfs-firmware-acpi
index f27be7d1a49f..e8ffc70ffe12 100644
--- a/Documentation/ABI/testing/sysfs-firmware-acpi
+++ b/Documentation/ABI/testing/sysfs-firmware-acpi
@@ -89,7 +89,7 @@ Description:
89 89
90 error - an interrupt that can't be accounted for above. 90 error - an interrupt that can't be accounted for above.
91 91
92 invalid: it's either a wakeup GPE or a GPE/Fixed Event that 92 invalid: it's either a GPE or a Fixed Event that
93 doesn't have an event handler. 93 doesn't have an event handler.
94 94
95 disable: the GPE/Fixed Event is valid but disabled. 95 disable: the GPE/Fixed Event is valid but disabled.
@@ -117,30 +117,30 @@ Description:
117 and other user space applications so that the machine won't shutdown 117 and other user space applications so that the machine won't shutdown
118 when pressing the power button. 118 when pressing the power button.
119 # cat ff_pwr_btn 119 # cat ff_pwr_btn
120 0 120 0 enabled
121 # press the power button for 3 times; 121 # press the power button for 3 times;
122 # cat ff_pwr_btn 122 # cat ff_pwr_btn
123 3 123 3 enabled
124 # echo disable > ff_pwr_btn 124 # echo disable > ff_pwr_btn
125 # cat ff_pwr_btn 125 # cat ff_pwr_btn
126 disable 126 3 disabled
127 # press the power button for 3 times; 127 # press the power button for 3 times;
128 # cat ff_pwr_btn 128 # cat ff_pwr_btn
129 disable 129 3 disabled
130 # echo enable > ff_pwr_btn 130 # echo enable > ff_pwr_btn
131 # cat ff_pwr_btn 131 # cat ff_pwr_btn
132 4 132 4 enabled
133 /* 133 /*
134 * this is because the status bit is set even if the enable bit is cleared, 134 * this is because the status bit is set even if the enable bit is cleared,
135 * and it triggers an ACPI fixed event when the enable bit is set again 135 * and it triggers an ACPI fixed event when the enable bit is set again
136 */ 136 */
137 # press the power button for 3 times; 137 # press the power button for 3 times;
138 # cat ff_pwr_btn 138 # cat ff_pwr_btn
139 7 139 7 enabled
140 # echo disable > ff_pwr_btn 140 # echo disable > ff_pwr_btn
141 # press the power button for 3 times; 141 # press the power button for 3 times;
142 # echo clear > ff_pwr_btn /* clear the status bit */ 142 # echo clear > ff_pwr_btn /* clear the status bit */
143 # echo disable > ff_pwr_btn 143 # echo disable > ff_pwr_btn
144 # cat ff_pwr_btn 144 # cat ff_pwr_btn
145 7 145 7 enabled
146 146
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/PCI/00-INDEX b/Documentation/PCI/00-INDEX
index 49f43946c6b6..812b17fe3ed0 100644
--- a/Documentation/PCI/00-INDEX
+++ b/Documentation/PCI/00-INDEX
@@ -1,5 +1,7 @@
100-INDEX 100-INDEX
2 - this file 2 - this file
3MSI-HOWTO.txt
4 - the Message Signaled Interrupts (MSI) Driver Guide HOWTO and FAQ.
3PCI-DMA-mapping.txt 5PCI-DMA-mapping.txt
4 - info for PCI drivers using DMA portably across all platforms 6 - info for PCI drivers using DMA portably across all platforms
5PCIEBUS-HOWTO.txt 7PCIEBUS-HOWTO.txt
diff --git a/Documentation/MSI-HOWTO.txt b/Documentation/PCI/MSI-HOWTO.txt
index 256defd7e174..256defd7e174 100644
--- a/Documentation/MSI-HOWTO.txt
+++ b/Documentation/PCI/MSI-HOWTO.txt
diff --git a/Documentation/acpi/debug.txt b/Documentation/acpi/debug.txt
new file mode 100644
index 000000000000..65bf47c46b6d
--- /dev/null
+++ b/Documentation/acpi/debug.txt
@@ -0,0 +1,148 @@
1 ACPI Debug Output
2
3
4The ACPI CA, the Linux ACPI core, and some ACPI drivers can generate debug
5output. This document describes how to use this facility.
6
7Compile-time configuration
8--------------------------
9
10ACPI debug output is globally enabled by CONFIG_ACPI_DEBUG. If this config
11option is turned off, the debug messages are not even built into the
12kernel.
13
14Boot- and run-time configuration
15--------------------------------
16
17When CONFIG_ACPI_DEBUG=y, you can select the component and level of messages
18you're interested in. At boot-time, use the acpi.debug_layer and
19acpi.debug_level kernel command line options. After boot, you can use the
20debug_layer and debug_level files in /sys/module/acpi/parameters/ to control
21the debug messages.
22
23debug_layer (component)
24-----------------------
25
26The "debug_layer" is a mask that selects components of interest, e.g., a
27specific driver or part of the ACPI interpreter. To build the debug_layer
28bitmask, look for the "#define _COMPONENT" in an ACPI source file.
29
30You can set the debug_layer mask at boot-time using the acpi.debug_layer
31command line argument, and you can change it after boot by writing values
32to /sys/module/acpi/parameters/debug_layer.
33
34The possible components are defined in include/acpi/acoutput.h and
35include/acpi/acpi_drivers.h. Reading /sys/module/acpi/parameters/debug_layer
36shows the supported mask values, currently these:
37
38 ACPI_UTILITIES 0x00000001
39 ACPI_HARDWARE 0x00000002
40 ACPI_EVENTS 0x00000004
41 ACPI_TABLES 0x00000008
42 ACPI_NAMESPACE 0x00000010
43 ACPI_PARSER 0x00000020
44 ACPI_DISPATCHER 0x00000040
45 ACPI_EXECUTER 0x00000080
46 ACPI_RESOURCES 0x00000100
47 ACPI_CA_DEBUGGER 0x00000200
48 ACPI_OS_SERVICES 0x00000400
49 ACPI_CA_DISASSEMBLER 0x00000800
50 ACPI_COMPILER 0x00001000
51 ACPI_TOOLS 0x00002000
52 ACPI_BUS_COMPONENT 0x00010000
53 ACPI_AC_COMPONENT 0x00020000
54 ACPI_BATTERY_COMPONENT 0x00040000
55 ACPI_BUTTON_COMPONENT 0x00080000
56 ACPI_SBS_COMPONENT 0x00100000
57 ACPI_FAN_COMPONENT 0x00200000
58 ACPI_PCI_COMPONENT 0x00400000
59 ACPI_POWER_COMPONENT 0x00800000
60 ACPI_CONTAINER_COMPONENT 0x01000000
61 ACPI_SYSTEM_COMPONENT 0x02000000
62 ACPI_THERMAL_COMPONENT 0x04000000
63 ACPI_MEMORY_DEVICE_COMPONENT 0x08000000
64 ACPI_VIDEO_COMPONENT 0x10000000
65 ACPI_PROCESSOR_COMPONENT 0x20000000
66
67debug_level
68-----------
69
70The "debug_level" is a mask that selects different types of messages, e.g.,
71those related to initialization, method execution, informational messages, etc.
72To build debug_level, look at the level specified in an ACPI_DEBUG_PRINT()
73statement.
74
75The ACPI interpreter uses several different levels, but the Linux
76ACPI core and ACPI drivers generally only use ACPI_LV_INFO.
77
78You can set the debug_level mask at boot-time using the acpi.debug_level
79command line argument, and you can change it after boot by writing values
80to /sys/module/acpi/parameters/debug_level.
81
82The possible levels are defined in include/acpi/acoutput.h. Reading
83/sys/module/acpi/parameters/debug_level shows the supported mask values,
84currently these:
85
86 ACPI_LV_INIT 0x00000001
87 ACPI_LV_DEBUG_OBJECT 0x00000002
88 ACPI_LV_INFO 0x00000004
89 ACPI_LV_INIT_NAMES 0x00000020
90 ACPI_LV_PARSE 0x00000040
91 ACPI_LV_LOAD 0x00000080
92 ACPI_LV_DISPATCH 0x00000100
93 ACPI_LV_EXEC 0x00000200
94 ACPI_LV_NAMES 0x00000400
95 ACPI_LV_OPREGION 0x00000800
96 ACPI_LV_BFIELD 0x00001000
97 ACPI_LV_TABLES 0x00002000
98 ACPI_LV_VALUES 0x00004000
99 ACPI_LV_OBJECTS 0x00008000
100 ACPI_LV_RESOURCES 0x00010000
101 ACPI_LV_USER_REQUESTS 0x00020000
102 ACPI_LV_PACKAGE 0x00040000
103 ACPI_LV_ALLOCATIONS 0x00100000
104 ACPI_LV_FUNCTIONS 0x00200000
105 ACPI_LV_OPTIMIZATIONS 0x00400000
106 ACPI_LV_MUTEX 0x01000000
107 ACPI_LV_THREADS 0x02000000
108 ACPI_LV_IO 0x04000000
109 ACPI_LV_INTERRUPTS 0x08000000
110 ACPI_LV_AML_DISASSEMBLE 0x10000000
111 ACPI_LV_VERBOSE_INFO 0x20000000
112 ACPI_LV_FULL_TABLES 0x40000000
113 ACPI_LV_EVENTS 0x80000000
114
115Examples
116--------
117
118For example, drivers/acpi/bus.c contains this:
119
120 #define _COMPONENT ACPI_BUS_COMPONENT
121 ...
122 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device insertion detected\n"));
123
124To turn on this message, set the ACPI_BUS_COMPONENT bit in acpi.debug_layer
125and the ACPI_LV_INFO bit in acpi.debug_level. (The ACPI_DEBUG_PRINT
126statement uses ACPI_DB_INFO, which is macro based on the ACPI_LV_INFO
127definition.)
128
129Enable all AML "Debug" output (stores to the Debug object while interpreting
130AML) during boot:
131
132 acpi.debug_layer=0xffffffff acpi.debug_level=0x2
133
134Enable PCI and PCI interrupt routing debug messages:
135
136 acpi.debug_layer=0x400000 acpi.debug_level=0x4
137
138Enable all ACPI hardware-related messages:
139
140 acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
141
142Enable all ACPI_DB_INFO messages after boot:
143
144 # echo 0x4 > /sys/module/acpi/parameters/debug_level
145
146Show all valid component values:
147
148 # cat /sys/module/acpi/parameters/debug_layer
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/blockdev/00-INDEX b/Documentation/blockdev/00-INDEX
new file mode 100644
index 000000000000..86f054c47013
--- /dev/null
+++ b/Documentation/blockdev/00-INDEX
@@ -0,0 +1,16 @@
100-INDEX
2 - this file
3README.DAC960
4 - info on Mylex DAC960/DAC1100 PCI RAID Controller Driver for Linux.
5cciss.txt
6 - info, major/minor #'s for Compaq's SMART Array Controllers.
7cpqarray.txt
8 - info on using Compaq's SMART2 Intelligent Disk Array Controllers.
9floppy.txt
10 - notes and driver options for the floppy disk driver.
11nbd.txt
12 - info on a TCP implementation of a network block device.
13paride.txt
14 - information about the parallel port IDE subsystem.
15ramdisk.txt
16 - short guide on how to set up and use the RAM disk.
diff --git a/Documentation/README.DAC960 b/Documentation/blockdev/README.DAC960
index 0e8f618ab534..0e8f618ab534 100644
--- a/Documentation/README.DAC960
+++ b/Documentation/blockdev/README.DAC960
diff --git a/Documentation/cciss.txt b/Documentation/blockdev/cciss.txt
index 8244c6442faa..89698e8df7d4 100644
--- a/Documentation/cciss.txt
+++ b/Documentation/blockdev/cciss.txt
@@ -21,11 +21,14 @@ This driver is known to work with the following cards:
21 * SA E200 21 * SA E200
22 * SA E200i 22 * SA E200i
23 * SA E500 23 * SA E500
24 * SA P700m
24 * SA P212 25 * SA P212
25 * SA P410 26 * SA P410
26 * SA P410i 27 * SA P410i
27 * SA P411 28 * SA P411
28 * SA P812 29 * SA P812
30 * SA P712m
31 * SA P711m
29 32
30Detecting drive failures: 33Detecting drive failures:
31------------------------- 34-------------------------
diff --git a/Documentation/cpqarray.txt b/Documentation/blockdev/cpqarray.txt
index c7154e20ef5e..c7154e20ef5e 100644
--- a/Documentation/cpqarray.txt
+++ b/Documentation/blockdev/cpqarray.txt
diff --git a/Documentation/floppy.txt b/Documentation/blockdev/floppy.txt
index 6ccab88705cb..6ccab88705cb 100644
--- a/Documentation/floppy.txt
+++ b/Documentation/blockdev/floppy.txt
diff --git a/Documentation/nbd.txt b/Documentation/blockdev/nbd.txt
index aeb93ffe6416..aeb93ffe6416 100644
--- a/Documentation/nbd.txt
+++ b/Documentation/blockdev/nbd.txt
diff --git a/Documentation/paride.txt b/Documentation/blockdev/paride.txt
index e4312676bdda..e4312676bdda 100644
--- a/Documentation/paride.txt
+++ b/Documentation/blockdev/paride.txt
diff --git a/Documentation/ramdisk.txt b/Documentation/blockdev/ramdisk.txt
index 6c820baa19a6..6c820baa19a6 100644
--- a/Documentation/ramdisk.txt
+++ b/Documentation/blockdev/ramdisk.txt
diff --git a/Documentation/c2port.txt b/Documentation/c2port.txt
new file mode 100644
index 000000000000..d9bf93ea4398
--- /dev/null
+++ b/Documentation/c2port.txt
@@ -0,0 +1,90 @@
1 C2 port support
2 ---------------
3
4(C) Copyright 2007 Rodolfo Giometti <giometti@enneenne.com>
5
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16
17
18Overview
19--------
20
21This driver implements the support for Linux of Silicon Labs (Silabs)
22C2 Interface used for in-system programming of micro controllers.
23
24By using this driver you can reprogram the in-system flash without EC2
25or EC3 debug adapter. This solution is also useful in those systems
26where the micro controller is connected via special GPIOs pins.
27
28References
29----------
30
31The C2 Interface main references are at (http://www.silabs.com)
32Silicon Laboratories site], see:
33
34- AN127: FLASH Programming via the C2 Interface at
35http://www.silabs.com/public/documents/tpub_doc/anote/Microcontrollers/Small_Form_Factor/en/an127.pdf, and
36
37- C2 Specification at
38http://www.silabs.com/public/documents/tpub_doc/spec/Microcontrollers/en/C2spec.pdf,
39
40however it implements a two wire serial communication protocol (bit
41banging) designed to enable in-system programming, debugging, and
42boundary-scan testing on low pin-count Silicon Labs devices. Currently
43this code supports only flash programming but extensions are easy to
44add.
45
46Using the driver
47----------------
48
49Once the driver is loaded you can use sysfs support to get C2port's
50info or read/write in-system flash.
51
52# ls /sys/class/c2port/c2port0/
53access flash_block_size flash_erase rev_id
54dev_id flash_blocks_num flash_size subsystem/
55flash_access flash_data reset uevent
56
57Initially the C2port access is disabled since you hardware may have
58such lines multiplexed with other devices so, to get access to the
59C2port, you need the command:
60
61# echo 1 > /sys/class/c2port/c2port0/access
62
63after that you should read the device ID and revision ID of the
64connected micro controller:
65
66# cat /sys/class/c2port/c2port0/dev_id
678
68# cat /sys/class/c2port/c2port0/rev_id
691
70
71However, for security reasons, the in-system flash access in not
72enabled yet, to do so you need the command:
73
74# echo 1 > /sys/class/c2port/c2port0/flash_access
75
76After that you can read the whole flash:
77
78# cat /sys/class/c2port/c2port0/flash_data > image
79
80erase it:
81
82# echo 1 > /sys/class/c2port/c2port0/flash_erase
83
84and write it:
85
86# cat image > /sys/class/c2port/c2port0/flash_data
87
88after writing you have to reset the device to execute the new code:
89
90# echo 1 > /sys/class/c2port/c2port0/reset
diff --git a/Documentation/cgroups/freezer-subsystem.txt b/Documentation/cgroups/freezer-subsystem.txt
index c50ab58b72eb..41f37fea1276 100644
--- a/Documentation/cgroups/freezer-subsystem.txt
+++ b/Documentation/cgroups/freezer-subsystem.txt
@@ -1,4 +1,4 @@
1 The cgroup freezer is useful to batch job management system which start 1The cgroup freezer is useful to batch job management system which start
2and stop sets of tasks in order to schedule the resources of a machine 2and stop sets of tasks in order to schedule the resources of a machine
3according to the desires of a system administrator. This sort of program 3according to the desires of a system administrator. This sort of program
4is often used on HPC clusters to schedule access to the cluster as a 4is often used on HPC clusters to schedule access to the cluster as a
@@ -6,7 +6,7 @@ whole. The cgroup freezer uses cgroups to describe the set of tasks to
6be started/stopped by the batch job management system. It also provides 6be started/stopped by the batch job management system. It also provides
7a means to start and stop the tasks composing the job. 7a means to start and stop the tasks composing the job.
8 8
9 The cgroup freezer will also be useful for checkpointing running groups 9The cgroup freezer will also be useful for checkpointing running groups
10of tasks. The freezer allows the checkpoint code to obtain a consistent 10of tasks. The freezer allows the checkpoint code to obtain a consistent
11image of the tasks by attempting to force the tasks in a cgroup into a 11image of the tasks by attempting to force the tasks in a cgroup into a
12quiescent state. Once the tasks are quiescent another task can 12quiescent state. Once the tasks are quiescent another task can
@@ -16,7 +16,7 @@ recoverable error occur. This also allows the checkpointed tasks to be
16migrated between nodes in a cluster by copying the gathered information 16migrated between nodes in a cluster by copying the gathered information
17to another node and restarting the tasks there. 17to another node and restarting the tasks there.
18 18
19 Sequences of SIGSTOP and SIGCONT are not always sufficient for stopping 19Sequences of SIGSTOP and SIGCONT are not always sufficient for stopping
20and resuming tasks in userspace. Both of these signals are observable 20and resuming tasks in userspace. Both of these signals are observable
21from within the tasks we wish to freeze. While SIGSTOP cannot be caught, 21from within the tasks we wish to freeze. While SIGSTOP cannot be caught,
22blocked, or ignored it can be seen by waiting or ptracing parent tasks. 22blocked, or ignored it can be seen by waiting or ptracing parent tasks.
@@ -37,26 +37,29 @@ demonstrate this problem using nested bash shells:
37 37
38 <at this point 16990 exits and causes 16644 to exit too> 38 <at this point 16990 exits and causes 16644 to exit too>
39 39
40 This happens because bash can observe both signals and choose how it 40This happens because bash can observe both signals and choose how it
41responds to them. 41responds to them.
42 42
43 Another example of a program which catches and responds to these 43Another example of a program which catches and responds to these
44signals is gdb. In fact any program designed to use ptrace is likely to 44signals is gdb. In fact any program designed to use ptrace is likely to
45have a problem with this method of stopping and resuming tasks. 45have a problem with this method of stopping and resuming tasks.
46 46
47 In contrast, the cgroup freezer uses the kernel freezer code to 47In contrast, the cgroup freezer uses the kernel freezer code to
48prevent the freeze/unfreeze cycle from becoming visible to the tasks 48prevent the freeze/unfreeze cycle from becoming visible to the tasks
49being frozen. This allows the bash example above and gdb to run as 49being frozen. This allows the bash example above and gdb to run as
50expected. 50expected.
51 51
52 The freezer subsystem in the container filesystem defines a file named 52The freezer subsystem in the container filesystem defines a file named
53freezer.state. Writing "FROZEN" to the state file will freeze all tasks in the 53freezer.state. Writing "FROZEN" to the state file will freeze all tasks in the
54cgroup. Subsequently writing "THAWED" will unfreeze the tasks in the cgroup. 54cgroup. Subsequently writing "THAWED" will unfreeze the tasks in the cgroup.
55Reading will return the current state. 55Reading will return the current state.
56 56
57Note freezer.state doesn't exist in root cgroup, which means root cgroup
58is non-freezable.
59
57* Examples of usage : 60* Examples of usage :
58 61
59 # mkdir /containers/freezer 62 # mkdir /containers
60 # mount -t cgroup -ofreezer freezer /containers 63 # mount -t cgroup -ofreezer freezer /containers
61 # mkdir /containers/0 64 # mkdir /containers/0
62 # echo $some_pid > /containers/0/tasks 65 # echo $some_pid > /containers/0/tasks
@@ -94,6 +97,6 @@ things happens:
94 the freezer.state file 97 the freezer.state file
95 2) Userspace retries the freezing operation by writing "FROZEN" to 98 2) Userspace retries the freezing operation by writing "FROZEN" to
96 the freezer.state file (writing "FREEZING" is not legal 99 the freezer.state file (writing "FREEZING" is not legal
97 and returns EIO) 100 and returns EINVAL)
98 3) The tasks that blocked the cgroup from entering the "FROZEN" 101 3) The tasks that blocked the cgroup from entering the "FROZEN"
99 state disappear from the cgroup's set of tasks. 102 state disappear from the cgroup's set of tasks.
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/email-clients.txt b/Documentation/email-clients.txt
index 2ebb94d6ed8e..a618efab7b15 100644
--- a/Documentation/email-clients.txt
+++ b/Documentation/email-clients.txt
@@ -213,4 +213,29 @@ TkRat (GUI)
213 213
214Works. Use "Insert file..." or external editor. 214Works. Use "Insert file..." or external editor.
215 215
216~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
217Gmail (Web GUI)
218
219If you just have to use Gmail to send patches, it CAN be made to work. It
220requires a bit of external help, though.
221
222The first problem is that Gmail converts tabs to spaces. This will
223totally break your patches. To prevent this, you have to use a different
224editor. There is a firefox extension called "ViewSourceWith"
225(https://addons.mozilla.org/en-US/firefox/addon/394) which allows you to
226edit any text box in the editor of your choice. Configure it to launch
227your favorite editor. When you want to send a patch, use this technique.
228Once you have crafted your messsage + patch, save and exit the editor,
229which should reload the Gmail edit box. GMAIL WILL PRESERVE THE TABS.
230Hoorah. Apparently you can cut-n-paste literal tabs, but Gmail will
231convert those to spaces upon sending!
232
233The second problem is that Gmail converts tabs to spaces on replies. If
234you reply to a patch, don't expect to be able to apply it as a patch.
235
236The last problem is that Gmail will base64-encode any message that has a
237non-ASCII character. That includes things like European names. Be aware.
238
239Gmail is not convenient for lkml patches, but CAN be made to work.
240
216 ### 241 ###
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 05d71b4b9430..c28a2ac88f9d 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -56,30 +56,6 @@ Who: Mauro Carvalho Chehab <mchehab@infradead.org>
56 56
57--------------------------- 57---------------------------
58 58
59What: old tuner-3036 i2c driver
60When: 2.6.28
61Why: This driver is for VERY old i2c-over-parallel port teletext receiver
62 boxes. Rather then spending effort on converting this driver to V4L2,
63 and since it is extremely unlikely that anyone still uses one of these
64 devices, it was decided to drop it.
65Who: Hans Verkuil <hverkuil@xs4all.nl>
66 Mauro Carvalho Chehab <mchehab@infradead.org>
67
68 ---------------------------
69
70What: V4L2 dpc7146 driver
71When: 2.6.28
72Why: Old driver for the dpc7146 demonstration board that is no longer
73 relevant. The last time this was tested on actual hardware was
74 probably around 2002. Since this is a driver for a demonstration
75 board the decision was made to remove it rather than spending a
76 lot of effort continually updating this driver to stay in sync
77 with the latest internal V4L2 or I2C API.
78Who: Hans Verkuil <hverkuil@xs4all.nl>
79 Mauro Carvalho Chehab <mchehab@infradead.org>
80
81---------------------------
82
83What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) 59What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
84When: November 2005 60When: November 2005
85Files: drivers/pcmcia/: pcmcia_ioctl.c 61Files: drivers/pcmcia/: pcmcia_ioctl.c
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/filesystems/vfat.txt b/Documentation/filesystems/vfat.txt
index bbac4f1d9056..3a5ddc96901a 100644
--- a/Documentation/filesystems/vfat.txt
+++ b/Documentation/filesystems/vfat.txt
@@ -8,6 +8,12 @@ if you want to format from within Linux.
8 8
9VFAT MOUNT OPTIONS 9VFAT MOUNT OPTIONS
10---------------------------------------------------------------------- 10----------------------------------------------------------------------
11uid=### -- Set the owner of all files on this filesystem.
12 The default is the uid of current process.
13
14gid=### -- Set the group of all files on this filesystem.
15 The default is the gid of current process.
16
11umask=### -- The permission mask (for files and directories, see umask(1)). 17umask=### -- The permission mask (for files and directories, see umask(1)).
12 The default is the umask of current process. 18 The default is the umask of current process.
13 19
@@ -36,7 +42,7 @@ codepage=### -- Sets the codepage number for converting to shortname
36 characters on FAT filesystem. 42 characters on FAT filesystem.
37 By default, FAT_DEFAULT_CODEPAGE setting is used. 43 By default, FAT_DEFAULT_CODEPAGE setting is used.
38 44
39iocharset=name -- Character set to use for converting between the 45iocharset=<name> -- Character set to use for converting between the
40 encoding is used for user visible filename and 16 bit 46 encoding is used for user visible filename and 16 bit
41 Unicode characters. Long filenames are stored on disk 47 Unicode characters. Long filenames are stored on disk
42 in Unicode format, but Unix for the most part doesn't 48 in Unicode format, but Unix for the most part doesn't
@@ -86,6 +92,8 @@ check=s|r|n -- Case sensitivity checking setting.
86 r: relaxed, case insensitive 92 r: relaxed, case insensitive
87 n: normal, default setting, currently case insensitive 93 n: normal, default setting, currently case insensitive
88 94
95nocase -- This was deprecated for vfat. Use shortname=win95 instead.
96
89shortname=lower|win95|winnt|mixed 97shortname=lower|win95|winnt|mixed
90 -- Shortname display/create setting. 98 -- Shortname display/create setting.
91 lower: convert to lowercase for display, 99 lower: convert to lowercase for display,
@@ -99,11 +107,31 @@ shortname=lower|win95|winnt|mixed
99tz=UTC -- Interpret timestamps as UTC rather than local time. 107tz=UTC -- Interpret timestamps as UTC rather than local time.
100 This option disables the conversion of timestamps 108 This option disables the conversion of timestamps
101 between local time (as used by Windows on FAT) and UTC 109 between local time (as used by Windows on FAT) and UTC
102 (which Linux uses internally). This is particuluarly 110 (which Linux uses internally). This is particularly
103 useful when mounting devices (like digital cameras) 111 useful when mounting devices (like digital cameras)
104 that are set to UTC in order to avoid the pitfalls of 112 that are set to UTC in order to avoid the pitfalls of
105 local time. 113 local time.
106 114
115showexec -- If set, the execute permission bits of the file will be
116 allowed only if the extension part of the name is .EXE,
117 .COM, or .BAT. Not set by default.
118
119debug -- Can be set, but unused by the current implementation.
120
121sys_immutable -- If set, ATTR_SYS attribute on FAT is handled as
122 IMMUTABLE flag on Linux. Not set by default.
123
124flush -- If set, the filesystem will try to flush to disk more
125 early than normal. Not set by default.
126
127rodir -- FAT has the ATTR_RO (read-only) attribute. But on Windows,
128 the ATTR_RO of the directory will be just ignored actually,
129 and is used by only applications as flag. E.g. it's setted
130 for the customized folder.
131
132 If you want to use ATTR_RO as read-only flag even for
133 the directory, set this option.
134
107<bool>: 0,1,yes,no,true,false 135<bool>: 0,1,yes,no,true,false
108 136
109TODO 137TODO
diff --git a/Documentation/filesystems/xip.txt b/Documentation/filesystems/xip.txt
index 3cc4010521a0..0466ee569278 100644
--- a/Documentation/filesystems/xip.txt
+++ b/Documentation/filesystems/xip.txt
@@ -39,10 +39,11 @@ The block device operation is optional, these block devices support it as of
39today: 39today:
40- dcssblk: s390 dcss block device driver 40- dcssblk: s390 dcss block device driver
41 41
42An address space operation named get_xip_page is used to retrieve reference 42An address space operation named get_xip_mem is used to retrieve references
43to a struct page. To address the target page, a reference to an address_space, 43to a page frame number and a kernel address. To obtain these values a reference
44and a sector number is provided. A 3rd argument indicates whether the 44to an address_space is provided. This function assigns values to the kmem and
45function should allocate blocks if needed. 45pfn parameters. The third argument indicates whether the function should allocate
46blocks if needed.
46 47
47This address space operation is mutually exclusive with readpage&writepage that 48This address space operation is mutually exclusive with readpage&writepage that
48do page cache read/write operations. 49do page cache read/write operations.
diff --git a/Documentation/ftrace.txt b/Documentation/ftrace.txt
index ea5a827395dd..9cc4d685dde5 100644
--- a/Documentation/ftrace.txt
+++ b/Documentation/ftrace.txt
@@ -8,7 +8,7 @@ Copyright 2008 Red Hat Inc.
8Reviewers: Elias Oltmanns, Randy Dunlap, Andrew Morton, 8Reviewers: Elias Oltmanns, Randy Dunlap, Andrew Morton,
9 John Kacur, and David Teigland. 9 John Kacur, and David Teigland.
10 10
11Written for: 2.6.27-rc1 11Written for: 2.6.28-rc2
12 12
13Introduction 13Introduction
14------------ 14------------
@@ -50,26 +50,26 @@ of ftrace. Here is a list of some of the key files:
50 50
51 Note: all time values are in microseconds. 51 Note: all time values are in microseconds.
52 52
53 current_tracer : This is used to set or display the current tracer 53 current_tracer: This is used to set or display the current tracer
54 that is configured. 54 that is configured.
55 55
56 available_tracers : This holds the different types of tracers that 56 available_tracers: This holds the different types of tracers that
57 have been compiled into the kernel. The tracers 57 have been compiled into the kernel. The tracers
58 listed here can be configured by echoing their name 58 listed here can be configured by echoing their name
59 into current_tracer. 59 into current_tracer.
60 60
61 tracing_enabled : This sets or displays whether the current_tracer 61 tracing_enabled: This sets or displays whether the current_tracer
62 is activated and tracing or not. Echo 0 into this 62 is activated and tracing or not. Echo 0 into this
63 file to disable the tracer or 1 to enable it. 63 file to disable the tracer or 1 to enable it.
64 64
65 trace : This file holds the output of the trace in a human readable 65 trace: This file holds the output of the trace in a human readable
66 format (described below). 66 format (described below).
67 67
68 latency_trace : This file shows the same trace but the information 68 latency_trace: This file shows the same trace but the information
69 is organized more to display possible latencies 69 is organized more to display possible latencies
70 in the system (described below). 70 in the system (described below).
71 71
72 trace_pipe : The output is the same as the "trace" file but this 72 trace_pipe: The output is the same as the "trace" file but this
73 file is meant to be streamed with live tracing. 73 file is meant to be streamed with live tracing.
74 Reads from this file will block until new data 74 Reads from this file will block until new data
75 is retrieved. Unlike the "trace" and "latency_trace" 75 is retrieved. Unlike the "trace" and "latency_trace"
@@ -82,11 +82,11 @@ of ftrace. Here is a list of some of the key files:
82 tracer is not adding more data, they will display 82 tracer is not adding more data, they will display
83 the same information every time they are read. 83 the same information every time they are read.
84 84
85 iter_ctrl : This file lets the user control the amount of data 85 iter_ctrl: This file lets the user control the amount of data
86 that is displayed in one of the above output 86 that is displayed in one of the above output
87 files. 87 files.
88 88
89 trace_max_latency : Some of the tracers record the max latency. 89 trace_max_latency: Some of the tracers record the max latency.
90 For example, the time interrupts are disabled. 90 For example, the time interrupts are disabled.
91 This time is saved in this file. The max trace 91 This time is saved in this file. The max trace
92 will also be stored, and displayed by either 92 will also be stored, and displayed by either
@@ -94,29 +94,26 @@ of ftrace. Here is a list of some of the key files:
94 only be recorded if the latency is greater than 94 only be recorded if the latency is greater than
95 the value in this file. (in microseconds) 95 the value in this file. (in microseconds)
96 96
97 trace_entries : This sets or displays the number of trace 97 trace_entries: This sets or displays the number of bytes each CPU
98 entries each CPU buffer can hold. The tracer buffers 98 buffer can hold. The tracer buffers are the same size
99 are the same size for each CPU. The displayed number 99 for each CPU. The displayed number is the size of the
100 is the size of the CPU buffer and not total size. The 100 CPU buffer and not total size of all buffers. The
101 trace buffers are allocated in pages (blocks of memory 101 trace buffers are allocated in pages (blocks of memory
102 that the kernel uses for allocation, usually 4 KB in size). 102 that the kernel uses for allocation, usually 4 KB in size).
103 Since each entry is smaller than a page, if the last 103 If the last page allocated has room for more bytes
104 allocated page has room for more entries than were 104 than requested, the rest of the page will be used,
105 requested, the rest of the page is used to allocate 105 making the actual allocation bigger than requested.
106 entries. 106 (Note, the size may not be a multiple of the page size due
107 to buffer managment overhead.)
107 108
108 This can only be updated when the current_tracer 109 This can only be updated when the current_tracer
109 is set to "none". 110 is set to "nop".
110 111
111 NOTE: It is planned on changing the allocated buffers 112 tracing_cpumask: This is a mask that lets the user only trace
112 from being the number of possible CPUS to
113 the number of online CPUS.
114
115 tracing_cpumask : This is a mask that lets the user only trace
116 on specified CPUS. The format is a hex string 113 on specified CPUS. The format is a hex string
117 representing the CPUS. 114 representing the CPUS.
118 115
119 set_ftrace_filter : When dynamic ftrace is configured in (see the 116 set_ftrace_filter: When dynamic ftrace is configured in (see the
120 section below "dynamic ftrace"), the code is dynamically 117 section below "dynamic ftrace"), the code is dynamically
121 modified (code text rewrite) to disable calling of the 118 modified (code text rewrite) to disable calling of the
122 function profiler (mcount). This lets tracing be configured 119 function profiler (mcount). This lets tracing be configured
@@ -130,14 +127,11 @@ of ftrace. Here is a list of some of the key files:
130 be traced. If a function exists in both set_ftrace_filter 127 be traced. If a function exists in both set_ftrace_filter
131 and set_ftrace_notrace, the function will _not_ be traced. 128 and set_ftrace_notrace, the function will _not_ be traced.
132 129
133 available_filter_functions : When a function is encountered the first 130 available_filter_functions: This lists the functions that ftrace
134 time by the dynamic tracer, it is recorded and 131 has processed and can trace. These are the function
135 later the call is converted into a nop. This file 132 names that you can pass to "set_ftrace_filter" or
136 lists the functions that have been recorded 133 "set_ftrace_notrace". (See the section "dynamic ftrace"
137 by the dynamic tracer and these functions can 134 below for more details.)
138 be used to set the ftrace filter by the above
139 "set_ftrace_filter" file. (See the section "dynamic ftrace"
140 below for more details).
141 135
142 136
143The Tracers 137The Tracers
@@ -145,7 +139,7 @@ The Tracers
145 139
146Here is the list of current tracers that may be configured. 140Here is the list of current tracers that may be configured.
147 141
148 ftrace - function tracer that uses mcount to trace all functions. 142 function - function tracer that uses mcount to trace all functions.
149 143
150 sched_switch - traces the context switches between tasks. 144 sched_switch - traces the context switches between tasks.
151 145
@@ -166,8 +160,8 @@ Here is the list of current tracers that may be configured.
166 the highest priority task to get scheduled after 160 the highest priority task to get scheduled after
167 it has been woken up. 161 it has been woken up.
168 162
169 none - This is not a tracer. To remove all tracers from tracing 163 nop - This is not a tracer. To remove all tracers from tracing
170 simply echo "none" into current_tracer. 164 simply echo "nop" into current_tracer.
171 165
172 166
173Examples of using the tracer 167Examples of using the tracer
@@ -182,7 +176,7 @@ Output format:
182Here is an example of the output format of the file "trace" 176Here is an example of the output format of the file "trace"
183 177
184 -------- 178 --------
185# tracer: ftrace 179# tracer: function
186# 180#
187# TASK-PID CPU# TIMESTAMP FUNCTION 181# TASK-PID CPU# TIMESTAMP FUNCTION
188# | | | | | 182# | | | | |
@@ -192,7 +186,7 @@ Here is an example of the output format of the file "trace"
192 -------- 186 --------
193 187
194A header is printed with the tracer name that is represented by the trace. 188A header is printed with the tracer name that is represented by the trace.
195In this case the tracer is "ftrace". Then a header showing the format. Task 189In this case the tracer is "function". Then a header showing the format. Task
196name "bash", the task PID "4251", the CPU that it was running on 190name "bash", the task PID "4251", the CPU that it was running on
197"01", the timestamp in <secs>.<usecs> format, the function name that was 191"01", the timestamp in <secs>.<usecs> format, the function name that was
198traced "path_put" and the parent function that called this function 192traced "path_put" and the parent function that called this function
@@ -1003,22 +997,20 @@ is the stack for the hard interrupt. This hides the fact that NEED_RESCHED
1003has been set. We do not see the 'N' until we switch back to the task's 997has been set. We do not see the 'N' until we switch back to the task's
1004assigned stack. 998assigned stack.
1005 999
1006ftrace 1000function
1007------ 1001--------
1008 1002
1009ftrace is not only the name of the tracing infrastructure, but it 1003This tracer is the function tracer. Enabling the function tracer
1010is also a name of one of the tracers. The tracer is the function 1004can be done from the debug file system. Make sure the ftrace_enabled is
1011tracer. Enabling the function tracer can be done from the 1005set; otherwise this tracer is a nop.
1012debug file system. Make sure the ftrace_enabled is set otherwise
1013this tracer is a nop.
1014 1006
1015 # sysctl kernel.ftrace_enabled=1 1007 # sysctl kernel.ftrace_enabled=1
1016 # echo ftrace > /debug/tracing/current_tracer 1008 # echo function > /debug/tracing/current_tracer
1017 # echo 1 > /debug/tracing/tracing_enabled 1009 # echo 1 > /debug/tracing/tracing_enabled
1018 # usleep 1 1010 # usleep 1
1019 # echo 0 > /debug/tracing/tracing_enabled 1011 # echo 0 > /debug/tracing/tracing_enabled
1020 # cat /debug/tracing/trace 1012 # cat /debug/tracing/trace
1021# tracer: ftrace 1013# tracer: function
1022# 1014#
1023# TASK-PID CPU# TIMESTAMP FUNCTION 1015# TASK-PID CPU# TIMESTAMP FUNCTION
1024# | | | | | 1016# | | | | |
@@ -1040,10 +1032,10 @@ this tracer is a nop.
1040[...] 1032[...]
1041 1033
1042 1034
1043Note: ftrace uses ring buffers to store the above entries. The newest data 1035Note: function tracer uses ring buffers to store the above entries.
1044may overwrite the oldest data. Sometimes using echo to stop the trace 1036The newest data may overwrite the oldest data. Sometimes using echo to
1045is not sufficient because the tracing could have overwritten the data 1037stop the trace is not sufficient because the tracing could have overwritten
1046that you wanted to record. For this reason, it is sometimes better to 1038the data that you wanted to record. For this reason, it is sometimes better to
1047disable tracing directly from a program. This allows you to stop the 1039disable tracing directly from a program. This allows you to stop the
1048tracing at the point that you hit the part that you are interested in. 1040tracing at the point that you hit the part that you are interested in.
1049To disable the tracing directly from a C program, something like following 1041To disable the tracing directly from a C program, something like following
@@ -1077,18 +1069,31 @@ every kernel function, produced by the -pg switch in gcc), starts
1077of pointing to a simple return. (Enabling FTRACE will include the 1069of pointing to a simple return. (Enabling FTRACE will include the
1078-pg switch in the compiling of the kernel.) 1070-pg switch in the compiling of the kernel.)
1079 1071
1080When dynamic ftrace is initialized, it calls kstop_machine to make 1072At compile time every C file object is run through the
1081the machine act like a uniprocessor so that it can freely modify code 1073recordmcount.pl script (located in the scripts directory). This
1082without worrying about other processors executing that same code. At 1074script will process the C object using objdump to find all the
1083initialization, the mcount calls are changed to call a "record_ip" 1075locations in the .text section that call mcount. (Note, only
1084function. After this, the first time a kernel function is called, 1076the .text section is processed, since processing other sections
1085it has the calling address saved in a hash table. 1077like .init.text may cause races due to those sections being freed).
1086 1078
1087Later on the ftraced kernel thread is awoken and will again call 1079A new section called "__mcount_loc" is created that holds references
1088kstop_machine if new functions have been recorded. The ftraced thread 1080to all the mcount call sites in the .text section. This section is
1089will change all calls to mcount to "nop". Just calling mcount 1081compiled back into the original object. The final linker will add
1090and having mcount return has shown a 10% overhead. By converting 1082all these references into a single table.
1091it to a nop, there is no measurable overhead to the system. 1083
1084On boot up, before SMP is initialized, the dynamic ftrace code
1085scans this table and updates all the locations into nops. It also
1086records the locations, which are added to the available_filter_functions
1087list. Modules are processed as they are loaded and before they are
1088executed. When a module is unloaded, it also removes its functions from
1089the ftrace function list. This is automatic in the module unload
1090code, and the module author does not need to worry about it.
1091
1092When tracing is enabled, kstop_machine is called to prevent races
1093with the CPUS executing code being modified (which can cause the
1094CPU to do undesireable things), and the nops are patched back
1095to calls. But this time, they do not call mcount (which is just
1096a function stub). They now call into the ftrace infrastructure.
1092 1097
1093One special side-effect to the recording of the functions being 1098One special side-effect to the recording of the functions being
1094traced is that we can now selectively choose which functions we 1099traced is that we can now selectively choose which functions we
@@ -1251,36 +1256,6 @@ Produces:
1251 1256
1252We can see that there's no more lock or preempt tracing. 1257We can see that there's no more lock or preempt tracing.
1253 1258
1254ftraced
1255-------
1256
1257As mentioned above, when dynamic ftrace is configured in, a kernel
1258thread wakes up once a second and checks to see if there are mcount
1259calls that need to be converted into nops. If there are not any, then
1260it simply goes back to sleep. But if there are some, it will call
1261kstop_machine to convert the calls to nops.
1262
1263There may be a case in which you do not want this added latency.
1264Perhaps you are doing some audio recording and this activity might
1265cause skips in the playback. There is an interface to disable
1266and enable the "ftraced" kernel thread.
1267
1268 # echo 0 > /debug/tracing/ftraced_enabled
1269
1270This will disable the calling of kstop_machine to update the
1271mcount calls to nops. Remember that there is a large overhead
1272to calling mcount. Without this kernel thread, that overhead will
1273exist.
1274
1275If there are recorded calls to mcount, any write to the ftraced_enabled
1276file will cause the kstop_machine to run. This means that a
1277user can manually perform the updates when they want to by simply
1278echoing a '0' into the ftraced_enabled file.
1279
1280The updates are also done at the beginning of enabling a tracer
1281that uses ftrace function recording.
1282
1283
1284trace_pipe 1259trace_pipe
1285---------- 1260----------
1286 1261
@@ -1289,14 +1264,14 @@ on the tracing is different. Every read from trace_pipe is consumed.
1289This means that subsequent reads will be different. The trace 1264This means that subsequent reads will be different. The trace
1290is live. 1265is live.
1291 1266
1292 # echo ftrace > /debug/tracing/current_tracer 1267 # echo function > /debug/tracing/current_tracer
1293 # cat /debug/tracing/trace_pipe > /tmp/trace.out & 1268 # cat /debug/tracing/trace_pipe > /tmp/trace.out &
1294[1] 4153 1269[1] 4153
1295 # echo 1 > /debug/tracing/tracing_enabled 1270 # echo 1 > /debug/tracing/tracing_enabled
1296 # usleep 1 1271 # usleep 1
1297 # echo 0 > /debug/tracing/tracing_enabled 1272 # echo 0 > /debug/tracing/tracing_enabled
1298 # cat /debug/tracing/trace 1273 # cat /debug/tracing/trace
1299# tracer: ftrace 1274# tracer: function
1300# 1275#
1301# TASK-PID CPU# TIMESTAMP FUNCTION 1276# TASK-PID CPU# TIMESTAMP FUNCTION
1302# | | | | | 1277# | | | | |
@@ -1317,7 +1292,7 @@ is live.
1317 1292
1318Note, reading the trace_pipe file will block until more input is added. 1293Note, reading the trace_pipe file will block until more input is added.
1319By changing the tracer, trace_pipe will issue an EOF. We needed 1294By changing the tracer, trace_pipe will issue an EOF. We needed
1320to set the ftrace tracer _before_ cating the trace_pipe file. 1295to set the function tracer _before_ we "cat" the trace_pipe file.
1321 1296
1322 1297
1323trace entries 1298trace entries
@@ -1334,10 +1309,10 @@ number of entries.
133465620 130965620
1335 1310
1336Note, to modify this, you must have tracing completely disabled. To do that, 1311Note, to modify this, you must have tracing completely disabled. To do that,
1337echo "none" into the current_tracer. If the current_tracer is not set 1312echo "nop" into the current_tracer. If the current_tracer is not set
1338to "none", an EINVAL error will be returned. 1313to "nop", an EINVAL error will be returned.
1339 1314
1340 # echo none > /debug/tracing/current_tracer 1315 # echo nop > /debug/tracing/current_tracer
1341 # echo 100000 > /debug/tracing/trace_entries 1316 # echo 100000 > /debug/tracing/trace_entries
1342 # cat /debug/tracing/trace_entries 1317 # cat /debug/tracing/trace_entries
1343100045 1318100045
diff --git a/Documentation/hwmon/adt7462 b/Documentation/hwmon/adt7462
new file mode 100644
index 000000000000..ec660b328275
--- /dev/null
+++ b/Documentation/hwmon/adt7462
@@ -0,0 +1,67 @@
1Kernel driver adt7462
2======================
3
4Supported chips:
5 * Analog Devices ADT7462
6 Prefix: 'adt7462'
7 Addresses scanned: I2C 0x58, 0x5C
8 Datasheet: Publicly available at the Analog Devices website
9
10Author: Darrick J. Wong
11
12Description
13-----------
14
15This driver implements support for the Analog Devices ADT7462 chip family.
16
17This chip is a bit of a beast. It has 8 counters for measuring fan speed. It
18can also measure 13 voltages or 4 temperatures, or various combinations of the
19two. See the chip documentation for more details about the exact set of
20configurations. This driver does not allow one to configure the chip; that is
21left to the system designer.
22
23A sophisticated control system for the PWM outputs is designed into the ADT7462
24that allows fan speed to be adjusted automatically based on any of the three
25temperature sensors. Each PWM output is individually adjustable and
26programmable. Once configured, the ADT7462 will adjust the PWM outputs in
27response to the measured temperatures without further host intervention. This
28feature can also be disabled for manual control of the PWM's.
29
30Each of the measured inputs (voltage, temperature, fan speed) has
31corresponding high/low limit values. The ADT7462 will signal an ALARM if
32any measured value exceeds either limit.
33
34The ADT7462 samples all inputs continuously. The driver will not read
35the registers more often than once every other second. Further,
36configuration data is only read once per minute.
37
38Special Features
39----------------
40
41The ADT7462 have a 10-bit ADC and can therefore measure temperatures
42with 0.25 degC resolution.
43
44The Analog Devices datasheet is very detailed and describes a procedure for
45determining an optimal configuration for the automatic PWM control.
46
47The driver will report sensor labels when it is able to determine that
48information from the configuration registers.
49
50Configuration Notes
51-------------------
52
53Besides standard interfaces driver adds the following:
54
55* PWM Control
56
57* pwm#_auto_point1_pwm and temp#_auto_point1_temp and
58* pwm#_auto_point2_pwm and temp#_auto_point2_temp -
59
60point1: Set the pwm speed at a lower temperature bound.
61point2: Set the pwm speed at a higher temperature bound.
62
63The ADT7462 will scale the pwm between the lower and higher pwm speed when
64the temperature is between the two temperature boundaries. PWM values range
65from 0 (off) to 255 (full speed). Fan speed will be set to maximum when the
66temperature sensor associated with the PWM control exceeds temp#_max.
67
diff --git a/Documentation/hwmon/lis3lv02d b/Documentation/hwmon/lis3lv02d
new file mode 100644
index 000000000000..65dfb0c0fd67
--- /dev/null
+++ b/Documentation/hwmon/lis3lv02d
@@ -0,0 +1,49 @@
1Kernel driver lis3lv02d
2==================
3
4Supported chips:
5
6 * STMicroelectronics LIS3LV02DL and LIS3LV02DQ
7
8Author:
9 Yan Burman <burman.yan@gmail.com>
10 Eric Piel <eric.piel@tremplin-utc.net>
11
12
13Description
14-----------
15
16This driver provides support for the accelerometer found in various HP laptops
17sporting the feature officially called "HP Mobile Data Protection System 3D" or
18"HP 3D DriveGuard". It detect automatically laptops with this sensor. Known models
19(for now the HP 2133, nc6420, nc2510, nc8510, nc84x0, nw9440 and nx9420) will
20have their axis automatically oriented on standard way (eg: you can directly
21play neverball). The accelerometer data is readable via
22/sys/devices/platform/lis3lv02d.
23
24Sysfs attributes under /sys/devices/platform/lis3lv02d/:
25position - 3D position that the accelerometer reports. Format: "(x,y,z)"
26calibrate - read: values (x, y, z) that are used as the base for input class device operation.
27 write: forces the base to be recalibrated with the current position.
28rate - reports the sampling rate of the accelerometer device in HZ
29
30This driver also provides an absolute input class device, allowing
31the laptop to act as a pinball machine-esque joystick.
32
33Axes orientation
34----------------
35
36For better compatibility between the various laptops. The values reported by
37the accelerometer are converted into a "standard" organisation of the axes
38(aka "can play neverball out of the box"):
39 * When the laptop is horizontal the position reported is about 0 for X and Y
40and a positive value for Z
41 * If the left side is elevated, X increases (becomes positive)
42 * If the front side (where the touchpad is) is elevated, Y decreases (becomes negative)
43 * If the laptop is put upside-down, Z becomes negative
44
45If your laptop model is not recognized (cf "dmesg"), you can send an email to the
46authors to add it to the database. When reporting a new laptop, please include
47the output of "dmidecode" plus the value of /sys/devices/platform/lis3lv02d/position
48in these four cases.
49
diff --git a/Documentation/ics932s401 b/Documentation/ics932s401
new file mode 100644
index 000000000000..07a739f406d8
--- /dev/null
+++ b/Documentation/ics932s401
@@ -0,0 +1,31 @@
1Kernel driver ics932s401
2======================
3
4Supported chips:
5 * IDT ICS932S401
6 Prefix: 'ics932s401'
7 Addresses scanned: I2C 0x69
8 Datasheet: Publically available at the IDT website
9
10Author: Darrick J. Wong
11
12Description
13-----------
14
15This driver implements support for the IDT ICS932S401 chip family.
16
17This chip has 4 clock outputs--a base clock for the CPU (which is likely
18multiplied to get the real CPU clock), a system clock, a PCI clock, a USB
19clock, and a reference clock. The driver reports selected and actual
20frequency. If spread spectrum mode is enabled, the driver also reports by what
21percent the clock signal is being spread, which should be between 0 and -0.5%.
22All frequencies are reported in KHz.
23
24The ICS932S401 monitors all inputs continuously. The driver will not read
25the registers more often than once every other second.
26
27Special Features
28----------------
29
30The clocks could be reprogrammed to increase system speed. I will not help you
31do this, as you risk damaging your system!
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/io-mapping.txt b/Documentation/io-mapping.txt
new file mode 100644
index 000000000000..473e43b2d588
--- /dev/null
+++ b/Documentation/io-mapping.txt
@@ -0,0 +1,82 @@
1The io_mapping functions in linux/io-mapping.h provide an abstraction for
2efficiently mapping small regions of an I/O device to the CPU. The initial
3usage is to support the large graphics aperture on 32-bit processors where
4ioremap_wc cannot be used to statically map the entire aperture to the CPU
5as it would consume too much of the kernel address space.
6
7A mapping object is created during driver initialization using
8
9 struct io_mapping *io_mapping_create_wc(unsigned long base,
10 unsigned long size)
11
12 'base' is the bus address of the region to be made
13 mappable, while 'size' indicates how large a mapping region to
14 enable. Both are in bytes.
15
16 This _wc variant provides a mapping which may only be used
17 with the io_mapping_map_atomic_wc or io_mapping_map_wc.
18
19With this mapping object, individual pages can be mapped either atomically
20or not, depending on the necessary scheduling environment. Of course, atomic
21maps are more efficient:
22
23 void *io_mapping_map_atomic_wc(struct io_mapping *mapping,
24 unsigned long offset)
25
26 'offset' is the offset within the defined mapping region.
27 Accessing addresses beyond the region specified in the
28 creation function yields undefined results. Using an offset
29 which is not page aligned yields an undefined result. The
30 return value points to a single page in CPU address space.
31
32 This _wc variant returns a write-combining map to the
33 page and may only be used with mappings created by
34 io_mapping_create_wc
35
36 Note that the task may not sleep while holding this page
37 mapped.
38
39 void io_mapping_unmap_atomic(void *vaddr)
40
41 'vaddr' must be the the value returned by the last
42 io_mapping_map_atomic_wc call. This unmaps the specified
43 page and allows the task to sleep once again.
44
45If you need to sleep while holding the lock, you can use the non-atomic
46variant, although they may be significantly slower.
47
48 void *io_mapping_map_wc(struct io_mapping *mapping,
49 unsigned long offset)
50
51 This works like io_mapping_map_atomic_wc except it allows
52 the task to sleep while holding the page mapped.
53
54 void io_mapping_unmap(void *vaddr)
55
56 This works like io_mapping_unmap_atomic, except it is used
57 for pages mapped with io_mapping_map_wc.
58
59At driver close time, the io_mapping object must be freed:
60
61 void io_mapping_free(struct io_mapping *mapping)
62
63Current Implementation:
64
65The initial implementation of these functions uses existing mapping
66mechanisms and so provides only an abstraction layer and no new
67functionality.
68
69On 64-bit processors, io_mapping_create_wc calls ioremap_wc for the whole
70range, creating a permanent kernel-visible mapping to the resource. The
71map_atomic and map functions add the requested offset to the base of the
72virtual address returned by ioremap_wc.
73
74On 32-bit processors with HIGHMEM defined, io_mapping_map_atomic_wc uses
75kmap_atomic_pfn to map the specified page in an atomic fashion;
76kmap_atomic_pfn isn't really supposed to be used with device pages, but it
77provides an efficient mapping for this usage.
78
79On 32-bit processors without HIGHMEM defined, io_mapping_map_atomic_wc and
80io_mapping_map_wc both use ioremap_wc, a terribly inefficient function which
81performs an IPI to inform all processors about the new mapping. This results
82in a significant performance penalty.
diff --git a/Documentation/ioctl/00-INDEX b/Documentation/ioctl/00-INDEX
new file mode 100644
index 000000000000..d2fe4d4729ef
--- /dev/null
+++ b/Documentation/ioctl/00-INDEX
@@ -0,0 +1,10 @@
100-INDEX
2 - this file
3cdrom.txt
4 - summary of CDROM ioctl calls
5hdio.txt
6 - summary of HDIO_ ioctl calls
7ioctl-decoding.txt
8 - how to decode the bits of an IOCTL code
9ioctl-number.txt
10 - how to implement and register device/driver ioctl calls
diff --git a/Documentation/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
index b880ce5dbd33..b880ce5dbd33 100644
--- a/Documentation/ioctl-number.txt
+++ b/Documentation/ioctl/ioctl-number.txt
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 1bbcaa8982b6..e0f346d201ed 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -198,59 +198,42 @@ and is between 256 and 4096 characters. It is defined in the file
198 that require a timer override, but don't have 198 that require a timer override, but don't have
199 HPET 199 HPET
200 200
201 acpi.debug_layer= [HW,ACPI] 201 acpi_backlight= [HW,ACPI]
202 acpi_backlight=vendor
203 acpi_backlight=video
204 If set to vendor, prefer vendor specific driver
205 (e.g. thinkpad_acpi, sony_acpi, etc.) instead
206 of the ACPI video.ko driver.
207
208 acpi_display_output= [HW,ACPI]
209 acpi_display_output=vendor
210 acpi_display_output=video
211 See above.
212
213 acpi.debug_layer= [HW,ACPI,ACPI_DEBUG]
214 acpi.debug_level= [HW,ACPI,ACPI_DEBUG]
202 Format: <int> 215 Format: <int>
203 Each bit of the <int> indicates an ACPI debug layer, 216 CONFIG_ACPI_DEBUG must be enabled to produce any ACPI
204 1: enable, 0: disable. It is useful for boot time 217 debug output. Bits in debug_layer correspond to a
205 debugging. After system has booted up, it can be set 218 _COMPONENT in an ACPI source file, e.g.,
206 via /sys/module/acpi/parameters/debug_layer. 219 #define _COMPONENT ACPI_PCI_COMPONENT
207 CONFIG_ACPI_DEBUG must be enabled for this to produce any output. 220 Bits in debug_level correspond to a level in
208 Available bits (add the numbers together) to enable debug output 221 ACPI_DEBUG_PRINT statements, e.g.,
209 for specific parts of the ACPI subsystem: 222 ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
210 0x01 utilities 0x02 hardware 0x04 events 0x08 tables 223 See Documentation/acpi/debug.txt for more information
211 0x10 namespace 0x20 parser 0x40 dispatcher 224 about debug layers and levels.
212 0x80 executer 0x100 resources 0x200 acpica debugger 225
213 0x400 os services 0x800 acpica disassembler. 226 Enable AML "Debug" output, i.e., stores to the Debug
214 The number can be in decimal or prefixed with 0x in hex. 227 object while interpreting AML:
215 Warning: Many of these options can produce a lot of 228 acpi.debug_layer=0xffffffff acpi.debug_level=0x2
216 output and make your system unusable. Be very careful. 229 Enable PCI/PCI interrupt routing info messages:
217 230 acpi.debug_layer=0x400000 acpi.debug_level=0x4
218 acpi.debug_level= [HW,ACPI] 231 Enable all messages related to ACPI hardware:
219 Format: <int> 232 acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
220 Each bit of the <int> indicates an ACPI debug level, 233
221 which corresponds to the level in an ACPI_DEBUG_PRINT 234 Some values produce so much output that the system is
222 statement. After system has booted up, this mask 235 unusable. The "log_buf_len" parameter may be useful
223 can be set via /sys/module/acpi/parameters/debug_level. 236 if you need to capture more output.
224
225 CONFIG_ACPI_DEBUG must be enabled for this to produce
226 any output. The number can be in decimal or prefixed
227 with 0x in hex. Some of these options produce so much
228 output that the system is unusable.
229
230 The following global components are defined by the
231 ACPI CA:
232 0x01 error
233 0x02 warn
234 0x04 init
235 0x08 debug object
236 0x10 info
237 0x20 init names
238 0x40 parse
239 0x80 load
240 0x100 dispatch
241 0x200 execute
242 0x400 names
243 0x800 operation region
244 0x1000 bfield
245 0x2000 tables
246 0x4000 values
247 0x8000 objects
248 0x10000 resources
249 0x20000 user requests
250 0x40000 package
251 The number can be in decimal or prefixed with 0x in hex.
252 Warning: Many of these options can produce a lot of
253 output and make your system unusable. Be very careful.
254 237
255 acpi.power_nocheck= [HW,ACPI] 238 acpi.power_nocheck= [HW,ACPI]
256 Format: 1/0 enable/disable the check of power state. 239 Format: 1/0 enable/disable the check of power state.
@@ -311,7 +294,9 @@ and is between 256 and 4096 characters. It is defined in the file
311 Possible values are: 294 Possible values are:
312 isolate - enable device isolation (each device, as far 295 isolate - enable device isolation (each device, as far
313 as possible, will get its own protection 296 as possible, will get its own protection
314 domain) 297 domain) [default]
298 share - put every device behind one IOMMU into the
299 same protection domain
315 fullflush - enable flushing of IO/TLB entries when 300 fullflush - enable flushing of IO/TLB entries when
316 they are unmapped. Otherwise they are 301 they are unmapped. Otherwise they are
317 flushed before they will be reused, which 302 flushed before they will be reused, which
@@ -646,7 +631,7 @@ and is between 256 and 4096 characters. It is defined in the file
646 631
647 digiepca= [HW,SERIAL] 632 digiepca= [HW,SERIAL]
648 See drivers/char/README.epca and 633 See drivers/char/README.epca and
649 Documentation/digiepca.txt. 634 Documentation/serial/digiepca.txt.
650 635
651 disable_mtrr_cleanup [X86] 636 disable_mtrr_cleanup [X86]
652 enable_mtrr_cleanup [X86] 637 enable_mtrr_cleanup [X86]
@@ -757,7 +742,7 @@ and is between 256 and 4096 characters. It is defined in the file
757 See header of drivers/scsi/fdomain.c. 742 See header of drivers/scsi/fdomain.c.
758 743
759 floppy= [HW] 744 floppy= [HW]
760 See Documentation/floppy.txt. 745 See Documentation/blockdev/floppy.txt.
761 746
762 force_pal_cache_flush 747 force_pal_cache_flush
763 [IA-64] Avoid check_sal_cache_flush which may hang on 748 [IA-64] Avoid check_sal_cache_flush which may hang on
@@ -995,13 +980,15 @@ and is between 256 and 4096 characters. It is defined in the file
995 Format: 980 Format:
996 <cpu number>,...,<cpu number> 981 <cpu number>,...,<cpu number>
997 or 982 or
998 <cpu number>-<cpu number> (must be a positive range in ascending order) 983 <cpu number>-<cpu number>
984 (must be a positive range in ascending order)
999 or a mixture 985 or a mixture
1000 <cpu number>,...,<cpu number>-<cpu number> 986 <cpu number>,...,<cpu number>-<cpu number>
987
1001 This option can be used to specify one or more CPUs 988 This option can be used to specify one or more CPUs
1002 to isolate from the general SMP balancing and scheduling 989 to isolate from the general SMP balancing and scheduling
1003 algorithms. The only way to move a process onto or off 990 algorithms. You can move a process onto or off an
1004 an "isolated" CPU is via the CPU affinity syscalls. 991 "isolated" CPU via the CPU affinity syscalls or cpuset.
1005 <cpu number> begins at 0 and the maximum value is 992 <cpu number> begins at 0 and the maximum value is
1006 "number of CPUs in system - 1". 993 "number of CPUs in system - 1".
1007 994
@@ -1116,7 +1103,7 @@ and is between 256 and 4096 characters. It is defined in the file
1116 the same attribute, the last one is used. 1103 the same attribute, the last one is used.
1117 1104
1118 load_ramdisk= [RAM] List of ramdisks to load from floppy 1105 load_ramdisk= [RAM] List of ramdisks to load from floppy
1119 See Documentation/ramdisk.txt. 1106 See Documentation/blockdev/ramdisk.txt.
1120 1107
1121 lockd.nlm_grace_period=P [NFS] Assign grace period. 1108 lockd.nlm_grace_period=P [NFS] Assign grace period.
1122 Format: <integer> 1109 Format: <integer>
@@ -1208,8 +1195,8 @@ and is between 256 and 4096 characters. It is defined in the file
1208 it is equivalent to "nosmp", which also disables 1195 it is equivalent to "nosmp", which also disables
1209 the IO APIC. 1196 the IO APIC.
1210 1197
1211 max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or 1198 max_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory greater than
1212 equal to this physical address is ignored. 1199 or equal to this physical address is ignored.
1213 1200
1214 max_luns= [SCSI] Maximum number of LUNs to probe. 1201 max_luns= [SCSI] Maximum number of LUNs to probe.
1215 Should be between 1 and 2^32-1. 1202 Should be between 1 and 2^32-1.
@@ -1309,6 +1296,9 @@ and is between 256 and 4096 characters. It is defined in the file
1309 1296
1310 mga= [HW,DRM] 1297 mga= [HW,DRM]
1311 1298
1299 min_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory below this
1300 physical address is ignored.
1301
1312 mminit_loglevel= 1302 mminit_loglevel=
1313 [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this 1303 [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
1314 parameter allows control of the logging verbosity for 1304 parameter allows control of the logging verbosity for
@@ -1470,8 +1460,6 @@ and is between 256 and 4096 characters. It is defined in the file
1470 Valid arguments: on, off 1460 Valid arguments: on, off
1471 Default: on 1461 Default: on
1472 1462
1473 noirqbalance [X86-32,SMP,KNL] Disable kernel irq balancing
1474
1475 noirqdebug [X86-32] Disables the code which attempts to detect and 1463 noirqdebug [X86-32] Disables the code which attempts to detect and
1476 disable unhandled interrupt sources. 1464 disable unhandled interrupt sources.
1477 1465
@@ -1613,7 +1601,7 @@ and is between 256 and 4096 characters. It is defined in the file
1613 1601
1614 pcd. [PARIDE] 1602 pcd. [PARIDE]
1615 See header of drivers/block/paride/pcd.c. 1603 See header of drivers/block/paride/pcd.c.
1616 See also Documentation/paride.txt. 1604 See also Documentation/blockdev/paride.txt.
1617 1605
1618 pci=option[,option...] [PCI] various PCI subsystem options: 1606 pci=option[,option...] [PCI] various PCI subsystem options:
1619 off [X86] don't probe for the PCI bus 1607 off [X86] don't probe for the PCI bus
@@ -1714,7 +1702,7 @@ and is between 256 and 4096 characters. It is defined in the file
1714 pcmv= [HW,PCMCIA] BadgePAD 4 1702 pcmv= [HW,PCMCIA] BadgePAD 4
1715 1703
1716 pd. [PARIDE] 1704 pd. [PARIDE]
1717 See Documentation/paride.txt. 1705 See Documentation/blockdev/paride.txt.
1718 1706
1719 pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at 1707 pdcchassis= [PARISC,HW] Disable/Enable PDC Chassis Status codes at
1720 boot time. 1708 boot time.
@@ -1722,10 +1710,10 @@ and is between 256 and 4096 characters. It is defined in the file
1722 See arch/parisc/kernel/pdc_chassis.c 1710 See arch/parisc/kernel/pdc_chassis.c
1723 1711
1724 pf. [PARIDE] 1712 pf. [PARIDE]
1725 See Documentation/paride.txt. 1713 See Documentation/blockdev/paride.txt.
1726 1714
1727 pg. [PARIDE] 1715 pg. [PARIDE]
1728 See Documentation/paride.txt. 1716 See Documentation/blockdev/paride.txt.
1729 1717
1730 pirq= [SMP,APIC] Manual mp-table setup 1718 pirq= [SMP,APIC] Manual mp-table setup
1731 See Documentation/x86/i386/IO-APIC.txt. 1719 See Documentation/x86/i386/IO-APIC.txt.
@@ -1795,7 +1783,7 @@ and is between 256 and 4096 characters. It is defined in the file
1795 1783
1796 prompt_ramdisk= [RAM] List of RAM disks to prompt for floppy disk 1784 prompt_ramdisk= [RAM] List of RAM disks to prompt for floppy disk
1797 before loading. 1785 before loading.
1798 See Documentation/ramdisk.txt. 1786 See Documentation/blockdev/ramdisk.txt.
1799 1787
1800 psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to 1788 psmouse.proto= [HW,MOUSE] Highest PS2 mouse protocol extension to
1801 probe for; one of (bare|imps|exps|lifebook|any). 1789 probe for; one of (bare|imps|exps|lifebook|any).
@@ -1815,7 +1803,7 @@ and is between 256 and 4096 characters. It is defined in the file
1815 <io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq> 1803 <io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>
1816 1804
1817 pt. [PARIDE] 1805 pt. [PARIDE]
1818 See Documentation/paride.txt. 1806 See Documentation/blockdev/paride.txt.
1819 1807
1820 pty.legacy_count= 1808 pty.legacy_count=
1821 [KNL] Number of legacy pty's. Overwrites compiled-in 1809 [KNL] Number of legacy pty's. Overwrites compiled-in
@@ -1829,10 +1817,10 @@ and is between 256 and 4096 characters. It is defined in the file
1829 See Documentation/md.txt. 1817 See Documentation/md.txt.
1830 1818
1831 ramdisk_blocksize= [RAM] 1819 ramdisk_blocksize= [RAM]
1832 See Documentation/ramdisk.txt. 1820 See Documentation/blockdev/ramdisk.txt.
1833 1821
1834 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes 1822 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes
1835 See Documentation/ramdisk.txt. 1823 See Documentation/blockdev/ramdisk.txt.
1836 1824
1837 rcupdate.blimit= [KNL,BOOT] 1825 rcupdate.blimit= [KNL,BOOT]
1838 Set maximum number of finished RCU callbacks to process 1826 Set maximum number of finished RCU callbacks to process
@@ -2164,7 +2152,7 @@ and is between 256 and 4096 characters. It is defined in the file
2164 See Documentation/sonypi.txt 2152 See Documentation/sonypi.txt
2165 2153
2166 specialix= [HW,SERIAL] Specialix multi-serial port adapter 2154 specialix= [HW,SERIAL] Specialix multi-serial port adapter
2167 See Documentation/specialix.txt. 2155 See Documentation/serial/specialix.txt.
2168 2156
2169 spia_io_base= [HW,MTD] 2157 spia_io_base= [HW,MTD]
2170 spia_fio_base= 2158 spia_fio_base=
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/networking/phy.txt b/Documentation/networking/phy.txt
index 8df6a7b0e66c..88bb71b46da4 100644
--- a/Documentation/networking/phy.txt
+++ b/Documentation/networking/phy.txt
@@ -96,7 +96,7 @@ Letting the PHY Abstraction Layer do Everything
96 static void adjust_link(struct net_device *dev); 96 static void adjust_link(struct net_device *dev);
97 97
98 Next, you need to know the device name of the PHY connected to this device. 98 Next, you need to know the device name of the PHY connected to this device.
99 The name will look something like, "phy0:0", where the first number is the 99 The name will look something like, "0:00", where the first number is the
100 bus id, and the second is the PHY's address on that bus. Typically, 100 bus id, and the second is the PHY's address on that bus. Typically,
101 the bus is responsible for making its ID unique. 101 the bus is responsible for making its ID unique.
102 102
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index 02ea9a971b8e..0ab0230cbcb0 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -41,25 +41,14 @@ Table of Contents
41 VI - System-on-a-chip devices and nodes 41 VI - System-on-a-chip devices and nodes
42 1) Defining child nodes of an SOC 42 1) Defining child nodes of an SOC
43 2) Representing devices without a current OF specification 43 2) Representing devices without a current OF specification
44 a) MDIO IO device 44 a) PHY nodes
45 b) Gianfar-compatible ethernet nodes 45 b) Interrupt controllers
46 c) PHY nodes 46 c) CFI or JEDEC memory-mapped NOR flash
47 d) Interrupt controllers 47 d) 4xx/Axon EMAC ethernet nodes
48 e) I2C 48 e) Xilinx IP cores
49 f) Freescale SOC USB controllers 49 f) USB EHCI controllers
50 g) Freescale SOC SEC Security Engines 50 g) MDIO on GPIOs
51 h) Board Control and Status (BCSR) 51 h) SPI busses
52 i) Freescale QUICC Engine module (QE)
53 j) CFI or JEDEC memory-mapped NOR flash
54 k) Global Utilities Block
55 l) Freescale Communications Processor Module
56 m) Chipselect/Local Bus
57 n) 4xx/Axon EMAC ethernet nodes
58 o) Xilinx IP cores
59 p) Freescale Synchronous Serial Interface
60 q) USB EHCI controllers
61 r) MDIO on GPIOs
62 s) SPI busses
63 52
64 VII - Marvell Discovery mv64[345]6x System Controller chips 53 VII - Marvell Discovery mv64[345]6x System Controller chips
65 1) The /system-controller node 54 1) The /system-controller node
@@ -1830,41 +1819,7 @@ platforms are moved over to use the flattened-device-tree model.
1830 big-endian; 1819 big-endian;
1831 }; 1820 };
1832 1821
1833 r) Freescale Display Interface Unit 1822 g) MDIO on GPIOs
1834
1835 The Freescale DIU is a LCD controller, with proper hardware, it can also
1836 drive DVI monitors.
1837
1838 Required properties:
1839 - compatible : should be "fsl-diu".
1840 - reg : should contain at least address and length of the DIU register
1841 set.
1842 - Interrupts : one DIU interrupt should be describe here.
1843
1844 Example (MPC8610HPCD)
1845 display@2c000 {
1846 compatible = "fsl,diu";
1847 reg = <0x2c000 100>;
1848 interrupts = <72 2>;
1849 interrupt-parent = <&mpic>;
1850 };
1851
1852 s) Freescale on board FPGA
1853
1854 This is the memory-mapped registers for on board FPGA.
1855
1856 Required properities:
1857 - compatible : should be "fsl,fpga-pixis".
1858 - reg : should contain the address and the lenght of the FPPGA register
1859 set.
1860
1861 Example (MPC8610HPCD)
1862 board-control@e8000000 {
1863 compatible = "fsl,fpga-pixis";
1864 reg = <0xe8000000 32>;
1865 };
1866
1867 r) MDIO on GPIOs
1868 1823
1869 Currently defined compatibles: 1824 Currently defined compatibles:
1870 - virtual,gpio-mdio 1825 - virtual,gpio-mdio
@@ -1884,7 +1839,7 @@ platforms are moved over to use the flattened-device-tree model.
1884 &qe_pio_c 6>; 1839 &qe_pio_c 6>;
1885 }; 1840 };
1886 1841
1887 s) SPI (Serial Peripheral Interface) busses 1842 h) SPI (Serial Peripheral Interface) busses
1888 1843
1889 SPI busses can be described with a node for the SPI master device 1844 SPI busses can be described with a node for the SPI master device
1890 and a set of child nodes for each SPI slave on the bus. For this 1845 and a set of child nodes for each SPI slave on the bus. For this
diff --git a/Documentation/printk-formats.txt b/Documentation/printk-formats.txt
new file mode 100644
index 000000000000..1b5a5ddbc3ef
--- /dev/null
+++ b/Documentation/printk-formats.txt
@@ -0,0 +1,35 @@
1If variable is of Type, use printk format specifier:
2---------------------------------------------------------
3 int %d or %x
4 unsigned int %u or %x
5 long %ld or %lx
6 unsigned long %lu or %lx
7 long long %lld or %llx
8 unsigned long long %llu or %llx
9 size_t %zu or %zx
10 ssize_t %zd or %zx
11
12Raw pointer value SHOULD be printed with %p.
13
14u64 SHOULD be printed with %llu/%llx, (unsigned long long):
15
16 printk("%llu", (unsigned long long)u64_var);
17
18s64 SHOULD be printed with %lld/%llx, (long long):
19
20 printk("%lld", (long long)s64_var);
21
22If <type> is dependent on a config option for its size (e.g., sector_t,
23blkcnt_t, phys_addr_t, resource_size_t) or is architecture-dependent
24for its size (e.g., tcflag_t), use a format specifier of its largest
25possible type and explicitly cast to it. Example:
26
27 printk("test: sector number/total blocks: %llu/%llu\n",
28 (unsigned long long)sector, (unsigned long long)blockcount);
29
30Reminder: sizeof() result is of type size_t.
31
32Thank you for your cooperation and attention.
33
34
35By Randy Dunlap <rdunlap@xenotime.net>
diff --git a/Documentation/serial/00-INDEX b/Documentation/serial/00-INDEX
new file mode 100644
index 000000000000..07dcdb0d2a36
--- /dev/null
+++ b/Documentation/serial/00-INDEX
@@ -0,0 +1,24 @@
100-INDEX
2 - this file.
3README.cycladesZ
4 - info on Cyclades-Z firmware loading.
5computone.txt
6 - info on Computone Intelliport II/Plus Multiport Serial Driver.
7digiepca.txt
8 - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
9hayes-esp.txt
10 - info on using the Hayes ESP serial driver.
11moxa-smartio
12 - file with info on installing/using Moxa multiport serial driver.
13riscom8.txt
14 - notes on using the RISCom/8 multi-port serial driver.
15rocket.txt
16 - info on the Comtrol RocketPort multiport serial driver.
17specialix.txt
18 - info on hardware/driver for specialix IO8+ multiport serial card.
19stallion.txt
20 - info on using the Stallion multiport serial driver.
21sx.txt
22 - info on the Specialix SX/SI multiport serial driver.
23tty.txt
24 - guide to the locking policies of the tty layer.
diff --git a/Documentation/README.cycladesZ b/Documentation/serial/README.cycladesZ
index 024a69443cc2..024a69443cc2 100644
--- a/Documentation/README.cycladesZ
+++ b/Documentation/serial/README.cycladesZ
diff --git a/Documentation/computone.txt b/Documentation/serial/computone.txt
index 5e2a0c76bfa0..c57ea4781e5d 100644
--- a/Documentation/computone.txt
+++ b/Documentation/serial/computone.txt
@@ -247,7 +247,7 @@ shar archive to make it easier to extract the script from the documentation.
247To create the ip2mkdev shell script change to a convenient directory (/tmp 247To create the ip2mkdev shell script change to a convenient directory (/tmp
248works just fine) and run the following command: 248works just fine) and run the following command:
249 249
250 unshar Documentation/computone.txt 250 unshar Documentation/serial/computone.txt
251 (This file) 251 (This file)
252 252
253You should now have a file ip2mkdev in your current working directory with 253You should now have a file ip2mkdev in your current working directory with
diff --git a/Documentation/digiepca.txt b/Documentation/serial/digiepca.txt
index f2560e22f2c9..f2560e22f2c9 100644
--- a/Documentation/digiepca.txt
+++ b/Documentation/serial/digiepca.txt
diff --git a/Documentation/hayes-esp.txt b/Documentation/serial/hayes-esp.txt
index 09b5d5856758..09b5d5856758 100644
--- a/Documentation/hayes-esp.txt
+++ b/Documentation/serial/hayes-esp.txt
diff --git a/Documentation/moxa-smartio b/Documentation/serial/moxa-smartio
index 5337e80a5b96..5337e80a5b96 100644
--- a/Documentation/moxa-smartio
+++ b/Documentation/serial/moxa-smartio
diff --git a/Documentation/riscom8.txt b/Documentation/serial/riscom8.txt
index 14f61fdad7ca..14f61fdad7ca 100644
--- a/Documentation/riscom8.txt
+++ b/Documentation/serial/riscom8.txt
diff --git a/Documentation/rocket.txt b/Documentation/serial/rocket.txt
index 1d8582990435..1d8582990435 100644
--- a/Documentation/rocket.txt
+++ b/Documentation/serial/rocket.txt
diff --git a/Documentation/specialix.txt b/Documentation/serial/specialix.txt
index 6eb6f3a3331c..6eb6f3a3331c 100644
--- a/Documentation/specialix.txt
+++ b/Documentation/serial/specialix.txt
diff --git a/Documentation/stallion.txt b/Documentation/serial/stallion.txt
index 5c4902d9a5be..5c4902d9a5be 100644
--- a/Documentation/stallion.txt
+++ b/Documentation/serial/stallion.txt
diff --git a/Documentation/sx.txt b/Documentation/serial/sx.txt
index cb4efa0fb5cc..cb4efa0fb5cc 100644
--- a/Documentation/sx.txt
+++ b/Documentation/serial/sx.txt
diff --git a/Documentation/tty.txt b/Documentation/serial/tty.txt
index 8e65c4498c52..8e65c4498c52 100644
--- a/Documentation/tty.txt
+++ b/Documentation/serial/tty.txt
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index e0e54a27fc10..3cd2ad958176 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -1072,10 +1072,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1072 ref Reference board 1072 ref Reference board
1073 dell-m4-1 Dell desktops 1073 dell-m4-1 Dell desktops
1074 dell-m4-2 Dell desktops 1074 dell-m4-2 Dell desktops
1075 dell-m4-3 Dell desktops
1075 1076
1076 STAC92HD73* 1077 STAC92HD73*
1077 ref Reference board 1078 ref Reference board
1078 dell-m6 Dell desktops 1079 dell-m6-amic Dell desktops/laptops with analog mics
1080 dell-m6-dmic Dell desktops/laptops with digital mics
1081 dell-m6 Dell desktops/laptops with both type of mics
1079 1082
1080 STAC9872 1083 STAC9872
1081 vaio Setup for VAIO FE550G/SZ110 1084 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/Documentation/video4linux/README.cx88 b/Documentation/video4linux/README.cx88
index 06a33a4f52fd..166d5960b1a9 100644
--- a/Documentation/video4linux/README.cx88
+++ b/Documentation/video4linux/README.cx88
@@ -27,8 +27,8 @@ audio
27 sound card) should be possible, but there is no code yet ... 27 sound card) should be possible, but there is no code yet ...
28 28
29vbi 29vbi
30 - some code present. Doesn't crash any more, but also doesn't 30 - Code present. Works for NTSC closed caption. PAL and other
31 work yet ... 31 TV norms may or may not work.
32 32
33 33
34how to add support for new cards 34how to add support for new cards
diff --git a/Documentation/video4linux/si470x.txt b/Documentation/video4linux/si470x.txt
new file mode 100644
index 000000000000..11c5fd22a332
--- /dev/null
+++ b/Documentation/video4linux/si470x.txt
@@ -0,0 +1,118 @@
1Driver for USB radios for the Silicon Labs Si470x FM Radio Receivers
2
3Copyright (c) 2008 Tobias Lorenz <tobias.lorenz@gmx.net>
4
5
6Information from Silicon Labs
7=============================
8Silicon Laboratories is the manufacturer of the radio ICs, that nowadays are the
9most often used radio receivers in cell phones. Usually they are connected with
10I2C. But SiLabs also provides a reference design, which integrates this IC,
11together with a small microcontroller C8051F321, to form a USB radio.
12Part of this reference design is also a radio application in binary and source
13code. The software also contains an automatic firmware upgrade to the most
14current version. Information on these can be downloaded here:
15http://www.silabs.com/usbradio
16
17
18Supported ICs
19=============
20The following ICs have a very similar register set, so that they are or will be
21supported somewhen by the driver:
22- Si4700: FM radio receiver
23- Si4701: FM radio receiver, RDS Support
24- Si4702: FM radio receiver
25- Si4703: FM radio receiver, RDS Support
26- Si4704: FM radio receiver, no external antenna required
27- Si4705: FM radio receiver, no external antenna required, RDS support, Dig I/O
28- Si4706: Enhanced FM RDS/TMC radio receiver, no external antenna required, RDS
29 Support
30- Si4707: Dedicated weather band radio receiver with SAME decoder, RDS Support
31- Si4708: Smallest FM receivers
32- Si4709: Smallest FM receivers, RDS Support
33More information on these can be downloaded here:
34http://www.silabs.com/products/mcu/Pages/USBFMRadioRD.aspx
35
36
37Supported USB devices
38=====================
39Currently the following USB radios (vendor:product) with the Silicon Labs si470x
40chips are known to work:
41- 10c4:818a: Silicon Labs USB FM Radio Reference Design
42- 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF)
43- 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700)
44
45
46Software
47========
48Testing is usually done with most application under Debian/testing:
49- fmtools - Utility for managing FM tuner cards
50- gnomeradio - FM-radio tuner for the GNOME desktop
51- gradio - GTK FM radio tuner
52- kradio - Comfortable Radio Application for KDE
53- radio - ncurses-based radio application
54
55There is also a library libv4l, which can be used. It's going to have a function
56for frequency seeking, either by using hardware functionality as in radio-si470x
57or by implementing a function as we currently have in every of the mentioned
58programs. Somewhen the radio programs should make use of libv4l.
59
60For processing RDS information, there is a project ongoing at:
61http://rdsd.berlios.de/
62
63There is currently no project for making TMC sentences human readable.
64
65
66Audio Listing
67=============
68USB Audio is provided by the ALSA snd_usb_audio module. It is recommended to
69also select SND_USB_AUDIO, as this is required to get sound from the radio. For
70listing you have to redirect the sound, for example using one of the following
71commands.
72
73If you just want to test audio (very poor quality):
74cat /dev/dsp1 > /dev/dsp
75
76If you use OSS try:
77sox -2 --endian little -r 96000 -t oss /dev/dsp1 -t oss /dev/dsp
78
79If you use arts try:
80arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
81
82
83Module Parameters
84=================
85After loading the module, you still have access to some of them in the sysfs
86mount under /sys/module/radio_si470x/parameters. The contents of read-only files
87(0444) are not updated, even if space, band and de are changed using private
88video controls. The others are runtime changeable.
89
90
91Errors
92======
93Increase tune_timeout, if you often get -EIO errors.
94
95When timed out or band limit is reached, hw_freq_seek returns -EAGAIN.
96
97If you get any errors from snd_usb_audio, please report them to the ALSA people.
98
99
100Open Issues
101===========
102V4L minor device allocation and parameter setting is not perfect. A solution is
103currently under discussion.
104
105There is an USB interface for downloading/uploading new firmware images. Support
106for it can be implemented using the request_firmware interface.
107
108There is a RDS interrupt mode. The driver is already using the same interface
109for polling RDS information, but is currently not using the interrupt mode.
110
111There is a LED interface, which can be used to override the LED control
112programmed in the firmware. This can be made available using the LED support
113functions in the kernel.
114
115
116Other useful information and links
117==================================
118http://www.silabs.com/usbradio
diff --git a/Documentation/w1/masters/omap-hdq b/Documentation/w1/masters/omap-hdq
new file mode 100644
index 000000000000..ca722e09b6a1
--- /dev/null
+++ b/Documentation/w1/masters/omap-hdq
@@ -0,0 +1,46 @@
1Kernel driver for omap HDQ/1-wire module.
2========================================
3
4Supported chips:
5================
6 HDQ/1-wire controller on the TI OMAP 2430/3430 platforms.
7
8A useful link about HDQ basics:
9===============================
10http://focus.ti.com/lit/an/slua408/slua408.pdf
11
12Description:
13============
14The HDQ/1-Wire module of TI OMAP2430/3430 platforms implement the hardware
15protocol of the master functions of the Benchmark HDQ and the Dallas
16Semiconductor 1-Wire protocols. These protocols use a single wire for
17communication between the master (HDQ/1-Wire controller) and the slave
18(HDQ/1-Wire external compliant device).
19
20A typical application of the HDQ/1-Wire module is the communication with battery
21monitor (gas gauge) integrated circuits.
22
23The controller supports operation in both HDQ and 1-wire mode. The essential
24difference between the HDQ and 1-wire mode is how the slave device responds to
25initialization pulse.In HDQ mode, the firmware does not require the host to
26create an initialization pulse to the slave.However, the slave can be reset by
27using an initialization pulse (also referred to as a break pulse).The slave
28does not respond with a presence pulse as it does in the 1-Wire protocol.
29
30Remarks:
31========
32The driver (drivers/w1/masters/omap_hdq.c) supports the HDQ mode of the
33controller. In this mode, as we can not read the ID which obeys the W1
34spec(family:id:crc), a module parameter can be passed to the driver which will
35be used to calculate the CRC and pass back an appropriate slave ID to the W1
36core.
37
38By default the master driver and the BQ slave i/f
39driver(drivers/w1/slaves/w1_bq27000.c) sets the ID to 1.
40Please note to load both the modules with a different ID if required, but note
41that the ID used should be same for both master and slave driver loading.
42
43e.g:
44insmod omap_hdq.ko W1_ID=2
45inamod w1_bq27000.ko F_ID=2
46
diff --git a/MAINTAINERS b/MAINTAINERS
index d643e862b8e4..09ed704f4dda 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -721,7 +721,7 @@ W: http://sourceforge.net/projects/acpi4asus
721W: http://xf.iksaif.net/acpi4asus 721W: http://xf.iksaif.net/acpi4asus
722S: Maintained 722S: Maintained
723 723
724ASYNCHRONOUS TRANSFERS/TRANSFORMS API 724ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
725P: Dan Williams 725P: Dan Williams
726M: dan.j.williams@intel.com 726M: dan.j.williams@intel.com
727P: Maciej Sosnowski 727P: Maciej Sosnowski
@@ -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
@@ -1809,7 +1810,7 @@ S: Maintained
1809 1810
1810FTRACE 1811FTRACE
1811P: Steven Rostedt 1812P: Steven Rostedt
1812M: srostedt@redhat.com 1813M: rostedt@goodmis.org
1813S: Maintained 1814S: Maintained
1814 1815
1815FUJITSU FR-V (FRV) PORT 1816FUJITSU FR-V (FRV) PORT
@@ -1879,6 +1880,37 @@ M: linux-kernel@vger.kernel.org
1879W: http://www.kernel.org/pub/linux/kernel/people/rml/hdaps/ 1880W: http://www.kernel.org/pub/linux/kernel/people/rml/hdaps/
1880S: Maintained 1881S: Maintained
1881 1882
1883GSPCA FINEPIX SUBDRIVER
1884P: Frank Zago
1885M: frank@zago.net
1886L: video4linux-list@redhat.com
1887S: Maintained
1888
1889GSPCA M5602 SUBDRIVER
1890P: Erik Andren
1891M: erik.andren@gmail.com
1892L: video4linux-list@redhat.com
1893S: Maintained
1894
1895GSPCA PAC207 SONIXB SUBDRIVER
1896P: Hans de Goede
1897M: hdegoede@redhat.com
1898L: video4linux-list@redhat.com
1899S: Maintained
1900
1901GSPCA T613 SUBDRIVER
1902P: Leandro Costantino
1903M: lcostantino@gmail.com
1904L: video4linux-list@redhat.com
1905S: Maintained
1906
1907GSPCA USB WEBCAM DRIVER
1908P: Jean-Francois Moine
1909M: moinejf@free.fr
1910W: http://moinejf.free.fr
1911L: video4linux-list@redhat.com
1912S: Maintained
1913
1882HARDWARE MONITORING 1914HARDWARE MONITORING
1883L: lm-sensors@lm-sensors.org 1915L: lm-sensors@lm-sensors.org
1884W: http://www.lm-sensors.org/ 1916W: http://www.lm-sensors.org/
@@ -2185,6 +2217,13 @@ M: adaplas@gmail.com
2185L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 2217L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
2186S: Maintained 2218S: Maintained
2187 2219
2220INTEL MENLOW THERMAL DRIVER
2221P: Sujith Thomas
2222M: sujith.thomas@intel.com
2223L: linux-acpi@vger.kernel.org
2224W: http://www.lesswatts.org/projects/acpi/
2225S: Supported
2226
2188INTEL IA32 MICROCODE UPDATE SUPPORT 2227INTEL IA32 MICROCODE UPDATE SUPPORT
2189P: Tigran Aivazian 2228P: Tigran Aivazian
2190M: tigran@aivazian.fsnet.co.uk 2229M: tigran@aivazian.fsnet.co.uk
@@ -2665,6 +2704,11 @@ P: Arnaldo Carvalho de Melo
2665M: acme@ghostprotocols.net 2704M: acme@ghostprotocols.net
2666S: Maintained 2705S: Maintained
2667 2706
2707LIS3LV02D ACCELEROMETER DRIVER
2708P: Eric Piel
2709M: eric.piel@tremplin-utc.net
2710S: Maintained
2711
2668LM83 HARDWARE MONITOR DRIVER 2712LM83 HARDWARE MONITOR DRIVER
2669P: Jean Delvare 2713P: Jean Delvare
2670M: khali@linux-fr.org 2714M: khali@linux-fr.org
@@ -3346,7 +3390,9 @@ S: Maintained
3346 3390
3347PNP SUPPORT 3391PNP SUPPORT
3348P: Adam Belay 3392P: Adam Belay
3349M: ambx1@neo.rr.com 3393M: abelay@mit.edu
3394P: Bjorn Helgaas
3395M: bjorn.helgaas@hp.com
3350S: Maintained 3396S: Maintained
3351 3397
3352PNXxxxx I2C DRIVER 3398PNXxxxx I2C DRIVER
@@ -3713,6 +3759,15 @@ M: drzeus-sdhci@drzeus.cx
3713L: sdhci-devel@list.drzeus.cx 3759L: sdhci-devel@list.drzeus.cx
3714S: Maintained 3760S: Maintained
3715 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
3716SECURITY CONTACT 3771SECURITY CONTACT
3717P: Security Officers 3772P: Security Officers
3718M: security@kernel.org 3773M: security@kernel.org
@@ -3883,8 +3938,6 @@ M: bootc@bootc.net
3883S: Maintained 3938S: Maintained
3884 3939
3885SOFTWARE RAID (Multiple Disks) SUPPORT 3940SOFTWARE RAID (Multiple Disks) SUPPORT
3886P: Ingo Molnar
3887M: mingo@redhat.com
3888P: Neil Brown 3941P: Neil Brown
3889M: neilb@suse.de 3942M: neilb@suse.de
3890L: linux-raid@vger.kernel.org 3943L: linux-raid@vger.kernel.org
@@ -4192,7 +4245,7 @@ M: dedekind@infradead.org
4192P: Adrian Hunter 4245P: Adrian Hunter
4193M: ext-adrian.hunter@nokia.com 4246M: ext-adrian.hunter@nokia.com
4194L: linux-mtd@lists.infradead.org 4247L: linux-mtd@lists.infradead.org
4195T: git git://git.infradead.org/~dedekind/ubifs-2.6.git 4248T: git git://git.infradead.org/ubifs-2.6.git
4196W: http://www.linux-mtd.infradead.org/doc/ubifs.html 4249W: http://www.linux-mtd.infradead.org/doc/ubifs.html
4197S: Maintained 4250S: Maintained
4198 4251
@@ -4246,7 +4299,7 @@ P: Artem Bityutskiy
4246M: dedekind@infradead.org 4299M: dedekind@infradead.org
4247W: http://www.linux-mtd.infradead.org/ 4300W: http://www.linux-mtd.infradead.org/
4248L: linux-mtd@lists.infradead.org 4301L: linux-mtd@lists.infradead.org
4249T: git git://git.infradead.org/~dedekind/ubi-2.6.git 4302T: git git://git.infradead.org/ubi-2.6.git
4250S: Maintained 4303S: Maintained
4251 4304
4252USB ACM DRIVER 4305USB ACM DRIVER
diff --git a/Makefile b/Makefile
index 29abe62ccbad..6c2f51b70454 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 28 3SUBLEVEL = 28
4EXTRAVERSION = -rc3 4EXTRAVERSION = -rc8
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 e6ab550bceb3..471e72dbaf8b 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -21,7 +21,7 @@ config OPROFILE_IBS
21 Instruction-Based Sampling (IBS) is a new profiling 21 Instruction-Based Sampling (IBS) is a new profiling
22 technique that provides rich, precise program performance 22 technique that provides rich, precise program performance
23 information. IBS is introduced by AMD Family10h processors 23 information. IBS is introduced by AMD Family10h processors
24 (AMD Opteron Quad-Core processor Barcelona) to overcome 24 (AMD Opteron Quad-Core processor "Barcelona") to overcome
25 the limitations of conventional performance counter 25 the limitations of conventional performance counter
26 sampling. 26 sampling.
27 27
@@ -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/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h
index 1cb8602dd9d5..4ed149cbb32a 100644
--- a/arch/arm/include/asm/dma-mapping.h
+++ b/arch/arm/include/asm/dma-mapping.h
@@ -256,8 +256,17 @@ int dmabounce_sync_for_cpu(struct device *, dma_addr_t, unsigned long,
256int dmabounce_sync_for_device(struct device *, dma_addr_t, unsigned long, 256int dmabounce_sync_for_device(struct device *, dma_addr_t, unsigned long,
257 size_t, enum dma_data_direction); 257 size_t, enum dma_data_direction);
258#else 258#else
259#define dmabounce_sync_for_cpu(dev,dma,off,sz,dir) (1) 259static inline int dmabounce_sync_for_cpu(struct device *d, dma_addr_t addr,
260#define dmabounce_sync_for_device(dev,dma,off,sz,dir) (1) 260 unsigned long offset, size_t size, enum dma_data_direction dir)
261{
262 return 1;
263}
264
265static inline int dmabounce_sync_for_device(struct device *d, dma_addr_t addr,
266 unsigned long offset, size_t size, enum dma_data_direction dir)
267{
268 return 1;
269}
261 270
262 271
263/** 272/**
diff --git a/arch/arm/include/asm/hardware/iop3xx-adma.h b/arch/arm/include/asm/hardware/iop3xx-adma.h
index 87bff09633aa..83e6ba338e2c 100644
--- a/arch/arm/include/asm/hardware/iop3xx-adma.h
+++ b/arch/arm/include/asm/hardware/iop3xx-adma.h
@@ -730,7 +730,8 @@ static inline void iop_desc_set_next_desc(struct iop_adma_desc_slot *desc,
730{ 730{
731 /* hw_desc->next_desc is the same location for all channels */ 731 /* hw_desc->next_desc is the same location for all channels */
732 union iop3xx_desc hw_desc = { .ptr = desc->hw_desc, }; 732 union iop3xx_desc hw_desc = { .ptr = desc->hw_desc, };
733 BUG_ON(hw_desc.dma->next_desc); 733
734 iop_paranoia(hw_desc.dma->next_desc);
734 hw_desc.dma->next_desc = next_desc_addr; 735 hw_desc.dma->next_desc = next_desc_addr;
735} 736}
736 737
@@ -760,7 +761,7 @@ static inline int iop_desc_get_zero_result(struct iop_adma_desc_slot *desc)
760 struct iop3xx_desc_aau *hw_desc = desc->hw_desc; 761 struct iop3xx_desc_aau *hw_desc = desc->hw_desc;
761 struct iop3xx_aau_desc_ctrl desc_ctrl = hw_desc->desc_ctrl_field; 762 struct iop3xx_aau_desc_ctrl desc_ctrl = hw_desc->desc_ctrl_field;
762 763
763 BUG_ON(!(desc_ctrl.tx_complete && desc_ctrl.zero_result_en)); 764 iop_paranoia(!(desc_ctrl.tx_complete && desc_ctrl.zero_result_en));
764 return desc_ctrl.zero_result_err; 765 return desc_ctrl.zero_result_err;
765} 766}
766 767
diff --git a/arch/arm/include/asm/hardware/iop_adma.h b/arch/arm/include/asm/hardware/iop_adma.h
index cb7e3611bcba..385c6e8cbbd2 100644
--- a/arch/arm/include/asm/hardware/iop_adma.h
+++ b/arch/arm/include/asm/hardware/iop_adma.h
@@ -23,6 +23,12 @@
23 23
24#define IOP_ADMA_SLOT_SIZE 32 24#define IOP_ADMA_SLOT_SIZE 32
25#define IOP_ADMA_THRESHOLD 4 25#define IOP_ADMA_THRESHOLD 4
26#ifdef DEBUG
27#define IOP_PARANOIA 1
28#else
29#define IOP_PARANOIA 0
30#endif
31#define iop_paranoia(x) BUG_ON(IOP_PARANOIA && (x))
26 32
27/** 33/**
28 * struct iop_adma_device - internal representation of an ADMA device 34 * struct iop_adma_device - internal representation of an ADMA device
diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
index cb1139ac1943..39d949b63e80 100644
--- a/arch/arm/include/asm/mach/map.h
+++ b/arch/arm/include/asm/mach/map.h
@@ -19,12 +19,13 @@ struct map_desc {
19}; 19};
20 20
21/* types 0-3 are defined in asm/io.h */ 21/* types 0-3 are defined in asm/io.h */
22#define MT_CACHECLEAN 4 22#define MT_UNCACHED 4
23#define MT_MINICLEAN 5 23#define MT_CACHECLEAN 5
24#define MT_LOW_VECTORS 6 24#define MT_MINICLEAN 6
25#define MT_HIGH_VECTORS 7 25#define MT_LOW_VECTORS 7
26#define MT_MEMORY 8 26#define MT_HIGH_VECTORS 8
27#define MT_ROM 9 27#define MT_MEMORY 9
28#define MT_ROM 10
28 29
29#ifdef CONFIG_MMU 30#ifdef CONFIG_MMU
30extern void iotable_init(struct map_desc *, int); 31extern void iotable_init(struct map_desc *, int);
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
index 809ff9ab853a..77764301844b 100644
--- a/arch/arm/include/asm/memory.h
+++ b/arch/arm/include/asm/memory.h
@@ -44,10 +44,10 @@
44 * The module space lives between the addresses given by TASK_SIZE 44 * The module space lives between the addresses given by TASK_SIZE
45 * and PAGE_OFFSET - it must be within 32MB of the kernel text. 45 * and PAGE_OFFSET - it must be within 32MB of the kernel text.
46 */ 46 */
47#define MODULE_END (PAGE_OFFSET) 47#define MODULES_END (PAGE_OFFSET)
48#define MODULE_START (MODULE_END - 16*1048576) 48#define MODULES_VADDR (MODULES_END - 16*1048576)
49 49
50#if TASK_SIZE > MODULE_START 50#if TASK_SIZE > MODULES_VADDR
51#error Top of user space clashes with start of module space 51#error Top of user space clashes with start of module space
52#endif 52#endif
53 53
@@ -56,7 +56,7 @@
56 * Since we use sections to map it, this macro replaces the physical address 56 * Since we use sections to map it, this macro replaces the physical address
57 * with its virtual address while keeping offset from the base section. 57 * with its virtual address while keeping offset from the base section.
58 */ 58 */
59#define XIP_VIRT_ADDR(physaddr) (MODULE_START + ((physaddr) & 0x000fffff)) 59#define XIP_VIRT_ADDR(physaddr) (MODULES_VADDR + ((physaddr) & 0x000fffff))
60 60
61/* 61/*
62 * Allow 16MB-aligned ioremap pages 62 * Allow 16MB-aligned ioremap pages
@@ -94,8 +94,8 @@
94/* 94/*
95 * The module can be at any place in ram in nommu mode. 95 * The module can be at any place in ram in nommu mode.
96 */ 96 */
97#define MODULE_END (END_MEM) 97#define MODULES_END (END_MEM)
98#define MODULE_START (PHYS_OFFSET) 98#define MODULES_VADDR (PHYS_OFFSET)
99 99
100#endif /* !CONFIG_MMU */ 100#endif /* !CONFIG_MMU */
101 101
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/include/asm/system.h b/arch/arm/include/asm/system.h
index 7aad78420f18..568020b34e3e 100644
--- a/arch/arm/include/asm/system.h
+++ b/arch/arm/include/asm/system.h
@@ -42,6 +42,10 @@
42#define CR_U (1 << 22) /* Unaligned access operation */ 42#define CR_U (1 << 22) /* Unaligned access operation */
43#define CR_XP (1 << 23) /* Extended page tables */ 43#define CR_XP (1 << 23) /* Extended page tables */
44#define CR_VE (1 << 24) /* Vectored interrupts */ 44#define CR_VE (1 << 24) /* Vectored interrupts */
45#define CR_EE (1 << 25) /* Exception (Big) Endian */
46#define CR_TRE (1 << 28) /* TEX remap enable */
47#define CR_AFE (1 << 29) /* Access flag enable */
48#define CR_TE (1 << 30) /* Thumb exception enable */
45 49
46/* 50/*
47 * This is used to ensure the compiler did actually allocate the register we 51 * This is used to ensure the compiler did actually allocate the register we
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/elf.c b/arch/arm/kernel/elf.c
index 513f332f040d..84849098c8e8 100644
--- a/arch/arm/kernel/elf.c
+++ b/arch/arm/kernel/elf.c
@@ -21,12 +21,16 @@ int elf_check_arch(const struct elf32_hdr *x)
21 21
22 eflags = x->e_flags; 22 eflags = x->e_flags;
23 if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) { 23 if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) {
24 unsigned int flt_fmt;
25
24 /* APCS26 is only allowed if the CPU supports it */ 26 /* APCS26 is only allowed if the CPU supports it */
25 if ((eflags & EF_ARM_APCS_26) && !(elf_hwcap & HWCAP_26BIT)) 27 if ((eflags & EF_ARM_APCS_26) && !(elf_hwcap & HWCAP_26BIT))
26 return 0; 28 return 0;
27 29
30 flt_fmt = eflags & (EF_ARM_VFP_FLOAT | EF_ARM_SOFT_FLOAT);
31
28 /* VFP requires the supporting code */ 32 /* VFP requires the supporting code */
29 if ((eflags & EF_ARM_VFP_FLOAT) && !(elf_hwcap & HWCAP_VFP)) 33 if (flt_fmt == EF_ARM_VFP_FLOAT && !(elf_hwcap & HWCAP_VFP))
30 return 0; 34 return 0;
31 } 35 }
32 return 1; 36 return 1;
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
index 9203ba7d58ee..b8d965dcd6fd 100644
--- a/arch/arm/kernel/module.c
+++ b/arch/arm/kernel/module.c
@@ -26,12 +26,12 @@
26/* 26/*
27 * The XIP kernel text is mapped in the module area for modules and 27 * The XIP kernel text is mapped in the module area for modules and
28 * some other stuff to work without any indirect relocations. 28 * some other stuff to work without any indirect relocations.
29 * MODULE_START is redefined here and not in asm/memory.h to avoid 29 * MODULES_VADDR is redefined here and not in asm/memory.h to avoid
30 * recompiling the whole kernel when CONFIG_XIP_KERNEL is turned on/off. 30 * recompiling the whole kernel when CONFIG_XIP_KERNEL is turned on/off.
31 */ 31 */
32extern void _etext; 32extern void _etext;
33#undef MODULE_START 33#undef MODULES_VADDR
34#define MODULE_START (((unsigned long)&_etext + ~PGDIR_MASK) & PGDIR_MASK) 34#define MODULES_VADDR (((unsigned long)&_etext + ~PGDIR_MASK) & PGDIR_MASK)
35#endif 35#endif
36 36
37#ifdef CONFIG_MMU 37#ifdef CONFIG_MMU
@@ -43,7 +43,7 @@ void *module_alloc(unsigned long size)
43 if (!size) 43 if (!size)
44 return NULL; 44 return NULL;
45 45
46 area = __get_vm_area(size, VM_ALLOC, MODULE_START, MODULE_END); 46 area = __get_vm_area(size, VM_ALLOC, MODULES_VADDR, MODULES_END);
47 if (!area) 47 if (!area)
48 return NULL; 48 return NULL;
49 49
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-clps711x/include/mach/hardware.h b/arch/arm/mach-clps711x/include/mach/hardware.h
index 4c3e101b96c9..b3ebe9e4871f 100644
--- a/arch/arm/mach-clps711x/include/mach/hardware.h
+++ b/arch/arm/mach-clps711x/include/mach/hardware.h
@@ -94,20 +94,6 @@
94#include <asm/hardware/ep7212.h> 94#include <asm/hardware/ep7212.h>
95#include <asm/hardware/cs89712.h> 95#include <asm/hardware/cs89712.h>
96 96
97/* dynamic ioremap() areas */
98#define FLASH_START 0x00000000
99#define FLASH_SIZE 0x800000
100#define FLASH_WIDTH 4
101
102#define SRAM_START 0x60000000
103#define SRAM_SIZE 0xc000
104#define SRAM_WIDTH 4
105
106#define BOOTROM_START 0x70000000
107#define BOOTROM_SIZE 0x80
108#define BOOTROM_WIDTH 4
109
110
111/* static cdb89712_map_io() areas */ 97/* static cdb89712_map_io() areas */
112#define REGISTER_START 0x80000000 98#define REGISTER_START 0x80000000
113#define REGISTER_SIZE 0x4000 99#define REGISTER_SIZE 0x4000
@@ -198,14 +184,6 @@
198#define CEIVA_FLASH_SIZE 0x100000 184#define CEIVA_FLASH_SIZE 0x100000
199#define CEIVA_FLASH_WIDTH 2 185#define CEIVA_FLASH_WIDTH 2
200 186
201#define SRAM_START 0x60000000
202#define SRAM_SIZE 0xc000
203#define SRAM_WIDTH 4
204
205#define BOOTROM_START 0x70000000
206#define BOOTROM_SIZE 0x80
207#define BOOTROM_WIDTH 4
208
209/* 187/*
210 * SED1355 LCD controller 188 * SED1355 LCD controller
211 */ 189 */
diff --git a/arch/arm/mach-clps7500/core.c b/arch/arm/mach-clps7500/core.c
index c3a33b8a5aac..7e247c04d41c 100644
--- a/arch/arm/mach-clps7500/core.c
+++ b/arch/arm/mach-clps7500/core.c
@@ -275,9 +275,9 @@ static struct map_desc cl7500_io_desc[] __initdata = {
275 .length = ISA_SIZE, 275 .length = ISA_SIZE,
276 .type = MT_DEVICE 276 .type = MT_DEVICE
277 }, { /* Flash */ 277 }, { /* Flash */
278 .virtual = FLASH_BASE, 278 .virtual = CLPS7500_FLASH_BASE,
279 .pfn = __phys_to_pfn(FLASH_START), 279 .pfn = __phys_to_pfn(CLPS7500_FLASH_START),
280 .length = FLASH_SIZE, 280 .length = CLPS7500_FLASH_SIZE,
281 .type = MT_DEVICE 281 .type = MT_DEVICE
282 }, { /* LED */ 282 }, { /* LED */
283 .virtual = LED_BASE, 283 .virtual = LED_BASE,
diff --git a/arch/arm/mach-clps7500/include/mach/hardware.h b/arch/arm/mach-clps7500/include/mach/hardware.h
index d66578a3371c..a6ad1d44badf 100644
--- a/arch/arm/mach-clps7500/include/mach/hardware.h
+++ b/arch/arm/mach-clps7500/include/mach/hardware.h
@@ -39,9 +39,9 @@
39#define ISA_SIZE 0x00010000 39#define ISA_SIZE 0x00010000
40#define ISA_BASE 0xe1000000 40#define ISA_BASE 0xe1000000
41 41
42#define FLASH_START 0x01000000 /* XXX */ 42#define CLPS7500_FLASH_START 0x01000000 /* XXX */
43#define FLASH_SIZE 0x01000000 43#define CLPS7500_FLASH_SIZE 0x01000000
44#define FLASH_BASE 0xe2000000 44#define CLPS7500_FLASH_BASE 0xe2000000
45 45
46#define LED_START 0x0302B000 46#define LED_START 0x0302B000
47#define LED_SIZE 0x00001000 47#define LED_SIZE 0x00001000
diff --git a/arch/arm/mach-h720x/include/mach/boards.h b/arch/arm/mach-h720x/include/mach/boards.h
index 079b279e1242..38b8e0d61fbf 100644
--- a/arch/arm/mach-h720x/include/mach/boards.h
+++ b/arch/arm/mach-h720x/include/mach/boards.h
@@ -19,9 +19,9 @@
19#ifdef CONFIG_ARCH_H7202 19#ifdef CONFIG_ARCH_H7202
20 20
21/* FLASH */ 21/* FLASH */
22#define FLASH_VIRT 0xd0000000 22#define H720X_FLASH_VIRT 0xd0000000
23#define FLASH_PHYS 0x00000000 23#define H720X_FLASH_PHYS 0x00000000
24#define FLASH_SIZE 0x02000000 24#define H720X_FLASH_SIZE 0x02000000
25 25
26/* onboard LAN controller */ 26/* onboard LAN controller */
27# define ETH0_PHYS 0x08000000 27# define ETH0_PHYS 0x08000000
diff --git a/arch/arm/mach-integrator/include/mach/platform.h b/arch/arm/mach-integrator/include/mach/platform.h
index 028b87839c0f..e00a2624f269 100644
--- a/arch/arm/mach-integrator/include/mach/platform.h
+++ b/arch/arm/mach-integrator/include/mach/platform.h
@@ -408,27 +408,10 @@
408#define uHAL_MEMORY_SIZE INTEGRATOR_SSRAM_SIZE 408#define uHAL_MEMORY_SIZE INTEGRATOR_SSRAM_SIZE
409 409
410/* 410/*
411 * Application Flash
412 *
413 */
414#define FLASH_BASE INTEGRATOR_FLASH_BASE
415#define FLASH_SIZE INTEGRATOR_FLASH_SIZE
416#define FLASH_END (FLASH_BASE + FLASH_SIZE - 1)
417#define FLASH_BLOCK_SIZE SZ_128K
418
419/*
420 * Boot Flash
421 *
422 */
423#define EPROM_BASE INTEGRATOR_BOOT_ROM_HI
424#define EPROM_SIZE INTEGRATOR_BOOT_ROM_SIZE
425#define EPROM_END (EPROM_BASE + EPROM_SIZE - 1)
426
427/*
428 * Clean base - dummy 411 * Clean base - dummy
429 * 412 *
430 */ 413 */
431#define CLEAN_BASE EPROM_BASE 414#define CLEAN_BASE INTEGRATOR_BOOT_ROM_HI
432 415
433/* 416/*
434 * Timer definitions 417 * Timer definitions
diff --git a/arch/arm/mach-iop13xx/include/mach/adma.h b/arch/arm/mach-iop13xx/include/mach/adma.h
index 60019c8e6465..5722e86f2174 100644
--- a/arch/arm/mach-iop13xx/include/mach/adma.h
+++ b/arch/arm/mach-iop13xx/include/mach/adma.h
@@ -404,7 +404,8 @@ static inline void iop_desc_set_next_desc(struct iop_adma_desc_slot *desc,
404 u32 next_desc_addr) 404 u32 next_desc_addr)
405{ 405{
406 struct iop13xx_adma_desc_hw *hw_desc = desc->hw_desc; 406 struct iop13xx_adma_desc_hw *hw_desc = desc->hw_desc;
407 BUG_ON(hw_desc->next_desc); 407
408 iop_paranoia(hw_desc->next_desc);
408 hw_desc->next_desc = next_desc_addr; 409 hw_desc->next_desc = next_desc_addr;
409} 410}
410 411
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-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 763bdbeaf681..2249049c1d5a 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -429,18 +429,16 @@ void __init gpmc_init(void)
429 gpmc_l3_clk = clk_get(NULL, ck); 429 gpmc_l3_clk = clk_get(NULL, ck);
430 if (IS_ERR(gpmc_l3_clk)) { 430 if (IS_ERR(gpmc_l3_clk)) {
431 printk(KERN_ERR "Could not get GPMC clock %s\n", ck); 431 printk(KERN_ERR "Could not get GPMC clock %s\n", ck);
432 return -ENODEV; 432 BUG();
433 } 433 }
434 434
435 gpmc_base = ioremap(l, SZ_4K); 435 gpmc_base = ioremap(l, SZ_4K);
436 if (!gpmc_base) { 436 if (!gpmc_base) {
437 clk_put(gpmc_l3_clk); 437 clk_put(gpmc_l3_clk);
438 printk(KERN_ERR "Could not get GPMC register memory\n"); 438 printk(KERN_ERR "Could not get GPMC register memory\n");
439 return -ENOMEM; 439 BUG();
440 } 440 }
441 441
442 BUG_ON(IS_ERR(gpmc_l3_clk));
443
444 l = gpmc_read_reg(GPMC_REVISION); 442 l = gpmc_read_reg(GPMC_REVISION);
445 printk(KERN_INFO "GPMC revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f); 443 printk(KERN_INFO "GPMC revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f);
446 /* Set smart idle mode and automatic L3 clock gating */ 444 /* Set smart idle mode and automatic L3 clock gating */
diff --git a/arch/arm/mach-pxa/include/mach/pxafb.h b/arch/arm/mach-pxa/include/mach/pxafb.h
index 8e591118371e..cbda4d35c421 100644
--- a/arch/arm/mach-pxa/include/mach/pxafb.h
+++ b/arch/arm/mach-pxa/include/mach/pxafb.h
@@ -33,6 +33,7 @@
33#define LCD_CONN_TYPE(_x) ((_x) & 0x0f) 33#define LCD_CONN_TYPE(_x) ((_x) & 0x0f)
34#define LCD_CONN_WIDTH(_x) (((_x) >> 4) & 0x1f) 34#define LCD_CONN_WIDTH(_x) (((_x) >> 4) & 0x1f)
35 35
36#define LCD_TYPE_MASK 0xf
36#define LCD_TYPE_UNKNOWN 0 37#define LCD_TYPE_UNKNOWN 0
37#define LCD_TYPE_MONO_STN 1 38#define LCD_TYPE_MONO_STN 1
38#define LCD_TYPE_MONO_DSTN 2 39#define LCD_TYPE_MONO_DSTN 2
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-pxa/reset.c b/arch/arm/mach-pxa/reset.c
index 1b2af575c40f..00b2dc2a1074 100644
--- a/arch/arm/mach-pxa/reset.c
+++ b/arch/arm/mach-pxa/reset.c
@@ -90,12 +90,13 @@ void arch_reset(char mode)
90 /* Jump into ROM at address 0 */ 90 /* Jump into ROM at address 0 */
91 cpu_reset(0); 91 cpu_reset(0);
92 break; 92 break;
93 case 'h':
94 do_hw_reset();
95 break;
96 case 'g': 93 case 'g':
97 do_gpio_reset(); 94 do_gpio_reset();
98 break; 95 break;
96 case 'h':
97 default:
98 do_hw_reset();
99 break;
99 } 100 }
100} 101}
101 102
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index f0a5bbae0b45..3be76ee2bdbf 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -67,6 +67,7 @@
67static unsigned long spitz_pin_config[] __initdata = { 67static unsigned long spitz_pin_config[] __initdata = {
68 /* Chip Selects */ 68 /* Chip Selects */
69 GPIO78_nCS_2, /* SCOOP #2 */ 69 GPIO78_nCS_2, /* SCOOP #2 */
70 GPIO79_nCS_3, /* NAND */
70 GPIO80_nCS_4, /* SCOOP #1 */ 71 GPIO80_nCS_4, /* SCOOP #1 */
71 72
72 /* LCD - 16bpp Active TFT */ 73 /* LCD - 16bpp Active TFT */
@@ -97,10 +98,10 @@ static unsigned long spitz_pin_config[] __initdata = {
97 GPIO51_nPIOW, 98 GPIO51_nPIOW,
98 GPIO85_nPCE_1, 99 GPIO85_nPCE_1,
99 GPIO54_nPCE_2, 100 GPIO54_nPCE_2,
100 GPIO79_PSKTSEL,
101 GPIO55_nPREG, 101 GPIO55_nPREG,
102 GPIO56_nPWAIT, 102 GPIO56_nPWAIT,
103 GPIO57_nIOIS16, 103 GPIO57_nIOIS16,
104 GPIO104_PSKTSEL,
104 105
105 /* MMC */ 106 /* MMC */
106 GPIO32_MMC_CLK, 107 GPIO32_MMC_CLK,
@@ -686,7 +687,6 @@ static void __init akita_init(void)
686 spitz_pcmcia_config.num_devs = 1; 687 spitz_pcmcia_config.num_devs = 1;
687 platform_scoop_config = &spitz_pcmcia_config; 688 platform_scoop_config = &spitz_pcmcia_config;
688 689
689 pxa_set_i2c_info(NULL);
690 i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info)); 690 i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info));
691 691
692 common_init(); 692 common_init();
diff --git a/arch/arm/mach-realview/clock.c b/arch/arm/mach-realview/clock.c
index 3e706c57833a..3347c4236a60 100644
--- a/arch/arm/mach-realview/clock.c
+++ b/arch/arm/mach-realview/clock.c
@@ -104,7 +104,7 @@ static struct clk uart_clk = {
104 104
105static struct clk mmci_clk = { 105static struct clk mmci_clk = {
106 .name = "MCLK", 106 .name = "MCLK",
107 .rate = 33000000, 107 .rate = 24000000,
108}; 108};
109 109
110int clk_register(struct clk *clk) 110int clk_register(struct clk *clk)
diff --git a/arch/arm/mach-realview/include/mach/platform.h b/arch/arm/mach-realview/include/mach/platform.h
index 4034b54950c2..793a3a332712 100644
--- a/arch/arm/mach-realview/include/mach/platform.h
+++ b/arch/arm/mach-realview/include/mach/platform.h
@@ -239,27 +239,10 @@
239#define REALVIEW_DECODE_OFFSET 0xC /* Fitted logic modules */ 239#define REALVIEW_DECODE_OFFSET 0xC /* Fitted logic modules */
240 240
241/* 241/*
242 * Application Flash
243 *
244 */
245#define FLASH_BASE REALVIEW_FLASH_BASE
246#define FLASH_SIZE REALVIEW_FLASH_SIZE
247#define FLASH_END (FLASH_BASE + FLASH_SIZE - 1)
248#define FLASH_BLOCK_SIZE SZ_128K
249
250/*
251 * Boot Flash
252 *
253 */
254#define EPROM_BASE REALVIEW_BOOT_ROM_HI
255#define EPROM_SIZE REALVIEW_BOOT_ROM_SIZE
256#define EPROM_END (EPROM_BASE + EPROM_SIZE - 1)
257
258/*
259 * Clean base - dummy 242 * Clean base - dummy
260 * 243 *
261 */ 244 */
262#define CLEAN_BASE EPROM_BASE 245#define CLEAN_BASE REALVIEW_BOOT_ROM_HI
263 246
264/* 247/*
265 * System controller bit assignment 248 * System controller bit assignment
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/mach-versatile/clock.c b/arch/arm/mach-versatile/clock.c
index 9336508ec0b2..58937f1fb38c 100644
--- a/arch/arm/mach-versatile/clock.c
+++ b/arch/arm/mach-versatile/clock.c
@@ -105,7 +105,7 @@ static struct clk uart_clk = {
105 105
106static struct clk mmci_clk = { 106static struct clk mmci_clk = {
107 .name = "MCLK", 107 .name = "MCLK",
108 .rate = 33000000, 108 .rate = 24000000,
109}; 109};
110 110
111int clk_register(struct clk *clk) 111int clk_register(struct clk *clk)
diff --git a/arch/arm/mach-versatile/include/mach/platform.h b/arch/arm/mach-versatile/include/mach/platform.h
index 27cbe6a3f220..f91ba930ca8a 100644
--- a/arch/arm/mach-versatile/include/mach/platform.h
+++ b/arch/arm/mach-versatile/include/mach/platform.h
@@ -436,28 +436,12 @@
436#define SIC_INTMASK_PCI1 (1 << SIC_INT_PCI1) 436#define SIC_INTMASK_PCI1 (1 << SIC_INT_PCI1)
437#define SIC_INTMASK_PCI2 (1 << SIC_INT_PCI2) 437#define SIC_INTMASK_PCI2 (1 << SIC_INT_PCI2)
438#define SIC_INTMASK_PCI3 (1 << SIC_INT_PCI3) 438#define SIC_INTMASK_PCI3 (1 << SIC_INT_PCI3)
439/*
440 * Application Flash
441 *
442 */
443#define FLASH_BASE VERSATILE_FLASH_BASE
444#define FLASH_SIZE VERSATILE_FLASH_SIZE
445#define FLASH_END (FLASH_BASE + FLASH_SIZE - 1)
446#define FLASH_BLOCK_SIZE SZ_128K
447
448/*
449 * Boot Flash
450 *
451 */
452#define EPROM_BASE VERSATILE_BOOT_ROM_HI
453#define EPROM_SIZE VERSATILE_BOOT_ROM_SIZE
454#define EPROM_END (EPROM_BASE + EPROM_SIZE - 1)
455 439
456/* 440/*
457 * Clean base - dummy 441 * Clean base - dummy
458 * 442 *
459 */ 443 */
460#define CLEAN_BASE EPROM_BASE 444#define CLEAN_BASE VERSATILE_BOOT_ROM_HI
461 445
462/* 446/*
463 * System controller bit assignment 447 * System controller bit assignment
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/cache-feroceon-l2.c b/arch/arm/mm/cache-feroceon-l2.c
index 13cdae8b0d44..80cd207cbaea 100644
--- a/arch/arm/mm/cache-feroceon-l2.c
+++ b/arch/arm/mm/cache-feroceon-l2.c
@@ -150,7 +150,7 @@ static void feroceon_l2_inv_range(unsigned long start, unsigned long end)
150 /* 150 /*
151 * Clean and invalidate partial last cache line. 151 * Clean and invalidate partial last cache line.
152 */ 152 */
153 if (end & (CACHE_LINE_SIZE - 1)) { 153 if (start < end && end & (CACHE_LINE_SIZE - 1)) {
154 l2_clean_inv_pa(end & ~(CACHE_LINE_SIZE - 1)); 154 l2_clean_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
155 end &= ~(CACHE_LINE_SIZE - 1); 155 end &= ~(CACHE_LINE_SIZE - 1);
156 } 156 }
@@ -158,7 +158,7 @@ static void feroceon_l2_inv_range(unsigned long start, unsigned long end)
158 /* 158 /*
159 * Invalidate all full cache lines between 'start' and 'end'. 159 * Invalidate all full cache lines between 'start' and 'end'.
160 */ 160 */
161 while (start != end) { 161 while (start < end) {
162 unsigned long range_end = calc_range_end(start, end); 162 unsigned long range_end = calc_range_end(start, end);
163 l2_inv_pa_range(start, range_end - CACHE_LINE_SIZE); 163 l2_inv_pa_range(start, range_end - CACHE_LINE_SIZE);
164 start = range_end; 164 start = range_end;
diff --git a/arch/arm/mm/cache-xsc3l2.c b/arch/arm/mm/cache-xsc3l2.c
index 10b1bae1a258..464de893a988 100644
--- a/arch/arm/mm/cache-xsc3l2.c
+++ b/arch/arm/mm/cache-xsc3l2.c
@@ -98,7 +98,7 @@ static void xsc3_l2_inv_range(unsigned long start, unsigned long end)
98 /* 98 /*
99 * Clean and invalidate partial last cache line. 99 * Clean and invalidate partial last cache line.
100 */ 100 */
101 if (end & (CACHE_LINE_SIZE - 1)) { 101 if (start < end && (end & (CACHE_LINE_SIZE - 1))) {
102 xsc3_l2_clean_pa(end & ~(CACHE_LINE_SIZE - 1)); 102 xsc3_l2_clean_pa(end & ~(CACHE_LINE_SIZE - 1));
103 xsc3_l2_inv_pa(end & ~(CACHE_LINE_SIZE - 1)); 103 xsc3_l2_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
104 end &= ~(CACHE_LINE_SIZE - 1); 104 end &= ~(CACHE_LINE_SIZE - 1);
@@ -107,7 +107,7 @@ static void xsc3_l2_inv_range(unsigned long start, unsigned long end)
107 /* 107 /*
108 * Invalidate all full cache lines between 'start' and 'end'. 108 * Invalidate all full cache lines between 'start' and 'end'.
109 */ 109 */
110 while (start != end) { 110 while (start < end) {
111 xsc3_l2_inv_pa(start); 111 xsc3_l2_inv_pa(start);
112 start += CACHE_LINE_SIZE; 112 start += CACHE_LINE_SIZE;
113 } 113 }
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/mm/mmu.c b/arch/arm/mm/mmu.c
index 8ba754064559..7f36c825718d 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -180,20 +180,20 @@ void adjust_cr(unsigned long mask, unsigned long set)
180#endif 180#endif
181 181
182#define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_WRITE 182#define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_WRITE
183#define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_XN|PMD_SECT_AP_WRITE 183#define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE
184 184
185static struct mem_type mem_types[] = { 185static struct mem_type mem_types[] = {
186 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ 186 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
187 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | 187 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
188 L_PTE_SHARED, 188 L_PTE_SHARED,
189 .prot_l1 = PMD_TYPE_TABLE, 189 .prot_l1 = PMD_TYPE_TABLE,
190 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_UNCACHED, 190 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_S,
191 .domain = DOMAIN_IO, 191 .domain = DOMAIN_IO,
192 }, 192 },
193 [MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */ 193 [MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */
194 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_NONSHARED, 194 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_NONSHARED,
195 .prot_l1 = PMD_TYPE_TABLE, 195 .prot_l1 = PMD_TYPE_TABLE,
196 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_TEX(2), 196 .prot_sect = PROT_SECT_DEVICE,
197 .domain = DOMAIN_IO, 197 .domain = DOMAIN_IO,
198 }, 198 },
199 [MT_DEVICE_CACHED] = { /* ioremap_cached */ 199 [MT_DEVICE_CACHED] = { /* ioremap_cached */
@@ -205,7 +205,13 @@ static struct mem_type mem_types[] = {
205 [MT_DEVICE_WC] = { /* ioremap_wc */ 205 [MT_DEVICE_WC] = { /* ioremap_wc */
206 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_WC, 206 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_WC,
207 .prot_l1 = PMD_TYPE_TABLE, 207 .prot_l1 = PMD_TYPE_TABLE,
208 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_BUFFERABLE, 208 .prot_sect = PROT_SECT_DEVICE,
209 .domain = DOMAIN_IO,
210 },
211 [MT_UNCACHED] = {
212 .prot_pte = PROT_PTE_DEVICE,
213 .prot_l1 = PMD_TYPE_TABLE,
214 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
209 .domain = DOMAIN_IO, 215 .domain = DOMAIN_IO,
210 }, 216 },
211 [MT_CACHECLEAN] = { 217 [MT_CACHECLEAN] = {
@@ -273,22 +279,23 @@ static void __init build_mem_type_table(void)
273#endif 279#endif
274 280
275 /* 281 /*
276 * On non-Xscale3 ARMv5-and-older systems, use CB=01 282 * Strip out features not present on earlier architectures.
277 * (Uncached/Buffered) for ioremap_wc() mappings. On XScale3 283 * Pre-ARMv5 CPUs don't have TEX bits. Pre-ARMv6 CPUs or those
278 * and ARMv6+, use TEXCB=00100 mappings (Inner/Outer Uncacheable 284 * without extended page tables don't have the 'Shared' bit.
279 * in xsc3 parlance, Uncached Normal in ARMv6 parlance).
280 */ 285 */
281 if (cpu_is_xsc3() || cpu_arch >= CPU_ARCH_ARMv6) { 286 if (cpu_arch < CPU_ARCH_ARMv5)
282 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1); 287 for (i = 0; i < ARRAY_SIZE(mem_types); i++)
283 mem_types[MT_DEVICE_WC].prot_sect &= ~PMD_SECT_BUFFERABLE; 288 mem_types[i].prot_sect &= ~PMD_SECT_TEX(7);
284 } 289 if ((cpu_arch < CPU_ARCH_ARMv6 || !(cr & CR_XP)) && !cpu_is_xsc3())
290 for (i = 0; i < ARRAY_SIZE(mem_types); i++)
291 mem_types[i].prot_sect &= ~PMD_SECT_S;
285 292
286 /* 293 /*
287 * ARMv5 and lower, bit 4 must be set for page tables. 294 * ARMv5 and lower, bit 4 must be set for page tables (was: cache
288 * (was: cache "update-able on write" bit on ARM610) 295 * "update-able on write" bit on ARM610). However, Xscale and
289 * However, Xscale cores require this bit to be cleared. 296 * Xscale3 require this bit to be cleared.
290 */ 297 */
291 if (cpu_is_xscale()) { 298 if (cpu_is_xscale() || cpu_is_xsc3()) {
292 for (i = 0; i < ARRAY_SIZE(mem_types); i++) { 299 for (i = 0; i < ARRAY_SIZE(mem_types); i++) {
293 mem_types[i].prot_sect &= ~PMD_BIT4; 300 mem_types[i].prot_sect &= ~PMD_BIT4;
294 mem_types[i].prot_l1 &= ~PMD_BIT4; 301 mem_types[i].prot_l1 &= ~PMD_BIT4;
@@ -302,6 +309,64 @@ static void __init build_mem_type_table(void)
302 } 309 }
303 } 310 }
304 311
312 /*
313 * Mark the device areas according to the CPU/architecture.
314 */
315 if (cpu_is_xsc3() || (cpu_arch >= CPU_ARCH_ARMv6 && (cr & CR_XP))) {
316 if (!cpu_is_xsc3()) {
317 /*
318 * Mark device regions on ARMv6+ as execute-never
319 * to prevent speculative instruction fetches.
320 */
321 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_XN;
322 mem_types[MT_DEVICE_NONSHARED].prot_sect |= PMD_SECT_XN;
323 mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_XN;
324 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_XN;
325 }
326 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
327 /*
328 * For ARMv7 with TEX remapping,
329 * - shared device is SXCB=1100
330 * - nonshared device is SXCB=0100
331 * - write combine device mem is SXCB=0001
332 * (Uncached Normal memory)
333 */
334 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_TEX(1);
335 mem_types[MT_DEVICE_NONSHARED].prot_sect |= PMD_SECT_TEX(1);
336 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_BUFFERABLE;
337 } else if (cpu_is_xsc3()) {
338 /*
339 * For Xscale3,
340 * - shared device is TEXCB=00101
341 * - nonshared device is TEXCB=01000
342 * - write combine device mem is TEXCB=00100
343 * (Inner/Outer Uncacheable in xsc3 parlance)
344 */
345 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_TEX(1) | PMD_SECT_BUFFERED;
346 mem_types[MT_DEVICE_NONSHARED].prot_sect |= PMD_SECT_TEX(2);
347 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1);
348 } else {
349 /*
350 * For ARMv6 and ARMv7 without TEX remapping,
351 * - shared device is TEXCB=00001
352 * - nonshared device is TEXCB=01000
353 * - write combine device mem is TEXCB=00100
354 * (Uncached Normal in ARMv6 parlance).
355 */
356 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
357 mem_types[MT_DEVICE_NONSHARED].prot_sect |= PMD_SECT_TEX(2);
358 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1);
359 }
360 } else {
361 /*
362 * On others, write combining is "Uncached/Buffered"
363 */
364 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_BUFFERABLE;
365 }
366
367 /*
368 * Now deal with the memory-type mappings
369 */
305 cp = &cache_policies[cachepolicy]; 370 cp = &cache_policies[cachepolicy];
306 vecs_pgprot = kern_pgprot = user_pgprot = cp->pte; 371 vecs_pgprot = kern_pgprot = user_pgprot = cp->pte;
307 372
@@ -317,12 +382,8 @@ static void __init build_mem_type_table(void)
317 * Enable CPU-specific coherency if supported. 382 * Enable CPU-specific coherency if supported.
318 * (Only available on XSC3 at the moment.) 383 * (Only available on XSC3 at the moment.)
319 */ 384 */
320 if (arch_is_coherent()) { 385 if (arch_is_coherent() && cpu_is_xsc3())
321 if (cpu_is_xsc3()) { 386 mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S;
322 mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S;
323 mem_types[MT_MEMORY].prot_pte |= L_PTE_SHARED;
324 }
325 }
326 387
327 /* 388 /*
328 * ARMv6 and above have extended page tables. 389 * ARMv6 and above have extended page tables.
@@ -336,11 +397,6 @@ static void __init build_mem_type_table(void)
336 mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE; 397 mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
337 mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE; 398 mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
338 399
339 /*
340 * Mark the device area as "shared device"
341 */
342 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
343
344#ifdef CONFIG_SMP 400#ifdef CONFIG_SMP
345 /* 401 /*
346 * Mark memory with the "shared" attribute for SMP systems 402 * Mark memory with the "shared" attribute for SMP systems
@@ -360,9 +416,6 @@ static void __init build_mem_type_table(void)
360 mem_types[MT_LOW_VECTORS].prot_pte |= vecs_pgprot; 416 mem_types[MT_LOW_VECTORS].prot_pte |= vecs_pgprot;
361 mem_types[MT_HIGH_VECTORS].prot_pte |= vecs_pgprot; 417 mem_types[MT_HIGH_VECTORS].prot_pte |= vecs_pgprot;
362 418
363 if (cpu_arch < CPU_ARCH_ARMv5)
364 mem_types[MT_MINICLEAN].prot_sect &= ~PMD_SECT_TEX(1);
365
366 pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot); 419 pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot);
367 pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | 420 pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG |
368 L_PTE_DIRTY | L_PTE_WRITE | 421 L_PTE_DIRTY | L_PTE_WRITE |
@@ -654,7 +707,7 @@ static inline void prepare_page_table(struct meminfo *mi)
654 /* 707 /*
655 * Clear out all the mappings below the kernel image. 708 * Clear out all the mappings below the kernel image.
656 */ 709 */
657 for (addr = 0; addr < MODULE_START; addr += PGDIR_SIZE) 710 for (addr = 0; addr < MODULES_VADDR; addr += PGDIR_SIZE)
658 pmd_clear(pmd_off_k(addr)); 711 pmd_clear(pmd_off_k(addr));
659 712
660#ifdef CONFIG_XIP_KERNEL 713#ifdef CONFIG_XIP_KERNEL
@@ -766,7 +819,7 @@ static void __init devicemaps_init(struct machine_desc *mdesc)
766 */ 819 */
767#ifdef CONFIG_XIP_KERNEL 820#ifdef CONFIG_XIP_KERNEL
768 map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK); 821 map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
769 map.virtual = MODULE_START; 822 map.virtual = MODULES_VADDR;
770 map.length = ((unsigned long)&_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK; 823 map.length = ((unsigned long)&_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
771 map.type = MT_ROM; 824 map.type = MT_ROM;
772 create_mapping(&map); 825 create_mapping(&map);
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 07f82db70945..4d3c0a73e7fb 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -115,7 +115,7 @@ ENTRY(cpu_v7_set_pte_ext)
115 orr r3, r3, r2 115 orr r3, r3, r2
116 orr r3, r3, #PTE_EXT_AP0 | 2 116 orr r3, r3, #PTE_EXT_AP0 | 2
117 117
118 tst r2, #1 << 4 118 tst r1, #1 << 4
119 orrne r3, r3, #PTE_EXT_TEX(1) 119 orrne r3, r3, #PTE_EXT_TEX(1)
120 120
121 tst r1, #L_PTE_WRITE 121 tst r1, #L_PTE_WRITE
@@ -192,11 +192,11 @@ __v7_setup:
192 mov pc, lr @ return to head.S:__ret 192 mov pc, lr @ return to head.S:__ret
193ENDPROC(__v7_setup) 193ENDPROC(__v7_setup)
194 194
195 /* 195 /* AT
196 * V X F I D LR 196 * TFR EV X F I D LR
197 * .... ...E PUI. .T.T 4RVI ZFRS BLDP WCAM 197 * .EEE ..EE PUI. .T.T 4RVI ZFRS BLDP WCAM
198 * rrrr rrrx xxx0 0101 xxxx xxxx x111 xxxx < forced 198 * rxxx rrxx xxx0 0101 xxxx xxxx x111 xxxx < forced
199 * 0 110 0011 1.00 .111 1101 < we want 199 * 1 0 110 0011 1.00 .111 1101 < we want
200 */ 200 */
201 .type v7_crval, #object 201 .type v7_crval, #object
202v7_crval: 202v7_crval:
diff --git a/arch/arm/plat-iop/setup.c b/arch/arm/plat-iop/setup.c
index 4689db638e95..9e573e78176a 100644
--- a/arch/arm/plat-iop/setup.c
+++ b/arch/arm/plat-iop/setup.c
@@ -16,14 +16,15 @@
16#include <asm/hardware/iop3xx.h> 16#include <asm/hardware/iop3xx.h>
17 17
18/* 18/*
19 * Standard IO mapping for all IOP3xx based systems 19 * Standard IO mapping for all IOP3xx based systems. Note that
20 * the IOP3xx OCCDR must be mapped uncached and unbuffered.
20 */ 21 */
21static struct map_desc iop3xx_std_desc[] __initdata = { 22static struct map_desc iop3xx_std_desc[] __initdata = {
22 { /* mem mapped registers */ 23 { /* mem mapped registers */
23 .virtual = IOP3XX_PERIPHERAL_VIRT_BASE, 24 .virtual = IOP3XX_PERIPHERAL_VIRT_BASE,
24 .pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE), 25 .pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE),
25 .length = IOP3XX_PERIPHERAL_SIZE, 26 .length = IOP3XX_PERIPHERAL_SIZE,
26 .type = MT_DEVICE, 27 .type = MT_UNCACHED,
27 }, { /* PCI IO space */ 28 }, { /* PCI IO space */
28 .virtual = IOP3XX_PCI_LOWER_IO_VA, 29 .virtual = IOP3XX_PCI_LOWER_IO_VA,
29 .pfn = __phys_to_pfn(IOP3XX_PCI_LOWER_IO_PA), 30 .pfn = __phys_to_pfn(IOP3XX_PCI_LOWER_IO_PA),
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index bf6a10c5fc4f..be6aab9c6834 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -428,23 +428,23 @@ static int clk_debugfs_register_one(struct clk *c)
428 if (c->id != 0) 428 if (c->id != 0)
429 sprintf(p, ":%d", c->id); 429 sprintf(p, ":%d", c->id);
430 d = debugfs_create_dir(s, pa ? pa->dent : clk_debugfs_root); 430 d = debugfs_create_dir(s, pa ? pa->dent : clk_debugfs_root);
431 if (IS_ERR(d)) 431 if (!d)
432 return PTR_ERR(d); 432 return -ENOMEM;
433 c->dent = d; 433 c->dent = d;
434 434
435 d = debugfs_create_u8("usecount", S_IRUGO, c->dent, (u8 *)&c->usecount); 435 d = debugfs_create_u8("usecount", S_IRUGO, c->dent, (u8 *)&c->usecount);
436 if (IS_ERR(d)) { 436 if (!d) {
437 err = PTR_ERR(d); 437 err = -ENOMEM;
438 goto err_out; 438 goto err_out;
439 } 439 }
440 d = debugfs_create_u32("rate", S_IRUGO, c->dent, (u32 *)&c->rate); 440 d = debugfs_create_u32("rate", S_IRUGO, c->dent, (u32 *)&c->rate);
441 if (IS_ERR(d)) { 441 if (!d) {
442 err = PTR_ERR(d); 442 err = -ENOMEM;
443 goto err_out; 443 goto err_out;
444 } 444 }
445 d = debugfs_create_x32("flags", S_IRUGO, c->dent, (u32 *)&c->flags); 445 d = debugfs_create_x32("flags", S_IRUGO, c->dent, (u32 *)&c->flags);
446 if (IS_ERR(d)) { 446 if (!d) {
447 err = PTR_ERR(d); 447 err = -ENOMEM;
448 goto err_out; 448 goto err_out;
449 } 449 }
450 return 0; 450 return 0;
@@ -483,8 +483,8 @@ static int __init clk_debugfs_init(void)
483 int err; 483 int err;
484 484
485 d = debugfs_create_dir("clock", NULL); 485 d = debugfs_create_dir("clock", NULL);
486 if (IS_ERR(d)) 486 if (!d)
487 return PTR_ERR(d); 487 return -ENOMEM;
488 clk_debugfs_root = d; 488 clk_debugfs_root = d;
489 489
490 list_for_each_entry(c, &clocks, node) { 490 list_for_each_entry(c, &clocks, node) {
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/entry-macro.S b/arch/arm/plat-omap/include/mach/entry-macro.S
index 030118ee204a..2276f89671d8 100644
--- a/arch/arm/plat-omap/include/mach/entry-macro.S
+++ b/arch/arm/plat-omap/include/mach/entry-macro.S
@@ -65,7 +65,8 @@
65#include <mach/omap34xx.h> 65#include <mach/omap34xx.h>
66#endif 66#endif
67 67
68#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt number */ 68#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt offset */
69#define ACTIVEIRQ_MASK 0x7f /* Active interrupt bits */
69 70
70 .macro disable_fiq 71 .macro disable_fiq
71 .endm 72 .endm
@@ -88,6 +89,7 @@
88 cmp \irqnr, #0x0 89 cmp \irqnr, #0x0
892222: 902222:
90 ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET] 91 ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET]
92 and \irqnr, \irqnr, #ACTIVEIRQ_MASK /* Clear spurious bits */
91 93
92 .endm 94 .endm
93 95
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h
index a2929ac8c687..bed5274c910a 100644
--- a/arch/arm/plat-omap/include/mach/irqs.h
+++ b/arch/arm/plat-omap/include/mach/irqs.h
@@ -372,7 +372,7 @@
372 372
373/* External TWL4030 gpio interrupts are optional */ 373/* External TWL4030 gpio interrupts are optional */
374#define TWL4030_GPIO_IRQ_BASE TWL4030_PWR_IRQ_END 374#define TWL4030_GPIO_IRQ_BASE TWL4030_PWR_IRQ_END
375#ifdef CONFIG_TWL4030_GPIO 375#ifdef CONFIG_GPIO_TWL4030
376#define TWL4030_GPIO_NR_IRQS 18 376#define TWL4030_GPIO_NR_IRQS 18
377#else 377#else
378#define TWL4030_GPIO_NR_IRQS 0 378#define TWL4030_GPIO_NR_IRQS 0
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/blackfin/include/asm/bfin-global.h b/arch/blackfin/include/asm/bfin-global.h
index 56dcb0a2d244..77295666c34b 100644
--- a/arch/blackfin/include/asm/bfin-global.h
+++ b/arch/blackfin/include/asm/bfin-global.h
@@ -101,7 +101,7 @@ extern u16 _bfin_swrst; /* shadow for Software Reset Register (SWRST) */
101extern unsigned long _ramstart, _ramend, _rambase; 101extern unsigned long _ramstart, _ramend, _rambase;
102extern unsigned long memory_start, memory_end, physical_mem_end; 102extern unsigned long memory_start, memory_end, physical_mem_end;
103extern char _stext_l1[], _etext_l1[], _sdata_l1[], _edata_l1[], _sbss_l1[], 103extern char _stext_l1[], _etext_l1[], _sdata_l1[], _edata_l1[], _sbss_l1[],
104 _ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _ebss_b_l1[], 104 _ebss_l1[], _l1_lma_start[], _sdata_b_l1[], _sbss_b_l1[], _ebss_b_l1[],
105 _stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[], _sbss_l2[], 105 _stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[], _sbss_l2[],
106 _ebss_l2[], _l2_lma_start[]; 106 _ebss_l2[], _l2_lma_start[];
107 107
diff --git a/arch/blackfin/include/asm/dma-mapping.h b/arch/blackfin/include/asm/dma-mapping.h
index ede748d67efd..d7d9148e433c 100644
--- a/arch/blackfin/include/asm/dma-mapping.h
+++ b/arch/blackfin/include/asm/dma-mapping.h
@@ -15,7 +15,11 @@ void dma_free_coherent(struct device *dev, size_t size, void *vaddr,
15#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) 15#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
16#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) 16#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
17 17
18#define dma_mapping_error 18static inline
19int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
20{
21 return 0;
22}
19 23
20/* 24/*
21 * Map a single buffer of the indicated size for DMA in streaming mode. 25 * Map a single buffer of the indicated size for DMA in streaming mode.
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c
index 6e08f425bb44..5c0800adb4dd 100644
--- a/arch/blackfin/kernel/bfin_gpio.c
+++ b/arch/blackfin/kernel/bfin_gpio.c
@@ -218,7 +218,7 @@ inline int check_gpio(unsigned gpio)
218 if (gpio == GPIO_PB15 || gpio == GPIO_PC14 || gpio == GPIO_PC15 218 if (gpio == GPIO_PB15 || gpio == GPIO_PC14 || gpio == GPIO_PC15
219 || gpio == GPIO_PH14 || gpio == GPIO_PH15 219 || gpio == GPIO_PH14 || gpio == GPIO_PH15
220 || gpio == GPIO_PJ14 || gpio == GPIO_PJ15 220 || gpio == GPIO_PJ14 || gpio == GPIO_PJ15
221 || gpio > MAX_BLACKFIN_GPIOS) 221 || gpio >= MAX_BLACKFIN_GPIOS)
222 return -EINVAL; 222 return -EINVAL;
223 return 0; 223 return 0;
224} 224}
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
index 512f8c92ead5..2debc900e246 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
@@ -188,10 +188,11 @@ static struct cplb_desc cplb_data[] = {
188 188
189static u16 __init lock_kernel_check(u32 start, u32 end) 189static u16 __init lock_kernel_check(u32 start, u32 end)
190{ 190{
191 if ((end <= (u32) _end && end >= (u32)_stext) || 191 if (start >= (u32)_end || end <= (u32)_stext)
192 (start <= (u32) _end && start >= (u32)_stext)) 192 return 0;
193 return IN_KERNEL; 193
194 return 0; 194 /* This cplb block overlapped with kernel area. */
195 return IN_KERNEL;
195} 196}
196 197
197static unsigned short __init 198static unsigned short __init
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index 77800dd83e57..0c3ea118b657 100644
--- a/arch/blackfin/kernel/process.c
+++ b/arch/blackfin/kernel/process.c
@@ -351,10 +351,15 @@ int _access_ok(unsigned long addr, unsigned long size)
351 return 1; 351 return 1;
352#endif 352#endif
353#if L1_DATA_B_LENGTH != 0 353#if L1_DATA_B_LENGTH != 0
354 if (addr >= L1_DATA_B_START 354 if (addr >= L1_DATA_B_START + (_ebss_b_l1 - _sdata_b_l1)
355 && addr + size <= L1_DATA_B_START + L1_DATA_B_LENGTH) 355 && addr + size <= L1_DATA_B_START + L1_DATA_B_LENGTH)
356 return 1; 356 return 1;
357#endif 357#endif
358#if L2_LENGTH != 0
359 if (addr >= L2_START + (_ebss_l2 - _stext_l2)
360 && addr + size <= L2_START + L2_LENGTH)
361 return 1;
362#endif
358 return 0; 363 return 0;
359} 364}
360EXPORT_SYMBOL(_access_ok); 365EXPORT_SYMBOL(_access_ok);
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 7f35d1046cd8..71a9a8c53cea 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -119,23 +119,23 @@ void __init bfin_relocate_l1_mem(void)
119 /* Copy _stext_l1 to _etext_l1 to L1 instruction SRAM */ 119 /* Copy _stext_l1 to _etext_l1 to L1 instruction SRAM */
120 dma_memcpy(_stext_l1, _l1_lma_start, l1_code_length); 120 dma_memcpy(_stext_l1, _l1_lma_start, l1_code_length);
121 121
122 l1_data_a_length = _ebss_l1 - _sdata_l1; 122 l1_data_a_length = _sbss_l1 - _sdata_l1;
123 if (l1_data_a_length > L1_DATA_A_LENGTH) 123 if (l1_data_a_length > L1_DATA_A_LENGTH)
124 panic("L1 Data SRAM Bank A Overflow\n"); 124 panic("L1 Data SRAM Bank A Overflow\n");
125 125
126 /* Copy _sdata_l1 to _ebss_l1 to L1 data bank A SRAM */ 126 /* Copy _sdata_l1 to _sbss_l1 to L1 data bank A SRAM */
127 dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length); 127 dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length);
128 128
129 l1_data_b_length = _ebss_b_l1 - _sdata_b_l1; 129 l1_data_b_length = _sbss_b_l1 - _sdata_b_l1;
130 if (l1_data_b_length > L1_DATA_B_LENGTH) 130 if (l1_data_b_length > L1_DATA_B_LENGTH)
131 panic("L1 Data SRAM Bank B Overflow\n"); 131 panic("L1 Data SRAM Bank B Overflow\n");
132 132
133 /* Copy _sdata_b_l1 to _ebss_b_l1 to L1 data bank B SRAM */ 133 /* Copy _sdata_b_l1 to _sbss_b_l1 to L1 data bank B SRAM */
134 dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length + 134 dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length +
135 l1_data_a_length, l1_data_b_length); 135 l1_data_a_length, l1_data_b_length);
136 136
137 if (L2_LENGTH != 0) { 137 if (L2_LENGTH != 0) {
138 l2_length = _ebss_l2 - _stext_l2; 138 l2_length = _sbss_l2 - _stext_l2;
139 if (l2_length > L2_LENGTH) 139 if (l2_length > L2_LENGTH)
140 panic("L2 SRAM Overflow\n"); 140 panic("L2 SRAM Overflow\n");
141 141
@@ -827,7 +827,7 @@ void __init setup_arch(char **cmdline_p)
827 printk(KERN_ERR "Warning: Compiled for Rev %d, but running on Rev %d\n", 827 printk(KERN_ERR "Warning: Compiled for Rev %d, but running on Rev %d\n",
828 bfin_compiled_revid(), bfin_revid()); 828 bfin_compiled_revid(), bfin_revid());
829 } 829 }
830 if (bfin_revid() <= CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX) 830 if (bfin_revid() < CONFIG_BF_REV_MIN || bfin_revid() > CONFIG_BF_REV_MAX)
831 printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n", 831 printk(KERN_ERR "Warning: Unsupported Chip Revision ADSP-%s Rev 0.%d detected\n",
832 CPU, bfin_revid()); 832 CPU, bfin_revid());
833 } 833 }
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index 1aa2c788e228..bef025b07443 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -59,7 +59,7 @@
59#endif 59#endif
60 60
61 61
62#ifdef CONFIG_VERBOSE_DEBUG 62#ifdef CONFIG_DEBUG_VERBOSE
63#define verbose_printk(fmt, arg...) \ 63#define verbose_printk(fmt, arg...) \
64 printk(fmt, ##arg) 64 printk(fmt, ##arg)
65#else 65#else
@@ -147,9 +147,12 @@ static void decode_address(char *buf, unsigned long address)
147 char *name = p->comm; 147 char *name = p->comm;
148 struct file *file = vma->vm_file; 148 struct file *file = vma->vm_file;
149 149
150 if (file) 150 if (file) {
151 name = d_path(&file->f_path, _tmpbuf, 151 char *d_name = d_path(&file->f_path, _tmpbuf,
152 sizeof(_tmpbuf)); 152 sizeof(_tmpbuf));
153 if (!IS_ERR(d_name))
154 name = d_name;
155 }
153 156
154 /* FLAT does not have its text aligned to the start of 157 /* FLAT does not have its text aligned to the start of
155 * the map while FDPIC ELF does ... 158 * the map while FDPIC ELF does ...
@@ -571,7 +574,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
571#endif 574#endif
572 panic("Kernel exception"); 575 panic("Kernel exception");
573 } else { 576 } else {
574#ifdef CONFIG_VERBOSE_DEBUG 577#ifdef CONFIG_DEBUG_VERBOSE
575 unsigned long *stack; 578 unsigned long *stack;
576 /* Dump the user space stack */ 579 /* Dump the user space stack */
577 stack = (unsigned long *)rdusp(); 580 stack = (unsigned long *)rdusp();
diff --git a/arch/blackfin/mach-common/cache.S b/arch/blackfin/mach-common/cache.S
index db532181fbde..a028e9450419 100644
--- a/arch/blackfin/mach-common/cache.S
+++ b/arch/blackfin/mach-common/cache.S
@@ -25,9 +25,13 @@
25 */ 25 */
26.macro do_flush flushins:req optflushins optnopins label 26.macro do_flush flushins:req optflushins optnopins label
27 27
28 R2 = -L1_CACHE_BYTES;
29
30 /* start = (start & -L1_CACHE_BYTES) */
31 R0 = R0 & R2;
32
28 /* end = ((end - 1) & -L1_CACHE_BYTES) + L1_CACHE_BYTES; */ 33 /* end = ((end - 1) & -L1_CACHE_BYTES) + L1_CACHE_BYTES; */
29 R1 += -1; 34 R1 += -1;
30 R2 = -L1_CACHE_BYTES;
31 R1 = R1 & R2; 35 R1 = R1 & R2;
32 R1 += L1_CACHE_BYTES; 36 R1 += L1_CACHE_BYTES;
33 37
@@ -63,7 +67,7 @@ ENDPROC(_blackfin_icache_flush_range)
63 67
64/* Flush all cache lines assocoiated with this area of memory. */ 68/* Flush all cache lines assocoiated with this area of memory. */
65ENTRY(_blackfin_icache_dcache_flush_range) 69ENTRY(_blackfin_icache_dcache_flush_range)
66 do_flush IFLUSH, FLUSH 70 do_flush FLUSH, IFLUSH
67ENDPROC(_blackfin_icache_dcache_flush_range) 71ENDPROC(_blackfin_icache_dcache_flush_range)
68 72
69/* Throw away all D-cached data in specified region without any obligation to 73/* Throw away all D-cached data in specified region without any obligation to
diff --git a/arch/blackfin/mach-common/cpufreq.c b/arch/blackfin/mach-common/cpufreq.c
index c22c47b60127..dda5443b37ed 100644
--- a/arch/blackfin/mach-common/cpufreq.c
+++ b/arch/blackfin/mach-common/cpufreq.c
@@ -72,13 +72,13 @@ unsigned int __bfin_cycles_mod;
72 72
73/**************************************************************************/ 73/**************************************************************************/
74 74
75static unsigned int bfin_getfreq(unsigned int cpu) 75static unsigned int bfin_getfreq_khz(unsigned int cpu)
76{ 76{
77 /* The driver only support single cpu */ 77 /* The driver only support single cpu */
78 if (cpu != 0) 78 if (cpu != 0)
79 return -1; 79 return -1;
80 80
81 return get_cclk(); 81 return get_cclk() / 1000;
82} 82}
83 83
84 84
@@ -96,7 +96,7 @@ static int bfin_target(struct cpufreq_policy *policy,
96 96
97 cclk_hz = bfin_freq_table[index].frequency; 97 cclk_hz = bfin_freq_table[index].frequency;
98 98
99 freqs.old = bfin_getfreq(0); 99 freqs.old = bfin_getfreq_khz(0);
100 freqs.new = cclk_hz; 100 freqs.new = cclk_hz;
101 freqs.cpu = 0; 101 freqs.cpu = 0;
102 102
@@ -137,8 +137,8 @@ static int __init __bfin_cpu_init(struct cpufreq_policy *policy)
137 if (policy->cpu != 0) 137 if (policy->cpu != 0)
138 return -EINVAL; 138 return -EINVAL;
139 139
140 cclk = get_cclk(); 140 cclk = get_cclk() / 1000;
141 sclk = get_sclk(); 141 sclk = get_sclk() / 1000;
142 142
143#if ANOMALY_05000273 || (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_DCACHE)) 143#if ANOMALY_05000273 || (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_DCACHE))
144 min_cclk = sclk * 2; 144 min_cclk = sclk * 2;
@@ -152,7 +152,7 @@ static int __init __bfin_cpu_init(struct cpufreq_policy *policy)
152 dpm_state_table[index].csel = csel << 4; /* Shift now into PLL_DIV bitpos */ 152 dpm_state_table[index].csel = csel << 4; /* Shift now into PLL_DIV bitpos */
153 dpm_state_table[index].tscale = (TIME_SCALE / (1 << csel)) - 1; 153 dpm_state_table[index].tscale = (TIME_SCALE / (1 << csel)) - 1;
154 154
155 pr_debug("cpufreq: freq:%d csel:%d tscale:%d\n", 155 pr_debug("cpufreq: freq:%d csel:0x%x tscale:%d\n",
156 bfin_freq_table[index].frequency, 156 bfin_freq_table[index].frequency,
157 dpm_state_table[index].csel, 157 dpm_state_table[index].csel,
158 dpm_state_table[index].tscale); 158 dpm_state_table[index].tscale);
@@ -173,7 +173,7 @@ static struct freq_attr *bfin_freq_attr[] = {
173static struct cpufreq_driver bfin_driver = { 173static struct cpufreq_driver bfin_driver = {
174 .verify = bfin_verify_speed, 174 .verify = bfin_verify_speed,
175 .target = bfin_target, 175 .target = bfin_target,
176 .get = bfin_getfreq, 176 .get = bfin_getfreq_khz,
177 .init = __bfin_cpu_init, 177 .init = __bfin_cpu_init,
178 .name = "bfin cpufreq", 178 .name = "bfin cpufreq",
179 .owner = THIS_MODULE, 179 .owner = THIS_MODULE,
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index c13fa8da28c7..bde6dc4e2614 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -277,7 +277,7 @@ ENTRY(_bfin_return_from_exception)
277 p5.h = hi(ILAT); 277 p5.h = hi(ILAT);
278 r6 = [p5]; 278 r6 = [p5];
279 r7 = 0x20; /* Did I just cause anther HW error? */ 279 r7 = 0x20; /* Did I just cause anther HW error? */
280 r7 = r7 & r1; 280 r6 = r7 & r6;
281 CC = R7 == R6; 281 CC = R7 == R6;
282 if CC JUMP _double_fault; 282 if CC JUMP _double_fault;
283#endif 283#endif
diff --git a/arch/blackfin/mm/sram-alloc.c b/arch/blackfin/mm/sram-alloc.c
index 0f1ca6930c16..cc6f336e7313 100644
--- a/arch/blackfin/mm/sram-alloc.c
+++ b/arch/blackfin/mm/sram-alloc.c
@@ -183,10 +183,10 @@ static void __init l2_sram_init(void)
183 return; 183 return;
184 } 184 }
185 185
186 free_l2_sram_head.next->paddr = (void *)L2_START + 186 free_l2_sram_head.next->paddr =
187 (_etext_l2 - _stext_l2) + (_edata_l2 - _sdata_l2); 187 (void *)L2_START + (_ebss_l2 - _stext_l2);
188 free_l2_sram_head.next->size = L2_LENGTH - 188 free_l2_sram_head.next->size =
189 (_etext_l2 - _stext_l2) + (_edata_l2 - _sdata_l2); 189 L2_LENGTH - (_ebss_l2 - _stext_l2);
190 free_l2_sram_head.next->pid = 0; 190 free_l2_sram_head.next->pid = 0;
191 free_l2_sram_head.next->next = NULL; 191 free_l2_sram_head.next->next = NULL;
192 192
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/Kconfig b/arch/ia64/Kconfig
index 27eec71429b0..6bd91ed7cd03 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -148,6 +148,7 @@ config IA64_GENERIC
148 select ACPI_NUMA 148 select ACPI_NUMA
149 select SWIOTLB 149 select SWIOTLB
150 select PCI_MSI 150 select PCI_MSI
151 select DMAR
151 help 152 help
152 This selects the system type of your hardware. A "generic" kernel 153 This selects the system type of your hardware. A "generic" kernel
153 will run on any supported IA-64 system. However, if you configure 154 will run on any supported IA-64 system. However, if you configure
@@ -585,7 +586,7 @@ source "fs/Kconfig.binfmt"
585 586
586endmenu 587endmenu
587 588
588menu "Power management and ACPI" 589menu "Power management and ACPI options"
589 590
590source "kernel/power/Kconfig" 591source "kernel/power/Kconfig"
591 592
@@ -641,6 +642,8 @@ source "net/Kconfig"
641 642
642source "drivers/Kconfig" 643source "drivers/Kconfig"
643 644
645source "arch/ia64/hp/sim/Kconfig"
646
644config MSPEC 647config MSPEC
645 tristate "Memory special operations driver" 648 tristate "Memory special operations driver"
646 depends on IA64 649 depends on IA64
@@ -652,6 +655,12 @@ config MSPEC
652 655
653source "fs/Kconfig" 656source "fs/Kconfig"
654 657
658source "arch/ia64/Kconfig.debug"
659
660source "security/Kconfig"
661
662source "crypto/Kconfig"
663
655source "arch/ia64/kvm/Kconfig" 664source "arch/ia64/kvm/Kconfig"
656 665
657source "lib/Kconfig" 666source "lib/Kconfig"
@@ -678,11 +687,3 @@ config IRQ_PER_CPU
678 687
679config IOMMU_HELPER 688config IOMMU_HELPER
680 def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB) 689 def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB)
681
682source "arch/ia64/hp/sim/Kconfig"
683
684source "arch/ia64/Kconfig.debug"
685
686source "security/Kconfig"
687
688source "crypto/Kconfig"
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/common/hwsw_iommu.c b/arch/ia64/hp/common/hwsw_iommu.c
index 88b6e6f3fd88..2769dbfd03bf 100644
--- a/arch/ia64/hp/common/hwsw_iommu.c
+++ b/arch/ia64/hp/common/hwsw_iommu.c
@@ -13,19 +13,12 @@
13 */ 13 */
14 14
15#include <linux/device.h> 15#include <linux/device.h>
16#include <linux/swiotlb.h>
16 17
17#include <asm/machvec.h> 18#include <asm/machvec.h>
18 19
19/* swiotlb declarations & definitions: */ 20/* swiotlb declarations & definitions: */
20extern int swiotlb_late_init_with_default_size (size_t size); 21extern int swiotlb_late_init_with_default_size (size_t size);
21extern ia64_mv_dma_alloc_coherent swiotlb_alloc_coherent;
22extern ia64_mv_dma_free_coherent swiotlb_free_coherent;
23extern ia64_mv_dma_map_single_attrs swiotlb_map_single_attrs;
24extern ia64_mv_dma_unmap_single_attrs swiotlb_unmap_single_attrs;
25extern ia64_mv_dma_map_sg_attrs swiotlb_map_sg_attrs;
26extern ia64_mv_dma_unmap_sg_attrs swiotlb_unmap_sg_attrs;
27extern ia64_mv_dma_supported swiotlb_dma_supported;
28extern ia64_mv_dma_mapping_error swiotlb_dma_mapping_error;
29 22
30/* hwiommu declarations & definitions: */ 23/* hwiommu declarations & definitions: */
31 24
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/intrinsics.h b/arch/ia64/include/asm/intrinsics.h
index 47d686dba1eb..a3e44a5ed497 100644
--- a/arch/ia64/include/asm/intrinsics.h
+++ b/arch/ia64/include/asm/intrinsics.h
@@ -226,7 +226,7 @@ extern long ia64_cmpxchg_called_with_bad_pointer (void);
226/************************************************/ 226/************************************************/
227#define ia64_ssm IA64_INTRINSIC_MACRO(ssm) 227#define ia64_ssm IA64_INTRINSIC_MACRO(ssm)
228#define ia64_rsm IA64_INTRINSIC_MACRO(rsm) 228#define ia64_rsm IA64_INTRINSIC_MACRO(rsm)
229#define ia64_getreg IA64_INTRINSIC_API(getreg) 229#define ia64_getreg IA64_INTRINSIC_MACRO(getreg)
230#define ia64_setreg IA64_INTRINSIC_API(setreg) 230#define ia64_setreg IA64_INTRINSIC_API(setreg)
231#define ia64_set_rr IA64_INTRINSIC_API(set_rr) 231#define ia64_set_rr IA64_INTRINSIC_API(set_rr)
232#define ia64_get_rr IA64_INTRINSIC_API(get_rr) 232#define ia64_get_rr IA64_INTRINSIC_API(get_rr)
diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
index 7f257507cd86..0d9d16e2d949 100644
--- a/arch/ia64/include/asm/io.h
+++ b/arch/ia64/include/asm/io.h
@@ -434,28 +434,4 @@ extern void memset_io(volatile void __iomem *s, int c, long n);
434 434
435# endif /* __KERNEL__ */ 435# endif /* __KERNEL__ */
436 436
437/*
438 * Enabling BIO_VMERGE_BOUNDARY forces us to turn off I/O MMU bypassing. It is said that
439 * BIO-level virtual merging can give up to 4% performance boost (not verified for ia64).
440 * On the other hand, we know that I/O MMU bypassing gives ~8% performance improvement on
441 * SPECweb-like workloads on zx1-based machines. Thus, for now we favor I/O MMU bypassing
442 * over BIO-level virtual merging.
443 */
444extern unsigned long ia64_max_iommu_merge_mask;
445#if 1
446#define BIO_VMERGE_BOUNDARY 0
447#else
448/*
449 * It makes no sense at all to have this BIO_VMERGE_BOUNDARY macro here. Should be
450 * replaced by dma_merge_mask() or something of that sort. Note: the only way
451 * BIO_VMERGE_BOUNDARY is used is to mask off bits. Effectively, our definition gets
452 * expanded into:
453 *
454 * addr & ((ia64_max_iommu_merge_mask + 1) - 1) == (addr & ia64_max_iommu_vmerge_mask)
455 *
456 * which is precisely what we want.
457 */
458#define BIO_VMERGE_BOUNDARY (ia64_max_iommu_merge_mask + 1)
459#endif
460
461#endif /* _ASM_IA64_IO_H */ 437#endif /* _ASM_IA64_IO_H */
diff --git a/arch/ia64/include/asm/machvec.h b/arch/ia64/include/asm/machvec.h
index 1ea28bcee33b..59c17e446683 100644
--- a/arch/ia64/include/asm/machvec.h
+++ b/arch/ia64/include/asm/machvec.h
@@ -11,6 +11,7 @@
11#define _ASM_IA64_MACHVEC_H 11#define _ASM_IA64_MACHVEC_H
12 12
13#include <linux/types.h> 13#include <linux/types.h>
14#include <linux/swiotlb.h>
14 15
15/* forward declarations: */ 16/* forward declarations: */
16struct device; 17struct device;
@@ -298,27 +299,6 @@ extern void machvec_init_from_cmdline(const char *cmdline);
298# endif /* CONFIG_IA64_GENERIC */ 299# endif /* CONFIG_IA64_GENERIC */
299 300
300/* 301/*
301 * Declare default routines which aren't declared anywhere else:
302 */
303extern ia64_mv_dma_init swiotlb_init;
304extern ia64_mv_dma_alloc_coherent swiotlb_alloc_coherent;
305extern ia64_mv_dma_free_coherent swiotlb_free_coherent;
306extern ia64_mv_dma_map_single swiotlb_map_single;
307extern ia64_mv_dma_map_single_attrs swiotlb_map_single_attrs;
308extern ia64_mv_dma_unmap_single swiotlb_unmap_single;
309extern ia64_mv_dma_unmap_single_attrs swiotlb_unmap_single_attrs;
310extern ia64_mv_dma_map_sg swiotlb_map_sg;
311extern ia64_mv_dma_map_sg_attrs swiotlb_map_sg_attrs;
312extern ia64_mv_dma_unmap_sg swiotlb_unmap_sg;
313extern ia64_mv_dma_unmap_sg_attrs swiotlb_unmap_sg_attrs;
314extern ia64_mv_dma_sync_single_for_cpu swiotlb_sync_single_for_cpu;
315extern ia64_mv_dma_sync_sg_for_cpu swiotlb_sync_sg_for_cpu;
316extern ia64_mv_dma_sync_single_for_device swiotlb_sync_single_for_device;
317extern ia64_mv_dma_sync_sg_for_device swiotlb_sync_sg_for_device;
318extern ia64_mv_dma_mapping_error swiotlb_dma_mapping_error;
319extern ia64_mv_dma_supported swiotlb_dma_supported;
320
321/*
322 * Define default versions so we can extend machvec for new platforms without having 302 * Define default versions so we can extend machvec for new platforms without having
323 * to update the machvec files for all existing platforms. 303 * to update the machvec files for all existing platforms.
324 */ 304 */
diff --git a/arch/ia64/include/asm/meminit.h b/arch/ia64/include/asm/meminit.h
index 6bc96ee54327..c0cea375620a 100644
--- a/arch/ia64/include/asm/meminit.h
+++ b/arch/ia64/include/asm/meminit.h
@@ -48,7 +48,6 @@ extern int reserve_elfcorehdr(unsigned long *start, unsigned long *end);
48 */ 48 */
49#define GRANULEROUNDDOWN(n) ((n) & ~(IA64_GRANULE_SIZE-1)) 49#define GRANULEROUNDDOWN(n) ((n) & ~(IA64_GRANULE_SIZE-1))
50#define GRANULEROUNDUP(n) (((n)+IA64_GRANULE_SIZE-1) & ~(IA64_GRANULE_SIZE-1)) 50#define GRANULEROUNDUP(n) (((n)+IA64_GRANULE_SIZE-1) & ~(IA64_GRANULE_SIZE-1))
51#define ORDERROUNDDOWN(n) ((n) & ~((PAGE_SIZE<<MAX_ORDER)-1))
52 51
53#ifdef CONFIG_NUMA 52#ifdef CONFIG_NUMA
54 extern void call_pernode_memory (unsigned long start, unsigned long len, void *func); 53 extern void call_pernode_memory (unsigned long start, unsigned long len, void *func);
diff --git a/arch/ia64/include/asm/paravirt_privop.h b/arch/ia64/include/asm/paravirt_privop.h
index d577aac11835..33c8e55f5775 100644
--- a/arch/ia64/include/asm/paravirt_privop.h
+++ b/arch/ia64/include/asm/paravirt_privop.h
@@ -78,6 +78,18 @@ extern unsigned long ia64_native_getreg_func(int regnum);
78 ia64_native_rsm(mask); \ 78 ia64_native_rsm(mask); \
79 } while (0) 79 } while (0)
80 80
81/* returned ip value should be the one in the caller,
82 * not in __paravirt_getreg() */
83#define paravirt_getreg(reg) \
84 ({ \
85 unsigned long res; \
86 if ((reg) == _IA64_REG_IP) \
87 res = ia64_native_getreg(_IA64_REG_IP); \
88 else \
89 res = pv_cpu_ops.getreg(reg); \
90 res; \
91 })
92
81/****************************************************************************** 93/******************************************************************************
82 * replacement of hand written assembly codes. 94 * replacement of hand written assembly codes.
83 */ 95 */
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/include/asm/sal.h b/arch/ia64/include/asm/sal.h
index ea310c0812aa..966797a97c94 100644
--- a/arch/ia64/include/asm/sal.h
+++ b/arch/ia64/include/asm/sal.h
@@ -337,11 +337,24 @@ typedef struct sal_log_record_header {
337#define sal_log_severity_fatal 1 337#define sal_log_severity_fatal 1
338#define sal_log_severity_corrected 2 338#define sal_log_severity_corrected 2
339 339
340/*
341 * Error Recovery Info (ERI) bit decode. From SAL Spec section B.2.2 Table B-3
342 * Error Section Error_Recovery_Info Field Definition.
343 */
344#define ERI_NOT_VALID 0x0 /* Error Recovery Field is not valid */
345#define ERI_NOT_ACCESSIBLE 0x30 /* Resource not accessible */
346#define ERI_CONTAINMENT_WARN 0x22 /* Corrupt data propagated */
347#define ERI_UNCORRECTED_ERROR 0x20 /* Uncorrected error */
348#define ERI_COMPONENT_RESET 0x24 /* Component must be reset */
349#define ERI_CORR_ERROR_LOG 0x21 /* Corrected error, needs logging */
350#define ERI_CORR_ERROR_THRESH 0x29 /* Corrected error threshold exceeded */
351
340/* Definition of log section header structures */ 352/* Definition of log section header structures */
341typedef struct sal_log_sec_header { 353typedef struct sal_log_sec_header {
342 efi_guid_t guid; /* Unique Section ID */ 354 efi_guid_t guid; /* Unique Section ID */
343 sal_log_revision_t revision; /* Major and Minor revision of Section */ 355 sal_log_revision_t revision; /* Major and Minor revision of Section */
344 u16 reserved; 356 u8 error_recovery_info; /* Platform error recovery status */
357 u8 reserved;
345 u32 len; /* Section length */ 358 u32 len; /* Section length */
346} sal_log_section_hdr_t; 359} sal_log_section_hdr_t;
347 360
diff --git a/arch/ia64/include/asm/sn/sn_sal.h b/arch/ia64/include/asm/sn/sn_sal.h
index 57e649d388b8..e310fc0135dc 100644
--- a/arch/ia64/include/asm/sn/sn_sal.h
+++ b/arch/ia64/include/asm/sn/sn_sal.h
@@ -90,6 +90,8 @@
90#define SN_SAL_SET_CPU_NUMBER 0x02000068 90#define SN_SAL_SET_CPU_NUMBER 0x02000068
91 91
92#define SN_SAL_KERNEL_LAUNCH_EVENT 0x02000069 92#define SN_SAL_KERNEL_LAUNCH_EVENT 0x02000069
93#define SN_SAL_WATCHLIST_ALLOC 0x02000070
94#define SN_SAL_WATCHLIST_FREE 0x02000071
93 95
94/* 96/*
95 * Service-specific constants 97 * Service-specific constants
@@ -1185,4 +1187,47 @@ ia64_sn_kernel_launch_event(void)
1185 SAL_CALL_NOLOCK(rv, SN_SAL_KERNEL_LAUNCH_EVENT, 0, 0, 0, 0, 0, 0, 0); 1187 SAL_CALL_NOLOCK(rv, SN_SAL_KERNEL_LAUNCH_EVENT, 0, 0, 0, 0, 0, 0, 0);
1186 return rv.status; 1188 return rv.status;
1187} 1189}
1190
1191union sn_watchlist_u {
1192 u64 val;
1193 struct {
1194 u64 blade : 16,
1195 size : 32,
1196 filler : 16;
1197 };
1198};
1199
1200static inline int
1201sn_mq_watchlist_alloc(int blade, void *mq, unsigned int mq_size,
1202 unsigned long *intr_mmr_offset)
1203{
1204 struct ia64_sal_retval rv;
1205 unsigned long addr;
1206 union sn_watchlist_u size_blade;
1207 int watchlist;
1208
1209 addr = (unsigned long)mq;
1210 size_blade.size = mq_size;
1211 size_blade.blade = blade;
1212
1213 /*
1214 * bios returns watchlist number or negative error number.
1215 */
1216 ia64_sal_oemcall_nolock(&rv, SN_SAL_WATCHLIST_ALLOC, addr,
1217 size_blade.val, (u64)intr_mmr_offset,
1218 (u64)&watchlist, 0, 0, 0);
1219 if (rv.status < 0)
1220 return rv.status;
1221
1222 return watchlist;
1223}
1224
1225static inline int
1226sn_mq_watchlist_free(int blade, int watchlist_num)
1227{
1228 struct ia64_sal_retval rv;
1229 ia64_sal_oemcall_nolock(&rv, SN_SAL_WATCHLIST_FREE, blade,
1230 watchlist_num, 0, 0, 0, 0, 0);
1231 return rv.status;
1232}
1188#endif /* _ASM_IA64_SN_SN_SAL_H */ 1233#endif /* _ASM_IA64_SN_SN_SAL_H */
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 0635015d0aaa..bd7acc71e8a9 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -678,6 +678,30 @@ static int __init acpi_parse_fadt(struct acpi_table_header *table)
678 return 0; 678 return 0;
679} 679}
680 680
681int __init early_acpi_boot_init(void)
682{
683 int ret;
684
685 /*
686 * do a partial walk of MADT to determine how many CPUs
687 * we have including offline CPUs
688 */
689 if (acpi_table_parse(ACPI_SIG_MADT, acpi_parse_madt)) {
690 printk(KERN_ERR PREFIX "Can't find MADT\n");
691 return 0;
692 }
693
694 ret = acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_SAPIC,
695 acpi_parse_lsapic, NR_CPUS);
696 if (ret < 1)
697 printk(KERN_ERR PREFIX
698 "Error parsing MADT - no LAPIC entries\n");
699
700 return 0;
701}
702
703
704
681int __init acpi_boot_init(void) 705int __init acpi_boot_init(void)
682{ 706{
683 707
@@ -701,11 +725,6 @@ int __init acpi_boot_init(void)
701 printk(KERN_ERR PREFIX 725 printk(KERN_ERR PREFIX
702 "Error parsing LAPIC address override entry\n"); 726 "Error parsing LAPIC address override entry\n");
703 727
704 if (acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_SAPIC, acpi_parse_lsapic, NR_CPUS)
705 < 1)
706 printk(KERN_ERR PREFIX
707 "Error parsing MADT - no LAPIC entries\n");
708
709 if (acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_APIC_NMI, acpi_parse_lapic_nmi, 0) 728 if (acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_APIC_NMI, acpi_parse_lapic_nmi, 0)
710 < 0) 729 < 0)
711 printk(KERN_ERR PREFIX "Error parsing LAPIC NMI entry\n"); 730 printk(KERN_ERR PREFIX "Error parsing LAPIC NMI entry\n");
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index 7ef0c594f5ed..d435f4a7a96c 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -499,6 +499,7 @@ GLOBAL_ENTRY(prefetch_stack)
499END(prefetch_stack) 499END(prefetch_stack)
500 500
501GLOBAL_ENTRY(kernel_execve) 501GLOBAL_ENTRY(kernel_execve)
502 rum psr.ac
502 mov r15=__NR_execve // put syscall number in place 503 mov r15=__NR_execve // put syscall number in place
503 break __BREAK_SYSCALL 504 break __BREAK_SYSCALL
504 br.ret.sptk.many rp 505 br.ret.sptk.many rp
diff --git a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S
index 66e491d8baac..59301c472800 100644
--- a/arch/ia64/kernel/head.S
+++ b/arch/ia64/kernel/head.S
@@ -260,7 +260,7 @@ start_ap:
260 * Switch into virtual mode: 260 * Switch into virtual mode:
261 */ 261 */
262 movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \ 262 movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \
263 |IA64_PSR_DI) 263 |IA64_PSR_DI|IA64_PSR_AC)
264 ;; 264 ;;
265 mov cr.ipsr=r16 265 mov cr.ipsr=r16
266 movl r17=1f 266 movl r17=1f
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 7dd96c127177..bab1de2d2f6a 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -1139,7 +1139,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
1139 return previous_current; 1139 return previous_current;
1140 1140
1141no_mod: 1141no_mod:
1142 printk(KERN_INFO "cpu %d, %s %s, original stack not modified\n", 1142 mprintk(KERN_INFO "cpu %d, %s %s, original stack not modified\n",
1143 smp_processor_id(), type, msg); 1143 smp_processor_id(), type, msg);
1144 return previous_current; 1144 return previous_current;
1145} 1145}
diff --git a/arch/ia64/kernel/paravirt.c b/arch/ia64/kernel/paravirt.c
index de35d8e8b7d2..9f14c16f6369 100644
--- a/arch/ia64/kernel/paravirt.c
+++ b/arch/ia64/kernel/paravirt.c
@@ -130,7 +130,7 @@ ia64_native_getreg_func(int regnum)
130 unsigned long res = -1; 130 unsigned long res = -1;
131 switch (regnum) { 131 switch (regnum) {
132 CASE_GET_REG(GP); 132 CASE_GET_REG(GP);
133 CASE_GET_REG(IP); 133 /*CASE_GET_REG(IP);*/ /* returned ip value shouldn't be constant */
134 CASE_GET_REG(PSR); 134 CASE_GET_REG(PSR);
135 CASE_GET_REG(TP); 135 CASE_GET_REG(TP);
136 CASE_GET_REG(SP); 136 CASE_GET_REG(SP);
diff --git a/arch/ia64/kernel/pci-dma.c b/arch/ia64/kernel/pci-dma.c
index 031abbf9c875..2a92f637431d 100644
--- a/arch/ia64/kernel/pci-dma.c
+++ b/arch/ia64/kernel/pci-dma.c
@@ -12,16 +12,13 @@
12#include <asm/machvec.h> 12#include <asm/machvec.h>
13#include <linux/dma-mapping.h> 13#include <linux/dma-mapping.h>
14 14
15#include <asm/machvec.h>
16#include <asm/system.h> 15#include <asm/system.h>
17 16
18#ifdef CONFIG_DMAR 17#ifdef CONFIG_DMAR
19 18
20#include <linux/kernel.h> 19#include <linux/kernel.h>
21#include <linux/string.h>
22 20
23#include <asm/page.h> 21#include <asm/page.h>
24#include <asm/iommu.h>
25 22
26dma_addr_t bad_dma_address __read_mostly; 23dma_addr_t bad_dma_address __read_mostly;
27EXPORT_SYMBOL(bad_dma_address); 24EXPORT_SYMBOL(bad_dma_address);
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index ae7911702bf8..865af27c7737 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -359,7 +359,7 @@ reserve_memory (void)
359 } 359 }
360#endif 360#endif
361 361
362#ifdef CONFIG_CRASH_KERNEL 362#ifdef CONFIG_CRASH_DUMP
363 if (reserve_elfcorehdr(&rsvd_region[n].start, 363 if (reserve_elfcorehdr(&rsvd_region[n].start,
364 &rsvd_region[n].end) == 0) 364 &rsvd_region[n].end) == 0)
365 n++; 365 n++;
@@ -561,8 +561,12 @@ setup_arch (char **cmdline_p)
561#ifdef CONFIG_ACPI 561#ifdef CONFIG_ACPI
562 /* Initialize the ACPI boot-time table parser */ 562 /* Initialize the ACPI boot-time table parser */
563 acpi_table_init(); 563 acpi_table_init();
564 early_acpi_boot_init();
564# ifdef CONFIG_ACPI_NUMA 565# ifdef CONFIG_ACPI_NUMA
565 acpi_numa_init(); 566 acpi_numa_init();
567#ifdef CONFIG_ACPI_HOTPLUG_CPU
568 prefill_possible_map();
569#endif
566 per_cpu_scan_finalize((cpus_weight(early_cpu_possible_map) == 0 ? 570 per_cpu_scan_finalize((cpus_weight(early_cpu_possible_map) == 0 ?
567 32 : cpus_weight(early_cpu_possible_map)), 571 32 : cpus_weight(early_cpu_possible_map)),
568 additional_cpus > 0 ? additional_cpus : 0); 572 additional_cpus > 0 ? additional_cpus : 0);
@@ -853,9 +857,6 @@ void __init
853setup_per_cpu_areas (void) 857setup_per_cpu_areas (void)
854{ 858{
855 /* start_kernel() requires this... */ 859 /* start_kernel() requires this... */
856#ifdef CONFIG_ACPI_HOTPLUG_CPU
857 prefill_possible_map();
858#endif
859} 860}
860 861
861/* 862/*
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/Kconfig b/arch/ia64/kvm/Kconfig
index 8e99fed6b3fd..f833a0b4188d 100644
--- a/arch/ia64/kvm/Kconfig
+++ b/arch/ia64/kvm/Kconfig
@@ -20,6 +20,8 @@ if VIRTUALIZATION
20config KVM 20config KVM
21 tristate "Kernel-based Virtual Machine (KVM) support" 21 tristate "Kernel-based Virtual Machine (KVM) support"
22 depends on HAVE_KVM && EXPERIMENTAL 22 depends on HAVE_KVM && EXPERIMENTAL
23 # for device assignment:
24 depends on PCI
23 select PREEMPT_NOTIFIERS 25 select PREEMPT_NOTIFIERS
24 select ANON_INODES 26 select ANON_INODES
25 ---help--- 27 ---help---
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/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 3caac477de9e..af1464f7a6ad 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -673,16 +673,16 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
673 673
674 vcpu_load(vcpu); 674 vcpu_load(vcpu);
675 675
676 if (vcpu->sigset_active)
677 sigprocmask(SIG_SETMASK, &vcpu->sigset, &sigsaved);
678
676 if (unlikely(vcpu->arch.mp_state == KVM_MP_STATE_UNINITIALIZED)) { 679 if (unlikely(vcpu->arch.mp_state == KVM_MP_STATE_UNINITIALIZED)) {
677 kvm_vcpu_block(vcpu); 680 kvm_vcpu_block(vcpu);
678 clear_bit(KVM_REQ_UNHALT, &vcpu->requests); 681 clear_bit(KVM_REQ_UNHALT, &vcpu->requests);
679 vcpu_put(vcpu); 682 r = -EAGAIN;
680 return -EAGAIN; 683 goto out;
681 } 684 }
682 685
683 if (vcpu->sigset_active)
684 sigprocmask(SIG_SETMASK, &vcpu->sigset, &sigsaved);
685
686 if (vcpu->mmio_needed) { 686 if (vcpu->mmio_needed) {
687 memcpy(vcpu->mmio_data, kvm_run->mmio.data, 8); 687 memcpy(vcpu->mmio_data, kvm_run->mmio.data, 8);
688 kvm_set_mmio_data(vcpu); 688 kvm_set_mmio_data(vcpu);
@@ -690,7 +690,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
690 vcpu->mmio_needed = 0; 690 vcpu->mmio_needed = 0;
691 } 691 }
692 r = __vcpu_run(vcpu, kvm_run); 692 r = __vcpu_run(vcpu, kvm_run);
693 693out:
694 if (vcpu->sigset_active) 694 if (vcpu->sigset_active)
695 sigprocmask(SIG_SETMASK, &sigsaved, NULL); 695 sigprocmask(SIG_SETMASK, &sigsaved, NULL);
696 696
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/kvm/vcpu.h b/arch/ia64/kvm/vcpu.h
index 341e3fee280c..e9b2a4e121c0 100644
--- a/arch/ia64/kvm/vcpu.h
+++ b/arch/ia64/kvm/vcpu.h
@@ -384,6 +384,10 @@ static inline u64 __gpfn_is_io(u64 gpfn)
384#define MODE_IND(psr) \ 384#define MODE_IND(psr) \
385 (((psr).it << 2) + ((psr).dt << 1) + (psr).rt) 385 (((psr).it << 2) + ((psr).dt << 1) + (psr).rt)
386 386
387#ifndef CONFIG_SMP
388#define _vmm_raw_spin_lock(x) do {}while(0)
389#define _vmm_raw_spin_unlock(x) do {}while(0)
390#else
387#define _vmm_raw_spin_lock(x) \ 391#define _vmm_raw_spin_lock(x) \
388 do { \ 392 do { \
389 __u32 *ia64_spinlock_ptr = (__u32 *) (x); \ 393 __u32 *ia64_spinlock_ptr = (__u32 *) (x); \
@@ -403,6 +407,7 @@ static inline u64 __gpfn_is_io(u64 gpfn)
403 do { barrier(); \ 407 do { barrier(); \
404 ((spinlock_t *)x)->raw_lock.lock = 0; } \ 408 ((spinlock_t *)x)->raw_lock.lock = 0; } \
405while (0) 409while (0)
410#endif
406 411
407void vmm_spin_lock(spinlock_t *lock); 412void vmm_spin_lock(spinlock_t *lock);
408void vmm_spin_unlock(spinlock_t *lock); 413void vmm_spin_unlock(spinlock_t *lock);
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
index d8c5fcd89e5b..d85ba98d9008 100644
--- a/arch/ia64/mm/discontig.c
+++ b/arch/ia64/mm/discontig.c
@@ -635,7 +635,6 @@ static __init int count_node_pages(unsigned long start, unsigned long len, int n
635 (min(end, __pa(MAX_DMA_ADDRESS)) - start) >>PAGE_SHIFT; 635 (min(end, __pa(MAX_DMA_ADDRESS)) - start) >>PAGE_SHIFT;
636#endif 636#endif
637 start = GRANULEROUNDDOWN(start); 637 start = GRANULEROUNDDOWN(start);
638 start = ORDERROUNDDOWN(start);
639 end = GRANULEROUNDUP(end); 638 end = GRANULEROUNDUP(end);
640 mem_data[node].max_pfn = max(mem_data[node].max_pfn, 639 mem_data[node].max_pfn = max(mem_data[node].max_pfn,
641 end >> PAGE_SHIFT); 640 end >> PAGE_SHIFT);
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/ia64/uv/kernel/setup.c b/arch/ia64/uv/kernel/setup.c
index cf5f28ae96c4..7a5ae633198b 100644
--- a/arch/ia64/uv/kernel/setup.c
+++ b/arch/ia64/uv/kernel/setup.c
@@ -19,6 +19,12 @@ EXPORT_PER_CPU_SYMBOL_GPL(__uv_hub_info);
19 19
20#ifdef CONFIG_IA64_SGI_UV 20#ifdef CONFIG_IA64_SGI_UV
21int sn_prom_type; 21int sn_prom_type;
22long sn_partition_id;
23EXPORT_SYMBOL(sn_partition_id);
24long sn_coherency_id;
25EXPORT_SYMBOL_GPL(sn_coherency_id);
26long sn_region_size;
27EXPORT_SYMBOL(sn_region_size);
22#endif 28#endif
23 29
24struct redir_addr { 30struct redir_addr {
diff --git a/arch/ia64/xen/hypercall.S b/arch/ia64/xen/hypercall.S
index d4ff0b9e79f1..45e02bb64a92 100644
--- a/arch/ia64/xen/hypercall.S
+++ b/arch/ia64/xen/hypercall.S
@@ -58,7 +58,7 @@ __HCALL2(xen_set_rr, HYPERPRIVOP_SET_RR)
58__HCALL2(xen_set_kr, HYPERPRIVOP_SET_KR) 58__HCALL2(xen_set_kr, HYPERPRIVOP_SET_KR)
59 59
60#ifdef CONFIG_IA32_SUPPORT 60#ifdef CONFIG_IA32_SUPPORT
61__HCALL1(xen_get_eflag, HYPERPRIVOP_GET_EFLAG) 61__HCALL0(xen_get_eflag, HYPERPRIVOP_GET_EFLAG)
62__HCALL1(xen_set_eflag, HYPERPRIVOP_SET_EFLAG) // refer SDM vol1 3.1.8 62__HCALL1(xen_set_eflag, HYPERPRIVOP_SET_EFLAG) // refer SDM vol1 3.1.8
63#endif /* CONFIG_IA32_SUPPORT */ 63#endif /* CONFIG_IA32_SUPPORT */
64 64
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/m68k/kernel/ints.c b/arch/m68k/kernel/ints.c
index 7e8a0d394e61..761ee0440c99 100644
--- a/arch/m68k/kernel/ints.c
+++ b/arch/m68k/kernel/ints.c
@@ -133,7 +133,7 @@ void __init m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt,
133{ 133{
134 int i; 134 int i;
135 135
136 BUG_ON(IRQ_USER + cnt >= NR_IRQS); 136 BUG_ON(IRQ_USER + cnt > NR_IRQS);
137 m68k_first_user_vec = vec; 137 m68k_first_user_vec = vec;
138 for (i = 0; i < cnt; i++) 138 for (i = 0; i < cnt; i++)
139 irq_controller[IRQ_USER + i] = &user_irq_controller; 139 irq_controller[IRQ_USER + i] = &user_irq_controller;
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/mach-rc32434/gpio.h b/arch/mips/include/asm/mach-rc32434/gpio.h
index c8e554eafce3..b5cf6457305a 100644
--- a/arch/mips/include/asm/mach-rc32434/gpio.h
+++ b/arch/mips/include/asm/mach-rc32434/gpio.h
@@ -84,5 +84,7 @@ extern void set_434_reg(unsigned reg_offs, unsigned bit, unsigned len, unsigned
84extern unsigned get_434_reg(unsigned reg_offs); 84extern unsigned get_434_reg(unsigned reg_offs);
85extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask); 85extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask);
86extern unsigned char get_latch_u5(void); 86extern unsigned char get_latch_u5(void);
87extern void rb532_gpio_set_ilevel(int bit, unsigned gpio);
88extern void rb532_gpio_set_istat(int bit, unsigned gpio);
87 89
88#endif /* _RC32434_GPIO_H_ */ 90#endif /* _RC32434_GPIO_H_ */
diff --git a/arch/mips/include/asm/mach-rc32434/rb.h b/arch/mips/include/asm/mach-rc32434/rb.h
index 79e8ef67d0d3..f25a84916703 100644
--- a/arch/mips/include/asm/mach-rc32434/rb.h
+++ b/arch/mips/include/asm/mach-rc32434/rb.h
@@ -40,12 +40,14 @@
40#define BTCS 0x010040 40#define BTCS 0x010040
41#define BTCOMPARE 0x010044 41#define BTCOMPARE 0x010044
42#define GPIOBASE 0x050000 42#define GPIOBASE 0x050000
43#define GPIOCFG 0x050004 43/* Offsets relative to GPIOBASE */
44#define GPIOD 0x050008 44#define GPIOFUNC 0x00
45#define GPIOILEVEL 0x05000C 45#define GPIOCFG 0x04
46#define GPIOISTAT 0x050010 46#define GPIOD 0x08
47#define GPIONMIEN 0x050014 47#define GPIOILEVEL 0x0C
48#define IMASK6 0x038038 48#define GPIOISTAT 0x10
49#define GPIONMIEN 0x14
50#define IMASK6 0x38
49#define LO_WPX (1 << 0) 51#define LO_WPX (1 << 0)
50#define LO_ALE (1 << 1) 52#define LO_ALE (1 << 1)
51#define LO_CLE (1 << 2) 53#define LO_CLE (1 << 2)
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/include/asm/time.h b/arch/mips/include/asm/time.h
index d3bd5c5aa2ec..9601ea950542 100644
--- a/arch/mips/include/asm/time.h
+++ b/arch/mips/include/asm/time.h
@@ -63,7 +63,7 @@ static inline int mips_clockevent_init(void)
63/* 63/*
64 * Initialize the count register as a clocksource 64 * Initialize the count register as a clocksource
65 */ 65 */
66#ifdef CONFIG_CEVT_R4K 66#ifdef CONFIG_CSRC_R4K
67extern int init_mips_clocksource(void); 67extern int init_mips_clocksource(void);
68#else 68#else
69static inline int init_mips_clocksource(void) 69static inline int init_mips_clocksource(void)
diff --git a/arch/mips/kernel/csrc-r4k.c b/arch/mips/kernel/csrc-r4k.c
index 86e026f067bc..74fb74583b4e 100644
--- a/arch/mips/kernel/csrc-r4k.c
+++ b/arch/mips/kernel/csrc-r4k.c
@@ -27,7 +27,7 @@ int __init init_mips_clocksource(void)
27 if (!cpu_has_counter || !mips_hpt_frequency) 27 if (!cpu_has_counter || !mips_hpt_frequency)
28 return -ENXIO; 28 return -ENXIO;
29 29
30 /* Calclate a somewhat reasonable rating value */ 30 /* Calculate a somewhat reasonable rating value */
31 clocksource_mips.rating = 200 + mips_hpt_frequency / 10000000; 31 clocksource_mips.rating = 200 + mips_hpt_frequency / 10000000;
32 32
33 clocksource_set_clock(&clocksource_mips, mips_hpt_frequency); 33 clocksource_set_clock(&clocksource_mips, mips_hpt_frequency);
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/mm/sc-ip22.c b/arch/mips/mm/sc-ip22.c
index 1f602a110e10..13adb5782110 100644
--- a/arch/mips/mm/sc-ip22.c
+++ b/arch/mips/mm/sc-ip22.c
@@ -161,7 +161,7 @@ static inline int __init indy_sc_probe(void)
161 161
162/* XXX Check with wje if the Indy caches can differenciate between 162/* XXX Check with wje if the Indy caches can differenciate between
163 writeback + invalidate and just invalidate. */ 163 writeback + invalidate and just invalidate. */
164struct bcache_ops indy_sc_ops = { 164static struct bcache_ops indy_sc_ops = {
165 .bc_enable = indy_sc_enable, 165 .bc_enable = indy_sc_enable,
166 .bc_disable = indy_sc_disable, 166 .bc_disable = indy_sc_disable,
167 .bc_wback_inv = indy_sc_wback_invalidate, 167 .bc_wback_inv = indy_sc_wback_invalidate,
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-amon.c b/arch/mips/mti-malta/malta-amon.c
index 96236bf33838..df9e526312a2 100644
--- a/arch/mips/mti-malta/malta-amon.c
+++ b/arch/mips/mti-malta/malta-amon.c
@@ -22,9 +22,9 @@
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/smp.h> 23#include <linux/smp.h>
24 24
25#include <asm-mips/addrspace.h> 25#include <asm/addrspace.h>
26#include <asm-mips/mips-boards/launch.h> 26#include <asm/mips-boards/launch.h>
27#include <asm-mips/mipsmtregs.h> 27#include <asm/mipsmtregs.h>
28 28
29int amon_cpu_avail(int cpu) 29int amon_cpu_avail(int cpu)
30{ 30{
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/mips/rb532/devices.c b/arch/mips/rb532/devices.c
index 2f22d714d5b0..c1c29181bd46 100644
--- a/arch/mips/rb532/devices.c
+++ b/arch/mips/rb532/devices.c
@@ -118,7 +118,7 @@ static struct platform_device cf_slot0 = {
118/* Resources and device for NAND */ 118/* Resources and device for NAND */
119static int rb532_dev_ready(struct mtd_info *mtd) 119static int rb532_dev_ready(struct mtd_info *mtd)
120{ 120{
121 return readl(IDT434_REG_BASE + GPIOD) & GPIO_RDY; 121 return gpio_get_value(GPIO_RDY);
122} 122}
123 123
124static void rb532_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl) 124static void rb532_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
diff --git a/arch/mips/rb532/gpio.c b/arch/mips/rb532/gpio.c
index 70c4a6726377..0e84c8ab6a39 100644
--- a/arch/mips/rb532/gpio.c
+++ b/arch/mips/rb532/gpio.c
@@ -39,10 +39,6 @@
39struct rb532_gpio_chip { 39struct rb532_gpio_chip {
40 struct gpio_chip chip; 40 struct gpio_chip chip;
41 void __iomem *regbase; 41 void __iomem *regbase;
42 void (*set_int_level)(struct gpio_chip *chip, unsigned offset, int value);
43 int (*get_int_level)(struct gpio_chip *chip, unsigned offset);
44 void (*set_int_status)(struct gpio_chip *chip, unsigned offset, int value);
45 int (*get_int_status)(struct gpio_chip *chip, unsigned offset);
46}; 42};
47 43
48struct mpmc_device dev3; 44struct mpmc_device dev3;
@@ -111,15 +107,47 @@ unsigned char get_latch_u5(void)
111} 107}
112EXPORT_SYMBOL(get_latch_u5); 108EXPORT_SYMBOL(get_latch_u5);
113 109
110/* rb532_set_bit - sanely set a bit
111 *
112 * bitval: new value for the bit
113 * offset: bit index in the 4 byte address range
114 * ioaddr: 4 byte aligned address being altered
115 */
116static inline void rb532_set_bit(unsigned bitval,
117 unsigned offset, void __iomem *ioaddr)
118{
119 unsigned long flags;
120 u32 val;
121
122 bitval = !!bitval; /* map parameter to {0,1} */
123
124 local_irq_save(flags);
125
126 val = readl(ioaddr);
127 val &= ~( ~bitval << offset ); /* unset bit if bitval == 0 */
128 val |= ( bitval << offset ); /* set bit if bitval == 1 */
129 writel(val, ioaddr);
130
131 local_irq_restore(flags);
132}
133
134/* rb532_get_bit - read a bit
135 *
136 * returns the boolean state of the bit, which may be > 1
137 */
138static inline int rb532_get_bit(unsigned offset, void __iomem *ioaddr)
139{
140 return (readl(ioaddr) & (1 << offset));
141}
142
114/* 143/*
115 * Return GPIO level */ 144 * Return GPIO level */
116static int rb532_gpio_get(struct gpio_chip *chip, unsigned offset) 145static int rb532_gpio_get(struct gpio_chip *chip, unsigned offset)
117{ 146{
118 u32 mask = 1 << offset;
119 struct rb532_gpio_chip *gpch; 147 struct rb532_gpio_chip *gpch;
120 148
121 gpch = container_of(chip, struct rb532_gpio_chip, chip); 149 gpch = container_of(chip, struct rb532_gpio_chip, chip);
122 return readl(gpch->regbase + GPIOD) & mask; 150 return rb532_get_bit(offset, gpch->regbase + GPIOD);
123} 151}
124 152
125/* 153/*
@@ -128,23 +156,10 @@ static int rb532_gpio_get(struct gpio_chip *chip, unsigned offset)
128static void rb532_gpio_set(struct gpio_chip *chip, 156static void rb532_gpio_set(struct gpio_chip *chip,
129 unsigned offset, int value) 157 unsigned offset, int value)
130{ 158{
131 unsigned long flags;
132 u32 mask = 1 << offset;
133 u32 tmp;
134 struct rb532_gpio_chip *gpch; 159 struct rb532_gpio_chip *gpch;
135 void __iomem *gpvr;
136 160
137 gpch = container_of(chip, struct rb532_gpio_chip, chip); 161 gpch = container_of(chip, struct rb532_gpio_chip, chip);
138 gpvr = gpch->regbase + GPIOD; 162 rb532_set_bit(value, offset, gpch->regbase + GPIOD);
139
140 local_irq_save(flags);
141 tmp = readl(gpvr);
142 if (value)
143 tmp |= mask;
144 else
145 tmp &= ~mask;
146 writel(tmp, gpvr);
147 local_irq_restore(flags);
148} 163}
149 164
150/* 165/*
@@ -152,21 +167,14 @@ static void rb532_gpio_set(struct gpio_chip *chip,
152 */ 167 */
153static int rb532_gpio_direction_input(struct gpio_chip *chip, unsigned offset) 168static int rb532_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
154{ 169{
155 unsigned long flags;
156 u32 mask = 1 << offset;
157 u32 value;
158 struct rb532_gpio_chip *gpch; 170 struct rb532_gpio_chip *gpch;
159 void __iomem *gpdr;
160 171
161 gpch = container_of(chip, struct rb532_gpio_chip, chip); 172 gpch = container_of(chip, struct rb532_gpio_chip, chip);
162 gpdr = gpch->regbase + GPIOCFG;
163 173
164 local_irq_save(flags); 174 if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC))
165 value = readl(gpdr); 175 return 1; /* alternate function, GPIOCFG is ignored */
166 value &= ~mask;
167 writel(value, gpdr);
168 local_irq_restore(flags);
169 176
177 rb532_set_bit(0, offset, gpch->regbase + GPIOCFG);
170 return 0; 178 return 0;
171} 179}
172 180
@@ -176,117 +184,60 @@ static int rb532_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
176static int rb532_gpio_direction_output(struct gpio_chip *chip, 184static int rb532_gpio_direction_output(struct gpio_chip *chip,
177 unsigned offset, int value) 185 unsigned offset, int value)
178{ 186{
179 unsigned long flags;
180 u32 mask = 1 << offset;
181 u32 tmp;
182 struct rb532_gpio_chip *gpch; 187 struct rb532_gpio_chip *gpch;
183 void __iomem *gpdr;
184 188
185 gpch = container_of(chip, struct rb532_gpio_chip, chip); 189 gpch = container_of(chip, struct rb532_gpio_chip, chip);
186 writel(mask, gpch->regbase + GPIOD);
187 gpdr = gpch->regbase + GPIOCFG;
188 190
189 local_irq_save(flags); 191 if (rb532_get_bit(offset, gpch->regbase + GPIOFUNC))
190 tmp = readl(gpdr); 192 return 1; /* alternate function, GPIOCFG is ignored */
191 tmp |= mask;
192 writel(tmp, gpdr);
193 local_irq_restore(flags);
194 193
194 /* set the initial output value */
195 rb532_set_bit(value, offset, gpch->regbase + GPIOD);
196
197 rb532_set_bit(1, offset, gpch->regbase + GPIOCFG);
195 return 0; 198 return 0;
196} 199}
197 200
198/* 201static struct rb532_gpio_chip rb532_gpio_chip[] = {
199 * Set the GPIO interrupt level 202 [0] = {
200 */ 203 .chip = {
201static void rb532_gpio_set_int_level(struct gpio_chip *chip, 204 .label = "gpio0",
202 unsigned offset, int value) 205 .direction_input = rb532_gpio_direction_input,
203{ 206 .direction_output = rb532_gpio_direction_output,
204 unsigned long flags; 207 .get = rb532_gpio_get,
205 u32 mask = 1 << offset; 208 .set = rb532_gpio_set,
206 u32 tmp; 209 .base = 0,
207 struct rb532_gpio_chip *gpch; 210 .ngpio = 32,
208 void __iomem *gpil; 211 },
209 212 },
210 gpch = container_of(chip, struct rb532_gpio_chip, chip); 213};
211 gpil = gpch->regbase + GPIOILEVEL;
212
213 local_irq_save(flags);
214 tmp = readl(gpil);
215 if (value)
216 tmp |= mask;
217 else
218 tmp &= ~mask;
219 writel(tmp, gpil);
220 local_irq_restore(flags);
221}
222 214
223/* 215/*
224 * Get the GPIO interrupt level 216 * Set GPIO interrupt level
225 */ 217 */
226static int rb532_gpio_get_int_level(struct gpio_chip *chip, unsigned offset) 218void rb532_gpio_set_ilevel(int bit, unsigned gpio)
227{ 219{
228 u32 mask = 1 << offset; 220 rb532_set_bit(bit, gpio, rb532_gpio_chip->regbase + GPIOILEVEL);
229 struct rb532_gpio_chip *gpch;
230
231 gpch = container_of(chip, struct rb532_gpio_chip, chip);
232 return readl(gpch->regbase + GPIOILEVEL) & mask;
233} 221}
222EXPORT_SYMBOL(rb532_gpio_set_ilevel);
234 223
235/* 224/*
236 * Set the GPIO interrupt status 225 * Set GPIO interrupt status
237 */ 226 */
238static void rb532_gpio_set_int_status(struct gpio_chip *chip, 227void rb532_gpio_set_istat(int bit, unsigned gpio)
239 unsigned offset, int value)
240{ 228{
241 unsigned long flags; 229 rb532_set_bit(bit, gpio, rb532_gpio_chip->regbase + GPIOISTAT);
242 u32 mask = 1 << offset;
243 u32 tmp;
244 struct rb532_gpio_chip *gpch;
245 void __iomem *gpis;
246
247 gpch = container_of(chip, struct rb532_gpio_chip, chip);
248 gpis = gpch->regbase + GPIOISTAT;
249
250 local_irq_save(flags);
251 tmp = readl(gpis);
252 if (value)
253 tmp |= mask;
254 else
255 tmp &= ~mask;
256 writel(tmp, gpis);
257 local_irq_restore(flags);
258} 230}
231EXPORT_SYMBOL(rb532_gpio_set_istat);
259 232
260/* 233/*
261 * Get the GPIO interrupt status 234 * Configure GPIO alternate function
262 */ 235 */
263static int rb532_gpio_get_int_status(struct gpio_chip *chip, unsigned offset) 236static void rb532_gpio_set_func(int bit, unsigned gpio)
264{ 237{
265 u32 mask = 1 << offset; 238 rb532_set_bit(bit, gpio, rb532_gpio_chip->regbase + GPIOFUNC);
266 struct rb532_gpio_chip *gpch;
267
268 gpch = container_of(chip, struct rb532_gpio_chip, chip);
269 return readl(gpch->regbase + GPIOISTAT) & mask;
270} 239}
271 240
272static struct rb532_gpio_chip rb532_gpio_chip[] = {
273 [0] = {
274 .chip = {
275 .label = "gpio0",
276 .direction_input = rb532_gpio_direction_input,
277 .direction_output = rb532_gpio_direction_output,
278 .get = rb532_gpio_get,
279 .set = rb532_gpio_set,
280 .base = 0,
281 .ngpio = 32,
282 },
283 .get_int_level = rb532_gpio_get_int_level,
284 .set_int_level = rb532_gpio_set_int_level,
285 .get_int_status = rb532_gpio_get_int_status,
286 .set_int_status = rb532_gpio_set_int_status,
287 },
288};
289
290int __init rb532_gpio_init(void) 241int __init rb532_gpio_init(void)
291{ 242{
292 struct resource *r; 243 struct resource *r;
@@ -310,9 +261,11 @@ int __init rb532_gpio_init(void)
310 return -ENXIO; 261 return -ENXIO;
311 } 262 }
312 263
313 /* Set the interrupt status and level for the CF pin */ 264 /* configure CF_GPIO_NUM as CFRDY IRQ source */
314 rb532_gpio_set_int_level(&rb532_gpio_chip->chip, CF_GPIO_NUM, 1); 265 rb532_gpio_set_func(0, CF_GPIO_NUM);
315 rb532_gpio_set_int_status(&rb532_gpio_chip->chip, CF_GPIO_NUM, 0); 266 rb532_gpio_direction_input(&rb532_gpio_chip->chip, CF_GPIO_NUM);
267 rb532_gpio_set_ilevel(1, CF_GPIO_NUM);
268 rb532_gpio_set_istat(0, CF_GPIO_NUM);
316 269
317 return 0; 270 return 0;
318} 271}
diff --git a/arch/mn10300/Kconfig.debug b/arch/mn10300/Kconfig.debug
index 524e33819f32..ff80e86b9bd2 100644
--- a/arch/mn10300/Kconfig.debug
+++ b/arch/mn10300/Kconfig.debug
@@ -15,6 +15,15 @@ config DEBUG_DECOMPRESS_KERNEL
15 decompressing Linux seeing "Uncompressing Linux... " and 15 decompressing Linux seeing "Uncompressing Linux... " and
16 "Ok, booting the kernel.\n" on console. 16 "Ok, booting the kernel.\n" on console.
17 17
18config TEST_MISALIGNMENT_HANDLER
19 bool "Run tests on the misalignment handler"
20 depends on DEBUG_KERNEL
21 default n
22 help
23 If you say Y here the kernel will execute a list of misaligned memory
24 accesses to make sure the misalignment handler deals them with
25 correctly. If it does not, the kernel will throw a BUG.
26
18config KPROBES 27config KPROBES
19 bool "Kprobes" 28 bool "Kprobes"
20 depends on DEBUG_KERNEL 29 depends on DEBUG_KERNEL
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/mn10300/mm/misalignment.c b/arch/mn10300/mm/misalignment.c
index 32aa89dc3848..94c4a4358065 100644
--- a/arch/mn10300/mm/misalignment.c
+++ b/arch/mn10300/mm/misalignment.c
@@ -37,26 +37,22 @@
37#include <asm/asm-offsets.h> 37#include <asm/asm-offsets.h>
38 38
39#if 0 39#if 0
40#define kdebug(FMT, ...) printk(KERN_DEBUG FMT, ##__VA_ARGS__) 40#define kdebug(FMT, ...) printk(KERN_DEBUG "MISALIGN: "FMT"\n", ##__VA_ARGS__)
41#else 41#else
42#define kdebug(FMT, ...) do {} while (0) 42#define kdebug(FMT, ...) do {} while (0)
43#endif 43#endif
44 44
45static int misalignment_addr(unsigned long *registers, unsigned params, 45static int misalignment_addr(unsigned long *registers, unsigned long sp,
46 unsigned opcode, unsigned disp, 46 unsigned params, unsigned opcode,
47 void **_address, unsigned long **_postinc); 47 unsigned long disp,
48 void **_address, unsigned long **_postinc,
49 unsigned long *_inc);
48 50
49static int misalignment_reg(unsigned long *registers, unsigned params, 51static int misalignment_reg(unsigned long *registers, unsigned params,
50 unsigned opcode, unsigned disp, 52 unsigned opcode, unsigned long disp,
51 unsigned long **_register); 53 unsigned long **_register);
52 54
53static inline unsigned int_log2(unsigned x) 55static void misalignment_MOV_Lcc(struct pt_regs *regs, uint32_t opcode);
54{
55 unsigned y;
56 asm("bsch %1,%0" : "=r"(y) : "r"(x), "0"(0));
57 return y;
58}
59#define log2(x) int_log2(x)
60 56
61static const unsigned Dreg_index[] = { 57static const unsigned Dreg_index[] = {
62 REG_D0 >> 2, REG_D1 >> 2, REG_D2 >> 2, REG_D3 >> 2 58 REG_D0 >> 2, REG_D1 >> 2, REG_D2 >> 2, REG_D3 >> 2
@@ -86,9 +82,10 @@ enum format_id {
86 FMT_D7, 82 FMT_D7,
87 FMT_D8, 83 FMT_D8,
88 FMT_D9, 84 FMT_D9,
85 FMT_D10,
89}; 86};
90 87
91struct { 88static const struct {
92 u_int8_t opsz, dispsz; 89 u_int8_t opsz, dispsz;
93} format_tbl[16] = { 90} format_tbl[16] = {
94 [FMT_S0] = { 8, 0 }, 91 [FMT_S0] = { 8, 0 },
@@ -103,6 +100,7 @@ struct {
103 [FMT_D7] = { 24, 8 }, 100 [FMT_D7] = { 24, 8 },
104 [FMT_D8] = { 24, 24 }, 101 [FMT_D8] = { 24, 24 },
105 [FMT_D9] = { 24, 32 }, 102 [FMT_D9] = { 24, 32 },
103 [FMT_D10] = { 32, 0 },
106}; 104};
107 105
108enum value_id { 106enum value_id {
@@ -128,9 +126,14 @@ enum value_id {
128 SD24, /* 24-bit signed displacement */ 126 SD24, /* 24-bit signed displacement */
129 SIMM4_2, /* 4-bit signed displacement in opcode bits 4-7 */ 127 SIMM4_2, /* 4-bit signed displacement in opcode bits 4-7 */
130 SIMM8, /* 8-bit signed immediate */ 128 SIMM8, /* 8-bit signed immediate */
129 IMM8, /* 8-bit unsigned immediate */
130 IMM16, /* 16-bit unsigned immediate */
131 IMM24, /* 24-bit unsigned immediate */ 131 IMM24, /* 24-bit unsigned immediate */
132 IMM32, /* 32-bit unsigned immediate */ 132 IMM32, /* 32-bit unsigned immediate */
133 IMM32_HIGH8, /* 32-bit unsigned immediate, high 8-bits in opcode */ 133 IMM32_HIGH8, /* 32-bit unsigned immediate, LSB in opcode */
134
135 IMM32_MEM, /* 32-bit unsigned displacement */
136 IMM32_HIGH8_MEM, /* 32-bit unsigned displacement, LSB in opcode */
134 137
135 DN0 = DM0, 138 DN0 = DM0,
136 DN1 = DM1, 139 DN1 = DM1,
@@ -149,7 +152,7 @@ enum value_id {
149}; 152};
150 153
151struct mn10300_opcode { 154struct mn10300_opcode {
152 const char *name; 155 const char name[8];
153 u_int32_t opcode; 156 u_int32_t opcode;
154 u_int32_t opmask; 157 u_int32_t opmask;
155 unsigned exclusion; 158 unsigned exclusion;
@@ -185,6 +188,10 @@ struct mn10300_opcode {
185 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 188 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
186*/ 189*/
187static const struct mn10300_opcode mn10300_opcodes[] = { 190static const struct mn10300_opcode mn10300_opcodes[] = {
191{ "mov", 0x4200, 0xf300, 0, FMT_S1, 0, {DM1, MEM2(IMM8, SP)}},
192{ "mov", 0x4300, 0xf300, 0, FMT_S1, 0, {AM1, MEM2(IMM8, SP)}},
193{ "mov", 0x5800, 0xfc00, 0, FMT_S1, 0, {MEM2(IMM8, SP), DN0}},
194{ "mov", 0x5c00, 0xfc00, 0, FMT_S1, 0, {MEM2(IMM8, SP), AN0}},
188{ "mov", 0x60, 0xf0, 0, FMT_S0, 0, {DM1, MEM(AN0)}}, 195{ "mov", 0x60, 0xf0, 0, FMT_S0, 0, {DM1, MEM(AN0)}},
189{ "mov", 0x70, 0xf0, 0, FMT_S0, 0, {MEM(AM0), DN1}}, 196{ "mov", 0x70, 0xf0, 0, FMT_S0, 0, {MEM(AM0), DN1}},
190{ "mov", 0xf000, 0xfff0, 0, FMT_D0, 0, {MEM(AM0), AN1}}, 197{ "mov", 0xf000, 0xfff0, 0, FMT_D0, 0, {MEM(AM0), AN1}},
@@ -197,8 +204,6 @@ static const struct mn10300_opcode mn10300_opcodes[] = {
197{ "mov", 0xf81000, 0xfff000, 0, FMT_D1, 0, {DM1, MEM2(SD8, AN0)}}, 204{ "mov", 0xf81000, 0xfff000, 0, FMT_D1, 0, {DM1, MEM2(SD8, AN0)}},
198{ "mov", 0xf82000, 0xfff000, 0, FMT_D1, 0, {MEM2(SD8,AM0), AN1}}, 205{ "mov", 0xf82000, 0xfff000, 0, FMT_D1, 0, {MEM2(SD8,AM0), AN1}},
199{ "mov", 0xf83000, 0xfff000, 0, FMT_D1, 0, {AM1, MEM2(SD8, AN0)}}, 206{ "mov", 0xf83000, 0xfff000, 0, FMT_D1, 0, {AM1, MEM2(SD8, AN0)}},
200{ "mov", 0xf8f000, 0xfffc00, 0, FMT_D1, AM33, {MEM2(SD8, AM0), SP}},
201{ "mov", 0xf8f400, 0xfffc00, 0, FMT_D1, AM33, {SP, MEM2(SD8, AN0)}},
202{ "mov", 0xf90a00, 0xffff00, 0, FMT_D6, AM33, {MEM(RM0), RN2}}, 207{ "mov", 0xf90a00, 0xffff00, 0, FMT_D6, AM33, {MEM(RM0), RN2}},
203{ "mov", 0xf91a00, 0xffff00, 0, FMT_D6, AM33, {RM2, MEM(RN0)}}, 208{ "mov", 0xf91a00, 0xffff00, 0, FMT_D6, AM33, {RM2, MEM(RN0)}},
204{ "mov", 0xf96a00, 0xffff00, 0x12, FMT_D6, AM33, {MEMINC(RM0), RN2}}, 209{ "mov", 0xf96a00, 0xffff00, 0x12, FMT_D6, AM33, {MEMINC(RM0), RN2}},
@@ -207,24 +212,46 @@ static const struct mn10300_opcode mn10300_opcodes[] = {
207{ "mov", 0xfa100000, 0xfff00000, 0, FMT_D2, 0, {DM1, MEM2(SD16, AN0)}}, 212{ "mov", 0xfa100000, 0xfff00000, 0, FMT_D2, 0, {DM1, MEM2(SD16, AN0)}},
208{ "mov", 0xfa200000, 0xfff00000, 0, FMT_D2, 0, {MEM2(SD16, AM0), AN1}}, 213{ "mov", 0xfa200000, 0xfff00000, 0, FMT_D2, 0, {MEM2(SD16, AM0), AN1}},
209{ "mov", 0xfa300000, 0xfff00000, 0, FMT_D2, 0, {AM1, MEM2(SD16, AN0)}}, 214{ "mov", 0xfa300000, 0xfff00000, 0, FMT_D2, 0, {AM1, MEM2(SD16, AN0)}},
215{ "mov", 0xfa900000, 0xfff30000, 0, FMT_D2, 0, {AM1, MEM2(IMM16, SP)}},
216{ "mov", 0xfa910000, 0xfff30000, 0, FMT_D2, 0, {DM1, MEM2(IMM16, SP)}},
217{ "mov", 0xfab00000, 0xfffc0000, 0, FMT_D2, 0, {MEM2(IMM16, SP), AN0}},
218{ "mov", 0xfab40000, 0xfffc0000, 0, FMT_D2, 0, {MEM2(IMM16, SP), DN0}},
210{ "mov", 0xfb0a0000, 0xffff0000, 0, FMT_D7, AM33, {MEM2(SD8, RM0), RN2}}, 219{ "mov", 0xfb0a0000, 0xffff0000, 0, FMT_D7, AM33, {MEM2(SD8, RM0), RN2}},
211{ "mov", 0xfb1a0000, 0xffff0000, 0, FMT_D7, AM33, {RM2, MEM2(SD8, RN0)}}, 220{ "mov", 0xfb1a0000, 0xffff0000, 0, FMT_D7, AM33, {RM2, MEM2(SD8, RN0)}},
212{ "mov", 0xfb6a0000, 0xffff0000, 0x22, FMT_D7, AM33, {MEMINC2 (RM0, SIMM8), RN2}}, 221{ "mov", 0xfb6a0000, 0xffff0000, 0x22, FMT_D7, AM33, {MEMINC2 (RM0, SIMM8), RN2}},
213{ "mov", 0xfb7a0000, 0xffff0000, 0, FMT_D7, AM33, {RM2, MEMINC2 (RN0, SIMM8)}}, 222{ "mov", 0xfb7a0000, 0xffff0000, 0, FMT_D7, AM33, {RM2, MEMINC2 (RN0, SIMM8)}},
223{ "mov", 0xfb8a0000, 0xffff0f00, 0, FMT_D7, AM33, {MEM2(IMM8, SP), RN2}},
214{ "mov", 0xfb8e0000, 0xffff000f, 0, FMT_D7, AM33, {MEM2(RI, RM0), RD2}}, 224{ "mov", 0xfb8e0000, 0xffff000f, 0, FMT_D7, AM33, {MEM2(RI, RM0), RD2}},
225{ "mov", 0xfb9a0000, 0xffff0f00, 0, FMT_D7, AM33, {RM2, MEM2(IMM8, SP)}},
215{ "mov", 0xfb9e0000, 0xffff000f, 0, FMT_D7, AM33, {RD2, MEM2(RI, RN0)}}, 226{ "mov", 0xfb9e0000, 0xffff000f, 0, FMT_D7, AM33, {RD2, MEM2(RI, RN0)}},
216{ "mov", 0xfc000000, 0xfff00000, 0, FMT_D4, 0, {MEM2(IMM32,AM0), DN1}}, 227{ "mov", 0xfc000000, 0xfff00000, 0, FMT_D4, 0, {MEM2(IMM32,AM0), DN1}},
217{ "mov", 0xfc100000, 0xfff00000, 0, FMT_D4, 0, {DM1, MEM2(IMM32,AN0)}}, 228{ "mov", 0xfc100000, 0xfff00000, 0, FMT_D4, 0, {DM1, MEM2(IMM32,AN0)}},
218{ "mov", 0xfc200000, 0xfff00000, 0, FMT_D4, 0, {MEM2(IMM32,AM0), AN1}}, 229{ "mov", 0xfc200000, 0xfff00000, 0, FMT_D4, 0, {MEM2(IMM32,AM0), AN1}},
219{ "mov", 0xfc300000, 0xfff00000, 0, FMT_D4, 0, {AM1, MEM2(IMM32,AN0)}}, 230{ "mov", 0xfc300000, 0xfff00000, 0, FMT_D4, 0, {AM1, MEM2(IMM32,AN0)}},
231{ "mov", 0xfc800000, 0xfff30000, 0, FMT_D4, 0, {AM1, MEM(IMM32_MEM)}},
232{ "mov", 0xfc810000, 0xfff30000, 0, FMT_D4, 0, {DM1, MEM(IMM32_MEM)}},
233{ "mov", 0xfc900000, 0xfff30000, 0, FMT_D4, 0, {AM1, MEM2(IMM32, SP)}},
234{ "mov", 0xfc910000, 0xfff30000, 0, FMT_D4, 0, {DM1, MEM2(IMM32, SP)}},
235{ "mov", 0xfca00000, 0xfffc0000, 0, FMT_D4, 0, {MEM(IMM32_MEM), AN0}},
236{ "mov", 0xfca40000, 0xfffc0000, 0, FMT_D4, 0, {MEM(IMM32_MEM), DN0}},
237{ "mov", 0xfcb00000, 0xfffc0000, 0, FMT_D4, 0, {MEM2(IMM32, SP), AN0}},
238{ "mov", 0xfcb40000, 0xfffc0000, 0, FMT_D4, 0, {MEM2(IMM32, SP), DN0}},
220{ "mov", 0xfd0a0000, 0xffff0000, 0, FMT_D8, AM33, {MEM2(SD24, RM0), RN2}}, 239{ "mov", 0xfd0a0000, 0xffff0000, 0, FMT_D8, AM33, {MEM2(SD24, RM0), RN2}},
221{ "mov", 0xfd1a0000, 0xffff0000, 0, FMT_D8, AM33, {RM2, MEM2(SD24, RN0)}}, 240{ "mov", 0xfd1a0000, 0xffff0000, 0, FMT_D8, AM33, {RM2, MEM2(SD24, RN0)}},
222{ "mov", 0xfd6a0000, 0xffff0000, 0x22, FMT_D8, AM33, {MEMINC2 (RM0, IMM24), RN2}}, 241{ "mov", 0xfd6a0000, 0xffff0000, 0x22, FMT_D8, AM33, {MEMINC2 (RM0, IMM24), RN2}},
223{ "mov", 0xfd7a0000, 0xffff0000, 0, FMT_D8, AM33, {RM2, MEMINC2 (RN0, IMM24)}}, 242{ "mov", 0xfd7a0000, 0xffff0000, 0, FMT_D8, AM33, {RM2, MEMINC2 (RN0, IMM24)}},
243{ "mov", 0xfd8a0000, 0xffff0f00, 0, FMT_D8, AM33, {MEM2(IMM24, SP), RN2}},
244{ "mov", 0xfd9a0000, 0xffff0f00, 0, FMT_D8, AM33, {RM2, MEM2(IMM24, SP)}},
224{ "mov", 0xfe0a0000, 0xffff0000, 0, FMT_D9, AM33, {MEM2(IMM32_HIGH8,RM0), RN2}}, 245{ "mov", 0xfe0a0000, 0xffff0000, 0, FMT_D9, AM33, {MEM2(IMM32_HIGH8,RM0), RN2}},
246{ "mov", 0xfe0a0000, 0xffff0000, 0, FMT_D9, AM33, {MEM2(IMM32_HIGH8,RM0), RN2}},
247{ "mov", 0xfe0e0000, 0xffff0f00, 0, FMT_D9, AM33, {MEM(IMM32_HIGH8_MEM), RN2}},
248{ "mov", 0xfe1a0000, 0xffff0000, 0, FMT_D9, AM33, {RM2, MEM2(IMM32_HIGH8, RN0)}},
225{ "mov", 0xfe1a0000, 0xffff0000, 0, FMT_D9, AM33, {RM2, MEM2(IMM32_HIGH8, RN0)}}, 249{ "mov", 0xfe1a0000, 0xffff0000, 0, FMT_D9, AM33, {RM2, MEM2(IMM32_HIGH8, RN0)}},
250{ "mov", 0xfe1e0000, 0xffff0f00, 0, FMT_D9, AM33, {RM2, MEM(IMM32_HIGH8_MEM)}},
226{ "mov", 0xfe6a0000, 0xffff0000, 0x22, FMT_D9, AM33, {MEMINC2 (RM0, IMM32_HIGH8), RN2}}, 251{ "mov", 0xfe6a0000, 0xffff0000, 0x22, FMT_D9, AM33, {MEMINC2 (RM0, IMM32_HIGH8), RN2}},
227{ "mov", 0xfe7a0000, 0xffff0000, 0, FMT_D9, AM33, {RN2, MEMINC2 (RM0, IMM32_HIGH8)}}, 252{ "mov", 0xfe7a0000, 0xffff0000, 0, FMT_D9, AM33, {RN2, MEMINC2 (RM0, IMM32_HIGH8)}},
253{ "mov", 0xfe8a0000, 0xffff0f00, 0, FMT_D9, AM33, {MEM2(IMM32_HIGH8, SP), RN2}},
254{ "mov", 0xfe9a0000, 0xffff0f00, 0, FMT_D9, AM33, {RM2, MEM2(IMM32_HIGH8, SP)}},
228 255
229{ "movhu", 0xf060, 0xfff0, 0, FMT_D0, 0, {MEM(AM0), DN1}}, 256{ "movhu", 0xf060, 0xfff0, 0, FMT_D0, 0, {MEM(AM0), DN1}},
230{ "movhu", 0xf070, 0xfff0, 0, FMT_D0, 0, {DM1, MEM(AN0)}}, 257{ "movhu", 0xf070, 0xfff0, 0, FMT_D0, 0, {DM1, MEM(AN0)}},
@@ -232,29 +259,58 @@ static const struct mn10300_opcode mn10300_opcodes[] = {
232{ "movhu", 0xf4c0, 0xffc0, 0, FMT_D0, 0, {DM2, MEM2(DI, AN0)}}, 259{ "movhu", 0xf4c0, 0xffc0, 0, FMT_D0, 0, {DM2, MEM2(DI, AN0)}},
233{ "movhu", 0xf86000, 0xfff000, 0, FMT_D1, 0, {MEM2(SD8, AM0), DN1}}, 260{ "movhu", 0xf86000, 0xfff000, 0, FMT_D1, 0, {MEM2(SD8, AM0), DN1}},
234{ "movhu", 0xf87000, 0xfff000, 0, FMT_D1, 0, {DM1, MEM2(SD8, AN0)}}, 261{ "movhu", 0xf87000, 0xfff000, 0, FMT_D1, 0, {DM1, MEM2(SD8, AN0)}},
262{ "movhu", 0xf89300, 0xfff300, 0, FMT_D1, 0, {DM1, MEM2(IMM8, SP)}},
263{ "movhu", 0xf8bc00, 0xfffc00, 0, FMT_D1, 0, {MEM2(IMM8, SP), DN0}},
235{ "movhu", 0xf94a00, 0xffff00, 0, FMT_D6, AM33, {MEM(RM0), RN2}}, 264{ "movhu", 0xf94a00, 0xffff00, 0, FMT_D6, AM33, {MEM(RM0), RN2}},
236{ "movhu", 0xf95a00, 0xffff00, 0, FMT_D6, AM33, {RM2, MEM(RN0)}}, 265{ "movhu", 0xf95a00, 0xffff00, 0, FMT_D6, AM33, {RM2, MEM(RN0)}},
237{ "movhu", 0xf9ea00, 0xffff00, 0x12, FMT_D6, AM33, {MEMINC(RM0), RN2}}, 266{ "movhu", 0xf9ea00, 0xffff00, 0x12, FMT_D6, AM33, {MEMINC(RM0), RN2}},
238{ "movhu", 0xf9fa00, 0xffff00, 0, FMT_D6, AM33, {RM2, MEMINC(RN0)}}, 267{ "movhu", 0xf9fa00, 0xffff00, 0, FMT_D6, AM33, {RM2, MEMINC(RN0)}},
239{ "movhu", 0xfa600000, 0xfff00000, 0, FMT_D2, 0, {MEM2(SD16, AM0), DN1}}, 268{ "movhu", 0xfa600000, 0xfff00000, 0, FMT_D2, 0, {MEM2(SD16, AM0), DN1}},
240{ "movhu", 0xfa700000, 0xfff00000, 0, FMT_D2, 0, {DM1, MEM2(SD16, AN0)}}, 269{ "movhu", 0xfa700000, 0xfff00000, 0, FMT_D2, 0, {DM1, MEM2(SD16, AN0)}},
270{ "movhu", 0xfa930000, 0xfff30000, 0, FMT_D2, 0, {DM1, MEM2(IMM16, SP)}},
271{ "movhu", 0xfabc0000, 0xfffc0000, 0, FMT_D2, 0, {MEM2(IMM16, SP), DN0}},
241{ "movhu", 0xfb4a0000, 0xffff0000, 0, FMT_D7, AM33, {MEM2(SD8, RM0), RN2}}, 272{ "movhu", 0xfb4a0000, 0xffff0000, 0, FMT_D7, AM33, {MEM2(SD8, RM0), RN2}},
242{ "movhu", 0xfb5a0000, 0xffff0000, 0, FMT_D7, AM33, {RM2, MEM2(SD8, RN0)}}, 273{ "movhu", 0xfb5a0000, 0xffff0000, 0, FMT_D7, AM33, {RM2, MEM2(SD8, RN0)}},
274{ "movhu", 0xfbca0000, 0xffff0f00, 0, FMT_D7, AM33, {MEM2(IMM8, SP), RN2}},
243{ "movhu", 0xfbce0000, 0xffff000f, 0, FMT_D7, AM33, {MEM2(RI, RM0), RD2}}, 275{ "movhu", 0xfbce0000, 0xffff000f, 0, FMT_D7, AM33, {MEM2(RI, RM0), RD2}},
276{ "movhu", 0xfbda0000, 0xffff0f00, 0, FMT_D7, AM33, {RM2, MEM2(IMM8, SP)}},
244{ "movhu", 0xfbde0000, 0xffff000f, 0, FMT_D7, AM33, {RD2, MEM2(RI, RN0)}}, 277{ "movhu", 0xfbde0000, 0xffff000f, 0, FMT_D7, AM33, {RD2, MEM2(RI, RN0)}},
245{ "movhu", 0xfbea0000, 0xffff0000, 0x22, FMT_D7, AM33, {MEMINC2 (RM0, SIMM8), RN2}}, 278{ "movhu", 0xfbea0000, 0xffff0000, 0x22, FMT_D7, AM33, {MEMINC2 (RM0, SIMM8), RN2}},
246{ "movhu", 0xfbfa0000, 0xffff0000, 0, FMT_D7, AM33, {RM2, MEMINC2 (RN0, SIMM8)}}, 279{ "movhu", 0xfbfa0000, 0xffff0000, 0, FMT_D7, AM33, {RM2, MEMINC2 (RN0, SIMM8)}},
247{ "movhu", 0xfc600000, 0xfff00000, 0, FMT_D4, 0, {MEM2(IMM32,AM0), DN1}}, 280{ "movhu", 0xfc600000, 0xfff00000, 0, FMT_D4, 0, {MEM2(IMM32,AM0), DN1}},
248{ "movhu", 0xfc700000, 0xfff00000, 0, FMT_D4, 0, {DM1, MEM2(IMM32,AN0)}}, 281{ "movhu", 0xfc700000, 0xfff00000, 0, FMT_D4, 0, {DM1, MEM2(IMM32,AN0)}},
282{ "movhu", 0xfc830000, 0xfff30000, 0, FMT_D4, 0, {DM1, MEM(IMM32_MEM)}},
283{ "movhu", 0xfc930000, 0xfff30000, 0, FMT_D4, 0, {DM1, MEM2(IMM32, SP)}},
284{ "movhu", 0xfcac0000, 0xfffc0000, 0, FMT_D4, 0, {MEM(IMM32_MEM), DN0}},
285{ "movhu", 0xfcbc0000, 0xfffc0000, 0, FMT_D4, 0, {MEM2(IMM32, SP), DN0}},
249{ "movhu", 0xfd4a0000, 0xffff0000, 0, FMT_D8, AM33, {MEM2(SD24, RM0), RN2}}, 286{ "movhu", 0xfd4a0000, 0xffff0000, 0, FMT_D8, AM33, {MEM2(SD24, RM0), RN2}},
250{ "movhu", 0xfd5a0000, 0xffff0000, 0, FMT_D8, AM33, {RM2, MEM2(SD24, RN0)}}, 287{ "movhu", 0xfd5a0000, 0xffff0000, 0, FMT_D8, AM33, {RM2, MEM2(SD24, RN0)}},
288{ "movhu", 0xfdca0000, 0xffff0f00, 0, FMT_D8, AM33, {MEM2(IMM24, SP), RN2}},
289{ "movhu", 0xfdda0000, 0xffff0f00, 0, FMT_D8, AM33, {RM2, MEM2(IMM24, SP)}},
251{ "movhu", 0xfdea0000, 0xffff0000, 0x22, FMT_D8, AM33, {MEMINC2 (RM0, IMM24), RN2}}, 290{ "movhu", 0xfdea0000, 0xffff0000, 0x22, FMT_D8, AM33, {MEMINC2 (RM0, IMM24), RN2}},
252{ "movhu", 0xfdfa0000, 0xffff0000, 0, FMT_D8, AM33, {RM2, MEMINC2 (RN0, IMM24)}}, 291{ "movhu", 0xfdfa0000, 0xffff0000, 0, FMT_D8, AM33, {RM2, MEMINC2 (RN0, IMM24)}},
253{ "movhu", 0xfe4a0000, 0xffff0000, 0, FMT_D9, AM33, {MEM2(IMM32_HIGH8,RM0), RN2}}, 292{ "movhu", 0xfe4a0000, 0xffff0000, 0, FMT_D9, AM33, {MEM2(IMM32_HIGH8,RM0), RN2}},
293{ "movhu", 0xfe4e0000, 0xffff0f00, 0, FMT_D9, AM33, {MEM(IMM32_HIGH8_MEM), RN2}},
254{ "movhu", 0xfe5a0000, 0xffff0000, 0, FMT_D9, AM33, {RM2, MEM2(IMM32_HIGH8, RN0)}}, 294{ "movhu", 0xfe5a0000, 0xffff0000, 0, FMT_D9, AM33, {RM2, MEM2(IMM32_HIGH8, RN0)}},
295{ "movhu", 0xfe5e0000, 0xffff0f00, 0, FMT_D9, AM33, {RM2, MEM(IMM32_HIGH8_MEM)}},
296{ "movhu", 0xfeca0000, 0xffff0f00, 0, FMT_D9, AM33, {MEM2(IMM32_HIGH8, SP), RN2}},
297{ "movhu", 0xfeda0000, 0xffff0f00, 0, FMT_D9, AM33, {RM2, MEM2(IMM32_HIGH8, SP)}},
255{ "movhu", 0xfeea0000, 0xffff0000, 0x22, FMT_D9, AM33, {MEMINC2 (RM0, IMM32_HIGH8), RN2}}, 298{ "movhu", 0xfeea0000, 0xffff0000, 0x22, FMT_D9, AM33, {MEMINC2 (RM0, IMM32_HIGH8), RN2}},
256{ "movhu", 0xfefa0000, 0xffff0000, 0, FMT_D9, AM33, {RN2, MEMINC2 (RM0, IMM32_HIGH8)}}, 299{ "movhu", 0xfefa0000, 0xffff0000, 0, FMT_D9, AM33, {RN2, MEMINC2 (RM0, IMM32_HIGH8)}},
257{ 0, 0, 0, 0, 0, 0, {0}}, 300
301{ "mov_llt", 0xf7e00000, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
302{ "mov_lgt", 0xf7e00001, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
303{ "mov_lge", 0xf7e00002, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
304{ "mov_lle", 0xf7e00003, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
305{ "mov_lcs", 0xf7e00004, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
306{ "mov_lhi", 0xf7e00005, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
307{ "mov_lcc", 0xf7e00006, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
308{ "mov_lls", 0xf7e00007, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
309{ "mov_leq", 0xf7e00008, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
310{ "mov_lne", 0xf7e00009, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
311{ "mov_lra", 0xf7e0000a, 0xffff000f, 0x22, FMT_D10, AM33, {MEMINC2 (RN4,SIMM4_2), RM6}},
312
313{ "", 0, 0, 0, 0, 0, {0}},
258}; 314};
259 315
260/* 316/*
@@ -265,18 +321,21 @@ asmlinkage void misalignment(struct pt_regs *regs, enum exception_code code)
265 const struct exception_table_entry *fixup; 321 const struct exception_table_entry *fixup;
266 const struct mn10300_opcode *pop; 322 const struct mn10300_opcode *pop;
267 unsigned long *registers = (unsigned long *) regs; 323 unsigned long *registers = (unsigned long *) regs;
268 unsigned long data, *store, *postinc; 324 unsigned long data, *store, *postinc, disp, inc, sp;
269 mm_segment_t seg; 325 mm_segment_t seg;
270 siginfo_t info; 326 siginfo_t info;
271 uint32_t opcode, disp, noc, xo, xm; 327 uint32_t opcode, noc, xo, xm;
272 uint8_t *pc, byte; 328 uint8_t *pc, byte, datasz;
273 void *address; 329 void *address;
274 unsigned tmp, npop; 330 unsigned tmp, npop, dispsz, loop;
331
332 /* we don't fix up userspace misalignment faults */
333 if (user_mode(regs))
334 goto bus_error;
275 335
276 kdebug("MISALIGN at %lx\n", regs->pc); 336 sp = (unsigned long) regs + sizeof(*regs);
277 337
278 if (in_interrupt()) 338 kdebug("==>misalignment({pc=%lx,sp=%lx})", regs->pc, sp);
279 die("Misalignment trap in interrupt context", regs, code);
280 339
281 if (regs->epsw & EPSW_IE) 340 if (regs->epsw & EPSW_IE)
282 asm volatile("or %0,epsw" : : "i"(EPSW_IE)); 341 asm volatile("or %0,epsw" : : "i"(EPSW_IE));
@@ -294,8 +353,8 @@ asmlinkage void misalignment(struct pt_regs *regs, enum exception_code code)
294 opcode = byte; 353 opcode = byte;
295 noc = 8; 354 noc = 8;
296 355
297 for (pop = mn10300_opcodes; pop->name; pop++) { 356 for (pop = mn10300_opcodes; pop->name[0]; pop++) {
298 npop = log2(pop->opcode | pop->opmask); 357 npop = ilog2(pop->opcode | pop->opmask);
299 if (npop <= 0 || npop > 31) 358 if (npop <= 0 || npop > 31)
300 continue; 359 continue;
301 npop = (npop + 8) & ~7; 360 npop = (npop + 8) & ~7;
@@ -328,15 +387,15 @@ asmlinkage void misalignment(struct pt_regs *regs, enum exception_code code)
328 } 387 }
329 388
330 /* didn't manage to find a fixup */ 389 /* didn't manage to find a fixup */
331 if (!user_mode(regs)) 390 printk(KERN_CRIT "MISALIGN: %lx: unsupported instruction %x\n",
332 printk(KERN_CRIT "MISALIGN: %lx: unsupported instruction %x\n", 391 regs->pc, opcode);
333 regs->pc, opcode);
334 392
335failed: 393failed:
336 set_fs(seg); 394 set_fs(seg);
337 if (die_if_no_fixup("misalignment error", regs, code)) 395 if (die_if_no_fixup("misalignment error", regs, code))
338 return; 396 return;
339 397
398bus_error:
340 info.si_signo = SIGBUS; 399 info.si_signo = SIGBUS;
341 info.si_errno = 0; 400 info.si_errno = 0;
342 info.si_code = BUS_ADRALN; 401 info.si_code = BUS_ADRALN;
@@ -346,31 +405,27 @@ failed:
346 405
347 /* error reading opcodes */ 406 /* error reading opcodes */
348fetch_error: 407fetch_error:
349 if (!user_mode(regs)) 408 printk(KERN_CRIT
350 printk(KERN_CRIT 409 "MISALIGN: %p: fault whilst reading instruction data\n",
351 "MISALIGN: %p: fault whilst reading instruction data\n", 410 pc);
352 pc);
353 goto failed; 411 goto failed;
354 412
355bad_addr_mode: 413bad_addr_mode:
356 if (!user_mode(regs)) 414 printk(KERN_CRIT
357 printk(KERN_CRIT 415 "MISALIGN: %lx: unsupported addressing mode %x\n",
358 "MISALIGN: %lx: unsupported addressing mode %x\n", 416 regs->pc, opcode);
359 regs->pc, opcode);
360 goto failed; 417 goto failed;
361 418
362bad_reg_mode: 419bad_reg_mode:
363 if (!user_mode(regs)) 420 printk(KERN_CRIT
364 printk(KERN_CRIT 421 "MISALIGN: %lx: unsupported register mode %x\n",
365 "MISALIGN: %lx: unsupported register mode %x\n", 422 regs->pc, opcode);
366 regs->pc, opcode);
367 goto failed; 423 goto failed;
368 424
369unsupported_instruction: 425unsupported_instruction:
370 if (!user_mode(regs)) 426 printk(KERN_CRIT
371 printk(KERN_CRIT 427 "MISALIGN: %lx: unsupported instruction %x (%s)\n",
372 "MISALIGN: %lx: unsupported instruction %x (%s)\n", 428 regs->pc, opcode, pop->name);
373 regs->pc, opcode, pop->name);
374 goto failed; 429 goto failed;
375 430
376transfer_failed: 431transfer_failed:
@@ -391,7 +446,7 @@ transfer_failed:
391 446
392 /* we matched the opcode */ 447 /* we matched the opcode */
393found_opcode: 448found_opcode:
394 kdebug("MISALIGN: %lx: %x==%x { %x, %x }\n", 449 kdebug("%lx: %x==%x { %x, %x }",
395 regs->pc, opcode, pop->opcode, pop->params[0], pop->params[1]); 450 regs->pc, opcode, pop->opcode, pop->params[0], pop->params[1]);
396 451
397 tmp = format_tbl[pop->format].opsz; 452 tmp = format_tbl[pop->format].opsz;
@@ -406,106 +461,108 @@ found_opcode:
406 461
407 /* grab the extra displacement (note it's LSB first) */ 462 /* grab the extra displacement (note it's LSB first) */
408 disp = 0; 463 disp = 0;
409 tmp = format_tbl[pop->format].dispsz >> 3; 464 dispsz = format_tbl[pop->format].dispsz;
410 while (tmp > 0) { 465 for (loop = 0; loop < dispsz; loop += 8) {
411 tmp--;
412 disp <<= 8;
413
414 pc++; 466 pc++;
415 if (__get_user(byte, pc) != 0) 467 if (__get_user(byte, pc) != 0)
416 goto fetch_error; 468 goto fetch_error;
417 disp |= byte; 469 disp |= byte << loop;
470 kdebug("{%p} disp[%02x]=%02x", pc, loop, byte);
418 } 471 }
419 472
473 kdebug("disp=%lx", disp);
474
420 set_fs(KERNEL_XDS); 475 set_fs(KERNEL_XDS);
421 if (fixup || regs->epsw & EPSW_nSL) 476 if (fixup)
422 set_fs(seg); 477 set_fs(seg);
423 478
424 tmp = (pop->params[0] ^ pop->params[1]) & 0x80000000; 479 tmp = (pop->params[0] ^ pop->params[1]) & 0x80000000;
425 if (!tmp) { 480 if (!tmp) {
426 if (!user_mode(regs)) 481 printk(KERN_CRIT
427 printk(KERN_CRIT 482 "MISALIGN: %lx: insn not move to/from memory %x\n",
428 "MISALIGN: %lx:" 483 regs->pc, opcode);
429 " insn not move to/from memory %x\n",
430 regs->pc, opcode);
431 goto failed; 484 goto failed;
432 } 485 }
433 486
487 /* determine the data transfer size of the move */
488 if (pop->name[3] == 0 || /* "mov" */
489 pop->name[4] == 'l') /* mov_lcc */
490 inc = datasz = 4;
491 else if (pop->name[3] == 'h') /* movhu */
492 inc = datasz = 2;
493 else
494 goto unsupported_instruction;
495
434 if (pop->params[0] & 0x80000000) { 496 if (pop->params[0] & 0x80000000) {
435 /* move memory to register */ 497 /* move memory to register */
436 if (!misalignment_addr(registers, pop->params[0], opcode, disp, 498 if (!misalignment_addr(registers, sp,
437 &address, &postinc)) 499 pop->params[0], opcode, disp,
500 &address, &postinc, &inc))
438 goto bad_addr_mode; 501 goto bad_addr_mode;
439 502
440 if (!misalignment_reg(registers, pop->params[1], opcode, disp, 503 if (!misalignment_reg(registers, pop->params[1], opcode, disp,
441 &store)) 504 &store))
442 goto bad_reg_mode; 505 goto bad_reg_mode;
443 506
444 if (strcmp(pop->name, "mov") == 0) { 507 kdebug("mov%u (%p),DARn", datasz, address);
445 kdebug("FIXUP: mov (%p),DARn\n", address); 508 if (copy_from_user(&data, (void *) address, datasz) != 0)
446 if (copy_from_user(&data, (void *) address, 4) != 0) 509 goto transfer_failed;
447 goto transfer_failed; 510 if (pop->params[0] & 0x1000000) {
448 if (pop->params[0] & 0x1000000) 511 kdebug("inc=%lx", inc);
449 *postinc += 4; 512 *postinc += inc;
450 } else if (strcmp(pop->name, "movhu") == 0) {
451 kdebug("FIXUP: movhu (%p),DARn\n", address);
452 data = 0;
453 if (copy_from_user(&data, (void *) address, 2) != 0)
454 goto transfer_failed;
455 if (pop->params[0] & 0x1000000)
456 *postinc += 2;
457 } else {
458 goto unsupported_instruction;
459 } 513 }
460 514
461 *store = data; 515 *store = data;
516 kdebug("loaded %lx", data);
462 } else { 517 } else {
463 /* move register to memory */ 518 /* move register to memory */
464 if (!misalignment_reg(registers, pop->params[0], opcode, disp, 519 if (!misalignment_reg(registers, pop->params[0], opcode, disp,
465 &store)) 520 &store))
466 goto bad_reg_mode; 521 goto bad_reg_mode;
467 522
468 if (!misalignment_addr(registers, pop->params[1], opcode, disp, 523 if (!misalignment_addr(registers, sp,
469 &address, &postinc)) 524 pop->params[1], opcode, disp,
525 &address, &postinc, &inc))
470 goto bad_addr_mode; 526 goto bad_addr_mode;
471 527
472 data = *store; 528 data = *store;
473 529
474 if (strcmp(pop->name, "mov") == 0) { 530 kdebug("mov%u %lx,(%p)", datasz, data, address);
475 kdebug("FIXUP: mov %lx,(%p)\n", data, address); 531 if (copy_to_user((void *) address, &data, datasz) != 0)
476 if (copy_to_user((void *) address, &data, 4) != 0) 532 goto transfer_failed;
477 goto transfer_failed; 533 if (pop->params[1] & 0x1000000)
478 if (pop->params[1] & 0x1000000) 534 *postinc += inc;
479 *postinc += 4;
480 } else if (strcmp(pop->name, "movhu") == 0) {
481 kdebug("FIXUP: movhu %hx,(%p)\n",
482 (uint16_t) data, address);
483 if (copy_to_user((void *) address, &data, 2) != 0)
484 goto transfer_failed;
485 if (pop->params[1] & 0x1000000)
486 *postinc += 2;
487 } else {
488 goto unsupported_instruction;
489 }
490 } 535 }
491 536
492 tmp = format_tbl[pop->format].opsz + format_tbl[pop->format].dispsz; 537 tmp = format_tbl[pop->format].opsz + format_tbl[pop->format].dispsz;
493 regs->pc += tmp >> 3; 538 regs->pc += tmp >> 3;
494 539
540 /* handle MOV_Lcc, which are currently the only FMT_D10 insns that
541 * access memory */
542 if (pop->format == FMT_D10)
543 misalignment_MOV_Lcc(regs, opcode);
544
495 set_fs(seg); 545 set_fs(seg);
496 return;
497} 546}
498 547
499/* 548/*
500 * determine the address that was being accessed 549 * determine the address that was being accessed
501 */ 550 */
502static int misalignment_addr(unsigned long *registers, unsigned params, 551static int misalignment_addr(unsigned long *registers, unsigned long sp,
503 unsigned opcode, unsigned disp, 552 unsigned params, unsigned opcode,
504 void **_address, unsigned long **_postinc) 553 unsigned long disp,
554 void **_address, unsigned long **_postinc,
555 unsigned long *_inc)
505{ 556{
506 unsigned long *postinc = NULL, address = 0, tmp; 557 unsigned long *postinc = NULL, address = 0, tmp;
507 558
508 params &= 0x7fffffff; 559 if (!(params & 0x1000000)) {
560 kdebug("noinc");
561 *_inc = 0;
562 _inc = NULL;
563 }
564
565 params &= 0x00ffffff;
509 566
510 do { 567 do {
511 switch (params & 0xff) { 568 switch (params & 0xff) {
@@ -514,11 +571,11 @@ static int misalignment_addr(unsigned long *registers, unsigned params,
514 address += *postinc; 571 address += *postinc;
515 break; 572 break;
516 case DM1: 573 case DM1:
517 postinc = &registers[Dreg_index[opcode >> 2 & 0x0c]]; 574 postinc = &registers[Dreg_index[opcode >> 2 & 0x03]];
518 address += *postinc; 575 address += *postinc;
519 break; 576 break;
520 case DM2: 577 case DM2:
521 postinc = &registers[Dreg_index[opcode >> 4 & 0x30]]; 578 postinc = &registers[Dreg_index[opcode >> 4 & 0x03]];
522 address += *postinc; 579 address += *postinc;
523 break; 580 break;
524 case AM0: 581 case AM0:
@@ -526,11 +583,11 @@ static int misalignment_addr(unsigned long *registers, unsigned params,
526 address += *postinc; 583 address += *postinc;
527 break; 584 break;
528 case AM1: 585 case AM1:
529 postinc = &registers[Areg_index[opcode >> 2 & 0x0c]]; 586 postinc = &registers[Areg_index[opcode >> 2 & 0x03]];
530 address += *postinc; 587 address += *postinc;
531 break; 588 break;
532 case AM2: 589 case AM2:
533 postinc = &registers[Areg_index[opcode >> 4 & 0x30]]; 590 postinc = &registers[Areg_index[opcode >> 4 & 0x03]];
534 address += *postinc; 591 address += *postinc;
535 break; 592 break;
536 case RM0: 593 case RM0:
@@ -561,33 +618,53 @@ static int misalignment_addr(unsigned long *registers, unsigned params,
561 postinc = &registers[Rreg_index[disp >> 4 & 0x0f]]; 618 postinc = &registers[Rreg_index[disp >> 4 & 0x0f]];
562 address += *postinc; 619 address += *postinc;
563 break; 620 break;
621 case SP:
622 address += sp;
623 break;
564 624
625 /* displacements are either to be added to the address
626 * before use, or, in the case of post-inc addressing,
627 * to be added into the base register after use */
565 case SD8: 628 case SD8:
566 case SIMM8: 629 case SIMM8:
567 address += (int32_t) (int8_t) (disp & 0xff); 630 disp = (long) (int8_t) (disp & 0xff);
568 break; 631 goto displace_or_inc;
569 case SD16: 632 case SD16:
570 address += (int32_t) (int16_t) (disp & 0xffff); 633 disp = (long) (int16_t) (disp & 0xffff);
571 break; 634 goto displace_or_inc;
572 case SD24: 635 case SD24:
573 tmp = disp << 8; 636 tmp = disp << 8;
574 asm("asr 8,%0" : "=r"(tmp) : "0"(tmp)); 637 asm("asr 8,%0" : "=r"(tmp) : "0"(tmp));
575 address += tmp; 638 disp = (long) tmp;
576 break; 639 goto displace_or_inc;
577 case SIMM4_2: 640 case SIMM4_2:
578 tmp = opcode >> 4 & 0x0f; 641 tmp = opcode >> 4 & 0x0f;
579 tmp <<= 28; 642 tmp <<= 28;
580 asm("asr 28,%0" : "=r"(tmp) : "0"(tmp)); 643 asm("asr 28,%0" : "=r"(tmp) : "0"(tmp));
581 address += tmp; 644 disp = (long) tmp;
582 break; 645 goto displace_or_inc;
646 case IMM8:
647 disp &= 0x000000ff;
648 goto displace_or_inc;
649 case IMM16:
650 disp &= 0x0000ffff;
651 goto displace_or_inc;
583 case IMM24: 652 case IMM24:
584 address += disp & 0x00ffffff; 653 disp &= 0x00ffffff;
585 break; 654 goto displace_or_inc;
586 case IMM32: 655 case IMM32:
656 case IMM32_MEM:
587 case IMM32_HIGH8: 657 case IMM32_HIGH8:
588 address += disp; 658 case IMM32_HIGH8_MEM:
659 displace_or_inc:
660 kdebug("%s %lx", _inc ? "incr" : "disp", disp);
661 if (!_inc)
662 address += disp;
663 else
664 *_inc = disp;
589 break; 665 break;
590 default: 666 default:
667 BUG();
591 return 0; 668 return 0;
592 } 669 }
593 } while ((params >>= 8)); 670 } while ((params >>= 8));
@@ -601,7 +678,7 @@ static int misalignment_addr(unsigned long *registers, unsigned params,
601 * determine the register that is acting as source/dest 678 * determine the register that is acting as source/dest
602 */ 679 */
603static int misalignment_reg(unsigned long *registers, unsigned params, 680static int misalignment_reg(unsigned long *registers, unsigned params,
604 unsigned opcode, unsigned disp, 681 unsigned opcode, unsigned long disp,
605 unsigned long **_register) 682 unsigned long **_register)
606{ 683{
607 params &= 0x7fffffff; 684 params &= 0x7fffffff;
@@ -654,8 +731,239 @@ static int misalignment_reg(unsigned long *registers, unsigned params,
654 break; 731 break;
655 732
656 default: 733 default:
734 BUG();
657 return 0; 735 return 0;
658 } 736 }
659 737
660 return 1; 738 return 1;
661} 739}
740
741/*
742 * handle the conditional loop part of the move-and-loop instructions
743 */
744static void misalignment_MOV_Lcc(struct pt_regs *regs, uint32_t opcode)
745{
746 unsigned long epsw = regs->epsw;
747 unsigned long NxorV;
748
749 kdebug("MOV_Lcc %x [flags=%lx]", opcode, epsw & 0xf);
750
751 /* calculate N^V and shift onto the same bit position as Z */
752 NxorV = ((epsw >> 3) ^ epsw >> 1) & 1;
753
754 switch (opcode & 0xf) {
755 case 0x0: /* MOV_LLT: N^V */
756 if (NxorV)
757 goto take_the_loop;
758 return;
759 case 0x1: /* MOV_LGT: ~(Z or (N^V))*/
760 if (!((epsw & EPSW_FLAG_Z) | NxorV))
761 goto take_the_loop;
762 return;
763 case 0x2: /* MOV_LGE: ~(N^V) */
764 if (!NxorV)
765 goto take_the_loop;
766 return;
767 case 0x3: /* MOV_LLE: Z or (N^V) */
768 if ((epsw & EPSW_FLAG_Z) | NxorV)
769 goto take_the_loop;
770 return;
771
772 case 0x4: /* MOV_LCS: C */
773 if (epsw & EPSW_FLAG_C)
774 goto take_the_loop;
775 return;
776 case 0x5: /* MOV_LHI: ~(C or Z) */
777 if (!(epsw & (EPSW_FLAG_C | EPSW_FLAG_Z)))
778 goto take_the_loop;
779 return;
780 case 0x6: /* MOV_LCC: ~C */
781 if (!(epsw & EPSW_FLAG_C))
782 goto take_the_loop;
783 return;
784 case 0x7: /* MOV_LLS: C or Z */
785 if (epsw & (EPSW_FLAG_C | EPSW_FLAG_Z))
786 goto take_the_loop;
787 return;
788
789 case 0x8: /* MOV_LEQ: Z */
790 if (epsw & EPSW_FLAG_Z)
791 goto take_the_loop;
792 return;
793 case 0x9: /* MOV_LNE: ~Z */
794 if (!(epsw & EPSW_FLAG_Z))
795 goto take_the_loop;
796 return;
797 case 0xa: /* MOV_LRA: always */
798 goto take_the_loop;
799
800 default:
801 BUG();
802 }
803
804take_the_loop:
805 /* wind the PC back to just after the SETLB insn */
806 kdebug("loop LAR=%lx", regs->lar);
807 regs->pc = regs->lar - 4;
808}
809
810/*
811 * misalignment handler tests
812 */
813#ifdef CONFIG_TEST_MISALIGNMENT_HANDLER
814static u8 __initdata testbuf[512] __attribute__((aligned(16))) = {
815 [257] = 0x11,
816 [258] = 0x22,
817 [259] = 0x33,
818 [260] = 0x44,
819};
820
821#define ASSERTCMP(X, OP, Y) \
822do { \
823 if (unlikely(!((X) OP (Y)))) { \
824 printk(KERN_ERR "\n"); \
825 printk(KERN_ERR "MISALIGN: Assertion failed at line %u\n", \
826 __LINE__); \
827 printk(KERN_ERR "0x%lx " #OP " 0x%lx is false\n", \
828 (unsigned long)(X), (unsigned long)(Y)); \
829 BUG(); \
830 } \
831} while(0)
832
833static int __init test_misalignment(void)
834{
835 register void *r asm("e0");
836 register u32 y asm("e1");
837 void *p = testbuf, *q;
838 u32 tmp, tmp2, x;
839
840 printk(KERN_NOTICE "==>test_misalignment() [testbuf=%p]\n", p);
841 p++;
842
843 printk(KERN_NOTICE "___ MOV (Am),Dn ___\n");
844 q = p + 256;
845 asm volatile("mov (%0),%1" : "+a"(q), "=d"(x));
846 ASSERTCMP(q, ==, p + 256);
847 ASSERTCMP(x, ==, 0x44332211);
848
849 printk(KERN_NOTICE "___ MOV (256,Am),Dn ___\n");
850 q = p;
851 asm volatile("mov (256,%0),%1" : "+a"(q), "=d"(x));
852 ASSERTCMP(q, ==, p);
853 ASSERTCMP(x, ==, 0x44332211);
854
855 printk(KERN_NOTICE "___ MOV (Di,Am),Dn ___\n");
856 tmp = 256;
857 q = p;
858 asm volatile("mov (%2,%0),%1" : "+a"(q), "=d"(x), "+d"(tmp));
859 ASSERTCMP(q, ==, p);
860 ASSERTCMP(x, ==, 0x44332211);
861 ASSERTCMP(tmp, ==, 256);
862
863 printk(KERN_NOTICE "___ MOV (256,Rm),Rn ___\n");
864 r = p;
865 asm volatile("mov (256,%0),%1" : "+r"(r), "=r"(y));
866 ASSERTCMP(r, ==, p);
867 ASSERTCMP(y, ==, 0x44332211);
868
869 printk(KERN_NOTICE "___ MOV (Rm+),Rn ___\n");
870 r = p + 256;
871 asm volatile("mov (%0+),%1" : "+r"(r), "=r"(y));
872 ASSERTCMP(r, ==, p + 256 + 4);
873 ASSERTCMP(y, ==, 0x44332211);
874
875 printk(KERN_NOTICE "___ MOV (Rm+,8),Rn ___\n");
876 r = p + 256;
877 asm volatile("mov (%0+,8),%1" : "+r"(r), "=r"(y));
878 ASSERTCMP(r, ==, p + 256 + 8);
879 ASSERTCMP(y, ==, 0x44332211);
880
881 printk(KERN_NOTICE "___ MOV (7,SP),Rn ___\n");
882 asm volatile(
883 "add -16,sp \n"
884 "mov +0x11,%0 \n"
885 "movbu %0,(7,sp) \n"
886 "mov +0x22,%0 \n"
887 "movbu %0,(8,sp) \n"
888 "mov +0x33,%0 \n"
889 "movbu %0,(9,sp) \n"
890 "mov +0x44,%0 \n"
891 "movbu %0,(10,sp) \n"
892 "mov (7,sp),%1 \n"
893 "add +16,sp \n"
894 : "+a"(q), "=d"(x));
895 ASSERTCMP(x, ==, 0x44332211);
896
897 printk(KERN_NOTICE "___ MOV (259,SP),Rn ___\n");
898 asm volatile(
899 "add -264,sp \n"
900 "mov +0x11,%0 \n"
901 "movbu %0,(259,sp) \n"
902 "mov +0x22,%0 \n"
903 "movbu %0,(260,sp) \n"
904 "mov +0x33,%0 \n"
905 "movbu %0,(261,sp) \n"
906 "mov +0x55,%0 \n"
907 "movbu %0,(262,sp) \n"
908 "mov (259,sp),%1 \n"
909 "add +264,sp \n"
910 : "+d"(tmp), "=d"(x));
911 ASSERTCMP(x, ==, 0x55332211);
912
913 printk(KERN_NOTICE "___ MOV (260,SP),Rn ___\n");
914 asm volatile(
915 "add -264,sp \n"
916 "mov +0x11,%0 \n"
917 "movbu %0,(260,sp) \n"
918 "mov +0x22,%0 \n"
919 "movbu %0,(261,sp) \n"
920 "mov +0x33,%0 \n"
921 "movbu %0,(262,sp) \n"
922 "mov +0x55,%0 \n"
923 "movbu %0,(263,sp) \n"
924 "mov (260,sp),%1 \n"
925 "add +264,sp \n"
926 : "+d"(tmp), "=d"(x));
927 ASSERTCMP(x, ==, 0x55332211);
928
929
930 printk(KERN_NOTICE "___ MOV_LNE ___\n");
931 tmp = 1;
932 tmp2 = 2;
933 q = p + 256;
934 asm volatile(
935 "setlb \n"
936 "mov %2,%3 \n"
937 "mov %1,%2 \n"
938 "cmp +0,%1 \n"
939 "mov_lne (%0+,4),%1"
940 : "+r"(q), "+d"(tmp), "+d"(tmp2), "=d"(x)
941 :
942 : "cc");
943 ASSERTCMP(q, ==, p + 256 + 12);
944 ASSERTCMP(x, ==, 0x44332211);
945
946 printk(KERN_NOTICE "___ MOV in SETLB ___\n");
947 tmp = 1;
948 tmp2 = 2;
949 q = p + 256;
950 asm volatile(
951 "setlb \n"
952 "mov %1,%3 \n"
953 "mov (%0+),%1 \n"
954 "cmp +0,%1 \n"
955 "lne "
956 : "+a"(q), "+d"(tmp), "+d"(tmp2), "=d"(x)
957 :
958 : "cc");
959
960 ASSERTCMP(q, ==, p + 256 + 8);
961 ASSERTCMP(x, ==, 0x44332211);
962
963 printk(KERN_NOTICE "<==test_misalignment()\n");
964 return 0;
965}
966
967arch_initcall(test_misalignment);
968
969#endif /* CONFIG_TEST_MISALIGNMENT_HANDLER */
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/smp.h b/arch/parisc/include/asm/smp.h
index 398cdbaf4e54..409e698f4361 100644
--- a/arch/parisc/include/asm/smp.h
+++ b/arch/parisc/include/asm/smp.h
@@ -44,8 +44,6 @@ extern void arch_send_call_function_ipi(cpumask_t mask);
44 44
45#define PROC_CHANGE_PENALTY 15 /* Schedule penalty */ 45#define PROC_CHANGE_PENALTY 15 /* Schedule penalty */
46 46
47extern unsigned long cpu_present_mask;
48
49#define raw_smp_processor_id() (current_thread_info()->cpu) 47#define raw_smp_processor_id() (current_thread_info()->cpu)
50 48
51#else /* CONFIG_SMP */ 49#else /* CONFIG_SMP */
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/ptrace.c b/arch/parisc/kernel/ptrace.c
index 90904f9dfc50..927db3668b6f 100644
--- a/arch/parisc/kernel/ptrace.c
+++ b/arch/parisc/kernel/ptrace.c
@@ -183,10 +183,10 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
183 * being 64 bit in both cases. 183 * being 64 bit in both cases.
184 */ 184 */
185 185
186static long translate_usr_offset(long offset) 186static compat_ulong_t translate_usr_offset(compat_ulong_t offset)
187{ 187{
188 if (offset < 0) 188 if (offset < 0)
189 return -1; 189 return sizeof(struct pt_regs);
190 else if (offset <= 32*4) /* gr[0..31] */ 190 else if (offset <= 32*4) /* gr[0..31] */
191 return offset * 2 + 4; 191 return offset * 2 + 4;
192 else if (offset <= 32*4+32*8) /* gr[0..31] + fr[0..31] */ 192 else if (offset <= 32*4+32*8) /* gr[0..31] + fr[0..31] */
@@ -194,7 +194,7 @@ static long translate_usr_offset(long offset)
194 else if (offset < sizeof(struct pt_regs)/2 + 32*4) 194 else if (offset < sizeof(struct pt_regs)/2 + 32*4)
195 return offset * 2 + 4 - 32*8; 195 return offset * 2 + 4 - 32*8;
196 else 196 else
197 return -1; 197 return sizeof(struct pt_regs);
198} 198}
199 199
200long compat_arch_ptrace(struct task_struct *child, compat_long_t request, 200long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
@@ -209,7 +209,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
209 if (addr & (sizeof(compat_uint_t)-1)) 209 if (addr & (sizeof(compat_uint_t)-1))
210 break; 210 break;
211 addr = translate_usr_offset(addr); 211 addr = translate_usr_offset(addr);
212 if (addr < 0) 212 if (addr >= sizeof(struct pt_regs))
213 break; 213 break;
214 214
215 tmp = *(compat_uint_t *) ((char *) task_regs(child) + addr); 215 tmp = *(compat_uint_t *) ((char *) task_regs(child) + addr);
@@ -236,7 +236,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
236 if (addr & (sizeof(compat_uint_t)-1)) 236 if (addr & (sizeof(compat_uint_t)-1))
237 break; 237 break;
238 addr = translate_usr_offset(addr); 238 addr = translate_usr_offset(addr);
239 if (addr < 0) 239 if (addr >= sizeof(struct pt_regs))
240 break; 240 break;
241 if (addr >= PT_FR0 && addr <= PT_FR31 + 4) { 241 if (addr >= PT_FR0 && addr <= PT_FR31 + 4) {
242 /* Special case, fp regs are 64 bits anyway */ 242 /* Special case, fp regs are 64 bits anyway */
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/gef_sbc610.dts b/arch/powerpc/boot/dts/gef_sbc610.dts
index 6ed608322ddc..e48cfa740c8a 100644
--- a/arch/powerpc/boot/dts/gef_sbc610.dts
+++ b/arch/powerpc/boot/dts/gef_sbc610.dts
@@ -108,7 +108,7 @@
108 compatible = "simple-bus"; 108 compatible = "simple-bus";
109 ranges = <0x0 0xfef00000 0x00100000>; 109 ranges = <0x0 0xfef00000 0x00100000>;
110 reg = <0xfef00000 0x100000>; // CCSRBAR 1M 110 reg = <0xfef00000 0x100000>; // CCSRBAR 1M
111 bus-frequency = <0>; 111 bus-frequency = <33333333>;
112 112
113 i2c1: i2c@3000 { 113 i2c1: i2c@3000 {
114 #address-cells = <1>; 114 #address-cells = <1>;
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/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index 0b1fa20f745c..cbecaf3d7906 100644
--- a/arch/powerpc/configs/83xx/asp8347_defconfig
+++ b/arch/powerpc/configs/83xx/asp8347_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:01 2008 4# Sat Nov 8 12:39:49 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -54,8 +54,6 @@ CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
56CONFIG_REDBOOT=y 56CONFIG_REDBOOT=y
57CONFIG_HIBERNATE_32=y
58CONFIG_ARCH_HIBERNATION_POSSIBLE=y
59CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
60# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
@@ -99,7 +97,6 @@ CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 97CONFIG_PRINTK=y
100CONFIG_BUG=y 98CONFIG_BUG=y
101CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 100CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 102CONFIG_FUTEX=y
@@ -109,7 +106,9 @@ CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 106CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 108CONFIG_SHMEM=y
109CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y 112CONFIG_SLUB_DEBUG=y
114# CONFIG_SLAB is not set 113# CONFIG_SLAB is not set
115CONFIG_SLUB=y 114CONFIG_SLUB=y
@@ -122,10 +121,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_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 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
@@ -158,6 +153,7 @@ CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
160CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_FREEZER is not set
161 157
162# 158#
163# Platform support 159# Platform support
@@ -165,10 +161,10 @@ CONFIG_CLASSIC_RCU=y
165CONFIG_PPC_MULTIPLATFORM=y 161CONFIG_PPC_MULTIPLATFORM=y
166CONFIG_CLASSIC32=y 162CONFIG_CLASSIC32=y
167# CONFIG_PPC_CHRP is not set 163# CONFIG_PPC_CHRP is not set
168# CONFIG_PPC_PMAC is not set
169# CONFIG_MPC5121_ADS is not set 164# CONFIG_MPC5121_ADS is not set
170# CONFIG_MPC5121_GENERIC is not set 165# CONFIG_MPC5121_GENERIC is not set
171# CONFIG_PPC_MPC52xx is not set 166# CONFIG_PPC_MPC52xx is not set
167# CONFIG_PPC_PMAC is not set
172# CONFIG_PPC_CELL is not set 168# CONFIG_PPC_CELL is not set
173# CONFIG_PPC_CELL_NATIVE is not set 169# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set 170# CONFIG_PPC_82xx is not set
@@ -188,24 +184,21 @@ CONFIG_ASP834x=y
188CONFIG_PPC_MPC834x=y 184CONFIG_PPC_MPC834x=y
189# CONFIG_PPC_86xx is not set 185# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set 186# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
193CONFIG_IPIC=y 187CONFIG_IPIC=y
194CONFIG_MPIC=y 188# CONFIG_MPIC is not set
195# CONFIG_MPIC_WEIRD is not set 189# CONFIG_MPIC_WEIRD is not set
196CONFIG_PPC_I8259=y 190# CONFIG_PPC_I8259 is not set
197CONFIG_PPC_RTAS=y 191# CONFIG_PPC_RTAS is not set
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
200# CONFIG_MMIO_NVRAM is not set 192# CONFIG_MMIO_NVRAM is not set
201CONFIG_PPC_MPC106=y 193# CONFIG_PPC_MPC106 is not set
202# CONFIG_PPC_970_NAP is not set 194# CONFIG_PPC_970_NAP is not set
203# CONFIG_PPC_INDIRECT_IO is not set 195# CONFIG_PPC_INDIRECT_IO is not set
204# CONFIG_GENERIC_IOMAP is not set 196# CONFIG_GENERIC_IOMAP is not set
205# CONFIG_CPU_FREQ is not set 197# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set 198# CONFIG_TAU is not set
199# CONFIG_QUICC_ENGINE is not set
208# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set
209 202
210# 203#
211# Kernel options 204# Kernel options
@@ -225,6 +218,8 @@ CONFIG_PREEMPT_NONE=y
225# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
226# CONFIG_PREEMPT is not set 219# CONFIG_PREEMPT is not set
227CONFIG_BINFMT_ELF=y 220CONFIG_BINFMT_ELF=y
221# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
222# CONFIG_HAVE_AOUT is not set
228# CONFIG_BINFMT_MISC is not set 223# CONFIG_BINFMT_MISC is not set
229# CONFIG_IOMMU_HELPER is not set 224# CONFIG_IOMMU_HELPER is not set
230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -239,15 +234,15 @@ CONFIG_FLATMEM_MANUAL=y
239# CONFIG_SPARSEMEM_MANUAL is not set 234# CONFIG_SPARSEMEM_MANUAL is not set
240CONFIG_FLATMEM=y 235CONFIG_FLATMEM=y
241CONFIG_FLAT_NODE_MEM_MAP=y 236CONFIG_FLAT_NODE_MEM_MAP=y
242# CONFIG_SPARSEMEM_STATIC is not set
243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
244CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
245CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
247# CONFIG_RESOURCES_64BIT is not set 240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
250CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y
251CONFIG_FORCE_MAX_ZONEORDER=11 246CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 247CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 248# CONFIG_CMDLINE_BOOL is not set
@@ -259,7 +254,6 @@ CONFIG_ISA_DMA_API=y
259# 254#
260# Bus options 255# Bus options
261# 256#
262# CONFIG_ISA is not set
263CONFIG_ZONE_DMA=y 257CONFIG_ZONE_DMA=y
264CONFIG_GENERIC_ISA_DMA=y 258CONFIG_GENERIC_ISA_DMA=y
265CONFIG_PPC_INDIRECT_PCI=y 259CONFIG_PPC_INDIRECT_PCI=y
@@ -272,7 +266,7 @@ CONFIG_PCI_SYSCALL=y
272# CONFIG_PCIEPORTBUS is not set 266# CONFIG_PCIEPORTBUS is not set
273CONFIG_ARCH_SUPPORTS_MSI=y 267CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
275CONFIG_PCI_LEGACY=y 269# CONFIG_PCI_LEGACY is not set
276# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 272# CONFIG_HAS_RAPIDIO is not set
@@ -340,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_TIPC is not set 334# CONFIG_TIPC is not set
341# CONFIG_ATM is not set 335# CONFIG_ATM is not set
342# CONFIG_BRIDGE is not set 336# CONFIG_BRIDGE is not set
337# CONFIG_NET_DSA is not set
343# CONFIG_VLAN_8021Q is not set 338# CONFIG_VLAN_8021Q is not set
344# CONFIG_DECNET is not set 339# CONFIG_DECNET is not set
345# CONFIG_LLC2 is not set 340# CONFIG_LLC2 is not set
@@ -360,11 +355,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
360# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
361# CONFIG_BT is not set 356# CONFIG_BT is not set
362# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
363 358# CONFIG_PHONET is not set
364# 359CONFIG_WIRELESS=y
365# Wireless
366#
367# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y
368# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
369# CONFIG_MAC80211 is not set 363# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set 364# CONFIG_IEEE80211 is not set
@@ -470,7 +464,6 @@ CONFIG_OF_I2C=y
470# CONFIG_PARPORT is not set 464# CONFIG_PARPORT is not set
471CONFIG_BLK_DEV=y 465CONFIG_BLK_DEV=y
472# CONFIG_BLK_DEV_FD is not set 466# CONFIG_BLK_DEV_FD is not set
473# CONFIG_MAC_FLOPPY is not set
474# CONFIG_BLK_CPQ_DA is not set 467# CONFIG_BLK_CPQ_DA is not set
475# CONFIG_BLK_CPQ_CISS_DA is not set 468# CONFIG_BLK_CPQ_CISS_DA is not set
476# CONFIG_BLK_DEV_DAC960 is not set 469# CONFIG_BLK_DEV_DAC960 is not set
@@ -547,8 +540,6 @@ CONFIG_PHYLIB=y
547# CONFIG_MDIO_BITBANG is not set 540# CONFIG_MDIO_BITBANG is not set
548CONFIG_NET_ETHERNET=y 541CONFIG_NET_ETHERNET=y
549CONFIG_MII=y 542CONFIG_MII=y
550# CONFIG_MACE is not set
551# CONFIG_BMAC is not set
552# CONFIG_HAPPYMEAL is not set 543# CONFIG_HAPPYMEAL is not set
553# CONFIG_SUNGEM is not set 544# CONFIG_SUNGEM is not set
554# CONFIG_CASSINI is not set 545# CONFIG_CASSINI is not set
@@ -559,8 +550,12 @@ CONFIG_MII=y
559# CONFIG_IBM_NEW_EMAC_RGMII is not set 550# CONFIG_IBM_NEW_EMAC_RGMII is not set
560# CONFIG_IBM_NEW_EMAC_TAH is not set 551# CONFIG_IBM_NEW_EMAC_TAH is not set
561# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 552# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
553# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
554# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
555# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
562# CONFIG_NET_PCI is not set 556# CONFIG_NET_PCI is not set
563# CONFIG_B44 is not set 557# CONFIG_B44 is not set
558# CONFIG_ATL2 is not set
564CONFIG_NETDEV_1000=y 559CONFIG_NETDEV_1000=y
565# CONFIG_ACENIC is not set 560# CONFIG_ACENIC is not set
566# CONFIG_DL2K is not set 561# CONFIG_DL2K is not set
@@ -583,6 +578,7 @@ CONFIG_GIANFAR=y
583# CONFIG_QLA3XXX is not set 578# CONFIG_QLA3XXX is not set
584# CONFIG_ATL1 is not set 579# CONFIG_ATL1 is not set
585# CONFIG_ATL1E is not set 580# CONFIG_ATL1E is not set
581# CONFIG_JME is not set
586# CONFIG_NETDEV_10000 is not set 582# CONFIG_NETDEV_10000 is not set
587# CONFIG_TR is not set 583# CONFIG_TR is not set
588 584
@@ -667,14 +663,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
667# CONFIG_SERIAL_UARTLITE is not set 663# CONFIG_SERIAL_UARTLITE is not set
668CONFIG_SERIAL_CORE=y 664CONFIG_SERIAL_CORE=y
669CONFIG_SERIAL_CORE_CONSOLE=y 665CONFIG_SERIAL_CORE_CONSOLE=y
670# CONFIG_SERIAL_PMACZILOG is not set
671# CONFIG_SERIAL_JSM is not set 666# CONFIG_SERIAL_JSM is not set
672# CONFIG_SERIAL_OF_PLATFORM is not set 667# CONFIG_SERIAL_OF_PLATFORM is not set
673CONFIG_UNIX98_PTYS=y 668CONFIG_UNIX98_PTYS=y
674CONFIG_LEGACY_PTYS=y 669CONFIG_LEGACY_PTYS=y
675CONFIG_LEGACY_PTY_COUNT=256 670CONFIG_LEGACY_PTY_COUNT=256
676# CONFIG_BRIQ_PANEL is not set
677# CONFIG_HVC_RTAS is not set
678# CONFIG_IPMI_HANDLER is not set 671# CONFIG_IPMI_HANDLER is not set
679# CONFIG_HW_RANDOM is not set 672# CONFIG_HW_RANDOM is not set
680# CONFIG_NVRAM is not set 673# CONFIG_NVRAM is not set
@@ -711,12 +704,6 @@ CONFIG_I2C_HELPER_AUTO=y
711# CONFIG_I2C_VIAPRO is not set 704# CONFIG_I2C_VIAPRO is not set
712 705
713# 706#
714# Mac SMBus host controller drivers
715#
716# CONFIG_I2C_HYDRA is not set
717CONFIG_I2C_POWERMAC=y
718
719#
720# I2C system bus drivers (mostly embedded / system-on-chip) 707# I2C system bus drivers (mostly embedded / system-on-chip)
721# 708#
722CONFIG_I2C_MPC=y 709CONFIG_I2C_MPC=y
@@ -753,6 +740,7 @@ CONFIG_I2C_MPC=y
753# CONFIG_SENSORS_PCF8591 is not set 740# CONFIG_SENSORS_PCF8591 is not set
754# CONFIG_SENSORS_MAX6875 is not set 741# CONFIG_SENSORS_MAX6875 is not set
755# CONFIG_SENSORS_TSL2550 is not set 742# CONFIG_SENSORS_TSL2550 is not set
743# CONFIG_MCU_MPC8349EMITX is not set
756# CONFIG_I2C_DEBUG_CORE is not set 744# CONFIG_I2C_DEBUG_CORE is not set
757# CONFIG_I2C_DEBUG_ALGO is not set 745# CONFIG_I2C_DEBUG_ALGO is not set
758# CONFIG_I2C_DEBUG_BUS is not set 746# CONFIG_I2C_DEBUG_BUS is not set
@@ -774,7 +762,6 @@ CONFIG_HWMON=y
774# CONFIG_SENSORS_ADM9240 is not set 762# CONFIG_SENSORS_ADM9240 is not set
775# CONFIG_SENSORS_ADT7470 is not set 763# CONFIG_SENSORS_ADT7470 is not set
776# CONFIG_SENSORS_ADT7473 is not set 764# CONFIG_SENSORS_ADT7473 is not set
777# CONFIG_SENSORS_AMS is not set
778# CONFIG_SENSORS_ATXP1 is not set 765# CONFIG_SENSORS_ATXP1 is not set
779# CONFIG_SENSORS_DS1621 is not set 766# CONFIG_SENSORS_DS1621 is not set
780# CONFIG_SENSORS_I5K_AMB is not set 767# CONFIG_SENSORS_I5K_AMB is not set
@@ -829,7 +816,6 @@ CONFIG_WATCHDOG=y
829# CONFIG_SOFT_WATCHDOG is not set 816# CONFIG_SOFT_WATCHDOG is not set
830# CONFIG_ALIM7101_WDT is not set 817# CONFIG_ALIM7101_WDT is not set
831# CONFIG_8xxx_WDT is not set 818# CONFIG_8xxx_WDT is not set
832# CONFIG_WATCHDOG_RTAS is not set
833 819
834# 820#
835# PCI-based Watchdog Cards 821# PCI-based Watchdog Cards
@@ -855,6 +841,17 @@ CONFIG_SSB_POSSIBLE=y
855# CONFIG_MFD_SM501 is not set 841# CONFIG_MFD_SM501 is not set
856# CONFIG_HTC_PASIC3 is not set 842# CONFIG_HTC_PASIC3 is not set
857# CONFIG_MFD_TMIO is not set 843# CONFIG_MFD_TMIO is not set
844# CONFIG_PMIC_DA903X is not set
845# CONFIG_MFD_WM8400 is not set
846# CONFIG_MFD_WM8350_I2C is not set
847
848#
849# Voltage and Current regulators
850#
851# CONFIG_REGULATOR is not set
852# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
853# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
854# CONFIG_REGULATOR_BQ24022 is not set
858 855
859# 856#
860# Multimedia devices 857# Multimedia devices
@@ -907,6 +904,8 @@ CONFIG_USB_DEVICE_CLASS=y
907# CONFIG_USB_OTG_WHITELIST is not set 904# CONFIG_USB_OTG_WHITELIST is not set
908# CONFIG_USB_OTG_BLACKLIST_HUB is not set 905# CONFIG_USB_OTG_BLACKLIST_HUB is not set
909CONFIG_USB_MON=y 906CONFIG_USB_MON=y
907# CONFIG_USB_WUSB is not set
908# CONFIG_USB_WUSB_CBAF is not set
910 909
911# 910#
912# USB Host Controller Drivers 911# USB Host Controller Drivers
@@ -923,6 +922,8 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
923# CONFIG_USB_UHCI_HCD is not set 922# CONFIG_USB_UHCI_HCD is not set
924# CONFIG_USB_SL811_HCD is not set 923# CONFIG_USB_SL811_HCD is not set
925# CONFIG_USB_R8A66597_HCD is not set 924# CONFIG_USB_R8A66597_HCD is not set
925# CONFIG_USB_WHCI_HCD is not set
926# CONFIG_USB_HWA_HCD is not set
926 927
927# 928#
928# USB Device Class drivers 929# USB Device Class drivers
@@ -930,6 +931,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
930# CONFIG_USB_ACM is not set 931# CONFIG_USB_ACM is not set
931# CONFIG_USB_PRINTER is not set 932# CONFIG_USB_PRINTER is not set
932# CONFIG_USB_WDM is not set 933# CONFIG_USB_WDM is not set
934# CONFIG_USB_TMC is not set
933 935
934# 936#
935# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 937# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -956,6 +958,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
956# CONFIG_USB_EMI62 is not set 958# CONFIG_USB_EMI62 is not set
957# CONFIG_USB_EMI26 is not set 959# CONFIG_USB_EMI26 is not set
958# CONFIG_USB_ADUTUX is not set 960# CONFIG_USB_ADUTUX is not set
961# CONFIG_USB_SEVSEG is not set
959# CONFIG_USB_RIO500 is not set 962# CONFIG_USB_RIO500 is not set
960# CONFIG_USB_LEGOTOWER is not set 963# CONFIG_USB_LEGOTOWER is not set
961# CONFIG_USB_LCD is not set 964# CONFIG_USB_LCD is not set
@@ -972,7 +975,9 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
972# CONFIG_USB_TRANCEVIBRATOR is not set 975# CONFIG_USB_TRANCEVIBRATOR is not set
973# CONFIG_USB_IOWARRIOR is not set 976# CONFIG_USB_IOWARRIOR is not set
974# CONFIG_USB_ISIGHTFW is not set 977# CONFIG_USB_ISIGHTFW is not set
978# CONFIG_USB_VST is not set
975# CONFIG_USB_GADGET is not set 979# CONFIG_USB_GADGET is not set
980# CONFIG_UWB is not set
976# CONFIG_MMC is not set 981# CONFIG_MMC is not set
977# CONFIG_MEMSTICK is not set 982# CONFIG_MEMSTICK is not set
978# CONFIG_NEW_LEDS is not set 983# CONFIG_NEW_LEDS is not set
@@ -1018,12 +1023,15 @@ CONFIG_RTC_DRV_DS1374=y
1018# Platform RTC drivers 1023# Platform RTC drivers
1019# 1024#
1020# CONFIG_RTC_DRV_CMOS is not set 1025# CONFIG_RTC_DRV_CMOS is not set
1026# CONFIG_RTC_DRV_DS1286 is not set
1021# CONFIG_RTC_DRV_DS1511 is not set 1027# CONFIG_RTC_DRV_DS1511 is not set
1022# CONFIG_RTC_DRV_DS1553 is not set 1028# CONFIG_RTC_DRV_DS1553 is not set
1023# CONFIG_RTC_DRV_DS1742 is not set 1029# CONFIG_RTC_DRV_DS1742 is not set
1024# CONFIG_RTC_DRV_STK17TA8 is not set 1030# CONFIG_RTC_DRV_STK17TA8 is not set
1025# CONFIG_RTC_DRV_M48T86 is not set 1031# CONFIG_RTC_DRV_M48T86 is not set
1032# CONFIG_RTC_DRV_M48T35 is not set
1026# CONFIG_RTC_DRV_M48T59 is not set 1033# CONFIG_RTC_DRV_M48T59 is not set
1034# CONFIG_RTC_DRV_BQ4802 is not set
1027# CONFIG_RTC_DRV_V3020 is not set 1035# CONFIG_RTC_DRV_V3020 is not set
1028 1036
1029# 1037#
@@ -1032,6 +1040,7 @@ CONFIG_RTC_DRV_DS1374=y
1032# CONFIG_RTC_DRV_PPC is not set 1040# CONFIG_RTC_DRV_PPC is not set
1033# CONFIG_DMADEVICES is not set 1041# CONFIG_DMADEVICES is not set
1034# CONFIG_UIO is not set 1042# CONFIG_UIO is not set
1043# CONFIG_STAGING is not set
1035 1044
1036# 1045#
1037# File systems 1046# File systems
@@ -1043,12 +1052,13 @@ CONFIG_EXT3_FS=y
1043CONFIG_EXT3_FS_XATTR=y 1052CONFIG_EXT3_FS_XATTR=y
1044# CONFIG_EXT3_FS_POSIX_ACL is not set 1053# CONFIG_EXT3_FS_POSIX_ACL is not set
1045# CONFIG_EXT3_FS_SECURITY is not set 1054# CONFIG_EXT3_FS_SECURITY is not set
1046# CONFIG_EXT4DEV_FS is not set 1055# CONFIG_EXT4_FS is not set
1047CONFIG_JBD=y 1056CONFIG_JBD=y
1048CONFIG_FS_MBCACHE=y 1057CONFIG_FS_MBCACHE=y
1049# CONFIG_REISERFS_FS is not set 1058# CONFIG_REISERFS_FS is not set
1050# CONFIG_JFS_FS is not set 1059# CONFIG_JFS_FS is not set
1051# CONFIG_FS_POSIX_ACL is not set 1060# CONFIG_FS_POSIX_ACL is not set
1061CONFIG_FILE_LOCKING=y
1052# CONFIG_XFS_FS is not set 1062# CONFIG_XFS_FS is not set
1053# CONFIG_OCFS2_FS is not set 1063# CONFIG_OCFS2_FS is not set
1054CONFIG_DNOTIFY=y 1064CONFIG_DNOTIFY=y
@@ -1078,6 +1088,7 @@ CONFIG_INOTIFY_USER=y
1078CONFIG_PROC_FS=y 1088CONFIG_PROC_FS=y
1079CONFIG_PROC_KCORE=y 1089CONFIG_PROC_KCORE=y
1080CONFIG_PROC_SYSCTL=y 1090CONFIG_PROC_SYSCTL=y
1091CONFIG_PROC_PAGE_MONITOR=y
1081CONFIG_SYSFS=y 1092CONFIG_SYSFS=y
1082CONFIG_TMPFS=y 1093CONFIG_TMPFS=y
1083# CONFIG_TMPFS_POSIX_ACL is not set 1094# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1126,6 +1137,7 @@ CONFIG_LOCKD_V4=y
1126CONFIG_NFS_COMMON=y 1137CONFIG_NFS_COMMON=y
1127CONFIG_SUNRPC=y 1138CONFIG_SUNRPC=y
1128CONFIG_SUNRPC_GSS=y 1139CONFIG_SUNRPC_GSS=y
1140# CONFIG_SUNRPC_REGISTER_V4 is not set
1129CONFIG_RPCSEC_GSS_KRB5=y 1141CONFIG_RPCSEC_GSS_KRB5=y
1130# CONFIG_RPCSEC_GSS_SPKM3 is not set 1142# CONFIG_RPCSEC_GSS_SPKM3 is not set
1131# CONFIG_SMB_FS is not set 1143# CONFIG_SMB_FS is not set
@@ -1197,7 +1209,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1197# Library routines 1209# Library routines
1198# 1210#
1199CONFIG_BITREVERSE=y 1211CONFIG_BITREVERSE=y
1200# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1201# CONFIG_CRC_CCITT is not set 1212# CONFIG_CRC_CCITT is not set
1202# CONFIG_CRC16 is not set 1213# CONFIG_CRC16 is not set
1203# CONFIG_CRC_T10DIF is not set 1214# CONFIG_CRC_T10DIF is not set
@@ -1229,13 +1240,15 @@ CONFIG_FRAME_WARN=1024
1229# CONFIG_SLUB_STATS is not set 1240# CONFIG_SLUB_STATS is not set
1230# CONFIG_DEBUG_BUGVERBOSE is not set 1241# CONFIG_DEBUG_BUGVERBOSE is not set
1231# CONFIG_DEBUG_MEMORY_INIT is not set 1242# CONFIG_DEBUG_MEMORY_INIT is not set
1243# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1232# CONFIG_LATENCYTOP is not set 1244# CONFIG_LATENCYTOP is not set
1233# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1245# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1234CONFIG_HAVE_FTRACE=y 1246CONFIG_HAVE_FUNCTION_TRACER=y
1235CONFIG_HAVE_DYNAMIC_FTRACE=y 1247
1236# CONFIG_FTRACE is not set 1248#
1237# CONFIG_SCHED_TRACER is not set 1249# Tracers
1238# CONFIG_CONTEXT_SWITCH_TRACER is not set 1250#
1251# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1239# CONFIG_SAMPLES is not set 1252# CONFIG_SAMPLES is not set
1240CONFIG_HAVE_ARCH_KGDB=y 1253CONFIG_HAVE_ARCH_KGDB=y
1241# CONFIG_IRQSTACKS is not set 1254# CONFIG_IRQSTACKS is not set
@@ -1247,14 +1260,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1247# 1260#
1248# CONFIG_KEYS is not set 1261# CONFIG_KEYS is not set
1249# CONFIG_SECURITY is not set 1262# CONFIG_SECURITY is not set
1263# CONFIG_SECURITYFS is not set
1250# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1264# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1251CONFIG_CRYPTO=y 1265CONFIG_CRYPTO=y
1252 1266
1253# 1267#
1254# Crypto core or helper 1268# Crypto core or helper
1255# 1269#
1270# CONFIG_CRYPTO_FIPS is not set
1256CONFIG_CRYPTO_ALGAPI=y 1271CONFIG_CRYPTO_ALGAPI=y
1272CONFIG_CRYPTO_AEAD=y
1257CONFIG_CRYPTO_BLKCIPHER=y 1273CONFIG_CRYPTO_BLKCIPHER=y
1274CONFIG_CRYPTO_HASH=y
1275CONFIG_CRYPTO_RNG=y
1258CONFIG_CRYPTO_MANAGER=y 1276CONFIG_CRYPTO_MANAGER=y
1259# CONFIG_CRYPTO_GF128MUL is not set 1277# CONFIG_CRYPTO_GF128MUL is not set
1260# CONFIG_CRYPTO_NULL is not set 1278# CONFIG_CRYPTO_NULL is not set
@@ -1327,6 +1345,11 @@ CONFIG_CRYPTO_DES=y
1327# 1345#
1328# CONFIG_CRYPTO_DEFLATE is not set 1346# CONFIG_CRYPTO_DEFLATE is not set
1329# CONFIG_CRYPTO_LZO is not set 1347# CONFIG_CRYPTO_LZO is not set
1348
1349#
1350# Random Number Generation
1351#
1352# CONFIG_CRYPTO_ANSI_CPRNG is not set
1330CONFIG_CRYPTO_HW=y 1353CONFIG_CRYPTO_HW=y
1331# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1354# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1332# CONFIG_CRYPTO_DEV_TALITOS is not set 1355# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index b7eae2bdf19c..bfc32ea265a7 100644
--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:17 2008 4# Sat Nov 8 12:39:50 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
114CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -121,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -157,6 +152,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
160 156
161# 157#
162# Platform support 158# Platform support
@@ -164,10 +160,10 @@ CONFIG_CLASSIC_RCU=y
164CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_PMAC is not set
168# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
166# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set 169# CONFIG_PPC_82xx is not set
@@ -187,24 +183,21 @@ CONFIG_MPC831x_RDB=y
187CONFIG_PPC_MPC831x=y 183CONFIG_PPC_MPC831x=y
188# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
192CONFIG_IPIC=y 186CONFIG_IPIC=y
193CONFIG_MPIC=y 187# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
195CONFIG_PPC_I8259=y 189# CONFIG_PPC_I8259 is not set
196CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
199# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
200CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
201# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
202# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
203# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
204# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set 197# CONFIG_TAU is not set
198# CONFIG_QUICC_ENGINE is not set
207# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set
208 201
209# 202#
210# Kernel options 203# Kernel options
@@ -224,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
224# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
225# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
226CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
227# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
228# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -238,15 +233,15 @@ CONFIG_FLATMEM_MANUAL=y
238# CONFIG_SPARSEMEM_MANUAL is not set 233# CONFIG_SPARSEMEM_MANUAL is not set
239CONFIG_FLATMEM=y 234CONFIG_FLATMEM=y
240CONFIG_FLAT_NODE_MEM_MAP=y 235CONFIG_FLAT_NODE_MEM_MAP=y
241# CONFIG_SPARSEMEM_STATIC is not set
242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
243CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
244CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
246# CONFIG_RESOURCES_64BIT is not set 239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y
250CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
@@ -258,7 +253,6 @@ CONFIG_ISA_DMA_API=y
258# 253#
259# Bus options 254# Bus options
260# 255#
261# CONFIG_ISA is not set
262CONFIG_ZONE_DMA=y 256CONFIG_ZONE_DMA=y
263CONFIG_GENERIC_ISA_DMA=y 257CONFIG_GENERIC_ISA_DMA=y
264CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
@@ -271,7 +265,7 @@ CONFIG_PCI_SYSCALL=y
271# CONFIG_PCIEPORTBUS is not set 265# CONFIG_PCIEPORTBUS is not set
272CONFIG_ARCH_SUPPORTS_MSI=y 266CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 267# CONFIG_PCI_MSI is not set
274CONFIG_PCI_LEGACY=y 268# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_DEBUG is not set 269# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
@@ -340,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_TIPC is not set 334# CONFIG_TIPC is not set
341# CONFIG_ATM is not set 335# CONFIG_ATM is not set
342# CONFIG_BRIDGE is not set 336# CONFIG_BRIDGE is not set
337# CONFIG_NET_DSA is not set
343# CONFIG_VLAN_8021Q is not set 338# CONFIG_VLAN_8021Q is not set
344# CONFIG_DECNET is not set 339# CONFIG_DECNET is not set
345# CONFIG_LLC2 is not set 340# CONFIG_LLC2 is not set
@@ -360,11 +355,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
360# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
361# CONFIG_BT is not set 356# CONFIG_BT is not set
362# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
363 358# CONFIG_PHONET is not set
364# 359CONFIG_WIRELESS=y
365# Wireless
366#
367# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y
368# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
369# CONFIG_MAC80211 is not set 363# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set 364# CONFIG_IEEE80211 is not set
@@ -470,6 +464,7 @@ CONFIG_MTD_NAND_IDS=y
470# CONFIG_MTD_NAND_PLATFORM is not set 464# CONFIG_MTD_NAND_PLATFORM is not set
471# CONFIG_MTD_ALAUDA is not set 465# CONFIG_MTD_ALAUDA is not set
472CONFIG_MTD_NAND_FSL_ELBC=y 466CONFIG_MTD_NAND_FSL_ELBC=y
467# CONFIG_MTD_NAND_FSL_UPM is not set
473# CONFIG_MTD_ONENAND is not set 468# CONFIG_MTD_ONENAND is not set
474 469
475# 470#
@@ -482,7 +477,6 @@ CONFIG_OF_SPI=y
482# CONFIG_PARPORT is not set 477# CONFIG_PARPORT is not set
483CONFIG_BLK_DEV=y 478CONFIG_BLK_DEV=y
484# CONFIG_BLK_DEV_FD is not set 479# CONFIG_BLK_DEV_FD is not set
485# CONFIG_MAC_FLOPPY is not set
486# CONFIG_BLK_CPQ_DA is not set 480# CONFIG_BLK_CPQ_DA is not set
487# CONFIG_BLK_CPQ_CISS_DA is not set 481# CONFIG_BLK_CPQ_CISS_DA is not set
488# CONFIG_BLK_DEV_DAC960 is not set 482# CONFIG_BLK_DEV_DAC960 is not set
@@ -583,13 +577,12 @@ CONFIG_SCSI_LOWLEVEL=y
583# CONFIG_SCSI_DC390T is not set 577# CONFIG_SCSI_DC390T is not set
584# CONFIG_SCSI_NSP32 is not set 578# CONFIG_SCSI_NSP32 is not set
585# CONFIG_SCSI_DEBUG is not set 579# CONFIG_SCSI_DEBUG is not set
586# CONFIG_SCSI_MESH is not set
587# CONFIG_SCSI_MAC53C94 is not set
588# CONFIG_SCSI_SRP is not set 580# CONFIG_SCSI_SRP is not set
589# CONFIG_SCSI_DH is not set 581# CONFIG_SCSI_DH is not set
590# CONFIG_ATA is not set 582# CONFIG_ATA is not set
591CONFIG_MD=y 583CONFIG_MD=y
592CONFIG_BLK_DEV_MD=y 584CONFIG_BLK_DEV_MD=y
585CONFIG_MD_AUTODETECT=y
593CONFIG_MD_LINEAR=y 586CONFIG_MD_LINEAR=y
594CONFIG_MD_RAID0=y 587CONFIG_MD_RAID0=y
595CONFIG_MD_RAID1=y 588CONFIG_MD_RAID1=y
@@ -638,8 +631,6 @@ CONFIG_CICADA_PHY=y
638# CONFIG_MDIO_BITBANG is not set 631# CONFIG_MDIO_BITBANG is not set
639CONFIG_NET_ETHERNET=y 632CONFIG_NET_ETHERNET=y
640CONFIG_MII=y 633CONFIG_MII=y
641# CONFIG_MACE is not set
642# CONFIG_BMAC is not set
643# CONFIG_HAPPYMEAL is not set 634# CONFIG_HAPPYMEAL is not set
644# CONFIG_SUNGEM is not set 635# CONFIG_SUNGEM is not set
645# CONFIG_CASSINI is not set 636# CONFIG_CASSINI is not set
@@ -651,6 +642,9 @@ CONFIG_MII=y
651# CONFIG_IBM_NEW_EMAC_RGMII is not set 642# CONFIG_IBM_NEW_EMAC_RGMII is not set
652# CONFIG_IBM_NEW_EMAC_TAH is not set 643# CONFIG_IBM_NEW_EMAC_TAH is not set
653# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 644# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
645# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
646# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
647# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
654CONFIG_NET_PCI=y 648CONFIG_NET_PCI=y
655# CONFIG_PCNET32 is not set 649# CONFIG_PCNET32 is not set
656# CONFIG_AMD8111_ETH is not set 650# CONFIG_AMD8111_ETH is not set
@@ -671,6 +665,7 @@ CONFIG_E100=y
671# CONFIG_TLAN is not set 665# CONFIG_TLAN is not set
672# CONFIG_VIA_RHINE is not set 666# CONFIG_VIA_RHINE is not set
673# CONFIG_SC92031 is not set 667# CONFIG_SC92031 is not set
668# CONFIG_ATL2 is not set
674CONFIG_NETDEV_1000=y 669CONFIG_NETDEV_1000=y
675# CONFIG_ACENIC is not set 670# CONFIG_ACENIC is not set
676# CONFIG_DL2K is not set 671# CONFIG_DL2K is not set
@@ -693,18 +688,22 @@ CONFIG_GIANFAR=y
693# CONFIG_QLA3XXX is not set 688# CONFIG_QLA3XXX is not set
694# CONFIG_ATL1 is not set 689# CONFIG_ATL1 is not set
695# CONFIG_ATL1E is not set 690# CONFIG_ATL1E is not set
691# CONFIG_JME is not set
696CONFIG_NETDEV_10000=y 692CONFIG_NETDEV_10000=y
697# CONFIG_CHELSIO_T1 is not set 693# CONFIG_CHELSIO_T1 is not set
698# CONFIG_CHELSIO_T3 is not set 694# CONFIG_CHELSIO_T3 is not set
695# CONFIG_ENIC is not set
699# CONFIG_IXGBE is not set 696# CONFIG_IXGBE is not set
700# CONFIG_IXGB is not set 697# CONFIG_IXGB is not set
701# CONFIG_S2IO is not set 698# CONFIG_S2IO is not set
702# CONFIG_MYRI10GE is not set 699# CONFIG_MYRI10GE is not set
703# CONFIG_NETXEN_NIC is not set 700# CONFIG_NETXEN_NIC is not set
704# CONFIG_NIU is not set 701# CONFIG_NIU is not set
702# CONFIG_MLX4_EN is not set
705# CONFIG_MLX4_CORE is not set 703# CONFIG_MLX4_CORE is not set
706# CONFIG_TEHUTI is not set 704# CONFIG_TEHUTI is not set
707# CONFIG_BNX2X is not set 705# CONFIG_BNX2X is not set
706# CONFIG_QLGE is not set
708# CONFIG_SFC is not set 707# CONFIG_SFC is not set
709# CONFIG_TR is not set 708# CONFIG_TR is not set
710 709
@@ -790,14 +789,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
790# CONFIG_SERIAL_UARTLITE is not set 789# CONFIG_SERIAL_UARTLITE is not set
791CONFIG_SERIAL_CORE=y 790CONFIG_SERIAL_CORE=y
792CONFIG_SERIAL_CORE_CONSOLE=y 791CONFIG_SERIAL_CORE_CONSOLE=y
793# CONFIG_SERIAL_PMACZILOG is not set
794# CONFIG_SERIAL_JSM is not set 792# CONFIG_SERIAL_JSM is not set
795# CONFIG_SERIAL_OF_PLATFORM is not set 793# CONFIG_SERIAL_OF_PLATFORM is not set
796CONFIG_UNIX98_PTYS=y 794CONFIG_UNIX98_PTYS=y
797CONFIG_LEGACY_PTYS=y 795CONFIG_LEGACY_PTYS=y
798CONFIG_LEGACY_PTY_COUNT=256 796CONFIG_LEGACY_PTY_COUNT=256
799# CONFIG_BRIQ_PANEL is not set
800# CONFIG_HVC_RTAS is not set
801# CONFIG_IPMI_HANDLER is not set 797# CONFIG_IPMI_HANDLER is not set
802CONFIG_HW_RANDOM=y 798CONFIG_HW_RANDOM=y
803# CONFIG_NVRAM is not set 799# CONFIG_NVRAM is not set
@@ -834,12 +830,6 @@ CONFIG_I2C_HELPER_AUTO=y
834# CONFIG_I2C_VIAPRO is not set 830# CONFIG_I2C_VIAPRO is not set
835 831
836# 832#
837# Mac SMBus host controller drivers
838#
839# CONFIG_I2C_HYDRA is not set
840CONFIG_I2C_POWERMAC=y
841
842#
843# I2C system bus drivers (mostly embedded / system-on-chip) 833# I2C system bus drivers (mostly embedded / system-on-chip)
844# 834#
845CONFIG_I2C_MPC=y 835CONFIG_I2C_MPC=y
@@ -876,6 +866,7 @@ CONFIG_I2C_MPC=y
876# CONFIG_SENSORS_PCF8591 is not set 866# CONFIG_SENSORS_PCF8591 is not set
877# CONFIG_SENSORS_MAX6875 is not set 867# CONFIG_SENSORS_MAX6875 is not set
878# CONFIG_SENSORS_TSL2550 is not set 868# CONFIG_SENSORS_TSL2550 is not set
869# CONFIG_MCU_MPC8349EMITX is not set
879# CONFIG_I2C_DEBUG_CORE is not set 870# CONFIG_I2C_DEBUG_CORE is not set
880# CONFIG_I2C_DEBUG_ALGO is not set 871# CONFIG_I2C_DEBUG_ALGO is not set
881# CONFIG_I2C_DEBUG_BUS is not set 872# CONFIG_I2C_DEBUG_BUS is not set
@@ -913,7 +904,6 @@ CONFIG_HWMON=y
913# CONFIG_SENSORS_ADM9240 is not set 904# CONFIG_SENSORS_ADM9240 is not set
914# CONFIG_SENSORS_ADT7470 is not set 905# CONFIG_SENSORS_ADT7470 is not set
915# CONFIG_SENSORS_ADT7473 is not set 906# CONFIG_SENSORS_ADT7473 is not set
916# CONFIG_SENSORS_AMS is not set
917# CONFIG_SENSORS_ATXP1 is not set 907# CONFIG_SENSORS_ATXP1 is not set
918# CONFIG_SENSORS_DS1621 is not set 908# CONFIG_SENSORS_DS1621 is not set
919# CONFIG_SENSORS_I5K_AMB is not set 909# CONFIG_SENSORS_I5K_AMB is not set
@@ -935,6 +925,7 @@ CONFIG_HWMON=y
935# CONFIG_SENSORS_LM90 is not set 925# CONFIG_SENSORS_LM90 is not set
936# CONFIG_SENSORS_LM92 is not set 926# CONFIG_SENSORS_LM92 is not set
937# CONFIG_SENSORS_LM93 is not set 927# CONFIG_SENSORS_LM93 is not set
928# CONFIG_SENSORS_MAX1111 is not set
938# CONFIG_SENSORS_MAX1619 is not set 929# CONFIG_SENSORS_MAX1619 is not set
939# CONFIG_SENSORS_MAX6650 is not set 930# CONFIG_SENSORS_MAX6650 is not set
940# CONFIG_SENSORS_PC87360 is not set 931# CONFIG_SENSORS_PC87360 is not set
@@ -969,7 +960,6 @@ CONFIG_WATCHDOG=y
969# CONFIG_SOFT_WATCHDOG is not set 960# CONFIG_SOFT_WATCHDOG is not set
970# CONFIG_ALIM7101_WDT is not set 961# CONFIG_ALIM7101_WDT is not set
971# CONFIG_8xxx_WDT is not set 962# CONFIG_8xxx_WDT is not set
972# CONFIG_WATCHDOG_RTAS is not set
973 963
974# 964#
975# PCI-based Watchdog Cards 965# PCI-based Watchdog Cards
@@ -995,6 +985,17 @@ CONFIG_SSB_POSSIBLE=y
995# CONFIG_MFD_SM501 is not set 985# CONFIG_MFD_SM501 is not set
996# CONFIG_HTC_PASIC3 is not set 986# CONFIG_HTC_PASIC3 is not set
997# CONFIG_MFD_TMIO is not set 987# CONFIG_MFD_TMIO is not set
988# CONFIG_PMIC_DA903X is not set
989# CONFIG_MFD_WM8400 is not set
990# CONFIG_MFD_WM8350_I2C is not set
991
992#
993# Voltage and Current regulators
994#
995# CONFIG_REGULATOR is not set
996# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
997# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
998# CONFIG_REGULATOR_BQ24022 is not set
998 999
999# 1000#
1000# Multimedia devices 1001# Multimedia devices
@@ -1037,12 +1038,18 @@ CONFIG_HID=y
1037# USB Input Devices 1038# USB Input Devices
1038# 1039#
1039# CONFIG_USB_HID is not set 1040# CONFIG_USB_HID is not set
1041# CONFIG_HID_PID is not set
1040 1042
1041# 1043#
1042# USB HID Boot Protocol drivers 1044# USB HID Boot Protocol drivers
1043# 1045#
1044# CONFIG_USB_KBD is not set 1046# CONFIG_USB_KBD is not set
1045# CONFIG_USB_MOUSE is not set 1047# CONFIG_USB_MOUSE is not set
1048
1049#
1050# Special HID drivers
1051#
1052CONFIG_HID_COMPAT=y
1046CONFIG_USB_SUPPORT=y 1053CONFIG_USB_SUPPORT=y
1047CONFIG_USB_ARCH_HAS_HCD=y 1054CONFIG_USB_ARCH_HAS_HCD=y
1048CONFIG_USB_ARCH_HAS_OHCI=y 1055CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1061,6 +1068,8 @@ CONFIG_USB_DEVICE_CLASS=y
1061# CONFIG_USB_OTG_WHITELIST is not set 1068# CONFIG_USB_OTG_WHITELIST is not set
1062# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1069# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1063CONFIG_USB_MON=y 1070CONFIG_USB_MON=y
1071# CONFIG_USB_WUSB is not set
1072# CONFIG_USB_WUSB_CBAF is not set
1064 1073
1065# 1074#
1066# USB Host Controller Drivers 1075# USB Host Controller Drivers
@@ -1084,6 +1093,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1084CONFIG_USB_UHCI_HCD=y 1093CONFIG_USB_UHCI_HCD=y
1085# CONFIG_USB_SL811_HCD is not set 1094# CONFIG_USB_SL811_HCD is not set
1086# CONFIG_USB_R8A66597_HCD is not set 1095# CONFIG_USB_R8A66597_HCD is not set
1096# CONFIG_USB_WHCI_HCD is not set
1097# CONFIG_USB_HWA_HCD is not set
1087# CONFIG_USB_GADGET_MUSB_HDRC is not set 1098# CONFIG_USB_GADGET_MUSB_HDRC is not set
1088 1099
1089# 1100#
@@ -1092,6 +1103,7 @@ CONFIG_USB_UHCI_HCD=y
1092# CONFIG_USB_ACM is not set 1103# CONFIG_USB_ACM is not set
1093# CONFIG_USB_PRINTER is not set 1104# CONFIG_USB_PRINTER is not set
1094# CONFIG_USB_WDM is not set 1105# CONFIG_USB_WDM is not set
1106# CONFIG_USB_TMC is not set
1095 1107
1096# 1108#
1097# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1109# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1113,7 +1125,6 @@ CONFIG_USB_STORAGE=y
1113# CONFIG_USB_STORAGE_ALAUDA is not set 1125# CONFIG_USB_STORAGE_ALAUDA is not set
1114# CONFIG_USB_STORAGE_ONETOUCH is not set 1126# CONFIG_USB_STORAGE_ONETOUCH is not set
1115# CONFIG_USB_STORAGE_KARMA is not set 1127# CONFIG_USB_STORAGE_KARMA is not set
1116# CONFIG_USB_STORAGE_SIERRA is not set
1117# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1128# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1118# CONFIG_USB_LIBUSUAL is not set 1129# CONFIG_USB_LIBUSUAL is not set
1119 1130
@@ -1134,6 +1145,7 @@ CONFIG_USB_STORAGE=y
1134# CONFIG_USB_EMI62 is not set 1145# CONFIG_USB_EMI62 is not set
1135# CONFIG_USB_EMI26 is not set 1146# CONFIG_USB_EMI26 is not set
1136# CONFIG_USB_ADUTUX is not set 1147# CONFIG_USB_ADUTUX is not set
1148# CONFIG_USB_SEVSEG is not set
1137# CONFIG_USB_RIO500 is not set 1149# CONFIG_USB_RIO500 is not set
1138# CONFIG_USB_LEGOTOWER is not set 1150# CONFIG_USB_LEGOTOWER is not set
1139# CONFIG_USB_LCD is not set 1151# CONFIG_USB_LCD is not set
@@ -1151,23 +1163,26 @@ CONFIG_USB_STORAGE=y
1151# CONFIG_USB_IOWARRIOR is not set 1163# CONFIG_USB_IOWARRIOR is not set
1152# CONFIG_USB_TEST is not set 1164# CONFIG_USB_TEST is not set
1153# CONFIG_USB_ISIGHTFW is not set 1165# CONFIG_USB_ISIGHTFW is not set
1166# CONFIG_USB_VST is not set
1154CONFIG_USB_GADGET=y 1167CONFIG_USB_GADGET=y
1155# CONFIG_USB_GADGET_DEBUG is not set 1168# CONFIG_USB_GADGET_DEBUG is not set
1156# CONFIG_USB_GADGET_DEBUG_FILES is not set 1169# CONFIG_USB_GADGET_DEBUG_FILES is not set
1170CONFIG_USB_GADGET_VBUS_DRAW=2
1157CONFIG_USB_GADGET_SELECTED=y 1171CONFIG_USB_GADGET_SELECTED=y
1158# CONFIG_USB_GADGET_AMD5536UDC is not set 1172# CONFIG_USB_GADGET_AT91 is not set
1159# CONFIG_USB_GADGET_ATMEL_USBA is not set 1173# CONFIG_USB_GADGET_ATMEL_USBA is not set
1160# CONFIG_USB_GADGET_FSL_USB2 is not set 1174# CONFIG_USB_GADGET_FSL_USB2 is not set
1161CONFIG_USB_GADGET_NET2280=y
1162CONFIG_USB_NET2280=y
1163# CONFIG_USB_GADGET_PXA25X is not set
1164# CONFIG_USB_GADGET_M66592 is not set
1165# CONFIG_USB_GADGET_PXA27X is not set
1166# CONFIG_USB_GADGET_GOKU is not set
1167# CONFIG_USB_GADGET_LH7A40X is not set 1175# CONFIG_USB_GADGET_LH7A40X is not set
1168# CONFIG_USB_GADGET_OMAP is not set 1176# CONFIG_USB_GADGET_OMAP is not set
1177# CONFIG_USB_GADGET_PXA25X is not set
1178# CONFIG_USB_GADGET_PXA27X is not set
1169# CONFIG_USB_GADGET_S3C2410 is not set 1179# CONFIG_USB_GADGET_S3C2410 is not set
1170# CONFIG_USB_GADGET_AT91 is not set 1180# CONFIG_USB_GADGET_M66592 is not set
1181# CONFIG_USB_GADGET_AMD5536UDC is not set
1182# CONFIG_USB_GADGET_FSL_QE is not set
1183CONFIG_USB_GADGET_NET2280=y
1184CONFIG_USB_NET2280=y
1185# CONFIG_USB_GADGET_GOKU is not set
1171# CONFIG_USB_GADGET_DUMMY_HCD is not set 1186# CONFIG_USB_GADGET_DUMMY_HCD is not set
1172CONFIG_USB_GADGET_DUALSPEED=y 1187CONFIG_USB_GADGET_DUALSPEED=y
1173# CONFIG_USB_ZERO is not set 1188# CONFIG_USB_ZERO is not set
@@ -1179,6 +1194,7 @@ CONFIG_USB_ETH_RNDIS=y
1179# CONFIG_USB_MIDI_GADGET is not set 1194# CONFIG_USB_MIDI_GADGET is not set
1180# CONFIG_USB_G_PRINTER is not set 1195# CONFIG_USB_G_PRINTER is not set
1181# CONFIG_USB_CDC_COMPOSITE is not set 1196# CONFIG_USB_CDC_COMPOSITE is not set
1197# CONFIG_UWB is not set
1182# CONFIG_MMC is not set 1198# CONFIG_MMC is not set
1183# CONFIG_MEMSTICK is not set 1199# CONFIG_MEMSTICK is not set
1184# CONFIG_NEW_LEDS is not set 1200# CONFIG_NEW_LEDS is not set
@@ -1224,17 +1240,21 @@ CONFIG_RTC_DRV_DS1307=y
1224# CONFIG_RTC_DRV_MAX6902 is not set 1240# CONFIG_RTC_DRV_MAX6902 is not set
1225# CONFIG_RTC_DRV_R9701 is not set 1241# CONFIG_RTC_DRV_R9701 is not set
1226# CONFIG_RTC_DRV_RS5C348 is not set 1242# CONFIG_RTC_DRV_RS5C348 is not set
1243# CONFIG_RTC_DRV_DS3234 is not set
1227 1244
1228# 1245#
1229# Platform RTC drivers 1246# Platform RTC drivers
1230# 1247#
1231# CONFIG_RTC_DRV_CMOS is not set 1248# CONFIG_RTC_DRV_CMOS is not set
1249# CONFIG_RTC_DRV_DS1286 is not set
1232# CONFIG_RTC_DRV_DS1511 is not set 1250# CONFIG_RTC_DRV_DS1511 is not set
1233# CONFIG_RTC_DRV_DS1553 is not set 1251# CONFIG_RTC_DRV_DS1553 is not set
1234# CONFIG_RTC_DRV_DS1742 is not set 1252# CONFIG_RTC_DRV_DS1742 is not set
1235# CONFIG_RTC_DRV_STK17TA8 is not set 1253# CONFIG_RTC_DRV_STK17TA8 is not set
1236# CONFIG_RTC_DRV_M48T86 is not set 1254# CONFIG_RTC_DRV_M48T86 is not set
1255# CONFIG_RTC_DRV_M48T35 is not set
1237# CONFIG_RTC_DRV_M48T59 is not set 1256# CONFIG_RTC_DRV_M48T59 is not set
1257# CONFIG_RTC_DRV_BQ4802 is not set
1238# CONFIG_RTC_DRV_V3020 is not set 1258# CONFIG_RTC_DRV_V3020 is not set
1239 1259
1240# 1260#
@@ -1243,6 +1263,7 @@ CONFIG_RTC_DRV_DS1307=y
1243# CONFIG_RTC_DRV_PPC is not set 1263# CONFIG_RTC_DRV_PPC is not set
1244# CONFIG_DMADEVICES is not set 1264# CONFIG_DMADEVICES is not set
1245# CONFIG_UIO is not set 1265# CONFIG_UIO is not set
1266# CONFIG_STAGING is not set
1246 1267
1247# 1268#
1248# File systems 1269# File systems
@@ -1254,12 +1275,13 @@ CONFIG_EXT3_FS=y
1254CONFIG_EXT3_FS_XATTR=y 1275CONFIG_EXT3_FS_XATTR=y
1255# CONFIG_EXT3_FS_POSIX_ACL is not set 1276# CONFIG_EXT3_FS_POSIX_ACL is not set
1256# CONFIG_EXT3_FS_SECURITY is not set 1277# CONFIG_EXT3_FS_SECURITY is not set
1257# CONFIG_EXT4DEV_FS is not set 1278# CONFIG_EXT4_FS is not set
1258CONFIG_JBD=y 1279CONFIG_JBD=y
1259CONFIG_FS_MBCACHE=y 1280CONFIG_FS_MBCACHE=y
1260# CONFIG_REISERFS_FS is not set 1281# CONFIG_REISERFS_FS is not set
1261# CONFIG_JFS_FS is not set 1282# CONFIG_JFS_FS is not set
1262# CONFIG_FS_POSIX_ACL is not set 1283# CONFIG_FS_POSIX_ACL is not set
1284CONFIG_FILE_LOCKING=y
1263# CONFIG_XFS_FS is not set 1285# CONFIG_XFS_FS is not set
1264# CONFIG_OCFS2_FS is not set 1286# CONFIG_OCFS2_FS is not set
1265CONFIG_DNOTIFY=y 1287CONFIG_DNOTIFY=y
@@ -1289,6 +1311,7 @@ CONFIG_INOTIFY_USER=y
1289CONFIG_PROC_FS=y 1311CONFIG_PROC_FS=y
1290CONFIG_PROC_KCORE=y 1312CONFIG_PROC_KCORE=y
1291CONFIG_PROC_SYSCTL=y 1313CONFIG_PROC_SYSCTL=y
1314CONFIG_PROC_PAGE_MONITOR=y
1292CONFIG_SYSFS=y 1315CONFIG_SYSFS=y
1293CONFIG_TMPFS=y 1316CONFIG_TMPFS=y
1294# CONFIG_TMPFS_POSIX_ACL is not set 1317# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1337,6 +1360,7 @@ CONFIG_LOCKD_V4=y
1337CONFIG_NFS_COMMON=y 1360CONFIG_NFS_COMMON=y
1338CONFIG_SUNRPC=y 1361CONFIG_SUNRPC=y
1339CONFIG_SUNRPC_GSS=y 1362CONFIG_SUNRPC_GSS=y
1363# CONFIG_SUNRPC_REGISTER_V4 is not set
1340CONFIG_RPCSEC_GSS_KRB5=y 1364CONFIG_RPCSEC_GSS_KRB5=y
1341# CONFIG_RPCSEC_GSS_SPKM3 is not set 1365# CONFIG_RPCSEC_GSS_SPKM3 is not set
1342# CONFIG_SMB_FS is not set 1366# CONFIG_SMB_FS is not set
@@ -1373,7 +1397,6 @@ CONFIG_MSDOS_PARTITION=y
1373# Library routines 1397# Library routines
1374# 1398#
1375CONFIG_BITREVERSE=y 1399CONFIG_BITREVERSE=y
1376# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1377# CONFIG_CRC_CCITT is not set 1400# CONFIG_CRC_CCITT is not set
1378# CONFIG_CRC16 is not set 1401# CONFIG_CRC16 is not set
1379# CONFIG_CRC_T10DIF is not set 1402# CONFIG_CRC_T10DIF is not set
@@ -1427,15 +1450,23 @@ CONFIG_SCHED_DEBUG=y
1427# CONFIG_DEBUG_SG is not set 1450# CONFIG_DEBUG_SG is not set
1428# CONFIG_BOOT_PRINTK_DELAY is not set 1451# CONFIG_BOOT_PRINTK_DELAY is not set
1429# CONFIG_RCU_TORTURE_TEST is not set 1452# CONFIG_RCU_TORTURE_TEST is not set
1453# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1430# CONFIG_BACKTRACE_SELF_TEST is not set 1454# CONFIG_BACKTRACE_SELF_TEST is not set
1455# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1431# CONFIG_FAULT_INJECTION is not set 1456# CONFIG_FAULT_INJECTION is not set
1432# CONFIG_LATENCYTOP is not set 1457# CONFIG_LATENCYTOP is not set
1433CONFIG_SYSCTL_SYSCALL_CHECK=y 1458CONFIG_SYSCTL_SYSCALL_CHECK=y
1434CONFIG_HAVE_FTRACE=y 1459CONFIG_HAVE_FUNCTION_TRACER=y
1435CONFIG_HAVE_DYNAMIC_FTRACE=y 1460
1436# CONFIG_FTRACE is not set 1461#
1462# Tracers
1463#
1464# CONFIG_FUNCTION_TRACER is not set
1437# CONFIG_SCHED_TRACER is not set 1465# CONFIG_SCHED_TRACER is not set
1438# CONFIG_CONTEXT_SWITCH_TRACER is not set 1466# CONFIG_CONTEXT_SWITCH_TRACER is not set
1467# CONFIG_BOOT_TRACER is not set
1468# CONFIG_STACK_TRACER is not set
1469# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1439# CONFIG_SAMPLES is not set 1470# CONFIG_SAMPLES is not set
1440CONFIG_HAVE_ARCH_KGDB=y 1471CONFIG_HAVE_ARCH_KGDB=y
1441# CONFIG_KGDB is not set 1472# CONFIG_KGDB is not set
@@ -1444,6 +1475,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1444# CONFIG_DEBUG_PAGEALLOC is not set 1475# CONFIG_DEBUG_PAGEALLOC is not set
1445# CONFIG_CODE_PATCHING_SELFTEST is not set 1476# CONFIG_CODE_PATCHING_SELFTEST is not set
1446# CONFIG_FTR_FIXUP_SELFTEST is not set 1477# CONFIG_FTR_FIXUP_SELFTEST is not set
1478# CONFIG_MSI_BITMAP_SELFTEST is not set
1447# CONFIG_XMON is not set 1479# CONFIG_XMON is not set
1448# CONFIG_IRQSTACKS is not set 1480# CONFIG_IRQSTACKS is not set
1449# CONFIG_BDI_SWITCH is not set 1481# CONFIG_BDI_SWITCH is not set
@@ -1455,14 +1487,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1455# 1487#
1456# CONFIG_KEYS is not set 1488# CONFIG_KEYS is not set
1457# CONFIG_SECURITY is not set 1489# CONFIG_SECURITY is not set
1490# CONFIG_SECURITYFS is not set
1458# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1491# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1459CONFIG_CRYPTO=y 1492CONFIG_CRYPTO=y
1460 1493
1461# 1494#
1462# Crypto core or helper 1495# Crypto core or helper
1463# 1496#
1497# CONFIG_CRYPTO_FIPS is not set
1464CONFIG_CRYPTO_ALGAPI=y 1498CONFIG_CRYPTO_ALGAPI=y
1499CONFIG_CRYPTO_AEAD=y
1465CONFIG_CRYPTO_BLKCIPHER=y 1500CONFIG_CRYPTO_BLKCIPHER=y
1501CONFIG_CRYPTO_HASH=y
1502CONFIG_CRYPTO_RNG=y
1466CONFIG_CRYPTO_MANAGER=y 1503CONFIG_CRYPTO_MANAGER=y
1467# CONFIG_CRYPTO_GF128MUL is not set 1504# CONFIG_CRYPTO_GF128MUL is not set
1468# CONFIG_CRYPTO_NULL is not set 1505# CONFIG_CRYPTO_NULL is not set
@@ -1535,6 +1572,11 @@ CONFIG_CRYPTO_DES=y
1535# 1572#
1536# CONFIG_CRYPTO_DEFLATE is not set 1573# CONFIG_CRYPTO_DEFLATE is not set
1537# CONFIG_CRYPTO_LZO is not set 1574# CONFIG_CRYPTO_LZO is not set
1575
1576#
1577# Random Number Generation
1578#
1579# CONFIG_CRYPTO_ANSI_CPRNG is not set
1538CONFIG_CRYPTO_HW=y 1580CONFIG_CRYPTO_HW=y
1539# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1581# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1540# CONFIG_CRYPTO_DEV_TALITOS is not set 1582# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index b0a27a67d8c7..aad0e1a98c55 100644
--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:18 2008 4# Sat Nov 8 12:39:51 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
114CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -121,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -157,6 +152,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
160 156
161# 157#
162# Platform support 158# Platform support
@@ -164,10 +160,10 @@ CONFIG_CLASSIC_RCU=y
164CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_PMAC is not set
168# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
166# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set 169# CONFIG_PPC_82xx is not set
@@ -187,24 +183,21 @@ CONFIG_MPC831x_RDB=y
187CONFIG_PPC_MPC831x=y 183CONFIG_PPC_MPC831x=y
188# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
192CONFIG_IPIC=y 186CONFIG_IPIC=y
193CONFIG_MPIC=y 187# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
195CONFIG_PPC_I8259=y 189# CONFIG_PPC_I8259 is not set
196CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
199# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
200CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
201# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
202# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
203# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
204# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set 197# CONFIG_TAU is not set
198# CONFIG_QUICC_ENGINE is not set
207# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set
208 201
209# 202#
210# Kernel options 203# Kernel options
@@ -224,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
224# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
225# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
226CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
227# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
228# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -238,15 +233,15 @@ CONFIG_FLATMEM_MANUAL=y
238# CONFIG_SPARSEMEM_MANUAL is not set 233# CONFIG_SPARSEMEM_MANUAL is not set
239CONFIG_FLATMEM=y 234CONFIG_FLATMEM=y
240CONFIG_FLAT_NODE_MEM_MAP=y 235CONFIG_FLAT_NODE_MEM_MAP=y
241# CONFIG_SPARSEMEM_STATIC is not set
242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
243CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
244CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
246# CONFIG_RESOURCES_64BIT is not set 239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y
250CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
@@ -258,7 +253,6 @@ CONFIG_ISA_DMA_API=y
258# 253#
259# Bus options 254# Bus options
260# 255#
261# CONFIG_ISA is not set
262CONFIG_ZONE_DMA=y 256CONFIG_ZONE_DMA=y
263CONFIG_GENERIC_ISA_DMA=y 257CONFIG_GENERIC_ISA_DMA=y
264CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
@@ -271,7 +265,7 @@ CONFIG_PCI_SYSCALL=y
271# CONFIG_PCIEPORTBUS is not set 265# CONFIG_PCIEPORTBUS is not set
272CONFIG_ARCH_SUPPORTS_MSI=y 266CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 267# CONFIG_PCI_MSI is not set
274CONFIG_PCI_LEGACY=y 268# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_DEBUG is not set 269# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
@@ -340,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_TIPC is not set 334# CONFIG_TIPC is not set
341# CONFIG_ATM is not set 335# CONFIG_ATM is not set
342# CONFIG_BRIDGE is not set 336# CONFIG_BRIDGE is not set
337# CONFIG_NET_DSA is not set
343# CONFIG_VLAN_8021Q is not set 338# CONFIG_VLAN_8021Q is not set
344# CONFIG_DECNET is not set 339# CONFIG_DECNET is not set
345# CONFIG_LLC2 is not set 340# CONFIG_LLC2 is not set
@@ -360,11 +355,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
360# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
361# CONFIG_BT is not set 356# CONFIG_BT is not set
362# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
363 358# CONFIG_PHONET is not set
364# 359CONFIG_WIRELESS=y
365# Wireless
366#
367# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y
368# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
369# CONFIG_MAC80211 is not set 363# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set 364# CONFIG_IEEE80211 is not set
@@ -470,6 +464,7 @@ CONFIG_MTD_NAND_IDS=y
470# CONFIG_MTD_NAND_PLATFORM is not set 464# CONFIG_MTD_NAND_PLATFORM is not set
471# CONFIG_MTD_ALAUDA is not set 465# CONFIG_MTD_ALAUDA is not set
472# CONFIG_MTD_NAND_FSL_ELBC is not set 466# CONFIG_MTD_NAND_FSL_ELBC is not set
467# CONFIG_MTD_NAND_FSL_UPM is not set
473# CONFIG_MTD_ONENAND is not set 468# CONFIG_MTD_ONENAND is not set
474 469
475# 470#
@@ -482,7 +477,6 @@ CONFIG_OF_SPI=y
482# CONFIG_PARPORT is not set 477# CONFIG_PARPORT is not set
483CONFIG_BLK_DEV=y 478CONFIG_BLK_DEV=y
484# CONFIG_BLK_DEV_FD is not set 479# CONFIG_BLK_DEV_FD is not set
485# CONFIG_MAC_FLOPPY is not set
486# CONFIG_BLK_CPQ_DA is not set 480# CONFIG_BLK_CPQ_DA is not set
487# CONFIG_BLK_CPQ_CISS_DA is not set 481# CONFIG_BLK_CPQ_CISS_DA is not set
488# CONFIG_BLK_DEV_DAC960 is not set 482# CONFIG_BLK_DEV_DAC960 is not set
@@ -584,8 +578,6 @@ CONFIG_SCSI_LOWLEVEL=y
584# CONFIG_SCSI_DC390T is not set 578# CONFIG_SCSI_DC390T is not set
585# CONFIG_SCSI_NSP32 is not set 579# CONFIG_SCSI_NSP32 is not set
586# CONFIG_SCSI_DEBUG is not set 580# CONFIG_SCSI_DEBUG is not set
587# CONFIG_SCSI_MESH is not set
588# CONFIG_SCSI_MAC53C94 is not set
589# CONFIG_SCSI_SRP is not set 581# CONFIG_SCSI_SRP is not set
590# CONFIG_SCSI_DH is not set 582# CONFIG_SCSI_DH is not set
591CONFIG_ATA=y 583CONFIG_ATA=y
@@ -651,6 +643,7 @@ CONFIG_ATA_SFF=y
651# CONFIG_PATA_SCH is not set 643# CONFIG_PATA_SCH is not set
652CONFIG_MD=y 644CONFIG_MD=y
653CONFIG_BLK_DEV_MD=y 645CONFIG_BLK_DEV_MD=y
646CONFIG_MD_AUTODETECT=y
654CONFIG_MD_LINEAR=y 647CONFIG_MD_LINEAR=y
655CONFIG_MD_RAID0=y 648CONFIG_MD_RAID0=y
656CONFIG_MD_RAID1=y 649CONFIG_MD_RAID1=y
@@ -699,8 +692,6 @@ CONFIG_PHYLIB=y
699# CONFIG_MDIO_BITBANG is not set 692# CONFIG_MDIO_BITBANG is not set
700CONFIG_NET_ETHERNET=y 693CONFIG_NET_ETHERNET=y
701CONFIG_MII=y 694CONFIG_MII=y
702# CONFIG_MACE is not set
703# CONFIG_BMAC is not set
704# CONFIG_HAPPYMEAL is not set 695# CONFIG_HAPPYMEAL is not set
705# CONFIG_SUNGEM is not set 696# CONFIG_SUNGEM is not set
706# CONFIG_CASSINI is not set 697# CONFIG_CASSINI is not set
@@ -712,6 +703,9 @@ CONFIG_MII=y
712# CONFIG_IBM_NEW_EMAC_RGMII is not set 703# CONFIG_IBM_NEW_EMAC_RGMII is not set
713# CONFIG_IBM_NEW_EMAC_TAH is not set 704# CONFIG_IBM_NEW_EMAC_TAH is not set
714# 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
715CONFIG_NET_PCI=y 709CONFIG_NET_PCI=y
716# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
717# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
@@ -732,6 +726,7 @@ CONFIG_E100=y
732# CONFIG_TLAN is not set 726# CONFIG_TLAN is not set
733# CONFIG_VIA_RHINE is not set 727# CONFIG_VIA_RHINE is not set
734# CONFIG_SC92031 is not set 728# CONFIG_SC92031 is not set
729# CONFIG_ATL2 is not set
735CONFIG_NETDEV_1000=y 730CONFIG_NETDEV_1000=y
736# CONFIG_ACENIC is not set 731# CONFIG_ACENIC is not set
737# CONFIG_DL2K is not set 732# CONFIG_DL2K is not set
@@ -754,18 +749,22 @@ CONFIG_GIANFAR=y
754# CONFIG_QLA3XXX is not set 749# CONFIG_QLA3XXX is not set
755# CONFIG_ATL1 is not set 750# CONFIG_ATL1 is not set
756# CONFIG_ATL1E is not set 751# CONFIG_ATL1E is not set
752# CONFIG_JME is not set
757CONFIG_NETDEV_10000=y 753CONFIG_NETDEV_10000=y
758# CONFIG_CHELSIO_T1 is not set 754# CONFIG_CHELSIO_T1 is not set
759# CONFIG_CHELSIO_T3 is not set 755# CONFIG_CHELSIO_T3 is not set
756# CONFIG_ENIC is not set
760# CONFIG_IXGBE is not set 757# CONFIG_IXGBE is not set
761# CONFIG_IXGB is not set 758# CONFIG_IXGB is not set
762# CONFIG_S2IO is not set 759# CONFIG_S2IO is not set
763# CONFIG_MYRI10GE is not set 760# CONFIG_MYRI10GE is not set
764# CONFIG_NETXEN_NIC is not set 761# CONFIG_NETXEN_NIC is not set
765# CONFIG_NIU is not set 762# CONFIG_NIU is not set
763# CONFIG_MLX4_EN is not set
766# CONFIG_MLX4_CORE is not set 764# CONFIG_MLX4_CORE is not set
767# CONFIG_TEHUTI is not set 765# CONFIG_TEHUTI is not set
768# CONFIG_BNX2X is not set 766# CONFIG_BNX2X is not set
767# CONFIG_QLGE is not set
769# CONFIG_SFC is not set 768# CONFIG_SFC is not set
770# CONFIG_TR is not set 769# CONFIG_TR is not set
771 770
@@ -851,14 +850,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
851# CONFIG_SERIAL_UARTLITE is not set 850# CONFIG_SERIAL_UARTLITE is not set
852CONFIG_SERIAL_CORE=y 851CONFIG_SERIAL_CORE=y
853CONFIG_SERIAL_CORE_CONSOLE=y 852CONFIG_SERIAL_CORE_CONSOLE=y
854# CONFIG_SERIAL_PMACZILOG is not set
855# CONFIG_SERIAL_JSM is not set 853# CONFIG_SERIAL_JSM is not set
856# CONFIG_SERIAL_OF_PLATFORM is not set 854# CONFIG_SERIAL_OF_PLATFORM is not set
857CONFIG_UNIX98_PTYS=y 855CONFIG_UNIX98_PTYS=y
858CONFIG_LEGACY_PTYS=y 856CONFIG_LEGACY_PTYS=y
859CONFIG_LEGACY_PTY_COUNT=256 857CONFIG_LEGACY_PTY_COUNT=256
860# CONFIG_BRIQ_PANEL is not set
861# CONFIG_HVC_RTAS is not set
862# CONFIG_IPMI_HANDLER is not set 858# CONFIG_IPMI_HANDLER is not set
863CONFIG_HW_RANDOM=y 859CONFIG_HW_RANDOM=y
864# CONFIG_NVRAM is not set 860# CONFIG_NVRAM is not set
@@ -895,12 +891,6 @@ CONFIG_I2C_HELPER_AUTO=y
895# CONFIG_I2C_VIAPRO is not set 891# CONFIG_I2C_VIAPRO is not set
896 892
897# 893#
898# Mac SMBus host controller drivers
899#
900# CONFIG_I2C_HYDRA is not set
901CONFIG_I2C_POWERMAC=y
902
903#
904# I2C system bus drivers (mostly embedded / system-on-chip) 894# I2C system bus drivers (mostly embedded / system-on-chip)
905# 895#
906CONFIG_I2C_MPC=y 896CONFIG_I2C_MPC=y
@@ -937,6 +927,7 @@ CONFIG_I2C_MPC=y
937# CONFIG_SENSORS_PCF8591 is not set 927# CONFIG_SENSORS_PCF8591 is not set
938# CONFIG_SENSORS_MAX6875 is not set 928# CONFIG_SENSORS_MAX6875 is not set
939# CONFIG_SENSORS_TSL2550 is not set 929# CONFIG_SENSORS_TSL2550 is not set
930# CONFIG_MCU_MPC8349EMITX is not set
940# CONFIG_I2C_DEBUG_CORE is not set 931# CONFIG_I2C_DEBUG_CORE is not set
941# CONFIG_I2C_DEBUG_ALGO is not set 932# CONFIG_I2C_DEBUG_ALGO is not set
942# CONFIG_I2C_DEBUG_BUS is not set 933# CONFIG_I2C_DEBUG_BUS is not set
@@ -974,7 +965,6 @@ CONFIG_HWMON=y
974# CONFIG_SENSORS_ADM9240 is not set 965# CONFIG_SENSORS_ADM9240 is not set
975# CONFIG_SENSORS_ADT7470 is not set 966# CONFIG_SENSORS_ADT7470 is not set
976# CONFIG_SENSORS_ADT7473 is not set 967# CONFIG_SENSORS_ADT7473 is not set
977# CONFIG_SENSORS_AMS is not set
978# CONFIG_SENSORS_ATXP1 is not set 968# CONFIG_SENSORS_ATXP1 is not set
979# CONFIG_SENSORS_DS1621 is not set 969# CONFIG_SENSORS_DS1621 is not set
980# CONFIG_SENSORS_I5K_AMB is not set 970# CONFIG_SENSORS_I5K_AMB is not set
@@ -996,6 +986,7 @@ CONFIG_HWMON=y
996# CONFIG_SENSORS_LM90 is not set 986# CONFIG_SENSORS_LM90 is not set
997# CONFIG_SENSORS_LM92 is not set 987# CONFIG_SENSORS_LM92 is not set
998# CONFIG_SENSORS_LM93 is not set 988# CONFIG_SENSORS_LM93 is not set
989# CONFIG_SENSORS_MAX1111 is not set
999# CONFIG_SENSORS_MAX1619 is not set 990# CONFIG_SENSORS_MAX1619 is not set
1000# CONFIG_SENSORS_MAX6650 is not set 991# CONFIG_SENSORS_MAX6650 is not set
1001# CONFIG_SENSORS_PC87360 is not set 992# CONFIG_SENSORS_PC87360 is not set
@@ -1030,7 +1021,6 @@ CONFIG_WATCHDOG=y
1030# CONFIG_SOFT_WATCHDOG is not set 1021# CONFIG_SOFT_WATCHDOG is not set
1031# CONFIG_ALIM7101_WDT is not set 1022# CONFIG_ALIM7101_WDT is not set
1032# CONFIG_8xxx_WDT is not set 1023# CONFIG_8xxx_WDT is not set
1033# CONFIG_WATCHDOG_RTAS is not set
1034 1024
1035# 1025#
1036# PCI-based Watchdog Cards 1026# PCI-based Watchdog Cards
@@ -1056,6 +1046,17 @@ CONFIG_SSB_POSSIBLE=y
1056# CONFIG_MFD_SM501 is not set 1046# CONFIG_MFD_SM501 is not set
1057# CONFIG_HTC_PASIC3 is not set 1047# CONFIG_HTC_PASIC3 is not set
1058# CONFIG_MFD_TMIO is not set 1048# CONFIG_MFD_TMIO is not set
1049# CONFIG_PMIC_DA903X is not set
1050# CONFIG_MFD_WM8400 is not set
1051# CONFIG_MFD_WM8350_I2C is not set
1052
1053#
1054# Voltage and Current regulators
1055#
1056# CONFIG_REGULATOR is not set
1057# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1058# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1059# CONFIG_REGULATOR_BQ24022 is not set
1059 1060
1060# 1061#
1061# Multimedia devices 1062# Multimedia devices
@@ -1098,12 +1099,18 @@ CONFIG_HID=y
1098# USB Input Devices 1099# USB Input Devices
1099# 1100#
1100# CONFIG_USB_HID is not set 1101# CONFIG_USB_HID is not set
1102# CONFIG_HID_PID is not set
1101 1103
1102# 1104#
1103# USB HID Boot Protocol drivers 1105# USB HID Boot Protocol drivers
1104# 1106#
1105# CONFIG_USB_KBD is not set 1107# CONFIG_USB_KBD is not set
1106# CONFIG_USB_MOUSE is not set 1108# CONFIG_USB_MOUSE is not set
1109
1110#
1111# Special HID drivers
1112#
1113CONFIG_HID_COMPAT=y
1107CONFIG_USB_SUPPORT=y 1114CONFIG_USB_SUPPORT=y
1108CONFIG_USB_ARCH_HAS_HCD=y 1115CONFIG_USB_ARCH_HAS_HCD=y
1109CONFIG_USB_ARCH_HAS_OHCI=y 1116CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1122,6 +1129,8 @@ CONFIG_USB_DEVICE_CLASS=y
1122# CONFIG_USB_OTG_WHITELIST is not set 1129# CONFIG_USB_OTG_WHITELIST is not set
1123# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1130# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1124CONFIG_USB_MON=y 1131CONFIG_USB_MON=y
1132# CONFIG_USB_WUSB is not set
1133# CONFIG_USB_WUSB_CBAF is not set
1125 1134
1126# 1135#
1127# USB Host Controller Drivers 1136# USB Host Controller Drivers
@@ -1145,6 +1154,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1145CONFIG_USB_UHCI_HCD=y 1154CONFIG_USB_UHCI_HCD=y
1146# CONFIG_USB_SL811_HCD is not set 1155# CONFIG_USB_SL811_HCD is not set
1147# CONFIG_USB_R8A66597_HCD is not set 1156# CONFIG_USB_R8A66597_HCD is not set
1157# CONFIG_USB_WHCI_HCD is not set
1158# CONFIG_USB_HWA_HCD is not set
1148# CONFIG_USB_GADGET_MUSB_HDRC is not set 1159# CONFIG_USB_GADGET_MUSB_HDRC is not set
1149 1160
1150# 1161#
@@ -1153,6 +1164,7 @@ CONFIG_USB_UHCI_HCD=y
1153# CONFIG_USB_ACM is not set 1164# CONFIG_USB_ACM is not set
1154# CONFIG_USB_PRINTER is not set 1165# CONFIG_USB_PRINTER is not set
1155# CONFIG_USB_WDM is not set 1166# CONFIG_USB_WDM is not set
1167# CONFIG_USB_TMC is not set
1156 1168
1157# 1169#
1158# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1170# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1174,7 +1186,6 @@ CONFIG_USB_STORAGE=y
1174# CONFIG_USB_STORAGE_ALAUDA is not set 1186# CONFIG_USB_STORAGE_ALAUDA is not set
1175# CONFIG_USB_STORAGE_ONETOUCH is not set 1187# CONFIG_USB_STORAGE_ONETOUCH is not set
1176# CONFIG_USB_STORAGE_KARMA is not set 1188# CONFIG_USB_STORAGE_KARMA is not set
1177# CONFIG_USB_STORAGE_SIERRA is not set
1178# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1189# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1179# CONFIG_USB_LIBUSUAL is not set 1190# CONFIG_USB_LIBUSUAL is not set
1180 1191
@@ -1195,6 +1206,7 @@ CONFIG_USB_STORAGE=y
1195# CONFIG_USB_EMI62 is not set 1206# CONFIG_USB_EMI62 is not set
1196# CONFIG_USB_EMI26 is not set 1207# CONFIG_USB_EMI26 is not set
1197# CONFIG_USB_ADUTUX is not set 1208# CONFIG_USB_ADUTUX is not set
1209# CONFIG_USB_SEVSEG is not set
1198# CONFIG_USB_RIO500 is not set 1210# CONFIG_USB_RIO500 is not set
1199# CONFIG_USB_LEGOTOWER is not set 1211# CONFIG_USB_LEGOTOWER is not set
1200# CONFIG_USB_LCD is not set 1212# CONFIG_USB_LCD is not set
@@ -1212,23 +1224,26 @@ CONFIG_USB_STORAGE=y
1212# CONFIG_USB_IOWARRIOR is not set 1224# CONFIG_USB_IOWARRIOR is not set
1213# CONFIG_USB_TEST is not set 1225# CONFIG_USB_TEST is not set
1214# CONFIG_USB_ISIGHTFW is not set 1226# CONFIG_USB_ISIGHTFW is not set
1227# CONFIG_USB_VST is not set
1215CONFIG_USB_GADGET=y 1228CONFIG_USB_GADGET=y
1216# CONFIG_USB_GADGET_DEBUG is not set 1229# CONFIG_USB_GADGET_DEBUG is not set
1217# CONFIG_USB_GADGET_DEBUG_FILES is not set 1230# CONFIG_USB_GADGET_DEBUG_FILES is not set
1231CONFIG_USB_GADGET_VBUS_DRAW=2
1218CONFIG_USB_GADGET_SELECTED=y 1232CONFIG_USB_GADGET_SELECTED=y
1219# CONFIG_USB_GADGET_AMD5536UDC is not set 1233# CONFIG_USB_GADGET_AT91 is not set
1220# CONFIG_USB_GADGET_ATMEL_USBA is not set 1234# CONFIG_USB_GADGET_ATMEL_USBA is not set
1221# CONFIG_USB_GADGET_FSL_USB2 is not set 1235# CONFIG_USB_GADGET_FSL_USB2 is not set
1222CONFIG_USB_GADGET_NET2280=y
1223CONFIG_USB_NET2280=y
1224# CONFIG_USB_GADGET_PXA25X is not set
1225# CONFIG_USB_GADGET_M66592 is not set
1226# CONFIG_USB_GADGET_PXA27X is not set
1227# CONFIG_USB_GADGET_GOKU is not set
1228# CONFIG_USB_GADGET_LH7A40X is not set 1236# CONFIG_USB_GADGET_LH7A40X is not set
1229# CONFIG_USB_GADGET_OMAP is not set 1237# CONFIG_USB_GADGET_OMAP is not set
1238# CONFIG_USB_GADGET_PXA25X is not set
1239# CONFIG_USB_GADGET_PXA27X is not set
1230# CONFIG_USB_GADGET_S3C2410 is not set 1240# CONFIG_USB_GADGET_S3C2410 is not set
1231# CONFIG_USB_GADGET_AT91 is not set 1241# CONFIG_USB_GADGET_M66592 is not set
1242# CONFIG_USB_GADGET_AMD5536UDC is not set
1243# CONFIG_USB_GADGET_FSL_QE is not set
1244CONFIG_USB_GADGET_NET2280=y
1245CONFIG_USB_NET2280=y
1246# CONFIG_USB_GADGET_GOKU is not set
1232# CONFIG_USB_GADGET_DUMMY_HCD is not set 1247# CONFIG_USB_GADGET_DUMMY_HCD is not set
1233CONFIG_USB_GADGET_DUALSPEED=y 1248CONFIG_USB_GADGET_DUALSPEED=y
1234# CONFIG_USB_ZERO is not set 1249# CONFIG_USB_ZERO is not set
@@ -1240,6 +1255,7 @@ CONFIG_USB_ETH_RNDIS=y
1240# CONFIG_USB_MIDI_GADGET is not set 1255# CONFIG_USB_MIDI_GADGET is not set
1241# CONFIG_USB_G_PRINTER is not set 1256# CONFIG_USB_G_PRINTER is not set
1242# CONFIG_USB_CDC_COMPOSITE is not set 1257# CONFIG_USB_CDC_COMPOSITE is not set
1258# CONFIG_UWB is not set
1243# CONFIG_MMC is not set 1259# CONFIG_MMC is not set
1244# CONFIG_MEMSTICK is not set 1260# CONFIG_MEMSTICK is not set
1245# CONFIG_NEW_LEDS is not set 1261# CONFIG_NEW_LEDS is not set
@@ -1285,17 +1301,21 @@ CONFIG_RTC_DRV_DS1307=y
1285# CONFIG_RTC_DRV_MAX6902 is not set 1301# CONFIG_RTC_DRV_MAX6902 is not set
1286# CONFIG_RTC_DRV_R9701 is not set 1302# CONFIG_RTC_DRV_R9701 is not set
1287# CONFIG_RTC_DRV_RS5C348 is not set 1303# CONFIG_RTC_DRV_RS5C348 is not set
1304# CONFIG_RTC_DRV_DS3234 is not set
1288 1305
1289# 1306#
1290# Platform RTC drivers 1307# Platform RTC drivers
1291# 1308#
1292# CONFIG_RTC_DRV_CMOS is not set 1309# CONFIG_RTC_DRV_CMOS is not set
1310# CONFIG_RTC_DRV_DS1286 is not set
1293# CONFIG_RTC_DRV_DS1511 is not set 1311# CONFIG_RTC_DRV_DS1511 is not set
1294# CONFIG_RTC_DRV_DS1553 is not set 1312# CONFIG_RTC_DRV_DS1553 is not set
1295# CONFIG_RTC_DRV_DS1742 is not set 1313# CONFIG_RTC_DRV_DS1742 is not set
1296# CONFIG_RTC_DRV_STK17TA8 is not set 1314# CONFIG_RTC_DRV_STK17TA8 is not set
1297# CONFIG_RTC_DRV_M48T86 is not set 1315# CONFIG_RTC_DRV_M48T86 is not set
1316# CONFIG_RTC_DRV_M48T35 is not set
1298# CONFIG_RTC_DRV_M48T59 is not set 1317# CONFIG_RTC_DRV_M48T59 is not set
1318# CONFIG_RTC_DRV_BQ4802 is not set
1299# CONFIG_RTC_DRV_V3020 is not set 1319# CONFIG_RTC_DRV_V3020 is not set
1300 1320
1301# 1321#
@@ -1304,6 +1324,7 @@ CONFIG_RTC_DRV_DS1307=y
1304# CONFIG_RTC_DRV_PPC is not set 1324# CONFIG_RTC_DRV_PPC is not set
1305# CONFIG_DMADEVICES is not set 1325# CONFIG_DMADEVICES is not set
1306# CONFIG_UIO is not set 1326# CONFIG_UIO is not set
1327# CONFIG_STAGING is not set
1307 1328
1308# 1329#
1309# File systems 1330# File systems
@@ -1315,12 +1336,13 @@ CONFIG_EXT3_FS=y
1315CONFIG_EXT3_FS_XATTR=y 1336CONFIG_EXT3_FS_XATTR=y
1316# CONFIG_EXT3_FS_POSIX_ACL is not set 1337# CONFIG_EXT3_FS_POSIX_ACL is not set
1317# CONFIG_EXT3_FS_SECURITY is not set 1338# CONFIG_EXT3_FS_SECURITY is not set
1318# CONFIG_EXT4DEV_FS is not set 1339# CONFIG_EXT4_FS is not set
1319CONFIG_JBD=y 1340CONFIG_JBD=y
1320CONFIG_FS_MBCACHE=y 1341CONFIG_FS_MBCACHE=y
1321# CONFIG_REISERFS_FS is not set 1342# CONFIG_REISERFS_FS is not set
1322# CONFIG_JFS_FS is not set 1343# CONFIG_JFS_FS is not set
1323# CONFIG_FS_POSIX_ACL is not set 1344# CONFIG_FS_POSIX_ACL is not set
1345CONFIG_FILE_LOCKING=y
1324# CONFIG_XFS_FS is not set 1346# CONFIG_XFS_FS is not set
1325# CONFIG_OCFS2_FS is not set 1347# CONFIG_OCFS2_FS is not set
1326CONFIG_DNOTIFY=y 1348CONFIG_DNOTIFY=y
@@ -1350,6 +1372,7 @@ CONFIG_INOTIFY_USER=y
1350CONFIG_PROC_FS=y 1372CONFIG_PROC_FS=y
1351CONFIG_PROC_KCORE=y 1373CONFIG_PROC_KCORE=y
1352CONFIG_PROC_SYSCTL=y 1374CONFIG_PROC_SYSCTL=y
1375CONFIG_PROC_PAGE_MONITOR=y
1353CONFIG_SYSFS=y 1376CONFIG_SYSFS=y
1354CONFIG_TMPFS=y 1377CONFIG_TMPFS=y
1355# CONFIG_TMPFS_POSIX_ACL is not set 1378# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1398,6 +1421,7 @@ CONFIG_LOCKD_V4=y
1398CONFIG_NFS_COMMON=y 1421CONFIG_NFS_COMMON=y
1399CONFIG_SUNRPC=y 1422CONFIG_SUNRPC=y
1400CONFIG_SUNRPC_GSS=y 1423CONFIG_SUNRPC_GSS=y
1424# CONFIG_SUNRPC_REGISTER_V4 is not set
1401CONFIG_RPCSEC_GSS_KRB5=y 1425CONFIG_RPCSEC_GSS_KRB5=y
1402# CONFIG_RPCSEC_GSS_SPKM3 is not set 1426# CONFIG_RPCSEC_GSS_SPKM3 is not set
1403# CONFIG_SMB_FS is not set 1427# CONFIG_SMB_FS is not set
@@ -1434,7 +1458,6 @@ CONFIG_MSDOS_PARTITION=y
1434# Library routines 1458# Library routines
1435# 1459#
1436CONFIG_BITREVERSE=y 1460CONFIG_BITREVERSE=y
1437# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1438# CONFIG_CRC_CCITT is not set 1461# CONFIG_CRC_CCITT is not set
1439# CONFIG_CRC16 is not set 1462# CONFIG_CRC16 is not set
1440# CONFIG_CRC_T10DIF is not set 1463# CONFIG_CRC_T10DIF is not set
@@ -1488,15 +1511,23 @@ CONFIG_SCHED_DEBUG=y
1488# CONFIG_DEBUG_SG is not set 1511# CONFIG_DEBUG_SG is not set
1489# CONFIG_BOOT_PRINTK_DELAY is not set 1512# CONFIG_BOOT_PRINTK_DELAY is not set
1490# CONFIG_RCU_TORTURE_TEST is not set 1513# CONFIG_RCU_TORTURE_TEST is not set
1514# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1491# CONFIG_BACKTRACE_SELF_TEST is not set 1515# CONFIG_BACKTRACE_SELF_TEST is not set
1516# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1492# CONFIG_FAULT_INJECTION is not set 1517# CONFIG_FAULT_INJECTION is not set
1493# CONFIG_LATENCYTOP is not set 1518# CONFIG_LATENCYTOP is not set
1494CONFIG_SYSCTL_SYSCALL_CHECK=y 1519CONFIG_SYSCTL_SYSCALL_CHECK=y
1495CONFIG_HAVE_FTRACE=y 1520CONFIG_HAVE_FUNCTION_TRACER=y
1496CONFIG_HAVE_DYNAMIC_FTRACE=y 1521
1497# CONFIG_FTRACE is not set 1522#
1523# Tracers
1524#
1525# CONFIG_FUNCTION_TRACER is not set
1498# CONFIG_SCHED_TRACER is not set 1526# CONFIG_SCHED_TRACER is not set
1499# CONFIG_CONTEXT_SWITCH_TRACER is not set 1527# CONFIG_CONTEXT_SWITCH_TRACER is not set
1528# CONFIG_BOOT_TRACER is not set
1529# CONFIG_STACK_TRACER is not set
1530# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1500# CONFIG_SAMPLES is not set 1531# CONFIG_SAMPLES is not set
1501CONFIG_HAVE_ARCH_KGDB=y 1532CONFIG_HAVE_ARCH_KGDB=y
1502# CONFIG_KGDB is not set 1533# CONFIG_KGDB is not set
@@ -1505,6 +1536,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1505# CONFIG_DEBUG_PAGEALLOC is not set 1536# CONFIG_DEBUG_PAGEALLOC is not set
1506# CONFIG_CODE_PATCHING_SELFTEST is not set 1537# CONFIG_CODE_PATCHING_SELFTEST is not set
1507# CONFIG_FTR_FIXUP_SELFTEST is not set 1538# CONFIG_FTR_FIXUP_SELFTEST is not set
1539# CONFIG_MSI_BITMAP_SELFTEST is not set
1508# CONFIG_XMON is not set 1540# CONFIG_XMON is not set
1509# CONFIG_IRQSTACKS is not set 1541# CONFIG_IRQSTACKS is not set
1510# CONFIG_BDI_SWITCH is not set 1542# CONFIG_BDI_SWITCH is not set
@@ -1516,14 +1548,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1516# 1548#
1517# CONFIG_KEYS is not set 1549# CONFIG_KEYS is not set
1518# CONFIG_SECURITY is not set 1550# CONFIG_SECURITY is not set
1551# CONFIG_SECURITYFS is not set
1519# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1552# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1520CONFIG_CRYPTO=y 1553CONFIG_CRYPTO=y
1521 1554
1522# 1555#
1523# Crypto core or helper 1556# Crypto core or helper
1524# 1557#
1558# CONFIG_CRYPTO_FIPS is not set
1525CONFIG_CRYPTO_ALGAPI=y 1559CONFIG_CRYPTO_ALGAPI=y
1560CONFIG_CRYPTO_AEAD=y
1526CONFIG_CRYPTO_BLKCIPHER=y 1561CONFIG_CRYPTO_BLKCIPHER=y
1562CONFIG_CRYPTO_HASH=y
1563CONFIG_CRYPTO_RNG=y
1527CONFIG_CRYPTO_MANAGER=y 1564CONFIG_CRYPTO_MANAGER=y
1528# CONFIG_CRYPTO_GF128MUL is not set 1565# CONFIG_CRYPTO_GF128MUL is not set
1529# CONFIG_CRYPTO_NULL is not set 1566# CONFIG_CRYPTO_NULL is not set
@@ -1596,6 +1633,11 @@ CONFIG_CRYPTO_DES=y
1596# 1633#
1597# CONFIG_CRYPTO_DEFLATE is not set 1634# CONFIG_CRYPTO_DEFLATE is not set
1598# CONFIG_CRYPTO_LZO is not set 1635# CONFIG_CRYPTO_LZO is not set
1636
1637#
1638# Random Number Generation
1639#
1640# CONFIG_CRYPTO_ANSI_CPRNG is not set
1599CONFIG_CRYPTO_HW=y 1641CONFIG_CRYPTO_HW=y
1600# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1642# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1601# CONFIG_CRYPTO_DEV_TALITOS is not set 1643# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index ad825bcddd1f..9cb8c8b956e4 100644
--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:18 2008 4# Sat Nov 8 12:39:53 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
114CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -121,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -157,6 +152,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
160 156
161# 157#
162# Platform support 158# Platform support
@@ -164,10 +160,10 @@ CONFIG_CLASSIC_RCU=y
164CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_PMAC is not set
168# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
166# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set 169# CONFIG_PPC_82xx is not set
@@ -187,24 +183,20 @@ CONFIG_MPC832x_MDS=y
187CONFIG_PPC_MPC832x=y 183CONFIG_PPC_MPC832x=y
188# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
192CONFIG_IPIC=y 186CONFIG_IPIC=y
193CONFIG_MPIC=y 187# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
195CONFIG_PPC_I8259=y 189# CONFIG_PPC_I8259 is not set
196CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
199# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
200CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
201# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
202# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
203# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
204# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set 197# CONFIG_TAU is not set
207CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199# CONFIG_QE_GPIO is not set
208# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
209 201
210# 202#
@@ -225,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
225# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
226# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
227CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
228# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
229CONFIG_MATH_EMULATION=y 223CONFIG_MATH_EMULATION=y
230# CONFIG_IOMMU_HELPER is not set 224# CONFIG_IOMMU_HELPER is not set
@@ -240,15 +234,15 @@ CONFIG_FLATMEM_MANUAL=y
240# CONFIG_SPARSEMEM_MANUAL is not set 234# CONFIG_SPARSEMEM_MANUAL is not set
241CONFIG_FLATMEM=y 235CONFIG_FLATMEM=y
242CONFIG_FLAT_NODE_MEM_MAP=y 236CONFIG_FLAT_NODE_MEM_MAP=y
243# CONFIG_SPARSEMEM_STATIC is not set
244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
245CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
246CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
247CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
248# CONFIG_RESOURCES_64BIT is not set 240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set
249CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
250CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
251CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y
252CONFIG_FORCE_MAX_ZONEORDER=11 246CONFIG_FORCE_MAX_ZONEORDER=11
253CONFIG_PROC_DEVICETREE=y 247CONFIG_PROC_DEVICETREE=y
254# CONFIG_CMDLINE_BOOL is not set 248# CONFIG_CMDLINE_BOOL is not set
@@ -260,7 +254,6 @@ CONFIG_ISA_DMA_API=y
260# 254#
261# Bus options 255# Bus options
262# 256#
263# CONFIG_ISA is not set
264CONFIG_ZONE_DMA=y 257CONFIG_ZONE_DMA=y
265CONFIG_GENERIC_ISA_DMA=y 258CONFIG_GENERIC_ISA_DMA=y
266CONFIG_PPC_INDIRECT_PCI=y 259CONFIG_PPC_INDIRECT_PCI=y
@@ -273,7 +266,7 @@ CONFIG_PCI_SYSCALL=y
273# CONFIG_PCIEPORTBUS is not set 266# CONFIG_PCIEPORTBUS is not set
274CONFIG_ARCH_SUPPORTS_MSI=y 267CONFIG_ARCH_SUPPORTS_MSI=y
275# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
276CONFIG_PCI_LEGACY=y 269# CONFIG_PCI_LEGACY is not set
277# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
278# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
279# CONFIG_HAS_RAPIDIO is not set 272# CONFIG_HAS_RAPIDIO is not set
@@ -341,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
341# CONFIG_TIPC is not set 334# CONFIG_TIPC is not set
342# CONFIG_ATM is not set 335# CONFIG_ATM is not set
343# CONFIG_BRIDGE is not set 336# CONFIG_BRIDGE is not set
337# CONFIG_NET_DSA is not set
344# CONFIG_VLAN_8021Q is not set 338# CONFIG_VLAN_8021Q is not set
345# CONFIG_DECNET is not set 339# CONFIG_DECNET is not set
346# CONFIG_LLC2 is not set 340# CONFIG_LLC2 is not set
@@ -361,11 +355,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
362# CONFIG_BT is not set 356# CONFIG_BT is not set
363# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
364 358# CONFIG_PHONET is not set
365# 359CONFIG_WIRELESS=y
366# Wireless
367#
368# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y
369# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
370# CONFIG_MAC80211 is not set 363# CONFIG_MAC80211 is not set
371# CONFIG_IEEE80211 is not set 364# CONFIG_IEEE80211 is not set
@@ -391,7 +384,6 @@ CONFIG_OF_I2C=y
391# CONFIG_PARPORT is not set 384# CONFIG_PARPORT is not set
392CONFIG_BLK_DEV=y 385CONFIG_BLK_DEV=y
393# CONFIG_BLK_DEV_FD is not set 386# CONFIG_BLK_DEV_FD is not set
394# CONFIG_MAC_FLOPPY is not set
395# CONFIG_BLK_CPQ_DA is not set 387# CONFIG_BLK_CPQ_DA is not set
396# CONFIG_BLK_CPQ_CISS_DA is not set 388# CONFIG_BLK_CPQ_CISS_DA is not set
397# CONFIG_BLK_DEV_DAC960 is not set 389# CONFIG_BLK_DEV_DAC960 is not set
@@ -491,8 +483,6 @@ CONFIG_SCSI_LOWLEVEL=y
491# CONFIG_SCSI_DC390T is not set 483# CONFIG_SCSI_DC390T is not set
492# CONFIG_SCSI_NSP32 is not set 484# CONFIG_SCSI_NSP32 is not set
493# CONFIG_SCSI_DEBUG is not set 485# CONFIG_SCSI_DEBUG is not set
494# CONFIG_SCSI_MESH is not set
495# CONFIG_SCSI_MAC53C94 is not set
496# CONFIG_SCSI_SRP is not set 486# CONFIG_SCSI_SRP is not set
497# CONFIG_SCSI_DH is not set 487# CONFIG_SCSI_DH is not set
498# CONFIG_ATA is not set 488# CONFIG_ATA is not set
@@ -537,8 +527,6 @@ CONFIG_DAVICOM_PHY=y
537# CONFIG_MDIO_BITBANG is not set 527# CONFIG_MDIO_BITBANG is not set
538CONFIG_NET_ETHERNET=y 528CONFIG_NET_ETHERNET=y
539CONFIG_MII=y 529CONFIG_MII=y
540# CONFIG_MACE is not set
541# CONFIG_BMAC is not set
542# CONFIG_HAPPYMEAL is not set 530# CONFIG_HAPPYMEAL is not set
543# CONFIG_SUNGEM is not set 531# CONFIG_SUNGEM is not set
544# CONFIG_CASSINI is not set 532# CONFIG_CASSINI is not set
@@ -549,8 +537,12 @@ CONFIG_MII=y
549# CONFIG_IBM_NEW_EMAC_RGMII is not set 537# CONFIG_IBM_NEW_EMAC_RGMII is not set
550# CONFIG_IBM_NEW_EMAC_TAH is not set 538# CONFIG_IBM_NEW_EMAC_TAH is not set
551# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 539# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
540# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
541# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
542# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
552# CONFIG_NET_PCI is not set 543# CONFIG_NET_PCI is not set
553# CONFIG_B44 is not set 544# CONFIG_B44 is not set
545# CONFIG_ATL2 is not set
554CONFIG_NETDEV_1000=y 546CONFIG_NETDEV_1000=y
555# CONFIG_ACENIC is not set 547# CONFIG_ACENIC is not set
556# CONFIG_DL2K is not set 548# CONFIG_DL2K is not set
@@ -577,18 +569,22 @@ CONFIG_UCC_GETH=y
577# CONFIG_QLA3XXX is not set 569# CONFIG_QLA3XXX is not set
578# CONFIG_ATL1 is not set 570# CONFIG_ATL1 is not set
579# CONFIG_ATL1E is not set 571# CONFIG_ATL1E is not set
572# CONFIG_JME is not set
580CONFIG_NETDEV_10000=y 573CONFIG_NETDEV_10000=y
581# CONFIG_CHELSIO_T1 is not set 574# CONFIG_CHELSIO_T1 is not set
582# CONFIG_CHELSIO_T3 is not set 575# CONFIG_CHELSIO_T3 is not set
576# CONFIG_ENIC is not set
583# CONFIG_IXGBE is not set 577# CONFIG_IXGBE is not set
584# CONFIG_IXGB is not set 578# CONFIG_IXGB is not set
585# CONFIG_S2IO is not set 579# CONFIG_S2IO is not set
586# CONFIG_MYRI10GE is not set 580# CONFIG_MYRI10GE is not set
587# CONFIG_NETXEN_NIC is not set 581# CONFIG_NETXEN_NIC is not set
588# CONFIG_NIU is not set 582# CONFIG_NIU is not set
583# CONFIG_MLX4_EN is not set
589# CONFIG_MLX4_CORE is not set 584# CONFIG_MLX4_CORE is not set
590# CONFIG_TEHUTI is not set 585# CONFIG_TEHUTI is not set
591# CONFIG_BNX2X is not set 586# CONFIG_BNX2X is not set
587# CONFIG_QLGE is not set
592# CONFIG_SFC is not set 588# CONFIG_SFC is not set
593# CONFIG_TR is not set 589# CONFIG_TR is not set
594 590
@@ -665,15 +661,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
665# CONFIG_SERIAL_UARTLITE is not set 661# CONFIG_SERIAL_UARTLITE is not set
666CONFIG_SERIAL_CORE=y 662CONFIG_SERIAL_CORE=y
667CONFIG_SERIAL_CORE_CONSOLE=y 663CONFIG_SERIAL_CORE_CONSOLE=y
668# CONFIG_SERIAL_PMACZILOG is not set
669# CONFIG_SERIAL_JSM is not set 664# CONFIG_SERIAL_JSM is not set
670# CONFIG_SERIAL_OF_PLATFORM is not set 665# CONFIG_SERIAL_OF_PLATFORM is not set
671# CONFIG_SERIAL_QE is not set 666# CONFIG_SERIAL_QE is not set
672CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
673CONFIG_LEGACY_PTYS=y 668CONFIG_LEGACY_PTYS=y
674CONFIG_LEGACY_PTY_COUNT=256 669CONFIG_LEGACY_PTY_COUNT=256
675# CONFIG_BRIQ_PANEL is not set
676# CONFIG_HVC_RTAS is not set
677# CONFIG_IPMI_HANDLER is not set 670# CONFIG_IPMI_HANDLER is not set
678CONFIG_HW_RANDOM=y 671CONFIG_HW_RANDOM=y
679# CONFIG_NVRAM is not set 672# CONFIG_NVRAM is not set
@@ -710,12 +703,6 @@ CONFIG_I2C_HELPER_AUTO=y
710# CONFIG_I2C_VIAPRO is not set 703# CONFIG_I2C_VIAPRO is not set
711 704
712# 705#
713# Mac SMBus host controller drivers
714#
715# CONFIG_I2C_HYDRA is not set
716CONFIG_I2C_POWERMAC=y
717
718#
719# I2C system bus drivers (mostly embedded / system-on-chip) 706# I2C system bus drivers (mostly embedded / system-on-chip)
720# 707#
721CONFIG_I2C_MPC=y 708CONFIG_I2C_MPC=y
@@ -751,6 +738,7 @@ CONFIG_I2C_MPC=y
751# CONFIG_SENSORS_PCF8591 is not set 738# CONFIG_SENSORS_PCF8591 is not set
752# CONFIG_SENSORS_MAX6875 is not set 739# CONFIG_SENSORS_MAX6875 is not set
753# CONFIG_SENSORS_TSL2550 is not set 740# CONFIG_SENSORS_TSL2550 is not set
741# CONFIG_MCU_MPC8349EMITX is not set
754# CONFIG_I2C_DEBUG_CORE is not set 742# CONFIG_I2C_DEBUG_CORE is not set
755# CONFIG_I2C_DEBUG_ALGO is not set 743# CONFIG_I2C_DEBUG_ALGO is not set
756# CONFIG_I2C_DEBUG_BUS is not set 744# CONFIG_I2C_DEBUG_BUS is not set
@@ -772,7 +760,6 @@ CONFIG_HWMON=y
772# CONFIG_SENSORS_ADM9240 is not set 760# CONFIG_SENSORS_ADM9240 is not set
773# CONFIG_SENSORS_ADT7470 is not set 761# CONFIG_SENSORS_ADT7470 is not set
774# CONFIG_SENSORS_ADT7473 is not set 762# CONFIG_SENSORS_ADT7473 is not set
775# CONFIG_SENSORS_AMS is not set
776# CONFIG_SENSORS_ATXP1 is not set 763# CONFIG_SENSORS_ATXP1 is not set
777# CONFIG_SENSORS_DS1621 is not set 764# CONFIG_SENSORS_DS1621 is not set
778# CONFIG_SENSORS_I5K_AMB is not set 765# CONFIG_SENSORS_I5K_AMB is not set
@@ -827,7 +814,6 @@ CONFIG_WATCHDOG=y
827# CONFIG_SOFT_WATCHDOG is not set 814# CONFIG_SOFT_WATCHDOG is not set
828# CONFIG_ALIM7101_WDT is not set 815# CONFIG_ALIM7101_WDT is not set
829# CONFIG_8xxx_WDT is not set 816# CONFIG_8xxx_WDT is not set
830# CONFIG_WATCHDOG_RTAS is not set
831 817
832# 818#
833# PCI-based Watchdog Cards 819# PCI-based Watchdog Cards
@@ -848,6 +834,17 @@ CONFIG_SSB_POSSIBLE=y
848# CONFIG_MFD_SM501 is not set 834# CONFIG_MFD_SM501 is not set
849# CONFIG_HTC_PASIC3 is not set 835# CONFIG_HTC_PASIC3 is not set
850# CONFIG_MFD_TMIO is not set 836# CONFIG_MFD_TMIO is not set
837# CONFIG_PMIC_DA903X is not set
838# CONFIG_MFD_WM8400 is not set
839# CONFIG_MFD_WM8350_I2C is not set
840
841#
842# Voltage and Current regulators
843#
844# CONFIG_REGULATOR is not set
845# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
846# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
847# CONFIG_REGULATOR_BQ24022 is not set
851 848
852# 849#
853# Multimedia devices 850# Multimedia devices
@@ -884,6 +881,12 @@ CONFIG_HID_SUPPORT=y
884CONFIG_HID=y 881CONFIG_HID=y
885# CONFIG_HID_DEBUG is not set 882# CONFIG_HID_DEBUG is not set
886# CONFIG_HIDRAW is not set 883# CONFIG_HIDRAW is not set
884# CONFIG_HID_PID is not set
885
886#
887# Special HID drivers
888#
889CONFIG_HID_COMPAT=y
887CONFIG_USB_SUPPORT=y 890CONFIG_USB_SUPPORT=y
888CONFIG_USB_ARCH_HAS_HCD=y 891CONFIG_USB_ARCH_HAS_HCD=y
889CONFIG_USB_ARCH_HAS_OHCI=y 892CONFIG_USB_ARCH_HAS_OHCI=y
@@ -900,6 +903,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
900# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 903# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
901# 904#
902# CONFIG_USB_GADGET is not set 905# CONFIG_USB_GADGET is not set
906# CONFIG_UWB is not set
903# CONFIG_MMC is not set 907# CONFIG_MMC is not set
904# CONFIG_MEMSTICK is not set 908# CONFIG_MEMSTICK is not set
905# CONFIG_NEW_LEDS is not set 909# CONFIG_NEW_LEDS is not set
@@ -945,12 +949,15 @@ CONFIG_RTC_DRV_DS1374=y
945# Platform RTC drivers 949# Platform RTC drivers
946# 950#
947# CONFIG_RTC_DRV_CMOS is not set 951# CONFIG_RTC_DRV_CMOS is not set
952# CONFIG_RTC_DRV_DS1286 is not set
948# CONFIG_RTC_DRV_DS1511 is not set 953# CONFIG_RTC_DRV_DS1511 is not set
949# CONFIG_RTC_DRV_DS1553 is not set 954# CONFIG_RTC_DRV_DS1553 is not set
950# CONFIG_RTC_DRV_DS1742 is not set 955# CONFIG_RTC_DRV_DS1742 is not set
951# CONFIG_RTC_DRV_STK17TA8 is not set 956# CONFIG_RTC_DRV_STK17TA8 is not set
952# CONFIG_RTC_DRV_M48T86 is not set 957# CONFIG_RTC_DRV_M48T86 is not set
958# CONFIG_RTC_DRV_M48T35 is not set
953# CONFIG_RTC_DRV_M48T59 is not set 959# CONFIG_RTC_DRV_M48T59 is not set
960# CONFIG_RTC_DRV_BQ4802 is not set
954# CONFIG_RTC_DRV_V3020 is not set 961# CONFIG_RTC_DRV_V3020 is not set
955 962
956# 963#
@@ -959,6 +966,7 @@ CONFIG_RTC_DRV_DS1374=y
959# CONFIG_RTC_DRV_PPC is not set 966# CONFIG_RTC_DRV_PPC is not set
960# CONFIG_DMADEVICES is not set 967# CONFIG_DMADEVICES is not set
961# CONFIG_UIO is not set 968# CONFIG_UIO is not set
969# CONFIG_STAGING is not set
962 970
963# 971#
964# File systems 972# File systems
@@ -970,12 +978,13 @@ CONFIG_EXT3_FS=y
970CONFIG_EXT3_FS_XATTR=y 978CONFIG_EXT3_FS_XATTR=y
971# CONFIG_EXT3_FS_POSIX_ACL is not set 979# CONFIG_EXT3_FS_POSIX_ACL is not set
972# CONFIG_EXT3_FS_SECURITY is not set 980# CONFIG_EXT3_FS_SECURITY is not set
973# CONFIG_EXT4DEV_FS is not set 981# CONFIG_EXT4_FS is not set
974CONFIG_JBD=y 982CONFIG_JBD=y
975CONFIG_FS_MBCACHE=y 983CONFIG_FS_MBCACHE=y
976# CONFIG_REISERFS_FS is not set 984# CONFIG_REISERFS_FS is not set
977# CONFIG_JFS_FS is not set 985# CONFIG_JFS_FS is not set
978# CONFIG_FS_POSIX_ACL is not set 986# CONFIG_FS_POSIX_ACL is not set
987CONFIG_FILE_LOCKING=y
979# CONFIG_XFS_FS is not set 988# CONFIG_XFS_FS is not set
980# CONFIG_OCFS2_FS is not set 989# CONFIG_OCFS2_FS is not set
981CONFIG_DNOTIFY=y 990CONFIG_DNOTIFY=y
@@ -1005,6 +1014,7 @@ CONFIG_INOTIFY_USER=y
1005CONFIG_PROC_FS=y 1014CONFIG_PROC_FS=y
1006CONFIG_PROC_KCORE=y 1015CONFIG_PROC_KCORE=y
1007CONFIG_PROC_SYSCTL=y 1016CONFIG_PROC_SYSCTL=y
1017CONFIG_PROC_PAGE_MONITOR=y
1008CONFIG_SYSFS=y 1018CONFIG_SYSFS=y
1009CONFIG_TMPFS=y 1019CONFIG_TMPFS=y
1010# CONFIG_TMPFS_POSIX_ACL is not set 1020# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1042,6 +1052,7 @@ CONFIG_LOCKD_V4=y
1042CONFIG_NFS_COMMON=y 1052CONFIG_NFS_COMMON=y
1043CONFIG_SUNRPC=y 1053CONFIG_SUNRPC=y
1044CONFIG_SUNRPC_GSS=y 1054CONFIG_SUNRPC_GSS=y
1055# CONFIG_SUNRPC_REGISTER_V4 is not set
1045CONFIG_RPCSEC_GSS_KRB5=y 1056CONFIG_RPCSEC_GSS_KRB5=y
1046# CONFIG_RPCSEC_GSS_SPKM3 is not set 1057# CONFIG_RPCSEC_GSS_SPKM3 is not set
1047# CONFIG_SMB_FS is not set 1058# CONFIG_SMB_FS is not set
@@ -1071,13 +1082,11 @@ CONFIG_PARTITION_ADVANCED=y
1071# CONFIG_DLM is not set 1082# CONFIG_DLM is not set
1072CONFIG_UCC_FAST=y 1083CONFIG_UCC_FAST=y
1073CONFIG_UCC=y 1084CONFIG_UCC=y
1074# CONFIG_QE_GPIO is not set
1075 1085
1076# 1086#
1077# Library routines 1087# Library routines
1078# 1088#
1079CONFIG_BITREVERSE=y 1089CONFIG_BITREVERSE=y
1080# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1081# CONFIG_CRC_CCITT is not set 1090# CONFIG_CRC_CCITT is not set
1082# CONFIG_CRC16 is not set 1091# CONFIG_CRC16 is not set
1083# CONFIG_CRC_T10DIF is not set 1092# CONFIG_CRC_T10DIF is not set
@@ -1107,13 +1116,15 @@ CONFIG_FRAME_WARN=1024
1107# CONFIG_SLUB_STATS is not set 1116# CONFIG_SLUB_STATS is not set
1108# CONFIG_DEBUG_BUGVERBOSE is not set 1117# CONFIG_DEBUG_BUGVERBOSE is not set
1109# CONFIG_DEBUG_MEMORY_INIT is not set 1118# CONFIG_DEBUG_MEMORY_INIT is not set
1119# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1110# CONFIG_LATENCYTOP is not set 1120# CONFIG_LATENCYTOP is not set
1111CONFIG_SYSCTL_SYSCALL_CHECK=y 1121CONFIG_SYSCTL_SYSCALL_CHECK=y
1112CONFIG_HAVE_FTRACE=y 1122CONFIG_HAVE_FUNCTION_TRACER=y
1113CONFIG_HAVE_DYNAMIC_FTRACE=y 1123
1114# CONFIG_FTRACE is not set 1124#
1115# CONFIG_SCHED_TRACER is not set 1125# Tracers
1116# CONFIG_CONTEXT_SWITCH_TRACER is not set 1126#
1127# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1117# CONFIG_SAMPLES is not set 1128# CONFIG_SAMPLES is not set
1118CONFIG_HAVE_ARCH_KGDB=y 1129CONFIG_HAVE_ARCH_KGDB=y
1119# CONFIG_IRQSTACKS is not set 1130# CONFIG_IRQSTACKS is not set
@@ -1125,14 +1136,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1125# 1136#
1126# CONFIG_KEYS is not set 1137# CONFIG_KEYS is not set
1127# CONFIG_SECURITY is not set 1138# CONFIG_SECURITY is not set
1139# CONFIG_SECURITYFS is not set
1128# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1140# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1129CONFIG_CRYPTO=y 1141CONFIG_CRYPTO=y
1130 1142
1131# 1143#
1132# Crypto core or helper 1144# Crypto core or helper
1133# 1145#
1146# CONFIG_CRYPTO_FIPS is not set
1134CONFIG_CRYPTO_ALGAPI=y 1147CONFIG_CRYPTO_ALGAPI=y
1148CONFIG_CRYPTO_AEAD=y
1135CONFIG_CRYPTO_BLKCIPHER=y 1149CONFIG_CRYPTO_BLKCIPHER=y
1150CONFIG_CRYPTO_HASH=y
1151CONFIG_CRYPTO_RNG=y
1136CONFIG_CRYPTO_MANAGER=y 1152CONFIG_CRYPTO_MANAGER=y
1137# CONFIG_CRYPTO_GF128MUL is not set 1153# CONFIG_CRYPTO_GF128MUL is not set
1138# CONFIG_CRYPTO_NULL is not set 1154# CONFIG_CRYPTO_NULL is not set
@@ -1205,6 +1221,11 @@ CONFIG_CRYPTO_DES=y
1205# 1221#
1206# CONFIG_CRYPTO_DEFLATE is not set 1222# CONFIG_CRYPTO_DEFLATE is not set
1207# CONFIG_CRYPTO_LZO is not set 1223# CONFIG_CRYPTO_LZO is not set
1224
1225#
1226# Random Number Generation
1227#
1228# CONFIG_CRYPTO_ANSI_CPRNG is not set
1208CONFIG_CRYPTO_HW=y 1229CONFIG_CRYPTO_HW=y
1209# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1230# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1210# CONFIG_CRYPTO_DEV_TALITOS is not set 1231# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index 38267501f44d..9cc976f010c9 100644
--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:19 2008 4# Sat Nov 8 12:39:54 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
114CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -121,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -157,6 +152,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
160 156
161# 157#
162# Platform support 158# Platform support
@@ -164,10 +160,10 @@ CONFIG_CLASSIC_RCU=y
164CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_PMAC is not set
168# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
166# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set 169# CONFIG_PPC_82xx is not set
@@ -187,24 +183,20 @@ CONFIG_MPC832x_RDB=y
187CONFIG_PPC_MPC832x=y 183CONFIG_PPC_MPC832x=y
188# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
192CONFIG_IPIC=y 186CONFIG_IPIC=y
193CONFIG_MPIC=y 187# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
195CONFIG_PPC_I8259=y 189# CONFIG_PPC_I8259 is not set
196CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
199# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
200CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
201# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
202# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
203# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
204# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set 197# CONFIG_TAU is not set
207CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199# CONFIG_QE_GPIO is not set
208# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
209 201
210# 202#
@@ -225,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
225# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
226# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
227CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
228# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
229CONFIG_MATH_EMULATION=y 223CONFIG_MATH_EMULATION=y
230# CONFIG_IOMMU_HELPER is not set 224# CONFIG_IOMMU_HELPER is not set
@@ -240,15 +234,15 @@ CONFIG_FLATMEM_MANUAL=y
240# CONFIG_SPARSEMEM_MANUAL is not set 234# CONFIG_SPARSEMEM_MANUAL is not set
241CONFIG_FLATMEM=y 235CONFIG_FLATMEM=y
242CONFIG_FLAT_NODE_MEM_MAP=y 236CONFIG_FLAT_NODE_MEM_MAP=y
243# CONFIG_SPARSEMEM_STATIC is not set
244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
245CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
246CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
247CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
248# CONFIG_RESOURCES_64BIT is not set 240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set
249CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
250CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
251CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y
252CONFIG_FORCE_MAX_ZONEORDER=11 246CONFIG_FORCE_MAX_ZONEORDER=11
253CONFIG_PROC_DEVICETREE=y 247CONFIG_PROC_DEVICETREE=y
254# CONFIG_CMDLINE_BOOL is not set 248# CONFIG_CMDLINE_BOOL is not set
@@ -260,7 +254,6 @@ CONFIG_ISA_DMA_API=y
260# 254#
261# Bus options 255# Bus options
262# 256#
263# CONFIG_ISA is not set
264CONFIG_ZONE_DMA=y 257CONFIG_ZONE_DMA=y
265CONFIG_GENERIC_ISA_DMA=y 258CONFIG_GENERIC_ISA_DMA=y
266CONFIG_PPC_INDIRECT_PCI=y 259CONFIG_PPC_INDIRECT_PCI=y
@@ -273,7 +266,7 @@ CONFIG_PCI_SYSCALL=y
273# CONFIG_PCIEPORTBUS is not set 266# CONFIG_PCIEPORTBUS is not set
274CONFIG_ARCH_SUPPORTS_MSI=y 267CONFIG_ARCH_SUPPORTS_MSI=y
275# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
276CONFIG_PCI_LEGACY=y 269# CONFIG_PCI_LEGACY is not set
277# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
278# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
279# CONFIG_HAS_RAPIDIO is not set 272# CONFIG_HAS_RAPIDIO is not set
@@ -341,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
341# CONFIG_TIPC is not set 334# CONFIG_TIPC is not set
342# CONFIG_ATM is not set 335# CONFIG_ATM is not set
343# CONFIG_BRIDGE is not set 336# CONFIG_BRIDGE is not set
337# CONFIG_NET_DSA is not set
344# CONFIG_VLAN_8021Q is not set 338# CONFIG_VLAN_8021Q is not set
345# CONFIG_DECNET is not set 339# CONFIG_DECNET is not set
346# CONFIG_LLC2 is not set 340# CONFIG_LLC2 is not set
@@ -361,11 +355,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
362# CONFIG_BT is not set 356# CONFIG_BT is not set
363# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
364 358# CONFIG_PHONET is not set
365# 359CONFIG_WIRELESS=y
366# Wireless
367#
368# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y
369# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
370# CONFIG_MAC80211 is not set 363# CONFIG_MAC80211 is not set
371# CONFIG_IEEE80211 is not set 364# CONFIG_IEEE80211 is not set
@@ -392,7 +385,6 @@ CONFIG_OF_SPI=y
392# CONFIG_PARPORT is not set 385# CONFIG_PARPORT is not set
393CONFIG_BLK_DEV=y 386CONFIG_BLK_DEV=y
394# CONFIG_BLK_DEV_FD is not set 387# CONFIG_BLK_DEV_FD is not set
395# CONFIG_MAC_FLOPPY is not set
396# CONFIG_BLK_CPQ_DA is not set 388# CONFIG_BLK_CPQ_DA is not set
397# CONFIG_BLK_CPQ_CISS_DA is not set 389# CONFIG_BLK_CPQ_CISS_DA is not set
398# CONFIG_BLK_DEV_DAC960 is not set 390# CONFIG_BLK_DEV_DAC960 is not set
@@ -493,8 +485,6 @@ CONFIG_SCSI_LOWLEVEL=y
493# CONFIG_SCSI_DC390T is not set 485# CONFIG_SCSI_DC390T is not set
494# CONFIG_SCSI_NSP32 is not set 486# CONFIG_SCSI_NSP32 is not set
495# CONFIG_SCSI_DEBUG is not set 487# CONFIG_SCSI_DEBUG is not set
496# CONFIG_SCSI_MESH is not set
497# CONFIG_SCSI_MAC53C94 is not set
498# CONFIG_SCSI_SRP is not set 488# CONFIG_SCSI_SRP is not set
499# CONFIG_SCSI_DH is not set 489# CONFIG_SCSI_DH is not set
500# CONFIG_ATA is not set 490# CONFIG_ATA is not set
@@ -539,8 +529,6 @@ CONFIG_ICPLUS_PHY=y
539# CONFIG_MDIO_BITBANG is not set 529# CONFIG_MDIO_BITBANG is not set
540CONFIG_NET_ETHERNET=y 530CONFIG_NET_ETHERNET=y
541CONFIG_MII=y 531CONFIG_MII=y
542# CONFIG_MACE is not set
543# CONFIG_BMAC is not set
544# CONFIG_HAPPYMEAL is not set 532# CONFIG_HAPPYMEAL is not set
545# CONFIG_SUNGEM is not set 533# CONFIG_SUNGEM is not set
546# CONFIG_CASSINI is not set 534# CONFIG_CASSINI is not set
@@ -552,13 +540,16 @@ CONFIG_MII=y
552# CONFIG_IBM_NEW_EMAC_RGMII is not set 540# CONFIG_IBM_NEW_EMAC_RGMII is not set
553# CONFIG_IBM_NEW_EMAC_TAH is not set 541# CONFIG_IBM_NEW_EMAC_TAH is not set
554# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 542# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
543# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
544# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
545# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
555# CONFIG_NET_PCI is not set 546# CONFIG_NET_PCI is not set
556# CONFIG_B44 is not set 547# CONFIG_B44 is not set
548# CONFIG_ATL2 is not set
557CONFIG_NETDEV_1000=y 549CONFIG_NETDEV_1000=y
558# CONFIG_ACENIC is not set 550# CONFIG_ACENIC is not set
559# CONFIG_DL2K is not set 551# CONFIG_DL2K is not set
560CONFIG_E1000=y 552CONFIG_E1000=y
561# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
562# CONFIG_E1000E is not set 553# CONFIG_E1000E is not set
563# CONFIG_IP1000 is not set 554# CONFIG_IP1000 is not set
564# CONFIG_IGB is not set 555# CONFIG_IGB is not set
@@ -581,18 +572,22 @@ CONFIG_UCC_GETH=y
581# CONFIG_QLA3XXX is not set 572# CONFIG_QLA3XXX is not set
582# CONFIG_ATL1 is not set 573# CONFIG_ATL1 is not set
583# CONFIG_ATL1E is not set 574# CONFIG_ATL1E is not set
575# CONFIG_JME is not set
584CONFIG_NETDEV_10000=y 576CONFIG_NETDEV_10000=y
585# CONFIG_CHELSIO_T1 is not set 577# CONFIG_CHELSIO_T1 is not set
586# CONFIG_CHELSIO_T3 is not set 578# CONFIG_CHELSIO_T3 is not set
579# CONFIG_ENIC is not set
587# CONFIG_IXGBE is not set 580# CONFIG_IXGBE is not set
588# CONFIG_IXGB is not set 581# CONFIG_IXGB is not set
589# CONFIG_S2IO is not set 582# CONFIG_S2IO is not set
590# CONFIG_MYRI10GE is not set 583# CONFIG_MYRI10GE is not set
591# CONFIG_NETXEN_NIC is not set 584# CONFIG_NETXEN_NIC is not set
592# CONFIG_NIU is not set 585# CONFIG_NIU is not set
586# CONFIG_MLX4_EN is not set
593# CONFIG_MLX4_CORE is not set 587# CONFIG_MLX4_CORE is not set
594# CONFIG_TEHUTI is not set 588# CONFIG_TEHUTI is not set
595# CONFIG_BNX2X is not set 589# CONFIG_BNX2X is not set
590# CONFIG_QLGE is not set
596# CONFIG_SFC is not set 591# CONFIG_SFC is not set
597# CONFIG_TR is not set 592# CONFIG_TR is not set
598 593
@@ -678,15 +673,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
678# CONFIG_SERIAL_UARTLITE is not set 673# CONFIG_SERIAL_UARTLITE is not set
679CONFIG_SERIAL_CORE=y 674CONFIG_SERIAL_CORE=y
680CONFIG_SERIAL_CORE_CONSOLE=y 675CONFIG_SERIAL_CORE_CONSOLE=y
681# CONFIG_SERIAL_PMACZILOG is not set
682# CONFIG_SERIAL_JSM is not set 676# CONFIG_SERIAL_JSM is not set
683# CONFIG_SERIAL_OF_PLATFORM is not set 677# CONFIG_SERIAL_OF_PLATFORM is not set
684# CONFIG_SERIAL_QE is not set 678# CONFIG_SERIAL_QE is not set
685CONFIG_UNIX98_PTYS=y 679CONFIG_UNIX98_PTYS=y
686CONFIG_LEGACY_PTYS=y 680CONFIG_LEGACY_PTYS=y
687CONFIG_LEGACY_PTY_COUNT=256 681CONFIG_LEGACY_PTY_COUNT=256
688# CONFIG_BRIQ_PANEL is not set
689# CONFIG_HVC_RTAS is not set
690# CONFIG_IPMI_HANDLER is not set 682# CONFIG_IPMI_HANDLER is not set
691CONFIG_HW_RANDOM=y 683CONFIG_HW_RANDOM=y
692# CONFIG_NVRAM is not set 684# CONFIG_NVRAM is not set
@@ -725,12 +717,6 @@ CONFIG_I2C_HELPER_AUTO=y
725# CONFIG_I2C_VIAPRO is not set 717# CONFIG_I2C_VIAPRO is not set
726 718
727# 719#
728# Mac SMBus host controller drivers
729#
730# CONFIG_I2C_HYDRA is not set
731CONFIG_I2C_POWERMAC=y
732
733#
734# I2C system bus drivers (mostly embedded / system-on-chip) 720# I2C system bus drivers (mostly embedded / system-on-chip)
735# 721#
736CONFIG_I2C_MPC=y 722CONFIG_I2C_MPC=y
@@ -767,6 +753,7 @@ CONFIG_I2C_MPC=y
767# CONFIG_SENSORS_PCF8591 is not set 753# CONFIG_SENSORS_PCF8591 is not set
768# CONFIG_SENSORS_MAX6875 is not set 754# CONFIG_SENSORS_MAX6875 is not set
769# CONFIG_SENSORS_TSL2550 is not set 755# CONFIG_SENSORS_TSL2550 is not set
756# CONFIG_MCU_MPC8349EMITX is not set
770# CONFIG_I2C_DEBUG_CORE is not set 757# CONFIG_I2C_DEBUG_CORE is not set
771# CONFIG_I2C_DEBUG_ALGO is not set 758# CONFIG_I2C_DEBUG_ALGO is not set
772# CONFIG_I2C_DEBUG_BUS is not set 759# CONFIG_I2C_DEBUG_BUS is not set
@@ -803,7 +790,6 @@ CONFIG_HWMON=y
803# CONFIG_SENSORS_ADM9240 is not set 790# CONFIG_SENSORS_ADM9240 is not set
804# CONFIG_SENSORS_ADT7470 is not set 791# CONFIG_SENSORS_ADT7470 is not set
805# CONFIG_SENSORS_ADT7473 is not set 792# CONFIG_SENSORS_ADT7473 is not set
806# CONFIG_SENSORS_AMS is not set
807# CONFIG_SENSORS_ATXP1 is not set 793# CONFIG_SENSORS_ATXP1 is not set
808# CONFIG_SENSORS_DS1621 is not set 794# CONFIG_SENSORS_DS1621 is not set
809# CONFIG_SENSORS_I5K_AMB is not set 795# CONFIG_SENSORS_I5K_AMB is not set
@@ -825,6 +811,7 @@ CONFIG_HWMON=y
825# CONFIG_SENSORS_LM90 is not set 811# CONFIG_SENSORS_LM90 is not set
826# CONFIG_SENSORS_LM92 is not set 812# CONFIG_SENSORS_LM92 is not set
827# CONFIG_SENSORS_LM93 is not set 813# CONFIG_SENSORS_LM93 is not set
814# CONFIG_SENSORS_MAX1111 is not set
828# CONFIG_SENSORS_MAX1619 is not set 815# CONFIG_SENSORS_MAX1619 is not set
829# CONFIG_SENSORS_MAX6650 is not set 816# CONFIG_SENSORS_MAX6650 is not set
830# CONFIG_SENSORS_PC87360 is not set 817# CONFIG_SENSORS_PC87360 is not set
@@ -859,7 +846,6 @@ CONFIG_WATCHDOG=y
859# CONFIG_SOFT_WATCHDOG is not set 846# CONFIG_SOFT_WATCHDOG is not set
860# CONFIG_ALIM7101_WDT is not set 847# CONFIG_ALIM7101_WDT is not set
861# CONFIG_8xxx_WDT is not set 848# CONFIG_8xxx_WDT is not set
862# CONFIG_WATCHDOG_RTAS is not set
863 849
864# 850#
865# PCI-based Watchdog Cards 851# PCI-based Watchdog Cards
@@ -885,6 +871,17 @@ CONFIG_SSB_POSSIBLE=y
885# CONFIG_MFD_SM501 is not set 871# CONFIG_MFD_SM501 is not set
886# CONFIG_HTC_PASIC3 is not set 872# CONFIG_HTC_PASIC3 is not set
887# CONFIG_MFD_TMIO is not set 873# CONFIG_MFD_TMIO is not set
874# CONFIG_PMIC_DA903X is not set
875# CONFIG_MFD_WM8400 is not set
876# CONFIG_MFD_WM8350_I2C is not set
877
878#
879# Voltage and Current regulators
880#
881# CONFIG_REGULATOR is not set
882# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
883# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
884# CONFIG_REGULATOR_BQ24022 is not set
888 885
889# 886#
890# Multimedia devices 887# Multimedia devices
@@ -927,12 +924,18 @@ CONFIG_HID=y
927# USB Input Devices 924# USB Input Devices
928# 925#
929# CONFIG_USB_HID is not set 926# CONFIG_USB_HID is not set
927# CONFIG_HID_PID is not set
930 928
931# 929#
932# USB HID Boot Protocol drivers 930# USB HID Boot Protocol drivers
933# 931#
934# CONFIG_USB_KBD is not set 932# CONFIG_USB_KBD is not set
935# CONFIG_USB_MOUSE is not set 933# CONFIG_USB_MOUSE is not set
934
935#
936# Special HID drivers
937#
938CONFIG_HID_COMPAT=y
936CONFIG_USB_SUPPORT=y 939CONFIG_USB_SUPPORT=y
937CONFIG_USB_ARCH_HAS_HCD=y 940CONFIG_USB_ARCH_HAS_HCD=y
938CONFIG_USB_ARCH_HAS_OHCI=y 941CONFIG_USB_ARCH_HAS_OHCI=y
@@ -951,6 +954,8 @@ CONFIG_USB_DEVICE_CLASS=y
951# CONFIG_USB_OTG_WHITELIST is not set 954# CONFIG_USB_OTG_WHITELIST is not set
952# CONFIG_USB_OTG_BLACKLIST_HUB is not set 955# CONFIG_USB_OTG_BLACKLIST_HUB is not set
953CONFIG_USB_MON=y 956CONFIG_USB_MON=y
957# CONFIG_USB_WUSB is not set
958# CONFIG_USB_WUSB_CBAF is not set
954 959
955# 960#
956# USB Host Controller Drivers 961# USB Host Controller Drivers
@@ -974,6 +979,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
974# CONFIG_USB_UHCI_HCD is not set 979# CONFIG_USB_UHCI_HCD is not set
975# CONFIG_USB_SL811_HCD is not set 980# CONFIG_USB_SL811_HCD is not set
976# CONFIG_USB_R8A66597_HCD is not set 981# CONFIG_USB_R8A66597_HCD is not set
982# CONFIG_USB_WHCI_HCD is not set
983# CONFIG_USB_HWA_HCD is not set
977 984
978# 985#
979# USB Device Class drivers 986# USB Device Class drivers
@@ -981,6 +988,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
981# CONFIG_USB_ACM is not set 988# CONFIG_USB_ACM is not set
982# CONFIG_USB_PRINTER is not set 989# CONFIG_USB_PRINTER is not set
983# CONFIG_USB_WDM is not set 990# CONFIG_USB_WDM is not set
991# CONFIG_USB_TMC is not set
984 992
985# 993#
986# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 994# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1002,7 +1010,6 @@ CONFIG_USB_STORAGE=y
1002# CONFIG_USB_STORAGE_ALAUDA is not set 1010# CONFIG_USB_STORAGE_ALAUDA is not set
1003# CONFIG_USB_STORAGE_ONETOUCH is not set 1011# CONFIG_USB_STORAGE_ONETOUCH is not set
1004# CONFIG_USB_STORAGE_KARMA is not set 1012# CONFIG_USB_STORAGE_KARMA is not set
1005# CONFIG_USB_STORAGE_SIERRA is not set
1006# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1013# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1007# CONFIG_USB_LIBUSUAL is not set 1014# CONFIG_USB_LIBUSUAL is not set
1008 1015
@@ -1023,6 +1030,7 @@ CONFIG_USB_STORAGE=y
1023# CONFIG_USB_EMI62 is not set 1030# CONFIG_USB_EMI62 is not set
1024# CONFIG_USB_EMI26 is not set 1031# CONFIG_USB_EMI26 is not set
1025# CONFIG_USB_ADUTUX is not set 1032# CONFIG_USB_ADUTUX is not set
1033# CONFIG_USB_SEVSEG is not set
1026# CONFIG_USB_RIO500 is not set 1034# CONFIG_USB_RIO500 is not set
1027# CONFIG_USB_LEGOTOWER is not set 1035# CONFIG_USB_LEGOTOWER is not set
1028# CONFIG_USB_LCD is not set 1036# CONFIG_USB_LCD is not set
@@ -1040,13 +1048,15 @@ CONFIG_USB_STORAGE=y
1040# CONFIG_USB_IOWARRIOR is not set 1048# CONFIG_USB_IOWARRIOR is not set
1041# CONFIG_USB_TEST is not set 1049# CONFIG_USB_TEST is not set
1042# CONFIG_USB_ISIGHTFW is not set 1050# CONFIG_USB_ISIGHTFW is not set
1051# CONFIG_USB_VST is not set
1043# CONFIG_USB_GADGET is not set 1052# CONFIG_USB_GADGET is not set
1053# CONFIG_UWB is not set
1044CONFIG_MMC=y 1054CONFIG_MMC=y
1045# CONFIG_MMC_DEBUG is not set 1055# CONFIG_MMC_DEBUG is not set
1046# CONFIG_MMC_UNSAFE_RESUME is not set 1056# CONFIG_MMC_UNSAFE_RESUME is not set
1047 1057
1048# 1058#
1049# MMC/SD Card Drivers 1059# MMC/SD/SDIO Card Drivers
1050# 1060#
1051CONFIG_MMC_BLOCK=y 1061CONFIG_MMC_BLOCK=y
1052CONFIG_MMC_BLOCK_BOUNCE=y 1062CONFIG_MMC_BLOCK_BOUNCE=y
@@ -1054,7 +1064,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1054# CONFIG_MMC_TEST is not set 1064# CONFIG_MMC_TEST is not set
1055 1065
1056# 1066#
1057# MMC/SD Host Controller Drivers 1067# MMC/SD/SDIO Host Controller Drivers
1058# 1068#
1059# CONFIG_MMC_SDHCI is not set 1069# CONFIG_MMC_SDHCI is not set
1060# CONFIG_MMC_WBSD is not set 1070# CONFIG_MMC_WBSD is not set
@@ -1068,6 +1078,7 @@ CONFIG_MMC_SPI=y
1068# CONFIG_RTC_CLASS is not set 1078# CONFIG_RTC_CLASS is not set
1069# CONFIG_DMADEVICES is not set 1079# CONFIG_DMADEVICES is not set
1070# CONFIG_UIO is not set 1080# CONFIG_UIO is not set
1081# CONFIG_STAGING is not set
1071 1082
1072# 1083#
1073# File systems 1084# File systems
@@ -1079,12 +1090,13 @@ CONFIG_EXT3_FS=y
1079CONFIG_EXT3_FS_XATTR=y 1090CONFIG_EXT3_FS_XATTR=y
1080# CONFIG_EXT3_FS_POSIX_ACL is not set 1091# CONFIG_EXT3_FS_POSIX_ACL is not set
1081# CONFIG_EXT3_FS_SECURITY is not set 1092# CONFIG_EXT3_FS_SECURITY is not set
1082# CONFIG_EXT4DEV_FS is not set 1093# CONFIG_EXT4_FS is not set
1083CONFIG_JBD=y 1094CONFIG_JBD=y
1084CONFIG_FS_MBCACHE=y 1095CONFIG_FS_MBCACHE=y
1085# CONFIG_REISERFS_FS is not set 1096# CONFIG_REISERFS_FS is not set
1086# CONFIG_JFS_FS is not set 1097# CONFIG_JFS_FS is not set
1087# CONFIG_FS_POSIX_ACL is not set 1098# CONFIG_FS_POSIX_ACL is not set
1099CONFIG_FILE_LOCKING=y
1088# CONFIG_XFS_FS is not set 1100# CONFIG_XFS_FS is not set
1089# CONFIG_OCFS2_FS is not set 1101# CONFIG_OCFS2_FS is not set
1090CONFIG_DNOTIFY=y 1102CONFIG_DNOTIFY=y
@@ -1117,6 +1129,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1117CONFIG_PROC_FS=y 1129CONFIG_PROC_FS=y
1118CONFIG_PROC_KCORE=y 1130CONFIG_PROC_KCORE=y
1119CONFIG_PROC_SYSCTL=y 1131CONFIG_PROC_SYSCTL=y
1132CONFIG_PROC_PAGE_MONITOR=y
1120CONFIG_SYSFS=y 1133CONFIG_SYSFS=y
1121CONFIG_TMPFS=y 1134CONFIG_TMPFS=y
1122# CONFIG_TMPFS_POSIX_ACL is not set 1135# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1154,6 +1167,7 @@ CONFIG_LOCKD_V4=y
1154CONFIG_NFS_COMMON=y 1167CONFIG_NFS_COMMON=y
1155CONFIG_SUNRPC=y 1168CONFIG_SUNRPC=y
1156CONFIG_SUNRPC_GSS=y 1169CONFIG_SUNRPC_GSS=y
1170# CONFIG_SUNRPC_REGISTER_V4 is not set
1157CONFIG_RPCSEC_GSS_KRB5=y 1171CONFIG_RPCSEC_GSS_KRB5=y
1158# CONFIG_RPCSEC_GSS_SPKM3 is not set 1172# CONFIG_RPCSEC_GSS_SPKM3 is not set
1159# CONFIG_SMB_FS is not set 1173# CONFIG_SMB_FS is not set
@@ -1227,13 +1241,11 @@ CONFIG_NLS_ISO8859_1=y
1227# CONFIG_DLM is not set 1241# CONFIG_DLM is not set
1228CONFIG_UCC_FAST=y 1242CONFIG_UCC_FAST=y
1229CONFIG_UCC=y 1243CONFIG_UCC=y
1230# CONFIG_QE_GPIO is not set
1231 1244
1232# 1245#
1233# Library routines 1246# Library routines
1234# 1247#
1235CONFIG_BITREVERSE=y 1248CONFIG_BITREVERSE=y
1236# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1237# CONFIG_CRC_CCITT is not set 1249# CONFIG_CRC_CCITT is not set
1238# CONFIG_CRC16 is not set 1250# CONFIG_CRC16 is not set
1239CONFIG_CRC_T10DIF=y 1251CONFIG_CRC_T10DIF=y
@@ -1263,13 +1275,15 @@ CONFIG_FRAME_WARN=1024
1263# CONFIG_SLUB_STATS is not set 1275# CONFIG_SLUB_STATS is not set
1264# CONFIG_DEBUG_BUGVERBOSE is not set 1276# CONFIG_DEBUG_BUGVERBOSE is not set
1265# CONFIG_DEBUG_MEMORY_INIT is not set 1277# CONFIG_DEBUG_MEMORY_INIT is not set
1278# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1266# CONFIG_LATENCYTOP is not set 1279# CONFIG_LATENCYTOP is not set
1267CONFIG_SYSCTL_SYSCALL_CHECK=y 1280CONFIG_SYSCTL_SYSCALL_CHECK=y
1268CONFIG_HAVE_FTRACE=y 1281CONFIG_HAVE_FUNCTION_TRACER=y
1269CONFIG_HAVE_DYNAMIC_FTRACE=y 1282
1270# CONFIG_FTRACE is not set 1283#
1271# CONFIG_SCHED_TRACER is not set 1284# Tracers
1272# CONFIG_CONTEXT_SWITCH_TRACER is not set 1285#
1286# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1273# CONFIG_SAMPLES is not set 1287# CONFIG_SAMPLES is not set
1274CONFIG_HAVE_ARCH_KGDB=y 1288CONFIG_HAVE_ARCH_KGDB=y
1275# CONFIG_IRQSTACKS is not set 1289# CONFIG_IRQSTACKS is not set
@@ -1281,14 +1295,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1281# 1295#
1282# CONFIG_KEYS is not set 1296# CONFIG_KEYS is not set
1283# CONFIG_SECURITY is not set 1297# CONFIG_SECURITY is not set
1298# CONFIG_SECURITYFS is not set
1284# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1299# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1285CONFIG_CRYPTO=y 1300CONFIG_CRYPTO=y
1286 1301
1287# 1302#
1288# Crypto core or helper 1303# Crypto core or helper
1289# 1304#
1305# CONFIG_CRYPTO_FIPS is not set
1290CONFIG_CRYPTO_ALGAPI=y 1306CONFIG_CRYPTO_ALGAPI=y
1307CONFIG_CRYPTO_AEAD=y
1291CONFIG_CRYPTO_BLKCIPHER=y 1308CONFIG_CRYPTO_BLKCIPHER=y
1309CONFIG_CRYPTO_HASH=y
1310CONFIG_CRYPTO_RNG=y
1292CONFIG_CRYPTO_MANAGER=y 1311CONFIG_CRYPTO_MANAGER=y
1293# CONFIG_CRYPTO_GF128MUL is not set 1312# CONFIG_CRYPTO_GF128MUL is not set
1294# CONFIG_CRYPTO_NULL is not set 1313# CONFIG_CRYPTO_NULL is not set
@@ -1361,6 +1380,11 @@ CONFIG_CRYPTO_DES=y
1361# 1380#
1362# CONFIG_CRYPTO_DEFLATE is not set 1381# CONFIG_CRYPTO_DEFLATE is not set
1363# CONFIG_CRYPTO_LZO is not set 1382# CONFIG_CRYPTO_LZO is not set
1383
1384#
1385# Random Number Generation
1386#
1387# CONFIG_CRYPTO_ANSI_CPRNG is not set
1364CONFIG_CRYPTO_HW=y 1388CONFIG_CRYPTO_HW=y
1365# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1389# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1366# CONFIG_CRYPTO_DEV_TALITOS is not set 1390# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index 90aab340e7ff..07a674f5344e 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:20 2008 4# Sat Nov 8 12:39:56 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
114CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -121,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -157,6 +152,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
160 156
161# 157#
162# Platform support 158# Platform support
@@ -164,10 +160,10 @@ CONFIG_CLASSIC_RCU=y
164CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_PMAC is not set
168# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
166# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set 169# CONFIG_PPC_82xx is not set
@@ -187,24 +183,21 @@ CONFIG_MPC834x_ITX=y
187CONFIG_PPC_MPC834x=y 183CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
192CONFIG_IPIC=y 186CONFIG_IPIC=y
193CONFIG_MPIC=y 187# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
195CONFIG_PPC_I8259=y 189# CONFIG_PPC_I8259 is not set
196CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
199# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
200CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
201# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
202# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
203# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
204# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set 197# CONFIG_TAU is not set
198# CONFIG_QUICC_ENGINE is not set
207# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set
208 201
209# 202#
210# Kernel options 203# Kernel options
@@ -224,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
224# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
225# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
226CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
227# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
228# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -238,15 +233,15 @@ CONFIG_FLATMEM_MANUAL=y
238# CONFIG_SPARSEMEM_MANUAL is not set 233# CONFIG_SPARSEMEM_MANUAL is not set
239CONFIG_FLATMEM=y 234CONFIG_FLATMEM=y
240CONFIG_FLAT_NODE_MEM_MAP=y 235CONFIG_FLAT_NODE_MEM_MAP=y
241# CONFIG_SPARSEMEM_STATIC is not set
242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
243CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
244CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
246# CONFIG_RESOURCES_64BIT is not set 239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y
250CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
@@ -258,7 +253,6 @@ CONFIG_ISA_DMA_API=y
258# 253#
259# Bus options 254# Bus options
260# 255#
261# CONFIG_ISA is not set
262CONFIG_ZONE_DMA=y 256CONFIG_ZONE_DMA=y
263CONFIG_GENERIC_ISA_DMA=y 257CONFIG_GENERIC_ISA_DMA=y
264CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
@@ -271,7 +265,7 @@ CONFIG_PCI_SYSCALL=y
271# CONFIG_PCIEPORTBUS is not set 265# CONFIG_PCIEPORTBUS is not set
272CONFIG_ARCH_SUPPORTS_MSI=y 266CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 267# CONFIG_PCI_MSI is not set
274CONFIG_PCI_LEGACY=y 268# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -339,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_TIPC is not set 333# CONFIG_TIPC is not set
340# CONFIG_ATM is not set 334# CONFIG_ATM is not set
341# CONFIG_BRIDGE is not set 335# CONFIG_BRIDGE is not set
336# CONFIG_NET_DSA is not set
342# CONFIG_VLAN_8021Q is not set 337# CONFIG_VLAN_8021Q is not set
343# CONFIG_DECNET is not set 338# CONFIG_DECNET is not set
344# CONFIG_LLC2 is not set 339# CONFIG_LLC2 is not set
@@ -359,11 +354,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_IRDA is not set 354# CONFIG_IRDA is not set
360# CONFIG_BT is not set 355# CONFIG_BT is not set
361# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
362 357# CONFIG_PHONET is not set
363# 358CONFIG_WIRELESS=y
364# Wireless
365#
366# CONFIG_CFG80211 is not set 359# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y
367# CONFIG_WIRELESS_EXT is not set 361# CONFIG_WIRELESS_EXT is not set
368# CONFIG_MAC80211 is not set 362# CONFIG_MAC80211 is not set
369# CONFIG_IEEE80211 is not set 363# CONFIG_IEEE80211 is not set
@@ -469,7 +463,6 @@ CONFIG_OF_SPI=y
469# CONFIG_PARPORT is not set 463# CONFIG_PARPORT is not set
470CONFIG_BLK_DEV=y 464CONFIG_BLK_DEV=y
471# CONFIG_BLK_DEV_FD is not set 465# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
473# CONFIG_BLK_CPQ_DA is not set 466# CONFIG_BLK_CPQ_DA is not set
474# CONFIG_BLK_CPQ_CISS_DA is not set 467# CONFIG_BLK_CPQ_CISS_DA is not set
475# CONFIG_BLK_DEV_DAC960 is not set 468# CONFIG_BLK_DEV_DAC960 is not set
@@ -496,7 +489,54 @@ CONFIG_MISC_DEVICES=y
496# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
497CONFIG_HAVE_IDE=y 490CONFIG_HAVE_IDE=y
498CONFIG_IDE=y 491CONFIG_IDE=y
499# CONFIG_BLK_DEV_IDE is not set 492
493#
494# Please see Documentation/ide/ide.txt for help/info on IDE drives
495#
496# CONFIG_BLK_DEV_IDE_SATA is not set
497CONFIG_IDE_GD=y
498CONFIG_IDE_GD_ATA=y
499# CONFIG_IDE_GD_ATAPI is not set
500# CONFIG_BLK_DEV_IDECD is not set
501# CONFIG_BLK_DEV_IDETAPE is not set
502# CONFIG_BLK_DEV_IDESCSI is not set
503# CONFIG_IDE_TASK_IOCTL is not set
504CONFIG_IDE_PROC_FS=y
505
506#
507# IDE chipset support/bugfixes
508#
509# CONFIG_BLK_DEV_PLATFORM is not set
510
511#
512# PCI IDE chipsets support
513#
514# CONFIG_BLK_DEV_GENERIC is not set
515# CONFIG_BLK_DEV_OPTI621 is not set
516# CONFIG_BLK_DEV_AEC62XX is not set
517# CONFIG_BLK_DEV_ALI15X3 is not set
518# CONFIG_BLK_DEV_AMD74XX is not set
519# CONFIG_BLK_DEV_CMD64X is not set
520# CONFIG_BLK_DEV_TRIFLEX is not set
521# CONFIG_BLK_DEV_CS5520 is not set
522# CONFIG_BLK_DEV_CS5530 is not set
523# CONFIG_BLK_DEV_HPT366 is not set
524# CONFIG_BLK_DEV_JMICRON is not set
525# CONFIG_BLK_DEV_SC1200 is not set
526# CONFIG_BLK_DEV_PIIX is not set
527# CONFIG_BLK_DEV_IT8213 is not set
528# CONFIG_BLK_DEV_IT821X is not set
529# CONFIG_BLK_DEV_NS87415 is not set
530# CONFIG_BLK_DEV_PDC202XX_OLD is not set
531# CONFIG_BLK_DEV_PDC202XX_NEW is not set
532# CONFIG_BLK_DEV_SVWKS is not set
533# CONFIG_BLK_DEV_SIIMAGE is not set
534# CONFIG_BLK_DEV_SL82C105 is not set
535# CONFIG_BLK_DEV_SLC90E66 is not set
536# CONFIG_BLK_DEV_TRM290 is not set
537# CONFIG_BLK_DEV_VIA82CXXX is not set
538# CONFIG_BLK_DEV_TC86C001 is not set
539# CONFIG_BLK_DEV_IDEDMA is not set
500 540
501# 541#
502# SCSI device support 542# SCSI device support
@@ -572,8 +612,6 @@ CONFIG_SCSI_LOWLEVEL=y
572# CONFIG_SCSI_DC390T is not set 612# CONFIG_SCSI_DC390T is not set
573# CONFIG_SCSI_NSP32 is not set 613# CONFIG_SCSI_NSP32 is not set
574# CONFIG_SCSI_DEBUG is not set 614# CONFIG_SCSI_DEBUG is not set
575# CONFIG_SCSI_MESH is not set
576# CONFIG_SCSI_MAC53C94 is not set
577# CONFIG_SCSI_SRP is not set 615# CONFIG_SCSI_SRP is not set
578# CONFIG_SCSI_DH is not set 616# CONFIG_SCSI_DH is not set
579CONFIG_ATA=y 617CONFIG_ATA=y
@@ -640,6 +678,7 @@ CONFIG_PATA_OF_PLATFORM=y
640# CONFIG_PATA_SCH is not set 678# CONFIG_PATA_SCH is not set
641CONFIG_MD=y 679CONFIG_MD=y
642CONFIG_BLK_DEV_MD=y 680CONFIG_BLK_DEV_MD=y
681CONFIG_MD_AUTODETECT=y
643CONFIG_MD_LINEAR=y 682CONFIG_MD_LINEAR=y
644CONFIG_MD_RAID0=y 683CONFIG_MD_RAID0=y
645CONFIG_MD_RAID1=y 684CONFIG_MD_RAID1=y
@@ -684,7 +723,7 @@ CONFIG_CICADA_PHY=y
684# CONFIG_BROADCOM_PHY is not set 723# CONFIG_BROADCOM_PHY is not set
685# CONFIG_ICPLUS_PHY is not set 724# CONFIG_ICPLUS_PHY is not set
686# CONFIG_REALTEK_PHY is not set 725# CONFIG_REALTEK_PHY is not set
687# CONFIG_FIXED_PHY is not set 726CONFIG_FIXED_PHY=y
688# CONFIG_MDIO_BITBANG is not set 727# CONFIG_MDIO_BITBANG is not set
689# CONFIG_NET_ETHERNET is not set 728# CONFIG_NET_ETHERNET is not set
690CONFIG_NETDEV_1000=y 729CONFIG_NETDEV_1000=y
@@ -709,18 +748,22 @@ CONFIG_GIANFAR=y
709# CONFIG_QLA3XXX is not set 748# CONFIG_QLA3XXX is not set
710# CONFIG_ATL1 is not set 749# CONFIG_ATL1 is not set
711# CONFIG_ATL1E is not set 750# CONFIG_ATL1E is not set
751# CONFIG_JME is not set
712CONFIG_NETDEV_10000=y 752CONFIG_NETDEV_10000=y
713# CONFIG_CHELSIO_T1 is not set 753# CONFIG_CHELSIO_T1 is not set
714# CONFIG_CHELSIO_T3 is not set 754# CONFIG_CHELSIO_T3 is not set
755# CONFIG_ENIC is not set
715# CONFIG_IXGBE is not set 756# CONFIG_IXGBE is not set
716# CONFIG_IXGB is not set 757# CONFIG_IXGB is not set
717# CONFIG_S2IO is not set 758# CONFIG_S2IO is not set
718# CONFIG_MYRI10GE is not set 759# CONFIG_MYRI10GE is not set
719# CONFIG_NETXEN_NIC is not set 760# CONFIG_NETXEN_NIC is not set
720# CONFIG_NIU is not set 761# CONFIG_NIU is not set
762# CONFIG_MLX4_EN is not set
721# CONFIG_MLX4_CORE is not set 763# CONFIG_MLX4_CORE is not set
722# CONFIG_TEHUTI is not set 764# CONFIG_TEHUTI is not set
723# CONFIG_BNX2X is not set 765# CONFIG_BNX2X is not set
766# CONFIG_QLGE is not set
724# CONFIG_SFC is not set 767# CONFIG_SFC is not set
725# CONFIG_TR is not set 768# CONFIG_TR is not set
726 769
@@ -786,14 +829,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
786# CONFIG_SERIAL_UARTLITE is not set 829# CONFIG_SERIAL_UARTLITE is not set
787CONFIG_SERIAL_CORE=y 830CONFIG_SERIAL_CORE=y
788CONFIG_SERIAL_CORE_CONSOLE=y 831CONFIG_SERIAL_CORE_CONSOLE=y
789# CONFIG_SERIAL_PMACZILOG is not set
790# CONFIG_SERIAL_JSM is not set 832# CONFIG_SERIAL_JSM is not set
791# CONFIG_SERIAL_OF_PLATFORM is not set 833# CONFIG_SERIAL_OF_PLATFORM is not set
792CONFIG_UNIX98_PTYS=y 834CONFIG_UNIX98_PTYS=y
793CONFIG_LEGACY_PTYS=y 835CONFIG_LEGACY_PTYS=y
794CONFIG_LEGACY_PTY_COUNT=256 836CONFIG_LEGACY_PTY_COUNT=256
795# CONFIG_BRIQ_PANEL is not set
796# CONFIG_HVC_RTAS is not set
797# CONFIG_IPMI_HANDLER is not set 837# CONFIG_IPMI_HANDLER is not set
798CONFIG_HW_RANDOM=y 838CONFIG_HW_RANDOM=y
799# CONFIG_NVRAM is not set 839# CONFIG_NVRAM is not set
@@ -830,12 +870,6 @@ CONFIG_I2C_HELPER_AUTO=y
830# CONFIG_I2C_VIAPRO is not set 870# CONFIG_I2C_VIAPRO is not set
831 871
832# 872#
833# Mac SMBus host controller drivers
834#
835# CONFIG_I2C_HYDRA is not set
836CONFIG_I2C_POWERMAC=y
837
838#
839# I2C system bus drivers (mostly embedded / system-on-chip) 873# I2C system bus drivers (mostly embedded / system-on-chip)
840# 874#
841CONFIG_I2C_MPC=y 875CONFIG_I2C_MPC=y
@@ -872,6 +906,7 @@ CONFIG_SENSORS_PCF8574=y
872# CONFIG_SENSORS_PCF8591 is not set 906# CONFIG_SENSORS_PCF8591 is not set
873# CONFIG_SENSORS_MAX6875 is not set 907# CONFIG_SENSORS_MAX6875 is not set
874# CONFIG_SENSORS_TSL2550 is not set 908# CONFIG_SENSORS_TSL2550 is not set
909# CONFIG_MCU_MPC8349EMITX is not set
875# CONFIG_I2C_DEBUG_CORE is not set 910# CONFIG_I2C_DEBUG_CORE is not set
876# CONFIG_I2C_DEBUG_ALGO is not set 911# CONFIG_I2C_DEBUG_ALGO is not set
877# CONFIG_I2C_DEBUG_BUS is not set 912# CONFIG_I2C_DEBUG_BUS is not set
@@ -907,7 +942,6 @@ CONFIG_WATCHDOG=y
907# CONFIG_SOFT_WATCHDOG is not set 942# CONFIG_SOFT_WATCHDOG is not set
908# CONFIG_ALIM7101_WDT is not set 943# CONFIG_ALIM7101_WDT is not set
909# CONFIG_8xxx_WDT is not set 944# CONFIG_8xxx_WDT is not set
910# CONFIG_WATCHDOG_RTAS is not set
911 945
912# 946#
913# PCI-based Watchdog Cards 947# PCI-based Watchdog Cards
@@ -933,6 +967,17 @@ CONFIG_SSB_POSSIBLE=y
933# CONFIG_MFD_SM501 is not set 967# CONFIG_MFD_SM501 is not set
934# CONFIG_HTC_PASIC3 is not set 968# CONFIG_HTC_PASIC3 is not set
935# CONFIG_MFD_TMIO is not set 969# CONFIG_MFD_TMIO is not set
970# CONFIG_PMIC_DA903X is not set
971# CONFIG_MFD_WM8400 is not set
972# CONFIG_MFD_WM8350_I2C is not set
973
974#
975# Voltage and Current regulators
976#
977# CONFIG_REGULATOR is not set
978# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
979# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
980# CONFIG_REGULATOR_BQ24022 is not set
936 981
937# 982#
938# Multimedia devices 983# Multimedia devices
@@ -984,6 +1029,8 @@ CONFIG_USB_DEVICE_CLASS=y
984# CONFIG_USB_OTG_WHITELIST is not set 1029# CONFIG_USB_OTG_WHITELIST is not set
985# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1030# CONFIG_USB_OTG_BLACKLIST_HUB is not set
986CONFIG_USB_MON=y 1031CONFIG_USB_MON=y
1032# CONFIG_USB_WUSB is not set
1033# CONFIG_USB_WUSB_CBAF is not set
987 1034
988# 1035#
989# USB Host Controller Drivers 1036# USB Host Controller Drivers
@@ -1000,6 +1047,8 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1000CONFIG_USB_UHCI_HCD=y 1047CONFIG_USB_UHCI_HCD=y
1001# CONFIG_USB_SL811_HCD is not set 1048# CONFIG_USB_SL811_HCD is not set
1002# CONFIG_USB_R8A66597_HCD is not set 1049# CONFIG_USB_R8A66597_HCD is not set
1050# CONFIG_USB_WHCI_HCD is not set
1051# CONFIG_USB_HWA_HCD is not set
1003 1052
1004# 1053#
1005# USB Device Class drivers 1054# USB Device Class drivers
@@ -1007,6 +1056,7 @@ CONFIG_USB_UHCI_HCD=y
1007# CONFIG_USB_ACM is not set 1056# CONFIG_USB_ACM is not set
1008# CONFIG_USB_PRINTER is not set 1057# CONFIG_USB_PRINTER is not set
1009# CONFIG_USB_WDM is not set 1058# CONFIG_USB_WDM is not set
1059# CONFIG_USB_TMC is not set
1010 1060
1011# 1061#
1012# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1062# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1027,7 +1077,6 @@ CONFIG_USB_STORAGE=y
1027# CONFIG_USB_STORAGE_JUMPSHOT is not set 1077# CONFIG_USB_STORAGE_JUMPSHOT is not set
1028# CONFIG_USB_STORAGE_ALAUDA is not set 1078# CONFIG_USB_STORAGE_ALAUDA is not set
1029# CONFIG_USB_STORAGE_KARMA is not set 1079# CONFIG_USB_STORAGE_KARMA is not set
1030# CONFIG_USB_STORAGE_SIERRA is not set
1031# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1080# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1032# CONFIG_USB_LIBUSUAL is not set 1081# CONFIG_USB_LIBUSUAL is not set
1033 1082
@@ -1048,6 +1097,7 @@ CONFIG_USB_STORAGE=y
1048# CONFIG_USB_EMI62 is not set 1097# CONFIG_USB_EMI62 is not set
1049# CONFIG_USB_EMI26 is not set 1098# CONFIG_USB_EMI26 is not set
1050# CONFIG_USB_ADUTUX is not set 1099# CONFIG_USB_ADUTUX is not set
1100# CONFIG_USB_SEVSEG is not set
1051# CONFIG_USB_RIO500 is not set 1101# CONFIG_USB_RIO500 is not set
1052# CONFIG_USB_LEGOTOWER is not set 1102# CONFIG_USB_LEGOTOWER is not set
1053# CONFIG_USB_LCD is not set 1103# CONFIG_USB_LCD is not set
@@ -1065,7 +1115,9 @@ CONFIG_USB_STORAGE=y
1065# CONFIG_USB_IOWARRIOR is not set 1115# CONFIG_USB_IOWARRIOR is not set
1066# CONFIG_USB_TEST is not set 1116# CONFIG_USB_TEST is not set
1067# CONFIG_USB_ISIGHTFW is not set 1117# CONFIG_USB_ISIGHTFW is not set
1118# CONFIG_USB_VST is not set
1068# CONFIG_USB_GADGET is not set 1119# CONFIG_USB_GADGET is not set
1120# CONFIG_UWB is not set
1069# CONFIG_MMC is not set 1121# CONFIG_MMC is not set
1070# CONFIG_MEMSTICK is not set 1122# CONFIG_MEMSTICK is not set
1071# CONFIG_NEW_LEDS is not set 1123# CONFIG_NEW_LEDS is not set
@@ -1111,17 +1163,21 @@ CONFIG_RTC_DRV_DS1307=y
1111# CONFIG_RTC_DRV_MAX6902 is not set 1163# CONFIG_RTC_DRV_MAX6902 is not set
1112# CONFIG_RTC_DRV_R9701 is not set 1164# CONFIG_RTC_DRV_R9701 is not set
1113# CONFIG_RTC_DRV_RS5C348 is not set 1165# CONFIG_RTC_DRV_RS5C348 is not set
1166# CONFIG_RTC_DRV_DS3234 is not set
1114 1167
1115# 1168#
1116# Platform RTC drivers 1169# Platform RTC drivers
1117# 1170#
1118# CONFIG_RTC_DRV_CMOS is not set 1171# CONFIG_RTC_DRV_CMOS is not set
1172# CONFIG_RTC_DRV_DS1286 is not set
1119# CONFIG_RTC_DRV_DS1511 is not set 1173# CONFIG_RTC_DRV_DS1511 is not set
1120# CONFIG_RTC_DRV_DS1553 is not set 1174# CONFIG_RTC_DRV_DS1553 is not set
1121# CONFIG_RTC_DRV_DS1742 is not set 1175# CONFIG_RTC_DRV_DS1742 is not set
1122# CONFIG_RTC_DRV_STK17TA8 is not set 1176# CONFIG_RTC_DRV_STK17TA8 is not set
1123# CONFIG_RTC_DRV_M48T86 is not set 1177# CONFIG_RTC_DRV_M48T86 is not set
1178# CONFIG_RTC_DRV_M48T35 is not set
1124# CONFIG_RTC_DRV_M48T59 is not set 1179# CONFIG_RTC_DRV_M48T59 is not set
1180# CONFIG_RTC_DRV_BQ4802 is not set
1125# CONFIG_RTC_DRV_V3020 is not set 1181# CONFIG_RTC_DRV_V3020 is not set
1126 1182
1127# 1183#
@@ -1130,6 +1186,7 @@ CONFIG_RTC_DRV_DS1307=y
1130# CONFIG_RTC_DRV_PPC is not set 1186# CONFIG_RTC_DRV_PPC is not set
1131# CONFIG_DMADEVICES is not set 1187# CONFIG_DMADEVICES is not set
1132# CONFIG_UIO is not set 1188# CONFIG_UIO is not set
1189# CONFIG_STAGING is not set
1133 1190
1134# 1191#
1135# File systems 1192# File systems
@@ -1141,12 +1198,13 @@ CONFIG_EXT3_FS=y
1141CONFIG_EXT3_FS_XATTR=y 1198CONFIG_EXT3_FS_XATTR=y
1142# CONFIG_EXT3_FS_POSIX_ACL is not set 1199# CONFIG_EXT3_FS_POSIX_ACL is not set
1143# CONFIG_EXT3_FS_SECURITY is not set 1200# CONFIG_EXT3_FS_SECURITY is not set
1144# CONFIG_EXT4DEV_FS is not set 1201# CONFIG_EXT4_FS is not set
1145CONFIG_JBD=y 1202CONFIG_JBD=y
1146CONFIG_FS_MBCACHE=y 1203CONFIG_FS_MBCACHE=y
1147# CONFIG_REISERFS_FS is not set 1204# CONFIG_REISERFS_FS is not set
1148# CONFIG_JFS_FS is not set 1205# CONFIG_JFS_FS is not set
1149# CONFIG_FS_POSIX_ACL is not set 1206# CONFIG_FS_POSIX_ACL is not set
1207CONFIG_FILE_LOCKING=y
1150# CONFIG_XFS_FS is not set 1208# CONFIG_XFS_FS is not set
1151# CONFIG_OCFS2_FS is not set 1209# CONFIG_OCFS2_FS is not set
1152CONFIG_DNOTIFY=y 1210CONFIG_DNOTIFY=y
@@ -1179,6 +1237,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1179CONFIG_PROC_FS=y 1237CONFIG_PROC_FS=y
1180CONFIG_PROC_KCORE=y 1238CONFIG_PROC_KCORE=y
1181CONFIG_PROC_SYSCTL=y 1239CONFIG_PROC_SYSCTL=y
1240CONFIG_PROC_PAGE_MONITOR=y
1182CONFIG_SYSFS=y 1241CONFIG_SYSFS=y
1183CONFIG_TMPFS=y 1242CONFIG_TMPFS=y
1184# CONFIG_TMPFS_POSIX_ACL is not set 1243# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1217,6 +1276,7 @@ CONFIG_LOCKD_V4=y
1217CONFIG_NFS_COMMON=y 1276CONFIG_NFS_COMMON=y
1218CONFIG_SUNRPC=y 1277CONFIG_SUNRPC=y
1219CONFIG_SUNRPC_GSS=y 1278CONFIG_SUNRPC_GSS=y
1279# CONFIG_SUNRPC_REGISTER_V4 is not set
1220CONFIG_RPCSEC_GSS_KRB5=y 1280CONFIG_RPCSEC_GSS_KRB5=y
1221# CONFIG_RPCSEC_GSS_SPKM3 is not set 1281# CONFIG_RPCSEC_GSS_SPKM3 is not set
1222# CONFIG_SMB_FS is not set 1282# CONFIG_SMB_FS is not set
@@ -1292,7 +1352,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1292# Library routines 1352# Library routines
1293# 1353#
1294CONFIG_BITREVERSE=y 1354CONFIG_BITREVERSE=y
1295# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1296# CONFIG_CRC_CCITT is not set 1355# CONFIG_CRC_CCITT is not set
1297# CONFIG_CRC16 is not set 1356# CONFIG_CRC16 is not set
1298CONFIG_CRC_T10DIF=y 1357CONFIG_CRC_T10DIF=y
@@ -1322,13 +1381,15 @@ CONFIG_FRAME_WARN=1024
1322# CONFIG_SLUB_STATS is not set 1381# CONFIG_SLUB_STATS is not set
1323# CONFIG_DEBUG_BUGVERBOSE is not set 1382# CONFIG_DEBUG_BUGVERBOSE is not set
1324# CONFIG_DEBUG_MEMORY_INIT is not set 1383# CONFIG_DEBUG_MEMORY_INIT is not set
1384# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1325# CONFIG_LATENCYTOP is not set 1385# CONFIG_LATENCYTOP is not set
1326CONFIG_SYSCTL_SYSCALL_CHECK=y 1386CONFIG_SYSCTL_SYSCALL_CHECK=y
1327CONFIG_HAVE_FTRACE=y 1387CONFIG_HAVE_FUNCTION_TRACER=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y 1388
1329# CONFIG_FTRACE is not set 1389#
1330# CONFIG_SCHED_TRACER is not set 1390# Tracers
1331# CONFIG_CONTEXT_SWITCH_TRACER is not set 1391#
1392# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1332# CONFIG_SAMPLES is not set 1393# CONFIG_SAMPLES is not set
1333CONFIG_HAVE_ARCH_KGDB=y 1394CONFIG_HAVE_ARCH_KGDB=y
1334# CONFIG_IRQSTACKS is not set 1395# CONFIG_IRQSTACKS is not set
@@ -1340,14 +1401,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1340# 1401#
1341# CONFIG_KEYS is not set 1402# CONFIG_KEYS is not set
1342# CONFIG_SECURITY is not set 1403# CONFIG_SECURITY is not set
1404# CONFIG_SECURITYFS is not set
1343# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1405# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1344CONFIG_CRYPTO=y 1406CONFIG_CRYPTO=y
1345 1407
1346# 1408#
1347# Crypto core or helper 1409# Crypto core or helper
1348# 1410#
1411# CONFIG_CRYPTO_FIPS is not set
1349CONFIG_CRYPTO_ALGAPI=y 1412CONFIG_CRYPTO_ALGAPI=y
1413CONFIG_CRYPTO_AEAD=y
1350CONFIG_CRYPTO_BLKCIPHER=y 1414CONFIG_CRYPTO_BLKCIPHER=y
1415CONFIG_CRYPTO_HASH=y
1416CONFIG_CRYPTO_RNG=y
1351CONFIG_CRYPTO_MANAGER=y 1417CONFIG_CRYPTO_MANAGER=y
1352# CONFIG_CRYPTO_GF128MUL is not set 1418# CONFIG_CRYPTO_GF128MUL is not set
1353# CONFIG_CRYPTO_NULL is not set 1419# CONFIG_CRYPTO_NULL is not set
@@ -1420,6 +1486,11 @@ CONFIG_CRYPTO_DES=y
1420# 1486#
1421# CONFIG_CRYPTO_DEFLATE is not set 1487# CONFIG_CRYPTO_DEFLATE is not set
1422# CONFIG_CRYPTO_LZO is not set 1488# CONFIG_CRYPTO_LZO is not set
1489
1490#
1491# Random Number Generation
1492#
1493# CONFIG_CRYPTO_ANSI_CPRNG is not set
1423CONFIG_CRYPTO_HW=y 1494CONFIG_CRYPTO_HW=y
1424# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1495# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1425# CONFIG_CRYPTO_DEV_TALITOS is not set 1496# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 7458a242d251..426232cb0097 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:21 2008 4# Sat Nov 8 12:39:57 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
114CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -121,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -157,6 +152,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
160 156
161# 157#
162# Platform support 158# Platform support
@@ -164,10 +160,10 @@ CONFIG_CLASSIC_RCU=y
164CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_PMAC is not set
168# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
166# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set 169# CONFIG_PPC_82xx is not set
@@ -187,24 +183,21 @@ CONFIG_MPC834x_ITX=y
187CONFIG_PPC_MPC834x=y 183CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
192CONFIG_IPIC=y 186CONFIG_IPIC=y
193CONFIG_MPIC=y 187# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
195CONFIG_PPC_I8259=y 189# CONFIG_PPC_I8259 is not set
196CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
199# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
200CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
201# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
202# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
203# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
204# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set 197# CONFIG_TAU is not set
198# CONFIG_QUICC_ENGINE is not set
207# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set
208 201
209# 202#
210# Kernel options 203# Kernel options
@@ -224,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
224# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
225# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
226CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
227# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
228# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -238,15 +233,15 @@ CONFIG_FLATMEM_MANUAL=y
238# CONFIG_SPARSEMEM_MANUAL is not set 233# CONFIG_SPARSEMEM_MANUAL is not set
239CONFIG_FLATMEM=y 234CONFIG_FLATMEM=y
240CONFIG_FLAT_NODE_MEM_MAP=y 235CONFIG_FLAT_NODE_MEM_MAP=y
241# CONFIG_SPARSEMEM_STATIC is not set
242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
243CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
244CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
246# CONFIG_RESOURCES_64BIT is not set 239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y
250CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
@@ -258,7 +253,6 @@ CONFIG_ISA_DMA_API=y
258# 253#
259# Bus options 254# Bus options
260# 255#
261# CONFIG_ISA is not set
262CONFIG_ZONE_DMA=y 256CONFIG_ZONE_DMA=y
263CONFIG_GENERIC_ISA_DMA=y 257CONFIG_GENERIC_ISA_DMA=y
264CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
@@ -271,7 +265,7 @@ CONFIG_PCI_SYSCALL=y
271# CONFIG_PCIEPORTBUS is not set 265# CONFIG_PCIEPORTBUS is not set
272CONFIG_ARCH_SUPPORTS_MSI=y 266CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 267# CONFIG_PCI_MSI is not set
274CONFIG_PCI_LEGACY=y 268# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -339,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_TIPC is not set 333# CONFIG_TIPC is not set
340# CONFIG_ATM is not set 334# CONFIG_ATM is not set
341# CONFIG_BRIDGE is not set 335# CONFIG_BRIDGE is not set
336# CONFIG_NET_DSA is not set
342# CONFIG_VLAN_8021Q is not set 337# CONFIG_VLAN_8021Q is not set
343# CONFIG_DECNET is not set 338# CONFIG_DECNET is not set
344# CONFIG_LLC2 is not set 339# CONFIG_LLC2 is not set
@@ -359,11 +354,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_IRDA is not set 354# CONFIG_IRDA is not set
360# CONFIG_BT is not set 355# CONFIG_BT is not set
361# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
362 357# CONFIG_PHONET is not set
363# 358CONFIG_WIRELESS=y
364# Wireless
365#
366# CONFIG_CFG80211 is not set 359# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y
367# CONFIG_WIRELESS_EXT is not set 361# CONFIG_WIRELESS_EXT is not set
368# CONFIG_MAC80211 is not set 362# CONFIG_MAC80211 is not set
369# CONFIG_IEEE80211 is not set 363# CONFIG_IEEE80211 is not set
@@ -469,7 +463,6 @@ CONFIG_OF_SPI=y
469# CONFIG_PARPORT is not set 463# CONFIG_PARPORT is not set
470CONFIG_BLK_DEV=y 464CONFIG_BLK_DEV=y
471# CONFIG_BLK_DEV_FD is not set 465# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
473# CONFIG_BLK_CPQ_DA is not set 466# CONFIG_BLK_CPQ_DA is not set
474# CONFIG_BLK_CPQ_CISS_DA is not set 467# CONFIG_BLK_CPQ_CISS_DA is not set
475# CONFIG_BLK_DEV_DAC960 is not set 468# CONFIG_BLK_DEV_DAC960 is not set
@@ -570,8 +563,6 @@ CONFIG_SCSI_LOWLEVEL=y
570# CONFIG_SCSI_DC390T is not set 563# CONFIG_SCSI_DC390T is not set
571# CONFIG_SCSI_NSP32 is not set 564# CONFIG_SCSI_NSP32 is not set
572# CONFIG_SCSI_DEBUG is not set 565# CONFIG_SCSI_DEBUG is not set
573# CONFIG_SCSI_MESH is not set
574# CONFIG_SCSI_MAC53C94 is not set
575# CONFIG_SCSI_SRP is not set 566# CONFIG_SCSI_SRP is not set
576# CONFIG_SCSI_DH is not set 567# CONFIG_SCSI_DH is not set
577# CONFIG_ATA is not set 568# CONFIG_ATA is not set
@@ -637,18 +628,22 @@ CONFIG_GIANFAR=y
637# CONFIG_QLA3XXX is not set 628# CONFIG_QLA3XXX is not set
638# CONFIG_ATL1 is not set 629# CONFIG_ATL1 is not set
639# CONFIG_ATL1E is not set 630# CONFIG_ATL1E is not set
631# CONFIG_JME is not set
640CONFIG_NETDEV_10000=y 632CONFIG_NETDEV_10000=y
641# CONFIG_CHELSIO_T1 is not set 633# CONFIG_CHELSIO_T1 is not set
642# CONFIG_CHELSIO_T3 is not set 634# CONFIG_CHELSIO_T3 is not set
635# CONFIG_ENIC is not set
643# CONFIG_IXGBE is not set 636# CONFIG_IXGBE is not set
644# CONFIG_IXGB is not set 637# CONFIG_IXGB is not set
645# CONFIG_S2IO is not set 638# CONFIG_S2IO is not set
646# CONFIG_MYRI10GE is not set 639# CONFIG_MYRI10GE is not set
647# CONFIG_NETXEN_NIC is not set 640# CONFIG_NETXEN_NIC is not set
648# CONFIG_NIU is not set 641# CONFIG_NIU is not set
642# CONFIG_MLX4_EN is not set
649# CONFIG_MLX4_CORE is not set 643# CONFIG_MLX4_CORE is not set
650# CONFIG_TEHUTI is not set 644# CONFIG_TEHUTI is not set
651# CONFIG_BNX2X is not set 645# CONFIG_BNX2X is not set
646# CONFIG_QLGE is not set
652# CONFIG_SFC is not set 647# CONFIG_SFC is not set
653# CONFIG_TR is not set 648# CONFIG_TR is not set
654 649
@@ -714,14 +709,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
714# CONFIG_SERIAL_UARTLITE is not set 709# CONFIG_SERIAL_UARTLITE is not set
715CONFIG_SERIAL_CORE=y 710CONFIG_SERIAL_CORE=y
716CONFIG_SERIAL_CORE_CONSOLE=y 711CONFIG_SERIAL_CORE_CONSOLE=y
717# CONFIG_SERIAL_PMACZILOG is not set
718# CONFIG_SERIAL_JSM is not set 712# CONFIG_SERIAL_JSM is not set
719# CONFIG_SERIAL_OF_PLATFORM is not set 713# CONFIG_SERIAL_OF_PLATFORM is not set
720CONFIG_UNIX98_PTYS=y 714CONFIG_UNIX98_PTYS=y
721CONFIG_LEGACY_PTYS=y 715CONFIG_LEGACY_PTYS=y
722CONFIG_LEGACY_PTY_COUNT=256 716CONFIG_LEGACY_PTY_COUNT=256
723# CONFIG_BRIQ_PANEL is not set
724# CONFIG_HVC_RTAS is not set
725# CONFIG_IPMI_HANDLER is not set 717# CONFIG_IPMI_HANDLER is not set
726CONFIG_HW_RANDOM=y 718CONFIG_HW_RANDOM=y
727# CONFIG_NVRAM is not set 719# CONFIG_NVRAM is not set
@@ -758,12 +750,6 @@ CONFIG_I2C_HELPER_AUTO=y
758# CONFIG_I2C_VIAPRO is not set 750# CONFIG_I2C_VIAPRO is not set
759 751
760# 752#
761# Mac SMBus host controller drivers
762#
763# CONFIG_I2C_HYDRA is not set
764CONFIG_I2C_POWERMAC=y
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip) 753# I2C system bus drivers (mostly embedded / system-on-chip)
768# 754#
769CONFIG_I2C_MPC=y 755CONFIG_I2C_MPC=y
@@ -800,6 +786,7 @@ CONFIG_SENSORS_PCF8574=y
800# CONFIG_SENSORS_PCF8591 is not set 786# CONFIG_SENSORS_PCF8591 is not set
801# CONFIG_SENSORS_MAX6875 is not set 787# CONFIG_SENSORS_MAX6875 is not set
802# CONFIG_SENSORS_TSL2550 is not set 788# CONFIG_SENSORS_TSL2550 is not set
789# CONFIG_MCU_MPC8349EMITX is not set
803# CONFIG_I2C_DEBUG_CORE is not set 790# CONFIG_I2C_DEBUG_CORE is not set
804# CONFIG_I2C_DEBUG_ALGO is not set 791# CONFIG_I2C_DEBUG_ALGO is not set
805# CONFIG_I2C_DEBUG_BUS is not set 792# CONFIG_I2C_DEBUG_BUS is not set
@@ -835,7 +822,6 @@ CONFIG_WATCHDOG=y
835# CONFIG_SOFT_WATCHDOG is not set 822# CONFIG_SOFT_WATCHDOG is not set
836# CONFIG_ALIM7101_WDT is not set 823# CONFIG_ALIM7101_WDT is not set
837# CONFIG_8xxx_WDT is not set 824# CONFIG_8xxx_WDT is not set
838# CONFIG_WATCHDOG_RTAS is not set
839 825
840# 826#
841# PCI-based Watchdog Cards 827# PCI-based Watchdog Cards
@@ -861,6 +847,17 @@ CONFIG_SSB_POSSIBLE=y
861# CONFIG_MFD_SM501 is not set 847# CONFIG_MFD_SM501 is not set
862# CONFIG_HTC_PASIC3 is not set 848# CONFIG_HTC_PASIC3 is not set
863# CONFIG_MFD_TMIO is not set 849# CONFIG_MFD_TMIO is not set
850# CONFIG_PMIC_DA903X is not set
851# CONFIG_MFD_WM8400 is not set
852# CONFIG_MFD_WM8350_I2C is not set
853
854#
855# Voltage and Current regulators
856#
857# CONFIG_REGULATOR is not set
858# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
859# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
860# CONFIG_REGULATOR_BQ24022 is not set
864 861
865# 862#
866# Multimedia devices 863# Multimedia devices
@@ -912,6 +909,8 @@ CONFIG_USB_DEVICE_CLASS=y
912# CONFIG_USB_OTG_WHITELIST is not set 909# CONFIG_USB_OTG_WHITELIST is not set
913# CONFIG_USB_OTG_BLACKLIST_HUB is not set 910# CONFIG_USB_OTG_BLACKLIST_HUB is not set
914CONFIG_USB_MON=y 911CONFIG_USB_MON=y
912# CONFIG_USB_WUSB is not set
913# CONFIG_USB_WUSB_CBAF is not set
915 914
916# 915#
917# USB Host Controller Drivers 916# USB Host Controller Drivers
@@ -928,6 +927,8 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
928CONFIG_USB_UHCI_HCD=y 927CONFIG_USB_UHCI_HCD=y
929# CONFIG_USB_SL811_HCD is not set 928# CONFIG_USB_SL811_HCD is not set
930# CONFIG_USB_R8A66597_HCD is not set 929# CONFIG_USB_R8A66597_HCD is not set
930# CONFIG_USB_WHCI_HCD is not set
931# CONFIG_USB_HWA_HCD is not set
931 932
932# 933#
933# USB Device Class drivers 934# USB Device Class drivers
@@ -935,6 +936,7 @@ CONFIG_USB_UHCI_HCD=y
935# CONFIG_USB_ACM is not set 936# CONFIG_USB_ACM is not set
936# CONFIG_USB_PRINTER is not set 937# CONFIG_USB_PRINTER is not set
937# CONFIG_USB_WDM is not set 938# CONFIG_USB_WDM is not set
939# CONFIG_USB_TMC is not set
938 940
939# 941#
940# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 942# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -955,7 +957,6 @@ CONFIG_USB_STORAGE=y
955# CONFIG_USB_STORAGE_JUMPSHOT is not set 957# CONFIG_USB_STORAGE_JUMPSHOT is not set
956# CONFIG_USB_STORAGE_ALAUDA is not set 958# CONFIG_USB_STORAGE_ALAUDA is not set
957# CONFIG_USB_STORAGE_KARMA is not set 959# CONFIG_USB_STORAGE_KARMA is not set
958# CONFIG_USB_STORAGE_SIERRA is not set
959# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 960# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
960# CONFIG_USB_LIBUSUAL is not set 961# CONFIG_USB_LIBUSUAL is not set
961 962
@@ -976,6 +977,7 @@ CONFIG_USB_STORAGE=y
976# CONFIG_USB_EMI62 is not set 977# CONFIG_USB_EMI62 is not set
977# CONFIG_USB_EMI26 is not set 978# CONFIG_USB_EMI26 is not set
978# CONFIG_USB_ADUTUX is not set 979# CONFIG_USB_ADUTUX is not set
980# CONFIG_USB_SEVSEG is not set
979# CONFIG_USB_RIO500 is not set 981# CONFIG_USB_RIO500 is not set
980# CONFIG_USB_LEGOTOWER is not set 982# CONFIG_USB_LEGOTOWER is not set
981# CONFIG_USB_LCD is not set 983# CONFIG_USB_LCD is not set
@@ -992,7 +994,9 @@ CONFIG_USB_STORAGE=y
992# CONFIG_USB_TRANCEVIBRATOR is not set 994# CONFIG_USB_TRANCEVIBRATOR is not set
993# CONFIG_USB_IOWARRIOR is not set 995# CONFIG_USB_IOWARRIOR is not set
994# CONFIG_USB_ISIGHTFW is not set 996# CONFIG_USB_ISIGHTFW is not set
997# CONFIG_USB_VST is not set
995# CONFIG_USB_GADGET is not set 998# CONFIG_USB_GADGET is not set
999# CONFIG_UWB is not set
996# CONFIG_MMC is not set 1000# CONFIG_MMC is not set
997# CONFIG_MEMSTICK is not set 1001# CONFIG_MEMSTICK is not set
998# CONFIG_NEW_LEDS is not set 1002# CONFIG_NEW_LEDS is not set
@@ -1038,17 +1042,21 @@ CONFIG_RTC_DRV_DS1307=y
1038# CONFIG_RTC_DRV_MAX6902 is not set 1042# CONFIG_RTC_DRV_MAX6902 is not set
1039# CONFIG_RTC_DRV_R9701 is not set 1043# CONFIG_RTC_DRV_R9701 is not set
1040# CONFIG_RTC_DRV_RS5C348 is not set 1044# CONFIG_RTC_DRV_RS5C348 is not set
1045# CONFIG_RTC_DRV_DS3234 is not set
1041 1046
1042# 1047#
1043# Platform RTC drivers 1048# Platform RTC drivers
1044# 1049#
1045# CONFIG_RTC_DRV_CMOS is not set 1050# CONFIG_RTC_DRV_CMOS is not set
1051# CONFIG_RTC_DRV_DS1286 is not set
1046# CONFIG_RTC_DRV_DS1511 is not set 1052# CONFIG_RTC_DRV_DS1511 is not set
1047# CONFIG_RTC_DRV_DS1553 is not set 1053# CONFIG_RTC_DRV_DS1553 is not set
1048# CONFIG_RTC_DRV_DS1742 is not set 1054# CONFIG_RTC_DRV_DS1742 is not set
1049# CONFIG_RTC_DRV_STK17TA8 is not set 1055# CONFIG_RTC_DRV_STK17TA8 is not set
1050# CONFIG_RTC_DRV_M48T86 is not set 1056# CONFIG_RTC_DRV_M48T86 is not set
1057# CONFIG_RTC_DRV_M48T35 is not set
1051# CONFIG_RTC_DRV_M48T59 is not set 1058# CONFIG_RTC_DRV_M48T59 is not set
1059# CONFIG_RTC_DRV_BQ4802 is not set
1052# CONFIG_RTC_DRV_V3020 is not set 1060# CONFIG_RTC_DRV_V3020 is not set
1053 1061
1054# 1062#
@@ -1057,6 +1065,7 @@ CONFIG_RTC_DRV_DS1307=y
1057# CONFIG_RTC_DRV_PPC is not set 1065# CONFIG_RTC_DRV_PPC is not set
1058# CONFIG_DMADEVICES is not set 1066# CONFIG_DMADEVICES is not set
1059# CONFIG_UIO is not set 1067# CONFIG_UIO is not set
1068# CONFIG_STAGING is not set
1060 1069
1061# 1070#
1062# File systems 1071# File systems
@@ -1068,12 +1077,13 @@ CONFIG_EXT3_FS=y
1068CONFIG_EXT3_FS_XATTR=y 1077CONFIG_EXT3_FS_XATTR=y
1069# CONFIG_EXT3_FS_POSIX_ACL is not set 1078# CONFIG_EXT3_FS_POSIX_ACL is not set
1070# CONFIG_EXT3_FS_SECURITY is not set 1079# CONFIG_EXT3_FS_SECURITY is not set
1071# CONFIG_EXT4DEV_FS is not set 1080# CONFIG_EXT4_FS is not set
1072CONFIG_JBD=y 1081CONFIG_JBD=y
1073CONFIG_FS_MBCACHE=y 1082CONFIG_FS_MBCACHE=y
1074# CONFIG_REISERFS_FS is not set 1083# CONFIG_REISERFS_FS is not set
1075# CONFIG_JFS_FS is not set 1084# CONFIG_JFS_FS is not set
1076# CONFIG_FS_POSIX_ACL is not set 1085# CONFIG_FS_POSIX_ACL is not set
1086CONFIG_FILE_LOCKING=y
1077# CONFIG_XFS_FS is not set 1087# CONFIG_XFS_FS is not set
1078# CONFIG_OCFS2_FS is not set 1088# CONFIG_OCFS2_FS is not set
1079CONFIG_DNOTIFY=y 1089CONFIG_DNOTIFY=y
@@ -1106,6 +1116,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1106CONFIG_PROC_FS=y 1116CONFIG_PROC_FS=y
1107CONFIG_PROC_KCORE=y 1117CONFIG_PROC_KCORE=y
1108CONFIG_PROC_SYSCTL=y 1118CONFIG_PROC_SYSCTL=y
1119CONFIG_PROC_PAGE_MONITOR=y
1109CONFIG_SYSFS=y 1120CONFIG_SYSFS=y
1110CONFIG_TMPFS=y 1121CONFIG_TMPFS=y
1111# CONFIG_TMPFS_POSIX_ACL is not set 1122# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1144,6 +1155,7 @@ CONFIG_LOCKD_V4=y
1144CONFIG_NFS_COMMON=y 1155CONFIG_NFS_COMMON=y
1145CONFIG_SUNRPC=y 1156CONFIG_SUNRPC=y
1146CONFIG_SUNRPC_GSS=y 1157CONFIG_SUNRPC_GSS=y
1158# CONFIG_SUNRPC_REGISTER_V4 is not set
1147CONFIG_RPCSEC_GSS_KRB5=y 1159CONFIG_RPCSEC_GSS_KRB5=y
1148# CONFIG_RPCSEC_GSS_SPKM3 is not set 1160# CONFIG_RPCSEC_GSS_SPKM3 is not set
1149# CONFIG_SMB_FS is not set 1161# CONFIG_SMB_FS is not set
@@ -1219,7 +1231,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1219# Library routines 1231# Library routines
1220# 1232#
1221CONFIG_BITREVERSE=y 1233CONFIG_BITREVERSE=y
1222# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1223# CONFIG_CRC_CCITT is not set 1234# CONFIG_CRC_CCITT is not set
1224# CONFIG_CRC16 is not set 1235# CONFIG_CRC16 is not set
1225CONFIG_CRC_T10DIF=y 1236CONFIG_CRC_T10DIF=y
@@ -1249,13 +1260,15 @@ CONFIG_FRAME_WARN=1024
1249# CONFIG_SLUB_STATS is not set 1260# CONFIG_SLUB_STATS is not set
1250# CONFIG_DEBUG_BUGVERBOSE is not set 1261# CONFIG_DEBUG_BUGVERBOSE is not set
1251# CONFIG_DEBUG_MEMORY_INIT is not set 1262# CONFIG_DEBUG_MEMORY_INIT is not set
1263# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1252# CONFIG_LATENCYTOP is not set 1264# CONFIG_LATENCYTOP is not set
1253CONFIG_SYSCTL_SYSCALL_CHECK=y 1265CONFIG_SYSCTL_SYSCALL_CHECK=y
1254CONFIG_HAVE_FTRACE=y 1266CONFIG_HAVE_FUNCTION_TRACER=y
1255CONFIG_HAVE_DYNAMIC_FTRACE=y 1267
1256# CONFIG_FTRACE is not set 1268#
1257# CONFIG_SCHED_TRACER is not set 1269# Tracers
1258# CONFIG_CONTEXT_SWITCH_TRACER is not set 1270#
1271# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1259# CONFIG_SAMPLES is not set 1272# CONFIG_SAMPLES is not set
1260CONFIG_HAVE_ARCH_KGDB=y 1273CONFIG_HAVE_ARCH_KGDB=y
1261# CONFIG_IRQSTACKS is not set 1274# CONFIG_IRQSTACKS is not set
@@ -1267,14 +1280,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1267# 1280#
1268# CONFIG_KEYS is not set 1281# CONFIG_KEYS is not set
1269# CONFIG_SECURITY is not set 1282# CONFIG_SECURITY is not set
1283# CONFIG_SECURITYFS is not set
1270# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1284# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1271CONFIG_CRYPTO=y 1285CONFIG_CRYPTO=y
1272 1286
1273# 1287#
1274# Crypto core or helper 1288# Crypto core or helper
1275# 1289#
1290# CONFIG_CRYPTO_FIPS is not set
1276CONFIG_CRYPTO_ALGAPI=y 1291CONFIG_CRYPTO_ALGAPI=y
1292CONFIG_CRYPTO_AEAD=y
1277CONFIG_CRYPTO_BLKCIPHER=y 1293CONFIG_CRYPTO_BLKCIPHER=y
1294CONFIG_CRYPTO_HASH=y
1295CONFIG_CRYPTO_RNG=y
1278CONFIG_CRYPTO_MANAGER=y 1296CONFIG_CRYPTO_MANAGER=y
1279# CONFIG_CRYPTO_GF128MUL is not set 1297# CONFIG_CRYPTO_GF128MUL is not set
1280# CONFIG_CRYPTO_NULL is not set 1298# CONFIG_CRYPTO_NULL is not set
@@ -1347,6 +1365,11 @@ CONFIG_CRYPTO_DES=y
1347# 1365#
1348# CONFIG_CRYPTO_DEFLATE is not set 1366# CONFIG_CRYPTO_DEFLATE is not set
1349# CONFIG_CRYPTO_LZO is not set 1367# CONFIG_CRYPTO_LZO is not set
1368
1369#
1370# Random Number Generation
1371#
1372# CONFIG_CRYPTO_ANSI_CPRNG is not set
1350CONFIG_CRYPTO_HW=y 1373CONFIG_CRYPTO_HW=y
1351# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1374# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1352# CONFIG_CRYPTO_DEV_TALITOS is not set 1375# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 1a92798938cf..36e2e93a1c53 100644
--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:21 2008 4# Sat Nov 8 12:39:58 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
114CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -121,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -157,6 +152,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
160 156
161# 157#
162# Platform support 158# Platform support
@@ -164,10 +160,10 @@ CONFIG_CLASSIC_RCU=y
164CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_PMAC is not set
168# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
166# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set 169# CONFIG_PPC_82xx is not set
@@ -187,24 +183,21 @@ CONFIG_MPC834x_MDS=y
187CONFIG_PPC_MPC834x=y 183CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
192CONFIG_IPIC=y 186CONFIG_IPIC=y
193CONFIG_MPIC=y 187# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
195CONFIG_PPC_I8259=y 189# CONFIG_PPC_I8259 is not set
196CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
199# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
200CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
201# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
202# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
203# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
204# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set 197# CONFIG_TAU is not set
198# CONFIG_QUICC_ENGINE is not set
207# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
200# CONFIG_MPC8xxx_GPIO is not set
208 201
209# 202#
210# Kernel options 203# Kernel options
@@ -224,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
224# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
225# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
226CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
227# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
228# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -238,15 +233,15 @@ CONFIG_FLATMEM_MANUAL=y
238# CONFIG_SPARSEMEM_MANUAL is not set 233# CONFIG_SPARSEMEM_MANUAL is not set
239CONFIG_FLATMEM=y 234CONFIG_FLATMEM=y
240CONFIG_FLAT_NODE_MEM_MAP=y 235CONFIG_FLAT_NODE_MEM_MAP=y
241# CONFIG_SPARSEMEM_STATIC is not set
242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
243CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
244CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
246# CONFIG_RESOURCES_64BIT is not set 239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y
250CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
@@ -258,7 +253,6 @@ CONFIG_ISA_DMA_API=y
258# 253#
259# Bus options 254# Bus options
260# 255#
261# CONFIG_ISA is not set
262CONFIG_ZONE_DMA=y 256CONFIG_ZONE_DMA=y
263CONFIG_GENERIC_ISA_DMA=y 257CONFIG_GENERIC_ISA_DMA=y
264CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
@@ -271,7 +265,7 @@ CONFIG_PCI_SYSCALL=y
271# CONFIG_PCIEPORTBUS is not set 265# CONFIG_PCIEPORTBUS is not set
272CONFIG_ARCH_SUPPORTS_MSI=y 266CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 267# CONFIG_PCI_MSI is not set
274CONFIG_PCI_LEGACY=y 268# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -339,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_TIPC is not set 333# CONFIG_TIPC is not set
340# CONFIG_ATM is not set 334# CONFIG_ATM is not set
341# CONFIG_BRIDGE is not set 335# CONFIG_BRIDGE is not set
336# CONFIG_NET_DSA is not set
342# CONFIG_VLAN_8021Q is not set 337# CONFIG_VLAN_8021Q is not set
343# CONFIG_DECNET is not set 338# CONFIG_DECNET is not set
344# CONFIG_LLC2 is not set 339# CONFIG_LLC2 is not set
@@ -359,11 +354,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_IRDA is not set 354# CONFIG_IRDA is not set
360# CONFIG_BT is not set 355# CONFIG_BT is not set
361# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
362 357# CONFIG_PHONET is not set
363# 358CONFIG_WIRELESS=y
364# Wireless
365#
366# CONFIG_CFG80211 is not set 359# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y
367# CONFIG_WIRELESS_EXT is not set 361# CONFIG_WIRELESS_EXT is not set
368# CONFIG_MAC80211 is not set 362# CONFIG_MAC80211 is not set
369# CONFIG_IEEE80211 is not set 363# CONFIG_IEEE80211 is not set
@@ -389,7 +383,6 @@ CONFIG_OF_I2C=y
389# CONFIG_PARPORT is not set 383# CONFIG_PARPORT is not set
390CONFIG_BLK_DEV=y 384CONFIG_BLK_DEV=y
391# CONFIG_BLK_DEV_FD is not set 385# CONFIG_BLK_DEV_FD is not set
392# CONFIG_MAC_FLOPPY is not set
393# CONFIG_BLK_CPQ_DA is not set 386# CONFIG_BLK_CPQ_DA is not set
394# CONFIG_BLK_CPQ_CISS_DA is not set 387# CONFIG_BLK_CPQ_CISS_DA is not set
395# CONFIG_BLK_DEV_DAC960 is not set 388# CONFIG_BLK_DEV_DAC960 is not set
@@ -465,8 +458,6 @@ CONFIG_MARVELL_PHY=y
465# CONFIG_MDIO_BITBANG is not set 458# CONFIG_MDIO_BITBANG is not set
466CONFIG_NET_ETHERNET=y 459CONFIG_NET_ETHERNET=y
467CONFIG_MII=y 460CONFIG_MII=y
468# CONFIG_MACE is not set
469# CONFIG_BMAC is not set
470# CONFIG_HAPPYMEAL is not set 461# CONFIG_HAPPYMEAL is not set
471# CONFIG_SUNGEM is not set 462# CONFIG_SUNGEM is not set
472# CONFIG_CASSINI is not set 463# CONFIG_CASSINI is not set
@@ -477,6 +468,9 @@ CONFIG_MII=y
477# CONFIG_IBM_NEW_EMAC_RGMII is not set 468# CONFIG_IBM_NEW_EMAC_RGMII is not set
478# CONFIG_IBM_NEW_EMAC_TAH is not set 469# CONFIG_IBM_NEW_EMAC_TAH is not set
479# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 470# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
471# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
472# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
473# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
480CONFIG_NET_PCI=y 474CONFIG_NET_PCI=y
481# CONFIG_PCNET32 is not set 475# CONFIG_PCNET32 is not set
482# CONFIG_AMD8111_ETH is not set 476# CONFIG_AMD8111_ETH is not set
@@ -497,6 +491,7 @@ CONFIG_E100=y
497# CONFIG_TLAN is not set 491# CONFIG_TLAN is not set
498# CONFIG_VIA_RHINE is not set 492# CONFIG_VIA_RHINE is not set
499# CONFIG_SC92031 is not set 493# CONFIG_SC92031 is not set
494# CONFIG_ATL2 is not set
500CONFIG_NETDEV_1000=y 495CONFIG_NETDEV_1000=y
501# CONFIG_ACENIC is not set 496# CONFIG_ACENIC is not set
502# CONFIG_DL2K is not set 497# CONFIG_DL2K is not set
@@ -519,18 +514,22 @@ CONFIG_GIANFAR=y
519# CONFIG_QLA3XXX is not set 514# CONFIG_QLA3XXX is not set
520# CONFIG_ATL1 is not set 515# CONFIG_ATL1 is not set
521# CONFIG_ATL1E is not set 516# CONFIG_ATL1E is not set
517# CONFIG_JME is not set
522CONFIG_NETDEV_10000=y 518CONFIG_NETDEV_10000=y
523# CONFIG_CHELSIO_T1 is not set 519# CONFIG_CHELSIO_T1 is not set
524# CONFIG_CHELSIO_T3 is not set 520# CONFIG_CHELSIO_T3 is not set
521# CONFIG_ENIC is not set
525# CONFIG_IXGBE is not set 522# CONFIG_IXGBE is not set
526# CONFIG_IXGB is not set 523# CONFIG_IXGB is not set
527# CONFIG_S2IO is not set 524# CONFIG_S2IO is not set
528# CONFIG_MYRI10GE is not set 525# CONFIG_MYRI10GE is not set
529# CONFIG_NETXEN_NIC is not set 526# CONFIG_NETXEN_NIC is not set
530# CONFIG_NIU is not set 527# CONFIG_NIU is not set
528# CONFIG_MLX4_EN is not set
531# CONFIG_MLX4_CORE is not set 529# CONFIG_MLX4_CORE is not set
532# CONFIG_TEHUTI is not set 530# CONFIG_TEHUTI is not set
533# CONFIG_BNX2X is not set 531# CONFIG_BNX2X is not set
532# CONFIG_QLGE is not set
534# CONFIG_SFC is not set 533# CONFIG_SFC is not set
535# CONFIG_TR is not set 534# CONFIG_TR is not set
536 535
@@ -606,14 +605,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
606# CONFIG_SERIAL_UARTLITE is not set 605# CONFIG_SERIAL_UARTLITE is not set
607CONFIG_SERIAL_CORE=y 606CONFIG_SERIAL_CORE=y
608CONFIG_SERIAL_CORE_CONSOLE=y 607CONFIG_SERIAL_CORE_CONSOLE=y
609# CONFIG_SERIAL_PMACZILOG is not set
610# CONFIG_SERIAL_JSM is not set 608# CONFIG_SERIAL_JSM is not set
611# CONFIG_SERIAL_OF_PLATFORM is not set 609# CONFIG_SERIAL_OF_PLATFORM is not set
612CONFIG_UNIX98_PTYS=y 610CONFIG_UNIX98_PTYS=y
613CONFIG_LEGACY_PTYS=y 611CONFIG_LEGACY_PTYS=y
614CONFIG_LEGACY_PTY_COUNT=256 612CONFIG_LEGACY_PTY_COUNT=256
615# CONFIG_BRIQ_PANEL is not set
616# CONFIG_HVC_RTAS is not set
617# CONFIG_IPMI_HANDLER is not set 613# CONFIG_IPMI_HANDLER is not set
618# CONFIG_HW_RANDOM is not set 614# CONFIG_HW_RANDOM is not set
619# CONFIG_NVRAM is not set 615# CONFIG_NVRAM is not set
@@ -650,12 +646,6 @@ CONFIG_I2C_HELPER_AUTO=y
650# CONFIG_I2C_VIAPRO is not set 646# CONFIG_I2C_VIAPRO is not set
651 647
652# 648#
653# Mac SMBus host controller drivers
654#
655# CONFIG_I2C_HYDRA is not set
656CONFIG_I2C_POWERMAC=y
657
658#
659# I2C system bus drivers (mostly embedded / system-on-chip) 649# I2C system bus drivers (mostly embedded / system-on-chip)
660# 650#
661CONFIG_I2C_MPC=y 651CONFIG_I2C_MPC=y
@@ -691,6 +681,7 @@ CONFIG_I2C_MPC=y
691# CONFIG_SENSORS_PCF8591 is not set 681# CONFIG_SENSORS_PCF8591 is not set
692# CONFIG_SENSORS_MAX6875 is not set 682# CONFIG_SENSORS_MAX6875 is not set
693# CONFIG_SENSORS_TSL2550 is not set 683# CONFIG_SENSORS_TSL2550 is not set
684# CONFIG_MCU_MPC8349EMITX is not set
694# CONFIG_I2C_DEBUG_CORE is not set 685# CONFIG_I2C_DEBUG_CORE is not set
695# CONFIG_I2C_DEBUG_ALGO is not set 686# CONFIG_I2C_DEBUG_ALGO is not set
696# CONFIG_I2C_DEBUG_BUS is not set 687# CONFIG_I2C_DEBUG_BUS is not set
@@ -712,7 +703,6 @@ CONFIG_HWMON=y
712# CONFIG_SENSORS_ADM9240 is not set 703# CONFIG_SENSORS_ADM9240 is not set
713# CONFIG_SENSORS_ADT7470 is not set 704# CONFIG_SENSORS_ADT7470 is not set
714# CONFIG_SENSORS_ADT7473 is not set 705# CONFIG_SENSORS_ADT7473 is not set
715# CONFIG_SENSORS_AMS is not set
716# CONFIG_SENSORS_ATXP1 is not set 706# CONFIG_SENSORS_ATXP1 is not set
717# CONFIG_SENSORS_DS1621 is not set 707# CONFIG_SENSORS_DS1621 is not set
718# CONFIG_SENSORS_I5K_AMB is not set 708# CONFIG_SENSORS_I5K_AMB is not set
@@ -767,7 +757,6 @@ CONFIG_WATCHDOG=y
767# CONFIG_SOFT_WATCHDOG is not set 757# CONFIG_SOFT_WATCHDOG is not set
768# CONFIG_ALIM7101_WDT is not set 758# CONFIG_ALIM7101_WDT is not set
769# CONFIG_8xxx_WDT is not set 759# CONFIG_8xxx_WDT is not set
770# CONFIG_WATCHDOG_RTAS is not set
771 760
772# 761#
773# PCI-based Watchdog Cards 762# PCI-based Watchdog Cards
@@ -788,6 +777,17 @@ CONFIG_SSB_POSSIBLE=y
788# CONFIG_MFD_SM501 is not set 777# CONFIG_MFD_SM501 is not set
789# CONFIG_HTC_PASIC3 is not set 778# CONFIG_HTC_PASIC3 is not set
790# CONFIG_MFD_TMIO is not set 779# CONFIG_MFD_TMIO is not set
780# CONFIG_PMIC_DA903X is not set
781# CONFIG_MFD_WM8400 is not set
782# CONFIG_MFD_WM8350_I2C is not set
783
784#
785# Voltage and Current regulators
786#
787# CONFIG_REGULATOR is not set
788# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
789# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
790# CONFIG_REGULATOR_BQ24022 is not set
791 791
792# 792#
793# Multimedia devices 793# Multimedia devices
@@ -824,6 +824,12 @@ CONFIG_HID_SUPPORT=y
824CONFIG_HID=y 824CONFIG_HID=y
825# CONFIG_HID_DEBUG is not set 825# CONFIG_HID_DEBUG is not set
826# CONFIG_HIDRAW is not set 826# CONFIG_HIDRAW is not set
827# CONFIG_HID_PID is not set
828
829#
830# Special HID drivers
831#
832CONFIG_HID_COMPAT=y
827CONFIG_USB_SUPPORT=y 833CONFIG_USB_SUPPORT=y
828CONFIG_USB_ARCH_HAS_HCD=y 834CONFIG_USB_ARCH_HAS_HCD=y
829CONFIG_USB_ARCH_HAS_OHCI=y 835CONFIG_USB_ARCH_HAS_OHCI=y
@@ -840,6 +846,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
840# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 846# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
841# 847#
842# CONFIG_USB_GADGET is not set 848# CONFIG_USB_GADGET is not set
849# CONFIG_UWB is not set
843# CONFIG_MMC is not set 850# CONFIG_MMC is not set
844# CONFIG_MEMSTICK is not set 851# CONFIG_MEMSTICK is not set
845# CONFIG_NEW_LEDS is not set 852# CONFIG_NEW_LEDS is not set
@@ -885,12 +892,15 @@ CONFIG_RTC_DRV_DS1374=y
885# Platform RTC drivers 892# Platform RTC drivers
886# 893#
887# CONFIG_RTC_DRV_CMOS is not set 894# CONFIG_RTC_DRV_CMOS is not set
895# CONFIG_RTC_DRV_DS1286 is not set
888# CONFIG_RTC_DRV_DS1511 is not set 896# CONFIG_RTC_DRV_DS1511 is not set
889# CONFIG_RTC_DRV_DS1553 is not set 897# CONFIG_RTC_DRV_DS1553 is not set
890# CONFIG_RTC_DRV_DS1742 is not set 898# CONFIG_RTC_DRV_DS1742 is not set
891# CONFIG_RTC_DRV_STK17TA8 is not set 899# CONFIG_RTC_DRV_STK17TA8 is not set
892# CONFIG_RTC_DRV_M48T86 is not set 900# CONFIG_RTC_DRV_M48T86 is not set
901# CONFIG_RTC_DRV_M48T35 is not set
893# CONFIG_RTC_DRV_M48T59 is not set 902# CONFIG_RTC_DRV_M48T59 is not set
903# CONFIG_RTC_DRV_BQ4802 is not set
894# CONFIG_RTC_DRV_V3020 is not set 904# CONFIG_RTC_DRV_V3020 is not set
895 905
896# 906#
@@ -899,6 +909,7 @@ CONFIG_RTC_DRV_DS1374=y
899# CONFIG_RTC_DRV_PPC is not set 909# CONFIG_RTC_DRV_PPC is not set
900# CONFIG_DMADEVICES is not set 910# CONFIG_DMADEVICES is not set
901# CONFIG_UIO is not set 911# CONFIG_UIO is not set
912# CONFIG_STAGING is not set
902 913
903# 914#
904# File systems 915# File systems
@@ -910,12 +921,13 @@ CONFIG_EXT3_FS=y
910CONFIG_EXT3_FS_XATTR=y 921CONFIG_EXT3_FS_XATTR=y
911# CONFIG_EXT3_FS_POSIX_ACL is not set 922# CONFIG_EXT3_FS_POSIX_ACL is not set
912# CONFIG_EXT3_FS_SECURITY is not set 923# CONFIG_EXT3_FS_SECURITY is not set
913# CONFIG_EXT4DEV_FS is not set 924# CONFIG_EXT4_FS is not set
914CONFIG_JBD=y 925CONFIG_JBD=y
915CONFIG_FS_MBCACHE=y 926CONFIG_FS_MBCACHE=y
916# CONFIG_REISERFS_FS is not set 927# CONFIG_REISERFS_FS is not set
917# CONFIG_JFS_FS is not set 928# CONFIG_JFS_FS is not set
918# CONFIG_FS_POSIX_ACL is not set 929# CONFIG_FS_POSIX_ACL is not set
930CONFIG_FILE_LOCKING=y
919# CONFIG_XFS_FS is not set 931# CONFIG_XFS_FS is not set
920# CONFIG_OCFS2_FS is not set 932# CONFIG_OCFS2_FS is not set
921CONFIG_DNOTIFY=y 933CONFIG_DNOTIFY=y
@@ -945,6 +957,7 @@ CONFIG_INOTIFY_USER=y
945CONFIG_PROC_FS=y 957CONFIG_PROC_FS=y
946CONFIG_PROC_KCORE=y 958CONFIG_PROC_KCORE=y
947CONFIG_PROC_SYSCTL=y 959CONFIG_PROC_SYSCTL=y
960CONFIG_PROC_PAGE_MONITOR=y
948CONFIG_SYSFS=y 961CONFIG_SYSFS=y
949CONFIG_TMPFS=y 962CONFIG_TMPFS=y
950# CONFIG_TMPFS_POSIX_ACL is not set 963# CONFIG_TMPFS_POSIX_ACL is not set
@@ -982,6 +995,7 @@ CONFIG_LOCKD_V4=y
982CONFIG_NFS_COMMON=y 995CONFIG_NFS_COMMON=y
983CONFIG_SUNRPC=y 996CONFIG_SUNRPC=y
984CONFIG_SUNRPC_GSS=y 997CONFIG_SUNRPC_GSS=y
998# CONFIG_SUNRPC_REGISTER_V4 is not set
985CONFIG_RPCSEC_GSS_KRB5=y 999CONFIG_RPCSEC_GSS_KRB5=y
986# CONFIG_RPCSEC_GSS_SPKM3 is not set 1000# CONFIG_RPCSEC_GSS_SPKM3 is not set
987# CONFIG_SMB_FS is not set 1001# CONFIG_SMB_FS is not set
@@ -1014,7 +1028,6 @@ CONFIG_PARTITION_ADVANCED=y
1014# Library routines 1028# Library routines
1015# 1029#
1016CONFIG_BITREVERSE=y 1030CONFIG_BITREVERSE=y
1017# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1018# CONFIG_CRC_CCITT is not set 1031# CONFIG_CRC_CCITT is not set
1019# CONFIG_CRC16 is not set 1032# CONFIG_CRC16 is not set
1020# CONFIG_CRC_T10DIF is not set 1033# CONFIG_CRC_T10DIF is not set
@@ -1044,13 +1057,15 @@ CONFIG_FRAME_WARN=1024
1044# CONFIG_SLUB_STATS is not set 1057# CONFIG_SLUB_STATS is not set
1045# CONFIG_DEBUG_BUGVERBOSE is not set 1058# CONFIG_DEBUG_BUGVERBOSE is not set
1046# CONFIG_DEBUG_MEMORY_INIT is not set 1059# CONFIG_DEBUG_MEMORY_INIT is not set
1060# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1047# CONFIG_LATENCYTOP is not set 1061# CONFIG_LATENCYTOP is not set
1048CONFIG_SYSCTL_SYSCALL_CHECK=y 1062CONFIG_SYSCTL_SYSCALL_CHECK=y
1049CONFIG_HAVE_FTRACE=y 1063CONFIG_HAVE_FUNCTION_TRACER=y
1050CONFIG_HAVE_DYNAMIC_FTRACE=y 1064
1051# CONFIG_FTRACE is not set 1065#
1052# CONFIG_SCHED_TRACER is not set 1066# Tracers
1053# CONFIG_CONTEXT_SWITCH_TRACER is not set 1067#
1068# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1054# CONFIG_SAMPLES is not set 1069# CONFIG_SAMPLES is not set
1055CONFIG_HAVE_ARCH_KGDB=y 1070CONFIG_HAVE_ARCH_KGDB=y
1056# CONFIG_IRQSTACKS is not set 1071# CONFIG_IRQSTACKS is not set
@@ -1062,14 +1077,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1062# 1077#
1063# CONFIG_KEYS is not set 1078# CONFIG_KEYS is not set
1064# CONFIG_SECURITY is not set 1079# CONFIG_SECURITY is not set
1080# CONFIG_SECURITYFS is not set
1065# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1081# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1066CONFIG_CRYPTO=y 1082CONFIG_CRYPTO=y
1067 1083
1068# 1084#
1069# Crypto core or helper 1085# Crypto core or helper
1070# 1086#
1087# CONFIG_CRYPTO_FIPS is not set
1071CONFIG_CRYPTO_ALGAPI=y 1088CONFIG_CRYPTO_ALGAPI=y
1089CONFIG_CRYPTO_AEAD=y
1072CONFIG_CRYPTO_BLKCIPHER=y 1090CONFIG_CRYPTO_BLKCIPHER=y
1091CONFIG_CRYPTO_HASH=y
1092CONFIG_CRYPTO_RNG=y
1073CONFIG_CRYPTO_MANAGER=y 1093CONFIG_CRYPTO_MANAGER=y
1074# CONFIG_CRYPTO_GF128MUL is not set 1094# CONFIG_CRYPTO_GF128MUL is not set
1075# CONFIG_CRYPTO_NULL is not set 1095# CONFIG_CRYPTO_NULL is not set
@@ -1142,6 +1162,11 @@ CONFIG_CRYPTO_DES=y
1142# 1162#
1143# CONFIG_CRYPTO_DEFLATE is not set 1163# CONFIG_CRYPTO_DEFLATE is not set
1144# CONFIG_CRYPTO_LZO is not set 1164# CONFIG_CRYPTO_LZO is not set
1165
1166#
1167# Random Number Generation
1168#
1169# CONFIG_CRYPTO_ANSI_CPRNG is not set
1145CONFIG_CRYPTO_HW=y 1170CONFIG_CRYPTO_HW=y
1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1171# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_CRYPTO_DEV_TALITOS is not set 1172# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 03d8cede0272..80eb6c9a05c4 100644
--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:22 2008 4# Sat Nov 8 12:39:59 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
114CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -121,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -157,6 +152,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
160 156
161# 157#
162# Platform support 158# Platform support
@@ -164,10 +160,10 @@ CONFIG_CLASSIC_RCU=y
164CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_PMAC is not set
168# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
166# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set 169# CONFIG_PPC_82xx is not set
@@ -186,24 +182,20 @@ CONFIG_MPC836x_MDS=y
186# CONFIG_ASP834x is not set 182# CONFIG_ASP834x is not set
187# CONFIG_PPC_86xx is not set 183# CONFIG_PPC_86xx is not set
188# CONFIG_EMBEDDED6xx is not set 184# CONFIG_EMBEDDED6xx is not set
189CONFIG_PPC_NATIVE=y
190# CONFIG_UDBG_RTAS_CONSOLE is not set
191CONFIG_IPIC=y 185CONFIG_IPIC=y
192CONFIG_MPIC=y 186# CONFIG_MPIC is not set
193# CONFIG_MPIC_WEIRD is not set 187# CONFIG_MPIC_WEIRD is not set
194CONFIG_PPC_I8259=y 188# CONFIG_PPC_I8259 is not set
195CONFIG_PPC_RTAS=y 189# CONFIG_PPC_RTAS is not set
196# CONFIG_RTAS_ERROR_LOGGING is not set
197CONFIG_RTAS_PROC=y
198# CONFIG_MMIO_NVRAM is not set 190# CONFIG_MMIO_NVRAM is not set
199CONFIG_PPC_MPC106=y 191# CONFIG_PPC_MPC106 is not set
200# CONFIG_PPC_970_NAP is not set 192# CONFIG_PPC_970_NAP is not set
201# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
202# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
203# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
204# CONFIG_PPC601_SYNC_FIX is not set
205# CONFIG_TAU is not set 196# CONFIG_TAU is not set
206CONFIG_QUICC_ENGINE=y 197CONFIG_QUICC_ENGINE=y
198# CONFIG_QE_GPIO is not set
207# CONFIG_FSL_ULI1575 is not set 199# CONFIG_FSL_ULI1575 is not set
208 200
209# 201#
@@ -224,6 +216,8 @@ CONFIG_PREEMPT_NONE=y
224# CONFIG_PREEMPT_VOLUNTARY is not set 216# CONFIG_PREEMPT_VOLUNTARY is not set
225# CONFIG_PREEMPT is not set 217# CONFIG_PREEMPT is not set
226CONFIG_BINFMT_ELF=y 218CONFIG_BINFMT_ELF=y
219# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
220# CONFIG_HAVE_AOUT is not set
227# CONFIG_BINFMT_MISC is not set 221# CONFIG_BINFMT_MISC is not set
228# CONFIG_IOMMU_HELPER is not set 222# CONFIG_IOMMU_HELPER is not set
229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 223CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -238,15 +232,15 @@ CONFIG_FLATMEM_MANUAL=y
238# CONFIG_SPARSEMEM_MANUAL is not set 232# CONFIG_SPARSEMEM_MANUAL is not set
239CONFIG_FLATMEM=y 233CONFIG_FLATMEM=y
240CONFIG_FLAT_NODE_MEM_MAP=y 234CONFIG_FLAT_NODE_MEM_MAP=y
241# CONFIG_SPARSEMEM_STATIC is not set
242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
243CONFIG_PAGEFLAGS_EXTENDED=y 235CONFIG_PAGEFLAGS_EXTENDED=y
244CONFIG_SPLIT_PTLOCK_CPUS=4 236CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y 237CONFIG_MIGRATION=y
246# CONFIG_RESOURCES_64BIT is not set 238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y
250CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -258,7 +252,6 @@ CONFIG_ISA_DMA_API=y
258# 252#
259# Bus options 253# Bus options
260# 254#
261# CONFIG_ISA is not set
262CONFIG_ZONE_DMA=y 255CONFIG_ZONE_DMA=y
263CONFIG_GENERIC_ISA_DMA=y 256CONFIG_GENERIC_ISA_DMA=y
264CONFIG_PPC_INDIRECT_PCI=y 257CONFIG_PPC_INDIRECT_PCI=y
@@ -271,7 +264,7 @@ CONFIG_PCI_SYSCALL=y
271# CONFIG_PCIEPORTBUS is not set 264# CONFIG_PCIEPORTBUS is not set
272CONFIG_ARCH_SUPPORTS_MSI=y 265CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 266# CONFIG_PCI_MSI is not set
274CONFIG_PCI_LEGACY=y 267# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 270# CONFIG_HAS_RAPIDIO is not set
@@ -339,6 +332,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_TIPC is not set 332# CONFIG_TIPC is not set
340# CONFIG_ATM is not set 333# CONFIG_ATM is not set
341# CONFIG_BRIDGE is not set 334# CONFIG_BRIDGE is not set
335# CONFIG_NET_DSA is not set
342# CONFIG_VLAN_8021Q is not set 336# CONFIG_VLAN_8021Q is not set
343# CONFIG_DECNET is not set 337# CONFIG_DECNET is not set
344# CONFIG_LLC2 is not set 338# CONFIG_LLC2 is not set
@@ -359,11 +353,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_IRDA is not set 353# CONFIG_IRDA is not set
360# CONFIG_BT is not set 354# CONFIG_BT is not set
361# CONFIG_AF_RXRPC is not set 355# CONFIG_AF_RXRPC is not set
362 356# CONFIG_PHONET is not set
363# 357CONFIG_WIRELESS=y
364# Wireless
365#
366# CONFIG_CFG80211 is not set 358# CONFIG_CFG80211 is not set
359CONFIG_WIRELESS_OLD_REGULATORY=y
367# CONFIG_WIRELESS_EXT is not set 360# CONFIG_WIRELESS_EXT is not set
368# CONFIG_MAC80211 is not set 361# CONFIG_MAC80211 is not set
369# CONFIG_IEEE80211 is not set 362# CONFIG_IEEE80211 is not set
@@ -466,7 +459,6 @@ CONFIG_OF_I2C=y
466# CONFIG_PARPORT is not set 459# CONFIG_PARPORT is not set
467CONFIG_BLK_DEV=y 460CONFIG_BLK_DEV=y
468# CONFIG_BLK_DEV_FD is not set 461# CONFIG_BLK_DEV_FD is not set
469# CONFIG_MAC_FLOPPY is not set
470# CONFIG_BLK_CPQ_DA is not set 462# CONFIG_BLK_CPQ_DA is not set
471# CONFIG_BLK_CPQ_CISS_DA is not set 463# CONFIG_BLK_CPQ_CISS_DA is not set
472# CONFIG_BLK_DEV_DAC960 is not set 464# CONFIG_BLK_DEV_DAC960 is not set
@@ -566,8 +558,6 @@ CONFIG_SCSI_LOWLEVEL=y
566# CONFIG_SCSI_DC390T is not set 558# CONFIG_SCSI_DC390T is not set
567# CONFIG_SCSI_NSP32 is not set 559# CONFIG_SCSI_NSP32 is not set
568# CONFIG_SCSI_DEBUG is not set 560# CONFIG_SCSI_DEBUG is not set
569# CONFIG_SCSI_MESH is not set
570# CONFIG_SCSI_MAC53C94 is not set
571# CONFIG_SCSI_SRP is not set 561# CONFIG_SCSI_SRP is not set
572# CONFIG_SCSI_DH is not set 562# CONFIG_SCSI_DH is not set
573# CONFIG_ATA is not set 563# CONFIG_ATA is not set
@@ -612,8 +602,6 @@ CONFIG_MARVELL_PHY=y
612# CONFIG_MDIO_BITBANG is not set 602# CONFIG_MDIO_BITBANG is not set
613CONFIG_NET_ETHERNET=y 603CONFIG_NET_ETHERNET=y
614CONFIG_MII=y 604CONFIG_MII=y
615# CONFIG_MACE is not set
616# CONFIG_BMAC is not set
617# CONFIG_HAPPYMEAL is not set 605# CONFIG_HAPPYMEAL is not set
618# CONFIG_SUNGEM is not set 606# CONFIG_SUNGEM is not set
619# CONFIG_CASSINI is not set 607# CONFIG_CASSINI is not set
@@ -624,8 +612,12 @@ CONFIG_MII=y
624# CONFIG_IBM_NEW_EMAC_RGMII is not set 612# CONFIG_IBM_NEW_EMAC_RGMII is not set
625# CONFIG_IBM_NEW_EMAC_TAH is not set 613# CONFIG_IBM_NEW_EMAC_TAH is not set
626# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 614# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
615# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
616# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
617# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
627# CONFIG_NET_PCI is not set 618# CONFIG_NET_PCI is not set
628# CONFIG_B44 is not set 619# CONFIG_B44 is not set
620# CONFIG_ATL2 is not set
629CONFIG_NETDEV_1000=y 621CONFIG_NETDEV_1000=y
630# CONFIG_ACENIC is not set 622# CONFIG_ACENIC is not set
631# CONFIG_DL2K is not set 623# CONFIG_DL2K is not set
@@ -652,18 +644,22 @@ CONFIG_UCC_GETH=y
652# CONFIG_QLA3XXX is not set 644# CONFIG_QLA3XXX is not set
653# CONFIG_ATL1 is not set 645# CONFIG_ATL1 is not set
654# CONFIG_ATL1E is not set 646# CONFIG_ATL1E is not set
647# CONFIG_JME is not set
655CONFIG_NETDEV_10000=y 648CONFIG_NETDEV_10000=y
656# CONFIG_CHELSIO_T1 is not set 649# CONFIG_CHELSIO_T1 is not set
657# CONFIG_CHELSIO_T3 is not set 650# CONFIG_CHELSIO_T3 is not set
651# CONFIG_ENIC is not set
658# CONFIG_IXGBE is not set 652# CONFIG_IXGBE is not set
659# CONFIG_IXGB is not set 653# CONFIG_IXGB is not set
660# CONFIG_S2IO is not set 654# CONFIG_S2IO is not set
661# CONFIG_MYRI10GE is not set 655# CONFIG_MYRI10GE is not set
662# CONFIG_NETXEN_NIC is not set 656# CONFIG_NETXEN_NIC is not set
663# CONFIG_NIU is not set 657# CONFIG_NIU is not set
658# CONFIG_MLX4_EN is not set
664# CONFIG_MLX4_CORE is not set 659# CONFIG_MLX4_CORE is not set
665# CONFIG_TEHUTI is not set 660# CONFIG_TEHUTI is not set
666# CONFIG_BNX2X is not set 661# CONFIG_BNX2X is not set
662# CONFIG_QLGE is not set
667# CONFIG_SFC is not set 663# CONFIG_SFC is not set
668# CONFIG_TR is not set 664# CONFIG_TR is not set
669 665
@@ -740,15 +736,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
740# CONFIG_SERIAL_UARTLITE is not set 736# CONFIG_SERIAL_UARTLITE is not set
741CONFIG_SERIAL_CORE=y 737CONFIG_SERIAL_CORE=y
742CONFIG_SERIAL_CORE_CONSOLE=y 738CONFIG_SERIAL_CORE_CONSOLE=y
743# CONFIG_SERIAL_PMACZILOG is not set
744# CONFIG_SERIAL_JSM is not set 739# CONFIG_SERIAL_JSM is not set
745# CONFIG_SERIAL_OF_PLATFORM is not set 740# CONFIG_SERIAL_OF_PLATFORM is not set
746# CONFIG_SERIAL_QE is not set 741# CONFIG_SERIAL_QE is not set
747CONFIG_UNIX98_PTYS=y 742CONFIG_UNIX98_PTYS=y
748CONFIG_LEGACY_PTYS=y 743CONFIG_LEGACY_PTYS=y
749CONFIG_LEGACY_PTY_COUNT=256 744CONFIG_LEGACY_PTY_COUNT=256
750# CONFIG_BRIQ_PANEL is not set
751# CONFIG_HVC_RTAS is not set
752# CONFIG_IPMI_HANDLER is not set 745# CONFIG_IPMI_HANDLER is not set
753CONFIG_HW_RANDOM=y 746CONFIG_HW_RANDOM=y
754# CONFIG_NVRAM is not set 747# CONFIG_NVRAM is not set
@@ -785,12 +778,6 @@ CONFIG_I2C_HELPER_AUTO=y
785# CONFIG_I2C_VIAPRO is not set 778# CONFIG_I2C_VIAPRO is not set
786 779
787# 780#
788# Mac SMBus host controller drivers
789#
790# CONFIG_I2C_HYDRA is not set
791CONFIG_I2C_POWERMAC=y
792
793#
794# I2C system bus drivers (mostly embedded / system-on-chip) 781# I2C system bus drivers (mostly embedded / system-on-chip)
795# 782#
796CONFIG_I2C_MPC=y 783CONFIG_I2C_MPC=y
@@ -826,6 +813,7 @@ CONFIG_I2C_MPC=y
826# CONFIG_SENSORS_PCF8591 is not set 813# CONFIG_SENSORS_PCF8591 is not set
827# CONFIG_SENSORS_MAX6875 is not set 814# CONFIG_SENSORS_MAX6875 is not set
828# CONFIG_SENSORS_TSL2550 is not set 815# CONFIG_SENSORS_TSL2550 is not set
816# CONFIG_MCU_MPC8349EMITX is not set
829# CONFIG_I2C_DEBUG_CORE is not set 817# CONFIG_I2C_DEBUG_CORE is not set
830# CONFIG_I2C_DEBUG_ALGO is not set 818# CONFIG_I2C_DEBUG_ALGO is not set
831# CONFIG_I2C_DEBUG_BUS is not set 819# CONFIG_I2C_DEBUG_BUS is not set
@@ -847,7 +835,6 @@ CONFIG_HWMON=y
847# CONFIG_SENSORS_ADM9240 is not set 835# CONFIG_SENSORS_ADM9240 is not set
848# CONFIG_SENSORS_ADT7470 is not set 836# CONFIG_SENSORS_ADT7470 is not set
849# CONFIG_SENSORS_ADT7473 is not set 837# CONFIG_SENSORS_ADT7473 is not set
850# CONFIG_SENSORS_AMS is not set
851# CONFIG_SENSORS_ATXP1 is not set 838# CONFIG_SENSORS_ATXP1 is not set
852# CONFIG_SENSORS_DS1621 is not set 839# CONFIG_SENSORS_DS1621 is not set
853# CONFIG_SENSORS_I5K_AMB is not set 840# CONFIG_SENSORS_I5K_AMB is not set
@@ -902,7 +889,6 @@ CONFIG_WATCHDOG=y
902# CONFIG_SOFT_WATCHDOG is not set 889# CONFIG_SOFT_WATCHDOG is not set
903# CONFIG_ALIM7101_WDT is not set 890# CONFIG_ALIM7101_WDT is not set
904# CONFIG_8xxx_WDT is not set 891# CONFIG_8xxx_WDT is not set
905# CONFIG_WATCHDOG_RTAS is not set
906 892
907# 893#
908# PCI-based Watchdog Cards 894# PCI-based Watchdog Cards
@@ -923,6 +909,17 @@ CONFIG_SSB_POSSIBLE=y
923# CONFIG_MFD_SM501 is not set 909# CONFIG_MFD_SM501 is not set
924# CONFIG_HTC_PASIC3 is not set 910# CONFIG_HTC_PASIC3 is not set
925# CONFIG_MFD_TMIO is not set 911# CONFIG_MFD_TMIO is not set
912# CONFIG_PMIC_DA903X is not set
913# CONFIG_MFD_WM8400 is not set
914# CONFIG_MFD_WM8350_I2C is not set
915
916#
917# Voltage and Current regulators
918#
919# CONFIG_REGULATOR is not set
920# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
921# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
922# CONFIG_REGULATOR_BQ24022 is not set
926 923
927# 924#
928# Multimedia devices 925# Multimedia devices
@@ -959,6 +956,12 @@ CONFIG_HID_SUPPORT=y
959CONFIG_HID=y 956CONFIG_HID=y
960# CONFIG_HID_DEBUG is not set 957# CONFIG_HID_DEBUG is not set
961# CONFIG_HIDRAW is not set 958# CONFIG_HIDRAW is not set
959# CONFIG_HID_PID is not set
960
961#
962# Special HID drivers
963#
964CONFIG_HID_COMPAT=y
962CONFIG_USB_SUPPORT=y 965CONFIG_USB_SUPPORT=y
963CONFIG_USB_ARCH_HAS_HCD=y 966CONFIG_USB_ARCH_HAS_HCD=y
964CONFIG_USB_ARCH_HAS_OHCI=y 967CONFIG_USB_ARCH_HAS_OHCI=y
@@ -975,6 +978,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
975# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 978# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
976# 979#
977# CONFIG_USB_GADGET is not set 980# CONFIG_USB_GADGET is not set
981# CONFIG_UWB is not set
978# CONFIG_MMC is not set 982# CONFIG_MMC is not set
979# CONFIG_MEMSTICK is not set 983# CONFIG_MEMSTICK is not set
980# CONFIG_NEW_LEDS is not set 984# CONFIG_NEW_LEDS is not set
@@ -1020,12 +1024,15 @@ CONFIG_RTC_DRV_DS1374=y
1020# Platform RTC drivers 1024# Platform RTC drivers
1021# 1025#
1022# CONFIG_RTC_DRV_CMOS is not set 1026# CONFIG_RTC_DRV_CMOS is not set
1027# CONFIG_RTC_DRV_DS1286 is not set
1023# CONFIG_RTC_DRV_DS1511 is not set 1028# CONFIG_RTC_DRV_DS1511 is not set
1024# CONFIG_RTC_DRV_DS1553 is not set 1029# CONFIG_RTC_DRV_DS1553 is not set
1025# CONFIG_RTC_DRV_DS1742 is not set 1030# CONFIG_RTC_DRV_DS1742 is not set
1026# CONFIG_RTC_DRV_STK17TA8 is not set 1031# CONFIG_RTC_DRV_STK17TA8 is not set
1027# CONFIG_RTC_DRV_M48T86 is not set 1032# CONFIG_RTC_DRV_M48T86 is not set
1033# CONFIG_RTC_DRV_M48T35 is not set
1028# CONFIG_RTC_DRV_M48T59 is not set 1034# CONFIG_RTC_DRV_M48T59 is not set
1035# CONFIG_RTC_DRV_BQ4802 is not set
1029# CONFIG_RTC_DRV_V3020 is not set 1036# CONFIG_RTC_DRV_V3020 is not set
1030 1037
1031# 1038#
@@ -1034,6 +1041,7 @@ CONFIG_RTC_DRV_DS1374=y
1034# CONFIG_RTC_DRV_PPC is not set 1041# CONFIG_RTC_DRV_PPC is not set
1035# CONFIG_DMADEVICES is not set 1042# CONFIG_DMADEVICES is not set
1036# CONFIG_UIO is not set 1043# CONFIG_UIO is not set
1044# CONFIG_STAGING is not set
1037 1045
1038# 1046#
1039# File systems 1047# File systems
@@ -1045,12 +1053,13 @@ CONFIG_EXT3_FS=y
1045CONFIG_EXT3_FS_XATTR=y 1053CONFIG_EXT3_FS_XATTR=y
1046# CONFIG_EXT3_FS_POSIX_ACL is not set 1054# CONFIG_EXT3_FS_POSIX_ACL is not set
1047# CONFIG_EXT3_FS_SECURITY is not set 1055# CONFIG_EXT3_FS_SECURITY is not set
1048# CONFIG_EXT4DEV_FS is not set 1056# CONFIG_EXT4_FS is not set
1049CONFIG_JBD=y 1057CONFIG_JBD=y
1050CONFIG_FS_MBCACHE=y 1058CONFIG_FS_MBCACHE=y
1051# CONFIG_REISERFS_FS is not set 1059# CONFIG_REISERFS_FS is not set
1052# CONFIG_JFS_FS is not set 1060# CONFIG_JFS_FS is not set
1053# CONFIG_FS_POSIX_ACL is not set 1061# CONFIG_FS_POSIX_ACL is not set
1062CONFIG_FILE_LOCKING=y
1054# CONFIG_XFS_FS is not set 1063# CONFIG_XFS_FS is not set
1055# CONFIG_OCFS2_FS is not set 1064# CONFIG_OCFS2_FS is not set
1056CONFIG_DNOTIFY=y 1065CONFIG_DNOTIFY=y
@@ -1080,6 +1089,7 @@ CONFIG_INOTIFY_USER=y
1080CONFIG_PROC_FS=y 1089CONFIG_PROC_FS=y
1081CONFIG_PROC_KCORE=y 1090CONFIG_PROC_KCORE=y
1082CONFIG_PROC_SYSCTL=y 1091CONFIG_PROC_SYSCTL=y
1092CONFIG_PROC_PAGE_MONITOR=y
1083CONFIG_SYSFS=y 1093CONFIG_SYSFS=y
1084CONFIG_TMPFS=y 1094CONFIG_TMPFS=y
1085# CONFIG_TMPFS_POSIX_ACL is not set 1095# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1096,6 +1106,7 @@ CONFIG_TMPFS=y
1096# CONFIG_BEFS_FS is not set 1106# CONFIG_BEFS_FS is not set
1097# CONFIG_BFS_FS is not set 1107# CONFIG_BFS_FS is not set
1098# CONFIG_EFS_FS is not set 1108# CONFIG_EFS_FS is not set
1109# CONFIG_JFFS2_FS is not set
1099# CONFIG_CRAMFS is not set 1110# CONFIG_CRAMFS is not set
1100# CONFIG_VXFS_FS is not set 1111# CONFIG_VXFS_FS is not set
1101# CONFIG_MINIX_FS is not set 1112# CONFIG_MINIX_FS is not set
@@ -1117,6 +1128,7 @@ CONFIG_LOCKD_V4=y
1117CONFIG_NFS_COMMON=y 1128CONFIG_NFS_COMMON=y
1118CONFIG_SUNRPC=y 1129CONFIG_SUNRPC=y
1119CONFIG_SUNRPC_GSS=y 1130CONFIG_SUNRPC_GSS=y
1131# CONFIG_SUNRPC_REGISTER_V4 is not set
1120CONFIG_RPCSEC_GSS_KRB5=y 1132CONFIG_RPCSEC_GSS_KRB5=y
1121# CONFIG_RPCSEC_GSS_SPKM3 is not set 1133# CONFIG_RPCSEC_GSS_SPKM3 is not set
1122# CONFIG_SMB_FS is not set 1134# CONFIG_SMB_FS is not set
@@ -1146,13 +1158,11 @@ CONFIG_PARTITION_ADVANCED=y
1146# CONFIG_DLM is not set 1158# CONFIG_DLM is not set
1147CONFIG_UCC_FAST=y 1159CONFIG_UCC_FAST=y
1148CONFIG_UCC=y 1160CONFIG_UCC=y
1149# CONFIG_QE_GPIO is not set
1150 1161
1151# 1162#
1152# Library routines 1163# Library routines
1153# 1164#
1154CONFIG_BITREVERSE=y 1165CONFIG_BITREVERSE=y
1155# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1156# CONFIG_CRC_CCITT is not set 1166# CONFIG_CRC_CCITT is not set
1157# CONFIG_CRC16 is not set 1167# CONFIG_CRC16 is not set
1158# CONFIG_CRC_T10DIF is not set 1168# CONFIG_CRC_T10DIF is not set
@@ -1182,13 +1192,15 @@ CONFIG_FRAME_WARN=1024
1182# CONFIG_SLUB_STATS is not set 1192# CONFIG_SLUB_STATS is not set
1183# CONFIG_DEBUG_BUGVERBOSE is not set 1193# CONFIG_DEBUG_BUGVERBOSE is not set
1184# CONFIG_DEBUG_MEMORY_INIT is not set 1194# CONFIG_DEBUG_MEMORY_INIT is not set
1195# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1185# CONFIG_LATENCYTOP is not set 1196# CONFIG_LATENCYTOP is not set
1186CONFIG_SYSCTL_SYSCALL_CHECK=y 1197CONFIG_SYSCTL_SYSCALL_CHECK=y
1187CONFIG_HAVE_FTRACE=y 1198CONFIG_HAVE_FUNCTION_TRACER=y
1188CONFIG_HAVE_DYNAMIC_FTRACE=y 1199
1189# CONFIG_FTRACE is not set 1200#
1190# CONFIG_SCHED_TRACER is not set 1201# Tracers
1191# CONFIG_CONTEXT_SWITCH_TRACER is not set 1202#
1203# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1192# CONFIG_SAMPLES is not set 1204# CONFIG_SAMPLES is not set
1193CONFIG_HAVE_ARCH_KGDB=y 1205CONFIG_HAVE_ARCH_KGDB=y
1194# CONFIG_IRQSTACKS is not set 1206# CONFIG_IRQSTACKS is not set
@@ -1200,14 +1212,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1200# 1212#
1201# CONFIG_KEYS is not set 1213# CONFIG_KEYS is not set
1202# CONFIG_SECURITY is not set 1214# CONFIG_SECURITY is not set
1215# CONFIG_SECURITYFS is not set
1203# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1216# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1204CONFIG_CRYPTO=y 1217CONFIG_CRYPTO=y
1205 1218
1206# 1219#
1207# Crypto core or helper 1220# Crypto core or helper
1208# 1221#
1222# CONFIG_CRYPTO_FIPS is not set
1209CONFIG_CRYPTO_ALGAPI=y 1223CONFIG_CRYPTO_ALGAPI=y
1224CONFIG_CRYPTO_AEAD=y
1210CONFIG_CRYPTO_BLKCIPHER=y 1225CONFIG_CRYPTO_BLKCIPHER=y
1226CONFIG_CRYPTO_HASH=y
1227CONFIG_CRYPTO_RNG=y
1211CONFIG_CRYPTO_MANAGER=y 1228CONFIG_CRYPTO_MANAGER=y
1212# CONFIG_CRYPTO_GF128MUL is not set 1229# CONFIG_CRYPTO_GF128MUL is not set
1213# CONFIG_CRYPTO_NULL is not set 1230# CONFIG_CRYPTO_NULL is not set
@@ -1280,6 +1297,11 @@ CONFIG_CRYPTO_DES=y
1280# 1297#
1281# CONFIG_CRYPTO_DEFLATE is not set 1298# CONFIG_CRYPTO_DEFLATE is not set
1282# 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
1283CONFIG_CRYPTO_HW=y 1305CONFIG_CRYPTO_HW=y
1284# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1306# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1285# CONFIG_CRYPTO_DEV_TALITOS is not set 1307# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index cdf84177370a..b9b236806e9f 100644
--- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:24 2008 4# Sat Nov 8 12:40:00 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -54,8 +54,6 @@ CONFIG_PPC_UDBG_16550=y
54CONFIG_AUDIT_ARCH=y 54CONFIG_AUDIT_ARCH=y
55CONFIG_GENERIC_BUG=y 55CONFIG_GENERIC_BUG=y
56CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
57CONFIG_HIBERNATE_32=y
58CONFIG_ARCH_HIBERNATION_POSSIBLE=y
59CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
60# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
@@ -99,7 +97,6 @@ CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 97CONFIG_PRINTK=y
100CONFIG_BUG=y 98CONFIG_BUG=y
101CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 100CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 102CONFIG_FUTEX=y
@@ -109,7 +106,9 @@ CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 106CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 108CONFIG_SHMEM=y
109CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y 112CONFIG_SLUB_DEBUG=y
114# CONFIG_SLAB is not set 113# CONFIG_SLAB is not set
115CONFIG_SLUB=y 114CONFIG_SLUB=y
@@ -122,10 +121,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_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 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
@@ -158,6 +153,7 @@ CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
160CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_FREEZER is not set
161 157
162# 158#
163# Platform support 159# Platform support
@@ -165,10 +161,10 @@ CONFIG_CLASSIC_RCU=y
165CONFIG_PPC_MULTIPLATFORM=y 161CONFIG_PPC_MULTIPLATFORM=y
166CONFIG_CLASSIC32=y 162CONFIG_CLASSIC32=y
167# CONFIG_PPC_CHRP is not set 163# CONFIG_PPC_CHRP is not set
168# CONFIG_PPC_PMAC is not set
169# CONFIG_MPC5121_ADS is not set 164# CONFIG_MPC5121_ADS is not set
170# CONFIG_MPC5121_GENERIC is not set 165# CONFIG_MPC5121_GENERIC is not set
171# CONFIG_PPC_MPC52xx is not set 166# CONFIG_PPC_MPC52xx is not set
167# CONFIG_PPC_PMAC is not set
172# CONFIG_PPC_CELL is not set 168# CONFIG_PPC_CELL is not set
173# CONFIG_PPC_CELL_NATIVE is not set 169# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set 170# CONFIG_PPC_82xx is not set
@@ -187,31 +183,26 @@ CONFIG_MPC836x_RDK=y
187# CONFIG_ASP834x is not set 183# CONFIG_ASP834x is not set
188# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
192CONFIG_IPIC=y 186CONFIG_IPIC=y
193CONFIG_MPIC=y 187# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
195CONFIG_PPC_I8259=y 189# CONFIG_PPC_I8259 is not set
196CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
199# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
200CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
201# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
202# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
203# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
204# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set 197# CONFIG_TAU is not set
207CONFIG_QUICC_ENGINE=y 198CONFIG_QUICC_ENGINE=y
199CONFIG_QE_GPIO=y
208# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
209 201
210# 202#
211# Kernel options 203# Kernel options
212# 204#
213# CONFIG_HIGHMEM is not set 205# CONFIG_HIGHMEM is not set
214# CONFIG_TICK_ONESHOT is not set
215# CONFIG_NO_HZ is not set 206# CONFIG_NO_HZ is not set
216# CONFIG_HIGH_RES_TIMERS is not set 207# CONFIG_HIGH_RES_TIMERS is not set
217CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 208CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -225,6 +216,8 @@ CONFIG_PREEMPT_NONE=y
225# CONFIG_PREEMPT_VOLUNTARY is not set 216# CONFIG_PREEMPT_VOLUNTARY is not set
226# CONFIG_PREEMPT is not set 217# CONFIG_PREEMPT is not set
227CONFIG_BINFMT_ELF=y 218CONFIG_BINFMT_ELF=y
219# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
220# CONFIG_HAVE_AOUT is not set
228# CONFIG_BINFMT_MISC is not set 221# CONFIG_BINFMT_MISC is not set
229# CONFIG_IOMMU_HELPER is not set 222# CONFIG_IOMMU_HELPER is not set
230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 223CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -239,15 +232,15 @@ CONFIG_FLATMEM_MANUAL=y
239# CONFIG_SPARSEMEM_MANUAL is not set 232# CONFIG_SPARSEMEM_MANUAL is not set
240CONFIG_FLATMEM=y 233CONFIG_FLATMEM=y
241CONFIG_FLAT_NODE_MEM_MAP=y 234CONFIG_FLAT_NODE_MEM_MAP=y
242# CONFIG_SPARSEMEM_STATIC is not set
243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
244CONFIG_PAGEFLAGS_EXTENDED=y 235CONFIG_PAGEFLAGS_EXTENDED=y
245CONFIG_SPLIT_PTLOCK_CPUS=4 236CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y 237CONFIG_MIGRATION=y
247# CONFIG_RESOURCES_64BIT is not set 238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
250CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y
251CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -259,7 +252,6 @@ CONFIG_ISA_DMA_API=y
259# 252#
260# Bus options 253# Bus options
261# 254#
262# CONFIG_ISA is not set
263CONFIG_ZONE_DMA=y 255CONFIG_ZONE_DMA=y
264CONFIG_GENERIC_ISA_DMA=y 256CONFIG_GENERIC_ISA_DMA=y
265CONFIG_PPC_INDIRECT_PCI=y 257CONFIG_PPC_INDIRECT_PCI=y
@@ -274,7 +266,7 @@ CONFIG_PCI_SYSCALL=y
274# CONFIG_PCIEPORTBUS is not set 266# CONFIG_PCIEPORTBUS is not set
275CONFIG_ARCH_SUPPORTS_MSI=y 267CONFIG_ARCH_SUPPORTS_MSI=y
276# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
277CONFIG_PCI_LEGACY=y 269# CONFIG_PCI_LEGACY is not set
278# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
279# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
280# CONFIG_HAS_RAPIDIO is not set 272# CONFIG_HAS_RAPIDIO is not set
@@ -342,6 +334,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_TIPC is not set 334# CONFIG_TIPC is not set
343# CONFIG_ATM is not set 335# CONFIG_ATM is not set
344# CONFIG_BRIDGE is not set 336# CONFIG_BRIDGE is not set
337# CONFIG_NET_DSA is not set
345# CONFIG_VLAN_8021Q is not set 338# CONFIG_VLAN_8021Q is not set
346# CONFIG_DECNET is not set 339# CONFIG_DECNET is not set
347# CONFIG_LLC2 is not set 340# CONFIG_LLC2 is not set
@@ -362,11 +355,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
363# CONFIG_BT is not set 356# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
365 358# CONFIG_PHONET is not set
366# 359CONFIG_WIRELESS=y
367# Wireless
368#
369# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y
370# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
371# CONFIG_MAC80211 is not set 363# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set 364# CONFIG_IEEE80211 is not set
@@ -480,7 +472,6 @@ CONFIG_OF_SPI=y
480# CONFIG_PARPORT is not set 472# CONFIG_PARPORT is not set
481CONFIG_BLK_DEV=y 473CONFIG_BLK_DEV=y
482# CONFIG_BLK_DEV_FD is not set 474# CONFIG_BLK_DEV_FD is not set
483# CONFIG_MAC_FLOPPY is not set
484# CONFIG_BLK_CPQ_DA is not set 475# CONFIG_BLK_CPQ_DA is not set
485# CONFIG_BLK_CPQ_CISS_DA is not set 476# CONFIG_BLK_CPQ_CISS_DA is not set
486# CONFIG_BLK_DEV_DAC960 is not set 477# CONFIG_BLK_DEV_DAC960 is not set
@@ -581,6 +572,7 @@ CONFIG_UCC_GETH=y
581# CONFIG_QLA3XXX is not set 572# CONFIG_QLA3XXX is not set
582# CONFIG_ATL1 is not set 573# CONFIG_ATL1 is not set
583# CONFIG_ATL1E is not set 574# CONFIG_ATL1E is not set
575# CONFIG_JME is not set
584# CONFIG_NETDEV_10000 is not set 576# CONFIG_NETDEV_10000 is not set
585# CONFIG_TR is not set 577# CONFIG_TR is not set
586 578
@@ -660,15 +652,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
660# CONFIG_SERIAL_UARTLITE is not set 652# CONFIG_SERIAL_UARTLITE is not set
661CONFIG_SERIAL_CORE=y 653CONFIG_SERIAL_CORE=y
662CONFIG_SERIAL_CORE_CONSOLE=y 654CONFIG_SERIAL_CORE_CONSOLE=y
663# CONFIG_SERIAL_PMACZILOG is not set
664# CONFIG_SERIAL_JSM is not set 655# CONFIG_SERIAL_JSM is not set
665# CONFIG_SERIAL_OF_PLATFORM is not set 656# CONFIG_SERIAL_OF_PLATFORM is not set
666CONFIG_SERIAL_QE=y 657CONFIG_SERIAL_QE=y
667CONFIG_UNIX98_PTYS=y 658CONFIG_UNIX98_PTYS=y
668CONFIG_LEGACY_PTYS=y 659CONFIG_LEGACY_PTYS=y
669CONFIG_LEGACY_PTY_COUNT=256 660CONFIG_LEGACY_PTY_COUNT=256
670# CONFIG_BRIQ_PANEL is not set
671# CONFIG_HVC_RTAS is not set
672# CONFIG_IPMI_HANDLER is not set 661# CONFIG_IPMI_HANDLER is not set
673CONFIG_HW_RANDOM=y 662CONFIG_HW_RANDOM=y
674# CONFIG_NVRAM is not set 663# CONFIG_NVRAM is not set
@@ -706,12 +695,6 @@ CONFIG_I2C_HELPER_AUTO=y
706# CONFIG_I2C_VIAPRO is not set 695# CONFIG_I2C_VIAPRO is not set
707 696
708# 697#
709# Mac SMBus host controller drivers
710#
711# CONFIG_I2C_HYDRA is not set
712CONFIG_I2C_POWERMAC=y
713
714#
715# I2C system bus drivers (mostly embedded / system-on-chip) 698# I2C system bus drivers (mostly embedded / system-on-chip)
716# 699#
717# CONFIG_I2C_GPIO is not set 700# CONFIG_I2C_GPIO is not set
@@ -749,6 +732,7 @@ CONFIG_I2C_MPC=y
749# CONFIG_TPS65010 is not set 732# CONFIG_TPS65010 is not set
750# CONFIG_SENSORS_MAX6875 is not set 733# CONFIG_SENSORS_MAX6875 is not set
751# CONFIG_SENSORS_TSL2550 is not set 734# CONFIG_SENSORS_TSL2550 is not set
735# CONFIG_MCU_MPC8349EMITX is not set
752# CONFIG_I2C_DEBUG_CORE is not set 736# CONFIG_I2C_DEBUG_CORE is not set
753# CONFIG_I2C_DEBUG_ALGO is not set 737# CONFIG_I2C_DEBUG_ALGO is not set
754# CONFIG_I2C_DEBUG_BUS is not set 738# CONFIG_I2C_DEBUG_BUS is not set
@@ -804,7 +788,6 @@ CONFIG_WATCHDOG=y
804# CONFIG_SOFT_WATCHDOG is not set 788# CONFIG_SOFT_WATCHDOG is not set
805# CONFIG_ALIM7101_WDT is not set 789# CONFIG_ALIM7101_WDT is not set
806# CONFIG_8xxx_WDT is not set 790# CONFIG_8xxx_WDT is not set
807# CONFIG_WATCHDOG_RTAS is not set
808 791
809# 792#
810# PCI-based Watchdog Cards 793# PCI-based Watchdog Cards
@@ -825,6 +808,17 @@ CONFIG_SSB_POSSIBLE=y
825# CONFIG_MFD_SM501 is not set 808# CONFIG_MFD_SM501 is not set
826# CONFIG_HTC_PASIC3 is not set 809# CONFIG_HTC_PASIC3 is not set
827# CONFIG_MFD_TMIO is not set 810# CONFIG_MFD_TMIO is not set
811# CONFIG_PMIC_DA903X is not set
812# CONFIG_MFD_WM8400 is not set
813# CONFIG_MFD_WM8350_I2C is not set
814
815#
816# Voltage and Current regulators
817#
818# CONFIG_REGULATOR is not set
819# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
820# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
821# CONFIG_REGULATOR_BQ24022 is not set
828 822
829# 823#
830# Multimedia devices 824# Multimedia devices
@@ -852,6 +846,7 @@ CONFIG_DAB=y
852CONFIG_FB=y 846CONFIG_FB=y
853# CONFIG_FIRMWARE_EDID is not set 847# CONFIG_FIRMWARE_EDID is not set
854# CONFIG_FB_DDC is not set 848# CONFIG_FB_DDC is not set
849# CONFIG_FB_BOOT_VESA_SUPPORT is not set
855CONFIG_FB_CFB_FILLRECT=y 850CONFIG_FB_CFB_FILLRECT=y
856CONFIG_FB_CFB_COPYAREA=y 851CONFIG_FB_CFB_COPYAREA=y
857CONFIG_FB_CFB_IMAGEBLIT=y 852CONFIG_FB_CFB_IMAGEBLIT=y
@@ -874,9 +869,6 @@ CONFIG_FB_MACMODES=y
874# CONFIG_FB_PM2 is not set 869# CONFIG_FB_PM2 is not set
875# CONFIG_FB_CYBER2000 is not set 870# CONFIG_FB_CYBER2000 is not set
876CONFIG_FB_OF=y 871CONFIG_FB_OF=y
877# CONFIG_FB_CONTROL is not set
878# CONFIG_FB_PLATINUM is not set
879# CONFIG_FB_VALKYRIE is not set
880# CONFIG_FB_CT65550 is not set 872# CONFIG_FB_CT65550 is not set
881# CONFIG_FB_ASILIANT is not set 873# CONFIG_FB_ASILIANT is not set
882# CONFIG_FB_IMSTT is not set 874# CONFIG_FB_IMSTT is not set
@@ -891,6 +883,7 @@ CONFIG_FB_OF=y
891# CONFIG_FB_S3 is not set 883# CONFIG_FB_S3 is not set
892# CONFIG_FB_SAVAGE is not set 884# CONFIG_FB_SAVAGE is not set
893# CONFIG_FB_SIS is not set 885# CONFIG_FB_SIS is not set
886# CONFIG_FB_VIA is not set
894# CONFIG_FB_NEOMAGIC is not set 887# CONFIG_FB_NEOMAGIC is not set
895# CONFIG_FB_KYRO is not set 888# CONFIG_FB_KYRO is not set
896# CONFIG_FB_3DFX is not set 889# CONFIG_FB_3DFX is not set
@@ -903,6 +896,7 @@ CONFIG_FB_OF=y
903# CONFIG_FB_FSL_DIU is not set 896# CONFIG_FB_FSL_DIU is not set
904# CONFIG_FB_IBM_GXT4500 is not set 897# CONFIG_FB_IBM_GXT4500 is not set
905# CONFIG_FB_VIRTUAL is not set 898# CONFIG_FB_VIRTUAL is not set
899# CONFIG_FB_METRONOME is not set
906# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 900# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
907 901
908# 902#
@@ -930,7 +924,14 @@ CONFIG_HID_SUPPORT=y
930CONFIG_HID=y 924CONFIG_HID=y
931# CONFIG_HID_DEBUG is not set 925# CONFIG_HID_DEBUG is not set
932# CONFIG_HIDRAW is not set 926# CONFIG_HIDRAW is not set
927# CONFIG_HID_PID is not set
928
929#
930# Special HID drivers
931#
932CONFIG_HID_COMPAT=y
933# CONFIG_USB_SUPPORT is not set 933# CONFIG_USB_SUPPORT is not set
934# CONFIG_UWB is not set
934# CONFIG_MMC is not set 935# CONFIG_MMC is not set
935# CONFIG_MEMSTICK is not set 936# CONFIG_MEMSTICK is not set
936# CONFIG_NEW_LEDS is not set 937# CONFIG_NEW_LEDS is not set
@@ -940,6 +941,7 @@ CONFIG_HID=y
940# CONFIG_RTC_CLASS is not set 941# CONFIG_RTC_CLASS is not set
941# CONFIG_DMADEVICES is not set 942# CONFIG_DMADEVICES is not set
942# CONFIG_UIO is not set 943# CONFIG_UIO is not set
944# CONFIG_STAGING is not set
943 945
944# 946#
945# File systems 947# File systems
@@ -951,12 +953,13 @@ CONFIG_EXT3_FS=y
951CONFIG_EXT3_FS_XATTR=y 953CONFIG_EXT3_FS_XATTR=y
952# CONFIG_EXT3_FS_POSIX_ACL is not set 954# CONFIG_EXT3_FS_POSIX_ACL is not set
953# CONFIG_EXT3_FS_SECURITY is not set 955# CONFIG_EXT3_FS_SECURITY is not set
954# CONFIG_EXT4DEV_FS is not set 956# CONFIG_EXT4_FS is not set
955CONFIG_JBD=y 957CONFIG_JBD=y
956CONFIG_FS_MBCACHE=y 958CONFIG_FS_MBCACHE=y
957# CONFIG_REISERFS_FS is not set 959# CONFIG_REISERFS_FS is not set
958# CONFIG_JFS_FS is not set 960# CONFIG_JFS_FS is not set
959# CONFIG_FS_POSIX_ACL is not set 961# CONFIG_FS_POSIX_ACL is not set
962CONFIG_FILE_LOCKING=y
960# CONFIG_XFS_FS is not set 963# CONFIG_XFS_FS is not set
961# CONFIG_OCFS2_FS is not set 964# CONFIG_OCFS2_FS is not set
962CONFIG_DNOTIFY=y 965CONFIG_DNOTIFY=y
@@ -986,6 +989,7 @@ CONFIG_INOTIFY_USER=y
986CONFIG_PROC_FS=y 989CONFIG_PROC_FS=y
987CONFIG_PROC_KCORE=y 990CONFIG_PROC_KCORE=y
988CONFIG_PROC_SYSCTL=y 991CONFIG_PROC_SYSCTL=y
992CONFIG_PROC_PAGE_MONITOR=y
989CONFIG_SYSFS=y 993CONFIG_SYSFS=y
990CONFIG_TMPFS=y 994CONFIG_TMPFS=y
991# CONFIG_TMPFS_POSIX_ACL is not set 995# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1034,6 +1038,7 @@ CONFIG_LOCKD_V4=y
1034CONFIG_NFS_COMMON=y 1038CONFIG_NFS_COMMON=y
1035CONFIG_SUNRPC=y 1039CONFIG_SUNRPC=y
1036CONFIG_SUNRPC_GSS=y 1040CONFIG_SUNRPC_GSS=y
1041# CONFIG_SUNRPC_REGISTER_V4 is not set
1037CONFIG_RPCSEC_GSS_KRB5=y 1042CONFIG_RPCSEC_GSS_KRB5=y
1038# CONFIG_RPCSEC_GSS_SPKM3 is not set 1043# CONFIG_RPCSEC_GSS_SPKM3 is not set
1039# CONFIG_SMB_FS is not set 1044# CONFIG_SMB_FS is not set
@@ -1064,13 +1069,11 @@ CONFIG_PARTITION_ADVANCED=y
1064CONFIG_UCC_SLOW=y 1069CONFIG_UCC_SLOW=y
1065CONFIG_UCC_FAST=y 1070CONFIG_UCC_FAST=y
1066CONFIG_UCC=y 1071CONFIG_UCC=y
1067CONFIG_QE_GPIO=y
1068 1072
1069# 1073#
1070# Library routines 1074# Library routines
1071# 1075#
1072CONFIG_BITREVERSE=y 1076CONFIG_BITREVERSE=y
1073# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1074# CONFIG_CRC_CCITT is not set 1077# CONFIG_CRC_CCITT is not set
1075# CONFIG_CRC16 is not set 1078# CONFIG_CRC16 is not set
1076# CONFIG_CRC_T10DIF is not set 1079# CONFIG_CRC_T10DIF is not set
@@ -1102,13 +1105,15 @@ CONFIG_FRAME_WARN=1024
1102# CONFIG_SLUB_STATS is not set 1105# CONFIG_SLUB_STATS is not set
1103# CONFIG_DEBUG_BUGVERBOSE is not set 1106# CONFIG_DEBUG_BUGVERBOSE is not set
1104# CONFIG_DEBUG_MEMORY_INIT is not set 1107# CONFIG_DEBUG_MEMORY_INIT is not set
1108# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1105# CONFIG_LATENCYTOP is not set 1109# CONFIG_LATENCYTOP is not set
1106CONFIG_SYSCTL_SYSCALL_CHECK=y 1110CONFIG_SYSCTL_SYSCALL_CHECK=y
1107CONFIG_HAVE_FTRACE=y 1111CONFIG_HAVE_FUNCTION_TRACER=y
1108CONFIG_HAVE_DYNAMIC_FTRACE=y 1112
1109# CONFIG_FTRACE is not set 1113#
1110# CONFIG_SCHED_TRACER is not set 1114# Tracers
1111# CONFIG_CONTEXT_SWITCH_TRACER is not set 1115#
1116# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1112# CONFIG_SAMPLES is not set 1117# CONFIG_SAMPLES is not set
1113CONFIG_HAVE_ARCH_KGDB=y 1118CONFIG_HAVE_ARCH_KGDB=y
1114# CONFIG_IRQSTACKS is not set 1119# CONFIG_IRQSTACKS is not set
@@ -1116,7 +1121,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1116CONFIG_PPC_EARLY_DEBUG=y 1121CONFIG_PPC_EARLY_DEBUG=y
1117# CONFIG_PPC_EARLY_DEBUG_LPAR is not set 1122# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1118# CONFIG_PPC_EARLY_DEBUG_G5 is not set 1123# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1119CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL=y 1124# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
1120# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set 1125# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
1121# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set 1126# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1122# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set 1127# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
@@ -1131,14 +1136,19 @@ CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL=y
1131# 1136#
1132# CONFIG_KEYS is not set 1137# CONFIG_KEYS is not set
1133# CONFIG_SECURITY is not set 1138# CONFIG_SECURITY is not set
1139# CONFIG_SECURITYFS is not set
1134# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1140# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1135CONFIG_CRYPTO=y 1141CONFIG_CRYPTO=y
1136 1142
1137# 1143#
1138# Crypto core or helper 1144# Crypto core or helper
1139# 1145#
1146# CONFIG_CRYPTO_FIPS is not set
1140CONFIG_CRYPTO_ALGAPI=y 1147CONFIG_CRYPTO_ALGAPI=y
1148CONFIG_CRYPTO_AEAD=y
1141CONFIG_CRYPTO_BLKCIPHER=y 1149CONFIG_CRYPTO_BLKCIPHER=y
1150CONFIG_CRYPTO_HASH=y
1151CONFIG_CRYPTO_RNG=y
1142CONFIG_CRYPTO_MANAGER=y 1152CONFIG_CRYPTO_MANAGER=y
1143# CONFIG_CRYPTO_GF128MUL is not set 1153# CONFIG_CRYPTO_GF128MUL is not set
1144# CONFIG_CRYPTO_NULL is not set 1154# CONFIG_CRYPTO_NULL is not set
@@ -1211,6 +1221,11 @@ CONFIG_CRYPTO_DES=y
1211# 1221#
1212# CONFIG_CRYPTO_DEFLATE is not set 1222# CONFIG_CRYPTO_DEFLATE is not set
1213# CONFIG_CRYPTO_LZO is not set 1223# CONFIG_CRYPTO_LZO is not set
1224
1225#
1226# Random Number Generation
1227#
1228# CONFIG_CRYPTO_ANSI_CPRNG is not set
1214CONFIG_CRYPTO_HW=y 1229CONFIG_CRYPTO_HW=y
1215# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1230# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1216# CONFIG_CRYPTO_DEV_TALITOS is not set 1231# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index 97e02d7a5b09..f6350d7e1688 100644
--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:23 2008 4# Sat Nov 8 12:40:00 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -99,7 +97,6 @@ CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 97CONFIG_PRINTK=y
100CONFIG_BUG=y 98CONFIG_BUG=y
101CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 100CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 102CONFIG_FUTEX=y
@@ -109,7 +106,9 @@ CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 106CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 108CONFIG_SHMEM=y
109CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
113CONFIG_SLAB=y 112CONFIG_SLAB=y
114# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
115# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
@@ -122,10 +121,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_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 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
@@ -158,6 +153,7 @@ CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
160CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_FREEZER is not set
161 157
162# 158#
163# Platform support 159# Platform support
@@ -165,10 +161,10 @@ CONFIG_CLASSIC_RCU=y
165CONFIG_PPC_MULTIPLATFORM=y 161CONFIG_PPC_MULTIPLATFORM=y
166CONFIG_CLASSIC32=y 162CONFIG_CLASSIC32=y
167# CONFIG_PPC_CHRP is not set 163# CONFIG_PPC_CHRP is not set
168# CONFIG_PPC_PMAC is not set
169# CONFIG_MPC5121_ADS is not set 164# CONFIG_MPC5121_ADS is not set
170# CONFIG_MPC5121_GENERIC is not set 165# CONFIG_MPC5121_GENERIC is not set
171# CONFIG_PPC_MPC52xx is not set 166# CONFIG_PPC_MPC52xx is not set
167# CONFIG_PPC_PMAC is not set
172# CONFIG_PPC_CELL is not set 168# CONFIG_PPC_CELL is not set
173# CONFIG_PPC_CELL_NATIVE is not set 169# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set 170# CONFIG_PPC_82xx is not set
@@ -188,30 +184,26 @@ CONFIG_MPC837x_MDS=y
188CONFIG_PPC_MPC837x=y 184CONFIG_PPC_MPC837x=y
189# CONFIG_PPC_86xx is not set 185# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set 186# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
193CONFIG_IPIC=y 187CONFIG_IPIC=y
194CONFIG_MPIC=y 188# CONFIG_MPIC is not set
195# CONFIG_MPIC_WEIRD is not set 189# CONFIG_MPIC_WEIRD is not set
196CONFIG_PPC_I8259=y 190# CONFIG_PPC_I8259 is not set
197CONFIG_PPC_RTAS=y 191# CONFIG_PPC_RTAS is not set
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
200# CONFIG_MMIO_NVRAM is not set 192# CONFIG_MMIO_NVRAM is not set
201CONFIG_PPC_MPC106=y 193# CONFIG_PPC_MPC106 is not set
202# CONFIG_PPC_970_NAP is not set 194# CONFIG_PPC_970_NAP is not set
203# CONFIG_PPC_INDIRECT_IO is not set 195# CONFIG_PPC_INDIRECT_IO is not set
204# CONFIG_GENERIC_IOMAP is not set 196# CONFIG_GENERIC_IOMAP is not set
205# CONFIG_CPU_FREQ is not set 197# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set 198# CONFIG_TAU is not set
199# CONFIG_QUICC_ENGINE is not set
208# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set
209 202
210# 203#
211# Kernel options 204# Kernel options
212# 205#
213# CONFIG_HIGHMEM is not set 206# CONFIG_HIGHMEM is not set
214# CONFIG_TICK_ONESHOT is not set
215# CONFIG_NO_HZ is not set 207# CONFIG_NO_HZ is not set
216# CONFIG_HIGH_RES_TIMERS is not set 208# CONFIG_HIGH_RES_TIMERS is not set
217CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 209CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -225,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
225# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
226# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
227CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
228# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
229# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -239,15 +233,15 @@ CONFIG_FLATMEM_MANUAL=y
239# CONFIG_SPARSEMEM_MANUAL is not set 233# CONFIG_SPARSEMEM_MANUAL is not set
240CONFIG_FLATMEM=y 234CONFIG_FLATMEM=y
241CONFIG_FLAT_NODE_MEM_MAP=y 235CONFIG_FLAT_NODE_MEM_MAP=y
242# CONFIG_SPARSEMEM_STATIC is not set
243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
244CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
245CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
247# CONFIG_RESOURCES_64BIT is not set 239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
250CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y
251CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
@@ -259,7 +253,6 @@ CONFIG_ISA_DMA_API=y
259# 253#
260# Bus options 254# Bus options
261# 255#
262# CONFIG_ISA is not set
263CONFIG_ZONE_DMA=y 256CONFIG_ZONE_DMA=y
264CONFIG_GENERIC_ISA_DMA=y 257CONFIG_GENERIC_ISA_DMA=y
265CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
@@ -272,7 +265,7 @@ CONFIG_PCI_SYSCALL=y
272# CONFIG_PCIEPORTBUS is not set 265# CONFIG_PCIEPORTBUS is not set
273CONFIG_ARCH_SUPPORTS_MSI=y 266CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_MSI is not set 267# CONFIG_PCI_MSI is not set
275CONFIG_PCI_LEGACY=y 268# CONFIG_PCI_LEGACY is not set
276# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -340,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_TIPC is not set 333# CONFIG_TIPC is not set
341# CONFIG_ATM is not set 334# CONFIG_ATM is not set
342# CONFIG_BRIDGE is not set 335# CONFIG_BRIDGE is not set
336# CONFIG_NET_DSA is not set
343# CONFIG_VLAN_8021Q is not set 337# CONFIG_VLAN_8021Q is not set
344# CONFIG_DECNET is not set 338# CONFIG_DECNET is not set
345# CONFIG_LLC2 is not set 339# CONFIG_LLC2 is not set
@@ -360,11 +354,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
360# CONFIG_IRDA is not set 354# CONFIG_IRDA is not set
361# CONFIG_BT is not set 355# CONFIG_BT is not set
362# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
363 357# CONFIG_PHONET is not set
364# 358CONFIG_WIRELESS=y
365# Wireless
366#
367# CONFIG_CFG80211 is not set 359# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y
368# CONFIG_WIRELESS_EXT is not set 361# CONFIG_WIRELESS_EXT is not set
369# CONFIG_MAC80211 is not set 362# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set 363# CONFIG_IEEE80211 is not set
@@ -390,7 +383,6 @@ CONFIG_OF_I2C=y
390# CONFIG_PARPORT is not set 383# CONFIG_PARPORT is not set
391CONFIG_BLK_DEV=y 384CONFIG_BLK_DEV=y
392# CONFIG_BLK_DEV_FD is not set 385# CONFIG_BLK_DEV_FD is not set
393# CONFIG_MAC_FLOPPY is not set
394# CONFIG_BLK_CPQ_DA is not set 386# CONFIG_BLK_CPQ_DA is not set
395# CONFIG_BLK_CPQ_CISS_DA is not set 387# CONFIG_BLK_CPQ_CISS_DA is not set
396# CONFIG_BLK_DEV_DAC960 is not set 388# CONFIG_BLK_DEV_DAC960 is not set
@@ -491,8 +483,6 @@ CONFIG_SCSI_LOWLEVEL=y
491# CONFIG_SCSI_DC390T is not set 483# CONFIG_SCSI_DC390T is not set
492# CONFIG_SCSI_NSP32 is not set 484# CONFIG_SCSI_NSP32 is not set
493# CONFIG_SCSI_DEBUG is not set 485# CONFIG_SCSI_DEBUG is not set
494# CONFIG_SCSI_MESH is not set
495# CONFIG_SCSI_MAC53C94 is not set
496# CONFIG_SCSI_SRP is not set 486# CONFIG_SCSI_SRP is not set
497# CONFIG_SCSI_DH is not set 487# CONFIG_SCSI_DH is not set
498CONFIG_ATA=y 488CONFIG_ATA=y
@@ -597,8 +587,6 @@ CONFIG_MARVELL_PHY=y
597# CONFIG_MDIO_BITBANG is not set 587# CONFIG_MDIO_BITBANG is not set
598CONFIG_NET_ETHERNET=y 588CONFIG_NET_ETHERNET=y
599CONFIG_MII=y 589CONFIG_MII=y
600# CONFIG_MACE is not set
601# CONFIG_BMAC is not set
602# CONFIG_HAPPYMEAL is not set 590# CONFIG_HAPPYMEAL is not set
603# CONFIG_SUNGEM is not set 591# CONFIG_SUNGEM is not set
604# CONFIG_CASSINI is not set 592# CONFIG_CASSINI is not set
@@ -609,8 +597,12 @@ CONFIG_MII=y
609# CONFIG_IBM_NEW_EMAC_RGMII is not set 597# CONFIG_IBM_NEW_EMAC_RGMII is not set
610# CONFIG_IBM_NEW_EMAC_TAH is not set 598# CONFIG_IBM_NEW_EMAC_TAH is not set
611# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 599# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
600# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
601# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
602# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
612# CONFIG_NET_PCI is not set 603# CONFIG_NET_PCI is not set
613# CONFIG_B44 is not set 604# CONFIG_B44 is not set
605# CONFIG_ATL2 is not set
614CONFIG_NETDEV_1000=y 606CONFIG_NETDEV_1000=y
615# CONFIG_ACENIC is not set 607# CONFIG_ACENIC is not set
616# CONFIG_DL2K is not set 608# CONFIG_DL2K is not set
@@ -633,18 +625,22 @@ CONFIG_GIANFAR=y
633# CONFIG_QLA3XXX is not set 625# CONFIG_QLA3XXX is not set
634# CONFIG_ATL1 is not set 626# CONFIG_ATL1 is not set
635# CONFIG_ATL1E is not set 627# CONFIG_ATL1E is not set
628# CONFIG_JME is not set
636CONFIG_NETDEV_10000=y 629CONFIG_NETDEV_10000=y
637# CONFIG_CHELSIO_T1 is not set 630# CONFIG_CHELSIO_T1 is not set
638# CONFIG_CHELSIO_T3 is not set 631# CONFIG_CHELSIO_T3 is not set
632# CONFIG_ENIC is not set
639# CONFIG_IXGBE is not set 633# CONFIG_IXGBE is not set
640# CONFIG_IXGB is not set 634# CONFIG_IXGB is not set
641# CONFIG_S2IO is not set 635# CONFIG_S2IO is not set
642# CONFIG_MYRI10GE is not set 636# CONFIG_MYRI10GE is not set
643# CONFIG_NETXEN_NIC is not set 637# CONFIG_NETXEN_NIC is not set
644# CONFIG_NIU is not set 638# CONFIG_NIU is not set
639# CONFIG_MLX4_EN is not set
645# CONFIG_MLX4_CORE is not set 640# CONFIG_MLX4_CORE is not set
646# CONFIG_TEHUTI is not set 641# CONFIG_TEHUTI is not set
647# CONFIG_BNX2X is not set 642# CONFIG_BNX2X is not set
643# CONFIG_QLGE is not set
648# CONFIG_SFC is not set 644# CONFIG_SFC is not set
649# CONFIG_TR is not set 645# CONFIG_TR is not set
650 646
@@ -721,14 +717,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
721# CONFIG_SERIAL_UARTLITE is not set 717# CONFIG_SERIAL_UARTLITE is not set
722CONFIG_SERIAL_CORE=y 718CONFIG_SERIAL_CORE=y
723CONFIG_SERIAL_CORE_CONSOLE=y 719CONFIG_SERIAL_CORE_CONSOLE=y
724# CONFIG_SERIAL_PMACZILOG is not set
725# CONFIG_SERIAL_JSM is not set 720# CONFIG_SERIAL_JSM is not set
726# CONFIG_SERIAL_OF_PLATFORM is not set 721# CONFIG_SERIAL_OF_PLATFORM is not set
727CONFIG_UNIX98_PTYS=y 722CONFIG_UNIX98_PTYS=y
728CONFIG_LEGACY_PTYS=y 723CONFIG_LEGACY_PTYS=y
729CONFIG_LEGACY_PTY_COUNT=256 724CONFIG_LEGACY_PTY_COUNT=256
730# CONFIG_BRIQ_PANEL is not set
731# CONFIG_HVC_RTAS is not set
732# CONFIG_IPMI_HANDLER is not set 725# CONFIG_IPMI_HANDLER is not set
733# CONFIG_HW_RANDOM is not set 726# CONFIG_HW_RANDOM is not set
734# CONFIG_NVRAM is not set 727# CONFIG_NVRAM is not set
@@ -767,12 +760,6 @@ CONFIG_I2C_HELPER_AUTO=y
767# CONFIG_I2C_VIAPRO is not set 760# CONFIG_I2C_VIAPRO is not set
768 761
769# 762#
770# Mac SMBus host controller drivers
771#
772# CONFIG_I2C_HYDRA is not set
773CONFIG_I2C_POWERMAC=y
774
775#
776# I2C system bus drivers (mostly embedded / system-on-chip) 763# I2C system bus drivers (mostly embedded / system-on-chip)
777# 764#
778CONFIG_I2C_MPC=y 765CONFIG_I2C_MPC=y
@@ -808,6 +795,7 @@ CONFIG_I2C_MPC=y
808# CONFIG_SENSORS_PCF8591 is not set 795# CONFIG_SENSORS_PCF8591 is not set
809# CONFIG_SENSORS_MAX6875 is not set 796# CONFIG_SENSORS_MAX6875 is not set
810# CONFIG_SENSORS_TSL2550 is not set 797# CONFIG_SENSORS_TSL2550 is not set
798# CONFIG_MCU_MPC8349EMITX is not set
811# CONFIG_I2C_DEBUG_CORE is not set 799# CONFIG_I2C_DEBUG_CORE is not set
812# CONFIG_I2C_DEBUG_ALGO is not set 800# CONFIG_I2C_DEBUG_ALGO is not set
813# CONFIG_I2C_DEBUG_BUS is not set 801# CONFIG_I2C_DEBUG_BUS is not set
@@ -829,7 +817,6 @@ CONFIG_HWMON=y
829# CONFIG_SENSORS_ADM9240 is not set 817# CONFIG_SENSORS_ADM9240 is not set
830# CONFIG_SENSORS_ADT7470 is not set 818# CONFIG_SENSORS_ADT7470 is not set
831# CONFIG_SENSORS_ADT7473 is not set 819# CONFIG_SENSORS_ADT7473 is not set
832# CONFIG_SENSORS_AMS is not set
833# CONFIG_SENSORS_ATXP1 is not set 820# CONFIG_SENSORS_ATXP1 is not set
834# CONFIG_SENSORS_DS1621 is not set 821# CONFIG_SENSORS_DS1621 is not set
835# CONFIG_SENSORS_I5K_AMB is not set 822# CONFIG_SENSORS_I5K_AMB is not set
@@ -884,7 +871,6 @@ CONFIG_WATCHDOG=y
884# CONFIG_SOFT_WATCHDOG is not set 871# CONFIG_SOFT_WATCHDOG is not set
885# CONFIG_ALIM7101_WDT is not set 872# CONFIG_ALIM7101_WDT is not set
886# CONFIG_8xxx_WDT is not set 873# CONFIG_8xxx_WDT is not set
887# CONFIG_WATCHDOG_RTAS is not set
888 874
889# 875#
890# PCI-based Watchdog Cards 876# PCI-based Watchdog Cards
@@ -905,6 +891,17 @@ CONFIG_SSB_POSSIBLE=y
905# CONFIG_MFD_SM501 is not set 891# CONFIG_MFD_SM501 is not set
906# CONFIG_HTC_PASIC3 is not set 892# CONFIG_HTC_PASIC3 is not set
907# CONFIG_MFD_TMIO is not set 893# CONFIG_MFD_TMIO is not set
894# CONFIG_PMIC_DA903X is not set
895# CONFIG_MFD_WM8400 is not set
896# CONFIG_MFD_WM8350_I2C is not set
897
898#
899# Voltage and Current regulators
900#
901# CONFIG_REGULATOR is not set
902# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
903# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
904# CONFIG_REGULATOR_BQ24022 is not set
908 905
909# 906#
910# Multimedia devices 907# Multimedia devices
@@ -941,6 +938,12 @@ CONFIG_HID_SUPPORT=y
941CONFIG_HID=y 938CONFIG_HID=y
942# CONFIG_HID_DEBUG is not set 939# CONFIG_HID_DEBUG is not set
943# CONFIG_HIDRAW is not set 940# CONFIG_HIDRAW is not set
941# CONFIG_HID_PID is not set
942
943#
944# Special HID drivers
945#
946CONFIG_HID_COMPAT=y
944CONFIG_USB_SUPPORT=y 947CONFIG_USB_SUPPORT=y
945CONFIG_USB_ARCH_HAS_HCD=y 948CONFIG_USB_ARCH_HAS_HCD=y
946CONFIG_USB_ARCH_HAS_OHCI=y 949CONFIG_USB_ARCH_HAS_OHCI=y
@@ -957,6 +960,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
957# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 960# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
958# 961#
959# CONFIG_USB_GADGET is not set 962# CONFIG_USB_GADGET is not set
963# CONFIG_UWB is not set
960# CONFIG_MMC is not set 964# CONFIG_MMC is not set
961# CONFIG_MEMSTICK is not set 965# CONFIG_MEMSTICK is not set
962# CONFIG_NEW_LEDS is not set 966# CONFIG_NEW_LEDS is not set
@@ -966,6 +970,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
966# CONFIG_RTC_CLASS is not set 970# CONFIG_RTC_CLASS is not set
967# CONFIG_DMADEVICES is not set 971# CONFIG_DMADEVICES is not set
968# CONFIG_UIO is not set 972# CONFIG_UIO is not set
973# CONFIG_STAGING is not set
969 974
970# 975#
971# File systems 976# File systems
@@ -977,12 +982,13 @@ CONFIG_EXT3_FS=y
977CONFIG_EXT3_FS_XATTR=y 982CONFIG_EXT3_FS_XATTR=y
978# CONFIG_EXT3_FS_POSIX_ACL is not set 983# CONFIG_EXT3_FS_POSIX_ACL is not set
979# CONFIG_EXT3_FS_SECURITY is not set 984# CONFIG_EXT3_FS_SECURITY is not set
980# CONFIG_EXT4DEV_FS is not set 985# CONFIG_EXT4_FS is not set
981CONFIG_JBD=y 986CONFIG_JBD=y
982CONFIG_FS_MBCACHE=y 987CONFIG_FS_MBCACHE=y
983# CONFIG_REISERFS_FS is not set 988# CONFIG_REISERFS_FS is not set
984# CONFIG_JFS_FS is not set 989# CONFIG_JFS_FS is not set
985# CONFIG_FS_POSIX_ACL is not set 990# CONFIG_FS_POSIX_ACL is not set
991CONFIG_FILE_LOCKING=y
986# CONFIG_XFS_FS is not set 992# CONFIG_XFS_FS is not set
987# CONFIG_OCFS2_FS is not set 993# CONFIG_OCFS2_FS is not set
988CONFIG_DNOTIFY=y 994CONFIG_DNOTIFY=y
@@ -1012,6 +1018,7 @@ CONFIG_INOTIFY_USER=y
1012CONFIG_PROC_FS=y 1018CONFIG_PROC_FS=y
1013CONFIG_PROC_KCORE=y 1019CONFIG_PROC_KCORE=y
1014CONFIG_PROC_SYSCTL=y 1020CONFIG_PROC_SYSCTL=y
1021CONFIG_PROC_PAGE_MONITOR=y
1015CONFIG_SYSFS=y 1022CONFIG_SYSFS=y
1016CONFIG_TMPFS=y 1023CONFIG_TMPFS=y
1017# CONFIG_TMPFS_POSIX_ACL is not set 1024# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1049,6 +1056,7 @@ CONFIG_LOCKD_V4=y
1049CONFIG_NFS_COMMON=y 1056CONFIG_NFS_COMMON=y
1050CONFIG_SUNRPC=y 1057CONFIG_SUNRPC=y
1051CONFIG_SUNRPC_GSS=y 1058CONFIG_SUNRPC_GSS=y
1059# CONFIG_SUNRPC_REGISTER_V4 is not set
1052CONFIG_RPCSEC_GSS_KRB5=y 1060CONFIG_RPCSEC_GSS_KRB5=y
1053# CONFIG_RPCSEC_GSS_SPKM3 is not set 1061# CONFIG_RPCSEC_GSS_SPKM3 is not set
1054# CONFIG_SMB_FS is not set 1062# CONFIG_SMB_FS is not set
@@ -1085,7 +1093,6 @@ CONFIG_MSDOS_PARTITION=y
1085# Library routines 1093# Library routines
1086# 1094#
1087CONFIG_BITREVERSE=y 1095CONFIG_BITREVERSE=y
1088# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1089# CONFIG_CRC_CCITT is not set 1096# CONFIG_CRC_CCITT is not set
1090# CONFIG_CRC16 is not set 1097# CONFIG_CRC16 is not set
1091CONFIG_CRC_T10DIF=y 1098CONFIG_CRC_T10DIF=y
@@ -1113,13 +1120,15 @@ CONFIG_FRAME_WARN=1024
1113# CONFIG_DEBUG_KERNEL is not set 1120# CONFIG_DEBUG_KERNEL is not set
1114# CONFIG_DEBUG_BUGVERBOSE is not set 1121# CONFIG_DEBUG_BUGVERBOSE is not set
1115# CONFIG_DEBUG_MEMORY_INIT is not set 1122# CONFIG_DEBUG_MEMORY_INIT is not set
1123# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1116# CONFIG_LATENCYTOP is not set 1124# CONFIG_LATENCYTOP is not set
1117CONFIG_SYSCTL_SYSCALL_CHECK=y 1125CONFIG_SYSCTL_SYSCALL_CHECK=y
1118CONFIG_HAVE_FTRACE=y 1126CONFIG_HAVE_FUNCTION_TRACER=y
1119CONFIG_HAVE_DYNAMIC_FTRACE=y 1127
1120# CONFIG_FTRACE is not set 1128#
1121# CONFIG_SCHED_TRACER is not set 1129# Tracers
1122# CONFIG_CONTEXT_SWITCH_TRACER is not set 1130#
1131# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1123# CONFIG_SAMPLES is not set 1132# CONFIG_SAMPLES is not set
1124CONFIG_HAVE_ARCH_KGDB=y 1133CONFIG_HAVE_ARCH_KGDB=y
1125# CONFIG_IRQSTACKS is not set 1134# CONFIG_IRQSTACKS is not set
@@ -1131,14 +1140,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1131# 1140#
1132# CONFIG_KEYS is not set 1141# CONFIG_KEYS is not set
1133# CONFIG_SECURITY is not set 1142# CONFIG_SECURITY is not set
1143# CONFIG_SECURITYFS is not set
1134# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1144# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1135CONFIG_CRYPTO=y 1145CONFIG_CRYPTO=y
1136 1146
1137# 1147#
1138# Crypto core or helper 1148# Crypto core or helper
1139# 1149#
1150# CONFIG_CRYPTO_FIPS is not set
1140CONFIG_CRYPTO_ALGAPI=y 1151CONFIG_CRYPTO_ALGAPI=y
1152CONFIG_CRYPTO_AEAD=y
1141CONFIG_CRYPTO_BLKCIPHER=y 1153CONFIG_CRYPTO_BLKCIPHER=y
1154CONFIG_CRYPTO_HASH=y
1155CONFIG_CRYPTO_RNG=y
1142CONFIG_CRYPTO_MANAGER=y 1156CONFIG_CRYPTO_MANAGER=y
1143# CONFIG_CRYPTO_GF128MUL is not set 1157# CONFIG_CRYPTO_GF128MUL is not set
1144# CONFIG_CRYPTO_NULL is not set 1158# CONFIG_CRYPTO_NULL is not set
@@ -1211,6 +1225,11 @@ CONFIG_CRYPTO_DES=y
1211# 1225#
1212# CONFIG_CRYPTO_DEFLATE is not set 1226# CONFIG_CRYPTO_DEFLATE is not set
1213# CONFIG_CRYPTO_LZO is not set 1227# CONFIG_CRYPTO_LZO is not set
1228
1229#
1230# Random Number Generation
1231#
1232# CONFIG_CRYPTO_ANSI_CPRNG is not set
1214CONFIG_CRYPTO_HW=y 1233CONFIG_CRYPTO_HW=y
1215# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1234# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1216# CONFIG_CRYPTO_DEV_TALITOS is not set 1235# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index 5ac33054ce2c..f447de16f75d 100644
--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:25 2008 4# Sat Nov 8 12:40:01 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -99,7 +97,6 @@ CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 97CONFIG_PRINTK=y
100CONFIG_BUG=y 98CONFIG_BUG=y
101CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 100CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 102CONFIG_FUTEX=y
@@ -109,7 +106,9 @@ CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 106CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 108CONFIG_SHMEM=y
109CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
113CONFIG_SLAB=y 112CONFIG_SLAB=y
114# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
115# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
@@ -122,10 +121,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_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 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
@@ -158,6 +153,7 @@ CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
160CONFIG_CLASSIC_RCU=y 155CONFIG_CLASSIC_RCU=y
156# CONFIG_FREEZER is not set
161 157
162# 158#
163# Platform support 159# Platform support
@@ -165,10 +161,10 @@ CONFIG_CLASSIC_RCU=y
165CONFIG_PPC_MULTIPLATFORM=y 161CONFIG_PPC_MULTIPLATFORM=y
166CONFIG_CLASSIC32=y 162CONFIG_CLASSIC32=y
167# CONFIG_PPC_CHRP is not set 163# CONFIG_PPC_CHRP is not set
168# CONFIG_PPC_PMAC is not set
169# CONFIG_MPC5121_ADS is not set 164# CONFIG_MPC5121_ADS is not set
170# CONFIG_MPC5121_GENERIC is not set 165# CONFIG_MPC5121_GENERIC is not set
171# CONFIG_PPC_MPC52xx is not set 166# CONFIG_PPC_MPC52xx is not set
167# CONFIG_PPC_PMAC is not set
172# CONFIG_PPC_CELL is not set 168# CONFIG_PPC_CELL is not set
173# CONFIG_PPC_CELL_NATIVE is not set 169# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set 170# CONFIG_PPC_82xx is not set
@@ -188,30 +184,26 @@ CONFIG_MPC837x_RDB=y
188CONFIG_PPC_MPC837x=y 184CONFIG_PPC_MPC837x=y
189# CONFIG_PPC_86xx is not set 185# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set 186# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
193CONFIG_IPIC=y 187CONFIG_IPIC=y
194CONFIG_MPIC=y 188# CONFIG_MPIC is not set
195# CONFIG_MPIC_WEIRD is not set 189# CONFIG_MPIC_WEIRD is not set
196CONFIG_PPC_I8259=y 190# CONFIG_PPC_I8259 is not set
197CONFIG_PPC_RTAS=y 191# CONFIG_PPC_RTAS is not set
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
200# CONFIG_MMIO_NVRAM is not set 192# CONFIG_MMIO_NVRAM is not set
201CONFIG_PPC_MPC106=y 193# CONFIG_PPC_MPC106 is not set
202# CONFIG_PPC_970_NAP is not set 194# CONFIG_PPC_970_NAP is not set
203# CONFIG_PPC_INDIRECT_IO is not set 195# CONFIG_PPC_INDIRECT_IO is not set
204# CONFIG_GENERIC_IOMAP is not set 196# CONFIG_GENERIC_IOMAP is not set
205# CONFIG_CPU_FREQ is not set 197# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set 198# CONFIG_TAU is not set
199# CONFIG_QUICC_ENGINE is not set
208# CONFIG_FSL_ULI1575 is not set 200# CONFIG_FSL_ULI1575 is not set
201# CONFIG_MPC8xxx_GPIO is not set
209 202
210# 203#
211# Kernel options 204# Kernel options
212# 205#
213# CONFIG_HIGHMEM is not set 206# CONFIG_HIGHMEM is not set
214# CONFIG_TICK_ONESHOT is not set
215# CONFIG_NO_HZ is not set 207# CONFIG_NO_HZ is not set
216# CONFIG_HIGH_RES_TIMERS is not set 208# CONFIG_HIGH_RES_TIMERS is not set
217CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 209CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -225,6 +217,8 @@ CONFIG_PREEMPT_NONE=y
225# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
226# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
227CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
228# CONFIG_BINFMT_MISC is not set 222# CONFIG_BINFMT_MISC is not set
229# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -239,15 +233,15 @@ CONFIG_FLATMEM_MANUAL=y
239# CONFIG_SPARSEMEM_MANUAL is not set 233# CONFIG_SPARSEMEM_MANUAL is not set
240CONFIG_FLATMEM=y 234CONFIG_FLATMEM=y
241CONFIG_FLAT_NODE_MEM_MAP=y 235CONFIG_FLAT_NODE_MEM_MAP=y
242# CONFIG_SPARSEMEM_STATIC is not set
243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
244CONFIG_PAGEFLAGS_EXTENDED=y 236CONFIG_PAGEFLAGS_EXTENDED=y
245CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
247# CONFIG_RESOURCES_64BIT is not set 239# CONFIG_RESOURCES_64BIT is not set
240# CONFIG_PHYS_ADDR_T_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
250CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y
251CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
@@ -259,7 +253,6 @@ CONFIG_ISA_DMA_API=y
259# 253#
260# Bus options 254# Bus options
261# 255#
262# CONFIG_ISA is not set
263CONFIG_ZONE_DMA=y 256CONFIG_ZONE_DMA=y
264CONFIG_GENERIC_ISA_DMA=y 257CONFIG_GENERIC_ISA_DMA=y
265CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
@@ -272,7 +265,7 @@ CONFIG_PCI_SYSCALL=y
272# CONFIG_PCIEPORTBUS is not set 265# CONFIG_PCIEPORTBUS is not set
273CONFIG_ARCH_SUPPORTS_MSI=y 266CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_MSI is not set 267# CONFIG_PCI_MSI is not set
275CONFIG_PCI_LEGACY=y 268# CONFIG_PCI_LEGACY is not set
276# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 271# CONFIG_HAS_RAPIDIO is not set
@@ -335,6 +328,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
335# CONFIG_TIPC is not set 328# CONFIG_TIPC is not set
336# CONFIG_ATM is not set 329# CONFIG_ATM is not set
337# CONFIG_BRIDGE is not set 330# CONFIG_BRIDGE is not set
331# CONFIG_NET_DSA is not set
338# CONFIG_VLAN_8021Q is not set 332# CONFIG_VLAN_8021Q is not set
339# CONFIG_DECNET is not set 333# CONFIG_DECNET is not set
340# CONFIG_LLC2 is not set 334# CONFIG_LLC2 is not set
@@ -355,11 +349,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_IRDA is not set 349# CONFIG_IRDA is not set
356# CONFIG_BT is not set 350# CONFIG_BT is not set
357# CONFIG_AF_RXRPC is not set 351# CONFIG_AF_RXRPC is not set
358 352# CONFIG_PHONET is not set
359# 353CONFIG_WIRELESS=y
360# Wireless
361#
362# CONFIG_CFG80211 is not set 354# CONFIG_CFG80211 is not set
355CONFIG_WIRELESS_OLD_REGULATORY=y
363# CONFIG_WIRELESS_EXT is not set 356# CONFIG_WIRELESS_EXT is not set
364# CONFIG_MAC80211 is not set 357# CONFIG_MAC80211 is not set
365# CONFIG_IEEE80211 is not set 358# CONFIG_IEEE80211 is not set
@@ -385,7 +378,6 @@ CONFIG_OF_I2C=y
385# CONFIG_PARPORT is not set 378# CONFIG_PARPORT is not set
386CONFIG_BLK_DEV=y 379CONFIG_BLK_DEV=y
387# CONFIG_BLK_DEV_FD is not set 380# CONFIG_BLK_DEV_FD is not set
388# CONFIG_MAC_FLOPPY is not set
389# CONFIG_BLK_CPQ_DA is not set 381# CONFIG_BLK_CPQ_DA is not set
390# CONFIG_BLK_CPQ_CISS_DA is not set 382# CONFIG_BLK_CPQ_CISS_DA is not set
391# CONFIG_BLK_DEV_DAC960 is not set 383# CONFIG_BLK_DEV_DAC960 is not set
@@ -487,8 +479,6 @@ CONFIG_SCSI_LOWLEVEL=y
487# CONFIG_SCSI_DC390T is not set 479# CONFIG_SCSI_DC390T is not set
488# CONFIG_SCSI_NSP32 is not set 480# CONFIG_SCSI_NSP32 is not set
489# CONFIG_SCSI_DEBUG is not set 481# CONFIG_SCSI_DEBUG is not set
490# CONFIG_SCSI_MESH is not set
491# CONFIG_SCSI_MAC53C94 is not set
492# CONFIG_SCSI_SRP is not set 482# CONFIG_SCSI_SRP is not set
493# CONFIG_SCSI_DH is not set 483# CONFIG_SCSI_DH is not set
494CONFIG_ATA=y 484CONFIG_ATA=y
@@ -554,6 +544,7 @@ CONFIG_ATA_SFF=y
554# CONFIG_PATA_SCH is not set 544# CONFIG_PATA_SCH is not set
555CONFIG_MD=y 545CONFIG_MD=y
556CONFIG_BLK_DEV_MD=y 546CONFIG_BLK_DEV_MD=y
547CONFIG_MD_AUTODETECT=y
557# CONFIG_MD_LINEAR is not set 548# CONFIG_MD_LINEAR is not set
558# CONFIG_MD_RAID0 is not set 549# CONFIG_MD_RAID0 is not set
559CONFIG_MD_RAID1=y 550CONFIG_MD_RAID1=y
@@ -603,8 +594,6 @@ CONFIG_FIXED_PHY=y
603# CONFIG_MDIO_BITBANG is not set 594# CONFIG_MDIO_BITBANG is not set
604CONFIG_NET_ETHERNET=y 595CONFIG_NET_ETHERNET=y
605CONFIG_MII=y 596CONFIG_MII=y
606# CONFIG_MACE is not set
607# CONFIG_BMAC is not set
608# CONFIG_HAPPYMEAL is not set 597# CONFIG_HAPPYMEAL is not set
609# CONFIG_SUNGEM is not set 598# CONFIG_SUNGEM is not set
610# CONFIG_CASSINI is not set 599# CONFIG_CASSINI is not set
@@ -615,8 +604,12 @@ CONFIG_MII=y
615# CONFIG_IBM_NEW_EMAC_RGMII is not set 604# CONFIG_IBM_NEW_EMAC_RGMII is not set
616# CONFIG_IBM_NEW_EMAC_TAH is not set 605# CONFIG_IBM_NEW_EMAC_TAH is not set
617# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 606# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
607# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
608# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
609# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
618# CONFIG_NET_PCI is not set 610# CONFIG_NET_PCI is not set
619# CONFIG_B44 is not set 611# CONFIG_B44 is not set
612# CONFIG_ATL2 is not set
620CONFIG_NETDEV_1000=y 613CONFIG_NETDEV_1000=y
621# CONFIG_ACENIC is not set 614# CONFIG_ACENIC is not set
622# CONFIG_DL2K is not set 615# CONFIG_DL2K is not set
@@ -639,6 +632,7 @@ CONFIG_GIANFAR=y
639# CONFIG_QLA3XXX is not set 632# CONFIG_QLA3XXX is not set
640# CONFIG_ATL1 is not set 633# CONFIG_ATL1 is not set
641# CONFIG_ATL1E is not set 634# CONFIG_ATL1E is not set
635# CONFIG_JME is not set
642# CONFIG_NETDEV_10000 is not set 636# CONFIG_NETDEV_10000 is not set
643# CONFIG_TR is not set 637# CONFIG_TR is not set
644 638
@@ -673,7 +667,7 @@ CONFIG_GIANFAR=y
673# Input device support 667# Input device support
674# 668#
675CONFIG_INPUT=y 669CONFIG_INPUT=y
676# CONFIG_INPUT_FF_MEMLESS is not set 670CONFIG_INPUT_FF_MEMLESS=m
677# CONFIG_INPUT_POLLDEV is not set 671# CONFIG_INPUT_POLLDEV is not set
678 672
679# 673#
@@ -724,14 +718,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
724# CONFIG_SERIAL_UARTLITE is not set 718# CONFIG_SERIAL_UARTLITE is not set
725CONFIG_SERIAL_CORE=y 719CONFIG_SERIAL_CORE=y
726CONFIG_SERIAL_CORE_CONSOLE=y 720CONFIG_SERIAL_CORE_CONSOLE=y
727# CONFIG_SERIAL_PMACZILOG is not set
728# CONFIG_SERIAL_JSM is not set 721# CONFIG_SERIAL_JSM is not set
729# CONFIG_SERIAL_OF_PLATFORM is not set 722# CONFIG_SERIAL_OF_PLATFORM is not set
730CONFIG_UNIX98_PTYS=y 723CONFIG_UNIX98_PTYS=y
731CONFIG_LEGACY_PTYS=y 724CONFIG_LEGACY_PTYS=y
732CONFIG_LEGACY_PTY_COUNT=256 725CONFIG_LEGACY_PTY_COUNT=256
733# CONFIG_BRIQ_PANEL is not set
734# CONFIG_HVC_RTAS is not set
735# CONFIG_IPMI_HANDLER is not set 726# CONFIG_IPMI_HANDLER is not set
736# CONFIG_HW_RANDOM is not set 727# CONFIG_HW_RANDOM is not set
737# CONFIG_NVRAM is not set 728# CONFIG_NVRAM is not set
@@ -770,12 +761,6 @@ CONFIG_I2C_HELPER_AUTO=y
770# CONFIG_I2C_VIAPRO is not set 761# CONFIG_I2C_VIAPRO is not set
771 762
772# 763#
773# Mac SMBus host controller drivers
774#
775# CONFIG_I2C_HYDRA is not set
776CONFIG_I2C_POWERMAC=y
777
778#
779# I2C system bus drivers (mostly embedded / system-on-chip) 764# I2C system bus drivers (mostly embedded / system-on-chip)
780# 765#
781CONFIG_I2C_MPC=y 766CONFIG_I2C_MPC=y
@@ -812,6 +797,7 @@ CONFIG_I2C_MPC=y
812# CONFIG_SENSORS_PCF8591 is not set 797# CONFIG_SENSORS_PCF8591 is not set
813# CONFIG_SENSORS_MAX6875 is not set 798# CONFIG_SENSORS_MAX6875 is not set
814# CONFIG_SENSORS_TSL2550 is not set 799# CONFIG_SENSORS_TSL2550 is not set
800# CONFIG_MCU_MPC8349EMITX is not set
815# CONFIG_I2C_DEBUG_CORE is not set 801# CONFIG_I2C_DEBUG_CORE is not set
816# CONFIG_I2C_DEBUG_ALGO is not set 802# CONFIG_I2C_DEBUG_ALGO is not set
817# CONFIG_I2C_DEBUG_BUS is not set 803# CONFIG_I2C_DEBUG_BUS is not set
@@ -833,7 +819,6 @@ CONFIG_HWMON=y
833# CONFIG_SENSORS_ADM9240 is not set 819# CONFIG_SENSORS_ADM9240 is not set
834# CONFIG_SENSORS_ADT7470 is not set 820# CONFIG_SENSORS_ADT7470 is not set
835# CONFIG_SENSORS_ADT7473 is not set 821# CONFIG_SENSORS_ADT7473 is not set
836# CONFIG_SENSORS_AMS is not set
837# CONFIG_SENSORS_ATXP1 is not set 822# CONFIG_SENSORS_ATXP1 is not set
838# CONFIG_SENSORS_DS1621 is not set 823# CONFIG_SENSORS_DS1621 is not set
839# CONFIG_SENSORS_I5K_AMB is not set 824# CONFIG_SENSORS_I5K_AMB is not set
@@ -888,7 +873,6 @@ CONFIG_WATCHDOG=y
888# CONFIG_SOFT_WATCHDOG is not set 873# CONFIG_SOFT_WATCHDOG is not set
889# CONFIG_ALIM7101_WDT is not set 874# CONFIG_ALIM7101_WDT is not set
890# CONFIG_8xxx_WDT is not set 875# CONFIG_8xxx_WDT is not set
891# CONFIG_WATCHDOG_RTAS is not set
892 876
893# 877#
894# PCI-based Watchdog Cards 878# PCI-based Watchdog Cards
@@ -914,6 +898,17 @@ CONFIG_SSB_POSSIBLE=y
914# CONFIG_MFD_SM501 is not set 898# CONFIG_MFD_SM501 is not set
915# CONFIG_HTC_PASIC3 is not set 899# CONFIG_HTC_PASIC3 is not set
916# CONFIG_MFD_TMIO is not set 900# CONFIG_MFD_TMIO is not set
901# CONFIG_PMIC_DA903X is not set
902# CONFIG_MFD_WM8400 is not set
903# CONFIG_MFD_WM8350_I2C is not set
904
905#
906# Voltage and Current regulators
907#
908# CONFIG_REGULATOR is not set
909# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
910# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
911# CONFIG_REGULATOR_BQ24022 is not set
917 912
918# 913#
919# Multimedia devices 914# Multimedia devices
@@ -956,9 +951,36 @@ CONFIG_HID=y
956# USB Input Devices 951# USB Input Devices
957# 952#
958CONFIG_USB_HID=y 953CONFIG_USB_HID=y
959# CONFIG_USB_HIDINPUT_POWERBOOK is not set 954# CONFIG_HID_PID is not set
960# CONFIG_HID_FF is not set
961# CONFIG_USB_HIDDEV is not set 955# CONFIG_USB_HIDDEV is not set
956
957#
958# Special HID drivers
959#
960CONFIG_HID_COMPAT=y
961CONFIG_HID_A4TECH=y
962CONFIG_HID_APPLE=y
963CONFIG_HID_BELKIN=y
964CONFIG_HID_BRIGHT=y
965CONFIG_HID_CHERRY=y
966CONFIG_HID_CHICONY=y
967CONFIG_HID_CYPRESS=y
968CONFIG_HID_DELL=y
969CONFIG_HID_EZKEY=y
970CONFIG_HID_GYRATION=y
971CONFIG_HID_LOGITECH=y
972# CONFIG_LOGITECH_FF is not set
973# CONFIG_LOGIRUMBLEPAD2_FF is not set
974CONFIG_HID_MICROSOFT=y
975CONFIG_HID_MONTEREY=y
976CONFIG_HID_PANTHERLORD=y
977# CONFIG_PANTHERLORD_FF is not set
978CONFIG_HID_PETALYNX=y
979CONFIG_HID_SAMSUNG=y
980CONFIG_HID_SONY=y
981CONFIG_HID_SUNPLUS=y
982CONFIG_THRUSTMASTER_FF=m
983CONFIG_ZEROPLUS_FF=m
962CONFIG_USB_SUPPORT=y 984CONFIG_USB_SUPPORT=y
963CONFIG_USB_ARCH_HAS_HCD=y 985CONFIG_USB_ARCH_HAS_HCD=y
964CONFIG_USB_ARCH_HAS_OHCI=y 986CONFIG_USB_ARCH_HAS_OHCI=y
@@ -977,6 +999,8 @@ CONFIG_USB_DEVICE_CLASS=y
977# CONFIG_USB_OTG_WHITELIST is not set 999# CONFIG_USB_OTG_WHITELIST is not set
978# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1000# CONFIG_USB_OTG_BLACKLIST_HUB is not set
979CONFIG_USB_MON=y 1001CONFIG_USB_MON=y
1002# CONFIG_USB_WUSB is not set
1003# CONFIG_USB_WUSB_CBAF is not set
980 1004
981# 1005#
982# USB Host Controller Drivers 1006# USB Host Controller Drivers
@@ -993,6 +1017,8 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
993# CONFIG_USB_UHCI_HCD is not set 1017# CONFIG_USB_UHCI_HCD is not set
994# CONFIG_USB_SL811_HCD is not set 1018# CONFIG_USB_SL811_HCD is not set
995# CONFIG_USB_R8A66597_HCD is not set 1019# CONFIG_USB_R8A66597_HCD is not set
1020# CONFIG_USB_WHCI_HCD is not set
1021# CONFIG_USB_HWA_HCD is not set
996 1022
997# 1023#
998# USB Device Class drivers 1024# USB Device Class drivers
@@ -1000,6 +1026,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1000# CONFIG_USB_ACM is not set 1026# CONFIG_USB_ACM is not set
1001# CONFIG_USB_PRINTER is not set 1027# CONFIG_USB_PRINTER is not set
1002# CONFIG_USB_WDM is not set 1028# CONFIG_USB_WDM is not set
1029# CONFIG_USB_TMC is not set
1003 1030
1004# 1031#
1005# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1032# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1028,6 +1055,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1028# CONFIG_USB_EMI62 is not set 1055# CONFIG_USB_EMI62 is not set
1029# CONFIG_USB_EMI26 is not set 1056# CONFIG_USB_EMI26 is not set
1030# CONFIG_USB_ADUTUX is not set 1057# CONFIG_USB_ADUTUX is not set
1058# CONFIG_USB_SEVSEG is not set
1031# CONFIG_USB_RIO500 is not set 1059# CONFIG_USB_RIO500 is not set
1032# CONFIG_USB_LEGOTOWER is not set 1060# CONFIG_USB_LEGOTOWER is not set
1033# CONFIG_USB_LCD is not set 1061# CONFIG_USB_LCD is not set
@@ -1044,7 +1072,9 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1044# CONFIG_USB_TRANCEVIBRATOR is not set 1072# CONFIG_USB_TRANCEVIBRATOR is not set
1045# CONFIG_USB_IOWARRIOR is not set 1073# CONFIG_USB_IOWARRIOR is not set
1046# CONFIG_USB_ISIGHTFW is not set 1074# CONFIG_USB_ISIGHTFW is not set
1075# CONFIG_USB_VST is not set
1047# CONFIG_USB_GADGET is not set 1076# CONFIG_USB_GADGET is not set
1077# CONFIG_UWB is not set
1048# CONFIG_MMC is not set 1078# CONFIG_MMC is not set
1049# CONFIG_MEMSTICK is not set 1079# CONFIG_MEMSTICK is not set
1050# CONFIG_NEW_LEDS is not set 1080# CONFIG_NEW_LEDS is not set
@@ -1054,6 +1084,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1054# CONFIG_RTC_CLASS is not set 1084# CONFIG_RTC_CLASS is not set
1055# CONFIG_DMADEVICES is not set 1085# CONFIG_DMADEVICES is not set
1056# CONFIG_UIO is not set 1086# CONFIG_UIO is not set
1087# CONFIG_STAGING is not set
1057 1088
1058# 1089#
1059# File systems 1090# File systems
@@ -1065,12 +1096,13 @@ CONFIG_EXT3_FS=y
1065CONFIG_EXT3_FS_XATTR=y 1096CONFIG_EXT3_FS_XATTR=y
1066# CONFIG_EXT3_FS_POSIX_ACL is not set 1097# CONFIG_EXT3_FS_POSIX_ACL is not set
1067# CONFIG_EXT3_FS_SECURITY is not set 1098# CONFIG_EXT3_FS_SECURITY is not set
1068# CONFIG_EXT4DEV_FS is not set 1099# CONFIG_EXT4_FS is not set
1069CONFIG_JBD=y 1100CONFIG_JBD=y
1070CONFIG_FS_MBCACHE=y 1101CONFIG_FS_MBCACHE=y
1071# CONFIG_REISERFS_FS is not set 1102# CONFIG_REISERFS_FS is not set
1072# CONFIG_JFS_FS is not set 1103# CONFIG_JFS_FS is not set
1073# CONFIG_FS_POSIX_ACL is not set 1104# CONFIG_FS_POSIX_ACL is not set
1105CONFIG_FILE_LOCKING=y
1074# CONFIG_XFS_FS is not set 1106# CONFIG_XFS_FS is not set
1075# CONFIG_OCFS2_FS is not set 1107# CONFIG_OCFS2_FS is not set
1076CONFIG_DNOTIFY=y 1108CONFIG_DNOTIFY=y
@@ -1100,6 +1132,7 @@ CONFIG_INOTIFY_USER=y
1100CONFIG_PROC_FS=y 1132CONFIG_PROC_FS=y
1101CONFIG_PROC_KCORE=y 1133CONFIG_PROC_KCORE=y
1102CONFIG_PROC_SYSCTL=y 1134CONFIG_PROC_SYSCTL=y
1135CONFIG_PROC_PAGE_MONITOR=y
1103CONFIG_SYSFS=y 1136CONFIG_SYSFS=y
1104CONFIG_TMPFS=y 1137CONFIG_TMPFS=y
1105# CONFIG_TMPFS_POSIX_ACL is not set 1138# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1137,6 +1170,7 @@ CONFIG_LOCKD_V4=y
1137CONFIG_NFS_COMMON=y 1170CONFIG_NFS_COMMON=y
1138CONFIG_SUNRPC=y 1171CONFIG_SUNRPC=y
1139CONFIG_SUNRPC_GSS=y 1172CONFIG_SUNRPC_GSS=y
1173# CONFIG_SUNRPC_REGISTER_V4 is not set
1140CONFIG_RPCSEC_GSS_KRB5=y 1174CONFIG_RPCSEC_GSS_KRB5=y
1141# CONFIG_RPCSEC_GSS_SPKM3 is not set 1175# CONFIG_RPCSEC_GSS_SPKM3 is not set
1142# CONFIG_SMB_FS is not set 1176# CONFIG_SMB_FS is not set
@@ -1173,7 +1207,6 @@ CONFIG_MSDOS_PARTITION=y
1173# Library routines 1207# Library routines
1174# 1208#
1175CONFIG_BITREVERSE=y 1209CONFIG_BITREVERSE=y
1176# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1177# CONFIG_CRC_CCITT is not set 1210# CONFIG_CRC_CCITT is not set
1178# CONFIG_CRC16 is not set 1211# CONFIG_CRC16 is not set
1179CONFIG_CRC_T10DIF=y 1212CONFIG_CRC_T10DIF=y
@@ -1201,13 +1234,15 @@ CONFIG_FRAME_WARN=1024
1201# CONFIG_DEBUG_KERNEL is not set 1234# CONFIG_DEBUG_KERNEL is not set
1202# CONFIG_DEBUG_BUGVERBOSE is not set 1235# CONFIG_DEBUG_BUGVERBOSE is not set
1203# CONFIG_DEBUG_MEMORY_INIT is not set 1236# CONFIG_DEBUG_MEMORY_INIT is not set
1237# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1204# CONFIG_LATENCYTOP is not set 1238# CONFIG_LATENCYTOP is not set
1205CONFIG_SYSCTL_SYSCALL_CHECK=y 1239CONFIG_SYSCTL_SYSCALL_CHECK=y
1206CONFIG_HAVE_FTRACE=y 1240CONFIG_HAVE_FUNCTION_TRACER=y
1207CONFIG_HAVE_DYNAMIC_FTRACE=y 1241
1208# CONFIG_FTRACE is not set 1242#
1209# CONFIG_SCHED_TRACER is not set 1243# Tracers
1210# CONFIG_CONTEXT_SWITCH_TRACER is not set 1244#
1245# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1211# CONFIG_SAMPLES is not set 1246# CONFIG_SAMPLES is not set
1212CONFIG_HAVE_ARCH_KGDB=y 1247CONFIG_HAVE_ARCH_KGDB=y
1213# CONFIG_IRQSTACKS is not set 1248# CONFIG_IRQSTACKS is not set
@@ -1219,6 +1254,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1219# 1254#
1220# CONFIG_KEYS is not set 1255# CONFIG_KEYS is not set
1221# CONFIG_SECURITY is not set 1256# CONFIG_SECURITY is not set
1257# CONFIG_SECURITYFS is not set
1222# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1258# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1223CONFIG_XOR_BLOCKS=y 1259CONFIG_XOR_BLOCKS=y
1224CONFIG_ASYNC_CORE=y 1260CONFIG_ASYNC_CORE=y
@@ -1229,8 +1265,12 @@ CONFIG_CRYPTO=y
1229# 1265#
1230# Crypto core or helper 1266# Crypto core or helper
1231# 1267#
1268# CONFIG_CRYPTO_FIPS is not set
1232CONFIG_CRYPTO_ALGAPI=y 1269CONFIG_CRYPTO_ALGAPI=y
1270CONFIG_CRYPTO_AEAD=y
1233CONFIG_CRYPTO_BLKCIPHER=y 1271CONFIG_CRYPTO_BLKCIPHER=y
1272CONFIG_CRYPTO_HASH=y
1273CONFIG_CRYPTO_RNG=y
1234CONFIG_CRYPTO_MANAGER=y 1274CONFIG_CRYPTO_MANAGER=y
1235# CONFIG_CRYPTO_GF128MUL is not set 1275# CONFIG_CRYPTO_GF128MUL is not set
1236# CONFIG_CRYPTO_NULL is not set 1276# CONFIG_CRYPTO_NULL is not set
@@ -1303,6 +1343,11 @@ CONFIG_CRYPTO_DES=y
1303# 1343#
1304# CONFIG_CRYPTO_DEFLATE is not set 1344# CONFIG_CRYPTO_DEFLATE is not set
1305# CONFIG_CRYPTO_LZO is not set 1345# CONFIG_CRYPTO_LZO is not set
1346
1347#
1348# Random Number Generation
1349#
1350# CONFIG_CRYPTO_ANSI_CPRNG is not set
1306CONFIG_CRYPTO_HW=y 1351CONFIG_CRYPTO_HW=y
1307# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1352# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1308# CONFIG_CRYPTO_DEV_TALITOS is not set 1353# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index c359cc2a380e..8d2d7eeab5f5 100644
--- a/arch/powerpc/configs/83xx/sbc834x_defconfig
+++ b/arch/powerpc/configs/83xx/sbc834x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:27 2008 4# Sat Nov 8 12:40:02 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -53,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
@@ -98,7 +96,6 @@ CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 96CONFIG_PRINTK=y
99CONFIG_BUG=y 97CONFIG_BUG=y
100CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
102CONFIG_COMPAT_BRK=y 99CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 101CONFIG_FUTEX=y
@@ -108,7 +105,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
112CONFIG_SLAB=y 111CONFIG_SLAB=y
113# CONFIG_SLUB is not set 112# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 113# CONFIG_SLOB is not set
@@ -120,10 +119,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 121CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
@@ -156,6 +151,7 @@ CONFIG_DEFAULT_AS=y
156# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
158CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_FREEZER is not set
159 155
160# 156#
161# Platform support 157# Platform support
@@ -163,10 +159,10 @@ CONFIG_CLASSIC_RCU=y
163CONFIG_PPC_MULTIPLATFORM=y 159CONFIG_PPC_MULTIPLATFORM=y
164CONFIG_CLASSIC32=y 160CONFIG_CLASSIC32=y
165# CONFIG_PPC_CHRP is not set 161# CONFIG_PPC_CHRP is not set
166# CONFIG_PPC_PMAC is not set
167# CONFIG_MPC5121_ADS is not set 162# CONFIG_MPC5121_ADS is not set
168# CONFIG_MPC5121_GENERIC is not set 163# CONFIG_MPC5121_GENERIC is not set
169# CONFIG_PPC_MPC52xx is not set 164# CONFIG_PPC_MPC52xx is not set
165# CONFIG_PPC_PMAC is not set
170# CONFIG_PPC_CELL is not set 166# CONFIG_PPC_CELL is not set
171# CONFIG_PPC_CELL_NATIVE is not set 167# CONFIG_PPC_CELL_NATIVE is not set
172# CONFIG_PPC_82xx is not set 168# CONFIG_PPC_82xx is not set
@@ -186,30 +182,26 @@ CONFIG_SBC834x=y
186CONFIG_PPC_MPC834x=y 182CONFIG_PPC_MPC834x=y
187# CONFIG_PPC_86xx is not set 183# CONFIG_PPC_86xx is not set
188# CONFIG_EMBEDDED6xx is not set 184# CONFIG_EMBEDDED6xx is not set
189CONFIG_PPC_NATIVE=y
190# CONFIG_UDBG_RTAS_CONSOLE is not set
191CONFIG_IPIC=y 185CONFIG_IPIC=y
192CONFIG_MPIC=y 186# CONFIG_MPIC is not set
193# CONFIG_MPIC_WEIRD is not set 187# CONFIG_MPIC_WEIRD is not set
194CONFIG_PPC_I8259=y 188# CONFIG_PPC_I8259 is not set
195CONFIG_PPC_RTAS=y 189# CONFIG_PPC_RTAS is not set
196# CONFIG_RTAS_ERROR_LOGGING is not set
197CONFIG_RTAS_PROC=y
198# CONFIG_MMIO_NVRAM is not set 190# CONFIG_MMIO_NVRAM is not set
199CONFIG_PPC_MPC106=y 191# CONFIG_PPC_MPC106 is not set
200# CONFIG_PPC_970_NAP is not set 192# CONFIG_PPC_970_NAP is not set
201# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
202# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
203# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
204# CONFIG_PPC601_SYNC_FIX is not set
205# CONFIG_TAU is not set 196# CONFIG_TAU is not set
197# CONFIG_QUICC_ENGINE is not set
206# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set
207 200
208# 201#
209# Kernel options 202# Kernel options
210# 203#
211# CONFIG_HIGHMEM is not set 204# CONFIG_HIGHMEM is not set
212# CONFIG_TICK_ONESHOT is not set
213# CONFIG_NO_HZ is not set 205# CONFIG_NO_HZ is not set
214# CONFIG_HIGH_RES_TIMERS is not set 206# CONFIG_HIGH_RES_TIMERS is not set
215CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 207CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -223,6 +215,8 @@ CONFIG_PREEMPT_NONE=y
223# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
224# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
225CONFIG_BINFMT_ELF=y 217CONFIG_BINFMT_ELF=y
218# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
219# CONFIG_HAVE_AOUT is not set
226# CONFIG_BINFMT_MISC is not set 220# CONFIG_BINFMT_MISC is not set
227# CONFIG_IOMMU_HELPER is not set 221# CONFIG_IOMMU_HELPER is not set
228CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -237,15 +231,15 @@ CONFIG_FLATMEM_MANUAL=y
237# CONFIG_SPARSEMEM_MANUAL is not set 231# CONFIG_SPARSEMEM_MANUAL is not set
238CONFIG_FLATMEM=y 232CONFIG_FLATMEM=y
239CONFIG_FLAT_NODE_MEM_MAP=y 233CONFIG_FLAT_NODE_MEM_MAP=y
240# CONFIG_SPARSEMEM_STATIC is not set
241# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
242CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
243CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
244CONFIG_MIGRATION=y 236CONFIG_MIGRATION=y
245# CONFIG_RESOURCES_64BIT is not set 237# CONFIG_RESOURCES_64BIT is not set
238# CONFIG_PHYS_ADDR_T_64BIT is not set
246CONFIG_ZONE_DMA_FLAG=1 239CONFIG_ZONE_DMA_FLAG=1
247CONFIG_BOUNCE=y 240CONFIG_BOUNCE=y
248CONFIG_VIRT_TO_BUS=y 241CONFIG_VIRT_TO_BUS=y
242CONFIG_UNEVICTABLE_LRU=y
249CONFIG_FORCE_MAX_ZONEORDER=11 243CONFIG_FORCE_MAX_ZONEORDER=11
250CONFIG_PROC_DEVICETREE=y 244CONFIG_PROC_DEVICETREE=y
251# CONFIG_CMDLINE_BOOL is not set 245# CONFIG_CMDLINE_BOOL is not set
@@ -257,7 +251,6 @@ CONFIG_ISA_DMA_API=y
257# 251#
258# Bus options 252# Bus options
259# 253#
260# CONFIG_ISA is not set
261CONFIG_ZONE_DMA=y 254CONFIG_ZONE_DMA=y
262CONFIG_GENERIC_ISA_DMA=y 255CONFIG_GENERIC_ISA_DMA=y
263CONFIG_PPC_INDIRECT_PCI=y 256CONFIG_PPC_INDIRECT_PCI=y
@@ -270,7 +263,7 @@ CONFIG_PCI_SYSCALL=y
270# CONFIG_PCIEPORTBUS is not set 263# CONFIG_PCIEPORTBUS is not set
271CONFIG_ARCH_SUPPORTS_MSI=y 264CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 265# CONFIG_PCI_MSI is not set
273CONFIG_PCI_LEGACY=y 266# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
275# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
276# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -338,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
338# CONFIG_TIPC is not set 331# CONFIG_TIPC is not set
339# CONFIG_ATM is not set 332# CONFIG_ATM is not set
340# CONFIG_BRIDGE is not set 333# CONFIG_BRIDGE is not set
334# CONFIG_NET_DSA is not set
341# CONFIG_VLAN_8021Q is not set 335# CONFIG_VLAN_8021Q is not set
342# CONFIG_DECNET is not set 336# CONFIG_DECNET is not set
343# CONFIG_LLC2 is not set 337# CONFIG_LLC2 is not set
@@ -358,11 +352,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
358# CONFIG_IRDA is not set 352# CONFIG_IRDA is not set
359# CONFIG_BT is not set 353# CONFIG_BT is not set
360# CONFIG_AF_RXRPC is not set 354# CONFIG_AF_RXRPC is not set
361 355# CONFIG_PHONET is not set
362# 356CONFIG_WIRELESS=y
363# Wireless
364#
365# CONFIG_CFG80211 is not set 357# CONFIG_CFG80211 is not set
358CONFIG_WIRELESS_OLD_REGULATORY=y
366# CONFIG_WIRELESS_EXT is not set 359# CONFIG_WIRELESS_EXT is not set
367# CONFIG_MAC80211 is not set 360# CONFIG_MAC80211 is not set
368# CONFIG_IEEE80211 is not set 361# CONFIG_IEEE80211 is not set
@@ -388,7 +381,6 @@ CONFIG_OF_I2C=y
388# CONFIG_PARPORT is not set 381# CONFIG_PARPORT is not set
389CONFIG_BLK_DEV=y 382CONFIG_BLK_DEV=y
390# CONFIG_BLK_DEV_FD is not set 383# CONFIG_BLK_DEV_FD is not set
391# CONFIG_MAC_FLOPPY is not set
392# CONFIG_BLK_CPQ_DA is not set 384# CONFIG_BLK_CPQ_DA is not set
393# CONFIG_BLK_CPQ_CISS_DA is not set 385# CONFIG_BLK_CPQ_CISS_DA is not set
394# CONFIG_BLK_DEV_DAC960 is not set 386# CONFIG_BLK_DEV_DAC960 is not set
@@ -464,8 +456,6 @@ CONFIG_BROADCOM_PHY=y
464# CONFIG_MDIO_BITBANG is not set 456# CONFIG_MDIO_BITBANG is not set
465CONFIG_NET_ETHERNET=y 457CONFIG_NET_ETHERNET=y
466CONFIG_MII=y 458CONFIG_MII=y
467# CONFIG_MACE is not set
468# CONFIG_BMAC is not set
469# CONFIG_HAPPYMEAL is not set 459# CONFIG_HAPPYMEAL is not set
470# CONFIG_SUNGEM is not set 460# CONFIG_SUNGEM is not set
471# CONFIG_CASSINI is not set 461# CONFIG_CASSINI is not set
@@ -476,8 +466,12 @@ CONFIG_MII=y
476# CONFIG_IBM_NEW_EMAC_RGMII is not set 466# CONFIG_IBM_NEW_EMAC_RGMII is not set
477# CONFIG_IBM_NEW_EMAC_TAH is not set 467# CONFIG_IBM_NEW_EMAC_TAH is not set
478# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 468# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
469# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
470# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
471# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
479# CONFIG_NET_PCI is not set 472# CONFIG_NET_PCI is not set
480# CONFIG_B44 is not set 473# CONFIG_B44 is not set
474# CONFIG_ATL2 is not set
481CONFIG_NETDEV_1000=y 475CONFIG_NETDEV_1000=y
482# CONFIG_ACENIC is not set 476# CONFIG_ACENIC is not set
483# CONFIG_DL2K is not set 477# CONFIG_DL2K is not set
@@ -500,6 +494,7 @@ CONFIG_GIANFAR=y
500# CONFIG_QLA3XXX is not set 494# CONFIG_QLA3XXX is not set
501# CONFIG_ATL1 is not set 495# CONFIG_ATL1 is not set
502# CONFIG_ATL1E is not set 496# CONFIG_ATL1E is not set
497# CONFIG_JME is not set
503# CONFIG_NETDEV_10000 is not set 498# CONFIG_NETDEV_10000 is not set
504# CONFIG_TR is not set 499# CONFIG_TR is not set
505 500
@@ -575,14 +570,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
575# CONFIG_SERIAL_UARTLITE is not set 570# CONFIG_SERIAL_UARTLITE is not set
576CONFIG_SERIAL_CORE=y 571CONFIG_SERIAL_CORE=y
577CONFIG_SERIAL_CORE_CONSOLE=y 572CONFIG_SERIAL_CORE_CONSOLE=y
578# CONFIG_SERIAL_PMACZILOG is not set
579# CONFIG_SERIAL_JSM is not set 573# CONFIG_SERIAL_JSM is not set
580# CONFIG_SERIAL_OF_PLATFORM is not set 574# CONFIG_SERIAL_OF_PLATFORM is not set
581CONFIG_UNIX98_PTYS=y 575CONFIG_UNIX98_PTYS=y
582CONFIG_LEGACY_PTYS=y 576CONFIG_LEGACY_PTYS=y
583CONFIG_LEGACY_PTY_COUNT=256 577CONFIG_LEGACY_PTY_COUNT=256
584# CONFIG_BRIQ_PANEL is not set
585# CONFIG_HVC_RTAS is not set
586# CONFIG_IPMI_HANDLER is not set 578# CONFIG_IPMI_HANDLER is not set
587# CONFIG_HW_RANDOM is not set 579# CONFIG_HW_RANDOM is not set
588# CONFIG_NVRAM is not set 580# CONFIG_NVRAM is not set
@@ -621,12 +613,6 @@ CONFIG_I2C_HELPER_AUTO=y
621# CONFIG_I2C_VIAPRO is not set 613# CONFIG_I2C_VIAPRO is not set
622 614
623# 615#
624# Mac SMBus host controller drivers
625#
626# CONFIG_I2C_HYDRA is not set
627CONFIG_I2C_POWERMAC=y
628
629#
630# I2C system bus drivers (mostly embedded / system-on-chip) 616# I2C system bus drivers (mostly embedded / system-on-chip)
631# 617#
632CONFIG_I2C_MPC=y 618CONFIG_I2C_MPC=y
@@ -662,6 +648,7 @@ CONFIG_I2C_MPC=y
662# CONFIG_SENSORS_PCF8591 is not set 648# CONFIG_SENSORS_PCF8591 is not set
663# CONFIG_SENSORS_MAX6875 is not set 649# CONFIG_SENSORS_MAX6875 is not set
664# CONFIG_SENSORS_TSL2550 is not set 650# CONFIG_SENSORS_TSL2550 is not set
651# CONFIG_MCU_MPC8349EMITX is not set
665# CONFIG_I2C_DEBUG_CORE is not set 652# CONFIG_I2C_DEBUG_CORE is not set
666# CONFIG_I2C_DEBUG_ALGO is not set 653# CONFIG_I2C_DEBUG_ALGO is not set
667# CONFIG_I2C_DEBUG_BUS is not set 654# CONFIG_I2C_DEBUG_BUS is not set
@@ -683,7 +670,6 @@ CONFIG_HWMON=y
683# CONFIG_SENSORS_ADM9240 is not set 670# CONFIG_SENSORS_ADM9240 is not set
684# CONFIG_SENSORS_ADT7470 is not set 671# CONFIG_SENSORS_ADT7470 is not set
685# CONFIG_SENSORS_ADT7473 is not set 672# CONFIG_SENSORS_ADT7473 is not set
686# CONFIG_SENSORS_AMS is not set
687# CONFIG_SENSORS_ATXP1 is not set 673# CONFIG_SENSORS_ATXP1 is not set
688# CONFIG_SENSORS_DS1621 is not set 674# CONFIG_SENSORS_DS1621 is not set
689# CONFIG_SENSORS_I5K_AMB is not set 675# CONFIG_SENSORS_I5K_AMB is not set
@@ -738,7 +724,6 @@ CONFIG_WATCHDOG=y
738# CONFIG_SOFT_WATCHDOG is not set 724# CONFIG_SOFT_WATCHDOG is not set
739# CONFIG_ALIM7101_WDT is not set 725# CONFIG_ALIM7101_WDT is not set
740# CONFIG_8xxx_WDT is not set 726# CONFIG_8xxx_WDT is not set
741# CONFIG_WATCHDOG_RTAS is not set
742 727
743# 728#
744# PCI-based Watchdog Cards 729# PCI-based Watchdog Cards
@@ -759,6 +744,17 @@ CONFIG_SSB_POSSIBLE=y
759# CONFIG_MFD_SM501 is not set 744# CONFIG_MFD_SM501 is not set
760# CONFIG_HTC_PASIC3 is not set 745# CONFIG_HTC_PASIC3 is not set
761# CONFIG_MFD_TMIO is not set 746# CONFIG_MFD_TMIO is not set
747# CONFIG_PMIC_DA903X is not set
748# CONFIG_MFD_WM8400 is not set
749# CONFIG_MFD_WM8350_I2C is not set
750
751#
752# Voltage and Current regulators
753#
754# CONFIG_REGULATOR is not set
755# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
756# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
757# CONFIG_REGULATOR_BQ24022 is not set
762 758
763# 759#
764# Multimedia devices 760# Multimedia devices
@@ -795,7 +791,14 @@ CONFIG_HID_SUPPORT=y
795CONFIG_HID=y 791CONFIG_HID=y
796# CONFIG_HID_DEBUG is not set 792# CONFIG_HID_DEBUG is not set
797# CONFIG_HIDRAW is not set 793# CONFIG_HIDRAW is not set
794# CONFIG_HID_PID is not set
795
796#
797# Special HID drivers
798#
799CONFIG_HID_COMPAT=y
798# CONFIG_USB_SUPPORT is not set 800# CONFIG_USB_SUPPORT is not set
801# CONFIG_UWB is not set
799# CONFIG_MMC is not set 802# CONFIG_MMC is not set
800# CONFIG_MEMSTICK is not set 803# CONFIG_MEMSTICK is not set
801# CONFIG_NEW_LEDS is not set 804# CONFIG_NEW_LEDS is not set
@@ -805,16 +808,18 @@ CONFIG_HID=y
805# CONFIG_RTC_CLASS is not set 808# CONFIG_RTC_CLASS is not set
806# CONFIG_DMADEVICES is not set 809# CONFIG_DMADEVICES is not set
807# CONFIG_UIO is not set 810# CONFIG_UIO is not set
811# CONFIG_STAGING is not set
808 812
809# 813#
810# File systems 814# File systems
811# 815#
812# CONFIG_EXT2_FS is not set 816# CONFIG_EXT2_FS is not set
813# CONFIG_EXT3_FS is not set 817# CONFIG_EXT3_FS is not set
814# CONFIG_EXT4DEV_FS is not set 818# CONFIG_EXT4_FS is not set
815# CONFIG_REISERFS_FS is not set 819# CONFIG_REISERFS_FS is not set
816# CONFIG_JFS_FS is not set 820# CONFIG_JFS_FS is not set
817# CONFIG_FS_POSIX_ACL is not set 821# CONFIG_FS_POSIX_ACL is not set
822CONFIG_FILE_LOCKING=y
818# CONFIG_XFS_FS is not set 823# CONFIG_XFS_FS is not set
819# CONFIG_OCFS2_FS is not set 824# CONFIG_OCFS2_FS is not set
820CONFIG_DNOTIFY=y 825CONFIG_DNOTIFY=y
@@ -844,6 +849,7 @@ CONFIG_INOTIFY_USER=y
844CONFIG_PROC_FS=y 849CONFIG_PROC_FS=y
845CONFIG_PROC_KCORE=y 850CONFIG_PROC_KCORE=y
846CONFIG_PROC_SYSCTL=y 851CONFIG_PROC_SYSCTL=y
852CONFIG_PROC_PAGE_MONITOR=y
847CONFIG_SYSFS=y 853CONFIG_SYSFS=y
848CONFIG_TMPFS=y 854CONFIG_TMPFS=y
849# CONFIG_TMPFS_POSIX_ACL is not set 855# CONFIG_TMPFS_POSIX_ACL is not set
@@ -881,6 +887,7 @@ CONFIG_LOCKD_V4=y
881CONFIG_NFS_COMMON=y 887CONFIG_NFS_COMMON=y
882CONFIG_SUNRPC=y 888CONFIG_SUNRPC=y
883CONFIG_SUNRPC_GSS=y 889CONFIG_SUNRPC_GSS=y
890# CONFIG_SUNRPC_REGISTER_V4 is not set
884CONFIG_RPCSEC_GSS_KRB5=y 891CONFIG_RPCSEC_GSS_KRB5=y
885# CONFIG_RPCSEC_GSS_SPKM3 is not set 892# CONFIG_RPCSEC_GSS_SPKM3 is not set
886# CONFIG_SMB_FS is not set 893# CONFIG_SMB_FS is not set
@@ -893,7 +900,6 @@ CONFIG_RPCSEC_GSS_KRB5=y
893# Partition Types 900# Partition Types
894# 901#
895# CONFIG_PARTITION_ADVANCED is not set 902# CONFIG_PARTITION_ADVANCED is not set
896CONFIG_MAC_PARTITION=y
897CONFIG_MSDOS_PARTITION=y 903CONFIG_MSDOS_PARTITION=y
898# CONFIG_NLS is not set 904# CONFIG_NLS is not set
899# CONFIG_DLM is not set 905# CONFIG_DLM is not set
@@ -902,7 +908,6 @@ CONFIG_MSDOS_PARTITION=y
902# Library routines 908# Library routines
903# 909#
904CONFIG_BITREVERSE=y 910CONFIG_BITREVERSE=y
905# CONFIG_GENERIC_FIND_FIRST_BIT is not set
906# CONFIG_CRC_CCITT is not set 911# CONFIG_CRC_CCITT is not set
907# CONFIG_CRC16 is not set 912# CONFIG_CRC16 is not set
908# CONFIG_CRC_T10DIF is not set 913# CONFIG_CRC_T10DIF is not set
@@ -930,13 +935,15 @@ CONFIG_FRAME_WARN=1024
930# CONFIG_DEBUG_KERNEL is not set 935# CONFIG_DEBUG_KERNEL is not set
931# CONFIG_DEBUG_BUGVERBOSE is not set 936# CONFIG_DEBUG_BUGVERBOSE is not set
932# CONFIG_DEBUG_MEMORY_INIT is not set 937# CONFIG_DEBUG_MEMORY_INIT is not set
938# CONFIG_RCU_CPU_STALL_DETECTOR is not set
933# CONFIG_LATENCYTOP is not set 939# CONFIG_LATENCYTOP is not set
934CONFIG_SYSCTL_SYSCALL_CHECK=y 940CONFIG_SYSCTL_SYSCALL_CHECK=y
935CONFIG_HAVE_FTRACE=y 941CONFIG_HAVE_FUNCTION_TRACER=y
936CONFIG_HAVE_DYNAMIC_FTRACE=y 942
937# CONFIG_FTRACE is not set 943#
938# CONFIG_SCHED_TRACER is not set 944# Tracers
939# CONFIG_CONTEXT_SWITCH_TRACER is not set 945#
946# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
940# CONFIG_SAMPLES is not set 947# CONFIG_SAMPLES is not set
941CONFIG_HAVE_ARCH_KGDB=y 948CONFIG_HAVE_ARCH_KGDB=y
942# CONFIG_IRQSTACKS is not set 949# CONFIG_IRQSTACKS is not set
@@ -948,14 +955,19 @@ CONFIG_HAVE_ARCH_KGDB=y
948# 955#
949# CONFIG_KEYS is not set 956# CONFIG_KEYS is not set
950# CONFIG_SECURITY is not set 957# CONFIG_SECURITY is not set
958# CONFIG_SECURITYFS is not set
951# CONFIG_SECURITY_FILE_CAPABILITIES is not set 959# CONFIG_SECURITY_FILE_CAPABILITIES is not set
952CONFIG_CRYPTO=y 960CONFIG_CRYPTO=y
953 961
954# 962#
955# Crypto core or helper 963# Crypto core or helper
956# 964#
965# CONFIG_CRYPTO_FIPS is not set
957CONFIG_CRYPTO_ALGAPI=y 966CONFIG_CRYPTO_ALGAPI=y
967CONFIG_CRYPTO_AEAD=y
958CONFIG_CRYPTO_BLKCIPHER=y 968CONFIG_CRYPTO_BLKCIPHER=y
969CONFIG_CRYPTO_HASH=y
970CONFIG_CRYPTO_RNG=y
959CONFIG_CRYPTO_MANAGER=y 971CONFIG_CRYPTO_MANAGER=y
960# CONFIG_CRYPTO_GF128MUL is not set 972# CONFIG_CRYPTO_GF128MUL is not set
961# CONFIG_CRYPTO_NULL is not set 973# CONFIG_CRYPTO_NULL is not set
@@ -1028,6 +1040,11 @@ CONFIG_CRYPTO_DES=y
1028# 1040#
1029# CONFIG_CRYPTO_DEFLATE is not set 1041# CONFIG_CRYPTO_DEFLATE is not set
1030# CONFIG_CRYPTO_LZO is not set 1042# CONFIG_CRYPTO_LZO is not set
1043
1044#
1045# Random Number Generation
1046#
1047# CONFIG_CRYPTO_ANSI_CPRNG is not set
1031# CONFIG_CRYPTO_HW is not set 1048# CONFIG_CRYPTO_HW is not set
1032# CONFIG_PPC_CLOCK is not set 1049# CONFIG_PPC_CLOCK is not set
1033# CONFIG_VIRTUALIZATION is not set 1050# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 8bb89f26a20d..1af7b9e37b61 100644
--- a/arch/powerpc/configs/85xx/ksi8560_defconfig
+++ b/arch/powerpc/configs/85xx/ksi8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:28 2008 4# Sat Nov 8 12:40:03 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -104,6 +104,7 @@ CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 104CONFIG_TIMERFD=y
105CONFIG_EVENTFD=y 105CONFIG_EVENTFD=y
106CONFIG_SHMEM=y 106CONFIG_SHMEM=y
107CONFIG_AIO=y
107CONFIG_VM_EVENT_COUNTERS=y 108CONFIG_VM_EVENT_COUNTERS=y
108CONFIG_SLUB_DEBUG=y 109CONFIG_SLUB_DEBUG=y
109# CONFIG_SLAB is not set 110# CONFIG_SLAB is not set
@@ -117,10 +118,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 120CONFIG_HAVE_ARCH_TRACEHOOK=y
120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122CONFIG_HAVE_CLK=y 121CONFIG_HAVE_CLK=y
123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
@@ -147,6 +145,7 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_FREEZER is not set
150 149
151# 150#
152# Platform support 151# Platform support
@@ -181,15 +180,16 @@ CONFIG_MPIC=y
181# CONFIG_PPC_INDIRECT_IO is not set 180# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 181# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 182# CONFIG_CPU_FREQ is not set
183# CONFIG_QUICC_ENGINE is not set
184CONFIG_CPM2=y 184CONFIG_CPM2=y
185# CONFIG_FSL_ULI1575 is not set 185# CONFIG_FSL_ULI1575 is not set
186CONFIG_CPM=y 186CONFIG_CPM=y
187# CONFIG_MPC8xxx_GPIO is not set
187 188
188# 189#
189# Kernel options 190# Kernel options
190# 191#
191CONFIG_HIGHMEM=y 192CONFIG_HIGHMEM=y
192# CONFIG_TICK_ONESHOT is not set
193# CONFIG_NO_HZ is not set 193# CONFIG_NO_HZ is not set
194# CONFIG_HIGH_RES_TIMERS is not set 194# CONFIG_HIGH_RES_TIMERS is not set
195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -203,6 +203,8 @@ CONFIG_PREEMPT_NONE=y
203# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
204# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
205CONFIG_BINFMT_ELF=y 205CONFIG_BINFMT_ELF=y
206# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
207# CONFIG_HAVE_AOUT is not set
206CONFIG_BINFMT_MISC=y 208CONFIG_BINFMT_MISC=y
207CONFIG_MATH_EMULATION=y 209CONFIG_MATH_EMULATION=y
208# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
@@ -217,15 +219,15 @@ CONFIG_FLATMEM_MANUAL=y
217# CONFIG_SPARSEMEM_MANUAL is not set 219# CONFIG_SPARSEMEM_MANUAL is not set
218CONFIG_FLATMEM=y 220CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 224CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
227CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
228CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y
229CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
230# CONFIG_PROC_DEVICETREE is not set 232# CONFIG_PROC_DEVICETREE is not set
231# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
@@ -311,6 +313,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
311# CONFIG_TIPC is not set 313# CONFIG_TIPC is not set
312# CONFIG_ATM is not set 314# CONFIG_ATM is not set
313# CONFIG_BRIDGE is not set 315# CONFIG_BRIDGE is not set
316# CONFIG_NET_DSA is not set
314# CONFIG_VLAN_8021Q is not set 317# CONFIG_VLAN_8021Q is not set
315# CONFIG_DECNET is not set 318# CONFIG_DECNET is not set
316# CONFIG_LLC2 is not set 319# CONFIG_LLC2 is not set
@@ -331,11 +334,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_IRDA is not set 334# CONFIG_IRDA is not set
332# CONFIG_BT is not set 335# CONFIG_BT is not set
333# CONFIG_AF_RXRPC is not set 336# CONFIG_AF_RXRPC is not set
334 337# CONFIG_PHONET is not set
335# 338CONFIG_WIRELESS=y
336# Wireless
337#
338# CONFIG_CFG80211 is not set 339# CONFIG_CFG80211 is not set
340CONFIG_WIRELESS_OLD_REGULATORY=y
339# CONFIG_WIRELESS_EXT is not set 341# CONFIG_WIRELESS_EXT is not set
340# CONFIG_MAC80211 is not set 342# CONFIG_MAC80211 is not set
341# CONFIG_IEEE80211 is not set 343# CONFIG_IEEE80211 is not set
@@ -454,17 +456,16 @@ CONFIG_MISC_DEVICES=y
454# CONFIG_ENCLOSURE_SERVICES is not set 456# CONFIG_ENCLOSURE_SERVICES is not set
455CONFIG_HAVE_IDE=y 457CONFIG_HAVE_IDE=y
456CONFIG_IDE=y 458CONFIG_IDE=y
457CONFIG_BLK_DEV_IDE=y
458 459
459# 460#
460# Please see Documentation/ide/ide.txt for help/info on IDE drives 461# Please see Documentation/ide/ide.txt for help/info on IDE drives
461# 462#
462# CONFIG_BLK_DEV_IDE_SATA is not set 463# CONFIG_BLK_DEV_IDE_SATA is not set
463# CONFIG_BLK_DEV_IDEDISK is not set 464CONFIG_IDE_GD=y
464# CONFIG_IDEDISK_MULTI_MODE is not set 465CONFIG_IDE_GD_ATA=y
466# CONFIG_IDE_GD_ATAPI is not set
465# CONFIG_BLK_DEV_IDECD is not set 467# CONFIG_BLK_DEV_IDECD is not set
466# CONFIG_BLK_DEV_IDETAPE is not set 468# CONFIG_BLK_DEV_IDETAPE is not set
467# CONFIG_BLK_DEV_IDEFLOPPY is not set
468# CONFIG_IDE_TASK_IOCTL is not set 469# CONFIG_IDE_TASK_IOCTL is not set
469CONFIG_IDE_PROC_FS=y 470CONFIG_IDE_PROC_FS=y
470 471
@@ -515,6 +516,9 @@ CONFIG_MII=y
515# CONFIG_IBM_NEW_EMAC_RGMII is not set 516# CONFIG_IBM_NEW_EMAC_RGMII is not set
516# CONFIG_IBM_NEW_EMAC_TAH is not set 517# CONFIG_IBM_NEW_EMAC_TAH is not set
517# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 518# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
519# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
520# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
521# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
518# CONFIG_B44 is not set 522# CONFIG_B44 is not set
519CONFIG_FS_ENET=y 523CONFIG_FS_ENET=y
520# CONFIG_FS_ENET_HAS_SCC is not set 524# CONFIG_FS_ENET_HAS_SCC is not set
@@ -590,12 +594,6 @@ CONFIG_SERIAL_CORE=y
590CONFIG_SERIAL_CORE_CONSOLE=y 594CONFIG_SERIAL_CORE_CONSOLE=y
591CONFIG_SERIAL_CPM=y 595CONFIG_SERIAL_CPM=y
592CONFIG_SERIAL_CPM_CONSOLE=y 596CONFIG_SERIAL_CPM_CONSOLE=y
593CONFIG_SERIAL_CPM_SCC1=y
594# CONFIG_SERIAL_CPM_SCC2 is not set
595# CONFIG_SERIAL_CPM_SCC3 is not set
596# CONFIG_SERIAL_CPM_SCC4 is not set
597# CONFIG_SERIAL_CPM_SMC1 is not set
598# CONFIG_SERIAL_CPM_SMC2 is not set
599CONFIG_UNIX98_PTYS=y 597CONFIG_UNIX98_PTYS=y
600CONFIG_LEGACY_PTYS=y 598CONFIG_LEGACY_PTYS=y
601CONFIG_LEGACY_PTY_COUNT=256 599CONFIG_LEGACY_PTY_COUNT=256
@@ -660,6 +658,14 @@ CONFIG_SSB_POSSIBLE=y
660# CONFIG_MFD_TMIO is not set 658# CONFIG_MFD_TMIO is not set
661 659
662# 660#
661# Voltage and Current regulators
662#
663# CONFIG_REGULATOR is not set
664# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
665# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
666# CONFIG_REGULATOR_BQ24022 is not set
667
668#
663# Multimedia devices 669# Multimedia devices
664# 670#
665 671
@@ -692,6 +698,12 @@ CONFIG_HID_SUPPORT=y
692CONFIG_HID=y 698CONFIG_HID=y
693# CONFIG_HID_DEBUG is not set 699# CONFIG_HID_DEBUG is not set
694# CONFIG_HIDRAW is not set 700# CONFIG_HIDRAW is not set
701# CONFIG_HID_PID is not set
702
703#
704# Special HID drivers
705#
706CONFIG_HID_COMPAT=y
695CONFIG_USB_SUPPORT=y 707CONFIG_USB_SUPPORT=y
696# CONFIG_USB_ARCH_HAS_HCD is not set 708# CONFIG_USB_ARCH_HAS_HCD is not set
697# CONFIG_USB_ARCH_HAS_OHCI is not set 709# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -715,6 +727,7 @@ CONFIG_USB_SUPPORT=y
715# CONFIG_RTC_CLASS is not set 727# CONFIG_RTC_CLASS is not set
716# CONFIG_DMADEVICES is not set 728# CONFIG_DMADEVICES is not set
717# CONFIG_UIO is not set 729# CONFIG_UIO is not set
730# CONFIG_STAGING is not set
718 731
719# 732#
720# File systems 733# File systems
@@ -726,13 +739,14 @@ CONFIG_EXT3_FS=y
726CONFIG_EXT3_FS_XATTR=y 739CONFIG_EXT3_FS_XATTR=y
727# CONFIG_EXT3_FS_POSIX_ACL is not set 740# CONFIG_EXT3_FS_POSIX_ACL is not set
728# CONFIG_EXT3_FS_SECURITY is not set 741# CONFIG_EXT3_FS_SECURITY is not set
729# CONFIG_EXT4DEV_FS is not set 742# CONFIG_EXT4_FS is not set
730CONFIG_JBD=y 743CONFIG_JBD=y
731# CONFIG_JBD_DEBUG is not set 744# CONFIG_JBD_DEBUG is not set
732CONFIG_FS_MBCACHE=y 745CONFIG_FS_MBCACHE=y
733# CONFIG_REISERFS_FS is not set 746# CONFIG_REISERFS_FS is not set
734# CONFIG_JFS_FS is not set 747# CONFIG_JFS_FS is not set
735# CONFIG_FS_POSIX_ACL is not set 748# CONFIG_FS_POSIX_ACL is not set
749CONFIG_FILE_LOCKING=y
736# CONFIG_XFS_FS is not set 750# CONFIG_XFS_FS is not set
737# CONFIG_OCFS2_FS is not set 751# CONFIG_OCFS2_FS is not set
738CONFIG_DNOTIFY=y 752CONFIG_DNOTIFY=y
@@ -762,6 +776,7 @@ CONFIG_INOTIFY_USER=y
762CONFIG_PROC_FS=y 776CONFIG_PROC_FS=y
763CONFIG_PROC_KCORE=y 777CONFIG_PROC_KCORE=y
764CONFIG_PROC_SYSCTL=y 778CONFIG_PROC_SYSCTL=y
779CONFIG_PROC_PAGE_MONITOR=y
765CONFIG_SYSFS=y 780CONFIG_SYSFS=y
766CONFIG_TMPFS=y 781CONFIG_TMPFS=y
767# CONFIG_TMPFS_POSIX_ACL is not set 782# CONFIG_TMPFS_POSIX_ACL is not set
@@ -797,6 +812,7 @@ CONFIG_ROOT_NFS=y
797CONFIG_LOCKD=y 812CONFIG_LOCKD=y
798CONFIG_NFS_COMMON=y 813CONFIG_NFS_COMMON=y
799CONFIG_SUNRPC=y 814CONFIG_SUNRPC=y
815# CONFIG_SUNRPC_REGISTER_V4 is not set
800# CONFIG_RPCSEC_GSS_KRB5 is not set 816# CONFIG_RPCSEC_GSS_KRB5 is not set
801# CONFIG_RPCSEC_GSS_SPKM3 is not set 817# CONFIG_RPCSEC_GSS_SPKM3 is not set
802# CONFIG_SMB_FS is not set 818# CONFIG_SMB_FS is not set
@@ -829,7 +845,6 @@ CONFIG_PARTITION_ADVANCED=y
829# Library routines 845# Library routines
830# 846#
831CONFIG_BITREVERSE=y 847CONFIG_BITREVERSE=y
832# CONFIG_GENERIC_FIND_FIRST_BIT is not set
833# CONFIG_CRC_CCITT is not set 848# CONFIG_CRC_CCITT is not set
834# CONFIG_CRC16 is not set 849# CONFIG_CRC16 is not set
835# CONFIG_CRC_T10DIF is not set 850# CONFIG_CRC_T10DIF is not set
@@ -882,15 +897,23 @@ CONFIG_DEBUG_MUTEXES=y
882# CONFIG_DEBUG_SG is not set 897# CONFIG_DEBUG_SG is not set
883# CONFIG_BOOT_PRINTK_DELAY is not set 898# CONFIG_BOOT_PRINTK_DELAY is not set
884# CONFIG_RCU_TORTURE_TEST is not set 899# CONFIG_RCU_TORTURE_TEST is not set
900# CONFIG_RCU_CPU_STALL_DETECTOR is not set
885# CONFIG_BACKTRACE_SELF_TEST is not set 901# CONFIG_BACKTRACE_SELF_TEST is not set
902# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
886# CONFIG_FAULT_INJECTION is not set 903# CONFIG_FAULT_INJECTION is not set
887# CONFIG_LATENCYTOP is not set 904# CONFIG_LATENCYTOP is not set
888CONFIG_SYSCTL_SYSCALL_CHECK=y 905CONFIG_SYSCTL_SYSCALL_CHECK=y
889CONFIG_HAVE_FTRACE=y 906CONFIG_HAVE_FUNCTION_TRACER=y
890CONFIG_HAVE_DYNAMIC_FTRACE=y 907
891# CONFIG_FTRACE is not set 908#
909# Tracers
910#
911# CONFIG_FUNCTION_TRACER is not set
892# CONFIG_SCHED_TRACER is not set 912# CONFIG_SCHED_TRACER is not set
893# CONFIG_CONTEXT_SWITCH_TRACER is not set 913# CONFIG_CONTEXT_SWITCH_TRACER is not set
914# CONFIG_BOOT_TRACER is not set
915# CONFIG_STACK_TRACER is not set
916# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
894# CONFIG_SAMPLES is not set 917# CONFIG_SAMPLES is not set
895CONFIG_HAVE_ARCH_KGDB=y 918CONFIG_HAVE_ARCH_KGDB=y
896# CONFIG_KGDB is not set 919# CONFIG_KGDB is not set
@@ -899,6 +922,7 @@ CONFIG_HAVE_ARCH_KGDB=y
899# CONFIG_DEBUG_PAGEALLOC is not set 922# CONFIG_DEBUG_PAGEALLOC is not set
900# CONFIG_CODE_PATCHING_SELFTEST is not set 923# CONFIG_CODE_PATCHING_SELFTEST is not set
901# CONFIG_FTR_FIXUP_SELFTEST is not set 924# CONFIG_FTR_FIXUP_SELFTEST is not set
925# CONFIG_MSI_BITMAP_SELFTEST is not set
902# CONFIG_XMON is not set 926# CONFIG_XMON is not set
903# CONFIG_IRQSTACKS is not set 927# CONFIG_IRQSTACKS is not set
904# CONFIG_VIRQ_DEBUG is not set 928# CONFIG_VIRQ_DEBUG is not set
@@ -910,12 +934,14 @@ CONFIG_HAVE_ARCH_KGDB=y
910# 934#
911# CONFIG_KEYS is not set 935# CONFIG_KEYS is not set
912# CONFIG_SECURITY is not set 936# CONFIG_SECURITY is not set
937# CONFIG_SECURITYFS is not set
913# CONFIG_SECURITY_FILE_CAPABILITIES is not set 938# CONFIG_SECURITY_FILE_CAPABILITIES is not set
914CONFIG_CRYPTO=y 939CONFIG_CRYPTO=y
915 940
916# 941#
917# Crypto core or helper 942# Crypto core or helper
918# 943#
944# CONFIG_CRYPTO_FIPS is not set
919# CONFIG_CRYPTO_MANAGER is not set 945# CONFIG_CRYPTO_MANAGER is not set
920# CONFIG_CRYPTO_GF128MUL is not set 946# CONFIG_CRYPTO_GF128MUL is not set
921# CONFIG_CRYPTO_NULL is not set 947# CONFIG_CRYPTO_NULL is not set
@@ -987,6 +1013,11 @@ CONFIG_CRYPTO=y
987# 1013#
988# CONFIG_CRYPTO_DEFLATE is not set 1014# CONFIG_CRYPTO_DEFLATE is not set
989# CONFIG_CRYPTO_LZO is not set 1015# CONFIG_CRYPTO_LZO is not set
1016
1017#
1018# Random Number Generation
1019#
1020# CONFIG_CRYPTO_ANSI_CPRNG is not set
990CONFIG_CRYPTO_HW=y 1021CONFIG_CRYPTO_HW=y
991# CONFIG_CRYPTO_DEV_TALITOS is not set 1022# CONFIG_CRYPTO_DEV_TALITOS is not set
992CONFIG_PPC_CLOCK=y 1023CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
index 6b516bea6e75..e243e14a6708 100644
--- a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 07:18:18 2008 4# Sat Nov 8 12:40:05 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -110,7 +110,9 @@ CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 116CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
116CONFIG_SLUB=y 118CONFIG_SLUB=y
@@ -124,10 +126,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 126CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
@@ -160,6 +158,7 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 159CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 160CONFIG_CLASSIC_RCU=y
161# CONFIG_FREEZER is not set
163 162
164# 163#
165# Platform support 164# Platform support
@@ -194,8 +193,10 @@ CONFIG_MPIC=y
194# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
195# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
196# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
196# CONFIG_QUICC_ENGINE is not set
197# CONFIG_CPM2 is not set 197# CONFIG_CPM2 is not set
198# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set
199 200
200# 201#
201# Kernel options 202# Kernel options
@@ -215,6 +216,8 @@ CONFIG_PREEMPT_NONE=y
215# CONFIG_PREEMPT_VOLUNTARY is not set 216# CONFIG_PREEMPT_VOLUNTARY is not set
216# CONFIG_PREEMPT is not set 217# CONFIG_PREEMPT is not set
217CONFIG_BINFMT_ELF=y 218CONFIG_BINFMT_ELF=y
219# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
220# CONFIG_HAVE_AOUT is not set
218CONFIG_BINFMT_MISC=m 221CONFIG_BINFMT_MISC=m
219CONFIG_MATH_EMULATION=y 222CONFIG_MATH_EMULATION=y
220# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
@@ -229,15 +232,15 @@ CONFIG_FLATMEM_MANUAL=y
229# CONFIG_SPARSEMEM_MANUAL is not set 232# CONFIG_SPARSEMEM_MANUAL is not set
230CONFIG_FLATMEM=y 233CONFIG_FLATMEM=y
231CONFIG_FLAT_NODE_MEM_MAP=y 234CONFIG_FLAT_NODE_MEM_MAP=y
232# CONFIG_SPARSEMEM_STATIC is not set
233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
234CONFIG_PAGEFLAGS_EXTENDED=y 235CONFIG_PAGEFLAGS_EXTENDED=y
235CONFIG_SPLIT_PTLOCK_CPUS=4 236CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y 237CONFIG_MIGRATION=y
237# CONFIG_RESOURCES_64BIT is not set 238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y
241CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
242CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
243# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -260,7 +263,7 @@ CONFIG_PCI_SYSCALL=y
260# CONFIG_PCIEPORTBUS is not set 263# CONFIG_PCIEPORTBUS is not set
261CONFIG_ARCH_SUPPORTS_MSI=y 264CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 265# CONFIG_PCI_MSI is not set
263CONFIG_PCI_LEGACY=y 266# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_DEBUG is not set 267# CONFIG_PCI_DEBUG is not set
265# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
266# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
@@ -362,6 +365,7 @@ CONFIG_SCTP_HMAC_MD5=y
362# CONFIG_TIPC is not set 365# CONFIG_TIPC is not set
363# CONFIG_ATM is not set 366# CONFIG_ATM is not set
364# CONFIG_BRIDGE is not set 367# CONFIG_BRIDGE is not set
368# CONFIG_NET_DSA is not set
365# CONFIG_VLAN_8021Q is not set 369# CONFIG_VLAN_8021Q is not set
366# CONFIG_DECNET is not set 370# CONFIG_DECNET is not set
367# CONFIG_LLC2 is not set 371# CONFIG_LLC2 is not set
@@ -382,12 +386,11 @@ CONFIG_SCTP_HMAC_MD5=y
382# CONFIG_IRDA is not set 386# CONFIG_IRDA is not set
383# CONFIG_BT is not set 387# CONFIG_BT is not set
384# CONFIG_AF_RXRPC is not set 388# CONFIG_AF_RXRPC is not set
389# CONFIG_PHONET is not set
385CONFIG_FIB_RULES=y 390CONFIG_FIB_RULES=y
386 391CONFIG_WIRELESS=y
387#
388# Wireless
389#
390# CONFIG_CFG80211 is not set 392# CONFIG_CFG80211 is not set
393CONFIG_WIRELESS_OLD_REGULATORY=y
391# CONFIG_WIRELESS_EXT is not set 394# CONFIG_WIRELESS_EXT is not set
392# CONFIG_MAC80211 is not set 395# CONFIG_MAC80211 is not set
393# CONFIG_IEEE80211 is not set 396# CONFIG_IEEE80211 is not set
@@ -633,8 +636,12 @@ CONFIG_MII=y
633# CONFIG_IBM_NEW_EMAC_RGMII is not set 636# CONFIG_IBM_NEW_EMAC_RGMII is not set
634# CONFIG_IBM_NEW_EMAC_TAH is not set 637# CONFIG_IBM_NEW_EMAC_TAH is not set
635# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 638# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
639# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
640# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
641# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
636# CONFIG_NET_PCI is not set 642# CONFIG_NET_PCI is not set
637# CONFIG_B44 is not set 643# CONFIG_B44 is not set
644# CONFIG_ATL2 is not set
638CONFIG_NETDEV_1000=y 645CONFIG_NETDEV_1000=y
639# CONFIG_ACENIC is not set 646# CONFIG_ACENIC is not set
640# CONFIG_DL2K is not set 647# CONFIG_DL2K is not set
@@ -658,18 +665,22 @@ CONFIG_GIANFAR=y
658# CONFIG_QLA3XXX is not set 665# CONFIG_QLA3XXX is not set
659# CONFIG_ATL1 is not set 666# CONFIG_ATL1 is not set
660# CONFIG_ATL1E is not set 667# CONFIG_ATL1E is not set
668# CONFIG_JME is not set
661CONFIG_NETDEV_10000=y 669CONFIG_NETDEV_10000=y
662# CONFIG_CHELSIO_T1 is not set 670# CONFIG_CHELSIO_T1 is not set
663# CONFIG_CHELSIO_T3 is not set 671# CONFIG_CHELSIO_T3 is not set
672# CONFIG_ENIC is not set
664# CONFIG_IXGBE is not set 673# CONFIG_IXGBE is not set
665# CONFIG_IXGB is not set 674# CONFIG_IXGB is not set
666# CONFIG_S2IO is not set 675# CONFIG_S2IO is not set
667# CONFIG_MYRI10GE is not set 676# CONFIG_MYRI10GE is not set
668# CONFIG_NETXEN_NIC is not set 677# CONFIG_NETXEN_NIC is not set
669# CONFIG_NIU is not set 678# CONFIG_NIU is not set
679# CONFIG_MLX4_EN is not set
670# CONFIG_MLX4_CORE is not set 680# CONFIG_MLX4_CORE is not set
671# CONFIG_TEHUTI is not set 681# CONFIG_TEHUTI is not set
672# CONFIG_BNX2X is not set 682# CONFIG_BNX2X is not set
683# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 684# CONFIG_SFC is not set
674# CONFIG_TR is not set 685# CONFIG_TR is not set
675 686
@@ -704,7 +715,7 @@ CONFIG_NETDEV_10000=y
704# Input device support 715# Input device support
705# 716#
706CONFIG_INPUT=y 717CONFIG_INPUT=y
707# CONFIG_INPUT_FF_MEMLESS is not set 718CONFIG_INPUT_FF_MEMLESS=m
708# CONFIG_INPUT_POLLDEV is not set 719# CONFIG_INPUT_POLLDEV is not set
709 720
710# 721#
@@ -872,6 +883,17 @@ CONFIG_SSB_POSSIBLE=y
872# CONFIG_MFD_SM501 is not set 883# CONFIG_MFD_SM501 is not set
873# CONFIG_HTC_PASIC3 is not set 884# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set 885# CONFIG_MFD_TMIO is not set
886# CONFIG_PMIC_DA903X is not set
887# CONFIG_MFD_WM8400 is not set
888# CONFIG_MFD_WM8350_I2C is not set
889
890#
891# Voltage and Current regulators
892#
893# CONFIG_REGULATOR is not set
894# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
895# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
896# CONFIG_REGULATOR_BQ24022 is not set
875 897
876# 898#
877# Multimedia devices 899# Multimedia devices
@@ -912,7 +934,6 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
912# CONFIG_DVB_USB is not set 934# CONFIG_DVB_USB is not set
913# CONFIG_DVB_TTUSB_BUDGET is not set 935# CONFIG_DVB_TTUSB_BUDGET is not set
914# CONFIG_DVB_TTUSB_DEC is not set 936# CONFIG_DVB_TTUSB_DEC is not set
915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set 937# CONFIG_DVB_SIANO_SMS1XXX is not set
917 938
918# 939#
@@ -930,6 +951,11 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
930# CONFIG_DVB_PLUTO2 is not set 951# CONFIG_DVB_PLUTO2 is not set
931 952
932# 953#
954# Supported SDMC DM1105 Adapters
955#
956# CONFIG_DVB_DM1105 is not set
957
958#
933# Supported DVB Frontends 959# Supported DVB Frontends
934# 960#
935 961
@@ -945,6 +971,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
945# CONFIG_DVB_CX24123 is not set 971# CONFIG_DVB_CX24123 is not set
946# CONFIG_DVB_MT312 is not set 972# CONFIG_DVB_MT312 is not set
947# CONFIG_DVB_S5H1420 is not set 973# CONFIG_DVB_S5H1420 is not set
974# CONFIG_DVB_STV0288 is not set
975# CONFIG_DVB_STB6000 is not set
948# CONFIG_DVB_STV0299 is not set 976# CONFIG_DVB_STV0299 is not set
949# CONFIG_DVB_TDA8083 is not set 977# CONFIG_DVB_TDA8083 is not set
950# CONFIG_DVB_TDA10086 is not set 978# CONFIG_DVB_TDA10086 is not set
@@ -952,6 +980,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
952# CONFIG_DVB_TUNER_ITD1000 is not set 980# CONFIG_DVB_TUNER_ITD1000 is not set
953# CONFIG_DVB_TDA826X is not set 981# CONFIG_DVB_TDA826X is not set
954# CONFIG_DVB_TUA6100 is not set 982# CONFIG_DVB_TUA6100 is not set
983# CONFIG_DVB_CX24116 is not set
984# CONFIG_DVB_SI21XX is not set
955 985
956# 986#
957# DVB-T (terrestrial) frontends 987# DVB-T (terrestrial) frontends
@@ -1004,6 +1034,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1004# CONFIG_DVB_LNBP21 is not set 1034# CONFIG_DVB_LNBP21 is not set
1005# CONFIG_DVB_ISL6405 is not set 1035# CONFIG_DVB_ISL6405 is not set
1006# CONFIG_DVB_ISL6421 is not set 1036# CONFIG_DVB_ISL6421 is not set
1037# CONFIG_DVB_LGS8GL5 is not set
1038
1039#
1040# Tools to develop new frontends
1041#
1042# CONFIG_DVB_DUMMY_FE is not set
1043# CONFIG_DVB_AF9013 is not set
1007CONFIG_DAB=y 1044CONFIG_DAB=y
1008# CONFIG_USB_DABUSB is not set 1045# CONFIG_USB_DABUSB is not set
1009 1046
@@ -1029,6 +1066,7 @@ CONFIG_VGA_CONSOLE=y
1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1066# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1030CONFIG_DUMMY_CONSOLE=y 1067CONFIG_DUMMY_CONSOLE=y
1031CONFIG_SOUND=y 1068CONFIG_SOUND=y
1069# CONFIG_SOUND_OSS_CORE is not set
1032CONFIG_SND=y 1070CONFIG_SND=y
1033CONFIG_SND_TIMER=y 1071CONFIG_SND_TIMER=y
1034CONFIG_SND_PCM=y 1072CONFIG_SND_PCM=y
@@ -1127,9 +1165,36 @@ CONFIG_HID=y
1127# USB Input Devices 1165# USB Input Devices
1128# 1166#
1129CONFIG_USB_HID=y 1167CONFIG_USB_HID=y
1130# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1168# CONFIG_HID_PID is not set
1131# CONFIG_HID_FF is not set
1132# CONFIG_USB_HIDDEV is not set 1169# CONFIG_USB_HIDDEV is not set
1170
1171#
1172# Special HID drivers
1173#
1174CONFIG_HID_COMPAT=y
1175CONFIG_HID_A4TECH=y
1176CONFIG_HID_APPLE=y
1177CONFIG_HID_BELKIN=y
1178CONFIG_HID_BRIGHT=y
1179CONFIG_HID_CHERRY=y
1180CONFIG_HID_CHICONY=y
1181CONFIG_HID_CYPRESS=y
1182CONFIG_HID_DELL=y
1183CONFIG_HID_EZKEY=y
1184CONFIG_HID_GYRATION=y
1185CONFIG_HID_LOGITECH=y
1186# CONFIG_LOGITECH_FF is not set
1187# CONFIG_LOGIRUMBLEPAD2_FF is not set
1188CONFIG_HID_MICROSOFT=y
1189CONFIG_HID_MONTEREY=y
1190CONFIG_HID_PANTHERLORD=y
1191# CONFIG_PANTHERLORD_FF is not set
1192CONFIG_HID_PETALYNX=y
1193CONFIG_HID_SAMSUNG=y
1194CONFIG_HID_SONY=y
1195CONFIG_HID_SUNPLUS=y
1196CONFIG_THRUSTMASTER_FF=m
1197CONFIG_ZEROPLUS_FF=m
1133CONFIG_USB_SUPPORT=y 1198CONFIG_USB_SUPPORT=y
1134CONFIG_USB_ARCH_HAS_HCD=y 1199CONFIG_USB_ARCH_HAS_HCD=y
1135CONFIG_USB_ARCH_HAS_OHCI=y 1200CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1148,6 +1213,8 @@ CONFIG_USB_DEVICE_CLASS=y
1148# CONFIG_USB_OTG_WHITELIST is not set 1213# CONFIG_USB_OTG_WHITELIST is not set
1149# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1214# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1150CONFIG_USB_MON=y 1215CONFIG_USB_MON=y
1216# CONFIG_USB_WUSB is not set
1217# CONFIG_USB_WUSB_CBAF is not set
1151 1218
1152# 1219#
1153# USB Host Controller Drivers 1220# USB Host Controller Drivers
@@ -1171,6 +1238,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1171# CONFIG_USB_UHCI_HCD is not set 1238# CONFIG_USB_UHCI_HCD is not set
1172# CONFIG_USB_SL811_HCD is not set 1239# CONFIG_USB_SL811_HCD is not set
1173# CONFIG_USB_R8A66597_HCD is not set 1240# CONFIG_USB_R8A66597_HCD is not set
1241# CONFIG_USB_WHCI_HCD is not set
1242# CONFIG_USB_HWA_HCD is not set
1174 1243
1175# 1244#
1176# USB Device Class drivers 1245# USB Device Class drivers
@@ -1178,6 +1247,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1178# CONFIG_USB_ACM is not set 1247# CONFIG_USB_ACM is not set
1179# CONFIG_USB_PRINTER is not set 1248# CONFIG_USB_PRINTER is not set
1180# CONFIG_USB_WDM is not set 1249# CONFIG_USB_WDM is not set
1250# CONFIG_USB_TMC is not set
1181 1251
1182# 1252#
1183# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1253# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1199,7 +1269,6 @@ CONFIG_USB_STORAGE=y
1199# CONFIG_USB_STORAGE_ALAUDA is not set 1269# CONFIG_USB_STORAGE_ALAUDA is not set
1200# CONFIG_USB_STORAGE_ONETOUCH is not set 1270# CONFIG_USB_STORAGE_ONETOUCH is not set
1201# CONFIG_USB_STORAGE_KARMA is not set 1271# CONFIG_USB_STORAGE_KARMA is not set
1202# CONFIG_USB_STORAGE_SIERRA is not set
1203# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1272# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1204# CONFIG_USB_LIBUSUAL is not set 1273# CONFIG_USB_LIBUSUAL is not set
1205 1274
@@ -1220,6 +1289,7 @@ CONFIG_USB_STORAGE=y
1220# CONFIG_USB_EMI62 is not set 1289# CONFIG_USB_EMI62 is not set
1221# CONFIG_USB_EMI26 is not set 1290# CONFIG_USB_EMI26 is not set
1222# CONFIG_USB_ADUTUX is not set 1291# CONFIG_USB_ADUTUX is not set
1292# CONFIG_USB_SEVSEG is not set
1223# CONFIG_USB_RIO500 is not set 1293# CONFIG_USB_RIO500 is not set
1224# CONFIG_USB_LEGOTOWER is not set 1294# CONFIG_USB_LEGOTOWER is not set
1225# CONFIG_USB_LCD is not set 1295# CONFIG_USB_LCD is not set
@@ -1237,7 +1307,9 @@ CONFIG_USB_STORAGE=y
1237# CONFIG_USB_IOWARRIOR is not set 1307# CONFIG_USB_IOWARRIOR is not set
1238# CONFIG_USB_TEST is not set 1308# CONFIG_USB_TEST is not set
1239# CONFIG_USB_ISIGHTFW is not set 1309# CONFIG_USB_ISIGHTFW is not set
1310# CONFIG_USB_VST is not set
1240# CONFIG_USB_GADGET is not set 1311# CONFIG_USB_GADGET is not set
1312# CONFIG_UWB is not set
1241# CONFIG_MMC is not set 1313# CONFIG_MMC is not set
1242# CONFIG_MEMSTICK is not set 1314# CONFIG_MEMSTICK is not set
1243# CONFIG_NEW_LEDS is not set 1315# CONFIG_NEW_LEDS is not set
@@ -1283,12 +1355,15 @@ CONFIG_RTC_INTF_DEV=y
1283# Platform RTC drivers 1355# Platform RTC drivers
1284# 1356#
1285CONFIG_RTC_DRV_CMOS=y 1357CONFIG_RTC_DRV_CMOS=y
1358# CONFIG_RTC_DRV_DS1286 is not set
1286# CONFIG_RTC_DRV_DS1511 is not set 1359# CONFIG_RTC_DRV_DS1511 is not set
1287# CONFIG_RTC_DRV_DS1553 is not set 1360# CONFIG_RTC_DRV_DS1553 is not set
1288# CONFIG_RTC_DRV_DS1742 is not set 1361# CONFIG_RTC_DRV_DS1742 is not set
1289# CONFIG_RTC_DRV_STK17TA8 is not set 1362# CONFIG_RTC_DRV_STK17TA8 is not set
1290# CONFIG_RTC_DRV_M48T86 is not set 1363# CONFIG_RTC_DRV_M48T86 is not set
1364# CONFIG_RTC_DRV_M48T35 is not set
1291# CONFIG_RTC_DRV_M48T59 is not set 1365# CONFIG_RTC_DRV_M48T59 is not set
1366# CONFIG_RTC_DRV_BQ4802 is not set
1292# CONFIG_RTC_DRV_V3020 is not set 1367# CONFIG_RTC_DRV_V3020 is not set
1293 1368
1294# 1369#
@@ -1309,6 +1384,7 @@ CONFIG_DMA_ENGINE=y
1309# CONFIG_NET_DMA is not set 1384# CONFIG_NET_DMA is not set
1310# CONFIG_DMATEST is not set 1385# CONFIG_DMATEST is not set
1311# CONFIG_UIO is not set 1386# CONFIG_UIO is not set
1387# CONFIG_STAGING is not set
1312 1388
1313# 1389#
1314# File systems 1390# File systems
@@ -1320,13 +1396,14 @@ CONFIG_EXT3_FS=y
1320CONFIG_EXT3_FS_XATTR=y 1396CONFIG_EXT3_FS_XATTR=y
1321# CONFIG_EXT3_FS_POSIX_ACL is not set 1397# CONFIG_EXT3_FS_POSIX_ACL is not set
1322# CONFIG_EXT3_FS_SECURITY is not set 1398# CONFIG_EXT3_FS_SECURITY is not set
1323# CONFIG_EXT4DEV_FS is not set 1399# CONFIG_EXT4_FS is not set
1324CONFIG_JBD=y 1400CONFIG_JBD=y
1325# CONFIG_JBD_DEBUG is not set 1401# CONFIG_JBD_DEBUG is not set
1326CONFIG_FS_MBCACHE=y 1402CONFIG_FS_MBCACHE=y
1327# CONFIG_REISERFS_FS is not set 1403# CONFIG_REISERFS_FS is not set
1328# CONFIG_JFS_FS is not set 1404# CONFIG_JFS_FS is not set
1329# CONFIG_FS_POSIX_ACL is not set 1405# CONFIG_FS_POSIX_ACL is not set
1406CONFIG_FILE_LOCKING=y
1330# CONFIG_XFS_FS is not set 1407# CONFIG_XFS_FS is not set
1331# CONFIG_OCFS2_FS is not set 1408# CONFIG_OCFS2_FS is not set
1332CONFIG_DNOTIFY=y 1409CONFIG_DNOTIFY=y
@@ -1364,6 +1441,7 @@ CONFIG_NTFS_FS=y
1364CONFIG_PROC_FS=y 1441CONFIG_PROC_FS=y
1365CONFIG_PROC_KCORE=y 1442CONFIG_PROC_KCORE=y
1366CONFIG_PROC_SYSCTL=y 1443CONFIG_PROC_SYSCTL=y
1444CONFIG_PROC_PAGE_MONITOR=y
1367CONFIG_SYSFS=y 1445CONFIG_SYSFS=y
1368CONFIG_TMPFS=y 1446CONFIG_TMPFS=y
1369# CONFIG_TMPFS_POSIX_ACL is not set 1447# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1408,6 +1486,7 @@ CONFIG_EXPORTFS=y
1408CONFIG_NFS_COMMON=y 1486CONFIG_NFS_COMMON=y
1409CONFIG_SUNRPC=y 1487CONFIG_SUNRPC=y
1410CONFIG_SUNRPC_GSS=y 1488CONFIG_SUNRPC_GSS=y
1489# CONFIG_SUNRPC_REGISTER_V4 is not set
1411CONFIG_RPCSEC_GSS_KRB5=y 1490CONFIG_RPCSEC_GSS_KRB5=y
1412# CONFIG_RPCSEC_GSS_SPKM3 is not set 1491# CONFIG_RPCSEC_GSS_SPKM3 is not set
1413# CONFIG_SMB_FS is not set 1492# CONFIG_SMB_FS is not set
@@ -1483,7 +1562,6 @@ CONFIG_NLS_UTF8=m
1483# Library routines 1562# Library routines
1484# 1563#
1485CONFIG_BITREVERSE=y 1564CONFIG_BITREVERSE=y
1486# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1487# CONFIG_CRC_CCITT is not set 1565# CONFIG_CRC_CCITT is not set
1488# CONFIG_CRC16 is not set 1566# CONFIG_CRC16 is not set
1489CONFIG_CRC_T10DIF=y 1567CONFIG_CRC_T10DIF=y
@@ -1537,15 +1615,23 @@ CONFIG_DEBUG_INFO=y
1537# CONFIG_DEBUG_SG is not set 1615# CONFIG_DEBUG_SG is not set
1538# CONFIG_BOOT_PRINTK_DELAY is not set 1616# CONFIG_BOOT_PRINTK_DELAY is not set
1539# CONFIG_RCU_TORTURE_TEST is not set 1617# CONFIG_RCU_TORTURE_TEST is not set
1618# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1540# CONFIG_BACKTRACE_SELF_TEST is not set 1619# CONFIG_BACKTRACE_SELF_TEST is not set
1620# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1541# CONFIG_FAULT_INJECTION is not set 1621# CONFIG_FAULT_INJECTION is not set
1542# CONFIG_LATENCYTOP is not set 1622# CONFIG_LATENCYTOP is not set
1543CONFIG_SYSCTL_SYSCALL_CHECK=y 1623CONFIG_SYSCTL_SYSCALL_CHECK=y
1544CONFIG_HAVE_FTRACE=y 1624CONFIG_HAVE_FUNCTION_TRACER=y
1545CONFIG_HAVE_DYNAMIC_FTRACE=y 1625
1546# CONFIG_FTRACE is not set 1626#
1627# Tracers
1628#
1629# CONFIG_FUNCTION_TRACER is not set
1547# CONFIG_SCHED_TRACER is not set 1630# CONFIG_SCHED_TRACER is not set
1548# CONFIG_CONTEXT_SWITCH_TRACER is not set 1631# CONFIG_CONTEXT_SWITCH_TRACER is not set
1632# CONFIG_BOOT_TRACER is not set
1633# CONFIG_STACK_TRACER is not set
1634# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1549# CONFIG_SAMPLES is not set 1635# CONFIG_SAMPLES is not set
1550CONFIG_HAVE_ARCH_KGDB=y 1636CONFIG_HAVE_ARCH_KGDB=y
1551# CONFIG_KGDB is not set 1637# CONFIG_KGDB is not set
@@ -1554,6 +1640,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1554# CONFIG_DEBUG_PAGEALLOC is not set 1640# CONFIG_DEBUG_PAGEALLOC is not set
1555# CONFIG_CODE_PATCHING_SELFTEST is not set 1641# CONFIG_CODE_PATCHING_SELFTEST is not set
1556# CONFIG_FTR_FIXUP_SELFTEST is not set 1642# CONFIG_FTR_FIXUP_SELFTEST is not set
1643# CONFIG_MSI_BITMAP_SELFTEST is not set
1557# CONFIG_XMON is not set 1644# CONFIG_XMON is not set
1558# CONFIG_IRQSTACKS is not set 1645# CONFIG_IRQSTACKS is not set
1559# CONFIG_VIRQ_DEBUG is not set 1646# CONFIG_VIRQ_DEBUG is not set
@@ -1565,16 +1652,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1565# 1652#
1566# CONFIG_KEYS is not set 1653# CONFIG_KEYS is not set
1567# CONFIG_SECURITY is not set 1654# CONFIG_SECURITY is not set
1655# CONFIG_SECURITYFS is not set
1568# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1656# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1569CONFIG_CRYPTO=y 1657CONFIG_CRYPTO=y
1570 1658
1571# 1659#
1572# Crypto core or helper 1660# Crypto core or helper
1573# 1661#
1662# CONFIG_CRYPTO_FIPS is not set
1574CONFIG_CRYPTO_ALGAPI=y 1663CONFIG_CRYPTO_ALGAPI=y
1575CONFIG_CRYPTO_AEAD=y 1664CONFIG_CRYPTO_AEAD=y
1576CONFIG_CRYPTO_BLKCIPHER=y 1665CONFIG_CRYPTO_BLKCIPHER=y
1577CONFIG_CRYPTO_HASH=y 1666CONFIG_CRYPTO_HASH=y
1667CONFIG_CRYPTO_RNG=y
1578CONFIG_CRYPTO_MANAGER=y 1668CONFIG_CRYPTO_MANAGER=y
1579# CONFIG_CRYPTO_GF128MUL is not set 1669# CONFIG_CRYPTO_GF128MUL is not set
1580# CONFIG_CRYPTO_NULL is not set 1670# CONFIG_CRYPTO_NULL is not set
@@ -1647,6 +1737,11 @@ CONFIG_CRYPTO_DES=y
1647# 1737#
1648# CONFIG_CRYPTO_DEFLATE is not set 1738# CONFIG_CRYPTO_DEFLATE is not set
1649# CONFIG_CRYPTO_LZO is not set 1739# CONFIG_CRYPTO_LZO is not set
1740
1741#
1742# Random Number Generation
1743#
1744# CONFIG_CRYPTO_ANSI_CPRNG is not set
1650CONFIG_CRYPTO_HW=y 1745CONFIG_CRYPTO_HW=y
1651# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1746# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1652CONFIG_CRYPTO_DEV_TALITOS=y 1747CONFIG_CRYPTO_DEV_TALITOS=y
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index 1ea181f826f1..d790cbab80b8 100644
--- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:30 2008 4# Sat Nov 8 12:40:06 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -107,6 +107,7 @@ CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 107CONFIG_TIMERFD=y
108CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
109CONFIG_SHMEM=y 109CONFIG_SHMEM=y
110CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_SLUB_DEBUG=y 112CONFIG_SLUB_DEBUG=y
112# CONFIG_SLAB is not set 113# CONFIG_SLAB is not set
@@ -120,10 +121,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
@@ -150,6 +147,7 @@ CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_NOOP is not set 147# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y 149CONFIG_CLASSIC_RCU=y
150# CONFIG_FREEZER is not set
153 151
154# 152#
155# Platform support 153# Platform support
@@ -184,8 +182,10 @@ CONFIG_MPIC=y
184# CONFIG_PPC_INDIRECT_IO is not set 182# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 183# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 184# CONFIG_CPU_FREQ is not set
185# CONFIG_QUICC_ENGINE is not set
187# CONFIG_CPM2 is not set 186# CONFIG_CPM2 is not set
188# CONFIG_FSL_ULI1575 is not set 187# CONFIG_FSL_ULI1575 is not set
188# CONFIG_MPC8xxx_GPIO is not set
189 189
190# 190#
191# Kernel options 191# Kernel options
@@ -205,6 +205,8 @@ CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
207CONFIG_BINFMT_ELF=y 207CONFIG_BINFMT_ELF=y
208# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
209# CONFIG_HAVE_AOUT is not set
208CONFIG_BINFMT_MISC=y 210CONFIG_BINFMT_MISC=y
209CONFIG_MATH_EMULATION=y 211CONFIG_MATH_EMULATION=y
210# CONFIG_IOMMU_HELPER is not set 212# CONFIG_IOMMU_HELPER is not set
@@ -219,15 +221,15 @@ CONFIG_FLATMEM_MANUAL=y
219# CONFIG_SPARSEMEM_MANUAL is not set 221# CONFIG_SPARSEMEM_MANUAL is not set
220CONFIG_FLATMEM=y 222CONFIG_FLATMEM=y
221CONFIG_FLAT_NODE_MEM_MAP=y 223CONFIG_FLAT_NODE_MEM_MAP=y
222# CONFIG_SPARSEMEM_STATIC is not set
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 224CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y 226CONFIG_MIGRATION=y
227# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
228# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 231CONFIG_VIRT_TO_BUS=y
232CONFIG_UNEVICTABLE_LRU=y
231CONFIG_FORCE_MAX_ZONEORDER=11 233CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 234CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 235# CONFIG_CMDLINE_BOOL is not set
@@ -313,6 +315,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
313# CONFIG_TIPC is not set 315# CONFIG_TIPC is not set
314# CONFIG_ATM is not set 316# CONFIG_ATM is not set
315# CONFIG_BRIDGE is not set 317# CONFIG_BRIDGE is not set
318# CONFIG_NET_DSA is not set
316# CONFIG_VLAN_8021Q is not set 319# CONFIG_VLAN_8021Q is not set
317# CONFIG_DECNET is not set 320# CONFIG_DECNET is not set
318# CONFIG_LLC2 is not set 321# CONFIG_LLC2 is not set
@@ -333,11 +336,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_IRDA is not set 336# CONFIG_IRDA is not set
334# CONFIG_BT is not set 337# CONFIG_BT is not set
335# CONFIG_AF_RXRPC is not set 338# CONFIG_AF_RXRPC is not set
336 339# CONFIG_PHONET is not set
337# 340CONFIG_WIRELESS=y
338# Wireless
339#
340# CONFIG_CFG80211 is not set 341# CONFIG_CFG80211 is not set
342CONFIG_WIRELESS_OLD_REGULATORY=y
341# CONFIG_WIRELESS_EXT is not set 343# CONFIG_WIRELESS_EXT is not set
342# CONFIG_MAC80211 is not set 344# CONFIG_MAC80211 is not set
343# CONFIG_IEEE80211 is not set 345# CONFIG_IEEE80211 is not set
@@ -421,6 +423,9 @@ CONFIG_MII=y
421# CONFIG_IBM_NEW_EMAC_RGMII is not set 423# CONFIG_IBM_NEW_EMAC_RGMII is not set
422# CONFIG_IBM_NEW_EMAC_TAH is not set 424# CONFIG_IBM_NEW_EMAC_TAH is not set
423# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 425# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
426# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
427# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
428# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
424# CONFIG_B44 is not set 429# CONFIG_B44 is not set
425CONFIG_NETDEV_1000=y 430CONFIG_NETDEV_1000=y
426CONFIG_GIANFAR=y 431CONFIG_GIANFAR=y
@@ -545,6 +550,14 @@ CONFIG_SSB_POSSIBLE=y
545# CONFIG_MFD_TMIO is not set 550# CONFIG_MFD_TMIO is not set
546 551
547# 552#
553# Voltage and Current regulators
554#
555# CONFIG_REGULATOR is not set
556# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
557# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
558# CONFIG_REGULATOR_BQ24022 is not set
559
560#
548# Multimedia devices 561# Multimedia devices
549# 562#
550 563
@@ -577,6 +590,12 @@ CONFIG_HID_SUPPORT=y
577CONFIG_HID=y 590CONFIG_HID=y
578# CONFIG_HID_DEBUG is not set 591# CONFIG_HID_DEBUG is not set
579# CONFIG_HIDRAW is not set 592# CONFIG_HIDRAW is not set
593# CONFIG_HID_PID is not set
594
595#
596# Special HID drivers
597#
598CONFIG_HID_COMPAT=y
580CONFIG_USB_SUPPORT=y 599CONFIG_USB_SUPPORT=y
581# CONFIG_USB_ARCH_HAS_HCD is not set 600# CONFIG_USB_ARCH_HAS_HCD is not set
582# CONFIG_USB_ARCH_HAS_OHCI is not set 601# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -600,6 +619,7 @@ CONFIG_USB_SUPPORT=y
600# CONFIG_RTC_CLASS is not set 619# CONFIG_RTC_CLASS is not set
601# CONFIG_DMADEVICES is not set 620# CONFIG_DMADEVICES is not set
602# CONFIG_UIO is not set 621# CONFIG_UIO is not set
622# CONFIG_STAGING is not set
603 623
604# 624#
605# File systems 625# File systems
@@ -611,12 +631,13 @@ CONFIG_EXT3_FS=y
611CONFIG_EXT3_FS_XATTR=y 631CONFIG_EXT3_FS_XATTR=y
612# CONFIG_EXT3_FS_POSIX_ACL is not set 632# CONFIG_EXT3_FS_POSIX_ACL is not set
613# CONFIG_EXT3_FS_SECURITY is not set 633# CONFIG_EXT3_FS_SECURITY is not set
614# CONFIG_EXT4DEV_FS is not set 634# CONFIG_EXT4_FS is not set
615CONFIG_JBD=y 635CONFIG_JBD=y
616CONFIG_FS_MBCACHE=y 636CONFIG_FS_MBCACHE=y
617# CONFIG_REISERFS_FS is not set 637# CONFIG_REISERFS_FS is not set
618# CONFIG_JFS_FS is not set 638# CONFIG_JFS_FS is not set
619# CONFIG_FS_POSIX_ACL is not set 639# CONFIG_FS_POSIX_ACL is not set
640CONFIG_FILE_LOCKING=y
620# CONFIG_XFS_FS is not set 641# CONFIG_XFS_FS is not set
621# CONFIG_OCFS2_FS is not set 642# CONFIG_OCFS2_FS is not set
622CONFIG_DNOTIFY=y 643CONFIG_DNOTIFY=y
@@ -646,6 +667,7 @@ CONFIG_INOTIFY_USER=y
646CONFIG_PROC_FS=y 667CONFIG_PROC_FS=y
647CONFIG_PROC_KCORE=y 668CONFIG_PROC_KCORE=y
648CONFIG_PROC_SYSCTL=y 669CONFIG_PROC_SYSCTL=y
670CONFIG_PROC_PAGE_MONITOR=y
649CONFIG_SYSFS=y 671CONFIG_SYSFS=y
650CONFIG_TMPFS=y 672CONFIG_TMPFS=y
651# CONFIG_TMPFS_POSIX_ACL is not set 673# CONFIG_TMPFS_POSIX_ACL is not set
@@ -680,6 +702,7 @@ CONFIG_ROOT_NFS=y
680CONFIG_LOCKD=y 702CONFIG_LOCKD=y
681CONFIG_NFS_COMMON=y 703CONFIG_NFS_COMMON=y
682CONFIG_SUNRPC=y 704CONFIG_SUNRPC=y
705# CONFIG_SUNRPC_REGISTER_V4 is not set
683# CONFIG_RPCSEC_GSS_KRB5 is not set 706# CONFIG_RPCSEC_GSS_KRB5 is not set
684# CONFIG_RPCSEC_GSS_SPKM3 is not set 707# CONFIG_RPCSEC_GSS_SPKM3 is not set
685# CONFIG_SMB_FS is not set 708# CONFIG_SMB_FS is not set
@@ -712,7 +735,6 @@ CONFIG_PARTITION_ADVANCED=y
712# Library routines 735# Library routines
713# 736#
714CONFIG_BITREVERSE=y 737CONFIG_BITREVERSE=y
715# CONFIG_GENERIC_FIND_FIRST_BIT is not set
716# CONFIG_CRC_CCITT is not set 738# CONFIG_CRC_CCITT is not set
717# CONFIG_CRC16 is not set 739# CONFIG_CRC16 is not set
718# CONFIG_CRC_T10DIF is not set 740# CONFIG_CRC_T10DIF is not set
@@ -764,15 +786,23 @@ CONFIG_DEBUG_MUTEXES=y
764# CONFIG_DEBUG_SG is not set 786# CONFIG_DEBUG_SG is not set
765# CONFIG_BOOT_PRINTK_DELAY is not set 787# CONFIG_BOOT_PRINTK_DELAY is not set
766# CONFIG_RCU_TORTURE_TEST is not set 788# CONFIG_RCU_TORTURE_TEST is not set
789# CONFIG_RCU_CPU_STALL_DETECTOR is not set
767# CONFIG_BACKTRACE_SELF_TEST is not set 790# CONFIG_BACKTRACE_SELF_TEST is not set
791# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
768# CONFIG_FAULT_INJECTION is not set 792# CONFIG_FAULT_INJECTION is not set
769# CONFIG_LATENCYTOP is not set 793# CONFIG_LATENCYTOP is not set
770CONFIG_SYSCTL_SYSCALL_CHECK=y 794CONFIG_SYSCTL_SYSCALL_CHECK=y
771CONFIG_HAVE_FTRACE=y 795CONFIG_HAVE_FUNCTION_TRACER=y
772CONFIG_HAVE_DYNAMIC_FTRACE=y 796
773# CONFIG_FTRACE is not set 797#
798# Tracers
799#
800# CONFIG_FUNCTION_TRACER is not set
774# CONFIG_SCHED_TRACER is not set 801# CONFIG_SCHED_TRACER is not set
775# CONFIG_CONTEXT_SWITCH_TRACER is not set 802# CONFIG_CONTEXT_SWITCH_TRACER is not set
803# CONFIG_BOOT_TRACER is not set
804# CONFIG_STACK_TRACER is not set
805# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
776# CONFIG_SAMPLES is not set 806# CONFIG_SAMPLES is not set
777CONFIG_HAVE_ARCH_KGDB=y 807CONFIG_HAVE_ARCH_KGDB=y
778# CONFIG_KGDB is not set 808# CONFIG_KGDB is not set
@@ -781,6 +811,7 @@ CONFIG_HAVE_ARCH_KGDB=y
781# CONFIG_DEBUG_PAGEALLOC is not set 811# CONFIG_DEBUG_PAGEALLOC is not set
782# CONFIG_CODE_PATCHING_SELFTEST is not set 812# CONFIG_CODE_PATCHING_SELFTEST is not set
783# CONFIG_FTR_FIXUP_SELFTEST is not set 813# CONFIG_FTR_FIXUP_SELFTEST is not set
814# CONFIG_MSI_BITMAP_SELFTEST is not set
784# CONFIG_XMON is not set 815# CONFIG_XMON is not set
785# CONFIG_IRQSTACKS is not set 816# CONFIG_IRQSTACKS is not set
786# CONFIG_BDI_SWITCH is not set 817# CONFIG_BDI_SWITCH is not set
@@ -791,12 +822,14 @@ CONFIG_HAVE_ARCH_KGDB=y
791# 822#
792# CONFIG_KEYS is not set 823# CONFIG_KEYS is not set
793# CONFIG_SECURITY is not set 824# CONFIG_SECURITY is not set
825# CONFIG_SECURITYFS is not set
794# CONFIG_SECURITY_FILE_CAPABILITIES is not set 826# CONFIG_SECURITY_FILE_CAPABILITIES is not set
795CONFIG_CRYPTO=y 827CONFIG_CRYPTO=y
796 828
797# 829#
798# Crypto core or helper 830# Crypto core or helper
799# 831#
832# CONFIG_CRYPTO_FIPS is not set
800# CONFIG_CRYPTO_MANAGER is not set 833# CONFIG_CRYPTO_MANAGER is not set
801# CONFIG_CRYPTO_GF128MUL is not set 834# CONFIG_CRYPTO_GF128MUL is not set
802# CONFIG_CRYPTO_NULL is not set 835# CONFIG_CRYPTO_NULL is not set
@@ -868,6 +901,11 @@ CONFIG_CRYPTO=y
868# 901#
869# CONFIG_CRYPTO_DEFLATE is not set 902# CONFIG_CRYPTO_DEFLATE is not set
870# CONFIG_CRYPTO_LZO is not set 903# CONFIG_CRYPTO_LZO is not set
904
905#
906# Random Number Generation
907#
908# CONFIG_CRYPTO_ANSI_CPRNG is not set
871CONFIG_CRYPTO_HW=y 909CONFIG_CRYPTO_HW=y
872# CONFIG_CRYPTO_DEV_TALITOS is not set 910# CONFIG_CRYPTO_DEV_TALITOS is not set
873# CONFIG_PPC_CLOCK is not set 911# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
index 1aecdeab9841..f6cb01495ea6 100644
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 07:20:43 2008 4# Sat Nov 8 12:40:08 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -110,7 +110,9 @@ CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 116CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
116CONFIG_SLUB=y 118CONFIG_SLUB=y
@@ -124,10 +126,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 126CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
@@ -160,6 +158,7 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 159CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 160CONFIG_CLASSIC_RCU=y
161# CONFIG_FREEZER is not set
163 162
164# 163#
165# Platform support 164# Platform support
@@ -194,8 +193,10 @@ CONFIG_PPC_I8259=y
194# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
195# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
196# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
196# CONFIG_QUICC_ENGINE is not set
197# CONFIG_CPM2 is not set 197# CONFIG_CPM2 is not set
198CONFIG_FSL_ULI1575=y 198CONFIG_FSL_ULI1575=y
199# CONFIG_MPC8xxx_GPIO is not set
199 200
200# 201#
201# Kernel options 202# Kernel options
@@ -215,6 +216,8 @@ CONFIG_PREEMPT_NONE=y
215# CONFIG_PREEMPT_VOLUNTARY is not set 216# CONFIG_PREEMPT_VOLUNTARY is not set
216# CONFIG_PREEMPT is not set 217# CONFIG_PREEMPT is not set
217CONFIG_BINFMT_ELF=y 218CONFIG_BINFMT_ELF=y
219# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
220# CONFIG_HAVE_AOUT is not set
218CONFIG_BINFMT_MISC=m 221CONFIG_BINFMT_MISC=m
219CONFIG_MATH_EMULATION=y 222CONFIG_MATH_EMULATION=y
220# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
@@ -229,15 +232,15 @@ CONFIG_FLATMEM_MANUAL=y
229# CONFIG_SPARSEMEM_MANUAL is not set 232# CONFIG_SPARSEMEM_MANUAL is not set
230CONFIG_FLATMEM=y 233CONFIG_FLATMEM=y
231CONFIG_FLAT_NODE_MEM_MAP=y 234CONFIG_FLAT_NODE_MEM_MAP=y
232# CONFIG_SPARSEMEM_STATIC is not set
233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
234CONFIG_PAGEFLAGS_EXTENDED=y 235CONFIG_PAGEFLAGS_EXTENDED=y
235CONFIG_SPLIT_PTLOCK_CPUS=4 236CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y 237CONFIG_MIGRATION=y
237# CONFIG_RESOURCES_64BIT is not set 238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y
241CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
242CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
243# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -261,7 +264,7 @@ CONFIG_PCI_SYSCALL=y
261# CONFIG_PCIEPORTBUS is not set 264# CONFIG_PCIEPORTBUS is not set
262CONFIG_ARCH_SUPPORTS_MSI=y 265CONFIG_ARCH_SUPPORTS_MSI=y
263# CONFIG_PCI_MSI is not set 266# CONFIG_PCI_MSI is not set
264CONFIG_PCI_LEGACY=y 267# CONFIG_PCI_LEGACY is not set
265# CONFIG_PCI_DEBUG is not set 268# CONFIG_PCI_DEBUG is not set
266# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
267# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
@@ -363,6 +366,7 @@ CONFIG_SCTP_HMAC_MD5=y
363# CONFIG_TIPC is not set 366# CONFIG_TIPC is not set
364# CONFIG_ATM is not set 367# CONFIG_ATM is not set
365# CONFIG_BRIDGE is not set 368# CONFIG_BRIDGE is not set
369# CONFIG_NET_DSA is not set
366# CONFIG_VLAN_8021Q is not set 370# CONFIG_VLAN_8021Q is not set
367# CONFIG_DECNET is not set 371# CONFIG_DECNET is not set
368# CONFIG_LLC2 is not set 372# CONFIG_LLC2 is not set
@@ -383,12 +387,11 @@ CONFIG_SCTP_HMAC_MD5=y
383# CONFIG_IRDA is not set 387# CONFIG_IRDA is not set
384# CONFIG_BT is not set 388# CONFIG_BT is not set
385# CONFIG_AF_RXRPC is not set 389# CONFIG_AF_RXRPC is not set
390# CONFIG_PHONET is not set
386CONFIG_FIB_RULES=y 391CONFIG_FIB_RULES=y
387 392CONFIG_WIRELESS=y
388#
389# Wireless
390#
391# CONFIG_CFG80211 is not set 393# CONFIG_CFG80211 is not set
394CONFIG_WIRELESS_OLD_REGULATORY=y
392# CONFIG_WIRELESS_EXT is not set 395# CONFIG_WIRELESS_EXT is not set
393# CONFIG_MAC80211 is not set 396# CONFIG_MAC80211 is not set
394# CONFIG_IEEE80211 is not set 397# CONFIG_IEEE80211 is not set
@@ -634,8 +637,12 @@ CONFIG_MII=y
634# CONFIG_IBM_NEW_EMAC_RGMII is not set 637# CONFIG_IBM_NEW_EMAC_RGMII is not set
635# CONFIG_IBM_NEW_EMAC_TAH is not set 638# CONFIG_IBM_NEW_EMAC_TAH is not set
636# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 639# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
640# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
641# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
642# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
637# CONFIG_NET_PCI is not set 643# CONFIG_NET_PCI is not set
638# CONFIG_B44 is not set 644# CONFIG_B44 is not set
645# CONFIG_ATL2 is not set
639CONFIG_NETDEV_1000=y 646CONFIG_NETDEV_1000=y
640# CONFIG_ACENIC is not set 647# CONFIG_ACENIC is not set
641# CONFIG_DL2K is not set 648# CONFIG_DL2K is not set
@@ -657,18 +664,22 @@ CONFIG_GIANFAR=y
657# CONFIG_QLA3XXX is not set 664# CONFIG_QLA3XXX is not set
658# CONFIG_ATL1 is not set 665# CONFIG_ATL1 is not set
659# CONFIG_ATL1E is not set 666# CONFIG_ATL1E is not set
667# CONFIG_JME is not set
660CONFIG_NETDEV_10000=y 668CONFIG_NETDEV_10000=y
661# CONFIG_CHELSIO_T1 is not set 669# CONFIG_CHELSIO_T1 is not set
662# CONFIG_CHELSIO_T3 is not set 670# CONFIG_CHELSIO_T3 is not set
671# CONFIG_ENIC is not set
663# CONFIG_IXGBE is not set 672# CONFIG_IXGBE is not set
664# CONFIG_IXGB is not set 673# CONFIG_IXGB is not set
665# CONFIG_S2IO is not set 674# CONFIG_S2IO is not set
666# CONFIG_MYRI10GE is not set 675# CONFIG_MYRI10GE is not set
667# CONFIG_NETXEN_NIC is not set 676# CONFIG_NETXEN_NIC is not set
668# CONFIG_NIU is not set 677# CONFIG_NIU is not set
678# CONFIG_MLX4_EN is not set
669# CONFIG_MLX4_CORE is not set 679# CONFIG_MLX4_CORE is not set
670# CONFIG_TEHUTI is not set 680# CONFIG_TEHUTI is not set
671# CONFIG_BNX2X is not set 681# CONFIG_BNX2X is not set
682# CONFIG_QLGE is not set
672# CONFIG_SFC is not set 683# CONFIG_SFC is not set
673# CONFIG_TR is not set 684# CONFIG_TR is not set
674 685
@@ -703,7 +714,7 @@ CONFIG_NETDEV_10000=y
703# Input device support 714# Input device support
704# 715#
705CONFIG_INPUT=y 716CONFIG_INPUT=y
706# CONFIG_INPUT_FF_MEMLESS is not set 717CONFIG_INPUT_FF_MEMLESS=m
707# CONFIG_INPUT_POLLDEV is not set 718# CONFIG_INPUT_POLLDEV is not set
708 719
709# 720#
@@ -872,6 +883,17 @@ CONFIG_SSB_POSSIBLE=y
872# CONFIG_MFD_SM501 is not set 883# CONFIG_MFD_SM501 is not set
873# CONFIG_HTC_PASIC3 is not set 884# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set 885# CONFIG_MFD_TMIO is not set
886# CONFIG_PMIC_DA903X is not set
887# CONFIG_MFD_WM8400 is not set
888# CONFIG_MFD_WM8350_I2C is not set
889
890#
891# Voltage and Current regulators
892#
893# CONFIG_REGULATOR is not set
894# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
895# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
896# CONFIG_REGULATOR_BQ24022 is not set
875 897
876# 898#
877# Multimedia devices 899# Multimedia devices
@@ -912,7 +934,6 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
912# CONFIG_DVB_USB is not set 934# CONFIG_DVB_USB is not set
913# CONFIG_DVB_TTUSB_BUDGET is not set 935# CONFIG_DVB_TTUSB_BUDGET is not set
914# CONFIG_DVB_TTUSB_DEC is not set 936# CONFIG_DVB_TTUSB_DEC is not set
915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set 937# CONFIG_DVB_SIANO_SMS1XXX is not set
917 938
918# 939#
@@ -930,6 +951,11 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
930# CONFIG_DVB_PLUTO2 is not set 951# CONFIG_DVB_PLUTO2 is not set
931 952
932# 953#
954# Supported SDMC DM1105 Adapters
955#
956# CONFIG_DVB_DM1105 is not set
957
958#
933# Supported DVB Frontends 959# Supported DVB Frontends
934# 960#
935 961
@@ -945,6 +971,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
945# CONFIG_DVB_CX24123 is not set 971# CONFIG_DVB_CX24123 is not set
946# CONFIG_DVB_MT312 is not set 972# CONFIG_DVB_MT312 is not set
947# CONFIG_DVB_S5H1420 is not set 973# CONFIG_DVB_S5H1420 is not set
974# CONFIG_DVB_STV0288 is not set
975# CONFIG_DVB_STB6000 is not set
948# CONFIG_DVB_STV0299 is not set 976# CONFIG_DVB_STV0299 is not set
949# CONFIG_DVB_TDA8083 is not set 977# CONFIG_DVB_TDA8083 is not set
950# CONFIG_DVB_TDA10086 is not set 978# CONFIG_DVB_TDA10086 is not set
@@ -952,6 +980,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
952# CONFIG_DVB_TUNER_ITD1000 is not set 980# CONFIG_DVB_TUNER_ITD1000 is not set
953# CONFIG_DVB_TDA826X is not set 981# CONFIG_DVB_TDA826X is not set
954# CONFIG_DVB_TUA6100 is not set 982# CONFIG_DVB_TUA6100 is not set
983# CONFIG_DVB_CX24116 is not set
984# CONFIG_DVB_SI21XX is not set
955 985
956# 986#
957# DVB-T (terrestrial) frontends 987# DVB-T (terrestrial) frontends
@@ -1004,6 +1034,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1004# CONFIG_DVB_LNBP21 is not set 1034# CONFIG_DVB_LNBP21 is not set
1005# CONFIG_DVB_ISL6405 is not set 1035# CONFIG_DVB_ISL6405 is not set
1006# CONFIG_DVB_ISL6421 is not set 1036# CONFIG_DVB_ISL6421 is not set
1037# CONFIG_DVB_LGS8GL5 is not set
1038
1039#
1040# Tools to develop new frontends
1041#
1042# CONFIG_DVB_DUMMY_FE is not set
1043# CONFIG_DVB_AF9013 is not set
1007CONFIG_DAB=y 1044CONFIG_DAB=y
1008# CONFIG_USB_DABUSB is not set 1045# CONFIG_USB_DABUSB is not set
1009 1046
@@ -1029,6 +1066,7 @@ CONFIG_VGA_CONSOLE=y
1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1066# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1030CONFIG_DUMMY_CONSOLE=y 1067CONFIG_DUMMY_CONSOLE=y
1031CONFIG_SOUND=y 1068CONFIG_SOUND=y
1069CONFIG_SOUND_OSS_CORE=y
1032CONFIG_SND=y 1070CONFIG_SND=y
1033CONFIG_SND_TIMER=y 1071CONFIG_SND_TIMER=y
1034CONFIG_SND_PCM=y 1072CONFIG_SND_PCM=y
@@ -1129,9 +1167,36 @@ CONFIG_HID=y
1129# USB Input Devices 1167# USB Input Devices
1130# 1168#
1131CONFIG_USB_HID=y 1169CONFIG_USB_HID=y
1132# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1170# CONFIG_HID_PID is not set
1133# CONFIG_HID_FF is not set
1134# CONFIG_USB_HIDDEV is not set 1171# CONFIG_USB_HIDDEV is not set
1172
1173#
1174# Special HID drivers
1175#
1176CONFIG_HID_COMPAT=y
1177CONFIG_HID_A4TECH=y
1178CONFIG_HID_APPLE=y
1179CONFIG_HID_BELKIN=y
1180CONFIG_HID_BRIGHT=y
1181CONFIG_HID_CHERRY=y
1182CONFIG_HID_CHICONY=y
1183CONFIG_HID_CYPRESS=y
1184CONFIG_HID_DELL=y
1185CONFIG_HID_EZKEY=y
1186CONFIG_HID_GYRATION=y
1187CONFIG_HID_LOGITECH=y
1188# CONFIG_LOGITECH_FF is not set
1189# CONFIG_LOGIRUMBLEPAD2_FF is not set
1190CONFIG_HID_MICROSOFT=y
1191CONFIG_HID_MONTEREY=y
1192CONFIG_HID_PANTHERLORD=y
1193# CONFIG_PANTHERLORD_FF is not set
1194CONFIG_HID_PETALYNX=y
1195CONFIG_HID_SAMSUNG=y
1196CONFIG_HID_SONY=y
1197CONFIG_HID_SUNPLUS=y
1198CONFIG_THRUSTMASTER_FF=m
1199CONFIG_ZEROPLUS_FF=m
1135CONFIG_USB_SUPPORT=y 1200CONFIG_USB_SUPPORT=y
1136CONFIG_USB_ARCH_HAS_HCD=y 1201CONFIG_USB_ARCH_HAS_HCD=y
1137CONFIG_USB_ARCH_HAS_OHCI=y 1202CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1150,6 +1215,8 @@ CONFIG_USB_DEVICE_CLASS=y
1150# CONFIG_USB_OTG_WHITELIST is not set 1215# CONFIG_USB_OTG_WHITELIST is not set
1151# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1216# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1152CONFIG_USB_MON=y 1217CONFIG_USB_MON=y
1218# CONFIG_USB_WUSB is not set
1219# CONFIG_USB_WUSB_CBAF is not set
1153 1220
1154# 1221#
1155# USB Host Controller Drivers 1222# USB Host Controller Drivers
@@ -1173,6 +1240,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1173# CONFIG_USB_UHCI_HCD is not set 1240# CONFIG_USB_UHCI_HCD is not set
1174# CONFIG_USB_SL811_HCD is not set 1241# CONFIG_USB_SL811_HCD is not set
1175# CONFIG_USB_R8A66597_HCD is not set 1242# CONFIG_USB_R8A66597_HCD is not set
1243# CONFIG_USB_WHCI_HCD is not set
1244# CONFIG_USB_HWA_HCD is not set
1176 1245
1177# 1246#
1178# USB Device Class drivers 1247# USB Device Class drivers
@@ -1180,6 +1249,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1180# CONFIG_USB_ACM is not set 1249# CONFIG_USB_ACM is not set
1181# CONFIG_USB_PRINTER is not set 1250# CONFIG_USB_PRINTER is not set
1182# CONFIG_USB_WDM is not set 1251# CONFIG_USB_WDM is not set
1252# CONFIG_USB_TMC is not set
1183 1253
1184# 1254#
1185# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1255# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1201,7 +1271,6 @@ CONFIG_USB_STORAGE=y
1201# CONFIG_USB_STORAGE_ALAUDA is not set 1271# CONFIG_USB_STORAGE_ALAUDA is not set
1202# CONFIG_USB_STORAGE_ONETOUCH is not set 1272# CONFIG_USB_STORAGE_ONETOUCH is not set
1203# CONFIG_USB_STORAGE_KARMA is not set 1273# CONFIG_USB_STORAGE_KARMA is not set
1204# CONFIG_USB_STORAGE_SIERRA is not set
1205# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1274# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1206# CONFIG_USB_LIBUSUAL is not set 1275# CONFIG_USB_LIBUSUAL is not set
1207 1276
@@ -1222,6 +1291,7 @@ CONFIG_USB_STORAGE=y
1222# CONFIG_USB_EMI62 is not set 1291# CONFIG_USB_EMI62 is not set
1223# CONFIG_USB_EMI26 is not set 1292# CONFIG_USB_EMI26 is not set
1224# CONFIG_USB_ADUTUX is not set 1293# CONFIG_USB_ADUTUX is not set
1294# CONFIG_USB_SEVSEG is not set
1225# CONFIG_USB_RIO500 is not set 1295# CONFIG_USB_RIO500 is not set
1226# CONFIG_USB_LEGOTOWER is not set 1296# CONFIG_USB_LEGOTOWER is not set
1227# CONFIG_USB_LCD is not set 1297# CONFIG_USB_LCD is not set
@@ -1239,7 +1309,9 @@ CONFIG_USB_STORAGE=y
1239# CONFIG_USB_IOWARRIOR is not set 1309# CONFIG_USB_IOWARRIOR is not set
1240# CONFIG_USB_TEST is not set 1310# CONFIG_USB_TEST is not set
1241# CONFIG_USB_ISIGHTFW is not set 1311# CONFIG_USB_ISIGHTFW is not set
1312# CONFIG_USB_VST is not set
1242# CONFIG_USB_GADGET is not set 1313# CONFIG_USB_GADGET is not set
1314# CONFIG_UWB is not set
1243# CONFIG_MMC is not set 1315# CONFIG_MMC is not set
1244# CONFIG_MEMSTICK is not set 1316# CONFIG_MEMSTICK is not set
1245# CONFIG_NEW_LEDS is not set 1317# CONFIG_NEW_LEDS is not set
@@ -1285,12 +1357,15 @@ CONFIG_RTC_INTF_DEV=y
1285# Platform RTC drivers 1357# Platform RTC drivers
1286# 1358#
1287CONFIG_RTC_DRV_CMOS=y 1359CONFIG_RTC_DRV_CMOS=y
1360# CONFIG_RTC_DRV_DS1286 is not set
1288# CONFIG_RTC_DRV_DS1511 is not set 1361# CONFIG_RTC_DRV_DS1511 is not set
1289# CONFIG_RTC_DRV_DS1553 is not set 1362# CONFIG_RTC_DRV_DS1553 is not set
1290# CONFIG_RTC_DRV_DS1742 is not set 1363# CONFIG_RTC_DRV_DS1742 is not set
1291# CONFIG_RTC_DRV_STK17TA8 is not set 1364# CONFIG_RTC_DRV_STK17TA8 is not set
1292# CONFIG_RTC_DRV_M48T86 is not set 1365# CONFIG_RTC_DRV_M48T86 is not set
1366# CONFIG_RTC_DRV_M48T35 is not set
1293# CONFIG_RTC_DRV_M48T59 is not set 1367# CONFIG_RTC_DRV_M48T59 is not set
1368# CONFIG_RTC_DRV_BQ4802 is not set
1294# CONFIG_RTC_DRV_V3020 is not set 1369# CONFIG_RTC_DRV_V3020 is not set
1295 1370
1296# 1371#
@@ -1311,6 +1386,7 @@ CONFIG_DMA_ENGINE=y
1311# CONFIG_NET_DMA is not set 1386# CONFIG_NET_DMA is not set
1312# CONFIG_DMATEST is not set 1387# CONFIG_DMATEST is not set
1313# CONFIG_UIO is not set 1388# CONFIG_UIO is not set
1389# CONFIG_STAGING is not set
1314 1390
1315# 1391#
1316# File systems 1392# File systems
@@ -1322,12 +1398,13 @@ CONFIG_EXT3_FS=y
1322CONFIG_EXT3_FS_XATTR=y 1398CONFIG_EXT3_FS_XATTR=y
1323# CONFIG_EXT3_FS_POSIX_ACL is not set 1399# CONFIG_EXT3_FS_POSIX_ACL is not set
1324# CONFIG_EXT3_FS_SECURITY is not set 1400# CONFIG_EXT3_FS_SECURITY is not set
1325# CONFIG_EXT4DEV_FS is not set 1401# CONFIG_EXT4_FS is not set
1326CONFIG_JBD=y 1402CONFIG_JBD=y
1327CONFIG_FS_MBCACHE=y 1403CONFIG_FS_MBCACHE=y
1328# CONFIG_REISERFS_FS is not set 1404# CONFIG_REISERFS_FS is not set
1329# CONFIG_JFS_FS is not set 1405# CONFIG_JFS_FS is not set
1330# CONFIG_FS_POSIX_ACL is not set 1406# CONFIG_FS_POSIX_ACL is not set
1407CONFIG_FILE_LOCKING=y
1331# CONFIG_XFS_FS is not set 1408# CONFIG_XFS_FS is not set
1332# CONFIG_OCFS2_FS is not set 1409# CONFIG_OCFS2_FS is not set
1333CONFIG_DNOTIFY=y 1410CONFIG_DNOTIFY=y
@@ -1365,6 +1442,7 @@ CONFIG_NTFS_FS=y
1365CONFIG_PROC_FS=y 1442CONFIG_PROC_FS=y
1366CONFIG_PROC_KCORE=y 1443CONFIG_PROC_KCORE=y
1367CONFIG_PROC_SYSCTL=y 1444CONFIG_PROC_SYSCTL=y
1445CONFIG_PROC_PAGE_MONITOR=y
1368CONFIG_SYSFS=y 1446CONFIG_SYSFS=y
1369CONFIG_TMPFS=y 1447CONFIG_TMPFS=y
1370# CONFIG_TMPFS_POSIX_ACL is not set 1448# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1409,6 +1487,7 @@ CONFIG_EXPORTFS=y
1409CONFIG_NFS_COMMON=y 1487CONFIG_NFS_COMMON=y
1410CONFIG_SUNRPC=y 1488CONFIG_SUNRPC=y
1411CONFIG_SUNRPC_GSS=y 1489CONFIG_SUNRPC_GSS=y
1490# CONFIG_SUNRPC_REGISTER_V4 is not set
1412CONFIG_RPCSEC_GSS_KRB5=y 1491CONFIG_RPCSEC_GSS_KRB5=y
1413# CONFIG_RPCSEC_GSS_SPKM3 is not set 1492# CONFIG_RPCSEC_GSS_SPKM3 is not set
1414# CONFIG_SMB_FS is not set 1493# CONFIG_SMB_FS is not set
@@ -1484,7 +1563,6 @@ CONFIG_NLS_UTF8=m
1484# Library routines 1563# Library routines
1485# 1564#
1486CONFIG_BITREVERSE=y 1565CONFIG_BITREVERSE=y
1487# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1488# CONFIG_CRC_CCITT is not set 1566# CONFIG_CRC_CCITT is not set
1489# CONFIG_CRC16 is not set 1567# CONFIG_CRC16 is not set
1490CONFIG_CRC_T10DIF=y 1568CONFIG_CRC_T10DIF=y
@@ -1538,15 +1616,23 @@ CONFIG_DEBUG_INFO=y
1538# CONFIG_DEBUG_SG is not set 1616# CONFIG_DEBUG_SG is not set
1539# CONFIG_BOOT_PRINTK_DELAY is not set 1617# CONFIG_BOOT_PRINTK_DELAY is not set
1540# CONFIG_RCU_TORTURE_TEST is not set 1618# CONFIG_RCU_TORTURE_TEST is not set
1619# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1541# CONFIG_BACKTRACE_SELF_TEST is not set 1620# CONFIG_BACKTRACE_SELF_TEST is not set
1621# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1542# CONFIG_FAULT_INJECTION is not set 1622# CONFIG_FAULT_INJECTION is not set
1543# CONFIG_LATENCYTOP is not set 1623# CONFIG_LATENCYTOP is not set
1544CONFIG_SYSCTL_SYSCALL_CHECK=y 1624CONFIG_SYSCTL_SYSCALL_CHECK=y
1545CONFIG_HAVE_FTRACE=y 1625CONFIG_HAVE_FUNCTION_TRACER=y
1546CONFIG_HAVE_DYNAMIC_FTRACE=y 1626
1547# CONFIG_FTRACE is not set 1627#
1628# Tracers
1629#
1630# CONFIG_FUNCTION_TRACER is not set
1548# CONFIG_SCHED_TRACER is not set 1631# CONFIG_SCHED_TRACER is not set
1549# CONFIG_CONTEXT_SWITCH_TRACER is not set 1632# CONFIG_CONTEXT_SWITCH_TRACER is not set
1633# CONFIG_BOOT_TRACER is not set
1634# CONFIG_STACK_TRACER is not set
1635# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1550# CONFIG_SAMPLES is not set 1636# CONFIG_SAMPLES is not set
1551CONFIG_HAVE_ARCH_KGDB=y 1637CONFIG_HAVE_ARCH_KGDB=y
1552# CONFIG_KGDB is not set 1638# CONFIG_KGDB is not set
@@ -1555,6 +1641,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1555# CONFIG_DEBUG_PAGEALLOC is not set 1641# CONFIG_DEBUG_PAGEALLOC is not set
1556# CONFIG_CODE_PATCHING_SELFTEST is not set 1642# CONFIG_CODE_PATCHING_SELFTEST is not set
1557# CONFIG_FTR_FIXUP_SELFTEST is not set 1643# CONFIG_FTR_FIXUP_SELFTEST is not set
1644# CONFIG_MSI_BITMAP_SELFTEST is not set
1558# CONFIG_XMON is not set 1645# CONFIG_XMON is not set
1559# CONFIG_IRQSTACKS is not set 1646# CONFIG_IRQSTACKS is not set
1560# CONFIG_BDI_SWITCH is not set 1647# CONFIG_BDI_SWITCH is not set
@@ -1565,16 +1652,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1565# 1652#
1566# CONFIG_KEYS is not set 1653# CONFIG_KEYS is not set
1567# CONFIG_SECURITY is not set 1654# CONFIG_SECURITY is not set
1655# CONFIG_SECURITYFS is not set
1568# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1656# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1569CONFIG_CRYPTO=y 1657CONFIG_CRYPTO=y
1570 1658
1571# 1659#
1572# Crypto core or helper 1660# Crypto core or helper
1573# 1661#
1662# CONFIG_CRYPTO_FIPS is not set
1574CONFIG_CRYPTO_ALGAPI=y 1663CONFIG_CRYPTO_ALGAPI=y
1575CONFIG_CRYPTO_AEAD=y 1664CONFIG_CRYPTO_AEAD=y
1576CONFIG_CRYPTO_BLKCIPHER=y 1665CONFIG_CRYPTO_BLKCIPHER=y
1577CONFIG_CRYPTO_HASH=y 1666CONFIG_CRYPTO_HASH=y
1667CONFIG_CRYPTO_RNG=y
1578CONFIG_CRYPTO_MANAGER=y 1668CONFIG_CRYPTO_MANAGER=y
1579# CONFIG_CRYPTO_GF128MUL is not set 1669# CONFIG_CRYPTO_GF128MUL is not set
1580# CONFIG_CRYPTO_NULL is not set 1670# CONFIG_CRYPTO_NULL is not set
@@ -1647,6 +1737,11 @@ CONFIG_CRYPTO_DES=y
1647# 1737#
1648# CONFIG_CRYPTO_DEFLATE is not set 1738# CONFIG_CRYPTO_DEFLATE is not set
1649# CONFIG_CRYPTO_LZO is not set 1739# CONFIG_CRYPTO_LZO is not set
1740
1741#
1742# Random Number Generation
1743#
1744# CONFIG_CRYPTO_ANSI_CPRNG is not set
1650CONFIG_CRYPTO_HW=y 1745CONFIG_CRYPTO_HW=y
1651# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1746# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1652CONFIG_CRYPTO_DEV_TALITOS=y 1747CONFIG_CRYPTO_DEV_TALITOS=y
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 06e26d906f65..6cf929259ba7 100644
--- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:32 2008 4# Sat Nov 8 12:40:09 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -108,7 +108,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 108CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 109CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 110CONFIG_SHMEM=y
111CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 114CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 115# CONFIG_SLAB is not set
114CONFIG_SLUB=y 116CONFIG_SLUB=y
@@ -121,10 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126CONFIG_HAVE_CLK=y 126CONFIG_HAVE_CLK=y
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
@@ -151,6 +150,7 @@ CONFIG_DEFAULT_AS=y
151# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_CLASSIC_RCU=y 152CONFIG_CLASSIC_RCU=y
153# CONFIG_FREEZER is not set
154 154
155# 155#
156# Platform support 156# Platform support
@@ -185,15 +185,16 @@ CONFIG_MPIC=y
185# CONFIG_PPC_INDIRECT_IO is not set 185# CONFIG_PPC_INDIRECT_IO is not set
186# CONFIG_GENERIC_IOMAP is not set 186# CONFIG_GENERIC_IOMAP is not set
187# CONFIG_CPU_FREQ is not set 187# CONFIG_CPU_FREQ is not set
188# CONFIG_QUICC_ENGINE is not set
188CONFIG_CPM2=y 189CONFIG_CPM2=y
189# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
190CONFIG_CPM=y 191CONFIG_CPM=y
192# CONFIG_MPC8xxx_GPIO is not set
191 193
192# 194#
193# Kernel options 195# Kernel options
194# 196#
195# CONFIG_HIGHMEM is not set 197# CONFIG_HIGHMEM is not set
196# CONFIG_TICK_ONESHOT is not set
197# CONFIG_NO_HZ is not set 198# CONFIG_NO_HZ is not set
198# CONFIG_HIGH_RES_TIMERS is not set 199# CONFIG_HIGH_RES_TIMERS is not set
199CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 200CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -207,6 +208,8 @@ CONFIG_PREEMPT_NONE=y
207# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
208# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
209CONFIG_BINFMT_ELF=y 210CONFIG_BINFMT_ELF=y
211# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
212# CONFIG_HAVE_AOUT is not set
210CONFIG_BINFMT_MISC=y 213CONFIG_BINFMT_MISC=y
211CONFIG_MATH_EMULATION=y 214CONFIG_MATH_EMULATION=y
212# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
@@ -221,15 +224,15 @@ CONFIG_FLATMEM_MANUAL=y
221# CONFIG_SPARSEMEM_MANUAL is not set 224# CONFIG_SPARSEMEM_MANUAL is not set
222CONFIG_FLATMEM=y 225CONFIG_FLATMEM=y
223CONFIG_FLAT_NODE_MEM_MAP=y 226CONFIG_FLAT_NODE_MEM_MAP=y
224# CONFIG_SPARSEMEM_STATIC is not set
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y 227CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 228CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y 229CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set 230# CONFIG_RESOURCES_64BIT is not set
231# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 232CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 233CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 234CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y
233CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
234# CONFIG_PROC_DEVICETREE is not set 237# CONFIG_PROC_DEVICETREE is not set
235# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
@@ -252,7 +255,7 @@ CONFIG_PCI_SYSCALL=y
252# CONFIG_PCIEPORTBUS is not set 255# CONFIG_PCIEPORTBUS is not set
253CONFIG_ARCH_SUPPORTS_MSI=y 256CONFIG_ARCH_SUPPORTS_MSI=y
254# CONFIG_PCI_MSI is not set 257# CONFIG_PCI_MSI is not set
255CONFIG_PCI_LEGACY=y 258# CONFIG_PCI_LEGACY is not set
256CONFIG_PCI_DEBUG=y 259CONFIG_PCI_DEBUG=y
257# CONFIG_PCCARD is not set 260# CONFIG_PCCARD is not set
258# CONFIG_HOTPLUG_PCI is not set 261# CONFIG_HOTPLUG_PCI is not set
@@ -322,6 +325,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_TIPC is not set 325# CONFIG_TIPC is not set
323# CONFIG_ATM is not set 326# CONFIG_ATM is not set
324# CONFIG_BRIDGE is not set 327# CONFIG_BRIDGE is not set
328# CONFIG_NET_DSA is not set
325# CONFIG_VLAN_8021Q is not set 329# CONFIG_VLAN_8021Q is not set
326# CONFIG_DECNET is not set 330# CONFIG_DECNET is not set
327# CONFIG_LLC2 is not set 331# CONFIG_LLC2 is not set
@@ -342,11 +346,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_IRDA is not set 346# CONFIG_IRDA is not set
343# CONFIG_BT is not set 347# CONFIG_BT is not set
344# CONFIG_AF_RXRPC is not set 348# CONFIG_AF_RXRPC is not set
345 349# CONFIG_PHONET is not set
346# 350CONFIG_WIRELESS=y
347# Wireless
348#
349# CONFIG_CFG80211 is not set 351# CONFIG_CFG80211 is not set
352CONFIG_WIRELESS_OLD_REGULATORY=y
350# CONFIG_WIRELESS_EXT is not set 353# CONFIG_WIRELESS_EXT is not set
351# CONFIG_MAC80211 is not set 354# CONFIG_MAC80211 is not set
352# CONFIG_IEEE80211 is not set 355# CONFIG_IEEE80211 is not set
@@ -459,8 +462,12 @@ CONFIG_MII=y
459# CONFIG_IBM_NEW_EMAC_RGMII is not set 462# CONFIG_IBM_NEW_EMAC_RGMII is not set
460# CONFIG_IBM_NEW_EMAC_TAH is not set 463# CONFIG_IBM_NEW_EMAC_TAH is not set
461# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 464# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
465# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
466# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
467# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
462# CONFIG_NET_PCI is not set 468# CONFIG_NET_PCI is not set
463# CONFIG_B44 is not set 469# CONFIG_B44 is not set
470# CONFIG_ATL2 is not set
464CONFIG_FS_ENET=y 471CONFIG_FS_ENET=y
465# CONFIG_FS_ENET_HAS_SCC is not set 472# CONFIG_FS_ENET_HAS_SCC is not set
466CONFIG_FS_ENET_HAS_FCC=y 473CONFIG_FS_ENET_HAS_FCC=y
@@ -469,7 +476,6 @@ CONFIG_NETDEV_1000=y
469# CONFIG_ACENIC is not set 476# CONFIG_ACENIC is not set
470# CONFIG_DL2K is not set 477# CONFIG_DL2K is not set
471CONFIG_E1000=y 478CONFIG_E1000=y
472# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
473# CONFIG_E1000E is not set 479# CONFIG_E1000E is not set
474# CONFIG_IP1000 is not set 480# CONFIG_IP1000 is not set
475# CONFIG_IGB is not set 481# CONFIG_IGB is not set
@@ -487,18 +493,22 @@ CONFIG_GIANFAR=y
487# CONFIG_QLA3XXX is not set 493# CONFIG_QLA3XXX is not set
488# CONFIG_ATL1 is not set 494# CONFIG_ATL1 is not set
489# CONFIG_ATL1E is not set 495# CONFIG_ATL1E is not set
496# CONFIG_JME is not set
490CONFIG_NETDEV_10000=y 497CONFIG_NETDEV_10000=y
491# CONFIG_CHELSIO_T1 is not set 498# CONFIG_CHELSIO_T1 is not set
492# CONFIG_CHELSIO_T3 is not set 499# CONFIG_CHELSIO_T3 is not set
500# CONFIG_ENIC is not set
493# CONFIG_IXGBE is not set 501# CONFIG_IXGBE is not set
494# CONFIG_IXGB is not set 502# CONFIG_IXGB is not set
495# CONFIG_S2IO is not set 503# CONFIG_S2IO is not set
496# CONFIG_MYRI10GE is not set 504# CONFIG_MYRI10GE is not set
497# CONFIG_NETXEN_NIC is not set 505# CONFIG_NETXEN_NIC is not set
498# CONFIG_NIU is not set 506# CONFIG_NIU is not set
507# CONFIG_MLX4_EN is not set
499# CONFIG_MLX4_CORE is not set 508# CONFIG_MLX4_CORE is not set
500# CONFIG_TEHUTI is not set 509# CONFIG_TEHUTI is not set
501# CONFIG_BNX2X is not set 510# CONFIG_BNX2X is not set
511# CONFIG_QLGE is not set
502# CONFIG_SFC is not set 512# CONFIG_SFC is not set
503# CONFIG_TR is not set 513# CONFIG_TR is not set
504 514
@@ -571,12 +581,6 @@ CONFIG_SERIAL_CORE=y
571CONFIG_SERIAL_CORE_CONSOLE=y 581CONFIG_SERIAL_CORE_CONSOLE=y
572CONFIG_SERIAL_CPM=y 582CONFIG_SERIAL_CPM=y
573CONFIG_SERIAL_CPM_CONSOLE=y 583CONFIG_SERIAL_CPM_CONSOLE=y
574CONFIG_SERIAL_CPM_SCC1=y
575CONFIG_SERIAL_CPM_SCC2=y
576# CONFIG_SERIAL_CPM_SCC3 is not set
577# CONFIG_SERIAL_CPM_SCC4 is not set
578# CONFIG_SERIAL_CPM_SMC1 is not set
579# CONFIG_SERIAL_CPM_SMC2 is not set
580# CONFIG_SERIAL_JSM is not set 584# CONFIG_SERIAL_JSM is not set
581CONFIG_UNIX98_PTYS=y 585CONFIG_UNIX98_PTYS=y
582CONFIG_LEGACY_PTYS=y 586CONFIG_LEGACY_PTYS=y
@@ -649,6 +653,14 @@ CONFIG_SSB_POSSIBLE=y
649# CONFIG_MFD_TMIO is not set 653# CONFIG_MFD_TMIO is not set
650 654
651# 655#
656# Voltage and Current regulators
657#
658# CONFIG_REGULATOR is not set
659# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
660# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
661# CONFIG_REGULATOR_BQ24022 is not set
662
663#
652# Multimedia devices 664# Multimedia devices
653# 665#
654 666
@@ -683,6 +695,12 @@ CONFIG_HID_SUPPORT=y
683CONFIG_HID=y 695CONFIG_HID=y
684# CONFIG_HID_DEBUG is not set 696# CONFIG_HID_DEBUG is not set
685# CONFIG_HIDRAW is not set 697# CONFIG_HIDRAW is not set
698# CONFIG_HID_PID is not set
699
700#
701# Special HID drivers
702#
703CONFIG_HID_COMPAT=y
686CONFIG_USB_SUPPORT=y 704CONFIG_USB_SUPPORT=y
687CONFIG_USB_ARCH_HAS_HCD=y 705CONFIG_USB_ARCH_HAS_HCD=y
688CONFIG_USB_ARCH_HAS_OHCI=y 706CONFIG_USB_ARCH_HAS_OHCI=y
@@ -699,6 +717,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
699# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 717# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
700# 718#
701# CONFIG_USB_GADGET is not set 719# CONFIG_USB_GADGET is not set
720# CONFIG_UWB is not set
702# CONFIG_MMC is not set 721# CONFIG_MMC is not set
703# CONFIG_MEMSTICK is not set 722# CONFIG_MEMSTICK is not set
704# CONFIG_NEW_LEDS is not set 723# CONFIG_NEW_LEDS is not set
@@ -708,6 +727,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
708# CONFIG_RTC_CLASS is not set 727# CONFIG_RTC_CLASS is not set
709# CONFIG_DMADEVICES is not set 728# CONFIG_DMADEVICES is not set
710# CONFIG_UIO is not set 729# CONFIG_UIO is not set
730# CONFIG_STAGING is not set
711 731
712# 732#
713# File systems 733# File systems
@@ -719,12 +739,13 @@ CONFIG_EXT3_FS=y
719CONFIG_EXT3_FS_XATTR=y 739CONFIG_EXT3_FS_XATTR=y
720# CONFIG_EXT3_FS_POSIX_ACL is not set 740# CONFIG_EXT3_FS_POSIX_ACL is not set
721# CONFIG_EXT3_FS_SECURITY is not set 741# CONFIG_EXT3_FS_SECURITY is not set
722# CONFIG_EXT4DEV_FS is not set 742# CONFIG_EXT4_FS is not set
723CONFIG_JBD=y 743CONFIG_JBD=y
724CONFIG_FS_MBCACHE=y 744CONFIG_FS_MBCACHE=y
725# CONFIG_REISERFS_FS is not set 745# CONFIG_REISERFS_FS is not set
726# CONFIG_JFS_FS is not set 746# CONFIG_JFS_FS is not set
727# CONFIG_FS_POSIX_ACL is not set 747# CONFIG_FS_POSIX_ACL is not set
748CONFIG_FILE_LOCKING=y
728# CONFIG_XFS_FS is not set 749# CONFIG_XFS_FS is not set
729# CONFIG_OCFS2_FS is not set 750# CONFIG_OCFS2_FS is not set
730CONFIG_DNOTIFY=y 751CONFIG_DNOTIFY=y
@@ -754,6 +775,7 @@ CONFIG_INOTIFY_USER=y
754CONFIG_PROC_FS=y 775CONFIG_PROC_FS=y
755CONFIG_PROC_KCORE=y 776CONFIG_PROC_KCORE=y
756CONFIG_PROC_SYSCTL=y 777CONFIG_PROC_SYSCTL=y
778CONFIG_PROC_PAGE_MONITOR=y
757CONFIG_SYSFS=y 779CONFIG_SYSFS=y
758CONFIG_TMPFS=y 780CONFIG_TMPFS=y
759# CONFIG_TMPFS_POSIX_ACL is not set 781# CONFIG_TMPFS_POSIX_ACL is not set
@@ -788,6 +810,7 @@ CONFIG_ROOT_NFS=y
788CONFIG_LOCKD=y 810CONFIG_LOCKD=y
789CONFIG_NFS_COMMON=y 811CONFIG_NFS_COMMON=y
790CONFIG_SUNRPC=y 812CONFIG_SUNRPC=y
813# CONFIG_SUNRPC_REGISTER_V4 is not set
791# CONFIG_RPCSEC_GSS_KRB5 is not set 814# CONFIG_RPCSEC_GSS_KRB5 is not set
792# CONFIG_RPCSEC_GSS_SPKM3 is not set 815# CONFIG_RPCSEC_GSS_SPKM3 is not set
793# CONFIG_SMB_FS is not set 816# CONFIG_SMB_FS is not set
@@ -820,7 +843,6 @@ CONFIG_PARTITION_ADVANCED=y
820# Library routines 843# Library routines
821# 844#
822CONFIG_BITREVERSE=y 845CONFIG_BITREVERSE=y
823# CONFIG_GENERIC_FIND_FIRST_BIT is not set
824# CONFIG_CRC_CCITT is not set 846# CONFIG_CRC_CCITT is not set
825# CONFIG_CRC16 is not set 847# CONFIG_CRC16 is not set
826# CONFIG_CRC_T10DIF is not set 848# CONFIG_CRC_T10DIF is not set
@@ -872,15 +894,23 @@ CONFIG_DEBUG_MUTEXES=y
872# CONFIG_DEBUG_SG is not set 894# CONFIG_DEBUG_SG is not set
873# CONFIG_BOOT_PRINTK_DELAY is not set 895# CONFIG_BOOT_PRINTK_DELAY is not set
874# CONFIG_RCU_TORTURE_TEST is not set 896# CONFIG_RCU_TORTURE_TEST is not set
897# CONFIG_RCU_CPU_STALL_DETECTOR is not set
875# CONFIG_BACKTRACE_SELF_TEST is not set 898# CONFIG_BACKTRACE_SELF_TEST is not set
899# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
876# CONFIG_FAULT_INJECTION is not set 900# CONFIG_FAULT_INJECTION is not set
877# CONFIG_LATENCYTOP is not set 901# CONFIG_LATENCYTOP is not set
878CONFIG_SYSCTL_SYSCALL_CHECK=y 902CONFIG_SYSCTL_SYSCALL_CHECK=y
879CONFIG_HAVE_FTRACE=y 903CONFIG_HAVE_FUNCTION_TRACER=y
880CONFIG_HAVE_DYNAMIC_FTRACE=y 904
881# CONFIG_FTRACE is not set 905#
906# Tracers
907#
908# CONFIG_FUNCTION_TRACER is not set
882# CONFIG_SCHED_TRACER is not set 909# CONFIG_SCHED_TRACER is not set
883# CONFIG_CONTEXT_SWITCH_TRACER is not set 910# CONFIG_CONTEXT_SWITCH_TRACER is not set
911# CONFIG_BOOT_TRACER is not set
912# CONFIG_STACK_TRACER is not set
913# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
884# CONFIG_SAMPLES is not set 914# CONFIG_SAMPLES is not set
885CONFIG_HAVE_ARCH_KGDB=y 915CONFIG_HAVE_ARCH_KGDB=y
886# CONFIG_KGDB is not set 916# CONFIG_KGDB is not set
@@ -889,6 +919,7 @@ CONFIG_HAVE_ARCH_KGDB=y
889# CONFIG_DEBUG_PAGEALLOC is not set 919# CONFIG_DEBUG_PAGEALLOC is not set
890# CONFIG_CODE_PATCHING_SELFTEST is not set 920# CONFIG_CODE_PATCHING_SELFTEST is not set
891# CONFIG_FTR_FIXUP_SELFTEST is not set 921# CONFIG_FTR_FIXUP_SELFTEST is not set
922# CONFIG_MSI_BITMAP_SELFTEST is not set
892# CONFIG_XMON is not set 923# CONFIG_XMON is not set
893# CONFIG_IRQSTACKS is not set 924# CONFIG_IRQSTACKS is not set
894# CONFIG_BDI_SWITCH is not set 925# CONFIG_BDI_SWITCH is not set
@@ -899,12 +930,14 @@ CONFIG_HAVE_ARCH_KGDB=y
899# 930#
900# CONFIG_KEYS is not set 931# CONFIG_KEYS is not set
901# CONFIG_SECURITY is not set 932# CONFIG_SECURITY is not set
933# CONFIG_SECURITYFS is not set
902# CONFIG_SECURITY_FILE_CAPABILITIES is not set 934# CONFIG_SECURITY_FILE_CAPABILITIES is not set
903CONFIG_CRYPTO=y 935CONFIG_CRYPTO=y
904 936
905# 937#
906# Crypto core or helper 938# Crypto core or helper
907# 939#
940# CONFIG_CRYPTO_FIPS is not set
908# CONFIG_CRYPTO_MANAGER is not set 941# CONFIG_CRYPTO_MANAGER is not set
909# CONFIG_CRYPTO_GF128MUL is not set 942# CONFIG_CRYPTO_GF128MUL is not set
910# CONFIG_CRYPTO_NULL is not set 943# CONFIG_CRYPTO_NULL is not set
@@ -976,6 +1009,11 @@ CONFIG_CRYPTO=y
976# 1009#
977# CONFIG_CRYPTO_DEFLATE is not set 1010# CONFIG_CRYPTO_DEFLATE is not set
978# CONFIG_CRYPTO_LZO is not set 1011# CONFIG_CRYPTO_LZO is not set
1012
1013#
1014# Random Number Generation
1015#
1016# CONFIG_CRYPTO_ANSI_CPRNG is not set
979CONFIG_CRYPTO_HW=y 1017CONFIG_CRYPTO_HW=y
980# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1018# CONFIG_CRYPTO_DEV_HIFN_795X is not set
981# CONFIG_CRYPTO_DEV_TALITOS is not set 1019# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
index dc27c74955fa..597be8491812 100644
--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:33 2008 4# Sat Nov 8 12:40:11 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -105,7 +105,9 @@ CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
106CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
107CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
108CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
109CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
110# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
111CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -118,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -154,6 +152,7 @@ CONFIG_DEFAULT_AS=y
154# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="anticipatory"
156CONFIG_CLASSIC_RCU=y 154CONFIG_CLASSIC_RCU=y
155# CONFIG_FREEZER is not set
157 156
158# 157#
159# Platform support 158# Platform support
@@ -189,8 +188,10 @@ CONFIG_MPIC=y
189# CONFIG_GENERIC_IOMAP is not set 188# CONFIG_GENERIC_IOMAP is not set
190# CONFIG_CPU_FREQ is not set 189# CONFIG_CPU_FREQ is not set
191CONFIG_QUICC_ENGINE=y 190CONFIG_QUICC_ENGINE=y
191# CONFIG_QE_GPIO is not set
192# CONFIG_CPM2 is not set 192# CONFIG_CPM2 is not set
193# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
194# CONFIG_MPC8xxx_GPIO is not set
194 195
195# 196#
196# Kernel options 197# Kernel options
@@ -210,6 +211,8 @@ CONFIG_PREEMPT_NONE=y
210# CONFIG_PREEMPT_VOLUNTARY is not set 211# CONFIG_PREEMPT_VOLUNTARY is not set
211# CONFIG_PREEMPT is not set 212# CONFIG_PREEMPT is not set
212CONFIG_BINFMT_ELF=y 213CONFIG_BINFMT_ELF=y
214# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
215# CONFIG_HAVE_AOUT is not set
213# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
214CONFIG_MATH_EMULATION=y 217CONFIG_MATH_EMULATION=y
215# CONFIG_IOMMU_HELPER is not set 218# CONFIG_IOMMU_HELPER is not set
@@ -224,15 +227,15 @@ CONFIG_FLATMEM_MANUAL=y
224# CONFIG_SPARSEMEM_MANUAL is not set 227# CONFIG_SPARSEMEM_MANUAL is not set
225CONFIG_FLATMEM=y 228CONFIG_FLATMEM=y
226CONFIG_FLAT_NODE_MEM_MAP=y 229CONFIG_FLAT_NODE_MEM_MAP=y
227# CONFIG_SPARSEMEM_STATIC is not set
228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
229CONFIG_PAGEFLAGS_EXTENDED=y 230CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y 232CONFIG_MIGRATION=y
232# CONFIG_RESOURCES_64BIT is not set 233# CONFIG_RESOURCES_64BIT is not set
234# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 237CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y
236CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
238# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
@@ -255,7 +258,7 @@ CONFIG_PCI_SYSCALL=y
255# CONFIG_PCIEPORTBUS is not set 258# CONFIG_PCIEPORTBUS is not set
256CONFIG_ARCH_SUPPORTS_MSI=y 259CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 260# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 261# CONFIG_PCI_LEGACY is not set
259# CONFIG_PCI_DEBUG is not set 262# CONFIG_PCI_DEBUG is not set
260# CONFIG_PCCARD is not set 263# CONFIG_PCCARD is not set
261# CONFIG_HOTPLUG_PCI is not set 264# CONFIG_HOTPLUG_PCI is not set
@@ -325,6 +328,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
325# CONFIG_TIPC is not set 328# CONFIG_TIPC is not set
326# CONFIG_ATM is not set 329# CONFIG_ATM is not set
327# CONFIG_BRIDGE is not set 330# CONFIG_BRIDGE is not set
331# CONFIG_NET_DSA is not set
328# CONFIG_VLAN_8021Q is not set 332# CONFIG_VLAN_8021Q is not set
329# CONFIG_DECNET is not set 333# CONFIG_DECNET is not set
330# CONFIG_LLC2 is not set 334# CONFIG_LLC2 is not set
@@ -345,11 +349,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_IRDA is not set 349# CONFIG_IRDA is not set
346# CONFIG_BT is not set 350# CONFIG_BT is not set
347# CONFIG_AF_RXRPC is not set 351# CONFIG_AF_RXRPC is not set
348 352# CONFIG_PHONET is not set
349# 353CONFIG_WIRELESS=y
350# Wireless
351#
352# CONFIG_CFG80211 is not set 354# CONFIG_CFG80211 is not set
355CONFIG_WIRELESS_OLD_REGULATORY=y
353# CONFIG_WIRELESS_EXT is not set 356# CONFIG_WIRELESS_EXT is not set
354# CONFIG_MAC80211 is not set 357# CONFIG_MAC80211 is not set
355# CONFIG_IEEE80211 is not set 358# CONFIG_IEEE80211 is not set
@@ -530,8 +533,12 @@ CONFIG_MII=y
530# CONFIG_IBM_NEW_EMAC_RGMII is not set 533# CONFIG_IBM_NEW_EMAC_RGMII is not set
531# CONFIG_IBM_NEW_EMAC_TAH is not set 534# CONFIG_IBM_NEW_EMAC_TAH is not set
532# 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
533# CONFIG_NET_PCI is not set 539# CONFIG_NET_PCI is not set
534# CONFIG_B44 is not set 540# CONFIG_B44 is not set
541# CONFIG_ATL2 is not set
535CONFIG_NETDEV_1000=y 542CONFIG_NETDEV_1000=y
536# CONFIG_ACENIC is not set 543# CONFIG_ACENIC is not set
537# CONFIG_DL2K is not set 544# CONFIG_DL2K is not set
@@ -554,18 +561,22 @@ CONFIG_GIANFAR=y
554# CONFIG_QLA3XXX is not set 561# CONFIG_QLA3XXX is not set
555# CONFIG_ATL1 is not set 562# CONFIG_ATL1 is not set
556# CONFIG_ATL1E is not set 563# CONFIG_ATL1E is not set
564# CONFIG_JME is not set
557CONFIG_NETDEV_10000=y 565CONFIG_NETDEV_10000=y
558# CONFIG_CHELSIO_T1 is not set 566# CONFIG_CHELSIO_T1 is not set
559# CONFIG_CHELSIO_T3 is not set 567# CONFIG_CHELSIO_T3 is not set
568# CONFIG_ENIC is not set
560# CONFIG_IXGBE is not set 569# CONFIG_IXGBE is not set
561# CONFIG_IXGB is not set 570# CONFIG_IXGB is not set
562# CONFIG_S2IO is not set 571# CONFIG_S2IO is not set
563# CONFIG_MYRI10GE is not set 572# CONFIG_MYRI10GE is not set
564# CONFIG_NETXEN_NIC is not set 573# CONFIG_NETXEN_NIC is not set
565# CONFIG_NIU is not set 574# CONFIG_NIU is not set
575# CONFIG_MLX4_EN is not set
566# CONFIG_MLX4_CORE is not set 576# CONFIG_MLX4_CORE is not set
567# CONFIG_TEHUTI is not set 577# CONFIG_TEHUTI is not set
568# CONFIG_BNX2X is not set 578# CONFIG_BNX2X is not set
579# CONFIG_QLGE is not set
569# CONFIG_SFC is not set 580# CONFIG_SFC is not set
570# CONFIG_TR is not set 581# CONFIG_TR is not set
571 582
@@ -815,6 +826,17 @@ CONFIG_SSB_POSSIBLE=y
815# CONFIG_MFD_SM501 is not set 826# CONFIG_MFD_SM501 is not set
816# CONFIG_HTC_PASIC3 is not set 827# CONFIG_HTC_PASIC3 is not set
817# CONFIG_MFD_TMIO is not set 828# CONFIG_MFD_TMIO is not set
829# CONFIG_PMIC_DA903X is not set
830# CONFIG_MFD_WM8400 is not set
831# CONFIG_MFD_WM8350_I2C is not set
832
833#
834# Voltage and Current regulators
835#
836# CONFIG_REGULATOR is not set
837# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
838# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
839# CONFIG_REGULATOR_BQ24022 is not set
818 840
819# 841#
820# Multimedia devices 842# Multimedia devices
@@ -851,6 +873,12 @@ CONFIG_HID_SUPPORT=y
851CONFIG_HID=y 873CONFIG_HID=y
852# CONFIG_HID_DEBUG is not set 874# CONFIG_HID_DEBUG is not set
853# CONFIG_HIDRAW is not set 875# CONFIG_HIDRAW is not set
876# CONFIG_HID_PID is not set
877
878#
879# Special HID drivers
880#
881CONFIG_HID_COMPAT=y
854CONFIG_USB_SUPPORT=y 882CONFIG_USB_SUPPORT=y
855CONFIG_USB_ARCH_HAS_HCD=y 883CONFIG_USB_ARCH_HAS_HCD=y
856CONFIG_USB_ARCH_HAS_OHCI=y 884CONFIG_USB_ARCH_HAS_OHCI=y
@@ -867,6 +895,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
867# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 895# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
868# 896#
869# CONFIG_USB_GADGET is not set 897# CONFIG_USB_GADGET is not set
898# CONFIG_UWB is not set
870# CONFIG_MMC is not set 899# CONFIG_MMC is not set
871# CONFIG_MEMSTICK is not set 900# CONFIG_MEMSTICK is not set
872# CONFIG_NEW_LEDS is not set 901# CONFIG_NEW_LEDS is not set
@@ -912,12 +941,15 @@ CONFIG_RTC_DRV_DS1374=y
912# Platform RTC drivers 941# Platform RTC drivers
913# 942#
914# CONFIG_RTC_DRV_CMOS is not set 943# CONFIG_RTC_DRV_CMOS is not set
944# CONFIG_RTC_DRV_DS1286 is not set
915# CONFIG_RTC_DRV_DS1511 is not set 945# CONFIG_RTC_DRV_DS1511 is not set
916# CONFIG_RTC_DRV_DS1553 is not set 946# CONFIG_RTC_DRV_DS1553 is not set
917# CONFIG_RTC_DRV_DS1742 is not set 947# CONFIG_RTC_DRV_DS1742 is not set
918# CONFIG_RTC_DRV_STK17TA8 is not set 948# CONFIG_RTC_DRV_STK17TA8 is not set
919# CONFIG_RTC_DRV_M48T86 is not set 949# CONFIG_RTC_DRV_M48T86 is not set
950# CONFIG_RTC_DRV_M48T35 is not set
920# CONFIG_RTC_DRV_M48T59 is not set 951# CONFIG_RTC_DRV_M48T59 is not set
952# CONFIG_RTC_DRV_BQ4802 is not set
921# CONFIG_RTC_DRV_V3020 is not set 953# CONFIG_RTC_DRV_V3020 is not set
922 954
923# 955#
@@ -926,6 +958,7 @@ CONFIG_RTC_DRV_DS1374=y
926# CONFIG_RTC_DRV_PPC is not set 958# CONFIG_RTC_DRV_PPC is not set
927# CONFIG_DMADEVICES is not set 959# CONFIG_DMADEVICES is not set
928# CONFIG_UIO is not set 960# CONFIG_UIO is not set
961# CONFIG_STAGING is not set
929 962
930# 963#
931# File systems 964# File systems
@@ -937,12 +970,13 @@ CONFIG_EXT3_FS=y
937CONFIG_EXT3_FS_XATTR=y 970CONFIG_EXT3_FS_XATTR=y
938# CONFIG_EXT3_FS_POSIX_ACL is not set 971# CONFIG_EXT3_FS_POSIX_ACL is not set
939# CONFIG_EXT3_FS_SECURITY is not set 972# CONFIG_EXT3_FS_SECURITY is not set
940# CONFIG_EXT4DEV_FS is not set 973# CONFIG_EXT4_FS is not set
941CONFIG_JBD=y 974CONFIG_JBD=y
942CONFIG_FS_MBCACHE=y 975CONFIG_FS_MBCACHE=y
943# CONFIG_REISERFS_FS is not set 976# CONFIG_REISERFS_FS is not set
944# CONFIG_JFS_FS is not set 977# CONFIG_JFS_FS is not set
945# CONFIG_FS_POSIX_ACL is not set 978# CONFIG_FS_POSIX_ACL is not set
979CONFIG_FILE_LOCKING=y
946# CONFIG_XFS_FS is not set 980# CONFIG_XFS_FS is not set
947# CONFIG_OCFS2_FS is not set 981# CONFIG_OCFS2_FS is not set
948CONFIG_DNOTIFY=y 982CONFIG_DNOTIFY=y
@@ -972,6 +1006,7 @@ CONFIG_INOTIFY_USER=y
972CONFIG_PROC_FS=y 1006CONFIG_PROC_FS=y
973CONFIG_PROC_KCORE=y 1007CONFIG_PROC_KCORE=y
974CONFIG_PROC_SYSCTL=y 1008CONFIG_PROC_SYSCTL=y
1009CONFIG_PROC_PAGE_MONITOR=y
975CONFIG_SYSFS=y 1010CONFIG_SYSFS=y
976CONFIG_TMPFS=y 1011CONFIG_TMPFS=y
977# CONFIG_TMPFS_POSIX_ACL is not set 1012# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1009,6 +1044,7 @@ CONFIG_LOCKD_V4=y
1009CONFIG_NFS_COMMON=y 1044CONFIG_NFS_COMMON=y
1010CONFIG_SUNRPC=y 1045CONFIG_SUNRPC=y
1011CONFIG_SUNRPC_GSS=y 1046CONFIG_SUNRPC_GSS=y
1047# CONFIG_SUNRPC_REGISTER_V4 is not set
1012CONFIG_RPCSEC_GSS_KRB5=y 1048CONFIG_RPCSEC_GSS_KRB5=y
1013# CONFIG_RPCSEC_GSS_SPKM3 is not set 1049# CONFIG_RPCSEC_GSS_SPKM3 is not set
1014# CONFIG_SMB_FS is not set 1050# CONFIG_SMB_FS is not set
@@ -1036,13 +1072,11 @@ CONFIG_PARTITION_ADVANCED=y
1036# CONFIG_SYSV68_PARTITION is not set 1072# CONFIG_SYSV68_PARTITION is not set
1037# CONFIG_NLS is not set 1073# CONFIG_NLS is not set
1038# CONFIG_DLM is not set 1074# CONFIG_DLM is not set
1039# CONFIG_QE_GPIO is not set
1040 1075
1041# 1076#
1042# Library routines 1077# Library routines
1043# 1078#
1044CONFIG_BITREVERSE=y 1079CONFIG_BITREVERSE=y
1045# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1046# CONFIG_CRC_CCITT is not set 1080# CONFIG_CRC_CCITT is not set
1047# CONFIG_CRC16 is not set 1081# CONFIG_CRC16 is not set
1048# CONFIG_CRC_T10DIF is not set 1082# CONFIG_CRC_T10DIF is not set
@@ -1094,15 +1128,23 @@ CONFIG_SCHED_DEBUG=y
1094# CONFIG_DEBUG_SG is not set 1128# CONFIG_DEBUG_SG is not set
1095# CONFIG_BOOT_PRINTK_DELAY is not set 1129# CONFIG_BOOT_PRINTK_DELAY is not set
1096# CONFIG_RCU_TORTURE_TEST is not set 1130# CONFIG_RCU_TORTURE_TEST is not set
1131# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1097# CONFIG_BACKTRACE_SELF_TEST is not set 1132# CONFIG_BACKTRACE_SELF_TEST is not set
1133# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1098# CONFIG_FAULT_INJECTION is not set 1134# CONFIG_FAULT_INJECTION is not set
1099# CONFIG_LATENCYTOP is not set 1135# CONFIG_LATENCYTOP is not set
1100CONFIG_SYSCTL_SYSCALL_CHECK=y 1136CONFIG_SYSCTL_SYSCALL_CHECK=y
1101CONFIG_HAVE_FTRACE=y 1137CONFIG_HAVE_FUNCTION_TRACER=y
1102CONFIG_HAVE_DYNAMIC_FTRACE=y 1138
1103# CONFIG_FTRACE is not set 1139#
1140# Tracers
1141#
1142# CONFIG_FUNCTION_TRACER is not set
1104# CONFIG_SCHED_TRACER is not set 1143# CONFIG_SCHED_TRACER is not set
1105# CONFIG_CONTEXT_SWITCH_TRACER is not set 1144# CONFIG_CONTEXT_SWITCH_TRACER is not set
1145# CONFIG_BOOT_TRACER is not set
1146# CONFIG_STACK_TRACER is not set
1147# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1106# CONFIG_SAMPLES is not set 1148# CONFIG_SAMPLES is not set
1107CONFIG_HAVE_ARCH_KGDB=y 1149CONFIG_HAVE_ARCH_KGDB=y
1108# CONFIG_KGDB is not set 1150# CONFIG_KGDB is not set
@@ -1111,6 +1153,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1111# CONFIG_DEBUG_PAGEALLOC is not set 1153# CONFIG_DEBUG_PAGEALLOC is not set
1112# CONFIG_CODE_PATCHING_SELFTEST is not set 1154# CONFIG_CODE_PATCHING_SELFTEST is not set
1113# CONFIG_FTR_FIXUP_SELFTEST is not set 1155# CONFIG_FTR_FIXUP_SELFTEST is not set
1156# CONFIG_MSI_BITMAP_SELFTEST is not set
1114# CONFIG_XMON is not set 1157# CONFIG_XMON is not set
1115# CONFIG_IRQSTACKS is not set 1158# CONFIG_IRQSTACKS is not set
1116# CONFIG_BDI_SWITCH is not set 1159# CONFIG_BDI_SWITCH is not set
@@ -1132,14 +1175,19 @@ CONFIG_PPC_EARLY_DEBUG=y
1132# 1175#
1133# CONFIG_KEYS is not set 1176# CONFIG_KEYS is not set
1134# CONFIG_SECURITY is not set 1177# CONFIG_SECURITY is not set
1178# CONFIG_SECURITYFS is not set
1135# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1179# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1136CONFIG_CRYPTO=y 1180CONFIG_CRYPTO=y
1137 1181
1138# 1182#
1139# Crypto core or helper 1183# Crypto core or helper
1140# 1184#
1185# CONFIG_CRYPTO_FIPS is not set
1141CONFIG_CRYPTO_ALGAPI=y 1186CONFIG_CRYPTO_ALGAPI=y
1187CONFIG_CRYPTO_AEAD=y
1142CONFIG_CRYPTO_BLKCIPHER=y 1188CONFIG_CRYPTO_BLKCIPHER=y
1189CONFIG_CRYPTO_HASH=y
1190CONFIG_CRYPTO_RNG=y
1143CONFIG_CRYPTO_MANAGER=y 1191CONFIG_CRYPTO_MANAGER=y
1144# CONFIG_CRYPTO_GF128MUL is not set 1192# CONFIG_CRYPTO_GF128MUL is not set
1145# CONFIG_CRYPTO_NULL is not set 1193# CONFIG_CRYPTO_NULL is not set
@@ -1212,6 +1260,11 @@ CONFIG_CRYPTO_DES=y
1212# 1260#
1213# CONFIG_CRYPTO_DEFLATE is not set 1261# CONFIG_CRYPTO_DEFLATE is not set
1214# CONFIG_CRYPTO_LZO is not set 1262# CONFIG_CRYPTO_LZO is not set
1263
1264#
1265# Random Number Generation
1266#
1267# CONFIG_CRYPTO_ANSI_CPRNG is not set
1215CONFIG_CRYPTO_HW=y 1268CONFIG_CRYPTO_HW=y
1216# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1269# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1217# CONFIG_CRYPTO_DEV_TALITOS is not set 1270# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
index eda45bb8a13f..635588319e0d 100644
--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 07:21:42 2008 4# Sat Nov 8 12:40:13 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -110,7 +110,9 @@ CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 116CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
116CONFIG_SLUB=y 118CONFIG_SLUB=y
@@ -124,10 +126,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 126CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
@@ -160,6 +158,7 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 159CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 160CONFIG_CLASSIC_RCU=y
161# CONFIG_FREEZER is not set
163 162
164# 163#
165# Platform support 164# Platform support
@@ -194,8 +193,10 @@ CONFIG_PPC_I8259=y
194# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
195# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
196# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
196# CONFIG_QUICC_ENGINE is not set
197# CONFIG_CPM2 is not set 197# CONFIG_CPM2 is not set
198CONFIG_FSL_ULI1575=y 198CONFIG_FSL_ULI1575=y
199# CONFIG_MPC8xxx_GPIO is not set
199 200
200# 201#
201# Kernel options 202# Kernel options
@@ -215,6 +216,8 @@ CONFIG_PREEMPT_NONE=y
215# CONFIG_PREEMPT_VOLUNTARY is not set 216# CONFIG_PREEMPT_VOLUNTARY is not set
216# CONFIG_PREEMPT is not set 217# CONFIG_PREEMPT is not set
217CONFIG_BINFMT_ELF=y 218CONFIG_BINFMT_ELF=y
219# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
220# CONFIG_HAVE_AOUT is not set
218CONFIG_BINFMT_MISC=m 221CONFIG_BINFMT_MISC=m
219CONFIG_MATH_EMULATION=y 222CONFIG_MATH_EMULATION=y
220# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
@@ -229,15 +232,15 @@ CONFIG_FLATMEM_MANUAL=y
229# CONFIG_SPARSEMEM_MANUAL is not set 232# CONFIG_SPARSEMEM_MANUAL is not set
230CONFIG_FLATMEM=y 233CONFIG_FLATMEM=y
231CONFIG_FLAT_NODE_MEM_MAP=y 234CONFIG_FLAT_NODE_MEM_MAP=y
232# CONFIG_SPARSEMEM_STATIC is not set
233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
234CONFIG_PAGEFLAGS_EXTENDED=y 235CONFIG_PAGEFLAGS_EXTENDED=y
235CONFIG_SPLIT_PTLOCK_CPUS=4 236CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y 237CONFIG_MIGRATION=y
237# CONFIG_RESOURCES_64BIT is not set 238# CONFIG_RESOURCES_64BIT is not set
239# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 240CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y
241CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
242CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
243# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -261,7 +264,7 @@ CONFIG_PCI_SYSCALL=y
261# CONFIG_PCIEPORTBUS is not set 264# CONFIG_PCIEPORTBUS is not set
262CONFIG_ARCH_SUPPORTS_MSI=y 265CONFIG_ARCH_SUPPORTS_MSI=y
263# CONFIG_PCI_MSI is not set 266# CONFIG_PCI_MSI is not set
264CONFIG_PCI_LEGACY=y 267# CONFIG_PCI_LEGACY is not set
265# CONFIG_PCI_DEBUG is not set 268# CONFIG_PCI_DEBUG is not set
266# CONFIG_PCCARD is not set 269# CONFIG_PCCARD is not set
267# CONFIG_HOTPLUG_PCI is not set 270# CONFIG_HOTPLUG_PCI is not set
@@ -363,6 +366,7 @@ CONFIG_SCTP_HMAC_MD5=y
363# CONFIG_TIPC is not set 366# CONFIG_TIPC is not set
364# CONFIG_ATM is not set 367# CONFIG_ATM is not set
365# CONFIG_BRIDGE is not set 368# CONFIG_BRIDGE is not set
369# CONFIG_NET_DSA is not set
366# CONFIG_VLAN_8021Q is not set 370# CONFIG_VLAN_8021Q is not set
367# CONFIG_DECNET is not set 371# CONFIG_DECNET is not set
368# CONFIG_LLC2 is not set 372# CONFIG_LLC2 is not set
@@ -383,12 +387,11 @@ CONFIG_SCTP_HMAC_MD5=y
383# CONFIG_IRDA is not set 387# CONFIG_IRDA is not set
384# CONFIG_BT is not set 388# CONFIG_BT is not set
385# CONFIG_AF_RXRPC is not set 389# CONFIG_AF_RXRPC is not set
390# CONFIG_PHONET is not set
386CONFIG_FIB_RULES=y 391CONFIG_FIB_RULES=y
387 392CONFIG_WIRELESS=y
388#
389# Wireless
390#
391# CONFIG_CFG80211 is not set 393# CONFIG_CFG80211 is not set
394CONFIG_WIRELESS_OLD_REGULATORY=y
392# CONFIG_WIRELESS_EXT is not set 395# CONFIG_WIRELESS_EXT is not set
393# CONFIG_MAC80211 is not set 396# CONFIG_MAC80211 is not set
394# CONFIG_IEEE80211 is not set 397# CONFIG_IEEE80211 is not set
@@ -634,8 +637,12 @@ CONFIG_MII=y
634# CONFIG_IBM_NEW_EMAC_RGMII is not set 637# CONFIG_IBM_NEW_EMAC_RGMII is not set
635# CONFIG_IBM_NEW_EMAC_TAH is not set 638# CONFIG_IBM_NEW_EMAC_TAH is not set
636# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 639# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
640# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
641# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
642# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
637# CONFIG_NET_PCI is not set 643# CONFIG_NET_PCI is not set
638# CONFIG_B44 is not set 644# CONFIG_B44 is not set
645# CONFIG_ATL2 is not set
639CONFIG_NETDEV_1000=y 646CONFIG_NETDEV_1000=y
640# CONFIG_ACENIC is not set 647# CONFIG_ACENIC is not set
641# CONFIG_DL2K is not set 648# CONFIG_DL2K is not set
@@ -657,18 +664,22 @@ CONFIG_GIANFAR=y
657# CONFIG_QLA3XXX is not set 664# CONFIG_QLA3XXX is not set
658# CONFIG_ATL1 is not set 665# CONFIG_ATL1 is not set
659# CONFIG_ATL1E is not set 666# CONFIG_ATL1E is not set
667# CONFIG_JME is not set
660CONFIG_NETDEV_10000=y 668CONFIG_NETDEV_10000=y
661# CONFIG_CHELSIO_T1 is not set 669# CONFIG_CHELSIO_T1 is not set
662# CONFIG_CHELSIO_T3 is not set 670# CONFIG_CHELSIO_T3 is not set
671# CONFIG_ENIC is not set
663# CONFIG_IXGBE is not set 672# CONFIG_IXGBE is not set
664# CONFIG_IXGB is not set 673# CONFIG_IXGB is not set
665# CONFIG_S2IO is not set 674# CONFIG_S2IO is not set
666# CONFIG_MYRI10GE is not set 675# CONFIG_MYRI10GE is not set
667# CONFIG_NETXEN_NIC is not set 676# CONFIG_NETXEN_NIC is not set
668# CONFIG_NIU is not set 677# CONFIG_NIU is not set
678# CONFIG_MLX4_EN is not set
669# CONFIG_MLX4_CORE is not set 679# CONFIG_MLX4_CORE is not set
670# CONFIG_TEHUTI is not set 680# CONFIG_TEHUTI is not set
671# CONFIG_BNX2X is not set 681# CONFIG_BNX2X is not set
682# CONFIG_QLGE is not set
672# CONFIG_SFC is not set 683# CONFIG_SFC is not set
673# CONFIG_TR is not set 684# CONFIG_TR is not set
674 685
@@ -703,7 +714,7 @@ CONFIG_NETDEV_10000=y
703# Input device support 714# Input device support
704# 715#
705CONFIG_INPUT=y 716CONFIG_INPUT=y
706# CONFIG_INPUT_FF_MEMLESS is not set 717CONFIG_INPUT_FF_MEMLESS=m
707# CONFIG_INPUT_POLLDEV is not set 718# CONFIG_INPUT_POLLDEV is not set
708 719
709# 720#
@@ -872,6 +883,17 @@ CONFIG_SSB_POSSIBLE=y
872# CONFIG_MFD_SM501 is not set 883# CONFIG_MFD_SM501 is not set
873# CONFIG_HTC_PASIC3 is not set 884# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set 885# CONFIG_MFD_TMIO is not set
886# CONFIG_PMIC_DA903X is not set
887# CONFIG_MFD_WM8400 is not set
888# CONFIG_MFD_WM8350_I2C is not set
889
890#
891# Voltage and Current regulators
892#
893# CONFIG_REGULATOR is not set
894# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
895# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
896# CONFIG_REGULATOR_BQ24022 is not set
875 897
876# 898#
877# Multimedia devices 899# Multimedia devices
@@ -912,7 +934,6 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
912# CONFIG_DVB_USB is not set 934# CONFIG_DVB_USB is not set
913# CONFIG_DVB_TTUSB_BUDGET is not set 935# CONFIG_DVB_TTUSB_BUDGET is not set
914# CONFIG_DVB_TTUSB_DEC is not set 936# CONFIG_DVB_TTUSB_DEC is not set
915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set 937# CONFIG_DVB_SIANO_SMS1XXX is not set
917 938
918# 939#
@@ -930,6 +951,11 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
930# CONFIG_DVB_PLUTO2 is not set 951# CONFIG_DVB_PLUTO2 is not set
931 952
932# 953#
954# Supported SDMC DM1105 Adapters
955#
956# CONFIG_DVB_DM1105 is not set
957
958#
933# Supported DVB Frontends 959# Supported DVB Frontends
934# 960#
935 961
@@ -945,6 +971,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
945# CONFIG_DVB_CX24123 is not set 971# CONFIG_DVB_CX24123 is not set
946# CONFIG_DVB_MT312 is not set 972# CONFIG_DVB_MT312 is not set
947# CONFIG_DVB_S5H1420 is not set 973# CONFIG_DVB_S5H1420 is not set
974# CONFIG_DVB_STV0288 is not set
975# CONFIG_DVB_STB6000 is not set
948# CONFIG_DVB_STV0299 is not set 976# CONFIG_DVB_STV0299 is not set
949# CONFIG_DVB_TDA8083 is not set 977# CONFIG_DVB_TDA8083 is not set
950# CONFIG_DVB_TDA10086 is not set 978# CONFIG_DVB_TDA10086 is not set
@@ -952,6 +980,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
952# CONFIG_DVB_TUNER_ITD1000 is not set 980# CONFIG_DVB_TUNER_ITD1000 is not set
953# CONFIG_DVB_TDA826X is not set 981# CONFIG_DVB_TDA826X is not set
954# CONFIG_DVB_TUA6100 is not set 982# CONFIG_DVB_TUA6100 is not set
983# CONFIG_DVB_CX24116 is not set
984# CONFIG_DVB_SI21XX is not set
955 985
956# 986#
957# DVB-T (terrestrial) frontends 987# DVB-T (terrestrial) frontends
@@ -1004,6 +1034,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1004# CONFIG_DVB_LNBP21 is not set 1034# CONFIG_DVB_LNBP21 is not set
1005# CONFIG_DVB_ISL6405 is not set 1035# CONFIG_DVB_ISL6405 is not set
1006# CONFIG_DVB_ISL6421 is not set 1036# CONFIG_DVB_ISL6421 is not set
1037# CONFIG_DVB_LGS8GL5 is not set
1038
1039#
1040# Tools to develop new frontends
1041#
1042# CONFIG_DVB_DUMMY_FE is not set
1043# CONFIG_DVB_AF9013 is not set
1007CONFIG_DAB=y 1044CONFIG_DAB=y
1008# CONFIG_USB_DABUSB is not set 1045# CONFIG_USB_DABUSB is not set
1009 1046
@@ -1029,6 +1066,7 @@ CONFIG_VGA_CONSOLE=y
1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1066# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1030CONFIG_DUMMY_CONSOLE=y 1067CONFIG_DUMMY_CONSOLE=y
1031CONFIG_SOUND=y 1068CONFIG_SOUND=y
1069CONFIG_SOUND_OSS_CORE=y
1032CONFIG_SND=y 1070CONFIG_SND=y
1033CONFIG_SND_TIMER=y 1071CONFIG_SND_TIMER=y
1034CONFIG_SND_PCM=y 1072CONFIG_SND_PCM=y
@@ -1129,9 +1167,36 @@ CONFIG_HID=y
1129# USB Input Devices 1167# USB Input Devices
1130# 1168#
1131CONFIG_USB_HID=y 1169CONFIG_USB_HID=y
1132# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1170# CONFIG_HID_PID is not set
1133# CONFIG_HID_FF is not set
1134# CONFIG_USB_HIDDEV is not set 1171# CONFIG_USB_HIDDEV is not set
1172
1173#
1174# Special HID drivers
1175#
1176CONFIG_HID_COMPAT=y
1177CONFIG_HID_A4TECH=y
1178CONFIG_HID_APPLE=y
1179CONFIG_HID_BELKIN=y
1180CONFIG_HID_BRIGHT=y
1181CONFIG_HID_CHERRY=y
1182CONFIG_HID_CHICONY=y
1183CONFIG_HID_CYPRESS=y
1184CONFIG_HID_DELL=y
1185CONFIG_HID_EZKEY=y
1186CONFIG_HID_GYRATION=y
1187CONFIG_HID_LOGITECH=y
1188# CONFIG_LOGITECH_FF is not set
1189# CONFIG_LOGIRUMBLEPAD2_FF is not set
1190CONFIG_HID_MICROSOFT=y
1191CONFIG_HID_MONTEREY=y
1192CONFIG_HID_PANTHERLORD=y
1193# CONFIG_PANTHERLORD_FF is not set
1194CONFIG_HID_PETALYNX=y
1195CONFIG_HID_SAMSUNG=y
1196CONFIG_HID_SONY=y
1197CONFIG_HID_SUNPLUS=y
1198CONFIG_THRUSTMASTER_FF=m
1199CONFIG_ZEROPLUS_FF=m
1135CONFIG_USB_SUPPORT=y 1200CONFIG_USB_SUPPORT=y
1136CONFIG_USB_ARCH_HAS_HCD=y 1201CONFIG_USB_ARCH_HAS_HCD=y
1137CONFIG_USB_ARCH_HAS_OHCI=y 1202CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1150,6 +1215,8 @@ CONFIG_USB_DEVICE_CLASS=y
1150# CONFIG_USB_OTG_WHITELIST is not set 1215# CONFIG_USB_OTG_WHITELIST is not set
1151# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1216# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1152CONFIG_USB_MON=y 1217CONFIG_USB_MON=y
1218# CONFIG_USB_WUSB is not set
1219# CONFIG_USB_WUSB_CBAF is not set
1153 1220
1154# 1221#
1155# USB Host Controller Drivers 1222# USB Host Controller Drivers
@@ -1173,6 +1240,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1173# CONFIG_USB_UHCI_HCD is not set 1240# CONFIG_USB_UHCI_HCD is not set
1174# CONFIG_USB_SL811_HCD is not set 1241# CONFIG_USB_SL811_HCD is not set
1175# CONFIG_USB_R8A66597_HCD is not set 1242# CONFIG_USB_R8A66597_HCD is not set
1243# CONFIG_USB_WHCI_HCD is not set
1244# CONFIG_USB_HWA_HCD is not set
1176 1245
1177# 1246#
1178# USB Device Class drivers 1247# USB Device Class drivers
@@ -1180,6 +1249,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1180# CONFIG_USB_ACM is not set 1249# CONFIG_USB_ACM is not set
1181# CONFIG_USB_PRINTER is not set 1250# CONFIG_USB_PRINTER is not set
1182# CONFIG_USB_WDM is not set 1251# CONFIG_USB_WDM is not set
1252# CONFIG_USB_TMC is not set
1183 1253
1184# 1254#
1185# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1255# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1201,7 +1271,6 @@ CONFIG_USB_STORAGE=y
1201# CONFIG_USB_STORAGE_ALAUDA is not set 1271# CONFIG_USB_STORAGE_ALAUDA is not set
1202# CONFIG_USB_STORAGE_ONETOUCH is not set 1272# CONFIG_USB_STORAGE_ONETOUCH is not set
1203# CONFIG_USB_STORAGE_KARMA is not set 1273# CONFIG_USB_STORAGE_KARMA is not set
1204# CONFIG_USB_STORAGE_SIERRA is not set
1205# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1274# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1206# CONFIG_USB_LIBUSUAL is not set 1275# CONFIG_USB_LIBUSUAL is not set
1207 1276
@@ -1222,6 +1291,7 @@ CONFIG_USB_STORAGE=y
1222# CONFIG_USB_EMI62 is not set 1291# CONFIG_USB_EMI62 is not set
1223# CONFIG_USB_EMI26 is not set 1292# CONFIG_USB_EMI26 is not set
1224# CONFIG_USB_ADUTUX is not set 1293# CONFIG_USB_ADUTUX is not set
1294# CONFIG_USB_SEVSEG is not set
1225# CONFIG_USB_RIO500 is not set 1295# CONFIG_USB_RIO500 is not set
1226# CONFIG_USB_LEGOTOWER is not set 1296# CONFIG_USB_LEGOTOWER is not set
1227# CONFIG_USB_LCD is not set 1297# CONFIG_USB_LCD is not set
@@ -1239,7 +1309,9 @@ CONFIG_USB_STORAGE=y
1239# CONFIG_USB_IOWARRIOR is not set 1309# CONFIG_USB_IOWARRIOR is not set
1240# CONFIG_USB_TEST is not set 1310# CONFIG_USB_TEST is not set
1241# CONFIG_USB_ISIGHTFW is not set 1311# CONFIG_USB_ISIGHTFW is not set
1312# CONFIG_USB_VST is not set
1242# CONFIG_USB_GADGET is not set 1313# CONFIG_USB_GADGET is not set
1314# CONFIG_UWB is not set
1243# CONFIG_MMC is not set 1315# CONFIG_MMC is not set
1244# CONFIG_MEMSTICK is not set 1316# CONFIG_MEMSTICK is not set
1245# CONFIG_NEW_LEDS is not set 1317# CONFIG_NEW_LEDS is not set
@@ -1285,12 +1357,15 @@ CONFIG_RTC_INTF_DEV=y
1285# Platform RTC drivers 1357# Platform RTC drivers
1286# 1358#
1287CONFIG_RTC_DRV_CMOS=y 1359CONFIG_RTC_DRV_CMOS=y
1360# CONFIG_RTC_DRV_DS1286 is not set
1288# CONFIG_RTC_DRV_DS1511 is not set 1361# CONFIG_RTC_DRV_DS1511 is not set
1289# CONFIG_RTC_DRV_DS1553 is not set 1362# CONFIG_RTC_DRV_DS1553 is not set
1290# CONFIG_RTC_DRV_DS1742 is not set 1363# CONFIG_RTC_DRV_DS1742 is not set
1291# CONFIG_RTC_DRV_STK17TA8 is not set 1364# CONFIG_RTC_DRV_STK17TA8 is not set
1292# CONFIG_RTC_DRV_M48T86 is not set 1365# CONFIG_RTC_DRV_M48T86 is not set
1366# CONFIG_RTC_DRV_M48T35 is not set
1293# CONFIG_RTC_DRV_M48T59 is not set 1367# CONFIG_RTC_DRV_M48T59 is not set
1368# CONFIG_RTC_DRV_BQ4802 is not set
1294# CONFIG_RTC_DRV_V3020 is not set 1369# CONFIG_RTC_DRV_V3020 is not set
1295 1370
1296# 1371#
@@ -1299,6 +1374,7 @@ CONFIG_RTC_DRV_CMOS=y
1299# CONFIG_RTC_DRV_PPC is not set 1374# CONFIG_RTC_DRV_PPC is not set
1300# CONFIG_DMADEVICES is not set 1375# CONFIG_DMADEVICES is not set
1301# CONFIG_UIO is not set 1376# CONFIG_UIO is not set
1377# CONFIG_STAGING is not set
1302 1378
1303# 1379#
1304# File systems 1380# File systems
@@ -1310,12 +1386,13 @@ CONFIG_EXT3_FS=y
1310CONFIG_EXT3_FS_XATTR=y 1386CONFIG_EXT3_FS_XATTR=y
1311# CONFIG_EXT3_FS_POSIX_ACL is not set 1387# CONFIG_EXT3_FS_POSIX_ACL is not set
1312# CONFIG_EXT3_FS_SECURITY is not set 1388# CONFIG_EXT3_FS_SECURITY is not set
1313# CONFIG_EXT4DEV_FS is not set 1389# CONFIG_EXT4_FS is not set
1314CONFIG_JBD=y 1390CONFIG_JBD=y
1315CONFIG_FS_MBCACHE=y 1391CONFIG_FS_MBCACHE=y
1316# CONFIG_REISERFS_FS is not set 1392# CONFIG_REISERFS_FS is not set
1317# CONFIG_JFS_FS is not set 1393# CONFIG_JFS_FS is not set
1318# CONFIG_FS_POSIX_ACL is not set 1394# CONFIG_FS_POSIX_ACL is not set
1395CONFIG_FILE_LOCKING=y
1319# CONFIG_XFS_FS is not set 1396# CONFIG_XFS_FS is not set
1320# CONFIG_OCFS2_FS is not set 1397# CONFIG_OCFS2_FS is not set
1321CONFIG_DNOTIFY=y 1398CONFIG_DNOTIFY=y
@@ -1353,6 +1430,7 @@ CONFIG_NTFS_FS=y
1353CONFIG_PROC_FS=y 1430CONFIG_PROC_FS=y
1354CONFIG_PROC_KCORE=y 1431CONFIG_PROC_KCORE=y
1355CONFIG_PROC_SYSCTL=y 1432CONFIG_PROC_SYSCTL=y
1433CONFIG_PROC_PAGE_MONITOR=y
1356CONFIG_SYSFS=y 1434CONFIG_SYSFS=y
1357CONFIG_TMPFS=y 1435CONFIG_TMPFS=y
1358# CONFIG_TMPFS_POSIX_ACL is not set 1436# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1397,6 +1475,7 @@ CONFIG_EXPORTFS=y
1397CONFIG_NFS_COMMON=y 1475CONFIG_NFS_COMMON=y
1398CONFIG_SUNRPC=y 1476CONFIG_SUNRPC=y
1399CONFIG_SUNRPC_GSS=y 1477CONFIG_SUNRPC_GSS=y
1478# CONFIG_SUNRPC_REGISTER_V4 is not set
1400CONFIG_RPCSEC_GSS_KRB5=y 1479CONFIG_RPCSEC_GSS_KRB5=y
1401# CONFIG_RPCSEC_GSS_SPKM3 is not set 1480# CONFIG_RPCSEC_GSS_SPKM3 is not set
1402# CONFIG_SMB_FS is not set 1481# CONFIG_SMB_FS is not set
@@ -1472,7 +1551,6 @@ CONFIG_NLS_UTF8=m
1472# Library routines 1551# Library routines
1473# 1552#
1474CONFIG_BITREVERSE=y 1553CONFIG_BITREVERSE=y
1475# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1476# CONFIG_CRC_CCITT is not set 1554# CONFIG_CRC_CCITT is not set
1477# CONFIG_CRC16 is not set 1555# CONFIG_CRC16 is not set
1478CONFIG_CRC_T10DIF=y 1556CONFIG_CRC_T10DIF=y
@@ -1526,15 +1604,23 @@ CONFIG_DEBUG_INFO=y
1526# CONFIG_DEBUG_SG is not set 1604# CONFIG_DEBUG_SG is not set
1527# CONFIG_BOOT_PRINTK_DELAY is not set 1605# CONFIG_BOOT_PRINTK_DELAY is not set
1528# CONFIG_RCU_TORTURE_TEST is not set 1606# CONFIG_RCU_TORTURE_TEST is not set
1607# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1529# CONFIG_BACKTRACE_SELF_TEST is not set 1608# CONFIG_BACKTRACE_SELF_TEST is not set
1609# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1530# CONFIG_FAULT_INJECTION is not set 1610# CONFIG_FAULT_INJECTION is not set
1531# CONFIG_LATENCYTOP is not set 1611# CONFIG_LATENCYTOP is not set
1532CONFIG_SYSCTL_SYSCALL_CHECK=y 1612CONFIG_SYSCTL_SYSCALL_CHECK=y
1533CONFIG_HAVE_FTRACE=y 1613CONFIG_HAVE_FUNCTION_TRACER=y
1534CONFIG_HAVE_DYNAMIC_FTRACE=y 1614
1535# CONFIG_FTRACE is not set 1615#
1616# Tracers
1617#
1618# CONFIG_FUNCTION_TRACER is not set
1536# CONFIG_SCHED_TRACER is not set 1619# CONFIG_SCHED_TRACER is not set
1537# CONFIG_CONTEXT_SWITCH_TRACER is not set 1620# CONFIG_CONTEXT_SWITCH_TRACER is not set
1621# CONFIG_BOOT_TRACER is not set
1622# CONFIG_STACK_TRACER is not set
1623# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1538# CONFIG_SAMPLES is not set 1624# CONFIG_SAMPLES is not set
1539CONFIG_HAVE_ARCH_KGDB=y 1625CONFIG_HAVE_ARCH_KGDB=y
1540# CONFIG_KGDB is not set 1626# CONFIG_KGDB is not set
@@ -1543,6 +1629,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1543# CONFIG_DEBUG_PAGEALLOC is not set 1629# CONFIG_DEBUG_PAGEALLOC is not set
1544# CONFIG_CODE_PATCHING_SELFTEST is not set 1630# CONFIG_CODE_PATCHING_SELFTEST is not set
1545# CONFIG_FTR_FIXUP_SELFTEST is not set 1631# CONFIG_FTR_FIXUP_SELFTEST is not set
1632# CONFIG_MSI_BITMAP_SELFTEST is not set
1546# CONFIG_XMON is not set 1633# CONFIG_XMON is not set
1547# CONFIG_IRQSTACKS is not set 1634# CONFIG_IRQSTACKS is not set
1548# CONFIG_BDI_SWITCH is not set 1635# CONFIG_BDI_SWITCH is not set
@@ -1553,16 +1640,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1553# 1640#
1554# CONFIG_KEYS is not set 1641# CONFIG_KEYS is not set
1555# CONFIG_SECURITY is not set 1642# CONFIG_SECURITY is not set
1643# CONFIG_SECURITYFS is not set
1556# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1644# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1557CONFIG_CRYPTO=y 1645CONFIG_CRYPTO=y
1558 1646
1559# 1647#
1560# Crypto core or helper 1648# Crypto core or helper
1561# 1649#
1650# CONFIG_CRYPTO_FIPS is not set
1562CONFIG_CRYPTO_ALGAPI=y 1651CONFIG_CRYPTO_ALGAPI=y
1563CONFIG_CRYPTO_AEAD=y 1652CONFIG_CRYPTO_AEAD=y
1564CONFIG_CRYPTO_BLKCIPHER=y 1653CONFIG_CRYPTO_BLKCIPHER=y
1565CONFIG_CRYPTO_HASH=y 1654CONFIG_CRYPTO_HASH=y
1655CONFIG_CRYPTO_RNG=y
1566CONFIG_CRYPTO_MANAGER=y 1656CONFIG_CRYPTO_MANAGER=y
1567# CONFIG_CRYPTO_GF128MUL is not set 1657# CONFIG_CRYPTO_GF128MUL is not set
1568# CONFIG_CRYPTO_NULL is not set 1658# CONFIG_CRYPTO_NULL is not set
@@ -1635,6 +1725,11 @@ CONFIG_CRYPTO_DES=y
1635# 1725#
1636# CONFIG_CRYPTO_DEFLATE is not set 1726# CONFIG_CRYPTO_DEFLATE is not set
1637# CONFIG_CRYPTO_LZO is not set 1727# CONFIG_CRYPTO_LZO is not set
1728
1729#
1730# Random Number Generation
1731#
1732# CONFIG_CRYPTO_ANSI_CPRNG is not set
1638CONFIG_CRYPTO_HW=y 1733CONFIG_CRYPTO_HW=y
1639# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1734# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1640CONFIG_CRYPTO_DEV_TALITOS=y 1735CONFIG_CRYPTO_DEV_TALITOS=y
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index 97f3c4fe440b..8769359dfe6a 100644
--- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:34 2008 4# Sat Nov 8 12:40:14 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -107,7 +107,9 @@ CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 107CONFIG_TIMERFD=y
108CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
109CONFIG_SHMEM=y 109CONFIG_SHMEM=y
110CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 113CONFIG_SLUB_DEBUG=y
112# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
113CONFIG_SLUB=y 115CONFIG_SLUB=y
@@ -120,10 +122,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 124CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
@@ -150,6 +148,7 @@ CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_FREEZER is not set
153 152
154# 153#
155# Platform support 154# Platform support
@@ -184,8 +183,10 @@ CONFIG_PPC_I8259=y
184# CONFIG_PPC_INDIRECT_IO is not set 183# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
186# CONFIG_QUICC_ENGINE is not set
187# CONFIG_CPM2 is not set 187# CONFIG_CPM2 is not set
188# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
189# CONFIG_MPC8xxx_GPIO is not set
189 190
190# 191#
191# Kernel options 192# Kernel options
@@ -205,6 +206,8 @@ CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 206# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 207# CONFIG_PREEMPT is not set
207CONFIG_BINFMT_ELF=y 208CONFIG_BINFMT_ELF=y
209# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
210# CONFIG_HAVE_AOUT is not set
208CONFIG_BINFMT_MISC=y 211CONFIG_BINFMT_MISC=y
209CONFIG_MATH_EMULATION=y 212CONFIG_MATH_EMULATION=y
210# CONFIG_IOMMU_HELPER is not set 213# CONFIG_IOMMU_HELPER is not set
@@ -219,15 +222,15 @@ CONFIG_FLATMEM_MANUAL=y
219# CONFIG_SPARSEMEM_MANUAL is not set 222# CONFIG_SPARSEMEM_MANUAL is not set
220CONFIG_FLATMEM=y 223CONFIG_FLATMEM=y
221CONFIG_FLAT_NODE_MEM_MAP=y 224CONFIG_FLAT_NODE_MEM_MAP=y
222# CONFIG_SPARSEMEM_STATIC is not set
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y 227CONFIG_MIGRATION=y
227# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y
231CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -250,7 +253,7 @@ CONFIG_PCI_SYSCALL=y
250# CONFIG_PCIEPORTBUS is not set 253# CONFIG_PCIEPORTBUS is not set
251CONFIG_ARCH_SUPPORTS_MSI=y 254CONFIG_ARCH_SUPPORTS_MSI=y
252# CONFIG_PCI_MSI is not set 255# CONFIG_PCI_MSI is not set
253CONFIG_PCI_LEGACY=y 256# CONFIG_PCI_LEGACY is not set
254# CONFIG_PCI_DEBUG is not set 257# CONFIG_PCI_DEBUG is not set
255# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
256# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
@@ -320,6 +323,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
320# CONFIG_TIPC is not set 323# CONFIG_TIPC is not set
321# CONFIG_ATM is not set 324# CONFIG_ATM is not set
322# CONFIG_BRIDGE is not set 325# CONFIG_BRIDGE is not set
326# CONFIG_NET_DSA is not set
323# CONFIG_VLAN_8021Q is not set 327# CONFIG_VLAN_8021Q is not set
324# CONFIG_DECNET is not set 328# CONFIG_DECNET is not set
325# CONFIG_LLC2 is not set 329# CONFIG_LLC2 is not set
@@ -340,11 +344,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_IRDA is not set 344# CONFIG_IRDA is not set
341# CONFIG_BT is not set 345# CONFIG_BT is not set
342# CONFIG_AF_RXRPC is not set 346# CONFIG_AF_RXRPC is not set
343 347# CONFIG_PHONET is not set
344# 348CONFIG_WIRELESS=y
345# Wireless
346#
347# CONFIG_CFG80211 is not set 349# CONFIG_CFG80211 is not set
350CONFIG_WIRELESS_OLD_REGULATORY=y
348# CONFIG_WIRELESS_EXT is not set 351# CONFIG_WIRELESS_EXT is not set
349# CONFIG_MAC80211 is not set 352# CONFIG_MAC80211 is not set
350# CONFIG_IEEE80211 is not set 353# CONFIG_IEEE80211 is not set
@@ -396,18 +399,17 @@ CONFIG_MISC_DEVICES=y
396# CONFIG_HP_ILO is not set 399# CONFIG_HP_ILO is not set
397CONFIG_HAVE_IDE=y 400CONFIG_HAVE_IDE=y
398CONFIG_IDE=y 401CONFIG_IDE=y
399CONFIG_BLK_DEV_IDE=y
400 402
401# 403#
402# Please see Documentation/ide/ide.txt for help/info on IDE drives 404# Please see Documentation/ide/ide.txt for help/info on IDE drives
403# 405#
404CONFIG_IDE_TIMINGS=y 406CONFIG_IDE_TIMINGS=y
405# CONFIG_BLK_DEV_IDE_SATA is not set 407# CONFIG_BLK_DEV_IDE_SATA is not set
406# CONFIG_BLK_DEV_IDEDISK is not set 408CONFIG_IDE_GD=y
407# CONFIG_IDEDISK_MULTI_MODE is not set 409CONFIG_IDE_GD_ATA=y
410# CONFIG_IDE_GD_ATAPI is not set
408# CONFIG_BLK_DEV_IDECD is not set 411# CONFIG_BLK_DEV_IDECD is not set
409# CONFIG_BLK_DEV_IDETAPE is not set 412# CONFIG_BLK_DEV_IDETAPE is not set
410# CONFIG_BLK_DEV_IDEFLOPPY is not set
411# CONFIG_IDE_TASK_IOCTL is not set 413# CONFIG_IDE_TASK_IOCTL is not set
412CONFIG_IDE_PROC_FS=y 414CONFIG_IDE_PROC_FS=y
413 415
@@ -510,13 +512,16 @@ CONFIG_MII=y
510# CONFIG_IBM_NEW_EMAC_RGMII is not set 512# CONFIG_IBM_NEW_EMAC_RGMII is not set
511# CONFIG_IBM_NEW_EMAC_TAH is not set 513# CONFIG_IBM_NEW_EMAC_TAH is not set
512# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 514# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
515# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
516# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
517# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
513# CONFIG_NET_PCI is not set 518# CONFIG_NET_PCI is not set
514# CONFIG_B44 is not set 519# CONFIG_B44 is not set
520# CONFIG_ATL2 is not set
515CONFIG_NETDEV_1000=y 521CONFIG_NETDEV_1000=y
516# CONFIG_ACENIC is not set 522# CONFIG_ACENIC is not set
517# CONFIG_DL2K is not set 523# CONFIG_DL2K is not set
518CONFIG_E1000=y 524CONFIG_E1000=y
519# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
520# CONFIG_E1000E is not set 525# CONFIG_E1000E is not set
521# CONFIG_IP1000 is not set 526# CONFIG_IP1000 is not set
522# CONFIG_IGB is not set 527# CONFIG_IGB is not set
@@ -534,18 +539,22 @@ CONFIG_GIANFAR=y
534# CONFIG_QLA3XXX is not set 539# CONFIG_QLA3XXX is not set
535# CONFIG_ATL1 is not set 540# CONFIG_ATL1 is not set
536# CONFIG_ATL1E is not set 541# CONFIG_ATL1E is not set
542# CONFIG_JME is not set
537CONFIG_NETDEV_10000=y 543CONFIG_NETDEV_10000=y
538# CONFIG_CHELSIO_T1 is not set 544# CONFIG_CHELSIO_T1 is not set
539# CONFIG_CHELSIO_T3 is not set 545# CONFIG_CHELSIO_T3 is not set
546# CONFIG_ENIC is not set
540# CONFIG_IXGBE is not set 547# CONFIG_IXGBE is not set
541# CONFIG_IXGB is not set 548# CONFIG_IXGB is not set
542# CONFIG_S2IO is not set 549# CONFIG_S2IO is not set
543# CONFIG_MYRI10GE is not set 550# CONFIG_MYRI10GE is not set
544# CONFIG_NETXEN_NIC is not set 551# CONFIG_NETXEN_NIC is not set
545# CONFIG_NIU is not set 552# CONFIG_NIU is not set
553# CONFIG_MLX4_EN is not set
546# CONFIG_MLX4_CORE is not set 554# CONFIG_MLX4_CORE is not set
547# CONFIG_TEHUTI is not set 555# CONFIG_TEHUTI is not set
548# CONFIG_BNX2X is not set 556# CONFIG_BNX2X is not set
557# CONFIG_QLGE is not set
549# CONFIG_SFC is not set 558# CONFIG_SFC is not set
550# CONFIG_TR is not set 559# CONFIG_TR is not set
551 560
@@ -679,6 +688,14 @@ CONFIG_SSB_POSSIBLE=y
679# CONFIG_MFD_TMIO is not set 688# CONFIG_MFD_TMIO is not set
680 689
681# 690#
691# Voltage and Current regulators
692#
693# CONFIG_REGULATOR is not set
694# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
695# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
696# CONFIG_REGULATOR_BQ24022 is not set
697
698#
682# Multimedia devices 699# Multimedia devices
683# 700#
684 701
@@ -713,6 +730,12 @@ CONFIG_HID_SUPPORT=y
713CONFIG_HID=y 730CONFIG_HID=y
714# CONFIG_HID_DEBUG is not set 731# CONFIG_HID_DEBUG is not set
715# CONFIG_HIDRAW is not set 732# CONFIG_HIDRAW is not set
733# CONFIG_HID_PID is not set
734
735#
736# Special HID drivers
737#
738CONFIG_HID_COMPAT=y
716CONFIG_USB_SUPPORT=y 739CONFIG_USB_SUPPORT=y
717CONFIG_USB_ARCH_HAS_HCD=y 740CONFIG_USB_ARCH_HAS_HCD=y
718CONFIG_USB_ARCH_HAS_OHCI=y 741CONFIG_USB_ARCH_HAS_OHCI=y
@@ -729,6 +752,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
729# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 752# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
730# 753#
731# CONFIG_USB_GADGET is not set 754# CONFIG_USB_GADGET is not set
755# CONFIG_UWB is not set
732# CONFIG_MMC is not set 756# CONFIG_MMC is not set
733# CONFIG_MEMSTICK is not set 757# CONFIG_MEMSTICK is not set
734# CONFIG_NEW_LEDS is not set 758# CONFIG_NEW_LEDS is not set
@@ -738,6 +762,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
738# CONFIG_RTC_CLASS is not set 762# CONFIG_RTC_CLASS is not set
739# CONFIG_DMADEVICES is not set 763# CONFIG_DMADEVICES is not set
740# CONFIG_UIO is not set 764# CONFIG_UIO is not set
765# CONFIG_STAGING is not set
741 766
742# 767#
743# File systems 768# File systems
@@ -749,12 +774,13 @@ CONFIG_EXT3_FS=y
749CONFIG_EXT3_FS_XATTR=y 774CONFIG_EXT3_FS_XATTR=y
750# CONFIG_EXT3_FS_POSIX_ACL is not set 775# CONFIG_EXT3_FS_POSIX_ACL is not set
751# CONFIG_EXT3_FS_SECURITY is not set 776# CONFIG_EXT3_FS_SECURITY is not set
752# CONFIG_EXT4DEV_FS is not set 777# CONFIG_EXT4_FS is not set
753CONFIG_JBD=y 778CONFIG_JBD=y
754CONFIG_FS_MBCACHE=y 779CONFIG_FS_MBCACHE=y
755# CONFIG_REISERFS_FS is not set 780# CONFIG_REISERFS_FS is not set
756# CONFIG_JFS_FS is not set 781# CONFIG_JFS_FS is not set
757# CONFIG_FS_POSIX_ACL is not set 782# CONFIG_FS_POSIX_ACL is not set
783CONFIG_FILE_LOCKING=y
758# CONFIG_XFS_FS is not set 784# CONFIG_XFS_FS is not set
759# CONFIG_OCFS2_FS is not set 785# CONFIG_OCFS2_FS is not set
760CONFIG_DNOTIFY=y 786CONFIG_DNOTIFY=y
@@ -784,6 +810,7 @@ CONFIG_INOTIFY_USER=y
784CONFIG_PROC_FS=y 810CONFIG_PROC_FS=y
785CONFIG_PROC_KCORE=y 811CONFIG_PROC_KCORE=y
786CONFIG_PROC_SYSCTL=y 812CONFIG_PROC_SYSCTL=y
813CONFIG_PROC_PAGE_MONITOR=y
787CONFIG_SYSFS=y 814CONFIG_SYSFS=y
788CONFIG_TMPFS=y 815CONFIG_TMPFS=y
789# CONFIG_TMPFS_POSIX_ACL is not set 816# CONFIG_TMPFS_POSIX_ACL is not set
@@ -818,6 +845,7 @@ CONFIG_ROOT_NFS=y
818CONFIG_LOCKD=y 845CONFIG_LOCKD=y
819CONFIG_NFS_COMMON=y 846CONFIG_NFS_COMMON=y
820CONFIG_SUNRPC=y 847CONFIG_SUNRPC=y
848# CONFIG_SUNRPC_REGISTER_V4 is not set
821# CONFIG_RPCSEC_GSS_KRB5 is not set 849# CONFIG_RPCSEC_GSS_KRB5 is not set
822# CONFIG_RPCSEC_GSS_SPKM3 is not set 850# CONFIG_RPCSEC_GSS_SPKM3 is not set
823# CONFIG_SMB_FS is not set 851# CONFIG_SMB_FS is not set
@@ -850,7 +878,6 @@ CONFIG_PARTITION_ADVANCED=y
850# Library routines 878# Library routines
851# 879#
852CONFIG_BITREVERSE=y 880CONFIG_BITREVERSE=y
853# CONFIG_GENERIC_FIND_FIRST_BIT is not set
854# CONFIG_CRC_CCITT is not set 881# CONFIG_CRC_CCITT is not set
855# CONFIG_CRC16 is not set 882# CONFIG_CRC16 is not set
856# CONFIG_CRC_T10DIF is not set 883# CONFIG_CRC_T10DIF is not set
@@ -902,15 +929,23 @@ CONFIG_DEBUG_MUTEXES=y
902# CONFIG_DEBUG_SG is not set 929# CONFIG_DEBUG_SG is not set
903# CONFIG_BOOT_PRINTK_DELAY is not set 930# CONFIG_BOOT_PRINTK_DELAY is not set
904# CONFIG_RCU_TORTURE_TEST is not set 931# CONFIG_RCU_TORTURE_TEST is not set
932# CONFIG_RCU_CPU_STALL_DETECTOR is not set
905# CONFIG_BACKTRACE_SELF_TEST is not set 933# CONFIG_BACKTRACE_SELF_TEST is not set
934# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
906# CONFIG_FAULT_INJECTION is not set 935# CONFIG_FAULT_INJECTION is not set
907# CONFIG_LATENCYTOP is not set 936# CONFIG_LATENCYTOP is not set
908CONFIG_SYSCTL_SYSCALL_CHECK=y 937CONFIG_SYSCTL_SYSCALL_CHECK=y
909CONFIG_HAVE_FTRACE=y 938CONFIG_HAVE_FUNCTION_TRACER=y
910CONFIG_HAVE_DYNAMIC_FTRACE=y 939
911# CONFIG_FTRACE is not set 940#
941# Tracers
942#
943# CONFIG_FUNCTION_TRACER is not set
912# CONFIG_SCHED_TRACER is not set 944# CONFIG_SCHED_TRACER is not set
913# CONFIG_CONTEXT_SWITCH_TRACER is not set 945# CONFIG_CONTEXT_SWITCH_TRACER is not set
946# CONFIG_BOOT_TRACER is not set
947# CONFIG_STACK_TRACER is not set
948# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
914# CONFIG_SAMPLES is not set 949# CONFIG_SAMPLES is not set
915CONFIG_HAVE_ARCH_KGDB=y 950CONFIG_HAVE_ARCH_KGDB=y
916# CONFIG_KGDB is not set 951# CONFIG_KGDB is not set
@@ -919,6 +954,7 @@ CONFIG_HAVE_ARCH_KGDB=y
919# CONFIG_DEBUG_PAGEALLOC is not set 954# CONFIG_DEBUG_PAGEALLOC is not set
920# CONFIG_CODE_PATCHING_SELFTEST is not set 955# CONFIG_CODE_PATCHING_SELFTEST is not set
921# CONFIG_FTR_FIXUP_SELFTEST is not set 956# CONFIG_FTR_FIXUP_SELFTEST is not set
957# CONFIG_MSI_BITMAP_SELFTEST is not set
922# CONFIG_XMON is not set 958# CONFIG_XMON is not set
923# CONFIG_IRQSTACKS is not set 959# CONFIG_IRQSTACKS is not set
924# CONFIG_BDI_SWITCH is not set 960# CONFIG_BDI_SWITCH is not set
@@ -929,12 +965,14 @@ CONFIG_HAVE_ARCH_KGDB=y
929# 965#
930# CONFIG_KEYS is not set 966# CONFIG_KEYS is not set
931# CONFIG_SECURITY is not set 967# CONFIG_SECURITY is not set
968# CONFIG_SECURITYFS is not set
932# CONFIG_SECURITY_FILE_CAPABILITIES is not set 969# CONFIG_SECURITY_FILE_CAPABILITIES is not set
933CONFIG_CRYPTO=y 970CONFIG_CRYPTO=y
934 971
935# 972#
936# Crypto core or helper 973# Crypto core or helper
937# 974#
975# CONFIG_CRYPTO_FIPS is not set
938# CONFIG_CRYPTO_MANAGER is not set 976# CONFIG_CRYPTO_MANAGER is not set
939# CONFIG_CRYPTO_GF128MUL is not set 977# CONFIG_CRYPTO_GF128MUL is not set
940# CONFIG_CRYPTO_NULL is not set 978# CONFIG_CRYPTO_NULL is not set
@@ -1006,6 +1044,11 @@ CONFIG_CRYPTO=y
1006# 1044#
1007# CONFIG_CRYPTO_DEFLATE is not set 1045# CONFIG_CRYPTO_DEFLATE is not set
1008# CONFIG_CRYPTO_LZO is not set 1046# CONFIG_CRYPTO_LZO is not set
1047
1048#
1049# Random Number Generation
1050#
1051# CONFIG_CRYPTO_ANSI_CPRNG is not set
1009CONFIG_CRYPTO_HW=y 1052CONFIG_CRYPTO_HW=y
1010# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1053# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1011# CONFIG_CRYPTO_DEV_TALITOS is not set 1054# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index 41cedc4b63f6..bfe3c9731573 100644
--- a/arch/powerpc/configs/85xx/sbc8548_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8548_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:35 2008 4# Sat Nov 8 12:40:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -106,7 +106,9 @@ CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 106CONFIG_TIMERFD=y
107CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
108CONFIG_SHMEM=y 108CONFIG_SHMEM=y
109CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
110CONFIG_SLAB=y 112CONFIG_SLAB=y
111# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
112# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
@@ -118,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -148,6 +146,7 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 146# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 147CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 148CONFIG_CLASSIC_RCU=y
149# CONFIG_FREEZER is not set
151 150
152# 151#
153# Platform support 152# Platform support
@@ -182,14 +181,15 @@ CONFIG_MPIC=y
182# CONFIG_PPC_INDIRECT_IO is not set 181# CONFIG_PPC_INDIRECT_IO is not set
183# CONFIG_GENERIC_IOMAP is not set 182# CONFIG_GENERIC_IOMAP is not set
184# CONFIG_CPU_FREQ is not set 183# CONFIG_CPU_FREQ is not set
184# CONFIG_QUICC_ENGINE is not set
185# CONFIG_CPM2 is not set 185# CONFIG_CPM2 is not set
186# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_MPC8xxx_GPIO is not set
187 188
188# 189#
189# Kernel options 190# Kernel options
190# 191#
191# CONFIG_HIGHMEM is not set 192# CONFIG_HIGHMEM is not set
192# CONFIG_TICK_ONESHOT is not set
193# CONFIG_NO_HZ is not set 193# CONFIG_NO_HZ is not set
194# CONFIG_HIGH_RES_TIMERS is not set 194# CONFIG_HIGH_RES_TIMERS is not set
195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -203,6 +203,8 @@ CONFIG_PREEMPT_NONE=y
203# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
204# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
205CONFIG_BINFMT_ELF=y 205CONFIG_BINFMT_ELF=y
206# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
207# CONFIG_HAVE_AOUT is not set
206CONFIG_BINFMT_MISC=y 208CONFIG_BINFMT_MISC=y
207CONFIG_MATH_EMULATION=y 209CONFIG_MATH_EMULATION=y
208# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
@@ -217,15 +219,15 @@ CONFIG_FLATMEM_MANUAL=y
217# CONFIG_SPARSEMEM_MANUAL is not set 219# CONFIG_SPARSEMEM_MANUAL is not set
218CONFIG_FLATMEM=y 220CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 224CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
227CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
228CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y
229CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
230CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
231# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
@@ -248,7 +250,7 @@ CONFIG_PCI_SYSCALL=y
248# CONFIG_PCIEPORTBUS is not set 250# CONFIG_PCIEPORTBUS is not set
249CONFIG_ARCH_SUPPORTS_MSI=y 251CONFIG_ARCH_SUPPORTS_MSI=y
250# CONFIG_PCI_MSI is not set 252# CONFIG_PCI_MSI is not set
251CONFIG_PCI_LEGACY=y 253# CONFIG_PCI_LEGACY is not set
252# CONFIG_PCCARD is not set 254# CONFIG_PCCARD is not set
253# CONFIG_HOTPLUG_PCI is not set 255# CONFIG_HOTPLUG_PCI is not set
254# CONFIG_HAS_RAPIDIO is not set 256# CONFIG_HAS_RAPIDIO is not set
@@ -317,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
317# CONFIG_TIPC is not set 319# CONFIG_TIPC is not set
318# CONFIG_ATM is not set 320# CONFIG_ATM is not set
319# CONFIG_BRIDGE is not set 321# CONFIG_BRIDGE is not set
322# CONFIG_NET_DSA is not set
320# CONFIG_VLAN_8021Q is not set 323# CONFIG_VLAN_8021Q is not set
321# CONFIG_DECNET is not set 324# CONFIG_DECNET is not set
322# CONFIG_LLC2 is not set 325# CONFIG_LLC2 is not set
@@ -337,11 +340,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
337# CONFIG_IRDA is not set 340# CONFIG_IRDA is not set
338# CONFIG_BT is not set 341# CONFIG_BT is not set
339# CONFIG_AF_RXRPC is not set 342# CONFIG_AF_RXRPC is not set
340 343# CONFIG_PHONET is not set
341# 344CONFIG_WIRELESS=y
342# Wireless
343#
344# CONFIG_CFG80211 is not set 345# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y
345# CONFIG_WIRELESS_EXT is not set 347# CONFIG_WIRELESS_EXT is not set
346# CONFIG_MAC80211 is not set 348# CONFIG_MAC80211 is not set
347# CONFIG_IEEE80211 is not set 349# CONFIG_IEEE80211 is not set
@@ -451,8 +453,12 @@ CONFIG_MII=y
451# CONFIG_IBM_NEW_EMAC_RGMII is not set 453# CONFIG_IBM_NEW_EMAC_RGMII is not set
452# CONFIG_IBM_NEW_EMAC_TAH is not set 454# CONFIG_IBM_NEW_EMAC_TAH is not set
453# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 455# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
456# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
457# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
458# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
454# CONFIG_NET_PCI is not set 459# CONFIG_NET_PCI is not set
455# CONFIG_B44 is not set 460# CONFIG_B44 is not set
461# CONFIG_ATL2 is not set
456CONFIG_NETDEV_1000=y 462CONFIG_NETDEV_1000=y
457# CONFIG_ACENIC is not set 463# CONFIG_ACENIC is not set
458# CONFIG_DL2K is not set 464# CONFIG_DL2K is not set
@@ -474,18 +480,22 @@ CONFIG_GIANFAR=y
474# CONFIG_QLA3XXX is not set 480# CONFIG_QLA3XXX is not set
475# CONFIG_ATL1 is not set 481# CONFIG_ATL1 is not set
476# CONFIG_ATL1E is not set 482# CONFIG_ATL1E is not set
483# CONFIG_JME is not set
477CONFIG_NETDEV_10000=y 484CONFIG_NETDEV_10000=y
478# CONFIG_CHELSIO_T1 is not set 485# CONFIG_CHELSIO_T1 is not set
479# CONFIG_CHELSIO_T3 is not set 486# CONFIG_CHELSIO_T3 is not set
487# CONFIG_ENIC is not set
480# CONFIG_IXGBE is not set 488# CONFIG_IXGBE is not set
481# CONFIG_IXGB is not set 489# CONFIG_IXGB is not set
482# CONFIG_S2IO is not set 490# CONFIG_S2IO is not set
483# CONFIG_MYRI10GE is not set 491# CONFIG_MYRI10GE is not set
484# CONFIG_NETXEN_NIC is not set 492# CONFIG_NETXEN_NIC is not set
485# CONFIG_NIU is not set 493# CONFIG_NIU is not set
494# CONFIG_MLX4_EN is not set
486# CONFIG_MLX4_CORE is not set 495# CONFIG_MLX4_CORE is not set
487# CONFIG_TEHUTI is not set 496# CONFIG_TEHUTI is not set
488# CONFIG_BNX2X is not set 497# CONFIG_BNX2X is not set
498# CONFIG_QLGE is not set
489# CONFIG_SFC is not set 499# CONFIG_SFC is not set
490# CONFIG_TR is not set 500# CONFIG_TR is not set
491 501
@@ -619,6 +629,14 @@ CONFIG_SSB_POSSIBLE=y
619# CONFIG_MFD_TMIO is not set 629# CONFIG_MFD_TMIO is not set
620 630
621# 631#
632# Voltage and Current regulators
633#
634# CONFIG_REGULATOR is not set
635# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
636# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
637# CONFIG_REGULATOR_BQ24022 is not set
638
639#
622# Multimedia devices 640# Multimedia devices
623# 641#
624 642
@@ -651,6 +669,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
651# CONFIG_SOUND is not set 669# CONFIG_SOUND is not set
652# CONFIG_HID_SUPPORT is not set 670# CONFIG_HID_SUPPORT is not set
653# CONFIG_USB_SUPPORT is not set 671# CONFIG_USB_SUPPORT is not set
672# CONFIG_UWB is not set
654# CONFIG_MMC is not set 673# CONFIG_MMC is not set
655# CONFIG_MEMSTICK is not set 674# CONFIG_MEMSTICK is not set
656# CONFIG_NEW_LEDS is not set 675# CONFIG_NEW_LEDS is not set
@@ -660,16 +679,18 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
660# CONFIG_RTC_CLASS is not set 679# CONFIG_RTC_CLASS is not set
661# CONFIG_DMADEVICES is not set 680# CONFIG_DMADEVICES is not set
662# CONFIG_UIO is not set 681# CONFIG_UIO is not set
682# CONFIG_STAGING is not set
663 683
664# 684#
665# File systems 685# File systems
666# 686#
667# CONFIG_EXT2_FS is not set 687# CONFIG_EXT2_FS is not set
668# CONFIG_EXT3_FS is not set 688# CONFIG_EXT3_FS is not set
669# CONFIG_EXT4DEV_FS is not set 689# CONFIG_EXT4_FS is not set
670# CONFIG_REISERFS_FS is not set 690# CONFIG_REISERFS_FS is not set
671# CONFIG_JFS_FS is not set 691# CONFIG_JFS_FS is not set
672# CONFIG_FS_POSIX_ACL is not set 692# CONFIG_FS_POSIX_ACL is not set
693CONFIG_FILE_LOCKING=y
673# CONFIG_XFS_FS is not set 694# CONFIG_XFS_FS is not set
674# CONFIG_OCFS2_FS is not set 695# CONFIG_OCFS2_FS is not set
675CONFIG_DNOTIFY=y 696CONFIG_DNOTIFY=y
@@ -699,6 +720,7 @@ CONFIG_INOTIFY_USER=y
699CONFIG_PROC_FS=y 720CONFIG_PROC_FS=y
700CONFIG_PROC_KCORE=y 721CONFIG_PROC_KCORE=y
701CONFIG_PROC_SYSCTL=y 722CONFIG_PROC_SYSCTL=y
723CONFIG_PROC_PAGE_MONITOR=y
702CONFIG_SYSFS=y 724CONFIG_SYSFS=y
703CONFIG_TMPFS=y 725CONFIG_TMPFS=y
704# CONFIG_TMPFS_POSIX_ACL is not set 726# CONFIG_TMPFS_POSIX_ACL is not set
@@ -733,6 +755,7 @@ CONFIG_ROOT_NFS=y
733CONFIG_LOCKD=y 755CONFIG_LOCKD=y
734CONFIG_NFS_COMMON=y 756CONFIG_NFS_COMMON=y
735CONFIG_SUNRPC=y 757CONFIG_SUNRPC=y
758# CONFIG_SUNRPC_REGISTER_V4 is not set
736# CONFIG_RPCSEC_GSS_KRB5 is not set 759# CONFIG_RPCSEC_GSS_KRB5 is not set
737# CONFIG_RPCSEC_GSS_SPKM3 is not set 760# CONFIG_RPCSEC_GSS_SPKM3 is not set
738# CONFIG_SMB_FS is not set 761# CONFIG_SMB_FS is not set
@@ -753,7 +776,6 @@ CONFIG_MSDOS_PARTITION=y
753# Library routines 776# Library routines
754# 777#
755CONFIG_BITREVERSE=y 778CONFIG_BITREVERSE=y
756# CONFIG_GENERIC_FIND_FIRST_BIT is not set
757# CONFIG_CRC_CCITT is not set 779# CONFIG_CRC_CCITT is not set
758# CONFIG_CRC16 is not set 780# CONFIG_CRC16 is not set
759# CONFIG_CRC_T10DIF is not set 781# CONFIG_CRC_T10DIF is not set
@@ -781,13 +803,15 @@ CONFIG_FRAME_WARN=1024
781# CONFIG_DEBUG_KERNEL is not set 803# CONFIG_DEBUG_KERNEL is not set
782# CONFIG_DEBUG_BUGVERBOSE is not set 804# CONFIG_DEBUG_BUGVERBOSE is not set
783# CONFIG_DEBUG_MEMORY_INIT is not set 805# CONFIG_DEBUG_MEMORY_INIT is not set
806# CONFIG_RCU_CPU_STALL_DETECTOR is not set
784# CONFIG_LATENCYTOP is not set 807# CONFIG_LATENCYTOP is not set
785CONFIG_SYSCTL_SYSCALL_CHECK=y 808CONFIG_SYSCTL_SYSCALL_CHECK=y
786CONFIG_HAVE_FTRACE=y 809CONFIG_HAVE_FUNCTION_TRACER=y
787CONFIG_HAVE_DYNAMIC_FTRACE=y 810
788# CONFIG_FTRACE is not set 811#
789# CONFIG_SCHED_TRACER is not set 812# Tracers
790# CONFIG_CONTEXT_SWITCH_TRACER is not set 813#
814# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
791# CONFIG_SAMPLES is not set 815# CONFIG_SAMPLES is not set
792CONFIG_HAVE_ARCH_KGDB=y 816CONFIG_HAVE_ARCH_KGDB=y
793# CONFIG_IRQSTACKS is not set 817# CONFIG_IRQSTACKS is not set
@@ -798,12 +822,14 @@ CONFIG_HAVE_ARCH_KGDB=y
798# 822#
799# CONFIG_KEYS is not set 823# CONFIG_KEYS is not set
800# CONFIG_SECURITY is not set 824# CONFIG_SECURITY is not set
825# CONFIG_SECURITYFS is not set
801# CONFIG_SECURITY_FILE_CAPABILITIES is not set 826# CONFIG_SECURITY_FILE_CAPABILITIES is not set
802CONFIG_CRYPTO=y 827CONFIG_CRYPTO=y
803 828
804# 829#
805# Crypto core or helper 830# Crypto core or helper
806# 831#
832# CONFIG_CRYPTO_FIPS is not set
807# CONFIG_CRYPTO_MANAGER is not set 833# CONFIG_CRYPTO_MANAGER is not set
808# CONFIG_CRYPTO_GF128MUL is not set 834# CONFIG_CRYPTO_GF128MUL is not set
809# CONFIG_CRYPTO_NULL is not set 835# CONFIG_CRYPTO_NULL is not set
@@ -875,6 +901,11 @@ CONFIG_CRYPTO=y
875# 901#
876# CONFIG_CRYPTO_DEFLATE is not set 902# CONFIG_CRYPTO_DEFLATE is not set
877# CONFIG_CRYPTO_LZO is not set 903# CONFIG_CRYPTO_LZO is not set
904
905#
906# Random Number Generation
907#
908# CONFIG_CRYPTO_ANSI_CPRNG is not set
878CONFIG_CRYPTO_HW=y 909CONFIG_CRYPTO_HW=y
879# CONFIG_CRYPTO_DEV_HIFN_795X is not set 910# CONFIG_CRYPTO_DEV_HIFN_795X is not set
880# CONFIG_CRYPTO_DEV_TALITOS is not set 911# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index daef36f41b42..8c507f8d15a8 100644
--- a/arch/powerpc/configs/85xx/sbc8560_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:36 2008 4# Sat Nov 8 12:40:17 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -107,6 +107,7 @@ CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 107CONFIG_TIMERFD=y
108CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
109CONFIG_SHMEM=y 109CONFIG_SHMEM=y
110CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_SLAB=y 112CONFIG_SLAB=y
112# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
@@ -119,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124# CONFIG_HAVE_CLK is not set
125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -149,6 +146,7 @@ CONFIG_DEFAULT_AS=y
149# CONFIG_DEFAULT_NOOP is not set 146# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 147CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y 148CONFIG_CLASSIC_RCU=y
149# CONFIG_FREEZER is not set
152 150
153# 151#
154# Platform support 152# Platform support
@@ -183,14 +181,15 @@ CONFIG_MPIC=y
183# CONFIG_PPC_INDIRECT_IO is not set 181# CONFIG_PPC_INDIRECT_IO is not set
184# CONFIG_GENERIC_IOMAP is not set 182# CONFIG_GENERIC_IOMAP is not set
185# CONFIG_CPU_FREQ is not set 183# CONFIG_CPU_FREQ is not set
184# CONFIG_QUICC_ENGINE is not set
186# CONFIG_CPM2 is not set 185# CONFIG_CPM2 is not set
187# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
187# CONFIG_MPC8xxx_GPIO is not set
188 188
189# 189#
190# Kernel options 190# Kernel options
191# 191#
192# CONFIG_HIGHMEM is not set 192# CONFIG_HIGHMEM is not set
193# CONFIG_TICK_ONESHOT is not set
194# CONFIG_NO_HZ is not set 193# CONFIG_NO_HZ is not set
195# CONFIG_HIGH_RES_TIMERS is not set 194# CONFIG_HIGH_RES_TIMERS is not set
196CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 195CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -204,6 +203,8 @@ CONFIG_PREEMPT_NONE=y
204# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
205# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
206CONFIG_BINFMT_ELF=y 205CONFIG_BINFMT_ELF=y
206# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
207# CONFIG_HAVE_AOUT is not set
207CONFIG_BINFMT_MISC=y 208CONFIG_BINFMT_MISC=y
208# CONFIG_MATH_EMULATION is not set 209# CONFIG_MATH_EMULATION is not set
209# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
@@ -218,15 +219,15 @@ CONFIG_FLATMEM_MANUAL=y
218# CONFIG_SPARSEMEM_MANUAL is not set 219# CONFIG_SPARSEMEM_MANUAL is not set
219CONFIG_FLATMEM=y 220CONFIG_FLATMEM=y
220CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_STATIC is not set
222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
223CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 224CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y
230CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
@@ -312,6 +313,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
312# CONFIG_TIPC is not set 313# CONFIG_TIPC is not set
313# CONFIG_ATM is not set 314# CONFIG_ATM is not set
314# CONFIG_BRIDGE is not set 315# CONFIG_BRIDGE is not set
316# CONFIG_NET_DSA is not set
315# CONFIG_VLAN_8021Q is not set 317# CONFIG_VLAN_8021Q is not set
316# CONFIG_DECNET is not set 318# CONFIG_DECNET is not set
317# CONFIG_LLC2 is not set 319# CONFIG_LLC2 is not set
@@ -332,11 +334,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_IRDA is not set 334# CONFIG_IRDA is not set
333# CONFIG_BT is not set 335# CONFIG_BT is not set
334# CONFIG_AF_RXRPC is not set 336# CONFIG_AF_RXRPC is not set
335 337# CONFIG_PHONET is not set
336# 338CONFIG_WIRELESS=y
337# Wireless
338#
339# CONFIG_CFG80211 is not set 339# CONFIG_CFG80211 is not set
340CONFIG_WIRELESS_OLD_REGULATORY=y
340# CONFIG_WIRELESS_EXT is not set 341# CONFIG_WIRELESS_EXT is not set
341# CONFIG_MAC80211 is not set 342# CONFIG_MAC80211 is not set
342# CONFIG_IEEE80211 is not set 343# CONFIG_IEEE80211 is not set
@@ -420,6 +421,9 @@ CONFIG_MII=y
420# CONFIG_IBM_NEW_EMAC_RGMII is not set 421# CONFIG_IBM_NEW_EMAC_RGMII is not set
421# CONFIG_IBM_NEW_EMAC_TAH is not set 422# CONFIG_IBM_NEW_EMAC_TAH is not set
422# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 423# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
424# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
425# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
426# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
423# CONFIG_B44 is not set 427# CONFIG_B44 is not set
424CONFIG_NETDEV_1000=y 428CONFIG_NETDEV_1000=y
425CONFIG_GIANFAR=y 429CONFIG_GIANFAR=y
@@ -542,6 +546,14 @@ CONFIG_SSB_POSSIBLE=y
542# CONFIG_MFD_TMIO is not set 546# CONFIG_MFD_TMIO is not set
543 547
544# 548#
549# Voltage and Current regulators
550#
551# CONFIG_REGULATOR is not set
552# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
553# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
554# CONFIG_REGULATOR_BQ24022 is not set
555
556#
545# Multimedia devices 557# Multimedia devices
546# 558#
547 559
@@ -574,6 +586,12 @@ CONFIG_HID_SUPPORT=y
574CONFIG_HID=y 586CONFIG_HID=y
575# CONFIG_HID_DEBUG is not set 587# CONFIG_HID_DEBUG is not set
576# CONFIG_HIDRAW is not set 588# CONFIG_HIDRAW is not set
589# CONFIG_HID_PID is not set
590
591#
592# Special HID drivers
593#
594CONFIG_HID_COMPAT=y
577CONFIG_USB_SUPPORT=y 595CONFIG_USB_SUPPORT=y
578# CONFIG_USB_ARCH_HAS_HCD is not set 596# CONFIG_USB_ARCH_HAS_HCD is not set
579# CONFIG_USB_ARCH_HAS_OHCI is not set 597# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -617,12 +635,15 @@ CONFIG_RTC_INTF_DEV=y
617# Platform RTC drivers 635# Platform RTC drivers
618# 636#
619# CONFIG_RTC_DRV_CMOS is not set 637# CONFIG_RTC_DRV_CMOS is not set
638# CONFIG_RTC_DRV_DS1286 is not set
620# CONFIG_RTC_DRV_DS1511 is not set 639# CONFIG_RTC_DRV_DS1511 is not set
621# CONFIG_RTC_DRV_DS1553 is not set 640# CONFIG_RTC_DRV_DS1553 is not set
622# CONFIG_RTC_DRV_DS1742 is not set 641# CONFIG_RTC_DRV_DS1742 is not set
623# CONFIG_RTC_DRV_STK17TA8 is not set 642# CONFIG_RTC_DRV_STK17TA8 is not set
624# CONFIG_RTC_DRV_M48T86 is not set 643# CONFIG_RTC_DRV_M48T86 is not set
644# CONFIG_RTC_DRV_M48T35 is not set
625CONFIG_RTC_DRV_M48T59=y 645CONFIG_RTC_DRV_M48T59=y
646# CONFIG_RTC_DRV_BQ4802 is not set
626# CONFIG_RTC_DRV_V3020 is not set 647# CONFIG_RTC_DRV_V3020 is not set
627 648
628# 649#
@@ -631,16 +652,18 @@ CONFIG_RTC_DRV_M48T59=y
631# CONFIG_RTC_DRV_PPC is not set 652# CONFIG_RTC_DRV_PPC is not set
632# CONFIG_DMADEVICES is not set 653# CONFIG_DMADEVICES is not set
633# CONFIG_UIO is not set 654# CONFIG_UIO is not set
655# CONFIG_STAGING is not set
634 656
635# 657#
636# File systems 658# File systems
637# 659#
638# CONFIG_EXT2_FS is not set 660# CONFIG_EXT2_FS is not set
639# CONFIG_EXT3_FS is not set 661# CONFIG_EXT3_FS is not set
640# CONFIG_EXT4DEV_FS is not set 662# CONFIG_EXT4_FS is not set
641# CONFIG_REISERFS_FS is not set 663# CONFIG_REISERFS_FS is not set
642# CONFIG_JFS_FS is not set 664# CONFIG_JFS_FS is not set
643# CONFIG_FS_POSIX_ACL is not set 665# CONFIG_FS_POSIX_ACL is not set
666CONFIG_FILE_LOCKING=y
644# CONFIG_XFS_FS is not set 667# CONFIG_XFS_FS is not set
645# CONFIG_OCFS2_FS is not set 668# CONFIG_OCFS2_FS is not set
646CONFIG_DNOTIFY=y 669CONFIG_DNOTIFY=y
@@ -670,6 +693,7 @@ CONFIG_INOTIFY_USER=y
670CONFIG_PROC_FS=y 693CONFIG_PROC_FS=y
671CONFIG_PROC_KCORE=y 694CONFIG_PROC_KCORE=y
672CONFIG_PROC_SYSCTL=y 695CONFIG_PROC_SYSCTL=y
696CONFIG_PROC_PAGE_MONITOR=y
673CONFIG_SYSFS=y 697CONFIG_SYSFS=y
674CONFIG_TMPFS=y 698CONFIG_TMPFS=y
675# CONFIG_TMPFS_POSIX_ACL is not set 699# CONFIG_TMPFS_POSIX_ACL is not set
@@ -704,6 +728,7 @@ CONFIG_ROOT_NFS=y
704CONFIG_LOCKD=y 728CONFIG_LOCKD=y
705CONFIG_NFS_COMMON=y 729CONFIG_NFS_COMMON=y
706CONFIG_SUNRPC=y 730CONFIG_SUNRPC=y
731# CONFIG_SUNRPC_REGISTER_V4 is not set
707# CONFIG_RPCSEC_GSS_KRB5 is not set 732# CONFIG_RPCSEC_GSS_KRB5 is not set
708# CONFIG_RPCSEC_GSS_SPKM3 is not set 733# CONFIG_RPCSEC_GSS_SPKM3 is not set
709# CONFIG_SMB_FS is not set 734# CONFIG_SMB_FS is not set
@@ -736,7 +761,6 @@ CONFIG_PARTITION_ADVANCED=y
736# Library routines 761# Library routines
737# 762#
738CONFIG_BITREVERSE=y 763CONFIG_BITREVERSE=y
739# CONFIG_GENERIC_FIND_FIRST_BIT is not set
740# CONFIG_CRC_CCITT is not set 764# CONFIG_CRC_CCITT is not set
741# CONFIG_CRC16 is not set 765# CONFIG_CRC16 is not set
742# CONFIG_CRC_T10DIF is not set 766# CONFIG_CRC_T10DIF is not set
@@ -787,15 +811,23 @@ CONFIG_DEBUG_MUTEXES=y
787# CONFIG_DEBUG_SG is not set 811# CONFIG_DEBUG_SG is not set
788# CONFIG_BOOT_PRINTK_DELAY is not set 812# CONFIG_BOOT_PRINTK_DELAY is not set
789# CONFIG_RCU_TORTURE_TEST is not set 813# CONFIG_RCU_TORTURE_TEST is not set
814# CONFIG_RCU_CPU_STALL_DETECTOR is not set
790# CONFIG_BACKTRACE_SELF_TEST is not set 815# CONFIG_BACKTRACE_SELF_TEST is not set
816# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
791# CONFIG_FAULT_INJECTION is not set 817# CONFIG_FAULT_INJECTION is not set
792# CONFIG_LATENCYTOP is not set 818# CONFIG_LATENCYTOP is not set
793CONFIG_SYSCTL_SYSCALL_CHECK=y 819CONFIG_SYSCTL_SYSCALL_CHECK=y
794CONFIG_HAVE_FTRACE=y 820CONFIG_HAVE_FUNCTION_TRACER=y
795CONFIG_HAVE_DYNAMIC_FTRACE=y 821
796# CONFIG_FTRACE is not set 822#
823# Tracers
824#
825# CONFIG_FUNCTION_TRACER is not set
797# CONFIG_SCHED_TRACER is not set 826# CONFIG_SCHED_TRACER is not set
798# CONFIG_CONTEXT_SWITCH_TRACER is not set 827# CONFIG_CONTEXT_SWITCH_TRACER is not set
828# CONFIG_BOOT_TRACER is not set
829# CONFIG_STACK_TRACER is not set
830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
799# CONFIG_SAMPLES is not set 831# CONFIG_SAMPLES is not set
800CONFIG_HAVE_ARCH_KGDB=y 832CONFIG_HAVE_ARCH_KGDB=y
801# CONFIG_KGDB is not set 833# CONFIG_KGDB is not set
@@ -804,6 +836,7 @@ CONFIG_HAVE_ARCH_KGDB=y
804# CONFIG_DEBUG_PAGEALLOC is not set 836# CONFIG_DEBUG_PAGEALLOC is not set
805# CONFIG_CODE_PATCHING_SELFTEST is not set 837# CONFIG_CODE_PATCHING_SELFTEST is not set
806# CONFIG_FTR_FIXUP_SELFTEST is not set 838# CONFIG_FTR_FIXUP_SELFTEST is not set
839# CONFIG_MSI_BITMAP_SELFTEST is not set
807# CONFIG_XMON is not set 840# CONFIG_XMON is not set
808# CONFIG_IRQSTACKS is not set 841# CONFIG_IRQSTACKS is not set
809# CONFIG_BDI_SWITCH is not set 842# CONFIG_BDI_SWITCH is not set
@@ -825,12 +858,14 @@ CONFIG_PPC_EARLY_DEBUG=y
825# 858#
826# CONFIG_KEYS is not set 859# CONFIG_KEYS is not set
827# CONFIG_SECURITY is not set 860# CONFIG_SECURITY is not set
861# CONFIG_SECURITYFS is not set
828# CONFIG_SECURITY_FILE_CAPABILITIES is not set 862# CONFIG_SECURITY_FILE_CAPABILITIES is not set
829CONFIG_CRYPTO=y 863CONFIG_CRYPTO=y
830 864
831# 865#
832# Crypto core or helper 866# Crypto core or helper
833# 867#
868# CONFIG_CRYPTO_FIPS is not set
834# CONFIG_CRYPTO_MANAGER is not set 869# CONFIG_CRYPTO_MANAGER is not set
835# CONFIG_CRYPTO_GF128MUL is not set 870# CONFIG_CRYPTO_GF128MUL is not set
836# CONFIG_CRYPTO_NULL is not set 871# CONFIG_CRYPTO_NULL is not set
@@ -902,6 +937,11 @@ CONFIG_CRYPTO=y
902# 937#
903# CONFIG_CRYPTO_DEFLATE is not set 938# CONFIG_CRYPTO_DEFLATE is not set
904# CONFIG_CRYPTO_LZO is not set 939# CONFIG_CRYPTO_LZO is not set
940
941#
942# Random Number Generation
943#
944# CONFIG_CRYPTO_ANSI_CPRNG is not set
905CONFIG_CRYPTO_HW=y 945CONFIG_CRYPTO_HW=y
906# CONFIG_CRYPTO_DEV_TALITOS is not set 946# CONFIG_CRYPTO_DEV_TALITOS is not set
907# CONFIG_PPC_CLOCK is not set 947# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index 2b05d43f8f7e..5a0cf58d2b8c 100644
--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig
+++ b/arch/powerpc/configs/85xx/stx_gp3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:37 2008 4# Sat Nov 8 12:40:19 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -108,7 +108,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 108CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 109CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 110CONFIG_SHMEM=y
111CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 114CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 115# CONFIG_SLAB is not set
114CONFIG_SLUB=y 116CONFIG_SLUB=y
@@ -122,10 +124,7 @@ 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
127CONFIG_HAVE_CLK=y 127CONFIG_HAVE_CLK=y
128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
@@ -157,6 +156,7 @@ CONFIG_DEFAULT_CFQ=y
157# CONFIG_DEFAULT_NOOP is not set 156# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="cfq" 157CONFIG_DEFAULT_IOSCHED="cfq"
159CONFIG_CLASSIC_RCU=y 158CONFIG_CLASSIC_RCU=y
159# CONFIG_FREEZER is not set
160 160
161# 161#
162# Platform support 162# Platform support
@@ -191,15 +191,16 @@ CONFIG_MPIC=y
191# CONFIG_PPC_INDIRECT_IO is not set 191# CONFIG_PPC_INDIRECT_IO is not set
192# CONFIG_GENERIC_IOMAP is not set 192# CONFIG_GENERIC_IOMAP is not set
193# CONFIG_CPU_FREQ is not set 193# CONFIG_CPU_FREQ is not set
194# CONFIG_QUICC_ENGINE is not set
194CONFIG_CPM2=y 195CONFIG_CPM2=y
195# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
196CONFIG_CPM=y 197CONFIG_CPM=y
198# CONFIG_MPC8xxx_GPIO is not set
197 199
198# 200#
199# Kernel options 201# Kernel options
200# 202#
201CONFIG_HIGHMEM=y 203CONFIG_HIGHMEM=y
202# CONFIG_TICK_ONESHOT is not set
203# CONFIG_NO_HZ is not set 204# CONFIG_NO_HZ is not set
204# CONFIG_HIGH_RES_TIMERS is not set 205# CONFIG_HIGH_RES_TIMERS is not set
205CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 206CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -213,6 +214,8 @@ CONFIG_PREEMPT_NONE=y
213# CONFIG_PREEMPT_VOLUNTARY is not set 214# CONFIG_PREEMPT_VOLUNTARY is not set
214# CONFIG_PREEMPT is not set 215# CONFIG_PREEMPT is not set
215CONFIG_BINFMT_ELF=y 216CONFIG_BINFMT_ELF=y
217# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
218# CONFIG_HAVE_AOUT is not set
216CONFIG_BINFMT_MISC=m 219CONFIG_BINFMT_MISC=m
217CONFIG_MATH_EMULATION=y 220CONFIG_MATH_EMULATION=y
218# CONFIG_IOMMU_HELPER is not set 221# CONFIG_IOMMU_HELPER is not set
@@ -227,15 +230,15 @@ CONFIG_FLATMEM_MANUAL=y
227# CONFIG_SPARSEMEM_MANUAL is not set 230# CONFIG_SPARSEMEM_MANUAL is not set
228CONFIG_FLATMEM=y 231CONFIG_FLATMEM=y
229CONFIG_FLAT_NODE_MEM_MAP=y 232CONFIG_FLAT_NODE_MEM_MAP=y
230# CONFIG_SPARSEMEM_STATIC is not set
231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
232CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
235# CONFIG_RESOURCES_64BIT is not set 236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 240CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y
239CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 243CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 244# CONFIG_CMDLINE_BOOL is not set
@@ -258,7 +261,7 @@ CONFIG_PCI_SYSCALL=y
258# CONFIG_PCIEPORTBUS is not set 261# CONFIG_PCIEPORTBUS is not set
259CONFIG_ARCH_SUPPORTS_MSI=y 262CONFIG_ARCH_SUPPORTS_MSI=y
260# CONFIG_PCI_MSI is not set 263# CONFIG_PCI_MSI is not set
261CONFIG_PCI_LEGACY=y 264# CONFIG_PCI_LEGACY is not set
262# CONFIG_PCI_DEBUG is not set 265# CONFIG_PCI_DEBUG is not set
263# CONFIG_PCCARD is not set 266# CONFIG_PCCARD is not set
264# CONFIG_HOTPLUG_PCI is not set 267# CONFIG_HOTPLUG_PCI is not set
@@ -319,7 +322,6 @@ CONFIG_INET_TCP_DIAG=y
319CONFIG_TCP_CONG_CUBIC=y 322CONFIG_TCP_CONG_CUBIC=y
320CONFIG_DEFAULT_TCP_CONG="cubic" 323CONFIG_DEFAULT_TCP_CONG="cubic"
321# CONFIG_TCP_MD5SIG is not set 324# CONFIG_TCP_MD5SIG is not set
322# CONFIG_IP_VS is not set
323# CONFIG_IPV6 is not set 325# CONFIG_IPV6 is not set
324# CONFIG_NETWORK_SECMARK is not set 326# CONFIG_NETWORK_SECMARK is not set
325CONFIG_NETFILTER=y 327CONFIG_NETFILTER=y
@@ -335,44 +337,46 @@ CONFIG_NETFILTER_ADVANCED=y
335CONFIG_NETFILTER_XTABLES=m 337CONFIG_NETFILTER_XTABLES=m
336# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 338# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
337# CONFIG_NETFILTER_XT_TARGET_MARK is not set 339# CONFIG_NETFILTER_XT_TARGET_MARK is not set
338# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
339# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 340# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
341# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
340# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set 342# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
341# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 343# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
342# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set 344# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
343# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 345# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
344# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 346# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
345# CONFIG_NETFILTER_XT_MATCH_ESP is not set 347# CONFIG_NETFILTER_XT_MATCH_ESP is not set
348# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
346# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 349# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
347# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 350# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
348# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 351# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
349# CONFIG_NETFILTER_XT_MATCH_MAC is not set 352# CONFIG_NETFILTER_XT_MATCH_MAC is not set
350# CONFIG_NETFILTER_XT_MATCH_MARK is not set 353# CONFIG_NETFILTER_XT_MATCH_MARK is not set
354# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
351# CONFIG_NETFILTER_XT_MATCH_OWNER is not set 355# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
352# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 356# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
353# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
354# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set 357# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
355# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 358# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
356# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set 359# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
357# CONFIG_NETFILTER_XT_MATCH_REALM is not set 360# CONFIG_NETFILTER_XT_MATCH_REALM is not set
361# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
358# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 362# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
359# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 363# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
360# CONFIG_NETFILTER_XT_MATCH_STRING is not set 364# CONFIG_NETFILTER_XT_MATCH_STRING is not set
361# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 365# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
362# CONFIG_NETFILTER_XT_MATCH_TIME is not set 366# CONFIG_NETFILTER_XT_MATCH_TIME is not set
363# CONFIG_NETFILTER_XT_MATCH_U32 is not set 367# CONFIG_NETFILTER_XT_MATCH_U32 is not set
364# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 368# CONFIG_IP_VS is not set
365 369
366# 370#
367# IP: Netfilter Configuration 371# IP: Netfilter Configuration
368# 372#
373# CONFIG_NF_DEFRAG_IPV4 is not set
369# CONFIG_IP_NF_QUEUE is not set 374# CONFIG_IP_NF_QUEUE is not set
370CONFIG_IP_NF_IPTABLES=m 375CONFIG_IP_NF_IPTABLES=m
371# CONFIG_IP_NF_MATCH_RECENT is not set 376# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
372# CONFIG_IP_NF_MATCH_ECN is not set
373# CONFIG_IP_NF_MATCH_AH is not set 377# CONFIG_IP_NF_MATCH_AH is not set
378# CONFIG_IP_NF_MATCH_ECN is not set
374# CONFIG_IP_NF_MATCH_TTL is not set 379# CONFIG_IP_NF_MATCH_TTL is not set
375# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
376CONFIG_IP_NF_FILTER=m 380CONFIG_IP_NF_FILTER=m
377# CONFIG_IP_NF_TARGET_REJECT is not set 381# CONFIG_IP_NF_TARGET_REJECT is not set
378# CONFIG_IP_NF_TARGET_LOG is not set 382# CONFIG_IP_NF_TARGET_LOG is not set
@@ -385,6 +389,7 @@ CONFIG_IP_NF_FILTER=m
385# CONFIG_TIPC is not set 389# CONFIG_TIPC is not set
386# CONFIG_ATM is not set 390# CONFIG_ATM is not set
387# CONFIG_BRIDGE is not set 391# CONFIG_BRIDGE is not set
392# CONFIG_NET_DSA is not set
388# CONFIG_VLAN_8021Q is not set 393# CONFIG_VLAN_8021Q is not set
389# CONFIG_DECNET is not set 394# CONFIG_DECNET is not set
390# CONFIG_LLC2 is not set 395# CONFIG_LLC2 is not set
@@ -405,11 +410,10 @@ CONFIG_NET_PKTGEN=y
405# CONFIG_IRDA is not set 410# CONFIG_IRDA is not set
406# CONFIG_BT is not set 411# CONFIG_BT is not set
407# CONFIG_AF_RXRPC is not set 412# CONFIG_AF_RXRPC is not set
408 413# CONFIG_PHONET is not set
409# 414CONFIG_WIRELESS=y
410# Wireless
411#
412# CONFIG_CFG80211 is not set 415# CONFIG_CFG80211 is not set
416CONFIG_WIRELESS_OLD_REGULATORY=y
413# CONFIG_WIRELESS_EXT is not set 417# CONFIG_WIRELESS_EXT is not set
414# CONFIG_MAC80211 is not set 418# CONFIG_MAC80211 is not set
415# CONFIG_IEEE80211 is not set 419# CONFIG_IEEE80211 is not set
@@ -470,18 +474,17 @@ CONFIG_MISC_DEVICES=y
470# CONFIG_HP_ILO is not set 474# CONFIG_HP_ILO is not set
471CONFIG_HAVE_IDE=y 475CONFIG_HAVE_IDE=y
472CONFIG_IDE=y 476CONFIG_IDE=y
473CONFIG_BLK_DEV_IDE=y
474 477
475# 478#
476# 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
477# 480#
478# CONFIG_BLK_DEV_IDE_SATA is not set 481# CONFIG_BLK_DEV_IDE_SATA is not set
479CONFIG_BLK_DEV_IDEDISK=y 482CONFIG_IDE_GD=y
480# CONFIG_IDEDISK_MULTI_MODE is not set 483CONFIG_IDE_GD_ATA=y
484# CONFIG_IDE_GD_ATAPI is not set
481CONFIG_BLK_DEV_IDECD=m 485CONFIG_BLK_DEV_IDECD=m
482CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 486CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
483# CONFIG_BLK_DEV_IDETAPE is not set 487# CONFIG_BLK_DEV_IDETAPE is not set
484# CONFIG_BLK_DEV_IDEFLOPPY is not set
485# CONFIG_BLK_DEV_IDESCSI is not set 488# CONFIG_BLK_DEV_IDESCSI is not set
486# CONFIG_IDE_TASK_IOCTL is not set 489# CONFIG_IDE_TASK_IOCTL is not set
487CONFIG_IDE_PROC_FS=y 490CONFIG_IDE_PROC_FS=y
@@ -651,9 +654,13 @@ CONFIG_NET_ETHERNET=y
651# CONFIG_IBM_NEW_EMAC_RGMII is not set 654# CONFIG_IBM_NEW_EMAC_RGMII is not set
652# CONFIG_IBM_NEW_EMAC_TAH is not set 655# CONFIG_IBM_NEW_EMAC_TAH is not set
653# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 656# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
657# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
658# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
659# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
654# CONFIG_NET_PCI is not set 660# CONFIG_NET_PCI is not set
655# CONFIG_B44 is not set 661# CONFIG_B44 is not set
656# CONFIG_NET_POCKET is not set 662# CONFIG_NET_POCKET is not set
663# CONFIG_ATL2 is not set
657# CONFIG_FS_ENET is not set 664# CONFIG_FS_ENET is not set
658CONFIG_NETDEV_1000=y 665CONFIG_NETDEV_1000=y
659# CONFIG_ACENIC is not set 666# CONFIG_ACENIC is not set
@@ -676,18 +683,22 @@ CONFIG_GIANFAR=y
676# CONFIG_QLA3XXX is not set 683# CONFIG_QLA3XXX is not set
677# CONFIG_ATL1 is not set 684# CONFIG_ATL1 is not set
678# CONFIG_ATL1E is not set 685# CONFIG_ATL1E is not set
686# CONFIG_JME is not set
679CONFIG_NETDEV_10000=y 687CONFIG_NETDEV_10000=y
680# CONFIG_CHELSIO_T1 is not set 688# CONFIG_CHELSIO_T1 is not set
681# CONFIG_CHELSIO_T3 is not set 689# CONFIG_CHELSIO_T3 is not set
690# CONFIG_ENIC is not set
682# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
683# CONFIG_IXGB is not set 692# CONFIG_IXGB is not set
684# CONFIG_S2IO is not set 693# CONFIG_S2IO is not set
685# CONFIG_MYRI10GE is not set 694# CONFIG_MYRI10GE is not set
686# CONFIG_NETXEN_NIC is not set 695# CONFIG_NETXEN_NIC is not set
687# CONFIG_NIU is not set 696# CONFIG_NIU is not set
697# CONFIG_MLX4_EN is not set
688# CONFIG_MLX4_CORE is not set 698# CONFIG_MLX4_CORE is not set
689# CONFIG_TEHUTI is not set 699# CONFIG_TEHUTI is not set
690# CONFIG_BNX2X is not set 700# CONFIG_BNX2X is not set
701# CONFIG_QLGE is not set
691# CONFIG_SFC is not set 702# CONFIG_SFC is not set
692# CONFIG_TR is not set 703# CONFIG_TR is not set
693 704
@@ -746,6 +757,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
746CONFIG_MOUSE_PS2_SYNAPTICS=y 757CONFIG_MOUSE_PS2_SYNAPTICS=y
747CONFIG_MOUSE_PS2_LIFEBOOK=y 758CONFIG_MOUSE_PS2_LIFEBOOK=y
748CONFIG_MOUSE_PS2_TRACKPOINT=y 759CONFIG_MOUSE_PS2_TRACKPOINT=y
760# CONFIG_MOUSE_PS2_ELANTECH is not set
749# CONFIG_MOUSE_PS2_TOUCHKIT is not set 761# CONFIG_MOUSE_PS2_TOUCHKIT is not set
750# CONFIG_MOUSE_SERIAL is not set 762# CONFIG_MOUSE_SERIAL is not set
751# CONFIG_MOUSE_APPLETOUCH is not set 763# CONFIG_MOUSE_APPLETOUCH is not set
@@ -791,12 +803,6 @@ CONFIG_SERIAL_CORE=y
791CONFIG_SERIAL_CORE_CONSOLE=y 803CONFIG_SERIAL_CORE_CONSOLE=y
792CONFIG_SERIAL_CPM=y 804CONFIG_SERIAL_CPM=y
793CONFIG_SERIAL_CPM_CONSOLE=y 805CONFIG_SERIAL_CPM_CONSOLE=y
794# CONFIG_SERIAL_CPM_SCC1 is not set
795CONFIG_SERIAL_CPM_SCC2=y
796# CONFIG_SERIAL_CPM_SCC3 is not set
797# CONFIG_SERIAL_CPM_SCC4 is not set
798# CONFIG_SERIAL_CPM_SMC1 is not set
799# CONFIG_SERIAL_CPM_SMC2 is not set
800# CONFIG_SERIAL_JSM is not set 806# CONFIG_SERIAL_JSM is not set
801CONFIG_UNIX98_PTYS=y 807CONFIG_UNIX98_PTYS=y
802CONFIG_LEGACY_PTYS=y 808CONFIG_LEGACY_PTYS=y
@@ -980,6 +986,16 @@ CONFIG_SSB_POSSIBLE=y
980# CONFIG_MFD_SM501 is not set 986# CONFIG_MFD_SM501 is not set
981# CONFIG_HTC_PASIC3 is not set 987# CONFIG_HTC_PASIC3 is not set
982# CONFIG_MFD_TMIO is not set 988# CONFIG_MFD_TMIO is not set
989# CONFIG_MFD_WM8400 is not set
990# CONFIG_MFD_WM8350_I2C is not set
991
992#
993# Voltage and Current regulators
994#
995# CONFIG_REGULATOR is not set
996# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
997# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
998# CONFIG_REGULATOR_BQ24022 is not set
983 999
984# 1000#
985# Multimedia devices 1001# Multimedia devices
@@ -1019,12 +1035,19 @@ CONFIG_DRM=m
1019# 1035#
1020# CONFIG_DISPLAY_SUPPORT is not set 1036# CONFIG_DISPLAY_SUPPORT is not set
1021CONFIG_SOUND=m 1037CONFIG_SOUND=m
1038# CONFIG_SOUND_OSS_CORE is not set
1022# CONFIG_SND is not set 1039# CONFIG_SND is not set
1023# CONFIG_SOUND_PRIME is not set 1040# CONFIG_SOUND_PRIME is not set
1024CONFIG_HID_SUPPORT=y 1041CONFIG_HID_SUPPORT=y
1025CONFIG_HID=y 1042CONFIG_HID=y
1026# CONFIG_HID_DEBUG is not set 1043# CONFIG_HID_DEBUG is not set
1027# CONFIG_HIDRAW is not set 1044# CONFIG_HIDRAW is not set
1045# CONFIG_HID_PID is not set
1046
1047#
1048# Special HID drivers
1049#
1050CONFIG_HID_COMPAT=y
1028CONFIG_USB_SUPPORT=y 1051CONFIG_USB_SUPPORT=y
1029CONFIG_USB_ARCH_HAS_HCD=y 1052CONFIG_USB_ARCH_HAS_HCD=y
1030CONFIG_USB_ARCH_HAS_OHCI=y 1053CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1041,6 +1064,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1041# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1064# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1042# 1065#
1043# CONFIG_USB_GADGET is not set 1066# CONFIG_USB_GADGET is not set
1067# CONFIG_UWB is not set
1044# CONFIG_MMC is not set 1068# CONFIG_MMC is not set
1045# CONFIG_MEMSTICK is not set 1069# CONFIG_MEMSTICK is not set
1046# CONFIG_NEW_LEDS is not set 1070# CONFIG_NEW_LEDS is not set
@@ -1051,6 +1075,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1051# CONFIG_DMADEVICES is not set 1075# CONFIG_DMADEVICES is not set
1052# CONFIG_AUXDISPLAY is not set 1076# CONFIG_AUXDISPLAY is not set
1053# CONFIG_UIO is not set 1077# CONFIG_UIO is not set
1078# CONFIG_STAGING is not set
1054 1079
1055# 1080#
1056# File systems 1081# File systems
@@ -1062,12 +1087,13 @@ CONFIG_EXT3_FS=y
1062CONFIG_EXT3_FS_XATTR=y 1087CONFIG_EXT3_FS_XATTR=y
1063# CONFIG_EXT3_FS_POSIX_ACL is not set 1088# CONFIG_EXT3_FS_POSIX_ACL is not set
1064# CONFIG_EXT3_FS_SECURITY is not set 1089# CONFIG_EXT3_FS_SECURITY is not set
1065# CONFIG_EXT4DEV_FS is not set 1090# CONFIG_EXT4_FS is not set
1066CONFIG_JBD=y 1091CONFIG_JBD=y
1067CONFIG_FS_MBCACHE=y 1092CONFIG_FS_MBCACHE=y
1068# CONFIG_REISERFS_FS is not set 1093# CONFIG_REISERFS_FS is not set
1069# CONFIG_JFS_FS is not set 1094# CONFIG_JFS_FS is not set
1070# CONFIG_FS_POSIX_ACL is not set 1095# CONFIG_FS_POSIX_ACL is not set
1096CONFIG_FILE_LOCKING=y
1071# CONFIG_XFS_FS is not set 1097# CONFIG_XFS_FS is not set
1072# CONFIG_OCFS2_FS is not set 1098# CONFIG_OCFS2_FS is not set
1073CONFIG_DNOTIFY=y 1099CONFIG_DNOTIFY=y
@@ -1103,6 +1129,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1103CONFIG_PROC_FS=y 1129CONFIG_PROC_FS=y
1104# CONFIG_PROC_KCORE is not set 1130# CONFIG_PROC_KCORE is not set
1105CONFIG_PROC_SYSCTL=y 1131CONFIG_PROC_SYSCTL=y
1132CONFIG_PROC_PAGE_MONITOR=y
1106CONFIG_SYSFS=y 1133CONFIG_SYSFS=y
1107CONFIG_TMPFS=y 1134CONFIG_TMPFS=y
1108# CONFIG_TMPFS_POSIX_ACL is not set 1135# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1139,6 +1166,7 @@ CONFIG_LOCKD=y
1139CONFIG_LOCKD_V4=y 1166CONFIG_LOCKD_V4=y
1140CONFIG_NFS_COMMON=y 1167CONFIG_NFS_COMMON=y
1141CONFIG_SUNRPC=y 1168CONFIG_SUNRPC=y
1169# CONFIG_SUNRPC_REGISTER_V4 is not set
1142# CONFIG_RPCSEC_GSS_KRB5 is not set 1170# CONFIG_RPCSEC_GSS_KRB5 is not set
1143# CONFIG_RPCSEC_GSS_SPKM3 is not set 1171# CONFIG_RPCSEC_GSS_SPKM3 is not set
1144CONFIG_SMB_FS=m 1172CONFIG_SMB_FS=m
@@ -1199,7 +1227,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1199# Library routines 1227# Library routines
1200# 1228#
1201CONFIG_BITREVERSE=y 1229CONFIG_BITREVERSE=y
1202# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1203CONFIG_CRC_CCITT=y 1230CONFIG_CRC_CCITT=y
1204# CONFIG_CRC16 is not set 1231# CONFIG_CRC16 is not set
1205CONFIG_CRC_T10DIF=m 1232CONFIG_CRC_T10DIF=m
@@ -1253,15 +1280,23 @@ CONFIG_SCHED_DEBUG=y
1253# CONFIG_DEBUG_SG is not set 1280# CONFIG_DEBUG_SG is not set
1254# CONFIG_BOOT_PRINTK_DELAY is not set 1281# CONFIG_BOOT_PRINTK_DELAY is not set
1255# CONFIG_RCU_TORTURE_TEST is not set 1282# CONFIG_RCU_TORTURE_TEST is not set
1283# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1256# CONFIG_BACKTRACE_SELF_TEST is not set 1284# CONFIG_BACKTRACE_SELF_TEST is not set
1285# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1257# CONFIG_FAULT_INJECTION is not set 1286# CONFIG_FAULT_INJECTION is not set
1258# CONFIG_LATENCYTOP is not set 1287# CONFIG_LATENCYTOP is not set
1259CONFIG_SYSCTL_SYSCALL_CHECK=y 1288CONFIG_SYSCTL_SYSCALL_CHECK=y
1260CONFIG_HAVE_FTRACE=y 1289CONFIG_HAVE_FUNCTION_TRACER=y
1261CONFIG_HAVE_DYNAMIC_FTRACE=y 1290
1262# CONFIG_FTRACE is not set 1291#
1292# Tracers
1293#
1294# CONFIG_FUNCTION_TRACER is not set
1263# CONFIG_SCHED_TRACER is not set 1295# CONFIG_SCHED_TRACER is not set
1264# CONFIG_CONTEXT_SWITCH_TRACER is not set 1296# CONFIG_CONTEXT_SWITCH_TRACER is not set
1297# CONFIG_BOOT_TRACER is not set
1298# CONFIG_STACK_TRACER is not set
1299# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1265# CONFIG_SAMPLES is not set 1300# CONFIG_SAMPLES is not set
1266CONFIG_HAVE_ARCH_KGDB=y 1301CONFIG_HAVE_ARCH_KGDB=y
1267# CONFIG_KGDB is not set 1302# CONFIG_KGDB is not set
@@ -1270,6 +1305,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1270# CONFIG_DEBUG_PAGEALLOC is not set 1305# CONFIG_DEBUG_PAGEALLOC is not set
1271# CONFIG_CODE_PATCHING_SELFTEST is not set 1306# CONFIG_CODE_PATCHING_SELFTEST is not set
1272# CONFIG_FTR_FIXUP_SELFTEST is not set 1307# CONFIG_FTR_FIXUP_SELFTEST is not set
1308# CONFIG_MSI_BITMAP_SELFTEST is not set
1273# CONFIG_XMON is not set 1309# CONFIG_XMON is not set
1274# CONFIG_IRQSTACKS is not set 1310# CONFIG_IRQSTACKS is not set
1275CONFIG_BDI_SWITCH=y 1311CONFIG_BDI_SWITCH=y
@@ -1280,12 +1316,14 @@ CONFIG_BDI_SWITCH=y
1280# 1316#
1281# CONFIG_KEYS is not set 1317# CONFIG_KEYS is not set
1282# CONFIG_SECURITY is not set 1318# CONFIG_SECURITY is not set
1319# CONFIG_SECURITYFS is not set
1283# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1320# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1284CONFIG_CRYPTO=y 1321CONFIG_CRYPTO=y
1285 1322
1286# 1323#
1287# Crypto core or helper 1324# Crypto core or helper
1288# 1325#
1326# CONFIG_CRYPTO_FIPS is not set
1289# CONFIG_CRYPTO_MANAGER is not set 1327# CONFIG_CRYPTO_MANAGER is not set
1290# CONFIG_CRYPTO_GF128MUL is not set 1328# CONFIG_CRYPTO_GF128MUL is not set
1291# CONFIG_CRYPTO_NULL is not set 1329# CONFIG_CRYPTO_NULL is not set
@@ -1358,6 +1396,11 @@ CONFIG_CRYPTO=y
1358# 1396#
1359# CONFIG_CRYPTO_DEFLATE is not set 1397# CONFIG_CRYPTO_DEFLATE is not set
1360# CONFIG_CRYPTO_LZO is not set 1398# CONFIG_CRYPTO_LZO is not set
1399
1400#
1401# Random Number Generation
1402#
1403# CONFIG_CRYPTO_ANSI_CPRNG is not set
1361CONFIG_CRYPTO_HW=y 1404CONFIG_CRYPTO_HW=y
1362# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1405# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1363# CONFIG_CRYPTO_DEV_TALITOS is not set 1406# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index 1b2d5d577915..f3e4f3481fda 100644
--- a/arch/powerpc/configs/85xx/tqm8540_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8540_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:37 2008 4# Sat Nov 8 12:40:20 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -105,7 +105,9 @@ CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 105CONFIG_TIMERFD=y
106CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
107CONFIG_SHMEM=y 107CONFIG_SHMEM=y
108CONFIG_AIO=y
108CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y
109CONFIG_SLUB_DEBUG=y 111CONFIG_SLUB_DEBUG=y
110# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
111CONFIG_SLUB=y 113CONFIG_SLUB=y
@@ -118,10 +120,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -148,6 +146,7 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_NOOP is not set 146# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 147CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_CLASSIC_RCU=y 148CONFIG_CLASSIC_RCU=y
149# CONFIG_FREEZER is not set
151 150
152# 151#
153# Platform support 152# Platform support
@@ -183,14 +182,15 @@ CONFIG_MPIC=y
183# CONFIG_PPC_INDIRECT_IO is not set 182# CONFIG_PPC_INDIRECT_IO is not set
184# CONFIG_GENERIC_IOMAP is not set 183# CONFIG_GENERIC_IOMAP is not set
185# CONFIG_CPU_FREQ is not set 184# CONFIG_CPU_FREQ is not set
185# CONFIG_QUICC_ENGINE is not set
186# CONFIG_CPM2 is not set 186# CONFIG_CPM2 is not set
187# CONFIG_FSL_ULI1575 is not set 187# CONFIG_FSL_ULI1575 is not set
188# CONFIG_MPC8xxx_GPIO is not set
188 189
189# 190#
190# Kernel options 191# Kernel options
191# 192#
192# CONFIG_HIGHMEM is not set 193# CONFIG_HIGHMEM is not set
193# CONFIG_TICK_ONESHOT is not set
194# CONFIG_NO_HZ is not set 194# CONFIG_NO_HZ is not set
195# CONFIG_HIGH_RES_TIMERS is not set 195# CONFIG_HIGH_RES_TIMERS is not set
196CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 196CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -204,6 +204,8 @@ CONFIG_PREEMPT_NONE=y
204# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
205# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
206CONFIG_BINFMT_ELF=y 206CONFIG_BINFMT_ELF=y
207# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
208# CONFIG_HAVE_AOUT is not set
207# CONFIG_BINFMT_MISC is not set 209# CONFIG_BINFMT_MISC is not set
208CONFIG_MATH_EMULATION=y 210CONFIG_MATH_EMULATION=y
209# CONFIG_IOMMU_HELPER is not set 211# CONFIG_IOMMU_HELPER is not set
@@ -218,15 +220,15 @@ CONFIG_FLATMEM_MANUAL=y
218# CONFIG_SPARSEMEM_MANUAL is not set 220# CONFIG_SPARSEMEM_MANUAL is not set
219CONFIG_FLATMEM=y 221CONFIG_FLATMEM=y
220CONFIG_FLAT_NODE_MEM_MAP=y 222CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_STATIC is not set
222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
223CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 230CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y
230CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
231# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
232# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
@@ -249,7 +251,7 @@ CONFIG_PCI_SYSCALL=y
249# CONFIG_PCIEPORTBUS is not set 251# CONFIG_PCIEPORTBUS is not set
250CONFIG_ARCH_SUPPORTS_MSI=y 252CONFIG_ARCH_SUPPORTS_MSI=y
251# CONFIG_PCI_MSI is not set 253# CONFIG_PCI_MSI is not set
252CONFIG_PCI_LEGACY=y 254# CONFIG_PCI_LEGACY is not set
253# CONFIG_HAS_RAPIDIO is not set 255# CONFIG_HAS_RAPIDIO is not set
254 256
255# 257#
@@ -316,6 +318,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
316# CONFIG_TIPC is not set 318# CONFIG_TIPC is not set
317# CONFIG_ATM is not set 319# CONFIG_ATM is not set
318# CONFIG_BRIDGE is not set 320# CONFIG_BRIDGE is not set
321# CONFIG_NET_DSA is not set
319# CONFIG_VLAN_8021Q is not set 322# CONFIG_VLAN_8021Q is not set
320# CONFIG_DECNET is not set 323# CONFIG_DECNET is not set
321# CONFIG_LLC2 is not set 324# CONFIG_LLC2 is not set
@@ -336,11 +339,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_IRDA is not set 339# CONFIG_IRDA is not set
337# CONFIG_BT is not set 340# CONFIG_BT is not set
338# CONFIG_AF_RXRPC is not set 341# CONFIG_AF_RXRPC is not set
339 342# CONFIG_PHONET is not set
340# 343CONFIG_WIRELESS=y
341# Wireless
342#
343# CONFIG_CFG80211 is not set 344# CONFIG_CFG80211 is not set
345CONFIG_WIRELESS_OLD_REGULATORY=y
344# CONFIG_WIRELESS_EXT is not set 346# CONFIG_WIRELESS_EXT is not set
345# CONFIG_MAC80211 is not set 347# CONFIG_MAC80211 is not set
346# CONFIG_IEEE80211 is not set 348# CONFIG_IEEE80211 is not set
@@ -466,18 +468,17 @@ CONFIG_MISC_DEVICES=y
466# CONFIG_HP_ILO is not set 468# CONFIG_HP_ILO is not set
467CONFIG_HAVE_IDE=y 469CONFIG_HAVE_IDE=y
468CONFIG_IDE=y 470CONFIG_IDE=y
469CONFIG_BLK_DEV_IDE=y
470 471
471# 472#
472# Please see Documentation/ide/ide.txt for help/info on IDE drives 473# Please see Documentation/ide/ide.txt for help/info on IDE drives
473# 474#
474CONFIG_IDE_TIMINGS=y 475CONFIG_IDE_TIMINGS=y
475# CONFIG_BLK_DEV_IDE_SATA is not set 476# CONFIG_BLK_DEV_IDE_SATA is not set
476CONFIG_BLK_DEV_IDEDISK=y 477CONFIG_IDE_GD=y
477# CONFIG_IDEDISK_MULTI_MODE is not set 478CONFIG_IDE_GD_ATA=y
479# CONFIG_IDE_GD_ATAPI is not set
478# CONFIG_BLK_DEV_IDECD is not set 480# CONFIG_BLK_DEV_IDECD is not set
479# CONFIG_BLK_DEV_IDETAPE is not set 481# CONFIG_BLK_DEV_IDETAPE is not set
480# CONFIG_BLK_DEV_IDEFLOPPY is not set
481# CONFIG_IDE_TASK_IOCTL is not set 482# CONFIG_IDE_TASK_IOCTL is not set
482CONFIG_IDE_PROC_FS=y 483CONFIG_IDE_PROC_FS=y
483 484
@@ -580,6 +581,9 @@ CONFIG_MII=y
580# CONFIG_IBM_NEW_EMAC_RGMII is not set 581# CONFIG_IBM_NEW_EMAC_RGMII is not set
581# CONFIG_IBM_NEW_EMAC_TAH is not set 582# CONFIG_IBM_NEW_EMAC_TAH is not set
582# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 583# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
584# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
585# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
586# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
583CONFIG_NET_PCI=y 587CONFIG_NET_PCI=y
584# CONFIG_PCNET32 is not set 588# CONFIG_PCNET32 is not set
585# CONFIG_AMD8111_ETH is not set 589# CONFIG_AMD8111_ETH is not set
@@ -600,6 +604,7 @@ CONFIG_E100=y
600# CONFIG_TLAN is not set 604# CONFIG_TLAN is not set
601# CONFIG_VIA_RHINE is not set 605# CONFIG_VIA_RHINE is not set
602# CONFIG_SC92031 is not set 606# CONFIG_SC92031 is not set
607# CONFIG_ATL2 is not set
603CONFIG_NETDEV_1000=y 608CONFIG_NETDEV_1000=y
604# CONFIG_ACENIC is not set 609# CONFIG_ACENIC is not set
605# CONFIG_DL2K is not set 610# CONFIG_DL2K is not set
@@ -621,18 +626,22 @@ CONFIG_GIANFAR=y
621# CONFIG_QLA3XXX is not set 626# CONFIG_QLA3XXX is not set
622# CONFIG_ATL1 is not set 627# CONFIG_ATL1 is not set
623# CONFIG_ATL1E is not set 628# CONFIG_ATL1E is not set
629# CONFIG_JME is not set
624CONFIG_NETDEV_10000=y 630CONFIG_NETDEV_10000=y
625# CONFIG_CHELSIO_T1 is not set 631# CONFIG_CHELSIO_T1 is not set
626# CONFIG_CHELSIO_T3 is not set 632# CONFIG_CHELSIO_T3 is not set
633# CONFIG_ENIC is not set
627# CONFIG_IXGBE is not set 634# CONFIG_IXGBE is not set
628# CONFIG_IXGB is not set 635# CONFIG_IXGB is not set
629# CONFIG_S2IO is not set 636# CONFIG_S2IO is not set
630# CONFIG_MYRI10GE is not set 637# CONFIG_MYRI10GE is not set
631# CONFIG_NETXEN_NIC is not set 638# CONFIG_NETXEN_NIC is not set
632# CONFIG_NIU is not set 639# CONFIG_NIU is not set
640# CONFIG_MLX4_EN is not set
633# CONFIG_MLX4_CORE is not set 641# CONFIG_MLX4_CORE is not set
634# CONFIG_TEHUTI is not set 642# CONFIG_TEHUTI is not set
635# CONFIG_BNX2X is not set 643# CONFIG_BNX2X is not set
644# CONFIG_QLGE is not set
636# CONFIG_SFC is not set 645# CONFIG_SFC is not set
637# CONFIG_TR is not set 646# CONFIG_TR is not set
638 647
@@ -867,6 +876,17 @@ CONFIG_SSB_POSSIBLE=y
867# CONFIG_MFD_SM501 is not set 876# CONFIG_MFD_SM501 is not set
868# CONFIG_HTC_PASIC3 is not set 877# CONFIG_HTC_PASIC3 is not set
869# CONFIG_MFD_TMIO is not set 878# CONFIG_MFD_TMIO is not set
879# CONFIG_PMIC_DA903X is not set
880# CONFIG_MFD_WM8400 is not set
881# CONFIG_MFD_WM8350_I2C is not set
882
883#
884# Voltage and Current regulators
885#
886# CONFIG_REGULATOR is not set
887# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
888# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
889# CONFIG_REGULATOR_BQ24022 is not set
870 890
871# 891#
872# Multimedia devices 892# Multimedia devices
@@ -903,6 +923,12 @@ CONFIG_HID_SUPPORT=y
903CONFIG_HID=y 923CONFIG_HID=y
904# CONFIG_HID_DEBUG is not set 924# CONFIG_HID_DEBUG is not set
905# CONFIG_HIDRAW is not set 925# CONFIG_HIDRAW is not set
926# CONFIG_HID_PID is not set
927
928#
929# Special HID drivers
930#
931CONFIG_HID_COMPAT=y
906CONFIG_USB_SUPPORT=y 932CONFIG_USB_SUPPORT=y
907CONFIG_USB_ARCH_HAS_HCD=y 933CONFIG_USB_ARCH_HAS_HCD=y
908CONFIG_USB_ARCH_HAS_OHCI=y 934CONFIG_USB_ARCH_HAS_OHCI=y
@@ -919,6 +945,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
919# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 945# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
920# 946#
921# CONFIG_USB_GADGET is not set 947# CONFIG_USB_GADGET is not set
948# CONFIG_UWB is not set
922# CONFIG_MMC is not set 949# CONFIG_MMC is not set
923# CONFIG_MEMSTICK is not set 950# CONFIG_MEMSTICK is not set
924# CONFIG_NEW_LEDS is not set 951# CONFIG_NEW_LEDS is not set
@@ -928,6 +955,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
928# CONFIG_RTC_CLASS is not set 955# CONFIG_RTC_CLASS is not set
929# CONFIG_DMADEVICES is not set 956# CONFIG_DMADEVICES is not set
930# CONFIG_UIO is not set 957# CONFIG_UIO is not set
958# CONFIG_STAGING is not set
931 959
932# 960#
933# File systems 961# File systems
@@ -939,12 +967,13 @@ CONFIG_EXT3_FS=y
939CONFIG_EXT3_FS_XATTR=y 967CONFIG_EXT3_FS_XATTR=y
940# CONFIG_EXT3_FS_POSIX_ACL is not set 968# CONFIG_EXT3_FS_POSIX_ACL is not set
941# CONFIG_EXT3_FS_SECURITY is not set 969# CONFIG_EXT3_FS_SECURITY is not set
942# CONFIG_EXT4DEV_FS is not set 970# CONFIG_EXT4_FS is not set
943CONFIG_JBD=y 971CONFIG_JBD=y
944CONFIG_FS_MBCACHE=y 972CONFIG_FS_MBCACHE=y
945# CONFIG_REISERFS_FS is not set 973# CONFIG_REISERFS_FS is not set
946# CONFIG_JFS_FS is not set 974# CONFIG_JFS_FS is not set
947# CONFIG_FS_POSIX_ACL is not set 975# CONFIG_FS_POSIX_ACL is not set
976CONFIG_FILE_LOCKING=y
948# CONFIG_XFS_FS is not set 977# CONFIG_XFS_FS is not set
949# CONFIG_OCFS2_FS is not set 978# CONFIG_OCFS2_FS is not set
950CONFIG_DNOTIFY=y 979CONFIG_DNOTIFY=y
@@ -974,6 +1003,7 @@ CONFIG_INOTIFY_USER=y
974CONFIG_PROC_FS=y 1003CONFIG_PROC_FS=y
975CONFIG_PROC_KCORE=y 1004CONFIG_PROC_KCORE=y
976CONFIG_PROC_SYSCTL=y 1005CONFIG_PROC_SYSCTL=y
1006CONFIG_PROC_PAGE_MONITOR=y
977CONFIG_SYSFS=y 1007CONFIG_SYSFS=y
978CONFIG_TMPFS=y 1008CONFIG_TMPFS=y
979# CONFIG_TMPFS_POSIX_ACL is not set 1009# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1019,6 +1049,7 @@ CONFIG_ROOT_NFS=y
1019CONFIG_LOCKD=y 1049CONFIG_LOCKD=y
1020CONFIG_NFS_COMMON=y 1050CONFIG_NFS_COMMON=y
1021CONFIG_SUNRPC=y 1051CONFIG_SUNRPC=y
1052# CONFIG_SUNRPC_REGISTER_V4 is not set
1022# CONFIG_RPCSEC_GSS_KRB5 is not set 1053# CONFIG_RPCSEC_GSS_KRB5 is not set
1023# CONFIG_RPCSEC_GSS_SPKM3 is not set 1054# CONFIG_RPCSEC_GSS_SPKM3 is not set
1024# CONFIG_SMB_FS is not set 1055# CONFIG_SMB_FS is not set
@@ -1051,7 +1082,6 @@ CONFIG_PARTITION_ADVANCED=y
1051# Library routines 1082# Library routines
1052# 1083#
1053CONFIG_BITREVERSE=y 1084CONFIG_BITREVERSE=y
1054# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1055# CONFIG_CRC_CCITT is not set 1085# CONFIG_CRC_CCITT is not set
1056# CONFIG_CRC16 is not set 1086# CONFIG_CRC16 is not set
1057# CONFIG_CRC_T10DIF is not set 1087# CONFIG_CRC_T10DIF is not set
@@ -1083,13 +1113,15 @@ CONFIG_FRAME_WARN=1024
1083# CONFIG_SLUB_STATS is not set 1113# CONFIG_SLUB_STATS is not set
1084# CONFIG_DEBUG_BUGVERBOSE is not set 1114# CONFIG_DEBUG_BUGVERBOSE is not set
1085# CONFIG_DEBUG_MEMORY_INIT is not set 1115# CONFIG_DEBUG_MEMORY_INIT is not set
1116# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1086# CONFIG_LATENCYTOP is not set 1117# CONFIG_LATENCYTOP is not set
1087CONFIG_SYSCTL_SYSCALL_CHECK=y 1118CONFIG_SYSCTL_SYSCALL_CHECK=y
1088CONFIG_HAVE_FTRACE=y 1119CONFIG_HAVE_FUNCTION_TRACER=y
1089CONFIG_HAVE_DYNAMIC_FTRACE=y 1120
1090# CONFIG_FTRACE is not set 1121#
1091# CONFIG_SCHED_TRACER is not set 1122# Tracers
1092# CONFIG_CONTEXT_SWITCH_TRACER is not set 1123#
1124# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1093# CONFIG_SAMPLES is not set 1125# CONFIG_SAMPLES is not set
1094CONFIG_HAVE_ARCH_KGDB=y 1126CONFIG_HAVE_ARCH_KGDB=y
1095# CONFIG_IRQSTACKS is not set 1127# CONFIG_IRQSTACKS is not set
@@ -1100,12 +1132,14 @@ CONFIG_HAVE_ARCH_KGDB=y
1100# 1132#
1101# CONFIG_KEYS is not set 1133# CONFIG_KEYS is not set
1102# CONFIG_SECURITY is not set 1134# CONFIG_SECURITY is not set
1135# CONFIG_SECURITYFS is not set
1103# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1136# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1104CONFIG_CRYPTO=y 1137CONFIG_CRYPTO=y
1105 1138
1106# 1139#
1107# Crypto core or helper 1140# Crypto core or helper
1108# 1141#
1142# CONFIG_CRYPTO_FIPS is not set
1109# CONFIG_CRYPTO_MANAGER is not set 1143# CONFIG_CRYPTO_MANAGER is not set
1110# CONFIG_CRYPTO_GF128MUL is not set 1144# CONFIG_CRYPTO_GF128MUL is not set
1111# CONFIG_CRYPTO_NULL is not set 1145# CONFIG_CRYPTO_NULL is not set
@@ -1177,6 +1211,11 @@ CONFIG_CRYPTO=y
1177# 1211#
1178# CONFIG_CRYPTO_DEFLATE is not set 1212# CONFIG_CRYPTO_DEFLATE is not set
1179# CONFIG_CRYPTO_LZO is not set 1213# CONFIG_CRYPTO_LZO is not set
1214
1215#
1216# Random Number Generation
1217#
1218# CONFIG_CRYPTO_ANSI_CPRNG is not set
1180CONFIG_CRYPTO_HW=y 1219CONFIG_CRYPTO_HW=y
1181# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1220# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1182# CONFIG_CRYPTO_DEV_TALITOS is not set 1221# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index da841a09755c..c62489394535 100644
--- a/arch/powerpc/configs/85xx/tqm8541_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8541_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:39 2008 4# Sat Nov 8 12:40:21 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -106,7 +106,9 @@ CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 106CONFIG_TIMERFD=y
107CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
108CONFIG_SHMEM=y 108CONFIG_SHMEM=y
109CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
110CONFIG_SLUB_DEBUG=y 112CONFIG_SLUB_DEBUG=y
111# CONFIG_SLAB is not set 113# CONFIG_SLAB is not set
112CONFIG_SLUB=y 114CONFIG_SLUB=y
@@ -119,10 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y 124CONFIG_HAVE_CLK=y
125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
@@ -149,6 +148,7 @@ CONFIG_DEFAULT_AS=y
149# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_FREEZER is not set
152 152
153# 153#
154# Platform support 154# Platform support
@@ -184,15 +184,16 @@ CONFIG_MPIC=y
184# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_QUICC_ENGINE is not set
187CONFIG_CPM2=y 188CONFIG_CPM2=y
188# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
189CONFIG_CPM=y 190CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set
190 192
191# 193#
192# Kernel options 194# Kernel options
193# 195#
194# CONFIG_HIGHMEM is not set 196# CONFIG_HIGHMEM is not set
195# CONFIG_TICK_ONESHOT is not set
196# CONFIG_NO_HZ is not set 197# CONFIG_NO_HZ is not set
197# CONFIG_HIGH_RES_TIMERS is not set 198# CONFIG_HIGH_RES_TIMERS is not set
198CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 199CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -206,6 +207,8 @@ CONFIG_PREEMPT_NONE=y
206# CONFIG_PREEMPT_VOLUNTARY is not set 207# CONFIG_PREEMPT_VOLUNTARY is not set
207# CONFIG_PREEMPT is not set 208# CONFIG_PREEMPT is not set
208CONFIG_BINFMT_ELF=y 209CONFIG_BINFMT_ELF=y
210# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
211# CONFIG_HAVE_AOUT is not set
209# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
210CONFIG_MATH_EMULATION=y 213CONFIG_MATH_EMULATION=y
211# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
@@ -220,15 +223,15 @@ CONFIG_FLATMEM_MANUAL=y
220# CONFIG_SPARSEMEM_MANUAL is not set 223# CONFIG_SPARSEMEM_MANUAL is not set
221CONFIG_FLATMEM=y 224CONFIG_FLATMEM=y
222CONFIG_FLAT_NODE_MEM_MAP=y 225CONFIG_FLAT_NODE_MEM_MAP=y
223# CONFIG_SPARSEMEM_STATIC is not set
224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
225CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set 229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y
232CONFIG_FORCE_MAX_ZONEORDER=11 235CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 236# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 237# CONFIG_CMDLINE_BOOL is not set
@@ -251,7 +254,7 @@ CONFIG_PCI_SYSCALL=y
251# CONFIG_PCIEPORTBUS is not set 254# CONFIG_PCIEPORTBUS is not set
252CONFIG_ARCH_SUPPORTS_MSI=y 255CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 256# CONFIG_PCI_MSI is not set
254CONFIG_PCI_LEGACY=y 257# CONFIG_PCI_LEGACY is not set
255# CONFIG_HAS_RAPIDIO is not set 258# CONFIG_HAS_RAPIDIO is not set
256 259
257# 260#
@@ -318,6 +321,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
318# CONFIG_TIPC is not set 321# CONFIG_TIPC is not set
319# CONFIG_ATM is not set 322# CONFIG_ATM is not set
320# CONFIG_BRIDGE is not set 323# CONFIG_BRIDGE is not set
324# CONFIG_NET_DSA is not set
321# CONFIG_VLAN_8021Q is not set 325# CONFIG_VLAN_8021Q is not set
322# CONFIG_DECNET is not set 326# CONFIG_DECNET is not set
323# CONFIG_LLC2 is not set 327# CONFIG_LLC2 is not set
@@ -338,11 +342,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
338# CONFIG_IRDA is not set 342# CONFIG_IRDA is not set
339# CONFIG_BT is not set 343# CONFIG_BT is not set
340# CONFIG_AF_RXRPC is not set 344# CONFIG_AF_RXRPC is not set
341 345# CONFIG_PHONET is not set
342# 346CONFIG_WIRELESS=y
343# Wireless
344#
345# CONFIG_CFG80211 is not set 347# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y
346# CONFIG_WIRELESS_EXT is not set 349# CONFIG_WIRELESS_EXT is not set
347# CONFIG_MAC80211 is not set 350# CONFIG_MAC80211 is not set
348# CONFIG_IEEE80211 is not set 351# CONFIG_IEEE80211 is not set
@@ -469,18 +472,17 @@ CONFIG_MISC_DEVICES=y
469# CONFIG_HP_ILO is not set 472# CONFIG_HP_ILO is not set
470CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
471CONFIG_IDE=y 474CONFIG_IDE=y
472CONFIG_BLK_DEV_IDE=y
473 475
474# 476#
475# Please see Documentation/ide/ide.txt for help/info on IDE drives 477# Please see Documentation/ide/ide.txt for help/info on IDE drives
476# 478#
477CONFIG_IDE_TIMINGS=y 479CONFIG_IDE_TIMINGS=y
478# CONFIG_BLK_DEV_IDE_SATA is not set 480# CONFIG_BLK_DEV_IDE_SATA is not set
479CONFIG_BLK_DEV_IDEDISK=y 481CONFIG_IDE_GD=y
480# CONFIG_IDEDISK_MULTI_MODE is not set 482CONFIG_IDE_GD_ATA=y
483# CONFIG_IDE_GD_ATAPI is not set
481# CONFIG_BLK_DEV_IDECD is not set 484# CONFIG_BLK_DEV_IDECD is not set
482# CONFIG_BLK_DEV_IDETAPE is not set 485# CONFIG_BLK_DEV_IDETAPE is not set
483# CONFIG_BLK_DEV_IDEFLOPPY is not set
484# CONFIG_IDE_TASK_IOCTL is not set 486# CONFIG_IDE_TASK_IOCTL is not set
485CONFIG_IDE_PROC_FS=y 487CONFIG_IDE_PROC_FS=y
486 488
@@ -583,6 +585,9 @@ CONFIG_MII=y
583# CONFIG_IBM_NEW_EMAC_RGMII is not set 585# CONFIG_IBM_NEW_EMAC_RGMII is not set
584# CONFIG_IBM_NEW_EMAC_TAH is not set 586# CONFIG_IBM_NEW_EMAC_TAH is not set
585# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 587# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
588# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
589# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
590# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
586CONFIG_NET_PCI=y 591CONFIG_NET_PCI=y
587# CONFIG_PCNET32 is not set 592# CONFIG_PCNET32 is not set
588# CONFIG_AMD8111_ETH is not set 593# CONFIG_AMD8111_ETH is not set
@@ -603,6 +608,7 @@ CONFIG_E100=y
603# CONFIG_TLAN is not set 608# CONFIG_TLAN is not set
604# CONFIG_VIA_RHINE is not set 609# CONFIG_VIA_RHINE is not set
605# CONFIG_SC92031 is not set 610# CONFIG_SC92031 is not set
611# CONFIG_ATL2 is not set
606# CONFIG_FS_ENET is not set 612# CONFIG_FS_ENET is not set
607CONFIG_NETDEV_1000=y 613CONFIG_NETDEV_1000=y
608# CONFIG_ACENIC is not set 614# CONFIG_ACENIC is not set
@@ -625,18 +631,22 @@ CONFIG_GIANFAR=y
625# CONFIG_QLA3XXX is not set 631# CONFIG_QLA3XXX is not set
626# CONFIG_ATL1 is not set 632# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set 633# CONFIG_ATL1E is not set
634# CONFIG_JME is not set
628CONFIG_NETDEV_10000=y 635CONFIG_NETDEV_10000=y
629# CONFIG_CHELSIO_T1 is not set 636# CONFIG_CHELSIO_T1 is not set
630# CONFIG_CHELSIO_T3 is not set 637# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set
631# CONFIG_IXGBE is not set 639# CONFIG_IXGBE is not set
632# CONFIG_IXGB is not set 640# CONFIG_IXGB is not set
633# CONFIG_S2IO is not set 641# CONFIG_S2IO is not set
634# CONFIG_MYRI10GE is not set 642# CONFIG_MYRI10GE is not set
635# CONFIG_NETXEN_NIC is not set 643# CONFIG_NETXEN_NIC is not set
636# CONFIG_NIU is not set 644# CONFIG_NIU is not set
645# CONFIG_MLX4_EN is not set
637# CONFIG_MLX4_CORE is not set 646# CONFIG_MLX4_CORE is not set
638# CONFIG_TEHUTI is not set 647# CONFIG_TEHUTI is not set
639# CONFIG_BNX2X is not set 648# CONFIG_BNX2X is not set
649# CONFIG_QLGE is not set
640# CONFIG_SFC is not set 650# CONFIG_SFC is not set
641# CONFIG_TR is not set 651# CONFIG_TR is not set
642 652
@@ -715,12 +725,6 @@ CONFIG_SERIAL_CORE=y
715CONFIG_SERIAL_CORE_CONSOLE=y 725CONFIG_SERIAL_CORE_CONSOLE=y
716CONFIG_SERIAL_CPM=y 726CONFIG_SERIAL_CPM=y
717CONFIG_SERIAL_CPM_CONSOLE=y 727CONFIG_SERIAL_CPM_CONSOLE=y
718CONFIG_SERIAL_CPM_SCC1=y
719# CONFIG_SERIAL_CPM_SCC2 is not set
720# CONFIG_SERIAL_CPM_SCC3 is not set
721# CONFIG_SERIAL_CPM_SCC4 is not set
722# CONFIG_SERIAL_CPM_SMC1 is not set
723# CONFIG_SERIAL_CPM_SMC2 is not set
724# CONFIG_SERIAL_JSM is not set 728# CONFIG_SERIAL_JSM is not set
725# CONFIG_SERIAL_OF_PLATFORM is not set 729# CONFIG_SERIAL_OF_PLATFORM is not set
726CONFIG_UNIX98_PTYS=y 730CONFIG_UNIX98_PTYS=y
@@ -900,6 +904,17 @@ CONFIG_SSB_POSSIBLE=y
900# CONFIG_MFD_SM501 is not set 904# CONFIG_MFD_SM501 is not set
901# CONFIG_HTC_PASIC3 is not set 905# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set 906# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set
910
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
903 918
904# 919#
905# Multimedia devices 920# Multimedia devices
@@ -936,6 +951,12 @@ CONFIG_HID_SUPPORT=y
936CONFIG_HID=y 951CONFIG_HID=y
937# CONFIG_HID_DEBUG is not set 952# CONFIG_HID_DEBUG is not set
938# CONFIG_HIDRAW is not set 953# CONFIG_HIDRAW is not set
954# CONFIG_HID_PID is not set
955
956#
957# Special HID drivers
958#
959CONFIG_HID_COMPAT=y
939CONFIG_USB_SUPPORT=y 960CONFIG_USB_SUPPORT=y
940CONFIG_USB_ARCH_HAS_HCD=y 961CONFIG_USB_ARCH_HAS_HCD=y
941CONFIG_USB_ARCH_HAS_OHCI=y 962CONFIG_USB_ARCH_HAS_OHCI=y
@@ -952,6 +973,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
953# 974#
954# CONFIG_USB_GADGET is not set 975# CONFIG_USB_GADGET is not set
976# CONFIG_UWB is not set
955# CONFIG_MMC is not set 977# CONFIG_MMC is not set
956# CONFIG_MEMSTICK is not set 978# CONFIG_MEMSTICK is not set
957# CONFIG_NEW_LEDS is not set 979# CONFIG_NEW_LEDS is not set
@@ -961,6 +983,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
961# CONFIG_RTC_CLASS is not set 983# CONFIG_RTC_CLASS is not set
962# CONFIG_DMADEVICES is not set 984# CONFIG_DMADEVICES is not set
963# CONFIG_UIO is not set 985# CONFIG_UIO is not set
986# CONFIG_STAGING is not set
964 987
965# 988#
966# File systems 989# File systems
@@ -972,12 +995,13 @@ CONFIG_EXT3_FS=y
972CONFIG_EXT3_FS_XATTR=y 995CONFIG_EXT3_FS_XATTR=y
973# CONFIG_EXT3_FS_POSIX_ACL is not set 996# CONFIG_EXT3_FS_POSIX_ACL is not set
974# CONFIG_EXT3_FS_SECURITY is not set 997# CONFIG_EXT3_FS_SECURITY is not set
975# CONFIG_EXT4DEV_FS is not set 998# CONFIG_EXT4_FS is not set
976CONFIG_JBD=y 999CONFIG_JBD=y
977CONFIG_FS_MBCACHE=y 1000CONFIG_FS_MBCACHE=y
978# CONFIG_REISERFS_FS is not set 1001# CONFIG_REISERFS_FS is not set
979# CONFIG_JFS_FS is not set 1002# CONFIG_JFS_FS is not set
980# CONFIG_FS_POSIX_ACL is not set 1003# CONFIG_FS_POSIX_ACL is not set
1004CONFIG_FILE_LOCKING=y
981# CONFIG_XFS_FS is not set 1005# CONFIG_XFS_FS is not set
982# CONFIG_OCFS2_FS is not set 1006# CONFIG_OCFS2_FS is not set
983CONFIG_DNOTIFY=y 1007CONFIG_DNOTIFY=y
@@ -1007,6 +1031,7 @@ CONFIG_INOTIFY_USER=y
1007CONFIG_PROC_FS=y 1031CONFIG_PROC_FS=y
1008CONFIG_PROC_KCORE=y 1032CONFIG_PROC_KCORE=y
1009CONFIG_PROC_SYSCTL=y 1033CONFIG_PROC_SYSCTL=y
1034CONFIG_PROC_PAGE_MONITOR=y
1010CONFIG_SYSFS=y 1035CONFIG_SYSFS=y
1011CONFIG_TMPFS=y 1036CONFIG_TMPFS=y
1012# CONFIG_TMPFS_POSIX_ACL is not set 1037# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1052,6 +1077,7 @@ CONFIG_ROOT_NFS=y
1052CONFIG_LOCKD=y 1077CONFIG_LOCKD=y
1053CONFIG_NFS_COMMON=y 1078CONFIG_NFS_COMMON=y
1054CONFIG_SUNRPC=y 1079CONFIG_SUNRPC=y
1080# CONFIG_SUNRPC_REGISTER_V4 is not set
1055# CONFIG_RPCSEC_GSS_KRB5 is not set 1081# CONFIG_RPCSEC_GSS_KRB5 is not set
1056# CONFIG_RPCSEC_GSS_SPKM3 is not set 1082# CONFIG_RPCSEC_GSS_SPKM3 is not set
1057# CONFIG_SMB_FS is not set 1083# CONFIG_SMB_FS is not set
@@ -1084,7 +1110,6 @@ CONFIG_PARTITION_ADVANCED=y
1084# Library routines 1110# Library routines
1085# 1111#
1086CONFIG_BITREVERSE=y 1112CONFIG_BITREVERSE=y
1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1088# CONFIG_CRC_CCITT is not set 1113# CONFIG_CRC_CCITT is not set
1089# CONFIG_CRC16 is not set 1114# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set 1115# CONFIG_CRC_T10DIF is not set
@@ -1116,13 +1141,15 @@ CONFIG_FRAME_WARN=1024
1116# CONFIG_SLUB_STATS is not set 1141# CONFIG_SLUB_STATS is not set
1117# CONFIG_DEBUG_BUGVERBOSE is not set 1142# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set 1143# CONFIG_DEBUG_MEMORY_INIT is not set
1144# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1119# CONFIG_LATENCYTOP is not set 1145# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y 1146CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y 1147CONFIG_HAVE_FUNCTION_TRACER=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y 1148
1123# CONFIG_FTRACE is not set 1149#
1124# CONFIG_SCHED_TRACER is not set 1150# Tracers
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set 1151#
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1126# CONFIG_SAMPLES is not set 1153# CONFIG_SAMPLES is not set
1127CONFIG_HAVE_ARCH_KGDB=y 1154CONFIG_HAVE_ARCH_KGDB=y
1128# CONFIG_IRQSTACKS is not set 1155# CONFIG_IRQSTACKS is not set
@@ -1133,12 +1160,14 @@ CONFIG_HAVE_ARCH_KGDB=y
1133# 1160#
1134# CONFIG_KEYS is not set 1161# CONFIG_KEYS is not set
1135# CONFIG_SECURITY is not set 1162# CONFIG_SECURITY is not set
1163# CONFIG_SECURITYFS is not set
1136# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1164# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1137CONFIG_CRYPTO=y 1165CONFIG_CRYPTO=y
1138 1166
1139# 1167#
1140# Crypto core or helper 1168# Crypto core or helper
1141# 1169#
1170# CONFIG_CRYPTO_FIPS is not set
1142# CONFIG_CRYPTO_MANAGER is not set 1171# CONFIG_CRYPTO_MANAGER is not set
1143# CONFIG_CRYPTO_GF128MUL is not set 1172# CONFIG_CRYPTO_GF128MUL is not set
1144# CONFIG_CRYPTO_NULL is not set 1173# CONFIG_CRYPTO_NULL is not set
@@ -1210,6 +1239,11 @@ CONFIG_CRYPTO=y
1210# 1239#
1211# CONFIG_CRYPTO_DEFLATE is not set 1240# CONFIG_CRYPTO_DEFLATE is not set
1212# CONFIG_CRYPTO_LZO is not set 1241# CONFIG_CRYPTO_LZO is not set
1242
1243#
1244# Random Number Generation
1245#
1246# CONFIG_CRYPTO_ANSI_CPRNG is not set
1213CONFIG_CRYPTO_HW=y 1247CONFIG_CRYPTO_HW=y
1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1248# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1215# CONFIG_CRYPTO_DEV_TALITOS is not set 1249# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index ca1234d26855..eef45b97dc3e 100644
--- a/arch/powerpc/configs/85xx/tqm8548_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8548_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:40 2008 4# Sat Nov 8 12:40:22 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -107,7 +107,9 @@ CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 107CONFIG_TIMERFD=y
108CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
109CONFIG_SHMEM=y 109CONFIG_SHMEM=y
110CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 113CONFIG_SLUB_DEBUG=y
112# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
113CONFIG_SLUB=y 115CONFIG_SLUB=y
@@ -121,10 +123,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
@@ -157,6 +155,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="anticipatory"
159CONFIG_CLASSIC_RCU=y 157CONFIG_CLASSIC_RCU=y
158# CONFIG_FREEZER is not set
160 159
161# 160#
162# Platform support 161# Platform support
@@ -192,8 +191,10 @@ CONFIG_MPIC=y
192# CONFIG_PPC_INDIRECT_IO is not set 191# CONFIG_PPC_INDIRECT_IO is not set
193# CONFIG_GENERIC_IOMAP is not set 192# CONFIG_GENERIC_IOMAP is not set
194# CONFIG_CPU_FREQ is not set 193# CONFIG_CPU_FREQ is not set
194# CONFIG_QUICC_ENGINE is not set
195# CONFIG_CPM2 is not set 195# CONFIG_CPM2 is not set
196# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
197# CONFIG_MPC8xxx_GPIO is not set
197 198
198# 199#
199# Kernel options 200# Kernel options
@@ -213,6 +214,8 @@ CONFIG_PREEMPT_NONE=y
213# CONFIG_PREEMPT_VOLUNTARY is not set 214# CONFIG_PREEMPT_VOLUNTARY is not set
214# CONFIG_PREEMPT is not set 215# CONFIG_PREEMPT is not set
215CONFIG_BINFMT_ELF=y 216CONFIG_BINFMT_ELF=y
217# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
218# CONFIG_HAVE_AOUT is not set
216CONFIG_BINFMT_MISC=y 219CONFIG_BINFMT_MISC=y
217CONFIG_MATH_EMULATION=y 220CONFIG_MATH_EMULATION=y
218# CONFIG_IOMMU_HELPER is not set 221# CONFIG_IOMMU_HELPER is not set
@@ -227,15 +230,15 @@ CONFIG_FLATMEM_MANUAL=y
227# CONFIG_SPARSEMEM_MANUAL is not set 230# CONFIG_SPARSEMEM_MANUAL is not set
228CONFIG_FLATMEM=y 231CONFIG_FLATMEM=y
229CONFIG_FLAT_NODE_MEM_MAP=y 232CONFIG_FLAT_NODE_MEM_MAP=y
230# CONFIG_SPARSEMEM_STATIC is not set
231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
232CONFIG_PAGEFLAGS_EXTENDED=y 233CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 234CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y 235CONFIG_MIGRATION=y
235# CONFIG_RESOURCES_64BIT is not set 236# CONFIG_RESOURCES_64BIT is not set
237# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 240CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y
239CONFIG_FORCE_MAX_ZONEORDER=11 242CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 243CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 244# CONFIG_CMDLINE_BOOL is not set
@@ -260,7 +263,7 @@ CONFIG_PCIEAER=y
260# CONFIG_PCIEASPM is not set 263# CONFIG_PCIEASPM is not set
261CONFIG_ARCH_SUPPORTS_MSI=y 264CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 265# CONFIG_PCI_MSI is not set
263CONFIG_PCI_LEGACY=y 266# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_DEBUG is not set 267# CONFIG_PCI_DEBUG is not set
265# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
266# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
@@ -330,6 +333,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_TIPC is not set 333# CONFIG_TIPC is not set
331# CONFIG_ATM is not set 334# CONFIG_ATM is not set
332# CONFIG_BRIDGE is not set 335# CONFIG_BRIDGE is not set
336# CONFIG_NET_DSA is not set
333# CONFIG_VLAN_8021Q is not set 337# CONFIG_VLAN_8021Q is not set
334# CONFIG_DECNET is not set 338# CONFIG_DECNET is not set
335# CONFIG_LLC2 is not set 339# CONFIG_LLC2 is not set
@@ -350,11 +354,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_IRDA is not set 354# CONFIG_IRDA is not set
351# CONFIG_BT is not set 355# CONFIG_BT is not set
352# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
353 357# CONFIG_PHONET is not set
354# 358CONFIG_WIRELESS=y
355# Wireless
356#
357# CONFIG_CFG80211 is not set 359# CONFIG_CFG80211 is not set
360CONFIG_WIRELESS_OLD_REGULATORY=y
358# CONFIG_WIRELESS_EXT is not set 361# CONFIG_WIRELESS_EXT is not set
359# CONFIG_MAC80211 is not set 362# CONFIG_MAC80211 is not set
360# CONFIG_IEEE80211 is not set 363# CONFIG_IEEE80211 is not set
@@ -458,6 +461,7 @@ CONFIG_MTD_NAND_IDS=y
458# CONFIG_MTD_NAND_NANDSIM is not set 461# CONFIG_MTD_NAND_NANDSIM is not set
459# CONFIG_MTD_NAND_PLATFORM is not set 462# CONFIG_MTD_NAND_PLATFORM is not set
460# CONFIG_MTD_NAND_FSL_ELBC is not set 463# CONFIG_MTD_NAND_FSL_ELBC is not set
464# CONFIG_MTD_NAND_FSL_UPM is not set
461# CONFIG_MTD_ONENAND is not set 465# CONFIG_MTD_ONENAND is not set
462 466
463# 467#
@@ -502,18 +506,17 @@ CONFIG_MISC_DEVICES=y
502# CONFIG_HP_ILO is not set 506# CONFIG_HP_ILO is not set
503CONFIG_HAVE_IDE=y 507CONFIG_HAVE_IDE=y
504CONFIG_IDE=y 508CONFIG_IDE=y
505CONFIG_BLK_DEV_IDE=y
506 509
507# 510#
508# Please see Documentation/ide/ide.txt for help/info on IDE drives 511# Please see Documentation/ide/ide.txt for help/info on IDE drives
509# 512#
510CONFIG_IDE_TIMINGS=y 513CONFIG_IDE_TIMINGS=y
511# CONFIG_BLK_DEV_IDE_SATA is not set 514# CONFIG_BLK_DEV_IDE_SATA is not set
512# CONFIG_BLK_DEV_IDEDISK is not set 515CONFIG_IDE_GD=y
513# CONFIG_IDEDISK_MULTI_MODE is not set 516CONFIG_IDE_GD_ATA=y
517# CONFIG_IDE_GD_ATAPI is not set
514# CONFIG_BLK_DEV_IDECD is not set 518# CONFIG_BLK_DEV_IDECD is not set
515# CONFIG_BLK_DEV_IDETAPE is not set 519# CONFIG_BLK_DEV_IDETAPE is not set
516# CONFIG_BLK_DEV_IDEFLOPPY is not set
517# CONFIG_IDE_TASK_IOCTL is not set 520# CONFIG_IDE_TASK_IOCTL is not set
518CONFIG_IDE_PROC_FS=y 521CONFIG_IDE_PROC_FS=y
519 522
@@ -616,13 +619,16 @@ CONFIG_MII=y
616# CONFIG_IBM_NEW_EMAC_RGMII is not set 619# CONFIG_IBM_NEW_EMAC_RGMII is not set
617# CONFIG_IBM_NEW_EMAC_TAH is not set 620# CONFIG_IBM_NEW_EMAC_TAH is not set
618# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 621# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
622# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
623# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
624# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
619# CONFIG_NET_PCI is not set 625# CONFIG_NET_PCI is not set
620# CONFIG_B44 is not set 626# CONFIG_B44 is not set
627# CONFIG_ATL2 is not set
621CONFIG_NETDEV_1000=y 628CONFIG_NETDEV_1000=y
622# CONFIG_ACENIC is not set 629# CONFIG_ACENIC is not set
623# CONFIG_DL2K is not set 630# CONFIG_DL2K is not set
624CONFIG_E1000=y 631CONFIG_E1000=y
625# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
626# CONFIG_E1000E is not set 632# CONFIG_E1000E is not set
627# CONFIG_IP1000 is not set 633# CONFIG_IP1000 is not set
628# CONFIG_IGB is not set 634# CONFIG_IGB is not set
@@ -640,18 +646,22 @@ CONFIG_GIANFAR=y
640# CONFIG_QLA3XXX is not set 646# CONFIG_QLA3XXX is not set
641# CONFIG_ATL1 is not set 647# CONFIG_ATL1 is not set
642# CONFIG_ATL1E is not set 648# CONFIG_ATL1E is not set
649# CONFIG_JME is not set
643CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
644# CONFIG_CHELSIO_T1 is not set 651# CONFIG_CHELSIO_T1 is not set
645# CONFIG_CHELSIO_T3 is not set 652# CONFIG_CHELSIO_T3 is not set
653# CONFIG_ENIC is not set
646# CONFIG_IXGBE is not set 654# CONFIG_IXGBE is not set
647# CONFIG_IXGB is not set 655# CONFIG_IXGB is not set
648# CONFIG_S2IO is not set 656# CONFIG_S2IO is not set
649# CONFIG_MYRI10GE is not set 657# CONFIG_MYRI10GE is not set
650# CONFIG_NETXEN_NIC is not set 658# CONFIG_NETXEN_NIC is not set
651# CONFIG_NIU is not set 659# CONFIG_NIU is not set
660# CONFIG_MLX4_EN is not set
652# CONFIG_MLX4_CORE is not set 661# CONFIG_MLX4_CORE is not set
653# CONFIG_TEHUTI is not set 662# CONFIG_TEHUTI is not set
654# CONFIG_BNX2X is not set 663# CONFIG_BNX2X is not set
664# CONFIG_QLGE is not set
655# CONFIG_SFC is not set 665# CONFIG_SFC is not set
656# CONFIG_TR is not set 666# CONFIG_TR is not set
657 667
@@ -885,6 +895,17 @@ CONFIG_SSB_POSSIBLE=y
885# CONFIG_MFD_SM501 is not set 895# CONFIG_MFD_SM501 is not set
886# CONFIG_HTC_PASIC3 is not set 896# CONFIG_HTC_PASIC3 is not set
887# CONFIG_MFD_TMIO is not set 897# CONFIG_MFD_TMIO is not set
898# CONFIG_PMIC_DA903X is not set
899# CONFIG_MFD_WM8400 is not set
900# CONFIG_MFD_WM8350_I2C is not set
901
902#
903# Voltage and Current regulators
904#
905# CONFIG_REGULATOR is not set
906# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
907# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
908# CONFIG_REGULATOR_BQ24022 is not set
888 909
889# 910#
890# Multimedia devices 911# Multimedia devices
@@ -921,6 +942,12 @@ CONFIG_HID_SUPPORT=y
921CONFIG_HID=y 942CONFIG_HID=y
922# CONFIG_HID_DEBUG is not set 943# CONFIG_HID_DEBUG is not set
923# CONFIG_HIDRAW is not set 944# CONFIG_HIDRAW is not set
945# CONFIG_HID_PID is not set
946
947#
948# Special HID drivers
949#
950CONFIG_HID_COMPAT=y
924CONFIG_USB_SUPPORT=y 951CONFIG_USB_SUPPORT=y
925CONFIG_USB_ARCH_HAS_HCD=y 952CONFIG_USB_ARCH_HAS_HCD=y
926CONFIG_USB_ARCH_HAS_OHCI=y 953CONFIG_USB_ARCH_HAS_OHCI=y
@@ -937,6 +964,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
937# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 964# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
938# 965#
939# CONFIG_USB_GADGET is not set 966# CONFIG_USB_GADGET is not set
967# CONFIG_UWB is not set
940# CONFIG_MMC is not set 968# CONFIG_MMC is not set
941# CONFIG_MEMSTICK is not set 969# CONFIG_MEMSTICK is not set
942# CONFIG_NEW_LEDS is not set 970# CONFIG_NEW_LEDS is not set
@@ -982,12 +1010,15 @@ CONFIG_RTC_DRV_DS1307=y
982# Platform RTC drivers 1010# Platform RTC drivers
983# 1011#
984# CONFIG_RTC_DRV_CMOS is not set 1012# CONFIG_RTC_DRV_CMOS is not set
1013# CONFIG_RTC_DRV_DS1286 is not set
985# CONFIG_RTC_DRV_DS1511 is not set 1014# CONFIG_RTC_DRV_DS1511 is not set
986# CONFIG_RTC_DRV_DS1553 is not set 1015# CONFIG_RTC_DRV_DS1553 is not set
987# CONFIG_RTC_DRV_DS1742 is not set 1016# CONFIG_RTC_DRV_DS1742 is not set
988# CONFIG_RTC_DRV_STK17TA8 is not set 1017# CONFIG_RTC_DRV_STK17TA8 is not set
989# CONFIG_RTC_DRV_M48T86 is not set 1018# CONFIG_RTC_DRV_M48T86 is not set
1019# CONFIG_RTC_DRV_M48T35 is not set
990# CONFIG_RTC_DRV_M48T59 is not set 1020# CONFIG_RTC_DRV_M48T59 is not set
1021# CONFIG_RTC_DRV_BQ4802 is not set
991# CONFIG_RTC_DRV_V3020 is not set 1022# CONFIG_RTC_DRV_V3020 is not set
992 1023
993# 1024#
@@ -996,6 +1027,7 @@ CONFIG_RTC_DRV_DS1307=y
996# CONFIG_RTC_DRV_PPC is not set 1027# CONFIG_RTC_DRV_PPC is not set
997# CONFIG_DMADEVICES is not set 1028# CONFIG_DMADEVICES is not set
998# CONFIG_UIO is not set 1029# CONFIG_UIO is not set
1030# CONFIG_STAGING is not set
999 1031
1000# 1032#
1001# File systems 1033# File systems
@@ -1007,12 +1039,13 @@ CONFIG_EXT3_FS=y
1007CONFIG_EXT3_FS_XATTR=y 1039CONFIG_EXT3_FS_XATTR=y
1008# CONFIG_EXT3_FS_POSIX_ACL is not set 1040# CONFIG_EXT3_FS_POSIX_ACL is not set
1009# CONFIG_EXT3_FS_SECURITY is not set 1041# CONFIG_EXT3_FS_SECURITY is not set
1010# CONFIG_EXT4DEV_FS is not set 1042# CONFIG_EXT4_FS is not set
1011CONFIG_JBD=y 1043CONFIG_JBD=y
1012CONFIG_FS_MBCACHE=y 1044CONFIG_FS_MBCACHE=y
1013# CONFIG_REISERFS_FS is not set 1045# CONFIG_REISERFS_FS is not set
1014# CONFIG_JFS_FS is not set 1046# CONFIG_JFS_FS is not set
1015# CONFIG_FS_POSIX_ACL is not set 1047# CONFIG_FS_POSIX_ACL is not set
1048CONFIG_FILE_LOCKING=y
1016# CONFIG_XFS_FS is not set 1049# CONFIG_XFS_FS is not set
1017# CONFIG_OCFS2_FS is not set 1050# CONFIG_OCFS2_FS is not set
1018CONFIG_DNOTIFY=y 1051CONFIG_DNOTIFY=y
@@ -1042,6 +1075,7 @@ CONFIG_INOTIFY_USER=y
1042CONFIG_PROC_FS=y 1075CONFIG_PROC_FS=y
1043CONFIG_PROC_KCORE=y 1076CONFIG_PROC_KCORE=y
1044CONFIG_PROC_SYSCTL=y 1077CONFIG_PROC_SYSCTL=y
1078CONFIG_PROC_PAGE_MONITOR=y
1045CONFIG_SYSFS=y 1079CONFIG_SYSFS=y
1046CONFIG_TMPFS=y 1080CONFIG_TMPFS=y
1047# CONFIG_TMPFS_POSIX_ACL is not set 1081# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1078,6 +1112,7 @@ CONFIG_ROOT_NFS=y
1078CONFIG_LOCKD=y 1112CONFIG_LOCKD=y
1079CONFIG_NFS_COMMON=y 1113CONFIG_NFS_COMMON=y
1080CONFIG_SUNRPC=y 1114CONFIG_SUNRPC=y
1115# CONFIG_SUNRPC_REGISTER_V4 is not set
1081# CONFIG_RPCSEC_GSS_KRB5 is not set 1116# CONFIG_RPCSEC_GSS_KRB5 is not set
1082# CONFIG_RPCSEC_GSS_SPKM3 is not set 1117# CONFIG_RPCSEC_GSS_SPKM3 is not set
1083# CONFIG_SMB_FS is not set 1118# CONFIG_SMB_FS is not set
@@ -1110,7 +1145,6 @@ CONFIG_PARTITION_ADVANCED=y
1110# Library routines 1145# Library routines
1111# 1146#
1112CONFIG_BITREVERSE=y 1147CONFIG_BITREVERSE=y
1113# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1114# CONFIG_CRC_CCITT is not set 1148# CONFIG_CRC_CCITT is not set
1115# CONFIG_CRC16 is not set 1149# CONFIG_CRC16 is not set
1116# CONFIG_CRC_T10DIF is not set 1150# CONFIG_CRC_T10DIF is not set
@@ -1162,15 +1196,23 @@ CONFIG_DEBUG_MUTEXES=y
1162# CONFIG_DEBUG_SG is not set 1196# CONFIG_DEBUG_SG is not set
1163# CONFIG_BOOT_PRINTK_DELAY is not set 1197# CONFIG_BOOT_PRINTK_DELAY is not set
1164# CONFIG_RCU_TORTURE_TEST is not set 1198# CONFIG_RCU_TORTURE_TEST is not set
1199# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1165# CONFIG_BACKTRACE_SELF_TEST is not set 1200# CONFIG_BACKTRACE_SELF_TEST is not set
1201# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1166# CONFIG_FAULT_INJECTION is not set 1202# CONFIG_FAULT_INJECTION is not set
1167# CONFIG_LATENCYTOP is not set 1203# CONFIG_LATENCYTOP is not set
1168CONFIG_SYSCTL_SYSCALL_CHECK=y 1204CONFIG_SYSCTL_SYSCALL_CHECK=y
1169CONFIG_HAVE_FTRACE=y 1205CONFIG_HAVE_FUNCTION_TRACER=y
1170CONFIG_HAVE_DYNAMIC_FTRACE=y 1206
1171# CONFIG_FTRACE is not set 1207#
1208# Tracers
1209#
1210# CONFIG_FUNCTION_TRACER is not set
1172# CONFIG_SCHED_TRACER is not set 1211# CONFIG_SCHED_TRACER is not set
1173# CONFIG_CONTEXT_SWITCH_TRACER is not set 1212# CONFIG_CONTEXT_SWITCH_TRACER is not set
1213# CONFIG_BOOT_TRACER is not set
1214# CONFIG_STACK_TRACER is not set
1215# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1174# CONFIG_SAMPLES is not set 1216# CONFIG_SAMPLES is not set
1175CONFIG_HAVE_ARCH_KGDB=y 1217CONFIG_HAVE_ARCH_KGDB=y
1176# CONFIG_KGDB is not set 1218# CONFIG_KGDB is not set
@@ -1179,6 +1221,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1179# CONFIG_DEBUG_PAGEALLOC is not set 1221# CONFIG_DEBUG_PAGEALLOC is not set
1180# CONFIG_CODE_PATCHING_SELFTEST is not set 1222# CONFIG_CODE_PATCHING_SELFTEST is not set
1181# CONFIG_FTR_FIXUP_SELFTEST is not set 1223# CONFIG_FTR_FIXUP_SELFTEST is not set
1224# CONFIG_MSI_BITMAP_SELFTEST is not set
1182# CONFIG_XMON is not set 1225# CONFIG_XMON is not set
1183# CONFIG_IRQSTACKS is not set 1226# CONFIG_IRQSTACKS is not set
1184# CONFIG_BDI_SWITCH is not set 1227# CONFIG_BDI_SWITCH is not set
@@ -1189,12 +1232,14 @@ CONFIG_HAVE_ARCH_KGDB=y
1189# 1232#
1190# CONFIG_KEYS is not set 1233# CONFIG_KEYS is not set
1191# CONFIG_SECURITY is not set 1234# CONFIG_SECURITY is not set
1235# CONFIG_SECURITYFS is not set
1192# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1236# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1193CONFIG_CRYPTO=y 1237CONFIG_CRYPTO=y
1194 1238
1195# 1239#
1196# Crypto core or helper 1240# Crypto core or helper
1197# 1241#
1242# CONFIG_CRYPTO_FIPS is not set
1198# CONFIG_CRYPTO_MANAGER is not set 1243# CONFIG_CRYPTO_MANAGER is not set
1199# CONFIG_CRYPTO_GF128MUL is not set 1244# CONFIG_CRYPTO_GF128MUL is not set
1200# CONFIG_CRYPTO_NULL is not set 1245# CONFIG_CRYPTO_NULL is not set
@@ -1267,6 +1312,11 @@ CONFIG_CRYPTO=y
1267# 1312#
1268# CONFIG_CRYPTO_DEFLATE is not set 1313# CONFIG_CRYPTO_DEFLATE is not set
1269# CONFIG_CRYPTO_LZO is not set 1314# CONFIG_CRYPTO_LZO is not set
1315
1316#
1317# Random Number Generation
1318#
1319# CONFIG_CRYPTO_ANSI_CPRNG is not set
1270CONFIG_CRYPTO_HW=y 1320CONFIG_CRYPTO_HW=y
1271# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1321# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1272# CONFIG_CRYPTO_DEV_TALITOS is not set 1322# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index dcf9cfe28b55..11b637e99a54 100644
--- a/arch/powerpc/configs/85xx/tqm8555_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8555_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:42 2008 4# Sat Nov 8 12:40:23 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -106,7 +106,9 @@ CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 106CONFIG_TIMERFD=y
107CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
108CONFIG_SHMEM=y 108CONFIG_SHMEM=y
109CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
110CONFIG_SLUB_DEBUG=y 112CONFIG_SLUB_DEBUG=y
111# CONFIG_SLAB is not set 113# CONFIG_SLAB is not set
112CONFIG_SLUB=y 114CONFIG_SLUB=y
@@ -119,10 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y 124CONFIG_HAVE_CLK=y
125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
@@ -149,6 +148,7 @@ CONFIG_DEFAULT_AS=y
149# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_FREEZER is not set
152 152
153# 153#
154# Platform support 154# Platform support
@@ -184,15 +184,16 @@ CONFIG_MPIC=y
184# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_QUICC_ENGINE is not set
187CONFIG_CPM2=y 188CONFIG_CPM2=y
188# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
189CONFIG_CPM=y 190CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set
190 192
191# 193#
192# Kernel options 194# Kernel options
193# 195#
194# CONFIG_HIGHMEM is not set 196# CONFIG_HIGHMEM is not set
195# CONFIG_TICK_ONESHOT is not set
196# CONFIG_NO_HZ is not set 197# CONFIG_NO_HZ is not set
197# CONFIG_HIGH_RES_TIMERS is not set 198# CONFIG_HIGH_RES_TIMERS is not set
198CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 199CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -206,6 +207,8 @@ CONFIG_PREEMPT_NONE=y
206# CONFIG_PREEMPT_VOLUNTARY is not set 207# CONFIG_PREEMPT_VOLUNTARY is not set
207# CONFIG_PREEMPT is not set 208# CONFIG_PREEMPT is not set
208CONFIG_BINFMT_ELF=y 209CONFIG_BINFMT_ELF=y
210# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
211# CONFIG_HAVE_AOUT is not set
209# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
210CONFIG_MATH_EMULATION=y 213CONFIG_MATH_EMULATION=y
211# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
@@ -220,15 +223,15 @@ CONFIG_FLATMEM_MANUAL=y
220# CONFIG_SPARSEMEM_MANUAL is not set 223# CONFIG_SPARSEMEM_MANUAL is not set
221CONFIG_FLATMEM=y 224CONFIG_FLATMEM=y
222CONFIG_FLAT_NODE_MEM_MAP=y 225CONFIG_FLAT_NODE_MEM_MAP=y
223# CONFIG_SPARSEMEM_STATIC is not set
224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
225CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set 229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y
232CONFIG_FORCE_MAX_ZONEORDER=11 235CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 236# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 237# CONFIG_CMDLINE_BOOL is not set
@@ -251,7 +254,7 @@ CONFIG_PCI_SYSCALL=y
251# CONFIG_PCIEPORTBUS is not set 254# CONFIG_PCIEPORTBUS is not set
252CONFIG_ARCH_SUPPORTS_MSI=y 255CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 256# CONFIG_PCI_MSI is not set
254CONFIG_PCI_LEGACY=y 257# CONFIG_PCI_LEGACY is not set
255# CONFIG_HAS_RAPIDIO is not set 258# CONFIG_HAS_RAPIDIO is not set
256 259
257# 260#
@@ -318,6 +321,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
318# CONFIG_TIPC is not set 321# CONFIG_TIPC is not set
319# CONFIG_ATM is not set 322# CONFIG_ATM is not set
320# CONFIG_BRIDGE is not set 323# CONFIG_BRIDGE is not set
324# CONFIG_NET_DSA is not set
321# CONFIG_VLAN_8021Q is not set 325# CONFIG_VLAN_8021Q is not set
322# CONFIG_DECNET is not set 326# CONFIG_DECNET is not set
323# CONFIG_LLC2 is not set 327# CONFIG_LLC2 is not set
@@ -338,11 +342,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
338# CONFIG_IRDA is not set 342# CONFIG_IRDA is not set
339# CONFIG_BT is not set 343# CONFIG_BT is not set
340# CONFIG_AF_RXRPC is not set 344# CONFIG_AF_RXRPC is not set
341 345# CONFIG_PHONET is not set
342# 346CONFIG_WIRELESS=y
343# Wireless
344#
345# CONFIG_CFG80211 is not set 347# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y
346# CONFIG_WIRELESS_EXT is not set 349# CONFIG_WIRELESS_EXT is not set
347# CONFIG_MAC80211 is not set 350# CONFIG_MAC80211 is not set
348# CONFIG_IEEE80211 is not set 351# CONFIG_IEEE80211 is not set
@@ -469,18 +472,17 @@ CONFIG_MISC_DEVICES=y
469# CONFIG_HP_ILO is not set 472# CONFIG_HP_ILO is not set
470CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
471CONFIG_IDE=y 474CONFIG_IDE=y
472CONFIG_BLK_DEV_IDE=y
473 475
474# 476#
475# Please see Documentation/ide/ide.txt for help/info on IDE drives 477# Please see Documentation/ide/ide.txt for help/info on IDE drives
476# 478#
477CONFIG_IDE_TIMINGS=y 479CONFIG_IDE_TIMINGS=y
478# CONFIG_BLK_DEV_IDE_SATA is not set 480# CONFIG_BLK_DEV_IDE_SATA is not set
479CONFIG_BLK_DEV_IDEDISK=y 481CONFIG_IDE_GD=y
480# CONFIG_IDEDISK_MULTI_MODE is not set 482CONFIG_IDE_GD_ATA=y
483# CONFIG_IDE_GD_ATAPI is not set
481# CONFIG_BLK_DEV_IDECD is not set 484# CONFIG_BLK_DEV_IDECD is not set
482# CONFIG_BLK_DEV_IDETAPE is not set 485# CONFIG_BLK_DEV_IDETAPE is not set
483# CONFIG_BLK_DEV_IDEFLOPPY is not set
484# CONFIG_IDE_TASK_IOCTL is not set 486# CONFIG_IDE_TASK_IOCTL is not set
485CONFIG_IDE_PROC_FS=y 487CONFIG_IDE_PROC_FS=y
486 488
@@ -583,6 +585,9 @@ CONFIG_MII=y
583# CONFIG_IBM_NEW_EMAC_RGMII is not set 585# CONFIG_IBM_NEW_EMAC_RGMII is not set
584# CONFIG_IBM_NEW_EMAC_TAH is not set 586# CONFIG_IBM_NEW_EMAC_TAH is not set
585# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 587# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
588# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
589# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
590# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
586CONFIG_NET_PCI=y 591CONFIG_NET_PCI=y
587# CONFIG_PCNET32 is not set 592# CONFIG_PCNET32 is not set
588# CONFIG_AMD8111_ETH is not set 593# CONFIG_AMD8111_ETH is not set
@@ -603,6 +608,7 @@ CONFIG_E100=y
603# CONFIG_TLAN is not set 608# CONFIG_TLAN is not set
604# CONFIG_VIA_RHINE is not set 609# CONFIG_VIA_RHINE is not set
605# CONFIG_SC92031 is not set 610# CONFIG_SC92031 is not set
611# CONFIG_ATL2 is not set
606# CONFIG_FS_ENET is not set 612# CONFIG_FS_ENET is not set
607CONFIG_NETDEV_1000=y 613CONFIG_NETDEV_1000=y
608# CONFIG_ACENIC is not set 614# CONFIG_ACENIC is not set
@@ -625,18 +631,22 @@ CONFIG_GIANFAR=y
625# CONFIG_QLA3XXX is not set 631# CONFIG_QLA3XXX is not set
626# CONFIG_ATL1 is not set 632# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set 633# CONFIG_ATL1E is not set
634# CONFIG_JME is not set
628CONFIG_NETDEV_10000=y 635CONFIG_NETDEV_10000=y
629# CONFIG_CHELSIO_T1 is not set 636# CONFIG_CHELSIO_T1 is not set
630# CONFIG_CHELSIO_T3 is not set 637# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set
631# CONFIG_IXGBE is not set 639# CONFIG_IXGBE is not set
632# CONFIG_IXGB is not set 640# CONFIG_IXGB is not set
633# CONFIG_S2IO is not set 641# CONFIG_S2IO is not set
634# CONFIG_MYRI10GE is not set 642# CONFIG_MYRI10GE is not set
635# CONFIG_NETXEN_NIC is not set 643# CONFIG_NETXEN_NIC is not set
636# CONFIG_NIU is not set 644# CONFIG_NIU is not set
645# CONFIG_MLX4_EN is not set
637# CONFIG_MLX4_CORE is not set 646# CONFIG_MLX4_CORE is not set
638# CONFIG_TEHUTI is not set 647# CONFIG_TEHUTI is not set
639# CONFIG_BNX2X is not set 648# CONFIG_BNX2X is not set
649# CONFIG_QLGE is not set
640# CONFIG_SFC is not set 650# CONFIG_SFC is not set
641# CONFIG_TR is not set 651# CONFIG_TR is not set
642 652
@@ -715,12 +725,6 @@ CONFIG_SERIAL_CORE=y
715CONFIG_SERIAL_CORE_CONSOLE=y 725CONFIG_SERIAL_CORE_CONSOLE=y
716CONFIG_SERIAL_CPM=y 726CONFIG_SERIAL_CPM=y
717CONFIG_SERIAL_CPM_CONSOLE=y 727CONFIG_SERIAL_CPM_CONSOLE=y
718CONFIG_SERIAL_CPM_SCC1=y
719# CONFIG_SERIAL_CPM_SCC2 is not set
720# CONFIG_SERIAL_CPM_SCC3 is not set
721# CONFIG_SERIAL_CPM_SCC4 is not set
722# CONFIG_SERIAL_CPM_SMC1 is not set
723# CONFIG_SERIAL_CPM_SMC2 is not set
724# CONFIG_SERIAL_JSM is not set 728# CONFIG_SERIAL_JSM is not set
725# CONFIG_SERIAL_OF_PLATFORM is not set 729# CONFIG_SERIAL_OF_PLATFORM is not set
726CONFIG_UNIX98_PTYS=y 730CONFIG_UNIX98_PTYS=y
@@ -900,6 +904,17 @@ CONFIG_SSB_POSSIBLE=y
900# CONFIG_MFD_SM501 is not set 904# CONFIG_MFD_SM501 is not set
901# CONFIG_HTC_PASIC3 is not set 905# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set 906# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set
910
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
903 918
904# 919#
905# Multimedia devices 920# Multimedia devices
@@ -936,6 +951,12 @@ CONFIG_HID_SUPPORT=y
936CONFIG_HID=y 951CONFIG_HID=y
937# CONFIG_HID_DEBUG is not set 952# CONFIG_HID_DEBUG is not set
938# CONFIG_HIDRAW is not set 953# CONFIG_HIDRAW is not set
954# CONFIG_HID_PID is not set
955
956#
957# Special HID drivers
958#
959CONFIG_HID_COMPAT=y
939CONFIG_USB_SUPPORT=y 960CONFIG_USB_SUPPORT=y
940CONFIG_USB_ARCH_HAS_HCD=y 961CONFIG_USB_ARCH_HAS_HCD=y
941CONFIG_USB_ARCH_HAS_OHCI=y 962CONFIG_USB_ARCH_HAS_OHCI=y
@@ -952,6 +973,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
953# 974#
954# CONFIG_USB_GADGET is not set 975# CONFIG_USB_GADGET is not set
976# CONFIG_UWB is not set
955# CONFIG_MMC is not set 977# CONFIG_MMC is not set
956# CONFIG_MEMSTICK is not set 978# CONFIG_MEMSTICK is not set
957# CONFIG_NEW_LEDS is not set 979# CONFIG_NEW_LEDS is not set
@@ -961,6 +983,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
961# CONFIG_RTC_CLASS is not set 983# CONFIG_RTC_CLASS is not set
962# CONFIG_DMADEVICES is not set 984# CONFIG_DMADEVICES is not set
963# CONFIG_UIO is not set 985# CONFIG_UIO is not set
986# CONFIG_STAGING is not set
964 987
965# 988#
966# File systems 989# File systems
@@ -972,12 +995,13 @@ CONFIG_EXT3_FS=y
972CONFIG_EXT3_FS_XATTR=y 995CONFIG_EXT3_FS_XATTR=y
973# CONFIG_EXT3_FS_POSIX_ACL is not set 996# CONFIG_EXT3_FS_POSIX_ACL is not set
974# CONFIG_EXT3_FS_SECURITY is not set 997# CONFIG_EXT3_FS_SECURITY is not set
975# CONFIG_EXT4DEV_FS is not set 998# CONFIG_EXT4_FS is not set
976CONFIG_JBD=y 999CONFIG_JBD=y
977CONFIG_FS_MBCACHE=y 1000CONFIG_FS_MBCACHE=y
978# CONFIG_REISERFS_FS is not set 1001# CONFIG_REISERFS_FS is not set
979# CONFIG_JFS_FS is not set 1002# CONFIG_JFS_FS is not set
980# CONFIG_FS_POSIX_ACL is not set 1003# CONFIG_FS_POSIX_ACL is not set
1004CONFIG_FILE_LOCKING=y
981# CONFIG_XFS_FS is not set 1005# CONFIG_XFS_FS is not set
982# CONFIG_OCFS2_FS is not set 1006# CONFIG_OCFS2_FS is not set
983CONFIG_DNOTIFY=y 1007CONFIG_DNOTIFY=y
@@ -1007,6 +1031,7 @@ CONFIG_INOTIFY_USER=y
1007CONFIG_PROC_FS=y 1031CONFIG_PROC_FS=y
1008CONFIG_PROC_KCORE=y 1032CONFIG_PROC_KCORE=y
1009CONFIG_PROC_SYSCTL=y 1033CONFIG_PROC_SYSCTL=y
1034CONFIG_PROC_PAGE_MONITOR=y
1010CONFIG_SYSFS=y 1035CONFIG_SYSFS=y
1011CONFIG_TMPFS=y 1036CONFIG_TMPFS=y
1012# CONFIG_TMPFS_POSIX_ACL is not set 1037# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1052,6 +1077,7 @@ CONFIG_ROOT_NFS=y
1052CONFIG_LOCKD=y 1077CONFIG_LOCKD=y
1053CONFIG_NFS_COMMON=y 1078CONFIG_NFS_COMMON=y
1054CONFIG_SUNRPC=y 1079CONFIG_SUNRPC=y
1080# CONFIG_SUNRPC_REGISTER_V4 is not set
1055# CONFIG_RPCSEC_GSS_KRB5 is not set 1081# CONFIG_RPCSEC_GSS_KRB5 is not set
1056# CONFIG_RPCSEC_GSS_SPKM3 is not set 1082# CONFIG_RPCSEC_GSS_SPKM3 is not set
1057# CONFIG_SMB_FS is not set 1083# CONFIG_SMB_FS is not set
@@ -1084,7 +1110,6 @@ CONFIG_PARTITION_ADVANCED=y
1084# Library routines 1110# Library routines
1085# 1111#
1086CONFIG_BITREVERSE=y 1112CONFIG_BITREVERSE=y
1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1088# CONFIG_CRC_CCITT is not set 1113# CONFIG_CRC_CCITT is not set
1089# CONFIG_CRC16 is not set 1114# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set 1115# CONFIG_CRC_T10DIF is not set
@@ -1116,13 +1141,15 @@ CONFIG_FRAME_WARN=1024
1116# CONFIG_SLUB_STATS is not set 1141# CONFIG_SLUB_STATS is not set
1117# CONFIG_DEBUG_BUGVERBOSE is not set 1142# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set 1143# CONFIG_DEBUG_MEMORY_INIT is not set
1144# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1119# CONFIG_LATENCYTOP is not set 1145# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y 1146CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y 1147CONFIG_HAVE_FUNCTION_TRACER=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y 1148
1123# CONFIG_FTRACE is not set 1149#
1124# CONFIG_SCHED_TRACER is not set 1150# Tracers
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set 1151#
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1126# CONFIG_SAMPLES is not set 1153# CONFIG_SAMPLES is not set
1127CONFIG_HAVE_ARCH_KGDB=y 1154CONFIG_HAVE_ARCH_KGDB=y
1128# CONFIG_IRQSTACKS is not set 1155# CONFIG_IRQSTACKS is not set
@@ -1133,12 +1160,14 @@ CONFIG_HAVE_ARCH_KGDB=y
1133# 1160#
1134# CONFIG_KEYS is not set 1161# CONFIG_KEYS is not set
1135# CONFIG_SECURITY is not set 1162# CONFIG_SECURITY is not set
1163# CONFIG_SECURITYFS is not set
1136# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1164# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1137CONFIG_CRYPTO=y 1165CONFIG_CRYPTO=y
1138 1166
1139# 1167#
1140# Crypto core or helper 1168# Crypto core or helper
1141# 1169#
1170# CONFIG_CRYPTO_FIPS is not set
1142# CONFIG_CRYPTO_MANAGER is not set 1171# CONFIG_CRYPTO_MANAGER is not set
1143# CONFIG_CRYPTO_GF128MUL is not set 1172# CONFIG_CRYPTO_GF128MUL is not set
1144# CONFIG_CRYPTO_NULL is not set 1173# CONFIG_CRYPTO_NULL is not set
@@ -1210,6 +1239,11 @@ CONFIG_CRYPTO=y
1210# 1239#
1211# CONFIG_CRYPTO_DEFLATE is not set 1240# CONFIG_CRYPTO_DEFLATE is not set
1212# CONFIG_CRYPTO_LZO is not set 1241# CONFIG_CRYPTO_LZO is not set
1242
1243#
1244# Random Number Generation
1245#
1246# CONFIG_CRYPTO_ANSI_CPRNG is not set
1213CONFIG_CRYPTO_HW=y 1247CONFIG_CRYPTO_HW=y
1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1248# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1215# CONFIG_CRYPTO_DEV_TALITOS is not set 1249# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index 8d676629cdb1..2519169b6d4b 100644
--- a/arch/powerpc/configs/85xx/tqm8560_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:43 2008 4# Sat Nov 8 12:40:25 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -106,7 +106,9 @@ CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 106CONFIG_TIMERFD=y
107CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
108CONFIG_SHMEM=y 108CONFIG_SHMEM=y
109CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y
110CONFIG_SLUB_DEBUG=y 112CONFIG_SLUB_DEBUG=y
111# CONFIG_SLAB is not set 113# CONFIG_SLAB is not set
112CONFIG_SLUB=y 114CONFIG_SLUB=y
@@ -119,10 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y 124CONFIG_HAVE_CLK=y
125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
@@ -149,6 +148,7 @@ CONFIG_DEFAULT_AS=y
149# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_CLASSIC_RCU=y 150CONFIG_CLASSIC_RCU=y
151# CONFIG_FREEZER is not set
152 152
153# 153#
154# Platform support 154# Platform support
@@ -184,15 +184,16 @@ CONFIG_MPIC=y
184# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_QUICC_ENGINE is not set
187CONFIG_CPM2=y 188CONFIG_CPM2=y
188# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
189CONFIG_CPM=y 190CONFIG_CPM=y
191# CONFIG_MPC8xxx_GPIO is not set
190 192
191# 193#
192# Kernel options 194# Kernel options
193# 195#
194# CONFIG_HIGHMEM is not set 196# CONFIG_HIGHMEM is not set
195# CONFIG_TICK_ONESHOT is not set
196# CONFIG_NO_HZ is not set 197# CONFIG_NO_HZ is not set
197# CONFIG_HIGH_RES_TIMERS is not set 198# CONFIG_HIGH_RES_TIMERS is not set
198CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 199CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -206,6 +207,8 @@ CONFIG_PREEMPT_NONE=y
206# CONFIG_PREEMPT_VOLUNTARY is not set 207# CONFIG_PREEMPT_VOLUNTARY is not set
207# CONFIG_PREEMPT is not set 208# CONFIG_PREEMPT is not set
208CONFIG_BINFMT_ELF=y 209CONFIG_BINFMT_ELF=y
210# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
211# CONFIG_HAVE_AOUT is not set
209# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
210CONFIG_MATH_EMULATION=y 213CONFIG_MATH_EMULATION=y
211# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
@@ -220,15 +223,15 @@ CONFIG_FLATMEM_MANUAL=y
220# CONFIG_SPARSEMEM_MANUAL is not set 223# CONFIG_SPARSEMEM_MANUAL is not set
221CONFIG_FLATMEM=y 224CONFIG_FLATMEM=y
222CONFIG_FLAT_NODE_MEM_MAP=y 225CONFIG_FLAT_NODE_MEM_MAP=y
223# CONFIG_SPARSEMEM_STATIC is not set
224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
225CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 228CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set 229# CONFIG_RESOURCES_64BIT is not set
230# CONFIG_PHYS_ADDR_T_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 231CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y
232CONFIG_FORCE_MAX_ZONEORDER=11 235CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 236# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 237# CONFIG_CMDLINE_BOOL is not set
@@ -251,7 +254,7 @@ CONFIG_PCI_SYSCALL=y
251# CONFIG_PCIEPORTBUS is not set 254# CONFIG_PCIEPORTBUS is not set
252CONFIG_ARCH_SUPPORTS_MSI=y 255CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set 256# CONFIG_PCI_MSI is not set
254CONFIG_PCI_LEGACY=y 257# CONFIG_PCI_LEGACY is not set
255# CONFIG_HAS_RAPIDIO is not set 258# CONFIG_HAS_RAPIDIO is not set
256 259
257# 260#
@@ -318,6 +321,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
318# CONFIG_TIPC is not set 321# CONFIG_TIPC is not set
319# CONFIG_ATM is not set 322# CONFIG_ATM is not set
320# CONFIG_BRIDGE is not set 323# CONFIG_BRIDGE is not set
324# CONFIG_NET_DSA is not set
321# CONFIG_VLAN_8021Q is not set 325# CONFIG_VLAN_8021Q is not set
322# CONFIG_DECNET is not set 326# CONFIG_DECNET is not set
323# CONFIG_LLC2 is not set 327# CONFIG_LLC2 is not set
@@ -338,11 +342,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
338# CONFIG_IRDA is not set 342# CONFIG_IRDA is not set
339# CONFIG_BT is not set 343# CONFIG_BT is not set
340# CONFIG_AF_RXRPC is not set 344# CONFIG_AF_RXRPC is not set
341 345# CONFIG_PHONET is not set
342# 346CONFIG_WIRELESS=y
343# Wireless
344#
345# CONFIG_CFG80211 is not set 347# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y
346# CONFIG_WIRELESS_EXT is not set 349# CONFIG_WIRELESS_EXT is not set
347# CONFIG_MAC80211 is not set 350# CONFIG_MAC80211 is not set
348# CONFIG_IEEE80211 is not set 351# CONFIG_IEEE80211 is not set
@@ -469,18 +472,17 @@ CONFIG_MISC_DEVICES=y
469# CONFIG_HP_ILO is not set 472# CONFIG_HP_ILO is not set
470CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
471CONFIG_IDE=y 474CONFIG_IDE=y
472CONFIG_BLK_DEV_IDE=y
473 475
474# 476#
475# Please see Documentation/ide/ide.txt for help/info on IDE drives 477# Please see Documentation/ide/ide.txt for help/info on IDE drives
476# 478#
477CONFIG_IDE_TIMINGS=y 479CONFIG_IDE_TIMINGS=y
478# CONFIG_BLK_DEV_IDE_SATA is not set 480# CONFIG_BLK_DEV_IDE_SATA is not set
479CONFIG_BLK_DEV_IDEDISK=y 481CONFIG_IDE_GD=y
480# CONFIG_IDEDISK_MULTI_MODE is not set 482CONFIG_IDE_GD_ATA=y
483# CONFIG_IDE_GD_ATAPI is not set
481# CONFIG_BLK_DEV_IDECD is not set 484# CONFIG_BLK_DEV_IDECD is not set
482# CONFIG_BLK_DEV_IDETAPE is not set 485# CONFIG_BLK_DEV_IDETAPE is not set
483# CONFIG_BLK_DEV_IDEFLOPPY is not set
484# CONFIG_IDE_TASK_IOCTL is not set 486# CONFIG_IDE_TASK_IOCTL is not set
485CONFIG_IDE_PROC_FS=y 487CONFIG_IDE_PROC_FS=y
486 488
@@ -583,6 +585,9 @@ CONFIG_MII=y
583# CONFIG_IBM_NEW_EMAC_RGMII is not set 585# CONFIG_IBM_NEW_EMAC_RGMII is not set
584# CONFIG_IBM_NEW_EMAC_TAH is not set 586# CONFIG_IBM_NEW_EMAC_TAH is not set
585# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 587# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
588# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
589# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
590# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
586CONFIG_NET_PCI=y 591CONFIG_NET_PCI=y
587# CONFIG_PCNET32 is not set 592# CONFIG_PCNET32 is not set
588# CONFIG_AMD8111_ETH is not set 593# CONFIG_AMD8111_ETH is not set
@@ -603,6 +608,7 @@ CONFIG_E100=y
603# CONFIG_TLAN is not set 608# CONFIG_TLAN is not set
604# CONFIG_VIA_RHINE is not set 609# CONFIG_VIA_RHINE is not set
605# CONFIG_SC92031 is not set 610# CONFIG_SC92031 is not set
611# CONFIG_ATL2 is not set
606# CONFIG_FS_ENET is not set 612# CONFIG_FS_ENET is not set
607CONFIG_NETDEV_1000=y 613CONFIG_NETDEV_1000=y
608# CONFIG_ACENIC is not set 614# CONFIG_ACENIC is not set
@@ -625,18 +631,22 @@ CONFIG_GIANFAR=y
625# CONFIG_QLA3XXX is not set 631# CONFIG_QLA3XXX is not set
626# CONFIG_ATL1 is not set 632# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set 633# CONFIG_ATL1E is not set
634# CONFIG_JME is not set
628CONFIG_NETDEV_10000=y 635CONFIG_NETDEV_10000=y
629# CONFIG_CHELSIO_T1 is not set 636# CONFIG_CHELSIO_T1 is not set
630# CONFIG_CHELSIO_T3 is not set 637# CONFIG_CHELSIO_T3 is not set
638# CONFIG_ENIC is not set
631# CONFIG_IXGBE is not set 639# CONFIG_IXGBE is not set
632# CONFIG_IXGB is not set 640# CONFIG_IXGB is not set
633# CONFIG_S2IO is not set 641# CONFIG_S2IO is not set
634# CONFIG_MYRI10GE is not set 642# CONFIG_MYRI10GE is not set
635# CONFIG_NETXEN_NIC is not set 643# CONFIG_NETXEN_NIC is not set
636# CONFIG_NIU is not set 644# CONFIG_NIU is not set
645# CONFIG_MLX4_EN is not set
637# CONFIG_MLX4_CORE is not set 646# CONFIG_MLX4_CORE is not set
638# CONFIG_TEHUTI is not set 647# CONFIG_TEHUTI is not set
639# CONFIG_BNX2X is not set 648# CONFIG_BNX2X is not set
649# CONFIG_QLGE is not set
640# CONFIG_SFC is not set 650# CONFIG_SFC is not set
641# CONFIG_TR is not set 651# CONFIG_TR is not set
642 652
@@ -715,12 +725,6 @@ CONFIG_SERIAL_CORE=y
715CONFIG_SERIAL_CORE_CONSOLE=y 725CONFIG_SERIAL_CORE_CONSOLE=y
716CONFIG_SERIAL_CPM=y 726CONFIG_SERIAL_CPM=y
717CONFIG_SERIAL_CPM_CONSOLE=y 727CONFIG_SERIAL_CPM_CONSOLE=y
718CONFIG_SERIAL_CPM_SCC1=y
719# CONFIG_SERIAL_CPM_SCC2 is not set
720# CONFIG_SERIAL_CPM_SCC3 is not set
721# CONFIG_SERIAL_CPM_SCC4 is not set
722# CONFIG_SERIAL_CPM_SMC1 is not set
723# CONFIG_SERIAL_CPM_SMC2 is not set
724# CONFIG_SERIAL_JSM is not set 728# CONFIG_SERIAL_JSM is not set
725# CONFIG_SERIAL_OF_PLATFORM is not set 729# CONFIG_SERIAL_OF_PLATFORM is not set
726CONFIG_UNIX98_PTYS=y 730CONFIG_UNIX98_PTYS=y
@@ -900,6 +904,17 @@ CONFIG_SSB_POSSIBLE=y
900# CONFIG_MFD_SM501 is not set 904# CONFIG_MFD_SM501 is not set
901# CONFIG_HTC_PASIC3 is not set 905# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set 906# CONFIG_MFD_TMIO is not set
907# CONFIG_PMIC_DA903X is not set
908# CONFIG_MFD_WM8400 is not set
909# CONFIG_MFD_WM8350_I2C is not set
910
911#
912# Voltage and Current regulators
913#
914# CONFIG_REGULATOR is not set
915# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
916# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
917# CONFIG_REGULATOR_BQ24022 is not set
903 918
904# 919#
905# Multimedia devices 920# Multimedia devices
@@ -936,6 +951,12 @@ CONFIG_HID_SUPPORT=y
936CONFIG_HID=y 951CONFIG_HID=y
937# CONFIG_HID_DEBUG is not set 952# CONFIG_HID_DEBUG is not set
938# CONFIG_HIDRAW is not set 953# CONFIG_HIDRAW is not set
954# CONFIG_HID_PID is not set
955
956#
957# Special HID drivers
958#
959CONFIG_HID_COMPAT=y
939CONFIG_USB_SUPPORT=y 960CONFIG_USB_SUPPORT=y
940CONFIG_USB_ARCH_HAS_HCD=y 961CONFIG_USB_ARCH_HAS_HCD=y
941CONFIG_USB_ARCH_HAS_OHCI=y 962CONFIG_USB_ARCH_HAS_OHCI=y
@@ -952,6 +973,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 973# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
953# 974#
954# CONFIG_USB_GADGET is not set 975# CONFIG_USB_GADGET is not set
976# CONFIG_UWB is not set
955# CONFIG_MMC is not set 977# CONFIG_MMC is not set
956# CONFIG_MEMSTICK is not set 978# CONFIG_MEMSTICK is not set
957# CONFIG_NEW_LEDS is not set 979# CONFIG_NEW_LEDS is not set
@@ -961,6 +983,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
961# CONFIG_RTC_CLASS is not set 983# CONFIG_RTC_CLASS is not set
962# CONFIG_DMADEVICES is not set 984# CONFIG_DMADEVICES is not set
963# CONFIG_UIO is not set 985# CONFIG_UIO is not set
986# CONFIG_STAGING is not set
964 987
965# 988#
966# File systems 989# File systems
@@ -972,12 +995,13 @@ CONFIG_EXT3_FS=y
972CONFIG_EXT3_FS_XATTR=y 995CONFIG_EXT3_FS_XATTR=y
973# CONFIG_EXT3_FS_POSIX_ACL is not set 996# CONFIG_EXT3_FS_POSIX_ACL is not set
974# CONFIG_EXT3_FS_SECURITY is not set 997# CONFIG_EXT3_FS_SECURITY is not set
975# CONFIG_EXT4DEV_FS is not set 998# CONFIG_EXT4_FS is not set
976CONFIG_JBD=y 999CONFIG_JBD=y
977CONFIG_FS_MBCACHE=y 1000CONFIG_FS_MBCACHE=y
978# CONFIG_REISERFS_FS is not set 1001# CONFIG_REISERFS_FS is not set
979# CONFIG_JFS_FS is not set 1002# CONFIG_JFS_FS is not set
980# CONFIG_FS_POSIX_ACL is not set 1003# CONFIG_FS_POSIX_ACL is not set
1004CONFIG_FILE_LOCKING=y
981# CONFIG_XFS_FS is not set 1005# CONFIG_XFS_FS is not set
982# CONFIG_OCFS2_FS is not set 1006# CONFIG_OCFS2_FS is not set
983CONFIG_DNOTIFY=y 1007CONFIG_DNOTIFY=y
@@ -1007,6 +1031,7 @@ CONFIG_INOTIFY_USER=y
1007CONFIG_PROC_FS=y 1031CONFIG_PROC_FS=y
1008CONFIG_PROC_KCORE=y 1032CONFIG_PROC_KCORE=y
1009CONFIG_PROC_SYSCTL=y 1033CONFIG_PROC_SYSCTL=y
1034CONFIG_PROC_PAGE_MONITOR=y
1010CONFIG_SYSFS=y 1035CONFIG_SYSFS=y
1011CONFIG_TMPFS=y 1036CONFIG_TMPFS=y
1012# CONFIG_TMPFS_POSIX_ACL is not set 1037# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1052,6 +1077,7 @@ CONFIG_ROOT_NFS=y
1052CONFIG_LOCKD=y 1077CONFIG_LOCKD=y
1053CONFIG_NFS_COMMON=y 1078CONFIG_NFS_COMMON=y
1054CONFIG_SUNRPC=y 1079CONFIG_SUNRPC=y
1080# CONFIG_SUNRPC_REGISTER_V4 is not set
1055# CONFIG_RPCSEC_GSS_KRB5 is not set 1081# CONFIG_RPCSEC_GSS_KRB5 is not set
1056# CONFIG_RPCSEC_GSS_SPKM3 is not set 1082# CONFIG_RPCSEC_GSS_SPKM3 is not set
1057# CONFIG_SMB_FS is not set 1083# CONFIG_SMB_FS is not set
@@ -1084,7 +1110,6 @@ CONFIG_PARTITION_ADVANCED=y
1084# Library routines 1110# Library routines
1085# 1111#
1086CONFIG_BITREVERSE=y 1112CONFIG_BITREVERSE=y
1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1088# CONFIG_CRC_CCITT is not set 1113# CONFIG_CRC_CCITT is not set
1089# CONFIG_CRC16 is not set 1114# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set 1115# CONFIG_CRC_T10DIF is not set
@@ -1116,13 +1141,15 @@ CONFIG_FRAME_WARN=1024
1116# CONFIG_SLUB_STATS is not set 1141# CONFIG_SLUB_STATS is not set
1117# CONFIG_DEBUG_BUGVERBOSE is not set 1142# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set 1143# CONFIG_DEBUG_MEMORY_INIT is not set
1144# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1119# CONFIG_LATENCYTOP is not set 1145# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y 1146CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y 1147CONFIG_HAVE_FUNCTION_TRACER=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y 1148
1123# CONFIG_FTRACE is not set 1149#
1124# CONFIG_SCHED_TRACER is not set 1150# Tracers
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set 1151#
1152# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1126# CONFIG_SAMPLES is not set 1153# CONFIG_SAMPLES is not set
1127CONFIG_HAVE_ARCH_KGDB=y 1154CONFIG_HAVE_ARCH_KGDB=y
1128# CONFIG_IRQSTACKS is not set 1155# CONFIG_IRQSTACKS is not set
@@ -1133,12 +1160,14 @@ CONFIG_HAVE_ARCH_KGDB=y
1133# 1160#
1134# CONFIG_KEYS is not set 1161# CONFIG_KEYS is not set
1135# CONFIG_SECURITY is not set 1162# CONFIG_SECURITY is not set
1163# CONFIG_SECURITYFS is not set
1136# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1164# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1137CONFIG_CRYPTO=y 1165CONFIG_CRYPTO=y
1138 1166
1139# 1167#
1140# Crypto core or helper 1168# Crypto core or helper
1141# 1169#
1170# CONFIG_CRYPTO_FIPS is not set
1142# CONFIG_CRYPTO_MANAGER is not set 1171# CONFIG_CRYPTO_MANAGER is not set
1143# CONFIG_CRYPTO_GF128MUL is not set 1172# CONFIG_CRYPTO_GF128MUL is not set
1144# CONFIG_CRYPTO_NULL is not set 1173# CONFIG_CRYPTO_NULL is not set
@@ -1210,6 +1239,11 @@ CONFIG_CRYPTO=y
1210# 1239#
1211# CONFIG_CRYPTO_DEFLATE is not set 1240# CONFIG_CRYPTO_DEFLATE is not set
1212# CONFIG_CRYPTO_LZO is not set 1241# CONFIG_CRYPTO_LZO is not set
1242
1243#
1244# Random Number Generation
1245#
1246# CONFIG_CRYPTO_ANSI_CPRNG is not set
1213CONFIG_CRYPTO_HW=y 1247CONFIG_CRYPTO_HW=y
1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1248# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1215# CONFIG_CRYPTO_DEV_TALITOS is not set 1249# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 312d7afbbe44..07ccaf89f379 100644
--- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc5 3# Linux kernel version: 2.6.28-rc3
4# Wed Jun 11 12:06:53 2008 4# Sat Nov 8 12:40:30 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
@@ -23,7 +24,7 @@ CONFIG_SMP=y
23CONFIG_NR_CPUS=2 24CONFIG_NR_CPUS=2
24CONFIG_PPC32=y 25CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 28CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_GENERIC_LOCKBREAK=y 40CONFIG_GENERIC_LOCKBREAK=y
@@ -92,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 98# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -109,7 +110,9 @@ CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
113CONFIG_SLAB=y 116CONFIG_SLAB=y
114# CONFIG_SLUB is not set 117# CONFIG_SLUB is not set
115# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
@@ -117,10 +120,13 @@ CONFIG_SLAB=y
117# CONFIG_MARKERS is not set 120# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
122# CONFIG_HAVE_DMA_ATTRS is not set 127CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_USE_GENERIC_SMP_HELPERS=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -138,6 +144,7 @@ CONFIG_BLOCK=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 145# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 146# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set
141 148
142# 149#
143# IO Schedulers 150# IO Schedulers
@@ -152,6 +159,7 @@ CONFIG_DEFAULT_CFQ=y
152# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="cfq" 160CONFIG_DEFAULT_IOSCHED="cfq"
154CONFIG_CLASSIC_RCU=y 161CONFIG_CLASSIC_RCU=y
162# CONFIG_FREEZER is not set
155 163
156# 164#
157# Platform support 165# Platform support
@@ -159,15 +167,16 @@ CONFIG_CLASSIC_RCU=y
159CONFIG_PPC_MULTIPLATFORM=y 167CONFIG_PPC_MULTIPLATFORM=y
160CONFIG_CLASSIC32=y 168CONFIG_CLASSIC32=y
161# CONFIG_PPC_CHRP is not set 169# CONFIG_PPC_CHRP is not set
170# CONFIG_MPC5121_ADS is not set
171# CONFIG_MPC5121_GENERIC is not set
172# CONFIG_PPC_MPC52xx is not set
162# CONFIG_PPC_PMAC is not set 173# CONFIG_PPC_PMAC is not set
163# CONFIG_PPC_82xx is not set
164# CONFIG_PPC_83xx is not set
165CONFIG_PPC_86xx=y
166# CONFIG_PPC_MPC512x is not set
167# CONFIG_PPC_MPC5121 is not set
168# CONFIG_PPC_CELL is not set 174# CONFIG_PPC_CELL is not set
169# CONFIG_PPC_CELL_NATIVE is not set 175# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set
170# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
178# CONFIG_PPC_83xx is not set
179CONFIG_PPC_86xx=y
171# CONFIG_MPC8641_HPCN is not set 180# CONFIG_MPC8641_HPCN is not set
172# CONFIG_SBC8641D is not set 181# CONFIG_SBC8641D is not set
173# CONFIG_MPC8610_HPCD is not set 182# CONFIG_MPC8610_HPCD is not set
@@ -184,7 +193,10 @@ CONFIG_MPIC=y
184# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
196# CONFIG_TAU is not set
197# CONFIG_QUICC_ENGINE is not set
187# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set
188 200
189# 201#
190# Kernel options 202# Kernel options
@@ -199,17 +211,20 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
199# CONFIG_HZ_300 is not set 211# CONFIG_HZ_300 is not set
200CONFIG_HZ_1000=y 212CONFIG_HZ_1000=y
201CONFIG_HZ=1000 213CONFIG_HZ=1000
202# CONFIG_SCHED_HRTICK is not set 214CONFIG_SCHED_HRTICK=y
203# CONFIG_PREEMPT_NONE is not set 215# CONFIG_PREEMPT_NONE is not set
204# CONFIG_PREEMPT_VOLUNTARY is not set 216# CONFIG_PREEMPT_VOLUNTARY is not set
205CONFIG_PREEMPT=y 217CONFIG_PREEMPT=y
206# CONFIG_PREEMPT_RCU is not set 218# CONFIG_PREEMPT_RCU is not set
207CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
208CONFIG_BINFMT_MISC=m 222CONFIG_BINFMT_MISC=m
209# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
211CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
212CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
227# CONFIG_KEXEC is not set
213CONFIG_IRQ_ALL_CPUS=y 228CONFIG_IRQ_ALL_CPUS=y
214CONFIG_ARCH_FLATMEM_ENABLE=y 229CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 230CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -219,17 +234,19 @@ CONFIG_FLATMEM_MANUAL=y
219# CONFIG_SPARSEMEM_MANUAL is not set 234# CONFIG_SPARSEMEM_MANUAL is not set
220CONFIG_FLATMEM=y 235CONFIG_FLATMEM=y
221CONFIG_FLAT_NODE_MEM_MAP=y 236CONFIG_FLAT_NODE_MEM_MAP=y
222# CONFIG_SPARSEMEM_STATIC is not set
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y
230CONFIG_FORCE_MAX_ZONEORDER=11 246CONFIG_FORCE_MAX_ZONEORDER=11
231# CONFIG_PROC_DEVICETREE is not set 247# CONFIG_PROC_DEVICETREE is not set
232# CONFIG_CMDLINE_BOOL is not set 248# CONFIG_CMDLINE_BOOL is not set
249CONFIG_EXTRA_TARGETS=""
233# CONFIG_PM is not set 250# CONFIG_PM is not set
234CONFIG_SECCOMP=y 251CONFIG_SECCOMP=y
235CONFIG_ISA_DMA_API=y 252CONFIG_ISA_DMA_API=y
@@ -242,6 +259,7 @@ CONFIG_GENERIC_ISA_DMA=y
242CONFIG_PPC_INDIRECT_PCI=y 259CONFIG_PPC_INDIRECT_PCI=y
243CONFIG_FSL_SOC=y 260CONFIG_FSL_SOC=y
244CONFIG_FSL_PCI=y 261CONFIG_FSL_PCI=y
262CONFIG_PPC_PCI_CHOICE=y
245CONFIG_PCI=y 263CONFIG_PCI=y
246CONFIG_PCI_DOMAINS=y 264CONFIG_PCI_DOMAINS=y
247CONFIG_PCI_SYSCALL=y 265CONFIG_PCI_SYSCALL=y
@@ -250,7 +268,7 @@ CONFIG_PCIEAER=y
250# CONFIG_PCIEASPM is not set 268# CONFIG_PCIEASPM is not set
251CONFIG_ARCH_SUPPORTS_MSI=y 269CONFIG_ARCH_SUPPORTS_MSI=y
252# CONFIG_PCI_MSI is not set 270# CONFIG_PCI_MSI is not set
253CONFIG_PCI_LEGACY=y 271# CONFIG_PCI_LEGACY is not set
254CONFIG_PCI_DEBUG=y 272CONFIG_PCI_DEBUG=y
255# CONFIG_PCCARD is not set 273# CONFIG_PCCARD is not set
256# CONFIG_HOTPLUG_PCI is not set 274# CONFIG_HOTPLUG_PCI is not set
@@ -270,10 +288,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
270CONFIG_KERNEL_START=0xc0000000 288CONFIG_KERNEL_START=0xc0000000
271CONFIG_PHYSICAL_START=0x00000000 289CONFIG_PHYSICAL_START=0x00000000
272CONFIG_TASK_SIZE=0xc0000000 290CONFIG_TASK_SIZE=0xc0000000
273
274#
275# Networking
276#
277CONFIG_NET=y 291CONFIG_NET=y
278 292
279# 293#
@@ -287,6 +301,7 @@ CONFIG_XFRM_USER=m
287# CONFIG_XFRM_SUB_POLICY is not set 301# CONFIG_XFRM_SUB_POLICY is not set
288# CONFIG_XFRM_MIGRATE is not set 302# CONFIG_XFRM_MIGRATE is not set
289# CONFIG_XFRM_STATISTICS is not set 303# CONFIG_XFRM_STATISTICS is not set
304CONFIG_XFRM_IPCOMP=m
290CONFIG_NET_KEY=m 305CONFIG_NET_KEY=m
291# CONFIG_NET_KEY_MIGRATE is not set 306# CONFIG_NET_KEY_MIGRATE is not set
292CONFIG_INET=y 307CONFIG_INET=y
@@ -325,7 +340,6 @@ CONFIG_INET_TCP_DIAG=y
325CONFIG_TCP_CONG_CUBIC=y 340CONFIG_TCP_CONG_CUBIC=y
326CONFIG_DEFAULT_TCP_CONG="cubic" 341CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_TCP_MD5SIG is not set 342# CONFIG_TCP_MD5SIG is not set
328# CONFIG_IP_VS is not set
329CONFIG_IPV6=m 343CONFIG_IPV6=m
330# CONFIG_IPV6_PRIVACY is not set 344# CONFIG_IPV6_PRIVACY is not set
331# CONFIG_IPV6_ROUTER_PREF is not set 345# CONFIG_IPV6_ROUTER_PREF is not set
@@ -362,8 +376,8 @@ CONFIG_NETFILTER_XTABLES=m
362# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 376# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
363# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 377# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
364# CONFIG_NETFILTER_XT_TARGET_MARK is not set 378# CONFIG_NETFILTER_XT_TARGET_MARK is not set
365# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
366# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 379# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
380# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
367# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set 381# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
368# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 382# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
369# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 383# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
@@ -372,37 +386,39 @@ CONFIG_NETFILTER_XTABLES=m
372# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 386# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
373# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 387# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
374# CONFIG_NETFILTER_XT_MATCH_ESP is not set 388# CONFIG_NETFILTER_XT_MATCH_ESP is not set
389# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
375# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 390# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
376# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 391# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
377# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 392# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
378# CONFIG_NETFILTER_XT_MATCH_MAC is not set 393# CONFIG_NETFILTER_XT_MATCH_MAC is not set
379# CONFIG_NETFILTER_XT_MATCH_MARK is not set 394# CONFIG_NETFILTER_XT_MATCH_MARK is not set
395# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
380# CONFIG_NETFILTER_XT_MATCH_OWNER is not set 396# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
381# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 397# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
382# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
383# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set 398# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
384# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set 399# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
385# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 400# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
386# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set 401# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
387# CONFIG_NETFILTER_XT_MATCH_REALM is not set 402# CONFIG_NETFILTER_XT_MATCH_REALM is not set
403# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
388# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 404# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
389# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 405# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
390# CONFIG_NETFILTER_XT_MATCH_STRING is not set 406# CONFIG_NETFILTER_XT_MATCH_STRING is not set
391# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 407# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
392# CONFIG_NETFILTER_XT_MATCH_TIME is not set 408# CONFIG_NETFILTER_XT_MATCH_TIME is not set
393# CONFIG_NETFILTER_XT_MATCH_U32 is not set 409# CONFIG_NETFILTER_XT_MATCH_U32 is not set
394# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 410# CONFIG_IP_VS is not set
395 411
396# 412#
397# IP: Netfilter Configuration 413# IP: Netfilter Configuration
398# 414#
415# CONFIG_NF_DEFRAG_IPV4 is not set
399CONFIG_IP_NF_QUEUE=m 416CONFIG_IP_NF_QUEUE=m
400CONFIG_IP_NF_IPTABLES=m 417CONFIG_IP_NF_IPTABLES=m
401CONFIG_IP_NF_MATCH_RECENT=m 418CONFIG_IP_NF_MATCH_ADDRTYPE=m
402CONFIG_IP_NF_MATCH_ECN=m
403# CONFIG_IP_NF_MATCH_AH is not set 419# CONFIG_IP_NF_MATCH_AH is not set
420CONFIG_IP_NF_MATCH_ECN=m
404CONFIG_IP_NF_MATCH_TTL=m 421CONFIG_IP_NF_MATCH_TTL=m
405CONFIG_IP_NF_MATCH_ADDRTYPE=m
406CONFIG_IP_NF_FILTER=m 422CONFIG_IP_NF_FILTER=m
407CONFIG_IP_NF_TARGET_REJECT=m 423CONFIG_IP_NF_TARGET_REJECT=m
408CONFIG_IP_NF_TARGET_LOG=m 424CONFIG_IP_NF_TARGET_LOG=m
@@ -411,6 +427,7 @@ CONFIG_IP_NF_MANGLE=m
411CONFIG_IP_NF_TARGET_ECN=m 427CONFIG_IP_NF_TARGET_ECN=m
412# CONFIG_IP_NF_TARGET_TTL is not set 428# CONFIG_IP_NF_TARGET_TTL is not set
413CONFIG_IP_NF_RAW=m 429CONFIG_IP_NF_RAW=m
430# CONFIG_IP_NF_SECURITY is not set
414CONFIG_IP_NF_ARPTABLES=m 431CONFIG_IP_NF_ARPTABLES=m
415CONFIG_IP_NF_ARPFILTER=m 432CONFIG_IP_NF_ARPFILTER=m
416CONFIG_IP_NF_ARP_MANGLE=m 433CONFIG_IP_NF_ARP_MANGLE=m
@@ -420,24 +437,21 @@ CONFIG_IP_NF_ARP_MANGLE=m
420# 437#
421CONFIG_IP6_NF_QUEUE=m 438CONFIG_IP6_NF_QUEUE=m
422CONFIG_IP6_NF_IPTABLES=m 439CONFIG_IP6_NF_IPTABLES=m
423CONFIG_IP6_NF_MATCH_RT=m 440# CONFIG_IP6_NF_MATCH_AH is not set
424CONFIG_IP6_NF_MATCH_OPTS=m 441CONFIG_IP6_NF_MATCH_EUI64=m
425CONFIG_IP6_NF_MATCH_FRAG=m 442CONFIG_IP6_NF_MATCH_FRAG=m
443CONFIG_IP6_NF_MATCH_OPTS=m
426CONFIG_IP6_NF_MATCH_HL=m 444CONFIG_IP6_NF_MATCH_HL=m
427CONFIG_IP6_NF_MATCH_IPV6HEADER=m 445CONFIG_IP6_NF_MATCH_IPV6HEADER=m
428# CONFIG_IP6_NF_MATCH_AH is not set
429# CONFIG_IP6_NF_MATCH_MH is not set 446# CONFIG_IP6_NF_MATCH_MH is not set
430CONFIG_IP6_NF_MATCH_EUI64=m 447CONFIG_IP6_NF_MATCH_RT=m
431CONFIG_IP6_NF_FILTER=m
432CONFIG_IP6_NF_TARGET_LOG=m 448CONFIG_IP6_NF_TARGET_LOG=m
449CONFIG_IP6_NF_FILTER=m
433# CONFIG_IP6_NF_TARGET_REJECT is not set 450# CONFIG_IP6_NF_TARGET_REJECT is not set
434CONFIG_IP6_NF_MANGLE=m 451CONFIG_IP6_NF_MANGLE=m
435# CONFIG_IP6_NF_TARGET_HL is not set 452# CONFIG_IP6_NF_TARGET_HL is not set
436CONFIG_IP6_NF_RAW=m 453CONFIG_IP6_NF_RAW=m
437 454# CONFIG_IP6_NF_SECURITY is not set
438#
439# Bridge: Netfilter Configuration
440#
441# CONFIG_BRIDGE_NF_EBTABLES is not set 455# CONFIG_BRIDGE_NF_EBTABLES is not set
442# CONFIG_IP_DCCP is not set 456# CONFIG_IP_DCCP is not set
443CONFIG_IP_SCTP=m 457CONFIG_IP_SCTP=m
@@ -456,8 +470,11 @@ CONFIG_ATM_LANE=m
456CONFIG_ATM_MPOA=m 470CONFIG_ATM_MPOA=m
457CONFIG_ATM_BR2684=m 471CONFIG_ATM_BR2684=m
458# CONFIG_ATM_BR2684_IPFILTER is not set 472# CONFIG_ATM_BR2684_IPFILTER is not set
473CONFIG_STP=m
459CONFIG_BRIDGE=m 474CONFIG_BRIDGE=m
475# CONFIG_NET_DSA is not set
460CONFIG_VLAN_8021Q=m 476CONFIG_VLAN_8021Q=m
477# CONFIG_VLAN_8021Q_GVRP is not set
461# CONFIG_DECNET is not set 478# CONFIG_DECNET is not set
462CONFIG_LLC=m 479CONFIG_LLC=m
463# CONFIG_LLC2 is not set 480# CONFIG_LLC2 is not set
@@ -477,7 +494,7 @@ CONFIG_NET_SCH_HTB=m
477CONFIG_NET_SCH_HFSC=m 494CONFIG_NET_SCH_HFSC=m
478CONFIG_NET_SCH_ATM=m 495CONFIG_NET_SCH_ATM=m
479CONFIG_NET_SCH_PRIO=m 496CONFIG_NET_SCH_PRIO=m
480# CONFIG_NET_SCH_RR is not set 497# CONFIG_NET_SCH_MULTIQ is not set
481CONFIG_NET_SCH_RED=m 498CONFIG_NET_SCH_RED=m
482CONFIG_NET_SCH_SFQ=m 499CONFIG_NET_SCH_SFQ=m
483CONFIG_NET_SCH_TEQL=m 500CONFIG_NET_SCH_TEQL=m
@@ -515,12 +532,11 @@ CONFIG_NET_PKTGEN=m
515# CONFIG_IRDA is not set 532# CONFIG_IRDA is not set
516# CONFIG_BT is not set 533# CONFIG_BT is not set
517# CONFIG_AF_RXRPC is not set 534# CONFIG_AF_RXRPC is not set
535# CONFIG_PHONET is not set
518CONFIG_FIB_RULES=y 536CONFIG_FIB_RULES=y
519 537CONFIG_WIRELESS=y
520#
521# Wireless
522#
523# CONFIG_CFG80211 is not set 538# CONFIG_CFG80211 is not set
539CONFIG_WIRELESS_OLD_REGULATORY=y
524# CONFIG_WIRELESS_EXT is not set 540# CONFIG_WIRELESS_EXT is not set
525# CONFIG_MAC80211 is not set 541# CONFIG_MAC80211 is not set
526# CONFIG_IEEE80211 is not set 542# CONFIG_IEEE80211 is not set
@@ -646,12 +662,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
646# CONFIG_BLK_DEV_XIP is not set 662# CONFIG_BLK_DEV_XIP is not set
647# CONFIG_CDROM_PKTCDVD is not set 663# CONFIG_CDROM_PKTCDVD is not set
648# CONFIG_ATA_OVER_ETH is not set 664# CONFIG_ATA_OVER_ETH is not set
665# CONFIG_BLK_DEV_HD is not set
649CONFIG_MISC_DEVICES=y 666CONFIG_MISC_DEVICES=y
650# CONFIG_PHANTOM is not set 667# CONFIG_PHANTOM is not set
651# CONFIG_EEPROM_93CX6 is not set 668# CONFIG_EEPROM_93CX6 is not set
652# CONFIG_SGI_IOC4 is not set 669# CONFIG_SGI_IOC4 is not set
653# CONFIG_TIFM_CORE is not set 670# CONFIG_TIFM_CORE is not set
654# CONFIG_ENCLOSURE_SERVICES is not set 671# CONFIG_ENCLOSURE_SERVICES is not set
672# CONFIG_HP_ILO is not set
655CONFIG_HAVE_IDE=y 673CONFIG_HAVE_IDE=y
656# CONFIG_IDE is not set 674# CONFIG_IDE is not set
657 675
@@ -731,6 +749,7 @@ CONFIG_SCSI_LOWLEVEL=y
731# CONFIG_SCSI_NSP32 is not set 749# CONFIG_SCSI_NSP32 is not set
732# CONFIG_SCSI_DEBUG is not set 750# CONFIG_SCSI_DEBUG is not set
733# CONFIG_SCSI_SRP is not set 751# CONFIG_SCSI_SRP is not set
752# CONFIG_SCSI_DH is not set
734CONFIG_ATA=y 753CONFIG_ATA=y
735# CONFIG_ATA_NONSTANDARD is not set 754# CONFIG_ATA_NONSTANDARD is not set
736CONFIG_SATA_PMP=y 755CONFIG_SATA_PMP=y
@@ -798,12 +817,15 @@ CONFIG_SATA_SIL=y
798# 817#
799# IEEE 1394 (FireWire) support 818# IEEE 1394 (FireWire) support
800# 819#
820
821#
822# Enable only one of the two stacks, unless you know what you are doing
823#
801# CONFIG_FIREWIRE is not set 824# CONFIG_FIREWIRE is not set
802# CONFIG_IEEE1394 is not set 825# CONFIG_IEEE1394 is not set
803# CONFIG_I2O is not set 826# CONFIG_I2O is not set
804# CONFIG_MACINTOSH_DRIVERS is not set 827# CONFIG_MACINTOSH_DRIVERS is not set
805CONFIG_NETDEVICES=y 828CONFIG_NETDEVICES=y
806# CONFIG_NETDEVICES_MULTIQUEUE is not set
807CONFIG_DUMMY=m 829CONFIG_DUMMY=m
808CONFIG_BONDING=m 830CONFIG_BONDING=m
809# CONFIG_MACVLAN is not set 831# CONFIG_MACVLAN is not set
@@ -816,7 +838,7 @@ CONFIG_PHYLIB=y
816# 838#
817# MII PHY device drivers 839# MII PHY device drivers
818# 840#
819CONFIG_MARVELL_PHY=y 841# CONFIG_MARVELL_PHY is not set
820# CONFIG_DAVICOM_PHY is not set 842# CONFIG_DAVICOM_PHY is not set
821# CONFIG_QSEMI_PHY is not set 843# CONFIG_QSEMI_PHY is not set
822# CONFIG_LXT_PHY is not set 844# CONFIG_LXT_PHY is not set
@@ -840,14 +862,17 @@ CONFIG_MII=y
840# CONFIG_IBM_NEW_EMAC_RGMII is not set 862# CONFIG_IBM_NEW_EMAC_RGMII is not set
841# CONFIG_IBM_NEW_EMAC_TAH is not set 863# CONFIG_IBM_NEW_EMAC_TAH is not set
842# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 864# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
865# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
866# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
867# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
843# CONFIG_NET_PCI is not set 868# CONFIG_NET_PCI is not set
844# CONFIG_B44 is not set 869# CONFIG_B44 is not set
870# CONFIG_ATL2 is not set
845CONFIG_NETDEV_1000=y 871CONFIG_NETDEV_1000=y
846# CONFIG_ACENIC is not set 872# CONFIG_ACENIC is not set
847# CONFIG_DL2K is not set 873# CONFIG_DL2K is not set
848# CONFIG_E1000 is not set 874# CONFIG_E1000 is not set
849# CONFIG_E1000E is not set 875# CONFIG_E1000E is not set
850# CONFIG_E1000E_ENABLED is not set
851# CONFIG_IP1000 is not set 876# CONFIG_IP1000 is not set
852# CONFIG_IGB is not set 877# CONFIG_IGB is not set
853# CONFIG_NS83820 is not set 878# CONFIG_NS83820 is not set
@@ -861,9 +886,11 @@ CONFIG_NETDEV_1000=y
861# CONFIG_TIGON3 is not set 886# CONFIG_TIGON3 is not set
862# CONFIG_BNX2 is not set 887# CONFIG_BNX2 is not set
863CONFIG_GIANFAR=y 888CONFIG_GIANFAR=y
864# CONFIG_GFAR_NAPI is not set 889# CONFIG_MV643XX_ETH is not set
865# CONFIG_QLA3XXX is not set 890# CONFIG_QLA3XXX is not set
866# CONFIG_ATL1 is not set 891# CONFIG_ATL1 is not set
892# CONFIG_ATL1E is not set
893# CONFIG_JME is not set
867# CONFIG_NETDEV_10000 is not set 894# CONFIG_NETDEV_10000 is not set
868# CONFIG_TR is not set 895# CONFIG_TR is not set
869 896
@@ -895,7 +922,7 @@ CONFIG_ATM_DRIVERS=y
895# CONFIG_ATM_AMBASSADOR is not set 922# CONFIG_ATM_AMBASSADOR is not set
896# CONFIG_ATM_HORIZON is not set 923# CONFIG_ATM_HORIZON is not set
897# CONFIG_ATM_IA is not set 924# CONFIG_ATM_IA is not set
898# CONFIG_ATM_FORE200E_MAYBE is not set 925# CONFIG_ATM_FORE200E is not set
899# CONFIG_ATM_HE is not set 926# CONFIG_ATM_HE is not set
900# CONFIG_FDDI is not set 927# CONFIG_FDDI is not set
901# CONFIG_HIPPI is not set 928# CONFIG_HIPPI is not set
@@ -928,7 +955,7 @@ CONFIG_NET_POLL_CONTROLLER=y
928# Input device support 955# Input device support
929# 956#
930CONFIG_INPUT=y 957CONFIG_INPUT=y
931# CONFIG_INPUT_FF_MEMLESS is not set 958CONFIG_INPUT_FF_MEMLESS=m
932# CONFIG_INPUT_POLLDEV is not set 959# CONFIG_INPUT_POLLDEV is not set
933 960
934# 961#
@@ -962,6 +989,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
962# Character devices 989# Character devices
963# 990#
964CONFIG_VT=y 991CONFIG_VT=y
992CONFIG_CONSOLE_TRANSLATIONS=y
965CONFIG_VT_CONSOLE=y 993CONFIG_VT_CONSOLE=y
966CONFIG_HW_CONSOLE=y 994CONFIG_HW_CONSOLE=y
967# CONFIG_VT_HW_CONSOLE_BINDING is not set 995# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -1000,43 +1028,64 @@ CONFIG_DEVPORT=y
1000CONFIG_I2C=y 1028CONFIG_I2C=y
1001CONFIG_I2C_BOARDINFO=y 1029CONFIG_I2C_BOARDINFO=y
1002CONFIG_I2C_CHARDEV=y 1030CONFIG_I2C_CHARDEV=y
1031CONFIG_I2C_HELPER_AUTO=y
1003 1032
1004# 1033#
1005# I2C Hardware Bus support 1034# I2C Hardware Bus support
1006# 1035#
1036
1037#
1038# PC SMBus host controller drivers
1039#
1007# CONFIG_I2C_ALI1535 is not set 1040# CONFIG_I2C_ALI1535 is not set
1008# CONFIG_I2C_ALI1563 is not set 1041# CONFIG_I2C_ALI1563 is not set
1009# CONFIG_I2C_ALI15X3 is not set 1042# CONFIG_I2C_ALI15X3 is not set
1010# CONFIG_I2C_AMD756 is not set 1043# CONFIG_I2C_AMD756 is not set
1011# CONFIG_I2C_AMD8111 is not set 1044# CONFIG_I2C_AMD8111 is not set
1012# CONFIG_I2C_I801 is not set 1045# CONFIG_I2C_I801 is not set
1013# CONFIG_I2C_I810 is not set 1046# CONFIG_I2C_ISCH is not set
1014# CONFIG_I2C_PIIX4 is not set 1047# CONFIG_I2C_PIIX4 is not set
1015CONFIG_I2C_MPC=y
1016# CONFIG_I2C_NFORCE2 is not set 1048# CONFIG_I2C_NFORCE2 is not set
1017# CONFIG_I2C_OCORES is not set
1018# CONFIG_I2C_PARPORT_LIGHT is not set
1019# CONFIG_I2C_PROSAVAGE is not set
1020# CONFIG_I2C_SAVAGE4 is not set
1021# CONFIG_I2C_SIMTEC is not set
1022# CONFIG_I2C_SIS5595 is not set 1049# CONFIG_I2C_SIS5595 is not set
1023# CONFIG_I2C_SIS630 is not set 1050# CONFIG_I2C_SIS630 is not set
1024# CONFIG_I2C_SIS96X is not set 1051# CONFIG_I2C_SIS96X is not set
1025# CONFIG_I2C_TAOS_EVM is not set
1026# CONFIG_I2C_STUB is not set
1027# CONFIG_I2C_TINY_USB is not set
1028# CONFIG_I2C_VIA is not set 1052# CONFIG_I2C_VIA is not set
1029# CONFIG_I2C_VIAPRO is not set 1053# CONFIG_I2C_VIAPRO is not set
1054
1055#
1056# I2C system bus drivers (mostly embedded / system-on-chip)
1057#
1058CONFIG_I2C_MPC=y
1059# CONFIG_I2C_OCORES is not set
1060# CONFIG_I2C_SIMTEC is not set
1061
1062#
1063# External I2C/SMBus adapter drivers
1064#
1065# CONFIG_I2C_PARPORT_LIGHT is not set
1066# CONFIG_I2C_TAOS_EVM is not set
1067# CONFIG_I2C_TINY_USB is not set
1068
1069#
1070# Graphics adapter I2C/DDC channel drivers
1071#
1030# CONFIG_I2C_VOODOO3 is not set 1072# CONFIG_I2C_VOODOO3 is not set
1073
1074#
1075# Other I2C/SMBus bus drivers
1076#
1031# CONFIG_I2C_PCA_PLATFORM is not set 1077# CONFIG_I2C_PCA_PLATFORM is not set
1078# CONFIG_I2C_STUB is not set
1032 1079
1033# 1080#
1034# Miscellaneous I2C Chip support 1081# Miscellaneous I2C Chip support
1035# 1082#
1036CONFIG_DS1682=y 1083CONFIG_DS1682=y
1084# CONFIG_AT24 is not set
1037# CONFIG_SENSORS_EEPROM is not set 1085# CONFIG_SENSORS_EEPROM is not set
1038# CONFIG_SENSORS_PCF8574 is not set 1086# CONFIG_SENSORS_PCF8574 is not set
1039# CONFIG_PCF8575 is not set 1087# CONFIG_PCF8575 is not set
1088# CONFIG_SENSORS_PCA9539 is not set
1040# CONFIG_SENSORS_PCF8591 is not set 1089# CONFIG_SENSORS_PCF8591 is not set
1041# CONFIG_SENSORS_MAX6875 is not set 1090# CONFIG_SENSORS_MAX6875 is not set
1042# CONFIG_SENSORS_TSL2550 is not set 1091# CONFIG_SENSORS_TSL2550 is not set
@@ -1045,10 +1094,13 @@ CONFIG_DS1682=y
1045# CONFIG_I2C_DEBUG_BUS is not set 1094# CONFIG_I2C_DEBUG_BUS is not set
1046# CONFIG_I2C_DEBUG_CHIP is not set 1095# CONFIG_I2C_DEBUG_CHIP is not set
1047# CONFIG_SPI is not set 1096# CONFIG_SPI is not set
1097CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1098# CONFIG_GPIOLIB is not set
1048# CONFIG_W1 is not set 1099# CONFIG_W1 is not set
1049# CONFIG_POWER_SUPPLY is not set 1100# CONFIG_POWER_SUPPLY is not set
1050CONFIG_HWMON=y 1101CONFIG_HWMON=y
1051# CONFIG_HWMON_VID is not set 1102# CONFIG_HWMON_VID is not set
1103# CONFIG_SENSORS_AD7414 is not set
1052# CONFIG_SENSORS_AD7418 is not set 1104# CONFIG_SENSORS_AD7418 is not set
1053# CONFIG_SENSORS_ADM1021 is not set 1105# CONFIG_SENSORS_ADM1021 is not set
1054# CONFIG_SENSORS_ADM1025 is not set 1106# CONFIG_SENSORS_ADM1025 is not set
@@ -1102,6 +1154,7 @@ CONFIG_SENSORS_LM92=y
1102# CONFIG_SENSORS_W83627EHF is not set 1154# CONFIG_SENSORS_W83627EHF is not set
1103# CONFIG_HWMON_DEBUG_CHIP is not set 1155# CONFIG_HWMON_DEBUG_CHIP is not set
1104# CONFIG_THERMAL is not set 1156# CONFIG_THERMAL is not set
1157# CONFIG_THERMAL_HWMON is not set
1105CONFIG_WATCHDOG=y 1158CONFIG_WATCHDOG=y
1106# CONFIG_WATCHDOG_NOWAYOUT is not set 1159# CONFIG_WATCHDOG_NOWAYOUT is not set
1107 1160
@@ -1109,6 +1162,8 @@ CONFIG_WATCHDOG=y
1109# Watchdog Device Drivers 1162# Watchdog Device Drivers
1110# 1163#
1111# CONFIG_SOFT_WATCHDOG is not set 1164# CONFIG_SOFT_WATCHDOG is not set
1165# CONFIG_ALIM7101_WDT is not set
1166# CONFIG_8xxx_WDT is not set
1112 1167
1113# 1168#
1114# PCI-based Watchdog Cards 1169# PCI-based Watchdog Cards
@@ -1130,8 +1185,21 @@ CONFIG_SSB_POSSIBLE=y
1130# 1185#
1131# Multifunction device drivers 1186# Multifunction device drivers
1132# 1187#
1188# CONFIG_MFD_CORE is not set
1133# CONFIG_MFD_SM501 is not set 1189# CONFIG_MFD_SM501 is not set
1134# CONFIG_HTC_PASIC3 is not set 1190# CONFIG_HTC_PASIC3 is not set
1191# CONFIG_MFD_TMIO is not set
1192# CONFIG_PMIC_DA903X is not set
1193# CONFIG_MFD_WM8400 is not set
1194# CONFIG_MFD_WM8350_I2C is not set
1195
1196#
1197# Voltage and Current regulators
1198#
1199# CONFIG_REGULATOR is not set
1200# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1201# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1202# CONFIG_REGULATOR_BQ24022 is not set
1135 1203
1136# 1204#
1137# Multimedia devices 1205# Multimedia devices
@@ -1171,10 +1239,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1171CONFIG_VGA_CONSOLE=y 1239CONFIG_VGA_CONSOLE=y
1172# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1240# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1173CONFIG_DUMMY_CONSOLE=y 1241CONFIG_DUMMY_CONSOLE=y
1174
1175#
1176# Sound
1177#
1178# CONFIG_SOUND is not set 1242# CONFIG_SOUND is not set
1179CONFIG_HID_SUPPORT=y 1243CONFIG_HID_SUPPORT=y
1180CONFIG_HID=y 1244CONFIG_HID=y
@@ -1185,9 +1249,36 @@ CONFIG_HID=y
1185# USB Input Devices 1249# USB Input Devices
1186# 1250#
1187CONFIG_USB_HID=y 1251CONFIG_USB_HID=y
1188# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1252# CONFIG_HID_PID is not set
1189# CONFIG_HID_FF is not set
1190# CONFIG_USB_HIDDEV is not set 1253# CONFIG_USB_HIDDEV is not set
1254
1255#
1256# Special HID drivers
1257#
1258CONFIG_HID_COMPAT=y
1259CONFIG_HID_A4TECH=y
1260CONFIG_HID_APPLE=y
1261CONFIG_HID_BELKIN=y
1262CONFIG_HID_BRIGHT=y
1263CONFIG_HID_CHERRY=y
1264CONFIG_HID_CHICONY=y
1265CONFIG_HID_CYPRESS=y
1266CONFIG_HID_DELL=y
1267CONFIG_HID_EZKEY=y
1268CONFIG_HID_GYRATION=y
1269CONFIG_HID_LOGITECH=y
1270# CONFIG_LOGITECH_FF is not set
1271# CONFIG_LOGIRUMBLEPAD2_FF is not set
1272CONFIG_HID_MICROSOFT=y
1273CONFIG_HID_MONTEREY=y
1274CONFIG_HID_PANTHERLORD=y
1275# CONFIG_PANTHERLORD_FF is not set
1276CONFIG_HID_PETALYNX=y
1277CONFIG_HID_SAMSUNG=y
1278CONFIG_HID_SONY=y
1279CONFIG_HID_SUNPLUS=y
1280CONFIG_THRUSTMASTER_FF=m
1281CONFIG_ZEROPLUS_FF=m
1191CONFIG_USB_SUPPORT=y 1282CONFIG_USB_SUPPORT=y
1192CONFIG_USB_ARCH_HAS_HCD=y 1283CONFIG_USB_ARCH_HAS_HCD=y
1193CONFIG_USB_ARCH_HAS_OHCI=y 1284CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1205,6 +1296,9 @@ CONFIG_USB=y
1205# CONFIG_USB_OTG is not set 1296# CONFIG_USB_OTG is not set
1206# CONFIG_USB_OTG_WHITELIST is not set 1297# CONFIG_USB_OTG_WHITELIST is not set
1207# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1298# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1299# CONFIG_USB_MON is not set
1300# CONFIG_USB_WUSB is not set
1301# CONFIG_USB_WUSB_CBAF is not set
1208 1302
1209# 1303#
1210# USB Host Controller Drivers 1304# USB Host Controller Drivers
@@ -1225,6 +1319,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1225# CONFIG_USB_UHCI_HCD is not set 1319# CONFIG_USB_UHCI_HCD is not set
1226# CONFIG_USB_SL811_HCD is not set 1320# CONFIG_USB_SL811_HCD is not set
1227# CONFIG_USB_R8A66597_HCD is not set 1321# CONFIG_USB_R8A66597_HCD is not set
1322# CONFIG_USB_WHCI_HCD is not set
1323# CONFIG_USB_HWA_HCD is not set
1228 1324
1229# 1325#
1230# USB Device Class drivers 1326# USB Device Class drivers
@@ -1232,6 +1328,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1232# CONFIG_USB_ACM is not set 1328# CONFIG_USB_ACM is not set
1233# CONFIG_USB_PRINTER is not set 1329# CONFIG_USB_PRINTER is not set
1234# CONFIG_USB_WDM is not set 1330# CONFIG_USB_WDM is not set
1331# CONFIG_USB_TMC is not set
1235 1332
1236# 1333#
1237# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1334# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1261,7 +1358,6 @@ CONFIG_USB_STORAGE=y
1261# 1358#
1262# CONFIG_USB_MDC800 is not set 1359# CONFIG_USB_MDC800 is not set
1263# CONFIG_USB_MICROTEK is not set 1360# CONFIG_USB_MICROTEK is not set
1264# CONFIG_USB_MON is not set
1265 1361
1266# 1362#
1267# USB port drivers 1363# USB port drivers
@@ -1274,7 +1370,7 @@ CONFIG_USB_STORAGE=y
1274# CONFIG_USB_EMI62 is not set 1370# CONFIG_USB_EMI62 is not set
1275# CONFIG_USB_EMI26 is not set 1371# CONFIG_USB_EMI26 is not set
1276# CONFIG_USB_ADUTUX is not set 1372# CONFIG_USB_ADUTUX is not set
1277# CONFIG_USB_AUERSWALD is not set 1373# CONFIG_USB_SEVSEG is not set
1278# CONFIG_USB_RIO500 is not set 1374# CONFIG_USB_RIO500 is not set
1279# CONFIG_USB_LEGOTOWER is not set 1375# CONFIG_USB_LEGOTOWER is not set
1280# CONFIG_USB_LCD is not set 1376# CONFIG_USB_LCD is not set
@@ -1291,8 +1387,10 @@ CONFIG_USB_STORAGE=y
1291# CONFIG_USB_TRANCEVIBRATOR is not set 1387# CONFIG_USB_TRANCEVIBRATOR is not set
1292# CONFIG_USB_IOWARRIOR is not set 1388# CONFIG_USB_IOWARRIOR is not set
1293# CONFIG_USB_ISIGHTFW is not set 1389# CONFIG_USB_ISIGHTFW is not set
1390# CONFIG_USB_VST is not set
1294# CONFIG_USB_ATM is not set 1391# CONFIG_USB_ATM is not set
1295# CONFIG_USB_GADGET is not set 1392# CONFIG_USB_GADGET is not set
1393# CONFIG_UWB is not set
1296# CONFIG_MMC is not set 1394# CONFIG_MMC is not set
1297# CONFIG_MEMSTICK is not set 1395# CONFIG_MEMSTICK is not set
1298# CONFIG_NEW_LEDS is not set 1396# CONFIG_NEW_LEDS is not set
@@ -1325,6 +1423,7 @@ CONFIG_RTC_INTF_DEV=y
1325# CONFIG_RTC_DRV_PCF8583 is not set 1423# CONFIG_RTC_DRV_PCF8583 is not set
1326# CONFIG_RTC_DRV_M41T80 is not set 1424# CONFIG_RTC_DRV_M41T80 is not set
1327# CONFIG_RTC_DRV_S35390A is not set 1425# CONFIG_RTC_DRV_S35390A is not set
1426# CONFIG_RTC_DRV_FM3130 is not set
1328 1427
1329# 1428#
1330# SPI RTC drivers 1429# SPI RTC drivers
@@ -1334,12 +1433,15 @@ CONFIG_RTC_INTF_DEV=y
1334# Platform RTC drivers 1433# Platform RTC drivers
1335# 1434#
1336# CONFIG_RTC_DRV_CMOS is not set 1435# CONFIG_RTC_DRV_CMOS is not set
1436# CONFIG_RTC_DRV_DS1286 is not set
1337# CONFIG_RTC_DRV_DS1511 is not set 1437# CONFIG_RTC_DRV_DS1511 is not set
1338# CONFIG_RTC_DRV_DS1553 is not set 1438# CONFIG_RTC_DRV_DS1553 is not set
1339# CONFIG_RTC_DRV_DS1742 is not set 1439# CONFIG_RTC_DRV_DS1742 is not set
1340# CONFIG_RTC_DRV_STK17TA8 is not set 1440# CONFIG_RTC_DRV_STK17TA8 is not set
1341# CONFIG_RTC_DRV_M48T86 is not set 1441# CONFIG_RTC_DRV_M48T86 is not set
1442# CONFIG_RTC_DRV_M48T35 is not set
1342# CONFIG_RTC_DRV_M48T59 is not set 1443# CONFIG_RTC_DRV_M48T59 is not set
1444# CONFIG_RTC_DRV_BQ4802 is not set
1343# CONFIG_RTC_DRV_V3020 is not set 1445# CONFIG_RTC_DRV_V3020 is not set
1344 1446
1345# 1447#
@@ -1348,6 +1450,7 @@ CONFIG_RTC_INTF_DEV=y
1348# CONFIG_RTC_DRV_PPC is not set 1450# CONFIG_RTC_DRV_PPC is not set
1349# CONFIG_DMADEVICES is not set 1451# CONFIG_DMADEVICES is not set
1350# CONFIG_UIO is not set 1452# CONFIG_UIO is not set
1453# CONFIG_STAGING is not set
1351 1454
1352# 1455#
1353# File systems 1456# File systems
@@ -1361,12 +1464,13 @@ CONFIG_EXT3_FS=y
1361CONFIG_EXT3_FS_XATTR=y 1464CONFIG_EXT3_FS_XATTR=y
1362CONFIG_EXT3_FS_POSIX_ACL=y 1465CONFIG_EXT3_FS_POSIX_ACL=y
1363# CONFIG_EXT3_FS_SECURITY is not set 1466# CONFIG_EXT3_FS_SECURITY is not set
1364# CONFIG_EXT4DEV_FS is not set 1467# CONFIG_EXT4_FS is not set
1365CONFIG_JBD=y 1468CONFIG_JBD=y
1366CONFIG_FS_MBCACHE=y 1469CONFIG_FS_MBCACHE=y
1367# CONFIG_REISERFS_FS is not set 1470# CONFIG_REISERFS_FS is not set
1368# CONFIG_JFS_FS is not set 1471# CONFIG_JFS_FS is not set
1369CONFIG_FS_POSIX_ACL=y 1472CONFIG_FS_POSIX_ACL=y
1473CONFIG_FILE_LOCKING=y
1370# CONFIG_XFS_FS is not set 1474# CONFIG_XFS_FS is not set
1371# CONFIG_OCFS2_FS is not set 1475# CONFIG_OCFS2_FS is not set
1372CONFIG_DNOTIFY=y 1476CONFIG_DNOTIFY=y
@@ -1399,6 +1503,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1399CONFIG_PROC_FS=y 1503CONFIG_PROC_FS=y
1400CONFIG_PROC_KCORE=y 1504CONFIG_PROC_KCORE=y
1401CONFIG_PROC_SYSCTL=y 1505CONFIG_PROC_SYSCTL=y
1506CONFIG_PROC_PAGE_MONITOR=y
1402CONFIG_SYSFS=y 1507CONFIG_SYSFS=y
1403CONFIG_TMPFS=y 1508CONFIG_TMPFS=y
1404# CONFIG_TMPFS_POSIX_ACL is not set 1509# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1419,6 +1524,7 @@ CONFIG_TMPFS=y
1419# CONFIG_CRAMFS is not set 1524# CONFIG_CRAMFS is not set
1420# CONFIG_VXFS_FS is not set 1525# CONFIG_VXFS_FS is not set
1421# CONFIG_MINIX_FS is not set 1526# CONFIG_MINIX_FS is not set
1527# CONFIG_OMFS_FS is not set
1422# CONFIG_HPFS_FS is not set 1528# CONFIG_HPFS_FS is not set
1423# CONFIG_QNX4FS_FS is not set 1529# CONFIG_QNX4FS_FS is not set
1424# CONFIG_ROMFS_FS is not set 1530# CONFIG_ROMFS_FS is not set
@@ -1429,14 +1535,14 @@ CONFIG_NFS_FS=y
1429CONFIG_NFS_V3=y 1535CONFIG_NFS_V3=y
1430# CONFIG_NFS_V3_ACL is not set 1536# CONFIG_NFS_V3_ACL is not set
1431CONFIG_NFS_V4=y 1537CONFIG_NFS_V4=y
1432# CONFIG_NFSD is not set
1433CONFIG_ROOT_NFS=y 1538CONFIG_ROOT_NFS=y
1539# CONFIG_NFSD is not set
1434CONFIG_LOCKD=y 1540CONFIG_LOCKD=y
1435CONFIG_LOCKD_V4=y 1541CONFIG_LOCKD_V4=y
1436CONFIG_NFS_COMMON=y 1542CONFIG_NFS_COMMON=y
1437CONFIG_SUNRPC=y 1543CONFIG_SUNRPC=y
1438CONFIG_SUNRPC_GSS=y 1544CONFIG_SUNRPC_GSS=y
1439# CONFIG_SUNRPC_BIND34 is not set 1545# CONFIG_SUNRPC_REGISTER_V4 is not set
1440CONFIG_RPCSEC_GSS_KRB5=y 1546CONFIG_RPCSEC_GSS_KRB5=y
1441# CONFIG_RPCSEC_GSS_SPKM3 is not set 1547# CONFIG_RPCSEC_GSS_SPKM3 is not set
1442# CONFIG_SMB_FS is not set 1548# CONFIG_SMB_FS is not set
@@ -1502,9 +1608,9 @@ CONFIG_NLS_UTF8=m
1502# Library routines 1608# Library routines
1503# 1609#
1504CONFIG_BITREVERSE=y 1610CONFIG_BITREVERSE=y
1505# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1506CONFIG_CRC_CCITT=m 1611CONFIG_CRC_CCITT=m
1507# CONFIG_CRC16 is not set 1612# CONFIG_CRC16 is not set
1613# CONFIG_CRC_T10DIF is not set
1508# CONFIG_CRC_ITU_T is not set 1614# CONFIG_CRC_ITU_T is not set
1509CONFIG_CRC32=y 1615CONFIG_CRC32=y
1510# CONFIG_CRC7 is not set 1616# CONFIG_CRC7 is not set
@@ -1531,6 +1637,8 @@ CONFIG_MAGIC_SYSRQ=y
1531CONFIG_DEBUG_KERNEL=y 1637CONFIG_DEBUG_KERNEL=y
1532# CONFIG_DEBUG_SHIRQ is not set 1638# CONFIG_DEBUG_SHIRQ is not set
1533CONFIG_DETECT_SOFTLOCKUP=y 1639CONFIG_DETECT_SOFTLOCKUP=y
1640# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1641CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1534CONFIG_SCHED_DEBUG=y 1642CONFIG_SCHED_DEBUG=y
1535# CONFIG_SCHEDSTATS is not set 1643# CONFIG_SCHEDSTATS is not set
1536# CONFIG_TIMER_STATS is not set 1644# CONFIG_TIMER_STATS is not set
@@ -1547,20 +1655,42 @@ CONFIG_SCHED_DEBUG=y
1547CONFIG_DEBUG_INFO=y 1655CONFIG_DEBUG_INFO=y
1548# CONFIG_DEBUG_VM is not set 1656# CONFIG_DEBUG_VM is not set
1549# CONFIG_DEBUG_WRITECOUNT is not set 1657# CONFIG_DEBUG_WRITECOUNT is not set
1658# CONFIG_DEBUG_MEMORY_INIT is not set
1550# CONFIG_DEBUG_LIST is not set 1659# CONFIG_DEBUG_LIST is not set
1551# CONFIG_DEBUG_SG is not set 1660# CONFIG_DEBUG_SG is not set
1552# CONFIG_BOOT_PRINTK_DELAY is not set 1661# CONFIG_BOOT_PRINTK_DELAY is not set
1553# CONFIG_RCU_TORTURE_TEST is not set 1662# CONFIG_RCU_TORTURE_TEST is not set
1663# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1554# CONFIG_BACKTRACE_SELF_TEST is not set 1664# CONFIG_BACKTRACE_SELF_TEST is not set
1665# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1555# CONFIG_FAULT_INJECTION is not set 1666# CONFIG_FAULT_INJECTION is not set
1667# CONFIG_LATENCYTOP is not set
1668CONFIG_SYSCTL_SYSCALL_CHECK=y
1669CONFIG_HAVE_FUNCTION_TRACER=y
1670
1671#
1672# Tracers
1673#
1674# CONFIG_FUNCTION_TRACER is not set
1675# CONFIG_PREEMPT_TRACER is not set
1676# CONFIG_SCHED_TRACER is not set
1677# CONFIG_CONTEXT_SWITCH_TRACER is not set
1678# CONFIG_BOOT_TRACER is not set
1679# CONFIG_STACK_TRACER is not set
1680# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1556# CONFIG_SAMPLES is not set 1681# CONFIG_SAMPLES is not set
1682CONFIG_HAVE_ARCH_KGDB=y
1683# CONFIG_KGDB is not set
1557# CONFIG_DEBUG_STACKOVERFLOW is not set 1684# CONFIG_DEBUG_STACKOVERFLOW is not set
1558# CONFIG_DEBUG_STACK_USAGE is not set 1685# CONFIG_DEBUG_STACK_USAGE is not set
1559# CONFIG_DEBUG_PAGEALLOC is not set 1686# CONFIG_DEBUG_PAGEALLOC is not set
1560CONFIG_DEBUGGER=y 1687# CONFIG_CODE_PATCHING_SELFTEST is not set
1688# CONFIG_FTR_FIXUP_SELFTEST is not set
1689# CONFIG_MSI_BITMAP_SELFTEST is not set
1561# CONFIG_XMON is not set 1690# CONFIG_XMON is not set
1562# CONFIG_IRQSTACKS is not set 1691# CONFIG_IRQSTACKS is not set
1563# CONFIG_BDI_SWITCH is not set 1692# CONFIG_BDI_SWITCH is not set
1693# CONFIG_BOOTX_TEXT is not set
1564# CONFIG_PPC_EARLY_DEBUG is not set 1694# CONFIG_PPC_EARLY_DEBUG is not set
1565 1695
1566# 1696#
@@ -1568,9 +1698,9 @@ CONFIG_DEBUGGER=y
1568# 1698#
1569# CONFIG_KEYS is not set 1699# CONFIG_KEYS is not set
1570CONFIG_SECURITY=y 1700CONFIG_SECURITY=y
1701# CONFIG_SECURITYFS is not set
1571CONFIG_SECURITY_NETWORK=y 1702CONFIG_SECURITY_NETWORK=y
1572# CONFIG_SECURITY_NETWORK_XFRM is not set 1703# CONFIG_SECURITY_NETWORK_XFRM is not set
1573CONFIG_SECURITY_CAPABILITIES=y
1574# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1704# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1575# CONFIG_SECURITY_ROOTPLUG is not set 1705# CONFIG_SECURITY_ROOTPLUG is not set
1576CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1706CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
@@ -1579,10 +1709,12 @@ CONFIG_CRYPTO=y
1579# 1709#
1580# Crypto core or helper 1710# Crypto core or helper
1581# 1711#
1712# CONFIG_CRYPTO_FIPS is not set
1582CONFIG_CRYPTO_ALGAPI=y 1713CONFIG_CRYPTO_ALGAPI=y
1583CONFIG_CRYPTO_AEAD=m 1714CONFIG_CRYPTO_AEAD=y
1584CONFIG_CRYPTO_BLKCIPHER=y 1715CONFIG_CRYPTO_BLKCIPHER=y
1585CONFIG_CRYPTO_HASH=y 1716CONFIG_CRYPTO_HASH=y
1717CONFIG_CRYPTO_RNG=y
1586CONFIG_CRYPTO_MANAGER=y 1718CONFIG_CRYPTO_MANAGER=y
1587# CONFIG_CRYPTO_GF128MUL is not set 1719# CONFIG_CRYPTO_GF128MUL is not set
1588CONFIG_CRYPTO_NULL=m 1720CONFIG_CRYPTO_NULL=m
@@ -1621,6 +1753,10 @@ CONFIG_CRYPTO_CRC32C=m
1621CONFIG_CRYPTO_MD4=m 1753CONFIG_CRYPTO_MD4=m
1622CONFIG_CRYPTO_MD5=y 1754CONFIG_CRYPTO_MD5=y
1623CONFIG_CRYPTO_MICHAEL_MIC=m 1755CONFIG_CRYPTO_MICHAEL_MIC=m
1756# CONFIG_CRYPTO_RMD128 is not set
1757# CONFIG_CRYPTO_RMD160 is not set
1758# CONFIG_CRYPTO_RMD256 is not set
1759# CONFIG_CRYPTO_RMD320 is not set
1624CONFIG_CRYPTO_SHA1=m 1760CONFIG_CRYPTO_SHA1=m
1625CONFIG_CRYPTO_SHA256=m 1761CONFIG_CRYPTO_SHA256=m
1626CONFIG_CRYPTO_SHA512=m 1762CONFIG_CRYPTO_SHA512=m
@@ -1652,6 +1788,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1652# 1788#
1653CONFIG_CRYPTO_DEFLATE=m 1789CONFIG_CRYPTO_DEFLATE=m
1654# CONFIG_CRYPTO_LZO is not set 1790# CONFIG_CRYPTO_LZO is not set
1791
1792#
1793# Random Number Generation
1794#
1795# CONFIG_CRYPTO_ANSI_CPRNG is not set
1655# CONFIG_CRYPTO_HW is not set 1796# CONFIG_CRYPTO_HW is not set
1656# CONFIG_PPC_CLOCK is not set 1797# CONFIG_PPC_CLOCK is not set
1657# CONFIG_VIRTUALIZATION is not set 1798# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index c98c6ee44492..72854a10dfa1 100644
--- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:10 2008 4# Sat Nov 8 12:40:28 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
@@ -22,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
22# CONFIG_SMP is not set 23# CONFIG_SMP is not set
23CONFIG_PPC32=y 24CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
26CONFIG_MMU=y 27CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -52,8 +53,6 @@ CONFIG_PPC_UDBG_16550=y
52CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
53CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55CONFIG_HIBERNATE_32=y
56CONFIG_ARCH_HIBERNATION_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -99,7 +98,6 @@ CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 98CONFIG_PRINTK=y
100CONFIG_BUG=y 99CONFIG_BUG=y
101# CONFIG_ELF_CORE is not set 100# CONFIG_ELF_CORE is not set
102CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 101CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 102CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 103CONFIG_FUTEX=y
@@ -109,7 +107,9 @@ CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 107CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 109CONFIG_SHMEM=y
110CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y 113CONFIG_SLUB_DEBUG=y
114# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
115CONFIG_SLUB=y 115CONFIG_SLUB=y
@@ -123,10 +123,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_DMA_ATTRS is not set
127# CONFIG_USE_GENERIC_SMP_HELPERS is not set
128# CONFIG_HAVE_CLK is not set
129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
@@ -159,6 +155,7 @@ CONFIG_DEFAULT_DEADLINE=y
159# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="deadline" 156CONFIG_DEFAULT_IOSCHED="deadline"
161CONFIG_CLASSIC_RCU=y 157CONFIG_CLASSIC_RCU=y
158# CONFIG_FREEZER is not set
162 159
163# 160#
164# Platform support 161# Platform support
@@ -166,10 +163,10 @@ CONFIG_CLASSIC_RCU=y
166CONFIG_PPC_MULTIPLATFORM=y 163CONFIG_PPC_MULTIPLATFORM=y
167CONFIG_CLASSIC32=y 164CONFIG_CLASSIC32=y
168# CONFIG_PPC_CHRP is not set 165# CONFIG_PPC_CHRP is not set
169# CONFIG_PPC_PMAC is not set
170# CONFIG_MPC5121_ADS is not set 166# CONFIG_MPC5121_ADS is not set
171# CONFIG_MPC5121_GENERIC is not set 167# CONFIG_MPC5121_GENERIC is not set
172# CONFIG_PPC_MPC52xx is not set 168# CONFIG_PPC_MPC52xx is not set
169# CONFIG_PPC_PMAC is not set
173# CONFIG_PPC_CELL is not set 170# CONFIG_PPC_CELL is not set
174# CONFIG_PPC_CELL_NATIVE is not set 171# CONFIG_PPC_CELL_NATIVE is not set
175# CONFIG_PPC_82xx is not set 172# CONFIG_PPC_82xx is not set
@@ -179,26 +176,24 @@ CONFIG_PPC_86xx=y
179# CONFIG_MPC8641_HPCN is not set 176# CONFIG_MPC8641_HPCN is not set
180# CONFIG_SBC8641D is not set 177# CONFIG_SBC8641D is not set
181CONFIG_MPC8610_HPCD=y 178CONFIG_MPC8610_HPCD=y
179# CONFIG_GEF_SBC610 is not set
182CONFIG_MPC8610=y 180CONFIG_MPC8610=y
183# CONFIG_EMBEDDED6xx is not set 181# CONFIG_EMBEDDED6xx is not set
184CONFIG_PPC_NATIVE=y
185# CONFIG_UDBG_RTAS_CONSOLE is not set
186# CONFIG_IPIC is not set 182# CONFIG_IPIC is not set
187CONFIG_MPIC=y 183CONFIG_MPIC=y
188# CONFIG_MPIC_WEIRD is not set 184# CONFIG_MPIC_WEIRD is not set
189CONFIG_PPC_I8259=y 185# CONFIG_PPC_I8259 is not set
190CONFIG_PPC_RTAS=y 186# CONFIG_PPC_RTAS is not set
191# CONFIG_RTAS_ERROR_LOGGING is not set
192CONFIG_RTAS_PROC=y
193# CONFIG_MMIO_NVRAM is not set 187# CONFIG_MMIO_NVRAM is not set
194CONFIG_PPC_MPC106=y 188# CONFIG_PPC_MPC106 is not set
195# CONFIG_PPC_970_NAP is not set 189# CONFIG_PPC_970_NAP is not set
196# CONFIG_PPC_INDIRECT_IO is not set 190# CONFIG_PPC_INDIRECT_IO is not set
197# CONFIG_GENERIC_IOMAP is not set 191# CONFIG_GENERIC_IOMAP is not set
198# CONFIG_CPU_FREQ is not set 192# CONFIG_CPU_FREQ is not set
199# CONFIG_PPC601_SYNC_FIX is not set
200# CONFIG_TAU is not set 193# CONFIG_TAU is not set
194# CONFIG_QUICC_ENGINE is not set
201CONFIG_FSL_ULI1575=y 195CONFIG_FSL_ULI1575=y
196# CONFIG_MPC8xxx_GPIO is not set
202 197
203# 198#
204# Kernel options 199# Kernel options
@@ -218,6 +213,8 @@ CONFIG_PREEMPT_NONE=y
218# CONFIG_PREEMPT_VOLUNTARY is not set 213# CONFIG_PREEMPT_VOLUNTARY is not set
219# CONFIG_PREEMPT is not set 214# CONFIG_PREEMPT is not set
220CONFIG_BINFMT_ELF=y 215CONFIG_BINFMT_ELF=y
216# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
217# CONFIG_HAVE_AOUT is not set
221# CONFIG_BINFMT_MISC is not set 218# CONFIG_BINFMT_MISC is not set
222# CONFIG_IOMMU_HELPER is not set 219# CONFIG_IOMMU_HELPER is not set
223CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -232,15 +229,15 @@ CONFIG_FLATMEM_MANUAL=y
232# CONFIG_SPARSEMEM_MANUAL is not set 229# CONFIG_SPARSEMEM_MANUAL is not set
233CONFIG_FLATMEM=y 230CONFIG_FLATMEM=y
234CONFIG_FLAT_NODE_MEM_MAP=y 231CONFIG_FLAT_NODE_MEM_MAP=y
235# CONFIG_SPARSEMEM_STATIC is not set
236# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
237CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
238CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y 234CONFIG_MIGRATION=y
240# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
236# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y
244CONFIG_FORCE_MAX_ZONEORDER=12 241CONFIG_FORCE_MAX_ZONEORDER=12
245CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -252,7 +249,6 @@ CONFIG_ISA_DMA_API=y
252# 249#
253# Bus options 250# Bus options
254# 251#
255# CONFIG_ISA is not set
256CONFIG_ZONE_DMA=y 252CONFIG_ZONE_DMA=y
257CONFIG_GENERIC_ISA_DMA=y 253CONFIG_GENERIC_ISA_DMA=y
258CONFIG_PPC_INDIRECT_PCI=y 254CONFIG_PPC_INDIRECT_PCI=y
@@ -267,7 +263,7 @@ CONFIG_PCIEAER=y
267# CONFIG_PCIEASPM is not set 263# CONFIG_PCIEASPM is not set
268CONFIG_ARCH_SUPPORTS_MSI=y 264CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_MSI is not set 265# CONFIG_PCI_MSI is not set
270CONFIG_PCI_LEGACY=y 266# CONFIG_PCI_LEGACY is not set
271CONFIG_PCI_DEBUG=y 267CONFIG_PCI_DEBUG=y
272# CONFIG_PCCARD is not set 268# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 269# CONFIG_HOTPLUG_PCI is not set
@@ -353,6 +349,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
353# CONFIG_TIPC is not set 349# CONFIG_TIPC is not set
354# CONFIG_ATM is not set 350# CONFIG_ATM is not set
355# CONFIG_BRIDGE is not set 351# CONFIG_BRIDGE is not set
352# CONFIG_NET_DSA is not set
356# CONFIG_VLAN_8021Q is not set 353# CONFIG_VLAN_8021Q is not set
357# CONFIG_DECNET is not set 354# CONFIG_DECNET is not set
358# CONFIG_LLC2 is not set 355# CONFIG_LLC2 is not set
@@ -373,11 +370,10 @@ CONFIG_IPV6_NDISC_NODETYPE=y
373# CONFIG_IRDA is not set 370# CONFIG_IRDA is not set
374# CONFIG_BT is not set 371# CONFIG_BT is not set
375# CONFIG_AF_RXRPC is not set 372# CONFIG_AF_RXRPC is not set
376 373# CONFIG_PHONET is not set
377# 374CONFIG_WIRELESS=y
378# Wireless
379#
380# CONFIG_CFG80211 is not set 375# CONFIG_CFG80211 is not set
376CONFIG_WIRELESS_OLD_REGULATORY=y
381# CONFIG_WIRELESS_EXT is not set 377# CONFIG_WIRELESS_EXT is not set
382# CONFIG_MAC80211 is not set 378# CONFIG_MAC80211 is not set
383# CONFIG_IEEE80211 is not set 379# CONFIG_IEEE80211 is not set
@@ -493,7 +489,6 @@ CONFIG_OF_I2C=y
493# CONFIG_PARPORT is not set 489# CONFIG_PARPORT is not set
494CONFIG_BLK_DEV=y 490CONFIG_BLK_DEV=y
495# CONFIG_BLK_DEV_FD is not set 491# CONFIG_BLK_DEV_FD is not set
496# CONFIG_MAC_FLOPPY is not set
497# CONFIG_BLK_CPQ_DA is not set 492# CONFIG_BLK_CPQ_DA is not set
498# CONFIG_BLK_CPQ_CISS_DA is not set 493# CONFIG_BLK_CPQ_CISS_DA is not set
499# CONFIG_BLK_DEV_DAC960 is not set 494# CONFIG_BLK_DEV_DAC960 is not set
@@ -519,7 +514,54 @@ CONFIG_MISC_DEVICES=y
519# CONFIG_HP_ILO is not set 514# CONFIG_HP_ILO is not set
520CONFIG_HAVE_IDE=y 515CONFIG_HAVE_IDE=y
521CONFIG_IDE=y 516CONFIG_IDE=y
522# CONFIG_BLK_DEV_IDE is not set 517
518#
519# Please see Documentation/ide/ide.txt for help/info on IDE drives
520#
521# CONFIG_BLK_DEV_IDE_SATA is not set
522CONFIG_IDE_GD=y
523CONFIG_IDE_GD_ATA=y
524# CONFIG_IDE_GD_ATAPI is not set
525# CONFIG_BLK_DEV_IDECD is not set
526# CONFIG_BLK_DEV_IDETAPE is not set
527# CONFIG_BLK_DEV_IDESCSI is not set
528# CONFIG_IDE_TASK_IOCTL is not set
529CONFIG_IDE_PROC_FS=y
530
531#
532# IDE chipset support/bugfixes
533#
534# CONFIG_BLK_DEV_PLATFORM is not set
535
536#
537# PCI IDE chipsets support
538#
539# CONFIG_BLK_DEV_GENERIC is not set
540# CONFIG_BLK_DEV_OPTI621 is not set
541# CONFIG_BLK_DEV_AEC62XX is not set
542# CONFIG_BLK_DEV_ALI15X3 is not set
543# CONFIG_BLK_DEV_AMD74XX is not set
544# CONFIG_BLK_DEV_CMD64X is not set
545# CONFIG_BLK_DEV_TRIFLEX is not set
546# CONFIG_BLK_DEV_CS5520 is not set
547# CONFIG_BLK_DEV_CS5530 is not set
548# CONFIG_BLK_DEV_HPT366 is not set
549# CONFIG_BLK_DEV_JMICRON is not set
550# CONFIG_BLK_DEV_SC1200 is not set
551# CONFIG_BLK_DEV_PIIX is not set
552# CONFIG_BLK_DEV_IT8213 is not set
553# CONFIG_BLK_DEV_IT821X is not set
554# CONFIG_BLK_DEV_NS87415 is not set
555# CONFIG_BLK_DEV_PDC202XX_OLD is not set
556# CONFIG_BLK_DEV_PDC202XX_NEW is not set
557# CONFIG_BLK_DEV_SVWKS is not set
558# CONFIG_BLK_DEV_SIIMAGE is not set
559# CONFIG_BLK_DEV_SL82C105 is not set
560# CONFIG_BLK_DEV_SLC90E66 is not set
561# CONFIG_BLK_DEV_TRM290 is not set
562# CONFIG_BLK_DEV_VIA82CXXX is not set
563# CONFIG_BLK_DEV_TC86C001 is not set
564# CONFIG_BLK_DEV_IDEDMA is not set
523 565
524# 566#
525# SCSI device support 567# SCSI device support
@@ -595,8 +637,6 @@ CONFIG_SCSI_LOWLEVEL=y
595# CONFIG_SCSI_DC390T is not set 637# CONFIG_SCSI_DC390T is not set
596# CONFIG_SCSI_NSP32 is not set 638# CONFIG_SCSI_NSP32 is not set
597# CONFIG_SCSI_DEBUG is not set 639# CONFIG_SCSI_DEBUG is not set
598# CONFIG_SCSI_MESH is not set
599# CONFIG_SCSI_MAC53C94 is not set
600# CONFIG_SCSI_SRP is not set 640# CONFIG_SCSI_SRP is not set
601# CONFIG_SCSI_DH is not set 641# CONFIG_SCSI_DH is not set
602CONFIG_ATA=y 642CONFIG_ATA=y
@@ -685,8 +725,6 @@ CONFIG_DUMMY=y
685# CONFIG_PHYLIB is not set 725# CONFIG_PHYLIB is not set
686CONFIG_NET_ETHERNET=y 726CONFIG_NET_ETHERNET=y
687# CONFIG_MII is not set 727# CONFIG_MII is not set
688# CONFIG_MACE is not set
689# CONFIG_BMAC is not set
690# CONFIG_HAPPYMEAL is not set 728# CONFIG_HAPPYMEAL is not set
691# CONFIG_SUNGEM is not set 729# CONFIG_SUNGEM is not set
692# CONFIG_CASSINI is not set 730# CONFIG_CASSINI is not set
@@ -703,8 +741,12 @@ CONFIG_ULI526X=y
703# CONFIG_IBM_NEW_EMAC_RGMII is not set 741# CONFIG_IBM_NEW_EMAC_RGMII is not set
704# CONFIG_IBM_NEW_EMAC_TAH is not set 742# CONFIG_IBM_NEW_EMAC_TAH is not set
705# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 743# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
744# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
745# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
746# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
706# CONFIG_NET_PCI is not set 747# CONFIG_NET_PCI is not set
707# CONFIG_B44 is not set 748# CONFIG_B44 is not set
749# CONFIG_ATL2 is not set
708# CONFIG_NETDEV_1000 is not set 750# CONFIG_NETDEV_1000 is not set
709# CONFIG_NETDEV_10000 is not set 751# CONFIG_NETDEV_10000 is not set
710# CONFIG_TR is not set 752# CONFIG_TR is not set
@@ -796,13 +838,10 @@ CONFIG_SERIAL_8250_RSA=y
796# CONFIG_SERIAL_UARTLITE is not set 838# CONFIG_SERIAL_UARTLITE is not set
797CONFIG_SERIAL_CORE=y 839CONFIG_SERIAL_CORE=y
798CONFIG_SERIAL_CORE_CONSOLE=y 840CONFIG_SERIAL_CORE_CONSOLE=y
799# CONFIG_SERIAL_PMACZILOG is not set
800# CONFIG_SERIAL_JSM is not set 841# CONFIG_SERIAL_JSM is not set
801# CONFIG_SERIAL_OF_PLATFORM is not set 842# CONFIG_SERIAL_OF_PLATFORM is not set
802CONFIG_UNIX98_PTYS=y 843CONFIG_UNIX98_PTYS=y
803# CONFIG_LEGACY_PTYS is not set 844# CONFIG_LEGACY_PTYS is not set
804# CONFIG_BRIQ_PANEL is not set
805# CONFIG_HVC_RTAS is not set
806# CONFIG_IPMI_HANDLER is not set 845# CONFIG_IPMI_HANDLER is not set
807# CONFIG_HW_RANDOM is not set 846# CONFIG_HW_RANDOM is not set
808# CONFIG_NVRAM is not set 847# CONFIG_NVRAM is not set
@@ -839,12 +878,6 @@ CONFIG_I2C_HELPER_AUTO=y
839# CONFIG_I2C_VIAPRO is not set 878# CONFIG_I2C_VIAPRO is not set
840 879
841# 880#
842# Mac SMBus host controller drivers
843#
844# CONFIG_I2C_HYDRA is not set
845CONFIG_I2C_POWERMAC=y
846
847#
848# I2C system bus drivers (mostly embedded / system-on-chip) 881# I2C system bus drivers (mostly embedded / system-on-chip)
849# 882#
850CONFIG_I2C_MPC=y 883CONFIG_I2C_MPC=y
@@ -907,6 +940,17 @@ CONFIG_SSB_POSSIBLE=y
907# CONFIG_MFD_SM501 is not set 940# CONFIG_MFD_SM501 is not set
908# CONFIG_HTC_PASIC3 is not set 941# CONFIG_HTC_PASIC3 is not set
909# CONFIG_MFD_TMIO is not set 942# CONFIG_MFD_TMIO is not set
943# CONFIG_PMIC_DA903X is not set
944# CONFIG_MFD_WM8400 is not set
945# CONFIG_MFD_WM8350_I2C is not set
946
947#
948# Voltage and Current regulators
949#
950# CONFIG_REGULATOR is not set
951# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
952# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
953# CONFIG_REGULATOR_BQ24022 is not set
910 954
911# 955#
912# Multimedia devices 956# Multimedia devices
@@ -934,6 +978,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
934CONFIG_FB=y 978CONFIG_FB=y
935# CONFIG_FIRMWARE_EDID is not set 979# CONFIG_FIRMWARE_EDID is not set
936# CONFIG_FB_DDC is not set 980# CONFIG_FB_DDC is not set
981# CONFIG_FB_BOOT_VESA_SUPPORT is not set
937CONFIG_FB_CFB_FILLRECT=y 982CONFIG_FB_CFB_FILLRECT=y
938CONFIG_FB_CFB_COPYAREA=y 983CONFIG_FB_CFB_COPYAREA=y
939CONFIG_FB_CFB_IMAGEBLIT=y 984CONFIG_FB_CFB_IMAGEBLIT=y
@@ -956,9 +1001,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
956# CONFIG_FB_PM2 is not set 1001# CONFIG_FB_PM2 is not set
957# CONFIG_FB_CYBER2000 is not set 1002# CONFIG_FB_CYBER2000 is not set
958# CONFIG_FB_OF is not set 1003# CONFIG_FB_OF is not set
959# CONFIG_FB_CONTROL is not set
960# CONFIG_FB_PLATINUM is not set
961# CONFIG_FB_VALKYRIE is not set
962# CONFIG_FB_CT65550 is not set 1004# CONFIG_FB_CT65550 is not set
963# CONFIG_FB_ASILIANT is not set 1005# CONFIG_FB_ASILIANT is not set
964# CONFIG_FB_IMSTT is not set 1006# CONFIG_FB_IMSTT is not set
@@ -973,6 +1015,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
973# CONFIG_FB_S3 is not set 1015# CONFIG_FB_S3 is not set
974# CONFIG_FB_SAVAGE is not set 1016# CONFIG_FB_SAVAGE is not set
975# CONFIG_FB_SIS is not set 1017# CONFIG_FB_SIS is not set
1018# CONFIG_FB_VIA is not set
976# CONFIG_FB_NEOMAGIC is not set 1019# CONFIG_FB_NEOMAGIC is not set
977# CONFIG_FB_KYRO is not set 1020# CONFIG_FB_KYRO is not set
978# CONFIG_FB_3DFX is not set 1021# CONFIG_FB_3DFX is not set
@@ -985,6 +1028,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
985CONFIG_FB_FSL_DIU=y 1028CONFIG_FB_FSL_DIU=y
986# CONFIG_FB_IBM_GXT4500 is not set 1029# CONFIG_FB_IBM_GXT4500 is not set
987# CONFIG_FB_VIRTUAL is not set 1030# CONFIG_FB_VIRTUAL is not set
1031# CONFIG_FB_METRONOME is not set
988# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1032# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
989 1033
990# 1034#
@@ -1001,6 +1045,7 @@ CONFIG_DUMMY_CONSOLE=y
1001# CONFIG_FRAMEBUFFER_CONSOLE is not set 1045# CONFIG_FRAMEBUFFER_CONSOLE is not set
1002# CONFIG_LOGO is not set 1046# CONFIG_LOGO is not set
1003CONFIG_SOUND=y 1047CONFIG_SOUND=y
1048CONFIG_SOUND_OSS_CORE=y
1004CONFIG_SND=y 1049CONFIG_SND=y
1005CONFIG_SND_TIMER=y 1050CONFIG_SND_TIMER=y
1006CONFIG_SND_PCM=y 1051CONFIG_SND_PCM=y
@@ -1082,11 +1127,10 @@ CONFIG_SND_PCI=y
1082# CONFIG_SND_VX222 is not set 1127# CONFIG_SND_VX222 is not set
1083# CONFIG_SND_YMFPCI is not set 1128# CONFIG_SND_YMFPCI is not set
1084CONFIG_SND_PPC=y 1129CONFIG_SND_PPC=y
1085# CONFIG_SND_POWERMAC is not set
1086# CONFIG_SND_AOA is not set
1087CONFIG_SND_SOC=y 1130CONFIG_SND_SOC=y
1088CONFIG_SND_SOC_MPC8610=y 1131CONFIG_SND_SOC_MPC8610=y
1089CONFIG_SND_SOC_MPC8610_HPCD=y 1132CONFIG_SND_SOC_MPC8610_HPCD=y
1133# CONFIG_SND_SOC_ALL_CODECS is not set
1090CONFIG_SND_SOC_CS4270=y 1134CONFIG_SND_SOC_CS4270=y
1091CONFIG_SND_SOC_CS4270_VD33_ERRATA=y 1135CONFIG_SND_SOC_CS4270_VD33_ERRATA=y
1092# CONFIG_SOUND_PRIME is not set 1136# CONFIG_SOUND_PRIME is not set
@@ -1094,6 +1138,12 @@ CONFIG_HID_SUPPORT=y
1094CONFIG_HID=y 1138CONFIG_HID=y
1095# CONFIG_HID_DEBUG is not set 1139# CONFIG_HID_DEBUG is not set
1096# CONFIG_HIDRAW is not set 1140# CONFIG_HIDRAW is not set
1141# CONFIG_HID_PID is not set
1142
1143#
1144# Special HID drivers
1145#
1146CONFIG_HID_COMPAT=y
1097CONFIG_USB_SUPPORT=y 1147CONFIG_USB_SUPPORT=y
1098CONFIG_USB_ARCH_HAS_HCD=y 1148CONFIG_USB_ARCH_HAS_HCD=y
1099CONFIG_USB_ARCH_HAS_OHCI=y 1149CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1110,6 +1160,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1110# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1160# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1111# 1161#
1112# CONFIG_USB_GADGET is not set 1162# CONFIG_USB_GADGET is not set
1163# CONFIG_UWB is not set
1113# CONFIG_MMC is not set 1164# CONFIG_MMC is not set
1114# CONFIG_MEMSTICK is not set 1165# CONFIG_MEMSTICK is not set
1115# CONFIG_NEW_LEDS is not set 1166# CONFIG_NEW_LEDS is not set
@@ -1155,12 +1206,15 @@ CONFIG_RTC_INTF_DEV=y
1155# Platform RTC drivers 1206# Platform RTC drivers
1156# 1207#
1157CONFIG_RTC_DRV_CMOS=y 1208CONFIG_RTC_DRV_CMOS=y
1209# CONFIG_RTC_DRV_DS1286 is not set
1158# CONFIG_RTC_DRV_DS1511 is not set 1210# CONFIG_RTC_DRV_DS1511 is not set
1159# CONFIG_RTC_DRV_DS1553 is not set 1211# CONFIG_RTC_DRV_DS1553 is not set
1160# CONFIG_RTC_DRV_DS1742 is not set 1212# CONFIG_RTC_DRV_DS1742 is not set
1161# CONFIG_RTC_DRV_STK17TA8 is not set 1213# CONFIG_RTC_DRV_STK17TA8 is not set
1162# CONFIG_RTC_DRV_M48T86 is not set 1214# CONFIG_RTC_DRV_M48T86 is not set
1215# CONFIG_RTC_DRV_M48T35 is not set
1163# CONFIG_RTC_DRV_M48T59 is not set 1216# CONFIG_RTC_DRV_M48T59 is not set
1217# CONFIG_RTC_DRV_BQ4802 is not set
1164# CONFIG_RTC_DRV_V3020 is not set 1218# CONFIG_RTC_DRV_V3020 is not set
1165 1219
1166# 1220#
@@ -1169,6 +1223,7 @@ CONFIG_RTC_DRV_CMOS=y
1169# CONFIG_RTC_DRV_PPC is not set 1223# CONFIG_RTC_DRV_PPC is not set
1170# CONFIG_DMADEVICES is not set 1224# CONFIG_DMADEVICES is not set
1171# CONFIG_UIO is not set 1225# CONFIG_UIO is not set
1226# CONFIG_STAGING is not set
1172 1227
1173# 1228#
1174# File systems 1229# File systems
@@ -1180,12 +1235,13 @@ CONFIG_EXT3_FS=y
1180CONFIG_EXT3_FS_XATTR=y 1235CONFIG_EXT3_FS_XATTR=y
1181# CONFIG_EXT3_FS_POSIX_ACL is not set 1236# CONFIG_EXT3_FS_POSIX_ACL is not set
1182# CONFIG_EXT3_FS_SECURITY is not set 1237# CONFIG_EXT3_FS_SECURITY is not set
1183# CONFIG_EXT4DEV_FS is not set 1238# CONFIG_EXT4_FS is not set
1184CONFIG_JBD=y 1239CONFIG_JBD=y
1185CONFIG_FS_MBCACHE=y 1240CONFIG_FS_MBCACHE=y
1186# CONFIG_REISERFS_FS is not set 1241# CONFIG_REISERFS_FS is not set
1187# CONFIG_JFS_FS is not set 1242# CONFIG_JFS_FS is not set
1188# CONFIG_FS_POSIX_ACL is not set 1243# CONFIG_FS_POSIX_ACL is not set
1244CONFIG_FILE_LOCKING=y
1189# CONFIG_XFS_FS is not set 1245# CONFIG_XFS_FS is not set
1190# CONFIG_OCFS2_FS is not set 1246# CONFIG_OCFS2_FS is not set
1191# CONFIG_DNOTIFY is not set 1247# CONFIG_DNOTIFY is not set
@@ -1214,6 +1270,7 @@ CONFIG_FS_MBCACHE=y
1214CONFIG_PROC_FS=y 1270CONFIG_PROC_FS=y
1215CONFIG_PROC_KCORE=y 1271CONFIG_PROC_KCORE=y
1216CONFIG_PROC_SYSCTL=y 1272CONFIG_PROC_SYSCTL=y
1273CONFIG_PROC_PAGE_MONITOR=y
1217CONFIG_SYSFS=y 1274CONFIG_SYSFS=y
1218CONFIG_TMPFS=y 1275CONFIG_TMPFS=y
1219# CONFIG_TMPFS_POSIX_ACL is not set 1276# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1254,6 +1311,7 @@ CONFIG_LOCKD_V4=y
1254CONFIG_EXPORTFS=y 1311CONFIG_EXPORTFS=y
1255CONFIG_NFS_COMMON=y 1312CONFIG_NFS_COMMON=y
1256CONFIG_SUNRPC=y 1313CONFIG_SUNRPC=y
1314# CONFIG_SUNRPC_REGISTER_V4 is not set
1257# CONFIG_RPCSEC_GSS_KRB5 is not set 1315# CONFIG_RPCSEC_GSS_KRB5 is not set
1258# CONFIG_RPCSEC_GSS_SPKM3 is not set 1316# CONFIG_RPCSEC_GSS_SPKM3 is not set
1259# CONFIG_SMB_FS is not set 1317# CONFIG_SMB_FS is not set
@@ -1330,7 +1388,6 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1330# Library routines 1388# Library routines
1331# 1389#
1332CONFIG_BITREVERSE=y 1390CONFIG_BITREVERSE=y
1333# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1334# CONFIG_CRC_CCITT is not set 1391# CONFIG_CRC_CCITT is not set
1335# CONFIG_CRC16 is not set 1392# CONFIG_CRC16 is not set
1336CONFIG_CRC_T10DIF=y 1393CONFIG_CRC_T10DIF=y
@@ -1383,15 +1440,23 @@ CONFIG_DEBUG_INFO=y
1383# CONFIG_DEBUG_SG is not set 1440# CONFIG_DEBUG_SG is not set
1384# CONFIG_BOOT_PRINTK_DELAY is not set 1441# CONFIG_BOOT_PRINTK_DELAY is not set
1385# CONFIG_RCU_TORTURE_TEST is not set 1442# CONFIG_RCU_TORTURE_TEST is not set
1443# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1386# CONFIG_BACKTRACE_SELF_TEST is not set 1444# CONFIG_BACKTRACE_SELF_TEST is not set
1445# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1387# CONFIG_FAULT_INJECTION is not set 1446# CONFIG_FAULT_INJECTION is not set
1388# CONFIG_LATENCYTOP is not set 1447# CONFIG_LATENCYTOP is not set
1389CONFIG_SYSCTL_SYSCALL_CHECK=y 1448CONFIG_SYSCTL_SYSCALL_CHECK=y
1390CONFIG_HAVE_FTRACE=y 1449CONFIG_HAVE_FUNCTION_TRACER=y
1391CONFIG_HAVE_DYNAMIC_FTRACE=y 1450
1392# CONFIG_FTRACE is not set 1451#
1452# Tracers
1453#
1454# CONFIG_FUNCTION_TRACER is not set
1393# CONFIG_SCHED_TRACER is not set 1455# CONFIG_SCHED_TRACER is not set
1394# CONFIG_CONTEXT_SWITCH_TRACER is not set 1456# CONFIG_CONTEXT_SWITCH_TRACER is not set
1457# CONFIG_BOOT_TRACER is not set
1458# CONFIG_STACK_TRACER is not set
1459# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1395# CONFIG_SAMPLES is not set 1460# CONFIG_SAMPLES is not set
1396CONFIG_HAVE_ARCH_KGDB=y 1461CONFIG_HAVE_ARCH_KGDB=y
1397# CONFIG_KGDB is not set 1462# CONFIG_KGDB is not set
@@ -1400,6 +1465,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1400# CONFIG_DEBUG_PAGEALLOC is not set 1465# CONFIG_DEBUG_PAGEALLOC is not set
1401# CONFIG_CODE_PATCHING_SELFTEST is not set 1466# CONFIG_CODE_PATCHING_SELFTEST is not set
1402# CONFIG_FTR_FIXUP_SELFTEST is not set 1467# CONFIG_FTR_FIXUP_SELFTEST is not set
1468# CONFIG_MSI_BITMAP_SELFTEST is not set
1403# CONFIG_XMON is not set 1469# CONFIG_XMON is not set
1404# CONFIG_IRQSTACKS is not set 1470# CONFIG_IRQSTACKS is not set
1405# CONFIG_BDI_SWITCH is not set 1471# CONFIG_BDI_SWITCH is not set
@@ -1411,12 +1477,14 @@ CONFIG_HAVE_ARCH_KGDB=y
1411# 1477#
1412# CONFIG_KEYS is not set 1478# CONFIG_KEYS is not set
1413# CONFIG_SECURITY is not set 1479# CONFIG_SECURITY is not set
1480# CONFIG_SECURITYFS is not set
1414# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1481# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1415CONFIG_CRYPTO=y 1482CONFIG_CRYPTO=y
1416 1483
1417# 1484#
1418# Crypto core or helper 1485# Crypto core or helper
1419# 1486#
1487# CONFIG_CRYPTO_FIPS is not set
1420# CONFIG_CRYPTO_MANAGER is not set 1488# CONFIG_CRYPTO_MANAGER is not set
1421# CONFIG_CRYPTO_GF128MUL is not set 1489# CONFIG_CRYPTO_GF128MUL is not set
1422# CONFIG_CRYPTO_NULL is not set 1490# CONFIG_CRYPTO_NULL is not set
@@ -1489,6 +1557,11 @@ CONFIG_CRYPTO=y
1489# 1557#
1490# CONFIG_CRYPTO_DEFLATE is not set 1558# CONFIG_CRYPTO_DEFLATE is not set
1491# CONFIG_CRYPTO_LZO is not set 1559# CONFIG_CRYPTO_LZO is not set
1560
1561#
1562# Random Number Generation
1563#
1564# CONFIG_CRYPTO_ANSI_CPRNG is not set
1492CONFIG_CRYPTO_HW=y 1565CONFIG_CRYPTO_HW=y
1493# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1566# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1494# CONFIG_CRYPTO_DEV_TALITOS is not set 1567# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 444ddf98436d..41220ece603d 100644
--- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:11 2008 4# Sat Nov 8 12:40:29 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
@@ -23,7 +24,7 @@ CONFIG_SMP=y
23CONFIG_NR_CPUS=2 24CONFIG_NR_CPUS=2
24CONFIG_PPC32=y 25CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 28CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -100,7 +101,6 @@ CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 101CONFIG_PRINTK=y
101CONFIG_BUG=y 102CONFIG_BUG=y
102CONFIG_ELF_CORE=y 103CONFIG_ELF_CORE=y
103CONFIG_PCSPKR_PLATFORM=y
104CONFIG_COMPAT_BRK=y 104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 105CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 106CONFIG_FUTEX=y
@@ -110,7 +110,9 @@ CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 116CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
116CONFIG_SLUB=y 118CONFIG_SLUB=y
@@ -124,10 +126,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 126CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_DMA_ATTRS is not set
128CONFIG_USE_GENERIC_SMP_HELPERS=y 129CONFIG_USE_GENERIC_SMP_HELPERS=y
129# CONFIG_HAVE_CLK is not set
130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
@@ -161,6 +160,7 @@ CONFIG_DEFAULT_CFQ=y
161# CONFIG_DEFAULT_NOOP is not set 160# CONFIG_DEFAULT_NOOP is not set
162CONFIG_DEFAULT_IOSCHED="cfq" 161CONFIG_DEFAULT_IOSCHED="cfq"
163CONFIG_CLASSIC_RCU=y 162CONFIG_CLASSIC_RCU=y
163# CONFIG_FREEZER is not set
164 164
165# 165#
166# Platform support 166# Platform support
@@ -168,10 +168,10 @@ CONFIG_CLASSIC_RCU=y
168CONFIG_PPC_MULTIPLATFORM=y 168CONFIG_PPC_MULTIPLATFORM=y
169CONFIG_CLASSIC32=y 169CONFIG_CLASSIC32=y
170# CONFIG_PPC_CHRP is not set 170# CONFIG_PPC_CHRP is not set
171# CONFIG_PPC_PMAC is not set
172# CONFIG_MPC5121_ADS is not set 171# CONFIG_MPC5121_ADS is not set
173# CONFIG_MPC5121_GENERIC is not set 172# CONFIG_MPC5121_GENERIC is not set
174# CONFIG_PPC_MPC52xx is not set 173# CONFIG_PPC_MPC52xx is not set
174# CONFIG_PPC_PMAC is not set
175# CONFIG_PPC_CELL is not set 175# CONFIG_PPC_CELL is not set
176# CONFIG_PPC_CELL_NATIVE is not set 176# CONFIG_PPC_CELL_NATIVE is not set
177# CONFIG_PPC_82xx is not set 177# CONFIG_PPC_82xx is not set
@@ -181,25 +181,23 @@ CONFIG_PPC_86xx=y
181CONFIG_MPC8641_HPCN=y 181CONFIG_MPC8641_HPCN=y
182# CONFIG_SBC8641D is not set 182# CONFIG_SBC8641D is not set
183# CONFIG_MPC8610_HPCD is not set 183# CONFIG_MPC8610_HPCD is not set
184# CONFIG_GEF_SBC610 is not set
184CONFIG_MPC8641=y 185CONFIG_MPC8641=y
185CONFIG_PPC_NATIVE=y
186# CONFIG_UDBG_RTAS_CONSOLE is not set
187# CONFIG_IPIC is not set 186# CONFIG_IPIC is not set
188CONFIG_MPIC=y 187CONFIG_MPIC=y
189# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
190CONFIG_PPC_I8259=y 189CONFIG_PPC_I8259=y
191CONFIG_PPC_RTAS=y 190# CONFIG_PPC_RTAS is not set
192# CONFIG_RTAS_ERROR_LOGGING is not set
193CONFIG_RTAS_PROC=y
194# CONFIG_MMIO_NVRAM is not set 191# CONFIG_MMIO_NVRAM is not set
195CONFIG_PPC_MPC106=y 192# CONFIG_PPC_MPC106 is not set
196# CONFIG_PPC_970_NAP is not set 193# CONFIG_PPC_970_NAP is not set
197# CONFIG_PPC_INDIRECT_IO is not set 194# CONFIG_PPC_INDIRECT_IO is not set
198# CONFIG_GENERIC_IOMAP is not set 195# CONFIG_GENERIC_IOMAP is not set
199# CONFIG_CPU_FREQ is not set 196# CONFIG_CPU_FREQ is not set
200# CONFIG_PPC601_SYNC_FIX is not set
201# CONFIG_TAU is not set 197# CONFIG_TAU is not set
198# CONFIG_QUICC_ENGINE is not set
202CONFIG_FSL_ULI1575=y 199CONFIG_FSL_ULI1575=y
200# CONFIG_MPC8xxx_GPIO is not set
203 201
204# 202#
205# Kernel options 203# Kernel options
@@ -219,9 +217,10 @@ CONFIG_PREEMPT_NONE=y
219# CONFIG_PREEMPT_VOLUNTARY is not set 217# CONFIG_PREEMPT_VOLUNTARY is not set
220# CONFIG_PREEMPT is not set 218# CONFIG_PREEMPT is not set
221CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
222CONFIG_BINFMT_MISC=m 222CONFIG_BINFMT_MISC=m
223# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
224# CONFIG_HOTPLUG_CPU is not set
225CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -235,15 +234,15 @@ CONFIG_FLATMEM_MANUAL=y
235# CONFIG_SPARSEMEM_MANUAL is not set 234# CONFIG_SPARSEMEM_MANUAL is not set
236CONFIG_FLATMEM=y 235CONFIG_FLATMEM=y
237CONFIG_FLAT_NODE_MEM_MAP=y 236CONFIG_FLAT_NODE_MEM_MAP=y
238# CONFIG_SPARSEMEM_STATIC is not set
239# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
240CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
241CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
242CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
243# CONFIG_RESOURCES_64BIT is not set 240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set
244CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y
247CONFIG_FORCE_MAX_ZONEORDER=11 246CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 247CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 248# CONFIG_CMDLINE_BOOL is not set
@@ -255,7 +254,6 @@ CONFIG_ISA_DMA_API=y
255# 254#
256# Bus options 255# Bus options
257# 256#
258# CONFIG_ISA is not set
259CONFIG_ZONE_DMA=y 257CONFIG_ZONE_DMA=y
260CONFIG_GENERIC_ISA_DMA=y 258CONFIG_GENERIC_ISA_DMA=y
261CONFIG_PPC_INDIRECT_PCI=y 259CONFIG_PPC_INDIRECT_PCI=y
@@ -268,7 +266,7 @@ CONFIG_PCI_SYSCALL=y
268# CONFIG_PCIEPORTBUS is not set 266# CONFIG_PCIEPORTBUS is not set
269CONFIG_ARCH_SUPPORTS_MSI=y 267CONFIG_ARCH_SUPPORTS_MSI=y
270# CONFIG_PCI_MSI is not set 268# CONFIG_PCI_MSI is not set
271CONFIG_PCI_LEGACY=y 269# CONFIG_PCI_LEGACY is not set
272# CONFIG_PCI_DEBUG is not set 270# CONFIG_PCI_DEBUG is not set
273# CONFIG_PCCARD is not set 271# CONFIG_PCCARD is not set
274# CONFIG_HOTPLUG_PCI is not set 272# CONFIG_HOTPLUG_PCI is not set
@@ -370,6 +368,7 @@ CONFIG_SCTP_HMAC_MD5=y
370# CONFIG_TIPC is not set 368# CONFIG_TIPC is not set
371# CONFIG_ATM is not set 369# CONFIG_ATM is not set
372# CONFIG_BRIDGE is not set 370# CONFIG_BRIDGE is not set
371# CONFIG_NET_DSA is not set
373# CONFIG_VLAN_8021Q is not set 372# CONFIG_VLAN_8021Q is not set
374# CONFIG_DECNET is not set 373# CONFIG_DECNET is not set
375# CONFIG_LLC2 is not set 374# CONFIG_LLC2 is not set
@@ -390,12 +389,11 @@ CONFIG_SCTP_HMAC_MD5=y
390# CONFIG_IRDA is not set 389# CONFIG_IRDA is not set
391# CONFIG_BT is not set 390# CONFIG_BT is not set
392# CONFIG_AF_RXRPC is not set 391# CONFIG_AF_RXRPC is not set
392# CONFIG_PHONET is not set
393CONFIG_FIB_RULES=y 393CONFIG_FIB_RULES=y
394 394CONFIG_WIRELESS=y
395#
396# Wireless
397#
398# CONFIG_CFG80211 is not set 395# CONFIG_CFG80211 is not set
396CONFIG_WIRELESS_OLD_REGULATORY=y
399# CONFIG_WIRELESS_EXT is not set 397# CONFIG_WIRELESS_EXT is not set
400# CONFIG_MAC80211 is not set 398# CONFIG_MAC80211 is not set
401# CONFIG_IEEE80211 is not set 399# CONFIG_IEEE80211 is not set
@@ -425,7 +423,6 @@ CONFIG_OF_I2C=y
425# CONFIG_PARPORT is not set 423# CONFIG_PARPORT is not set
426CONFIG_BLK_DEV=y 424CONFIG_BLK_DEV=y
427# CONFIG_BLK_DEV_FD is not set 425# CONFIG_BLK_DEV_FD is not set
428# CONFIG_MAC_FLOPPY is not set
429# CONFIG_BLK_CPQ_DA is not set 426# CONFIG_BLK_CPQ_DA is not set
430# CONFIG_BLK_CPQ_CISS_DA is not set 427# CONFIG_BLK_CPQ_CISS_DA is not set
431# CONFIG_BLK_DEV_DAC960 is not set 428# CONFIG_BLK_DEV_DAC960 is not set
@@ -528,8 +525,6 @@ CONFIG_SCSI_LOWLEVEL=y
528# CONFIG_SCSI_DC390T is not set 525# CONFIG_SCSI_DC390T is not set
529# CONFIG_SCSI_NSP32 is not set 526# CONFIG_SCSI_NSP32 is not set
530# CONFIG_SCSI_DEBUG is not set 527# CONFIG_SCSI_DEBUG is not set
531# CONFIG_SCSI_MESH is not set
532# CONFIG_SCSI_MAC53C94 is not set
533# CONFIG_SCSI_SRP is not set 528# CONFIG_SCSI_SRP is not set
534# CONFIG_SCSI_DH is not set 529# CONFIG_SCSI_DH is not set
535CONFIG_ATA=y 530CONFIG_ATA=y
@@ -634,8 +629,6 @@ CONFIG_VITESSE_PHY=y
634# CONFIG_MDIO_BITBANG is not set 629# CONFIG_MDIO_BITBANG is not set
635CONFIG_NET_ETHERNET=y 630CONFIG_NET_ETHERNET=y
636CONFIG_MII=y 631CONFIG_MII=y
637# CONFIG_MACE is not set
638# CONFIG_BMAC is not set
639# CONFIG_HAPPYMEAL is not set 632# CONFIG_HAPPYMEAL is not set
640# CONFIG_SUNGEM is not set 633# CONFIG_SUNGEM is not set
641# CONFIG_CASSINI is not set 634# CONFIG_CASSINI is not set
@@ -646,8 +639,12 @@ CONFIG_MII=y
646# CONFIG_IBM_NEW_EMAC_RGMII is not set 639# CONFIG_IBM_NEW_EMAC_RGMII is not set
647# CONFIG_IBM_NEW_EMAC_TAH is not set 640# CONFIG_IBM_NEW_EMAC_TAH is not set
648# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 641# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
642# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
643# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
644# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
649# CONFIG_NET_PCI is not set 645# CONFIG_NET_PCI is not set
650# CONFIG_B44 is not set 646# CONFIG_B44 is not set
647# CONFIG_ATL2 is not set
651CONFIG_NETDEV_1000=y 648CONFIG_NETDEV_1000=y
652# CONFIG_ACENIC is not set 649# CONFIG_ACENIC is not set
653# CONFIG_DL2K is not set 650# CONFIG_DL2K is not set
@@ -670,18 +667,22 @@ CONFIG_GIANFAR=y
670# CONFIG_QLA3XXX is not set 667# CONFIG_QLA3XXX is not set
671# CONFIG_ATL1 is not set 668# CONFIG_ATL1 is not set
672# CONFIG_ATL1E is not set 669# CONFIG_ATL1E is not set
670# CONFIG_JME is not set
673CONFIG_NETDEV_10000=y 671CONFIG_NETDEV_10000=y
674# CONFIG_CHELSIO_T1 is not set 672# CONFIG_CHELSIO_T1 is not set
675# CONFIG_CHELSIO_T3 is not set 673# CONFIG_CHELSIO_T3 is not set
674# CONFIG_ENIC is not set
676# CONFIG_IXGBE is not set 675# CONFIG_IXGBE is not set
677# CONFIG_IXGB is not set 676# CONFIG_IXGB is not set
678# CONFIG_S2IO is not set 677# CONFIG_S2IO is not set
679# CONFIG_MYRI10GE is not set 678# CONFIG_MYRI10GE is not set
680# CONFIG_NETXEN_NIC is not set 679# CONFIG_NETXEN_NIC is not set
681# CONFIG_NIU is not set 680# CONFIG_NIU is not set
681# CONFIG_MLX4_EN is not set
682# CONFIG_MLX4_CORE is not set 682# CONFIG_MLX4_CORE is not set
683# CONFIG_TEHUTI is not set 683# CONFIG_TEHUTI is not set
684# CONFIG_BNX2X is not set 684# CONFIG_BNX2X is not set
685# CONFIG_QLGE is not set
685# CONFIG_SFC is not set 686# CONFIG_SFC is not set
686# CONFIG_TR is not set 687# CONFIG_TR is not set
687 688
@@ -716,7 +717,7 @@ CONFIG_NETDEV_10000=y
716# Input device support 717# Input device support
717# 718#
718CONFIG_INPUT=y 719CONFIG_INPUT=y
719# CONFIG_INPUT_FF_MEMLESS is not set 720CONFIG_INPUT_FF_MEMLESS=m
720# CONFIG_INPUT_POLLDEV is not set 721# CONFIG_INPUT_POLLDEV is not set
721 722
722# 723#
@@ -781,14 +782,11 @@ CONFIG_SERIAL_8250_RSA=y
781# CONFIG_SERIAL_UARTLITE is not set 782# CONFIG_SERIAL_UARTLITE is not set
782CONFIG_SERIAL_CORE=y 783CONFIG_SERIAL_CORE=y
783CONFIG_SERIAL_CORE_CONSOLE=y 784CONFIG_SERIAL_CORE_CONSOLE=y
784# CONFIG_SERIAL_PMACZILOG is not set
785# CONFIG_SERIAL_JSM is not set 785# CONFIG_SERIAL_JSM is not set
786# CONFIG_SERIAL_OF_PLATFORM is not set 786# CONFIG_SERIAL_OF_PLATFORM is not set
787CONFIG_UNIX98_PTYS=y 787CONFIG_UNIX98_PTYS=y
788CONFIG_LEGACY_PTYS=y 788CONFIG_LEGACY_PTYS=y
789CONFIG_LEGACY_PTY_COUNT=256 789CONFIG_LEGACY_PTY_COUNT=256
790# CONFIG_BRIQ_PANEL is not set
791# CONFIG_HVC_RTAS is not set
792# CONFIG_IPMI_HANDLER is not set 790# CONFIG_IPMI_HANDLER is not set
793# CONFIG_HW_RANDOM is not set 791# CONFIG_HW_RANDOM is not set
794CONFIG_NVRAM=y 792CONFIG_NVRAM=y
@@ -825,12 +823,6 @@ CONFIG_I2C_HELPER_AUTO=y
825# CONFIG_I2C_VIAPRO is not set 823# CONFIG_I2C_VIAPRO is not set
826 824
827# 825#
828# Mac SMBus host controller drivers
829#
830# CONFIG_I2C_HYDRA is not set
831CONFIG_I2C_POWERMAC=y
832
833#
834# I2C system bus drivers (mostly embedded / system-on-chip) 826# I2C system bus drivers (mostly embedded / system-on-chip)
835# 827#
836CONFIG_I2C_MPC=y 828CONFIG_I2C_MPC=y
@@ -894,6 +886,17 @@ CONFIG_SSB_POSSIBLE=y
894# CONFIG_MFD_SM501 is not set 886# CONFIG_MFD_SM501 is not set
895# CONFIG_HTC_PASIC3 is not set 887# CONFIG_HTC_PASIC3 is not set
896# CONFIG_MFD_TMIO is not set 888# CONFIG_MFD_TMIO is not set
889# CONFIG_PMIC_DA903X is not set
890# CONFIG_MFD_WM8400 is not set
891# CONFIG_MFD_WM8350_I2C is not set
892
893#
894# Voltage and Current regulators
895#
896# CONFIG_REGULATOR is not set
897# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
898# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
899# CONFIG_REGULATOR_BQ24022 is not set
897 900
898# 901#
899# Multimedia devices 902# Multimedia devices
@@ -934,7 +937,6 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
934# CONFIG_DVB_USB is not set 937# CONFIG_DVB_USB is not set
935# CONFIG_DVB_TTUSB_BUDGET is not set 938# CONFIG_DVB_TTUSB_BUDGET is not set
936# CONFIG_DVB_TTUSB_DEC is not set 939# CONFIG_DVB_TTUSB_DEC is not set
937# CONFIG_DVB_CINERGYT2 is not set
938# CONFIG_DVB_SIANO_SMS1XXX is not set 940# CONFIG_DVB_SIANO_SMS1XXX is not set
939 941
940# 942#
@@ -952,6 +954,11 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
952# CONFIG_DVB_PLUTO2 is not set 954# CONFIG_DVB_PLUTO2 is not set
953 955
954# 956#
957# Supported SDMC DM1105 Adapters
958#
959# CONFIG_DVB_DM1105 is not set
960
961#
955# Supported DVB Frontends 962# Supported DVB Frontends
956# 963#
957 964
@@ -967,6 +974,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
967# CONFIG_DVB_CX24123 is not set 974# CONFIG_DVB_CX24123 is not set
968# CONFIG_DVB_MT312 is not set 975# CONFIG_DVB_MT312 is not set
969# CONFIG_DVB_S5H1420 is not set 976# CONFIG_DVB_S5H1420 is not set
977# CONFIG_DVB_STV0288 is not set
978# CONFIG_DVB_STB6000 is not set
970# CONFIG_DVB_STV0299 is not set 979# CONFIG_DVB_STV0299 is not set
971# CONFIG_DVB_TDA8083 is not set 980# CONFIG_DVB_TDA8083 is not set
972# CONFIG_DVB_TDA10086 is not set 981# CONFIG_DVB_TDA10086 is not set
@@ -974,6 +983,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
974# CONFIG_DVB_TUNER_ITD1000 is not set 983# CONFIG_DVB_TUNER_ITD1000 is not set
975# CONFIG_DVB_TDA826X is not set 984# CONFIG_DVB_TDA826X is not set
976# CONFIG_DVB_TUA6100 is not set 985# CONFIG_DVB_TUA6100 is not set
986# CONFIG_DVB_CX24116 is not set
987# CONFIG_DVB_SI21XX is not set
977 988
978# 989#
979# DVB-T (terrestrial) frontends 990# DVB-T (terrestrial) frontends
@@ -1026,6 +1037,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1026# CONFIG_DVB_LNBP21 is not set 1037# CONFIG_DVB_LNBP21 is not set
1027# CONFIG_DVB_ISL6405 is not set 1038# CONFIG_DVB_ISL6405 is not set
1028# CONFIG_DVB_ISL6421 is not set 1039# CONFIG_DVB_ISL6421 is not set
1040# CONFIG_DVB_LGS8GL5 is not set
1041
1042#
1043# Tools to develop new frontends
1044#
1045# CONFIG_DVB_DUMMY_FE is not set
1046# CONFIG_DVB_AF9013 is not set
1029CONFIG_DAB=y 1047CONFIG_DAB=y
1030# CONFIG_USB_DABUSB is not set 1048# CONFIG_USB_DABUSB is not set
1031 1049
@@ -1051,6 +1069,7 @@ CONFIG_VGA_CONSOLE=y
1051# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1069# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1052CONFIG_DUMMY_CONSOLE=y 1070CONFIG_DUMMY_CONSOLE=y
1053CONFIG_SOUND=y 1071CONFIG_SOUND=y
1072CONFIG_SOUND_OSS_CORE=y
1054CONFIG_SND=y 1073CONFIG_SND=y
1055CONFIG_SND_TIMER=y 1074CONFIG_SND_TIMER=y
1056CONFIG_SND_PCM=y 1075CONFIG_SND_PCM=y
@@ -1135,8 +1154,6 @@ CONFIG_SND_INTEL8X0=y
1135# CONFIG_SND_VX222 is not set 1154# CONFIG_SND_VX222 is not set
1136# CONFIG_SND_YMFPCI is not set 1155# CONFIG_SND_YMFPCI is not set
1137CONFIG_SND_PPC=y 1156CONFIG_SND_PPC=y
1138# CONFIG_SND_POWERMAC is not set
1139# CONFIG_SND_AOA is not set
1140CONFIG_SND_USB=y 1157CONFIG_SND_USB=y
1141# CONFIG_SND_USB_AUDIO is not set 1158# CONFIG_SND_USB_AUDIO is not set
1142# CONFIG_SND_USB_USX2Y is not set 1159# CONFIG_SND_USB_USX2Y is not set
@@ -1153,9 +1170,36 @@ CONFIG_HID=y
1153# USB Input Devices 1170# USB Input Devices
1154# 1171#
1155CONFIG_USB_HID=y 1172CONFIG_USB_HID=y
1156# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1173# CONFIG_HID_PID is not set
1157# CONFIG_HID_FF is not set
1158# CONFIG_USB_HIDDEV is not set 1174# CONFIG_USB_HIDDEV is not set
1175
1176#
1177# Special HID drivers
1178#
1179CONFIG_HID_COMPAT=y
1180CONFIG_HID_A4TECH=y
1181CONFIG_HID_APPLE=y
1182CONFIG_HID_BELKIN=y
1183CONFIG_HID_BRIGHT=y
1184CONFIG_HID_CHERRY=y
1185CONFIG_HID_CHICONY=y
1186CONFIG_HID_CYPRESS=y
1187CONFIG_HID_DELL=y
1188CONFIG_HID_EZKEY=y
1189CONFIG_HID_GYRATION=y
1190CONFIG_HID_LOGITECH=y
1191# CONFIG_LOGITECH_FF is not set
1192# CONFIG_LOGIRUMBLEPAD2_FF is not set
1193CONFIG_HID_MICROSOFT=y
1194CONFIG_HID_MONTEREY=y
1195CONFIG_HID_PANTHERLORD=y
1196# CONFIG_PANTHERLORD_FF is not set
1197CONFIG_HID_PETALYNX=y
1198CONFIG_HID_SAMSUNG=y
1199CONFIG_HID_SONY=y
1200CONFIG_HID_SUNPLUS=y
1201CONFIG_THRUSTMASTER_FF=m
1202CONFIG_ZEROPLUS_FF=m
1159CONFIG_USB_SUPPORT=y 1203CONFIG_USB_SUPPORT=y
1160CONFIG_USB_ARCH_HAS_HCD=y 1204CONFIG_USB_ARCH_HAS_HCD=y
1161CONFIG_USB_ARCH_HAS_OHCI=y 1205CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1174,6 +1218,8 @@ CONFIG_USB_DEVICE_CLASS=y
1174# CONFIG_USB_OTG_WHITELIST is not set 1218# CONFIG_USB_OTG_WHITELIST is not set
1175# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1219# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1176CONFIG_USB_MON=y 1220CONFIG_USB_MON=y
1221# CONFIG_USB_WUSB is not set
1222# CONFIG_USB_WUSB_CBAF is not set
1177 1223
1178# 1224#
1179# USB Host Controller Drivers 1225# USB Host Controller Drivers
@@ -1197,6 +1243,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1197# CONFIG_USB_UHCI_HCD is not set 1243# CONFIG_USB_UHCI_HCD is not set
1198# CONFIG_USB_SL811_HCD is not set 1244# CONFIG_USB_SL811_HCD is not set
1199# CONFIG_USB_R8A66597_HCD is not set 1245# CONFIG_USB_R8A66597_HCD is not set
1246# CONFIG_USB_WHCI_HCD is not set
1247# CONFIG_USB_HWA_HCD is not set
1200 1248
1201# 1249#
1202# USB Device Class drivers 1250# USB Device Class drivers
@@ -1204,6 +1252,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1204# CONFIG_USB_ACM is not set 1252# CONFIG_USB_ACM is not set
1205# CONFIG_USB_PRINTER is not set 1253# CONFIG_USB_PRINTER is not set
1206# CONFIG_USB_WDM is not set 1254# CONFIG_USB_WDM is not set
1255# CONFIG_USB_TMC is not set
1207 1256
1208# 1257#
1209# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1258# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1225,7 +1274,6 @@ CONFIG_USB_STORAGE=y
1225# CONFIG_USB_STORAGE_ALAUDA is not set 1274# CONFIG_USB_STORAGE_ALAUDA is not set
1226# CONFIG_USB_STORAGE_ONETOUCH is not set 1275# CONFIG_USB_STORAGE_ONETOUCH is not set
1227# CONFIG_USB_STORAGE_KARMA is not set 1276# CONFIG_USB_STORAGE_KARMA is not set
1228# CONFIG_USB_STORAGE_SIERRA is not set
1229# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1277# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1230# CONFIG_USB_LIBUSUAL is not set 1278# CONFIG_USB_LIBUSUAL is not set
1231 1279
@@ -1246,6 +1294,7 @@ CONFIG_USB_STORAGE=y
1246# CONFIG_USB_EMI62 is not set 1294# CONFIG_USB_EMI62 is not set
1247# CONFIG_USB_EMI26 is not set 1295# CONFIG_USB_EMI26 is not set
1248# CONFIG_USB_ADUTUX is not set 1296# CONFIG_USB_ADUTUX is not set
1297# CONFIG_USB_SEVSEG is not set
1249# CONFIG_USB_RIO500 is not set 1298# CONFIG_USB_RIO500 is not set
1250# CONFIG_USB_LEGOTOWER is not set 1299# CONFIG_USB_LEGOTOWER is not set
1251# CONFIG_USB_LCD is not set 1300# CONFIG_USB_LCD is not set
@@ -1263,7 +1312,9 @@ CONFIG_USB_STORAGE=y
1263# CONFIG_USB_IOWARRIOR is not set 1312# CONFIG_USB_IOWARRIOR is not set
1264# CONFIG_USB_TEST is not set 1313# CONFIG_USB_TEST is not set
1265# CONFIG_USB_ISIGHTFW is not set 1314# CONFIG_USB_ISIGHTFW is not set
1315# CONFIG_USB_VST is not set
1266# CONFIG_USB_GADGET is not set 1316# CONFIG_USB_GADGET is not set
1317# CONFIG_UWB is not set
1267# CONFIG_MMC is not set 1318# CONFIG_MMC is not set
1268# CONFIG_MEMSTICK is not set 1319# CONFIG_MEMSTICK is not set
1269# CONFIG_NEW_LEDS is not set 1320# CONFIG_NEW_LEDS is not set
@@ -1309,12 +1360,15 @@ CONFIG_RTC_INTF_DEV=y
1309# Platform RTC drivers 1360# Platform RTC drivers
1310# 1361#
1311CONFIG_RTC_DRV_CMOS=y 1362CONFIG_RTC_DRV_CMOS=y
1363# CONFIG_RTC_DRV_DS1286 is not set
1312# CONFIG_RTC_DRV_DS1511 is not set 1364# CONFIG_RTC_DRV_DS1511 is not set
1313# CONFIG_RTC_DRV_DS1553 is not set 1365# CONFIG_RTC_DRV_DS1553 is not set
1314# CONFIG_RTC_DRV_DS1742 is not set 1366# CONFIG_RTC_DRV_DS1742 is not set
1315# CONFIG_RTC_DRV_STK17TA8 is not set 1367# CONFIG_RTC_DRV_STK17TA8 is not set
1316# CONFIG_RTC_DRV_M48T86 is not set 1368# CONFIG_RTC_DRV_M48T86 is not set
1369# CONFIG_RTC_DRV_M48T35 is not set
1317# CONFIG_RTC_DRV_M48T59 is not set 1370# CONFIG_RTC_DRV_M48T59 is not set
1371# CONFIG_RTC_DRV_BQ4802 is not set
1318# CONFIG_RTC_DRV_V3020 is not set 1372# CONFIG_RTC_DRV_V3020 is not set
1319 1373
1320# 1374#
@@ -1323,6 +1377,7 @@ CONFIG_RTC_DRV_CMOS=y
1323# CONFIG_RTC_DRV_PPC is not set 1377# CONFIG_RTC_DRV_PPC is not set
1324# CONFIG_DMADEVICES is not set 1378# CONFIG_DMADEVICES is not set
1325# CONFIG_UIO is not set 1379# CONFIG_UIO is not set
1380# CONFIG_STAGING is not set
1326 1381
1327# 1382#
1328# File systems 1383# File systems
@@ -1334,12 +1389,13 @@ CONFIG_EXT3_FS=y
1334CONFIG_EXT3_FS_XATTR=y 1389CONFIG_EXT3_FS_XATTR=y
1335# CONFIG_EXT3_FS_POSIX_ACL is not set 1390# CONFIG_EXT3_FS_POSIX_ACL is not set
1336# CONFIG_EXT3_FS_SECURITY is not set 1391# CONFIG_EXT3_FS_SECURITY is not set
1337# CONFIG_EXT4DEV_FS is not set 1392# CONFIG_EXT4_FS is not set
1338CONFIG_JBD=y 1393CONFIG_JBD=y
1339CONFIG_FS_MBCACHE=y 1394CONFIG_FS_MBCACHE=y
1340# CONFIG_REISERFS_FS is not set 1395# CONFIG_REISERFS_FS is not set
1341# CONFIG_JFS_FS is not set 1396# CONFIG_JFS_FS is not set
1342# CONFIG_FS_POSIX_ACL is not set 1397# CONFIG_FS_POSIX_ACL is not set
1398CONFIG_FILE_LOCKING=y
1343# CONFIG_XFS_FS is not set 1399# CONFIG_XFS_FS is not set
1344# CONFIG_OCFS2_FS is not set 1400# CONFIG_OCFS2_FS is not set
1345CONFIG_DNOTIFY=y 1401CONFIG_DNOTIFY=y
@@ -1377,6 +1433,7 @@ CONFIG_NTFS_FS=y
1377CONFIG_PROC_FS=y 1433CONFIG_PROC_FS=y
1378CONFIG_PROC_KCORE=y 1434CONFIG_PROC_KCORE=y
1379CONFIG_PROC_SYSCTL=y 1435CONFIG_PROC_SYSCTL=y
1436CONFIG_PROC_PAGE_MONITOR=y
1380CONFIG_SYSFS=y 1437CONFIG_SYSFS=y
1381CONFIG_TMPFS=y 1438CONFIG_TMPFS=y
1382# CONFIG_TMPFS_POSIX_ACL is not set 1439# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1421,6 +1478,7 @@ CONFIG_EXPORTFS=y
1421CONFIG_NFS_COMMON=y 1478CONFIG_NFS_COMMON=y
1422CONFIG_SUNRPC=y 1479CONFIG_SUNRPC=y
1423CONFIG_SUNRPC_GSS=y 1480CONFIG_SUNRPC_GSS=y
1481# CONFIG_SUNRPC_REGISTER_V4 is not set
1424CONFIG_RPCSEC_GSS_KRB5=y 1482CONFIG_RPCSEC_GSS_KRB5=y
1425# CONFIG_RPCSEC_GSS_SPKM3 is not set 1483# CONFIG_RPCSEC_GSS_SPKM3 is not set
1426# CONFIG_SMB_FS is not set 1484# CONFIG_SMB_FS is not set
@@ -1496,7 +1554,6 @@ CONFIG_NLS_UTF8=m
1496# Library routines 1554# Library routines
1497# 1555#
1498CONFIG_BITREVERSE=y 1556CONFIG_BITREVERSE=y
1499# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1500# CONFIG_CRC_CCITT is not set 1557# CONFIG_CRC_CCITT is not set
1501# CONFIG_CRC16 is not set 1558# CONFIG_CRC16 is not set
1502CONFIG_CRC_T10DIF=y 1559CONFIG_CRC_T10DIF=y
@@ -1550,15 +1607,23 @@ CONFIG_DEBUG_INFO=y
1550# CONFIG_DEBUG_SG is not set 1607# CONFIG_DEBUG_SG is not set
1551# CONFIG_BOOT_PRINTK_DELAY is not set 1608# CONFIG_BOOT_PRINTK_DELAY is not set
1552# CONFIG_RCU_TORTURE_TEST is not set 1609# CONFIG_RCU_TORTURE_TEST is not set
1610# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1553# CONFIG_BACKTRACE_SELF_TEST is not set 1611# CONFIG_BACKTRACE_SELF_TEST is not set
1612# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1554# CONFIG_FAULT_INJECTION is not set 1613# CONFIG_FAULT_INJECTION is not set
1555# CONFIG_LATENCYTOP is not set 1614# CONFIG_LATENCYTOP is not set
1556CONFIG_SYSCTL_SYSCALL_CHECK=y 1615CONFIG_SYSCTL_SYSCALL_CHECK=y
1557CONFIG_HAVE_FTRACE=y 1616CONFIG_HAVE_FUNCTION_TRACER=y
1558CONFIG_HAVE_DYNAMIC_FTRACE=y 1617
1559# CONFIG_FTRACE is not set 1618#
1619# Tracers
1620#
1621# CONFIG_FUNCTION_TRACER is not set
1560# CONFIG_SCHED_TRACER is not set 1622# CONFIG_SCHED_TRACER is not set
1561# CONFIG_CONTEXT_SWITCH_TRACER is not set 1623# CONFIG_CONTEXT_SWITCH_TRACER is not set
1624# CONFIG_BOOT_TRACER is not set
1625# CONFIG_STACK_TRACER is not set
1626# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1562# CONFIG_SAMPLES is not set 1627# CONFIG_SAMPLES is not set
1563CONFIG_HAVE_ARCH_KGDB=y 1628CONFIG_HAVE_ARCH_KGDB=y
1564# CONFIG_KGDB is not set 1629# CONFIG_KGDB is not set
@@ -1567,6 +1632,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1567# CONFIG_DEBUG_PAGEALLOC is not set 1632# CONFIG_DEBUG_PAGEALLOC is not set
1568# CONFIG_CODE_PATCHING_SELFTEST is not set 1633# CONFIG_CODE_PATCHING_SELFTEST is not set
1569# CONFIG_FTR_FIXUP_SELFTEST is not set 1634# CONFIG_FTR_FIXUP_SELFTEST is not set
1635# CONFIG_MSI_BITMAP_SELFTEST is not set
1570# CONFIG_XMON is not set 1636# CONFIG_XMON is not set
1571# CONFIG_IRQSTACKS is not set 1637# CONFIG_IRQSTACKS is not set
1572# CONFIG_BDI_SWITCH is not set 1638# CONFIG_BDI_SWITCH is not set
@@ -1578,15 +1644,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1578# 1644#
1579# CONFIG_KEYS is not set 1645# CONFIG_KEYS is not set
1580# CONFIG_SECURITY is not set 1646# CONFIG_SECURITY is not set
1647# CONFIG_SECURITYFS is not set
1581# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1648# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1582CONFIG_CRYPTO=y 1649CONFIG_CRYPTO=y
1583 1650
1584# 1651#
1585# Crypto core or helper 1652# Crypto core or helper
1586# 1653#
1654# CONFIG_CRYPTO_FIPS is not set
1587CONFIG_CRYPTO_ALGAPI=y 1655CONFIG_CRYPTO_ALGAPI=y
1656CONFIG_CRYPTO_AEAD=y
1588CONFIG_CRYPTO_BLKCIPHER=y 1657CONFIG_CRYPTO_BLKCIPHER=y
1589CONFIG_CRYPTO_HASH=y 1658CONFIG_CRYPTO_HASH=y
1659CONFIG_CRYPTO_RNG=y
1590CONFIG_CRYPTO_MANAGER=y 1660CONFIG_CRYPTO_MANAGER=y
1591# CONFIG_CRYPTO_GF128MUL is not set 1661# CONFIG_CRYPTO_GF128MUL is not set
1592# CONFIG_CRYPTO_NULL is not set 1662# CONFIG_CRYPTO_NULL is not set
@@ -1659,6 +1729,11 @@ CONFIG_CRYPTO_DES=y
1659# 1729#
1660# CONFIG_CRYPTO_DEFLATE is not set 1730# CONFIG_CRYPTO_DEFLATE is not set
1661# CONFIG_CRYPTO_LZO is not set 1731# CONFIG_CRYPTO_LZO is not set
1732
1733#
1734# Random Number Generation
1735#
1736# CONFIG_CRYPTO_ANSI_CPRNG is not set
1662CONFIG_CRYPTO_HW=y 1737CONFIG_CRYPTO_HW=y
1663# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1738# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1664# CONFIG_CRYPTO_DEV_TALITOS is not set 1739# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index d900f8f376cf..a4342862f6ef 100644
--- a/arch/powerpc/configs/86xx/sbc8641d_defconfig
+++ b/arch/powerpc/configs/86xx/sbc8641d_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:15 2008 4# Sat Nov 8 12:40:26 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
@@ -23,7 +24,7 @@ CONFIG_SMP=y
23CONFIG_NR_CPUS=2 24CONFIG_NR_CPUS=2
24CONFIG_PPC32=y 25CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 28CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -100,7 +101,6 @@ CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 101CONFIG_PRINTK=y
101CONFIG_BUG=y 102CONFIG_BUG=y
102CONFIG_ELF_CORE=y 103CONFIG_ELF_CORE=y
103CONFIG_PCSPKR_PLATFORM=y
104CONFIG_COMPAT_BRK=y 104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 105CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 106CONFIG_FUTEX=y
@@ -110,7 +110,9 @@ CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
114CONFIG_SLAB=y 116CONFIG_SLAB=y
115# CONFIG_SLUB is not set 117# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 118# CONFIG_SLOB is not set
@@ -123,10 +125,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 127CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_DMA_ATTRS is not set
127CONFIG_USE_GENERIC_SMP_HELPERS=y 128CONFIG_USE_GENERIC_SMP_HELPERS=y
128# CONFIG_HAVE_CLK is not set
129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
@@ -160,6 +159,7 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 160CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 161CONFIG_CLASSIC_RCU=y
162# CONFIG_FREEZER is not set
163 163
164# 164#
165# Platform support 165# Platform support
@@ -167,10 +167,10 @@ CONFIG_CLASSIC_RCU=y
167CONFIG_PPC_MULTIPLATFORM=y 167CONFIG_PPC_MULTIPLATFORM=y
168CONFIG_CLASSIC32=y 168CONFIG_CLASSIC32=y
169# CONFIG_PPC_CHRP is not set 169# CONFIG_PPC_CHRP is not set
170# CONFIG_PPC_PMAC is not set
171# CONFIG_MPC5121_ADS is not set 170# CONFIG_MPC5121_ADS is not set
172# CONFIG_MPC5121_GENERIC is not set 171# CONFIG_MPC5121_GENERIC is not set
173# CONFIG_PPC_MPC52xx is not set 172# CONFIG_PPC_MPC52xx is not set
173# CONFIG_PPC_PMAC is not set
174# CONFIG_PPC_CELL is not set 174# CONFIG_PPC_CELL is not set
175# CONFIG_PPC_CELL_NATIVE is not set 175# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set 176# CONFIG_PPC_82xx is not set
@@ -180,25 +180,23 @@ CONFIG_PPC_86xx=y
180# CONFIG_MPC8641_HPCN is not set 180# CONFIG_MPC8641_HPCN is not set
181CONFIG_SBC8641D=y 181CONFIG_SBC8641D=y
182# CONFIG_MPC8610_HPCD is not set 182# CONFIG_MPC8610_HPCD is not set
183# CONFIG_GEF_SBC610 is not set
183CONFIG_MPC8641=y 184CONFIG_MPC8641=y
184CONFIG_PPC_NATIVE=y
185# CONFIG_UDBG_RTAS_CONSOLE is not set
186# CONFIG_IPIC is not set 185# CONFIG_IPIC is not set
187CONFIG_MPIC=y 186CONFIG_MPIC=y
188# CONFIG_MPIC_WEIRD is not set 187# CONFIG_MPIC_WEIRD is not set
189CONFIG_PPC_I8259=y 188# CONFIG_PPC_I8259 is not set
190CONFIG_PPC_RTAS=y 189# CONFIG_PPC_RTAS is not set
191# CONFIG_RTAS_ERROR_LOGGING is not set
192CONFIG_RTAS_PROC=y
193# CONFIG_MMIO_NVRAM is not set 190# CONFIG_MMIO_NVRAM is not set
194CONFIG_PPC_MPC106=y 191# CONFIG_PPC_MPC106 is not set
195# CONFIG_PPC_970_NAP is not set 192# CONFIG_PPC_970_NAP is not set
196# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
197# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
198# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
199# CONFIG_PPC601_SYNC_FIX is not set
200# CONFIG_TAU is not set 196# CONFIG_TAU is not set
197# CONFIG_QUICC_ENGINE is not set
201# CONFIG_FSL_ULI1575 is not set 198# CONFIG_FSL_ULI1575 is not set
199# CONFIG_MPC8xxx_GPIO is not set
202 200
203# 201#
204# Kernel options 202# Kernel options
@@ -219,9 +217,10 @@ CONFIG_SCHED_HRTICK=y
219CONFIG_PREEMPT=y 217CONFIG_PREEMPT=y
220# CONFIG_PREEMPT_RCU is not set 218# CONFIG_PREEMPT_RCU is not set
221CONFIG_BINFMT_ELF=y 219CONFIG_BINFMT_ELF=y
220# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
221# CONFIG_HAVE_AOUT is not set
222CONFIG_BINFMT_MISC=m 222CONFIG_BINFMT_MISC=m
223# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
224# CONFIG_HOTPLUG_CPU is not set
225CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -235,15 +234,15 @@ CONFIG_FLATMEM_MANUAL=y
235# CONFIG_SPARSEMEM_MANUAL is not set 234# CONFIG_SPARSEMEM_MANUAL is not set
236CONFIG_FLATMEM=y 235CONFIG_FLATMEM=y
237CONFIG_FLAT_NODE_MEM_MAP=y 236CONFIG_FLAT_NODE_MEM_MAP=y
238# CONFIG_SPARSEMEM_STATIC is not set
239# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
240CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
241CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
242CONFIG_MIGRATION=y 239CONFIG_MIGRATION=y
243# CONFIG_RESOURCES_64BIT is not set 240# CONFIG_RESOURCES_64BIT is not set
241# CONFIG_PHYS_ADDR_T_64BIT is not set
244CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y
247CONFIG_FORCE_MAX_ZONEORDER=11 246CONFIG_FORCE_MAX_ZONEORDER=11
248# CONFIG_PROC_DEVICETREE is not set 247# CONFIG_PROC_DEVICETREE is not set
249# CONFIG_CMDLINE_BOOL is not set 248# CONFIG_CMDLINE_BOOL is not set
@@ -255,7 +254,6 @@ CONFIG_ISA_DMA_API=y
255# 254#
256# Bus options 255# Bus options
257# 256#
258# CONFIG_ISA is not set
259CONFIG_ZONE_DMA=y 257CONFIG_ZONE_DMA=y
260CONFIG_GENERIC_ISA_DMA=y 258CONFIG_GENERIC_ISA_DMA=y
261CONFIG_PPC_INDIRECT_PCI=y 259CONFIG_PPC_INDIRECT_PCI=y
@@ -270,7 +268,7 @@ CONFIG_PCIEAER=y
270# CONFIG_PCIEASPM is not set 268# CONFIG_PCIEASPM is not set
271CONFIG_ARCH_SUPPORTS_MSI=y 269CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 270# CONFIG_PCI_MSI is not set
273CONFIG_PCI_LEGACY=y 271# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_DEBUG is not set 272# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCCARD is not set 273# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 274# CONFIG_HOTPLUG_PCI is not set
@@ -341,7 +339,6 @@ CONFIG_INET_TCP_DIAG=y
341CONFIG_TCP_CONG_CUBIC=y 339CONFIG_TCP_CONG_CUBIC=y
342CONFIG_DEFAULT_TCP_CONG="cubic" 340CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_TCP_MD5SIG is not set 341# CONFIG_TCP_MD5SIG is not set
344# CONFIG_IP_VS is not set
345CONFIG_IPV6=m 342CONFIG_IPV6=m
346# CONFIG_IPV6_PRIVACY is not set 343# CONFIG_IPV6_PRIVACY is not set
347# CONFIG_IPV6_ROUTER_PREF is not set 344# CONFIG_IPV6_ROUTER_PREF is not set
@@ -378,8 +375,8 @@ CONFIG_NETFILTER_XTABLES=m
378# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 375# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
379# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 376# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
380# CONFIG_NETFILTER_XT_TARGET_MARK is not set 377# CONFIG_NETFILTER_XT_TARGET_MARK is not set
381# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
382# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 378# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
379# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
383# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set 380# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
384# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 381# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
385# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 382# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
@@ -388,37 +385,39 @@ CONFIG_NETFILTER_XTABLES=m
388# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 385# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
389# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 386# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
390# CONFIG_NETFILTER_XT_MATCH_ESP is not set 387# CONFIG_NETFILTER_XT_MATCH_ESP is not set
388# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
391# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 389# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
392# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 390# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
393# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 391# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
394# CONFIG_NETFILTER_XT_MATCH_MAC is not set 392# CONFIG_NETFILTER_XT_MATCH_MAC is not set
395# CONFIG_NETFILTER_XT_MATCH_MARK is not set 393# CONFIG_NETFILTER_XT_MATCH_MARK is not set
394# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
396# CONFIG_NETFILTER_XT_MATCH_OWNER is not set 395# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
397# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 396# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
398# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
399# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set 397# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
400# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set 398# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
401# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 399# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
402# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set 400# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
403# CONFIG_NETFILTER_XT_MATCH_REALM is not set 401# CONFIG_NETFILTER_XT_MATCH_REALM is not set
402# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
404# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 403# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
405# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 404# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
406# CONFIG_NETFILTER_XT_MATCH_STRING is not set 405# CONFIG_NETFILTER_XT_MATCH_STRING is not set
407# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 406# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
408# CONFIG_NETFILTER_XT_MATCH_TIME is not set 407# CONFIG_NETFILTER_XT_MATCH_TIME is not set
409# CONFIG_NETFILTER_XT_MATCH_U32 is not set 408# CONFIG_NETFILTER_XT_MATCH_U32 is not set
410# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 409# CONFIG_IP_VS is not set
411 410
412# 411#
413# IP: Netfilter Configuration 412# IP: Netfilter Configuration
414# 413#
414# CONFIG_NF_DEFRAG_IPV4 is not set
415CONFIG_IP_NF_QUEUE=m 415CONFIG_IP_NF_QUEUE=m
416CONFIG_IP_NF_IPTABLES=m 416CONFIG_IP_NF_IPTABLES=m
417CONFIG_IP_NF_MATCH_RECENT=m 417CONFIG_IP_NF_MATCH_ADDRTYPE=m
418CONFIG_IP_NF_MATCH_ECN=m
419# CONFIG_IP_NF_MATCH_AH is not set 418# CONFIG_IP_NF_MATCH_AH is not set
419CONFIG_IP_NF_MATCH_ECN=m
420CONFIG_IP_NF_MATCH_TTL=m 420CONFIG_IP_NF_MATCH_TTL=m
421CONFIG_IP_NF_MATCH_ADDRTYPE=m
422CONFIG_IP_NF_FILTER=m 421CONFIG_IP_NF_FILTER=m
423CONFIG_IP_NF_TARGET_REJECT=m 422CONFIG_IP_NF_TARGET_REJECT=m
424CONFIG_IP_NF_TARGET_LOG=m 423CONFIG_IP_NF_TARGET_LOG=m
@@ -437,25 +436,21 @@ CONFIG_IP_NF_ARP_MANGLE=m
437# 436#
438CONFIG_IP6_NF_QUEUE=m 437CONFIG_IP6_NF_QUEUE=m
439CONFIG_IP6_NF_IPTABLES=m 438CONFIG_IP6_NF_IPTABLES=m
440CONFIG_IP6_NF_MATCH_RT=m 439# CONFIG_IP6_NF_MATCH_AH is not set
441CONFIG_IP6_NF_MATCH_OPTS=m 440CONFIG_IP6_NF_MATCH_EUI64=m
442CONFIG_IP6_NF_MATCH_FRAG=m 441CONFIG_IP6_NF_MATCH_FRAG=m
442CONFIG_IP6_NF_MATCH_OPTS=m
443CONFIG_IP6_NF_MATCH_HL=m 443CONFIG_IP6_NF_MATCH_HL=m
444CONFIG_IP6_NF_MATCH_IPV6HEADER=m 444CONFIG_IP6_NF_MATCH_IPV6HEADER=m
445# CONFIG_IP6_NF_MATCH_AH is not set
446# CONFIG_IP6_NF_MATCH_MH is not set 445# CONFIG_IP6_NF_MATCH_MH is not set
447CONFIG_IP6_NF_MATCH_EUI64=m 446CONFIG_IP6_NF_MATCH_RT=m
448CONFIG_IP6_NF_FILTER=m
449CONFIG_IP6_NF_TARGET_LOG=m 447CONFIG_IP6_NF_TARGET_LOG=m
448CONFIG_IP6_NF_FILTER=m
450# CONFIG_IP6_NF_TARGET_REJECT is not set 449# CONFIG_IP6_NF_TARGET_REJECT is not set
451CONFIG_IP6_NF_MANGLE=m 450CONFIG_IP6_NF_MANGLE=m
452# CONFIG_IP6_NF_TARGET_HL is not set 451# CONFIG_IP6_NF_TARGET_HL is not set
453CONFIG_IP6_NF_RAW=m 452CONFIG_IP6_NF_RAW=m
454# CONFIG_IP6_NF_SECURITY is not set 453# CONFIG_IP6_NF_SECURITY is not set
455
456#
457# Bridge: Netfilter Configuration
458#
459# CONFIG_BRIDGE_NF_EBTABLES is not set 454# CONFIG_BRIDGE_NF_EBTABLES is not set
460# CONFIG_IP_DCCP is not set 455# CONFIG_IP_DCCP is not set
461CONFIG_IP_SCTP=m 456CONFIG_IP_SCTP=m
@@ -476,6 +471,7 @@ CONFIG_ATM_BR2684=m
476# CONFIG_ATM_BR2684_IPFILTER is not set 471# CONFIG_ATM_BR2684_IPFILTER is not set
477CONFIG_STP=m 472CONFIG_STP=m
478CONFIG_BRIDGE=m 473CONFIG_BRIDGE=m
474# CONFIG_NET_DSA is not set
479CONFIG_VLAN_8021Q=m 475CONFIG_VLAN_8021Q=m
480# CONFIG_VLAN_8021Q_GVRP is not set 476# CONFIG_VLAN_8021Q_GVRP is not set
481# CONFIG_DECNET is not set 477# CONFIG_DECNET is not set
@@ -497,6 +493,7 @@ CONFIG_NET_SCH_HTB=m
497CONFIG_NET_SCH_HFSC=m 493CONFIG_NET_SCH_HFSC=m
498CONFIG_NET_SCH_ATM=m 494CONFIG_NET_SCH_ATM=m
499CONFIG_NET_SCH_PRIO=m 495CONFIG_NET_SCH_PRIO=m
496# CONFIG_NET_SCH_MULTIQ is not set
500CONFIG_NET_SCH_RED=m 497CONFIG_NET_SCH_RED=m
501CONFIG_NET_SCH_SFQ=m 498CONFIG_NET_SCH_SFQ=m
502CONFIG_NET_SCH_TEQL=m 499CONFIG_NET_SCH_TEQL=m
@@ -534,12 +531,11 @@ CONFIG_NET_PKTGEN=m
534# CONFIG_IRDA is not set 531# CONFIG_IRDA is not set
535# CONFIG_BT is not set 532# CONFIG_BT is not set
536# CONFIG_AF_RXRPC is not set 533# CONFIG_AF_RXRPC is not set
534# CONFIG_PHONET is not set
537CONFIG_FIB_RULES=y 535CONFIG_FIB_RULES=y
538 536CONFIG_WIRELESS=y
539#
540# Wireless
541#
542# CONFIG_CFG80211 is not set 537# CONFIG_CFG80211 is not set
538CONFIG_WIRELESS_OLD_REGULATORY=y
543# CONFIG_WIRELESS_EXT is not set 539# CONFIG_WIRELESS_EXT is not set
544# CONFIG_MAC80211 is not set 540# CONFIG_MAC80211 is not set
545# CONFIG_IEEE80211 is not set 541# CONFIG_IEEE80211 is not set
@@ -649,7 +645,6 @@ CONFIG_OF_I2C=y
649# CONFIG_PARPORT is not set 645# CONFIG_PARPORT is not set
650CONFIG_BLK_DEV=y 646CONFIG_BLK_DEV=y
651# CONFIG_BLK_DEV_FD is not set 647# CONFIG_BLK_DEV_FD is not set
652# CONFIG_MAC_FLOPPY is not set
653# CONFIG_BLK_CPQ_DA is not set 648# CONFIG_BLK_CPQ_DA is not set
654# CONFIG_BLK_CPQ_CISS_DA is not set 649# CONFIG_BLK_CPQ_CISS_DA is not set
655# CONFIG_BLK_DEV_DAC960 is not set 650# CONFIG_BLK_DEV_DAC960 is not set
@@ -686,6 +681,7 @@ CONFIG_HAVE_IDE=y
686# CONFIG_ATA is not set 681# CONFIG_ATA is not set
687CONFIG_MD=y 682CONFIG_MD=y
688CONFIG_BLK_DEV_MD=y 683CONFIG_BLK_DEV_MD=y
684CONFIG_MD_AUTODETECT=y
689CONFIG_MD_LINEAR=y 685CONFIG_MD_LINEAR=y
690CONFIG_MD_RAID0=y 686CONFIG_MD_RAID0=y
691CONFIG_MD_RAID1=y 687CONFIG_MD_RAID1=y
@@ -742,8 +738,6 @@ CONFIG_BROADCOM_PHY=y
742# CONFIG_MDIO_BITBANG is not set 738# CONFIG_MDIO_BITBANG is not set
743CONFIG_NET_ETHERNET=y 739CONFIG_NET_ETHERNET=y
744CONFIG_MII=y 740CONFIG_MII=y
745# CONFIG_MACE is not set
746# CONFIG_BMAC is not set
747# CONFIG_HAPPYMEAL is not set 741# CONFIG_HAPPYMEAL is not set
748# CONFIG_SUNGEM is not set 742# CONFIG_SUNGEM is not set
749# CONFIG_CASSINI is not set 743# CONFIG_CASSINI is not set
@@ -754,8 +748,12 @@ CONFIG_MII=y
754# CONFIG_IBM_NEW_EMAC_RGMII is not set 748# CONFIG_IBM_NEW_EMAC_RGMII is not set
755# CONFIG_IBM_NEW_EMAC_TAH is not set 749# CONFIG_IBM_NEW_EMAC_TAH is not set
756# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 750# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
751# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
752# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
753# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
757# CONFIG_NET_PCI is not set 754# CONFIG_NET_PCI is not set
758# CONFIG_B44 is not set 755# CONFIG_B44 is not set
756# CONFIG_ATL2 is not set
759CONFIG_NETDEV_1000=y 757CONFIG_NETDEV_1000=y
760# CONFIG_ACENIC is not set 758# CONFIG_ACENIC is not set
761# CONFIG_DL2K is not set 759# CONFIG_DL2K is not set
@@ -778,6 +776,7 @@ CONFIG_GIANFAR=y
778# CONFIG_QLA3XXX is not set 776# CONFIG_QLA3XXX is not set
779# CONFIG_ATL1 is not set 777# CONFIG_ATL1 is not set
780# CONFIG_ATL1E is not set 778# CONFIG_ATL1E is not set
779# CONFIG_JME is not set
781# CONFIG_NETDEV_10000 is not set 780# CONFIG_NETDEV_10000 is not set
782# CONFIG_TR is not set 781# CONFIG_TR is not set
783 782
@@ -890,14 +889,11 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=2
890# CONFIG_SERIAL_UARTLITE is not set 889# CONFIG_SERIAL_UARTLITE is not set
891CONFIG_SERIAL_CORE=y 890CONFIG_SERIAL_CORE=y
892CONFIG_SERIAL_CORE_CONSOLE=y 891CONFIG_SERIAL_CORE_CONSOLE=y
893# CONFIG_SERIAL_PMACZILOG is not set
894# CONFIG_SERIAL_JSM is not set 892# CONFIG_SERIAL_JSM is not set
895# CONFIG_SERIAL_OF_PLATFORM is not set 893# CONFIG_SERIAL_OF_PLATFORM is not set
896CONFIG_UNIX98_PTYS=y 894CONFIG_UNIX98_PTYS=y
897CONFIG_LEGACY_PTYS=y 895CONFIG_LEGACY_PTYS=y
898CONFIG_LEGACY_PTY_COUNT=256 896CONFIG_LEGACY_PTY_COUNT=256
899# CONFIG_BRIQ_PANEL is not set
900# CONFIG_HVC_RTAS is not set
901# CONFIG_IPMI_HANDLER is not set 897# CONFIG_IPMI_HANDLER is not set
902CONFIG_HW_RANDOM=m 898CONFIG_HW_RANDOM=m
903# CONFIG_NVRAM is not set 899# CONFIG_NVRAM is not set
@@ -935,12 +931,6 @@ CONFIG_I2C_HELPER_AUTO=y
935# CONFIG_I2C_VIAPRO is not set 931# CONFIG_I2C_VIAPRO is not set
936 932
937# 933#
938# Mac SMBus host controller drivers
939#
940# CONFIG_I2C_HYDRA is not set
941CONFIG_I2C_POWERMAC=y
942
943#
944# I2C system bus drivers (mostly embedded / system-on-chip) 934# I2C system bus drivers (mostly embedded / system-on-chip)
945# 935#
946CONFIG_I2C_MPC=y 936CONFIG_I2C_MPC=y
@@ -997,7 +987,6 @@ CONFIG_HWMON=y
997# CONFIG_SENSORS_ADM9240 is not set 987# CONFIG_SENSORS_ADM9240 is not set
998# CONFIG_SENSORS_ADT7470 is not set 988# CONFIG_SENSORS_ADT7470 is not set
999# CONFIG_SENSORS_ADT7473 is not set 989# CONFIG_SENSORS_ADT7473 is not set
1000# CONFIG_SENSORS_AMS is not set
1001# CONFIG_SENSORS_ATXP1 is not set 990# CONFIG_SENSORS_ATXP1 is not set
1002# CONFIG_SENSORS_DS1621 is not set 991# CONFIG_SENSORS_DS1621 is not set
1003# CONFIG_SENSORS_I5K_AMB is not set 992# CONFIG_SENSORS_I5K_AMB is not set
@@ -1052,7 +1041,6 @@ CONFIG_WATCHDOG=y
1052CONFIG_SOFT_WATCHDOG=m 1041CONFIG_SOFT_WATCHDOG=m
1053# CONFIG_ALIM7101_WDT is not set 1042# CONFIG_ALIM7101_WDT is not set
1054# CONFIG_8xxx_WDT is not set 1043# CONFIG_8xxx_WDT is not set
1055# CONFIG_WATCHDOG_RTAS is not set
1056 1044
1057# 1045#
1058# PCI-based Watchdog Cards 1046# PCI-based Watchdog Cards
@@ -1073,6 +1061,17 @@ CONFIG_SSB_POSSIBLE=y
1073# CONFIG_MFD_SM501 is not set 1061# CONFIG_MFD_SM501 is not set
1074# CONFIG_HTC_PASIC3 is not set 1062# CONFIG_HTC_PASIC3 is not set
1075# CONFIG_MFD_TMIO is not set 1063# CONFIG_MFD_TMIO is not set
1064# CONFIG_PMIC_DA903X is not set
1065# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM8350_I2C is not set
1067
1068#
1069# Voltage and Current regulators
1070#
1071# CONFIG_REGULATOR is not set
1072# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1073# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1074# CONFIG_REGULATOR_BQ24022 is not set
1076 1075
1077# 1076#
1078# Multimedia devices 1077# Multimedia devices
@@ -1116,6 +1115,12 @@ CONFIG_HID_SUPPORT=y
1116CONFIG_HID=y 1115CONFIG_HID=y
1117# CONFIG_HID_DEBUG is not set 1116# CONFIG_HID_DEBUG is not set
1118# CONFIG_HIDRAW is not set 1117# CONFIG_HIDRAW is not set
1118# CONFIG_HID_PID is not set
1119
1120#
1121# Special HID drivers
1122#
1123CONFIG_HID_COMPAT=y
1119CONFIG_USB_SUPPORT=y 1124CONFIG_USB_SUPPORT=y
1120CONFIG_USB_ARCH_HAS_HCD=y 1125CONFIG_USB_ARCH_HAS_HCD=y
1121CONFIG_USB_ARCH_HAS_OHCI=y 1126CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1132,6 +1137,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1132# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1137# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1133# 1138#
1134# CONFIG_USB_GADGET is not set 1139# CONFIG_USB_GADGET is not set
1140# CONFIG_UWB is not set
1135# CONFIG_MMC is not set 1141# CONFIG_MMC is not set
1136# CONFIG_MEMSTICK is not set 1142# CONFIG_MEMSTICK is not set
1137# CONFIG_NEW_LEDS is not set 1143# CONFIG_NEW_LEDS is not set
@@ -1141,6 +1147,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1141# CONFIG_RTC_CLASS is not set 1147# CONFIG_RTC_CLASS is not set
1142# CONFIG_DMADEVICES is not set 1148# CONFIG_DMADEVICES is not set
1143# CONFIG_UIO is not set 1149# CONFIG_UIO is not set
1150# CONFIG_STAGING is not set
1144 1151
1145# 1152#
1146# File systems 1153# File systems
@@ -1154,9 +1161,11 @@ CONFIG_EXT3_FS=y
1154CONFIG_EXT3_FS_XATTR=y 1161CONFIG_EXT3_FS_XATTR=y
1155CONFIG_EXT3_FS_POSIX_ACL=y 1162CONFIG_EXT3_FS_POSIX_ACL=y
1156# CONFIG_EXT3_FS_SECURITY is not set 1163# CONFIG_EXT3_FS_SECURITY is not set
1157# CONFIG_EXT4DEV_FS is not set 1164# CONFIG_EXT4_FS is not set
1158CONFIG_JBD=y 1165CONFIG_JBD=y
1159# CONFIG_JBD_DEBUG is not set 1166# CONFIG_JBD_DEBUG is not set
1167CONFIG_JBD2=m
1168# CONFIG_JBD2_DEBUG is not set
1160CONFIG_FS_MBCACHE=y 1169CONFIG_FS_MBCACHE=y
1161CONFIG_REISERFS_FS=m 1170CONFIG_REISERFS_FS=m
1162# CONFIG_REISERFS_CHECK is not set 1171# CONFIG_REISERFS_CHECK is not set
@@ -1166,12 +1175,14 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
1166# CONFIG_REISERFS_FS_SECURITY is not set 1175# CONFIG_REISERFS_FS_SECURITY is not set
1167# CONFIG_JFS_FS is not set 1176# CONFIG_JFS_FS is not set
1168CONFIG_FS_POSIX_ACL=y 1177CONFIG_FS_POSIX_ACL=y
1178CONFIG_FILE_LOCKING=y
1169# CONFIG_XFS_FS is not set 1179# CONFIG_XFS_FS is not set
1170CONFIG_OCFS2_FS=m 1180CONFIG_OCFS2_FS=m
1171CONFIG_OCFS2_FS_O2CB=m 1181CONFIG_OCFS2_FS_O2CB=m
1172CONFIG_OCFS2_FS_STATS=y 1182CONFIG_OCFS2_FS_STATS=y
1173CONFIG_OCFS2_DEBUG_MASKLOG=y 1183CONFIG_OCFS2_DEBUG_MASKLOG=y
1174# CONFIG_OCFS2_DEBUG_FS is not set 1184# CONFIG_OCFS2_DEBUG_FS is not set
1185# CONFIG_OCFS2_COMPAT_JBD is not set
1175CONFIG_DNOTIFY=y 1186CONFIG_DNOTIFY=y
1176CONFIG_INOTIFY=y 1187CONFIG_INOTIFY=y
1177CONFIG_INOTIFY_USER=y 1188CONFIG_INOTIFY_USER=y
@@ -1199,6 +1210,7 @@ CONFIG_AUTOFS4_FS=m
1199CONFIG_PROC_FS=y 1210CONFIG_PROC_FS=y
1200CONFIG_PROC_KCORE=y 1211CONFIG_PROC_KCORE=y
1201CONFIG_PROC_SYSCTL=y 1212CONFIG_PROC_SYSCTL=y
1213CONFIG_PROC_PAGE_MONITOR=y
1202CONFIG_SYSFS=y 1214CONFIG_SYSFS=y
1203CONFIG_TMPFS=y 1215CONFIG_TMPFS=y
1204# CONFIG_TMPFS_POSIX_ACL is not set 1216# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1237,6 +1249,7 @@ CONFIG_LOCKD_V4=y
1237CONFIG_NFS_COMMON=y 1249CONFIG_NFS_COMMON=y
1238CONFIG_SUNRPC=y 1250CONFIG_SUNRPC=y
1239CONFIG_SUNRPC_GSS=y 1251CONFIG_SUNRPC_GSS=y
1252# CONFIG_SUNRPC_REGISTER_V4 is not set
1240CONFIG_RPCSEC_GSS_KRB5=y 1253CONFIG_RPCSEC_GSS_KRB5=y
1241# CONFIG_RPCSEC_GSS_SPKM3 is not set 1254# CONFIG_RPCSEC_GSS_SPKM3 is not set
1242CONFIG_SMB_FS=m 1255CONFIG_SMB_FS=m
@@ -1257,7 +1270,6 @@ CONFIG_CIFS_POSIX=y
1257# Partition Types 1270# Partition Types
1258# 1271#
1259# CONFIG_PARTITION_ADVANCED is not set 1272# CONFIG_PARTITION_ADVANCED is not set
1260CONFIG_MAC_PARTITION=y
1261CONFIG_MSDOS_PARTITION=y 1273CONFIG_MSDOS_PARTITION=y
1262CONFIG_NLS=m 1274CONFIG_NLS=m
1263CONFIG_NLS_DEFAULT="iso8859-1" 1275CONFIG_NLS_DEFAULT="iso8859-1"
@@ -1305,7 +1317,6 @@ CONFIG_NLS_UTF8=m
1305# Library routines 1317# Library routines
1306# 1318#
1307CONFIG_BITREVERSE=y 1319CONFIG_BITREVERSE=y
1308# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1309CONFIG_CRC_CCITT=m 1320CONFIG_CRC_CCITT=m
1310# CONFIG_CRC16 is not set 1321# CONFIG_CRC16 is not set
1311# CONFIG_CRC_T10DIF is not set 1322# CONFIG_CRC_T10DIF is not set
@@ -1358,16 +1369,24 @@ CONFIG_DEBUG_INFO=y
1358# CONFIG_DEBUG_SG is not set 1369# CONFIG_DEBUG_SG is not set
1359# CONFIG_BOOT_PRINTK_DELAY is not set 1370# CONFIG_BOOT_PRINTK_DELAY is not set
1360# CONFIG_RCU_TORTURE_TEST is not set 1371# CONFIG_RCU_TORTURE_TEST is not set
1372# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1361# CONFIG_BACKTRACE_SELF_TEST is not set 1373# CONFIG_BACKTRACE_SELF_TEST is not set
1374# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1362# CONFIG_FAULT_INJECTION is not set 1375# CONFIG_FAULT_INJECTION is not set
1363# CONFIG_LATENCYTOP is not set 1376# CONFIG_LATENCYTOP is not set
1364CONFIG_SYSCTL_SYSCALL_CHECK=y 1377CONFIG_SYSCTL_SYSCALL_CHECK=y
1365CONFIG_HAVE_FTRACE=y 1378CONFIG_HAVE_FUNCTION_TRACER=y
1366CONFIG_HAVE_DYNAMIC_FTRACE=y 1379
1367# CONFIG_FTRACE is not set 1380#
1381# Tracers
1382#
1383# CONFIG_FUNCTION_TRACER is not set
1368# CONFIG_PREEMPT_TRACER is not set 1384# CONFIG_PREEMPT_TRACER is not set
1369# CONFIG_SCHED_TRACER is not set 1385# CONFIG_SCHED_TRACER is not set
1370# CONFIG_CONTEXT_SWITCH_TRACER is not set 1386# CONFIG_CONTEXT_SWITCH_TRACER is not set
1387# CONFIG_BOOT_TRACER is not set
1388# CONFIG_STACK_TRACER is not set
1389# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1371# CONFIG_SAMPLES is not set 1390# CONFIG_SAMPLES is not set
1372CONFIG_HAVE_ARCH_KGDB=y 1391CONFIG_HAVE_ARCH_KGDB=y
1373# CONFIG_KGDB is not set 1392# CONFIG_KGDB is not set
@@ -1376,6 +1395,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1376# CONFIG_DEBUG_PAGEALLOC is not set 1395# CONFIG_DEBUG_PAGEALLOC is not set
1377# CONFIG_CODE_PATCHING_SELFTEST is not set 1396# CONFIG_CODE_PATCHING_SELFTEST is not set
1378# CONFIG_FTR_FIXUP_SELFTEST is not set 1397# CONFIG_FTR_FIXUP_SELFTEST is not set
1398# CONFIG_MSI_BITMAP_SELFTEST is not set
1379# CONFIG_XMON is not set 1399# CONFIG_XMON is not set
1380# CONFIG_IRQSTACKS is not set 1400# CONFIG_IRQSTACKS is not set
1381# CONFIG_VIRQ_DEBUG is not set 1401# CONFIG_VIRQ_DEBUG is not set
@@ -1388,6 +1408,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1388# 1408#
1389# CONFIG_KEYS is not set 1409# CONFIG_KEYS is not set
1390CONFIG_SECURITY=y 1410CONFIG_SECURITY=y
1411# CONFIG_SECURITYFS is not set
1391CONFIG_SECURITY_NETWORK=y 1412CONFIG_SECURITY_NETWORK=y
1392# CONFIG_SECURITY_NETWORK_XFRM is not set 1413# CONFIG_SECURITY_NETWORK_XFRM is not set
1393# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1414# CONFIG_SECURITY_FILE_CAPABILITIES is not set
@@ -1397,10 +1418,12 @@ CONFIG_CRYPTO=y
1397# 1418#
1398# Crypto core or helper 1419# Crypto core or helper
1399# 1420#
1421# CONFIG_CRYPTO_FIPS is not set
1400CONFIG_CRYPTO_ALGAPI=y 1422CONFIG_CRYPTO_ALGAPI=y
1401CONFIG_CRYPTO_AEAD=m 1423CONFIG_CRYPTO_AEAD=y
1402CONFIG_CRYPTO_BLKCIPHER=y 1424CONFIG_CRYPTO_BLKCIPHER=y
1403CONFIG_CRYPTO_HASH=y 1425CONFIG_CRYPTO_HASH=y
1426CONFIG_CRYPTO_RNG=y
1404CONFIG_CRYPTO_MANAGER=y 1427CONFIG_CRYPTO_MANAGER=y
1405# CONFIG_CRYPTO_GF128MUL is not set 1428# CONFIG_CRYPTO_GF128MUL is not set
1406CONFIG_CRYPTO_NULL=m 1429CONFIG_CRYPTO_NULL=m
@@ -1474,6 +1497,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1474# 1497#
1475CONFIG_CRYPTO_DEFLATE=m 1498CONFIG_CRYPTO_DEFLATE=m
1476# CONFIG_CRYPTO_LZO is not set 1499# CONFIG_CRYPTO_LZO is not set
1500
1501#
1502# Random Number Generation
1503#
1504# CONFIG_CRYPTO_ANSI_CPRNG is not set
1477CONFIG_CRYPTO_HW=y 1505CONFIG_CRYPTO_HW=y
1478# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1506# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1479# CONFIG_CRYPTO_DEV_TALITOS is not set 1507# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index 63cd51fbb4b9..024f279af90a 100644
--- a/arch/powerpc/configs/adder875_defconfig
+++ b/arch/powerpc/configs/adder875_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:00 2008 4# Sat Nov 8 12:39:32 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,7 +19,7 @@ CONFIG_8xx=y
19CONFIG_NOT_COHERENT_CACHE=y 19CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 20CONFIG_PPC32=y
21CONFIG_WORD_SIZE=32 21CONFIG_WORD_SIZE=32
22CONFIG_PPC_MERGE=y 22# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
23CONFIG_MMU=y 23CONFIG_MMU=y
24CONFIG_GENERIC_CMOS_UPDATE=y 24CONFIG_GENERIC_CMOS_UPDATE=y
25CONFIG_GENERIC_TIME=y 25CONFIG_GENERIC_TIME=y
@@ -102,6 +102,7 @@ CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 102CONFIG_TIMERFD=y
103CONFIG_EVENTFD=y 103CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 104CONFIG_SHMEM=y
105CONFIG_AIO=y
105# CONFIG_VM_EVENT_COUNTERS is not set 106# CONFIG_VM_EVENT_COUNTERS is not set
106CONFIG_SLUB_DEBUG=y 107CONFIG_SLUB_DEBUG=y
107# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
@@ -115,10 +116,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 116CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 117CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 118CONFIG_HAVE_ARCH_TRACEHOOK=y
118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120CONFIG_HAVE_CLK=y 119CONFIG_HAVE_CLK=y
121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
124# CONFIG_TINY_SHMEM is not set 122# CONFIG_TINY_SHMEM is not set
@@ -144,6 +142,7 @@ CONFIG_DEFAULT_DEADLINE=y
144# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="deadline" 143CONFIG_DEFAULT_IOSCHED="deadline"
146CONFIG_CLASSIC_RCU=y 144CONFIG_CLASSIC_RCU=y
145# CONFIG_FREEZER is not set
147 146
148# 147#
149# Platform support 148# Platform support
@@ -156,6 +155,7 @@ CONFIG_CPM1=y
156# CONFIG_MPC885ADS is not set 155# CONFIG_MPC885ADS is not set
157# CONFIG_PPC_EP88XC is not set 156# CONFIG_PPC_EP88XC is not set
158CONFIG_PPC_ADDER875=y 157CONFIG_PPC_ADDER875=y
158# CONFIG_PPC_MGSUVD is not set
159 159
160# 160#
161# MPC8xx CPM Options 161# MPC8xx CPM Options
@@ -184,6 +184,7 @@ CONFIG_NO_UCODE_PATCH=y
184# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_QUICC_ENGINE is not set
187# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 189CONFIG_CPM=y
189 190
@@ -191,7 +192,6 @@ CONFIG_CPM=y
191# Kernel options 192# Kernel options
192# 193#
193# CONFIG_HIGHMEM is not set 194# CONFIG_HIGHMEM is not set
194# CONFIG_TICK_ONESHOT is not set
195# CONFIG_NO_HZ is not set 195# CONFIG_NO_HZ is not set
196# CONFIG_HIGH_RES_TIMERS is not set 196# CONFIG_HIGH_RES_TIMERS is not set
197CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 197CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -205,6 +205,8 @@ CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
207CONFIG_BINFMT_ELF=y 207CONFIG_BINFMT_ELF=y
208# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
209# CONFIG_HAVE_AOUT is not set
208# CONFIG_BINFMT_MISC is not set 210# CONFIG_BINFMT_MISC is not set
209# CONFIG_MATH_EMULATION is not set 211# CONFIG_MATH_EMULATION is not set
210# CONFIG_8XX_MINIMAL_FPEMU is not set 212# CONFIG_8XX_MINIMAL_FPEMU is not set
@@ -220,15 +222,15 @@ CONFIG_FLATMEM_MANUAL=y
220# CONFIG_SPARSEMEM_MANUAL is not set 222# CONFIG_SPARSEMEM_MANUAL is not set
221CONFIG_FLATMEM=y 223CONFIG_FLATMEM=y
222CONFIG_FLAT_NODE_MEM_MAP=y 224CONFIG_FLAT_NODE_MEM_MAP=y
223# CONFIG_SPARSEMEM_STATIC is not set
224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
225CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 227CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y
232CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
233# CONFIG_PROC_DEVICETREE is not set 235# CONFIG_PROC_DEVICETREE is not set
234# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -310,6 +312,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
310# CONFIG_TIPC is not set 312# CONFIG_TIPC is not set
311# CONFIG_ATM is not set 313# CONFIG_ATM is not set
312# CONFIG_BRIDGE is not set 314# CONFIG_BRIDGE is not set
315# CONFIG_NET_DSA is not set
313# CONFIG_VLAN_8021Q is not set 316# CONFIG_VLAN_8021Q is not set
314# CONFIG_DECNET is not set 317# CONFIG_DECNET is not set
315# CONFIG_LLC2 is not set 318# CONFIG_LLC2 is not set
@@ -330,11 +333,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_IRDA is not set 333# CONFIG_IRDA is not set
331# CONFIG_BT is not set 334# CONFIG_BT is not set
332# CONFIG_AF_RXRPC is not set 335# CONFIG_AF_RXRPC is not set
333 336# CONFIG_PHONET is not set
334# 337CONFIG_WIRELESS=y
335# Wireless
336#
337# CONFIG_CFG80211 is not set 338# CONFIG_CFG80211 is not set
339CONFIG_WIRELESS_OLD_REGULATORY=y
338# CONFIG_WIRELESS_EXT is not set 340# CONFIG_WIRELESS_EXT is not set
339# CONFIG_MAC80211 is not set 341# CONFIG_MAC80211 is not set
340# CONFIG_IEEE80211 is not set 342# CONFIG_IEEE80211 is not set
@@ -476,6 +478,9 @@ CONFIG_MII=y
476# CONFIG_IBM_NEW_EMAC_RGMII is not set 478# CONFIG_IBM_NEW_EMAC_RGMII is not set
477# CONFIG_IBM_NEW_EMAC_TAH is not set 479# CONFIG_IBM_NEW_EMAC_TAH is not set
478# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 480# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
481# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
482# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
483# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
479# CONFIG_B44 is not set 484# CONFIG_B44 is not set
480CONFIG_FS_ENET=y 485CONFIG_FS_ENET=y
481# CONFIG_FS_ENET_HAS_SCC is not set 486# CONFIG_FS_ENET_HAS_SCC is not set
@@ -534,6 +539,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
534CONFIG_MOUSE_PS2_SYNAPTICS=y 539CONFIG_MOUSE_PS2_SYNAPTICS=y
535CONFIG_MOUSE_PS2_LIFEBOOK=y 540CONFIG_MOUSE_PS2_LIFEBOOK=y
536CONFIG_MOUSE_PS2_TRACKPOINT=y 541CONFIG_MOUSE_PS2_TRACKPOINT=y
542# CONFIG_MOUSE_PS2_ELANTECH is not set
537# CONFIG_MOUSE_PS2_TOUCHKIT is not set 543# CONFIG_MOUSE_PS2_TOUCHKIT is not set
538# CONFIG_MOUSE_SERIAL is not set 544# CONFIG_MOUSE_SERIAL is not set
539# CONFIG_MOUSE_VSXXXAA is not set 545# CONFIG_MOUSE_VSXXXAA is not set
@@ -573,12 +579,6 @@ CONFIG_SERIAL_CORE=y
573CONFIG_SERIAL_CORE_CONSOLE=y 579CONFIG_SERIAL_CORE_CONSOLE=y
574CONFIG_SERIAL_CPM=y 580CONFIG_SERIAL_CPM=y
575CONFIG_SERIAL_CPM_CONSOLE=y 581CONFIG_SERIAL_CPM_CONSOLE=y
576# CONFIG_SERIAL_CPM_SCC1 is not set
577# CONFIG_SERIAL_CPM_SCC2 is not set
578# CONFIG_SERIAL_CPM_SCC3 is not set
579# CONFIG_SERIAL_CPM_SCC4 is not set
580CONFIG_SERIAL_CPM_SMC1=y
581CONFIG_SERIAL_CPM_SMC2=y
582CONFIG_UNIX98_PTYS=y 582CONFIG_UNIX98_PTYS=y
583# CONFIG_LEGACY_PTYS is not set 583# CONFIG_LEGACY_PTYS is not set
584# CONFIG_IPMI_HANDLER is not set 584# CONFIG_IPMI_HANDLER is not set
@@ -614,6 +614,14 @@ CONFIG_SSB_POSSIBLE=y
614# CONFIG_MFD_TMIO is not set 614# CONFIG_MFD_TMIO is not set
615 615
616# 616#
617# Voltage and Current regulators
618#
619# CONFIG_REGULATOR is not set
620# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
621# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
622# CONFIG_REGULATOR_BQ24022 is not set
623
624#
617# Multimedia devices 625# Multimedia devices
618# 626#
619 627
@@ -652,16 +660,18 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
652# CONFIG_RTC_CLASS is not set 660# CONFIG_RTC_CLASS is not set
653# CONFIG_DMADEVICES is not set 661# CONFIG_DMADEVICES is not set
654# CONFIG_UIO is not set 662# CONFIG_UIO is not set
663# CONFIG_STAGING is not set
655 664
656# 665#
657# File systems 666# File systems
658# 667#
659# CONFIG_EXT2_FS is not set 668# CONFIG_EXT2_FS is not set
660# CONFIG_EXT3_FS is not set 669# CONFIG_EXT3_FS is not set
661# CONFIG_EXT4DEV_FS is not set 670# CONFIG_EXT4_FS is not set
662# CONFIG_REISERFS_FS is not set 671# CONFIG_REISERFS_FS is not set
663# CONFIG_JFS_FS is not set 672# CONFIG_JFS_FS is not set
664# CONFIG_FS_POSIX_ACL is not set 673# CONFIG_FS_POSIX_ACL is not set
674CONFIG_FILE_LOCKING=y
665# CONFIG_XFS_FS is not set 675# CONFIG_XFS_FS is not set
666# CONFIG_OCFS2_FS is not set 676# CONFIG_OCFS2_FS is not set
667# CONFIG_DNOTIFY is not set 677# CONFIG_DNOTIFY is not set
@@ -690,6 +700,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
690CONFIG_PROC_FS=y 700CONFIG_PROC_FS=y
691# CONFIG_PROC_KCORE is not set 701# CONFIG_PROC_KCORE is not set
692CONFIG_PROC_SYSCTL=y 702CONFIG_PROC_SYSCTL=y
703CONFIG_PROC_PAGE_MONITOR=y
693CONFIG_SYSFS=y 704CONFIG_SYSFS=y
694CONFIG_TMPFS=y 705CONFIG_TMPFS=y
695# CONFIG_TMPFS_POSIX_ACL is not set 706# CONFIG_TMPFS_POSIX_ACL is not set
@@ -727,6 +738,7 @@ CONFIG_LOCKD=y
727CONFIG_LOCKD_V4=y 738CONFIG_LOCKD_V4=y
728CONFIG_NFS_COMMON=y 739CONFIG_NFS_COMMON=y
729CONFIG_SUNRPC=y 740CONFIG_SUNRPC=y
741# CONFIG_SUNRPC_REGISTER_V4 is not set
730# CONFIG_RPCSEC_GSS_KRB5 is not set 742# CONFIG_RPCSEC_GSS_KRB5 is not set
731# CONFIG_RPCSEC_GSS_SPKM3 is not set 743# CONFIG_RPCSEC_GSS_SPKM3 is not set
732# CONFIG_SMB_FS is not set 744# CONFIG_SMB_FS is not set
@@ -762,7 +774,6 @@ CONFIG_MSDOS_PARTITION=y
762# 774#
763# Library routines 775# Library routines
764# 776#
765# CONFIG_GENERIC_FIND_FIRST_BIT is not set
766# CONFIG_CRC_CCITT is not set 777# CONFIG_CRC_CCITT is not set
767# CONFIG_CRC16 is not set 778# CONFIG_CRC16 is not set
768# CONFIG_CRC_T10DIF is not set 779# CONFIG_CRC_T10DIF is not set
@@ -812,14 +823,22 @@ CONFIG_DEBUG_INFO=y
812# CONFIG_DEBUG_SG is not set 823# CONFIG_DEBUG_SG is not set
813# CONFIG_BOOT_PRINTK_DELAY is not set 824# CONFIG_BOOT_PRINTK_DELAY is not set
814# CONFIG_RCU_TORTURE_TEST is not set 825# CONFIG_RCU_TORTURE_TEST is not set
826# CONFIG_RCU_CPU_STALL_DETECTOR is not set
815# CONFIG_BACKTRACE_SELF_TEST is not set 827# CONFIG_BACKTRACE_SELF_TEST is not set
828# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
816# CONFIG_FAULT_INJECTION is not set 829# CONFIG_FAULT_INJECTION is not set
817# CONFIG_LATENCYTOP is not set 830# CONFIG_LATENCYTOP is not set
818CONFIG_HAVE_FTRACE=y 831CONFIG_HAVE_FUNCTION_TRACER=y
819CONFIG_HAVE_DYNAMIC_FTRACE=y 832
820# CONFIG_FTRACE is not set 833#
834# Tracers
835#
836# CONFIG_FUNCTION_TRACER is not set
821# CONFIG_SCHED_TRACER is not set 837# CONFIG_SCHED_TRACER is not set
822# CONFIG_CONTEXT_SWITCH_TRACER is not set 838# CONFIG_CONTEXT_SWITCH_TRACER is not set
839# CONFIG_BOOT_TRACER is not set
840# CONFIG_STACK_TRACER is not set
841# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
823# CONFIG_SAMPLES is not set 842# CONFIG_SAMPLES is not set
824CONFIG_HAVE_ARCH_KGDB=y 843CONFIG_HAVE_ARCH_KGDB=y
825# CONFIG_KGDB is not set 844# CONFIG_KGDB is not set
@@ -828,6 +847,7 @@ CONFIG_HAVE_ARCH_KGDB=y
828# CONFIG_DEBUG_PAGEALLOC is not set 847# CONFIG_DEBUG_PAGEALLOC is not set
829# CONFIG_CODE_PATCHING_SELFTEST is not set 848# CONFIG_CODE_PATCHING_SELFTEST is not set
830# CONFIG_FTR_FIXUP_SELFTEST is not set 849# CONFIG_FTR_FIXUP_SELFTEST is not set
850# CONFIG_MSI_BITMAP_SELFTEST is not set
831# CONFIG_XMON is not set 851# CONFIG_XMON is not set
832# CONFIG_IRQSTACKS is not set 852# CONFIG_IRQSTACKS is not set
833# CONFIG_VIRQ_DEBUG is not set 853# CONFIG_VIRQ_DEBUG is not set
@@ -839,6 +859,7 @@ CONFIG_HAVE_ARCH_KGDB=y
839# 859#
840# CONFIG_KEYS is not set 860# CONFIG_KEYS is not set
841# CONFIG_SECURITY is not set 861# CONFIG_SECURITY is not set
862# CONFIG_SECURITYFS is not set
842# CONFIG_SECURITY_FILE_CAPABILITIES is not set 863# CONFIG_SECURITY_FILE_CAPABILITIES is not set
843# CONFIG_CRYPTO is not set 864# CONFIG_CRYPTO is not set
844CONFIG_PPC_CLOCK=y 865CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index c16521ffb477..5078594cd1f5 100644
--- a/arch/powerpc/configs/c2k_defconfig
+++ b/arch/powerpc/configs/c2k_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:02 2008 4# Sat Nov 8 12:39:34 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_CHECK_CACHE_COHERENCY=y 24CONFIG_CHECK_CACHE_COHERENCY=y
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -114,7 +114,9 @@ CONFIG_SIGNALFD=y
114CONFIG_TIMERFD=y 114CONFIG_TIMERFD=y
115CONFIG_EVENTFD=y 115CONFIG_EVENTFD=y
116CONFIG_SHMEM=y 116CONFIG_SHMEM=y
117CONFIG_AIO=y
117CONFIG_VM_EVENT_COUNTERS=y 118CONFIG_VM_EVENT_COUNTERS=y
119CONFIG_PCI_QUIRKS=y
118CONFIG_SLUB_DEBUG=y 120CONFIG_SLUB_DEBUG=y
119# CONFIG_SLAB is not set 121# CONFIG_SLAB is not set
120CONFIG_SLUB=y 122CONFIG_SLUB=y
@@ -130,10 +132,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
130CONFIG_HAVE_KPROBES=y 132CONFIG_HAVE_KPROBES=y
131CONFIG_HAVE_KRETPROBES=y 133CONFIG_HAVE_KRETPROBES=y
132CONFIG_HAVE_ARCH_TRACEHOOK=y 134CONFIG_HAVE_ARCH_TRACEHOOK=y
133# CONFIG_HAVE_DMA_ATTRS is not set
134# CONFIG_USE_GENERIC_SMP_HELPERS is not set
135# CONFIG_HAVE_CLK is not set
136CONFIG_PROC_PAGE_MONITOR=y
137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 135# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
138CONFIG_SLABINFO=y 136CONFIG_SLABINFO=y
139CONFIG_RT_MUTEXES=y 137CONFIG_RT_MUTEXES=y
@@ -166,6 +164,7 @@ CONFIG_DEFAULT_CFQ=y
166# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
167CONFIG_DEFAULT_IOSCHED="cfq" 165CONFIG_DEFAULT_IOSCHED="cfq"
168CONFIG_CLASSIC_RCU=y 166CONFIG_CLASSIC_RCU=y
167# CONFIG_FREEZER is not set
169 168
170# 169#
171# Platform support 170# Platform support
@@ -227,7 +226,6 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m
227# Kernel options 226# Kernel options
228# 227#
229CONFIG_HIGHMEM=y 228CONFIG_HIGHMEM=y
230# CONFIG_TICK_ONESHOT is not set
231# CONFIG_NO_HZ is not set 229# CONFIG_NO_HZ is not set
232# CONFIG_HIGH_RES_TIMERS is not set 230# CONFIG_HIGH_RES_TIMERS is not set
233CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 231CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -241,6 +239,8 @@ CONFIG_HZ=250
241CONFIG_PREEMPT_VOLUNTARY=y 239CONFIG_PREEMPT_VOLUNTARY=y
242# CONFIG_PREEMPT is not set 240# CONFIG_PREEMPT is not set
243CONFIG_BINFMT_ELF=y 241CONFIG_BINFMT_ELF=y
242# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
243# CONFIG_HAVE_AOUT is not set
244CONFIG_BINFMT_MISC=y 244CONFIG_BINFMT_MISC=y
245# CONFIG_IOMMU_HELPER is not set 245# CONFIG_IOMMU_HELPER is not set
246CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 246CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -255,15 +255,15 @@ CONFIG_FLATMEM_MANUAL=y
255# CONFIG_SPARSEMEM_MANUAL is not set 255# CONFIG_SPARSEMEM_MANUAL is not set
256CONFIG_FLATMEM=y 256CONFIG_FLATMEM=y
257CONFIG_FLAT_NODE_MEM_MAP=y 257CONFIG_FLAT_NODE_MEM_MAP=y
258# CONFIG_SPARSEMEM_STATIC is not set
259# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
260CONFIG_PAGEFLAGS_EXTENDED=y 258CONFIG_PAGEFLAGS_EXTENDED=y
261CONFIG_SPLIT_PTLOCK_CPUS=4 259CONFIG_SPLIT_PTLOCK_CPUS=4
262CONFIG_MIGRATION=y 260CONFIG_MIGRATION=y
263# CONFIG_RESOURCES_64BIT is not set 261# CONFIG_RESOURCES_64BIT is not set
262# CONFIG_PHYS_ADDR_T_64BIT is not set
264CONFIG_ZONE_DMA_FLAG=1 263CONFIG_ZONE_DMA_FLAG=1
265CONFIG_BOUNCE=y 264CONFIG_BOUNCE=y
266CONFIG_VIRT_TO_BUS=y 265CONFIG_VIRT_TO_BUS=y
266CONFIG_UNEVICTABLE_LRU=y
267CONFIG_FORCE_MAX_ZONEORDER=11 267CONFIG_FORCE_MAX_ZONEORDER=11
268# CONFIG_PROC_DEVICETREE is not set 268# CONFIG_PROC_DEVICETREE is not set
269# CONFIG_CMDLINE_BOOL is not set 269# CONFIG_CMDLINE_BOOL is not set
@@ -285,7 +285,7 @@ CONFIG_PCI_SYSCALL=y
285# CONFIG_PCIEPORTBUS is not set 285# CONFIG_PCIEPORTBUS is not set
286CONFIG_ARCH_SUPPORTS_MSI=y 286CONFIG_ARCH_SUPPORTS_MSI=y
287CONFIG_PCI_MSI=y 287CONFIG_PCI_MSI=y
288CONFIG_PCI_LEGACY=y 288# CONFIG_PCI_LEGACY is not set
289# CONFIG_PCI_DEBUG is not set 289# CONFIG_PCI_DEBUG is not set
290# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
291CONFIG_HOTPLUG_PCI=y 291CONFIG_HOTPLUG_PCI=y
@@ -361,36 +361,6 @@ CONFIG_INET_TCP_DIAG=y
361CONFIG_TCP_CONG_CUBIC=y 361CONFIG_TCP_CONG_CUBIC=y
362CONFIG_DEFAULT_TCP_CONG="cubic" 362CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_TCP_MD5SIG is not set 363# CONFIG_TCP_MD5SIG is not set
364CONFIG_IP_VS=m
365# CONFIG_IP_VS_DEBUG is not set
366CONFIG_IP_VS_TAB_BITS=12
367
368#
369# IPVS transport protocol load balancing support
370#
371CONFIG_IP_VS_PROTO_TCP=y
372CONFIG_IP_VS_PROTO_UDP=y
373CONFIG_IP_VS_PROTO_ESP=y
374CONFIG_IP_VS_PROTO_AH=y
375
376#
377# IPVS scheduler
378#
379CONFIG_IP_VS_RR=m
380CONFIG_IP_VS_WRR=m
381CONFIG_IP_VS_LC=m
382CONFIG_IP_VS_WLC=m
383CONFIG_IP_VS_LBLC=m
384CONFIG_IP_VS_LBLCR=m
385CONFIG_IP_VS_DH=m
386CONFIG_IP_VS_SH=m
387CONFIG_IP_VS_SED=m
388CONFIG_IP_VS_NQ=m
389
390#
391# IPVS application helper
392#
393CONFIG_IP_VS_FTP=m
394CONFIG_IPV6=m 364CONFIG_IPV6=m
395CONFIG_IPV6_PRIVACY=y 365CONFIG_IPV6_PRIVACY=y
396# CONFIG_IPV6_ROUTER_PREF is not set 366# CONFIG_IPV6_ROUTER_PREF is not set
@@ -427,8 +397,8 @@ CONFIG_NETFILTER_XTABLES=m
427# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 397# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
428# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 398# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
429# CONFIG_NETFILTER_XT_TARGET_MARK is not set 399# CONFIG_NETFILTER_XT_TARGET_MARK is not set
430# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
431# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 400# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
401# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
432# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set 402# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
433# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 403# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
434# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set 404# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set
@@ -438,37 +408,70 @@ CONFIG_NETFILTER_XTABLES=m
438# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 408# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
439# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 409# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
440# CONFIG_NETFILTER_XT_MATCH_ESP is not set 410# CONFIG_NETFILTER_XT_MATCH_ESP is not set
411# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
441# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 412# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
442# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 413# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
443# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 414# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
444# CONFIG_NETFILTER_XT_MATCH_MAC is not set 415# CONFIG_NETFILTER_XT_MATCH_MAC is not set
445# CONFIG_NETFILTER_XT_MATCH_MARK is not set 416# CONFIG_NETFILTER_XT_MATCH_MARK is not set
417# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
446# CONFIG_NETFILTER_XT_MATCH_OWNER is not set 418# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
447# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 419# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
448# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
449# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set 420# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
450# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set 421# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
451# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 422# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
452# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set 423# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
453# CONFIG_NETFILTER_XT_MATCH_REALM is not set 424# CONFIG_NETFILTER_XT_MATCH_REALM is not set
425# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
454# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 426# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
455# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 427# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
456# CONFIG_NETFILTER_XT_MATCH_STRING is not set 428# CONFIG_NETFILTER_XT_MATCH_STRING is not set
457# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 429# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
458# CONFIG_NETFILTER_XT_MATCH_TIME is not set 430# CONFIG_NETFILTER_XT_MATCH_TIME is not set
459# CONFIG_NETFILTER_XT_MATCH_U32 is not set 431# CONFIG_NETFILTER_XT_MATCH_U32 is not set
460# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 432CONFIG_IP_VS=m
433# CONFIG_IP_VS_IPV6 is not set
434# CONFIG_IP_VS_DEBUG is not set
435CONFIG_IP_VS_TAB_BITS=12
436
437#
438# IPVS transport protocol load balancing support
439#
440CONFIG_IP_VS_PROTO_TCP=y
441CONFIG_IP_VS_PROTO_UDP=y
442CONFIG_IP_VS_PROTO_AH_ESP=y
443CONFIG_IP_VS_PROTO_ESP=y
444CONFIG_IP_VS_PROTO_AH=y
445
446#
447# IPVS scheduler
448#
449CONFIG_IP_VS_RR=m
450CONFIG_IP_VS_WRR=m
451CONFIG_IP_VS_LC=m
452CONFIG_IP_VS_WLC=m
453CONFIG_IP_VS_LBLC=m
454CONFIG_IP_VS_LBLCR=m
455CONFIG_IP_VS_DH=m
456CONFIG_IP_VS_SH=m
457CONFIG_IP_VS_SED=m
458CONFIG_IP_VS_NQ=m
459
460#
461# IPVS application helper
462#
463CONFIG_IP_VS_FTP=m
461 464
462# 465#
463# IP: Netfilter Configuration 466# IP: Netfilter Configuration
464# 467#
468# CONFIG_NF_DEFRAG_IPV4 is not set
465CONFIG_IP_NF_QUEUE=m 469CONFIG_IP_NF_QUEUE=m
466CONFIG_IP_NF_IPTABLES=m 470CONFIG_IP_NF_IPTABLES=m
467CONFIG_IP_NF_MATCH_RECENT=m 471CONFIG_IP_NF_MATCH_ADDRTYPE=m
468CONFIG_IP_NF_MATCH_ECN=m
469# CONFIG_IP_NF_MATCH_AH is not set 472# CONFIG_IP_NF_MATCH_AH is not set
473CONFIG_IP_NF_MATCH_ECN=m
470CONFIG_IP_NF_MATCH_TTL=m 474CONFIG_IP_NF_MATCH_TTL=m
471CONFIG_IP_NF_MATCH_ADDRTYPE=m
472CONFIG_IP_NF_FILTER=m 475CONFIG_IP_NF_FILTER=m
473CONFIG_IP_NF_TARGET_REJECT=m 476CONFIG_IP_NF_TARGET_REJECT=m
474CONFIG_IP_NF_TARGET_LOG=m 477CONFIG_IP_NF_TARGET_LOG=m
@@ -487,25 +490,21 @@ CONFIG_IP_NF_ARP_MANGLE=m
487# 490#
488# CONFIG_IP6_NF_QUEUE is not set 491# CONFIG_IP6_NF_QUEUE is not set
489CONFIG_IP6_NF_IPTABLES=m 492CONFIG_IP6_NF_IPTABLES=m
490CONFIG_IP6_NF_MATCH_RT=m 493# CONFIG_IP6_NF_MATCH_AH is not set
491CONFIG_IP6_NF_MATCH_OPTS=m 494CONFIG_IP6_NF_MATCH_EUI64=m
492CONFIG_IP6_NF_MATCH_FRAG=m 495CONFIG_IP6_NF_MATCH_FRAG=m
496CONFIG_IP6_NF_MATCH_OPTS=m
493CONFIG_IP6_NF_MATCH_HL=m 497CONFIG_IP6_NF_MATCH_HL=m
494CONFIG_IP6_NF_MATCH_IPV6HEADER=m 498CONFIG_IP6_NF_MATCH_IPV6HEADER=m
495# CONFIG_IP6_NF_MATCH_AH is not set
496# CONFIG_IP6_NF_MATCH_MH is not set 499# CONFIG_IP6_NF_MATCH_MH is not set
497CONFIG_IP6_NF_MATCH_EUI64=m 500CONFIG_IP6_NF_MATCH_RT=m
498CONFIG_IP6_NF_FILTER=m
499CONFIG_IP6_NF_TARGET_LOG=m 501CONFIG_IP6_NF_TARGET_LOG=m
502CONFIG_IP6_NF_FILTER=m
500# CONFIG_IP6_NF_TARGET_REJECT is not set 503# CONFIG_IP6_NF_TARGET_REJECT is not set
501CONFIG_IP6_NF_MANGLE=m 504CONFIG_IP6_NF_MANGLE=m
502# CONFIG_IP6_NF_TARGET_HL is not set 505# CONFIG_IP6_NF_TARGET_HL is not set
503CONFIG_IP6_NF_RAW=m 506CONFIG_IP6_NF_RAW=m
504# CONFIG_IP6_NF_SECURITY is not set 507# CONFIG_IP6_NF_SECURITY is not set
505
506#
507# Bridge: Netfilter Configuration
508#
509CONFIG_BRIDGE_NF_EBTABLES=m 508CONFIG_BRIDGE_NF_EBTABLES=m
510CONFIG_BRIDGE_EBT_BROUTE=m 509CONFIG_BRIDGE_EBT_BROUTE=m
511CONFIG_BRIDGE_EBT_T_FILTER=m 510CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -545,6 +544,7 @@ CONFIG_ATM_BR2684=m
545# CONFIG_ATM_BR2684_IPFILTER is not set 544# CONFIG_ATM_BR2684_IPFILTER is not set
546CONFIG_STP=m 545CONFIG_STP=m
547CONFIG_BRIDGE=m 546CONFIG_BRIDGE=m
547# CONFIG_NET_DSA is not set
548CONFIG_VLAN_8021Q=m 548CONFIG_VLAN_8021Q=m
549# CONFIG_VLAN_8021Q_GVRP is not set 549# CONFIG_VLAN_8021Q_GVRP is not set
550# CONFIG_DECNET is not set 550# CONFIG_DECNET is not set
@@ -566,6 +566,7 @@ CONFIG_NET_SCH_HTB=m
566CONFIG_NET_SCH_HFSC=m 566CONFIG_NET_SCH_HFSC=m
567CONFIG_NET_SCH_ATM=m 567CONFIG_NET_SCH_ATM=m
568CONFIG_NET_SCH_PRIO=m 568CONFIG_NET_SCH_PRIO=m
569# CONFIG_NET_SCH_MULTIQ is not set
569CONFIG_NET_SCH_RED=m 570CONFIG_NET_SCH_RED=m
570CONFIG_NET_SCH_SFQ=m 571CONFIG_NET_SCH_SFQ=m
571CONFIG_NET_SCH_TEQL=m 572CONFIG_NET_SCH_TEQL=m
@@ -627,12 +628,11 @@ CONFIG_BT_HCIBCM203X=m
627CONFIG_BT_HCIBFUSB=m 628CONFIG_BT_HCIBFUSB=m
628CONFIG_BT_HCIVHCI=m 629CONFIG_BT_HCIVHCI=m
629# CONFIG_AF_RXRPC is not set 630# CONFIG_AF_RXRPC is not set
631# CONFIG_PHONET is not set
630CONFIG_FIB_RULES=y 632CONFIG_FIB_RULES=y
631 633CONFIG_WIRELESS=y
632#
633# Wireless
634#
635# CONFIG_CFG80211 is not set 634# CONFIG_CFG80211 is not set
635CONFIG_WIRELESS_OLD_REGULATORY=y
636CONFIG_WIRELESS_EXT=y 636CONFIG_WIRELESS_EXT=y
637CONFIG_WIRELESS_EXT_SYSFS=y 637CONFIG_WIRELESS_EXT_SYSFS=y
638# CONFIG_MAC80211 is not set 638# CONFIG_MAC80211 is not set
@@ -910,8 +910,12 @@ CONFIG_MII=y
910# CONFIG_IBM_NEW_EMAC_RGMII is not set 910# CONFIG_IBM_NEW_EMAC_RGMII is not set
911# CONFIG_IBM_NEW_EMAC_TAH is not set 911# CONFIG_IBM_NEW_EMAC_TAH is not set
912# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 912# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
913# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
914# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
915# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
913# CONFIG_NET_PCI is not set 916# CONFIG_NET_PCI is not set
914# CONFIG_B44 is not set 917# CONFIG_B44 is not set
918# CONFIG_ATL2 is not set
915CONFIG_NETDEV_1000=y 919CONFIG_NETDEV_1000=y
916# CONFIG_ACENIC is not set 920# CONFIG_ACENIC is not set
917# CONFIG_DL2K is not set 921# CONFIG_DL2K is not set
@@ -933,6 +937,7 @@ CONFIG_MV643XX_ETH=y
933# CONFIG_QLA3XXX is not set 937# CONFIG_QLA3XXX is not set
934# CONFIG_ATL1 is not set 938# CONFIG_ATL1 is not set
935# CONFIG_ATL1E is not set 939# CONFIG_ATL1E is not set
940# CONFIG_JME is not set
936# CONFIG_NETDEV_10000 is not set 941# CONFIG_NETDEV_10000 is not set
937# CONFIG_TR is not set 942# CONFIG_TR is not set
938 943
@@ -998,6 +1003,7 @@ CONFIG_INPUT_MISC=y
998# CONFIG_INPUT_KEYSPAN_REMOTE is not set 1003# CONFIG_INPUT_KEYSPAN_REMOTE is not set
999# CONFIG_INPUT_POWERMATE is not set 1004# CONFIG_INPUT_POWERMATE is not set
1000# CONFIG_INPUT_YEALINK is not set 1005# CONFIG_INPUT_YEALINK is not set
1006# CONFIG_INPUT_CM109 is not set
1001CONFIG_INPUT_UINPUT=m 1007CONFIG_INPUT_UINPUT=m
1002 1008
1003# 1009#
@@ -1226,6 +1232,16 @@ CONFIG_SSB_POSSIBLE=y
1226# CONFIG_MFD_SM501 is not set 1232# CONFIG_MFD_SM501 is not set
1227# CONFIG_HTC_PASIC3 is not set 1233# CONFIG_HTC_PASIC3 is not set
1228# CONFIG_MFD_TMIO is not set 1234# CONFIG_MFD_TMIO is not set
1235# CONFIG_MFD_WM8400 is not set
1236# CONFIG_MFD_WM8350_I2C is not set
1237
1238#
1239# Voltage and Current regulators
1240#
1241# CONFIG_REGULATOR is not set
1242# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1243# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1244# CONFIG_REGULATOR_BQ24022 is not set
1229 1245
1230# 1246#
1231# Multimedia devices 1247# Multimedia devices
@@ -1283,6 +1299,8 @@ CONFIG_USB_DEVICEFS=y
1283CONFIG_USB_SUSPEND=y 1299CONFIG_USB_SUSPEND=y
1284# CONFIG_USB_OTG is not set 1300# CONFIG_USB_OTG is not set
1285CONFIG_USB_MON=y 1301CONFIG_USB_MON=y
1302# CONFIG_USB_WUSB is not set
1303# CONFIG_USB_WUSB_CBAF is not set
1286 1304
1287# 1305#
1288# USB Host Controller Drivers 1306# USB Host Controller Drivers
@@ -1305,6 +1323,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1305CONFIG_USB_UHCI_HCD=m 1323CONFIG_USB_UHCI_HCD=m
1306# CONFIG_USB_SL811_HCD is not set 1324# CONFIG_USB_SL811_HCD is not set
1307# CONFIG_USB_R8A66597_HCD is not set 1325# CONFIG_USB_R8A66597_HCD is not set
1326# CONFIG_USB_WHCI_HCD is not set
1327# CONFIG_USB_HWA_HCD is not set
1308 1328
1309# 1329#
1310# Enable Host or Gadget support to see Inventra options 1330# Enable Host or Gadget support to see Inventra options
@@ -1316,6 +1336,7 @@ CONFIG_USB_UHCI_HCD=m
1316CONFIG_USB_ACM=m 1336CONFIG_USB_ACM=m
1317CONFIG_USB_PRINTER=m 1337CONFIG_USB_PRINTER=m
1318# CONFIG_USB_WDM is not set 1338# CONFIG_USB_WDM is not set
1339# CONFIG_USB_TMC is not set
1319 1340
1320# 1341#
1321# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1342# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1337,7 +1358,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1337# CONFIG_USB_STORAGE_ALAUDA is not set 1358# CONFIG_USB_STORAGE_ALAUDA is not set
1338# CONFIG_USB_STORAGE_ONETOUCH is not set 1359# CONFIG_USB_STORAGE_ONETOUCH is not set
1339# CONFIG_USB_STORAGE_KARMA is not set 1360# CONFIG_USB_STORAGE_KARMA is not set
1340# CONFIG_USB_STORAGE_SIERRA is not set
1341# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1361# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1342# CONFIG_USB_LIBUSUAL is not set 1362# CONFIG_USB_LIBUSUAL is not set
1343 1363
@@ -1413,6 +1433,7 @@ CONFIG_USB_SERIAL_OMNINET=m
1413CONFIG_USB_EMI62=m 1433CONFIG_USB_EMI62=m
1414# CONFIG_USB_EMI26 is not set 1434# CONFIG_USB_EMI26 is not set
1415# CONFIG_USB_ADUTUX is not set 1435# CONFIG_USB_ADUTUX is not set
1436# CONFIG_USB_SEVSEG is not set
1416CONFIG_USB_RIO500=m 1437CONFIG_USB_RIO500=m
1417CONFIG_USB_LEGOTOWER=m 1438CONFIG_USB_LEGOTOWER=m
1418CONFIG_USB_LCD=m 1439CONFIG_USB_LCD=m
@@ -1430,12 +1451,14 @@ CONFIG_USB_LED=m
1430# CONFIG_USB_IOWARRIOR is not set 1451# CONFIG_USB_IOWARRIOR is not set
1431CONFIG_USB_TEST=m 1452CONFIG_USB_TEST=m
1432# CONFIG_USB_ISIGHTFW is not set 1453# CONFIG_USB_ISIGHTFW is not set
1454# CONFIG_USB_VST is not set
1433CONFIG_USB_ATM=m 1455CONFIG_USB_ATM=m
1434CONFIG_USB_SPEEDTOUCH=m 1456CONFIG_USB_SPEEDTOUCH=m
1435# CONFIG_USB_CXACRU is not set 1457# CONFIG_USB_CXACRU is not set
1436# CONFIG_USB_UEAGLEATM is not set 1458# CONFIG_USB_UEAGLEATM is not set
1437# CONFIG_USB_XUSBATM is not set 1459# CONFIG_USB_XUSBATM is not set
1438# CONFIG_USB_GADGET is not set 1460# CONFIG_USB_GADGET is not set
1461# CONFIG_UWB is not set
1439# CONFIG_MMC is not set 1462# CONFIG_MMC is not set
1440# CONFIG_MEMSTICK is not set 1463# CONFIG_MEMSTICK is not set
1441# CONFIG_NEW_LEDS is not set 1464# CONFIG_NEW_LEDS is not set
@@ -1464,8 +1487,8 @@ CONFIG_DMADEVICES=y
1464# 1487#
1465# DMA Devices 1488# DMA Devices
1466# 1489#
1467# CONFIG_FSL_DMA is not set
1468# CONFIG_UIO is not set 1490# CONFIG_UIO is not set
1491# CONFIG_STAGING is not set
1469 1492
1470# 1493#
1471# File systems 1494# File systems
@@ -1475,12 +1498,13 @@ CONFIG_EXT3_FS=m
1475CONFIG_EXT3_FS_XATTR=y 1498CONFIG_EXT3_FS_XATTR=y
1476CONFIG_EXT3_FS_POSIX_ACL=y 1499CONFIG_EXT3_FS_POSIX_ACL=y
1477CONFIG_EXT3_FS_SECURITY=y 1500CONFIG_EXT3_FS_SECURITY=y
1478# CONFIG_EXT4DEV_FS is not set 1501# CONFIG_EXT4_FS is not set
1479CONFIG_JBD=m 1502CONFIG_JBD=m
1480CONFIG_FS_MBCACHE=m 1503CONFIG_FS_MBCACHE=m
1481# CONFIG_REISERFS_FS is not set 1504# CONFIG_REISERFS_FS is not set
1482# CONFIG_JFS_FS is not set 1505# CONFIG_JFS_FS is not set
1483CONFIG_FS_POSIX_ACL=y 1506CONFIG_FS_POSIX_ACL=y
1507CONFIG_FILE_LOCKING=y
1484# CONFIG_XFS_FS is not set 1508# CONFIG_XFS_FS is not set
1485# CONFIG_OCFS2_FS is not set 1509# CONFIG_OCFS2_FS is not set
1486CONFIG_DNOTIFY=y 1510CONFIG_DNOTIFY=y
@@ -1519,6 +1543,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
1519CONFIG_PROC_FS=y 1543CONFIG_PROC_FS=y
1520CONFIG_PROC_KCORE=y 1544CONFIG_PROC_KCORE=y
1521CONFIG_PROC_SYSCTL=y 1545CONFIG_PROC_SYSCTL=y
1546CONFIG_PROC_PAGE_MONITOR=y
1522CONFIG_SYSFS=y 1547CONFIG_SYSFS=y
1523CONFIG_TMPFS=y 1548CONFIG_TMPFS=y
1524# CONFIG_TMPFS_POSIX_ACL is not set 1549# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1570,12 +1595,14 @@ CONFIG_NFS_COMMON=y
1570CONFIG_SUNRPC=y 1595CONFIG_SUNRPC=y
1571CONFIG_SUNRPC_GSS=y 1596CONFIG_SUNRPC_GSS=y
1572CONFIG_SUNRPC_XPRT_RDMA=m 1597CONFIG_SUNRPC_XPRT_RDMA=m
1598# CONFIG_SUNRPC_REGISTER_V4 is not set
1573CONFIG_RPCSEC_GSS_KRB5=y 1599CONFIG_RPCSEC_GSS_KRB5=y
1574CONFIG_RPCSEC_GSS_SPKM3=m 1600CONFIG_RPCSEC_GSS_SPKM3=m
1575# CONFIG_SMB_FS is not set 1601# CONFIG_SMB_FS is not set
1576CONFIG_CIFS=m 1602CONFIG_CIFS=m
1577# CONFIG_CIFS_STATS is not set 1603# CONFIG_CIFS_STATS is not set
1578# CONFIG_CIFS_WEAK_PW_HASH is not set 1604# CONFIG_CIFS_WEAK_PW_HASH is not set
1605# CONFIG_CIFS_UPCALL is not set
1579CONFIG_CIFS_XATTR=y 1606CONFIG_CIFS_XATTR=y
1580CONFIG_CIFS_POSIX=y 1607CONFIG_CIFS_POSIX=y
1581# CONFIG_CIFS_DEBUG2 is not set 1608# CONFIG_CIFS_DEBUG2 is not set
@@ -1651,7 +1678,6 @@ CONFIG_NLS_UTF8=m
1651# Library routines 1678# Library routines
1652# 1679#
1653CONFIG_BITREVERSE=y 1680CONFIG_BITREVERSE=y
1654# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1655CONFIG_CRC_CCITT=m 1681CONFIG_CRC_CCITT=m
1656# CONFIG_CRC16 is not set 1682# CONFIG_CRC16 is not set
1657CONFIG_CRC_T10DIF=m 1683CONFIG_CRC_T10DIF=m
@@ -1707,17 +1733,25 @@ CONFIG_DEBUG_MEMORY_INIT=y
1707# CONFIG_DEBUG_SG is not set 1733# CONFIG_DEBUG_SG is not set
1708# CONFIG_BOOT_PRINTK_DELAY is not set 1734# CONFIG_BOOT_PRINTK_DELAY is not set
1709# CONFIG_RCU_TORTURE_TEST is not set 1735# CONFIG_RCU_TORTURE_TEST is not set
1736# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1710# CONFIG_KPROBES_SANITY_TEST is not set 1737# CONFIG_KPROBES_SANITY_TEST is not set
1711# CONFIG_BACKTRACE_SELF_TEST is not set 1738# CONFIG_BACKTRACE_SELF_TEST is not set
1739# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1712# CONFIG_LKDTM is not set 1740# CONFIG_LKDTM is not set
1713# CONFIG_FAULT_INJECTION is not set 1741# CONFIG_FAULT_INJECTION is not set
1714# CONFIG_LATENCYTOP is not set 1742# CONFIG_LATENCYTOP is not set
1715CONFIG_SYSCTL_SYSCALL_CHECK=y 1743CONFIG_SYSCTL_SYSCALL_CHECK=y
1716CONFIG_HAVE_FTRACE=y 1744CONFIG_HAVE_FUNCTION_TRACER=y
1717CONFIG_HAVE_DYNAMIC_FTRACE=y 1745
1718# CONFIG_FTRACE is not set 1746#
1747# Tracers
1748#
1749# CONFIG_FUNCTION_TRACER is not set
1719# CONFIG_SCHED_TRACER is not set 1750# CONFIG_SCHED_TRACER is not set
1720# CONFIG_CONTEXT_SWITCH_TRACER is not set 1751# CONFIG_CONTEXT_SWITCH_TRACER is not set
1752# CONFIG_BOOT_TRACER is not set
1753# CONFIG_STACK_TRACER is not set
1754# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1721# CONFIG_SAMPLES is not set 1755# CONFIG_SAMPLES is not set
1722CONFIG_HAVE_ARCH_KGDB=y 1756CONFIG_HAVE_ARCH_KGDB=y
1723# CONFIG_KGDB is not set 1757# CONFIG_KGDB is not set
@@ -1726,6 +1760,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1726# CONFIG_DEBUG_PAGEALLOC is not set 1760# CONFIG_DEBUG_PAGEALLOC is not set
1727# CONFIG_CODE_PATCHING_SELFTEST is not set 1761# CONFIG_CODE_PATCHING_SELFTEST is not set
1728# CONFIG_FTR_FIXUP_SELFTEST is not set 1762# CONFIG_FTR_FIXUP_SELFTEST is not set
1763# CONFIG_MSI_BITMAP_SELFTEST is not set
1729# CONFIG_XMON is not set 1764# CONFIG_XMON is not set
1730# CONFIG_IRQSTACKS is not set 1765# CONFIG_IRQSTACKS is not set
1731# CONFIG_BDI_SWITCH is not set 1766# CONFIG_BDI_SWITCH is not set
@@ -1738,6 +1773,7 @@ CONFIG_BOOTX_TEXT=y
1738CONFIG_KEYS=y 1773CONFIG_KEYS=y
1739CONFIG_KEYS_DEBUG_PROC_KEYS=y 1774CONFIG_KEYS_DEBUG_PROC_KEYS=y
1740CONFIG_SECURITY=y 1775CONFIG_SECURITY=y
1776# CONFIG_SECURITYFS is not set
1741CONFIG_SECURITY_NETWORK=y 1777CONFIG_SECURITY_NETWORK=y
1742# CONFIG_SECURITY_NETWORK_XFRM is not set 1778# CONFIG_SECURITY_NETWORK_XFRM is not set
1743# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1779# CONFIG_SECURITY_FILE_CAPABILITIES is not set
@@ -1756,10 +1792,12 @@ CONFIG_CRYPTO=y
1756# 1792#
1757# Crypto core or helper 1793# Crypto core or helper
1758# 1794#
1795# CONFIG_CRYPTO_FIPS is not set
1759CONFIG_CRYPTO_ALGAPI=y 1796CONFIG_CRYPTO_ALGAPI=y
1760CONFIG_CRYPTO_AEAD=m 1797CONFIG_CRYPTO_AEAD=y
1761CONFIG_CRYPTO_BLKCIPHER=y 1798CONFIG_CRYPTO_BLKCIPHER=y
1762CONFIG_CRYPTO_HASH=y 1799CONFIG_CRYPTO_HASH=y
1800CONFIG_CRYPTO_RNG=y
1763CONFIG_CRYPTO_MANAGER=y 1801CONFIG_CRYPTO_MANAGER=y
1764# CONFIG_CRYPTO_GF128MUL is not set 1802# CONFIG_CRYPTO_GF128MUL is not set
1765CONFIG_CRYPTO_NULL=m 1803CONFIG_CRYPTO_NULL=m
@@ -1833,6 +1871,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1833# 1871#
1834CONFIG_CRYPTO_DEFLATE=m 1872CONFIG_CRYPTO_DEFLATE=m
1835# CONFIG_CRYPTO_LZO is not set 1873# CONFIG_CRYPTO_LZO is not set
1874
1875#
1876# Random Number Generation
1877#
1878# CONFIG_CRYPTO_ANSI_CPRNG is not set
1836CONFIG_CRYPTO_HW=y 1879CONFIG_CRYPTO_HW=y
1837# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1880# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1838# CONFIG_PPC_CLOCK is not set 1881# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig
index 2e0ef8c18227..63b3c2372ce8 100644
--- a/arch/powerpc/configs/chrp32_defconfig
+++ b/arch/powerpc/configs/chrp32_defconfig
@@ -1,7 +1,7 @@
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-rc3
4# Tue Aug 26 13:12:40 2008 4# Tue Nov 11 19:35:37 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_SMP=y
23CONFIG_NR_CPUS=4 23CONFIG_NR_CPUS=4
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -108,7 +108,9 @@ CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 108CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 109CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 110CONFIG_SHMEM=y
111CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 114CONFIG_SLUB_DEBUG=y
113# CONFIG_SLAB is not set 115# CONFIG_SLAB is not set
114CONFIG_SLUB=y 116CONFIG_SLUB=y
@@ -122,10 +124,7 @@ 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
126CONFIG_USE_GENERIC_SMP_HELPERS=y 127CONFIG_USE_GENERIC_SMP_HELPERS=y
127# CONFIG_HAVE_CLK is not set
128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_AS=y
159# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="anticipatory" 159CONFIG_DEFAULT_IOSCHED="anticipatory"
161CONFIG_CLASSIC_RCU=y 160CONFIG_CLASSIC_RCU=y
161# CONFIG_FREEZER is not set
162 162
163# 163#
164# Platform support 164# Platform support
@@ -212,6 +212,8 @@ CONFIG_PREEMPT_NONE=y
212# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
213# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
214CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
216# CONFIG_HAVE_AOUT is not set
215CONFIG_BINFMT_MISC=y 217CONFIG_BINFMT_MISC=y
216# CONFIG_IOMMU_HELPER is not set 218# CONFIG_IOMMU_HELPER is not set
217CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 219CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -227,15 +229,15 @@ CONFIG_FLATMEM_MANUAL=y
227# CONFIG_SPARSEMEM_MANUAL is not set 229# CONFIG_SPARSEMEM_MANUAL is not set
228CONFIG_FLATMEM=y 230CONFIG_FLATMEM=y
229CONFIG_FLAT_NODE_MEM_MAP=y 231CONFIG_FLAT_NODE_MEM_MAP=y
230# CONFIG_SPARSEMEM_STATIC is not set
231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
232CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
233CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
234# CONFIG_MIGRATION is not set 234# CONFIG_MIGRATION is not set
235# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
236# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y
239CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -310,7 +312,6 @@ CONFIG_INET_TCP_DIAG=y
310CONFIG_TCP_CONG_CUBIC=y 312CONFIG_TCP_CONG_CUBIC=y
311CONFIG_DEFAULT_TCP_CONG="cubic" 313CONFIG_DEFAULT_TCP_CONG="cubic"
312# CONFIG_TCP_MD5SIG is not set 314# CONFIG_TCP_MD5SIG is not set
313# CONFIG_IP_VS is not set
314# CONFIG_IPV6 is not set 315# CONFIG_IPV6 is not set
315# CONFIG_NETWORK_SECMARK is not set 316# CONFIG_NETWORK_SECMARK is not set
316CONFIG_NETFILTER=y 317CONFIG_NETFILTER=y
@@ -334,10 +335,12 @@ CONFIG_NETFILTER_XTABLES=m
334# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set 335# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
335# CONFIG_NETFILTER_XT_MATCH_MARK is not set 336# CONFIG_NETFILTER_XT_MATCH_MARK is not set
336# CONFIG_NETFILTER_XT_MATCH_STATE is not set 337# CONFIG_NETFILTER_XT_MATCH_STATE is not set
338# CONFIG_IP_VS is not set
337 339
338# 340#
339# IP: Netfilter Configuration 341# IP: Netfilter Configuration
340# 342#
343CONFIG_NF_DEFRAG_IPV4=m
341CONFIG_NF_CONNTRACK_IPV4=m 344CONFIG_NF_CONNTRACK_IPV4=m
342CONFIG_NF_CONNTRACK_PROC_COMPAT=y 345CONFIG_NF_CONNTRACK_PROC_COMPAT=y
343CONFIG_IP_NF_IPTABLES=m 346CONFIG_IP_NF_IPTABLES=m
@@ -361,6 +364,7 @@ CONFIG_NF_NAT_SIP=m
361# CONFIG_TIPC is not set 364# CONFIG_TIPC is not set
362# CONFIG_ATM is not set 365# CONFIG_ATM is not set
363# CONFIG_BRIDGE is not set 366# CONFIG_BRIDGE is not set
367# CONFIG_NET_DSA is not set
364# CONFIG_VLAN_8021Q is not set 368# CONFIG_VLAN_8021Q is not set
365# CONFIG_DECNET is not set 369# CONFIG_DECNET is not set
366# CONFIG_LLC2 is not set 370# CONFIG_LLC2 is not set
@@ -381,14 +385,8 @@ CONFIG_NF_NAT_SIP=m
381# CONFIG_IRDA is not set 385# CONFIG_IRDA is not set
382# CONFIG_BT is not set 386# CONFIG_BT is not set
383# CONFIG_AF_RXRPC is not set 387# CONFIG_AF_RXRPC is not set
384 388# CONFIG_PHONET is not set
385# 389# CONFIG_WIRELESS is not set
386# Wireless
387#
388# CONFIG_CFG80211 is not set
389# CONFIG_WIRELESS_EXT is not set
390# CONFIG_MAC80211 is not set
391# CONFIG_IEEE80211 is not set
392# CONFIG_RFKILL is not set 390# CONFIG_RFKILL is not set
393# CONFIG_NET_9P is not set 391# CONFIG_NET_9P is not set
394 392
@@ -443,19 +441,18 @@ CONFIG_MISC_DEVICES=y
443# CONFIG_HP_ILO is not set 441# CONFIG_HP_ILO is not set
444CONFIG_HAVE_IDE=y 442CONFIG_HAVE_IDE=y
445CONFIG_IDE=y 443CONFIG_IDE=y
446CONFIG_BLK_DEV_IDE=y
447 444
448# 445#
449# Please see Documentation/ide/ide.txt for help/info on IDE drives 446# Please see Documentation/ide/ide.txt for help/info on IDE drives
450# 447#
451CONFIG_IDE_TIMINGS=y 448CONFIG_IDE_TIMINGS=y
452# CONFIG_BLK_DEV_IDE_SATA is not set 449# CONFIG_BLK_DEV_IDE_SATA is not set
453CONFIG_BLK_DEV_IDEDISK=y 450CONFIG_IDE_GD=y
454CONFIG_IDEDISK_MULTI_MODE=y 451CONFIG_IDE_GD_ATA=y
452# CONFIG_IDE_GD_ATAPI is not set
455CONFIG_BLK_DEV_IDECD=y 453CONFIG_BLK_DEV_IDECD=y
456CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 454CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
457# CONFIG_BLK_DEV_IDETAPE is not set 455# CONFIG_BLK_DEV_IDETAPE is not set
458# CONFIG_BLK_DEV_IDEFLOPPY is not set
459# CONFIG_BLK_DEV_IDESCSI is not set 456# CONFIG_BLK_DEV_IDESCSI is not set
460# CONFIG_IDE_TASK_IOCTL is not set 457# CONFIG_IDE_TASK_IOCTL is not set
461CONFIG_IDE_PROC_FS=y 458CONFIG_IDE_PROC_FS=y
@@ -616,7 +613,23 @@ CONFIG_NETDEVICES=y
616# CONFIG_TUN is not set 613# CONFIG_TUN is not set
617# CONFIG_VETH is not set 614# CONFIG_VETH is not set
618# CONFIG_ARCNET is not set 615# CONFIG_ARCNET is not set
619# CONFIG_PHYLIB is not set 616CONFIG_PHYLIB=y
617
618#
619# MII PHY device drivers
620#
621# CONFIG_MARVELL_PHY is not set
622# CONFIG_DAVICOM_PHY is not set
623# CONFIG_QSEMI_PHY is not set
624# CONFIG_LXT_PHY is not set
625# CONFIG_CICADA_PHY is not set
626# CONFIG_VITESSE_PHY is not set
627# CONFIG_SMSC_PHY is not set
628# CONFIG_BROADCOM_PHY is not set
629# CONFIG_ICPLUS_PHY is not set
630# CONFIG_REALTEK_PHY is not set
631# CONFIG_FIXED_PHY is not set
632# CONFIG_MDIO_BITBANG is not set
620CONFIG_NET_ETHERNET=y 633CONFIG_NET_ETHERNET=y
621CONFIG_MII=y 634CONFIG_MII=y
622# CONFIG_HAPPYMEAL is not set 635# CONFIG_HAPPYMEAL is not set
@@ -641,6 +654,9 @@ CONFIG_DE4X5=y
641# CONFIG_IBM_NEW_EMAC_RGMII is not set 654# CONFIG_IBM_NEW_EMAC_RGMII is not set
642# CONFIG_IBM_NEW_EMAC_TAH is not set 655# CONFIG_IBM_NEW_EMAC_TAH is not set
643# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 656# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
657# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
658# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
659# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
644CONFIG_NET_PCI=y 660CONFIG_NET_PCI=y
645CONFIG_PCNET32=y 661CONFIG_PCNET32=y
646# CONFIG_AMD8111_ETH is not set 662# CONFIG_AMD8111_ETH is not set
@@ -669,6 +685,7 @@ CONFIG_8139TOO=y
669CONFIG_VIA_RHINE=y 685CONFIG_VIA_RHINE=y
670# CONFIG_VIA_RHINE_MMIO is not set 686# CONFIG_VIA_RHINE_MMIO is not set
671# CONFIG_SC92031 is not set 687# CONFIG_SC92031 is not set
688# CONFIG_ATL2 is not set
672CONFIG_NETDEV_1000=y 689CONFIG_NETDEV_1000=y
673# CONFIG_ACENIC is not set 690# CONFIG_ACENIC is not set
674# CONFIG_DL2K is not set 691# CONFIG_DL2K is not set
@@ -690,18 +707,22 @@ CONFIG_MV643XX_ETH=y
690# CONFIG_QLA3XXX is not set 707# CONFIG_QLA3XXX is not set
691# CONFIG_ATL1 is not set 708# CONFIG_ATL1 is not set
692# CONFIG_ATL1E is not set 709# CONFIG_ATL1E is not set
710# CONFIG_JME is not set
693CONFIG_NETDEV_10000=y 711CONFIG_NETDEV_10000=y
694# CONFIG_CHELSIO_T1 is not set 712# CONFIG_CHELSIO_T1 is not set
695# CONFIG_CHELSIO_T3 is not set 713# CONFIG_CHELSIO_T3 is not set
714# CONFIG_ENIC is not set
696# CONFIG_IXGBE is not set 715# CONFIG_IXGBE is not set
697# CONFIG_IXGB is not set 716# CONFIG_IXGB is not set
698# CONFIG_S2IO is not set 717# CONFIG_S2IO is not set
699# CONFIG_MYRI10GE is not set 718# CONFIG_MYRI10GE is not set
700# CONFIG_NETXEN_NIC is not set 719# CONFIG_NETXEN_NIC is not set
701# CONFIG_NIU is not set 720# CONFIG_NIU is not set
721# CONFIG_MLX4_EN is not set
702# CONFIG_MLX4_CORE is not set 722# CONFIG_MLX4_CORE is not set
703# CONFIG_TEHUTI is not set 723# CONFIG_TEHUTI is not set
704# CONFIG_BNX2X is not set 724# CONFIG_BNX2X is not set
725# CONFIG_QLGE is not set
705# CONFIG_SFC is not set 726# CONFIG_SFC is not set
706# CONFIG_TR is not set 727# CONFIG_TR is not set
707 728
@@ -777,6 +798,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
777CONFIG_MOUSE_PS2_SYNAPTICS=y 798CONFIG_MOUSE_PS2_SYNAPTICS=y
778CONFIG_MOUSE_PS2_LIFEBOOK=y 799CONFIG_MOUSE_PS2_LIFEBOOK=y
779CONFIG_MOUSE_PS2_TRACKPOINT=y 800CONFIG_MOUSE_PS2_TRACKPOINT=y
801# CONFIG_MOUSE_PS2_ELANTECH is not set
780# CONFIG_MOUSE_PS2_TOUCHKIT is not set 802# CONFIG_MOUSE_PS2_TOUCHKIT is not set
781# CONFIG_MOUSE_SERIAL is not set 803# CONFIG_MOUSE_SERIAL is not set
782# CONFIG_MOUSE_APPLETOUCH is not set 804# CONFIG_MOUSE_APPLETOUCH is not set
@@ -795,6 +817,7 @@ CONFIG_INPUT_MISC=y
795# CONFIG_INPUT_KEYSPAN_REMOTE is not set 817# CONFIG_INPUT_KEYSPAN_REMOTE is not set
796# CONFIG_INPUT_POWERMATE is not set 818# CONFIG_INPUT_POWERMATE is not set
797# CONFIG_INPUT_YEALINK is not set 819# CONFIG_INPUT_YEALINK is not set
820# CONFIG_INPUT_CM109 is not set
798CONFIG_INPUT_UINPUT=y 821CONFIG_INPUT_UINPUT=y
799 822
800# 823#
@@ -953,6 +976,17 @@ CONFIG_SSB_POSSIBLE=y
953# CONFIG_MFD_SM501 is not set 976# CONFIG_MFD_SM501 is not set
954# CONFIG_HTC_PASIC3 is not set 977# CONFIG_HTC_PASIC3 is not set
955# CONFIG_MFD_TMIO is not set 978# CONFIG_MFD_TMIO is not set
979# CONFIG_PMIC_DA903X is not set
980# CONFIG_MFD_WM8400 is not set
981# CONFIG_MFD_WM8350_I2C is not set
982
983#
984# Voltage and Current regulators
985#
986# CONFIG_REGULATOR is not set
987# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
988# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
989# CONFIG_REGULATOR_BQ24022 is not set
956 990
957# 991#
958# Multimedia devices 992# Multimedia devices
@@ -980,6 +1014,7 @@ CONFIG_SSB_POSSIBLE=y
980CONFIG_FB=y 1014CONFIG_FB=y
981CONFIG_FIRMWARE_EDID=y 1015CONFIG_FIRMWARE_EDID=y
982CONFIG_FB_DDC=y 1016CONFIG_FB_DDC=y
1017# CONFIG_FB_BOOT_VESA_SUPPORT is not set
983CONFIG_FB_CFB_FILLRECT=y 1018CONFIG_FB_CFB_FILLRECT=y
984CONFIG_FB_CFB_COPYAREA=y 1019CONFIG_FB_CFB_COPYAREA=y
985CONFIG_FB_CFB_IMAGEBLIT=y 1020CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1028,6 +1063,7 @@ CONFIG_FB_ATY_BACKLIGHT=y
1028# CONFIG_FB_S3 is not set 1063# CONFIG_FB_S3 is not set
1029# CONFIG_FB_SAVAGE is not set 1064# CONFIG_FB_SAVAGE is not set
1030# CONFIG_FB_SIS is not set 1065# CONFIG_FB_SIS is not set
1066# CONFIG_FB_VIA is not set
1031# CONFIG_FB_NEOMAGIC is not set 1067# CONFIG_FB_NEOMAGIC is not set
1032# CONFIG_FB_KYRO is not set 1068# CONFIG_FB_KYRO is not set
1033CONFIG_FB_3DFX=y 1069CONFIG_FB_3DFX=y
@@ -1040,6 +1076,7 @@ CONFIG_FB_3DFX=y
1040# CONFIG_FB_CARMINE is not set 1076# CONFIG_FB_CARMINE is not set
1041# CONFIG_FB_IBM_GXT4500 is not set 1077# CONFIG_FB_IBM_GXT4500 is not set
1042# CONFIG_FB_VIRTUAL is not set 1078# CONFIG_FB_VIRTUAL is not set
1079# CONFIG_FB_METRONOME is not set
1043CONFIG_BACKLIGHT_LCD_SUPPORT=y 1080CONFIG_BACKLIGHT_LCD_SUPPORT=y
1044CONFIG_LCD_CLASS_DEVICE=m 1081CONFIG_LCD_CLASS_DEVICE=m
1045# CONFIG_LCD_ILI9320 is not set 1082# CONFIG_LCD_ILI9320 is not set
@@ -1083,9 +1120,36 @@ CONFIG_HID=y
1083# USB Input Devices 1120# USB Input Devices
1084# 1121#
1085CONFIG_USB_HID=y 1122CONFIG_USB_HID=y
1086# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1123# CONFIG_HID_PID is not set
1087# CONFIG_HID_FF is not set
1088# CONFIG_USB_HIDDEV is not set 1124# CONFIG_USB_HIDDEV is not set
1125
1126#
1127# Special HID drivers
1128#
1129CONFIG_HID_COMPAT=y
1130CONFIG_HID_A4TECH=y
1131CONFIG_HID_APPLE=y
1132CONFIG_HID_BELKIN=y
1133CONFIG_HID_BRIGHT=y
1134CONFIG_HID_CHERRY=y
1135CONFIG_HID_CHICONY=y
1136CONFIG_HID_CYPRESS=y
1137CONFIG_HID_DELL=y
1138CONFIG_HID_EZKEY=y
1139CONFIG_HID_GYRATION=y
1140CONFIG_HID_LOGITECH=y
1141# CONFIG_LOGITECH_FF is not set
1142# CONFIG_LOGIRUMBLEPAD2_FF is not set
1143CONFIG_HID_MICROSOFT=y
1144CONFIG_HID_MONTEREY=y
1145CONFIG_HID_PANTHERLORD=y
1146# CONFIG_PANTHERLORD_FF is not set
1147CONFIG_HID_PETALYNX=y
1148CONFIG_HID_SAMSUNG=y
1149CONFIG_HID_SONY=y
1150CONFIG_HID_SUNPLUS=y
1151# CONFIG_THRUSTMASTER_FF is not set
1152# CONFIG_ZEROPLUS_FF is not set
1089CONFIG_USB_SUPPORT=y 1153CONFIG_USB_SUPPORT=y
1090CONFIG_USB_ARCH_HAS_HCD=y 1154CONFIG_USB_ARCH_HAS_HCD=y
1091CONFIG_USB_ARCH_HAS_OHCI=y 1155CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1102,6 +1166,8 @@ CONFIG_USB_DEVICE_CLASS=y
1102# CONFIG_USB_DYNAMIC_MINORS is not set 1166# CONFIG_USB_DYNAMIC_MINORS is not set
1103# CONFIG_USB_OTG is not set 1167# CONFIG_USB_OTG is not set
1104CONFIG_USB_MON=y 1168CONFIG_USB_MON=y
1169# CONFIG_USB_WUSB is not set
1170# CONFIG_USB_WUSB_CBAF is not set
1105 1171
1106# 1172#
1107# USB Host Controller Drivers 1173# USB Host Controller Drivers
@@ -1121,6 +1187,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1121CONFIG_USB_UHCI_HCD=y 1187CONFIG_USB_UHCI_HCD=y
1122# CONFIG_USB_SL811_HCD is not set 1188# CONFIG_USB_SL811_HCD is not set
1123# CONFIG_USB_R8A66597_HCD is not set 1189# CONFIG_USB_R8A66597_HCD is not set
1190# CONFIG_USB_WHCI_HCD is not set
1191# CONFIG_USB_HWA_HCD is not set
1124 1192
1125# 1193#
1126# USB Device Class drivers 1194# USB Device Class drivers
@@ -1128,6 +1196,7 @@ CONFIG_USB_UHCI_HCD=y
1128# CONFIG_USB_ACM is not set 1196# CONFIG_USB_ACM is not set
1129# CONFIG_USB_PRINTER is not set 1197# CONFIG_USB_PRINTER is not set
1130# CONFIG_USB_WDM is not set 1198# CONFIG_USB_WDM is not set
1199# CONFIG_USB_TMC is not set
1131 1200
1132# 1201#
1133# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1202# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1149,7 +1218,6 @@ CONFIG_USB_STORAGE=m
1149# CONFIG_USB_STORAGE_ALAUDA is not set 1218# CONFIG_USB_STORAGE_ALAUDA is not set
1150# CONFIG_USB_STORAGE_ONETOUCH is not set 1219# CONFIG_USB_STORAGE_ONETOUCH is not set
1151# CONFIG_USB_STORAGE_KARMA is not set 1220# CONFIG_USB_STORAGE_KARMA is not set
1152# CONFIG_USB_STORAGE_SIERRA is not set
1153# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1221# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1154# CONFIG_USB_LIBUSUAL is not set 1222# CONFIG_USB_LIBUSUAL is not set
1155 1223
@@ -1170,6 +1238,7 @@ CONFIG_USB_STORAGE=m
1170# CONFIG_USB_EMI62 is not set 1238# CONFIG_USB_EMI62 is not set
1171# CONFIG_USB_EMI26 is not set 1239# CONFIG_USB_EMI26 is not set
1172# CONFIG_USB_ADUTUX is not set 1240# CONFIG_USB_ADUTUX is not set
1241# CONFIG_USB_SEVSEG is not set
1173# CONFIG_USB_RIO500 is not set 1242# CONFIG_USB_RIO500 is not set
1174# CONFIG_USB_LEGOTOWER is not set 1243# CONFIG_USB_LEGOTOWER is not set
1175# CONFIG_USB_LCD is not set 1244# CONFIG_USB_LCD is not set
@@ -1187,7 +1256,9 @@ CONFIG_USB_STORAGE=m
1187# CONFIG_USB_IOWARRIOR is not set 1256# CONFIG_USB_IOWARRIOR is not set
1188# CONFIG_USB_TEST is not set 1257# CONFIG_USB_TEST is not set
1189# CONFIG_USB_ISIGHTFW is not set 1258# CONFIG_USB_ISIGHTFW is not set
1259# CONFIG_USB_VST is not set
1190# CONFIG_USB_GADGET is not set 1260# CONFIG_USB_GADGET is not set
1261# CONFIG_UWB is not set
1191# CONFIG_MMC is not set 1262# CONFIG_MMC is not set
1192# CONFIG_MEMSTICK is not set 1263# CONFIG_MEMSTICK is not set
1193# CONFIG_NEW_LEDS is not set 1264# CONFIG_NEW_LEDS is not set
@@ -1197,6 +1268,7 @@ CONFIG_USB_STORAGE=m
1197# CONFIG_RTC_CLASS is not set 1268# CONFIG_RTC_CLASS is not set
1198# CONFIG_DMADEVICES is not set 1269# CONFIG_DMADEVICES is not set
1199# CONFIG_UIO is not set 1270# CONFIG_UIO is not set
1271# CONFIG_STAGING is not set
1200 1272
1201# 1273#
1202# File systems 1274# File systems
@@ -1208,12 +1280,18 @@ CONFIG_EXT3_FS=y
1208CONFIG_EXT3_FS_XATTR=y 1280CONFIG_EXT3_FS_XATTR=y
1209# CONFIG_EXT3_FS_POSIX_ACL is not set 1281# CONFIG_EXT3_FS_POSIX_ACL is not set
1210# CONFIG_EXT3_FS_SECURITY is not set 1282# CONFIG_EXT3_FS_SECURITY is not set
1211# CONFIG_EXT4DEV_FS is not set 1283CONFIG_EXT4_FS=y
1284# CONFIG_EXT4DEV_COMPAT is not set
1285CONFIG_EXT4_FS_XATTR=y
1286# CONFIG_EXT4_FS_POSIX_ACL is not set
1287# CONFIG_EXT4_FS_SECURITY is not set
1212CONFIG_JBD=y 1288CONFIG_JBD=y
1289CONFIG_JBD2=y
1213CONFIG_FS_MBCACHE=y 1290CONFIG_FS_MBCACHE=y
1214# CONFIG_REISERFS_FS is not set 1291# CONFIG_REISERFS_FS is not set
1215# CONFIG_JFS_FS is not set 1292# CONFIG_JFS_FS is not set
1216# CONFIG_FS_POSIX_ACL is not set 1293# CONFIG_FS_POSIX_ACL is not set
1294CONFIG_FILE_LOCKING=y
1217# CONFIG_XFS_FS is not set 1295# CONFIG_XFS_FS is not set
1218# CONFIG_OCFS2_FS is not set 1296# CONFIG_OCFS2_FS is not set
1219CONFIG_DNOTIFY=y 1297CONFIG_DNOTIFY=y
@@ -1248,6 +1326,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1248CONFIG_PROC_FS=y 1326CONFIG_PROC_FS=y
1249CONFIG_PROC_KCORE=y 1327CONFIG_PROC_KCORE=y
1250CONFIG_PROC_SYSCTL=y 1328CONFIG_PROC_SYSCTL=y
1329CONFIG_PROC_PAGE_MONITOR=y
1251CONFIG_SYSFS=y 1330CONFIG_SYSFS=y
1252CONFIG_TMPFS=y 1331CONFIG_TMPFS=y
1253# CONFIG_TMPFS_POSIX_ACL is not set 1332# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1349,9 +1428,8 @@ CONFIG_NLS_ISO8859_1=m
1349# Library routines 1428# Library routines
1350# 1429#
1351CONFIG_BITREVERSE=y 1430CONFIG_BITREVERSE=y
1352# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1353CONFIG_CRC_CCITT=m 1431CONFIG_CRC_CCITT=m
1354# CONFIG_CRC16 is not set 1432CONFIG_CRC16=y
1355CONFIG_CRC_T10DIF=y 1433CONFIG_CRC_T10DIF=y
1356# CONFIG_CRC_ITU_T is not set 1434# CONFIG_CRC_ITU_T is not set
1357CONFIG_CRC32=y 1435CONFIG_CRC32=y
@@ -1404,15 +1482,23 @@ CONFIG_DEBUG_MEMORY_INIT=y
1404# CONFIG_DEBUG_SG is not set 1482# CONFIG_DEBUG_SG is not set
1405# CONFIG_BOOT_PRINTK_DELAY is not set 1483# CONFIG_BOOT_PRINTK_DELAY is not set
1406# CONFIG_RCU_TORTURE_TEST is not set 1484# CONFIG_RCU_TORTURE_TEST is not set
1485# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1407# CONFIG_BACKTRACE_SELF_TEST is not set 1486# CONFIG_BACKTRACE_SELF_TEST is not set
1487# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1408# CONFIG_FAULT_INJECTION is not set 1488# CONFIG_FAULT_INJECTION is not set
1409# CONFIG_LATENCYTOP is not set 1489# CONFIG_LATENCYTOP is not set
1410CONFIG_SYSCTL_SYSCALL_CHECK=y 1490CONFIG_SYSCTL_SYSCALL_CHECK=y
1411CONFIG_HAVE_FTRACE=y 1491CONFIG_HAVE_FUNCTION_TRACER=y
1412CONFIG_HAVE_DYNAMIC_FTRACE=y 1492
1413# CONFIG_FTRACE is not set 1493#
1494# Tracers
1495#
1496# CONFIG_FUNCTION_TRACER is not set
1414# CONFIG_SCHED_TRACER is not set 1497# CONFIG_SCHED_TRACER is not set
1415# CONFIG_CONTEXT_SWITCH_TRACER is not set 1498# CONFIG_CONTEXT_SWITCH_TRACER is not set
1499# CONFIG_BOOT_TRACER is not set
1500# CONFIG_STACK_TRACER is not set
1501# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1416# CONFIG_SAMPLES is not set 1502# CONFIG_SAMPLES is not set
1417CONFIG_HAVE_ARCH_KGDB=y 1503CONFIG_HAVE_ARCH_KGDB=y
1418# CONFIG_KGDB is not set 1504# CONFIG_KGDB is not set
@@ -1421,6 +1507,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1421# CONFIG_DEBUG_PAGEALLOC is not set 1507# CONFIG_DEBUG_PAGEALLOC is not set
1422# CONFIG_CODE_PATCHING_SELFTEST is not set 1508# CONFIG_CODE_PATCHING_SELFTEST is not set
1423# CONFIG_FTR_FIXUP_SELFTEST is not set 1509# CONFIG_FTR_FIXUP_SELFTEST is not set
1510# CONFIG_MSI_BITMAP_SELFTEST is not set
1424CONFIG_XMON=y 1511CONFIG_XMON=y
1425CONFIG_XMON_DEFAULT=y 1512CONFIG_XMON_DEFAULT=y
1426CONFIG_XMON_DISASSEMBLY=y 1513CONFIG_XMON_DISASSEMBLY=y
@@ -1435,14 +1522,19 @@ CONFIG_IRQSTACKS=y
1435# 1522#
1436# CONFIG_KEYS is not set 1523# CONFIG_KEYS is not set
1437# CONFIG_SECURITY is not set 1524# CONFIG_SECURITY is not set
1525# CONFIG_SECURITYFS is not set
1438# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1526# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1439CONFIG_CRYPTO=y 1527CONFIG_CRYPTO=y
1440 1528
1441# 1529#
1442# Crypto core or helper 1530# Crypto core or helper
1443# 1531#
1532# CONFIG_CRYPTO_FIPS is not set
1444CONFIG_CRYPTO_ALGAPI=m 1533CONFIG_CRYPTO_ALGAPI=m
1534CONFIG_CRYPTO_AEAD=m
1445CONFIG_CRYPTO_BLKCIPHER=m 1535CONFIG_CRYPTO_BLKCIPHER=m
1536CONFIG_CRYPTO_HASH=m
1537CONFIG_CRYPTO_RNG=m
1446CONFIG_CRYPTO_MANAGER=m 1538CONFIG_CRYPTO_MANAGER=m
1447# CONFIG_CRYPTO_GF128MUL is not set 1539# CONFIG_CRYPTO_GF128MUL is not set
1448# CONFIG_CRYPTO_NULL is not set 1540# CONFIG_CRYPTO_NULL is not set
@@ -1515,6 +1607,11 @@ CONFIG_CRYPTO_ARC4=m
1515# 1607#
1516# CONFIG_CRYPTO_DEFLATE is not set 1608# CONFIG_CRYPTO_DEFLATE is not set
1517# CONFIG_CRYPTO_LZO is not set 1609# CONFIG_CRYPTO_LZO is not set
1610
1611#
1612# Random Number Generation
1613#
1614# CONFIG_CRYPTO_ANSI_CPRNG is not set
1518# CONFIG_CRYPTO_HW is not set 1615# CONFIG_CRYPTO_HW is not set
1519# CONFIG_PPC_CLOCK is not set 1616# CONFIG_PPC_CLOCK is not set
1520# CONFIG_VIRTUALIZATION is not set 1617# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index cd691f770810..a6f1cff564e6 100644
--- a/arch/powerpc/configs/ep8248e_defconfig
+++ b/arch/powerpc/configs/ep8248e_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:03 2008 4# Sat Nov 8 12:39:36 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
@@ -48,13 +48,11 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
51CONFIG_PPC_UDBG_16550=y 51# CONFIG_PPC_UDBG_16550 is not set
52# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -93,7 +91,6 @@ CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 91CONFIG_PRINTK=y
94CONFIG_BUG=y 92CONFIG_BUG=y
95CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
96CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 96CONFIG_FUTEX=y
@@ -103,7 +100,9 @@ CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y 100CONFIG_TIMERFD=y
104CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
105CONFIG_SHMEM=y 102CONFIG_SHMEM=y
103CONFIG_AIO=y
106CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
105CONFIG_PCI_QUIRKS=y
107CONFIG_SLAB=y 106CONFIG_SLAB=y
108# CONFIG_SLUB is not set 107# CONFIG_SLUB is not set
109# CONFIG_SLOB is not set 108# CONFIG_SLOB is not set
@@ -115,10 +114,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 116CONFIG_HAVE_ARCH_TRACEHOOK=y
118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120CONFIG_HAVE_CLK=y 117CONFIG_HAVE_CLK=y
121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 118# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
@@ -144,6 +140,7 @@ CONFIG_DEFAULT_DEADLINE=y
144# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="deadline" 141CONFIG_DEFAULT_IOSCHED="deadline"
146CONFIG_CLASSIC_RCU=y 142CONFIG_CLASSIC_RCU=y
143# CONFIG_FREEZER is not set
147 144
148# 145#
149# Platform support 146# Platform support
@@ -151,39 +148,36 @@ CONFIG_CLASSIC_RCU=y
151CONFIG_PPC_MULTIPLATFORM=y 148CONFIG_PPC_MULTIPLATFORM=y
152CONFIG_CLASSIC32=y 149CONFIG_CLASSIC32=y
153# CONFIG_PPC_CHRP is not set 150# CONFIG_PPC_CHRP is not set
154# CONFIG_PPC_PMAC is not set
155# CONFIG_MPC5121_ADS is not set 151# CONFIG_MPC5121_ADS is not set
156# CONFIG_MPC5121_GENERIC is not set 152# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC52xx is not set 153# CONFIG_PPC_MPC52xx is not set
154# CONFIG_PPC_PMAC is not set
158# CONFIG_PPC_CELL is not set 155# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 156# CONFIG_PPC_CELL_NATIVE is not set
160CONFIG_PPC_82xx=y 157CONFIG_PPC_82xx=y
161# CONFIG_MPC8272_ADS is not set 158# CONFIG_MPC8272_ADS is not set
162# CONFIG_PQ2FADS is not set 159# CONFIG_PQ2FADS is not set
163CONFIG_EP8248E=y 160CONFIG_EP8248E=y
161# CONFIG_MGCOGE is not set
164# CONFIG_PQ2ADS is not set 162# CONFIG_PQ2ADS is not set
165CONFIG_8260=y 163CONFIG_8260=y
166CONFIG_8272=y 164CONFIG_8272=y
167# CONFIG_PPC_83xx is not set 165# CONFIG_PPC_83xx is not set
168# CONFIG_PPC_86xx is not set 166# CONFIG_PPC_86xx is not set
169# CONFIG_EMBEDDED6xx is not set 167# CONFIG_EMBEDDED6xx is not set
170CONFIG_PPC_NATIVE=y
171# CONFIG_UDBG_RTAS_CONSOLE is not set
172# CONFIG_IPIC is not set 168# CONFIG_IPIC is not set
173CONFIG_MPIC=y 169# CONFIG_MPIC is not set
174# CONFIG_MPIC_WEIRD is not set 170# CONFIG_MPIC_WEIRD is not set
175CONFIG_PPC_I8259=y 171# CONFIG_PPC_I8259 is not set
176CONFIG_PPC_RTAS=y 172# CONFIG_PPC_RTAS is not set
177# CONFIG_RTAS_ERROR_LOGGING is not set
178CONFIG_RTAS_PROC=y
179# CONFIG_MMIO_NVRAM is not set 173# CONFIG_MMIO_NVRAM is not set
180CONFIG_PPC_MPC106=y 174# CONFIG_PPC_MPC106 is not set
181# CONFIG_PPC_970_NAP is not set 175# CONFIG_PPC_970_NAP is not set
182# CONFIG_PPC_INDIRECT_IO is not set 176# CONFIG_PPC_INDIRECT_IO is not set
183# CONFIG_GENERIC_IOMAP is not set 177# CONFIG_GENERIC_IOMAP is not set
184# CONFIG_CPU_FREQ is not set 178# CONFIG_CPU_FREQ is not set
185# CONFIG_PPC601_SYNC_FIX is not set
186# CONFIG_TAU is not set 179# CONFIG_TAU is not set
180# CONFIG_QUICC_ENGINE is not set
187CONFIG_CPM2=y 181CONFIG_CPM2=y
188# CONFIG_FSL_ULI1575 is not set 182# CONFIG_FSL_ULI1575 is not set
189CONFIG_CPM=y 183CONFIG_CPM=y
@@ -192,7 +186,6 @@ CONFIG_CPM=y
192# Kernel options 186# Kernel options
193# 187#
194# CONFIG_HIGHMEM is not set 188# CONFIG_HIGHMEM is not set
195# CONFIG_TICK_ONESHOT is not set
196# CONFIG_NO_HZ is not set 189# CONFIG_NO_HZ is not set
197# CONFIG_HIGH_RES_TIMERS is not set 190# CONFIG_HIGH_RES_TIMERS is not set
198CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 191CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -206,6 +199,8 @@ CONFIG_PREEMPT_NONE=y
206# CONFIG_PREEMPT_VOLUNTARY is not set 199# CONFIG_PREEMPT_VOLUNTARY is not set
207# CONFIG_PREEMPT is not set 200# CONFIG_PREEMPT is not set
208CONFIG_BINFMT_ELF=y 201CONFIG_BINFMT_ELF=y
202# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
203# CONFIG_HAVE_AOUT is not set
209CONFIG_BINFMT_MISC=y 204CONFIG_BINFMT_MISC=y
210# CONFIG_IOMMU_HELPER is not set 205# CONFIG_IOMMU_HELPER is not set
211CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -215,15 +210,15 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 210CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_FLATMEM=y 211CONFIG_FLATMEM=y
217CONFIG_FLAT_NODE_MEM_MAP=y 212CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_STATIC is not set
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 213CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 214CONFIG_SPLIT_PTLOCK_CPUS=4
222CONFIG_MIGRATION=y 215CONFIG_MIGRATION=y
223# CONFIG_RESOURCES_64BIT is not set 216# CONFIG_RESOURCES_64BIT is not set
217# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 218CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 219CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 220CONFIG_VIRT_TO_BUS=y
221CONFIG_UNEVICTABLE_LRU=y
227CONFIG_FORCE_MAX_ZONEORDER=11 222CONFIG_FORCE_MAX_ZONEORDER=11
228CONFIG_PROC_DEVICETREE=y 223CONFIG_PROC_DEVICETREE=y
229# CONFIG_CMDLINE_BOOL is not set 224# CONFIG_CMDLINE_BOOL is not set
@@ -235,7 +230,6 @@ CONFIG_ISA_DMA_API=y
235# 230#
236# Bus options 231# Bus options
237# 232#
238# CONFIG_ISA is not set
239CONFIG_ZONE_DMA=y 233CONFIG_ZONE_DMA=y
240CONFIG_PPC_INDIRECT_PCI=y 234CONFIG_PPC_INDIRECT_PCI=y
241CONFIG_FSL_SOC=y 235CONFIG_FSL_SOC=y
@@ -247,7 +241,7 @@ CONFIG_PCI_8260=y
247# CONFIG_PCIEPORTBUS is not set 241# CONFIG_PCIEPORTBUS is not set
248CONFIG_ARCH_SUPPORTS_MSI=y 242CONFIG_ARCH_SUPPORTS_MSI=y
249# CONFIG_PCI_MSI is not set 243# CONFIG_PCI_MSI is not set
250CONFIG_PCI_LEGACY=y 244# CONFIG_PCI_LEGACY is not set
251# CONFIG_PCI_DEBUG is not set 245# CONFIG_PCI_DEBUG is not set
252# CONFIG_PCCARD is not set 246# CONFIG_PCCARD is not set
253# CONFIG_HOTPLUG_PCI is not set 247# CONFIG_HOTPLUG_PCI is not set
@@ -303,7 +297,6 @@ CONFIG_INET_TCP_DIAG=y
303# CONFIG_TCP_CONG_ADVANCED is not set 297# CONFIG_TCP_CONG_ADVANCED is not set
304CONFIG_TCP_CONG_CUBIC=y 298CONFIG_TCP_CONG_CUBIC=y
305CONFIG_DEFAULT_TCP_CONG="cubic" 299CONFIG_DEFAULT_TCP_CONG="cubic"
306# CONFIG_IP_VS is not set
307CONFIG_IPV6=y 300CONFIG_IPV6=y
308# CONFIG_IPV6_PRIVACY is not set 301# CONFIG_IPV6_PRIVACY is not set
309# CONFIG_IPV6_ROUTER_PREF is not set 302# CONFIG_IPV6_ROUTER_PREF is not set
@@ -330,10 +323,12 @@ CONFIG_NETFILTER_ADVANCED=y
330# CONFIG_NETFILTER_NETLINK_LOG is not set 323# CONFIG_NETFILTER_NETLINK_LOG is not set
331# CONFIG_NF_CONNTRACK is not set 324# CONFIG_NF_CONNTRACK is not set
332# CONFIG_NETFILTER_XTABLES is not set 325# CONFIG_NETFILTER_XTABLES is not set
326# CONFIG_IP_VS is not set
333 327
334# 328#
335# IP: Netfilter Configuration 329# IP: Netfilter Configuration
336# 330#
331# CONFIG_NF_DEFRAG_IPV4 is not set
337# CONFIG_IP_NF_QUEUE is not set 332# CONFIG_IP_NF_QUEUE is not set
338# CONFIG_IP_NF_IPTABLES is not set 333# CONFIG_IP_NF_IPTABLES is not set
339# CONFIG_IP_NF_ARPTABLES is not set 334# CONFIG_IP_NF_ARPTABLES is not set
@@ -360,11 +355,10 @@ CONFIG_NETFILTER_ADVANCED=y
360# CONFIG_CAN is not set 355# CONFIG_CAN is not set
361# CONFIG_IRDA is not set 356# CONFIG_IRDA is not set
362# CONFIG_BT is not set 357# CONFIG_BT is not set
363 358# CONFIG_PHONET is not set
364# 359CONFIG_WIRELESS=y
365# Wireless
366#
367# CONFIG_CFG80211 is not set 360# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y
368# CONFIG_WIRELESS_EXT is not set 362# CONFIG_WIRELESS_EXT is not set
369# CONFIG_MAC80211 is not set 363# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set 364# CONFIG_IEEE80211 is not set
@@ -469,7 +463,6 @@ CONFIG_OF_GPIO=y
469# CONFIG_PARPORT is not set 463# CONFIG_PARPORT is not set
470CONFIG_BLK_DEV=y 464CONFIG_BLK_DEV=y
471# CONFIG_BLK_DEV_FD is not set 465# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
473# CONFIG_BLK_CPQ_DA is not set 466# CONFIG_BLK_CPQ_DA is not set
474# CONFIG_BLK_CPQ_CISS_DA is not set 467# CONFIG_BLK_CPQ_CISS_DA is not set
475# CONFIG_BLK_DEV_DAC960 is not set 468# CONFIG_BLK_DEV_DAC960 is not set
@@ -534,8 +527,6 @@ CONFIG_MDIO_BITBANG=y
534# CONFIG_MDIO_OF_GPIO is not set 527# CONFIG_MDIO_OF_GPIO is not set
535CONFIG_NET_ETHERNET=y 528CONFIG_NET_ETHERNET=y
536CONFIG_MII=y 529CONFIG_MII=y
537# CONFIG_MACE is not set
538# CONFIG_BMAC is not set
539# CONFIG_HAPPYMEAL is not set 530# CONFIG_HAPPYMEAL is not set
540# CONFIG_SUNGEM is not set 531# CONFIG_SUNGEM is not set
541# CONFIG_CASSINI is not set 532# CONFIG_CASSINI is not set
@@ -546,8 +537,12 @@ CONFIG_MII=y
546# CONFIG_IBM_NEW_EMAC_RGMII is not set 537# CONFIG_IBM_NEW_EMAC_RGMII is not set
547# CONFIG_IBM_NEW_EMAC_TAH is not set 538# CONFIG_IBM_NEW_EMAC_TAH is not set
548# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 539# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
540# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
541# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
542# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
549# CONFIG_NET_PCI is not set 543# CONFIG_NET_PCI is not set
550# CONFIG_B44 is not set 544# CONFIG_B44 is not set
545# CONFIG_ATL2 is not set
551CONFIG_FS_ENET=y 546CONFIG_FS_ENET=y
552# CONFIG_FS_ENET_HAS_SCC is not set 547# CONFIG_FS_ENET_HAS_SCC is not set
553CONFIG_FS_ENET_HAS_FCC=y 548CONFIG_FS_ENET_HAS_FCC=y
@@ -570,18 +565,23 @@ CONFIG_NETDEV_1000=y
570# CONFIG_GIANFAR is not set 565# CONFIG_GIANFAR is not set
571# CONFIG_MV643XX_ETH is not set 566# CONFIG_MV643XX_ETH is not set
572# CONFIG_QLA3XXX is not set 567# CONFIG_QLA3XXX is not set
568# CONFIG_ATL1 is not set
569# CONFIG_JME is not set
573CONFIG_NETDEV_10000=y 570CONFIG_NETDEV_10000=y
574# CONFIG_CHELSIO_T1 is not set 571# CONFIG_CHELSIO_T1 is not set
575# CONFIG_CHELSIO_T3 is not set 572# CONFIG_CHELSIO_T3 is not set
573# CONFIG_ENIC is not set
576# CONFIG_IXGBE is not set 574# CONFIG_IXGBE is not set
577# CONFIG_IXGB is not set 575# CONFIG_IXGB is not set
578# CONFIG_S2IO is not set 576# CONFIG_S2IO is not set
579# CONFIG_MYRI10GE is not set 577# CONFIG_MYRI10GE is not set
580# CONFIG_NETXEN_NIC is not set 578# CONFIG_NETXEN_NIC is not set
581# CONFIG_NIU is not set 579# CONFIG_NIU is not set
580# CONFIG_MLX4_EN is not set
582# CONFIG_MLX4_CORE is not set 581# CONFIG_MLX4_CORE is not set
583# CONFIG_TEHUTI is not set 582# CONFIG_TEHUTI is not set
584# CONFIG_BNX2X is not set 583# CONFIG_BNX2X is not set
584# CONFIG_QLGE is not set
585# CONFIG_SFC is not set 585# CONFIG_SFC is not set
586# CONFIG_TR is not set 586# CONFIG_TR is not set
587 587
@@ -629,21 +629,12 @@ CONFIG_DEVKMEM=y
629# CONFIG_SERIAL_UARTLITE is not set 629# CONFIG_SERIAL_UARTLITE is not set
630CONFIG_SERIAL_CORE=y 630CONFIG_SERIAL_CORE=y
631CONFIG_SERIAL_CORE_CONSOLE=y 631CONFIG_SERIAL_CORE_CONSOLE=y
632# CONFIG_SERIAL_PMACZILOG is not set
633CONFIG_SERIAL_CPM=y 632CONFIG_SERIAL_CPM=y
634CONFIG_SERIAL_CPM_CONSOLE=y 633CONFIG_SERIAL_CPM_CONSOLE=y
635CONFIG_SERIAL_CPM_SCC1=y
636# CONFIG_SERIAL_CPM_SCC2 is not set
637# CONFIG_SERIAL_CPM_SCC3 is not set
638CONFIG_SERIAL_CPM_SCC4=y
639# CONFIG_SERIAL_CPM_SMC1 is not set
640# CONFIG_SERIAL_CPM_SMC2 is not set
641# CONFIG_SERIAL_JSM is not set 634# CONFIG_SERIAL_JSM is not set
642CONFIG_UNIX98_PTYS=y 635CONFIG_UNIX98_PTYS=y
643CONFIG_LEGACY_PTYS=y 636CONFIG_LEGACY_PTYS=y
644CONFIG_LEGACY_PTY_COUNT=256 637CONFIG_LEGACY_PTY_COUNT=256
645# CONFIG_BRIQ_PANEL is not set
646# CONFIG_HVC_RTAS is not set
647# CONFIG_IPMI_HANDLER is not set 638# CONFIG_IPMI_HANDLER is not set
648CONFIG_HW_RANDOM=y 639CONFIG_HW_RANDOM=y
649# CONFIG_NVRAM is not set 640# CONFIG_NVRAM is not set
@@ -693,6 +684,14 @@ CONFIG_SSB_POSSIBLE=y
693# CONFIG_MFD_TMIO is not set 684# CONFIG_MFD_TMIO is not set
694 685
695# 686#
687# Voltage and Current regulators
688#
689# CONFIG_REGULATOR is not set
690# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
691# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
692# CONFIG_REGULATOR_BQ24022 is not set
693
694#
696# Multimedia devices 695# Multimedia devices
697# 696#
698 697
@@ -732,6 +731,7 @@ CONFIG_DAB=y
732# CONFIG_RTC_CLASS is not set 731# CONFIG_RTC_CLASS is not set
733# CONFIG_DMADEVICES is not set 732# CONFIG_DMADEVICES is not set
734# CONFIG_UIO is not set 733# CONFIG_UIO is not set
734# CONFIG_STAGING is not set
735 735
736# 736#
737# File systems 737# File systems
@@ -741,10 +741,12 @@ CONFIG_EXT2_FS=y
741# CONFIG_EXT2_FS_XIP is not set 741# CONFIG_EXT2_FS_XIP is not set
742CONFIG_EXT3_FS=y 742CONFIG_EXT3_FS=y
743# CONFIG_EXT3_FS_XATTR is not set 743# CONFIG_EXT3_FS_XATTR is not set
744# CONFIG_EXT4_FS is not set
744CONFIG_JBD=y 745CONFIG_JBD=y
745# CONFIG_REISERFS_FS is not set 746# CONFIG_REISERFS_FS is not set
746# CONFIG_JFS_FS is not set 747# CONFIG_JFS_FS is not set
747# CONFIG_FS_POSIX_ACL is not set 748# CONFIG_FS_POSIX_ACL is not set
749CONFIG_FILE_LOCKING=y
748# CONFIG_XFS_FS is not set 750# CONFIG_XFS_FS is not set
749# CONFIG_OCFS2_FS is not set 751# CONFIG_OCFS2_FS is not set
750CONFIG_DNOTIFY=y 752CONFIG_DNOTIFY=y
@@ -774,6 +776,7 @@ CONFIG_AUTOFS4_FS=y
774CONFIG_PROC_FS=y 776CONFIG_PROC_FS=y
775CONFIG_PROC_KCORE=y 777CONFIG_PROC_KCORE=y
776CONFIG_PROC_SYSCTL=y 778CONFIG_PROC_SYSCTL=y
779CONFIG_PROC_PAGE_MONITOR=y
777CONFIG_SYSFS=y 780CONFIG_SYSFS=y
778CONFIG_TMPFS=y 781CONFIG_TMPFS=y
779# CONFIG_TMPFS_POSIX_ACL is not set 782# CONFIG_TMPFS_POSIX_ACL is not set
@@ -874,7 +877,6 @@ CONFIG_NLS_UTF8=y
874# 877#
875# Library routines 878# Library routines
876# 879#
877# CONFIG_GENERIC_FIND_FIRST_BIT is not set
878# CONFIG_CRC_CCITT is not set 880# CONFIG_CRC_CCITT is not set
879# CONFIG_CRC16 is not set 881# CONFIG_CRC16 is not set
880# CONFIG_CRC_T10DIF is not set 882# CONFIG_CRC_T10DIF is not set
@@ -924,15 +926,23 @@ CONFIG_DEBUG_INFO=y
924# CONFIG_DEBUG_SG is not set 926# CONFIG_DEBUG_SG is not set
925# CONFIG_BOOT_PRINTK_DELAY is not set 927# CONFIG_BOOT_PRINTK_DELAY is not set
926# CONFIG_RCU_TORTURE_TEST is not set 928# CONFIG_RCU_TORTURE_TEST is not set
929# CONFIG_RCU_CPU_STALL_DETECTOR is not set
927# CONFIG_BACKTRACE_SELF_TEST is not set 930# CONFIG_BACKTRACE_SELF_TEST is not set
931# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
928# CONFIG_FAULT_INJECTION is not set 932# CONFIG_FAULT_INJECTION is not set
929# CONFIG_LATENCYTOP is not set 933# CONFIG_LATENCYTOP is not set
930CONFIG_SYSCTL_SYSCALL_CHECK=y 934CONFIG_SYSCTL_SYSCALL_CHECK=y
931CONFIG_HAVE_FTRACE=y 935CONFIG_HAVE_FUNCTION_TRACER=y
932CONFIG_HAVE_DYNAMIC_FTRACE=y 936
933# CONFIG_FTRACE is not set 937#
938# Tracers
939#
940# CONFIG_FUNCTION_TRACER is not set
934# CONFIG_SCHED_TRACER is not set 941# CONFIG_SCHED_TRACER is not set
935# CONFIG_CONTEXT_SWITCH_TRACER is not set 942# CONFIG_CONTEXT_SWITCH_TRACER is not set
943# CONFIG_BOOT_TRACER is not set
944# CONFIG_STACK_TRACER is not set
945# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
936# CONFIG_SAMPLES is not set 946# CONFIG_SAMPLES is not set
937CONFIG_HAVE_ARCH_KGDB=y 947CONFIG_HAVE_ARCH_KGDB=y
938# CONFIG_DEBUG_STACKOVERFLOW is not set 948# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -940,6 +950,7 @@ CONFIG_HAVE_ARCH_KGDB=y
940# CONFIG_DEBUG_PAGEALLOC is not set 950# CONFIG_DEBUG_PAGEALLOC is not set
941# CONFIG_CODE_PATCHING_SELFTEST is not set 951# CONFIG_CODE_PATCHING_SELFTEST is not set
942# CONFIG_FTR_FIXUP_SELFTEST is not set 952# CONFIG_FTR_FIXUP_SELFTEST is not set
953# CONFIG_MSI_BITMAP_SELFTEST is not set
943# CONFIG_XMON is not set 954# CONFIG_XMON is not set
944# CONFIG_IRQSTACKS is not set 955# CONFIG_IRQSTACKS is not set
945CONFIG_BDI_SWITCH=y 956CONFIG_BDI_SWITCH=y
@@ -951,14 +962,19 @@ CONFIG_BDI_SWITCH=y
951# 962#
952# CONFIG_KEYS is not set 963# CONFIG_KEYS is not set
953# CONFIG_SECURITY is not set 964# CONFIG_SECURITY is not set
965# CONFIG_SECURITYFS is not set
954# CONFIG_SECURITY_FILE_CAPABILITIES is not set 966# CONFIG_SECURITY_FILE_CAPABILITIES is not set
955CONFIG_CRYPTO=y 967CONFIG_CRYPTO=y
956 968
957# 969#
958# Crypto core or helper 970# Crypto core or helper
959# 971#
972# CONFIG_CRYPTO_FIPS is not set
960CONFIG_CRYPTO_ALGAPI=y 973CONFIG_CRYPTO_ALGAPI=y
974CONFIG_CRYPTO_AEAD=y
961CONFIG_CRYPTO_BLKCIPHER=y 975CONFIG_CRYPTO_BLKCIPHER=y
976CONFIG_CRYPTO_HASH=y
977CONFIG_CRYPTO_RNG=y
962CONFIG_CRYPTO_MANAGER=y 978CONFIG_CRYPTO_MANAGER=y
963# CONFIG_CRYPTO_NULL is not set 979# CONFIG_CRYPTO_NULL is not set
964# CONFIG_CRYPTO_CRYPTD is not set 980# CONFIG_CRYPTO_CRYPTD is not set
@@ -1025,6 +1041,11 @@ CONFIG_CRYPTO_DES=y
1025# 1041#
1026# CONFIG_CRYPTO_DEFLATE is not set 1042# CONFIG_CRYPTO_DEFLATE is not set
1027# CONFIG_CRYPTO_LZO is not set 1043# CONFIG_CRYPTO_LZO is not set
1044
1045#
1046# Random Number Generation
1047#
1048# CONFIG_CRYPTO_ANSI_CPRNG is not set
1028# CONFIG_CRYPTO_HW is not set 1049# CONFIG_CRYPTO_HW is not set
1029CONFIG_PPC_CLOCK=y 1050CONFIG_PPC_CLOCK=y
1030CONFIG_PPC_LIB_RHEAP=y 1051CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index 480225be2f39..870d28976a44 100644
--- a/arch/powerpc/configs/ep88xc_defconfig
+++ b/arch/powerpc/configs/ep88xc_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:04 2008 4# Sat Nov 8 12:39:37 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,7 +19,7 @@ CONFIG_8xx=y
19CONFIG_NOT_COHERENT_CACHE=y 19CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 20CONFIG_PPC32=y
21CONFIG_WORD_SIZE=32 21CONFIG_WORD_SIZE=32
22CONFIG_PPC_MERGE=y 22# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
23CONFIG_MMU=y 23CONFIG_MMU=y
24CONFIG_GENERIC_CMOS_UPDATE=y 24CONFIG_GENERIC_CMOS_UPDATE=y
25CONFIG_GENERIC_TIME=y 25CONFIG_GENERIC_TIME=y
@@ -101,6 +101,7 @@ CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y 101CONFIG_TIMERFD=y
102CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 103CONFIG_SHMEM=y
104CONFIG_AIO=y
104# CONFIG_VM_EVENT_COUNTERS is not set 105# CONFIG_VM_EVENT_COUNTERS is not set
105CONFIG_SLUB_DEBUG=y 106CONFIG_SLUB_DEBUG=y
106# CONFIG_SLAB is not set 107# CONFIG_SLAB is not set
@@ -114,10 +115,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
116CONFIG_HAVE_ARCH_TRACEHOOK=y 117CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set
118# CONFIG_USE_GENERIC_SMP_HELPERS is not set
119CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
120CONFIG_PROC_PAGE_MONITOR=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
123# CONFIG_TINY_SHMEM is not set 121# CONFIG_TINY_SHMEM is not set
@@ -143,6 +141,7 @@ CONFIG_DEFAULT_DEADLINE=y
143# CONFIG_DEFAULT_NOOP is not set 141# CONFIG_DEFAULT_NOOP is not set
144CONFIG_DEFAULT_IOSCHED="deadline" 142CONFIG_DEFAULT_IOSCHED="deadline"
145CONFIG_CLASSIC_RCU=y 143CONFIG_CLASSIC_RCU=y
144# CONFIG_FREEZER is not set
146 145
147# 146#
148# Platform support 147# Platform support
@@ -155,6 +154,7 @@ CONFIG_CPM1=y
155# CONFIG_MPC885ADS is not set 154# CONFIG_MPC885ADS is not set
156CONFIG_PPC_EP88XC=y 155CONFIG_PPC_EP88XC=y
157# CONFIG_PPC_ADDER875 is not set 156# CONFIG_PPC_ADDER875 is not set
157# CONFIG_PPC_MGSUVD is not set
158 158
159# 159#
160# MPC8xx CPM Options 160# MPC8xx CPM Options
@@ -183,6 +183,7 @@ CONFIG_NO_UCODE_PATCH=y
183# CONFIG_PPC_INDIRECT_IO is not set 183# CONFIG_PPC_INDIRECT_IO is not set
184# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
185# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
186# CONFIG_QUICC_ENGINE is not set
186# CONFIG_FSL_ULI1575 is not set 187# CONFIG_FSL_ULI1575 is not set
187CONFIG_CPM=y 188CONFIG_CPM=y
188 189
@@ -204,6 +205,8 @@ CONFIG_PREEMPT_NONE=y
204# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
205# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
206CONFIG_BINFMT_ELF=y 207CONFIG_BINFMT_ELF=y
208# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
209# CONFIG_HAVE_AOUT is not set
207# CONFIG_BINFMT_MISC is not set 210# CONFIG_BINFMT_MISC is not set
208# CONFIG_MATH_EMULATION is not set 211# CONFIG_MATH_EMULATION is not set
209CONFIG_8XX_MINIMAL_FPEMU=y 212CONFIG_8XX_MINIMAL_FPEMU=y
@@ -219,15 +222,15 @@ CONFIG_FLATMEM_MANUAL=y
219# CONFIG_SPARSEMEM_MANUAL is not set 222# CONFIG_SPARSEMEM_MANUAL is not set
220CONFIG_FLATMEM=y 223CONFIG_FLATMEM=y
221CONFIG_FLAT_NODE_MEM_MAP=y 224CONFIG_FLAT_NODE_MEM_MAP=y
222# CONFIG_SPARSEMEM_STATIC is not set
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y 227CONFIG_MIGRATION=y
227# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
229# CONFIG_PHYS_ADDR_T_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 232CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y
231CONFIG_FORCE_MAX_ZONEORDER=11 234CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 235CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 236# CONFIG_CMDLINE_BOOL is not set
@@ -309,6 +312,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
309# CONFIG_TIPC is not set 312# CONFIG_TIPC is not set
310# CONFIG_ATM is not set 313# CONFIG_ATM is not set
311# CONFIG_BRIDGE is not set 314# CONFIG_BRIDGE is not set
315# CONFIG_NET_DSA is not set
312# CONFIG_VLAN_8021Q is not set 316# CONFIG_VLAN_8021Q is not set
313# CONFIG_DECNET is not set 317# CONFIG_DECNET is not set
314# CONFIG_LLC2 is not set 318# CONFIG_LLC2 is not set
@@ -329,11 +333,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_IRDA is not set 333# CONFIG_IRDA is not set
330# CONFIG_BT is not set 334# CONFIG_BT is not set
331# CONFIG_AF_RXRPC is not set 335# CONFIG_AF_RXRPC is not set
332 336# CONFIG_PHONET is not set
333# 337CONFIG_WIRELESS=y
334# Wireless
335#
336# CONFIG_CFG80211 is not set 338# CONFIG_CFG80211 is not set
339CONFIG_WIRELESS_OLD_REGULATORY=y
337# CONFIG_WIRELESS_EXT is not set 340# CONFIG_WIRELESS_EXT is not set
338# CONFIG_MAC80211 is not set 341# CONFIG_MAC80211 is not set
339# CONFIG_IEEE80211 is not set 342# CONFIG_IEEE80211 is not set
@@ -475,6 +478,9 @@ CONFIG_MII=y
475# CONFIG_IBM_NEW_EMAC_RGMII is not set 478# CONFIG_IBM_NEW_EMAC_RGMII is not set
476# CONFIG_IBM_NEW_EMAC_TAH is not set 479# CONFIG_IBM_NEW_EMAC_TAH is not set
477# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 480# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
481# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
482# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
483# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
478# CONFIG_B44 is not set 484# CONFIG_B44 is not set
479CONFIG_FS_ENET=y 485CONFIG_FS_ENET=y
480# CONFIG_FS_ENET_HAS_SCC is not set 486# CONFIG_FS_ENET_HAS_SCC is not set
@@ -529,12 +535,6 @@ CONFIG_SERIAL_CORE=y
529CONFIG_SERIAL_CORE_CONSOLE=y 535CONFIG_SERIAL_CORE_CONSOLE=y
530CONFIG_SERIAL_CPM=y 536CONFIG_SERIAL_CPM=y
531CONFIG_SERIAL_CPM_CONSOLE=y 537CONFIG_SERIAL_CPM_CONSOLE=y
532# CONFIG_SERIAL_CPM_SCC1 is not set
533# CONFIG_SERIAL_CPM_SCC2 is not set
534# CONFIG_SERIAL_CPM_SCC3 is not set
535# CONFIG_SERIAL_CPM_SCC4 is not set
536CONFIG_SERIAL_CPM_SMC1=y
537CONFIG_SERIAL_CPM_SMC2=y
538CONFIG_UNIX98_PTYS=y 538CONFIG_UNIX98_PTYS=y
539# CONFIG_LEGACY_PTYS is not set 539# CONFIG_LEGACY_PTYS is not set
540# CONFIG_IPMI_HANDLER is not set 540# CONFIG_IPMI_HANDLER is not set
@@ -571,6 +571,14 @@ CONFIG_SSB_POSSIBLE=y
571# CONFIG_MFD_TMIO is not set 571# CONFIG_MFD_TMIO is not set
572 572
573# 573#
574# Voltage and Current regulators
575#
576# CONFIG_REGULATOR is not set
577# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
578# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
579# CONFIG_REGULATOR_BQ24022 is not set
580
581#
574# Multimedia devices 582# Multimedia devices
575# 583#
576 584
@@ -608,16 +616,18 @@ CONFIG_DAB=y
608# CONFIG_RTC_CLASS is not set 616# CONFIG_RTC_CLASS is not set
609# CONFIG_DMADEVICES is not set 617# CONFIG_DMADEVICES is not set
610# CONFIG_UIO is not set 618# CONFIG_UIO is not set
619# CONFIG_STAGING is not set
611 620
612# 621#
613# File systems 622# File systems
614# 623#
615# CONFIG_EXT2_FS is not set 624# CONFIG_EXT2_FS is not set
616# CONFIG_EXT3_FS is not set 625# CONFIG_EXT3_FS is not set
617# CONFIG_EXT4DEV_FS is not set 626# CONFIG_EXT4_FS is not set
618# CONFIG_REISERFS_FS is not set 627# CONFIG_REISERFS_FS is not set
619# CONFIG_JFS_FS is not set 628# CONFIG_JFS_FS is not set
620# CONFIG_FS_POSIX_ACL is not set 629# CONFIG_FS_POSIX_ACL is not set
630CONFIG_FILE_LOCKING=y
621# CONFIG_XFS_FS is not set 631# CONFIG_XFS_FS is not set
622# CONFIG_OCFS2_FS is not set 632# CONFIG_OCFS2_FS is not set
623# CONFIG_DNOTIFY is not set 633# CONFIG_DNOTIFY is not set
@@ -646,6 +656,7 @@ CONFIG_DAB=y
646CONFIG_PROC_FS=y 656CONFIG_PROC_FS=y
647# CONFIG_PROC_KCORE is not set 657# CONFIG_PROC_KCORE is not set
648CONFIG_PROC_SYSCTL=y 658CONFIG_PROC_SYSCTL=y
659CONFIG_PROC_PAGE_MONITOR=y
649CONFIG_SYSFS=y 660CONFIG_SYSFS=y
650CONFIG_TMPFS=y 661CONFIG_TMPFS=y
651# CONFIG_TMPFS_POSIX_ACL is not set 662# CONFIG_TMPFS_POSIX_ACL is not set
@@ -683,6 +694,7 @@ CONFIG_LOCKD=y
683CONFIG_LOCKD_V4=y 694CONFIG_LOCKD_V4=y
684CONFIG_NFS_COMMON=y 695CONFIG_NFS_COMMON=y
685CONFIG_SUNRPC=y 696CONFIG_SUNRPC=y
697# CONFIG_SUNRPC_REGISTER_V4 is not set
686# CONFIG_RPCSEC_GSS_KRB5 is not set 698# CONFIG_RPCSEC_GSS_KRB5 is not set
687# CONFIG_RPCSEC_GSS_SPKM3 is not set 699# CONFIG_RPCSEC_GSS_SPKM3 is not set
688# CONFIG_SMB_FS is not set 700# CONFIG_SMB_FS is not set
@@ -718,7 +730,6 @@ CONFIG_MSDOS_PARTITION=y
718# 730#
719# Library routines 731# Library routines
720# 732#
721# CONFIG_GENERIC_FIND_FIRST_BIT is not set
722# CONFIG_CRC_CCITT is not set 733# CONFIG_CRC_CCITT is not set
723# CONFIG_CRC16 is not set 734# CONFIG_CRC16 is not set
724# CONFIG_CRC_T10DIF is not set 735# CONFIG_CRC_T10DIF is not set
@@ -768,14 +779,22 @@ CONFIG_DEBUG_INFO=y
768# CONFIG_DEBUG_SG is not set 779# CONFIG_DEBUG_SG is not set
769# CONFIG_BOOT_PRINTK_DELAY is not set 780# CONFIG_BOOT_PRINTK_DELAY is not set
770# CONFIG_RCU_TORTURE_TEST is not set 781# CONFIG_RCU_TORTURE_TEST is not set
782# CONFIG_RCU_CPU_STALL_DETECTOR is not set
771# CONFIG_BACKTRACE_SELF_TEST is not set 783# CONFIG_BACKTRACE_SELF_TEST is not set
784# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
772# CONFIG_FAULT_INJECTION is not set 785# CONFIG_FAULT_INJECTION is not set
773# CONFIG_LATENCYTOP is not set 786# CONFIG_LATENCYTOP is not set
774CONFIG_HAVE_FTRACE=y 787CONFIG_HAVE_FUNCTION_TRACER=y
775CONFIG_HAVE_DYNAMIC_FTRACE=y 788
776# CONFIG_FTRACE is not set 789#
790# Tracers
791#
792# CONFIG_FUNCTION_TRACER is not set
777# CONFIG_SCHED_TRACER is not set 793# CONFIG_SCHED_TRACER is not set
778# CONFIG_CONTEXT_SWITCH_TRACER is not set 794# CONFIG_CONTEXT_SWITCH_TRACER is not set
795# CONFIG_BOOT_TRACER is not set
796# CONFIG_STACK_TRACER is not set
797# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
779# CONFIG_SAMPLES is not set 798# CONFIG_SAMPLES is not set
780CONFIG_HAVE_ARCH_KGDB=y 799CONFIG_HAVE_ARCH_KGDB=y
781# CONFIG_KGDB is not set 800# CONFIG_KGDB is not set
@@ -784,6 +803,7 @@ CONFIG_HAVE_ARCH_KGDB=y
784# CONFIG_DEBUG_PAGEALLOC is not set 803# CONFIG_DEBUG_PAGEALLOC is not set
785# CONFIG_CODE_PATCHING_SELFTEST is not set 804# CONFIG_CODE_PATCHING_SELFTEST is not set
786# CONFIG_FTR_FIXUP_SELFTEST is not set 805# CONFIG_FTR_FIXUP_SELFTEST is not set
806# CONFIG_MSI_BITMAP_SELFTEST is not set
787# CONFIG_XMON is not set 807# CONFIG_XMON is not set
788# CONFIG_IRQSTACKS is not set 808# CONFIG_IRQSTACKS is not set
789# CONFIG_BDI_SWITCH is not set 809# CONFIG_BDI_SWITCH is not set
@@ -794,6 +814,7 @@ CONFIG_HAVE_ARCH_KGDB=y
794# 814#
795# CONFIG_KEYS is not set 815# CONFIG_KEYS is not set
796# CONFIG_SECURITY is not set 816# CONFIG_SECURITY is not set
817# CONFIG_SECURITYFS is not set
797# CONFIG_SECURITY_FILE_CAPABILITIES is not set 818# CONFIG_SECURITY_FILE_CAPABILITIES is not set
798# CONFIG_CRYPTO is not set 819# CONFIG_CRYPTO is not set
799CONFIG_PPC_CLOCK=y 820CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index cfa5d053ee5e..f85e71ccb989 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -1,7 +1,7 @@
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-rc3
4# Tue Aug 26 13:15:06 2008 4# Tue Nov 11 19:36:30 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -21,7 +21,7 @@ CONFIG_SMP=y
21CONFIG_NR_CPUS=4 21CONFIG_NR_CPUS=4
22CONFIG_64BIT=y 22CONFIG_64BIT=y
23CONFIG_WORD_SIZE=64 23CONFIG_WORD_SIZE=64
24CONFIG_PPC_MERGE=y 24CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
25CONFIG_MMU=y 25CONFIG_MMU=y
26CONFIG_GENERIC_CMOS_UPDATE=y 26CONFIG_GENERIC_CMOS_UPDATE=y
27CONFIG_GENERIC_TIME=y 27CONFIG_GENERIC_TIME=y
@@ -112,7 +112,9 @@ CONFIG_SIGNALFD=y
112CONFIG_TIMERFD=y 112CONFIG_TIMERFD=y
113CONFIG_EVENTFD=y 113CONFIG_EVENTFD=y
114CONFIG_SHMEM=y 114CONFIG_SHMEM=y
115CONFIG_AIO=y
115CONFIG_VM_EVENT_COUNTERS=y 116CONFIG_VM_EVENT_COUNTERS=y
117CONFIG_PCI_QUIRKS=y
116CONFIG_SLUB_DEBUG=y 118CONFIG_SLUB_DEBUG=y
117# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
118CONFIG_SLUB=y 120CONFIG_SLUB=y
@@ -129,8 +131,6 @@ CONFIG_HAVE_KRETPROBES=y
129CONFIG_HAVE_ARCH_TRACEHOOK=y 131CONFIG_HAVE_ARCH_TRACEHOOK=y
130CONFIG_HAVE_DMA_ATTRS=y 132CONFIG_HAVE_DMA_ATTRS=y
131CONFIG_USE_GENERIC_SMP_HELPERS=y 133CONFIG_USE_GENERIC_SMP_HELPERS=y
132# CONFIG_HAVE_CLK is not set
133CONFIG_PROC_PAGE_MONITOR=y
134# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 134# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
135CONFIG_SLABINFO=y 135CONFIG_SLABINFO=y
136CONFIG_RT_MUTEXES=y 136CONFIG_RT_MUTEXES=y
@@ -163,6 +163,8 @@ CONFIG_DEFAULT_AS=y
163# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
164CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
165CONFIG_CLASSIC_RCU=y 165CONFIG_CLASSIC_RCU=y
166# CONFIG_FREEZER is not set
167CONFIG_PPC_MSI_BITMAP=y
166 168
167# 169#
168# Platform support 170# Platform support
@@ -233,6 +235,8 @@ CONFIG_PREEMPT_NONE=y
233# CONFIG_PREEMPT is not set 235# CONFIG_PREEMPT is not set
234CONFIG_BINFMT_ELF=y 236CONFIG_BINFMT_ELF=y
235CONFIG_COMPAT_BINFMT_ELF=y 237CONFIG_COMPAT_BINFMT_ELF=y
238# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
239# CONFIG_HAVE_AOUT is not set
236# CONFIG_BINFMT_MISC is not set 240# CONFIG_BINFMT_MISC is not set
237CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 241CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
238CONFIG_IOMMU_VMERGE=y 242CONFIG_IOMMU_VMERGE=y
@@ -242,7 +246,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
242CONFIG_ARCH_HAS_WALK_MEMORY=y 246CONFIG_ARCH_HAS_WALK_MEMORY=y
243CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 247CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
244CONFIG_KEXEC=y 248CONFIG_KEXEC=y
245# CONFIG_CRASH_DUMP is not set
246CONFIG_IRQ_ALL_CPUS=y 249CONFIG_IRQ_ALL_CPUS=y
247# CONFIG_NUMA is not set 250# CONFIG_NUMA is not set
248CONFIG_ARCH_SELECT_MEMORY_MODEL=y 251CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -255,14 +258,15 @@ CONFIG_FLATMEM_MANUAL=y
255# CONFIG_SPARSEMEM_MANUAL is not set 258# CONFIG_SPARSEMEM_MANUAL is not set
256CONFIG_FLATMEM=y 259CONFIG_FLATMEM=y
257CONFIG_FLAT_NODE_MEM_MAP=y 260CONFIG_FLAT_NODE_MEM_MAP=y
258# CONFIG_SPARSEMEM_STATIC is not set
259CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 261CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
260CONFIG_PAGEFLAGS_EXTENDED=y 262CONFIG_PAGEFLAGS_EXTENDED=y
261CONFIG_SPLIT_PTLOCK_CPUS=4 263CONFIG_SPLIT_PTLOCK_CPUS=4
262# CONFIG_MIGRATION is not set 264# CONFIG_MIGRATION is not set
263CONFIG_RESOURCES_64BIT=y 265CONFIG_RESOURCES_64BIT=y
266CONFIG_PHYS_ADDR_T_64BIT=y
264CONFIG_ZONE_DMA_FLAG=1 267CONFIG_ZONE_DMA_FLAG=1
265CONFIG_BOUNCE=y 268CONFIG_BOUNCE=y
269CONFIG_UNEVICTABLE_LRU=y
266# CONFIG_PPC_HAS_HASH_64K is not set 270# CONFIG_PPC_HAS_HASH_64K is not set
267# CONFIG_PPC_64K_PAGES is not set 271# CONFIG_PPC_64K_PAGES is not set
268CONFIG_FORCE_MAX_ZONEORDER=13 272CONFIG_FORCE_MAX_ZONEORDER=13
@@ -292,6 +296,7 @@ CONFIG_PCI_MSI=y
292# CONFIG_PCCARD is not set 296# CONFIG_PCCARD is not set
293# CONFIG_HOTPLUG_PCI is not set 297# CONFIG_HOTPLUG_PCI is not set
294# CONFIG_HAS_RAPIDIO is not set 298# CONFIG_HAS_RAPIDIO is not set
299# CONFIG_RELOCATABLE is not set
295CONFIG_PAGE_OFFSET=0xc000000000000000 300CONFIG_PAGE_OFFSET=0xc000000000000000
296CONFIG_KERNEL_START=0xc000000000000000 301CONFIG_KERNEL_START=0xc000000000000000
297CONFIG_PHYSICAL_START=0x00000000 302CONFIG_PHYSICAL_START=0x00000000
@@ -336,7 +341,6 @@ CONFIG_INET_TCP_DIAG=y
336CONFIG_TCP_CONG_CUBIC=y 341CONFIG_TCP_CONG_CUBIC=y
337CONFIG_DEFAULT_TCP_CONG="cubic" 342CONFIG_DEFAULT_TCP_CONG="cubic"
338# CONFIG_TCP_MD5SIG is not set 343# CONFIG_TCP_MD5SIG is not set
339# CONFIG_IP_VS is not set
340# CONFIG_IPV6 is not set 344# CONFIG_IPV6 is not set
341# CONFIG_NETWORK_SECMARK is not set 345# CONFIG_NETWORK_SECMARK is not set
342CONFIG_NETFILTER=y 346CONFIG_NETFILTER=y
@@ -367,10 +371,12 @@ CONFIG_NF_CONNTRACK_IRC=m
367CONFIG_NF_CONNTRACK_TFTP=m 371CONFIG_NF_CONNTRACK_TFTP=m
368CONFIG_NF_CT_NETLINK=m 372CONFIG_NF_CT_NETLINK=m
369# CONFIG_NETFILTER_XTABLES is not set 373# CONFIG_NETFILTER_XTABLES is not set
374# CONFIG_IP_VS is not set
370 375
371# 376#
372# IP: Netfilter Configuration 377# IP: Netfilter Configuration
373# 378#
379CONFIG_NF_DEFRAG_IPV4=m
374CONFIG_NF_CONNTRACK_IPV4=m 380CONFIG_NF_CONNTRACK_IPV4=m
375CONFIG_NF_CONNTRACK_PROC_COMPAT=y 381CONFIG_NF_CONNTRACK_PROC_COMPAT=y
376CONFIG_IP_NF_QUEUE=m 382CONFIG_IP_NF_QUEUE=m
@@ -381,6 +387,7 @@ CONFIG_IP_NF_QUEUE=m
381# CONFIG_TIPC is not set 387# CONFIG_TIPC is not set
382# CONFIG_ATM is not set 388# CONFIG_ATM is not set
383# CONFIG_BRIDGE is not set 389# CONFIG_BRIDGE is not set
390# CONFIG_NET_DSA is not set
384# CONFIG_VLAN_8021Q is not set 391# CONFIG_VLAN_8021Q is not set
385# CONFIG_DECNET is not set 392# CONFIG_DECNET is not set
386CONFIG_LLC=y 393CONFIG_LLC=y
@@ -402,11 +409,10 @@ CONFIG_LLC=y
402# CONFIG_IRDA is not set 409# CONFIG_IRDA is not set
403# CONFIG_BT is not set 410# CONFIG_BT is not set
404# CONFIG_AF_RXRPC is not set 411# CONFIG_AF_RXRPC is not set
405 412# CONFIG_PHONET is not set
406# 413CONFIG_WIRELESS=y
407# Wireless
408#
409# CONFIG_CFG80211 is not set 414# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_OLD_REGULATORY=y
410# CONFIG_WIRELESS_EXT is not set 416# CONFIG_WIRELESS_EXT is not set
411# CONFIG_MAC80211 is not set 417# CONFIG_MAC80211 is not set
412# CONFIG_IEEE80211 is not set 418# CONFIG_IEEE80211 is not set
@@ -463,19 +469,18 @@ CONFIG_MISC_DEVICES=y
463# CONFIG_HP_ILO is not set 469# CONFIG_HP_ILO is not set
464CONFIG_HAVE_IDE=y 470CONFIG_HAVE_IDE=y
465CONFIG_IDE=y 471CONFIG_IDE=y
466CONFIG_BLK_DEV_IDE=y
467 472
468# 473#
469# Please see Documentation/ide/ide.txt for help/info on IDE drives 474# Please see Documentation/ide/ide.txt for help/info on IDE drives
470# 475#
471CONFIG_IDE_TIMINGS=y 476CONFIG_IDE_TIMINGS=y
472# CONFIG_BLK_DEV_IDE_SATA is not set 477# CONFIG_BLK_DEV_IDE_SATA is not set
473CONFIG_BLK_DEV_IDEDISK=y 478CONFIG_IDE_GD=y
474# CONFIG_IDEDISK_MULTI_MODE is not set 479CONFIG_IDE_GD_ATA=y
480# CONFIG_IDE_GD_ATAPI is not set
475CONFIG_BLK_DEV_IDECD=y 481CONFIG_BLK_DEV_IDECD=y
476CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 482CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
477# CONFIG_BLK_DEV_IDETAPE is not set 483# CONFIG_BLK_DEV_IDETAPE is not set
478# CONFIG_BLK_DEV_IDEFLOPPY is not set
479# CONFIG_BLK_DEV_IDESCSI is not set 484# CONFIG_BLK_DEV_IDESCSI is not set
480# CONFIG_IDE_TASK_IOCTL is not set 485# CONFIG_IDE_TASK_IOCTL is not set
481CONFIG_IDE_PROC_FS=y 486CONFIG_IDE_PROC_FS=y
@@ -658,6 +663,7 @@ CONFIG_SATA_SVW=y
658# CONFIG_PATA_SCH is not set 663# CONFIG_PATA_SCH is not set
659CONFIG_MD=y 664CONFIG_MD=y
660CONFIG_BLK_DEV_MD=y 665CONFIG_BLK_DEV_MD=y
666CONFIG_MD_AUTODETECT=y
661CONFIG_MD_LINEAR=y 667CONFIG_MD_LINEAR=y
662CONFIG_MD_RAID0=y 668CONFIG_MD_RAID0=y
663CONFIG_MD_RAID1=y 669CONFIG_MD_RAID1=y
@@ -744,14 +750,17 @@ CONFIG_SUNGEM=y
744# CONFIG_IBM_NEW_EMAC_RGMII is not set 750# CONFIG_IBM_NEW_EMAC_RGMII is not set
745# CONFIG_IBM_NEW_EMAC_TAH is not set 751# CONFIG_IBM_NEW_EMAC_TAH is not set
746# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 752# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
753# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
754# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
755# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
747# CONFIG_NET_PCI is not set 756# CONFIG_NET_PCI is not set
748# CONFIG_B44 is not set 757# CONFIG_B44 is not set
758# CONFIG_ATL2 is not set
749CONFIG_NETDEV_1000=y 759CONFIG_NETDEV_1000=y
750CONFIG_ACENIC=y 760CONFIG_ACENIC=y
751CONFIG_ACENIC_OMIT_TIGON_I=y 761CONFIG_ACENIC_OMIT_TIGON_I=y
752# CONFIG_DL2K is not set 762# CONFIG_DL2K is not set
753CONFIG_E1000=y 763CONFIG_E1000=y
754# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
755# CONFIG_E1000E is not set 764# CONFIG_E1000E is not set
756# CONFIG_IP1000 is not set 765# CONFIG_IP1000 is not set
757# CONFIG_IGB is not set 766# CONFIG_IGB is not set
@@ -768,18 +777,22 @@ CONFIG_TIGON3=y
768# CONFIG_QLA3XXX is not set 777# CONFIG_QLA3XXX is not set
769# CONFIG_ATL1 is not set 778# CONFIG_ATL1 is not set
770# CONFIG_ATL1E is not set 779# CONFIG_ATL1E is not set
780# CONFIG_JME is not set
771CONFIG_NETDEV_10000=y 781CONFIG_NETDEV_10000=y
772# CONFIG_CHELSIO_T1 is not set 782# CONFIG_CHELSIO_T1 is not set
773# CONFIG_CHELSIO_T3 is not set 783# CONFIG_CHELSIO_T3 is not set
784# CONFIG_ENIC is not set
774# CONFIG_IXGBE is not set 785# CONFIG_IXGBE is not set
775# CONFIG_IXGB is not set 786# CONFIG_IXGB is not set
776# CONFIG_S2IO is not set 787# CONFIG_S2IO is not set
777# CONFIG_MYRI10GE is not set 788# CONFIG_MYRI10GE is not set
778# CONFIG_NETXEN_NIC is not set 789# CONFIG_NETXEN_NIC is not set
779# CONFIG_NIU is not set 790# CONFIG_NIU is not set
791# CONFIG_MLX4_EN is not set
780# CONFIG_MLX4_CORE is not set 792# CONFIG_MLX4_CORE is not set
781# CONFIG_TEHUTI is not set 793# CONFIG_TEHUTI is not set
782# CONFIG_BNX2X is not set 794# CONFIG_BNX2X is not set
795# CONFIG_QLGE is not set
783# CONFIG_SFC is not set 796# CONFIG_SFC is not set
784CONFIG_TR=y 797CONFIG_TR=y
785CONFIG_IBMOL=y 798CONFIG_IBMOL=y
@@ -804,6 +817,7 @@ CONFIG_USB_USBNET=m
804# CONFIG_USB_NET_AX8817X is not set 817# CONFIG_USB_NET_AX8817X is not set
805CONFIG_USB_NET_CDCETHER=m 818CONFIG_USB_NET_CDCETHER=m
806# CONFIG_USB_NET_DM9601 is not set 819# CONFIG_USB_NET_DM9601 is not set
820# CONFIG_USB_NET_SMSC95XX is not set
807# CONFIG_USB_NET_GL620A is not set 821# CONFIG_USB_NET_GL620A is not set
808# CONFIG_USB_NET_NET1080 is not set 822# CONFIG_USB_NET_NET1080 is not set
809# CONFIG_USB_NET_PLUSB is not set 823# CONFIG_USB_NET_PLUSB is not set
@@ -1015,6 +1029,17 @@ CONFIG_SSB_POSSIBLE=y
1015# CONFIG_MFD_SM501 is not set 1029# CONFIG_MFD_SM501 is not set
1016# CONFIG_HTC_PASIC3 is not set 1030# CONFIG_HTC_PASIC3 is not set
1017# CONFIG_MFD_TMIO is not set 1031# CONFIG_MFD_TMIO is not set
1032# CONFIG_PMIC_DA903X is not set
1033# CONFIG_MFD_WM8400 is not set
1034# CONFIG_MFD_WM8350_I2C is not set
1035
1036#
1037# Voltage and Current regulators
1038#
1039# CONFIG_REGULATOR is not set
1040# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1041# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1042# CONFIG_REGULATOR_BQ24022 is not set
1018 1043
1019# 1044#
1020# Multimedia devices 1045# Multimedia devices
@@ -1044,6 +1069,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1044CONFIG_FB=y 1069CONFIG_FB=y
1045CONFIG_FIRMWARE_EDID=y 1070CONFIG_FIRMWARE_EDID=y
1046CONFIG_FB_DDC=y 1071CONFIG_FB_DDC=y
1072# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1047CONFIG_FB_CFB_FILLRECT=y 1073CONFIG_FB_CFB_FILLRECT=y
1048CONFIG_FB_CFB_COPYAREA=y 1074CONFIG_FB_CFB_COPYAREA=y
1049CONFIG_FB_CFB_IMAGEBLIT=y 1075CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1085,6 +1111,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1085# CONFIG_FB_S3 is not set 1111# CONFIG_FB_S3 is not set
1086# CONFIG_FB_SAVAGE is not set 1112# CONFIG_FB_SAVAGE is not set
1087# CONFIG_FB_SIS is not set 1113# CONFIG_FB_SIS is not set
1114# CONFIG_FB_VIA is not set
1088# CONFIG_FB_NEOMAGIC is not set 1115# CONFIG_FB_NEOMAGIC is not set
1089# CONFIG_FB_KYRO is not set 1116# CONFIG_FB_KYRO is not set
1090# CONFIG_FB_3DFX is not set 1117# CONFIG_FB_3DFX is not set
@@ -1096,6 +1123,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1096# CONFIG_FB_CARMINE is not set 1123# CONFIG_FB_CARMINE is not set
1097# CONFIG_FB_IBM_GXT4500 is not set 1124# CONFIG_FB_IBM_GXT4500 is not set
1098# CONFIG_FB_VIRTUAL is not set 1125# CONFIG_FB_VIRTUAL is not set
1126# CONFIG_FB_METRONOME is not set
1099CONFIG_BACKLIGHT_LCD_SUPPORT=y 1127CONFIG_BACKLIGHT_LCD_SUPPORT=y
1100CONFIG_LCD_CLASS_DEVICE=m 1128CONFIG_LCD_CLASS_DEVICE=m
1101# CONFIG_LCD_ILI9320 is not set 1129# CONFIG_LCD_ILI9320 is not set
@@ -1124,6 +1152,7 @@ CONFIG_LOGO_LINUX_MONO=y
1124CONFIG_LOGO_LINUX_VGA16=y 1152CONFIG_LOGO_LINUX_VGA16=y
1125CONFIG_LOGO_LINUX_CLUT224=y 1153CONFIG_LOGO_LINUX_CLUT224=y
1126CONFIG_SOUND=m 1154CONFIG_SOUND=m
1155CONFIG_SOUND_OSS_CORE=y
1127CONFIG_SND=m 1156CONFIG_SND=m
1128CONFIG_SND_TIMER=m 1157CONFIG_SND_TIMER=m
1129CONFIG_SND_PCM=m 1158CONFIG_SND_PCM=m
@@ -1234,15 +1263,36 @@ CONFIG_HID=y
1234# USB Input Devices 1263# USB Input Devices
1235# 1264#
1236CONFIG_USB_HID=y 1265CONFIG_USB_HID=y
1237# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1238CONFIG_HID_FF=y
1239CONFIG_HID_PID=y 1266CONFIG_HID_PID=y
1267CONFIG_USB_HIDDEV=y
1268
1269#
1270# Special HID drivers
1271#
1272CONFIG_HID_COMPAT=y
1273CONFIG_HID_A4TECH=y
1274CONFIG_HID_APPLE=y
1275CONFIG_HID_BELKIN=y
1276CONFIG_HID_BRIGHT=y
1277CONFIG_HID_CHERRY=y
1278CONFIG_HID_CHICONY=y
1279CONFIG_HID_CYPRESS=y
1280CONFIG_HID_DELL=y
1281CONFIG_HID_EZKEY=y
1282CONFIG_HID_GYRATION=y
1283CONFIG_HID_LOGITECH=y
1240CONFIG_LOGITECH_FF=y 1284CONFIG_LOGITECH_FF=y
1241# CONFIG_LOGIRUMBLEPAD2_FF is not set 1285# CONFIG_LOGIRUMBLEPAD2_FF is not set
1286CONFIG_HID_MICROSOFT=y
1287CONFIG_HID_MONTEREY=y
1288CONFIG_HID_PANTHERLORD=y
1242# CONFIG_PANTHERLORD_FF is not set 1289# CONFIG_PANTHERLORD_FF is not set
1290CONFIG_HID_PETALYNX=y
1291CONFIG_HID_SAMSUNG=y
1292CONFIG_HID_SONY=y
1293CONFIG_HID_SUNPLUS=y
1243CONFIG_THRUSTMASTER_FF=y 1294CONFIG_THRUSTMASTER_FF=y
1244# CONFIG_ZEROPLUS_FF is not set 1295# CONFIG_ZEROPLUS_FF is not set
1245CONFIG_USB_HIDDEV=y
1246CONFIG_USB_SUPPORT=y 1296CONFIG_USB_SUPPORT=y
1247CONFIG_USB_ARCH_HAS_HCD=y 1297CONFIG_USB_ARCH_HAS_HCD=y
1248CONFIG_USB_ARCH_HAS_OHCI=y 1298CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1259,6 +1309,8 @@ CONFIG_USB_DEVICE_CLASS=y
1259# CONFIG_USB_DYNAMIC_MINORS is not set 1309# CONFIG_USB_DYNAMIC_MINORS is not set
1260# CONFIG_USB_OTG is not set 1310# CONFIG_USB_OTG is not set
1261CONFIG_USB_MON=y 1311CONFIG_USB_MON=y
1312# CONFIG_USB_WUSB is not set
1313# CONFIG_USB_WUSB_CBAF is not set
1262 1314
1263# 1315#
1264# USB Host Controller Drivers 1316# USB Host Controller Drivers
@@ -1281,6 +1333,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1281# CONFIG_USB_UHCI_HCD is not set 1333# CONFIG_USB_UHCI_HCD is not set
1282# CONFIG_USB_SL811_HCD is not set 1334# CONFIG_USB_SL811_HCD is not set
1283# CONFIG_USB_R8A66597_HCD is not set 1335# CONFIG_USB_R8A66597_HCD is not set
1336# CONFIG_USB_WHCI_HCD is not set
1337# CONFIG_USB_HWA_HCD is not set
1284 1338
1285# 1339#
1286# USB Device Class drivers 1340# USB Device Class drivers
@@ -1288,6 +1342,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1288CONFIG_USB_ACM=m 1342CONFIG_USB_ACM=m
1289CONFIG_USB_PRINTER=y 1343CONFIG_USB_PRINTER=y
1290# CONFIG_USB_WDM is not set 1344# CONFIG_USB_WDM is not set
1345# CONFIG_USB_TMC is not set
1291 1346
1292# 1347#
1293# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1348# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1309,7 +1364,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1309# CONFIG_USB_STORAGE_ALAUDA is not set 1364# CONFIG_USB_STORAGE_ALAUDA is not set
1310# CONFIG_USB_STORAGE_ONETOUCH is not set 1365# CONFIG_USB_STORAGE_ONETOUCH is not set
1311# CONFIG_USB_STORAGE_KARMA is not set 1366# CONFIG_USB_STORAGE_KARMA is not set
1312# CONFIG_USB_STORAGE_SIERRA is not set
1313# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1367# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1314# CONFIG_USB_LIBUSUAL is not set 1368# CONFIG_USB_LIBUSUAL is not set
1315 1369
@@ -1385,6 +1439,7 @@ CONFIG_USB_SERIAL_OMNINET=m
1385# CONFIG_USB_EMI62 is not set 1439# CONFIG_USB_EMI62 is not set
1386# CONFIG_USB_EMI26 is not set 1440# CONFIG_USB_EMI26 is not set
1387# CONFIG_USB_ADUTUX is not set 1441# CONFIG_USB_ADUTUX is not set
1442# CONFIG_USB_SEVSEG is not set
1388# CONFIG_USB_RIO500 is not set 1443# CONFIG_USB_RIO500 is not set
1389# CONFIG_USB_LEGOTOWER is not set 1444# CONFIG_USB_LEGOTOWER is not set
1390# CONFIG_USB_LCD is not set 1445# CONFIG_USB_LCD is not set
@@ -1402,7 +1457,9 @@ CONFIG_USB_APPLEDISPLAY=m
1402# CONFIG_USB_IOWARRIOR is not set 1457# CONFIG_USB_IOWARRIOR is not set
1403# CONFIG_USB_TEST is not set 1458# CONFIG_USB_TEST is not set
1404# CONFIG_USB_ISIGHTFW is not set 1459# CONFIG_USB_ISIGHTFW is not set
1460# CONFIG_USB_VST is not set
1405# CONFIG_USB_GADGET is not set 1461# CONFIG_USB_GADGET is not set
1462# CONFIG_UWB is not set
1406# CONFIG_MMC is not set 1463# CONFIG_MMC is not set
1407# CONFIG_MEMSTICK is not set 1464# CONFIG_MEMSTICK is not set
1408# CONFIG_NEW_LEDS is not set 1465# CONFIG_NEW_LEDS is not set
@@ -1412,6 +1469,7 @@ CONFIG_USB_APPLEDISPLAY=m
1412# CONFIG_RTC_CLASS is not set 1469# CONFIG_RTC_CLASS is not set
1413# CONFIG_DMADEVICES is not set 1470# CONFIG_DMADEVICES is not set
1414# CONFIG_UIO is not set 1471# CONFIG_UIO is not set
1472# CONFIG_STAGING is not set
1415 1473
1416# 1474#
1417# File systems 1475# File systems
@@ -1421,14 +1479,20 @@ CONFIG_EXT2_FS_XATTR=y
1421CONFIG_EXT2_FS_POSIX_ACL=y 1479CONFIG_EXT2_FS_POSIX_ACL=y
1422CONFIG_EXT2_FS_SECURITY=y 1480CONFIG_EXT2_FS_SECURITY=y
1423CONFIG_EXT2_FS_XIP=y 1481CONFIG_EXT2_FS_XIP=y
1424CONFIG_FS_XIP=y
1425CONFIG_EXT3_FS=y 1482CONFIG_EXT3_FS=y
1426CONFIG_EXT3_FS_XATTR=y 1483CONFIG_EXT3_FS_XATTR=y
1427CONFIG_EXT3_FS_POSIX_ACL=y 1484CONFIG_EXT3_FS_POSIX_ACL=y
1428CONFIG_EXT3_FS_SECURITY=y 1485CONFIG_EXT3_FS_SECURITY=y
1429# CONFIG_EXT4DEV_FS is not set 1486CONFIG_EXT4_FS=y
1487# CONFIG_EXT4DEV_COMPAT is not set
1488CONFIG_EXT4_FS_XATTR=y
1489# CONFIG_EXT4_FS_POSIX_ACL is not set
1490# CONFIG_EXT4_FS_SECURITY is not set
1491CONFIG_FS_XIP=y
1430CONFIG_JBD=y 1492CONFIG_JBD=y
1431# CONFIG_JBD_DEBUG is not set 1493# CONFIG_JBD_DEBUG is not set
1494CONFIG_JBD2=y
1495# CONFIG_JBD2_DEBUG is not set
1432CONFIG_FS_MBCACHE=y 1496CONFIG_FS_MBCACHE=y
1433CONFIG_REISERFS_FS=y 1497CONFIG_REISERFS_FS=y
1434# CONFIG_REISERFS_CHECK is not set 1498# CONFIG_REISERFS_CHECK is not set
@@ -1438,6 +1502,7 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
1438CONFIG_REISERFS_FS_SECURITY=y 1502CONFIG_REISERFS_FS_SECURITY=y
1439# CONFIG_JFS_FS is not set 1503# CONFIG_JFS_FS is not set
1440CONFIG_FS_POSIX_ACL=y 1504CONFIG_FS_POSIX_ACL=y
1505CONFIG_FILE_LOCKING=y
1441CONFIG_XFS_FS=m 1506CONFIG_XFS_FS=m
1442# CONFIG_XFS_QUOTA is not set 1507# CONFIG_XFS_QUOTA is not set
1443CONFIG_XFS_POSIX_ACL=y 1508CONFIG_XFS_POSIX_ACL=y
@@ -1478,6 +1543,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1478CONFIG_PROC_FS=y 1543CONFIG_PROC_FS=y
1479CONFIG_PROC_KCORE=y 1544CONFIG_PROC_KCORE=y
1480CONFIG_PROC_SYSCTL=y 1545CONFIG_PROC_SYSCTL=y
1546CONFIG_PROC_PAGE_MONITOR=y
1481CONFIG_SYSFS=y 1547CONFIG_SYSFS=y
1482CONFIG_TMPFS=y 1548CONFIG_TMPFS=y
1483# CONFIG_TMPFS_POSIX_ACL is not set 1549# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1521,6 +1587,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1521CONFIG_NFS_COMMON=y 1587CONFIG_NFS_COMMON=y
1522CONFIG_SUNRPC=y 1588CONFIG_SUNRPC=y
1523CONFIG_SUNRPC_GSS=y 1589CONFIG_SUNRPC_GSS=y
1590# CONFIG_SUNRPC_REGISTER_V4 is not set
1524CONFIG_RPCSEC_GSS_KRB5=y 1591CONFIG_RPCSEC_GSS_KRB5=y
1525# CONFIG_RPCSEC_GSS_SPKM3 is not set 1592# CONFIG_RPCSEC_GSS_SPKM3 is not set
1526# CONFIG_SMB_FS is not set 1593# CONFIG_SMB_FS is not set
@@ -1601,9 +1668,8 @@ CONFIG_NLS_UTF8=y
1601# Library routines 1668# Library routines
1602# 1669#
1603CONFIG_BITREVERSE=y 1670CONFIG_BITREVERSE=y
1604# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1605CONFIG_CRC_CCITT=m 1671CONFIG_CRC_CCITT=m
1606# CONFIG_CRC16 is not set 1672CONFIG_CRC16=y
1607CONFIG_CRC_T10DIF=y 1673CONFIG_CRC_T10DIF=y
1608CONFIG_CRC_ITU_T=m 1674CONFIG_CRC_ITU_T=m
1609CONFIG_CRC32=y 1675CONFIG_CRC32=y
@@ -1657,19 +1723,26 @@ CONFIG_DEBUG_BUGVERBOSE=y
1657CONFIG_DEBUG_MEMORY_INIT=y 1723CONFIG_DEBUG_MEMORY_INIT=y
1658# CONFIG_DEBUG_LIST is not set 1724# CONFIG_DEBUG_LIST is not set
1659# CONFIG_DEBUG_SG is not set 1725# CONFIG_DEBUG_SG is not set
1660CONFIG_FRAME_POINTER=y
1661# CONFIG_BOOT_PRINTK_DELAY is not set 1726# CONFIG_BOOT_PRINTK_DELAY is not set
1662# CONFIG_RCU_TORTURE_TEST is not set 1727# CONFIG_RCU_TORTURE_TEST is not set
1728# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1663# CONFIG_BACKTRACE_SELF_TEST is not set 1729# CONFIG_BACKTRACE_SELF_TEST is not set
1730# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1664# CONFIG_FAULT_INJECTION is not set 1731# CONFIG_FAULT_INJECTION is not set
1665CONFIG_LATENCYTOP=y 1732CONFIG_LATENCYTOP=y
1666CONFIG_SYSCTL_SYSCALL_CHECK=y 1733CONFIG_SYSCTL_SYSCALL_CHECK=y
1667CONFIG_HAVE_FTRACE=y 1734CONFIG_HAVE_FUNCTION_TRACER=y
1668CONFIG_HAVE_DYNAMIC_FTRACE=y 1735
1669# CONFIG_FTRACE is not set 1736#
1737# Tracers
1738#
1739# CONFIG_FUNCTION_TRACER is not set
1670# CONFIG_IRQSOFF_TRACER is not set 1740# CONFIG_IRQSOFF_TRACER is not set
1671# CONFIG_SCHED_TRACER is not set 1741# CONFIG_SCHED_TRACER is not set
1672# CONFIG_CONTEXT_SWITCH_TRACER is not set 1742# CONFIG_CONTEXT_SWITCH_TRACER is not set
1743# CONFIG_BOOT_TRACER is not set
1744# CONFIG_STACK_TRACER is not set
1745CONFIG_DYNAMIC_PRINTK_DEBUG=y
1673# CONFIG_SAMPLES is not set 1746# CONFIG_SAMPLES is not set
1674CONFIG_HAVE_ARCH_KGDB=y 1747CONFIG_HAVE_ARCH_KGDB=y
1675# CONFIG_KGDB is not set 1748# CONFIG_KGDB is not set
@@ -1678,6 +1751,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1678# CONFIG_DEBUG_PAGEALLOC is not set 1751# CONFIG_DEBUG_PAGEALLOC is not set
1679# CONFIG_CODE_PATCHING_SELFTEST is not set 1752# CONFIG_CODE_PATCHING_SELFTEST is not set
1680# CONFIG_FTR_FIXUP_SELFTEST is not set 1753# CONFIG_FTR_FIXUP_SELFTEST is not set
1754# CONFIG_MSI_BITMAP_SELFTEST is not set
1681# CONFIG_XMON is not set 1755# CONFIG_XMON is not set
1682CONFIG_IRQSTACKS=y 1756CONFIG_IRQSTACKS=y
1683# CONFIG_VIRQ_DEBUG is not set 1757# CONFIG_VIRQ_DEBUG is not set
@@ -1689,16 +1763,19 @@ CONFIG_BOOTX_TEXT=y
1689# 1763#
1690# CONFIG_KEYS is not set 1764# CONFIG_KEYS is not set
1691# CONFIG_SECURITY is not set 1765# CONFIG_SECURITY is not set
1766# CONFIG_SECURITYFS is not set
1692# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1767# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1693CONFIG_CRYPTO=y 1768CONFIG_CRYPTO=y
1694 1769
1695# 1770#
1696# Crypto core or helper 1771# Crypto core or helper
1697# 1772#
1773# CONFIG_CRYPTO_FIPS is not set
1698CONFIG_CRYPTO_ALGAPI=y 1774CONFIG_CRYPTO_ALGAPI=y
1699CONFIG_CRYPTO_AEAD=m 1775CONFIG_CRYPTO_AEAD=y
1700CONFIG_CRYPTO_BLKCIPHER=y 1776CONFIG_CRYPTO_BLKCIPHER=y
1701CONFIG_CRYPTO_HASH=y 1777CONFIG_CRYPTO_HASH=y
1778CONFIG_CRYPTO_RNG=y
1702CONFIG_CRYPTO_MANAGER=y 1779CONFIG_CRYPTO_MANAGER=y
1703# CONFIG_CRYPTO_GF128MUL is not set 1780# CONFIG_CRYPTO_GF128MUL is not set
1704CONFIG_CRYPTO_NULL=m 1781CONFIG_CRYPTO_NULL=m
@@ -1772,6 +1849,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1772# 1849#
1773CONFIG_CRYPTO_DEFLATE=m 1850CONFIG_CRYPTO_DEFLATE=m
1774# CONFIG_CRYPTO_LZO is not set 1851# CONFIG_CRYPTO_LZO is not set
1852
1853#
1854# Random Number Generation
1855#
1856# CONFIG_CRYPTO_ANSI_CPRNG is not set
1775# CONFIG_CRYPTO_HW is not set 1857# CONFIG_CRYPTO_HW is not set
1776# CONFIG_PPC_CLOCK is not set 1858# CONFIG_PPC_CLOCK is not set
1777# CONFIG_VIRTUALIZATION is not set 1859# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index 2c3f13577f4b..f925c555508e 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Tue Aug 26 13:15:49 2008 4# Tue Nov 11 19:36:38 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -21,7 +21,7 @@ CONFIG_SMP=y
21CONFIG_NR_CPUS=32 21CONFIG_NR_CPUS=32
22CONFIG_64BIT=y 22CONFIG_64BIT=y
23CONFIG_WORD_SIZE=64 23CONFIG_WORD_SIZE=64
24CONFIG_PPC_MERGE=y 24CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
25CONFIG_MMU=y 25CONFIG_MMU=y
26CONFIG_GENERIC_CMOS_UPDATE=y 26CONFIG_GENERIC_CMOS_UPDATE=y
27CONFIG_GENERIC_TIME=y 27CONFIG_GENERIC_TIME=y
@@ -111,7 +111,9 @@ CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 111CONFIG_TIMERFD=y
112CONFIG_EVENTFD=y 112CONFIG_EVENTFD=y
113CONFIG_SHMEM=y 113CONFIG_SHMEM=y
114CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 115CONFIG_VM_EVENT_COUNTERS=y
116CONFIG_PCI_QUIRKS=y
115CONFIG_SLUB_DEBUG=y 117CONFIG_SLUB_DEBUG=y
116# CONFIG_SLAB is not set 118# CONFIG_SLAB is not set
117CONFIG_SLUB=y 119CONFIG_SLUB=y
@@ -127,8 +129,6 @@ CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_DMA_ATTRS=y 130CONFIG_HAVE_DMA_ATTRS=y
129CONFIG_USE_GENERIC_SMP_HELPERS=y 131CONFIG_USE_GENERIC_SMP_HELPERS=y
130# CONFIG_HAVE_CLK is not set
131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
133CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
134CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
@@ -161,6 +161,7 @@ CONFIG_DEFAULT_AS=y
161# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
162CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
163CONFIG_CLASSIC_RCU=y 163CONFIG_CLASSIC_RCU=y
164# CONFIG_FREEZER is not set
164 165
165# 166#
166# Platform support 167# Platform support
@@ -219,6 +220,8 @@ CONFIG_PREEMPT_NONE=y
219# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
220CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
221CONFIG_COMPAT_BINFMT_ELF=y 222CONFIG_COMPAT_BINFMT_ELF=y
223# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
224# CONFIG_HAVE_AOUT is not set
222# CONFIG_BINFMT_MISC is not set 225# CONFIG_BINFMT_MISC is not set
223CONFIG_IOMMU_VMERGE=y 226CONFIG_IOMMU_VMERGE=y
224CONFIG_IOMMU_HELPER=y 227CONFIG_IOMMU_HELPER=y
@@ -226,7 +229,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
226CONFIG_ARCH_HAS_WALK_MEMORY=y 229CONFIG_ARCH_HAS_WALK_MEMORY=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set 231# CONFIG_KEXEC is not set
229# CONFIG_CRASH_DUMP is not set
230CONFIG_IRQ_ALL_CPUS=y 232CONFIG_IRQ_ALL_CPUS=y
231# CONFIG_NUMA is not set 233# CONFIG_NUMA is not set
232CONFIG_ARCH_SELECT_MEMORY_MODEL=y 234CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -239,14 +241,15 @@ CONFIG_FLATMEM_MANUAL=y
239# CONFIG_SPARSEMEM_MANUAL is not set 241# CONFIG_SPARSEMEM_MANUAL is not set
240CONFIG_FLATMEM=y 242CONFIG_FLATMEM=y
241CONFIG_FLAT_NODE_MEM_MAP=y 243CONFIG_FLAT_NODE_MEM_MAP=y
242# CONFIG_SPARSEMEM_STATIC is not set
243CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 244CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
244CONFIG_PAGEFLAGS_EXTENDED=y 245CONFIG_PAGEFLAGS_EXTENDED=y
245CONFIG_SPLIT_PTLOCK_CPUS=4 246CONFIG_SPLIT_PTLOCK_CPUS=4
246# CONFIG_MIGRATION is not set 247# CONFIG_MIGRATION is not set
247CONFIG_RESOURCES_64BIT=y 248CONFIG_RESOURCES_64BIT=y
249CONFIG_PHYS_ADDR_T_64BIT=y
248CONFIG_ZONE_DMA_FLAG=1 250CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 251CONFIG_BOUNCE=y
252CONFIG_UNEVICTABLE_LRU=y
250# CONFIG_PPC_HAS_HASH_64K is not set 253# CONFIG_PPC_HAS_HASH_64K is not set
251# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
252CONFIG_FORCE_MAX_ZONEORDER=13 255CONFIG_FORCE_MAX_ZONEORDER=13
@@ -275,6 +278,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
275# CONFIG_PCCARD is not set 278# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 279# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 280# CONFIG_HAS_RAPIDIO is not set
281# CONFIG_RELOCATABLE is not set
278CONFIG_PAGE_OFFSET=0xc000000000000000 282CONFIG_PAGE_OFFSET=0xc000000000000000
279CONFIG_KERNEL_START=0xc000000000000000 283CONFIG_KERNEL_START=0xc000000000000000
280CONFIG_PHYSICAL_START=0x00000000 284CONFIG_PHYSICAL_START=0x00000000
@@ -319,7 +323,6 @@ CONFIG_INET_TCP_DIAG=y
319CONFIG_TCP_CONG_CUBIC=y 323CONFIG_TCP_CONG_CUBIC=y
320CONFIG_DEFAULT_TCP_CONG="cubic" 324CONFIG_DEFAULT_TCP_CONG="cubic"
321# CONFIG_TCP_MD5SIG is not set 325# CONFIG_TCP_MD5SIG is not set
322# CONFIG_IP_VS is not set
323# CONFIG_IPV6 is not set 326# CONFIG_IPV6 is not set
324# CONFIG_NETWORK_SECMARK is not set 327# CONFIG_NETWORK_SECMARK is not set
325CONFIG_NETFILTER=y 328CONFIG_NETFILTER=y
@@ -349,15 +352,17 @@ CONFIG_NF_CONNTRACK_IRC=m
349# CONFIG_NF_CONNTRACK_SIP is not set 352# CONFIG_NF_CONNTRACK_SIP is not set
350CONFIG_NF_CONNTRACK_TFTP=m 353CONFIG_NF_CONNTRACK_TFTP=m
351CONFIG_NF_CT_NETLINK=m 354CONFIG_NF_CT_NETLINK=m
355CONFIG_NETFILTER_TPROXY=m
352CONFIG_NETFILTER_XTABLES=m 356CONFIG_NETFILTER_XTABLES=m
353CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 357CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
354CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 358CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
355CONFIG_NETFILTER_XT_TARGET_DSCP=m 359CONFIG_NETFILTER_XT_TARGET_DSCP=m
356CONFIG_NETFILTER_XT_TARGET_MARK=m 360CONFIG_NETFILTER_XT_TARGET_MARK=m
357CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
358# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 361# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
362CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
359# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set 363# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
360CONFIG_NETFILTER_XT_TARGET_RATEEST=m 364CONFIG_NETFILTER_XT_TARGET_RATEEST=m
365CONFIG_NETFILTER_XT_TARGET_TPROXY=m
361# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 366# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
362# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 367# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
363CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 368CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@@ -369,40 +374,44 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
369# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 374# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
370CONFIG_NETFILTER_XT_MATCH_DSCP=m 375CONFIG_NETFILTER_XT_MATCH_DSCP=m
371# CONFIG_NETFILTER_XT_MATCH_ESP is not set 376# CONFIG_NETFILTER_XT_MATCH_ESP is not set
377# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
372# CONFIG_NETFILTER_XT_MATCH_HELPER is not set 378# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
373CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 379CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
374CONFIG_NETFILTER_XT_MATCH_LENGTH=m 380CONFIG_NETFILTER_XT_MATCH_LENGTH=m
375CONFIG_NETFILTER_XT_MATCH_LIMIT=m 381CONFIG_NETFILTER_XT_MATCH_LIMIT=m
376CONFIG_NETFILTER_XT_MATCH_MAC=m 382CONFIG_NETFILTER_XT_MATCH_MAC=m
377CONFIG_NETFILTER_XT_MATCH_MARK=m 383CONFIG_NETFILTER_XT_MATCH_MARK=m
384# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
378CONFIG_NETFILTER_XT_MATCH_OWNER=m 385CONFIG_NETFILTER_XT_MATCH_OWNER=m
379# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 386# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
380# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
381CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 387CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
382# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 388# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
383CONFIG_NETFILTER_XT_MATCH_RATEEST=m 389CONFIG_NETFILTER_XT_MATCH_RATEEST=m
384CONFIG_NETFILTER_XT_MATCH_REALM=m 390CONFIG_NETFILTER_XT_MATCH_REALM=m
391CONFIG_NETFILTER_XT_MATCH_RECENT=m
392# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
385CONFIG_NETFILTER_XT_MATCH_SCTP=m 393CONFIG_NETFILTER_XT_MATCH_SCTP=m
394# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
386# CONFIG_NETFILTER_XT_MATCH_STATE is not set 395# CONFIG_NETFILTER_XT_MATCH_STATE is not set
387# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 396# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
388CONFIG_NETFILTER_XT_MATCH_STRING=m 397CONFIG_NETFILTER_XT_MATCH_STRING=m
389CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 398CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
390CONFIG_NETFILTER_XT_MATCH_TIME=m 399CONFIG_NETFILTER_XT_MATCH_TIME=m
391# CONFIG_NETFILTER_XT_MATCH_U32 is not set 400# CONFIG_NETFILTER_XT_MATCH_U32 is not set
392# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 401# CONFIG_IP_VS is not set
393 402
394# 403#
395# IP: Netfilter Configuration 404# IP: Netfilter Configuration
396# 405#
406CONFIG_NF_DEFRAG_IPV4=m
397CONFIG_NF_CONNTRACK_IPV4=m 407CONFIG_NF_CONNTRACK_IPV4=m
398CONFIG_NF_CONNTRACK_PROC_COMPAT=y 408CONFIG_NF_CONNTRACK_PROC_COMPAT=y
399CONFIG_IP_NF_QUEUE=m 409CONFIG_IP_NF_QUEUE=m
400CONFIG_IP_NF_IPTABLES=m 410CONFIG_IP_NF_IPTABLES=m
401CONFIG_IP_NF_MATCH_RECENT=m 411CONFIG_IP_NF_MATCH_ADDRTYPE=m
402CONFIG_IP_NF_MATCH_ECN=m
403# CONFIG_IP_NF_MATCH_AH is not set 412# CONFIG_IP_NF_MATCH_AH is not set
413CONFIG_IP_NF_MATCH_ECN=m
404CONFIG_IP_NF_MATCH_TTL=m 414CONFIG_IP_NF_MATCH_TTL=m
405CONFIG_IP_NF_MATCH_ADDRTYPE=m
406CONFIG_IP_NF_FILTER=m 415CONFIG_IP_NF_FILTER=m
407CONFIG_IP_NF_TARGET_REJECT=m 416CONFIG_IP_NF_TARGET_REJECT=m
408CONFIG_IP_NF_TARGET_LOG=m 417CONFIG_IP_NF_TARGET_LOG=m
@@ -410,8 +419,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
410CONFIG_NF_NAT=m 419CONFIG_NF_NAT=m
411CONFIG_NF_NAT_NEEDED=y 420CONFIG_NF_NAT_NEEDED=y
412CONFIG_IP_NF_TARGET_MASQUERADE=m 421CONFIG_IP_NF_TARGET_MASQUERADE=m
413CONFIG_IP_NF_TARGET_REDIRECT=m
414CONFIG_IP_NF_TARGET_NETMAP=m 422CONFIG_IP_NF_TARGET_NETMAP=m
423CONFIG_IP_NF_TARGET_REDIRECT=m
415# CONFIG_NF_NAT_SNMP_BASIC is not set 424# CONFIG_NF_NAT_SNMP_BASIC is not set
416CONFIG_NF_NAT_FTP=m 425CONFIG_NF_NAT_FTP=m
417CONFIG_NF_NAT_IRC=m 426CONFIG_NF_NAT_IRC=m
@@ -421,9 +430,9 @@ CONFIG_NF_NAT_TFTP=m
421# CONFIG_NF_NAT_H323 is not set 430# CONFIG_NF_NAT_H323 is not set
422# CONFIG_NF_NAT_SIP is not set 431# CONFIG_NF_NAT_SIP is not set
423CONFIG_IP_NF_MANGLE=m 432CONFIG_IP_NF_MANGLE=m
433CONFIG_IP_NF_TARGET_CLUSTERIP=m
424CONFIG_IP_NF_TARGET_ECN=m 434CONFIG_IP_NF_TARGET_ECN=m
425CONFIG_IP_NF_TARGET_TTL=m 435CONFIG_IP_NF_TARGET_TTL=m
426CONFIG_IP_NF_TARGET_CLUSTERIP=m
427CONFIG_IP_NF_RAW=m 436CONFIG_IP_NF_RAW=m
428CONFIG_IP_NF_ARPTABLES=m 437CONFIG_IP_NF_ARPTABLES=m
429CONFIG_IP_NF_ARPFILTER=m 438CONFIG_IP_NF_ARPFILTER=m
@@ -438,6 +447,7 @@ CONFIG_SCTP_HMAC_MD5=y
438# CONFIG_TIPC is not set 447# CONFIG_TIPC is not set
439# CONFIG_ATM is not set 448# CONFIG_ATM is not set
440# CONFIG_BRIDGE is not set 449# CONFIG_BRIDGE is not set
450# CONFIG_NET_DSA is not set
441# CONFIG_VLAN_8021Q is not set 451# CONFIG_VLAN_8021Q is not set
442# CONFIG_DECNET is not set 452# CONFIG_DECNET is not set
443CONFIG_LLC=y 453CONFIG_LLC=y
@@ -460,14 +470,8 @@ CONFIG_NET_CLS_ROUTE=y
460# CONFIG_IRDA is not set 470# CONFIG_IRDA is not set
461# CONFIG_BT is not set 471# CONFIG_BT is not set
462# CONFIG_AF_RXRPC is not set 472# CONFIG_AF_RXRPC is not set
463 473# CONFIG_PHONET is not set
464# 474# CONFIG_WIRELESS is not set
465# Wireless
466#
467# CONFIG_CFG80211 is not set
468# CONFIG_WIRELESS_EXT is not set
469# CONFIG_MAC80211 is not set
470# CONFIG_IEEE80211 is not set
471# CONFIG_RFKILL is not set 475# CONFIG_RFKILL is not set
472# CONFIG_NET_9P is not set 476# CONFIG_NET_9P is not set
473 477
@@ -597,6 +601,7 @@ CONFIG_SCSI_IBMVSCSI=m
597# CONFIG_ATA is not set 601# CONFIG_ATA is not set
598CONFIG_MD=y 602CONFIG_MD=y
599CONFIG_BLK_DEV_MD=y 603CONFIG_BLK_DEV_MD=y
604CONFIG_MD_AUTODETECT=y
600CONFIG_MD_LINEAR=y 605CONFIG_MD_LINEAR=y
601CONFIG_MD_RAID0=y 606CONFIG_MD_RAID0=y
602CONFIG_MD_RAID1=y 607CONFIG_MD_RAID1=y
@@ -647,6 +652,9 @@ CONFIG_MII=y
647# CONFIG_IBM_NEW_EMAC_RGMII is not set 652# CONFIG_IBM_NEW_EMAC_RGMII is not set
648# CONFIG_IBM_NEW_EMAC_TAH is not set 653# CONFIG_IBM_NEW_EMAC_TAH is not set
649# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 654# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
655# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
656# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
657# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
650CONFIG_NET_PCI=y 658CONFIG_NET_PCI=y
651CONFIG_PCNET32=y 659CONFIG_PCNET32=y
652# CONFIG_AMD8111_ETH is not set 660# CONFIG_AMD8111_ETH is not set
@@ -667,12 +675,12 @@ CONFIG_E100=y
667# CONFIG_TLAN is not set 675# CONFIG_TLAN is not set
668# CONFIG_VIA_RHINE is not set 676# CONFIG_VIA_RHINE is not set
669# CONFIG_SC92031 is not set 677# CONFIG_SC92031 is not set
678# CONFIG_ATL2 is not set
670CONFIG_NETDEV_1000=y 679CONFIG_NETDEV_1000=y
671CONFIG_ACENIC=m 680CONFIG_ACENIC=m
672# CONFIG_ACENIC_OMIT_TIGON_I is not set 681# CONFIG_ACENIC_OMIT_TIGON_I is not set
673# CONFIG_DL2K is not set 682# CONFIG_DL2K is not set
674CONFIG_E1000=m 683CONFIG_E1000=m
675# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
676# CONFIG_E1000E is not set 684# CONFIG_E1000E is not set
677# CONFIG_IP1000 is not set 685# CONFIG_IP1000 is not set
678# CONFIG_IGB is not set 686# CONFIG_IGB is not set
@@ -689,18 +697,22 @@ CONFIG_E1000=m
689# CONFIG_QLA3XXX is not set 697# CONFIG_QLA3XXX is not set
690# CONFIG_ATL1 is not set 698# CONFIG_ATL1 is not set
691# CONFIG_ATL1E is not set 699# CONFIG_ATL1E is not set
700# CONFIG_JME is not set
692CONFIG_NETDEV_10000=y 701CONFIG_NETDEV_10000=y
693# CONFIG_CHELSIO_T1 is not set 702# CONFIG_CHELSIO_T1 is not set
694# CONFIG_CHELSIO_T3 is not set 703# CONFIG_CHELSIO_T3 is not set
704# CONFIG_ENIC is not set
695# CONFIG_IXGBE is not set 705# CONFIG_IXGBE is not set
696# CONFIG_IXGB is not set 706# CONFIG_IXGB is not set
697# CONFIG_S2IO is not set 707# CONFIG_S2IO is not set
698# CONFIG_MYRI10GE is not set 708# CONFIG_MYRI10GE is not set
699# CONFIG_NETXEN_NIC is not set 709# CONFIG_NETXEN_NIC is not set
700# CONFIG_NIU is not set 710# CONFIG_NIU is not set
711# CONFIG_MLX4_EN is not set
701# CONFIG_MLX4_CORE is not set 712# CONFIG_MLX4_CORE is not set
702# CONFIG_TEHUTI is not set 713# CONFIG_TEHUTI is not set
703# CONFIG_BNX2X is not set 714# CONFIG_BNX2X is not set
715# CONFIG_QLGE is not set
704# CONFIG_SFC is not set 716# CONFIG_SFC is not set
705CONFIG_TR=y 717CONFIG_TR=y
706CONFIG_IBMOL=y 718CONFIG_IBMOL=y
@@ -838,6 +850,14 @@ CONFIG_SSB_POSSIBLE=y
838# CONFIG_MFD_TMIO is not set 850# CONFIG_MFD_TMIO is not set
839 851
840# 852#
853# Voltage and Current regulators
854#
855# CONFIG_REGULATOR is not set
856# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
857# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
858# CONFIG_REGULATOR_BQ24022 is not set
859
860#
841# Multimedia devices 861# Multimedia devices
842# 862#
843 863
@@ -877,6 +897,7 @@ CONFIG_DUMMY_CONSOLE=y
877# CONFIG_SOUND is not set 897# CONFIG_SOUND is not set
878# CONFIG_HID_SUPPORT is not set 898# CONFIG_HID_SUPPORT is not set
879# CONFIG_USB_SUPPORT is not set 899# CONFIG_USB_SUPPORT is not set
900# CONFIG_UWB is not set
880# CONFIG_MMC is not set 901# CONFIG_MMC is not set
881# CONFIG_MEMSTICK is not set 902# CONFIG_MEMSTICK is not set
882# CONFIG_NEW_LEDS is not set 903# CONFIG_NEW_LEDS is not set
@@ -886,6 +907,7 @@ CONFIG_DUMMY_CONSOLE=y
886# CONFIG_RTC_CLASS is not set 907# CONFIG_RTC_CLASS is not set
887# CONFIG_DMADEVICES is not set 908# CONFIG_DMADEVICES is not set
888# CONFIG_UIO is not set 909# CONFIG_UIO is not set
910# CONFIG_STAGING is not set
889 911
890# 912#
891# File systems 913# File systems
@@ -895,14 +917,20 @@ CONFIG_EXT2_FS_XATTR=y
895CONFIG_EXT2_FS_POSIX_ACL=y 917CONFIG_EXT2_FS_POSIX_ACL=y
896CONFIG_EXT2_FS_SECURITY=y 918CONFIG_EXT2_FS_SECURITY=y
897CONFIG_EXT2_FS_XIP=y 919CONFIG_EXT2_FS_XIP=y
898CONFIG_FS_XIP=y
899CONFIG_EXT3_FS=y 920CONFIG_EXT3_FS=y
900CONFIG_EXT3_FS_XATTR=y 921CONFIG_EXT3_FS_XATTR=y
901CONFIG_EXT3_FS_POSIX_ACL=y 922CONFIG_EXT3_FS_POSIX_ACL=y
902CONFIG_EXT3_FS_SECURITY=y 923CONFIG_EXT3_FS_SECURITY=y
903# CONFIG_EXT4DEV_FS is not set 924CONFIG_EXT4_FS=y
925# CONFIG_EXT4DEV_COMPAT is not set
926CONFIG_EXT4_FS_XATTR=y
927# CONFIG_EXT4_FS_POSIX_ACL is not set
928# CONFIG_EXT4_FS_SECURITY is not set
929CONFIG_FS_XIP=y
904CONFIG_JBD=y 930CONFIG_JBD=y
905# CONFIG_JBD_DEBUG is not set 931# CONFIG_JBD_DEBUG is not set
932CONFIG_JBD2=y
933# CONFIG_JBD2_DEBUG is not set
906CONFIG_FS_MBCACHE=y 934CONFIG_FS_MBCACHE=y
907CONFIG_REISERFS_FS=y 935CONFIG_REISERFS_FS=y
908# CONFIG_REISERFS_CHECK is not set 936# CONFIG_REISERFS_CHECK is not set
@@ -916,6 +944,7 @@ CONFIG_JFS_SECURITY=y
916# CONFIG_JFS_DEBUG is not set 944# CONFIG_JFS_DEBUG is not set
917# CONFIG_JFS_STATISTICS is not set 945# CONFIG_JFS_STATISTICS is not set
918CONFIG_FS_POSIX_ACL=y 946CONFIG_FS_POSIX_ACL=y
947CONFIG_FILE_LOCKING=y
919CONFIG_XFS_FS=m 948CONFIG_XFS_FS=m
920# CONFIG_XFS_QUOTA is not set 949# CONFIG_XFS_QUOTA is not set
921CONFIG_XFS_POSIX_ACL=y 950CONFIG_XFS_POSIX_ACL=y
@@ -958,6 +987,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
958CONFIG_PROC_FS=y 987CONFIG_PROC_FS=y
959CONFIG_PROC_KCORE=y 988CONFIG_PROC_KCORE=y
960CONFIG_PROC_SYSCTL=y 989CONFIG_PROC_SYSCTL=y
990CONFIG_PROC_PAGE_MONITOR=y
961CONFIG_SYSFS=y 991CONFIG_SYSFS=y
962CONFIG_TMPFS=y 992CONFIG_TMPFS=y
963CONFIG_TMPFS_POSIX_ACL=y 993CONFIG_TMPFS_POSIX_ACL=y
@@ -1001,6 +1031,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1001CONFIG_NFS_COMMON=y 1031CONFIG_NFS_COMMON=y
1002CONFIG_SUNRPC=y 1032CONFIG_SUNRPC=y
1003CONFIG_SUNRPC_GSS=y 1033CONFIG_SUNRPC_GSS=y
1034# CONFIG_SUNRPC_REGISTER_V4 is not set
1004CONFIG_RPCSEC_GSS_KRB5=y 1035CONFIG_RPCSEC_GSS_KRB5=y
1005CONFIG_RPCSEC_GSS_SPKM3=m 1036CONFIG_RPCSEC_GSS_SPKM3=m
1006# CONFIG_SMB_FS is not set 1037# CONFIG_SMB_FS is not set
@@ -1067,9 +1098,8 @@ CONFIG_DLM=m
1067# Library routines 1098# Library routines
1068# 1099#
1069CONFIG_BITREVERSE=y 1100CONFIG_BITREVERSE=y
1070# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1071CONFIG_CRC_CCITT=m 1101CONFIG_CRC_CCITT=m
1072# CONFIG_CRC16 is not set 1102CONFIG_CRC16=y
1073CONFIG_CRC_T10DIF=y 1103CONFIG_CRC_T10DIF=y
1074CONFIG_CRC_ITU_T=m 1104CONFIG_CRC_ITU_T=m
1075CONFIG_CRC32=y 1105CONFIG_CRC32=y
@@ -1127,19 +1157,26 @@ CONFIG_DEBUG_BUGVERBOSE=y
1127CONFIG_DEBUG_MEMORY_INIT=y 1157CONFIG_DEBUG_MEMORY_INIT=y
1128# CONFIG_DEBUG_LIST is not set 1158# CONFIG_DEBUG_LIST is not set
1129# CONFIG_DEBUG_SG is not set 1159# CONFIG_DEBUG_SG is not set
1130CONFIG_FRAME_POINTER=y
1131# CONFIG_BOOT_PRINTK_DELAY is not set 1160# CONFIG_BOOT_PRINTK_DELAY is not set
1132# CONFIG_RCU_TORTURE_TEST is not set 1161# CONFIG_RCU_TORTURE_TEST is not set
1162# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1133# CONFIG_BACKTRACE_SELF_TEST is not set 1163# CONFIG_BACKTRACE_SELF_TEST is not set
1164# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1134# CONFIG_FAULT_INJECTION is not set 1165# CONFIG_FAULT_INJECTION is not set
1135CONFIG_LATENCYTOP=y 1166CONFIG_LATENCYTOP=y
1136CONFIG_SYSCTL_SYSCALL_CHECK=y 1167CONFIG_SYSCTL_SYSCALL_CHECK=y
1137CONFIG_HAVE_FTRACE=y 1168CONFIG_HAVE_FUNCTION_TRACER=y
1138CONFIG_HAVE_DYNAMIC_FTRACE=y 1169
1139# CONFIG_FTRACE is not set 1170#
1171# Tracers
1172#
1173# CONFIG_FUNCTION_TRACER is not set
1140# CONFIG_IRQSOFF_TRACER is not set 1174# CONFIG_IRQSOFF_TRACER is not set
1141# CONFIG_SCHED_TRACER is not set 1175# CONFIG_SCHED_TRACER is not set
1142# CONFIG_CONTEXT_SWITCH_TRACER is not set 1176# CONFIG_CONTEXT_SWITCH_TRACER is not set
1177# CONFIG_BOOT_TRACER is not set
1178# CONFIG_STACK_TRACER is not set
1179CONFIG_DYNAMIC_PRINTK_DEBUG=y
1143# CONFIG_SAMPLES is not set 1180# CONFIG_SAMPLES is not set
1144CONFIG_HAVE_ARCH_KGDB=y 1181CONFIG_HAVE_ARCH_KGDB=y
1145# CONFIG_KGDB is not set 1182# CONFIG_KGDB is not set
@@ -1148,6 +1185,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1148# CONFIG_DEBUG_PAGEALLOC is not set 1185# CONFIG_DEBUG_PAGEALLOC is not set
1149# CONFIG_CODE_PATCHING_SELFTEST is not set 1186# CONFIG_CODE_PATCHING_SELFTEST is not set
1150# CONFIG_FTR_FIXUP_SELFTEST is not set 1187# CONFIG_FTR_FIXUP_SELFTEST is not set
1188# CONFIG_MSI_BITMAP_SELFTEST is not set
1151# CONFIG_XMON is not set 1189# CONFIG_XMON is not set
1152CONFIG_IRQSTACKS=y 1190CONFIG_IRQSTACKS=y
1153# CONFIG_VIRQ_DEBUG is not set 1191# CONFIG_VIRQ_DEBUG is not set
@@ -1159,16 +1197,19 @@ CONFIG_IRQSTACKS=y
1159# 1197#
1160# CONFIG_KEYS is not set 1198# CONFIG_KEYS is not set
1161# CONFIG_SECURITY is not set 1199# CONFIG_SECURITY is not set
1200# CONFIG_SECURITYFS is not set
1162# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1201# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1163CONFIG_CRYPTO=y 1202CONFIG_CRYPTO=y
1164 1203
1165# 1204#
1166# Crypto core or helper 1205# Crypto core or helper
1167# 1206#
1207# CONFIG_CRYPTO_FIPS is not set
1168CONFIG_CRYPTO_ALGAPI=y 1208CONFIG_CRYPTO_ALGAPI=y
1169CONFIG_CRYPTO_AEAD=m 1209CONFIG_CRYPTO_AEAD=y
1170CONFIG_CRYPTO_BLKCIPHER=y 1210CONFIG_CRYPTO_BLKCIPHER=y
1171CONFIG_CRYPTO_HASH=y 1211CONFIG_CRYPTO_HASH=y
1212CONFIG_CRYPTO_RNG=y
1172CONFIG_CRYPTO_MANAGER=y 1213CONFIG_CRYPTO_MANAGER=y
1173# CONFIG_CRYPTO_GF128MUL is not set 1214# CONFIG_CRYPTO_GF128MUL is not set
1174CONFIG_CRYPTO_NULL=m 1215CONFIG_CRYPTO_NULL=m
@@ -1242,6 +1283,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1242# 1283#
1243CONFIG_CRYPTO_DEFLATE=m 1284CONFIG_CRYPTO_DEFLATE=m
1244# CONFIG_CRYPTO_LZO is not set 1285# CONFIG_CRYPTO_LZO is not set
1286
1287#
1288# Random Number Generation
1289#
1290# CONFIG_CRYPTO_ANSI_CPRNG is not set
1245# CONFIG_CRYPTO_HW is not set 1291# CONFIG_CRYPTO_HW is not set
1246# CONFIG_PPC_CLOCK is not set 1292# CONFIG_PPC_CLOCK is not set
1247# CONFIG_VIRTUALIZATION is not set 1293# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 851b27e45cfc..54fa62481373 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28-rc3
4# Fri Oct 24 00:42:39 2008 4# Sat Nov 8 12:39:38 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
@@ -110,7 +110,9 @@ CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 116CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
116CONFIG_SLUB=y 118CONFIG_SLUB=y
@@ -124,10 +126,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 126CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
@@ -160,6 +158,7 @@ CONFIG_DEFAULT_AS=y
160# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="anticipatory" 159CONFIG_DEFAULT_IOSCHED="anticipatory"
162CONFIG_CLASSIC_RCU=y 160CONFIG_CLASSIC_RCU=y
161# CONFIG_FREEZER is not set
163 162
164# 163#
165# Platform support 164# Platform support
@@ -199,6 +198,7 @@ CONFIG_MPIC=y
199# CONFIG_GENERIC_IOMAP is not set 198# CONFIG_GENERIC_IOMAP is not set
200# CONFIG_CPU_FREQ is not set 199# CONFIG_CPU_FREQ is not set
201# CONFIG_TAU is not set 200# CONFIG_TAU is not set
201# CONFIG_QUICC_ENGINE is not set
202# CONFIG_FSL_ULI1575 is not set 202# CONFIG_FSL_ULI1575 is not set
203 203
204# 204#
@@ -219,6 +219,8 @@ CONFIG_PREEMPT_NONE=y
219# CONFIG_PREEMPT_VOLUNTARY is not set 219# CONFIG_PREEMPT_VOLUNTARY is not set
220# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
221CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
222# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
223# CONFIG_HAVE_AOUT is not set
222# CONFIG_BINFMT_MISC is not set 224# CONFIG_BINFMT_MISC is not set
223# CONFIG_IOMMU_HELPER is not set 225# CONFIG_IOMMU_HELPER is not set
224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -233,15 +235,15 @@ CONFIG_FLATMEM_MANUAL=y
233# CONFIG_SPARSEMEM_MANUAL is not set 235# CONFIG_SPARSEMEM_MANUAL is not set
234CONFIG_FLATMEM=y 236CONFIG_FLATMEM=y
235CONFIG_FLAT_NODE_MEM_MAP=y 237CONFIG_FLAT_NODE_MEM_MAP=y
236# CONFIG_SPARSEMEM_STATIC is not set
237# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
238CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
239CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y 240CONFIG_MIGRATION=y
241# CONFIG_RESOURCES_64BIT is not set 241# CONFIG_RESOURCES_64BIT is not set
242# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y
245CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -263,7 +265,7 @@ CONFIG_PCI_SYSCALL=y
263# CONFIG_PCIEPORTBUS is not set 265# CONFIG_PCIEPORTBUS is not set
264CONFIG_ARCH_SUPPORTS_MSI=y 266CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 267# CONFIG_PCI_MSI is not set
266CONFIG_PCI_LEGACY=y 268# CONFIG_PCI_LEGACY is not set
267# CONFIG_PCI_DEBUG is not set 269# CONFIG_PCI_DEBUG is not set
268# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
@@ -324,7 +326,6 @@ CONFIG_INET_TCP_DIAG=y
324CONFIG_TCP_CONG_CUBIC=y 326CONFIG_TCP_CONG_CUBIC=y
325CONFIG_DEFAULT_TCP_CONG="cubic" 327CONFIG_DEFAULT_TCP_CONG="cubic"
326# CONFIG_TCP_MD5SIG is not set 328# CONFIG_TCP_MD5SIG is not set
327# CONFIG_IP_VS is not set
328# CONFIG_IPV6 is not set 329# CONFIG_IPV6 is not set
329# CONFIG_NETWORK_SECMARK is not set 330# CONFIG_NETWORK_SECMARK is not set
330CONFIG_NETFILTER=y 331CONFIG_NETFILTER=y
@@ -354,13 +355,14 @@ CONFIG_NF_CONNTRACK_PPTP=m
354CONFIG_NF_CONNTRACK_SIP=m 355CONFIG_NF_CONNTRACK_SIP=m
355CONFIG_NF_CONNTRACK_TFTP=m 356CONFIG_NF_CONNTRACK_TFTP=m
356# CONFIG_NF_CT_NETLINK is not set 357# CONFIG_NF_CT_NETLINK is not set
358# CONFIG_NETFILTER_TPROXY is not set
357CONFIG_NETFILTER_XTABLES=m 359CONFIG_NETFILTER_XTABLES=m
358# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 360# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
359# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 361# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
360# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 362# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
361# CONFIG_NETFILTER_XT_TARGET_MARK is not set 363# CONFIG_NETFILTER_XT_TARGET_MARK is not set
362# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
363# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 364# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
365# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
364# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set 366# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
365# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set 367# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
366# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 368# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
@@ -374,19 +376,21 @@ CONFIG_NETFILTER_XTABLES=m
374# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 376# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
375# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 377# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
376# CONFIG_NETFILTER_XT_MATCH_ESP is not set 378# CONFIG_NETFILTER_XT_MATCH_ESP is not set
379# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
377# CONFIG_NETFILTER_XT_MATCH_HELPER is not set 380# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
378# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 381# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
379# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 382# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
380# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 383# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
381CONFIG_NETFILTER_XT_MATCH_MAC=m 384CONFIG_NETFILTER_XT_MATCH_MAC=m
382# CONFIG_NETFILTER_XT_MATCH_MARK is not set 385# CONFIG_NETFILTER_XT_MATCH_MARK is not set
386# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
383# CONFIG_NETFILTER_XT_MATCH_OWNER is not set 387# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
384# CONFIG_NETFILTER_XT_MATCH_POLICY is not set 388# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
385# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
386CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 389CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
387# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 390# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
388# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set 391# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
389# CONFIG_NETFILTER_XT_MATCH_REALM is not set 392# CONFIG_NETFILTER_XT_MATCH_REALM is not set
393# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
390# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 394# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
391CONFIG_NETFILTER_XT_MATCH_STATE=m 395CONFIG_NETFILTER_XT_MATCH_STATE=m
392# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 396# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
@@ -394,20 +398,20 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m
394# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 398# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
395# CONFIG_NETFILTER_XT_MATCH_TIME is not set 399# CONFIG_NETFILTER_XT_MATCH_TIME is not set
396# CONFIG_NETFILTER_XT_MATCH_U32 is not set 400# CONFIG_NETFILTER_XT_MATCH_U32 is not set
397# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 401# CONFIG_IP_VS is not set
398 402
399# 403#
400# IP: Netfilter Configuration 404# IP: Netfilter Configuration
401# 405#
406CONFIG_NF_DEFRAG_IPV4=m
402CONFIG_NF_CONNTRACK_IPV4=m 407CONFIG_NF_CONNTRACK_IPV4=m
403CONFIG_NF_CONNTRACK_PROC_COMPAT=y 408CONFIG_NF_CONNTRACK_PROC_COMPAT=y
404# CONFIG_IP_NF_QUEUE is not set 409# CONFIG_IP_NF_QUEUE is not set
405CONFIG_IP_NF_IPTABLES=m 410CONFIG_IP_NF_IPTABLES=m
406CONFIG_IP_NF_MATCH_RECENT=m 411CONFIG_IP_NF_MATCH_ADDRTYPE=m
407# CONFIG_IP_NF_MATCH_ECN is not set
408# CONFIG_IP_NF_MATCH_AH is not set 412# CONFIG_IP_NF_MATCH_AH is not set
413# CONFIG_IP_NF_MATCH_ECN is not set
409# CONFIG_IP_NF_MATCH_TTL is not set 414# CONFIG_IP_NF_MATCH_TTL is not set
410CONFIG_IP_NF_MATCH_ADDRTYPE=m
411CONFIG_IP_NF_FILTER=m 415CONFIG_IP_NF_FILTER=m
412CONFIG_IP_NF_TARGET_REJECT=m 416CONFIG_IP_NF_TARGET_REJECT=m
413# CONFIG_IP_NF_TARGET_LOG is not set 417# CONFIG_IP_NF_TARGET_LOG is not set
@@ -415,8 +419,8 @@ CONFIG_IP_NF_TARGET_REJECT=m
415CONFIG_NF_NAT=m 419CONFIG_NF_NAT=m
416CONFIG_NF_NAT_NEEDED=y 420CONFIG_NF_NAT_NEEDED=y
417CONFIG_IP_NF_TARGET_MASQUERADE=m 421CONFIG_IP_NF_TARGET_MASQUERADE=m
418CONFIG_IP_NF_TARGET_REDIRECT=m
419# CONFIG_IP_NF_TARGET_NETMAP is not set 422# CONFIG_IP_NF_TARGET_NETMAP is not set
423CONFIG_IP_NF_TARGET_REDIRECT=m
420# CONFIG_NF_NAT_SNMP_BASIC is not set 424# CONFIG_NF_NAT_SNMP_BASIC is not set
421CONFIG_NF_NAT_PROTO_GRE=m 425CONFIG_NF_NAT_PROTO_GRE=m
422CONFIG_NF_NAT_PROTO_SCTP=m 426CONFIG_NF_NAT_PROTO_SCTP=m
@@ -428,9 +432,9 @@ CONFIG_NF_NAT_PPTP=m
428CONFIG_NF_NAT_H323=m 432CONFIG_NF_NAT_H323=m
429CONFIG_NF_NAT_SIP=m 433CONFIG_NF_NAT_SIP=m
430CONFIG_IP_NF_MANGLE=m 434CONFIG_IP_NF_MANGLE=m
435# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
431CONFIG_IP_NF_TARGET_ECN=m 436CONFIG_IP_NF_TARGET_ECN=m
432CONFIG_IP_NF_TARGET_TTL=m 437CONFIG_IP_NF_TARGET_TTL=m
433# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
434CONFIG_IP_NF_RAW=m 438CONFIG_IP_NF_RAW=m
435CONFIG_IP_NF_ARPTABLES=m 439CONFIG_IP_NF_ARPTABLES=m
436CONFIG_IP_NF_ARPFILTER=m 440CONFIG_IP_NF_ARPFILTER=m
@@ -440,6 +444,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
440# CONFIG_TIPC is not set 444# CONFIG_TIPC is not set
441# CONFIG_ATM is not set 445# CONFIG_ATM is not set
442# CONFIG_BRIDGE is not set 446# CONFIG_BRIDGE is not set
447# CONFIG_NET_DSA is not set
443# CONFIG_VLAN_8021Q is not set 448# CONFIG_VLAN_8021Q is not set
444# CONFIG_DECNET is not set 449# CONFIG_DECNET is not set
445# CONFIG_LLC2 is not set 450# CONFIG_LLC2 is not set
@@ -460,11 +465,10 @@ CONFIG_IP_NF_ARP_MANGLE=m
460# CONFIG_IRDA is not set 465# CONFIG_IRDA is not set
461# CONFIG_BT is not set 466# CONFIG_BT is not set
462# CONFIG_AF_RXRPC is not set 467# CONFIG_AF_RXRPC is not set
463 468# CONFIG_PHONET is not set
464# 469CONFIG_WIRELESS=y
465# Wireless
466#
467# CONFIG_CFG80211 is not set 470# CONFIG_CFG80211 is not set
471CONFIG_WIRELESS_OLD_REGULATORY=y
468CONFIG_WIRELESS_EXT=y 472CONFIG_WIRELESS_EXT=y
469CONFIG_WIRELESS_EXT_SYSFS=y 473CONFIG_WIRELESS_EXT_SYSFS=y
470# CONFIG_MAC80211 is not set 474# CONFIG_MAC80211 is not set
@@ -772,7 +776,7 @@ CONFIG_TUN=m
772# CONFIG_ARCNET is not set 776# CONFIG_ARCNET is not set
773# CONFIG_PHYLIB is not set 777# CONFIG_PHYLIB is not set
774CONFIG_NET_ETHERNET=y 778CONFIG_NET_ETHERNET=y
775# CONFIG_MII is not set 779CONFIG_MII=y
776# CONFIG_HAPPYMEAL is not set 780# CONFIG_HAPPYMEAL is not set
777# CONFIG_SUNGEM is not set 781# CONFIG_SUNGEM is not set
778# CONFIG_CASSINI is not set 782# CONFIG_CASSINI is not set
@@ -792,8 +796,12 @@ CONFIG_TULIP_MMIO=y
792# CONFIG_IBM_NEW_EMAC_RGMII is not set 796# CONFIG_IBM_NEW_EMAC_RGMII is not set
793# CONFIG_IBM_NEW_EMAC_TAH is not set 797# CONFIG_IBM_NEW_EMAC_TAH is not set
794# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 798# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
799# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
800# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
801# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
795# CONFIG_NET_PCI is not set 802# CONFIG_NET_PCI is not set
796# CONFIG_B44 is not set 803# CONFIG_B44 is not set
804# CONFIG_ATL2 is not set
797CONFIG_NETDEV_1000=y 805CONFIG_NETDEV_1000=y
798# CONFIG_ACENIC is not set 806# CONFIG_ACENIC is not set
799# CONFIG_DL2K is not set 807# CONFIG_DL2K is not set
@@ -816,18 +824,22 @@ CONFIG_R8169=y
816# CONFIG_QLA3XXX is not set 824# CONFIG_QLA3XXX is not set
817# CONFIG_ATL1 is not set 825# CONFIG_ATL1 is not set
818# CONFIG_ATL1E is not set 826# CONFIG_ATL1E is not set
827# CONFIG_JME is not set
819CONFIG_NETDEV_10000=y 828CONFIG_NETDEV_10000=y
820# CONFIG_CHELSIO_T1 is not set 829# CONFIG_CHELSIO_T1 is not set
821# CONFIG_CHELSIO_T3 is not set 830# CONFIG_CHELSIO_T3 is not set
831# CONFIG_ENIC is not set
822# CONFIG_IXGBE is not set 832# CONFIG_IXGBE is not set
823# CONFIG_IXGB is not set 833# CONFIG_IXGB is not set
824# CONFIG_S2IO is not set 834# CONFIG_S2IO is not set
825# CONFIG_MYRI10GE is not set 835# CONFIG_MYRI10GE is not set
826# CONFIG_NETXEN_NIC is not set 836# CONFIG_NETXEN_NIC is not set
827# CONFIG_NIU is not set 837# CONFIG_NIU is not set
838# CONFIG_MLX4_EN is not set
828# CONFIG_MLX4_CORE is not set 839# CONFIG_MLX4_CORE is not set
829# CONFIG_TEHUTI is not set 840# CONFIG_TEHUTI is not set
830# CONFIG_BNX2X is not set 841# CONFIG_BNX2X is not set
842# CONFIG_QLGE is not set
831# CONFIG_SFC is not set 843# CONFIG_SFC is not set
832# CONFIG_TR is not set 844# CONFIG_TR is not set
833 845
@@ -892,6 +904,7 @@ CONFIG_INPUT_MISC=y
892# CONFIG_INPUT_KEYSPAN_REMOTE is not set 904# CONFIG_INPUT_KEYSPAN_REMOTE is not set
893# CONFIG_INPUT_POWERMATE is not set 905# CONFIG_INPUT_POWERMATE is not set
894# CONFIG_INPUT_YEALINK is not set 906# CONFIG_INPUT_YEALINK is not set
907# CONFIG_INPUT_CM109 is not set
895CONFIG_INPUT_UINPUT=m 908CONFIG_INPUT_UINPUT=m
896 909
897# 910#
@@ -1091,6 +1104,17 @@ CONFIG_SSB_POSSIBLE=y
1091# CONFIG_MFD_SM501 is not set 1104# CONFIG_MFD_SM501 is not set
1092# CONFIG_HTC_PASIC3 is not set 1105# CONFIG_HTC_PASIC3 is not set
1093# CONFIG_MFD_TMIO is not set 1106# CONFIG_MFD_TMIO is not set
1107# CONFIG_PMIC_DA903X is not set
1108# CONFIG_MFD_WM8400 is not set
1109# CONFIG_MFD_WM8350_I2C is not set
1110
1111#
1112# Voltage and Current regulators
1113#
1114# CONFIG_REGULATOR is not set
1115# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1116# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1117# CONFIG_REGULATOR_BQ24022 is not set
1094 1118
1095# 1119#
1096# Multimedia devices 1120# Multimedia devices
@@ -1138,12 +1162,18 @@ CONFIG_HID=m
1138# USB Input Devices 1162# USB Input Devices
1139# 1163#
1140# CONFIG_USB_HID is not set 1164# CONFIG_USB_HID is not set
1165# CONFIG_HID_PID is not set
1141 1166
1142# 1167#
1143# USB HID Boot Protocol drivers 1168# USB HID Boot Protocol drivers
1144# 1169#
1145# CONFIG_USB_KBD is not set 1170# CONFIG_USB_KBD is not set
1146# CONFIG_USB_MOUSE is not set 1171# CONFIG_USB_MOUSE is not set
1172
1173#
1174# Special HID drivers
1175#
1176CONFIG_HID_COMPAT=y
1147CONFIG_USB_SUPPORT=y 1177CONFIG_USB_SUPPORT=y
1148CONFIG_USB_ARCH_HAS_HCD=y 1178CONFIG_USB_ARCH_HAS_HCD=y
1149CONFIG_USB_ARCH_HAS_OHCI=y 1179CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1160,6 +1190,8 @@ CONFIG_USB_DEVICE_CLASS=y
1160# CONFIG_USB_DYNAMIC_MINORS is not set 1190# CONFIG_USB_DYNAMIC_MINORS is not set
1161# CONFIG_USB_OTG is not set 1191# CONFIG_USB_OTG is not set
1162CONFIG_USB_MON=y 1192CONFIG_USB_MON=y
1193# CONFIG_USB_WUSB is not set
1194# CONFIG_USB_WUSB_CBAF is not set
1163 1195
1164# 1196#
1165# USB Host Controller Drivers 1197# USB Host Controller Drivers
@@ -1183,6 +1215,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1183# CONFIG_USB_UHCI_HCD is not set 1215# CONFIG_USB_UHCI_HCD is not set
1184# CONFIG_USB_SL811_HCD is not set 1216# CONFIG_USB_SL811_HCD is not set
1185# CONFIG_USB_R8A66597_HCD is not set 1217# CONFIG_USB_R8A66597_HCD is not set
1218# CONFIG_USB_WHCI_HCD is not set
1219# CONFIG_USB_HWA_HCD is not set
1186 1220
1187# 1221#
1188# USB Device Class drivers 1222# USB Device Class drivers
@@ -1190,6 +1224,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1190# CONFIG_USB_ACM is not set 1224# CONFIG_USB_ACM is not set
1191CONFIG_USB_PRINTER=m 1225CONFIG_USB_PRINTER=m
1192# CONFIG_USB_WDM is not set 1226# CONFIG_USB_WDM is not set
1227# CONFIG_USB_TMC is not set
1193 1228
1194# 1229#
1195# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1230# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1274,6 +1309,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1274# CONFIG_USB_EMI62 is not set 1309# CONFIG_USB_EMI62 is not set
1275# CONFIG_USB_EMI26 is not set 1310# CONFIG_USB_EMI26 is not set
1276# CONFIG_USB_ADUTUX is not set 1311# CONFIG_USB_ADUTUX is not set
1312# CONFIG_USB_SEVSEG is not set
1277# CONFIG_USB_RIO500 is not set 1313# CONFIG_USB_RIO500 is not set
1278# CONFIG_USB_LEGOTOWER is not set 1314# CONFIG_USB_LEGOTOWER is not set
1279# CONFIG_USB_LCD is not set 1315# CONFIG_USB_LCD is not set
@@ -1291,7 +1327,9 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1291# CONFIG_USB_IOWARRIOR is not set 1327# CONFIG_USB_IOWARRIOR is not set
1292# CONFIG_USB_TEST is not set 1328# CONFIG_USB_TEST is not set
1293# CONFIG_USB_ISIGHTFW is not set 1329# CONFIG_USB_ISIGHTFW is not set
1330# CONFIG_USB_VST is not set
1294# CONFIG_USB_GADGET is not set 1331# CONFIG_USB_GADGET is not set
1332# CONFIG_UWB is not set
1295# CONFIG_MMC is not set 1333# CONFIG_MMC is not set
1296# CONFIG_MEMSTICK is not set 1334# CONFIG_MEMSTICK is not set
1297# CONFIG_NEW_LEDS is not set 1335# CONFIG_NEW_LEDS is not set
@@ -1337,12 +1375,15 @@ CONFIG_RTC_DRV_RS5C372=y
1337# Platform RTC drivers 1375# Platform RTC drivers
1338# 1376#
1339# CONFIG_RTC_DRV_CMOS is not set 1377# CONFIG_RTC_DRV_CMOS is not set
1378# CONFIG_RTC_DRV_DS1286 is not set
1340# CONFIG_RTC_DRV_DS1511 is not set 1379# CONFIG_RTC_DRV_DS1511 is not set
1341# CONFIG_RTC_DRV_DS1553 is not set 1380# CONFIG_RTC_DRV_DS1553 is not set
1342# CONFIG_RTC_DRV_DS1742 is not set 1381# CONFIG_RTC_DRV_DS1742 is not set
1343# CONFIG_RTC_DRV_STK17TA8 is not set 1382# CONFIG_RTC_DRV_STK17TA8 is not set
1344# CONFIG_RTC_DRV_M48T86 is not set 1383# CONFIG_RTC_DRV_M48T86 is not set
1384# CONFIG_RTC_DRV_M48T35 is not set
1345# CONFIG_RTC_DRV_M48T59 is not set 1385# CONFIG_RTC_DRV_M48T59 is not set
1386# CONFIG_RTC_DRV_BQ4802 is not set
1346# CONFIG_RTC_DRV_V3020 is not set 1387# CONFIG_RTC_DRV_V3020 is not set
1347 1388
1348# 1389#
@@ -1351,6 +1392,7 @@ CONFIG_RTC_DRV_RS5C372=y
1351# CONFIG_RTC_DRV_PPC is not set 1392# CONFIG_RTC_DRV_PPC is not set
1352# CONFIG_DMADEVICES is not set 1393# CONFIG_DMADEVICES is not set
1353# CONFIG_UIO is not set 1394# CONFIG_UIO is not set
1395# CONFIG_STAGING is not set
1354 1396
1355# 1397#
1356# File systems 1398# File systems
@@ -1362,12 +1404,13 @@ CONFIG_EXT3_FS=y
1362CONFIG_EXT3_FS_XATTR=y 1404CONFIG_EXT3_FS_XATTR=y
1363# CONFIG_EXT3_FS_POSIX_ACL is not set 1405# CONFIG_EXT3_FS_POSIX_ACL is not set
1364# CONFIG_EXT3_FS_SECURITY is not set 1406# CONFIG_EXT3_FS_SECURITY is not set
1365# CONFIG_EXT4DEV_FS is not set 1407# CONFIG_EXT4_FS is not set
1366CONFIG_JBD=y 1408CONFIG_JBD=y
1367CONFIG_FS_MBCACHE=y 1409CONFIG_FS_MBCACHE=y
1368# CONFIG_REISERFS_FS is not set 1410# CONFIG_REISERFS_FS is not set
1369# CONFIG_JFS_FS is not set 1411# CONFIG_JFS_FS is not set
1370CONFIG_FS_POSIX_ACL=y 1412CONFIG_FS_POSIX_ACL=y
1413CONFIG_FILE_LOCKING=y
1371CONFIG_XFS_FS=m 1414CONFIG_XFS_FS=m
1372# CONFIG_XFS_QUOTA is not set 1415# CONFIG_XFS_QUOTA is not set
1373# CONFIG_XFS_POSIX_ACL is not set 1416# CONFIG_XFS_POSIX_ACL is not set
@@ -1409,6 +1452,7 @@ CONFIG_NTFS_FS=m
1409CONFIG_PROC_FS=y 1452CONFIG_PROC_FS=y
1410CONFIG_PROC_KCORE=y 1453CONFIG_PROC_KCORE=y
1411CONFIG_PROC_SYSCTL=y 1454CONFIG_PROC_SYSCTL=y
1455CONFIG_PROC_PAGE_MONITOR=y
1412CONFIG_SYSFS=y 1456CONFIG_SYSFS=y
1413CONFIG_TMPFS=y 1457CONFIG_TMPFS=y
1414# CONFIG_TMPFS_POSIX_ACL is not set 1458# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1452,6 +1496,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1452CONFIG_NFS_COMMON=y 1496CONFIG_NFS_COMMON=y
1453CONFIG_SUNRPC=y 1497CONFIG_SUNRPC=y
1454CONFIG_SUNRPC_GSS=y 1498CONFIG_SUNRPC_GSS=y
1499# CONFIG_SUNRPC_REGISTER_V4 is not set
1455CONFIG_RPCSEC_GSS_KRB5=y 1500CONFIG_RPCSEC_GSS_KRB5=y
1456# CONFIG_RPCSEC_GSS_SPKM3 is not set 1501# CONFIG_RPCSEC_GSS_SPKM3 is not set
1457# CONFIG_SMB_FS is not set 1502# CONFIG_SMB_FS is not set
@@ -1516,7 +1561,6 @@ CONFIG_NLS_UTF8=m
1516# Library routines 1561# Library routines
1517# 1562#
1518CONFIG_BITREVERSE=y 1563CONFIG_BITREVERSE=y
1519# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1520CONFIG_CRC_CCITT=m 1564CONFIG_CRC_CCITT=m
1521# CONFIG_CRC16 is not set 1565# CONFIG_CRC16 is not set
1522CONFIG_CRC_T10DIF=y 1566CONFIG_CRC_T10DIF=y
@@ -1572,15 +1616,23 @@ CONFIG_DEBUG_MEMORY_INIT=y
1572# CONFIG_DEBUG_SG is not set 1616# CONFIG_DEBUG_SG is not set
1573# CONFIG_BOOT_PRINTK_DELAY is not set 1617# CONFIG_BOOT_PRINTK_DELAY is not set
1574# CONFIG_RCU_TORTURE_TEST is not set 1618# CONFIG_RCU_TORTURE_TEST is not set
1619# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1575# CONFIG_BACKTRACE_SELF_TEST is not set 1620# CONFIG_BACKTRACE_SELF_TEST is not set
1621# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1576# CONFIG_FAULT_INJECTION is not set 1622# CONFIG_FAULT_INJECTION is not set
1577# CONFIG_LATENCYTOP is not set 1623# CONFIG_LATENCYTOP is not set
1578CONFIG_SYSCTL_SYSCALL_CHECK=y 1624CONFIG_SYSCTL_SYSCALL_CHECK=y
1579CONFIG_HAVE_FTRACE=y 1625CONFIG_HAVE_FUNCTION_TRACER=y
1580CONFIG_HAVE_DYNAMIC_FTRACE=y 1626
1581# CONFIG_FTRACE is not set 1627#
1628# Tracers
1629#
1630# CONFIG_FUNCTION_TRACER is not set
1582# CONFIG_SCHED_TRACER is not set 1631# CONFIG_SCHED_TRACER is not set
1583# CONFIG_CONTEXT_SWITCH_TRACER is not set 1632# CONFIG_CONTEXT_SWITCH_TRACER is not set
1633# CONFIG_BOOT_TRACER is not set
1634# CONFIG_STACK_TRACER is not set
1635# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1584# CONFIG_SAMPLES is not set 1636# CONFIG_SAMPLES is not set
1585CONFIG_HAVE_ARCH_KGDB=y 1637CONFIG_HAVE_ARCH_KGDB=y
1586# CONFIG_KGDB is not set 1638# CONFIG_KGDB is not set
@@ -1589,6 +1641,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1589# CONFIG_DEBUG_PAGEALLOC is not set 1641# CONFIG_DEBUG_PAGEALLOC is not set
1590# CONFIG_CODE_PATCHING_SELFTEST is not set 1642# CONFIG_CODE_PATCHING_SELFTEST is not set
1591# CONFIG_FTR_FIXUP_SELFTEST is not set 1643# CONFIG_FTR_FIXUP_SELFTEST is not set
1644# CONFIG_MSI_BITMAP_SELFTEST is not set
1592# CONFIG_XMON is not set 1645# CONFIG_XMON is not set
1593# CONFIG_IRQSTACKS is not set 1646# CONFIG_IRQSTACKS is not set
1594# CONFIG_BDI_SWITCH is not set 1647# CONFIG_BDI_SWITCH is not set
@@ -1600,15 +1653,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1600# 1653#
1601# CONFIG_KEYS is not set 1654# CONFIG_KEYS is not set
1602# CONFIG_SECURITY is not set 1655# CONFIG_SECURITY is not set
1656# CONFIG_SECURITYFS is not set
1603# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1657# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1604CONFIG_CRYPTO=y 1658CONFIG_CRYPTO=y
1605 1659
1606# 1660#
1607# Crypto core or helper 1661# Crypto core or helper
1608# 1662#
1663# CONFIG_CRYPTO_FIPS is not set
1609CONFIG_CRYPTO_ALGAPI=y 1664CONFIG_CRYPTO_ALGAPI=y
1665CONFIG_CRYPTO_AEAD=y
1610CONFIG_CRYPTO_BLKCIPHER=y 1666CONFIG_CRYPTO_BLKCIPHER=y
1611CONFIG_CRYPTO_HASH=m 1667CONFIG_CRYPTO_HASH=y
1668CONFIG_CRYPTO_RNG=y
1612CONFIG_CRYPTO_MANAGER=y 1669CONFIG_CRYPTO_MANAGER=y
1613# CONFIG_CRYPTO_GF128MUL is not set 1670# CONFIG_CRYPTO_GF128MUL is not set
1614# CONFIG_CRYPTO_NULL is not set 1671# CONFIG_CRYPTO_NULL is not set
@@ -1682,6 +1739,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1682# 1739#
1683CONFIG_CRYPTO_DEFLATE=m 1740CONFIG_CRYPTO_DEFLATE=m
1684# CONFIG_CRYPTO_LZO is not set 1741# CONFIG_CRYPTO_LZO is not set
1742
1743#
1744# Random Number Generation
1745#
1746# CONFIG_CRYPTO_ANSI_CPRNG is not set
1685CONFIG_CRYPTO_HW=y 1747CONFIG_CRYPTO_HW=y
1686# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1748# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1687# CONFIG_CRYPTO_DEV_TALITOS is not set 1749# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 1a3b6423222b..045f1b008ce5 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -1,7 +1,7 @@
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-rc3
4# Tue Aug 26 13:18:58 2008 4# Tue Nov 11 19:36:45 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -20,7 +20,7 @@ CONFIG_SMP=y
20CONFIG_NR_CPUS=4 20CONFIG_NR_CPUS=4
21CONFIG_64BIT=y 21CONFIG_64BIT=y
22CONFIG_WORD_SIZE=64 22CONFIG_WORD_SIZE=64
23CONFIG_PPC_MERGE=y 23CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
24CONFIG_MMU=y 24CONFIG_MMU=y
25CONFIG_GENERIC_CMOS_UPDATE=y 25CONFIG_GENERIC_CMOS_UPDATE=y
26CONFIG_GENERIC_TIME=y 26CONFIG_GENERIC_TIME=y
@@ -107,7 +107,9 @@ CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 107CONFIG_TIMERFD=y
108CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
109CONFIG_SHMEM=y 109CONFIG_SHMEM=y
110CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 113CONFIG_SLUB_DEBUG=y
112# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
113CONFIG_SLUB=y 115CONFIG_SLUB=y
@@ -125,8 +127,6 @@ CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 127CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_DMA_ATTRS=y 128CONFIG_HAVE_DMA_ATTRS=y
127CONFIG_USE_GENERIC_SMP_HELPERS=y 129CONFIG_USE_GENERIC_SMP_HELPERS=y
128# CONFIG_HAVE_CLK is not set
129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
@@ -159,6 +159,8 @@ CONFIG_DEFAULT_AS=y
159# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="anticipatory" 160CONFIG_DEFAULT_IOSCHED="anticipatory"
161CONFIG_CLASSIC_RCU=y 161CONFIG_CLASSIC_RCU=y
162# CONFIG_FREEZER is not set
163CONFIG_PPC_MSI_BITMAP=y
162 164
163# 165#
164# Platform support 166# Platform support
@@ -213,6 +215,8 @@ CONFIG_PREEMPT_NONE=y
213# CONFIG_PREEMPT is not set 215# CONFIG_PREEMPT is not set
214CONFIG_BINFMT_ELF=y 216CONFIG_BINFMT_ELF=y
215CONFIG_COMPAT_BINFMT_ELF=y 217CONFIG_COMPAT_BINFMT_ELF=y
218# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
219# CONFIG_HAVE_AOUT is not set
216# CONFIG_BINFMT_MISC is not set 220# CONFIG_BINFMT_MISC is not set
217CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 221CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
218CONFIG_IOMMU_VMERGE=y 222CONFIG_IOMMU_VMERGE=y
@@ -221,7 +225,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
221CONFIG_ARCH_HAS_WALK_MEMORY=y 225CONFIG_ARCH_HAS_WALK_MEMORY=y
222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
223CONFIG_KEXEC=y 227CONFIG_KEXEC=y
224# CONFIG_CRASH_DUMP is not set
225CONFIG_IRQ_ALL_CPUS=y 228CONFIG_IRQ_ALL_CPUS=y
226# CONFIG_NUMA is not set 229# CONFIG_NUMA is not set
227CONFIG_ARCH_SELECT_MEMORY_MODEL=y 230CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -234,14 +237,15 @@ CONFIG_FLATMEM_MANUAL=y
234# CONFIG_SPARSEMEM_MANUAL is not set 237# CONFIG_SPARSEMEM_MANUAL is not set
235CONFIG_FLATMEM=y 238CONFIG_FLATMEM=y
236CONFIG_FLAT_NODE_MEM_MAP=y 239CONFIG_FLAT_NODE_MEM_MAP=y
237# CONFIG_SPARSEMEM_STATIC is not set
238CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 240CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
239CONFIG_PAGEFLAGS_EXTENDED=y 241CONFIG_PAGEFLAGS_EXTENDED=y
240CONFIG_SPLIT_PTLOCK_CPUS=4 242CONFIG_SPLIT_PTLOCK_CPUS=4
241# CONFIG_MIGRATION is not set 243# CONFIG_MIGRATION is not set
242CONFIG_RESOURCES_64BIT=y 244CONFIG_RESOURCES_64BIT=y
245CONFIG_PHYS_ADDR_T_64BIT=y
243CONFIG_ZONE_DMA_FLAG=1 246CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
248CONFIG_UNEVICTABLE_LRU=y
245# CONFIG_PPC_HAS_HASH_64K is not set 249# CONFIG_PPC_HAS_HASH_64K is not set
246# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=13 251CONFIG_FORCE_MAX_ZONEORDER=13
@@ -265,11 +269,12 @@ CONFIG_PCI_SYSCALL=y
265# CONFIG_PCIEPORTBUS is not set 269# CONFIG_PCIEPORTBUS is not set
266CONFIG_ARCH_SUPPORTS_MSI=y 270CONFIG_ARCH_SUPPORTS_MSI=y
267CONFIG_PCI_MSI=y 271CONFIG_PCI_MSI=y
268CONFIG_PCI_LEGACY=y 272# CONFIG_PCI_LEGACY is not set
269# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
270# CONFIG_PCCARD is not set 274# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 275# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set 276# CONFIG_HAS_RAPIDIO is not set
277# CONFIG_RELOCATABLE is not set
273CONFIG_PAGE_OFFSET=0xc000000000000000 278CONFIG_PAGE_OFFSET=0xc000000000000000
274CONFIG_KERNEL_START=0xc000000000000000 279CONFIG_KERNEL_START=0xc000000000000000
275CONFIG_PHYSICAL_START=0x00000000 280CONFIG_PHYSICAL_START=0x00000000
@@ -323,6 +328,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
323# CONFIG_TIPC is not set 328# CONFIG_TIPC is not set
324# CONFIG_ATM is not set 329# CONFIG_ATM is not set
325# CONFIG_BRIDGE is not set 330# CONFIG_BRIDGE is not set
331# CONFIG_NET_DSA is not set
326# CONFIG_VLAN_8021Q is not set 332# CONFIG_VLAN_8021Q is not set
327# CONFIG_DECNET is not set 333# CONFIG_DECNET is not set
328# CONFIG_LLC2 is not set 334# CONFIG_LLC2 is not set
@@ -344,14 +350,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_IRDA is not set 350# CONFIG_IRDA is not set
345# CONFIG_BT is not set 351# CONFIG_BT is not set
346# CONFIG_AF_RXRPC is not set 352# CONFIG_AF_RXRPC is not set
347 353# CONFIG_PHONET is not set
348# 354# CONFIG_WIRELESS is not set
349# Wireless
350#
351# CONFIG_CFG80211 is not set
352# CONFIG_WIRELESS_EXT is not set
353# CONFIG_MAC80211 is not set
354# CONFIG_IEEE80211 is not set
355# CONFIG_RFKILL is not set 355# CONFIG_RFKILL is not set
356# CONFIG_NET_9P is not set 356# CONFIG_NET_9P is not set
357 357
@@ -402,19 +402,18 @@ CONFIG_MISC_DEVICES=y
402# CONFIG_HP_ILO is not set 402# CONFIG_HP_ILO is not set
403CONFIG_HAVE_IDE=y 403CONFIG_HAVE_IDE=y
404CONFIG_IDE=y 404CONFIG_IDE=y
405CONFIG_BLK_DEV_IDE=y
406 405
407# 406#
408# Please see Documentation/ide/ide.txt for help/info on IDE drives 407# Please see Documentation/ide/ide.txt for help/info on IDE drives
409# 408#
410CONFIG_IDE_TIMINGS=y 409CONFIG_IDE_TIMINGS=y
411# CONFIG_BLK_DEV_IDE_SATA is not set 410# CONFIG_BLK_DEV_IDE_SATA is not set
412CONFIG_BLK_DEV_IDEDISK=y 411CONFIG_IDE_GD=y
413# CONFIG_IDEDISK_MULTI_MODE is not set 412CONFIG_IDE_GD_ATA=y
413# CONFIG_IDE_GD_ATAPI is not set
414CONFIG_BLK_DEV_IDECD=y 414CONFIG_BLK_DEV_IDECD=y
415CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 415CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
416# CONFIG_BLK_DEV_IDETAPE is not set 416# CONFIG_BLK_DEV_IDETAPE is not set
417# CONFIG_BLK_DEV_IDEFLOPPY is not set
418# CONFIG_BLK_DEV_IDESCSI is not set 417# CONFIG_BLK_DEV_IDESCSI is not set
419CONFIG_IDE_TASK_IOCTL=y 418CONFIG_IDE_TASK_IOCTL=y
420CONFIG_IDE_PROC_FS=y 419CONFIG_IDE_PROC_FS=y
@@ -644,6 +643,9 @@ CONFIG_MII=y
644# CONFIG_IBM_NEW_EMAC_RGMII is not set 643# CONFIG_IBM_NEW_EMAC_RGMII is not set
645# CONFIG_IBM_NEW_EMAC_TAH is not set 644# CONFIG_IBM_NEW_EMAC_TAH is not set
646# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 645# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
646# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
647# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
648# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
647CONFIG_NET_PCI=y 649CONFIG_NET_PCI=y
648# CONFIG_PCNET32 is not set 650# CONFIG_PCNET32 is not set
649CONFIG_AMD8111_ETH=y 651CONFIG_AMD8111_ETH=y
@@ -664,11 +666,11 @@ CONFIG_AMD8111_ETH=y
664# CONFIG_TLAN is not set 666# CONFIG_TLAN is not set
665# CONFIG_VIA_RHINE is not set 667# CONFIG_VIA_RHINE is not set
666# CONFIG_SC92031 is not set 668# CONFIG_SC92031 is not set
669# CONFIG_ATL2 is not set
667CONFIG_NETDEV_1000=y 670CONFIG_NETDEV_1000=y
668# CONFIG_ACENIC is not set 671# CONFIG_ACENIC is not set
669# CONFIG_DL2K is not set 672# CONFIG_DL2K is not set
670CONFIG_E1000=y 673CONFIG_E1000=y
671# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
672# CONFIG_E1000E is not set 674# CONFIG_E1000E is not set
673# CONFIG_IP1000 is not set 675# CONFIG_IP1000 is not set
674# CONFIG_IGB is not set 676# CONFIG_IGB is not set
@@ -685,18 +687,22 @@ CONFIG_TIGON3=y
685# CONFIG_QLA3XXX is not set 687# CONFIG_QLA3XXX is not set
686# CONFIG_ATL1 is not set 688# CONFIG_ATL1 is not set
687# CONFIG_ATL1E is not set 689# CONFIG_ATL1E is not set
690# CONFIG_JME is not set
688CONFIG_NETDEV_10000=y 691CONFIG_NETDEV_10000=y
689# CONFIG_CHELSIO_T1 is not set 692# CONFIG_CHELSIO_T1 is not set
690# CONFIG_CHELSIO_T3 is not set 693# CONFIG_CHELSIO_T3 is not set
694# CONFIG_ENIC is not set
691# CONFIG_IXGBE is not set 695# CONFIG_IXGBE is not set
692# CONFIG_IXGB is not set 696# CONFIG_IXGB is not set
693# CONFIG_S2IO is not set 697# CONFIG_S2IO is not set
694# CONFIG_MYRI10GE is not set 698# CONFIG_MYRI10GE is not set
695# CONFIG_NETXEN_NIC is not set 699# CONFIG_NETXEN_NIC is not set
696# CONFIG_NIU is not set 700# CONFIG_NIU is not set
701# CONFIG_MLX4_EN is not set
697# CONFIG_MLX4_CORE is not set 702# CONFIG_MLX4_CORE is not set
698# CONFIG_TEHUTI is not set 703# CONFIG_TEHUTI is not set
699# CONFIG_BNX2X is not set 704# CONFIG_BNX2X is not set
705# CONFIG_QLGE is not set
700# CONFIG_SFC is not set 706# CONFIG_SFC is not set
701# CONFIG_TR is not set 707# CONFIG_TR is not set
702 708
@@ -895,6 +901,17 @@ CONFIG_SSB_POSSIBLE=y
895# CONFIG_MFD_SM501 is not set 901# CONFIG_MFD_SM501 is not set
896# CONFIG_HTC_PASIC3 is not set 902# CONFIG_HTC_PASIC3 is not set
897# CONFIG_MFD_TMIO is not set 903# CONFIG_MFD_TMIO is not set
904# CONFIG_PMIC_DA903X is not set
905# CONFIG_MFD_WM8400 is not set
906# CONFIG_MFD_WM8350_I2C is not set
907
908#
909# Voltage and Current regulators
910#
911# CONFIG_REGULATOR is not set
912# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
913# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
914# CONFIG_REGULATOR_BQ24022 is not set
898 915
899# 916#
900# Multimedia devices 917# Multimedia devices
@@ -942,9 +959,36 @@ CONFIG_HID=y
942# USB Input Devices 959# USB Input Devices
943# 960#
944CONFIG_USB_HID=y 961CONFIG_USB_HID=y
945# CONFIG_USB_HIDINPUT_POWERBOOK is not set 962# CONFIG_HID_PID is not set
946# CONFIG_HID_FF is not set
947# CONFIG_USB_HIDDEV is not set 963# CONFIG_USB_HIDDEV is not set
964
965#
966# Special HID drivers
967#
968CONFIG_HID_COMPAT=y
969CONFIG_HID_A4TECH=y
970CONFIG_HID_APPLE=y
971CONFIG_HID_BELKIN=y
972CONFIG_HID_BRIGHT=y
973CONFIG_HID_CHERRY=y
974CONFIG_HID_CHICONY=y
975CONFIG_HID_CYPRESS=y
976CONFIG_HID_DELL=y
977CONFIG_HID_EZKEY=y
978CONFIG_HID_GYRATION=y
979CONFIG_HID_LOGITECH=y
980# CONFIG_LOGITECH_FF is not set
981# CONFIG_LOGIRUMBLEPAD2_FF is not set
982CONFIG_HID_MICROSOFT=y
983CONFIG_HID_MONTEREY=y
984CONFIG_HID_PANTHERLORD=y
985# CONFIG_PANTHERLORD_FF is not set
986CONFIG_HID_PETALYNX=y
987CONFIG_HID_SAMSUNG=y
988CONFIG_HID_SONY=y
989CONFIG_HID_SUNPLUS=y
990# CONFIG_THRUSTMASTER_FF is not set
991# CONFIG_ZEROPLUS_FF is not set
948CONFIG_USB_SUPPORT=y 992CONFIG_USB_SUPPORT=y
949CONFIG_USB_ARCH_HAS_HCD=y 993CONFIG_USB_ARCH_HAS_HCD=y
950CONFIG_USB_ARCH_HAS_OHCI=y 994CONFIG_USB_ARCH_HAS_OHCI=y
@@ -961,6 +1005,8 @@ CONFIG_USB_DEVICE_CLASS=y
961# CONFIG_USB_DYNAMIC_MINORS is not set 1005# CONFIG_USB_DYNAMIC_MINORS is not set
962# CONFIG_USB_OTG is not set 1006# CONFIG_USB_OTG is not set
963CONFIG_USB_MON=y 1007CONFIG_USB_MON=y
1008# CONFIG_USB_WUSB is not set
1009# CONFIG_USB_WUSB_CBAF is not set
964 1010
965# 1011#
966# USB Host Controller Drivers 1012# USB Host Controller Drivers
@@ -980,6 +1026,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
980CONFIG_USB_UHCI_HCD=y 1026CONFIG_USB_UHCI_HCD=y
981# CONFIG_USB_SL811_HCD is not set 1027# CONFIG_USB_SL811_HCD is not set
982# CONFIG_USB_R8A66597_HCD is not set 1028# CONFIG_USB_R8A66597_HCD is not set
1029# CONFIG_USB_WHCI_HCD is not set
1030# CONFIG_USB_HWA_HCD is not set
983 1031
984# 1032#
985# USB Device Class drivers 1033# USB Device Class drivers
@@ -987,6 +1035,7 @@ CONFIG_USB_UHCI_HCD=y
987# CONFIG_USB_ACM is not set 1035# CONFIG_USB_ACM is not set
988# CONFIG_USB_PRINTER is not set 1036# CONFIG_USB_PRINTER is not set
989# CONFIG_USB_WDM is not set 1037# CONFIG_USB_WDM is not set
1038# CONFIG_USB_TMC is not set
990 1039
991# 1040#
992# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1041# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1070,6 +1119,7 @@ CONFIG_USB_SERIAL_TI=m
1070# CONFIG_USB_EMI62 is not set 1119# CONFIG_USB_EMI62 is not set
1071# CONFIG_USB_EMI26 is not set 1120# CONFIG_USB_EMI26 is not set
1072# CONFIG_USB_ADUTUX is not set 1121# CONFIG_USB_ADUTUX is not set
1122# CONFIG_USB_SEVSEG is not set
1073# CONFIG_USB_RIO500 is not set 1123# CONFIG_USB_RIO500 is not set
1074# CONFIG_USB_LEGOTOWER is not set 1124# CONFIG_USB_LEGOTOWER is not set
1075# CONFIG_USB_LCD is not set 1125# CONFIG_USB_LCD is not set
@@ -1087,7 +1137,9 @@ CONFIG_USB_SERIAL_TI=m
1087# CONFIG_USB_IOWARRIOR is not set 1137# CONFIG_USB_IOWARRIOR is not set
1088# CONFIG_USB_TEST is not set 1138# CONFIG_USB_TEST is not set
1089# CONFIG_USB_ISIGHTFW is not set 1139# CONFIG_USB_ISIGHTFW is not set
1140# CONFIG_USB_VST is not set
1090# CONFIG_USB_GADGET is not set 1141# CONFIG_USB_GADGET is not set
1142# CONFIG_UWB is not set
1091# CONFIG_MMC is not set 1143# CONFIG_MMC is not set
1092# CONFIG_MEMSTICK is not set 1144# CONFIG_MEMSTICK is not set
1093# CONFIG_NEW_LEDS is not set 1145# CONFIG_NEW_LEDS is not set
@@ -1097,6 +1149,7 @@ CONFIG_USB_SERIAL_TI=m
1097# CONFIG_RTC_CLASS is not set 1149# CONFIG_RTC_CLASS is not set
1098# CONFIG_DMADEVICES is not set 1150# CONFIG_DMADEVICES is not set
1099# CONFIG_UIO is not set 1151# CONFIG_UIO is not set
1152# CONFIG_STAGING is not set
1100 1153
1101# 1154#
1102# File systems 1155# File systems
@@ -1104,15 +1157,23 @@ CONFIG_USB_SERIAL_TI=m
1104CONFIG_EXT2_FS=y 1157CONFIG_EXT2_FS=y
1105# CONFIG_EXT2_FS_XATTR is not set 1158# CONFIG_EXT2_FS_XATTR is not set
1106CONFIG_EXT2_FS_XIP=y 1159CONFIG_EXT2_FS_XIP=y
1107CONFIG_FS_XIP=y
1108CONFIG_EXT3_FS=y 1160CONFIG_EXT3_FS=y
1109# CONFIG_EXT3_FS_XATTR is not set 1161# CONFIG_EXT3_FS_XATTR is not set
1110# CONFIG_EXT4DEV_FS is not set 1162CONFIG_EXT4_FS=y
1163# CONFIG_EXT4DEV_COMPAT is not set
1164CONFIG_EXT4_FS_XATTR=y
1165# CONFIG_EXT4_FS_POSIX_ACL is not set
1166# CONFIG_EXT4_FS_SECURITY is not set
1167CONFIG_FS_XIP=y
1111CONFIG_JBD=y 1168CONFIG_JBD=y
1112# CONFIG_JBD_DEBUG is not set 1169# CONFIG_JBD_DEBUG is not set
1170CONFIG_JBD2=y
1171# CONFIG_JBD2_DEBUG is not set
1172CONFIG_FS_MBCACHE=y
1113# CONFIG_REISERFS_FS is not set 1173# CONFIG_REISERFS_FS is not set
1114# CONFIG_JFS_FS is not set 1174# CONFIG_JFS_FS is not set
1115CONFIG_FS_POSIX_ACL=y 1175CONFIG_FS_POSIX_ACL=y
1176CONFIG_FILE_LOCKING=y
1116# CONFIG_XFS_FS is not set 1177# CONFIG_XFS_FS is not set
1117# CONFIG_GFS2_FS is not set 1178# CONFIG_GFS2_FS is not set
1118# CONFIG_OCFS2_FS is not set 1179# CONFIG_OCFS2_FS is not set
@@ -1146,6 +1207,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1146CONFIG_PROC_FS=y 1207CONFIG_PROC_FS=y
1147CONFIG_PROC_KCORE=y 1208CONFIG_PROC_KCORE=y
1148CONFIG_PROC_SYSCTL=y 1209CONFIG_PROC_SYSCTL=y
1210CONFIG_PROC_PAGE_MONITOR=y
1149CONFIG_SYSFS=y 1211CONFIG_SYSFS=y
1150CONFIG_TMPFS=y 1212CONFIG_TMPFS=y
1151# CONFIG_TMPFS_POSIX_ACL is not set 1213# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1185,6 +1247,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1185CONFIG_NFS_COMMON=y 1247CONFIG_NFS_COMMON=y
1186CONFIG_SUNRPC=y 1248CONFIG_SUNRPC=y
1187CONFIG_SUNRPC_GSS=y 1249CONFIG_SUNRPC_GSS=y
1250# CONFIG_SUNRPC_REGISTER_V4 is not set
1188CONFIG_RPCSEC_GSS_KRB5=y 1251CONFIG_RPCSEC_GSS_KRB5=y
1189# CONFIG_RPCSEC_GSS_SPKM3 is not set 1252# CONFIG_RPCSEC_GSS_SPKM3 is not set
1190# CONFIG_SMB_FS is not set 1253# CONFIG_SMB_FS is not set
@@ -1260,9 +1323,8 @@ CONFIG_NLS_UTF8=y
1260# Library routines 1323# Library routines
1261# 1324#
1262CONFIG_BITREVERSE=y 1325CONFIG_BITREVERSE=y
1263# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1264CONFIG_CRC_CCITT=y 1326CONFIG_CRC_CCITT=y
1265# CONFIG_CRC16 is not set 1327CONFIG_CRC16=y
1266CONFIG_CRC_T10DIF=y 1328CONFIG_CRC_T10DIF=y
1267# CONFIG_CRC_ITU_T is not set 1329# CONFIG_CRC_ITU_T is not set
1268CONFIG_CRC32=y 1330CONFIG_CRC32=y
@@ -1315,21 +1377,28 @@ CONFIG_DEBUG_BUGVERBOSE=y
1315CONFIG_DEBUG_MEMORY_INIT=y 1377CONFIG_DEBUG_MEMORY_INIT=y
1316# CONFIG_DEBUG_LIST is not set 1378# CONFIG_DEBUG_LIST is not set
1317# CONFIG_DEBUG_SG is not set 1379# CONFIG_DEBUG_SG is not set
1318CONFIG_FRAME_POINTER=y
1319# CONFIG_BOOT_PRINTK_DELAY is not set 1380# CONFIG_BOOT_PRINTK_DELAY is not set
1320# CONFIG_RCU_TORTURE_TEST is not set 1381# CONFIG_RCU_TORTURE_TEST is not set
1382# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1321# CONFIG_KPROBES_SANITY_TEST is not set 1383# CONFIG_KPROBES_SANITY_TEST is not set
1322# CONFIG_BACKTRACE_SELF_TEST is not set 1384# CONFIG_BACKTRACE_SELF_TEST is not set
1385# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1323# CONFIG_LKDTM is not set 1386# CONFIG_LKDTM is not set
1324# CONFIG_FAULT_INJECTION is not set 1387# CONFIG_FAULT_INJECTION is not set
1325CONFIG_LATENCYTOP=y 1388CONFIG_LATENCYTOP=y
1326# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1389# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1327CONFIG_HAVE_FTRACE=y 1390CONFIG_HAVE_FUNCTION_TRACER=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y 1391
1329# CONFIG_FTRACE is not set 1392#
1393# Tracers
1394#
1395# CONFIG_FUNCTION_TRACER is not set
1330# CONFIG_IRQSOFF_TRACER is not set 1396# CONFIG_IRQSOFF_TRACER is not set
1331# CONFIG_SCHED_TRACER is not set 1397# CONFIG_SCHED_TRACER is not set
1332# CONFIG_CONTEXT_SWITCH_TRACER is not set 1398# CONFIG_CONTEXT_SWITCH_TRACER is not set
1399# CONFIG_BOOT_TRACER is not set
1400# CONFIG_STACK_TRACER is not set
1401CONFIG_DYNAMIC_PRINTK_DEBUG=y
1333# CONFIG_SAMPLES is not set 1402# CONFIG_SAMPLES is not set
1334CONFIG_HAVE_ARCH_KGDB=y 1403CONFIG_HAVE_ARCH_KGDB=y
1335# CONFIG_KGDB is not set 1404# CONFIG_KGDB is not set
@@ -1338,6 +1407,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1338# CONFIG_DEBUG_PAGEALLOC is not set 1407# CONFIG_DEBUG_PAGEALLOC is not set
1339# CONFIG_CODE_PATCHING_SELFTEST is not set 1408# CONFIG_CODE_PATCHING_SELFTEST is not set
1340# CONFIG_FTR_FIXUP_SELFTEST is not set 1409# CONFIG_FTR_FIXUP_SELFTEST is not set
1410# CONFIG_MSI_BITMAP_SELFTEST is not set
1341CONFIG_XMON=y 1411CONFIG_XMON=y
1342CONFIG_XMON_DEFAULT=y 1412CONFIG_XMON_DEFAULT=y
1343CONFIG_XMON_DISASSEMBLY=y 1413CONFIG_XMON_DISASSEMBLY=y
@@ -1352,14 +1422,19 @@ CONFIG_BOOTX_TEXT=y
1352# 1422#
1353# CONFIG_KEYS is not set 1423# CONFIG_KEYS is not set
1354# CONFIG_SECURITY is not set 1424# CONFIG_SECURITY is not set
1425# CONFIG_SECURITYFS is not set
1355# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1426# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1356CONFIG_CRYPTO=y 1427CONFIG_CRYPTO=y
1357 1428
1358# 1429#
1359# Crypto core or helper 1430# Crypto core or helper
1360# 1431#
1432# CONFIG_CRYPTO_FIPS is not set
1361CONFIG_CRYPTO_ALGAPI=y 1433CONFIG_CRYPTO_ALGAPI=y
1434CONFIG_CRYPTO_AEAD=y
1362CONFIG_CRYPTO_BLKCIPHER=y 1435CONFIG_CRYPTO_BLKCIPHER=y
1436CONFIG_CRYPTO_HASH=y
1437CONFIG_CRYPTO_RNG=y
1363CONFIG_CRYPTO_MANAGER=y 1438CONFIG_CRYPTO_MANAGER=y
1364# CONFIG_CRYPTO_GF128MUL is not set 1439# CONFIG_CRYPTO_GF128MUL is not set
1365# CONFIG_CRYPTO_NULL is not set 1440# CONFIG_CRYPTO_NULL is not set
@@ -1432,6 +1507,11 @@ CONFIG_CRYPTO_DES=y
1432# 1507#
1433# CONFIG_CRYPTO_DEFLATE is not set 1508# CONFIG_CRYPTO_DEFLATE is not set
1434# CONFIG_CRYPTO_LZO is not set 1509# CONFIG_CRYPTO_LZO is not set
1510
1511#
1512# Random Number Generation
1513#
1514# CONFIG_CRYPTO_ANSI_CPRNG is not set
1435# CONFIG_CRYPTO_HW is not set 1515# CONFIG_CRYPTO_HW is not set
1436# CONFIG_PPC_CLOCK is not set 1516# CONFIG_PPC_CLOCK is not set
1437# CONFIG_VIRTUALIZATION is not set 1517# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig
index cc9eaba8c9c9..8d3c62324009 100644
--- a/arch/powerpc/configs/mgcoge_defconfig
+++ b/arch/powerpc/configs/mgcoge_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc2 3# Linux kernel version: 2.6.28-rc3
4# Thu May 22 08:18:47 2008 4# Sat Nov 8 12:39:38 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,13 +15,14 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set
18CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
20# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
21# CONFIG_SMP is not set 22# CONFIG_SMP is not set
22CONFIG_PPC32=y 23CONFIG_PPC32=y
23CONFIG_WORD_SIZE=32 24CONFIG_WORD_SIZE=32
24CONFIG_PPC_MERGE=y 25# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
25CONFIG_MMU=y 26CONFIG_MMU=y
26CONFIG_GENERIC_CMOS_UPDATE=y 27CONFIG_GENERIC_CMOS_UPDATE=y
27CONFIG_GENERIC_TIME=y 28CONFIG_GENERIC_TIME=y
@@ -31,12 +32,14 @@ CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
38CONFIG_GENERIC_CALIBRATE_DELAY=y 40CONFIG_GENERIC_CALIBRATE_DELAY=y
39CONFIG_GENERIC_FIND_NEXT_BIT=y 41CONFIG_GENERIC_FIND_NEXT_BIT=y
42CONFIG_GENERIC_GPIO=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y 44CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
@@ -45,11 +48,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
47CONFIG_OF=y 50CONFIG_OF=y
48# CONFIG_PPC_UDBG_16550 is not set 51CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -82,7 +87,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y 87CONFIG_SYSCTL=y
83CONFIG_EMBEDDED=y 88CONFIG_EMBEDDED=y
84CONFIG_SYSCTL_SYSCALL=y 89CONFIG_SYSCTL_SYSCALL=y
85CONFIG_SYSCTL_SYSCALL_CHECK=y
86CONFIG_KALLSYMS=y 90CONFIG_KALLSYMS=y
87CONFIG_KALLSYMS_ALL=y 91CONFIG_KALLSYMS_ALL=y
88# CONFIG_KALLSYMS_EXTRA_PASS is not set 92# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -90,6 +94,7 @@ CONFIG_HOTPLUG=y
90CONFIG_PRINTK=y 94CONFIG_PRINTK=y
91CONFIG_BUG=y 95CONFIG_BUG=y
92CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_PCSPKR_PLATFORM=y
93CONFIG_COMPAT_BRK=y 98CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 99CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 100CONFIG_FUTEX=y
@@ -99,17 +104,22 @@ CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y 104CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 105CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 106CONFIG_SHMEM=y
107CONFIG_AIO=y
102CONFIG_VM_EVENT_COUNTERS=y 108CONFIG_VM_EVENT_COUNTERS=y
109CONFIG_PCI_QUIRKS=y
103CONFIG_SLAB=y 110CONFIG_SLAB=y
104# CONFIG_SLUB is not set 111# CONFIG_SLUB is not set
105# CONFIG_SLOB is not set 112# CONFIG_SLOB is not set
106# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set 114# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y
109CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
111# CONFIG_HAVE_DMA_ATTRS is not set 120CONFIG_HAVE_ARCH_TRACEHOOK=y
112CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_HAVE_CLK=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
113CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 125# CONFIG_TINY_SHMEM is not set
@@ -119,6 +129,7 @@ CONFIG_BLOCK=y
119# CONFIG_LBD is not set 129# CONFIG_LBD is not set
120# CONFIG_BLK_DEV_IO_TRACE is not set 130# CONFIG_BLK_DEV_IO_TRACE is not set
121# CONFIG_LSF is not set 131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set
122 133
123# 134#
124# IO Schedulers 135# IO Schedulers
@@ -133,18 +144,21 @@ CONFIG_DEFAULT_DEADLINE=y
133# CONFIG_DEFAULT_NOOP is not set 144# CONFIG_DEFAULT_NOOP is not set
134CONFIG_DEFAULT_IOSCHED="deadline" 145CONFIG_DEFAULT_IOSCHED="deadline"
135CONFIG_CLASSIC_RCU=y 146CONFIG_CLASSIC_RCU=y
147# CONFIG_FREEZER is not set
136 148
137# 149#
138# Platform support 150# Platform support
139# 151#
140# CONFIG_PPC_MULTIPLATFORM is not set 152CONFIG_PPC_MULTIPLATFORM=y
141CONFIG_PPC_82xx=y 153CONFIG_CLASSIC32=y
142# CONFIG_PPC_83xx is not set 154CONFIG_PPC_CHRP=y
143# CONFIG_PPC_86xx is not set 155# CONFIG_MPC5121_ADS is not set
144# CONFIG_PPC_MPC512x is not set 156# CONFIG_MPC5121_GENERIC is not set
145# CONFIG_PPC_MPC5121 is not set 157# CONFIG_PPC_MPC52xx is not set
158CONFIG_PPC_PMAC=y
146# CONFIG_PPC_CELL is not set 159# CONFIG_PPC_CELL is not set
147# CONFIG_PPC_CELL_NATIVE is not set 160# CONFIG_PPC_CELL_NATIVE is not set
161CONFIG_PPC_82xx=y
148# CONFIG_MPC8272_ADS is not set 162# CONFIG_MPC8272_ADS is not set
149# CONFIG_PQ2FADS is not set 163# CONFIG_PQ2FADS is not set
150# CONFIG_EP8248E is not set 164# CONFIG_EP8248E is not set
@@ -152,19 +166,28 @@ CONFIG_MGCOGE=y
152# CONFIG_PQ2ADS is not set 166# CONFIG_PQ2ADS is not set
153CONFIG_8260=y 167CONFIG_8260=y
154CONFIG_8272=y 168CONFIG_8272=y
169# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set
172CONFIG_PPC_NATIVE=y
173# CONFIG_UDBG_RTAS_CONSOLE is not set
155# CONFIG_IPIC is not set 174# CONFIG_IPIC is not set
156# CONFIG_MPIC is not set 175CONFIG_MPIC=y
157# CONFIG_MPIC_WEIRD is not set 176# CONFIG_MPIC_WEIRD is not set
158# CONFIG_PPC_I8259 is not set 177CONFIG_PPC_I8259=y
159# CONFIG_PPC_RTAS is not set 178CONFIG_PPC_RTAS=y
179# CONFIG_RTAS_ERROR_LOGGING is not set
180CONFIG_RTAS_PROC=y
160# CONFIG_MMIO_NVRAM is not set 181# CONFIG_MMIO_NVRAM is not set
161# CONFIG_PPC_MPC106 is not set 182CONFIG_PPC_MPC106=y
162# CONFIG_PPC_970_NAP is not set 183# CONFIG_PPC_970_NAP is not set
163# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
164# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
165# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_PPC601_SYNC_FIX is not set
188# CONFIG_TAU is not set
189# CONFIG_QUICC_ENGINE is not set
166CONFIG_CPM2=y 190CONFIG_CPM2=y
167CONFIG_PPC_CPM_NEW_BINDING=y
168# CONFIG_FSL_ULI1575 is not set 191# CONFIG_FSL_ULI1575 is not set
169CONFIG_CPM=y 192CONFIG_CPM=y
170 193
@@ -172,7 +195,6 @@ CONFIG_CPM=y
172# Kernel options 195# Kernel options
173# 196#
174# CONFIG_HIGHMEM is not set 197# CONFIG_HIGHMEM is not set
175# CONFIG_TICK_ONESHOT is not set
176# CONFIG_NO_HZ is not set 198# CONFIG_NO_HZ is not set
177# CONFIG_HIGH_RES_TIMERS is not set 199# CONFIG_HIGH_RES_TIMERS is not set
178CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 200CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -186,6 +208,8 @@ CONFIG_PREEMPT_NONE=y
186# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
187# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
188CONFIG_BINFMT_ELF=y 210CONFIG_BINFMT_ELF=y
211# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
212# CONFIG_HAVE_AOUT is not set
189CONFIG_BINFMT_MISC=y 213CONFIG_BINFMT_MISC=y
190# CONFIG_IOMMU_HELPER is not set 214# CONFIG_IOMMU_HELPER is not set
191CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -195,17 +219,19 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
195CONFIG_ARCH_POPULATES_NODE_MAP=y 219CONFIG_ARCH_POPULATES_NODE_MAP=y
196CONFIG_FLATMEM=y 220CONFIG_FLATMEM=y
197CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
198# CONFIG_SPARSEMEM_STATIC is not set
199# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
200CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
201CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
202# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set
203CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
204CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
205CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y
206CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
207CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
208# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
209# CONFIG_PM is not set 235# CONFIG_PM is not set
210# CONFIG_SECCOMP is not set 236# CONFIG_SECCOMP is not set
211CONFIG_ISA_DMA_API=y 237CONFIG_ISA_DMA_API=y
@@ -213,13 +239,22 @@ CONFIG_ISA_DMA_API=y
213# 239#
214# Bus options 240# Bus options
215# 241#
242# CONFIG_ISA is not set
216CONFIG_ZONE_DMA=y 243CONFIG_ZONE_DMA=y
244CONFIG_PPC_INDIRECT_PCI=y
217CONFIG_FSL_SOC=y 245CONFIG_FSL_SOC=y
218# CONFIG_PCI is not set 246CONFIG_PPC_PCI_CHOICE=y
219# CONFIG_PCI_DOMAINS is not set 247CONFIG_PCI=y
220# CONFIG_PCI_SYSCALL is not set 248CONFIG_PCI_DOMAINS=y
221# CONFIG_ARCH_SUPPORTS_MSI is not set 249CONFIG_PCI_SYSCALL=y
250CONFIG_PCI_8260=y
251# CONFIG_PCIEPORTBUS is not set
252CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_MSI is not set
254# CONFIG_PCI_LEGACY is not set
255# CONFIG_PCI_DEBUG is not set
222# CONFIG_PCCARD is not set 256# CONFIG_PCCARD is not set
257# CONFIG_HOTPLUG_PCI is not set
223# CONFIG_HAS_RAPIDIO is not set 258# CONFIG_HAS_RAPIDIO is not set
224 259
225# 260#
@@ -235,10 +270,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
235CONFIG_KERNEL_START=0xc0000000 270CONFIG_KERNEL_START=0xc0000000
236CONFIG_PHYSICAL_START=0x00000000 271CONFIG_PHYSICAL_START=0x00000000
237CONFIG_TASK_SIZE=0xc0000000 272CONFIG_TASK_SIZE=0xc0000000
238
239#
240# Networking
241#
242CONFIG_NET=y 273CONFIG_NET=y
243 274
244# 275#
@@ -276,7 +307,6 @@ CONFIG_INET_TCP_DIAG=y
276# CONFIG_TCP_CONG_ADVANCED is not set 307# CONFIG_TCP_CONG_ADVANCED is not set
277CONFIG_TCP_CONG_CUBIC=y 308CONFIG_TCP_CONG_CUBIC=y
278CONFIG_DEFAULT_TCP_CONG="cubic" 309CONFIG_DEFAULT_TCP_CONG="cubic"
279# CONFIG_IP_VS is not set
280# CONFIG_IPV6 is not set 310# CONFIG_IPV6 is not set
281# CONFIG_NETWORK_SECMARK is not set 311# CONFIG_NETWORK_SECMARK is not set
282CONFIG_NETFILTER=y 312CONFIG_NETFILTER=y
@@ -290,10 +320,12 @@ CONFIG_NETFILTER_ADVANCED=y
290# CONFIG_NETFILTER_NETLINK_LOG is not set 320# CONFIG_NETFILTER_NETLINK_LOG is not set
291# CONFIG_NF_CONNTRACK is not set 321# CONFIG_NF_CONNTRACK is not set
292# CONFIG_NETFILTER_XTABLES is not set 322# CONFIG_NETFILTER_XTABLES is not set
323# CONFIG_IP_VS is not set
293 324
294# 325#
295# IP: Netfilter Configuration 326# IP: Netfilter Configuration
296# 327#
328# CONFIG_NF_DEFRAG_IPV4 is not set
297# CONFIG_IP_NF_QUEUE is not set 329# CONFIG_IP_NF_QUEUE is not set
298# CONFIG_IP_NF_IPTABLES is not set 330# CONFIG_IP_NF_IPTABLES is not set
299# CONFIG_IP_NF_ARPTABLES is not set 331# CONFIG_IP_NF_ARPTABLES is not set
@@ -314,11 +346,10 @@ CONFIG_NETFILTER_ADVANCED=y
314# CONFIG_CAN is not set 346# CONFIG_CAN is not set
315# CONFIG_IRDA is not set 347# CONFIG_IRDA is not set
316# CONFIG_BT is not set 348# CONFIG_BT is not set
317 349# CONFIG_PHONET is not set
318# 350CONFIG_WIRELESS=y
319# Wireless
320#
321# CONFIG_CFG80211 is not set 351# CONFIG_CFG80211 is not set
352CONFIG_WIRELESS_OLD_REGULATORY=y
322# CONFIG_WIRELESS_EXT is not set 353# CONFIG_WIRELESS_EXT is not set
323# CONFIG_MAC80211 is not set 354# CONFIG_MAC80211 is not set
324# CONFIG_IEEE80211 is not set 355# CONFIG_IEEE80211 is not set
@@ -398,11 +429,13 @@ CONFIG_MTD_CFI_UTIL=y
398# CONFIG_MTD_COMPLEX_MAPPINGS is not set 429# CONFIG_MTD_COMPLEX_MAPPINGS is not set
399# CONFIG_MTD_PHYSMAP is not set 430# CONFIG_MTD_PHYSMAP is not set
400CONFIG_MTD_PHYSMAP_OF=y 431CONFIG_MTD_PHYSMAP_OF=y
432# CONFIG_MTD_INTEL_VR_NOR is not set
401# CONFIG_MTD_PLATRAM is not set 433# CONFIG_MTD_PLATRAM is not set
402 434
403# 435#
404# Self-contained MTD device drivers 436# Self-contained MTD device drivers
405# 437#
438# CONFIG_MTD_PMC551 is not set
406# CONFIG_MTD_SLRAM is not set 439# CONFIG_MTD_SLRAM is not set
407# CONFIG_MTD_PHRAM is not set 440# CONFIG_MTD_PHRAM is not set
408# CONFIG_MTD_MTDRAM is not set 441# CONFIG_MTD_MTDRAM is not set
@@ -422,19 +455,26 @@ CONFIG_MTD_PHYSMAP_OF=y
422# 455#
423# CONFIG_MTD_UBI is not set 456# CONFIG_MTD_UBI is not set
424CONFIG_OF_DEVICE=y 457CONFIG_OF_DEVICE=y
458CONFIG_OF_GPIO=y
425# CONFIG_PARPORT is not set 459# CONFIG_PARPORT is not set
426CONFIG_BLK_DEV=y 460CONFIG_BLK_DEV=y
427# CONFIG_BLK_DEV_FD is not set 461# CONFIG_BLK_DEV_FD is not set
462# CONFIG_MAC_FLOPPY is not set
463# CONFIG_BLK_CPQ_DA is not set
464# CONFIG_BLK_CPQ_CISS_DA is not set
465# CONFIG_BLK_DEV_DAC960 is not set
428# CONFIG_BLK_DEV_COW_COMMON is not set 466# CONFIG_BLK_DEV_COW_COMMON is not set
429CONFIG_BLK_DEV_LOOP=y 467CONFIG_BLK_DEV_LOOP=y
430# CONFIG_BLK_DEV_CRYPTOLOOP is not set 468# CONFIG_BLK_DEV_CRYPTOLOOP is not set
431# CONFIG_BLK_DEV_NBD is not set 469# CONFIG_BLK_DEV_NBD is not set
470# CONFIG_BLK_DEV_SX8 is not set
432CONFIG_BLK_DEV_RAM=y 471CONFIG_BLK_DEV_RAM=y
433CONFIG_BLK_DEV_RAM_COUNT=16 472CONFIG_BLK_DEV_RAM_COUNT=16
434CONFIG_BLK_DEV_RAM_SIZE=4096 473CONFIG_BLK_DEV_RAM_SIZE=4096
435# CONFIG_BLK_DEV_XIP is not set 474# CONFIG_BLK_DEV_XIP is not set
436# CONFIG_CDROM_PKTCDVD is not set 475# CONFIG_CDROM_PKTCDVD is not set
437# CONFIG_ATA_OVER_ETH is not set 476# CONFIG_ATA_OVER_ETH is not set
477# CONFIG_BLK_DEV_HD is not set
438# CONFIG_MISC_DEVICES is not set 478# CONFIG_MISC_DEVICES is not set
439CONFIG_HAVE_IDE=y 479CONFIG_HAVE_IDE=y
440# CONFIG_IDE is not set 480# CONFIG_IDE is not set
@@ -448,14 +488,25 @@ CONFIG_HAVE_IDE=y
448# CONFIG_SCSI_NETLINK is not set 488# CONFIG_SCSI_NETLINK is not set
449# CONFIG_ATA is not set 489# CONFIG_ATA is not set
450# CONFIG_MD is not set 490# CONFIG_MD is not set
491# CONFIG_FUSION is not set
492
493#
494# IEEE 1394 (FireWire) support
495#
496
497#
498# A new alternative FireWire stack is available with EXPERIMENTAL=y
499#
500# CONFIG_IEEE1394 is not set
501# CONFIG_I2O is not set
451# CONFIG_MACINTOSH_DRIVERS is not set 502# CONFIG_MACINTOSH_DRIVERS is not set
452CONFIG_NETDEVICES=y 503CONFIG_NETDEVICES=y
453# CONFIG_NETDEVICES_MULTIQUEUE is not set
454# CONFIG_DUMMY is not set 504# CONFIG_DUMMY is not set
455# CONFIG_BONDING is not set 505# CONFIG_BONDING is not set
456# CONFIG_EQUALIZER is not set 506# CONFIG_EQUALIZER is not set
457# CONFIG_TUN is not set 507# CONFIG_TUN is not set
458# CONFIG_VETH is not set 508# CONFIG_VETH is not set
509# CONFIG_ARCNET is not set
459CONFIG_PHYLIB=y 510CONFIG_PHYLIB=y
460 511
461# 512#
@@ -475,17 +526,31 @@ CONFIG_FIXED_PHY=y
475# CONFIG_MDIO_BITBANG is not set 526# CONFIG_MDIO_BITBANG is not set
476CONFIG_NET_ETHERNET=y 527CONFIG_NET_ETHERNET=y
477CONFIG_MII=y 528CONFIG_MII=y
529# CONFIG_MACE is not set
530# CONFIG_BMAC is not set
531# CONFIG_HAPPYMEAL is not set
532# CONFIG_SUNGEM is not set
533# CONFIG_CASSINI is not set
534# CONFIG_NET_VENDOR_3COM is not set
535# CONFIG_NET_TULIP is not set
536# CONFIG_HP100 is not set
478# CONFIG_IBM_NEW_EMAC_ZMII is not set 537# CONFIG_IBM_NEW_EMAC_ZMII is not set
479# CONFIG_IBM_NEW_EMAC_RGMII is not set 538# CONFIG_IBM_NEW_EMAC_RGMII is not set
480# CONFIG_IBM_NEW_EMAC_TAH is not set 539# CONFIG_IBM_NEW_EMAC_TAH is not set
481# 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
544# CONFIG_NET_PCI is not set
482# CONFIG_B44 is not set 545# CONFIG_B44 is not set
546# CONFIG_ATL2 is not set
483CONFIG_FS_ENET=y 547CONFIG_FS_ENET=y
484CONFIG_FS_ENET_HAS_SCC=y 548CONFIG_FS_ENET_HAS_SCC=y
485# CONFIG_FS_ENET_HAS_FCC is not set 549# CONFIG_FS_ENET_HAS_FCC is not set
486# CONFIG_FS_ENET_MDIO_FCC is not set 550# CONFIG_FS_ENET_MDIO_FCC is not set
487# CONFIG_NETDEV_1000 is not set 551# CONFIG_NETDEV_1000 is not set
488# CONFIG_NETDEV_10000 is not set 552# CONFIG_NETDEV_10000 is not set
553# CONFIG_TR is not set
489 554
490# 555#
491# Wireless LAN 556# Wireless LAN
@@ -494,6 +559,7 @@ CONFIG_FS_ENET_HAS_SCC=y
494# CONFIG_WLAN_80211 is not set 559# CONFIG_WLAN_80211 is not set
495# CONFIG_IWLWIFI_LEDS is not set 560# CONFIG_IWLWIFI_LEDS is not set
496# CONFIG_WAN is not set 561# CONFIG_WAN is not set
562# CONFIG_FDDI is not set
497# CONFIG_PPP is not set 563# CONFIG_PPP is not set
498# CONFIG_SLIP is not set 564# CONFIG_SLIP is not set
499# CONFIG_NETPOLL is not set 565# CONFIG_NETPOLL is not set
@@ -530,29 +596,47 @@ CONFIG_DEVKMEM=y
530# CONFIG_SERIAL_UARTLITE is not set 596# CONFIG_SERIAL_UARTLITE is not set
531CONFIG_SERIAL_CORE=y 597CONFIG_SERIAL_CORE=y
532CONFIG_SERIAL_CORE_CONSOLE=y 598CONFIG_SERIAL_CORE_CONSOLE=y
599# CONFIG_SERIAL_PMACZILOG is not set
533CONFIG_SERIAL_CPM=y 600CONFIG_SERIAL_CPM=y
534CONFIG_SERIAL_CPM_CONSOLE=y 601CONFIG_SERIAL_CPM_CONSOLE=y
535# CONFIG_SERIAL_CPM_SCC1 is not set 602# CONFIG_SERIAL_JSM is not set
536# CONFIG_SERIAL_CPM_SCC2 is not set
537# CONFIG_SERIAL_CPM_SCC3 is not set
538# CONFIG_SERIAL_CPM_SCC4 is not set
539CONFIG_SERIAL_CPM_SMC1=y
540CONFIG_SERIAL_CPM_SMC2=y
541CONFIG_UNIX98_PTYS=y 603CONFIG_UNIX98_PTYS=y
542CONFIG_LEGACY_PTYS=y 604CONFIG_LEGACY_PTYS=y
543CONFIG_LEGACY_PTY_COUNT=256 605CONFIG_LEGACY_PTY_COUNT=256
606# CONFIG_BRIQ_PANEL is not set
607# CONFIG_HVC_RTAS is not set
544# CONFIG_IPMI_HANDLER is not set 608# CONFIG_IPMI_HANDLER is not set
545CONFIG_HW_RANDOM=y 609CONFIG_HW_RANDOM=y
546# CONFIG_NVRAM is not set 610# CONFIG_NVRAM is not set
547# CONFIG_GEN_RTC is not set 611# CONFIG_GEN_RTC is not set
548# CONFIG_R3964 is not set 612# CONFIG_R3964 is not set
613# CONFIG_APPLICOM is not set
549# CONFIG_RAW_DRIVER is not set 614# CONFIG_RAW_DRIVER is not set
615CONFIG_DEVPORT=y
550# CONFIG_I2C is not set 616# CONFIG_I2C is not set
551# CONFIG_SPI is not set 617# CONFIG_SPI is not set
618CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
619CONFIG_ARCH_REQUIRE_GPIOLIB=y
620CONFIG_GPIOLIB=y
621# CONFIG_DEBUG_GPIO is not set
622
623#
624# I2C GPIO expanders:
625#
626
627#
628# PCI GPIO expanders:
629#
630# CONFIG_GPIO_BT8XX is not set
631
632#
633# SPI GPIO expanders:
634#
552# CONFIG_W1 is not set 635# CONFIG_W1 is not set
553# CONFIG_POWER_SUPPLY is not set 636# CONFIG_POWER_SUPPLY is not set
554# CONFIG_HWMON is not set 637# CONFIG_HWMON is not set
555# CONFIG_THERMAL is not set 638# CONFIG_THERMAL is not set
639# CONFIG_THERMAL_HWMON is not set
556# CONFIG_WATCHDOG is not set 640# CONFIG_WATCHDOG is not set
557 641
558# 642#
@@ -564,8 +648,18 @@ CONFIG_SSB_POSSIBLE=y
564# 648#
565# Multifunction device drivers 649# Multifunction device drivers
566# 650#
651# CONFIG_MFD_CORE is not set
567# CONFIG_MFD_SM501 is not set 652# CONFIG_MFD_SM501 is not set
568# CONFIG_HTC_PASIC3 is not set 653# CONFIG_HTC_PASIC3 is not set
654# CONFIG_MFD_TMIO is not set
655
656#
657# Voltage and Current regulators
658#
659# CONFIG_REGULATOR is not set
660# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
661# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
662# CONFIG_REGULATOR_BQ24022 is not set
569 663
570# 664#
571# Multimedia devices 665# Multimedia devices
@@ -586,6 +680,8 @@ CONFIG_SSB_POSSIBLE=y
586# 680#
587# Graphics support 681# Graphics support
588# 682#
683# CONFIG_AGP is not set
684# CONFIG_DRM is not set
589# CONFIG_VGASTATE is not set 685# CONFIG_VGASTATE is not set
590# CONFIG_VIDEO_OUTPUT_CONTROL is not set 686# CONFIG_VIDEO_OUTPUT_CONTROL is not set
591# CONFIG_FB is not set 687# CONFIG_FB is not set
@@ -595,19 +691,17 @@ CONFIG_SSB_POSSIBLE=y
595# Display device support 691# Display device support
596# 692#
597# CONFIG_DISPLAY_SUPPORT is not set 693# CONFIG_DISPLAY_SUPPORT is not set
598
599#
600# Sound
601#
602# CONFIG_SOUND is not set 694# CONFIG_SOUND is not set
603# CONFIG_USB_SUPPORT is not set 695# CONFIG_USB_SUPPORT is not set
604# CONFIG_MMC is not set 696# CONFIG_MMC is not set
605# CONFIG_MEMSTICK is not set 697# CONFIG_MEMSTICK is not set
606# CONFIG_NEW_LEDS is not set 698# CONFIG_NEW_LEDS is not set
607# CONFIG_ACCESSIBILITY is not set 699# CONFIG_ACCESSIBILITY is not set
700# CONFIG_INFINIBAND is not set
608# CONFIG_RTC_CLASS is not set 701# CONFIG_RTC_CLASS is not set
609# CONFIG_DMADEVICES is not set 702# CONFIG_DMADEVICES is not set
610# CONFIG_UIO is not set 703# CONFIG_UIO is not set
704# CONFIG_STAGING is not set
611 705
612# 706#
613# File systems 707# File systems
@@ -617,11 +711,13 @@ CONFIG_EXT2_FS=y
617# CONFIG_EXT2_FS_XIP is not set 711# CONFIG_EXT2_FS_XIP is not set
618CONFIG_EXT3_FS=y 712CONFIG_EXT3_FS=y
619# CONFIG_EXT3_FS_XATTR is not set 713# CONFIG_EXT3_FS_XATTR is not set
714# CONFIG_EXT4_FS is not set
620CONFIG_JBD=y 715CONFIG_JBD=y
621# CONFIG_JBD_DEBUG is not set 716# CONFIG_JBD_DEBUG is not set
622# CONFIG_REISERFS_FS is not set 717# CONFIG_REISERFS_FS is not set
623# CONFIG_JFS_FS is not set 718# CONFIG_JFS_FS is not set
624# CONFIG_FS_POSIX_ACL is not set 719# CONFIG_FS_POSIX_ACL is not set
720CONFIG_FILE_LOCKING=y
625# CONFIG_XFS_FS is not set 721# CONFIG_XFS_FS is not set
626# CONFIG_OCFS2_FS is not set 722# CONFIG_OCFS2_FS is not set
627CONFIG_DNOTIFY=y 723CONFIG_DNOTIFY=y
@@ -651,6 +747,7 @@ CONFIG_AUTOFS4_FS=y
651CONFIG_PROC_FS=y 747CONFIG_PROC_FS=y
652CONFIG_PROC_KCORE=y 748CONFIG_PROC_KCORE=y
653CONFIG_PROC_SYSCTL=y 749CONFIG_PROC_SYSCTL=y
750CONFIG_PROC_PAGE_MONITOR=y
654CONFIG_SYSFS=y 751CONFIG_SYSFS=y
655CONFIG_TMPFS=y 752CONFIG_TMPFS=y
656# CONFIG_TMPFS_POSIX_ACL is not set 753# CONFIG_TMPFS_POSIX_ACL is not set
@@ -673,6 +770,7 @@ CONFIG_JFFS2_RTIME=y
673CONFIG_CRAMFS=y 770CONFIG_CRAMFS=y
674# CONFIG_VXFS_FS is not set 771# CONFIG_VXFS_FS is not set
675# CONFIG_MINIX_FS is not set 772# CONFIG_MINIX_FS is not set
773# CONFIG_OMFS_FS is not set
676# CONFIG_HPFS_FS is not set 774# CONFIG_HPFS_FS is not set
677# CONFIG_QNX4FS_FS is not set 775# CONFIG_QNX4FS_FS is not set
678# CONFIG_ROMFS_FS is not set 776# CONFIG_ROMFS_FS is not set
@@ -682,8 +780,8 @@ CONFIG_NETWORK_FILESYSTEMS=y
682CONFIG_NFS_FS=y 780CONFIG_NFS_FS=y
683CONFIG_NFS_V3=y 781CONFIG_NFS_V3=y
684# CONFIG_NFS_V3_ACL is not set 782# CONFIG_NFS_V3_ACL is not set
685# CONFIG_NFSD is not set
686CONFIG_ROOT_NFS=y 783CONFIG_ROOT_NFS=y
784# CONFIG_NFSD is not set
687CONFIG_LOCKD=y 785CONFIG_LOCKD=y
688CONFIG_LOCKD_V4=y 786CONFIG_LOCKD_V4=y
689CONFIG_NFS_COMMON=y 787CONFIG_NFS_COMMON=y
@@ -759,9 +857,9 @@ CONFIG_NLS_UTF8=y
759# Library routines 857# Library routines
760# 858#
761CONFIG_BITREVERSE=y 859CONFIG_BITREVERSE=y
762# CONFIG_GENERIC_FIND_FIRST_BIT is not set
763# CONFIG_CRC_CCITT is not set 860# CONFIG_CRC_CCITT is not set
764# CONFIG_CRC16 is not set 861# CONFIG_CRC16 is not set
862# CONFIG_CRC_T10DIF is not set
765# CONFIG_CRC_ITU_T is not set 863# CONFIG_CRC_ITU_T is not set
766CONFIG_CRC32=y 864CONFIG_CRC32=y
767# CONFIG_CRC7 is not set 865# CONFIG_CRC7 is not set
@@ -804,20 +902,41 @@ CONFIG_DEBUG_BUGVERBOSE=y
804CONFIG_DEBUG_INFO=y 902CONFIG_DEBUG_INFO=y
805# CONFIG_DEBUG_VM is not set 903# CONFIG_DEBUG_VM is not set
806# CONFIG_DEBUG_WRITECOUNT is not set 904# CONFIG_DEBUG_WRITECOUNT is not set
905# CONFIG_DEBUG_MEMORY_INIT is not set
807# CONFIG_DEBUG_LIST is not set 906# CONFIG_DEBUG_LIST is not set
808# CONFIG_DEBUG_SG is not set 907# CONFIG_DEBUG_SG is not set
809# CONFIG_BOOT_PRINTK_DELAY is not set 908# CONFIG_BOOT_PRINTK_DELAY is not set
909# CONFIG_RCU_TORTURE_TEST is not set
910# CONFIG_RCU_CPU_STALL_DETECTOR is not set
810# CONFIG_BACKTRACE_SELF_TEST is not set 911# CONFIG_BACKTRACE_SELF_TEST is not set
912# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
811# CONFIG_FAULT_INJECTION is not set 913# CONFIG_FAULT_INJECTION is not set
914# CONFIG_LATENCYTOP is not set
915CONFIG_SYSCTL_SYSCALL_CHECK=y
916CONFIG_HAVE_FUNCTION_TRACER=y
917
918#
919# Tracers
920#
921# CONFIG_FUNCTION_TRACER is not set
922# CONFIG_SCHED_TRACER is not set
923# CONFIG_CONTEXT_SWITCH_TRACER is not set
924# CONFIG_BOOT_TRACER is not set
925# CONFIG_STACK_TRACER is not set
926# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
812# CONFIG_SAMPLES is not set 927# CONFIG_SAMPLES is not set
928CONFIG_HAVE_ARCH_KGDB=y
813# CONFIG_DEBUG_STACKOVERFLOW is not set 929# CONFIG_DEBUG_STACKOVERFLOW is not set
814# CONFIG_DEBUG_STACK_USAGE is not set 930# CONFIG_DEBUG_STACK_USAGE is not set
815# CONFIG_DEBUG_PAGEALLOC is not set 931# CONFIG_DEBUG_PAGEALLOC is not set
816# CONFIG_DEBUGGER is not set 932# CONFIG_CODE_PATCHING_SELFTEST is not set
817# CONFIG_KGDB_CONSOLE is not set 933# CONFIG_FTR_FIXUP_SELFTEST is not set
934# CONFIG_MSI_BITMAP_SELFTEST is not set
935# CONFIG_XMON is not set
818# CONFIG_IRQSTACKS is not set 936# CONFIG_IRQSTACKS is not set
819# CONFIG_VIRQ_DEBUG is not set 937# CONFIG_VIRQ_DEBUG is not set
820CONFIG_BDI_SWITCH=y 938CONFIG_BDI_SWITCH=y
939# CONFIG_BOOTX_TEXT is not set
821# CONFIG_PPC_EARLY_DEBUG is not set 940# CONFIG_PPC_EARLY_DEBUG is not set
822 941
823# 942#
@@ -825,13 +944,19 @@ CONFIG_BDI_SWITCH=y
825# 944#
826# CONFIG_KEYS is not set 945# CONFIG_KEYS is not set
827# CONFIG_SECURITY is not set 946# CONFIG_SECURITY is not set
947# CONFIG_SECURITYFS is not set
948# CONFIG_SECURITY_FILE_CAPABILITIES is not set
828CONFIG_CRYPTO=y 949CONFIG_CRYPTO=y
829 950
830# 951#
831# Crypto core or helper 952# Crypto core or helper
832# 953#
954# CONFIG_CRYPTO_FIPS is not set
833CONFIG_CRYPTO_ALGAPI=y 955CONFIG_CRYPTO_ALGAPI=y
956CONFIG_CRYPTO_AEAD=y
834CONFIG_CRYPTO_BLKCIPHER=y 957CONFIG_CRYPTO_BLKCIPHER=y
958CONFIG_CRYPTO_HASH=y
959CONFIG_CRYPTO_RNG=y
835CONFIG_CRYPTO_MANAGER=y 960CONFIG_CRYPTO_MANAGER=y
836# CONFIG_CRYPTO_NULL is not set 961# CONFIG_CRYPTO_NULL is not set
837# CONFIG_CRYPTO_CRYPTD is not set 962# CONFIG_CRYPTO_CRYPTD is not set
@@ -865,6 +990,10 @@ CONFIG_CRYPTO_PCBC=y
865# CONFIG_CRYPTO_MD4 is not set 990# CONFIG_CRYPTO_MD4 is not set
866CONFIG_CRYPTO_MD5=y 991CONFIG_CRYPTO_MD5=y
867# CONFIG_CRYPTO_MICHAEL_MIC is not set 992# CONFIG_CRYPTO_MICHAEL_MIC is not set
993# CONFIG_CRYPTO_RMD128 is not set
994# CONFIG_CRYPTO_RMD160 is not set
995# CONFIG_CRYPTO_RMD256 is not set
996# CONFIG_CRYPTO_RMD320 is not set
868# CONFIG_CRYPTO_SHA1 is not set 997# CONFIG_CRYPTO_SHA1 is not set
869# CONFIG_CRYPTO_SHA256 is not set 998# CONFIG_CRYPTO_SHA256 is not set
870# CONFIG_CRYPTO_SHA512 is not set 999# CONFIG_CRYPTO_SHA512 is not set
@@ -894,7 +1023,12 @@ CONFIG_CRYPTO_DES=y
894# 1023#
895# CONFIG_CRYPTO_DEFLATE is not set 1024# CONFIG_CRYPTO_DEFLATE is not set
896# CONFIG_CRYPTO_LZO is not set 1025# CONFIG_CRYPTO_LZO is not set
1026
1027#
1028# Random Number Generation
1029#
1030# CONFIG_CRYPTO_ANSI_CPRNG is not set
897# CONFIG_CRYPTO_HW is not set 1031# CONFIG_CRYPTO_HW is not set
898# CONFIG_PPC_CLOCK is not set 1032CONFIG_PPC_CLOCK=y
899CONFIG_PPC_LIB_RHEAP=y 1033CONFIG_PPC_LIB_RHEAP=y
900# CONFIG_VIRTUALIZATION is not set 1034# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig
index 3cd6ce4be827..fbaa67f7b0ef 100644
--- a/arch/powerpc/configs/mgsuvd_defconfig
+++ b/arch/powerpc/configs/mgsuvd_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc2 3# Linux kernel version: 2.6.28-rc3
4# Wed May 21 13:30:33 2008 4# Sat Nov 8 12:39:39 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,7 +19,7 @@ CONFIG_8xx=y
19CONFIG_NOT_COHERENT_CACHE=y 19CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 20CONFIG_PPC32=y
21CONFIG_WORD_SIZE=32 21CONFIG_WORD_SIZE=32
22CONFIG_PPC_MERGE=y 22# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
23CONFIG_MMU=y 23CONFIG_MMU=y
24CONFIG_GENERIC_CMOS_UPDATE=y 24CONFIG_GENERIC_CMOS_UPDATE=y
25CONFIG_GENERIC_TIME=y 25CONFIG_GENERIC_TIME=y
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -99,6 +100,7 @@ CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y 100CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 102CONFIG_SHMEM=y
103CONFIG_AIO=y
102# CONFIG_VM_EVENT_COUNTERS is not set 104# CONFIG_VM_EVENT_COUNTERS is not set
103CONFIG_SLAB=y 105CONFIG_SLAB=y
104# CONFIG_SLUB is not set 106# CONFIG_SLUB is not set
@@ -106,10 +108,13 @@ CONFIG_SLAB=y
106# CONFIG_PROFILING is not set 108# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set 109# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y
109CONFIG_HAVE_KPROBES=y 113CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 114CONFIG_HAVE_KRETPROBES=y
111# CONFIG_HAVE_DMA_ATTRS is not set 115CONFIG_HAVE_ARCH_TRACEHOOK=y
112CONFIG_PROC_PAGE_MONITOR=y 116CONFIG_HAVE_CLK=y
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
113CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
@@ -120,6 +125,7 @@ CONFIG_BLOCK=y
120# CONFIG_BLK_DEV_IO_TRACE is not set 125# CONFIG_BLK_DEV_IO_TRACE is not set
121# CONFIG_LSF is not set 126# CONFIG_LSF is not set
122# CONFIG_BLK_DEV_BSG is not set 127# CONFIG_BLK_DEV_BSG is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set
123 129
124# 130#
125# IO Schedulers 131# IO Schedulers
@@ -134,12 +140,11 @@ CONFIG_DEFAULT_AS=y
134# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
135CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
136CONFIG_CLASSIC_RCU=y 142CONFIG_CLASSIC_RCU=y
143# CONFIG_FREEZER is not set
137 144
138# 145#
139# Platform support 146# Platform support
140# 147#
141# CONFIG_PPC_MPC512x is not set
142# CONFIG_PPC_MPC5121 is not set
143# CONFIG_PPC_CELL is not set 148# CONFIG_PPC_CELL is not set
144# CONFIG_PPC_CELL_NATIVE is not set 149# CONFIG_PPC_CELL_NATIVE is not set
145CONFIG_CPM1=y 150CONFIG_CPM1=y
@@ -158,6 +163,7 @@ CONFIG_PPC_MGSUVD=y
158# Generic MPC8xx Options 163# Generic MPC8xx Options
159# 164#
160CONFIG_8xx_COPYBACK=y 165CONFIG_8xx_COPYBACK=y
166# CONFIG_8xx_GPIO is not set
161CONFIG_8xx_CPU6=y 167CONFIG_8xx_CPU6=y
162CONFIG_8xx_CPU15=y 168CONFIG_8xx_CPU15=y
163# CONFIG_NO_UCODE_PATCH is not set 169# CONFIG_NO_UCODE_PATCH is not set
@@ -177,7 +183,7 @@ CONFIG_UCODE_PATCH=y
177# CONFIG_PPC_INDIRECT_IO is not set 183# CONFIG_PPC_INDIRECT_IO is not set
178# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
179# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
180CONFIG_PPC_CPM_NEW_BINDING=y 186# CONFIG_QUICC_ENGINE is not set
181# CONFIG_FSL_ULI1575 is not set 187# CONFIG_FSL_ULI1575 is not set
182CONFIG_CPM=y 188CONFIG_CPM=y
183 189
@@ -185,7 +191,6 @@ CONFIG_CPM=y
185# Kernel options 191# Kernel options
186# 192#
187# CONFIG_HIGHMEM is not set 193# CONFIG_HIGHMEM is not set
188# CONFIG_TICK_ONESHOT is not set
189# CONFIG_NO_HZ is not set 194# CONFIG_NO_HZ is not set
190# CONFIG_HIGH_RES_TIMERS is not set 195# CONFIG_HIGH_RES_TIMERS is not set
191CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 196CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -199,6 +204,8 @@ CONFIG_PREEMPT_NONE=y
199# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
200# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
201CONFIG_BINFMT_ELF=y 206CONFIG_BINFMT_ELF=y
207# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
208# CONFIG_HAVE_AOUT is not set
202# CONFIG_BINFMT_MISC is not set 209# CONFIG_BINFMT_MISC is not set
203CONFIG_MATH_EMULATION=y 210CONFIG_MATH_EMULATION=y
204# CONFIG_IOMMU_HELPER is not set 211# CONFIG_IOMMU_HELPER is not set
@@ -213,17 +220,19 @@ CONFIG_FLATMEM_MANUAL=y
213# CONFIG_SPARSEMEM_MANUAL is not set 220# CONFIG_SPARSEMEM_MANUAL is not set
214CONFIG_FLATMEM=y 221CONFIG_FLATMEM=y
215CONFIG_FLAT_NODE_MEM_MAP=y 222CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_STATIC is not set
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
223CONFIG_VIRT_TO_BUS=y 230CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y
224CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
225# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
226# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 236# CONFIG_PM is not set
228# CONFIG_SECCOMP is not set 237# CONFIG_SECCOMP is not set
229CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -255,10 +264,6 @@ CONFIG_PHYSICAL_START=0x00000000
255CONFIG_TASK_SIZE=0x80000000 264CONFIG_TASK_SIZE=0x80000000
256CONFIG_CONSISTENT_START=0xfd000000 265CONFIG_CONSISTENT_START=0xfd000000
257CONFIG_CONSISTENT_SIZE=0x00200000 266CONFIG_CONSISTENT_SIZE=0x00200000
258
259#
260# Networking
261#
262CONFIG_NET=y 267CONFIG_NET=y
263 268
264# 269#
@@ -309,6 +314,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
309# CONFIG_TIPC is not set 314# CONFIG_TIPC is not set
310# CONFIG_ATM is not set 315# CONFIG_ATM is not set
311# CONFIG_BRIDGE is not set 316# CONFIG_BRIDGE is not set
317# CONFIG_NET_DSA is not set
312# CONFIG_VLAN_8021Q is not set 318# CONFIG_VLAN_8021Q is not set
313# CONFIG_DECNET is not set 319# CONFIG_DECNET is not set
314# CONFIG_LLC2 is not set 320# CONFIG_LLC2 is not set
@@ -329,11 +335,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_IRDA is not set 335# CONFIG_IRDA is not set
330# CONFIG_BT is not set 336# CONFIG_BT is not set
331# CONFIG_AF_RXRPC is not set 337# CONFIG_AF_RXRPC is not set
332 338# CONFIG_PHONET is not set
333# 339CONFIG_WIRELESS=y
334# Wireless
335#
336# CONFIG_CFG80211 is not set 340# CONFIG_CFG80211 is not set
341CONFIG_WIRELESS_OLD_REGULATORY=y
337# CONFIG_WIRELESS_EXT is not set 342# CONFIG_WIRELESS_EXT is not set
338# CONFIG_MAC80211 is not set 343# CONFIG_MAC80211 is not set
339# CONFIG_IEEE80211 is not set 344# CONFIG_IEEE80211 is not set
@@ -447,6 +452,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
447# CONFIG_BLK_DEV_XIP is not set 452# CONFIG_BLK_DEV_XIP is not set
448# CONFIG_CDROM_PKTCDVD is not set 453# CONFIG_CDROM_PKTCDVD is not set
449# CONFIG_ATA_OVER_ETH is not set 454# CONFIG_ATA_OVER_ETH is not set
455# CONFIG_BLK_DEV_HD is not set
450# CONFIG_MISC_DEVICES is not set 456# CONFIG_MISC_DEVICES is not set
451CONFIG_HAVE_IDE=y 457CONFIG_HAVE_IDE=y
452# CONFIG_IDE is not set 458# CONFIG_IDE is not set
@@ -462,7 +468,6 @@ CONFIG_HAVE_IDE=y
462# CONFIG_MD is not set 468# CONFIG_MD is not set
463# CONFIG_MACINTOSH_DRIVERS is not set 469# CONFIG_MACINTOSH_DRIVERS is not set
464CONFIG_NETDEVICES=y 470CONFIG_NETDEVICES=y
465# CONFIG_NETDEVICES_MULTIQUEUE is not set
466# CONFIG_DUMMY is not set 471# CONFIG_DUMMY is not set
467# CONFIG_BONDING is not set 472# CONFIG_BONDING is not set
468# CONFIG_MACVLAN is not set 473# CONFIG_MACVLAN is not set
@@ -492,6 +497,9 @@ CONFIG_MII=y
492# CONFIG_IBM_NEW_EMAC_RGMII is not set 497# CONFIG_IBM_NEW_EMAC_RGMII is not set
493# CONFIG_IBM_NEW_EMAC_TAH is not set 498# CONFIG_IBM_NEW_EMAC_TAH is not set
494# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 499# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
500# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
501# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
502# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
495# CONFIG_B44 is not set 503# CONFIG_B44 is not set
496CONFIG_FS_ENET=y 504CONFIG_FS_ENET=y
497CONFIG_FS_ENET_HAS_SCC=y 505CONFIG_FS_ENET_HAS_SCC=y
@@ -546,12 +554,6 @@ CONFIG_SERIAL_CORE=y
546CONFIG_SERIAL_CORE_CONSOLE=y 554CONFIG_SERIAL_CORE_CONSOLE=y
547CONFIG_SERIAL_CPM=y 555CONFIG_SERIAL_CPM=y
548CONFIG_SERIAL_CPM_CONSOLE=y 556CONFIG_SERIAL_CPM_CONSOLE=y
549# CONFIG_SERIAL_CPM_SCC1 is not set
550# CONFIG_SERIAL_CPM_SCC2 is not set
551# CONFIG_SERIAL_CPM_SCC3 is not set
552# CONFIG_SERIAL_CPM_SCC4 is not set
553CONFIG_SERIAL_CPM_SMC1=y
554# CONFIG_SERIAL_CPM_SMC2 is not set
555CONFIG_UNIX98_PTYS=y 557CONFIG_UNIX98_PTYS=y
556# CONFIG_LEGACY_PTYS is not set 558# CONFIG_LEGACY_PTYS is not set
557# CONFIG_IPMI_HANDLER is not set 559# CONFIG_IPMI_HANDLER is not set
@@ -564,10 +566,13 @@ CONFIG_GEN_RTC=y
564# CONFIG_TCG_TPM is not set 566# CONFIG_TCG_TPM is not set
565# CONFIG_I2C is not set 567# CONFIG_I2C is not set
566# CONFIG_SPI is not set 568# CONFIG_SPI is not set
569CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
570# CONFIG_GPIOLIB is not set
567# CONFIG_W1 is not set 571# CONFIG_W1 is not set
568# CONFIG_POWER_SUPPLY is not set 572# CONFIG_POWER_SUPPLY is not set
569# CONFIG_HWMON is not set 573# CONFIG_HWMON is not set
570# CONFIG_THERMAL is not set 574# CONFIG_THERMAL is not set
575# CONFIG_THERMAL_HWMON is not set
571# CONFIG_WATCHDOG is not set 576# CONFIG_WATCHDOG is not set
572 577
573# 578#
@@ -579,8 +584,18 @@ CONFIG_SSB_POSSIBLE=y
579# 584#
580# Multifunction device drivers 585# Multifunction device drivers
581# 586#
587# CONFIG_MFD_CORE is not set
582# CONFIG_MFD_SM501 is not set 588# CONFIG_MFD_SM501 is not set
583# CONFIG_HTC_PASIC3 is not set 589# CONFIG_HTC_PASIC3 is not set
590# CONFIG_MFD_TMIO is not set
591
592#
593# Voltage and Current regulators
594#
595# CONFIG_REGULATOR is not set
596# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
597# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
598# CONFIG_REGULATOR_BQ24022 is not set
584 599
585# 600#
586# Multimedia devices 601# Multimedia devices
@@ -610,10 +625,6 @@ CONFIG_SSB_POSSIBLE=y
610# Display device support 625# Display device support
611# 626#
612# CONFIG_DISPLAY_SUPPORT is not set 627# CONFIG_DISPLAY_SUPPORT is not set
613
614#
615# Sound
616#
617# CONFIG_SOUND is not set 628# CONFIG_SOUND is not set
618# CONFIG_USB_SUPPORT is not set 629# CONFIG_USB_SUPPORT is not set
619# CONFIG_MMC is not set 630# CONFIG_MMC is not set
@@ -624,6 +635,7 @@ CONFIG_SSB_POSSIBLE=y
624# CONFIG_RTC_CLASS is not set 635# CONFIG_RTC_CLASS is not set
625# CONFIG_DMADEVICES is not set 636# CONFIG_DMADEVICES is not set
626# CONFIG_UIO is not set 637# CONFIG_UIO is not set
638# CONFIG_STAGING is not set
627 639
628# 640#
629# File systems 641# File systems
@@ -637,13 +649,14 @@ CONFIG_EXT3_FS=y
637CONFIG_EXT3_FS_XATTR=y 649CONFIG_EXT3_FS_XATTR=y
638# CONFIG_EXT3_FS_POSIX_ACL is not set 650# CONFIG_EXT3_FS_POSIX_ACL is not set
639# CONFIG_EXT3_FS_SECURITY is not set 651# CONFIG_EXT3_FS_SECURITY is not set
640# CONFIG_EXT4DEV_FS is not set 652# CONFIG_EXT4_FS is not set
641CONFIG_JBD=y 653CONFIG_JBD=y
642# CONFIG_JBD_DEBUG is not set 654# CONFIG_JBD_DEBUG is not set
643CONFIG_FS_MBCACHE=y 655CONFIG_FS_MBCACHE=y
644# CONFIG_REISERFS_FS is not set 656# CONFIG_REISERFS_FS is not set
645# CONFIG_JFS_FS is not set 657# CONFIG_JFS_FS is not set
646# CONFIG_FS_POSIX_ACL is not set 658# CONFIG_FS_POSIX_ACL is not set
659CONFIG_FILE_LOCKING=y
647# CONFIG_XFS_FS is not set 660# CONFIG_XFS_FS is not set
648# CONFIG_OCFS2_FS is not set 661# CONFIG_OCFS2_FS is not set
649CONFIG_DNOTIFY=y 662CONFIG_DNOTIFY=y
@@ -673,6 +686,7 @@ CONFIG_INOTIFY_USER=y
673CONFIG_PROC_FS=y 686CONFIG_PROC_FS=y
674# CONFIG_PROC_KCORE is not set 687# CONFIG_PROC_KCORE is not set
675CONFIG_PROC_SYSCTL=y 688CONFIG_PROC_SYSCTL=y
689CONFIG_PROC_PAGE_MONITOR=y
676CONFIG_SYSFS=y 690CONFIG_SYSFS=y
677CONFIG_TMPFS=y 691CONFIG_TMPFS=y
678# CONFIG_TMPFS_POSIX_ACL is not set 692# CONFIG_TMPFS_POSIX_ACL is not set
@@ -703,6 +717,7 @@ CONFIG_JFFS2_RTIME=y
703CONFIG_CRAMFS=y 717CONFIG_CRAMFS=y
704# CONFIG_VXFS_FS is not set 718# CONFIG_VXFS_FS is not set
705# CONFIG_MINIX_FS is not set 719# CONFIG_MINIX_FS is not set
720# CONFIG_OMFS_FS is not set
706# CONFIG_HPFS_FS is not set 721# CONFIG_HPFS_FS is not set
707# CONFIG_QNX4FS_FS is not set 722# CONFIG_QNX4FS_FS is not set
708# CONFIG_ROMFS_FS is not set 723# CONFIG_ROMFS_FS is not set
@@ -713,13 +728,13 @@ CONFIG_NFS_FS=y
713CONFIG_NFS_V3=y 728CONFIG_NFS_V3=y
714# CONFIG_NFS_V3_ACL is not set 729# CONFIG_NFS_V3_ACL is not set
715# CONFIG_NFS_V4 is not set 730# CONFIG_NFS_V4 is not set
716# CONFIG_NFSD is not set
717CONFIG_ROOT_NFS=y 731CONFIG_ROOT_NFS=y
732# CONFIG_NFSD is not set
718CONFIG_LOCKD=y 733CONFIG_LOCKD=y
719CONFIG_LOCKD_V4=y 734CONFIG_LOCKD_V4=y
720CONFIG_NFS_COMMON=y 735CONFIG_NFS_COMMON=y
721CONFIG_SUNRPC=y 736CONFIG_SUNRPC=y
722# CONFIG_SUNRPC_BIND34 is not set 737# CONFIG_SUNRPC_REGISTER_V4 is not set
723# CONFIG_RPCSEC_GSS_KRB5 is not set 738# CONFIG_RPCSEC_GSS_KRB5 is not set
724# CONFIG_RPCSEC_GSS_SPKM3 is not set 739# CONFIG_RPCSEC_GSS_SPKM3 is not set
725# CONFIG_SMB_FS is not set 740# CONFIG_SMB_FS is not set
@@ -756,9 +771,9 @@ CONFIG_MSDOS_PARTITION=y
756# Library routines 771# Library routines
757# 772#
758CONFIG_BITREVERSE=y 773CONFIG_BITREVERSE=y
759# CONFIG_GENERIC_FIND_FIRST_BIT is not set
760CONFIG_CRC_CCITT=y 774CONFIG_CRC_CCITT=y
761# CONFIG_CRC16 is not set 775# CONFIG_CRC16 is not set
776# CONFIG_CRC_T10DIF is not set
762# CONFIG_CRC_ITU_T is not set 777# CONFIG_CRC_ITU_T is not set
763CONFIG_CRC32=y 778CONFIG_CRC32=y
764# CONFIG_CRC7 is not set 779# CONFIG_CRC7 is not set
@@ -783,7 +798,17 @@ CONFIG_FRAME_WARN=1024
783CONFIG_DEBUG_FS=y 798CONFIG_DEBUG_FS=y
784# CONFIG_HEADERS_CHECK is not set 799# CONFIG_HEADERS_CHECK is not set
785# CONFIG_DEBUG_KERNEL is not set 800# CONFIG_DEBUG_KERNEL is not set
801# CONFIG_DEBUG_MEMORY_INIT is not set
802# CONFIG_RCU_CPU_STALL_DETECTOR is not set
803# CONFIG_LATENCYTOP is not set
804CONFIG_HAVE_FUNCTION_TRACER=y
805
806#
807# Tracers
808#
809# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
786# CONFIG_SAMPLES is not set 810# CONFIG_SAMPLES is not set
811CONFIG_HAVE_ARCH_KGDB=y
787# CONFIG_IRQSTACKS is not set 812# CONFIG_IRQSTACKS is not set
788# CONFIG_VIRQ_DEBUG is not set 813# CONFIG_VIRQ_DEBUG is not set
789# CONFIG_PPC_EARLY_DEBUG is not set 814# CONFIG_PPC_EARLY_DEBUG is not set
@@ -793,12 +818,14 @@ CONFIG_DEBUG_FS=y
793# 818#
794# CONFIG_KEYS is not set 819# CONFIG_KEYS is not set
795# CONFIG_SECURITY is not set 820# CONFIG_SECURITY is not set
821# CONFIG_SECURITYFS is not set
796# CONFIG_SECURITY_FILE_CAPABILITIES is not set 822# CONFIG_SECURITY_FILE_CAPABILITIES is not set
797CONFIG_CRYPTO=y 823CONFIG_CRYPTO=y
798 824
799# 825#
800# Crypto core or helper 826# Crypto core or helper
801# 827#
828# CONFIG_CRYPTO_FIPS is not set
802# CONFIG_CRYPTO_MANAGER is not set 829# CONFIG_CRYPTO_MANAGER is not set
803# CONFIG_CRYPTO_GF128MUL is not set 830# CONFIG_CRYPTO_GF128MUL is not set
804# CONFIG_CRYPTO_NULL is not set 831# CONFIG_CRYPTO_NULL is not set
@@ -836,6 +863,10 @@ CONFIG_CRYPTO=y
836# CONFIG_CRYPTO_MD4 is not set 863# CONFIG_CRYPTO_MD4 is not set
837# CONFIG_CRYPTO_MD5 is not set 864# CONFIG_CRYPTO_MD5 is not set
838# CONFIG_CRYPTO_MICHAEL_MIC is not set 865# CONFIG_CRYPTO_MICHAEL_MIC is not set
866# CONFIG_CRYPTO_RMD128 is not set
867# CONFIG_CRYPTO_RMD160 is not set
868# CONFIG_CRYPTO_RMD256 is not set
869# CONFIG_CRYPTO_RMD320 is not set
839# CONFIG_CRYPTO_SHA1 is not set 870# CONFIG_CRYPTO_SHA1 is not set
840# CONFIG_CRYPTO_SHA256 is not set 871# CONFIG_CRYPTO_SHA256 is not set
841# CONFIG_CRYPTO_SHA512 is not set 872# CONFIG_CRYPTO_SHA512 is not set
@@ -866,7 +897,13 @@ CONFIG_CRYPTO=y
866# 897#
867# CONFIG_CRYPTO_DEFLATE is not set 898# CONFIG_CRYPTO_DEFLATE is not set
868# CONFIG_CRYPTO_LZO is not set 899# CONFIG_CRYPTO_LZO is not set
900
901#
902# Random Number Generation
903#
904# CONFIG_CRYPTO_ANSI_CPRNG is not set
869CONFIG_CRYPTO_HW=y 905CONFIG_CRYPTO_HW=y
870# CONFIG_PPC_CLOCK is not set 906# CONFIG_CRYPTO_DEV_TALITOS is not set
907CONFIG_PPC_CLOCK=y
871CONFIG_PPC_LIB_RHEAP=y 908CONFIG_PPC_LIB_RHEAP=y
872# CONFIG_VIRTUALIZATION is not set 909# CONFIG_VIRTUALIZATION 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/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index ab5199f26a24..f80b1ca43afb 100644
--- a/arch/powerpc/configs/mpc7448_hpc2_defconfig
+++ b/arch/powerpc/configs/mpc7448_hpc2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:06 2008 4# Sat Nov 8 12:39: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
@@ -104,7 +104,9 @@ CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 104CONFIG_TIMERFD=y
105CONFIG_EVENTFD=y 105CONFIG_EVENTFD=y
106CONFIG_SHMEM=y 106CONFIG_SHMEM=y
107CONFIG_AIO=y
107CONFIG_VM_EVENT_COUNTERS=y 108CONFIG_VM_EVENT_COUNTERS=y
109CONFIG_PCI_QUIRKS=y
108CONFIG_SLUB_DEBUG=y 110CONFIG_SLUB_DEBUG=y
109# CONFIG_SLAB is not set 111# CONFIG_SLAB is not set
110CONFIG_SLUB=y 112CONFIG_SLUB=y
@@ -117,10 +119,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 121CONFIG_HAVE_ARCH_TRACEHOOK=y
120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122# CONFIG_HAVE_CLK is not set
123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
@@ -147,6 +145,7 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
149CONFIG_CLASSIC_RCU=y 147CONFIG_CLASSIC_RCU=y
148# CONFIG_FREEZER is not set
150 149
151# 150#
152# Platform support 151# Platform support
@@ -204,6 +203,8 @@ CONFIG_PREEMPT_NONE=y
204# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
205# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
206CONFIG_BINFMT_ELF=y 205CONFIG_BINFMT_ELF=y
206# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
207# CONFIG_HAVE_AOUT is not set
207CONFIG_BINFMT_MISC=y 208CONFIG_BINFMT_MISC=y
208# CONFIG_IOMMU_HELPER is not set 209# CONFIG_IOMMU_HELPER is not set
209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -218,15 +219,15 @@ CONFIG_FLATMEM_MANUAL=y
218# CONFIG_SPARSEMEM_MANUAL is not set 219# CONFIG_SPARSEMEM_MANUAL is not set
219CONFIG_FLATMEM=y 220CONFIG_FLATMEM=y
220CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_STATIC is not set
222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
223CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y 224CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
226# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_UNEVICTABLE_LRU=y
230CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
@@ -247,7 +248,7 @@ CONFIG_PCI_SYSCALL=y
247# CONFIG_PCIEPORTBUS is not set 248# CONFIG_PCIEPORTBUS is not set
248CONFIG_ARCH_SUPPORTS_MSI=y 249CONFIG_ARCH_SUPPORTS_MSI=y
249# CONFIG_PCI_MSI is not set 250# CONFIG_PCI_MSI is not set
250CONFIG_PCI_LEGACY=y 251# CONFIG_PCI_LEGACY is not set
251# CONFIG_PCCARD is not set 252# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 253# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set 254# CONFIG_HAS_RAPIDIO is not set
@@ -315,6 +316,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
315# CONFIG_TIPC is not set 316# CONFIG_TIPC is not set
316# CONFIG_ATM is not set 317# CONFIG_ATM is not set
317# CONFIG_BRIDGE is not set 318# CONFIG_BRIDGE is not set
319# CONFIG_NET_DSA is not set
318# CONFIG_VLAN_8021Q is not set 320# CONFIG_VLAN_8021Q is not set
319# CONFIG_DECNET is not set 321# CONFIG_DECNET is not set
320# CONFIG_LLC2 is not set 322# CONFIG_LLC2 is not set
@@ -335,11 +337,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
335# CONFIG_IRDA is not set 337# CONFIG_IRDA is not set
336# CONFIG_BT is not set 338# CONFIG_BT is not set
337# CONFIG_AF_RXRPC is not set 339# CONFIG_AF_RXRPC is not set
338 340# CONFIG_PHONET is not set
339# 341CONFIG_WIRELESS=y
340# Wireless
341#
342# CONFIG_CFG80211 is not set 342# CONFIG_CFG80211 is not set
343CONFIG_WIRELESS_OLD_REGULATORY=y
343# CONFIG_WIRELESS_EXT is not set 344# CONFIG_WIRELESS_EXT is not set
344# CONFIG_MAC80211 is not set 345# CONFIG_MAC80211 is not set
345# CONFIG_IEEE80211 is not set 346# CONFIG_IEEE80211 is not set
@@ -576,6 +577,9 @@ CONFIG_MII=y
576# CONFIG_IBM_NEW_EMAC_RGMII is not set 577# CONFIG_IBM_NEW_EMAC_RGMII is not set
577# CONFIG_IBM_NEW_EMAC_TAH is not set 578# CONFIG_IBM_NEW_EMAC_TAH is not set
578# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 579# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
580# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
581# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
582# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
579CONFIG_NET_PCI=y 583CONFIG_NET_PCI=y
580# CONFIG_PCNET32 is not set 584# CONFIG_PCNET32 is not set
581# CONFIG_AMD8111_ETH is not set 585# CONFIG_AMD8111_ETH is not set
@@ -600,6 +604,7 @@ CONFIG_8139TOO=y
600# CONFIG_TLAN is not set 604# CONFIG_TLAN is not set
601# CONFIG_VIA_RHINE is not set 605# CONFIG_VIA_RHINE is not set
602# CONFIG_SC92031 is not set 606# CONFIG_SC92031 is not set
607# CONFIG_ATL2 is not set
603CONFIG_NETDEV_1000=y 608CONFIG_NETDEV_1000=y
604# CONFIG_ACENIC is not set 609# CONFIG_ACENIC is not set
605# CONFIG_DL2K is not set 610# CONFIG_DL2K is not set
@@ -622,18 +627,22 @@ CONFIG_TSI108_ETH=y
622# CONFIG_QLA3XXX is not set 627# CONFIG_QLA3XXX is not set
623# CONFIG_ATL1 is not set 628# CONFIG_ATL1 is not set
624# CONFIG_ATL1E is not set 629# CONFIG_ATL1E is not set
630# CONFIG_JME is not set
625CONFIG_NETDEV_10000=y 631CONFIG_NETDEV_10000=y
626# CONFIG_CHELSIO_T1 is not set 632# CONFIG_CHELSIO_T1 is not set
627# CONFIG_CHELSIO_T3 is not set 633# CONFIG_CHELSIO_T3 is not set
634# CONFIG_ENIC is not set
628# CONFIG_IXGBE is not set 635# CONFIG_IXGBE is not set
629# CONFIG_IXGB is not set 636# CONFIG_IXGB is not set
630# CONFIG_S2IO is not set 637# CONFIG_S2IO is not set
631# CONFIG_MYRI10GE is not set 638# CONFIG_MYRI10GE is not set
632# CONFIG_NETXEN_NIC is not set 639# CONFIG_NETXEN_NIC is not set
633# CONFIG_NIU is not set 640# CONFIG_NIU is not set
641# CONFIG_MLX4_EN is not set
634# CONFIG_MLX4_CORE is not set 642# CONFIG_MLX4_CORE is not set
635# CONFIG_TEHUTI is not set 643# CONFIG_TEHUTI is not set
636# CONFIG_BNX2X is not set 644# CONFIG_BNX2X is not set
645# CONFIG_QLGE is not set
637# CONFIG_SFC is not set 646# CONFIG_SFC is not set
638# CONFIG_TR is not set 647# CONFIG_TR is not set
639 648
@@ -767,6 +776,14 @@ CONFIG_SSB_POSSIBLE=y
767# CONFIG_MFD_TMIO is not set 776# CONFIG_MFD_TMIO is not set
768 777
769# 778#
779# Voltage and Current regulators
780#
781# CONFIG_REGULATOR is not set
782# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
783# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
784# CONFIG_REGULATOR_BQ24022 is not set
785
786#
770# Multimedia devices 787# Multimedia devices
771# 788#
772 789
@@ -801,6 +818,12 @@ CONFIG_HID_SUPPORT=y
801CONFIG_HID=y 818CONFIG_HID=y
802# CONFIG_HID_DEBUG is not set 819# CONFIG_HID_DEBUG is not set
803# CONFIG_HIDRAW is not set 820# CONFIG_HIDRAW is not set
821# CONFIG_HID_PID is not set
822
823#
824# Special HID drivers
825#
826CONFIG_HID_COMPAT=y
804CONFIG_USB_SUPPORT=y 827CONFIG_USB_SUPPORT=y
805CONFIG_USB_ARCH_HAS_HCD=y 828CONFIG_USB_ARCH_HAS_HCD=y
806CONFIG_USB_ARCH_HAS_OHCI=y 829CONFIG_USB_ARCH_HAS_OHCI=y
@@ -817,6 +840,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
817# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 840# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
818# 841#
819# CONFIG_USB_GADGET is not set 842# CONFIG_USB_GADGET is not set
843# CONFIG_UWB is not set
820# CONFIG_MMC is not set 844# CONFIG_MMC is not set
821# CONFIG_MEMSTICK is not set 845# CONFIG_MEMSTICK is not set
822# CONFIG_NEW_LEDS is not set 846# CONFIG_NEW_LEDS is not set
@@ -826,6 +850,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
826# CONFIG_RTC_CLASS is not set 850# CONFIG_RTC_CLASS is not set
827# CONFIG_DMADEVICES is not set 851# CONFIG_DMADEVICES is not set
828# CONFIG_UIO is not set 852# CONFIG_UIO is not set
853# CONFIG_STAGING is not set
829 854
830# 855#
831# File systems 856# File systems
@@ -837,12 +862,13 @@ CONFIG_EXT3_FS=y
837CONFIG_EXT3_FS_XATTR=y 862CONFIG_EXT3_FS_XATTR=y
838# CONFIG_EXT3_FS_POSIX_ACL is not set 863# CONFIG_EXT3_FS_POSIX_ACL is not set
839# CONFIG_EXT3_FS_SECURITY is not set 864# CONFIG_EXT3_FS_SECURITY is not set
840# CONFIG_EXT4DEV_FS is not set 865# CONFIG_EXT4_FS is not set
841CONFIG_JBD=y 866CONFIG_JBD=y
842CONFIG_FS_MBCACHE=y 867CONFIG_FS_MBCACHE=y
843# CONFIG_REISERFS_FS is not set 868# CONFIG_REISERFS_FS is not set
844# CONFIG_JFS_FS is not set 869# CONFIG_JFS_FS is not set
845# CONFIG_FS_POSIX_ACL is not set 870# CONFIG_FS_POSIX_ACL is not set
871CONFIG_FILE_LOCKING=y
846# CONFIG_XFS_FS is not set 872# CONFIG_XFS_FS is not set
847# CONFIG_OCFS2_FS is not set 873# CONFIG_OCFS2_FS is not set
848CONFIG_DNOTIFY=y 874CONFIG_DNOTIFY=y
@@ -872,6 +898,7 @@ CONFIG_INOTIFY_USER=y
872CONFIG_PROC_FS=y 898CONFIG_PROC_FS=y
873CONFIG_PROC_KCORE=y 899CONFIG_PROC_KCORE=y
874CONFIG_PROC_SYSCTL=y 900CONFIG_PROC_SYSCTL=y
901CONFIG_PROC_PAGE_MONITOR=y
875CONFIG_SYSFS=y 902CONFIG_SYSFS=y
876CONFIG_TMPFS=y 903CONFIG_TMPFS=y
877# CONFIG_TMPFS_POSIX_ACL is not set 904# CONFIG_TMPFS_POSIX_ACL is not set
@@ -906,6 +933,7 @@ CONFIG_ROOT_NFS=y
906CONFIG_LOCKD=y 933CONFIG_LOCKD=y
907CONFIG_NFS_COMMON=y 934CONFIG_NFS_COMMON=y
908CONFIG_SUNRPC=y 935CONFIG_SUNRPC=y
936# CONFIG_SUNRPC_REGISTER_V4 is not set
909# CONFIG_RPCSEC_GSS_KRB5 is not set 937# CONFIG_RPCSEC_GSS_KRB5 is not set
910# CONFIG_RPCSEC_GSS_SPKM3 is not set 938# CONFIG_RPCSEC_GSS_SPKM3 is not set
911# CONFIG_SMB_FS is not set 939# CONFIG_SMB_FS is not set
@@ -942,7 +970,6 @@ CONFIG_MSDOS_PARTITION=y
942# Library routines 970# Library routines
943# 971#
944CONFIG_BITREVERSE=y 972CONFIG_BITREVERSE=y
945# CONFIG_GENERIC_FIND_FIRST_BIT is not set
946# CONFIG_CRC_CCITT is not set 973# CONFIG_CRC_CCITT is not set
947# CONFIG_CRC16 is not set 974# CONFIG_CRC16 is not set
948CONFIG_CRC_T10DIF=y 975CONFIG_CRC_T10DIF=y
@@ -972,13 +999,15 @@ CONFIG_FRAME_WARN=1024
972# CONFIG_SLUB_STATS is not set 999# CONFIG_SLUB_STATS is not set
973# CONFIG_DEBUG_BUGVERBOSE is not set 1000# CONFIG_DEBUG_BUGVERBOSE is not set
974# CONFIG_DEBUG_MEMORY_INIT is not set 1001# CONFIG_DEBUG_MEMORY_INIT is not set
1002# CONFIG_RCU_CPU_STALL_DETECTOR is not set
975# CONFIG_LATENCYTOP is not set 1003# CONFIG_LATENCYTOP is not set
976CONFIG_SYSCTL_SYSCALL_CHECK=y 1004CONFIG_SYSCTL_SYSCALL_CHECK=y
977CONFIG_HAVE_FTRACE=y 1005CONFIG_HAVE_FUNCTION_TRACER=y
978CONFIG_HAVE_DYNAMIC_FTRACE=y 1006
979# CONFIG_FTRACE is not set 1007#
980# CONFIG_SCHED_TRACER is not set 1008# Tracers
981# CONFIG_CONTEXT_SWITCH_TRACER is not set 1009#
1010# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
982# CONFIG_SAMPLES is not set 1011# CONFIG_SAMPLES is not set
983CONFIG_HAVE_ARCH_KGDB=y 1012CONFIG_HAVE_ARCH_KGDB=y
984# CONFIG_IRQSTACKS is not set 1013# CONFIG_IRQSTACKS is not set
@@ -990,12 +1019,14 @@ CONFIG_HAVE_ARCH_KGDB=y
990# 1019#
991# CONFIG_KEYS is not set 1020# CONFIG_KEYS is not set
992# CONFIG_SECURITY is not set 1021# CONFIG_SECURITY is not set
1022# CONFIG_SECURITYFS is not set
993# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1023# CONFIG_SECURITY_FILE_CAPABILITIES is not set
994CONFIG_CRYPTO=y 1024CONFIG_CRYPTO=y
995 1025
996# 1026#
997# Crypto core or helper 1027# Crypto core or helper
998# 1028#
1029# CONFIG_CRYPTO_FIPS is not set
999# CONFIG_CRYPTO_MANAGER is not set 1030# CONFIG_CRYPTO_MANAGER is not set
1000# CONFIG_CRYPTO_GF128MUL is not set 1031# CONFIG_CRYPTO_GF128MUL is not set
1001# CONFIG_CRYPTO_NULL is not set 1032# CONFIG_CRYPTO_NULL is not set
@@ -1067,6 +1098,11 @@ CONFIG_CRYPTO=y
1067# 1098#
1068# CONFIG_CRYPTO_DEFLATE is not set 1099# CONFIG_CRYPTO_DEFLATE is not set
1069# CONFIG_CRYPTO_LZO is not set 1100# CONFIG_CRYPTO_LZO is not set
1101
1102#
1103# Random Number Generation
1104#
1105# CONFIG_CRYPTO_ANSI_CPRNG is not set
1070CONFIG_CRYPTO_HW=y 1106CONFIG_CRYPTO_HW=y
1071# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1107# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1072# CONFIG_PPC_CLOCK is not set 1108# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index ff6f7c475f47..c8f5dec1b696 100644
--- a/arch/powerpc/configs/mpc8272_ads_defconfig
+++ b/arch/powerpc/configs/mpc8272_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:07 2008 4# Sat Nov 8 12:39:41 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
@@ -48,13 +48,11 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
51CONFIG_PPC_UDBG_16550=y 51# CONFIG_PPC_UDBG_16550 is not set
52# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -93,7 +91,6 @@ CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 91CONFIG_PRINTK=y
94CONFIG_BUG=y 92CONFIG_BUG=y
95CONFIG_ELF_CORE=y 93CONFIG_ELF_CORE=y
96CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 95CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 96CONFIG_FUTEX=y
@@ -103,7 +100,9 @@ CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y 100CONFIG_TIMERFD=y
104CONFIG_EVENTFD=y 101CONFIG_EVENTFD=y
105CONFIG_SHMEM=y 102CONFIG_SHMEM=y
103CONFIG_AIO=y
106CONFIG_VM_EVENT_COUNTERS=y 104CONFIG_VM_EVENT_COUNTERS=y
105CONFIG_PCI_QUIRKS=y
107CONFIG_SLUB_DEBUG=y 106CONFIG_SLUB_DEBUG=y
108# CONFIG_SLAB is not set 107# CONFIG_SLAB is not set
109CONFIG_SLUB=y 108CONFIG_SLUB=y
@@ -116,10 +115,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
116CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 117CONFIG_HAVE_ARCH_TRACEHOOK=y
119# CONFIG_HAVE_DMA_ATTRS is not set
120# CONFIG_USE_GENERIC_SMP_HELPERS is not set
121CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
122CONFIG_PROC_PAGE_MONITOR=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
@@ -145,6 +141,7 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_NOOP is not set 141# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 142CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y 143CONFIG_CLASSIC_RCU=y
144# CONFIG_FREEZER is not set
148 145
149# 146#
150# Platform support 147# Platform support
@@ -152,16 +149,17 @@ CONFIG_CLASSIC_RCU=y
152CONFIG_PPC_MULTIPLATFORM=y 149CONFIG_PPC_MULTIPLATFORM=y
153CONFIG_CLASSIC32=y 150CONFIG_CLASSIC32=y
154# CONFIG_PPC_CHRP is not set 151# CONFIG_PPC_CHRP is not set
155# CONFIG_PPC_PMAC is not set
156# CONFIG_MPC5121_ADS is not set 152# CONFIG_MPC5121_ADS is not set
157# CONFIG_MPC5121_GENERIC is not set 153# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC52xx is not set 154# CONFIG_PPC_MPC52xx is not set
155# CONFIG_PPC_PMAC is not set
159# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
161CONFIG_PPC_82xx=y 158CONFIG_PPC_82xx=y
162CONFIG_MPC8272_ADS=y 159CONFIG_MPC8272_ADS=y
163# CONFIG_PQ2FADS is not set 160# CONFIG_PQ2FADS is not set
164# CONFIG_EP8248E is not set 161# CONFIG_EP8248E is not set
162# CONFIG_MGCOGE is not set
165CONFIG_PQ2ADS=y 163CONFIG_PQ2ADS=y
166CONFIG_8260=y 164CONFIG_8260=y
167CONFIG_8272=y 165CONFIG_8272=y
@@ -169,23 +167,19 @@ CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set 167# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set 168# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set 169# CONFIG_EMBEDDED6xx is not set
172CONFIG_PPC_NATIVE=y
173# CONFIG_UDBG_RTAS_CONSOLE is not set
174# CONFIG_IPIC is not set 170# CONFIG_IPIC is not set
175CONFIG_MPIC=y 171# CONFIG_MPIC is not set
176# CONFIG_MPIC_WEIRD is not set 172# CONFIG_MPIC_WEIRD is not set
177CONFIG_PPC_I8259=y 173# CONFIG_PPC_I8259 is not set
178CONFIG_PPC_RTAS=y 174# CONFIG_PPC_RTAS is not set
179# CONFIG_RTAS_ERROR_LOGGING is not set
180CONFIG_RTAS_PROC=y
181# CONFIG_MMIO_NVRAM is not set 175# CONFIG_MMIO_NVRAM is not set
182CONFIG_PPC_MPC106=y 176# CONFIG_PPC_MPC106 is not set
183# CONFIG_PPC_970_NAP is not set 177# CONFIG_PPC_970_NAP is not set
184# CONFIG_PPC_INDIRECT_IO is not set 178# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 179# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 180# CONFIG_CPU_FREQ is not set
187# CONFIG_PPC601_SYNC_FIX is not set
188# CONFIG_TAU is not set 181# CONFIG_TAU is not set
182# CONFIG_QUICC_ENGINE is not set
189CONFIG_CPM2=y 183CONFIG_CPM2=y
190# CONFIG_FSL_ULI1575 is not set 184# CONFIG_FSL_ULI1575 is not set
191CONFIG_CPM=y 185CONFIG_CPM=y
@@ -208,6 +202,8 @@ CONFIG_PREEMPT_NONE=y
208# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
209# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
210CONFIG_BINFMT_ELF=y 204CONFIG_BINFMT_ELF=y
205# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
206# CONFIG_HAVE_AOUT is not set
211CONFIG_BINFMT_MISC=y 207CONFIG_BINFMT_MISC=y
212# CONFIG_IOMMU_HELPER is not set 208# CONFIG_IOMMU_HELPER is not set
213CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -217,15 +213,15 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
217CONFIG_ARCH_POPULATES_NODE_MAP=y 213CONFIG_ARCH_POPULATES_NODE_MAP=y
218CONFIG_FLATMEM=y 214CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 216CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 217CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 218CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set 219# CONFIG_RESOURCES_64BIT is not set
220# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
227CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
228CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_UNEVICTABLE_LRU=y
229CONFIG_FORCE_MAX_ZONEORDER=11 225CONFIG_FORCE_MAX_ZONEORDER=11
230CONFIG_PROC_DEVICETREE=y 226CONFIG_PROC_DEVICETREE=y
231# CONFIG_CMDLINE_BOOL is not set 227# CONFIG_CMDLINE_BOOL is not set
@@ -237,7 +233,6 @@ CONFIG_ISA_DMA_API=y
237# 233#
238# Bus options 234# Bus options
239# 235#
240# CONFIG_ISA is not set
241CONFIG_ZONE_DMA=y 236CONFIG_ZONE_DMA=y
242CONFIG_PPC_INDIRECT_PCI=y 237CONFIG_PPC_INDIRECT_PCI=y
243CONFIG_FSL_SOC=y 238CONFIG_FSL_SOC=y
@@ -249,7 +244,7 @@ CONFIG_PCI_8260=y
249# CONFIG_PCIEPORTBUS is not set 244# CONFIG_PCIEPORTBUS is not set
250CONFIG_ARCH_SUPPORTS_MSI=y 245CONFIG_ARCH_SUPPORTS_MSI=y
251# CONFIG_PCI_MSI is not set 246# CONFIG_PCI_MSI is not set
252CONFIG_PCI_LEGACY=y 247# CONFIG_PCI_LEGACY is not set
253# CONFIG_PCI_DEBUG is not set 248# CONFIG_PCI_DEBUG is not set
254# CONFIG_PCCARD is not set 249# CONFIG_PCCARD is not set
255# CONFIG_HOTPLUG_PCI is not set 250# CONFIG_HOTPLUG_PCI is not set
@@ -305,7 +300,6 @@ CONFIG_INET_TCP_DIAG=y
305# CONFIG_TCP_CONG_ADVANCED is not set 300# CONFIG_TCP_CONG_ADVANCED is not set
306CONFIG_TCP_CONG_CUBIC=y 301CONFIG_TCP_CONG_CUBIC=y
307CONFIG_DEFAULT_TCP_CONG="cubic" 302CONFIG_DEFAULT_TCP_CONG="cubic"
308# CONFIG_IP_VS is not set
309CONFIG_IPV6=y 303CONFIG_IPV6=y
310# CONFIG_IPV6_PRIVACY is not set 304# CONFIG_IPV6_PRIVACY is not set
311# CONFIG_IPV6_ROUTER_PREF is not set 305# CONFIG_IPV6_ROUTER_PREF is not set
@@ -332,10 +326,12 @@ CONFIG_NETFILTER_ADVANCED=y
332# CONFIG_NETFILTER_NETLINK_LOG is not set 326# CONFIG_NETFILTER_NETLINK_LOG is not set
333# CONFIG_NF_CONNTRACK is not set 327# CONFIG_NF_CONNTRACK is not set
334# CONFIG_NETFILTER_XTABLES is not set 328# CONFIG_NETFILTER_XTABLES is not set
329# CONFIG_IP_VS is not set
335 330
336# 331#
337# IP: Netfilter Configuration 332# IP: Netfilter Configuration
338# 333#
334# CONFIG_NF_DEFRAG_IPV4 is not set
339# CONFIG_IP_NF_QUEUE is not set 335# CONFIG_IP_NF_QUEUE is not set
340# CONFIG_IP_NF_IPTABLES is not set 336# CONFIG_IP_NF_IPTABLES is not set
341# CONFIG_IP_NF_ARPTABLES is not set 337# CONFIG_IP_NF_ARPTABLES is not set
@@ -362,11 +358,10 @@ CONFIG_NETFILTER_ADVANCED=y
362# CONFIG_CAN is not set 358# CONFIG_CAN is not set
363# CONFIG_IRDA is not set 359# CONFIG_IRDA is not set
364# CONFIG_BT is not set 360# CONFIG_BT is not set
365 361# CONFIG_PHONET is not set
366# 362CONFIG_WIRELESS=y
367# Wireless
368#
369# CONFIG_CFG80211 is not set 363# CONFIG_CFG80211 is not set
364CONFIG_WIRELESS_OLD_REGULATORY=y
370# CONFIG_WIRELESS_EXT is not set 365# CONFIG_WIRELESS_EXT is not set
371# CONFIG_MAC80211 is not set 366# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set 367# CONFIG_IEEE80211 is not set
@@ -472,7 +467,6 @@ CONFIG_OF_GPIO=y
472# CONFIG_PARPORT is not set 467# CONFIG_PARPORT is not set
473CONFIG_BLK_DEV=y 468CONFIG_BLK_DEV=y
474# CONFIG_BLK_DEV_FD is not set 469# CONFIG_BLK_DEV_FD is not set
475# CONFIG_MAC_FLOPPY is not set
476# CONFIG_BLK_CPQ_DA is not set 470# CONFIG_BLK_CPQ_DA is not set
477# CONFIG_BLK_CPQ_CISS_DA is not set 471# CONFIG_BLK_CPQ_CISS_DA is not set
478# CONFIG_BLK_DEV_DAC960 is not set 472# CONFIG_BLK_DEV_DAC960 is not set
@@ -537,8 +531,6 @@ CONFIG_MDIO_BITBANG=y
537# CONFIG_MDIO_OF_GPIO is not set 531# CONFIG_MDIO_OF_GPIO is not set
538CONFIG_NET_ETHERNET=y 532CONFIG_NET_ETHERNET=y
539CONFIG_MII=y 533CONFIG_MII=y
540# CONFIG_MACE is not set
541# CONFIG_BMAC is not set
542# CONFIG_HAPPYMEAL is not set 534# CONFIG_HAPPYMEAL is not set
543# CONFIG_SUNGEM is not set 535# CONFIG_SUNGEM is not set
544# CONFIG_CASSINI is not set 536# CONFIG_CASSINI is not set
@@ -549,8 +541,12 @@ CONFIG_MII=y
549# CONFIG_IBM_NEW_EMAC_RGMII is not set 541# CONFIG_IBM_NEW_EMAC_RGMII is not set
550# CONFIG_IBM_NEW_EMAC_TAH is not set 542# CONFIG_IBM_NEW_EMAC_TAH is not set
551# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 543# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
544# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
545# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
546# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
552# CONFIG_NET_PCI is not set 547# CONFIG_NET_PCI is not set
553# CONFIG_B44 is not set 548# CONFIG_B44 is not set
549# CONFIG_ATL2 is not set
554CONFIG_FS_ENET=y 550CONFIG_FS_ENET=y
555# CONFIG_FS_ENET_HAS_SCC is not set 551# CONFIG_FS_ENET_HAS_SCC is not set
556CONFIG_FS_ENET_HAS_FCC=y 552CONFIG_FS_ENET_HAS_FCC=y
@@ -573,18 +569,23 @@ CONFIG_NETDEV_1000=y
573# CONFIG_GIANFAR is not set 569# CONFIG_GIANFAR is not set
574# CONFIG_MV643XX_ETH is not set 570# CONFIG_MV643XX_ETH is not set
575# CONFIG_QLA3XXX is not set 571# CONFIG_QLA3XXX is not set
572# CONFIG_ATL1 is not set
573# CONFIG_JME is not set
576CONFIG_NETDEV_10000=y 574CONFIG_NETDEV_10000=y
577# CONFIG_CHELSIO_T1 is not set 575# CONFIG_CHELSIO_T1 is not set
578# CONFIG_CHELSIO_T3 is not set 576# CONFIG_CHELSIO_T3 is not set
577# CONFIG_ENIC is not set
579# CONFIG_IXGBE is not set 578# CONFIG_IXGBE is not set
580# CONFIG_IXGB is not set 579# CONFIG_IXGB is not set
581# CONFIG_S2IO is not set 580# CONFIG_S2IO is not set
582# CONFIG_MYRI10GE is not set 581# CONFIG_MYRI10GE is not set
583# CONFIG_NETXEN_NIC is not set 582# CONFIG_NETXEN_NIC is not set
584# CONFIG_NIU is not set 583# CONFIG_NIU is not set
584# CONFIG_MLX4_EN is not set
585# CONFIG_MLX4_CORE is not set 585# CONFIG_MLX4_CORE is not set
586# CONFIG_TEHUTI is not set 586# CONFIG_TEHUTI is not set
587# CONFIG_BNX2X is not set 587# CONFIG_BNX2X is not set
588# CONFIG_QLGE is not set
588# CONFIG_SFC is not set 589# CONFIG_SFC is not set
589# CONFIG_TR is not set 590# CONFIG_TR is not set
590 591
@@ -645,6 +646,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
645CONFIG_MOUSE_PS2_SYNAPTICS=y 646CONFIG_MOUSE_PS2_SYNAPTICS=y
646CONFIG_MOUSE_PS2_LIFEBOOK=y 647CONFIG_MOUSE_PS2_LIFEBOOK=y
647CONFIG_MOUSE_PS2_TRACKPOINT=y 648CONFIG_MOUSE_PS2_TRACKPOINT=y
649# CONFIG_MOUSE_PS2_ELANTECH is not set
648# CONFIG_MOUSE_PS2_TOUCHKIT is not set 650# CONFIG_MOUSE_PS2_TOUCHKIT is not set
649# CONFIG_MOUSE_SERIAL is not set 651# CONFIG_MOUSE_SERIAL is not set
650# CONFIG_MOUSE_VSXXXAA is not set 652# CONFIG_MOUSE_VSXXXAA is not set
@@ -684,21 +686,12 @@ CONFIG_DEVKMEM=y
684# CONFIG_SERIAL_UARTLITE is not set 686# CONFIG_SERIAL_UARTLITE is not set
685CONFIG_SERIAL_CORE=y 687CONFIG_SERIAL_CORE=y
686CONFIG_SERIAL_CORE_CONSOLE=y 688CONFIG_SERIAL_CORE_CONSOLE=y
687# CONFIG_SERIAL_PMACZILOG is not set
688CONFIG_SERIAL_CPM=y 689CONFIG_SERIAL_CPM=y
689CONFIG_SERIAL_CPM_CONSOLE=y 690CONFIG_SERIAL_CPM_CONSOLE=y
690CONFIG_SERIAL_CPM_SCC1=y
691# CONFIG_SERIAL_CPM_SCC2 is not set
692# CONFIG_SERIAL_CPM_SCC3 is not set
693CONFIG_SERIAL_CPM_SCC4=y
694# CONFIG_SERIAL_CPM_SMC1 is not set
695# CONFIG_SERIAL_CPM_SMC2 is not set
696# CONFIG_SERIAL_JSM is not set 691# CONFIG_SERIAL_JSM is not set
697CONFIG_UNIX98_PTYS=y 692CONFIG_UNIX98_PTYS=y
698CONFIG_LEGACY_PTYS=y 693CONFIG_LEGACY_PTYS=y
699CONFIG_LEGACY_PTY_COUNT=256 694CONFIG_LEGACY_PTY_COUNT=256
700# CONFIG_BRIQ_PANEL is not set
701# CONFIG_HVC_RTAS is not set
702# CONFIG_IPMI_HANDLER is not set 695# CONFIG_IPMI_HANDLER is not set
703CONFIG_HW_RANDOM=y 696CONFIG_HW_RANDOM=y
704# CONFIG_NVRAM is not set 697# CONFIG_NVRAM is not set
@@ -748,6 +741,14 @@ CONFIG_SSB_POSSIBLE=y
748# CONFIG_MFD_TMIO is not set 741# CONFIG_MFD_TMIO is not set
749 742
750# 743#
744# Voltage and Current regulators
745#
746# CONFIG_REGULATOR is not set
747# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
748# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
749# CONFIG_REGULATOR_BQ24022 is not set
750
751#
751# Multimedia devices 752# Multimedia devices
752# 753#
753 754
@@ -788,6 +789,7 @@ CONFIG_DAB=y
788# CONFIG_RTC_CLASS is not set 789# CONFIG_RTC_CLASS is not set
789# CONFIG_DMADEVICES is not set 790# CONFIG_DMADEVICES is not set
790# CONFIG_UIO is not set 791# CONFIG_UIO is not set
792# CONFIG_STAGING is not set
791 793
792# 794#
793# File systems 795# File systems
@@ -799,11 +801,13 @@ CONFIG_EXT3_FS=y
799CONFIG_EXT3_FS_XATTR=y 801CONFIG_EXT3_FS_XATTR=y
800# CONFIG_EXT3_FS_POSIX_ACL is not set 802# CONFIG_EXT3_FS_POSIX_ACL is not set
801# CONFIG_EXT3_FS_SECURITY is not set 803# CONFIG_EXT3_FS_SECURITY is not set
804# CONFIG_EXT4_FS is not set
802CONFIG_JBD=y 805CONFIG_JBD=y
803CONFIG_FS_MBCACHE=y 806CONFIG_FS_MBCACHE=y
804# CONFIG_REISERFS_FS is not set 807# CONFIG_REISERFS_FS is not set
805# CONFIG_JFS_FS is not set 808# CONFIG_JFS_FS is not set
806CONFIG_FS_POSIX_ACL=y 809CONFIG_FS_POSIX_ACL=y
810CONFIG_FILE_LOCKING=y
807# CONFIG_XFS_FS is not set 811# CONFIG_XFS_FS is not set
808# CONFIG_OCFS2_FS is not set 812# CONFIG_OCFS2_FS is not set
809CONFIG_DNOTIFY=y 813CONFIG_DNOTIFY=y
@@ -833,6 +837,7 @@ CONFIG_AUTOFS4_FS=y
833CONFIG_PROC_FS=y 837CONFIG_PROC_FS=y
834CONFIG_PROC_KCORE=y 838CONFIG_PROC_KCORE=y
835CONFIG_PROC_SYSCTL=y 839CONFIG_PROC_SYSCTL=y
840CONFIG_PROC_PAGE_MONITOR=y
836CONFIG_SYSFS=y 841CONFIG_SYSFS=y
837CONFIG_TMPFS=y 842CONFIG_TMPFS=y
838# CONFIG_TMPFS_POSIX_ACL is not set 843# CONFIG_TMPFS_POSIX_ACL is not set
@@ -935,7 +940,6 @@ CONFIG_NLS_UTF8=y
935# Library routines 940# Library routines
936# 941#
937CONFIG_BITREVERSE=y 942CONFIG_BITREVERSE=y
938# CONFIG_GENERIC_FIND_FIRST_BIT is not set
939CONFIG_CRC_CCITT=y 943CONFIG_CRC_CCITT=y
940# CONFIG_CRC16 is not set 944# CONFIG_CRC16 is not set
941# CONFIG_CRC_T10DIF is not set 945# CONFIG_CRC_T10DIF is not set
@@ -989,15 +993,23 @@ CONFIG_DEBUG_INFO=y
989# CONFIG_DEBUG_SG is not set 993# CONFIG_DEBUG_SG is not set
990# CONFIG_BOOT_PRINTK_DELAY is not set 994# CONFIG_BOOT_PRINTK_DELAY is not set
991# CONFIG_RCU_TORTURE_TEST is not set 995# CONFIG_RCU_TORTURE_TEST is not set
996# CONFIG_RCU_CPU_STALL_DETECTOR is not set
992# CONFIG_BACKTRACE_SELF_TEST is not set 997# CONFIG_BACKTRACE_SELF_TEST is not set
998# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
993# CONFIG_FAULT_INJECTION is not set 999# CONFIG_FAULT_INJECTION is not set
994# CONFIG_LATENCYTOP is not set 1000# CONFIG_LATENCYTOP is not set
995CONFIG_SYSCTL_SYSCALL_CHECK=y 1001CONFIG_SYSCTL_SYSCALL_CHECK=y
996CONFIG_HAVE_FTRACE=y 1002CONFIG_HAVE_FUNCTION_TRACER=y
997CONFIG_HAVE_DYNAMIC_FTRACE=y 1003
998# CONFIG_FTRACE is not set 1004#
1005# Tracers
1006#
1007# CONFIG_FUNCTION_TRACER is not set
999# CONFIG_SCHED_TRACER is not set 1008# CONFIG_SCHED_TRACER is not set
1000# CONFIG_CONTEXT_SWITCH_TRACER is not set 1009# CONFIG_CONTEXT_SWITCH_TRACER is not set
1010# CONFIG_BOOT_TRACER is not set
1011# CONFIG_STACK_TRACER is not set
1012# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1001# CONFIG_SAMPLES is not set 1013# CONFIG_SAMPLES is not set
1002CONFIG_HAVE_ARCH_KGDB=y 1014CONFIG_HAVE_ARCH_KGDB=y
1003# CONFIG_DEBUG_STACKOVERFLOW is not set 1015# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1005,6 +1017,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1005# CONFIG_DEBUG_PAGEALLOC is not set 1017# CONFIG_DEBUG_PAGEALLOC is not set
1006# CONFIG_CODE_PATCHING_SELFTEST is not set 1018# CONFIG_CODE_PATCHING_SELFTEST is not set
1007# CONFIG_FTR_FIXUP_SELFTEST is not set 1019# CONFIG_FTR_FIXUP_SELFTEST is not set
1020# CONFIG_MSI_BITMAP_SELFTEST is not set
1008# CONFIG_XMON is not set 1021# CONFIG_XMON is not set
1009# CONFIG_IRQSTACKS is not set 1022# CONFIG_IRQSTACKS is not set
1010CONFIG_BDI_SWITCH=y 1023CONFIG_BDI_SWITCH=y
@@ -1016,14 +1029,19 @@ CONFIG_BDI_SWITCH=y
1016# 1029#
1017# CONFIG_KEYS is not set 1030# CONFIG_KEYS is not set
1018# CONFIG_SECURITY is not set 1031# CONFIG_SECURITY is not set
1032# CONFIG_SECURITYFS is not set
1019# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1033# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1020CONFIG_CRYPTO=y 1034CONFIG_CRYPTO=y
1021 1035
1022# 1036#
1023# Crypto core or helper 1037# Crypto core or helper
1024# 1038#
1039# CONFIG_CRYPTO_FIPS is not set
1025CONFIG_CRYPTO_ALGAPI=y 1040CONFIG_CRYPTO_ALGAPI=y
1041CONFIG_CRYPTO_AEAD=y
1026CONFIG_CRYPTO_BLKCIPHER=y 1042CONFIG_CRYPTO_BLKCIPHER=y
1043CONFIG_CRYPTO_HASH=y
1044CONFIG_CRYPTO_RNG=y
1027CONFIG_CRYPTO_MANAGER=y 1045CONFIG_CRYPTO_MANAGER=y
1028# CONFIG_CRYPTO_NULL is not set 1046# CONFIG_CRYPTO_NULL is not set
1029# CONFIG_CRYPTO_CRYPTD is not set 1047# CONFIG_CRYPTO_CRYPTD is not set
@@ -1090,6 +1108,11 @@ CONFIG_CRYPTO_DES=y
1090# 1108#
1091# CONFIG_CRYPTO_DEFLATE is not set 1109# CONFIG_CRYPTO_DEFLATE is not set
1092# CONFIG_CRYPTO_LZO is not set 1110# CONFIG_CRYPTO_LZO is not set
1111
1112#
1113# Random Number Generation
1114#
1115# CONFIG_CRYPTO_ANSI_CPRNG is not set
1093# CONFIG_CRYPTO_HW is not set 1116# CONFIG_CRYPTO_HW is not set
1094CONFIG_PPC_CLOCK=y 1117CONFIG_PPC_CLOCK=y
1095CONFIG_PPC_LIB_RHEAP=y 1118CONFIG_PPC_LIB_RHEAP=y
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 991c9bda12a9..d582014b0a38 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 07:16:25 2008 4# Sat Nov 8 12:39:42 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -55,8 +55,6 @@ CONFIG_AUDIT_ARCH=y
55CONFIG_GENERIC_BUG=y 55CONFIG_GENERIC_BUG=y
56CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
57CONFIG_REDBOOT=y 57CONFIG_REDBOOT=y
58CONFIG_HIBERNATE_32=y
59CONFIG_ARCH_HIBERNATION_POSSIBLE=y
60CONFIG_ARCH_SUSPEND_POSSIBLE=y 58CONFIG_ARCH_SUSPEND_POSSIBLE=y
61# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
62# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
@@ -101,7 +99,6 @@ CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 99CONFIG_PRINTK=y
102CONFIG_BUG=y 100CONFIG_BUG=y
103CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
104CONFIG_PCSPKR_PLATFORM=y
105CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
106CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,7 +108,9 @@ CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 108CONFIG_TIMERFD=y
112CONFIG_EVENTFD=y 109CONFIG_EVENTFD=y
113CONFIG_SHMEM=y 110CONFIG_SHMEM=y
111CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y
115CONFIG_SLAB=y 114CONFIG_SLAB=y
116# CONFIG_SLUB is not set 115# CONFIG_SLUB is not set
117# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
@@ -124,10 +123,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
@@ -160,6 +155,7 @@ CONFIG_DEFAULT_AS=y
160# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="anticipatory"
162CONFIG_CLASSIC_RCU=y 157CONFIG_CLASSIC_RCU=y
158# CONFIG_FREEZER is not set
163 159
164# 160#
165# Platform support 161# Platform support
@@ -167,10 +163,10 @@ CONFIG_CLASSIC_RCU=y
167CONFIG_PPC_MULTIPLATFORM=y 163CONFIG_PPC_MULTIPLATFORM=y
168CONFIG_CLASSIC32=y 164CONFIG_CLASSIC32=y
169# CONFIG_PPC_CHRP is not set 165# CONFIG_PPC_CHRP is not set
170# CONFIG_PPC_PMAC is not set
171# CONFIG_MPC5121_ADS is not set 166# CONFIG_MPC5121_ADS is not set
172# CONFIG_MPC5121_GENERIC is not set 167# CONFIG_MPC5121_GENERIC is not set
173# CONFIG_PPC_MPC52xx is not set 168# CONFIG_PPC_MPC52xx is not set
169# CONFIG_PPC_PMAC is not set
174# CONFIG_PPC_CELL is not set 170# CONFIG_PPC_CELL is not set
175# CONFIG_PPC_CELL_NATIVE is not set 171# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set 172# CONFIG_PPC_82xx is not set
@@ -193,31 +189,27 @@ CONFIG_PPC_MPC834x=y
193CONFIG_PPC_MPC837x=y 189CONFIG_PPC_MPC837x=y
194# CONFIG_PPC_86xx is not set 190# CONFIG_PPC_86xx is not set
195# CONFIG_EMBEDDED6xx is not set 191# CONFIG_EMBEDDED6xx is not set
196CONFIG_PPC_NATIVE=y
197# CONFIG_UDBG_RTAS_CONSOLE is not set
198CONFIG_IPIC=y 192CONFIG_IPIC=y
199CONFIG_MPIC=y 193# CONFIG_MPIC is not set
200# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
201CONFIG_PPC_I8259=y 195# CONFIG_PPC_I8259 is not set
202CONFIG_PPC_RTAS=y 196# CONFIG_PPC_RTAS is not set
203# CONFIG_RTAS_ERROR_LOGGING is not set
204CONFIG_RTAS_PROC=y
205# CONFIG_MMIO_NVRAM is not set 197# CONFIG_MMIO_NVRAM is not set
206CONFIG_PPC_MPC106=y 198# CONFIG_PPC_MPC106 is not set
207# CONFIG_PPC_970_NAP is not set 199# CONFIG_PPC_970_NAP is not set
208# CONFIG_PPC_INDIRECT_IO is not set 200# CONFIG_PPC_INDIRECT_IO is not set
209# CONFIG_GENERIC_IOMAP is not set 201# CONFIG_GENERIC_IOMAP is not set
210# CONFIG_CPU_FREQ is not set 202# CONFIG_CPU_FREQ is not set
211# CONFIG_PPC601_SYNC_FIX is not set
212# CONFIG_TAU is not set 203# CONFIG_TAU is not set
213CONFIG_QUICC_ENGINE=y 204CONFIG_QUICC_ENGINE=y
205CONFIG_QE_GPIO=y
214# CONFIG_FSL_ULI1575 is not set 206# CONFIG_FSL_ULI1575 is not set
207# CONFIG_MPC8xxx_GPIO is not set
215 208
216# 209#
217# Kernel options 210# Kernel options
218# 211#
219# CONFIG_HIGHMEM is not set 212# CONFIG_HIGHMEM is not set
220# CONFIG_TICK_ONESHOT is not set
221# CONFIG_NO_HZ is not set 213# CONFIG_NO_HZ is not set
222# CONFIG_HIGH_RES_TIMERS is not set 214# CONFIG_HIGH_RES_TIMERS is not set
223CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 215CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -231,6 +223,8 @@ CONFIG_PREEMPT_NONE=y
231# CONFIG_PREEMPT_VOLUNTARY is not set 223# CONFIG_PREEMPT_VOLUNTARY is not set
232# CONFIG_PREEMPT is not set 224# CONFIG_PREEMPT is not set
233CONFIG_BINFMT_ELF=y 225CONFIG_BINFMT_ELF=y
226# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
227# CONFIG_HAVE_AOUT is not set
234# CONFIG_BINFMT_MISC is not set 228# CONFIG_BINFMT_MISC is not set
235CONFIG_MATH_EMULATION=y 229CONFIG_MATH_EMULATION=y
236# CONFIG_IOMMU_HELPER is not set 230# CONFIG_IOMMU_HELPER is not set
@@ -246,15 +240,15 @@ CONFIG_FLATMEM_MANUAL=y
246# CONFIG_SPARSEMEM_MANUAL is not set 240# CONFIG_SPARSEMEM_MANUAL is not set
247CONFIG_FLATMEM=y 241CONFIG_FLATMEM=y
248CONFIG_FLAT_NODE_MEM_MAP=y 242CONFIG_FLAT_NODE_MEM_MAP=y
249# CONFIG_SPARSEMEM_STATIC is not set
250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
251CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
252CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
253CONFIG_MIGRATION=y 245CONFIG_MIGRATION=y
254# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
247# CONFIG_PHYS_ADDR_T_64BIT is not set
255CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
256CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
257CONFIG_VIRT_TO_BUS=y 250CONFIG_VIRT_TO_BUS=y
251CONFIG_UNEVICTABLE_LRU=y
258CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
259CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
260# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
@@ -266,7 +260,6 @@ CONFIG_ISA_DMA_API=y
266# 260#
267# Bus options 261# Bus options
268# 262#
269# CONFIG_ISA is not set
270CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
271CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
272CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
@@ -281,7 +274,7 @@ CONFIG_PCI_SYSCALL=y
281# CONFIG_PCIEPORTBUS is not set 274# CONFIG_PCIEPORTBUS is not set
282CONFIG_ARCH_SUPPORTS_MSI=y 275CONFIG_ARCH_SUPPORTS_MSI=y
283# CONFIG_PCI_MSI is not set 276# CONFIG_PCI_MSI is not set
284CONFIG_PCI_LEGACY=y 277# CONFIG_PCI_LEGACY is not set
285# CONFIG_PCCARD is not set 278# CONFIG_PCCARD is not set
286# CONFIG_HOTPLUG_PCI is not set 279# CONFIG_HOTPLUG_PCI is not set
287# CONFIG_HAS_RAPIDIO is not set 280# CONFIG_HAS_RAPIDIO is not set
@@ -349,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
349# CONFIG_TIPC is not set 342# CONFIG_TIPC is not set
350# CONFIG_ATM is not set 343# CONFIG_ATM is not set
351# CONFIG_BRIDGE is not set 344# CONFIG_BRIDGE is not set
345# CONFIG_NET_DSA is not set
352# CONFIG_VLAN_8021Q is not set 346# CONFIG_VLAN_8021Q is not set
353# CONFIG_DECNET is not set 347# CONFIG_DECNET is not set
354# CONFIG_LLC2 is not set 348# CONFIG_LLC2 is not set
@@ -369,11 +363,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
369# CONFIG_IRDA is not set 363# CONFIG_IRDA is not set
370# CONFIG_BT is not set 364# CONFIG_BT is not set
371# CONFIG_AF_RXRPC is not set 365# CONFIG_AF_RXRPC is not set
372 366# CONFIG_PHONET is not set
373# 367CONFIG_WIRELESS=y
374# Wireless
375#
376# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y
377# CONFIG_WIRELESS_EXT is not set 370# CONFIG_WIRELESS_EXT is not set
378# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set 372# CONFIG_IEEE80211 is not set
@@ -488,7 +481,6 @@ CONFIG_OF_I2C=y
488# CONFIG_PARPORT is not set 481# CONFIG_PARPORT is not set
489CONFIG_BLK_DEV=y 482CONFIG_BLK_DEV=y
490# CONFIG_BLK_DEV_FD is not set 483# CONFIG_BLK_DEV_FD is not set
491# CONFIG_MAC_FLOPPY is not set
492# CONFIG_BLK_CPQ_DA is not set 484# CONFIG_BLK_CPQ_DA is not set
493# CONFIG_BLK_CPQ_CISS_DA is not set 485# CONFIG_BLK_CPQ_CISS_DA is not set
494# CONFIG_BLK_DEV_DAC960 is not set 486# CONFIG_BLK_DEV_DAC960 is not set
@@ -590,8 +582,6 @@ CONFIG_SCSI_LOWLEVEL=y
590# CONFIG_SCSI_DC390T is not set 582# CONFIG_SCSI_DC390T is not set
591# CONFIG_SCSI_NSP32 is not set 583# CONFIG_SCSI_NSP32 is not set
592# CONFIG_SCSI_DEBUG is not set 584# CONFIG_SCSI_DEBUG is not set
593# CONFIG_SCSI_MESH is not set
594# CONFIG_SCSI_MAC53C94 is not set
595# CONFIG_SCSI_SRP is not set 585# CONFIG_SCSI_SRP is not set
596# CONFIG_SCSI_DH is not set 586# CONFIG_SCSI_DH is not set
597CONFIG_ATA=y 587CONFIG_ATA=y
@@ -692,12 +682,10 @@ CONFIG_VITESSE_PHY=y
692# CONFIG_BROADCOM_PHY is not set 682# CONFIG_BROADCOM_PHY is not set
693CONFIG_ICPLUS_PHY=y 683CONFIG_ICPLUS_PHY=y
694# CONFIG_REALTEK_PHY is not set 684# CONFIG_REALTEK_PHY is not set
695# CONFIG_FIXED_PHY is not set 685CONFIG_FIXED_PHY=y
696# CONFIG_MDIO_BITBANG is not set 686# CONFIG_MDIO_BITBANG is not set
697CONFIG_NET_ETHERNET=y 687CONFIG_NET_ETHERNET=y
698CONFIG_MII=y 688CONFIG_MII=y
699# CONFIG_MACE is not set
700# CONFIG_BMAC is not set
701# CONFIG_HAPPYMEAL is not set 689# CONFIG_HAPPYMEAL is not set
702# CONFIG_SUNGEM is not set 690# CONFIG_SUNGEM is not set
703# CONFIG_CASSINI is not set 691# CONFIG_CASSINI is not set
@@ -708,8 +696,12 @@ CONFIG_MII=y
708# CONFIG_IBM_NEW_EMAC_RGMII is not set 696# CONFIG_IBM_NEW_EMAC_RGMII is not set
709# CONFIG_IBM_NEW_EMAC_TAH is not set 697# CONFIG_IBM_NEW_EMAC_TAH is not set
710# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 698# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
699# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
700# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
701# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
711# CONFIG_NET_PCI is not set 702# CONFIG_NET_PCI is not set
712# CONFIG_B44 is not set 703# CONFIG_B44 is not set
704# CONFIG_ATL2 is not set
713CONFIG_NETDEV_1000=y 705CONFIG_NETDEV_1000=y
714# CONFIG_ACENIC is not set 706# CONFIG_ACENIC is not set
715# CONFIG_DL2K is not set 707# CONFIG_DL2K is not set
@@ -736,18 +728,22 @@ CONFIG_UCC_GETH=y
736# CONFIG_QLA3XXX is not set 728# CONFIG_QLA3XXX is not set
737# CONFIG_ATL1 is not set 729# CONFIG_ATL1 is not set
738# CONFIG_ATL1E is not set 730# CONFIG_ATL1E is not set
731# CONFIG_JME is not set
739CONFIG_NETDEV_10000=y 732CONFIG_NETDEV_10000=y
740# CONFIG_CHELSIO_T1 is not set 733# CONFIG_CHELSIO_T1 is not set
741# CONFIG_CHELSIO_T3 is not set 734# CONFIG_CHELSIO_T3 is not set
735# CONFIG_ENIC is not set
742# CONFIG_IXGBE is not set 736# CONFIG_IXGBE is not set
743# CONFIG_IXGB is not set 737# CONFIG_IXGB is not set
744# CONFIG_S2IO is not set 738# CONFIG_S2IO is not set
745# CONFIG_MYRI10GE is not set 739# CONFIG_MYRI10GE is not set
746# CONFIG_NETXEN_NIC is not set 740# CONFIG_NETXEN_NIC is not set
747# CONFIG_NIU is not set 741# CONFIG_NIU is not set
742# CONFIG_MLX4_EN is not set
748# CONFIG_MLX4_CORE is not set 743# CONFIG_MLX4_CORE is not set
749# CONFIG_TEHUTI is not set 744# CONFIG_TEHUTI is not set
750# CONFIG_BNX2X is not set 745# CONFIG_BNX2X is not set
746# CONFIG_QLGE is not set
751# CONFIG_SFC is not set 747# CONFIG_SFC is not set
752# CONFIG_TR is not set 748# CONFIG_TR is not set
753 749
@@ -782,7 +778,7 @@ CONFIG_NETDEV_10000=y
782# Input device support 778# Input device support
783# 779#
784CONFIG_INPUT=y 780CONFIG_INPUT=y
785# CONFIG_INPUT_FF_MEMLESS is not set 781CONFIG_INPUT_FF_MEMLESS=m
786# CONFIG_INPUT_POLLDEV is not set 782# CONFIG_INPUT_POLLDEV is not set
787 783
788# 784#
@@ -833,15 +829,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
833# CONFIG_SERIAL_UARTLITE is not set 829# CONFIG_SERIAL_UARTLITE is not set
834CONFIG_SERIAL_CORE=y 830CONFIG_SERIAL_CORE=y
835CONFIG_SERIAL_CORE_CONSOLE=y 831CONFIG_SERIAL_CORE_CONSOLE=y
836# CONFIG_SERIAL_PMACZILOG is not set
837# CONFIG_SERIAL_JSM is not set 832# CONFIG_SERIAL_JSM is not set
838# CONFIG_SERIAL_OF_PLATFORM is not set 833# CONFIG_SERIAL_OF_PLATFORM is not set
839# CONFIG_SERIAL_QE is not set 834# CONFIG_SERIAL_QE is not set
840CONFIG_UNIX98_PTYS=y 835CONFIG_UNIX98_PTYS=y
841CONFIG_LEGACY_PTYS=y 836CONFIG_LEGACY_PTYS=y
842CONFIG_LEGACY_PTY_COUNT=256 837CONFIG_LEGACY_PTY_COUNT=256
843# CONFIG_BRIQ_PANEL is not set
844# CONFIG_HVC_RTAS is not set
845# CONFIG_IPMI_HANDLER is not set 838# CONFIG_IPMI_HANDLER is not set
846CONFIG_HW_RANDOM=y 839CONFIG_HW_RANDOM=y
847# CONFIG_NVRAM is not set 840# CONFIG_NVRAM is not set
@@ -880,12 +873,6 @@ CONFIG_I2C_HELPER_AUTO=y
880# CONFIG_I2C_VIAPRO is not set 873# CONFIG_I2C_VIAPRO is not set
881 874
882# 875#
883# Mac SMBus host controller drivers
884#
885# CONFIG_I2C_HYDRA is not set
886CONFIG_I2C_POWERMAC=y
887
888#
889# I2C system bus drivers (mostly embedded / system-on-chip) 876# I2C system bus drivers (mostly embedded / system-on-chip)
890# 877#
891# CONFIG_I2C_GPIO is not set 878# CONFIG_I2C_GPIO is not set
@@ -924,6 +911,7 @@ CONFIG_I2C_MPC=y
924# CONFIG_TPS65010 is not set 911# CONFIG_TPS65010 is not set
925# CONFIG_SENSORS_MAX6875 is not set 912# CONFIG_SENSORS_MAX6875 is not set
926# CONFIG_SENSORS_TSL2550 is not set 913# CONFIG_SENSORS_TSL2550 is not set
914# CONFIG_MCU_MPC8349EMITX is not set
927# CONFIG_I2C_DEBUG_CORE is not set 915# CONFIG_I2C_DEBUG_CORE is not set
928# CONFIG_I2C_DEBUG_ALGO is not set 916# CONFIG_I2C_DEBUG_ALGO is not set
929# CONFIG_I2C_DEBUG_BUS is not set 917# CONFIG_I2C_DEBUG_BUS is not set
@@ -963,7 +951,6 @@ CONFIG_HWMON=y
963# CONFIG_SENSORS_ADM9240 is not set 951# CONFIG_SENSORS_ADM9240 is not set
964# CONFIG_SENSORS_ADT7470 is not set 952# CONFIG_SENSORS_ADT7470 is not set
965# CONFIG_SENSORS_ADT7473 is not set 953# CONFIG_SENSORS_ADT7473 is not set
966# CONFIG_SENSORS_AMS is not set
967# CONFIG_SENSORS_ATXP1 is not set 954# CONFIG_SENSORS_ATXP1 is not set
968# CONFIG_SENSORS_DS1621 is not set 955# CONFIG_SENSORS_DS1621 is not set
969# CONFIG_SENSORS_I5K_AMB is not set 956# CONFIG_SENSORS_I5K_AMB is not set
@@ -1018,7 +1005,6 @@ CONFIG_WATCHDOG=y
1018# CONFIG_SOFT_WATCHDOG is not set 1005# CONFIG_SOFT_WATCHDOG is not set
1019# CONFIG_ALIM7101_WDT is not set 1006# CONFIG_ALIM7101_WDT is not set
1020# CONFIG_8xxx_WDT is not set 1007# CONFIG_8xxx_WDT is not set
1021# CONFIG_WATCHDOG_RTAS is not set
1022 1008
1023# 1009#
1024# PCI-based Watchdog Cards 1010# PCI-based Watchdog Cards
@@ -1044,6 +1030,17 @@ CONFIG_SSB_POSSIBLE=y
1044# CONFIG_MFD_SM501 is not set 1030# CONFIG_MFD_SM501 is not set
1045# CONFIG_HTC_PASIC3 is not set 1031# CONFIG_HTC_PASIC3 is not set
1046# CONFIG_MFD_TMIO is not set 1032# CONFIG_MFD_TMIO is not set
1033# CONFIG_PMIC_DA903X is not set
1034# CONFIG_MFD_WM8400 is not set
1035# CONFIG_MFD_WM8350_I2C is not set
1036
1037#
1038# Voltage and Current regulators
1039#
1040# CONFIG_REGULATOR is not set
1041# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1042# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1043# CONFIG_REGULATOR_BQ24022 is not set
1047 1044
1048# 1045#
1049# Multimedia devices 1046# Multimedia devices
@@ -1086,9 +1083,36 @@ CONFIG_HID=y
1086# USB Input Devices 1083# USB Input Devices
1087# 1084#
1088CONFIG_USB_HID=y 1085CONFIG_USB_HID=y
1089# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1086# CONFIG_HID_PID is not set
1090# CONFIG_HID_FF is not set
1091# CONFIG_USB_HIDDEV 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
1094CONFIG_HID_APPLE=y
1095CONFIG_HID_BELKIN=y
1096CONFIG_HID_BRIGHT=y
1097CONFIG_HID_CHERRY=y
1098CONFIG_HID_CHICONY=y
1099CONFIG_HID_CYPRESS=y
1100CONFIG_HID_DELL=y
1101CONFIG_HID_EZKEY=y
1102CONFIG_HID_GYRATION=y
1103CONFIG_HID_LOGITECH=y
1104# CONFIG_LOGITECH_FF is not set
1105# CONFIG_LOGIRUMBLEPAD2_FF is not set
1106CONFIG_HID_MICROSOFT=y
1107CONFIG_HID_MONTEREY=y
1108CONFIG_HID_PANTHERLORD=y
1109# CONFIG_PANTHERLORD_FF is not set
1110CONFIG_HID_PETALYNX=y
1111CONFIG_HID_SAMSUNG=y
1112CONFIG_HID_SONY=y
1113CONFIG_HID_SUNPLUS=y
1114CONFIG_THRUSTMASTER_FF=m
1115CONFIG_ZEROPLUS_FF=m
1092CONFIG_USB_SUPPORT=y 1116CONFIG_USB_SUPPORT=y
1093CONFIG_USB_ARCH_HAS_HCD=y 1117CONFIG_USB_ARCH_HAS_HCD=y
1094CONFIG_USB_ARCH_HAS_OHCI=y 1118CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1107,6 +1131,8 @@ CONFIG_USB_DEVICE_CLASS=y
1107# CONFIG_USB_OTG_WHITELIST is not set 1131# CONFIG_USB_OTG_WHITELIST is not set
1108# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1132# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1109CONFIG_USB_MON=y 1133CONFIG_USB_MON=y
1134# CONFIG_USB_WUSB is not set
1135# CONFIG_USB_WUSB_CBAF is not set
1110 1136
1111# 1137#
1112# USB Host Controller Drivers 1138# USB Host Controller Drivers
@@ -1123,6 +1149,8 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1123# CONFIG_USB_UHCI_HCD is not set 1149# CONFIG_USB_UHCI_HCD is not set
1124# CONFIG_USB_SL811_HCD is not set 1150# CONFIG_USB_SL811_HCD is not set
1125# CONFIG_USB_R8A66597_HCD is not set 1151# CONFIG_USB_R8A66597_HCD is not set
1152# CONFIG_USB_WHCI_HCD is not set
1153# CONFIG_USB_HWA_HCD is not set
1126 1154
1127# 1155#
1128# USB Device Class drivers 1156# USB Device Class drivers
@@ -1130,6 +1158,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1130# CONFIG_USB_ACM is not set 1158# CONFIG_USB_ACM is not set
1131# CONFIG_USB_PRINTER is not set 1159# CONFIG_USB_PRINTER is not set
1132# CONFIG_USB_WDM is not set 1160# CONFIG_USB_WDM is not set
1161# CONFIG_USB_TMC is not set
1133 1162
1134# 1163#
1135# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1164# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1158,6 +1187,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1158# CONFIG_USB_EMI62 is not set 1187# CONFIG_USB_EMI62 is not set
1159# CONFIG_USB_EMI26 is not set 1188# CONFIG_USB_EMI26 is not set
1160# CONFIG_USB_ADUTUX is not set 1189# CONFIG_USB_ADUTUX is not set
1190# CONFIG_USB_SEVSEG is not set
1161# CONFIG_USB_RIO500 is not set 1191# CONFIG_USB_RIO500 is not set
1162# CONFIG_USB_LEGOTOWER is not set 1192# CONFIG_USB_LEGOTOWER is not set
1163# CONFIG_USB_LCD is not set 1193# CONFIG_USB_LCD is not set
@@ -1174,7 +1204,9 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1174# CONFIG_USB_TRANCEVIBRATOR is not set 1204# CONFIG_USB_TRANCEVIBRATOR is not set
1175# CONFIG_USB_IOWARRIOR is not set 1205# CONFIG_USB_IOWARRIOR is not set
1176# CONFIG_USB_ISIGHTFW is not set 1206# CONFIG_USB_ISIGHTFW is not set
1207# CONFIG_USB_VST is not set
1177# CONFIG_USB_GADGET is not set 1208# CONFIG_USB_GADGET is not set
1209# CONFIG_UWB is not set
1178# CONFIG_MMC is not set 1210# CONFIG_MMC is not set
1179# CONFIG_MEMSTICK is not set 1211# CONFIG_MEMSTICK is not set
1180# CONFIG_NEW_LEDS is not set 1212# CONFIG_NEW_LEDS is not set
@@ -1184,6 +1216,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1184# CONFIG_RTC_CLASS is not set 1216# CONFIG_RTC_CLASS is not set
1185# CONFIG_DMADEVICES is not set 1217# CONFIG_DMADEVICES is not set
1186# CONFIG_UIO is not set 1218# CONFIG_UIO is not set
1219# CONFIG_STAGING is not set
1187 1220
1188# 1221#
1189# File systems 1222# File systems
@@ -1195,12 +1228,13 @@ CONFIG_EXT3_FS=y
1195CONFIG_EXT3_FS_XATTR=y 1228CONFIG_EXT3_FS_XATTR=y
1196# CONFIG_EXT3_FS_POSIX_ACL is not set 1229# CONFIG_EXT3_FS_POSIX_ACL is not set
1197# CONFIG_EXT3_FS_SECURITY is not set 1230# CONFIG_EXT3_FS_SECURITY is not set
1198# CONFIG_EXT4DEV_FS is not set 1231# CONFIG_EXT4_FS is not set
1199CONFIG_JBD=y 1232CONFIG_JBD=y
1200CONFIG_FS_MBCACHE=y 1233CONFIG_FS_MBCACHE=y
1201# CONFIG_REISERFS_FS is not set 1234# CONFIG_REISERFS_FS is not set
1202# CONFIG_JFS_FS is not set 1235# CONFIG_JFS_FS is not set
1203# CONFIG_FS_POSIX_ACL is not set 1236# CONFIG_FS_POSIX_ACL is not set
1237CONFIG_FILE_LOCKING=y
1204# CONFIG_XFS_FS is not set 1238# CONFIG_XFS_FS is not set
1205# CONFIG_OCFS2_FS is not set 1239# CONFIG_OCFS2_FS is not set
1206CONFIG_DNOTIFY=y 1240CONFIG_DNOTIFY=y
@@ -1230,6 +1264,7 @@ CONFIG_INOTIFY_USER=y
1230CONFIG_PROC_FS=y 1264CONFIG_PROC_FS=y
1231CONFIG_PROC_KCORE=y 1265CONFIG_PROC_KCORE=y
1232CONFIG_PROC_SYSCTL=y 1266CONFIG_PROC_SYSCTL=y
1267CONFIG_PROC_PAGE_MONITOR=y
1233CONFIG_SYSFS=y 1268CONFIG_SYSFS=y
1234CONFIG_TMPFS=y 1269CONFIG_TMPFS=y
1235# CONFIG_TMPFS_POSIX_ACL is not set 1270# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1268,6 +1303,7 @@ CONFIG_LOCKD_V4=y
1268CONFIG_NFS_COMMON=y 1303CONFIG_NFS_COMMON=y
1269CONFIG_SUNRPC=y 1304CONFIG_SUNRPC=y
1270CONFIG_SUNRPC_GSS=y 1305CONFIG_SUNRPC_GSS=y
1306# CONFIG_SUNRPC_REGISTER_V4 is not set
1271CONFIG_RPCSEC_GSS_KRB5=y 1307CONFIG_RPCSEC_GSS_KRB5=y
1272# CONFIG_RPCSEC_GSS_SPKM3 is not set 1308# CONFIG_RPCSEC_GSS_SPKM3 is not set
1273# CONFIG_SMB_FS is not set 1309# CONFIG_SMB_FS is not set
@@ -1301,13 +1337,11 @@ CONFIG_MSDOS_PARTITION=y
1301# CONFIG_DLM is not set 1337# CONFIG_DLM is not set
1302CONFIG_UCC_FAST=y 1338CONFIG_UCC_FAST=y
1303CONFIG_UCC=y 1339CONFIG_UCC=y
1304CONFIG_QE_GPIO=y
1305 1340
1306# 1341#
1307# Library routines 1342# Library routines
1308# 1343#
1309CONFIG_BITREVERSE=y 1344CONFIG_BITREVERSE=y
1310# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1311# CONFIG_CRC_CCITT is not set 1345# CONFIG_CRC_CCITT is not set
1312# CONFIG_CRC16 is not set 1346# CONFIG_CRC16 is not set
1313CONFIG_CRC_T10DIF=y 1347CONFIG_CRC_T10DIF=y
@@ -1335,13 +1369,15 @@ CONFIG_FRAME_WARN=1024
1335# CONFIG_DEBUG_KERNEL is not set 1369# CONFIG_DEBUG_KERNEL is not set
1336# CONFIG_DEBUG_BUGVERBOSE is not set 1370# CONFIG_DEBUG_BUGVERBOSE is not set
1337# CONFIG_DEBUG_MEMORY_INIT is not set 1371# CONFIG_DEBUG_MEMORY_INIT is not set
1372# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1338# CONFIG_LATENCYTOP is not set 1373# CONFIG_LATENCYTOP is not set
1339CONFIG_SYSCTL_SYSCALL_CHECK=y 1374CONFIG_SYSCTL_SYSCALL_CHECK=y
1340CONFIG_HAVE_FTRACE=y 1375CONFIG_HAVE_FUNCTION_TRACER=y
1341CONFIG_HAVE_DYNAMIC_FTRACE=y 1376
1342# CONFIG_FTRACE is not set 1377#
1343# CONFIG_SCHED_TRACER is not set 1378# Tracers
1344# CONFIG_CONTEXT_SWITCH_TRACER is not set 1379#
1380# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1345# CONFIG_SAMPLES is not set 1381# CONFIG_SAMPLES is not set
1346CONFIG_HAVE_ARCH_KGDB=y 1382CONFIG_HAVE_ARCH_KGDB=y
1347# CONFIG_IRQSTACKS is not set 1383# CONFIG_IRQSTACKS is not set
@@ -1353,16 +1389,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1353# 1389#
1354# CONFIG_KEYS is not set 1390# CONFIG_KEYS is not set
1355# CONFIG_SECURITY is not set 1391# CONFIG_SECURITY is not set
1392# CONFIG_SECURITYFS is not set
1356# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1393# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1357CONFIG_CRYPTO=y 1394CONFIG_CRYPTO=y
1358 1395
1359# 1396#
1360# Crypto core or helper 1397# Crypto core or helper
1361# 1398#
1399# CONFIG_CRYPTO_FIPS is not set
1362CONFIG_CRYPTO_ALGAPI=y 1400CONFIG_CRYPTO_ALGAPI=y
1363CONFIG_CRYPTO_AEAD=y 1401CONFIG_CRYPTO_AEAD=y
1364CONFIG_CRYPTO_BLKCIPHER=y 1402CONFIG_CRYPTO_BLKCIPHER=y
1365CONFIG_CRYPTO_HASH=y 1403CONFIG_CRYPTO_HASH=y
1404CONFIG_CRYPTO_RNG=y
1366CONFIG_CRYPTO_MANAGER=y 1405CONFIG_CRYPTO_MANAGER=y
1367# CONFIG_CRYPTO_GF128MUL is not set 1406# CONFIG_CRYPTO_GF128MUL is not set
1368# CONFIG_CRYPTO_NULL is not set 1407# CONFIG_CRYPTO_NULL is not set
@@ -1435,6 +1474,11 @@ CONFIG_CRYPTO_DES=y
1435# 1474#
1436# CONFIG_CRYPTO_DEFLATE is not set 1475# CONFIG_CRYPTO_DEFLATE is not set
1437# CONFIG_CRYPTO_LZO is not set 1476# CONFIG_CRYPTO_LZO is not set
1477
1478#
1479# Random Number Generation
1480#
1481# CONFIG_CRYPTO_ANSI_CPRNG is not set
1438CONFIG_CRYPTO_HW=y 1482CONFIG_CRYPTO_HW=y
1439# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1483# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1440CONFIG_CRYPTO_DEV_TALITOS=y 1484CONFIG_CRYPTO_DEV_TALITOS=y
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index f0a13bebf50c..c87b53abc617 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 07:15:20 2008 4# Sat Nov 8 12:39:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set 24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -111,7 +111,9 @@ CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 111CONFIG_TIMERFD=y
112CONFIG_EVENTFD=y 112CONFIG_EVENTFD=y
113CONFIG_SHMEM=y 113CONFIG_SHMEM=y
114CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 115CONFIG_VM_EVENT_COUNTERS=y
116CONFIG_PCI_QUIRKS=y
115CONFIG_SLUB_DEBUG=y 117CONFIG_SLUB_DEBUG=y
116# CONFIG_SLAB is not set 118# CONFIG_SLAB is not set
117CONFIG_SLUB=y 119CONFIG_SLUB=y
@@ -125,10 +127,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
125CONFIG_HAVE_KPROBES=y 127CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
128# CONFIG_HAVE_DMA_ATTRS is not set
129# CONFIG_USE_GENERIC_SMP_HELPERS is not set
130CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
133CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
134CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
@@ -161,6 +160,7 @@ CONFIG_DEFAULT_CFQ=y
161# CONFIG_DEFAULT_NOOP is not set 160# CONFIG_DEFAULT_NOOP is not set
162CONFIG_DEFAULT_IOSCHED="cfq" 161CONFIG_DEFAULT_IOSCHED="cfq"
163CONFIG_CLASSIC_RCU=y 162CONFIG_CLASSIC_RCU=y
163# CONFIG_FREEZER is not set
164 164
165# 165#
166# Platform support 166# Platform support
@@ -197,9 +197,11 @@ CONFIG_PPC_I8259=y
197# CONFIG_GENERIC_IOMAP is not set 197# CONFIG_GENERIC_IOMAP is not set
198# CONFIG_CPU_FREQ is not set 198# CONFIG_CPU_FREQ is not set
199CONFIG_QUICC_ENGINE=y 199CONFIG_QUICC_ENGINE=y
200# CONFIG_QE_GPIO is not set
200CONFIG_CPM2=y 201CONFIG_CPM2=y
201CONFIG_FSL_ULI1575=y 202CONFIG_FSL_ULI1575=y
202CONFIG_CPM=y 203CONFIG_CPM=y
204# CONFIG_MPC8xxx_GPIO is not set
203 205
204# 206#
205# Kernel options 207# Kernel options
@@ -219,6 +221,8 @@ CONFIG_PREEMPT_NONE=y
219# CONFIG_PREEMPT_VOLUNTARY is not set 221# CONFIG_PREEMPT_VOLUNTARY is not set
220# CONFIG_PREEMPT is not set 222# CONFIG_PREEMPT is not set
221CONFIG_BINFMT_ELF=y 223CONFIG_BINFMT_ELF=y
224# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
225# CONFIG_HAVE_AOUT is not set
222CONFIG_BINFMT_MISC=m 226CONFIG_BINFMT_MISC=m
223CONFIG_MATH_EMULATION=y 227CONFIG_MATH_EMULATION=y
224# CONFIG_IOMMU_HELPER is not set 228# CONFIG_IOMMU_HELPER is not set
@@ -233,15 +237,15 @@ CONFIG_FLATMEM_MANUAL=y
233# CONFIG_SPARSEMEM_MANUAL is not set 237# CONFIG_SPARSEMEM_MANUAL is not set
234CONFIG_FLATMEM=y 238CONFIG_FLATMEM=y
235CONFIG_FLAT_NODE_MEM_MAP=y 239CONFIG_FLAT_NODE_MEM_MAP=y
236# CONFIG_SPARSEMEM_STATIC is not set
237# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
238CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
239CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y 242CONFIG_MIGRATION=y
241# CONFIG_RESOURCES_64BIT is not set 243# CONFIG_RESOURCES_64BIT is not set
244# CONFIG_PHYS_ADDR_T_64BIT is not set
242CONFIG_ZONE_DMA_FLAG=1 245CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 246CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 247CONFIG_VIRT_TO_BUS=y
248CONFIG_UNEVICTABLE_LRU=y
245CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
247# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -265,7 +269,7 @@ CONFIG_PCI_SYSCALL=y
265# CONFIG_PCIEPORTBUS is not set 269# CONFIG_PCIEPORTBUS is not set
266CONFIG_ARCH_SUPPORTS_MSI=y 270CONFIG_ARCH_SUPPORTS_MSI=y
267# CONFIG_PCI_MSI is not set 271# CONFIG_PCI_MSI is not set
268CONFIG_PCI_LEGACY=y 272# CONFIG_PCI_LEGACY is not set
269# CONFIG_PCI_DEBUG is not set 273# CONFIG_PCI_DEBUG is not set
270# CONFIG_PCCARD is not set 274# CONFIG_PCCARD is not set
271# CONFIG_HOTPLUG_PCI is not set 275# CONFIG_HOTPLUG_PCI is not set
@@ -367,6 +371,7 @@ CONFIG_SCTP_HMAC_MD5=y
367# CONFIG_TIPC is not set 371# CONFIG_TIPC is not set
368# CONFIG_ATM is not set 372# CONFIG_ATM is not set
369# CONFIG_BRIDGE is not set 373# CONFIG_BRIDGE is not set
374# CONFIG_NET_DSA is not set
370# CONFIG_VLAN_8021Q is not set 375# CONFIG_VLAN_8021Q is not set
371# CONFIG_DECNET is not set 376# CONFIG_DECNET is not set
372# CONFIG_LLC2 is not set 377# CONFIG_LLC2 is not set
@@ -387,12 +392,11 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_IRDA is not set 392# CONFIG_IRDA is not set
388# CONFIG_BT is not set 393# CONFIG_BT is not set
389# CONFIG_AF_RXRPC is not set 394# CONFIG_AF_RXRPC is not set
395# CONFIG_PHONET is not set
390CONFIG_FIB_RULES=y 396CONFIG_FIB_RULES=y
391 397CONFIG_WIRELESS=y
392#
393# Wireless
394#
395# CONFIG_CFG80211 is not set 398# CONFIG_CFG80211 is not set
399CONFIG_WIRELESS_OLD_REGULATORY=y
396# CONFIG_WIRELESS_EXT is not set 400# CONFIG_WIRELESS_EXT is not set
397# CONFIG_MAC80211 is not set 401# CONFIG_MAC80211 is not set
398# CONFIG_IEEE80211 is not set 402# CONFIG_IEEE80211 is not set
@@ -639,8 +643,12 @@ CONFIG_MII=y
639# CONFIG_IBM_NEW_EMAC_RGMII is not set 643# CONFIG_IBM_NEW_EMAC_RGMII is not set
640# CONFIG_IBM_NEW_EMAC_TAH is not set 644# CONFIG_IBM_NEW_EMAC_TAH is not set
641# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 645# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
646# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
647# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
648# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
642# CONFIG_NET_PCI is not set 649# CONFIG_NET_PCI is not set
643# CONFIG_B44 is not set 650# CONFIG_B44 is not set
651# CONFIG_ATL2 is not set
644# CONFIG_FS_ENET is not set 652# CONFIG_FS_ENET is not set
645CONFIG_NETDEV_1000=y 653CONFIG_NETDEV_1000=y
646# CONFIG_ACENIC is not set 654# CONFIG_ACENIC is not set
@@ -664,18 +672,22 @@ CONFIG_GIANFAR=y
664# CONFIG_QLA3XXX is not set 672# CONFIG_QLA3XXX is not set
665# CONFIG_ATL1 is not set 673# CONFIG_ATL1 is not set
666# CONFIG_ATL1E is not set 674# CONFIG_ATL1E is not set
675# CONFIG_JME is not set
667CONFIG_NETDEV_10000=y 676CONFIG_NETDEV_10000=y
668# CONFIG_CHELSIO_T1 is not set 677# CONFIG_CHELSIO_T1 is not set
669# CONFIG_CHELSIO_T3 is not set 678# CONFIG_CHELSIO_T3 is not set
679# CONFIG_ENIC is not set
670# CONFIG_IXGBE is not set 680# CONFIG_IXGBE is not set
671# CONFIG_IXGB is not set 681# CONFIG_IXGB is not set
672# CONFIG_S2IO is not set 682# CONFIG_S2IO is not set
673# CONFIG_MYRI10GE is not set 683# CONFIG_MYRI10GE is not set
674# CONFIG_NETXEN_NIC is not set 684# CONFIG_NETXEN_NIC is not set
675# CONFIG_NIU is not set 685# CONFIG_NIU is not set
686# CONFIG_MLX4_EN is not set
676# CONFIG_MLX4_CORE is not set 687# CONFIG_MLX4_CORE is not set
677# CONFIG_TEHUTI is not set 688# CONFIG_TEHUTI is not set
678# CONFIG_BNX2X is not set 689# CONFIG_BNX2X is not set
690# CONFIG_QLGE is not set
679# CONFIG_SFC is not set 691# CONFIG_SFC is not set
680# CONFIG_TR is not set 692# CONFIG_TR is not set
681 693
@@ -710,7 +722,7 @@ CONFIG_NETDEV_10000=y
710# Input device support 722# Input device support
711# 723#
712CONFIG_INPUT=y 724CONFIG_INPUT=y
713# CONFIG_INPUT_FF_MEMLESS is not set 725CONFIG_INPUT_FF_MEMLESS=m
714# CONFIG_INPUT_POLLDEV is not set 726# CONFIG_INPUT_POLLDEV is not set
715 727
716# 728#
@@ -902,7 +914,19 @@ CONFIG_SSB_POSSIBLE=y
902# CONFIG_MFD_CORE is not set 914# CONFIG_MFD_CORE is not set
903# CONFIG_MFD_SM501 is not set 915# CONFIG_MFD_SM501 is not set
904# CONFIG_HTC_PASIC3 is not set 916# CONFIG_HTC_PASIC3 is not set
917# CONFIG_UCB1400_CORE is not set
905# CONFIG_MFD_TMIO is not set 918# CONFIG_MFD_TMIO is not set
919# CONFIG_PMIC_DA903X is not set
920# CONFIG_MFD_WM8400 is not set
921# CONFIG_MFD_WM8350_I2C is not set
922
923#
924# Voltage and Current regulators
925#
926# CONFIG_REGULATOR is not set
927# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
928# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
929# CONFIG_REGULATOR_BQ24022 is not set
906 930
907# 931#
908# Multimedia devices 932# Multimedia devices
@@ -943,7 +967,6 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
943# CONFIG_DVB_USB is not set 967# CONFIG_DVB_USB is not set
944# CONFIG_DVB_TTUSB_BUDGET is not set 968# CONFIG_DVB_TTUSB_BUDGET is not set
945# CONFIG_DVB_TTUSB_DEC is not set 969# CONFIG_DVB_TTUSB_DEC is not set
946# CONFIG_DVB_CINERGYT2 is not set
947# CONFIG_DVB_SIANO_SMS1XXX is not set 970# CONFIG_DVB_SIANO_SMS1XXX is not set
948 971
949# 972#
@@ -961,6 +984,11 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
961# CONFIG_DVB_PLUTO2 is not set 984# CONFIG_DVB_PLUTO2 is not set
962 985
963# 986#
987# Supported SDMC DM1105 Adapters
988#
989# CONFIG_DVB_DM1105 is not set
990
991#
964# Supported DVB Frontends 992# Supported DVB Frontends
965# 993#
966 994
@@ -976,6 +1004,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
976# CONFIG_DVB_CX24123 is not set 1004# CONFIG_DVB_CX24123 is not set
977# CONFIG_DVB_MT312 is not set 1005# CONFIG_DVB_MT312 is not set
978# CONFIG_DVB_S5H1420 is not set 1006# CONFIG_DVB_S5H1420 is not set
1007# CONFIG_DVB_STV0288 is not set
1008# CONFIG_DVB_STB6000 is not set
979# CONFIG_DVB_STV0299 is not set 1009# CONFIG_DVB_STV0299 is not set
980# CONFIG_DVB_TDA8083 is not set 1010# CONFIG_DVB_TDA8083 is not set
981# CONFIG_DVB_TDA10086 is not set 1011# CONFIG_DVB_TDA10086 is not set
@@ -983,6 +1013,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
983# CONFIG_DVB_TUNER_ITD1000 is not set 1013# CONFIG_DVB_TUNER_ITD1000 is not set
984# CONFIG_DVB_TDA826X is not set 1014# CONFIG_DVB_TDA826X is not set
985# CONFIG_DVB_TUA6100 is not set 1015# CONFIG_DVB_TUA6100 is not set
1016# CONFIG_DVB_CX24116 is not set
1017# CONFIG_DVB_SI21XX is not set
986 1018
987# 1019#
988# DVB-T (terrestrial) frontends 1020# DVB-T (terrestrial) frontends
@@ -1035,6 +1067,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1035# CONFIG_DVB_LNBP21 is not set 1067# CONFIG_DVB_LNBP21 is not set
1036# CONFIG_DVB_ISL6405 is not set 1068# CONFIG_DVB_ISL6405 is not set
1037# CONFIG_DVB_ISL6421 is not set 1069# CONFIG_DVB_ISL6421 is not set
1070# CONFIG_DVB_LGS8GL5 is not set
1071
1072#
1073# Tools to develop new frontends
1074#
1075# CONFIG_DVB_DUMMY_FE is not set
1076# CONFIG_DVB_AF9013 is not set
1038CONFIG_DAB=y 1077CONFIG_DAB=y
1039# CONFIG_USB_DABUSB is not set 1078# CONFIG_USB_DABUSB is not set
1040 1079
@@ -1060,6 +1099,7 @@ CONFIG_VGA_CONSOLE=y
1060# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1099# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1061CONFIG_DUMMY_CONSOLE=y 1100CONFIG_DUMMY_CONSOLE=y
1062CONFIG_SOUND=y 1101CONFIG_SOUND=y
1102CONFIG_SOUND_OSS_CORE=y
1063CONFIG_SND=y 1103CONFIG_SND=y
1064CONFIG_SND_TIMER=y 1104CONFIG_SND_TIMER=y
1065CONFIG_SND_PCM=y 1105CONFIG_SND_PCM=y
@@ -1160,9 +1200,36 @@ CONFIG_HID=y
1160# USB Input Devices 1200# USB Input Devices
1161# 1201#
1162CONFIG_USB_HID=y 1202CONFIG_USB_HID=y
1163# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1203# CONFIG_HID_PID is not set
1164# CONFIG_HID_FF is not set
1165# CONFIG_USB_HIDDEV is not set 1204# CONFIG_USB_HIDDEV is not set
1205
1206#
1207# Special HID drivers
1208#
1209CONFIG_HID_COMPAT=y
1210CONFIG_HID_A4TECH=y
1211CONFIG_HID_APPLE=y
1212CONFIG_HID_BELKIN=y
1213CONFIG_HID_BRIGHT=y
1214CONFIG_HID_CHERRY=y
1215CONFIG_HID_CHICONY=y
1216CONFIG_HID_CYPRESS=y
1217CONFIG_HID_DELL=y
1218CONFIG_HID_EZKEY=y
1219CONFIG_HID_GYRATION=y
1220CONFIG_HID_LOGITECH=y
1221# CONFIG_LOGITECH_FF is not set
1222# CONFIG_LOGIRUMBLEPAD2_FF is not set
1223CONFIG_HID_MICROSOFT=y
1224CONFIG_HID_MONTEREY=y
1225CONFIG_HID_PANTHERLORD=y
1226# CONFIG_PANTHERLORD_FF is not set
1227CONFIG_HID_PETALYNX=y
1228CONFIG_HID_SAMSUNG=y
1229CONFIG_HID_SONY=y
1230CONFIG_HID_SUNPLUS=y
1231CONFIG_THRUSTMASTER_FF=m
1232CONFIG_ZEROPLUS_FF=m
1166CONFIG_USB_SUPPORT=y 1233CONFIG_USB_SUPPORT=y
1167CONFIG_USB_ARCH_HAS_HCD=y 1234CONFIG_USB_ARCH_HAS_HCD=y
1168CONFIG_USB_ARCH_HAS_OHCI=y 1235CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1181,6 +1248,8 @@ CONFIG_USB_DEVICE_CLASS=y
1181# CONFIG_USB_OTG_WHITELIST is not set 1248# CONFIG_USB_OTG_WHITELIST is not set
1182# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1249# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1183CONFIG_USB_MON=y 1250CONFIG_USB_MON=y
1251# CONFIG_USB_WUSB is not set
1252# CONFIG_USB_WUSB_CBAF is not set
1184 1253
1185# 1254#
1186# USB Host Controller Drivers 1255# USB Host Controller Drivers
@@ -1204,6 +1273,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1204# CONFIG_USB_UHCI_HCD is not set 1273# CONFIG_USB_UHCI_HCD is not set
1205# CONFIG_USB_SL811_HCD is not set 1274# CONFIG_USB_SL811_HCD is not set
1206# CONFIG_USB_R8A66597_HCD is not set 1275# CONFIG_USB_R8A66597_HCD is not set
1276# CONFIG_USB_WHCI_HCD is not set
1277# CONFIG_USB_HWA_HCD is not set
1207# CONFIG_USB_MUSB_HDRC is not set 1278# CONFIG_USB_MUSB_HDRC is not set
1208 1279
1209# 1280#
@@ -1212,6 +1283,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1212# CONFIG_USB_ACM is not set 1283# CONFIG_USB_ACM is not set
1213# CONFIG_USB_PRINTER is not set 1284# CONFIG_USB_PRINTER is not set
1214# CONFIG_USB_WDM is not set 1285# CONFIG_USB_WDM is not set
1286# CONFIG_USB_TMC is not set
1215 1287
1216# 1288#
1217# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1289# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1233,7 +1305,6 @@ CONFIG_USB_STORAGE=y
1233# CONFIG_USB_STORAGE_ALAUDA is not set 1305# CONFIG_USB_STORAGE_ALAUDA is not set
1234# CONFIG_USB_STORAGE_ONETOUCH is not set 1306# CONFIG_USB_STORAGE_ONETOUCH is not set
1235# CONFIG_USB_STORAGE_KARMA is not set 1307# CONFIG_USB_STORAGE_KARMA is not set
1236# CONFIG_USB_STORAGE_SIERRA is not set
1237# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1308# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1238# CONFIG_USB_LIBUSUAL is not set 1309# CONFIG_USB_LIBUSUAL is not set
1239 1310
@@ -1254,6 +1325,7 @@ CONFIG_USB_STORAGE=y
1254# CONFIG_USB_EMI62 is not set 1325# CONFIG_USB_EMI62 is not set
1255# CONFIG_USB_EMI26 is not set 1326# CONFIG_USB_EMI26 is not set
1256# CONFIG_USB_ADUTUX is not set 1327# CONFIG_USB_ADUTUX is not set
1328# CONFIG_USB_SEVSEG is not set
1257# CONFIG_USB_RIO500 is not set 1329# CONFIG_USB_RIO500 is not set
1258# CONFIG_USB_LEGOTOWER is not set 1330# CONFIG_USB_LEGOTOWER is not set
1259# CONFIG_USB_LCD is not set 1331# CONFIG_USB_LCD is not set
@@ -1271,7 +1343,9 @@ CONFIG_USB_STORAGE=y
1271# CONFIG_USB_IOWARRIOR is not set 1343# CONFIG_USB_IOWARRIOR is not set
1272# CONFIG_USB_TEST is not set 1344# CONFIG_USB_TEST is not set
1273# CONFIG_USB_ISIGHTFW is not set 1345# CONFIG_USB_ISIGHTFW is not set
1346# CONFIG_USB_VST is not set
1274# CONFIG_USB_GADGET is not set 1347# CONFIG_USB_GADGET is not set
1348# CONFIG_UWB is not set
1275# CONFIG_MMC is not set 1349# CONFIG_MMC is not set
1276# CONFIG_MEMSTICK is not set 1350# CONFIG_MEMSTICK is not set
1277# CONFIG_NEW_LEDS is not set 1351# CONFIG_NEW_LEDS is not set
@@ -1324,12 +1398,15 @@ CONFIG_RTC_INTF_DEV=y
1324# Platform RTC drivers 1398# Platform RTC drivers
1325# 1399#
1326CONFIG_RTC_DRV_CMOS=y 1400CONFIG_RTC_DRV_CMOS=y
1401# CONFIG_RTC_DRV_DS1286 is not set
1327# CONFIG_RTC_DRV_DS1511 is not set 1402# CONFIG_RTC_DRV_DS1511 is not set
1328# CONFIG_RTC_DRV_DS1553 is not set 1403# CONFIG_RTC_DRV_DS1553 is not set
1329# CONFIG_RTC_DRV_DS1742 is not set 1404# CONFIG_RTC_DRV_DS1742 is not set
1330# CONFIG_RTC_DRV_STK17TA8 is not set 1405# CONFIG_RTC_DRV_STK17TA8 is not set
1331# CONFIG_RTC_DRV_M48T86 is not set 1406# CONFIG_RTC_DRV_M48T86 is not set
1407# CONFIG_RTC_DRV_M48T35 is not set
1332# CONFIG_RTC_DRV_M48T59 is not set 1408# CONFIG_RTC_DRV_M48T59 is not set
1409# CONFIG_RTC_DRV_BQ4802 is not set
1333# CONFIG_RTC_DRV_V3020 is not set 1410# CONFIG_RTC_DRV_V3020 is not set
1334 1411
1335# 1412#
@@ -1350,6 +1427,7 @@ CONFIG_DMA_ENGINE=y
1350# CONFIG_NET_DMA is not set 1427# CONFIG_NET_DMA is not set
1351# CONFIG_DMATEST is not set 1428# CONFIG_DMATEST is not set
1352# CONFIG_UIO is not set 1429# CONFIG_UIO is not set
1430# CONFIG_STAGING is not set
1353 1431
1354# 1432#
1355# File systems 1433# File systems
@@ -1361,13 +1439,14 @@ CONFIG_EXT3_FS=y
1361CONFIG_EXT3_FS_XATTR=y 1439CONFIG_EXT3_FS_XATTR=y
1362# CONFIG_EXT3_FS_POSIX_ACL is not set 1440# CONFIG_EXT3_FS_POSIX_ACL is not set
1363# CONFIG_EXT3_FS_SECURITY is not set 1441# CONFIG_EXT3_FS_SECURITY is not set
1364# CONFIG_EXT4DEV_FS is not set 1442# CONFIG_EXT4_FS is not set
1365CONFIG_JBD=y 1443CONFIG_JBD=y
1366# CONFIG_JBD_DEBUG is not set 1444# CONFIG_JBD_DEBUG is not set
1367CONFIG_FS_MBCACHE=y 1445CONFIG_FS_MBCACHE=y
1368# CONFIG_REISERFS_FS is not set 1446# CONFIG_REISERFS_FS is not set
1369# CONFIG_JFS_FS is not set 1447# CONFIG_JFS_FS is not set
1370# CONFIG_FS_POSIX_ACL is not set 1448# CONFIG_FS_POSIX_ACL is not set
1449CONFIG_FILE_LOCKING=y
1371# CONFIG_XFS_FS is not set 1450# CONFIG_XFS_FS is not set
1372# CONFIG_OCFS2_FS is not set 1451# CONFIG_OCFS2_FS is not set
1373CONFIG_DNOTIFY=y 1452CONFIG_DNOTIFY=y
@@ -1405,6 +1484,7 @@ CONFIG_NTFS_FS=y
1405CONFIG_PROC_FS=y 1484CONFIG_PROC_FS=y
1406CONFIG_PROC_KCORE=y 1485CONFIG_PROC_KCORE=y
1407CONFIG_PROC_SYSCTL=y 1486CONFIG_PROC_SYSCTL=y
1487CONFIG_PROC_PAGE_MONITOR=y
1408CONFIG_SYSFS=y 1488CONFIG_SYSFS=y
1409CONFIG_TMPFS=y 1489CONFIG_TMPFS=y
1410# CONFIG_TMPFS_POSIX_ACL is not set 1490# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1449,6 +1529,7 @@ CONFIG_EXPORTFS=y
1449CONFIG_NFS_COMMON=y 1529CONFIG_NFS_COMMON=y
1450CONFIG_SUNRPC=y 1530CONFIG_SUNRPC=y
1451CONFIG_SUNRPC_GSS=y 1531CONFIG_SUNRPC_GSS=y
1532# CONFIG_SUNRPC_REGISTER_V4 is not set
1452CONFIG_RPCSEC_GSS_KRB5=y 1533CONFIG_RPCSEC_GSS_KRB5=y
1453# CONFIG_RPCSEC_GSS_SPKM3 is not set 1534# CONFIG_RPCSEC_GSS_SPKM3 is not set
1454# CONFIG_SMB_FS is not set 1535# CONFIG_SMB_FS is not set
@@ -1519,13 +1600,11 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1519# CONFIG_NLS_KOI8_U is not set 1600# CONFIG_NLS_KOI8_U is not set
1520CONFIG_NLS_UTF8=m 1601CONFIG_NLS_UTF8=m
1521# CONFIG_DLM is not set 1602# CONFIG_DLM is not set
1522# CONFIG_QE_GPIO is not set
1523 1603
1524# 1604#
1525# Library routines 1605# Library routines
1526# 1606#
1527CONFIG_BITREVERSE=y 1607CONFIG_BITREVERSE=y
1528# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1529# CONFIG_CRC_CCITT is not set 1608# CONFIG_CRC_CCITT is not set
1530# CONFIG_CRC16 is not set 1609# CONFIG_CRC16 is not set
1531CONFIG_CRC_T10DIF=y 1610CONFIG_CRC_T10DIF=y
@@ -1579,15 +1658,23 @@ CONFIG_DEBUG_INFO=y
1579# CONFIG_DEBUG_SG is not set 1658# CONFIG_DEBUG_SG is not set
1580# CONFIG_BOOT_PRINTK_DELAY is not set 1659# CONFIG_BOOT_PRINTK_DELAY is not set
1581# CONFIG_RCU_TORTURE_TEST is not set 1660# CONFIG_RCU_TORTURE_TEST is not set
1661# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1582# CONFIG_BACKTRACE_SELF_TEST is not set 1662# CONFIG_BACKTRACE_SELF_TEST is not set
1663# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1583# CONFIG_FAULT_INJECTION is not set 1664# CONFIG_FAULT_INJECTION is not set
1584# CONFIG_LATENCYTOP is not set 1665# CONFIG_LATENCYTOP is not set
1585CONFIG_SYSCTL_SYSCALL_CHECK=y 1666CONFIG_SYSCTL_SYSCALL_CHECK=y
1586CONFIG_HAVE_FTRACE=y 1667CONFIG_HAVE_FUNCTION_TRACER=y
1587CONFIG_HAVE_DYNAMIC_FTRACE=y 1668
1588# CONFIG_FTRACE is not set 1669#
1670# Tracers
1671#
1672# CONFIG_FUNCTION_TRACER is not set
1589# CONFIG_SCHED_TRACER is not set 1673# CONFIG_SCHED_TRACER is not set
1590# CONFIG_CONTEXT_SWITCH_TRACER is not set 1674# CONFIG_CONTEXT_SWITCH_TRACER is not set
1675# CONFIG_BOOT_TRACER is not set
1676# CONFIG_STACK_TRACER is not set
1677# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1591# CONFIG_SAMPLES is not set 1678# CONFIG_SAMPLES is not set
1592CONFIG_HAVE_ARCH_KGDB=y 1679CONFIG_HAVE_ARCH_KGDB=y
1593# CONFIG_KGDB is not set 1680# CONFIG_KGDB is not set
@@ -1596,6 +1683,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1596# CONFIG_DEBUG_PAGEALLOC is not set 1683# CONFIG_DEBUG_PAGEALLOC is not set
1597# CONFIG_CODE_PATCHING_SELFTEST is not set 1684# CONFIG_CODE_PATCHING_SELFTEST is not set
1598# CONFIG_FTR_FIXUP_SELFTEST is not set 1685# CONFIG_FTR_FIXUP_SELFTEST is not set
1686# CONFIG_MSI_BITMAP_SELFTEST is not set
1599# CONFIG_XMON is not set 1687# CONFIG_XMON is not set
1600# CONFIG_IRQSTACKS is not set 1688# CONFIG_IRQSTACKS is not set
1601CONFIG_VIRQ_DEBUG=y 1689CONFIG_VIRQ_DEBUG=y
@@ -1607,15 +1695,19 @@ CONFIG_VIRQ_DEBUG=y
1607# 1695#
1608# CONFIG_KEYS is not set 1696# CONFIG_KEYS is not set
1609# CONFIG_SECURITY is not set 1697# CONFIG_SECURITY is not set
1698# CONFIG_SECURITYFS is not set
1610# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1699# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1611CONFIG_CRYPTO=y 1700CONFIG_CRYPTO=y
1612 1701
1613# 1702#
1614# Crypto core or helper 1703# Crypto core or helper
1615# 1704#
1705# CONFIG_CRYPTO_FIPS is not set
1616CONFIG_CRYPTO_ALGAPI=y 1706CONFIG_CRYPTO_ALGAPI=y
1707CONFIG_CRYPTO_AEAD=y
1617CONFIG_CRYPTO_BLKCIPHER=y 1708CONFIG_CRYPTO_BLKCIPHER=y
1618CONFIG_CRYPTO_HASH=y 1709CONFIG_CRYPTO_HASH=y
1710CONFIG_CRYPTO_RNG=y
1619CONFIG_CRYPTO_MANAGER=y 1711CONFIG_CRYPTO_MANAGER=y
1620# CONFIG_CRYPTO_GF128MUL is not set 1712# CONFIG_CRYPTO_GF128MUL is not set
1621# CONFIG_CRYPTO_NULL is not set 1713# CONFIG_CRYPTO_NULL is not set
@@ -1688,6 +1780,11 @@ CONFIG_CRYPTO_DES=y
1688# 1780#
1689# CONFIG_CRYPTO_DEFLATE is not set 1781# CONFIG_CRYPTO_DEFLATE is not set
1690# CONFIG_CRYPTO_LZO is not set 1782# CONFIG_CRYPTO_LZO is not set
1783
1784#
1785# Random Number Generation
1786#
1787# CONFIG_CRYPTO_ANSI_CPRNG is not set
1691CONFIG_CRYPTO_HW=y 1788CONFIG_CRYPTO_HW=y
1692# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1789# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1693# CONFIG_CRYPTO_DEV_TALITOS is not set 1790# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 1501c4336b3d..8272b1ac71f9 100644
--- a/arch/powerpc/configs/mpc866_ads_defconfig
+++ b/arch/powerpc/configs/mpc866_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:11 2008 4# Sat Nov 8 12:39:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,7 +19,7 @@ CONFIG_8xx=y
19CONFIG_NOT_COHERENT_CACHE=y 19CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 20CONFIG_PPC32=y
21CONFIG_WORD_SIZE=32 21CONFIG_WORD_SIZE=32
22CONFIG_PPC_MERGE=y 22# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
23CONFIG_MMU=y 23CONFIG_MMU=y
24CONFIG_GENERIC_CMOS_UPDATE=y 24CONFIG_GENERIC_CMOS_UPDATE=y
25CONFIG_GENERIC_TIME=y 25CONFIG_GENERIC_TIME=y
@@ -99,6 +99,7 @@ CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y 99CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 100CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 101CONFIG_SHMEM=y
102CONFIG_AIO=y
102# CONFIG_VM_EVENT_COUNTERS is not set 103# CONFIG_VM_EVENT_COUNTERS is not set
103CONFIG_SLUB_DEBUG=y 104CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 105# CONFIG_SLAB is not set
@@ -112,10 +113,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
112CONFIG_HAVE_KPROBES=y 113CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 114CONFIG_HAVE_KRETPROBES=y
114CONFIG_HAVE_ARCH_TRACEHOOK=y 115CONFIG_HAVE_ARCH_TRACEHOOK=y
115# CONFIG_HAVE_DMA_ATTRS is not set
116# CONFIG_USE_GENERIC_SMP_HELPERS is not set
117CONFIG_HAVE_CLK=y 116CONFIG_HAVE_CLK=y
118CONFIG_PROC_PAGE_MONITOR=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
@@ -142,6 +140,7 @@ CONFIG_DEFAULT_AS=y
142# CONFIG_DEFAULT_NOOP is not set 140# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="anticipatory" 141CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y 142CONFIG_CLASSIC_RCU=y
143# CONFIG_FREEZER is not set
145 144
146# 145#
147# Platform support 146# Platform support
@@ -154,6 +153,7 @@ CONFIG_MPC86XADS=y
154# CONFIG_MPC885ADS is not set 153# CONFIG_MPC885ADS is not set
155# CONFIG_PPC_EP88XC is not set 154# CONFIG_PPC_EP88XC is not set
156# CONFIG_PPC_ADDER875 is not set 155# CONFIG_PPC_ADDER875 is not set
156# CONFIG_PPC_MGSUVD is not set
157 157
158# 158#
159# MPC8xx CPM Options 159# MPC8xx CPM Options
@@ -182,6 +182,7 @@ CONFIG_NO_UCODE_PATCH=y
182# CONFIG_PPC_INDIRECT_IO is not set 182# CONFIG_PPC_INDIRECT_IO is not set
183# CONFIG_GENERIC_IOMAP is not set 183# CONFIG_GENERIC_IOMAP is not set
184# CONFIG_CPU_FREQ is not set 184# CONFIG_CPU_FREQ is not set
185# CONFIG_QUICC_ENGINE is not set
185# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
186CONFIG_CPM=y 187CONFIG_CPM=y
187 188
@@ -203,6 +204,8 @@ CONFIG_PREEMPT_NONE=y
203# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
204# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
205CONFIG_BINFMT_ELF=y 206CONFIG_BINFMT_ELF=y
207# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
208# CONFIG_HAVE_AOUT is not set
206# CONFIG_BINFMT_MISC is not set 209# CONFIG_BINFMT_MISC is not set
207CONFIG_MATH_EMULATION=y 210CONFIG_MATH_EMULATION=y
208# CONFIG_IOMMU_HELPER is not set 211# CONFIG_IOMMU_HELPER is not set
@@ -217,15 +220,15 @@ CONFIG_FLATMEM_MANUAL=y
217# CONFIG_SPARSEMEM_MANUAL is not set 220# CONFIG_SPARSEMEM_MANUAL is not set
218CONFIG_FLATMEM=y 221CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y 222CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 225CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
227# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
227CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
228CONFIG_VIRT_TO_BUS=y 230CONFIG_VIRT_TO_BUS=y
231CONFIG_UNEVICTABLE_LRU=y
229CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
230# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
231# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
@@ -311,6 +314,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
311# CONFIG_TIPC is not set 314# CONFIG_TIPC is not set
312# CONFIG_ATM is not set 315# CONFIG_ATM is not set
313# CONFIG_BRIDGE is not set 316# CONFIG_BRIDGE is not set
317# CONFIG_NET_DSA is not set
314# CONFIG_VLAN_8021Q is not set 318# CONFIG_VLAN_8021Q is not set
315# CONFIG_DECNET is not set 319# CONFIG_DECNET is not set
316# CONFIG_LLC2 is not set 320# CONFIG_LLC2 is not set
@@ -331,11 +335,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_IRDA is not set 335# CONFIG_IRDA is not set
332# CONFIG_BT is not set 336# CONFIG_BT is not set
333# CONFIG_AF_RXRPC is not set 337# CONFIG_AF_RXRPC is not set
334 338# CONFIG_PHONET is not set
335# 339CONFIG_WIRELESS=y
336# Wireless
337#
338# CONFIG_CFG80211 is not set 340# CONFIG_CFG80211 is not set
341CONFIG_WIRELESS_OLD_REGULATORY=y
339# CONFIG_WIRELESS_EXT is not set 342# CONFIG_WIRELESS_EXT is not set
340# CONFIG_MAC80211 is not set 343# CONFIG_MAC80211 is not set
341# CONFIG_IEEE80211 is not set 344# CONFIG_IEEE80211 is not set
@@ -412,6 +415,9 @@ CONFIG_MII=y
412# CONFIG_IBM_NEW_EMAC_RGMII is not set 415# CONFIG_IBM_NEW_EMAC_RGMII is not set
413# CONFIG_IBM_NEW_EMAC_TAH is not set 416# CONFIG_IBM_NEW_EMAC_TAH is not set
414# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 417# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
418# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
419# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
420# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
415# CONFIG_B44 is not set 421# CONFIG_B44 is not set
416CONFIG_FS_ENET=y 422CONFIG_FS_ENET=y
417CONFIG_FS_ENET_HAS_SCC=y 423CONFIG_FS_ENET_HAS_SCC=y
@@ -471,6 +477,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
471CONFIG_MOUSE_PS2_SYNAPTICS=y 477CONFIG_MOUSE_PS2_SYNAPTICS=y
472CONFIG_MOUSE_PS2_LIFEBOOK=y 478CONFIG_MOUSE_PS2_LIFEBOOK=y
473CONFIG_MOUSE_PS2_TRACKPOINT=y 479CONFIG_MOUSE_PS2_TRACKPOINT=y
480# CONFIG_MOUSE_PS2_ELANTECH is not set
474# CONFIG_MOUSE_PS2_TOUCHKIT is not set 481# CONFIG_MOUSE_PS2_TOUCHKIT is not set
475# CONFIG_MOUSE_SERIAL is not set 482# CONFIG_MOUSE_SERIAL is not set
476# CONFIG_MOUSE_VSXXXAA is not set 483# CONFIG_MOUSE_VSXXXAA is not set
@@ -510,12 +517,6 @@ CONFIG_SERIAL_CORE=y
510CONFIG_SERIAL_CORE_CONSOLE=y 517CONFIG_SERIAL_CORE_CONSOLE=y
511CONFIG_SERIAL_CPM=y 518CONFIG_SERIAL_CPM=y
512CONFIG_SERIAL_CPM_CONSOLE=y 519CONFIG_SERIAL_CPM_CONSOLE=y
513# CONFIG_SERIAL_CPM_SCC1 is not set
514# CONFIG_SERIAL_CPM_SCC2 is not set
515# CONFIG_SERIAL_CPM_SCC3 is not set
516# CONFIG_SERIAL_CPM_SCC4 is not set
517CONFIG_SERIAL_CPM_SMC1=y
518CONFIG_SERIAL_CPM_SMC2=y
519CONFIG_UNIX98_PTYS=y 520CONFIG_UNIX98_PTYS=y
520# CONFIG_LEGACY_PTYS is not set 521# CONFIG_LEGACY_PTYS is not set
521# CONFIG_IPMI_HANDLER is not set 522# CONFIG_IPMI_HANDLER is not set
@@ -564,6 +565,14 @@ CONFIG_SSB_POSSIBLE=y
564# CONFIG_MFD_TMIO is not set 565# CONFIG_MFD_TMIO is not set
565 566
566# 567#
568# Voltage and Current regulators
569#
570# CONFIG_REGULATOR is not set
571# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
572# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
573# CONFIG_REGULATOR_BQ24022 is not set
574
575#
567# Multimedia devices 576# Multimedia devices
568# 577#
569 578
@@ -596,6 +605,12 @@ CONFIG_HID_SUPPORT=y
596CONFIG_HID=y 605CONFIG_HID=y
597# CONFIG_HID_DEBUG is not set 606# CONFIG_HID_DEBUG is not set
598# CONFIG_HIDRAW is not set 607# CONFIG_HIDRAW is not set
608# CONFIG_HID_PID is not set
609
610#
611# Special HID drivers
612#
613CONFIG_HID_COMPAT=y
599CONFIG_USB_SUPPORT=y 614CONFIG_USB_SUPPORT=y
600# CONFIG_USB_ARCH_HAS_HCD is not set 615# CONFIG_USB_ARCH_HAS_HCD is not set
601# CONFIG_USB_ARCH_HAS_OHCI is not set 616# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -619,6 +634,7 @@ CONFIG_USB_SUPPORT=y
619# CONFIG_RTC_CLASS is not set 634# CONFIG_RTC_CLASS is not set
620# CONFIG_DMADEVICES is not set 635# CONFIG_DMADEVICES is not set
621# CONFIG_UIO is not set 636# CONFIG_UIO is not set
637# CONFIG_STAGING is not set
622 638
623# 639#
624# File systems 640# File systems
@@ -632,12 +648,13 @@ CONFIG_EXT3_FS=y
632CONFIG_EXT3_FS_XATTR=y 648CONFIG_EXT3_FS_XATTR=y
633# CONFIG_EXT3_FS_POSIX_ACL is not set 649# CONFIG_EXT3_FS_POSIX_ACL is not set
634# CONFIG_EXT3_FS_SECURITY is not set 650# CONFIG_EXT3_FS_SECURITY is not set
635# CONFIG_EXT4DEV_FS is not set 651# CONFIG_EXT4_FS is not set
636CONFIG_JBD=y 652CONFIG_JBD=y
637CONFIG_FS_MBCACHE=y 653CONFIG_FS_MBCACHE=y
638# CONFIG_REISERFS_FS is not set 654# CONFIG_REISERFS_FS is not set
639# CONFIG_JFS_FS is not set 655# CONFIG_JFS_FS is not set
640# CONFIG_FS_POSIX_ACL is not set 656# CONFIG_FS_POSIX_ACL is not set
657CONFIG_FILE_LOCKING=y
641# CONFIG_XFS_FS is not set 658# CONFIG_XFS_FS is not set
642# CONFIG_OCFS2_FS is not set 659# CONFIG_OCFS2_FS is not set
643CONFIG_DNOTIFY=y 660CONFIG_DNOTIFY=y
@@ -667,6 +684,7 @@ CONFIG_INOTIFY_USER=y
667CONFIG_PROC_FS=y 684CONFIG_PROC_FS=y
668# CONFIG_PROC_KCORE is not set 685# CONFIG_PROC_KCORE is not set
669CONFIG_PROC_SYSCTL=y 686CONFIG_PROC_SYSCTL=y
687CONFIG_PROC_PAGE_MONITOR=y
670CONFIG_SYSFS=y 688CONFIG_SYSFS=y
671CONFIG_TMPFS=y 689CONFIG_TMPFS=y
672# CONFIG_TMPFS_POSIX_ACL is not set 690# CONFIG_TMPFS_POSIX_ACL is not set
@@ -703,6 +721,7 @@ CONFIG_LOCKD=y
703CONFIG_LOCKD_V4=y 721CONFIG_LOCKD_V4=y
704CONFIG_NFS_COMMON=y 722CONFIG_NFS_COMMON=y
705CONFIG_SUNRPC=y 723CONFIG_SUNRPC=y
724# CONFIG_SUNRPC_REGISTER_V4 is not set
706# CONFIG_RPCSEC_GSS_KRB5 is not set 725# CONFIG_RPCSEC_GSS_KRB5 is not set
707# CONFIG_RPCSEC_GSS_SPKM3 is not set 726# CONFIG_RPCSEC_GSS_SPKM3 is not set
708# CONFIG_SMB_FS is not set 727# CONFIG_SMB_FS is not set
@@ -739,7 +758,6 @@ CONFIG_MSDOS_PARTITION=y
739# Library routines 758# Library routines
740# 759#
741CONFIG_BITREVERSE=y 760CONFIG_BITREVERSE=y
742# CONFIG_GENERIC_FIND_FIRST_BIT is not set
743CONFIG_CRC_CCITT=y 761CONFIG_CRC_CCITT=y
744# CONFIG_CRC16 is not set 762# CONFIG_CRC16 is not set
745# CONFIG_CRC_T10DIF is not set 763# CONFIG_CRC_T10DIF is not set
@@ -769,12 +787,14 @@ CONFIG_FRAME_WARN=1024
769# CONFIG_SLUB_DEBUG_ON is not set 787# CONFIG_SLUB_DEBUG_ON is not set
770# CONFIG_SLUB_STATS is not set 788# CONFIG_SLUB_STATS is not set
771# CONFIG_DEBUG_MEMORY_INIT is not set 789# CONFIG_DEBUG_MEMORY_INIT is not set
790# CONFIG_RCU_CPU_STALL_DETECTOR is not set
772# CONFIG_LATENCYTOP is not set 791# CONFIG_LATENCYTOP is not set
773CONFIG_HAVE_FTRACE=y 792CONFIG_HAVE_FUNCTION_TRACER=y
774CONFIG_HAVE_DYNAMIC_FTRACE=y 793
775# CONFIG_FTRACE is not set 794#
776# CONFIG_SCHED_TRACER is not set 795# Tracers
777# CONFIG_CONTEXT_SWITCH_TRACER is not set 796#
797# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
778# CONFIG_SAMPLES is not set 798# CONFIG_SAMPLES is not set
779CONFIG_HAVE_ARCH_KGDB=y 799CONFIG_HAVE_ARCH_KGDB=y
780# CONFIG_IRQSTACKS is not set 800# CONFIG_IRQSTACKS is not set
@@ -785,12 +805,14 @@ CONFIG_HAVE_ARCH_KGDB=y
785# 805#
786# CONFIG_KEYS is not set 806# CONFIG_KEYS is not set
787# CONFIG_SECURITY is not set 807# CONFIG_SECURITY is not set
808# CONFIG_SECURITYFS is not set
788# CONFIG_SECURITY_FILE_CAPABILITIES is not set 809# CONFIG_SECURITY_FILE_CAPABILITIES is not set
789CONFIG_CRYPTO=y 810CONFIG_CRYPTO=y
790 811
791# 812#
792# Crypto core or helper 813# Crypto core or helper
793# 814#
815# CONFIG_CRYPTO_FIPS is not set
794# CONFIG_CRYPTO_MANAGER is not set 816# CONFIG_CRYPTO_MANAGER is not set
795# CONFIG_CRYPTO_GF128MUL is not set 817# CONFIG_CRYPTO_GF128MUL is not set
796# CONFIG_CRYPTO_NULL is not set 818# CONFIG_CRYPTO_NULL is not set
@@ -862,6 +884,11 @@ CONFIG_CRYPTO=y
862# 884#
863# CONFIG_CRYPTO_DEFLATE is not set 885# CONFIG_CRYPTO_DEFLATE is not set
864# CONFIG_CRYPTO_LZO is not set 886# CONFIG_CRYPTO_LZO is not set
887
888#
889# Random Number Generation
890#
891# CONFIG_CRYPTO_ANSI_CPRNG is not set
865CONFIG_CRYPTO_HW=y 892CONFIG_CRYPTO_HW=y
866# CONFIG_CRYPTO_DEV_TALITOS is not set 893# CONFIG_CRYPTO_DEV_TALITOS is not set
867CONFIG_PPC_CLOCK=y 894CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index 9d4be820cf1f..1736bbc281ec 100644
--- a/arch/powerpc/configs/mpc86xx_defconfig
+++ b/arch/powerpc/configs/mpc86xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc5 3# Linux kernel version: 2.6.28-rc3
4# Tue Sep 23 23:28:38 2008 4# Sat Nov 8 12:39:44 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
@@ -23,7 +24,7 @@ CONFIG_SMP=y
23CONFIG_NR_CPUS=2 24CONFIG_NR_CPUS=2
24CONFIG_PPC32=y 25CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 28CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -109,7 +110,9 @@ CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y 116CONFIG_SLUB_DEBUG=y
114# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
115CONFIG_SLUB=y 118CONFIG_SLUB=y
@@ -123,10 +126,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 126CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_DMA_ATTRS is not set
127CONFIG_USE_GENERIC_SMP_HELPERS=y 129CONFIG_USE_GENERIC_SMP_HELPERS=y
128# CONFIG_HAVE_CLK is not set
129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
@@ -160,7 +160,7 @@ CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 160# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 161CONFIG_DEFAULT_IOSCHED="cfq"
162CONFIG_CLASSIC_RCU=y 162CONFIG_CLASSIC_RCU=y
163# CONFIG_MPC8xxx_GPIO is not set 163# CONFIG_FREEZER is not set
164 164
165# 165#
166# Platform support 166# Platform support
@@ -196,7 +196,9 @@ CONFIG_PPC_I8259=y
196# CONFIG_GENERIC_IOMAP is not set 196# CONFIG_GENERIC_IOMAP is not set
197# CONFIG_CPU_FREQ is not set 197# CONFIG_CPU_FREQ is not set
198# CONFIG_TAU is not set 198# CONFIG_TAU is not set
199# CONFIG_QUICC_ENGINE is not set
199CONFIG_FSL_ULI1575=y 200CONFIG_FSL_ULI1575=y
201# CONFIG_MPC8xxx_GPIO is not set
200 202
201# 203#
202# Kernel options 204# Kernel options
@@ -216,6 +218,8 @@ CONFIG_PREEMPT_NONE=y
216# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
217# CONFIG_PREEMPT is not set 219# CONFIG_PREEMPT is not set
218CONFIG_BINFMT_ELF=y 220CONFIG_BINFMT_ELF=y
221# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
222# CONFIG_HAVE_AOUT is not set
219CONFIG_BINFMT_MISC=m 223CONFIG_BINFMT_MISC=m
220# CONFIG_IOMMU_HELPER is not set 224# CONFIG_IOMMU_HELPER is not set
221CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -231,15 +235,15 @@ CONFIG_FLATMEM_MANUAL=y
231# CONFIG_SPARSEMEM_MANUAL is not set 235# CONFIG_SPARSEMEM_MANUAL is not set
232CONFIG_FLATMEM=y 236CONFIG_FLATMEM=y
233CONFIG_FLAT_NODE_MEM_MAP=y 237CONFIG_FLAT_NODE_MEM_MAP=y
234# CONFIG_SPARSEMEM_STATIC is not set
235# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
236CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
238CONFIG_MIGRATION=y 240CONFIG_MIGRATION=y
239# CONFIG_RESOURCES_64BIT is not set 241# CONFIG_RESOURCES_64BIT is not set
242# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y
243CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
244CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
245# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
@@ -263,7 +267,7 @@ CONFIG_PCI_SYSCALL=y
263# CONFIG_PCIEPORTBUS is not set 267# CONFIG_PCIEPORTBUS is not set
264CONFIG_ARCH_SUPPORTS_MSI=y 268CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set 269# CONFIG_PCI_MSI is not set
266CONFIG_PCI_LEGACY=y 270# CONFIG_PCI_LEGACY is not set
267# CONFIG_PCI_DEBUG is not set 271# CONFIG_PCI_DEBUG is not set
268# CONFIG_PCCARD is not set 272# CONFIG_PCCARD is not set
269# CONFIG_HOTPLUG_PCI is not set 273# CONFIG_HOTPLUG_PCI is not set
@@ -365,6 +369,7 @@ CONFIG_SCTP_HMAC_MD5=y
365# CONFIG_TIPC is not set 369# CONFIG_TIPC is not set
366# CONFIG_ATM is not set 370# CONFIG_ATM is not set
367# CONFIG_BRIDGE is not set 371# CONFIG_BRIDGE is not set
372# CONFIG_NET_DSA is not set
368# CONFIG_VLAN_8021Q is not set 373# CONFIG_VLAN_8021Q is not set
369# CONFIG_DECNET is not set 374# CONFIG_DECNET is not set
370# CONFIG_LLC2 is not set 375# CONFIG_LLC2 is not set
@@ -385,12 +390,11 @@ CONFIG_SCTP_HMAC_MD5=y
385# CONFIG_IRDA is not set 390# CONFIG_IRDA is not set
386# CONFIG_BT is not set 391# CONFIG_BT is not set
387# CONFIG_AF_RXRPC is not set 392# CONFIG_AF_RXRPC is not set
393# CONFIG_PHONET is not set
388CONFIG_FIB_RULES=y 394CONFIG_FIB_RULES=y
389 395CONFIG_WIRELESS=y
390#
391# Wireless
392#
393# CONFIG_CFG80211 is not set 396# CONFIG_CFG80211 is not set
397CONFIG_WIRELESS_OLD_REGULATORY=y
394# CONFIG_WIRELESS_EXT is not set 398# CONFIG_WIRELESS_EXT is not set
395# CONFIG_MAC80211 is not set 399# CONFIG_MAC80211 is not set
396# CONFIG_IEEE80211 is not set 400# CONFIG_IEEE80211 is not set
@@ -636,8 +640,12 @@ CONFIG_MII=y
636# CONFIG_IBM_NEW_EMAC_RGMII is not set 640# CONFIG_IBM_NEW_EMAC_RGMII is not set
637# CONFIG_IBM_NEW_EMAC_TAH is not set 641# CONFIG_IBM_NEW_EMAC_TAH is not set
638# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 642# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
643# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
644# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
645# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
639# CONFIG_NET_PCI is not set 646# CONFIG_NET_PCI is not set
640# CONFIG_B44 is not set 647# CONFIG_B44 is not set
648# CONFIG_ATL2 is not set
641CONFIG_NETDEV_1000=y 649CONFIG_NETDEV_1000=y
642# CONFIG_ACENIC is not set 650# CONFIG_ACENIC is not set
643# CONFIG_DL2K is not set 651# CONFIG_DL2K is not set
@@ -660,18 +668,22 @@ CONFIG_GIANFAR=y
660# CONFIG_QLA3XXX is not set 668# CONFIG_QLA3XXX is not set
661# CONFIG_ATL1 is not set 669# CONFIG_ATL1 is not set
662# CONFIG_ATL1E is not set 670# CONFIG_ATL1E is not set
671# CONFIG_JME is not set
663CONFIG_NETDEV_10000=y 672CONFIG_NETDEV_10000=y
664# CONFIG_CHELSIO_T1 is not set 673# CONFIG_CHELSIO_T1 is not set
665# CONFIG_CHELSIO_T3 is not set 674# CONFIG_CHELSIO_T3 is not set
675# CONFIG_ENIC is not set
666# CONFIG_IXGBE is not set 676# CONFIG_IXGBE is not set
667# CONFIG_IXGB is not set 677# CONFIG_IXGB is not set
668# CONFIG_S2IO is not set 678# CONFIG_S2IO is not set
669# CONFIG_MYRI10GE is not set 679# CONFIG_MYRI10GE is not set
670# CONFIG_NETXEN_NIC is not set 680# CONFIG_NETXEN_NIC is not set
671# CONFIG_NIU is not set 681# CONFIG_NIU is not set
682# CONFIG_MLX4_EN is not set
672# CONFIG_MLX4_CORE is not set 683# CONFIG_MLX4_CORE is not set
673# CONFIG_TEHUTI is not set 684# CONFIG_TEHUTI is not set
674# CONFIG_BNX2X is not set 685# CONFIG_BNX2X is not set
686# CONFIG_QLGE is not set
675# CONFIG_SFC is not set 687# CONFIG_SFC is not set
676# CONFIG_TR is not set 688# CONFIG_TR is not set
677 689
@@ -706,7 +718,7 @@ CONFIG_NETDEV_10000=y
706# Input device support 718# Input device support
707# 719#
708CONFIG_INPUT=y 720CONFIG_INPUT=y
709# CONFIG_INPUT_FF_MEMLESS is not set 721CONFIG_INPUT_FF_MEMLESS=m
710# CONFIG_INPUT_POLLDEV is not set 722# CONFIG_INPUT_POLLDEV is not set
711 723
712# 724#
@@ -875,6 +887,17 @@ CONFIG_SSB_POSSIBLE=y
875# CONFIG_MFD_SM501 is not set 887# CONFIG_MFD_SM501 is not set
876# CONFIG_HTC_PASIC3 is not set 888# CONFIG_HTC_PASIC3 is not set
877# CONFIG_MFD_TMIO is not set 889# CONFIG_MFD_TMIO is not set
890# CONFIG_PMIC_DA903X is not set
891# CONFIG_MFD_WM8400 is not set
892# CONFIG_MFD_WM8350_I2C is not set
893
894#
895# Voltage and Current regulators
896#
897# CONFIG_REGULATOR is not set
898# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
899# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
900# CONFIG_REGULATOR_BQ24022 is not set
878 901
879# 902#
880# Multimedia devices 903# Multimedia devices
@@ -915,7 +938,6 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
915# CONFIG_DVB_USB is not set 938# CONFIG_DVB_USB is not set
916# CONFIG_DVB_TTUSB_BUDGET is not set 939# CONFIG_DVB_TTUSB_BUDGET is not set
917# CONFIG_DVB_TTUSB_DEC is not set 940# CONFIG_DVB_TTUSB_DEC is not set
918# CONFIG_DVB_CINERGYT2 is not set
919# CONFIG_DVB_SIANO_SMS1XXX is not set 941# CONFIG_DVB_SIANO_SMS1XXX is not set
920 942
921# 943#
@@ -933,6 +955,11 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
933# CONFIG_DVB_PLUTO2 is not set 955# CONFIG_DVB_PLUTO2 is not set
934 956
935# 957#
958# Supported SDMC DM1105 Adapters
959#
960# CONFIG_DVB_DM1105 is not set
961
962#
936# Supported DVB Frontends 963# Supported DVB Frontends
937# 964#
938 965
@@ -948,6 +975,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
948# CONFIG_DVB_CX24123 is not set 975# CONFIG_DVB_CX24123 is not set
949# CONFIG_DVB_MT312 is not set 976# CONFIG_DVB_MT312 is not set
950# CONFIG_DVB_S5H1420 is not set 977# CONFIG_DVB_S5H1420 is not set
978# CONFIG_DVB_STV0288 is not set
979# CONFIG_DVB_STB6000 is not set
951# CONFIG_DVB_STV0299 is not set 980# CONFIG_DVB_STV0299 is not set
952# CONFIG_DVB_TDA8083 is not set 981# CONFIG_DVB_TDA8083 is not set
953# CONFIG_DVB_TDA10086 is not set 982# CONFIG_DVB_TDA10086 is not set
@@ -955,6 +984,8 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
955# CONFIG_DVB_TUNER_ITD1000 is not set 984# CONFIG_DVB_TUNER_ITD1000 is not set
956# CONFIG_DVB_TDA826X is not set 985# CONFIG_DVB_TDA826X is not set
957# CONFIG_DVB_TUA6100 is not set 986# CONFIG_DVB_TUA6100 is not set
987# CONFIG_DVB_CX24116 is not set
988# CONFIG_DVB_SI21XX is not set
958 989
959# 990#
960# DVB-T (terrestrial) frontends 991# DVB-T (terrestrial) frontends
@@ -1007,6 +1038,13 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1007# CONFIG_DVB_LNBP21 is not set 1038# CONFIG_DVB_LNBP21 is not set
1008# CONFIG_DVB_ISL6405 is not set 1039# CONFIG_DVB_ISL6405 is not set
1009# CONFIG_DVB_ISL6421 is not set 1040# CONFIG_DVB_ISL6421 is not set
1041# CONFIG_DVB_LGS8GL5 is not set
1042
1043#
1044# Tools to develop new frontends
1045#
1046# CONFIG_DVB_DUMMY_FE is not set
1047# CONFIG_DVB_AF9013 is not set
1010CONFIG_DAB=y 1048CONFIG_DAB=y
1011# CONFIG_USB_DABUSB is not set 1049# CONFIG_USB_DABUSB is not set
1012 1050
@@ -1032,6 +1070,7 @@ CONFIG_VGA_CONSOLE=y
1032# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1070# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1033CONFIG_DUMMY_CONSOLE=y 1071CONFIG_DUMMY_CONSOLE=y
1034CONFIG_SOUND=y 1072CONFIG_SOUND=y
1073CONFIG_SOUND_OSS_CORE=y
1035CONFIG_SND=y 1074CONFIG_SND=y
1036CONFIG_SND_TIMER=y 1075CONFIG_SND_TIMER=y
1037CONFIG_SND_PCM=y 1076CONFIG_SND_PCM=y
@@ -1132,9 +1171,36 @@ CONFIG_HID=y
1132# USB Input Devices 1171# USB Input Devices
1133# 1172#
1134CONFIG_USB_HID=y 1173CONFIG_USB_HID=y
1135# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1174# CONFIG_HID_PID is not set
1136# CONFIG_HID_FF is not set
1137# CONFIG_USB_HIDDEV is not set 1175# CONFIG_USB_HIDDEV is not set
1176
1177#
1178# Special HID drivers
1179#
1180CONFIG_HID_COMPAT=y
1181CONFIG_HID_A4TECH=y
1182CONFIG_HID_APPLE=y
1183CONFIG_HID_BELKIN=y
1184CONFIG_HID_BRIGHT=y
1185CONFIG_HID_CHERRY=y
1186CONFIG_HID_CHICONY=y
1187CONFIG_HID_CYPRESS=y
1188CONFIG_HID_DELL=y
1189CONFIG_HID_EZKEY=y
1190CONFIG_HID_GYRATION=y
1191CONFIG_HID_LOGITECH=y
1192# CONFIG_LOGITECH_FF is not set
1193# CONFIG_LOGIRUMBLEPAD2_FF is not set
1194CONFIG_HID_MICROSOFT=y
1195CONFIG_HID_MONTEREY=y
1196CONFIG_HID_PANTHERLORD=y
1197# CONFIG_PANTHERLORD_FF is not set
1198CONFIG_HID_PETALYNX=y
1199CONFIG_HID_SAMSUNG=y
1200CONFIG_HID_SONY=y
1201CONFIG_HID_SUNPLUS=y
1202CONFIG_THRUSTMASTER_FF=m
1203CONFIG_ZEROPLUS_FF=m
1138CONFIG_USB_SUPPORT=y 1204CONFIG_USB_SUPPORT=y
1139CONFIG_USB_ARCH_HAS_HCD=y 1205CONFIG_USB_ARCH_HAS_HCD=y
1140CONFIG_USB_ARCH_HAS_OHCI=y 1206CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1153,6 +1219,8 @@ CONFIG_USB_DEVICE_CLASS=y
1153# CONFIG_USB_OTG_WHITELIST is not set 1219# CONFIG_USB_OTG_WHITELIST is not set
1154# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1220# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1155CONFIG_USB_MON=y 1221CONFIG_USB_MON=y
1222# CONFIG_USB_WUSB is not set
1223# CONFIG_USB_WUSB_CBAF is not set
1156 1224
1157# 1225#
1158# USB Host Controller Drivers 1226# USB Host Controller Drivers
@@ -1176,6 +1244,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1176# CONFIG_USB_UHCI_HCD is not set 1244# CONFIG_USB_UHCI_HCD is not set
1177# CONFIG_USB_SL811_HCD is not set 1245# CONFIG_USB_SL811_HCD is not set
1178# CONFIG_USB_R8A66597_HCD is not set 1246# CONFIG_USB_R8A66597_HCD is not set
1247# CONFIG_USB_WHCI_HCD is not set
1248# CONFIG_USB_HWA_HCD is not set
1179 1249
1180# 1250#
1181# USB Device Class drivers 1251# USB Device Class drivers
@@ -1183,6 +1253,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1183# CONFIG_USB_ACM is not set 1253# CONFIG_USB_ACM is not set
1184# CONFIG_USB_PRINTER is not set 1254# CONFIG_USB_PRINTER is not set
1185# CONFIG_USB_WDM is not set 1255# CONFIG_USB_WDM is not set
1256# CONFIG_USB_TMC is not set
1186 1257
1187# 1258#
1188# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1259# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1204,7 +1275,6 @@ CONFIG_USB_STORAGE=y
1204# CONFIG_USB_STORAGE_ALAUDA is not set 1275# CONFIG_USB_STORAGE_ALAUDA is not set
1205# CONFIG_USB_STORAGE_ONETOUCH is not set 1276# CONFIG_USB_STORAGE_ONETOUCH is not set
1206# CONFIG_USB_STORAGE_KARMA is not set 1277# CONFIG_USB_STORAGE_KARMA is not set
1207# CONFIG_USB_STORAGE_SIERRA is not set
1208# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1278# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1209# CONFIG_USB_LIBUSUAL is not set 1279# CONFIG_USB_LIBUSUAL is not set
1210 1280
@@ -1225,6 +1295,7 @@ CONFIG_USB_STORAGE=y
1225# CONFIG_USB_EMI62 is not set 1295# CONFIG_USB_EMI62 is not set
1226# CONFIG_USB_EMI26 is not set 1296# CONFIG_USB_EMI26 is not set
1227# CONFIG_USB_ADUTUX is not set 1297# CONFIG_USB_ADUTUX is not set
1298# CONFIG_USB_SEVSEG is not set
1228# CONFIG_USB_RIO500 is not set 1299# CONFIG_USB_RIO500 is not set
1229# CONFIG_USB_LEGOTOWER is not set 1300# CONFIG_USB_LEGOTOWER is not set
1230# CONFIG_USB_LCD is not set 1301# CONFIG_USB_LCD is not set
@@ -1242,7 +1313,9 @@ CONFIG_USB_STORAGE=y
1242# CONFIG_USB_IOWARRIOR is not set 1313# CONFIG_USB_IOWARRIOR is not set
1243# CONFIG_USB_TEST is not set 1314# CONFIG_USB_TEST is not set
1244# CONFIG_USB_ISIGHTFW is not set 1315# CONFIG_USB_ISIGHTFW is not set
1316# CONFIG_USB_VST is not set
1245# CONFIG_USB_GADGET is not set 1317# CONFIG_USB_GADGET is not set
1318# CONFIG_UWB is not set
1246# CONFIG_MMC is not set 1319# CONFIG_MMC is not set
1247# CONFIG_MEMSTICK is not set 1320# CONFIG_MEMSTICK is not set
1248# CONFIG_NEW_LEDS is not set 1321# CONFIG_NEW_LEDS is not set
@@ -1288,12 +1361,15 @@ CONFIG_RTC_INTF_DEV=y
1288# Platform RTC drivers 1361# Platform RTC drivers
1289# 1362#
1290CONFIG_RTC_DRV_CMOS=y 1363CONFIG_RTC_DRV_CMOS=y
1364# CONFIG_RTC_DRV_DS1286 is not set
1291# CONFIG_RTC_DRV_DS1511 is not set 1365# CONFIG_RTC_DRV_DS1511 is not set
1292# CONFIG_RTC_DRV_DS1553 is not set 1366# CONFIG_RTC_DRV_DS1553 is not set
1293# CONFIG_RTC_DRV_DS1742 is not set 1367# CONFIG_RTC_DRV_DS1742 is not set
1294# CONFIG_RTC_DRV_STK17TA8 is not set 1368# CONFIG_RTC_DRV_STK17TA8 is not set
1295# CONFIG_RTC_DRV_M48T86 is not set 1369# CONFIG_RTC_DRV_M48T86 is not set
1370# CONFIG_RTC_DRV_M48T35 is not set
1296# CONFIG_RTC_DRV_M48T59 is not set 1371# CONFIG_RTC_DRV_M48T59 is not set
1372# CONFIG_RTC_DRV_BQ4802 is not set
1297# CONFIG_RTC_DRV_V3020 is not set 1373# CONFIG_RTC_DRV_V3020 is not set
1298 1374
1299# 1375#
@@ -1302,6 +1378,7 @@ CONFIG_RTC_DRV_CMOS=y
1302# CONFIG_RTC_DRV_PPC is not set 1378# CONFIG_RTC_DRV_PPC is not set
1303# CONFIG_DMADEVICES is not set 1379# CONFIG_DMADEVICES is not set
1304# CONFIG_UIO is not set 1380# CONFIG_UIO is not set
1381# CONFIG_STAGING is not set
1305 1382
1306# 1383#
1307# File systems 1384# File systems
@@ -1313,12 +1390,13 @@ CONFIG_EXT3_FS=y
1313CONFIG_EXT3_FS_XATTR=y 1390CONFIG_EXT3_FS_XATTR=y
1314# CONFIG_EXT3_FS_POSIX_ACL is not set 1391# CONFIG_EXT3_FS_POSIX_ACL is not set
1315# CONFIG_EXT3_FS_SECURITY is not set 1392# CONFIG_EXT3_FS_SECURITY is not set
1316# CONFIG_EXT4DEV_FS is not set 1393# CONFIG_EXT4_FS is not set
1317CONFIG_JBD=y 1394CONFIG_JBD=y
1318CONFIG_FS_MBCACHE=y 1395CONFIG_FS_MBCACHE=y
1319# CONFIG_REISERFS_FS is not set 1396# CONFIG_REISERFS_FS is not set
1320# CONFIG_JFS_FS is not set 1397# CONFIG_JFS_FS is not set
1321# CONFIG_FS_POSIX_ACL is not set 1398# CONFIG_FS_POSIX_ACL is not set
1399CONFIG_FILE_LOCKING=y
1322# CONFIG_XFS_FS is not set 1400# CONFIG_XFS_FS is not set
1323# CONFIG_OCFS2_FS is not set 1401# CONFIG_OCFS2_FS is not set
1324CONFIG_DNOTIFY=y 1402CONFIG_DNOTIFY=y
@@ -1356,6 +1434,7 @@ CONFIG_NTFS_FS=y
1356CONFIG_PROC_FS=y 1434CONFIG_PROC_FS=y
1357CONFIG_PROC_KCORE=y 1435CONFIG_PROC_KCORE=y
1358CONFIG_PROC_SYSCTL=y 1436CONFIG_PROC_SYSCTL=y
1437CONFIG_PROC_PAGE_MONITOR=y
1359CONFIG_SYSFS=y 1438CONFIG_SYSFS=y
1360CONFIG_TMPFS=y 1439CONFIG_TMPFS=y
1361# CONFIG_TMPFS_POSIX_ACL is not set 1440# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1400,6 +1479,7 @@ CONFIG_EXPORTFS=y
1400CONFIG_NFS_COMMON=y 1479CONFIG_NFS_COMMON=y
1401CONFIG_SUNRPC=y 1480CONFIG_SUNRPC=y
1402CONFIG_SUNRPC_GSS=y 1481CONFIG_SUNRPC_GSS=y
1482# CONFIG_SUNRPC_REGISTER_V4 is not set
1403CONFIG_RPCSEC_GSS_KRB5=y 1483CONFIG_RPCSEC_GSS_KRB5=y
1404# CONFIG_RPCSEC_GSS_SPKM3 is not set 1484# CONFIG_RPCSEC_GSS_SPKM3 is not set
1405# CONFIG_SMB_FS is not set 1485# CONFIG_SMB_FS is not set
@@ -1475,7 +1555,6 @@ CONFIG_NLS_UTF8=m
1475# Library routines 1555# Library routines
1476# 1556#
1477CONFIG_BITREVERSE=y 1557CONFIG_BITREVERSE=y
1478# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1479# CONFIG_CRC_CCITT is not set 1558# CONFIG_CRC_CCITT is not set
1480# CONFIG_CRC16 is not set 1559# CONFIG_CRC16 is not set
1481CONFIG_CRC_T10DIF=y 1560CONFIG_CRC_T10DIF=y
@@ -1529,15 +1608,23 @@ CONFIG_DEBUG_INFO=y
1529# CONFIG_DEBUG_SG is not set 1608# CONFIG_DEBUG_SG is not set
1530# CONFIG_BOOT_PRINTK_DELAY is not set 1609# CONFIG_BOOT_PRINTK_DELAY is not set
1531# CONFIG_RCU_TORTURE_TEST is not set 1610# CONFIG_RCU_TORTURE_TEST is not set
1611# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1532# CONFIG_BACKTRACE_SELF_TEST is not set 1612# CONFIG_BACKTRACE_SELF_TEST is not set
1613# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1533# CONFIG_FAULT_INJECTION is not set 1614# CONFIG_FAULT_INJECTION is not set
1534# CONFIG_LATENCYTOP is not set 1615# CONFIG_LATENCYTOP is not set
1535CONFIG_SYSCTL_SYSCALL_CHECK=y 1616CONFIG_SYSCTL_SYSCALL_CHECK=y
1536CONFIG_HAVE_FTRACE=y 1617CONFIG_HAVE_FUNCTION_TRACER=y
1537CONFIG_HAVE_DYNAMIC_FTRACE=y 1618
1538# CONFIG_FTRACE is not set 1619#
1620# Tracers
1621#
1622# CONFIG_FUNCTION_TRACER is not set
1539# CONFIG_SCHED_TRACER is not set 1623# CONFIG_SCHED_TRACER is not set
1540# CONFIG_CONTEXT_SWITCH_TRACER is not set 1624# CONFIG_CONTEXT_SWITCH_TRACER is not set
1625# CONFIG_BOOT_TRACER is not set
1626# CONFIG_STACK_TRACER is not set
1627# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1541# CONFIG_SAMPLES is not set 1628# CONFIG_SAMPLES is not set
1542CONFIG_HAVE_ARCH_KGDB=y 1629CONFIG_HAVE_ARCH_KGDB=y
1543# CONFIG_KGDB is not set 1630# CONFIG_KGDB is not set
@@ -1558,15 +1645,19 @@ CONFIG_HAVE_ARCH_KGDB=y
1558# 1645#
1559# CONFIG_KEYS is not set 1646# CONFIG_KEYS is not set
1560# CONFIG_SECURITY is not set 1647# CONFIG_SECURITY is not set
1648# CONFIG_SECURITYFS is not set
1561# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1649# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1562CONFIG_CRYPTO=y 1650CONFIG_CRYPTO=y
1563 1651
1564# 1652#
1565# Crypto core or helper 1653# Crypto core or helper
1566# 1654#
1655# CONFIG_CRYPTO_FIPS is not set
1567CONFIG_CRYPTO_ALGAPI=y 1656CONFIG_CRYPTO_ALGAPI=y
1657CONFIG_CRYPTO_AEAD=y
1568CONFIG_CRYPTO_BLKCIPHER=y 1658CONFIG_CRYPTO_BLKCIPHER=y
1569CONFIG_CRYPTO_HASH=y 1659CONFIG_CRYPTO_HASH=y
1660CONFIG_CRYPTO_RNG=y
1570CONFIG_CRYPTO_MANAGER=y 1661CONFIG_CRYPTO_MANAGER=y
1571# CONFIG_CRYPTO_GF128MUL is not set 1662# CONFIG_CRYPTO_GF128MUL is not set
1572# CONFIG_CRYPTO_NULL is not set 1663# CONFIG_CRYPTO_NULL is not set
@@ -1639,6 +1730,11 @@ CONFIG_CRYPTO_DES=y
1639# 1730#
1640# CONFIG_CRYPTO_DEFLATE is not set 1731# CONFIG_CRYPTO_DEFLATE is not set
1641# CONFIG_CRYPTO_LZO is not set 1732# CONFIG_CRYPTO_LZO is not set
1733
1734#
1735# Random Number Generation
1736#
1737# CONFIG_CRYPTO_ANSI_CPRNG is not set
1642CONFIG_CRYPTO_HW=y 1738CONFIG_CRYPTO_HW=y
1643# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1739# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1644# CONFIG_CRYPTO_DEV_TALITOS is not set 1740# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index fc3f6dc58126..a4283b6a43d2 100644
--- a/arch/powerpc/configs/mpc885_ads_defconfig
+++ b/arch/powerpc/configs/mpc885_ads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:12 2008 4# Sat Nov 8 12:39:46 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -19,7 +19,7 @@ CONFIG_8xx=y
19CONFIG_NOT_COHERENT_CACHE=y 19CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y 20CONFIG_PPC32=y
21CONFIG_WORD_SIZE=32 21CONFIG_WORD_SIZE=32
22CONFIG_PPC_MERGE=y 22# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
23CONFIG_MMU=y 23CONFIG_MMU=y
24CONFIG_GENERIC_CMOS_UPDATE=y 24CONFIG_GENERIC_CMOS_UPDATE=y
25CONFIG_GENERIC_TIME=y 25CONFIG_GENERIC_TIME=y
@@ -101,6 +101,7 @@ CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y 101CONFIG_TIMERFD=y
102CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 103CONFIG_SHMEM=y
104CONFIG_AIO=y
104# CONFIG_VM_EVENT_COUNTERS is not set 105# CONFIG_VM_EVENT_COUNTERS is not set
105CONFIG_SLUB_DEBUG=y 106CONFIG_SLUB_DEBUG=y
106# CONFIG_SLAB is not set 107# CONFIG_SLAB is not set
@@ -114,10 +115,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
116CONFIG_HAVE_ARCH_TRACEHOOK=y 117CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set
118# CONFIG_USE_GENERIC_SMP_HELPERS is not set
119CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
120CONFIG_PROC_PAGE_MONITOR=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
123# CONFIG_TINY_SHMEM is not set 121# CONFIG_TINY_SHMEM is not set
@@ -143,6 +141,7 @@ CONFIG_DEFAULT_DEADLINE=y
143# CONFIG_DEFAULT_NOOP is not set 141# CONFIG_DEFAULT_NOOP is not set
144CONFIG_DEFAULT_IOSCHED="deadline" 142CONFIG_DEFAULT_IOSCHED="deadline"
145CONFIG_CLASSIC_RCU=y 143CONFIG_CLASSIC_RCU=y
144# CONFIG_FREEZER is not set
146 145
147# 146#
148# Platform support 147# Platform support
@@ -155,6 +154,7 @@ CONFIG_CPM1=y
155CONFIG_MPC885ADS=y 154CONFIG_MPC885ADS=y
156# CONFIG_PPC_EP88XC is not set 155# CONFIG_PPC_EP88XC is not set
157# CONFIG_PPC_ADDER875 is not set 156# CONFIG_PPC_ADDER875 is not set
157# CONFIG_PPC_MGSUVD is not set
158 158
159# 159#
160# Freescale Ethernet driver platform-specific options 160# Freescale Ethernet driver platform-specific options
@@ -190,6 +190,7 @@ CONFIG_NO_UCODE_PATCH=y
190# CONFIG_PPC_INDIRECT_IO is not set 190# CONFIG_PPC_INDIRECT_IO is not set
191# CONFIG_GENERIC_IOMAP is not set 191# CONFIG_GENERIC_IOMAP is not set
192# CONFIG_CPU_FREQ is not set 192# CONFIG_CPU_FREQ is not set
193# CONFIG_QUICC_ENGINE is not set
193# CONFIG_FSL_ULI1575 is not set 194# CONFIG_FSL_ULI1575 is not set
194CONFIG_CPM=y 195CONFIG_CPM=y
195 196
@@ -211,6 +212,8 @@ CONFIG_PREEMPT_NONE=y
211# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
212# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
213CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
216# CONFIG_HAVE_AOUT is not set
214# CONFIG_BINFMT_MISC is not set 217# CONFIG_BINFMT_MISC is not set
215# CONFIG_MATH_EMULATION is not set 218# CONFIG_MATH_EMULATION is not set
216CONFIG_8XX_MINIMAL_FPEMU=y 219CONFIG_8XX_MINIMAL_FPEMU=y
@@ -226,15 +229,15 @@ CONFIG_FLATMEM_MANUAL=y
226# CONFIG_SPARSEMEM_MANUAL is not set 229# CONFIG_SPARSEMEM_MANUAL is not set
227CONFIG_FLATMEM=y 230CONFIG_FLATMEM=y
228CONFIG_FLAT_NODE_MEM_MAP=y 231CONFIG_FLAT_NODE_MEM_MAP=y
229# CONFIG_SPARSEMEM_STATIC is not set
230# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
231CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y 234CONFIG_MIGRATION=y
234# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
236# CONFIG_PHYS_ADDR_T_64BIT is not set
235CONFIG_ZONE_DMA_FLAG=1 237CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 238CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 239CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y
238CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
239CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
240# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -316,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
316# CONFIG_TIPC is not set 319# CONFIG_TIPC is not set
317# CONFIG_ATM is not set 320# CONFIG_ATM is not set
318# CONFIG_BRIDGE is not set 321# CONFIG_BRIDGE is not set
322# CONFIG_NET_DSA is not set
319# CONFIG_VLAN_8021Q is not set 323# CONFIG_VLAN_8021Q is not set
320# CONFIG_DECNET is not set 324# CONFIG_DECNET is not set
321# CONFIG_LLC2 is not set 325# CONFIG_LLC2 is not set
@@ -336,11 +340,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_IRDA is not set 340# CONFIG_IRDA is not set
337# CONFIG_BT is not set 341# CONFIG_BT is not set
338# CONFIG_AF_RXRPC is not set 342# CONFIG_AF_RXRPC is not set
339 343# CONFIG_PHONET is not set
340# 344CONFIG_WIRELESS=y
341# Wireless
342#
343# CONFIG_CFG80211 is not set 345# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y
344# CONFIG_WIRELESS_EXT is not set 347# CONFIG_WIRELESS_EXT is not set
345# CONFIG_MAC80211 is not set 348# CONFIG_MAC80211 is not set
346# CONFIG_IEEE80211 is not set 349# CONFIG_IEEE80211 is not set
@@ -486,6 +489,9 @@ CONFIG_MII=y
486# CONFIG_IBM_NEW_EMAC_RGMII is not set 489# CONFIG_IBM_NEW_EMAC_RGMII is not set
487# CONFIG_IBM_NEW_EMAC_TAH is not set 490# CONFIG_IBM_NEW_EMAC_TAH is not set
488# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 491# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
492# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
493# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
494# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
489# CONFIG_B44 is not set 495# CONFIG_B44 is not set
490CONFIG_FS_ENET=y 496CONFIG_FS_ENET=y
491# CONFIG_FS_ENET_HAS_SCC is not set 497# CONFIG_FS_ENET_HAS_SCC is not set
@@ -540,12 +546,6 @@ CONFIG_SERIAL_CORE=y
540CONFIG_SERIAL_CORE_CONSOLE=y 546CONFIG_SERIAL_CORE_CONSOLE=y
541CONFIG_SERIAL_CPM=y 547CONFIG_SERIAL_CPM=y
542CONFIG_SERIAL_CPM_CONSOLE=y 548CONFIG_SERIAL_CPM_CONSOLE=y
543# CONFIG_SERIAL_CPM_SCC1 is not set
544# CONFIG_SERIAL_CPM_SCC2 is not set
545# CONFIG_SERIAL_CPM_SCC3 is not set
546# CONFIG_SERIAL_CPM_SCC4 is not set
547CONFIG_SERIAL_CPM_SMC1=y
548CONFIG_SERIAL_CPM_SMC2=y
549CONFIG_UNIX98_PTYS=y 549CONFIG_UNIX98_PTYS=y
550# CONFIG_LEGACY_PTYS is not set 550# CONFIG_LEGACY_PTYS is not set
551# CONFIG_IPMI_HANDLER is not set 551# CONFIG_IPMI_HANDLER is not set
@@ -582,6 +582,14 @@ CONFIG_SSB_POSSIBLE=y
582# CONFIG_MFD_TMIO is not set 582# CONFIG_MFD_TMIO is not set
583 583
584# 584#
585# Voltage and Current regulators
586#
587# CONFIG_REGULATOR is not set
588# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
589# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
590# CONFIG_REGULATOR_BQ24022 is not set
591
592#
585# Multimedia devices 593# Multimedia devices
586# 594#
587 595
@@ -619,16 +627,18 @@ CONFIG_DAB=y
619# CONFIG_RTC_CLASS is not set 627# CONFIG_RTC_CLASS is not set
620# CONFIG_DMADEVICES is not set 628# CONFIG_DMADEVICES is not set
621# CONFIG_UIO is not set 629# CONFIG_UIO is not set
630# CONFIG_STAGING is not set
622 631
623# 632#
624# File systems 633# File systems
625# 634#
626# CONFIG_EXT2_FS is not set 635# CONFIG_EXT2_FS is not set
627# CONFIG_EXT3_FS is not set 636# CONFIG_EXT3_FS is not set
628# CONFIG_EXT4DEV_FS is not set 637# CONFIG_EXT4_FS is not set
629# CONFIG_REISERFS_FS is not set 638# CONFIG_REISERFS_FS is not set
630# CONFIG_JFS_FS is not set 639# CONFIG_JFS_FS is not set
631# CONFIG_FS_POSIX_ACL is not set 640# CONFIG_FS_POSIX_ACL is not set
641CONFIG_FILE_LOCKING=y
632# CONFIG_XFS_FS is not set 642# CONFIG_XFS_FS is not set
633# CONFIG_OCFS2_FS is not set 643# CONFIG_OCFS2_FS is not set
634# CONFIG_DNOTIFY is not set 644# CONFIG_DNOTIFY is not set
@@ -657,6 +667,7 @@ CONFIG_DAB=y
657CONFIG_PROC_FS=y 667CONFIG_PROC_FS=y
658# CONFIG_PROC_KCORE is not set 668# CONFIG_PROC_KCORE is not set
659CONFIG_PROC_SYSCTL=y 669CONFIG_PROC_SYSCTL=y
670CONFIG_PROC_PAGE_MONITOR=y
660CONFIG_SYSFS=y 671CONFIG_SYSFS=y
661CONFIG_TMPFS=y 672CONFIG_TMPFS=y
662# CONFIG_TMPFS_POSIX_ACL is not set 673# CONFIG_TMPFS_POSIX_ACL is not set
@@ -694,6 +705,7 @@ CONFIG_LOCKD=y
694CONFIG_LOCKD_V4=y 705CONFIG_LOCKD_V4=y
695CONFIG_NFS_COMMON=y 706CONFIG_NFS_COMMON=y
696CONFIG_SUNRPC=y 707CONFIG_SUNRPC=y
708# CONFIG_SUNRPC_REGISTER_V4 is not set
697# CONFIG_RPCSEC_GSS_KRB5 is not set 709# CONFIG_RPCSEC_GSS_KRB5 is not set
698# CONFIG_RPCSEC_GSS_SPKM3 is not set 710# CONFIG_RPCSEC_GSS_SPKM3 is not set
699# CONFIG_SMB_FS is not set 711# CONFIG_SMB_FS is not set
@@ -729,7 +741,6 @@ CONFIG_MSDOS_PARTITION=y
729# 741#
730# Library routines 742# Library routines
731# 743#
732# CONFIG_GENERIC_FIND_FIRST_BIT is not set
733# CONFIG_CRC_CCITT is not set 744# CONFIG_CRC_CCITT is not set
734# CONFIG_CRC16 is not set 745# CONFIG_CRC16 is not set
735# CONFIG_CRC_T10DIF is not set 746# CONFIG_CRC_T10DIF is not set
@@ -779,14 +790,22 @@ CONFIG_DEBUG_INFO=y
779# CONFIG_DEBUG_SG is not set 790# CONFIG_DEBUG_SG is not set
780# CONFIG_BOOT_PRINTK_DELAY is not set 791# CONFIG_BOOT_PRINTK_DELAY is not set
781# CONFIG_RCU_TORTURE_TEST is not set 792# CONFIG_RCU_TORTURE_TEST is not set
793# CONFIG_RCU_CPU_STALL_DETECTOR is not set
782# CONFIG_BACKTRACE_SELF_TEST is not set 794# CONFIG_BACKTRACE_SELF_TEST is not set
795# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
783# CONFIG_FAULT_INJECTION is not set 796# CONFIG_FAULT_INJECTION is not set
784# CONFIG_LATENCYTOP is not set 797# CONFIG_LATENCYTOP is not set
785CONFIG_HAVE_FTRACE=y 798CONFIG_HAVE_FUNCTION_TRACER=y
786CONFIG_HAVE_DYNAMIC_FTRACE=y 799
787# CONFIG_FTRACE is not set 800#
801# Tracers
802#
803# CONFIG_FUNCTION_TRACER is not set
788# CONFIG_SCHED_TRACER is not set 804# CONFIG_SCHED_TRACER is not set
789# CONFIG_CONTEXT_SWITCH_TRACER is not set 805# CONFIG_CONTEXT_SWITCH_TRACER is not set
806# CONFIG_BOOT_TRACER is not set
807# CONFIG_STACK_TRACER is not set
808# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
790# CONFIG_SAMPLES is not set 809# CONFIG_SAMPLES is not set
791CONFIG_HAVE_ARCH_KGDB=y 810CONFIG_HAVE_ARCH_KGDB=y
792# CONFIG_KGDB is not set 811# CONFIG_KGDB is not set
@@ -795,6 +814,7 @@ CONFIG_HAVE_ARCH_KGDB=y
795# CONFIG_DEBUG_PAGEALLOC is not set 814# CONFIG_DEBUG_PAGEALLOC is not set
796# CONFIG_CODE_PATCHING_SELFTEST is not set 815# CONFIG_CODE_PATCHING_SELFTEST is not set
797# CONFIG_FTR_FIXUP_SELFTEST is not set 816# CONFIG_FTR_FIXUP_SELFTEST is not set
817# CONFIG_MSI_BITMAP_SELFTEST is not set
798# CONFIG_XMON is not set 818# CONFIG_XMON is not set
799# CONFIG_IRQSTACKS is not set 819# CONFIG_IRQSTACKS is not set
800# CONFIG_BDI_SWITCH is not set 820# CONFIG_BDI_SWITCH is not set
@@ -805,6 +825,7 @@ CONFIG_HAVE_ARCH_KGDB=y
805# 825#
806# CONFIG_KEYS is not set 826# CONFIG_KEYS is not set
807# CONFIG_SECURITY is not set 827# CONFIG_SECURITY is not set
828# CONFIG_SECURITYFS is not set
808# CONFIG_SECURITY_FILE_CAPABILITIES is not set 829# CONFIG_SECURITY_FILE_CAPABILITIES is not set
809# CONFIG_CRYPTO is not set 830# CONFIG_CRYPTO is not set
810CONFIG_PPC_CLOCK=y 831CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index 80481f270133..de9b121820a6 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_defconfig
@@ -1,7 +1,7 @@
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-rc3
4# Tue Aug 26 13:20:26 2008 4# Tue Nov 11 19:36:51 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
@@ -110,7 +110,9 @@ CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 116CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
116CONFIG_SLUB=y 118CONFIG_SLUB=y
@@ -125,10 +127,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
125CONFIG_HAVE_KPROBES=y 127CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
128# CONFIG_HAVE_DMA_ATTRS is not set
129# CONFIG_USE_GENERIC_SMP_HELPERS is not set
130# CONFIG_HAVE_CLK is not set
131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
133CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
134CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
@@ -161,6 +159,7 @@ CONFIG_DEFAULT_AS=y
161# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
162CONFIG_DEFAULT_IOSCHED="anticipatory" 160CONFIG_DEFAULT_IOSCHED="anticipatory"
163CONFIG_CLASSIC_RCU=y 161CONFIG_CLASSIC_RCU=y
162CONFIG_FREEZER=y
164 163
165# 164#
166# Platform support 165# Platform support
@@ -232,6 +231,8 @@ CONFIG_PREEMPT_NONE=y
232# CONFIG_PREEMPT_VOLUNTARY is not set 231# CONFIG_PREEMPT_VOLUNTARY is not set
233# CONFIG_PREEMPT is not set 232# CONFIG_PREEMPT is not set
234CONFIG_BINFMT_ELF=y 233CONFIG_BINFMT_ELF=y
234# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
235# CONFIG_HAVE_AOUT is not set
235CONFIG_BINFMT_MISC=m 236CONFIG_BINFMT_MISC=m
236# CONFIG_IOMMU_HELPER is not set 237# CONFIG_IOMMU_HELPER is not set
237CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 238CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -246,15 +247,15 @@ CONFIG_FLATMEM_MANUAL=y
246# CONFIG_SPARSEMEM_MANUAL is not set 247# CONFIG_SPARSEMEM_MANUAL is not set
247CONFIG_FLATMEM=y 248CONFIG_FLATMEM=y
248CONFIG_FLAT_NODE_MEM_MAP=y 249CONFIG_FLAT_NODE_MEM_MAP=y
249# CONFIG_SPARSEMEM_STATIC is not set
250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
251CONFIG_PAGEFLAGS_EXTENDED=y 250CONFIG_PAGEFLAGS_EXTENDED=y
252CONFIG_SPLIT_PTLOCK_CPUS=4 251CONFIG_SPLIT_PTLOCK_CPUS=4
253# CONFIG_MIGRATION is not set 252# CONFIG_MIGRATION is not set
254# CONFIG_RESOURCES_64BIT is not set 253# CONFIG_RESOURCES_64BIT is not set
254# CONFIG_PHYS_ADDR_T_64BIT is not set
255CONFIG_ZONE_DMA_FLAG=1 255CONFIG_ZONE_DMA_FLAG=1
256CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
257CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
258CONFIG_UNEVICTABLE_LRU=y
258CONFIG_FORCE_MAX_ZONEORDER=11 259CONFIG_FORCE_MAX_ZONEORDER=11
259CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
260# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
@@ -362,7 +363,6 @@ CONFIG_INET_TCP_DIAG=y
362CONFIG_TCP_CONG_CUBIC=y 363CONFIG_TCP_CONG_CUBIC=y
363CONFIG_DEFAULT_TCP_CONG="cubic" 364CONFIG_DEFAULT_TCP_CONG="cubic"
364# CONFIG_TCP_MD5SIG is not set 365# CONFIG_TCP_MD5SIG is not set
365# CONFIG_IP_VS is not set
366# CONFIG_IPV6 is not set 366# CONFIG_IPV6 is not set
367# CONFIG_NETWORK_SECMARK is not set 367# CONFIG_NETWORK_SECMARK is not set
368CONFIG_NETFILTER=y 368CONFIG_NETFILTER=y
@@ -392,13 +392,14 @@ CONFIG_NF_CONNTRACK_IRC=m
392# CONFIG_NF_CONNTRACK_SIP is not set 392# CONFIG_NF_CONNTRACK_SIP is not set
393CONFIG_NF_CONNTRACK_TFTP=m 393CONFIG_NF_CONNTRACK_TFTP=m
394CONFIG_NF_CT_NETLINK=m 394CONFIG_NF_CT_NETLINK=m
395# CONFIG_NETFILTER_TPROXY is not set
395CONFIG_NETFILTER_XTABLES=m 396CONFIG_NETFILTER_XTABLES=m
396CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 397CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
397# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 398# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
398# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 399# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
399CONFIG_NETFILTER_XT_TARGET_MARK=m 400CONFIG_NETFILTER_XT_TARGET_MARK=m
400CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
401CONFIG_NETFILTER_XT_TARGET_NFLOG=m 401CONFIG_NETFILTER_XT_TARGET_NFLOG=m
402CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
402CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 403CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
403CONFIG_NETFILTER_XT_TARGET_RATEEST=m 404CONFIG_NETFILTER_XT_TARGET_RATEEST=m
404CONFIG_NETFILTER_XT_TARGET_TRACE=m 405CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -412,19 +413,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
412CONFIG_NETFILTER_XT_MATCH_DCCP=m 413CONFIG_NETFILTER_XT_MATCH_DCCP=m
413CONFIG_NETFILTER_XT_MATCH_DSCP=m 414CONFIG_NETFILTER_XT_MATCH_DSCP=m
414CONFIG_NETFILTER_XT_MATCH_ESP=m 415CONFIG_NETFILTER_XT_MATCH_ESP=m
416# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
415CONFIG_NETFILTER_XT_MATCH_HELPER=m 417CONFIG_NETFILTER_XT_MATCH_HELPER=m
416CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 418CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
417CONFIG_NETFILTER_XT_MATCH_LENGTH=m 419CONFIG_NETFILTER_XT_MATCH_LENGTH=m
418CONFIG_NETFILTER_XT_MATCH_LIMIT=m 420CONFIG_NETFILTER_XT_MATCH_LIMIT=m
419CONFIG_NETFILTER_XT_MATCH_MAC=m 421CONFIG_NETFILTER_XT_MATCH_MAC=m
420CONFIG_NETFILTER_XT_MATCH_MARK=m 422CONFIG_NETFILTER_XT_MATCH_MARK=m
423CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
421CONFIG_NETFILTER_XT_MATCH_OWNER=m 424CONFIG_NETFILTER_XT_MATCH_OWNER=m
422CONFIG_NETFILTER_XT_MATCH_POLICY=m 425CONFIG_NETFILTER_XT_MATCH_POLICY=m
423CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
424CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 426CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
425# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 427# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
426CONFIG_NETFILTER_XT_MATCH_RATEEST=m 428CONFIG_NETFILTER_XT_MATCH_RATEEST=m
427CONFIG_NETFILTER_XT_MATCH_REALM=m 429CONFIG_NETFILTER_XT_MATCH_REALM=m
430CONFIG_NETFILTER_XT_MATCH_RECENT=m
431# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
428CONFIG_NETFILTER_XT_MATCH_SCTP=m 432CONFIG_NETFILTER_XT_MATCH_SCTP=m
429# CONFIG_NETFILTER_XT_MATCH_STATE is not set 433# CONFIG_NETFILTER_XT_MATCH_STATE is not set
430# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 434# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
@@ -432,20 +436,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
432CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 436CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
433CONFIG_NETFILTER_XT_MATCH_TIME=m 437CONFIG_NETFILTER_XT_MATCH_TIME=m
434CONFIG_NETFILTER_XT_MATCH_U32=m 438CONFIG_NETFILTER_XT_MATCH_U32=m
435# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 439# CONFIG_IP_VS is not set
436 440
437# 441#
438# IP: Netfilter Configuration 442# IP: Netfilter Configuration
439# 443#
444CONFIG_NF_DEFRAG_IPV4=m
440CONFIG_NF_CONNTRACK_IPV4=m 445CONFIG_NF_CONNTRACK_IPV4=m
441CONFIG_NF_CONNTRACK_PROC_COMPAT=y 446CONFIG_NF_CONNTRACK_PROC_COMPAT=y
442# CONFIG_IP_NF_QUEUE is not set 447# CONFIG_IP_NF_QUEUE is not set
443CONFIG_IP_NF_IPTABLES=m 448CONFIG_IP_NF_IPTABLES=m
444CONFIG_IP_NF_MATCH_RECENT=m 449CONFIG_IP_NF_MATCH_ADDRTYPE=m
445CONFIG_IP_NF_MATCH_ECN=m
446CONFIG_IP_NF_MATCH_AH=m 450CONFIG_IP_NF_MATCH_AH=m
451CONFIG_IP_NF_MATCH_ECN=m
447CONFIG_IP_NF_MATCH_TTL=m 452CONFIG_IP_NF_MATCH_TTL=m
448CONFIG_IP_NF_MATCH_ADDRTYPE=m
449CONFIG_IP_NF_FILTER=m 453CONFIG_IP_NF_FILTER=m
450CONFIG_IP_NF_TARGET_REJECT=m 454CONFIG_IP_NF_TARGET_REJECT=m
451CONFIG_IP_NF_TARGET_LOG=m 455CONFIG_IP_NF_TARGET_LOG=m
@@ -453,8 +457,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
453CONFIG_NF_NAT=m 457CONFIG_NF_NAT=m
454CONFIG_NF_NAT_NEEDED=y 458CONFIG_NF_NAT_NEEDED=y
455CONFIG_IP_NF_TARGET_MASQUERADE=m 459CONFIG_IP_NF_TARGET_MASQUERADE=m
456CONFIG_IP_NF_TARGET_REDIRECT=m
457CONFIG_IP_NF_TARGET_NETMAP=m 460CONFIG_IP_NF_TARGET_NETMAP=m
461CONFIG_IP_NF_TARGET_REDIRECT=m
458# CONFIG_NF_NAT_SNMP_BASIC is not set 462# CONFIG_NF_NAT_SNMP_BASIC is not set
459CONFIG_NF_NAT_PROTO_DCCP=m 463CONFIG_NF_NAT_PROTO_DCCP=m
460CONFIG_NF_NAT_FTP=m 464CONFIG_NF_NAT_FTP=m
@@ -465,9 +469,9 @@ CONFIG_NF_NAT_TFTP=m
465# CONFIG_NF_NAT_H323 is not set 469# CONFIG_NF_NAT_H323 is not set
466# CONFIG_NF_NAT_SIP is not set 470# CONFIG_NF_NAT_SIP is not set
467CONFIG_IP_NF_MANGLE=m 471CONFIG_IP_NF_MANGLE=m
472# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
468CONFIG_IP_NF_TARGET_ECN=m 473CONFIG_IP_NF_TARGET_ECN=m
469CONFIG_IP_NF_TARGET_TTL=m 474CONFIG_IP_NF_TARGET_TTL=m
470# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
471CONFIG_IP_NF_RAW=m 475CONFIG_IP_NF_RAW=m
472CONFIG_IP_NF_ARPTABLES=m 476CONFIG_IP_NF_ARPTABLES=m
473CONFIG_IP_NF_ARPFILTER=m 477CONFIG_IP_NF_ARPFILTER=m
@@ -494,6 +498,7 @@ CONFIG_IP_DCCP_TFRC_LIB=m
494# CONFIG_TIPC is not set 498# CONFIG_TIPC is not set
495# CONFIG_ATM is not set 499# CONFIG_ATM is not set
496# CONFIG_BRIDGE is not set 500# CONFIG_BRIDGE is not set
501# CONFIG_NET_DSA is not set
497# CONFIG_VLAN_8021Q is not set 502# CONFIG_VLAN_8021Q is not set
498# CONFIG_DECNET is not set 503# CONFIG_DECNET is not set
499# CONFIG_LLC2 is not set 504# CONFIG_LLC2 is not set
@@ -585,12 +590,11 @@ CONFIG_BT_HCIBFUSB=m
585# CONFIG_BT_HCIBTUART is not set 590# CONFIG_BT_HCIBTUART is not set
586# CONFIG_BT_HCIVHCI is not set 591# CONFIG_BT_HCIVHCI is not set
587# CONFIG_AF_RXRPC is not set 592# CONFIG_AF_RXRPC is not set
588 593# CONFIG_PHONET is not set
589# 594CONFIG_WIRELESS=y
590# Wireless
591#
592CONFIG_CFG80211=m 595CONFIG_CFG80211=m
593CONFIG_NL80211=y 596CONFIG_NL80211=y
597CONFIG_WIRELESS_OLD_REGULATORY=y
594CONFIG_WIRELESS_EXT=y 598CONFIG_WIRELESS_EXT=y
595CONFIG_WIRELESS_EXT_SYSFS=y 599CONFIG_WIRELESS_EXT_SYSFS=y
596CONFIG_MAC80211=m 600CONFIG_MAC80211=m
@@ -599,7 +603,9 @@ CONFIG_MAC80211=m
599# Rate control algorithm selection 603# Rate control algorithm selection
600# 604#
601CONFIG_MAC80211_RC_PID=y 605CONFIG_MAC80211_RC_PID=y
606# CONFIG_MAC80211_RC_MINSTREL is not set
602CONFIG_MAC80211_RC_DEFAULT_PID=y 607CONFIG_MAC80211_RC_DEFAULT_PID=y
608# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
603CONFIG_MAC80211_RC_DEFAULT="pid" 609CONFIG_MAC80211_RC_DEFAULT="pid"
604# CONFIG_MAC80211_MESH is not set 610# CONFIG_MAC80211_MESH is not set
605CONFIG_MAC80211_LEDS=y 611CONFIG_MAC80211_LEDS=y
@@ -663,7 +669,6 @@ CONFIG_MISC_DEVICES=y
663# CONFIG_HP_ILO is not set 669# CONFIG_HP_ILO is not set
664CONFIG_HAVE_IDE=y 670CONFIG_HAVE_IDE=y
665CONFIG_IDE=y 671CONFIG_IDE=y
666CONFIG_BLK_DEV_IDE=y
667 672
668# 673#
669# Please see Documentation/ide/ide.txt for help/info on IDE drives 674# Please see Documentation/ide/ide.txt for help/info on IDE drives
@@ -671,14 +676,14 @@ CONFIG_BLK_DEV_IDE=y
671CONFIG_IDE_TIMINGS=y 676CONFIG_IDE_TIMINGS=y
672CONFIG_IDE_ATAPI=y 677CONFIG_IDE_ATAPI=y
673# CONFIG_BLK_DEV_IDE_SATA is not set 678# CONFIG_BLK_DEV_IDE_SATA is not set
674CONFIG_BLK_DEV_IDEDISK=y 679CONFIG_IDE_GD=y
675# CONFIG_IDEDISK_MULTI_MODE is not set 680CONFIG_IDE_GD_ATA=y
681# CONFIG_IDE_GD_ATAPI is not set
676CONFIG_BLK_DEV_IDECS=m 682CONFIG_BLK_DEV_IDECS=m
677# CONFIG_BLK_DEV_DELKIN is not set 683# CONFIG_BLK_DEV_DELKIN is not set
678CONFIG_BLK_DEV_IDECD=y 684CONFIG_BLK_DEV_IDECD=y
679CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 685CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
680# CONFIG_BLK_DEV_IDETAPE is not set 686# CONFIG_BLK_DEV_IDETAPE is not set
681CONFIG_BLK_DEV_IDEFLOPPY=y
682CONFIG_BLK_DEV_IDESCSI=y 687CONFIG_BLK_DEV_IDESCSI=y
683# CONFIG_IDE_TASK_IOCTL is not set 688# CONFIG_IDE_TASK_IOCTL is not set
684CONFIG_IDE_PROC_FS=y 689CONFIG_IDE_PROC_FS=y
@@ -899,6 +904,9 @@ CONFIG_SUNGEM=y
899# CONFIG_IBM_NEW_EMAC_RGMII is not set 904# CONFIG_IBM_NEW_EMAC_RGMII is not set
900# CONFIG_IBM_NEW_EMAC_TAH is not set 905# CONFIG_IBM_NEW_EMAC_TAH is not set
901# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 906# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
907# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
908# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
909# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
902CONFIG_NET_PCI=y 910CONFIG_NET_PCI=y
903CONFIG_PCNET32=y 911CONFIG_PCNET32=y
904# CONFIG_AMD8111_ETH is not set 912# CONFIG_AMD8111_ETH is not set
@@ -919,6 +927,7 @@ CONFIG_PCNET32=y
919# CONFIG_TLAN is not set 927# CONFIG_TLAN is not set
920# CONFIG_VIA_RHINE is not set 928# CONFIG_VIA_RHINE is not set
921# CONFIG_SC92031 is not set 929# CONFIG_SC92031 is not set
930# CONFIG_ATL2 is not set
922CONFIG_NETDEV_1000=y 931CONFIG_NETDEV_1000=y
923# CONFIG_ACENIC is not set 932# CONFIG_ACENIC is not set
924# CONFIG_DL2K is not set 933# CONFIG_DL2K is not set
@@ -940,18 +949,22 @@ CONFIG_NETDEV_1000=y
940# CONFIG_QLA3XXX is not set 949# CONFIG_QLA3XXX is not set
941# CONFIG_ATL1 is not set 950# CONFIG_ATL1 is not set
942# CONFIG_ATL1E is not set 951# CONFIG_ATL1E is not set
952# CONFIG_JME is not set
943CONFIG_NETDEV_10000=y 953CONFIG_NETDEV_10000=y
944# CONFIG_CHELSIO_T1 is not set 954# CONFIG_CHELSIO_T1 is not set
945# CONFIG_CHELSIO_T3 is not set 955# CONFIG_CHELSIO_T3 is not set
956# CONFIG_ENIC is not set
946# CONFIG_IXGBE is not set 957# CONFIG_IXGBE is not set
947# CONFIG_IXGB is not set 958# CONFIG_IXGB is not set
948# CONFIG_S2IO is not set 959# CONFIG_S2IO is not set
949# CONFIG_MYRI10GE is not set 960# CONFIG_MYRI10GE is not set
950# CONFIG_NETXEN_NIC is not set 961# CONFIG_NETXEN_NIC is not set
951# CONFIG_NIU is not set 962# CONFIG_NIU is not set
963# CONFIG_MLX4_EN is not set
952# CONFIG_MLX4_CORE is not set 964# CONFIG_MLX4_CORE is not set
953# CONFIG_TEHUTI is not set 965# CONFIG_TEHUTI is not set
954# CONFIG_BNX2X is not set 966# CONFIG_BNX2X is not set
967# CONFIG_QLGE is not set
955# CONFIG_SFC is not set 968# CONFIG_SFC is not set
956# CONFIG_TR is not set 969# CONFIG_TR is not set
957 970
@@ -964,6 +977,7 @@ CONFIG_WLAN_80211=y
964# CONFIG_IPW2100 is not set 977# CONFIG_IPW2100 is not set
965# CONFIG_IPW2200 is not set 978# CONFIG_IPW2200 is not set
966# CONFIG_LIBERTAS is not set 979# CONFIG_LIBERTAS is not set
980# CONFIG_LIBERTAS_THINFIRM is not set
967# CONFIG_AIRO is not set 981# CONFIG_AIRO is not set
968CONFIG_HERMES=m 982CONFIG_HERMES=m
969CONFIG_APPLE_AIRPORT=m 983CONFIG_APPLE_AIRPORT=m
@@ -1023,6 +1037,7 @@ CONFIG_USB_USBNET=m
1023CONFIG_USB_NET_AX8817X=m 1037CONFIG_USB_NET_AX8817X=m
1024CONFIG_USB_NET_CDCETHER=m 1038CONFIG_USB_NET_CDCETHER=m
1025# CONFIG_USB_NET_DM9601 is not set 1039# CONFIG_USB_NET_DM9601 is not set
1040# CONFIG_USB_NET_SMSC95XX is not set
1026# CONFIG_USB_NET_GL620A is not set 1041# CONFIG_USB_NET_GL620A is not set
1027CONFIG_USB_NET_NET1080=m 1042CONFIG_USB_NET_NET1080=m
1028# CONFIG_USB_NET_PLUSB is not set 1043# CONFIG_USB_NET_PLUSB is not set
@@ -1239,6 +1254,7 @@ CONFIG_POWER_SUPPLY=y
1239CONFIG_APM_POWER=y 1254CONFIG_APM_POWER=y
1240# CONFIG_BATTERY_DS2760 is not set 1255# CONFIG_BATTERY_DS2760 is not set
1241CONFIG_BATTERY_PMU=y 1256CONFIG_BATTERY_PMU=y
1257# CONFIG_BATTERY_BQ27x00 is not set
1242# CONFIG_HWMON is not set 1258# CONFIG_HWMON is not set
1243# CONFIG_THERMAL is not set 1259# CONFIG_THERMAL is not set
1244# CONFIG_THERMAL_HWMON is not set 1260# CONFIG_THERMAL_HWMON is not set
@@ -1266,6 +1282,17 @@ CONFIG_SSB_DRIVER_PCICORE=y
1266# CONFIG_MFD_SM501 is not set 1282# CONFIG_MFD_SM501 is not set
1267# CONFIG_HTC_PASIC3 is not set 1283# CONFIG_HTC_PASIC3 is not set
1268# CONFIG_MFD_TMIO is not set 1284# CONFIG_MFD_TMIO is not set
1285# CONFIG_PMIC_DA903X is not set
1286# CONFIG_MFD_WM8400 is not set
1287# CONFIG_MFD_WM8350_I2C is not set
1288
1289#
1290# Voltage and Current regulators
1291#
1292# CONFIG_REGULATOR is not set
1293# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1294# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1295# CONFIG_REGULATOR_BQ24022 is not set
1269 1296
1270# 1297#
1271# Multimedia devices 1298# Multimedia devices
@@ -1301,6 +1328,7 @@ CONFIG_VGASTATE=y
1301CONFIG_FB=y 1328CONFIG_FB=y
1302# CONFIG_FIRMWARE_EDID is not set 1329# CONFIG_FIRMWARE_EDID is not set
1303CONFIG_FB_DDC=y 1330CONFIG_FB_DDC=y
1331# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1304CONFIG_FB_CFB_FILLRECT=y 1332CONFIG_FB_CFB_FILLRECT=y
1305CONFIG_FB_CFB_COPYAREA=y 1333CONFIG_FB_CFB_COPYAREA=y
1306CONFIG_FB_CFB_IMAGEBLIT=y 1334CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1357,6 +1385,7 @@ CONFIG_FB_ATY_BACKLIGHT=y
1357# CONFIG_FB_S3 is not set 1385# CONFIG_FB_S3 is not set
1358# CONFIG_FB_SAVAGE is not set 1386# CONFIG_FB_SAVAGE is not set
1359# CONFIG_FB_SIS is not set 1387# CONFIG_FB_SIS is not set
1388# CONFIG_FB_VIA is not set
1360# CONFIG_FB_NEOMAGIC is not set 1389# CONFIG_FB_NEOMAGIC is not set
1361# CONFIG_FB_KYRO is not set 1390# CONFIG_FB_KYRO is not set
1362CONFIG_FB_3DFX=y 1391CONFIG_FB_3DFX=y
@@ -1369,6 +1398,7 @@ CONFIG_FB_3DFX=y
1369# CONFIG_FB_CARMINE is not set 1398# CONFIG_FB_CARMINE is not set
1370# CONFIG_FB_IBM_GXT4500 is not set 1399# CONFIG_FB_IBM_GXT4500 is not set
1371# CONFIG_FB_VIRTUAL is not set 1400# CONFIG_FB_VIRTUAL is not set
1401# CONFIG_FB_METRONOME is not set
1372CONFIG_BACKLIGHT_LCD_SUPPORT=y 1402CONFIG_BACKLIGHT_LCD_SUPPORT=y
1373CONFIG_LCD_CLASS_DEVICE=m 1403CONFIG_LCD_CLASS_DEVICE=m
1374# CONFIG_LCD_ILI9320 is not set 1404# CONFIG_LCD_ILI9320 is not set
@@ -1401,6 +1431,7 @@ CONFIG_LOGO_LINUX_MONO=y
1401CONFIG_LOGO_LINUX_VGA16=y 1431CONFIG_LOGO_LINUX_VGA16=y
1402CONFIG_LOGO_LINUX_CLUT224=y 1432CONFIG_LOGO_LINUX_CLUT224=y
1403CONFIG_SOUND=m 1433CONFIG_SOUND=m
1434CONFIG_SOUND_OSS_CORE=y
1404CONFIG_SND=m 1435CONFIG_SND=m
1405CONFIG_SND_TIMER=m 1436CONFIG_SND_TIMER=m
1406CONFIG_SND_PCM=m 1437CONFIG_SND_PCM=m
@@ -1514,9 +1545,36 @@ CONFIG_HID=y
1514# USB Input Devices 1545# USB Input Devices
1515# 1546#
1516CONFIG_USB_HID=y 1547CONFIG_USB_HID=y
1517CONFIG_USB_HIDINPUT_POWERBOOK=y 1548# CONFIG_HID_PID is not set
1518# CONFIG_HID_FF is not set
1519# CONFIG_USB_HIDDEV is not set 1549# CONFIG_USB_HIDDEV is not set
1550
1551#
1552# Special HID drivers
1553#
1554CONFIG_HID_COMPAT=y
1555CONFIG_HID_A4TECH=y
1556CONFIG_HID_APPLE=y
1557CONFIG_HID_BELKIN=y
1558CONFIG_HID_BRIGHT=y
1559CONFIG_HID_CHERRY=y
1560CONFIG_HID_CHICONY=y
1561CONFIG_HID_CYPRESS=y
1562CONFIG_HID_DELL=y
1563CONFIG_HID_EZKEY=y
1564CONFIG_HID_GYRATION=y
1565CONFIG_HID_LOGITECH=y
1566# CONFIG_LOGITECH_FF is not set
1567# CONFIG_LOGIRUMBLEPAD2_FF is not set
1568CONFIG_HID_MICROSOFT=y
1569CONFIG_HID_MONTEREY=y
1570CONFIG_HID_PANTHERLORD=y
1571# CONFIG_PANTHERLORD_FF is not set
1572CONFIG_HID_PETALYNX=y
1573CONFIG_HID_SAMSUNG=y
1574CONFIG_HID_SONY=y
1575CONFIG_HID_SUNPLUS=y
1576# CONFIG_THRUSTMASTER_FF is not set
1577# CONFIG_ZEROPLUS_FF is not set
1520CONFIG_USB_SUPPORT=y 1578CONFIG_USB_SUPPORT=y
1521CONFIG_USB_ARCH_HAS_HCD=y 1579CONFIG_USB_ARCH_HAS_HCD=y
1522CONFIG_USB_ARCH_HAS_OHCI=y 1580CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1534,6 +1592,8 @@ CONFIG_USB_DYNAMIC_MINORS=y
1534# CONFIG_USB_SUSPEND is not set 1592# CONFIG_USB_SUSPEND is not set
1535# CONFIG_USB_OTG is not set 1593# CONFIG_USB_OTG is not set
1536CONFIG_USB_MON=y 1594CONFIG_USB_MON=y
1595# CONFIG_USB_WUSB is not set
1596# CONFIG_USB_WUSB_CBAF is not set
1537 1597
1538# 1598#
1539# USB Host Controller Drivers 1599# USB Host Controller Drivers
@@ -1553,6 +1613,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1553# CONFIG_USB_UHCI_HCD is not set 1613# CONFIG_USB_UHCI_HCD is not set
1554# CONFIG_USB_SL811_HCD is not set 1614# CONFIG_USB_SL811_HCD is not set
1555# CONFIG_USB_R8A66597_HCD is not set 1615# CONFIG_USB_R8A66597_HCD is not set
1616# CONFIG_USB_WHCI_HCD is not set
1617# CONFIG_USB_HWA_HCD is not set
1556 1618
1557# 1619#
1558# USB Device Class drivers 1620# USB Device Class drivers
@@ -1560,6 +1622,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1560CONFIG_USB_ACM=m 1622CONFIG_USB_ACM=m
1561CONFIG_USB_PRINTER=m 1623CONFIG_USB_PRINTER=m
1562# CONFIG_USB_WDM is not set 1624# CONFIG_USB_WDM is not set
1625# CONFIG_USB_TMC is not set
1563 1626
1564# 1627#
1565# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1628# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1581,7 +1644,6 @@ CONFIG_USB_STORAGE=m
1581# CONFIG_USB_STORAGE_ALAUDA is not set 1644# CONFIG_USB_STORAGE_ALAUDA is not set
1582CONFIG_USB_STORAGE_ONETOUCH=y 1645CONFIG_USB_STORAGE_ONETOUCH=y
1583# CONFIG_USB_STORAGE_KARMA is not set 1646# CONFIG_USB_STORAGE_KARMA is not set
1584# CONFIG_USB_STORAGE_SIERRA is not set
1585# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1647# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1586# CONFIG_USB_LIBUSUAL is not set 1648# CONFIG_USB_LIBUSUAL is not set
1587 1649
@@ -1656,6 +1718,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1656# CONFIG_USB_EMI62 is not set 1718# CONFIG_USB_EMI62 is not set
1657# CONFIG_USB_EMI26 is not set 1719# CONFIG_USB_EMI26 is not set
1658# CONFIG_USB_ADUTUX is not set 1720# CONFIG_USB_ADUTUX is not set
1721# CONFIG_USB_SEVSEG is not set
1659# CONFIG_USB_RIO500 is not set 1722# CONFIG_USB_RIO500 is not set
1660# CONFIG_USB_LEGOTOWER is not set 1723# CONFIG_USB_LEGOTOWER is not set
1661# CONFIG_USB_LCD is not set 1724# CONFIG_USB_LCD is not set
@@ -1673,7 +1736,9 @@ CONFIG_USB_APPLEDISPLAY=m
1673# CONFIG_USB_IOWARRIOR is not set 1736# CONFIG_USB_IOWARRIOR is not set
1674# CONFIG_USB_TEST is not set 1737# CONFIG_USB_TEST is not set
1675# CONFIG_USB_ISIGHTFW is not set 1738# CONFIG_USB_ISIGHTFW is not set
1739# CONFIG_USB_VST is not set
1676# CONFIG_USB_GADGET is not set 1740# CONFIG_USB_GADGET is not set
1741# CONFIG_UWB is not set
1677# CONFIG_MMC is not set 1742# CONFIG_MMC is not set
1678# CONFIG_MEMSTICK is not set 1743# CONFIG_MEMSTICK is not set
1679CONFIG_NEW_LEDS=y 1744CONFIG_NEW_LEDS=y
@@ -1692,6 +1757,7 @@ CONFIG_LEDS_TRIGGERS=y
1692# CONFIG_LEDS_TRIGGER_TIMER is not set 1757# CONFIG_LEDS_TRIGGER_TIMER is not set
1693CONFIG_LEDS_TRIGGER_IDE_DISK=y 1758CONFIG_LEDS_TRIGGER_IDE_DISK=y
1694# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 1759# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1760# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1695CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 1761CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1696# CONFIG_ACCESSIBILITY is not set 1762# CONFIG_ACCESSIBILITY is not set
1697# CONFIG_INFINIBAND is not set 1763# CONFIG_INFINIBAND is not set
@@ -1699,6 +1765,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1699# CONFIG_RTC_CLASS is not set 1765# CONFIG_RTC_CLASS is not set
1700# CONFIG_DMADEVICES is not set 1766# CONFIG_DMADEVICES is not set
1701# CONFIG_UIO is not set 1767# CONFIG_UIO is not set
1768# CONFIG_STAGING is not set
1702 1769
1703# 1770#
1704# File systems 1771# File systems
@@ -1710,12 +1777,18 @@ CONFIG_EXT3_FS=y
1710CONFIG_EXT3_FS_XATTR=y 1777CONFIG_EXT3_FS_XATTR=y
1711CONFIG_EXT3_FS_POSIX_ACL=y 1778CONFIG_EXT3_FS_POSIX_ACL=y
1712# CONFIG_EXT3_FS_SECURITY is not set 1779# CONFIG_EXT3_FS_SECURITY is not set
1713# CONFIG_EXT4DEV_FS is not set 1780CONFIG_EXT4_FS=y
1781# CONFIG_EXT4DEV_COMPAT is not set
1782CONFIG_EXT4_FS_XATTR=y
1783# CONFIG_EXT4_FS_POSIX_ACL is not set
1784# CONFIG_EXT4_FS_SECURITY is not set
1714CONFIG_JBD=y 1785CONFIG_JBD=y
1786CONFIG_JBD2=y
1715CONFIG_FS_MBCACHE=y 1787CONFIG_FS_MBCACHE=y
1716# CONFIG_REISERFS_FS is not set 1788# CONFIG_REISERFS_FS is not set
1717# CONFIG_JFS_FS is not set 1789# CONFIG_JFS_FS is not set
1718CONFIG_FS_POSIX_ACL=y 1790CONFIG_FS_POSIX_ACL=y
1791CONFIG_FILE_LOCKING=y
1719# CONFIG_XFS_FS is not set 1792# CONFIG_XFS_FS is not set
1720# CONFIG_GFS2_FS is not set 1793# CONFIG_GFS2_FS is not set
1721# CONFIG_OCFS2_FS is not set 1794# CONFIG_OCFS2_FS is not set
@@ -1752,6 +1825,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1752CONFIG_PROC_FS=y 1825CONFIG_PROC_FS=y
1753CONFIG_PROC_KCORE=y 1826CONFIG_PROC_KCORE=y
1754CONFIG_PROC_SYSCTL=y 1827CONFIG_PROC_SYSCTL=y
1828CONFIG_PROC_PAGE_MONITOR=y
1755CONFIG_SYSFS=y 1829CONFIG_SYSFS=y
1756CONFIG_TMPFS=y 1830CONFIG_TMPFS=y
1757# CONFIG_TMPFS_POSIX_ACL is not set 1831# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1794,6 +1868,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1794CONFIG_NFS_COMMON=y 1868CONFIG_NFS_COMMON=y
1795CONFIG_SUNRPC=y 1869CONFIG_SUNRPC=y
1796CONFIG_SUNRPC_GSS=y 1870CONFIG_SUNRPC_GSS=y
1871# CONFIG_SUNRPC_REGISTER_V4 is not set
1797CONFIG_RPCSEC_GSS_KRB5=y 1872CONFIG_RPCSEC_GSS_KRB5=y
1798# CONFIG_RPCSEC_GSS_SPKM3 is not set 1873# CONFIG_RPCSEC_GSS_SPKM3 is not set
1799CONFIG_SMB_FS=m 1874CONFIG_SMB_FS=m
@@ -1870,7 +1945,6 @@ CONFIG_NLS_UTF8=m
1870# Library routines 1945# Library routines
1871# 1946#
1872CONFIG_BITREVERSE=y 1947CONFIG_BITREVERSE=y
1873# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1874CONFIG_CRC_CCITT=y 1948CONFIG_CRC_CCITT=y
1875CONFIG_CRC16=y 1949CONFIG_CRC16=y
1876CONFIG_CRC_T10DIF=y 1950CONFIG_CRC_T10DIF=y
@@ -1927,18 +2001,25 @@ CONFIG_DEBUG_BUGVERBOSE=y
1927CONFIG_DEBUG_MEMORY_INIT=y 2001CONFIG_DEBUG_MEMORY_INIT=y
1928# CONFIG_DEBUG_LIST is not set 2002# CONFIG_DEBUG_LIST is not set
1929# CONFIG_DEBUG_SG is not set 2003# CONFIG_DEBUG_SG is not set
1930CONFIG_FRAME_POINTER=y
1931# CONFIG_BOOT_PRINTK_DELAY is not set 2004# CONFIG_BOOT_PRINTK_DELAY is not set
1932# CONFIG_RCU_TORTURE_TEST is not set 2005# CONFIG_RCU_TORTURE_TEST is not set
2006# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1933# CONFIG_BACKTRACE_SELF_TEST is not set 2007# CONFIG_BACKTRACE_SELF_TEST is not set
2008# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1934# CONFIG_FAULT_INJECTION is not set 2009# CONFIG_FAULT_INJECTION is not set
1935CONFIG_LATENCYTOP=y 2010CONFIG_LATENCYTOP=y
1936CONFIG_SYSCTL_SYSCALL_CHECK=y 2011CONFIG_SYSCTL_SYSCALL_CHECK=y
1937CONFIG_HAVE_FTRACE=y 2012CONFIG_HAVE_FUNCTION_TRACER=y
1938CONFIG_HAVE_DYNAMIC_FTRACE=y 2013
1939# CONFIG_FTRACE is not set 2014#
2015# Tracers
2016#
2017# CONFIG_FUNCTION_TRACER is not set
1940# CONFIG_SCHED_TRACER is not set 2018# CONFIG_SCHED_TRACER is not set
1941# CONFIG_CONTEXT_SWITCH_TRACER is not set 2019# CONFIG_CONTEXT_SWITCH_TRACER is not set
2020# CONFIG_BOOT_TRACER is not set
2021# CONFIG_STACK_TRACER is not set
2022# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1942# CONFIG_SAMPLES is not set 2023# CONFIG_SAMPLES is not set
1943CONFIG_HAVE_ARCH_KGDB=y 2024CONFIG_HAVE_ARCH_KGDB=y
1944# CONFIG_KGDB is not set 2025# CONFIG_KGDB is not set
@@ -1946,6 +2027,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1946# CONFIG_DEBUG_STACK_USAGE is not set 2027# CONFIG_DEBUG_STACK_USAGE is not set
1947# CONFIG_CODE_PATCHING_SELFTEST is not set 2028# CONFIG_CODE_PATCHING_SELFTEST is not set
1948# CONFIG_FTR_FIXUP_SELFTEST is not set 2029# CONFIG_FTR_FIXUP_SELFTEST is not set
2030# CONFIG_MSI_BITMAP_SELFTEST is not set
1949CONFIG_XMON=y 2031CONFIG_XMON=y
1950CONFIG_XMON_DEFAULT=y 2032CONFIG_XMON_DEFAULT=y
1951CONFIG_XMON_DISASSEMBLY=y 2033CONFIG_XMON_DISASSEMBLY=y
@@ -1960,16 +2042,19 @@ CONFIG_BOOTX_TEXT=y
1960# 2042#
1961# CONFIG_KEYS is not set 2043# CONFIG_KEYS is not set
1962# CONFIG_SECURITY is not set 2044# CONFIG_SECURITY is not set
2045# CONFIG_SECURITYFS is not set
1963# CONFIG_SECURITY_FILE_CAPABILITIES is not set 2046# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1964CONFIG_CRYPTO=y 2047CONFIG_CRYPTO=y
1965 2048
1966# 2049#
1967# Crypto core or helper 2050# Crypto core or helper
1968# 2051#
2052# CONFIG_CRYPTO_FIPS is not set
1969CONFIG_CRYPTO_ALGAPI=y 2053CONFIG_CRYPTO_ALGAPI=y
1970CONFIG_CRYPTO_AEAD=y 2054CONFIG_CRYPTO_AEAD=y
1971CONFIG_CRYPTO_BLKCIPHER=y 2055CONFIG_CRYPTO_BLKCIPHER=y
1972CONFIG_CRYPTO_HASH=y 2056CONFIG_CRYPTO_HASH=y
2057CONFIG_CRYPTO_RNG=y
1973CONFIG_CRYPTO_MANAGER=y 2058CONFIG_CRYPTO_MANAGER=y
1974# CONFIG_CRYPTO_GF128MUL is not set 2059# CONFIG_CRYPTO_GF128MUL is not set
1975CONFIG_CRYPTO_NULL=m 2060CONFIG_CRYPTO_NULL=m
@@ -2043,6 +2128,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
2043# 2128#
2044CONFIG_CRYPTO_DEFLATE=m 2129CONFIG_CRYPTO_DEFLATE=m
2045# CONFIG_CRYPTO_LZO is not set 2130# CONFIG_CRYPTO_LZO is not set
2131
2132#
2133# Random Number Generation
2134#
2135# CONFIG_CRYPTO_ANSI_CPRNG is not set
2046CONFIG_CRYPTO_HW=y 2136CONFIG_CRYPTO_HW=y
2047# CONFIG_CRYPTO_DEV_HIFN_795X is not set 2137# CONFIG_CRYPTO_DEV_HIFN_795X is not set
2048# CONFIG_PPC_CLOCK is not set 2138# CONFIG_PPC_CLOCK is not set
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/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index fc5930caeb5f..069ae1bbac29 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -1,7 +1,7 @@
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-rc3
4# Tue Aug 26 13:22:03 2008 4# Tue Nov 11 19:36:56 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -22,7 +22,7 @@ CONFIG_SMP=y
22CONFIG_NR_CPUS=32 22CONFIG_NR_CPUS=32
23CONFIG_64BIT=y 23CONFIG_64BIT=y
24CONFIG_WORD_SIZE=64 24CONFIG_WORD_SIZE=64
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
@@ -87,6 +87,7 @@ CONFIG_LOG_BUF_SHIFT=17
87CONFIG_CGROUPS=y 87CONFIG_CGROUPS=y
88# CONFIG_CGROUP_DEBUG is not set 88# CONFIG_CGROUP_DEBUG is not set
89# CONFIG_CGROUP_NS is not set 89# CONFIG_CGROUP_NS is not set
90# CONFIG_CGROUP_FREEZER is not set
90# CONFIG_CGROUP_DEVICE is not set 91# CONFIG_CGROUP_DEVICE is not set
91CONFIG_CPUSETS=y 92CONFIG_CPUSETS=y
92# CONFIG_GROUP_SCHED is not set 93# CONFIG_GROUP_SCHED is not set
@@ -124,12 +125,15 @@ CONFIG_SIGNALFD=y
124CONFIG_TIMERFD=y 125CONFIG_TIMERFD=y
125CONFIG_EVENTFD=y 126CONFIG_EVENTFD=y
126CONFIG_SHMEM=y 127CONFIG_SHMEM=y
128CONFIG_AIO=y
127CONFIG_VM_EVENT_COUNTERS=y 129CONFIG_VM_EVENT_COUNTERS=y
130CONFIG_PCI_QUIRKS=y
128CONFIG_SLUB_DEBUG=y 131CONFIG_SLUB_DEBUG=y
129# CONFIG_SLAB is not set 132# CONFIG_SLAB is not set
130CONFIG_SLUB=y 133CONFIG_SLUB=y
131# CONFIG_SLOB is not set 134# CONFIG_SLOB is not set
132CONFIG_PROFILING=y 135CONFIG_PROFILING=y
136CONFIG_TRACEPOINTS=y
133CONFIG_MARKERS=y 137CONFIG_MARKERS=y
134CONFIG_OPROFILE=y 138CONFIG_OPROFILE=y
135CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
@@ -141,8 +145,6 @@ CONFIG_HAVE_KRETPROBES=y
141CONFIG_HAVE_ARCH_TRACEHOOK=y 145CONFIG_HAVE_ARCH_TRACEHOOK=y
142CONFIG_HAVE_DMA_ATTRS=y 146CONFIG_HAVE_DMA_ATTRS=y
143CONFIG_USE_GENERIC_SMP_HELPERS=y 147CONFIG_USE_GENERIC_SMP_HELPERS=y
144# CONFIG_HAVE_CLK is not set
145CONFIG_PROC_PAGE_MONITOR=y
146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 148# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
147CONFIG_SLABINFO=y 149CONFIG_SLABINFO=y
148CONFIG_RT_MUTEXES=y 150CONFIG_RT_MUTEXES=y
@@ -175,6 +177,8 @@ CONFIG_DEFAULT_AS=y
175# CONFIG_DEFAULT_NOOP is not set 177# CONFIG_DEFAULT_NOOP is not set
176CONFIG_DEFAULT_IOSCHED="anticipatory" 178CONFIG_DEFAULT_IOSCHED="anticipatory"
177CONFIG_CLASSIC_RCU=y 179CONFIG_CLASSIC_RCU=y
180# CONFIG_FREEZER is not set
181CONFIG_PPC_MSI_BITMAP=y
178 182
179# 183#
180# Platform support 184# Platform support
@@ -294,6 +298,8 @@ CONFIG_PREEMPT_NONE=y
294# CONFIG_PREEMPT is not set 298# CONFIG_PREEMPT is not set
295CONFIG_BINFMT_ELF=y 299CONFIG_BINFMT_ELF=y
296CONFIG_COMPAT_BINFMT_ELF=y 300CONFIG_COMPAT_BINFMT_ELF=y
301# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
302# CONFIG_HAVE_AOUT is not set
297CONFIG_BINFMT_MISC=m 303CONFIG_BINFMT_MISC=m
298CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 304CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
299CONFIG_IOMMU_VMERGE=y 305CONFIG_IOMMU_VMERGE=y
@@ -303,7 +309,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
303CONFIG_ARCH_HAS_WALK_MEMORY=y 309CONFIG_ARCH_HAS_WALK_MEMORY=y
304CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 310CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
305CONFIG_KEXEC=y 311CONFIG_KEXEC=y
306# CONFIG_CRASH_DUMP is not set
307# CONFIG_PHYP_DUMP is not set 312# CONFIG_PHYP_DUMP is not set
308CONFIG_IRQ_ALL_CPUS=y 313CONFIG_IRQ_ALL_CPUS=y
309# CONFIG_NUMA is not set 314# CONFIG_NUMA is not set
@@ -318,7 +323,6 @@ CONFIG_SELECT_MEMORY_MODEL=y
318CONFIG_SPARSEMEM_MANUAL=y 323CONFIG_SPARSEMEM_MANUAL=y
319CONFIG_SPARSEMEM=y 324CONFIG_SPARSEMEM=y
320CONFIG_HAVE_MEMORY_PRESENT=y 325CONFIG_HAVE_MEMORY_PRESENT=y
321# CONFIG_SPARSEMEM_STATIC is not set
322CONFIG_SPARSEMEM_EXTREME=y 326CONFIG_SPARSEMEM_EXTREME=y
323CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 327CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
324CONFIG_SPARSEMEM_VMEMMAP=y 328CONFIG_SPARSEMEM_VMEMMAP=y
@@ -329,8 +333,10 @@ CONFIG_PAGEFLAGS_EXTENDED=y
329CONFIG_SPLIT_PTLOCK_CPUS=4 333CONFIG_SPLIT_PTLOCK_CPUS=4
330CONFIG_MIGRATION=y 334CONFIG_MIGRATION=y
331CONFIG_RESOURCES_64BIT=y 335CONFIG_RESOURCES_64BIT=y
336CONFIG_PHYS_ADDR_T_64BIT=y
332CONFIG_ZONE_DMA_FLAG=1 337CONFIG_ZONE_DMA_FLAG=1
333CONFIG_BOUNCE=y 338CONFIG_BOUNCE=y
339CONFIG_UNEVICTABLE_LRU=y
334CONFIG_ARCH_MEMORY_PROBE=y 340CONFIG_ARCH_MEMORY_PROBE=y
335CONFIG_PPC_HAS_HASH_64K=y 341CONFIG_PPC_HAS_HASH_64K=y
336# CONFIG_PPC_64K_PAGES is not set 342# CONFIG_PPC_64K_PAGES is not set
@@ -379,6 +385,7 @@ CONFIG_HOTPLUG_PCI=m
379CONFIG_HOTPLUG_PCI_RPA=m 385CONFIG_HOTPLUG_PCI_RPA=m
380CONFIG_HOTPLUG_PCI_RPA_DLPAR=m 386CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
381# CONFIG_HAS_RAPIDIO is not set 387# CONFIG_HAS_RAPIDIO is not set
388# CONFIG_RELOCATABLE is not set
382CONFIG_PAGE_OFFSET=0xc000000000000000 389CONFIG_PAGE_OFFSET=0xc000000000000000
383CONFIG_KERNEL_START=0xc000000000000000 390CONFIG_KERNEL_START=0xc000000000000000
384CONFIG_PHYSICAL_START=0x00000000 391CONFIG_PHYSICAL_START=0x00000000
@@ -426,7 +433,6 @@ CONFIG_INET_TCP_DIAG=y
426CONFIG_TCP_CONG_CUBIC=y 433CONFIG_TCP_CONG_CUBIC=y
427CONFIG_DEFAULT_TCP_CONG="cubic" 434CONFIG_DEFAULT_TCP_CONG="cubic"
428# CONFIG_TCP_MD5SIG is not set 435# CONFIG_TCP_MD5SIG is not set
429# CONFIG_IP_VS is not set
430# CONFIG_IPV6 is not set 436# CONFIG_IPV6 is not set
431# CONFIG_NETWORK_SECMARK is not set 437# CONFIG_NETWORK_SECMARK is not set
432CONFIG_NETFILTER=y 438CONFIG_NETFILTER=y
@@ -457,15 +463,17 @@ CONFIG_NF_CONNTRACK_PPTP=m
457CONFIG_NF_CONNTRACK_SIP=m 463CONFIG_NF_CONNTRACK_SIP=m
458CONFIG_NF_CONNTRACK_TFTP=m 464CONFIG_NF_CONNTRACK_TFTP=m
459CONFIG_NF_CT_NETLINK=m 465CONFIG_NF_CT_NETLINK=m
466CONFIG_NETFILTER_TPROXY=m
460CONFIG_NETFILTER_XTABLES=m 467CONFIG_NETFILTER_XTABLES=m
461CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 468CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
462CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 469CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
463CONFIG_NETFILTER_XT_TARGET_DSCP=m 470CONFIG_NETFILTER_XT_TARGET_DSCP=m
464CONFIG_NETFILTER_XT_TARGET_MARK=m 471CONFIG_NETFILTER_XT_TARGET_MARK=m
465CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
466CONFIG_NETFILTER_XT_TARGET_NFLOG=m 472CONFIG_NETFILTER_XT_TARGET_NFLOG=m
473CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
467CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 474CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
468CONFIG_NETFILTER_XT_TARGET_RATEEST=m 475CONFIG_NETFILTER_XT_TARGET_RATEEST=m
476CONFIG_NETFILTER_XT_TARGET_TPROXY=m
469CONFIG_NETFILTER_XT_TARGET_TRACE=m 477CONFIG_NETFILTER_XT_TARGET_TRACE=m
470CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 478CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
471CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 479CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@@ -477,40 +485,44 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
477CONFIG_NETFILTER_XT_MATCH_DCCP=m 485CONFIG_NETFILTER_XT_MATCH_DCCP=m
478CONFIG_NETFILTER_XT_MATCH_DSCP=m 486CONFIG_NETFILTER_XT_MATCH_DSCP=m
479CONFIG_NETFILTER_XT_MATCH_ESP=m 487CONFIG_NETFILTER_XT_MATCH_ESP=m
488CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
480CONFIG_NETFILTER_XT_MATCH_HELPER=m 489CONFIG_NETFILTER_XT_MATCH_HELPER=m
481CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 490CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
482CONFIG_NETFILTER_XT_MATCH_LENGTH=m 491CONFIG_NETFILTER_XT_MATCH_LENGTH=m
483CONFIG_NETFILTER_XT_MATCH_LIMIT=m 492CONFIG_NETFILTER_XT_MATCH_LIMIT=m
484CONFIG_NETFILTER_XT_MATCH_MAC=m 493CONFIG_NETFILTER_XT_MATCH_MAC=m
485CONFIG_NETFILTER_XT_MATCH_MARK=m 494CONFIG_NETFILTER_XT_MATCH_MARK=m
495CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
486CONFIG_NETFILTER_XT_MATCH_OWNER=m 496CONFIG_NETFILTER_XT_MATCH_OWNER=m
487CONFIG_NETFILTER_XT_MATCH_POLICY=m 497CONFIG_NETFILTER_XT_MATCH_POLICY=m
488CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
489CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 498CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
490CONFIG_NETFILTER_XT_MATCH_QUOTA=m 499CONFIG_NETFILTER_XT_MATCH_QUOTA=m
491CONFIG_NETFILTER_XT_MATCH_RATEEST=m 500CONFIG_NETFILTER_XT_MATCH_RATEEST=m
492CONFIG_NETFILTER_XT_MATCH_REALM=m 501CONFIG_NETFILTER_XT_MATCH_REALM=m
502CONFIG_NETFILTER_XT_MATCH_RECENT=m
503# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
493CONFIG_NETFILTER_XT_MATCH_SCTP=m 504CONFIG_NETFILTER_XT_MATCH_SCTP=m
505CONFIG_NETFILTER_XT_MATCH_SOCKET=m
494CONFIG_NETFILTER_XT_MATCH_STATE=m 506CONFIG_NETFILTER_XT_MATCH_STATE=m
495CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 507CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
496CONFIG_NETFILTER_XT_MATCH_STRING=m 508CONFIG_NETFILTER_XT_MATCH_STRING=m
497CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 509CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
498# CONFIG_NETFILTER_XT_MATCH_TIME is not set 510# CONFIG_NETFILTER_XT_MATCH_TIME is not set
499CONFIG_NETFILTER_XT_MATCH_U32=m 511CONFIG_NETFILTER_XT_MATCH_U32=m
500CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 512# CONFIG_IP_VS is not set
501 513
502# 514#
503# IP: Netfilter Configuration 515# IP: Netfilter Configuration
504# 516#
517CONFIG_NF_DEFRAG_IPV4=m
505CONFIG_NF_CONNTRACK_IPV4=m 518CONFIG_NF_CONNTRACK_IPV4=m
506CONFIG_NF_CONNTRACK_PROC_COMPAT=y 519CONFIG_NF_CONNTRACK_PROC_COMPAT=y
507CONFIG_IP_NF_QUEUE=m 520CONFIG_IP_NF_QUEUE=m
508CONFIG_IP_NF_IPTABLES=m 521CONFIG_IP_NF_IPTABLES=m
509CONFIG_IP_NF_MATCH_RECENT=m 522CONFIG_IP_NF_MATCH_ADDRTYPE=m
510CONFIG_IP_NF_MATCH_ECN=m
511CONFIG_IP_NF_MATCH_AH=m 523CONFIG_IP_NF_MATCH_AH=m
524CONFIG_IP_NF_MATCH_ECN=m
512CONFIG_IP_NF_MATCH_TTL=m 525CONFIG_IP_NF_MATCH_TTL=m
513CONFIG_IP_NF_MATCH_ADDRTYPE=m
514CONFIG_IP_NF_FILTER=m 526CONFIG_IP_NF_FILTER=m
515CONFIG_IP_NF_TARGET_REJECT=m 527CONFIG_IP_NF_TARGET_REJECT=m
516CONFIG_IP_NF_TARGET_LOG=m 528CONFIG_IP_NF_TARGET_LOG=m
@@ -518,8 +530,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
518CONFIG_NF_NAT=m 530CONFIG_NF_NAT=m
519CONFIG_NF_NAT_NEEDED=y 531CONFIG_NF_NAT_NEEDED=y
520CONFIG_IP_NF_TARGET_MASQUERADE=m 532CONFIG_IP_NF_TARGET_MASQUERADE=m
521CONFIG_IP_NF_TARGET_REDIRECT=m
522CONFIG_IP_NF_TARGET_NETMAP=m 533CONFIG_IP_NF_TARGET_NETMAP=m
534CONFIG_IP_NF_TARGET_REDIRECT=m
523CONFIG_NF_NAT_SNMP_BASIC=m 535CONFIG_NF_NAT_SNMP_BASIC=m
524CONFIG_NF_NAT_PROTO_GRE=m 536CONFIG_NF_NAT_PROTO_GRE=m
525CONFIG_NF_NAT_PROTO_SCTP=m 537CONFIG_NF_NAT_PROTO_SCTP=m
@@ -531,9 +543,9 @@ CONFIG_NF_NAT_PPTP=m
531CONFIG_NF_NAT_H323=m 543CONFIG_NF_NAT_H323=m
532CONFIG_NF_NAT_SIP=m 544CONFIG_NF_NAT_SIP=m
533CONFIG_IP_NF_MANGLE=m 545CONFIG_IP_NF_MANGLE=m
546CONFIG_IP_NF_TARGET_CLUSTERIP=m
534CONFIG_IP_NF_TARGET_ECN=m 547CONFIG_IP_NF_TARGET_ECN=m
535CONFIG_IP_NF_TARGET_TTL=m 548CONFIG_IP_NF_TARGET_TTL=m
536CONFIG_IP_NF_TARGET_CLUSTERIP=m
537CONFIG_IP_NF_RAW=m 549CONFIG_IP_NF_RAW=m
538CONFIG_IP_NF_ARPTABLES=m 550CONFIG_IP_NF_ARPTABLES=m
539CONFIG_IP_NF_ARPFILTER=m 551CONFIG_IP_NF_ARPFILTER=m
@@ -543,6 +555,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
543# CONFIG_TIPC is not set 555# CONFIG_TIPC is not set
544# CONFIG_ATM is not set 556# CONFIG_ATM is not set
545# CONFIG_BRIDGE is not set 557# CONFIG_BRIDGE is not set
558# CONFIG_NET_DSA is not set
546# CONFIG_VLAN_8021Q is not set 559# CONFIG_VLAN_8021Q is not set
547# CONFIG_DECNET is not set 560# CONFIG_DECNET is not set
548CONFIG_LLC=y 561CONFIG_LLC=y
@@ -565,11 +578,10 @@ CONFIG_NET_CLS_ROUTE=y
565# CONFIG_IRDA is not set 578# CONFIG_IRDA is not set
566# CONFIG_BT is not set 579# CONFIG_BT is not set
567# CONFIG_AF_RXRPC is not set 580# CONFIG_AF_RXRPC is not set
568 581# CONFIG_PHONET is not set
569# 582CONFIG_WIRELESS=y
570# Wireless
571#
572# CONFIG_CFG80211 is not set 583# CONFIG_CFG80211 is not set
584CONFIG_WIRELESS_OLD_REGULATORY=y
573# CONFIG_WIRELESS_EXT is not set 585# CONFIG_WIRELESS_EXT is not set
574# CONFIG_MAC80211 is not set 586# CONFIG_MAC80211 is not set
575# CONFIG_IEEE80211 is not set 587# CONFIG_IEEE80211 is not set
@@ -624,21 +636,20 @@ CONFIG_MISC_DEVICES=y
624# CONFIG_HP_ILO is not set 636# CONFIG_HP_ILO is not set
625CONFIG_HAVE_IDE=y 637CONFIG_HAVE_IDE=y
626CONFIG_IDE=y 638CONFIG_IDE=y
627CONFIG_BLK_DEV_IDE=y
628 639
629# 640#
630# Please see Documentation/ide/ide.txt for help/info on IDE drives 641# Please see Documentation/ide/ide.txt for help/info on IDE drives
631# 642#
632CONFIG_IDE_TIMINGS=y 643CONFIG_IDE_TIMINGS=y
633# CONFIG_BLK_DEV_IDE_SATA is not set 644# CONFIG_BLK_DEV_IDE_SATA is not set
634CONFIG_BLK_DEV_IDEDISK=y 645CONFIG_IDE_GD=y
635# CONFIG_IDEDISK_MULTI_MODE is not set 646CONFIG_IDE_GD_ATA=y
647# CONFIG_IDE_GD_ATAPI is not set
636# CONFIG_BLK_DEV_IDECS is not set 648# CONFIG_BLK_DEV_IDECS is not set
637# CONFIG_BLK_DEV_DELKIN is not set 649# CONFIG_BLK_DEV_DELKIN is not set
638CONFIG_BLK_DEV_IDECD=y 650CONFIG_BLK_DEV_IDECD=y
639CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 651CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
640# CONFIG_BLK_DEV_IDETAPE is not set 652# CONFIG_BLK_DEV_IDETAPE is not set
641# CONFIG_BLK_DEV_IDEFLOPPY is not set
642# CONFIG_BLK_DEV_IDESCSI is not set 653# CONFIG_BLK_DEV_IDESCSI is not set
643# CONFIG_IDE_TASK_IOCTL is not set 654# CONFIG_IDE_TASK_IOCTL is not set
644CONFIG_IDE_PROC_FS=y 655CONFIG_IDE_PROC_FS=y
@@ -835,6 +846,7 @@ CONFIG_SATA_SVW=y
835# CONFIG_PATA_SCH is not set 846# CONFIG_PATA_SCH is not set
836CONFIG_MD=y 847CONFIG_MD=y
837CONFIG_BLK_DEV_MD=y 848CONFIG_BLK_DEV_MD=y
849CONFIG_MD_AUTODETECT=y
838CONFIG_MD_LINEAR=y 850CONFIG_MD_LINEAR=y
839CONFIG_MD_RAID0=y 851CONFIG_MD_RAID0=y
840CONFIG_MD_RAID1=y 852CONFIG_MD_RAID1=y
@@ -926,6 +938,9 @@ CONFIG_IBM_NEW_EMAC_ZMII=y
926CONFIG_IBM_NEW_EMAC_RGMII=y 938CONFIG_IBM_NEW_EMAC_RGMII=y
927CONFIG_IBM_NEW_EMAC_TAH=y 939CONFIG_IBM_NEW_EMAC_TAH=y
928CONFIG_IBM_NEW_EMAC_EMAC4=y 940CONFIG_IBM_NEW_EMAC_EMAC4=y
941# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
942# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
943# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
929CONFIG_NET_PCI=y 944CONFIG_NET_PCI=y
930CONFIG_PCNET32=y 945CONFIG_PCNET32=y
931# CONFIG_AMD8111_ETH is not set 946# CONFIG_AMD8111_ETH is not set
@@ -946,12 +961,12 @@ CONFIG_E100=y
946# CONFIG_TLAN is not set 961# CONFIG_TLAN is not set
947# CONFIG_VIA_RHINE is not set 962# CONFIG_VIA_RHINE is not set
948# CONFIG_SC92031 is not set 963# CONFIG_SC92031 is not set
964# CONFIG_ATL2 is not set
949CONFIG_NETDEV_1000=y 965CONFIG_NETDEV_1000=y
950CONFIG_ACENIC=y 966CONFIG_ACENIC=y
951CONFIG_ACENIC_OMIT_TIGON_I=y 967CONFIG_ACENIC_OMIT_TIGON_I=y
952# CONFIG_DL2K is not set 968# CONFIG_DL2K is not set
953CONFIG_E1000=y 969CONFIG_E1000=y
954# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
955# CONFIG_E1000E is not set 970# CONFIG_E1000E is not set
956# CONFIG_IP1000 is not set 971# CONFIG_IP1000 is not set
957# CONFIG_IGB is not set 972# CONFIG_IGB is not set
@@ -969,10 +984,12 @@ CONFIG_SPIDER_NET=m
969# CONFIG_QLA3XXX is not set 984# CONFIG_QLA3XXX is not set
970# CONFIG_ATL1 is not set 985# CONFIG_ATL1 is not set
971# CONFIG_ATL1E is not set 986# CONFIG_ATL1E is not set
987# CONFIG_JME is not set
972CONFIG_NETDEV_10000=y 988CONFIG_NETDEV_10000=y
973# CONFIG_CHELSIO_T1 is not set 989# CONFIG_CHELSIO_T1 is not set
974# CONFIG_CHELSIO_T3 is not set 990# CONFIG_CHELSIO_T3 is not set
975CONFIG_EHEA=m 991CONFIG_EHEA=m
992# CONFIG_ENIC is not set
976# CONFIG_IXGBE is not set 993# CONFIG_IXGBE is not set
977CONFIG_IXGB=m 994CONFIG_IXGB=m
978# CONFIG_S2IO is not set 995# CONFIG_S2IO is not set
@@ -980,9 +997,11 @@ CONFIG_IXGB=m
980# CONFIG_NETXEN_NIC is not set 997# CONFIG_NETXEN_NIC is not set
981# CONFIG_NIU is not set 998# CONFIG_NIU is not set
982CONFIG_PASEMI_MAC=y 999CONFIG_PASEMI_MAC=y
1000# CONFIG_MLX4_EN is not set
983# CONFIG_MLX4_CORE is not set 1001# CONFIG_MLX4_CORE is not set
984# CONFIG_TEHUTI is not set 1002# CONFIG_TEHUTI is not set
985# CONFIG_BNX2X is not set 1003# CONFIG_BNX2X is not set
1004# CONFIG_QLGE is not set
986# CONFIG_SFC is not set 1005# CONFIG_SFC is not set
987CONFIG_TR=y 1006CONFIG_TR=y
988CONFIG_IBMOL=y 1007CONFIG_IBMOL=y
@@ -1065,6 +1084,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
1065CONFIG_MOUSE_PS2_SYNAPTICS=y 1084CONFIG_MOUSE_PS2_SYNAPTICS=y
1066CONFIG_MOUSE_PS2_LIFEBOOK=y 1085CONFIG_MOUSE_PS2_LIFEBOOK=y
1067CONFIG_MOUSE_PS2_TRACKPOINT=y 1086CONFIG_MOUSE_PS2_TRACKPOINT=y
1087# CONFIG_MOUSE_PS2_ELANTECH is not set
1068# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1088# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1069# CONFIG_MOUSE_SERIAL is not set 1089# CONFIG_MOUSE_SERIAL is not set
1070# CONFIG_MOUSE_APPLETOUCH is not set 1090# CONFIG_MOUSE_APPLETOUCH is not set
@@ -1080,6 +1100,7 @@ CONFIG_INPUT_PCSPKR=m
1080# CONFIG_INPUT_KEYSPAN_REMOTE is not set 1100# CONFIG_INPUT_KEYSPAN_REMOTE is not set
1081# CONFIG_INPUT_POWERMATE is not set 1101# CONFIG_INPUT_POWERMATE is not set
1082# CONFIG_INPUT_YEALINK is not set 1102# CONFIG_INPUT_YEALINK is not set
1103# CONFIG_INPUT_CM109 is not set
1083# CONFIG_INPUT_UINPUT is not set 1104# CONFIG_INPUT_UINPUT is not set
1084 1105
1085# 1106#
@@ -1255,6 +1276,17 @@ CONFIG_SSB_POSSIBLE=y
1255# CONFIG_MFD_SM501 is not set 1276# CONFIG_MFD_SM501 is not set
1256# CONFIG_HTC_PASIC3 is not set 1277# CONFIG_HTC_PASIC3 is not set
1257# CONFIG_MFD_TMIO is not set 1278# CONFIG_MFD_TMIO is not set
1279# CONFIG_PMIC_DA903X is not set
1280# CONFIG_MFD_WM8400 is not set
1281# CONFIG_MFD_WM8350_I2C is not set
1282
1283#
1284# Voltage and Current regulators
1285#
1286# CONFIG_REGULATOR is not set
1287# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1288# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1289# CONFIG_REGULATOR_BQ24022 is not set
1258 1290
1259# 1291#
1260# Multimedia devices 1292# Multimedia devices
@@ -1282,6 +1314,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1282CONFIG_FB=y 1314CONFIG_FB=y
1283CONFIG_FIRMWARE_EDID=y 1315CONFIG_FIRMWARE_EDID=y
1284CONFIG_FB_DDC=y 1316CONFIG_FB_DDC=y
1317# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1285CONFIG_FB_CFB_FILLRECT=y 1318CONFIG_FB_CFB_FILLRECT=y
1286CONFIG_FB_CFB_COPYAREA=y 1319CONFIG_FB_CFB_COPYAREA=y
1287CONFIG_FB_CFB_IMAGEBLIT=y 1320CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1326,6 +1359,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1326# CONFIG_FB_S3 is not set 1359# CONFIG_FB_S3 is not set
1327# CONFIG_FB_SAVAGE is not set 1360# CONFIG_FB_SAVAGE is not set
1328# CONFIG_FB_SIS is not set 1361# CONFIG_FB_SIS is not set
1362# CONFIG_FB_VIA is not set
1329# CONFIG_FB_NEOMAGIC is not set 1363# CONFIG_FB_NEOMAGIC is not set
1330# CONFIG_FB_KYRO is not set 1364# CONFIG_FB_KYRO is not set
1331# CONFIG_FB_3DFX is not set 1365# CONFIG_FB_3DFX is not set
@@ -1337,6 +1371,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1337# CONFIG_FB_CARMINE is not set 1371# CONFIG_FB_CARMINE is not set
1338CONFIG_FB_IBM_GXT4500=y 1372CONFIG_FB_IBM_GXT4500=y
1339# CONFIG_FB_VIRTUAL is not set 1373# CONFIG_FB_VIRTUAL is not set
1374# CONFIG_FB_METRONOME is not set
1340CONFIG_BACKLIGHT_LCD_SUPPORT=y 1375CONFIG_BACKLIGHT_LCD_SUPPORT=y
1341CONFIG_LCD_CLASS_DEVICE=y 1376CONFIG_LCD_CLASS_DEVICE=y
1342# CONFIG_LCD_ILI9320 is not set 1377# CONFIG_LCD_ILI9320 is not set
@@ -1370,6 +1405,7 @@ CONFIG_LOGO_LINUX_MONO=y
1370CONFIG_LOGO_LINUX_VGA16=y 1405CONFIG_LOGO_LINUX_VGA16=y
1371CONFIG_LOGO_LINUX_CLUT224=y 1406CONFIG_LOGO_LINUX_CLUT224=y
1372CONFIG_SOUND=m 1407CONFIG_SOUND=m
1408CONFIG_SOUND_OSS_CORE=y
1373CONFIG_SND=m 1409CONFIG_SND=m
1374CONFIG_SND_TIMER=m 1410CONFIG_SND_TIMER=m
1375CONFIG_SND_PCM=m 1411CONFIG_SND_PCM=m
@@ -1481,9 +1517,36 @@ CONFIG_HID=y
1481# USB Input Devices 1517# USB Input Devices
1482# 1518#
1483CONFIG_USB_HID=y 1519CONFIG_USB_HID=y
1484# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1520# CONFIG_HID_PID is not set
1485# CONFIG_HID_FF is not set
1486CONFIG_USB_HIDDEV=y 1521CONFIG_USB_HIDDEV=y
1522
1523#
1524# Special HID drivers
1525#
1526CONFIG_HID_COMPAT=y
1527CONFIG_HID_A4TECH=y
1528CONFIG_HID_APPLE=y
1529CONFIG_HID_BELKIN=y
1530CONFIG_HID_BRIGHT=y
1531CONFIG_HID_CHERRY=y
1532CONFIG_HID_CHICONY=y
1533CONFIG_HID_CYPRESS=y
1534CONFIG_HID_DELL=y
1535CONFIG_HID_EZKEY=y
1536CONFIG_HID_GYRATION=y
1537CONFIG_HID_LOGITECH=y
1538# CONFIG_LOGITECH_FF is not set
1539# CONFIG_LOGIRUMBLEPAD2_FF is not set
1540CONFIG_HID_MICROSOFT=y
1541CONFIG_HID_MONTEREY=y
1542CONFIG_HID_PANTHERLORD=y
1543# CONFIG_PANTHERLORD_FF is not set
1544CONFIG_HID_PETALYNX=y
1545CONFIG_HID_SAMSUNG=y
1546CONFIG_HID_SONY=y
1547CONFIG_HID_SUNPLUS=y
1548# CONFIG_THRUSTMASTER_FF is not set
1549# CONFIG_ZEROPLUS_FF is not set
1487CONFIG_USB_SUPPORT=y 1550CONFIG_USB_SUPPORT=y
1488CONFIG_USB_ARCH_HAS_HCD=y 1551CONFIG_USB_ARCH_HAS_HCD=y
1489CONFIG_USB_ARCH_HAS_OHCI=y 1552CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1500,6 +1563,8 @@ CONFIG_USB_DEVICE_CLASS=y
1500# CONFIG_USB_DYNAMIC_MINORS is not set 1563# CONFIG_USB_DYNAMIC_MINORS is not set
1501# CONFIG_USB_OTG is not set 1564# CONFIG_USB_OTG is not set
1502# CONFIG_USB_MON is not set 1565# CONFIG_USB_MON is not set
1566# CONFIG_USB_WUSB is not set
1567# CONFIG_USB_WUSB_CBAF is not set
1503 1568
1504# 1569#
1505# USB Host Controller Drivers 1570# USB Host Controller Drivers
@@ -1520,6 +1585,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1520# CONFIG_USB_UHCI_HCD is not set 1585# CONFIG_USB_UHCI_HCD is not set
1521# CONFIG_USB_SL811_HCD is not set 1586# CONFIG_USB_SL811_HCD is not set
1522# CONFIG_USB_R8A66597_HCD is not set 1587# CONFIG_USB_R8A66597_HCD is not set
1588# CONFIG_USB_WHCI_HCD is not set
1589# CONFIG_USB_HWA_HCD is not set
1523 1590
1524# 1591#
1525# USB Device Class drivers 1592# USB Device Class drivers
@@ -1527,6 +1594,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1527# CONFIG_USB_ACM is not set 1594# CONFIG_USB_ACM is not set
1528# CONFIG_USB_PRINTER is not set 1595# CONFIG_USB_PRINTER is not set
1529# CONFIG_USB_WDM is not set 1596# CONFIG_USB_WDM is not set
1597# CONFIG_USB_TMC is not set
1530 1598
1531# 1599#
1532# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1600# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1548,7 +1616,6 @@ CONFIG_USB_STORAGE=m
1548# CONFIG_USB_STORAGE_ALAUDA is not set 1616# CONFIG_USB_STORAGE_ALAUDA is not set
1549# CONFIG_USB_STORAGE_ONETOUCH is not set 1617# CONFIG_USB_STORAGE_ONETOUCH is not set
1550# CONFIG_USB_STORAGE_KARMA is not set 1618# CONFIG_USB_STORAGE_KARMA is not set
1551# CONFIG_USB_STORAGE_SIERRA is not set
1552# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1619# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1553# CONFIG_USB_LIBUSUAL is not set 1620# CONFIG_USB_LIBUSUAL is not set
1554 1621
@@ -1569,6 +1636,7 @@ CONFIG_USB_STORAGE=m
1569# CONFIG_USB_EMI62 is not set 1636# CONFIG_USB_EMI62 is not set
1570# CONFIG_USB_EMI26 is not set 1637# CONFIG_USB_EMI26 is not set
1571# CONFIG_USB_ADUTUX is not set 1638# CONFIG_USB_ADUTUX is not set
1639# CONFIG_USB_SEVSEG is not set
1572# CONFIG_USB_RIO500 is not set 1640# CONFIG_USB_RIO500 is not set
1573# CONFIG_USB_LEGOTOWER is not set 1641# CONFIG_USB_LEGOTOWER is not set
1574# CONFIG_USB_LCD is not set 1642# CONFIG_USB_LCD is not set
@@ -1586,7 +1654,9 @@ CONFIG_USB_APPLEDISPLAY=m
1586# CONFIG_USB_IOWARRIOR is not set 1654# CONFIG_USB_IOWARRIOR is not set
1587# CONFIG_USB_TEST is not set 1655# CONFIG_USB_TEST is not set
1588# CONFIG_USB_ISIGHTFW is not set 1656# CONFIG_USB_ISIGHTFW is not set
1657# CONFIG_USB_VST is not set
1589# CONFIG_USB_GADGET is not set 1658# CONFIG_USB_GADGET is not set
1659# CONFIG_UWB is not set
1590# CONFIG_MMC is not set 1660# CONFIG_MMC is not set
1591# CONFIG_MEMSTICK is not set 1661# CONFIG_MEMSTICK is not set
1592# CONFIG_NEW_LEDS is not set 1662# CONFIG_NEW_LEDS is not set
@@ -1656,12 +1726,15 @@ CONFIG_RTC_DRV_DS1307=y
1656# Platform RTC drivers 1726# Platform RTC drivers
1657# 1727#
1658# CONFIG_RTC_DRV_CMOS is not set 1728# CONFIG_RTC_DRV_CMOS is not set
1729# CONFIG_RTC_DRV_DS1286 is not set
1659# CONFIG_RTC_DRV_DS1511 is not set 1730# CONFIG_RTC_DRV_DS1511 is not set
1660# CONFIG_RTC_DRV_DS1553 is not set 1731# CONFIG_RTC_DRV_DS1553 is not set
1661# CONFIG_RTC_DRV_DS1742 is not set 1732# CONFIG_RTC_DRV_DS1742 is not set
1662# CONFIG_RTC_DRV_STK17TA8 is not set 1733# CONFIG_RTC_DRV_STK17TA8 is not set
1663# CONFIG_RTC_DRV_M48T86 is not set 1734# CONFIG_RTC_DRV_M48T86 is not set
1735# CONFIG_RTC_DRV_M48T35 is not set
1664# CONFIG_RTC_DRV_M48T59 is not set 1736# CONFIG_RTC_DRV_M48T59 is not set
1737# CONFIG_RTC_DRV_BQ4802 is not set
1665# CONFIG_RTC_DRV_V3020 is not set 1738# CONFIG_RTC_DRV_V3020 is not set
1666 1739
1667# 1740#
@@ -1670,6 +1743,7 @@ CONFIG_RTC_DRV_DS1307=y
1670CONFIG_RTC_DRV_PPC=y 1743CONFIG_RTC_DRV_PPC=y
1671# CONFIG_DMADEVICES is not set 1744# CONFIG_DMADEVICES is not set
1672# CONFIG_UIO is not set 1745# CONFIG_UIO is not set
1746# CONFIG_STAGING is not set
1673 1747
1674# 1748#
1675# File systems 1749# File systems
@@ -1679,14 +1753,20 @@ CONFIG_EXT2_FS_XATTR=y
1679CONFIG_EXT2_FS_POSIX_ACL=y 1753CONFIG_EXT2_FS_POSIX_ACL=y
1680CONFIG_EXT2_FS_SECURITY=y 1754CONFIG_EXT2_FS_SECURITY=y
1681CONFIG_EXT2_FS_XIP=y 1755CONFIG_EXT2_FS_XIP=y
1682CONFIG_FS_XIP=y
1683CONFIG_EXT3_FS=y 1756CONFIG_EXT3_FS=y
1684CONFIG_EXT3_FS_XATTR=y 1757CONFIG_EXT3_FS_XATTR=y
1685CONFIG_EXT3_FS_POSIX_ACL=y 1758CONFIG_EXT3_FS_POSIX_ACL=y
1686CONFIG_EXT3_FS_SECURITY=y 1759CONFIG_EXT3_FS_SECURITY=y
1687# CONFIG_EXT4DEV_FS is not set 1760CONFIG_EXT4_FS=y
1761# CONFIG_EXT4DEV_COMPAT is not set
1762CONFIG_EXT4_FS_XATTR=y
1763CONFIG_EXT4_FS_POSIX_ACL=y
1764CONFIG_EXT4_FS_SECURITY=y
1765CONFIG_FS_XIP=y
1688CONFIG_JBD=y 1766CONFIG_JBD=y
1689# CONFIG_JBD_DEBUG is not set 1767# CONFIG_JBD_DEBUG is not set
1768CONFIG_JBD2=y
1769# CONFIG_JBD2_DEBUG is not set
1690CONFIG_FS_MBCACHE=y 1770CONFIG_FS_MBCACHE=y
1691CONFIG_REISERFS_FS=y 1771CONFIG_REISERFS_FS=y
1692# CONFIG_REISERFS_CHECK is not set 1772# CONFIG_REISERFS_CHECK is not set
@@ -1700,6 +1780,7 @@ CONFIG_JFS_SECURITY=y
1700# CONFIG_JFS_DEBUG is not set 1780# CONFIG_JFS_DEBUG is not set
1701# CONFIG_JFS_STATISTICS is not set 1781# CONFIG_JFS_STATISTICS is not set
1702CONFIG_FS_POSIX_ACL=y 1782CONFIG_FS_POSIX_ACL=y
1783CONFIG_FILE_LOCKING=y
1703CONFIG_XFS_FS=m 1784CONFIG_XFS_FS=m
1704# CONFIG_XFS_QUOTA is not set 1785# CONFIG_XFS_QUOTA is not set
1705CONFIG_XFS_POSIX_ACL=y 1786CONFIG_XFS_POSIX_ACL=y
@@ -1740,6 +1821,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1740CONFIG_PROC_FS=y 1821CONFIG_PROC_FS=y
1741CONFIG_PROC_KCORE=y 1822CONFIG_PROC_KCORE=y
1742CONFIG_PROC_SYSCTL=y 1823CONFIG_PROC_SYSCTL=y
1824CONFIG_PROC_PAGE_MONITOR=y
1743CONFIG_SYSFS=y 1825CONFIG_SYSFS=y
1744CONFIG_TMPFS=y 1826CONFIG_TMPFS=y
1745# CONFIG_TMPFS_POSIX_ACL is not set 1827# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1785,6 +1867,7 @@ CONFIG_NFS_COMMON=y
1785CONFIG_SUNRPC=y 1867CONFIG_SUNRPC=y
1786CONFIG_SUNRPC_GSS=y 1868CONFIG_SUNRPC_GSS=y
1787CONFIG_SUNRPC_XPRT_RDMA=m 1869CONFIG_SUNRPC_XPRT_RDMA=m
1870# CONFIG_SUNRPC_REGISTER_V4 is not set
1788CONFIG_RPCSEC_GSS_KRB5=y 1871CONFIG_RPCSEC_GSS_KRB5=y
1789CONFIG_RPCSEC_GSS_SPKM3=m 1872CONFIG_RPCSEC_GSS_SPKM3=m
1790# CONFIG_SMB_FS is not set 1873# CONFIG_SMB_FS is not set
@@ -1866,9 +1949,8 @@ CONFIG_NLS_UTF8=m
1866# Library routines 1949# Library routines
1867# 1950#
1868CONFIG_BITREVERSE=y 1951CONFIG_BITREVERSE=y
1869# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1870CONFIG_CRC_CCITT=m 1952CONFIG_CRC_CCITT=m
1871# CONFIG_CRC16 is not set 1953CONFIG_CRC16=y
1872CONFIG_CRC_T10DIF=y 1954CONFIG_CRC_T10DIF=y
1873CONFIG_CRC_ITU_T=m 1955CONFIG_CRC_ITU_T=m
1874CONFIG_CRC32=y 1956CONFIG_CRC32=y
@@ -1929,22 +2011,31 @@ CONFIG_DEBUG_BUGVERBOSE=y
1929CONFIG_DEBUG_MEMORY_INIT=y 2011CONFIG_DEBUG_MEMORY_INIT=y
1930# CONFIG_DEBUG_LIST is not set 2012# CONFIG_DEBUG_LIST is not set
1931# CONFIG_DEBUG_SG is not set 2013# CONFIG_DEBUG_SG is not set
1932CONFIG_FRAME_POINTER=y
1933# CONFIG_BOOT_PRINTK_DELAY is not set 2014# CONFIG_BOOT_PRINTK_DELAY is not set
1934# CONFIG_RCU_TORTURE_TEST is not set 2015# CONFIG_RCU_TORTURE_TEST is not set
2016# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1935# CONFIG_BACKTRACE_SELF_TEST is not set 2017# CONFIG_BACKTRACE_SELF_TEST is not set
2018# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1936# CONFIG_FAULT_INJECTION is not set 2019# CONFIG_FAULT_INJECTION is not set
1937CONFIG_LATENCYTOP=y 2020CONFIG_LATENCYTOP=y
1938CONFIG_SYSCTL_SYSCALL_CHECK=y 2021CONFIG_SYSCTL_SYSCALL_CHECK=y
1939CONFIG_HAVE_FTRACE=y 2022CONFIG_NOP_TRACER=y
1940CONFIG_HAVE_DYNAMIC_FTRACE=y 2023CONFIG_HAVE_FUNCTION_TRACER=y
1941CONFIG_TRACER_MAX_TRACE=y 2024CONFIG_TRACER_MAX_TRACE=y
2025CONFIG_RING_BUFFER=y
1942CONFIG_TRACING=y 2026CONFIG_TRACING=y
1943# CONFIG_FTRACE is not set 2027
2028#
2029# Tracers
2030#
2031# CONFIG_FUNCTION_TRACER is not set
1944CONFIG_IRQSOFF_TRACER=y 2032CONFIG_IRQSOFF_TRACER=y
1945CONFIG_SCHED_TRACER=y 2033CONFIG_SCHED_TRACER=y
1946CONFIG_CONTEXT_SWITCH_TRACER=y 2034CONFIG_CONTEXT_SWITCH_TRACER=y
2035# CONFIG_BOOT_TRACER is not set
2036# CONFIG_STACK_TRACER is not set
1947# CONFIG_FTRACE_STARTUP_TEST is not set 2037# CONFIG_FTRACE_STARTUP_TEST is not set
2038CONFIG_DYNAMIC_PRINTK_DEBUG=y
1948# CONFIG_SAMPLES is not set 2039# CONFIG_SAMPLES is not set
1949CONFIG_HAVE_ARCH_KGDB=y 2040CONFIG_HAVE_ARCH_KGDB=y
1950# CONFIG_KGDB is not set 2041# CONFIG_KGDB is not set
@@ -1954,6 +2045,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1954# CONFIG_HCALL_STATS is not set 2045# CONFIG_HCALL_STATS is not set
1955# CONFIG_CODE_PATCHING_SELFTEST is not set 2046# CONFIG_CODE_PATCHING_SELFTEST is not set
1956# CONFIG_FTR_FIXUP_SELFTEST is not set 2047# CONFIG_FTR_FIXUP_SELFTEST is not set
2048# CONFIG_MSI_BITMAP_SELFTEST is not set
1957CONFIG_XMON=y 2049CONFIG_XMON=y
1958# CONFIG_XMON_DEFAULT is not set 2050# CONFIG_XMON_DEFAULT is not set
1959CONFIG_XMON_DISASSEMBLY=y 2051CONFIG_XMON_DISASSEMBLY=y
@@ -1968,6 +2060,7 @@ CONFIG_BOOTX_TEXT=y
1968# 2060#
1969# CONFIG_KEYS is not set 2061# CONFIG_KEYS is not set
1970# CONFIG_SECURITY is not set 2062# CONFIG_SECURITY is not set
2063# CONFIG_SECURITYFS is not set
1971# CONFIG_SECURITY_FILE_CAPABILITIES is not set 2064# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1972CONFIG_XOR_BLOCKS=y 2065CONFIG_XOR_BLOCKS=y
1973CONFIG_ASYNC_CORE=y 2066CONFIG_ASYNC_CORE=y
@@ -1978,10 +2071,12 @@ CONFIG_CRYPTO=y
1978# 2071#
1979# Crypto core or helper 2072# Crypto core or helper
1980# 2073#
2074# CONFIG_CRYPTO_FIPS is not set
1981CONFIG_CRYPTO_ALGAPI=y 2075CONFIG_CRYPTO_ALGAPI=y
1982CONFIG_CRYPTO_AEAD=m 2076CONFIG_CRYPTO_AEAD=y
1983CONFIG_CRYPTO_BLKCIPHER=y 2077CONFIG_CRYPTO_BLKCIPHER=y
1984CONFIG_CRYPTO_HASH=y 2078CONFIG_CRYPTO_HASH=y
2079CONFIG_CRYPTO_RNG=y
1985CONFIG_CRYPTO_MANAGER=y 2080CONFIG_CRYPTO_MANAGER=y
1986CONFIG_CRYPTO_GF128MUL=m 2081CONFIG_CRYPTO_GF128MUL=m
1987CONFIG_CRYPTO_NULL=m 2082CONFIG_CRYPTO_NULL=m
@@ -2055,6 +2150,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
2055# 2150#
2056CONFIG_CRYPTO_DEFLATE=m 2151CONFIG_CRYPTO_DEFLATE=m
2057CONFIG_CRYPTO_LZO=m 2152CONFIG_CRYPTO_LZO=m
2153
2154#
2155# Random Number Generation
2156#
2157# CONFIG_CRYPTO_ANSI_CPRNG is not set
2058# CONFIG_CRYPTO_HW is not set 2158# CONFIG_CRYPTO_HW is not set
2059# CONFIG_PPC_CLOCK is not set 2159# CONFIG_PPC_CLOCK is not set
2060# CONFIG_VIRTUALIZATION is not set 2160# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 3c6dbdef56eb..01f05ec5abf3 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1,7 +1,7 @@
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-rc3
4# Tue Aug 26 13:29:50 2008 4# Tue Nov 11 19:37:01 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -23,7 +23,7 @@ CONFIG_PPC_STD_MMU_32=y
23# CONFIG_SMP is not set 23# CONFIG_SMP is not set
24CONFIG_PPC32=y 24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 26# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -89,6 +89,7 @@ CONFIG_LOG_BUF_SHIFT=17
89CONFIG_CGROUPS=y 89CONFIG_CGROUPS=y
90# CONFIG_CGROUP_DEBUG is not set 90# CONFIG_CGROUP_DEBUG is not set
91CONFIG_CGROUP_NS=y 91CONFIG_CGROUP_NS=y
92# CONFIG_CGROUP_FREEZER is not set
92CONFIG_CGROUP_DEVICE=y 93CONFIG_CGROUP_DEVICE=y
93CONFIG_GROUP_SCHED=y 94CONFIG_GROUP_SCHED=y
94CONFIG_FAIR_GROUP_SCHED=y 95CONFIG_FAIR_GROUP_SCHED=y
@@ -128,12 +129,15 @@ CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 129CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 130CONFIG_EVENTFD=y
130CONFIG_SHMEM=y 131CONFIG_SHMEM=y
132CONFIG_AIO=y
131CONFIG_VM_EVENT_COUNTERS=y 133CONFIG_VM_EVENT_COUNTERS=y
134CONFIG_PCI_QUIRKS=y
132CONFIG_SLUB_DEBUG=y 135CONFIG_SLUB_DEBUG=y
133# CONFIG_SLAB is not set 136# CONFIG_SLAB is not set
134CONFIG_SLUB=y 137CONFIG_SLUB=y
135# CONFIG_SLOB is not set 138# CONFIG_SLOB is not set
136CONFIG_PROFILING=y 139CONFIG_PROFILING=y
140CONFIG_TRACEPOINTS=y
137CONFIG_MARKERS=y 141CONFIG_MARKERS=y
138CONFIG_OPROFILE=m 142CONFIG_OPROFILE=m
139CONFIG_HAVE_OPROFILE=y 143CONFIG_HAVE_OPROFILE=y
@@ -144,10 +148,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
144CONFIG_HAVE_KPROBES=y 148CONFIG_HAVE_KPROBES=y
145CONFIG_HAVE_KRETPROBES=y 149CONFIG_HAVE_KRETPROBES=y
146CONFIG_HAVE_ARCH_TRACEHOOK=y 150CONFIG_HAVE_ARCH_TRACEHOOK=y
147# CONFIG_HAVE_DMA_ATTRS is not set
148# CONFIG_USE_GENERIC_SMP_HELPERS is not set
149CONFIG_HAVE_CLK=y 151CONFIG_HAVE_CLK=y
150CONFIG_PROC_PAGE_MONITOR=y
151# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 152# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
152CONFIG_SLABINFO=y 153CONFIG_SLABINFO=y
153CONFIG_RT_MUTEXES=y 154CONFIG_RT_MUTEXES=y
@@ -180,6 +181,8 @@ CONFIG_DEFAULT_CFQ=y
180# CONFIG_DEFAULT_NOOP is not set 181# CONFIG_DEFAULT_NOOP is not set
181CONFIG_DEFAULT_IOSCHED="cfq" 182CONFIG_DEFAULT_IOSCHED="cfq"
182CONFIG_CLASSIC_RCU=y 183CONFIG_CLASSIC_RCU=y
184CONFIG_FREEZER=y
185CONFIG_PPC_MSI_BITMAP=y
183 186
184# 187#
185# Platform support 188# Platform support
@@ -202,6 +205,7 @@ CONFIG_PPC_82xx=y
202CONFIG_MPC8272_ADS=y 205CONFIG_MPC8272_ADS=y
203CONFIG_PQ2FADS=y 206CONFIG_PQ2FADS=y
204CONFIG_EP8248E=y 207CONFIG_EP8248E=y
208CONFIG_MGCOGE=y
205CONFIG_PQ2ADS=y 209CONFIG_PQ2ADS=y
206CONFIG_8260=y 210CONFIG_8260=y
207CONFIG_8272=y 211CONFIG_8272=y
@@ -226,6 +230,7 @@ CONFIG_PPC_86xx=y
226CONFIG_MPC8641_HPCN=y 230CONFIG_MPC8641_HPCN=y
227CONFIG_SBC8641D=y 231CONFIG_SBC8641D=y
228CONFIG_MPC8610_HPCD=y 232CONFIG_MPC8610_HPCD=y
233CONFIG_GEF_SBC610=y
229CONFIG_MPC8641=y 234CONFIG_MPC8641=y
230CONFIG_MPC8610=y 235CONFIG_MPC8610=y
231# CONFIG_EMBEDDED6xx is not set 236# CONFIG_EMBEDDED6xx is not set
@@ -268,6 +273,7 @@ CONFIG_TAU=y
268# CONFIG_TAU_INT is not set 273# CONFIG_TAU_INT is not set
269CONFIG_TAU_AVERAGE=y 274CONFIG_TAU_AVERAGE=y
270CONFIG_QUICC_ENGINE=y 275CONFIG_QUICC_ENGINE=y
276CONFIG_QE_GPIO=y
271CONFIG_CPM2=y 277CONFIG_CPM2=y
272CONFIG_FSL_ULI1575=y 278CONFIG_FSL_ULI1575=y
273CONFIG_CPM=y 279CONFIG_CPM=y
@@ -275,6 +281,7 @@ CONFIG_PPC_BESTCOMM=y
275CONFIG_PPC_BESTCOMM_ATA=m 281CONFIG_PPC_BESTCOMM_ATA=m
276CONFIG_PPC_BESTCOMM_FEC=m 282CONFIG_PPC_BESTCOMM_FEC=m
277CONFIG_PPC_BESTCOMM_GEN_BD=m 283CONFIG_PPC_BESTCOMM_GEN_BD=m
284CONFIG_MPC8xxx_GPIO=y
278 285
279# 286#
280# Kernel options 287# Kernel options
@@ -294,6 +301,8 @@ CONFIG_SCHED_HRTICK=y
294CONFIG_PREEMPT_VOLUNTARY=y 301CONFIG_PREEMPT_VOLUNTARY=y
295# CONFIG_PREEMPT is not set 302# CONFIG_PREEMPT is not set
296CONFIG_BINFMT_ELF=y 303CONFIG_BINFMT_ELF=y
304# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
305# CONFIG_HAVE_AOUT is not set
297CONFIG_BINFMT_MISC=y 306CONFIG_BINFMT_MISC=y
298# CONFIG_MATH_EMULATION is not set 307# CONFIG_MATH_EMULATION is not set
299# CONFIG_IOMMU_HELPER is not set 308# CONFIG_IOMMU_HELPER is not set
@@ -309,15 +318,15 @@ CONFIG_FLATMEM_MANUAL=y
309# CONFIG_SPARSEMEM_MANUAL is not set 318# CONFIG_SPARSEMEM_MANUAL is not set
310CONFIG_FLATMEM=y 319CONFIG_FLATMEM=y
311CONFIG_FLAT_NODE_MEM_MAP=y 320CONFIG_FLAT_NODE_MEM_MAP=y
312# CONFIG_SPARSEMEM_STATIC is not set
313# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
314CONFIG_PAGEFLAGS_EXTENDED=y 321CONFIG_PAGEFLAGS_EXTENDED=y
315CONFIG_SPLIT_PTLOCK_CPUS=4 322CONFIG_SPLIT_PTLOCK_CPUS=4
316# CONFIG_MIGRATION is not set 323# CONFIG_MIGRATION is not set
317CONFIG_RESOURCES_64BIT=y 324CONFIG_RESOURCES_64BIT=y
325# CONFIG_PHYS_ADDR_T_64BIT is not set
318CONFIG_ZONE_DMA_FLAG=1 326CONFIG_ZONE_DMA_FLAG=1
319CONFIG_BOUNCE=y 327CONFIG_BOUNCE=y
320CONFIG_VIRT_TO_BUS=y 328CONFIG_VIRT_TO_BUS=y
329CONFIG_UNEVICTABLE_LRU=y
321CONFIG_FORCE_MAX_ZONEORDER=11 330CONFIG_FORCE_MAX_ZONEORDER=11
322CONFIG_PROC_DEVICETREE=y 331CONFIG_PROC_DEVICETREE=y
323# CONFIG_CMDLINE_BOOL is not set 332# CONFIG_CMDLINE_BOOL is not set
@@ -359,7 +368,7 @@ CONFIG_PCIEASPM=y
359# CONFIG_PCIEASPM_DEBUG is not set 368# CONFIG_PCIEASPM_DEBUG is not set
360CONFIG_ARCH_SUPPORTS_MSI=y 369CONFIG_ARCH_SUPPORTS_MSI=y
361CONFIG_PCI_MSI=y 370CONFIG_PCI_MSI=y
362CONFIG_PCI_LEGACY=y 371# CONFIG_PCI_LEGACY is not set
363# CONFIG_PCI_DEBUG is not set 372# CONFIG_PCI_DEBUG is not set
364CONFIG_PCCARD=y 373CONFIG_PCCARD=y
365# CONFIG_PCMCIA_DEBUG is not set 374# CONFIG_PCMCIA_DEBUG is not set
@@ -466,7 +475,6 @@ CONFIG_DEFAULT_CUBIC=y
466# CONFIG_DEFAULT_RENO is not set 475# CONFIG_DEFAULT_RENO is not set
467CONFIG_DEFAULT_TCP_CONG="cubic" 476CONFIG_DEFAULT_TCP_CONG="cubic"
468CONFIG_TCP_MD5SIG=y 477CONFIG_TCP_MD5SIG=y
469# CONFIG_IP_VS is not set
470CONFIG_IPV6=m 478CONFIG_IPV6=m
471CONFIG_IPV6_PRIVACY=y 479CONFIG_IPV6_PRIVACY=y
472CONFIG_IPV6_ROUTER_PREF=y 480CONFIG_IPV6_ROUTER_PREF=y
@@ -521,18 +529,20 @@ CONFIG_NF_CONNTRACK_SANE=m
521CONFIG_NF_CONNTRACK_SIP=m 529CONFIG_NF_CONNTRACK_SIP=m
522CONFIG_NF_CONNTRACK_TFTP=m 530CONFIG_NF_CONNTRACK_TFTP=m
523CONFIG_NF_CT_NETLINK=m 531CONFIG_NF_CT_NETLINK=m
532CONFIG_NETFILTER_TPROXY=m
524CONFIG_NETFILTER_XTABLES=m 533CONFIG_NETFILTER_XTABLES=m
525CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 534CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
526CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 535CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
536CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
527CONFIG_NETFILTER_XT_TARGET_DSCP=m 537CONFIG_NETFILTER_XT_TARGET_DSCP=m
528CONFIG_NETFILTER_XT_TARGET_MARK=m 538CONFIG_NETFILTER_XT_TARGET_MARK=m
529CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
530CONFIG_NETFILTER_XT_TARGET_NFLOG=m 539CONFIG_NETFILTER_XT_TARGET_NFLOG=m
540CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
531CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 541CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
532CONFIG_NETFILTER_XT_TARGET_RATEEST=m 542CONFIG_NETFILTER_XT_TARGET_RATEEST=m
543CONFIG_NETFILTER_XT_TARGET_TPROXY=m
533CONFIG_NETFILTER_XT_TARGET_TRACE=m 544CONFIG_NETFILTER_XT_TARGET_TRACE=m
534CONFIG_NETFILTER_XT_TARGET_SECMARK=m 545CONFIG_NETFILTER_XT_TARGET_SECMARK=m
535CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
536CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 546CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
537CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 547CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
538CONFIG_NETFILTER_XT_MATCH_COMMENT=m 548CONFIG_NETFILTER_XT_MATCH_COMMENT=m
@@ -543,41 +553,45 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
543CONFIG_NETFILTER_XT_MATCH_DCCP=m 553CONFIG_NETFILTER_XT_MATCH_DCCP=m
544CONFIG_NETFILTER_XT_MATCH_DSCP=m 554CONFIG_NETFILTER_XT_MATCH_DSCP=m
545CONFIG_NETFILTER_XT_MATCH_ESP=m 555CONFIG_NETFILTER_XT_MATCH_ESP=m
556CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
546CONFIG_NETFILTER_XT_MATCH_HELPER=m 557CONFIG_NETFILTER_XT_MATCH_HELPER=m
547CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 558CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
548CONFIG_NETFILTER_XT_MATCH_LENGTH=m 559CONFIG_NETFILTER_XT_MATCH_LENGTH=m
549CONFIG_NETFILTER_XT_MATCH_LIMIT=m 560CONFIG_NETFILTER_XT_MATCH_LIMIT=m
550CONFIG_NETFILTER_XT_MATCH_MAC=m 561CONFIG_NETFILTER_XT_MATCH_MAC=m
551CONFIG_NETFILTER_XT_MATCH_MARK=m 562CONFIG_NETFILTER_XT_MATCH_MARK=m
563CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
552CONFIG_NETFILTER_XT_MATCH_OWNER=m 564CONFIG_NETFILTER_XT_MATCH_OWNER=m
553CONFIG_NETFILTER_XT_MATCH_POLICY=m 565CONFIG_NETFILTER_XT_MATCH_POLICY=m
554CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
555CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m 566CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
556CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 567CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
557CONFIG_NETFILTER_XT_MATCH_QUOTA=m 568CONFIG_NETFILTER_XT_MATCH_QUOTA=m
558CONFIG_NETFILTER_XT_MATCH_RATEEST=m 569CONFIG_NETFILTER_XT_MATCH_RATEEST=m
559CONFIG_NETFILTER_XT_MATCH_REALM=m 570CONFIG_NETFILTER_XT_MATCH_REALM=m
571CONFIG_NETFILTER_XT_MATCH_RECENT=m
572# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
560CONFIG_NETFILTER_XT_MATCH_SCTP=m 573CONFIG_NETFILTER_XT_MATCH_SCTP=m
574CONFIG_NETFILTER_XT_MATCH_SOCKET=m
561CONFIG_NETFILTER_XT_MATCH_STATE=m 575CONFIG_NETFILTER_XT_MATCH_STATE=m
562CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 576CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
563CONFIG_NETFILTER_XT_MATCH_STRING=m 577CONFIG_NETFILTER_XT_MATCH_STRING=m
564CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 578CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
565CONFIG_NETFILTER_XT_MATCH_TIME=m 579CONFIG_NETFILTER_XT_MATCH_TIME=m
566CONFIG_NETFILTER_XT_MATCH_U32=m 580CONFIG_NETFILTER_XT_MATCH_U32=m
567CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 581# CONFIG_IP_VS is not set
568 582
569# 583#
570# IP: Netfilter Configuration 584# IP: Netfilter Configuration
571# 585#
586CONFIG_NF_DEFRAG_IPV4=m
572CONFIG_NF_CONNTRACK_IPV4=m 587CONFIG_NF_CONNTRACK_IPV4=m
573# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set 588# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
574CONFIG_IP_NF_QUEUE=m 589CONFIG_IP_NF_QUEUE=m
575CONFIG_IP_NF_IPTABLES=m 590CONFIG_IP_NF_IPTABLES=m
576CONFIG_IP_NF_MATCH_RECENT=m 591CONFIG_IP_NF_MATCH_ADDRTYPE=m
577CONFIG_IP_NF_MATCH_ECN=m
578CONFIG_IP_NF_MATCH_AH=m 592CONFIG_IP_NF_MATCH_AH=m
593CONFIG_IP_NF_MATCH_ECN=m
579CONFIG_IP_NF_MATCH_TTL=m 594CONFIG_IP_NF_MATCH_TTL=m
580CONFIG_IP_NF_MATCH_ADDRTYPE=m
581CONFIG_IP_NF_FILTER=m 595CONFIG_IP_NF_FILTER=m
582CONFIG_IP_NF_TARGET_REJECT=m 596CONFIG_IP_NF_TARGET_REJECT=m
583CONFIG_IP_NF_TARGET_LOG=m 597CONFIG_IP_NF_TARGET_LOG=m
@@ -585,8 +599,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
585CONFIG_NF_NAT=m 599CONFIG_NF_NAT=m
586CONFIG_NF_NAT_NEEDED=y 600CONFIG_NF_NAT_NEEDED=y
587CONFIG_IP_NF_TARGET_MASQUERADE=m 601CONFIG_IP_NF_TARGET_MASQUERADE=m
588CONFIG_IP_NF_TARGET_REDIRECT=m
589CONFIG_IP_NF_TARGET_NETMAP=m 602CONFIG_IP_NF_TARGET_NETMAP=m
603CONFIG_IP_NF_TARGET_REDIRECT=m
590CONFIG_NF_NAT_SNMP_BASIC=m 604CONFIG_NF_NAT_SNMP_BASIC=m
591CONFIG_NF_NAT_PROTO_DCCP=m 605CONFIG_NF_NAT_PROTO_DCCP=m
592CONFIG_NF_NAT_PROTO_GRE=m 606CONFIG_NF_NAT_PROTO_GRE=m
@@ -600,9 +614,9 @@ CONFIG_NF_NAT_PPTP=m
600CONFIG_NF_NAT_H323=m 614CONFIG_NF_NAT_H323=m
601CONFIG_NF_NAT_SIP=m 615CONFIG_NF_NAT_SIP=m
602CONFIG_IP_NF_MANGLE=m 616CONFIG_IP_NF_MANGLE=m
617CONFIG_IP_NF_TARGET_CLUSTERIP=m
603CONFIG_IP_NF_TARGET_ECN=m 618CONFIG_IP_NF_TARGET_ECN=m
604CONFIG_IP_NF_TARGET_TTL=m 619CONFIG_IP_NF_TARGET_TTL=m
605CONFIG_IP_NF_TARGET_CLUSTERIP=m
606CONFIG_IP_NF_RAW=m 620CONFIG_IP_NF_RAW=m
607CONFIG_IP_NF_SECURITY=m 621CONFIG_IP_NF_SECURITY=m
608CONFIG_IP_NF_ARPTABLES=m 622CONFIG_IP_NF_ARPTABLES=m
@@ -615,16 +629,16 @@ CONFIG_IP_NF_ARP_MANGLE=m
615CONFIG_NF_CONNTRACK_IPV6=m 629CONFIG_NF_CONNTRACK_IPV6=m
616CONFIG_IP6_NF_QUEUE=m 630CONFIG_IP6_NF_QUEUE=m
617CONFIG_IP6_NF_IPTABLES=m 631CONFIG_IP6_NF_IPTABLES=m
618CONFIG_IP6_NF_MATCH_RT=m 632CONFIG_IP6_NF_MATCH_AH=m
619CONFIG_IP6_NF_MATCH_OPTS=m 633CONFIG_IP6_NF_MATCH_EUI64=m
620CONFIG_IP6_NF_MATCH_FRAG=m 634CONFIG_IP6_NF_MATCH_FRAG=m
635CONFIG_IP6_NF_MATCH_OPTS=m
621CONFIG_IP6_NF_MATCH_HL=m 636CONFIG_IP6_NF_MATCH_HL=m
622CONFIG_IP6_NF_MATCH_IPV6HEADER=m 637CONFIG_IP6_NF_MATCH_IPV6HEADER=m
623CONFIG_IP6_NF_MATCH_AH=m
624CONFIG_IP6_NF_MATCH_MH=m 638CONFIG_IP6_NF_MATCH_MH=m
625CONFIG_IP6_NF_MATCH_EUI64=m 639CONFIG_IP6_NF_MATCH_RT=m
626CONFIG_IP6_NF_FILTER=m
627CONFIG_IP6_NF_TARGET_LOG=m 640CONFIG_IP6_NF_TARGET_LOG=m
641CONFIG_IP6_NF_FILTER=m
628CONFIG_IP6_NF_TARGET_REJECT=m 642CONFIG_IP6_NF_TARGET_REJECT=m
629CONFIG_IP6_NF_MANGLE=m 643CONFIG_IP6_NF_MANGLE=m
630CONFIG_IP6_NF_TARGET_HL=m 644CONFIG_IP6_NF_TARGET_HL=m
@@ -635,10 +649,6 @@ CONFIG_IP6_NF_SECURITY=m
635# DECnet: Netfilter Configuration 649# DECnet: Netfilter Configuration
636# 650#
637# CONFIG_DECNET_NF_GRABULATOR is not set 651# CONFIG_DECNET_NF_GRABULATOR is not set
638
639#
640# Bridge: Netfilter Configuration
641#
642CONFIG_BRIDGE_NF_EBTABLES=m 652CONFIG_BRIDGE_NF_EBTABLES=m
643CONFIG_BRIDGE_EBT_BROUTE=m 653CONFIG_BRIDGE_EBT_BROUTE=m
644CONFIG_BRIDGE_EBT_T_FILTER=m 654CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -698,6 +708,7 @@ CONFIG_ATM_BR2684=m
698# CONFIG_ATM_BR2684_IPFILTER is not set 708# CONFIG_ATM_BR2684_IPFILTER is not set
699CONFIG_STP=m 709CONFIG_STP=m
700CONFIG_BRIDGE=m 710CONFIG_BRIDGE=m
711# CONFIG_NET_DSA is not set
701CONFIG_VLAN_8021Q=m 712CONFIG_VLAN_8021Q=m
702# CONFIG_VLAN_8021Q_GVRP is not set 713# CONFIG_VLAN_8021Q_GVRP is not set
703CONFIG_DECNET=m 714CONFIG_DECNET=m
@@ -727,6 +738,7 @@ CONFIG_NET_SCH_HTB=m
727CONFIG_NET_SCH_HFSC=m 738CONFIG_NET_SCH_HFSC=m
728CONFIG_NET_SCH_ATM=m 739CONFIG_NET_SCH_ATM=m
729CONFIG_NET_SCH_PRIO=m 740CONFIG_NET_SCH_PRIO=m
741CONFIG_NET_SCH_MULTIQ=m
730CONFIG_NET_SCH_RED=m 742CONFIG_NET_SCH_RED=m
731CONFIG_NET_SCH_SFQ=m 743CONFIG_NET_SCH_SFQ=m
732CONFIG_NET_SCH_TEQL=m 744CONFIG_NET_SCH_TEQL=m
@@ -767,6 +779,7 @@ CONFIG_NET_ACT_IPT=m
767CONFIG_NET_ACT_NAT=m 779CONFIG_NET_ACT_NAT=m
768CONFIG_NET_ACT_PEDIT=m 780CONFIG_NET_ACT_PEDIT=m
769CONFIG_NET_ACT_SIMP=m 781CONFIG_NET_ACT_SIMP=m
782CONFIG_NET_ACT_SKBEDIT=m
770CONFIG_NET_CLS_IND=y 783CONFIG_NET_CLS_IND=y
771CONFIG_NET_SCH_FIFO=y 784CONFIG_NET_SCH_FIFO=y
772 785
@@ -853,13 +866,12 @@ CONFIG_BT_HCIBLUECARD=m
853CONFIG_BT_HCIBTUART=m 866CONFIG_BT_HCIBTUART=m
854CONFIG_BT_HCIVHCI=m 867CONFIG_BT_HCIVHCI=m
855# CONFIG_AF_RXRPC is not set 868# CONFIG_AF_RXRPC is not set
869# CONFIG_PHONET is not set
856CONFIG_FIB_RULES=y 870CONFIG_FIB_RULES=y
857 871CONFIG_WIRELESS=y
858#
859# Wireless
860#
861CONFIG_CFG80211=m 872CONFIG_CFG80211=m
862CONFIG_NL80211=y 873CONFIG_NL80211=y
874CONFIG_WIRELESS_OLD_REGULATORY=y
863CONFIG_WIRELESS_EXT=y 875CONFIG_WIRELESS_EXT=y
864CONFIG_WIRELESS_EXT_SYSFS=y 876CONFIG_WIRELESS_EXT_SYSFS=y
865CONFIG_MAC80211=m 877CONFIG_MAC80211=m
@@ -868,7 +880,9 @@ CONFIG_MAC80211=m
868# Rate control algorithm selection 880# Rate control algorithm selection
869# 881#
870CONFIG_MAC80211_RC_PID=y 882CONFIG_MAC80211_RC_PID=y
883# CONFIG_MAC80211_RC_MINSTREL is not set
871CONFIG_MAC80211_RC_DEFAULT_PID=y 884CONFIG_MAC80211_RC_DEFAULT_PID=y
885# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
872CONFIG_MAC80211_RC_DEFAULT="pid" 886CONFIG_MAC80211_RC_DEFAULT="pid"
873CONFIG_MAC80211_MESH=y 887CONFIG_MAC80211_MESH=y
874CONFIG_MAC80211_LEDS=y 888CONFIG_MAC80211_LEDS=y
@@ -917,7 +931,7 @@ CONFIG_PARPORT_SERIAL=m
917CONFIG_PARPORT_1284=y 931CONFIG_PARPORT_1284=y
918CONFIG_PARPORT_NOT_PC=y 932CONFIG_PARPORT_NOT_PC=y
919CONFIG_PNP=y 933CONFIG_PNP=y
920# CONFIG_PNP_DEBUG is not set 934CONFIG_PNP_DEBUG_MESSAGES=y
921 935
922# 936#
923# Protocols 937# Protocols
@@ -958,22 +972,20 @@ CONFIG_ENCLOSURE_SERVICES=m
958# CONFIG_HP_ILO is not set 972# CONFIG_HP_ILO is not set
959CONFIG_HAVE_IDE=y 973CONFIG_HAVE_IDE=y
960CONFIG_IDE=y 974CONFIG_IDE=y
961CONFIG_BLK_DEV_IDE=y
962 975
963# 976#
964# Please see Documentation/ide/ide.txt for help/info on IDE drives 977# Please see Documentation/ide/ide.txt for help/info on IDE drives
965# 978#
966CONFIG_IDE_TIMINGS=y 979CONFIG_IDE_TIMINGS=y
967CONFIG_IDE_ATAPI=y
968# CONFIG_BLK_DEV_IDE_SATA is not set 980# CONFIG_BLK_DEV_IDE_SATA is not set
969CONFIG_BLK_DEV_IDEDISK=y 981CONFIG_IDE_GD=y
970CONFIG_IDEDISK_MULTI_MODE=y 982CONFIG_IDE_GD_ATA=y
983# CONFIG_IDE_GD_ATAPI is not set
971# CONFIG_BLK_DEV_IDECS is not set 984# CONFIG_BLK_DEV_IDECS is not set
972# CONFIG_BLK_DEV_DELKIN is not set 985# CONFIG_BLK_DEV_DELKIN is not set
973CONFIG_BLK_DEV_IDECD=m 986CONFIG_BLK_DEV_IDECD=m
974CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 987CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
975# CONFIG_BLK_DEV_IDETAPE is not set 988# CONFIG_BLK_DEV_IDETAPE is not set
976CONFIG_BLK_DEV_IDEFLOPPY=m
977# CONFIG_BLK_DEV_IDESCSI is not set 989# CONFIG_BLK_DEV_IDESCSI is not set
978CONFIG_IDE_TASK_IOCTL=y 990CONFIG_IDE_TASK_IOCTL=y
979CONFIG_IDE_PROC_FS=y 991CONFIG_IDE_PROC_FS=y
@@ -1201,6 +1213,7 @@ CONFIG_PATA_OF_PLATFORM=m
1201CONFIG_PATA_SCH=m 1213CONFIG_PATA_SCH=m
1202CONFIG_MD=y 1214CONFIG_MD=y
1203CONFIG_BLK_DEV_MD=y 1215CONFIG_BLK_DEV_MD=y
1216CONFIG_MD_AUTODETECT=y
1204CONFIG_MD_LINEAR=m 1217CONFIG_MD_LINEAR=m
1205CONFIG_MD_RAID0=m 1218CONFIG_MD_RAID0=m
1206CONFIG_MD_RAID1=m 1219CONFIG_MD_RAID1=m
@@ -1332,6 +1345,9 @@ CONFIG_NE2000=m
1332# CONFIG_IBM_NEW_EMAC_RGMII is not set 1345# CONFIG_IBM_NEW_EMAC_RGMII is not set
1333# CONFIG_IBM_NEW_EMAC_TAH is not set 1346# CONFIG_IBM_NEW_EMAC_TAH is not set
1334# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 1347# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
1348# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
1349# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
1350# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
1335CONFIG_NET_PCI=y 1351CONFIG_NET_PCI=y
1336CONFIG_PCNET32=m 1352CONFIG_PCNET32=m
1337CONFIG_AMD8111_ETH=m 1353CONFIG_AMD8111_ETH=m
@@ -1370,13 +1386,13 @@ CONFIG_DE600=m
1370CONFIG_DE620=m 1386CONFIG_DE620=m
1371CONFIG_FEC_MPC52xx=m 1387CONFIG_FEC_MPC52xx=m
1372CONFIG_FEC_MPC52xx_MDIO=y 1388CONFIG_FEC_MPC52xx_MDIO=y
1389# CONFIG_ATL2 is not set
1373# CONFIG_FS_ENET is not set 1390# CONFIG_FS_ENET is not set
1374CONFIG_NETDEV_1000=y 1391CONFIG_NETDEV_1000=y
1375CONFIG_ACENIC=m 1392CONFIG_ACENIC=m
1376# CONFIG_ACENIC_OMIT_TIGON_I is not set 1393# CONFIG_ACENIC_OMIT_TIGON_I is not set
1377CONFIG_DL2K=m 1394CONFIG_DL2K=m
1378CONFIG_E1000=m 1395CONFIG_E1000=m
1379# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
1380CONFIG_E1000E=m 1396CONFIG_E1000E=m
1381CONFIG_IP1000=m 1397CONFIG_IP1000=m
1382CONFIG_IGB=m 1398CONFIG_IGB=m
@@ -1400,19 +1416,23 @@ CONFIG_MV643XX_ETH=m
1400CONFIG_QLA3XXX=m 1416CONFIG_QLA3XXX=m
1401CONFIG_ATL1=m 1417CONFIG_ATL1=m
1402# CONFIG_ATL1E is not set 1418# CONFIG_ATL1E is not set
1419# CONFIG_JME is not set
1403CONFIG_NETDEV_10000=y 1420CONFIG_NETDEV_10000=y
1404CONFIG_CHELSIO_T1=m 1421CONFIG_CHELSIO_T1=m
1405CONFIG_CHELSIO_T1_1G=y 1422CONFIG_CHELSIO_T1_1G=y
1406CONFIG_CHELSIO_T3=m 1423CONFIG_CHELSIO_T3=m
1424# CONFIG_ENIC is not set
1407CONFIG_IXGBE=m 1425CONFIG_IXGBE=m
1408CONFIG_IXGB=m 1426CONFIG_IXGB=m
1409CONFIG_S2IO=m 1427CONFIG_S2IO=m
1410CONFIG_MYRI10GE=m 1428CONFIG_MYRI10GE=m
1411CONFIG_NETXEN_NIC=m 1429CONFIG_NETXEN_NIC=m
1412CONFIG_NIU=m 1430CONFIG_NIU=m
1431# CONFIG_MLX4_EN is not set
1413# CONFIG_MLX4_CORE is not set 1432# CONFIG_MLX4_CORE is not set
1414CONFIG_TEHUTI=m 1433CONFIG_TEHUTI=m
1415CONFIG_BNX2X=m 1434CONFIG_BNX2X=m
1435CONFIG_QLGE=m
1416CONFIG_SFC=m 1436CONFIG_SFC=m
1417# CONFIG_TR is not set 1437# CONFIG_TR is not set
1418 1438
@@ -1434,6 +1454,7 @@ CONFIG_USB_USBNET=m
1434CONFIG_USB_NET_AX8817X=m 1454CONFIG_USB_NET_AX8817X=m
1435CONFIG_USB_NET_CDCETHER=m 1455CONFIG_USB_NET_CDCETHER=m
1436CONFIG_USB_NET_DM9601=m 1456CONFIG_USB_NET_DM9601=m
1457CONFIG_USB_NET_SMSC95XX=m
1437CONFIG_USB_NET_GL620A=m 1458CONFIG_USB_NET_GL620A=m
1438CONFIG_USB_NET_NET1080=m 1459CONFIG_USB_NET_NET1080=m
1439CONFIG_USB_NET_PLUSB=m 1460CONFIG_USB_NET_PLUSB=m
@@ -1546,6 +1567,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
1546CONFIG_MOUSE_PS2_SYNAPTICS=y 1567CONFIG_MOUSE_PS2_SYNAPTICS=y
1547CONFIG_MOUSE_PS2_LIFEBOOK=y 1568CONFIG_MOUSE_PS2_LIFEBOOK=y
1548CONFIG_MOUSE_PS2_TRACKPOINT=y 1569CONFIG_MOUSE_PS2_TRACKPOINT=y
1570# CONFIG_MOUSE_PS2_ELANTECH is not set
1549# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1571# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1550CONFIG_MOUSE_SERIAL=m 1572CONFIG_MOUSE_SERIAL=m
1551CONFIG_MOUSE_APPLETOUCH=m 1573CONFIG_MOUSE_APPLETOUCH=m
@@ -1598,6 +1620,7 @@ CONFIG_INPUT_ATI_REMOTE2=m
1598CONFIG_INPUT_KEYSPAN_REMOTE=m 1620CONFIG_INPUT_KEYSPAN_REMOTE=m
1599CONFIG_INPUT_POWERMATE=m 1621CONFIG_INPUT_POWERMATE=m
1600CONFIG_INPUT_YEALINK=m 1622CONFIG_INPUT_YEALINK=m
1623CONFIG_INPUT_CM109=m
1601CONFIG_INPUT_UINPUT=m 1624CONFIG_INPUT_UINPUT=m
1602 1625
1603# 1626#
@@ -1787,6 +1810,7 @@ CONFIG_SENSORS_PCF8591=m
1787# CONFIG_TPS65010 is not set 1810# CONFIG_TPS65010 is not set
1788CONFIG_SENSORS_MAX6875=m 1811CONFIG_SENSORS_MAX6875=m
1789CONFIG_SENSORS_TSL2550=m 1812CONFIG_SENSORS_TSL2550=m
1813CONFIG_MCU_MPC8349EMITX=m
1790# CONFIG_I2C_DEBUG_CORE is not set 1814# CONFIG_I2C_DEBUG_CORE is not set
1791# CONFIG_I2C_DEBUG_ALGO is not set 1815# CONFIG_I2C_DEBUG_ALGO is not set
1792# CONFIG_I2C_DEBUG_BUS is not set 1816# CONFIG_I2C_DEBUG_BUS is not set
@@ -1837,6 +1861,7 @@ CONFIG_POWER_SUPPLY=m
1837CONFIG_APM_POWER=m 1861CONFIG_APM_POWER=m
1838# CONFIG_BATTERY_DS2760 is not set 1862# CONFIG_BATTERY_DS2760 is not set
1839CONFIG_BATTERY_PMU=m 1863CONFIG_BATTERY_PMU=m
1864# CONFIG_BATTERY_BQ27x00 is not set
1840CONFIG_HWMON=m 1865CONFIG_HWMON=m
1841CONFIG_HWMON_VID=m 1866CONFIG_HWMON_VID=m
1842# CONFIG_SENSORS_AD7414 is not set 1867# CONFIG_SENSORS_AD7414 is not set
@@ -1946,8 +1971,21 @@ CONFIG_SSB_DRIVER_PCICORE=y
1946# 1971#
1947# CONFIG_MFD_CORE is not set 1972# CONFIG_MFD_CORE is not set
1948CONFIG_MFD_SM501=m 1973CONFIG_MFD_SM501=m
1974CONFIG_MFD_SM501_GPIO=y
1949# CONFIG_HTC_PASIC3 is not set 1975# CONFIG_HTC_PASIC3 is not set
1976# CONFIG_UCB1400_CORE is not set
1950# CONFIG_MFD_TMIO is not set 1977# CONFIG_MFD_TMIO is not set
1978# CONFIG_PMIC_DA903X is not set
1979# CONFIG_MFD_WM8400 is not set
1980# CONFIG_MFD_WM8350_I2C is not set
1981
1982#
1983# Voltage and Current regulators
1984#
1985# CONFIG_REGULATOR is not set
1986# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1987# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1988# CONFIG_REGULATOR_BQ24022 is not set
1951 1989
1952# 1990#
1953# Multimedia devices 1991# Multimedia devices
@@ -1999,6 +2037,7 @@ CONFIG_VIDEO_TVEEPROM=m
1999CONFIG_VIDEO_TUNER=m 2037CONFIG_VIDEO_TUNER=m
2000CONFIG_VIDEO_CAPTURE_DRIVERS=y 2038CONFIG_VIDEO_CAPTURE_DRIVERS=y
2001# CONFIG_VIDEO_ADV_DEBUG is not set 2039# CONFIG_VIDEO_ADV_DEBUG is not set
2040# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
2002# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set 2041# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
2003CONFIG_VIDEO_IR_I2C=m 2042CONFIG_VIDEO_IR_I2C=m
2004 2043
@@ -2079,14 +2118,12 @@ CONFIG_VIDEO_CPIA_USB=m
2079CONFIG_VIDEO_CPIA2=m 2118CONFIG_VIDEO_CPIA2=m
2080CONFIG_VIDEO_SAA5246A=m 2119CONFIG_VIDEO_SAA5246A=m
2081CONFIG_VIDEO_SAA5249=m 2120CONFIG_VIDEO_SAA5249=m
2082CONFIG_TUNER_3036=m
2083# CONFIG_VIDEO_STRADIS is not set 2121# CONFIG_VIDEO_STRADIS is not set
2084# CONFIG_VIDEO_ZORAN is not set 2122# CONFIG_VIDEO_ZORAN is not set
2085CONFIG_VIDEO_SAA7134=m 2123CONFIG_VIDEO_SAA7134=m
2086CONFIG_VIDEO_SAA7134_ALSA=m 2124CONFIG_VIDEO_SAA7134_ALSA=m
2087CONFIG_VIDEO_SAA7134_DVB=m 2125CONFIG_VIDEO_SAA7134_DVB=m
2088CONFIG_VIDEO_MXB=m 2126CONFIG_VIDEO_MXB=m
2089CONFIG_VIDEO_DPC=m
2090CONFIG_VIDEO_HEXIUM_ORION=m 2127CONFIG_VIDEO_HEXIUM_ORION=m
2091CONFIG_VIDEO_HEXIUM_GEMINI=m 2128CONFIG_VIDEO_HEXIUM_GEMINI=m
2092CONFIG_VIDEO_CX88=m 2129CONFIG_VIDEO_CX88=m
@@ -2100,10 +2137,40 @@ CONFIG_VIDEO_IVTV=m
2100CONFIG_VIDEO_FB_IVTV=m 2137CONFIG_VIDEO_FB_IVTV=m
2101CONFIG_VIDEO_CX18=m 2138CONFIG_VIDEO_CX18=m
2102# CONFIG_VIDEO_CAFE_CCIC is not set 2139# CONFIG_VIDEO_CAFE_CCIC is not set
2140CONFIG_SOC_CAMERA=m
2141CONFIG_SOC_CAMERA_MT9M001=m
2142# CONFIG_MT9M001_PCA9536_SWITCH is not set
2143# CONFIG_SOC_CAMERA_MT9M111 is not set
2144CONFIG_SOC_CAMERA_MT9V022=m
2145# CONFIG_MT9V022_PCA9536_SWITCH is not set
2146# CONFIG_SOC_CAMERA_PLATFORM is not set
2147# CONFIG_VIDEO_SH_MOBILE_CEU is not set
2103CONFIG_V4L_USB_DRIVERS=y 2148CONFIG_V4L_USB_DRIVERS=y
2104CONFIG_USB_VIDEO_CLASS=m 2149CONFIG_USB_VIDEO_CLASS=m
2105CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y 2150CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
2106CONFIG_USB_GSPCA=m 2151CONFIG_USB_GSPCA=m
2152# CONFIG_USB_M5602 is not set
2153# CONFIG_USB_GSPCA_CONEX is not set
2154# CONFIG_USB_GSPCA_ETOMS is not set
2155# CONFIG_USB_GSPCA_FINEPIX is not set
2156# CONFIG_USB_GSPCA_MARS is not set
2157# CONFIG_USB_GSPCA_OV519 is not set
2158# CONFIG_USB_GSPCA_PAC207 is not set
2159# CONFIG_USB_GSPCA_PAC7311 is not set
2160# CONFIG_USB_GSPCA_SONIXB is not set
2161# CONFIG_USB_GSPCA_SONIXJ is not set
2162# CONFIG_USB_GSPCA_SPCA500 is not set
2163# CONFIG_USB_GSPCA_SPCA501 is not set
2164# CONFIG_USB_GSPCA_SPCA505 is not set
2165# CONFIG_USB_GSPCA_SPCA506 is not set
2166# CONFIG_USB_GSPCA_SPCA508 is not set
2167# CONFIG_USB_GSPCA_SPCA561 is not set
2168# CONFIG_USB_GSPCA_STK014 is not set
2169# CONFIG_USB_GSPCA_SUNPLUS is not set
2170# CONFIG_USB_GSPCA_T613 is not set
2171# CONFIG_USB_GSPCA_TV8532 is not set
2172# CONFIG_USB_GSPCA_VC032X is not set
2173# CONFIG_USB_GSPCA_ZC3XX is not set
2107CONFIG_VIDEO_PVRUSB2=m 2174CONFIG_VIDEO_PVRUSB2=m
2108CONFIG_VIDEO_PVRUSB2_SYSFS=y 2175CONFIG_VIDEO_PVRUSB2_SYSFS=y
2109CONFIG_VIDEO_PVRUSB2_DVB=y 2176CONFIG_VIDEO_PVRUSB2_DVB=y
@@ -2130,13 +2197,6 @@ CONFIG_USB_PWC=m
2130CONFIG_USB_ZR364XX=m 2197CONFIG_USB_ZR364XX=m
2131CONFIG_USB_STKWEBCAM=m 2198CONFIG_USB_STKWEBCAM=m
2132# CONFIG_USB_S2255 is not set 2199# CONFIG_USB_S2255 is not set
2133CONFIG_SOC_CAMERA=m
2134CONFIG_SOC_CAMERA_MT9M001=m
2135# CONFIG_MT9M001_PCA9536_SWITCH is not set
2136CONFIG_SOC_CAMERA_MT9V022=m
2137# CONFIG_MT9V022_PCA9536_SWITCH is not set
2138# CONFIG_SOC_CAMERA_PLATFORM is not set
2139# CONFIG_VIDEO_SH_MOBILE_CEU is not set
2140CONFIG_RADIO_ADAPTERS=y 2200CONFIG_RADIO_ADAPTERS=y
2141# CONFIG_RADIO_CADET is not set 2201# CONFIG_RADIO_CADET is not set
2142# CONFIG_RADIO_RTRACK is not set 2202# CONFIG_RADIO_RTRACK is not set
@@ -2154,6 +2214,7 @@ CONFIG_RADIO_MAESTRO=m
2154# CONFIG_RADIO_ZOLTRIX is not set 2214# CONFIG_RADIO_ZOLTRIX is not set
2155CONFIG_USB_DSBR=m 2215CONFIG_USB_DSBR=m
2156CONFIG_USB_SI470X=m 2216CONFIG_USB_SI470X=m
2217CONFIG_USB_MR800=m
2157CONFIG_DVB_CAPTURE_DRIVERS=y 2218CONFIG_DVB_CAPTURE_DRIVERS=y
2158 2219
2159# 2220#
@@ -2194,16 +2255,12 @@ CONFIG_DVB_USB_OPERA1=m
2194CONFIG_DVB_USB_AF9005=m 2255CONFIG_DVB_USB_AF9005=m
2195CONFIG_DVB_USB_AF9005_REMOTE=m 2256CONFIG_DVB_USB_AF9005_REMOTE=m
2196# CONFIG_DVB_USB_DW2102 is not set 2257# CONFIG_DVB_USB_DW2102 is not set
2258# CONFIG_DVB_USB_CINERGY_T2 is not set
2197# CONFIG_DVB_USB_ANYSEE is not set 2259# CONFIG_DVB_USB_ANYSEE is not set
2260# CONFIG_DVB_USB_DTV5100 is not set
2261# CONFIG_DVB_USB_AF9015 is not set
2198CONFIG_DVB_TTUSB_BUDGET=m 2262CONFIG_DVB_TTUSB_BUDGET=m
2199CONFIG_DVB_TTUSB_DEC=m 2263CONFIG_DVB_TTUSB_DEC=m
2200CONFIG_DVB_CINERGYT2=m
2201CONFIG_DVB_CINERGYT2_TUNING=y
2202CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32
2203CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
2204CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
2205CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
2206CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100
2207# CONFIG_DVB_SIANO_SMS1XXX is not set 2264# CONFIG_DVB_SIANO_SMS1XXX is not set
2208 2265
2209# 2266#
@@ -2225,6 +2282,11 @@ CONFIG_DVB_BT8XX=m
2225CONFIG_DVB_PLUTO2=m 2282CONFIG_DVB_PLUTO2=m
2226 2283
2227# 2284#
2285# Supported SDMC DM1105 Adapters
2286#
2287CONFIG_DVB_DM1105=m
2288
2289#
2228# Supported DVB Frontends 2290# Supported DVB Frontends
2229# 2291#
2230 2292
@@ -2240,6 +2302,8 @@ CONFIG_DVB_CX24110=m
2240CONFIG_DVB_CX24123=m 2302CONFIG_DVB_CX24123=m
2241CONFIG_DVB_MT312=m 2303CONFIG_DVB_MT312=m
2242CONFIG_DVB_S5H1420=m 2304CONFIG_DVB_S5H1420=m
2305CONFIG_DVB_STV0288=m
2306CONFIG_DVB_STB6000=m
2243CONFIG_DVB_STV0299=m 2307CONFIG_DVB_STV0299=m
2244CONFIG_DVB_TDA8083=m 2308CONFIG_DVB_TDA8083=m
2245CONFIG_DVB_TDA10086=m 2309CONFIG_DVB_TDA10086=m
@@ -2247,6 +2311,8 @@ CONFIG_DVB_VES1X93=m
2247CONFIG_DVB_TUNER_ITD1000=m 2311CONFIG_DVB_TUNER_ITD1000=m
2248CONFIG_DVB_TDA826X=m 2312CONFIG_DVB_TDA826X=m
2249CONFIG_DVB_TUA6100=m 2313CONFIG_DVB_TUA6100=m
2314CONFIG_DVB_CX24116=m
2315CONFIG_DVB_SI21XX=m
2250 2316
2251# 2317#
2252# DVB-T (terrestrial) frontends 2318# DVB-T (terrestrial) frontends
@@ -2299,6 +2365,13 @@ CONFIG_DVB_TUNER_DIB0070=m
2299CONFIG_DVB_LNBP21=m 2365CONFIG_DVB_LNBP21=m
2300CONFIG_DVB_ISL6405=m 2366CONFIG_DVB_ISL6405=m
2301CONFIG_DVB_ISL6421=m 2367CONFIG_DVB_ISL6421=m
2368CONFIG_DVB_LGS8GL5=m
2369
2370#
2371# Tools to develop new frontends
2372#
2373# CONFIG_DVB_DUMMY_FE is not set
2374# CONFIG_DVB_AF9013 is not set
2302CONFIG_DAB=y 2375CONFIG_DAB=y
2303CONFIG_USB_DABUSB=m 2376CONFIG_USB_DABUSB=m
2304 2377
@@ -2320,6 +2393,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
2320CONFIG_FB=y 2393CONFIG_FB=y
2321# CONFIG_FIRMWARE_EDID is not set 2394# CONFIG_FIRMWARE_EDID is not set
2322CONFIG_FB_DDC=y 2395CONFIG_FB_DDC=y
2396# CONFIG_FB_BOOT_VESA_SUPPORT is not set
2323CONFIG_FB_CFB_FILLRECT=y 2397CONFIG_FB_CFB_FILLRECT=y
2324CONFIG_FB_CFB_COPYAREA=y 2398CONFIG_FB_CFB_COPYAREA=y
2325CONFIG_FB_CFB_IMAGEBLIT=y 2399CONFIG_FB_CFB_IMAGEBLIT=y
@@ -2382,6 +2456,7 @@ CONFIG_FB_SAVAGE=m
2382CONFIG_FB_SAVAGE_I2C=y 2456CONFIG_FB_SAVAGE_I2C=y
2383CONFIG_FB_SAVAGE_ACCEL=y 2457CONFIG_FB_SAVAGE_ACCEL=y
2384# CONFIG_FB_SIS is not set 2458# CONFIG_FB_SIS is not set
2459# CONFIG_FB_VIA is not set
2385CONFIG_FB_NEOMAGIC=m 2460CONFIG_FB_NEOMAGIC=m
2386CONFIG_FB_KYRO=m 2461CONFIG_FB_KYRO=m
2387CONFIG_FB_3DFX=m 2462CONFIG_FB_3DFX=m
@@ -2397,6 +2472,7 @@ CONFIG_FB_TRIDENT_ACCEL=y
2397CONFIG_FB_SM501=m 2472CONFIG_FB_SM501=m
2398CONFIG_FB_IBM_GXT4500=y 2473CONFIG_FB_IBM_GXT4500=y
2399# CONFIG_FB_VIRTUAL is not set 2474# CONFIG_FB_VIRTUAL is not set
2475# CONFIG_FB_METRONOME is not set
2400CONFIG_BACKLIGHT_LCD_SUPPORT=y 2476CONFIG_BACKLIGHT_LCD_SUPPORT=y
2401CONFIG_LCD_CLASS_DEVICE=m 2477CONFIG_LCD_CLASS_DEVICE=m
2402# CONFIG_LCD_ILI9320 is not set 2478# CONFIG_LCD_ILI9320 is not set
@@ -2432,6 +2508,7 @@ CONFIG_LOGO=y
2432# CONFIG_LOGO_LINUX_VGA16 is not set 2508# CONFIG_LOGO_LINUX_VGA16 is not set
2433CONFIG_LOGO_LINUX_CLUT224=y 2509CONFIG_LOGO_LINUX_CLUT224=y
2434CONFIG_SOUND=m 2510CONFIG_SOUND=m
2511CONFIG_SOUND_OSS_CORE=y
2435CONFIG_SND=m 2512CONFIG_SND=m
2436CONFIG_SND_TIMER=m 2513CONFIG_SND_TIMER=m
2437CONFIG_SND_PCM=m 2514CONFIG_SND_PCM=m
@@ -2594,15 +2671,36 @@ CONFIG_HIDRAW=y
2594# USB Input Devices 2671# USB Input Devices
2595# 2672#
2596CONFIG_USB_HID=y 2673CONFIG_USB_HID=y
2597CONFIG_USB_HIDINPUT_POWERBOOK=y
2598CONFIG_HID_FF=y
2599CONFIG_HID_PID=y 2674CONFIG_HID_PID=y
2675CONFIG_USB_HIDDEV=y
2676
2677#
2678# Special HID drivers
2679#
2680CONFIG_HID_COMPAT=y
2681CONFIG_HID_A4TECH=y
2682CONFIG_HID_APPLE=y
2683CONFIG_HID_BELKIN=y
2684CONFIG_HID_BRIGHT=y
2685CONFIG_HID_CHERRY=y
2686CONFIG_HID_CHICONY=y
2687CONFIG_HID_CYPRESS=y
2688CONFIG_HID_DELL=y
2689CONFIG_HID_EZKEY=y
2690CONFIG_HID_GYRATION=y
2691CONFIG_HID_LOGITECH=y
2600CONFIG_LOGITECH_FF=y 2692CONFIG_LOGITECH_FF=y
2601CONFIG_LOGIRUMBLEPAD2_FF=y 2693CONFIG_LOGIRUMBLEPAD2_FF=y
2694CONFIG_HID_MICROSOFT=y
2695CONFIG_HID_MONTEREY=y
2696CONFIG_HID_PANTHERLORD=y
2602CONFIG_PANTHERLORD_FF=y 2697CONFIG_PANTHERLORD_FF=y
2698CONFIG_HID_PETALYNX=y
2699CONFIG_HID_SAMSUNG=y
2700CONFIG_HID_SONY=y
2701CONFIG_HID_SUNPLUS=y
2603CONFIG_THRUSTMASTER_FF=y 2702CONFIG_THRUSTMASTER_FF=y
2604CONFIG_ZEROPLUS_FF=y 2703CONFIG_ZEROPLUS_FF=y
2605CONFIG_USB_HIDDEV=y
2606CONFIG_USB_SUPPORT=y 2704CONFIG_USB_SUPPORT=y
2607CONFIG_USB_ARCH_HAS_HCD=y 2705CONFIG_USB_ARCH_HAS_HCD=y
2608CONFIG_USB_ARCH_HAS_OHCI=y 2706CONFIG_USB_ARCH_HAS_OHCI=y
@@ -2620,6 +2718,8 @@ CONFIG_USB_DEVICEFS=y
2620CONFIG_USB_SUSPEND=y 2718CONFIG_USB_SUSPEND=y
2621# CONFIG_USB_OTG is not set 2719# CONFIG_USB_OTG is not set
2622CONFIG_USB_MON=y 2720CONFIG_USB_MON=y
2721# CONFIG_USB_WUSB is not set
2722# CONFIG_USB_WUSB_CBAF is not set
2623 2723
2624# 2724#
2625# USB Host Controller Drivers 2725# USB Host Controller Drivers
@@ -2647,6 +2747,8 @@ CONFIG_USB_U132_HCD=m
2647CONFIG_USB_SL811_HCD=m 2747CONFIG_USB_SL811_HCD=m
2648# CONFIG_USB_SL811_CS is not set 2748# CONFIG_USB_SL811_CS is not set
2649# CONFIG_USB_R8A66597_HCD is not set 2749# CONFIG_USB_R8A66597_HCD is not set
2750# CONFIG_USB_WHCI_HCD is not set
2751# CONFIG_USB_HWA_HCD is not set
2650# CONFIG_USB_MUSB_HDRC is not set 2752# CONFIG_USB_MUSB_HDRC is not set
2651 2753
2652# 2754#
@@ -2655,6 +2757,7 @@ CONFIG_USB_SL811_HCD=m
2655CONFIG_USB_ACM=m 2757CONFIG_USB_ACM=m
2656CONFIG_USB_PRINTER=m 2758CONFIG_USB_PRINTER=m
2657CONFIG_USB_WDM=m 2759CONFIG_USB_WDM=m
2760# CONFIG_USB_TMC is not set
2658 2761
2659# 2762#
2660# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 2763# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -2676,7 +2779,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
2676CONFIG_USB_STORAGE_ALAUDA=y 2779CONFIG_USB_STORAGE_ALAUDA=y
2677CONFIG_USB_STORAGE_ONETOUCH=y 2780CONFIG_USB_STORAGE_ONETOUCH=y
2678CONFIG_USB_STORAGE_KARMA=y 2781CONFIG_USB_STORAGE_KARMA=y
2679# CONFIG_USB_STORAGE_SIERRA is not set
2680CONFIG_USB_STORAGE_CYPRESS_ATACB=y 2782CONFIG_USB_STORAGE_CYPRESS_ATACB=y
2681# CONFIG_USB_LIBUSUAL is not set 2783# CONFIG_USB_LIBUSUAL is not set
2682 2784
@@ -2741,6 +2843,7 @@ CONFIG_USB_SERIAL_DEBUG=m
2741CONFIG_USB_EMI62=m 2843CONFIG_USB_EMI62=m
2742CONFIG_USB_EMI26=m 2844CONFIG_USB_EMI26=m
2743CONFIG_USB_ADUTUX=m 2845CONFIG_USB_ADUTUX=m
2846CONFIG_USB_SEVSEG=m
2744# CONFIG_USB_RIO500 is not set 2847# CONFIG_USB_RIO500 is not set
2745CONFIG_USB_LEGOTOWER=m 2848CONFIG_USB_LEGOTOWER=m
2746CONFIG_USB_LCD=m 2849CONFIG_USB_LCD=m
@@ -2762,12 +2865,14 @@ CONFIG_USB_TRANCEVIBRATOR=m
2762CONFIG_USB_IOWARRIOR=m 2865CONFIG_USB_IOWARRIOR=m
2763# CONFIG_USB_TEST is not set 2866# CONFIG_USB_TEST is not set
2764CONFIG_USB_ISIGHTFW=m 2867CONFIG_USB_ISIGHTFW=m
2868CONFIG_USB_VST=m
2765CONFIG_USB_ATM=m 2869CONFIG_USB_ATM=m
2766CONFIG_USB_SPEEDTOUCH=m 2870CONFIG_USB_SPEEDTOUCH=m
2767CONFIG_USB_CXACRU=m 2871CONFIG_USB_CXACRU=m
2768CONFIG_USB_UEAGLEATM=m 2872CONFIG_USB_UEAGLEATM=m
2769CONFIG_USB_XUSBATM=m 2873CONFIG_USB_XUSBATM=m
2770# CONFIG_USB_GADGET is not set 2874# CONFIG_USB_GADGET is not set
2875# CONFIG_UWB is not set
2771# CONFIG_MMC is not set 2876# CONFIG_MMC is not set
2772# CONFIG_MEMSTICK is not set 2877# CONFIG_MEMSTICK is not set
2773CONFIG_NEW_LEDS=y 2878CONFIG_NEW_LEDS=y
@@ -2787,6 +2892,7 @@ CONFIG_LEDS_TRIGGERS=y
2787CONFIG_LEDS_TRIGGER_TIMER=m 2892CONFIG_LEDS_TRIGGER_TIMER=m
2788CONFIG_LEDS_TRIGGER_IDE_DISK=y 2893CONFIG_LEDS_TRIGGER_IDE_DISK=y
2789CONFIG_LEDS_TRIGGER_HEARTBEAT=m 2894CONFIG_LEDS_TRIGGER_HEARTBEAT=m
2895CONFIG_LEDS_TRIGGER_BACKLIGHT=m
2790CONFIG_LEDS_TRIGGER_DEFAULT_ON=m 2896CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
2791CONFIG_ACCESSIBILITY=y 2897CONFIG_ACCESSIBILITY=y
2792CONFIG_A11Y_BRAILLE_CONSOLE=y 2898CONFIG_A11Y_BRAILLE_CONSOLE=y
@@ -2837,12 +2943,15 @@ CONFIG_RTC_DRV_FM3130=m
2837# Platform RTC drivers 2943# Platform RTC drivers
2838# 2944#
2839CONFIG_RTC_DRV_CMOS=y 2945CONFIG_RTC_DRV_CMOS=y
2946# CONFIG_RTC_DRV_DS1286 is not set
2840CONFIG_RTC_DRV_DS1511=m 2947CONFIG_RTC_DRV_DS1511=m
2841CONFIG_RTC_DRV_DS1553=m 2948CONFIG_RTC_DRV_DS1553=m
2842CONFIG_RTC_DRV_DS1742=m 2949CONFIG_RTC_DRV_DS1742=m
2843CONFIG_RTC_DRV_STK17TA8=m 2950CONFIG_RTC_DRV_STK17TA8=m
2844# CONFIG_RTC_DRV_M48T86 is not set 2951# CONFIG_RTC_DRV_M48T86 is not set
2952CONFIG_RTC_DRV_M48T35=m
2845CONFIG_RTC_DRV_M48T59=m 2953CONFIG_RTC_DRV_M48T59=m
2954# CONFIG_RTC_DRV_BQ4802 is not set
2846CONFIG_RTC_DRV_V3020=m 2955CONFIG_RTC_DRV_V3020=m
2847 2956
2848# 2957#
@@ -2862,7 +2971,10 @@ CONFIG_KS0108_DELAY=2
2862CONFIG_UIO=m 2971CONFIG_UIO=m
2863CONFIG_UIO_CIF=m 2972CONFIG_UIO_CIF=m
2864CONFIG_UIO_PDRV=m 2973CONFIG_UIO_PDRV=m
2974CONFIG_UIO_PDRV_GENIRQ=m
2865CONFIG_UIO_SMX=m 2975CONFIG_UIO_SMX=m
2976# CONFIG_UIO_SERCOS3 is not set
2977# CONFIG_STAGING is not set
2866 2978
2867# 2979#
2868# File systems 2980# File systems
@@ -2872,20 +2984,21 @@ CONFIG_EXT2_FS_XATTR=y
2872CONFIG_EXT2_FS_POSIX_ACL=y 2984CONFIG_EXT2_FS_POSIX_ACL=y
2873CONFIG_EXT2_FS_SECURITY=y 2985CONFIG_EXT2_FS_SECURITY=y
2874CONFIG_EXT2_FS_XIP=y 2986CONFIG_EXT2_FS_XIP=y
2875CONFIG_FS_XIP=y
2876CONFIG_EXT3_FS=m 2987CONFIG_EXT3_FS=m
2877CONFIG_EXT3_FS_XATTR=y 2988CONFIG_EXT3_FS_XATTR=y
2878CONFIG_EXT3_FS_POSIX_ACL=y 2989CONFIG_EXT3_FS_POSIX_ACL=y
2879CONFIG_EXT3_FS_SECURITY=y 2990CONFIG_EXT3_FS_SECURITY=y
2880CONFIG_EXT4DEV_FS=m 2991CONFIG_EXT4_FS=y
2881CONFIG_EXT4DEV_FS_XATTR=y 2992# CONFIG_EXT4DEV_COMPAT is not set
2882CONFIG_EXT4DEV_FS_POSIX_ACL=y 2993CONFIG_EXT4_FS_XATTR=y
2883CONFIG_EXT4DEV_FS_SECURITY=y 2994# CONFIG_EXT4_FS_POSIX_ACL is not set
2995# CONFIG_EXT4_FS_SECURITY is not set
2996CONFIG_FS_XIP=y
2884CONFIG_JBD=m 2997CONFIG_JBD=m
2885# CONFIG_JBD_DEBUG is not set 2998# CONFIG_JBD_DEBUG is not set
2886CONFIG_JBD2=m 2999CONFIG_JBD2=y
2887CONFIG_JBD2_DEBUG=y 3000CONFIG_JBD2_DEBUG=y
2888CONFIG_FS_MBCACHE=m 3001CONFIG_FS_MBCACHE=y
2889CONFIG_REISERFS_FS=m 3002CONFIG_REISERFS_FS=m
2890# CONFIG_REISERFS_CHECK is not set 3003# CONFIG_REISERFS_CHECK is not set
2891CONFIG_REISERFS_PROC_INFO=y 3004CONFIG_REISERFS_PROC_INFO=y
@@ -2898,6 +3011,7 @@ CONFIG_JFS_SECURITY=y
2898# CONFIG_JFS_DEBUG is not set 3011# CONFIG_JFS_DEBUG is not set
2899# CONFIG_JFS_STATISTICS is not set 3012# CONFIG_JFS_STATISTICS is not set
2900CONFIG_FS_POSIX_ACL=y 3013CONFIG_FS_POSIX_ACL=y
3014CONFIG_FILE_LOCKING=y
2901CONFIG_XFS_FS=m 3015CONFIG_XFS_FS=m
2902CONFIG_XFS_QUOTA=y 3016CONFIG_XFS_QUOTA=y
2903CONFIG_XFS_POSIX_ACL=y 3017CONFIG_XFS_POSIX_ACL=y
@@ -2911,6 +3025,7 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
2911CONFIG_OCFS2_FS_STATS=y 3025CONFIG_OCFS2_FS_STATS=y
2912# CONFIG_OCFS2_DEBUG_MASKLOG is not set 3026# CONFIG_OCFS2_DEBUG_MASKLOG is not set
2913# CONFIG_OCFS2_DEBUG_FS is not set 3027# CONFIG_OCFS2_DEBUG_FS is not set
3028# CONFIG_OCFS2_COMPAT_JBD is not set
2914CONFIG_DNOTIFY=y 3029CONFIG_DNOTIFY=y
2915CONFIG_INOTIFY=y 3030CONFIG_INOTIFY=y
2916CONFIG_INOTIFY_USER=y 3031CONFIG_INOTIFY_USER=y
@@ -2950,6 +3065,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
2950CONFIG_PROC_FS=y 3065CONFIG_PROC_FS=y
2951CONFIG_PROC_KCORE=y 3066CONFIG_PROC_KCORE=y
2952CONFIG_PROC_SYSCTL=y 3067CONFIG_PROC_SYSCTL=y
3068CONFIG_PROC_PAGE_MONITOR=y
2953CONFIG_SYSFS=y 3069CONFIG_SYSFS=y
2954CONFIG_TMPFS=y 3070CONFIG_TMPFS=y
2955CONFIG_TMPFS_POSIX_ACL=y 3071CONFIG_TMPFS_POSIX_ACL=y
@@ -2996,17 +3112,18 @@ CONFIG_NFS_ACL_SUPPORT=m
2996CONFIG_NFS_COMMON=y 3112CONFIG_NFS_COMMON=y
2997CONFIG_SUNRPC=m 3113CONFIG_SUNRPC=m
2998CONFIG_SUNRPC_GSS=m 3114CONFIG_SUNRPC_GSS=m
3115# CONFIG_SUNRPC_REGISTER_V4 is not set
2999CONFIG_RPCSEC_GSS_KRB5=m 3116CONFIG_RPCSEC_GSS_KRB5=m
3000CONFIG_RPCSEC_GSS_SPKM3=m 3117CONFIG_RPCSEC_GSS_SPKM3=m
3001# CONFIG_SMB_FS is not set 3118# CONFIG_SMB_FS is not set
3002CONFIG_CIFS=m 3119CONFIG_CIFS=m
3003# CONFIG_CIFS_STATS is not set 3120# CONFIG_CIFS_STATS is not set
3004CONFIG_CIFS_WEAK_PW_HASH=y 3121CONFIG_CIFS_WEAK_PW_HASH=y
3122CONFIG_CIFS_UPCALL=y
3005CONFIG_CIFS_XATTR=y 3123CONFIG_CIFS_XATTR=y
3006CONFIG_CIFS_POSIX=y 3124CONFIG_CIFS_POSIX=y
3007# CONFIG_CIFS_DEBUG2 is not set 3125# CONFIG_CIFS_DEBUG2 is not set
3008CONFIG_CIFS_EXPERIMENTAL=y 3126CONFIG_CIFS_EXPERIMENTAL=y
3009CONFIG_CIFS_UPCALL=y
3010CONFIG_CIFS_DFS_UPCALL=y 3127CONFIG_CIFS_DFS_UPCALL=y
3011CONFIG_NCP_FS=m 3128CONFIG_NCP_FS=m
3012CONFIG_NCPFS_PACKET_SIGNING=y 3129CONFIG_NCPFS_PACKET_SIGNING=y
@@ -3084,15 +3201,13 @@ CONFIG_NLS_KOI8_U=m
3084CONFIG_NLS_UTF8=m 3201CONFIG_NLS_UTF8=m
3085CONFIG_DLM=m 3202CONFIG_DLM=m
3086CONFIG_DLM_DEBUG=y 3203CONFIG_DLM_DEBUG=y
3087CONFIG_QE_GPIO=y
3088 3204
3089# 3205#
3090# Library routines 3206# Library routines
3091# 3207#
3092CONFIG_BITREVERSE=y 3208CONFIG_BITREVERSE=y
3093# CONFIG_GENERIC_FIND_FIRST_BIT is not set
3094CONFIG_CRC_CCITT=m 3209CONFIG_CRC_CCITT=m
3095CONFIG_CRC16=m 3210CONFIG_CRC16=y
3096CONFIG_CRC_T10DIF=y 3211CONFIG_CRC_T10DIF=y
3097CONFIG_CRC_ITU_T=m 3212CONFIG_CRC_ITU_T=m
3098CONFIG_CRC32=y 3213CONFIG_CRC32=y
@@ -3157,28 +3272,38 @@ CONFIG_DEBUG_SG=y
3157CONFIG_FRAME_POINTER=y 3272CONFIG_FRAME_POINTER=y
3158CONFIG_BOOT_PRINTK_DELAY=y 3273CONFIG_BOOT_PRINTK_DELAY=y
3159# CONFIG_RCU_TORTURE_TEST is not set 3274# CONFIG_RCU_TORTURE_TEST is not set
3275# CONFIG_RCU_CPU_STALL_DETECTOR is not set
3160# CONFIG_KPROBES_SANITY_TEST is not set 3276# CONFIG_KPROBES_SANITY_TEST is not set
3161# CONFIG_BACKTRACE_SELF_TEST is not set 3277# CONFIG_BACKTRACE_SELF_TEST is not set
3278# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
3162# CONFIG_LKDTM is not set 3279# CONFIG_LKDTM is not set
3163CONFIG_FAULT_INJECTION=y 3280CONFIG_FAULT_INJECTION=y
3164CONFIG_FAILSLAB=y 3281CONFIG_FAILSLAB=y
3165CONFIG_FAIL_PAGE_ALLOC=y 3282CONFIG_FAIL_PAGE_ALLOC=y
3166CONFIG_FAIL_MAKE_REQUEST=y 3283CONFIG_FAIL_MAKE_REQUEST=y
3284CONFIG_FAIL_IO_TIMEOUT=y
3167CONFIG_FAULT_INJECTION_DEBUG_FS=y 3285CONFIG_FAULT_INJECTION_DEBUG_FS=y
3168CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y 3286CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
3169CONFIG_LATENCYTOP=y 3287CONFIG_LATENCYTOP=y
3170CONFIG_SYSCTL_SYSCALL_CHECK=y 3288CONFIG_SYSCTL_SYSCALL_CHECK=y
3171CONFIG_HAVE_FTRACE=y 3289CONFIG_NOP_TRACER=y
3172CONFIG_HAVE_DYNAMIC_FTRACE=y 3290CONFIG_HAVE_FUNCTION_TRACER=y
3173CONFIG_TRACER_MAX_TRACE=y 3291CONFIG_TRACER_MAX_TRACE=y
3292CONFIG_RING_BUFFER=y
3174CONFIG_TRACING=y 3293CONFIG_TRACING=y
3175CONFIG_FTRACE=y 3294
3295#
3296# Tracers
3297#
3298CONFIG_FUNCTION_TRACER=y
3176CONFIG_SCHED_TRACER=y 3299CONFIG_SCHED_TRACER=y
3177CONFIG_CONTEXT_SWITCH_TRACER=y 3300CONFIG_CONTEXT_SWITCH_TRACER=y
3178CONFIG_DYNAMIC_FTRACE=y 3301# CONFIG_BOOT_TRACER is not set
3302CONFIG_STACK_TRACER=y
3179# CONFIG_FTRACE_STARTUP_TEST is not set 3303# CONFIG_FTRACE_STARTUP_TEST is not set
3180# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set 3304# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
3181# CONFIG_BUILD_DOCSRC is not set 3305# CONFIG_BUILD_DOCSRC is not set
3306CONFIG_DYNAMIC_PRINTK_DEBUG=y
3182# CONFIG_SAMPLES is not set 3307# CONFIG_SAMPLES is not set
3183CONFIG_HAVE_ARCH_KGDB=y 3308CONFIG_HAVE_ARCH_KGDB=y
3184# CONFIG_KGDB is not set 3309# CONFIG_KGDB is not set
@@ -3186,6 +3311,7 @@ CONFIG_DEBUG_STACKOVERFLOW=y
3186CONFIG_DEBUG_STACK_USAGE=y 3311CONFIG_DEBUG_STACK_USAGE=y
3187# CONFIG_CODE_PATCHING_SELFTEST is not set 3312# CONFIG_CODE_PATCHING_SELFTEST is not set
3188# CONFIG_FTR_FIXUP_SELFTEST is not set 3313# CONFIG_FTR_FIXUP_SELFTEST is not set
3314# CONFIG_MSI_BITMAP_SELFTEST is not set
3189CONFIG_XMON=y 3315CONFIG_XMON=y
3190# CONFIG_XMON_DEFAULT is not set 3316# CONFIG_XMON_DEFAULT is not set
3191CONFIG_XMON_DISASSEMBLY=y 3317CONFIG_XMON_DISASSEMBLY=y
@@ -3202,6 +3328,7 @@ CONFIG_BOOTX_TEXT=y
3202CONFIG_KEYS=y 3328CONFIG_KEYS=y
3203CONFIG_KEYS_DEBUG_PROC_KEYS=y 3329CONFIG_KEYS_DEBUG_PROC_KEYS=y
3204CONFIG_SECURITY=y 3330CONFIG_SECURITY=y
3331# CONFIG_SECURITYFS is not set
3205CONFIG_SECURITY_NETWORK=y 3332CONFIG_SECURITY_NETWORK=y
3206CONFIG_SECURITY_NETWORK_XFRM=y 3333CONFIG_SECURITY_NETWORK_XFRM=y
3207CONFIG_SECURITY_FILE_CAPABILITIES=y 3334CONFIG_SECURITY_FILE_CAPABILITIES=y
@@ -3226,10 +3353,12 @@ CONFIG_CRYPTO=y
3226# 3353#
3227# Crypto core or helper 3354# Crypto core or helper
3228# 3355#
3356# CONFIG_CRYPTO_FIPS is not set
3229CONFIG_CRYPTO_ALGAPI=y 3357CONFIG_CRYPTO_ALGAPI=y
3230CONFIG_CRYPTO_AEAD=m 3358CONFIG_CRYPTO_AEAD=y
3231CONFIG_CRYPTO_BLKCIPHER=m 3359CONFIG_CRYPTO_BLKCIPHER=y
3232CONFIG_CRYPTO_HASH=y 3360CONFIG_CRYPTO_HASH=y
3361CONFIG_CRYPTO_RNG=y
3233CONFIG_CRYPTO_MANAGER=y 3362CONFIG_CRYPTO_MANAGER=y
3234CONFIG_CRYPTO_GF128MUL=m 3363CONFIG_CRYPTO_GF128MUL=m
3235CONFIG_CRYPTO_NULL=m 3364CONFIG_CRYPTO_NULL=m
@@ -3303,6 +3432,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
3303# 3432#
3304CONFIG_CRYPTO_DEFLATE=m 3433CONFIG_CRYPTO_DEFLATE=m
3305CONFIG_CRYPTO_LZO=m 3434CONFIG_CRYPTO_LZO=m
3435
3436#
3437# Random Number Generation
3438#
3439# CONFIG_CRYPTO_ANSI_CPRNG is not set
3306CONFIG_CRYPTO_HW=y 3440CONFIG_CRYPTO_HW=y
3307CONFIG_CRYPTO_DEV_HIFN_795X=m 3441CONFIG_CRYPTO_DEV_HIFN_795X=m
3308CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y 3442CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index 7e17862c38b8..228099d77c3b 100644
--- a/arch/powerpc/configs/pq2fads_defconfig
+++ b/arch/powerpc/configs/pq2fads_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:13 2008 4# Sat Nov 8 12:39:47 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
@@ -48,13 +48,11 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
50CONFIG_OF=y 50CONFIG_OF=y
51CONFIG_PPC_UDBG_16550=y 51# CONFIG_PPC_UDBG_16550 is not set
52# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -94,7 +92,6 @@ CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 92CONFIG_PRINTK=y
95CONFIG_BUG=y 93CONFIG_BUG=y
96CONFIG_ELF_CORE=y 94CONFIG_ELF_CORE=y
97CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 95CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 96CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 97CONFIG_FUTEX=y
@@ -104,7 +101,9 @@ CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 101CONFIG_TIMERFD=y
105CONFIG_EVENTFD=y 102CONFIG_EVENTFD=y
106CONFIG_SHMEM=y 103CONFIG_SHMEM=y
104CONFIG_AIO=y
107CONFIG_VM_EVENT_COUNTERS=y 105CONFIG_VM_EVENT_COUNTERS=y
106CONFIG_PCI_QUIRKS=y
108CONFIG_SLUB_DEBUG=y 107CONFIG_SLUB_DEBUG=y
109# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
110CONFIG_SLUB=y 109CONFIG_SLUB=y
@@ -117,10 +116,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 116CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 117CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 118CONFIG_HAVE_ARCH_TRACEHOOK=y
120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122CONFIG_HAVE_CLK=y 119CONFIG_HAVE_CLK=y
123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
@@ -146,6 +142,7 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 143CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 144CONFIG_CLASSIC_RCU=y
145# CONFIG_FREEZER is not set
149 146
150# 147#
151# Platform support 148# Platform support
@@ -153,39 +150,36 @@ CONFIG_CLASSIC_RCU=y
153CONFIG_PPC_MULTIPLATFORM=y 150CONFIG_PPC_MULTIPLATFORM=y
154CONFIG_CLASSIC32=y 151CONFIG_CLASSIC32=y
155# CONFIG_PPC_CHRP is not set 152# CONFIG_PPC_CHRP is not set
156# CONFIG_PPC_PMAC is not set
157# CONFIG_MPC5121_ADS is not set 153# CONFIG_MPC5121_ADS is not set
158# CONFIG_MPC5121_GENERIC is not set 154# CONFIG_MPC5121_GENERIC is not set
159# CONFIG_PPC_MPC52xx is not set 155# CONFIG_PPC_MPC52xx is not set
156# CONFIG_PPC_PMAC is not set
160# CONFIG_PPC_CELL is not set 157# CONFIG_PPC_CELL is not set
161# CONFIG_PPC_CELL_NATIVE is not set 158# CONFIG_PPC_CELL_NATIVE is not set
162CONFIG_PPC_82xx=y 159CONFIG_PPC_82xx=y
163# CONFIG_MPC8272_ADS is not set 160# CONFIG_MPC8272_ADS is not set
164CONFIG_PQ2FADS=y 161CONFIG_PQ2FADS=y
165# CONFIG_EP8248E is not set 162# CONFIG_EP8248E is not set
163# CONFIG_MGCOGE is not set
166CONFIG_PQ2ADS=y 164CONFIG_PQ2ADS=y
167CONFIG_8260=y 165CONFIG_8260=y
168CONFIG_PQ2_ADS_PCI_PIC=y 166CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set 167# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set 168# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set 169# CONFIG_EMBEDDED6xx is not set
172CONFIG_PPC_NATIVE=y
173# CONFIG_UDBG_RTAS_CONSOLE is not set
174# CONFIG_IPIC is not set 170# CONFIG_IPIC is not set
175CONFIG_MPIC=y 171# CONFIG_MPIC is not set
176# CONFIG_MPIC_WEIRD is not set 172# CONFIG_MPIC_WEIRD is not set
177CONFIG_PPC_I8259=y 173# CONFIG_PPC_I8259 is not set
178CONFIG_PPC_RTAS=y 174# CONFIG_PPC_RTAS is not set
179# CONFIG_RTAS_ERROR_LOGGING is not set
180CONFIG_RTAS_PROC=y
181# CONFIG_MMIO_NVRAM is not set 175# CONFIG_MMIO_NVRAM is not set
182CONFIG_PPC_MPC106=y 176# CONFIG_PPC_MPC106 is not set
183# CONFIG_PPC_970_NAP is not set 177# CONFIG_PPC_970_NAP is not set
184# CONFIG_PPC_INDIRECT_IO is not set 178# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 179# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 180# CONFIG_CPU_FREQ is not set
187# CONFIG_PPC601_SYNC_FIX is not set
188# CONFIG_TAU is not set 181# CONFIG_TAU is not set
182# CONFIG_QUICC_ENGINE is not set
189CONFIG_CPM2=y 183CONFIG_CPM2=y
190# CONFIG_FSL_ULI1575 is not set 184# CONFIG_FSL_ULI1575 is not set
191CONFIG_CPM=y 185CONFIG_CPM=y
@@ -208,6 +202,8 @@ CONFIG_PREEMPT_NONE=y
208# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
209# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
210CONFIG_BINFMT_ELF=y 204CONFIG_BINFMT_ELF=y
205# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
206# CONFIG_HAVE_AOUT is not set
211CONFIG_BINFMT_MISC=y 207CONFIG_BINFMT_MISC=y
212# CONFIG_IOMMU_HELPER is not set 208# CONFIG_IOMMU_HELPER is not set
213CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -217,15 +213,15 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
217CONFIG_ARCH_POPULATES_NODE_MAP=y 213CONFIG_ARCH_POPULATES_NODE_MAP=y
218CONFIG_FLATMEM=y 214CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 216CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 217CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y 218CONFIG_MIGRATION=y
225# CONFIG_RESOURCES_64BIT is not set 219# CONFIG_RESOURCES_64BIT is not set
220# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
227CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
228CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_UNEVICTABLE_LRU=y
229CONFIG_FORCE_MAX_ZONEORDER=11 225CONFIG_FORCE_MAX_ZONEORDER=11
230CONFIG_PROC_DEVICETREE=y 226CONFIG_PROC_DEVICETREE=y
231# CONFIG_CMDLINE_BOOL is not set 227# CONFIG_CMDLINE_BOOL is not set
@@ -237,7 +233,6 @@ CONFIG_ISA_DMA_API=y
237# 233#
238# Bus options 234# Bus options
239# 235#
240# CONFIG_ISA is not set
241CONFIG_ZONE_DMA=y 236CONFIG_ZONE_DMA=y
242CONFIG_PPC_INDIRECT_PCI=y 237CONFIG_PPC_INDIRECT_PCI=y
243CONFIG_FSL_SOC=y 238CONFIG_FSL_SOC=y
@@ -250,7 +245,7 @@ CONFIG_PCI_8260=y
250# CONFIG_PCIEPORTBUS is not set 245# CONFIG_PCIEPORTBUS is not set
251CONFIG_ARCH_SUPPORTS_MSI=y 246CONFIG_ARCH_SUPPORTS_MSI=y
252# CONFIG_PCI_MSI is not set 247# CONFIG_PCI_MSI is not set
253CONFIG_PCI_LEGACY=y 248# CONFIG_PCI_LEGACY is not set
254# CONFIG_PCI_DEBUG is not set 249# CONFIG_PCI_DEBUG is not set
255# CONFIG_PCCARD is not set 250# CONFIG_PCCARD is not set
256# CONFIG_HOTPLUG_PCI is not set 251# CONFIG_HOTPLUG_PCI is not set
@@ -306,7 +301,6 @@ CONFIG_INET_TCP_DIAG=y
306# CONFIG_TCP_CONG_ADVANCED is not set 301# CONFIG_TCP_CONG_ADVANCED is not set
307CONFIG_TCP_CONG_CUBIC=y 302CONFIG_TCP_CONG_CUBIC=y
308CONFIG_DEFAULT_TCP_CONG="cubic" 303CONFIG_DEFAULT_TCP_CONG="cubic"
309# CONFIG_IP_VS is not set
310CONFIG_IPV6=y 304CONFIG_IPV6=y
311# CONFIG_IPV6_PRIVACY is not set 305# CONFIG_IPV6_PRIVACY is not set
312# CONFIG_IPV6_ROUTER_PREF is not set 306# CONFIG_IPV6_ROUTER_PREF is not set
@@ -333,10 +327,12 @@ CONFIG_NETFILTER_ADVANCED=y
333# CONFIG_NETFILTER_NETLINK_LOG is not set 327# CONFIG_NETFILTER_NETLINK_LOG is not set
334# CONFIG_NF_CONNTRACK is not set 328# CONFIG_NF_CONNTRACK is not set
335# CONFIG_NETFILTER_XTABLES is not set 329# CONFIG_NETFILTER_XTABLES is not set
330# CONFIG_IP_VS is not set
336 331
337# 332#
338# IP: Netfilter Configuration 333# IP: Netfilter Configuration
339# 334#
335# CONFIG_NF_DEFRAG_IPV4 is not set
340# CONFIG_IP_NF_QUEUE is not set 336# CONFIG_IP_NF_QUEUE is not set
341# CONFIG_IP_NF_IPTABLES is not set 337# CONFIG_IP_NF_IPTABLES is not set
342# CONFIG_IP_NF_ARPTABLES is not set 338# CONFIG_IP_NF_ARPTABLES is not set
@@ -363,11 +359,10 @@ CONFIG_NETFILTER_ADVANCED=y
363# CONFIG_CAN is not set 359# CONFIG_CAN is not set
364# CONFIG_IRDA is not set 360# CONFIG_IRDA is not set
365# CONFIG_BT is not set 361# CONFIG_BT is not set
366 362# CONFIG_PHONET is not set
367# 363CONFIG_WIRELESS=y
368# Wireless
369#
370# CONFIG_CFG80211 is not set 364# CONFIG_CFG80211 is not set
365CONFIG_WIRELESS_OLD_REGULATORY=y
371# CONFIG_WIRELESS_EXT is not set 366# CONFIG_WIRELESS_EXT is not set
372# CONFIG_MAC80211 is not set 367# CONFIG_MAC80211 is not set
373# CONFIG_IEEE80211 is not set 368# CONFIG_IEEE80211 is not set
@@ -473,7 +468,6 @@ CONFIG_OF_GPIO=y
473# CONFIG_PARPORT is not set 468# CONFIG_PARPORT is not set
474CONFIG_BLK_DEV=y 469CONFIG_BLK_DEV=y
475# CONFIG_BLK_DEV_FD is not set 470# CONFIG_BLK_DEV_FD is not set
476# CONFIG_MAC_FLOPPY is not set
477# CONFIG_BLK_CPQ_DA is not set 471# CONFIG_BLK_CPQ_DA is not set
478# CONFIG_BLK_CPQ_CISS_DA is not set 472# CONFIG_BLK_CPQ_CISS_DA is not set
479# CONFIG_BLK_DEV_DAC960 is not set 473# CONFIG_BLK_DEV_DAC960 is not set
@@ -494,17 +488,16 @@ CONFIG_MISC_DEVICES=y
494# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
495CONFIG_HAVE_IDE=y 489CONFIG_HAVE_IDE=y
496CONFIG_IDE=y 490CONFIG_IDE=y
497CONFIG_BLK_DEV_IDE=y
498 491
499# 492#
500# Please see Documentation/ide/ide.txt for help/info on IDE drives 493# Please see Documentation/ide/ide.txt for help/info on IDE drives
501# 494#
502# CONFIG_BLK_DEV_IDE_SATA is not set 495# CONFIG_BLK_DEV_IDE_SATA is not set
503CONFIG_BLK_DEV_IDEDISK=y 496CONFIG_IDE_GD=y
504# CONFIG_IDEDISK_MULTI_MODE is not set 497CONFIG_IDE_GD_ATA=y
498# CONFIG_IDE_GD_ATAPI is not set
505# CONFIG_BLK_DEV_IDECD is not set 499# CONFIG_BLK_DEV_IDECD is not set
506# CONFIG_BLK_DEV_IDETAPE is not set 500# CONFIG_BLK_DEV_IDETAPE is not set
507# CONFIG_BLK_DEV_IDEFLOPPY is not set
508# CONFIG_IDE_TASK_IOCTL is not set 501# CONFIG_IDE_TASK_IOCTL is not set
509CONFIG_IDE_PROC_FS=y 502CONFIG_IDE_PROC_FS=y
510 503
@@ -539,7 +532,6 @@ CONFIG_IDE_PROC_FS=y
539# CONFIG_BLK_DEV_TRM290 is not set 532# CONFIG_BLK_DEV_TRM290 is not set
540# CONFIG_BLK_DEV_VIA82CXXX is not set 533# CONFIG_BLK_DEV_VIA82CXXX is not set
541# CONFIG_BLK_DEV_TC86C001 is not set 534# CONFIG_BLK_DEV_TC86C001 is not set
542# CONFIG_BLK_DEV_IDE_PMAC is not set
543# CONFIG_BLK_DEV_IDEDMA is not set 535# CONFIG_BLK_DEV_IDEDMA is not set
544 536
545# 537#
@@ -590,8 +582,6 @@ CONFIG_MDIO_BITBANG=y
590# CONFIG_MDIO_OF_GPIO is not set 582# CONFIG_MDIO_OF_GPIO is not set
591CONFIG_NET_ETHERNET=y 583CONFIG_NET_ETHERNET=y
592CONFIG_MII=y 584CONFIG_MII=y
593# CONFIG_MACE is not set
594# CONFIG_BMAC is not set
595# CONFIG_HAPPYMEAL is not set 585# CONFIG_HAPPYMEAL is not set
596# CONFIG_SUNGEM is not set 586# CONFIG_SUNGEM is not set
597# CONFIG_CASSINI is not set 587# CONFIG_CASSINI is not set
@@ -602,8 +592,12 @@ CONFIG_MII=y
602# CONFIG_IBM_NEW_EMAC_RGMII is not set 592# CONFIG_IBM_NEW_EMAC_RGMII is not set
603# CONFIG_IBM_NEW_EMAC_TAH is not set 593# CONFIG_IBM_NEW_EMAC_TAH is not set
604# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 594# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
595# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
596# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
597# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
605# CONFIG_NET_PCI is not set 598# CONFIG_NET_PCI is not set
606# CONFIG_B44 is not set 599# CONFIG_B44 is not set
600# CONFIG_ATL2 is not set
607CONFIG_FS_ENET=y 601CONFIG_FS_ENET=y
608# CONFIG_FS_ENET_HAS_SCC is not set 602# CONFIG_FS_ENET_HAS_SCC is not set
609CONFIG_FS_ENET_HAS_FCC=y 603CONFIG_FS_ENET_HAS_FCC=y
@@ -626,18 +620,23 @@ CONFIG_NETDEV_1000=y
626# CONFIG_GIANFAR is not set 620# CONFIG_GIANFAR is not set
627# CONFIG_MV643XX_ETH is not set 621# CONFIG_MV643XX_ETH is not set
628# CONFIG_QLA3XXX is not set 622# CONFIG_QLA3XXX is not set
623# CONFIG_ATL1 is not set
624# CONFIG_JME is not set
629CONFIG_NETDEV_10000=y 625CONFIG_NETDEV_10000=y
630# CONFIG_CHELSIO_T1 is not set 626# CONFIG_CHELSIO_T1 is not set
631# CONFIG_CHELSIO_T3 is not set 627# CONFIG_CHELSIO_T3 is not set
628# CONFIG_ENIC is not set
632# CONFIG_IXGBE is not set 629# CONFIG_IXGBE is not set
633# CONFIG_IXGB is not set 630# CONFIG_IXGB is not set
634# CONFIG_S2IO is not set 631# CONFIG_S2IO is not set
635# CONFIG_MYRI10GE is not set 632# CONFIG_MYRI10GE is not set
636# CONFIG_NETXEN_NIC is not set 633# CONFIG_NETXEN_NIC is not set
637# CONFIG_NIU is not set 634# CONFIG_NIU is not set
635# CONFIG_MLX4_EN is not set
638# CONFIG_MLX4_CORE is not set 636# CONFIG_MLX4_CORE is not set
639# CONFIG_TEHUTI is not set 637# CONFIG_TEHUTI is not set
640# CONFIG_BNX2X is not set 638# CONFIG_BNX2X is not set
639# CONFIG_QLGE is not set
641# CONFIG_SFC is not set 640# CONFIG_SFC is not set
642# CONFIG_TR is not set 641# CONFIG_TR is not set
643 642
@@ -698,6 +697,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
698CONFIG_MOUSE_PS2_SYNAPTICS=y 697CONFIG_MOUSE_PS2_SYNAPTICS=y
699CONFIG_MOUSE_PS2_LIFEBOOK=y 698CONFIG_MOUSE_PS2_LIFEBOOK=y
700CONFIG_MOUSE_PS2_TRACKPOINT=y 699CONFIG_MOUSE_PS2_TRACKPOINT=y
700# CONFIG_MOUSE_PS2_ELANTECH is not set
701# CONFIG_MOUSE_PS2_TOUCHKIT is not set 701# CONFIG_MOUSE_PS2_TOUCHKIT is not set
702# CONFIG_MOUSE_SERIAL is not set 702# CONFIG_MOUSE_SERIAL is not set
703# CONFIG_MOUSE_APPLETOUCH is not set 703# CONFIG_MOUSE_APPLETOUCH is not set
@@ -739,21 +739,12 @@ CONFIG_DEVKMEM=y
739# CONFIG_SERIAL_UARTLITE is not set 739# CONFIG_SERIAL_UARTLITE is not set
740CONFIG_SERIAL_CORE=y 740CONFIG_SERIAL_CORE=y
741CONFIG_SERIAL_CORE_CONSOLE=y 741CONFIG_SERIAL_CORE_CONSOLE=y
742# CONFIG_SERIAL_PMACZILOG is not set
743CONFIG_SERIAL_CPM=y 742CONFIG_SERIAL_CPM=y
744CONFIG_SERIAL_CPM_CONSOLE=y 743CONFIG_SERIAL_CPM_CONSOLE=y
745CONFIG_SERIAL_CPM_SCC1=y
746# CONFIG_SERIAL_CPM_SCC2 is not set
747# CONFIG_SERIAL_CPM_SCC3 is not set
748CONFIG_SERIAL_CPM_SCC4=y
749# CONFIG_SERIAL_CPM_SMC1 is not set
750# CONFIG_SERIAL_CPM_SMC2 is not set
751# CONFIG_SERIAL_JSM is not set 744# CONFIG_SERIAL_JSM is not set
752CONFIG_UNIX98_PTYS=y 745CONFIG_UNIX98_PTYS=y
753CONFIG_LEGACY_PTYS=y 746CONFIG_LEGACY_PTYS=y
754CONFIG_LEGACY_PTY_COUNT=256 747CONFIG_LEGACY_PTY_COUNT=256
755# CONFIG_BRIQ_PANEL is not set
756# CONFIG_HVC_RTAS is not set
757# CONFIG_IPMI_HANDLER is not set 748# CONFIG_IPMI_HANDLER is not set
758CONFIG_HW_RANDOM=y 749CONFIG_HW_RANDOM=y
759# CONFIG_NVRAM is not set 750# CONFIG_NVRAM is not set
@@ -803,6 +794,14 @@ CONFIG_SSB_POSSIBLE=y
803# CONFIG_MFD_TMIO is not set 794# CONFIG_MFD_TMIO is not set
804 795
805# 796#
797# Voltage and Current regulators
798#
799# CONFIG_REGULATOR is not set
800# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
801# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
802# CONFIG_REGULATOR_BQ24022 is not set
803
804#
806# Multimedia devices 805# Multimedia devices
807# 806#
808 807
@@ -850,20 +849,22 @@ CONFIG_USB_ARCH_HAS_EHCI=y
850CONFIG_USB_GADGET=y 849CONFIG_USB_GADGET=y
851# CONFIG_USB_GADGET_DEBUG is not set 850# CONFIG_USB_GADGET_DEBUG is not set
852# CONFIG_USB_GADGET_DEBUG_FILES is not set 851# CONFIG_USB_GADGET_DEBUG_FILES is not set
852CONFIG_USB_GADGET_VBUS_DRAW=2
853CONFIG_USB_GADGET_SELECTED=y 853CONFIG_USB_GADGET_SELECTED=y
854# CONFIG_USB_GADGET_AMD5536UDC is not set 854# CONFIG_USB_GADGET_AT91 is not set
855# CONFIG_USB_GADGET_ATMEL_USBA is not set 855# CONFIG_USB_GADGET_ATMEL_USBA is not set
856# CONFIG_USB_GADGET_FSL_USB2 is not set 856# CONFIG_USB_GADGET_FSL_USB2 is not set
857# CONFIG_USB_GADGET_NET2280 is not set 857# CONFIG_USB_GADGET_LH7A40X is not set
858# CONFIG_USB_GADGET_OMAP is not set
858# CONFIG_USB_GADGET_PXA25X is not set 859# CONFIG_USB_GADGET_PXA25X is not set
860# CONFIG_USB_GADGET_PXA27X is not set
861# CONFIG_USB_GADGET_S3C2410 is not set
859CONFIG_USB_GADGET_M66592=y 862CONFIG_USB_GADGET_M66592=y
860CONFIG_USB_M66592=y 863CONFIG_USB_M66592=y
861# CONFIG_USB_GADGET_PXA27X is not set 864# CONFIG_USB_GADGET_AMD5536UDC is not set
865# CONFIG_USB_GADGET_FSL_QE is not set
866# CONFIG_USB_GADGET_NET2280 is not set
862# CONFIG_USB_GADGET_GOKU is not set 867# CONFIG_USB_GADGET_GOKU is not set
863# CONFIG_USB_GADGET_LH7A40X is not set
864# CONFIG_USB_GADGET_OMAP is not set
865# CONFIG_USB_GADGET_S3C2410 is not set
866# CONFIG_USB_GADGET_AT91 is not set
867# CONFIG_USB_GADGET_DUMMY_HCD is not set 868# CONFIG_USB_GADGET_DUMMY_HCD is not set
868CONFIG_USB_GADGET_DUALSPEED=y 869CONFIG_USB_GADGET_DUALSPEED=y
869# CONFIG_USB_ZERO is not set 870# CONFIG_USB_ZERO is not set
@@ -883,6 +884,7 @@ CONFIG_USB_ETH_RNDIS=y
883# CONFIG_RTC_CLASS is not set 884# CONFIG_RTC_CLASS is not set
884# CONFIG_DMADEVICES is not set 885# CONFIG_DMADEVICES is not set
885# CONFIG_UIO is not set 886# CONFIG_UIO is not set
887# CONFIG_STAGING is not set
886 888
887# 889#
888# File systems 890# File systems
@@ -894,11 +896,13 @@ CONFIG_EXT3_FS=y
894CONFIG_EXT3_FS_XATTR=y 896CONFIG_EXT3_FS_XATTR=y
895# CONFIG_EXT3_FS_POSIX_ACL is not set 897# CONFIG_EXT3_FS_POSIX_ACL is not set
896# CONFIG_EXT3_FS_SECURITY is not set 898# CONFIG_EXT3_FS_SECURITY is not set
899# CONFIG_EXT4_FS is not set
897CONFIG_JBD=y 900CONFIG_JBD=y
898CONFIG_FS_MBCACHE=y 901CONFIG_FS_MBCACHE=y
899# CONFIG_REISERFS_FS is not set 902# CONFIG_REISERFS_FS is not set
900# CONFIG_JFS_FS is not set 903# CONFIG_JFS_FS is not set
901CONFIG_FS_POSIX_ACL=y 904CONFIG_FS_POSIX_ACL=y
905CONFIG_FILE_LOCKING=y
902# CONFIG_XFS_FS is not set 906# CONFIG_XFS_FS is not set
903# CONFIG_OCFS2_FS is not set 907# CONFIG_OCFS2_FS is not set
904CONFIG_DNOTIFY=y 908CONFIG_DNOTIFY=y
@@ -928,6 +932,7 @@ CONFIG_AUTOFS4_FS=y
928CONFIG_PROC_FS=y 932CONFIG_PROC_FS=y
929CONFIG_PROC_KCORE=y 933CONFIG_PROC_KCORE=y
930CONFIG_PROC_SYSCTL=y 934CONFIG_PROC_SYSCTL=y
935CONFIG_PROC_PAGE_MONITOR=y
931CONFIG_SYSFS=y 936CONFIG_SYSFS=y
932CONFIG_TMPFS=y 937CONFIG_TMPFS=y
933# CONFIG_TMPFS_POSIX_ACL is not set 938# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1030,7 +1035,6 @@ CONFIG_NLS_UTF8=y
1030# Library routines 1035# Library routines
1031# 1036#
1032CONFIG_BITREVERSE=y 1037CONFIG_BITREVERSE=y
1033# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1034CONFIG_CRC_CCITT=y 1038CONFIG_CRC_CCITT=y
1035# CONFIG_CRC16 is not set 1039# CONFIG_CRC16 is not set
1036# CONFIG_CRC_T10DIF is not set 1040# CONFIG_CRC_T10DIF is not set
@@ -1084,15 +1088,23 @@ CONFIG_DEBUG_INFO=y
1084# CONFIG_DEBUG_SG is not set 1088# CONFIG_DEBUG_SG is not set
1085# CONFIG_BOOT_PRINTK_DELAY is not set 1089# CONFIG_BOOT_PRINTK_DELAY is not set
1086# CONFIG_RCU_TORTURE_TEST is not set 1090# CONFIG_RCU_TORTURE_TEST is not set
1091# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1087# CONFIG_BACKTRACE_SELF_TEST is not set 1092# CONFIG_BACKTRACE_SELF_TEST is not set
1093# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1088# CONFIG_FAULT_INJECTION is not set 1094# CONFIG_FAULT_INJECTION is not set
1089# CONFIG_LATENCYTOP is not set 1095# CONFIG_LATENCYTOP is not set
1090CONFIG_SYSCTL_SYSCALL_CHECK=y 1096CONFIG_SYSCTL_SYSCALL_CHECK=y
1091CONFIG_HAVE_FTRACE=y 1097CONFIG_HAVE_FUNCTION_TRACER=y
1092CONFIG_HAVE_DYNAMIC_FTRACE=y 1098
1093# CONFIG_FTRACE is not set 1099#
1100# Tracers
1101#
1102# CONFIG_FUNCTION_TRACER is not set
1094# CONFIG_SCHED_TRACER is not set 1103# CONFIG_SCHED_TRACER is not set
1095# CONFIG_CONTEXT_SWITCH_TRACER is not set 1104# CONFIG_CONTEXT_SWITCH_TRACER is not set
1105# CONFIG_BOOT_TRACER is not set
1106# CONFIG_STACK_TRACER is not set
1107# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1096# CONFIG_SAMPLES is not set 1108# CONFIG_SAMPLES is not set
1097CONFIG_HAVE_ARCH_KGDB=y 1109CONFIG_HAVE_ARCH_KGDB=y
1098# CONFIG_DEBUG_STACKOVERFLOW is not set 1110# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1100,6 +1112,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1100# CONFIG_DEBUG_PAGEALLOC is not set 1112# CONFIG_DEBUG_PAGEALLOC is not set
1101# CONFIG_CODE_PATCHING_SELFTEST is not set 1113# CONFIG_CODE_PATCHING_SELFTEST is not set
1102# CONFIG_FTR_FIXUP_SELFTEST is not set 1114# CONFIG_FTR_FIXUP_SELFTEST is not set
1115# CONFIG_MSI_BITMAP_SELFTEST is not set
1103# CONFIG_XMON is not set 1116# CONFIG_XMON is not set
1104# CONFIG_IRQSTACKS is not set 1117# CONFIG_IRQSTACKS is not set
1105CONFIG_BDI_SWITCH=y 1118CONFIG_BDI_SWITCH=y
@@ -1111,14 +1124,19 @@ CONFIG_BDI_SWITCH=y
1111# 1124#
1112# CONFIG_KEYS is not set 1125# CONFIG_KEYS is not set
1113# CONFIG_SECURITY is not set 1126# CONFIG_SECURITY is not set
1127# CONFIG_SECURITYFS is not set
1114# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1128# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1115CONFIG_CRYPTO=y 1129CONFIG_CRYPTO=y
1116 1130
1117# 1131#
1118# Crypto core or helper 1132# Crypto core or helper
1119# 1133#
1134# CONFIG_CRYPTO_FIPS is not set
1120CONFIG_CRYPTO_ALGAPI=y 1135CONFIG_CRYPTO_ALGAPI=y
1136CONFIG_CRYPTO_AEAD=y
1121CONFIG_CRYPTO_BLKCIPHER=y 1137CONFIG_CRYPTO_BLKCIPHER=y
1138CONFIG_CRYPTO_HASH=y
1139CONFIG_CRYPTO_RNG=y
1122CONFIG_CRYPTO_MANAGER=y 1140CONFIG_CRYPTO_MANAGER=y
1123# CONFIG_CRYPTO_NULL is not set 1141# CONFIG_CRYPTO_NULL is not set
1124# CONFIG_CRYPTO_CRYPTD is not set 1142# CONFIG_CRYPTO_CRYPTD is not set
@@ -1185,6 +1203,11 @@ CONFIG_CRYPTO_DES=y
1185# 1203#
1186# CONFIG_CRYPTO_DEFLATE is not set 1204# CONFIG_CRYPTO_DEFLATE is not set
1187# CONFIG_CRYPTO_LZO is not set 1205# CONFIG_CRYPTO_LZO is not set
1206
1207#
1208# Random Number Generation
1209#
1210# CONFIG_CRYPTO_ANSI_CPRNG is not set
1188CONFIG_CRYPTO_HW=y 1211CONFIG_CRYPTO_HW=y
1189# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1212# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1190# CONFIG_CRYPTO_DEV_TALITOS is not set 1213# CONFIG_CRYPTO_DEV_TALITOS is not set
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index 01b54eac1ff6..6046dc0cbd82 100644
--- a/arch/powerpc/configs/prpmc2800_defconfig
+++ b/arch/powerpc/configs/prpmc2800_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:14 2008 4# Sat Nov 8 12:39:48 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -24,7 +24,7 @@ CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_CHECK_CACHE_COHERENCY=y 24CONFIG_CHECK_CACHE_COHERENCY=y
25CONFIG_PPC32=y 25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32 26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=y 27# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
28CONFIG_MMU=y 28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y 29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y 30CONFIG_GENERIC_TIME=y
@@ -110,7 +110,9 @@ CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 112CONFIG_SHMEM=y
113CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 114CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 116CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
116CONFIG_SLUB=y 118CONFIG_SLUB=y
@@ -123,10 +125,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 127CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_DMA_ATTRS is not set
127# CONFIG_USE_GENERIC_SMP_HELPERS is not set
128# CONFIG_HAVE_CLK is not set
129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
@@ -153,6 +151,7 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
155CONFIG_CLASSIC_RCU=y 153CONFIG_CLASSIC_RCU=y
154# CONFIG_FREEZER is not set
156 155
157# 156#
158# Platform support 157# Platform support
@@ -210,6 +209,8 @@ CONFIG_PREEMPT_NONE=y
210# CONFIG_PREEMPT_VOLUNTARY is not set 209# CONFIG_PREEMPT_VOLUNTARY is not set
211# CONFIG_PREEMPT is not set 210# CONFIG_PREEMPT is not set
212CONFIG_BINFMT_ELF=y 211CONFIG_BINFMT_ELF=y
212# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
213# CONFIG_HAVE_AOUT is not set
213CONFIG_BINFMT_MISC=y 214CONFIG_BINFMT_MISC=y
214# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -224,15 +225,15 @@ CONFIG_FLATMEM_MANUAL=y
224# CONFIG_SPARSEMEM_MANUAL is not set 225# CONFIG_SPARSEMEM_MANUAL is not set
225CONFIG_FLATMEM=y 226CONFIG_FLATMEM=y
226CONFIG_FLAT_NODE_MEM_MAP=y 227CONFIG_FLAT_NODE_MEM_MAP=y
227# CONFIG_SPARSEMEM_STATIC is not set
228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
229CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
232# CONFIG_RESOURCES_64BIT is not set 231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y
236CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
238# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
@@ -253,7 +254,7 @@ CONFIG_PCI_SYSCALL=y
253# CONFIG_PCIEPORTBUS is not set 254# CONFIG_PCIEPORTBUS is not set
254CONFIG_ARCH_SUPPORTS_MSI=y 255CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 256# CONFIG_PCI_MSI is not set
256CONFIG_PCI_LEGACY=y 257# CONFIG_PCI_LEGACY is not set
257# CONFIG_PCCARD is not set 258# CONFIG_PCCARD is not set
258# CONFIG_HOTPLUG_PCI is not set 259# CONFIG_HOTPLUG_PCI is not set
259# CONFIG_HAS_RAPIDIO is not set 260# CONFIG_HAS_RAPIDIO is not set
@@ -323,6 +324,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
323# CONFIG_TIPC is not set 324# CONFIG_TIPC is not set
324# CONFIG_ATM is not set 325# CONFIG_ATM is not set
325# CONFIG_BRIDGE is not set 326# CONFIG_BRIDGE is not set
327# CONFIG_NET_DSA is not set
326# CONFIG_VLAN_8021Q is not set 328# CONFIG_VLAN_8021Q is not set
327# CONFIG_DECNET is not set 329# CONFIG_DECNET is not set
328# CONFIG_LLC2 is not set 330# CONFIG_LLC2 is not set
@@ -343,11 +345,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_IRDA is not set 345# CONFIG_IRDA is not set
344# CONFIG_BT is not set 346# CONFIG_BT is not set
345# CONFIG_AF_RXRPC is not set 347# CONFIG_AF_RXRPC is not set
346 348# CONFIG_PHONET is not set
347# 349CONFIG_WIRELESS=y
348# Wireless
349#
350# CONFIG_CFG80211 is not set 350# CONFIG_CFG80211 is not set
351CONFIG_WIRELESS_OLD_REGULATORY=y
351# CONFIG_WIRELESS_EXT is not set 352# CONFIG_WIRELESS_EXT is not set
352# CONFIG_MAC80211 is not set 353# CONFIG_MAC80211 is not set
353# CONFIG_IEEE80211 is not set 354# CONFIG_IEEE80211 is not set
@@ -478,17 +479,16 @@ CONFIG_MISC_DEVICES=y
478# CONFIG_HP_ILO is not set 479# CONFIG_HP_ILO is not set
479CONFIG_HAVE_IDE=y 480CONFIG_HAVE_IDE=y
480CONFIG_IDE=y 481CONFIG_IDE=y
481CONFIG_BLK_DEV_IDE=y
482 482
483# 483#
484# Please see Documentation/ide/ide.txt for help/info on IDE drives 484# Please see Documentation/ide/ide.txt for help/info on IDE drives
485# 485#
486# CONFIG_BLK_DEV_IDE_SATA is not set 486# CONFIG_BLK_DEV_IDE_SATA is not set
487CONFIG_BLK_DEV_IDEDISK=y 487CONFIG_IDE_GD=y
488# CONFIG_IDEDISK_MULTI_MODE is not set 488CONFIG_IDE_GD_ATA=y
489# CONFIG_IDE_GD_ATAPI is not set
489# CONFIG_BLK_DEV_IDECD is not set 490# CONFIG_BLK_DEV_IDECD is not set
490# CONFIG_BLK_DEV_IDETAPE is not set 491# CONFIG_BLK_DEV_IDETAPE is not set
491# CONFIG_BLK_DEV_IDEFLOPPY is not set
492# CONFIG_BLK_DEV_IDESCSI is not set 492# CONFIG_BLK_DEV_IDESCSI is not set
493# CONFIG_IDE_TASK_IOCTL is not set 493# CONFIG_IDE_TASK_IOCTL is not set
494CONFIG_IDE_PROC_FS=y 494CONFIG_IDE_PROC_FS=y
@@ -721,6 +721,9 @@ CONFIG_MII=y
721# CONFIG_IBM_NEW_EMAC_RGMII is not set 721# CONFIG_IBM_NEW_EMAC_RGMII is not set
722# CONFIG_IBM_NEW_EMAC_TAH is not set 722# CONFIG_IBM_NEW_EMAC_TAH is not set
723# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 723# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
724# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
725# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
726# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
724CONFIG_NET_PCI=y 727CONFIG_NET_PCI=y
725# CONFIG_PCNET32 is not set 728# CONFIG_PCNET32 is not set
726# CONFIG_AMD8111_ETH is not set 729# CONFIG_AMD8111_ETH is not set
@@ -745,11 +748,11 @@ CONFIG_8139TOO=y
745# CONFIG_TLAN is not set 748# CONFIG_TLAN is not set
746# CONFIG_VIA_RHINE is not set 749# CONFIG_VIA_RHINE is not set
747# CONFIG_SC92031 is not set 750# CONFIG_SC92031 is not set
751# CONFIG_ATL2 is not set
748CONFIG_NETDEV_1000=y 752CONFIG_NETDEV_1000=y
749# CONFIG_ACENIC is not set 753# CONFIG_ACENIC is not set
750# CONFIG_DL2K is not set 754# CONFIG_DL2K is not set
751CONFIG_E1000=y 755CONFIG_E1000=y
752# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
753# CONFIG_E1000E is not set 756# CONFIG_E1000E is not set
754# CONFIG_IP1000 is not set 757# CONFIG_IP1000 is not set
755# CONFIG_IGB is not set 758# CONFIG_IGB is not set
@@ -767,18 +770,22 @@ CONFIG_MV643XX_ETH=y
767# CONFIG_QLA3XXX is not set 770# CONFIG_QLA3XXX is not set
768# CONFIG_ATL1 is not set 771# CONFIG_ATL1 is not set
769# CONFIG_ATL1E is not set 772# CONFIG_ATL1E is not set
773# CONFIG_JME is not set
770CONFIG_NETDEV_10000=y 774CONFIG_NETDEV_10000=y
771# CONFIG_CHELSIO_T1 is not set 775# CONFIG_CHELSIO_T1 is not set
772# CONFIG_CHELSIO_T3 is not set 776# CONFIG_CHELSIO_T3 is not set
777# CONFIG_ENIC is not set
773# CONFIG_IXGBE is not set 778# CONFIG_IXGBE is not set
774# CONFIG_IXGB is not set 779# CONFIG_IXGB is not set
775# CONFIG_S2IO is not set 780# CONFIG_S2IO is not set
776# CONFIG_MYRI10GE is not set 781# CONFIG_MYRI10GE is not set
777# CONFIG_NETXEN_NIC is not set 782# CONFIG_NETXEN_NIC is not set
778# CONFIG_NIU is not set 783# CONFIG_NIU is not set
784# CONFIG_MLX4_EN is not set
779# CONFIG_MLX4_CORE is not set 785# CONFIG_MLX4_CORE is not set
780# CONFIG_TEHUTI is not set 786# CONFIG_TEHUTI is not set
781# CONFIG_BNX2X is not set 787# CONFIG_BNX2X is not set
788# CONFIG_QLGE is not set
782# CONFIG_SFC is not set 789# CONFIG_SFC is not set
783# CONFIG_TR is not set 790# CONFIG_TR is not set
784 791
@@ -813,7 +820,7 @@ CONFIG_NETDEV_10000=y
813# Input device support 820# Input device support
814# 821#
815CONFIG_INPUT=y 822CONFIG_INPUT=y
816# CONFIG_INPUT_FF_MEMLESS is not set 823CONFIG_INPUT_FF_MEMLESS=y
817# CONFIG_INPUT_POLLDEV is not set 824# CONFIG_INPUT_POLLDEV is not set
818 825
819# 826#
@@ -1025,6 +1032,17 @@ CONFIG_SSB_POSSIBLE=y
1025# CONFIG_MFD_SM501 is not set 1032# CONFIG_MFD_SM501 is not set
1026# CONFIG_HTC_PASIC3 is not set 1033# CONFIG_HTC_PASIC3 is not set
1027# CONFIG_MFD_TMIO is not set 1034# CONFIG_MFD_TMIO is not set
1035# CONFIG_PMIC_DA903X is not set
1036# CONFIG_MFD_WM8400 is not set
1037# CONFIG_MFD_WM8350_I2C is not set
1038
1039#
1040# Voltage and Current regulators
1041#
1042# CONFIG_REGULATOR is not set
1043# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1044# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1045# CONFIG_REGULATOR_BQ24022 is not set
1028 1046
1029# 1047#
1030# Multimedia devices 1048# Multimedia devices
@@ -1073,9 +1091,36 @@ CONFIG_HID=y
1073# USB Input Devices 1091# USB Input Devices
1074# 1092#
1075CONFIG_USB_HID=y 1093CONFIG_USB_HID=y
1076# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1094# CONFIG_HID_PID is not set
1077# CONFIG_HID_FF is not set
1078# CONFIG_USB_HIDDEV is not set 1095# CONFIG_USB_HIDDEV is not set
1096
1097#
1098# Special HID drivers
1099#
1100CONFIG_HID_COMPAT=y
1101CONFIG_HID_A4TECH=y
1102CONFIG_HID_APPLE=y
1103CONFIG_HID_BELKIN=y
1104CONFIG_HID_BRIGHT=y
1105CONFIG_HID_CHERRY=y
1106CONFIG_HID_CHICONY=y
1107CONFIG_HID_CYPRESS=y
1108CONFIG_HID_DELL=y
1109CONFIG_HID_EZKEY=y
1110CONFIG_HID_GYRATION=y
1111CONFIG_HID_LOGITECH=y
1112# CONFIG_LOGITECH_FF is not set
1113# CONFIG_LOGIRUMBLEPAD2_FF is not set
1114CONFIG_HID_MICROSOFT=y
1115CONFIG_HID_MONTEREY=y
1116CONFIG_HID_PANTHERLORD=y
1117# CONFIG_PANTHERLORD_FF is not set
1118CONFIG_HID_PETALYNX=y
1119CONFIG_HID_SAMSUNG=y
1120CONFIG_HID_SONY=y
1121CONFIG_HID_SUNPLUS=y
1122CONFIG_THRUSTMASTER_FF=y
1123CONFIG_ZEROPLUS_FF=y
1079CONFIG_USB_SUPPORT=y 1124CONFIG_USB_SUPPORT=y
1080CONFIG_USB_ARCH_HAS_HCD=y 1125CONFIG_USB_ARCH_HAS_HCD=y
1081CONFIG_USB_ARCH_HAS_OHCI=y 1126CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1092,6 +1137,8 @@ CONFIG_USB_DEVICEFS=y
1092# CONFIG_USB_DYNAMIC_MINORS is not set 1137# CONFIG_USB_DYNAMIC_MINORS is not set
1093# CONFIG_USB_OTG is not set 1138# CONFIG_USB_OTG is not set
1094CONFIG_USB_MON=y 1139CONFIG_USB_MON=y
1140# CONFIG_USB_WUSB is not set
1141# CONFIG_USB_WUSB_CBAF is not set
1095 1142
1096# 1143#
1097# USB Host Controller Drivers 1144# USB Host Controller Drivers
@@ -1111,6 +1158,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1111# CONFIG_USB_UHCI_HCD is not set 1158# CONFIG_USB_UHCI_HCD is not set
1112# CONFIG_USB_SL811_HCD is not set 1159# CONFIG_USB_SL811_HCD is not set
1113# CONFIG_USB_R8A66597_HCD is not set 1160# CONFIG_USB_R8A66597_HCD is not set
1161# CONFIG_USB_WHCI_HCD is not set
1162# CONFIG_USB_HWA_HCD is not set
1114 1163
1115# 1164#
1116# USB Device Class drivers 1165# USB Device Class drivers
@@ -1118,6 +1167,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1118# CONFIG_USB_ACM is not set 1167# CONFIG_USB_ACM is not set
1119# CONFIG_USB_PRINTER is not set 1168# CONFIG_USB_PRINTER is not set
1120# CONFIG_USB_WDM is not set 1169# CONFIG_USB_WDM is not set
1170# CONFIG_USB_TMC is not set
1121 1171
1122# 1172#
1123# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1173# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1146,6 +1196,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1146# CONFIG_USB_EMI62 is not set 1196# CONFIG_USB_EMI62 is not set
1147# CONFIG_USB_EMI26 is not set 1197# CONFIG_USB_EMI26 is not set
1148# CONFIG_USB_ADUTUX is not set 1198# CONFIG_USB_ADUTUX is not set
1199# CONFIG_USB_SEVSEG is not set
1149# CONFIG_USB_RIO500 is not set 1200# CONFIG_USB_RIO500 is not set
1150# CONFIG_USB_LEGOTOWER is not set 1201# CONFIG_USB_LEGOTOWER is not set
1151# CONFIG_USB_LCD is not set 1202# CONFIG_USB_LCD is not set
@@ -1163,7 +1214,9 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1163# CONFIG_USB_IOWARRIOR is not set 1214# CONFIG_USB_IOWARRIOR is not set
1164# CONFIG_USB_TEST is not set 1215# CONFIG_USB_TEST is not set
1165# CONFIG_USB_ISIGHTFW is not set 1216# CONFIG_USB_ISIGHTFW is not set
1217# CONFIG_USB_VST is not set
1166# CONFIG_USB_GADGET is not set 1218# CONFIG_USB_GADGET is not set
1219# CONFIG_UWB is not set
1167# CONFIG_MMC is not set 1220# CONFIG_MMC is not set
1168# CONFIG_MEMSTICK is not set 1221# CONFIG_MEMSTICK is not set
1169# CONFIG_NEW_LEDS is not set 1222# CONFIG_NEW_LEDS is not set
@@ -1209,12 +1262,15 @@ CONFIG_RTC_DRV_MAX6900=y
1209# Platform RTC drivers 1262# Platform RTC drivers
1210# 1263#
1211# CONFIG_RTC_DRV_CMOS is not set 1264# CONFIG_RTC_DRV_CMOS is not set
1265# CONFIG_RTC_DRV_DS1286 is not set
1212# CONFIG_RTC_DRV_DS1511 is not set 1266# CONFIG_RTC_DRV_DS1511 is not set
1213# CONFIG_RTC_DRV_DS1553 is not set 1267# CONFIG_RTC_DRV_DS1553 is not set
1214# CONFIG_RTC_DRV_DS1742 is not set 1268# CONFIG_RTC_DRV_DS1742 is not set
1215# CONFIG_RTC_DRV_STK17TA8 is not set 1269# CONFIG_RTC_DRV_STK17TA8 is not set
1216# CONFIG_RTC_DRV_M48T86 is not set 1270# CONFIG_RTC_DRV_M48T86 is not set
1271# CONFIG_RTC_DRV_M48T35 is not set
1217# CONFIG_RTC_DRV_M48T59 is not set 1272# CONFIG_RTC_DRV_M48T59 is not set
1273# CONFIG_RTC_DRV_BQ4802 is not set
1218# CONFIG_RTC_DRV_V3020 is not set 1274# CONFIG_RTC_DRV_V3020 is not set
1219 1275
1220# 1276#
@@ -1223,6 +1279,7 @@ CONFIG_RTC_DRV_MAX6900=y
1223# CONFIG_RTC_DRV_PPC is not set 1279# CONFIG_RTC_DRV_PPC is not set
1224# CONFIG_DMADEVICES is not set 1280# CONFIG_DMADEVICES is not set
1225# CONFIG_UIO is not set 1281# CONFIG_UIO is not set
1282# CONFIG_STAGING is not set
1226 1283
1227# 1284#
1228# File systems 1285# File systems
@@ -1234,12 +1291,13 @@ CONFIG_EXT3_FS=y
1234CONFIG_EXT3_FS_XATTR=y 1291CONFIG_EXT3_FS_XATTR=y
1235# CONFIG_EXT3_FS_POSIX_ACL is not set 1292# CONFIG_EXT3_FS_POSIX_ACL is not set
1236# CONFIG_EXT3_FS_SECURITY is not set 1293# CONFIG_EXT3_FS_SECURITY is not set
1237# CONFIG_EXT4DEV_FS is not set 1294# CONFIG_EXT4_FS is not set
1238CONFIG_JBD=y 1295CONFIG_JBD=y
1239CONFIG_FS_MBCACHE=y 1296CONFIG_FS_MBCACHE=y
1240# CONFIG_REISERFS_FS is not set 1297# CONFIG_REISERFS_FS is not set
1241# CONFIG_JFS_FS is not set 1298# CONFIG_JFS_FS is not set
1242# CONFIG_FS_POSIX_ACL is not set 1299# CONFIG_FS_POSIX_ACL is not set
1300CONFIG_FILE_LOCKING=y
1243# CONFIG_XFS_FS is not set 1301# CONFIG_XFS_FS is not set
1244# CONFIG_OCFS2_FS is not set 1302# CONFIG_OCFS2_FS is not set
1245CONFIG_DNOTIFY=y 1303CONFIG_DNOTIFY=y
@@ -1269,6 +1327,7 @@ CONFIG_INOTIFY_USER=y
1269CONFIG_PROC_FS=y 1327CONFIG_PROC_FS=y
1270CONFIG_PROC_KCORE=y 1328CONFIG_PROC_KCORE=y
1271CONFIG_PROC_SYSCTL=y 1329CONFIG_PROC_SYSCTL=y
1330CONFIG_PROC_PAGE_MONITOR=y
1272CONFIG_SYSFS=y 1331CONFIG_SYSFS=y
1273CONFIG_TMPFS=y 1332CONFIG_TMPFS=y
1274# CONFIG_TMPFS_POSIX_ACL is not set 1333# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1304,6 +1363,7 @@ CONFIG_ROOT_NFS=y
1304CONFIG_LOCKD=y 1363CONFIG_LOCKD=y
1305CONFIG_NFS_COMMON=y 1364CONFIG_NFS_COMMON=y
1306CONFIG_SUNRPC=y 1365CONFIG_SUNRPC=y
1366# CONFIG_SUNRPC_REGISTER_V4 is not set
1307# CONFIG_RPCSEC_GSS_KRB5 is not set 1367# CONFIG_RPCSEC_GSS_KRB5 is not set
1308# CONFIG_RPCSEC_GSS_SPKM3 is not set 1368# CONFIG_RPCSEC_GSS_SPKM3 is not set
1309# CONFIG_SMB_FS is not set 1369# CONFIG_SMB_FS is not set
@@ -1340,7 +1400,6 @@ CONFIG_MSDOS_PARTITION=y
1340# Library routines 1400# Library routines
1341# 1401#
1342CONFIG_BITREVERSE=y 1402CONFIG_BITREVERSE=y
1343# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1344# CONFIG_CRC_CCITT is not set 1403# CONFIG_CRC_CCITT is not set
1345# CONFIG_CRC16 is not set 1404# CONFIG_CRC16 is not set
1346CONFIG_CRC_T10DIF=y 1405CONFIG_CRC_T10DIF=y
@@ -1370,13 +1429,15 @@ CONFIG_FRAME_WARN=1024
1370# CONFIG_SLUB_STATS is not set 1429# CONFIG_SLUB_STATS is not set
1371CONFIG_DEBUG_BUGVERBOSE=y 1430CONFIG_DEBUG_BUGVERBOSE=y
1372CONFIG_DEBUG_MEMORY_INIT=y 1431CONFIG_DEBUG_MEMORY_INIT=y
1432# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1373# CONFIG_LATENCYTOP is not set 1433# CONFIG_LATENCYTOP is not set
1374CONFIG_SYSCTL_SYSCALL_CHECK=y 1434CONFIG_SYSCTL_SYSCALL_CHECK=y
1375CONFIG_HAVE_FTRACE=y 1435CONFIG_HAVE_FUNCTION_TRACER=y
1376CONFIG_HAVE_DYNAMIC_FTRACE=y 1436
1377# CONFIG_FTRACE is not set 1437#
1378# CONFIG_SCHED_TRACER is not set 1438# Tracers
1379# CONFIG_CONTEXT_SWITCH_TRACER is not set 1439#
1440# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1380# CONFIG_SAMPLES is not set 1441# CONFIG_SAMPLES is not set
1381CONFIG_HAVE_ARCH_KGDB=y 1442CONFIG_HAVE_ARCH_KGDB=y
1382# CONFIG_IRQSTACKS is not set 1443# CONFIG_IRQSTACKS is not set
@@ -1388,12 +1449,14 @@ CONFIG_HAVE_ARCH_KGDB=y
1388# 1449#
1389# CONFIG_KEYS is not set 1450# CONFIG_KEYS is not set
1390# CONFIG_SECURITY is not set 1451# CONFIG_SECURITY is not set
1452# CONFIG_SECURITYFS is not set
1391# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1453# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1392CONFIG_CRYPTO=y 1454CONFIG_CRYPTO=y
1393 1455
1394# 1456#
1395# Crypto core or helper 1457# Crypto core or helper
1396# 1458#
1459# CONFIG_CRYPTO_FIPS is not set
1397# CONFIG_CRYPTO_MANAGER is not set 1460# CONFIG_CRYPTO_MANAGER is not set
1398# CONFIG_CRYPTO_GF128MUL is not set 1461# CONFIG_CRYPTO_GF128MUL is not set
1399# CONFIG_CRYPTO_NULL is not set 1462# CONFIG_CRYPTO_NULL is not set
@@ -1465,6 +1528,11 @@ CONFIG_CRYPTO=y
1465# 1528#
1466# CONFIG_CRYPTO_DEFLATE is not set 1529# CONFIG_CRYPTO_DEFLATE is not set
1467# CONFIG_CRYPTO_LZO is not set 1530# CONFIG_CRYPTO_LZO is not set
1531
1532#
1533# Random Number Generation
1534#
1535# CONFIG_CRYPTO_ANSI_CPRNG is not set
1468CONFIG_CRYPTO_HW=y 1536CONFIG_CRYPTO_HW=y
1469# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1537# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1470# CONFIG_PPC_CLOCK is not set 1538# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index e77c5e7a0be2..1e520ab65118 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -1,7 +1,7 @@
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-rc3
4# Tue Aug 26 13:31:07 2008 4# Tue Nov 11 19:37:06 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -22,7 +22,7 @@ CONFIG_SMP=y
22CONFIG_NR_CPUS=128 22CONFIG_NR_CPUS=128
23CONFIG_64BIT=y 23CONFIG_64BIT=y
24CONFIG_WORD_SIZE=64 24CONFIG_WORD_SIZE=64
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
@@ -86,6 +86,7 @@ CONFIG_LOG_BUF_SHIFT=17
86CONFIG_CGROUPS=y 86CONFIG_CGROUPS=y
87# CONFIG_CGROUP_DEBUG is not set 87# CONFIG_CGROUP_DEBUG is not set
88CONFIG_CGROUP_NS=y 88CONFIG_CGROUP_NS=y
89CONFIG_CGROUP_FREEZER=y
89CONFIG_CGROUP_DEVICE=y 90CONFIG_CGROUP_DEVICE=y
90CONFIG_CPUSETS=y 91CONFIG_CPUSETS=y
91# CONFIG_GROUP_SCHED is not set 92# CONFIG_GROUP_SCHED is not set
@@ -123,12 +124,15 @@ CONFIG_SIGNALFD=y
123CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
124CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
125CONFIG_SHMEM=y 126CONFIG_SHMEM=y
127CONFIG_AIO=y
126CONFIG_VM_EVENT_COUNTERS=y 128CONFIG_VM_EVENT_COUNTERS=y
129CONFIG_PCI_QUIRKS=y
127CONFIG_SLUB_DEBUG=y 130CONFIG_SLUB_DEBUG=y
128# CONFIG_SLAB is not set 131# CONFIG_SLAB is not set
129CONFIG_SLUB=y 132CONFIG_SLUB=y
130# CONFIG_SLOB is not set 133# CONFIG_SLOB is not set
131CONFIG_PROFILING=y 134CONFIG_PROFILING=y
135CONFIG_TRACEPOINTS=y
132CONFIG_MARKERS=y 136CONFIG_MARKERS=y
133CONFIG_OPROFILE=y 137CONFIG_OPROFILE=y
134CONFIG_HAVE_OPROFILE=y 138CONFIG_HAVE_OPROFILE=y
@@ -141,8 +145,6 @@ CONFIG_HAVE_KRETPROBES=y
141CONFIG_HAVE_ARCH_TRACEHOOK=y 145CONFIG_HAVE_ARCH_TRACEHOOK=y
142CONFIG_HAVE_DMA_ATTRS=y 146CONFIG_HAVE_DMA_ATTRS=y
143CONFIG_USE_GENERIC_SMP_HELPERS=y 147CONFIG_USE_GENERIC_SMP_HELPERS=y
144# CONFIG_HAVE_CLK is not set
145CONFIG_PROC_PAGE_MONITOR=y
146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 148# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
147CONFIG_SLABINFO=y 149CONFIG_SLABINFO=y
148CONFIG_RT_MUTEXES=y 150CONFIG_RT_MUTEXES=y
@@ -175,6 +177,8 @@ CONFIG_DEFAULT_AS=y
175# CONFIG_DEFAULT_NOOP is not set 177# CONFIG_DEFAULT_NOOP is not set
176CONFIG_DEFAULT_IOSCHED="anticipatory" 178CONFIG_DEFAULT_IOSCHED="anticipatory"
177CONFIG_CLASSIC_RCU=y 179CONFIG_CLASSIC_RCU=y
180CONFIG_FREEZER=y
181CONFIG_PPC_MSI_BITMAP=y
178 182
179# 183#
180# Platform support 184# Platform support
@@ -237,6 +241,8 @@ CONFIG_PREEMPT_NONE=y
237# CONFIG_PREEMPT is not set 241# CONFIG_PREEMPT is not set
238CONFIG_BINFMT_ELF=y 242CONFIG_BINFMT_ELF=y
239CONFIG_COMPAT_BINFMT_ELF=y 243CONFIG_COMPAT_BINFMT_ELF=y
244# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
245# CONFIG_HAVE_AOUT is not set
240CONFIG_BINFMT_MISC=m 246CONFIG_BINFMT_MISC=m
241CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 247CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
242CONFIG_IOMMU_VMERGE=y 248CONFIG_IOMMU_VMERGE=y
@@ -246,7 +252,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
246CONFIG_ARCH_HAS_WALK_MEMORY=y 252CONFIG_ARCH_HAS_WALK_MEMORY=y
247CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 253CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
248CONFIG_KEXEC=y 254CONFIG_KEXEC=y
249# CONFIG_CRASH_DUMP is not set
250# CONFIG_PHYP_DUMP is not set 255# CONFIG_PHYP_DUMP is not set
251CONFIG_IRQ_ALL_CPUS=y 256CONFIG_IRQ_ALL_CPUS=y
252CONFIG_NUMA=y 257CONFIG_NUMA=y
@@ -262,7 +267,6 @@ CONFIG_SPARSEMEM_MANUAL=y
262CONFIG_SPARSEMEM=y 267CONFIG_SPARSEMEM=y
263CONFIG_NEED_MULTIPLE_NODES=y 268CONFIG_NEED_MULTIPLE_NODES=y
264CONFIG_HAVE_MEMORY_PRESENT=y 269CONFIG_HAVE_MEMORY_PRESENT=y
265# CONFIG_SPARSEMEM_STATIC is not set
266CONFIG_SPARSEMEM_EXTREME=y 270CONFIG_SPARSEMEM_EXTREME=y
267CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 271CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
268CONFIG_SPARSEMEM_VMEMMAP=y 272CONFIG_SPARSEMEM_VMEMMAP=y
@@ -271,8 +275,10 @@ CONFIG_PAGEFLAGS_EXTENDED=y
271CONFIG_SPLIT_PTLOCK_CPUS=4 275CONFIG_SPLIT_PTLOCK_CPUS=4
272CONFIG_MIGRATION=y 276CONFIG_MIGRATION=y
273CONFIG_RESOURCES_64BIT=y 277CONFIG_RESOURCES_64BIT=y
278CONFIG_PHYS_ADDR_T_64BIT=y
274CONFIG_ZONE_DMA_FLAG=1 279CONFIG_ZONE_DMA_FLAG=1
275CONFIG_BOUNCE=y 280CONFIG_BOUNCE=y
281CONFIG_UNEVICTABLE_LRU=y
276CONFIG_NODES_SPAN_OTHER_NODES=y 282CONFIG_NODES_SPAN_OTHER_NODES=y
277# CONFIG_PPC_HAS_HASH_64K is not set 283# CONFIG_PPC_HAS_HASH_64K is not set
278# CONFIG_PPC_64K_PAGES is not set 284# CONFIG_PPC_64K_PAGES is not set
@@ -307,6 +313,7 @@ CONFIG_HOTPLUG_PCI=m
307CONFIG_HOTPLUG_PCI_RPA=m 313CONFIG_HOTPLUG_PCI_RPA=m
308CONFIG_HOTPLUG_PCI_RPA_DLPAR=m 314CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
309# CONFIG_HAS_RAPIDIO is not set 315# CONFIG_HAS_RAPIDIO is not set
316# CONFIG_RELOCATABLE is not set
310CONFIG_PAGE_OFFSET=0xc000000000000000 317CONFIG_PAGE_OFFSET=0xc000000000000000
311CONFIG_KERNEL_START=0xc000000000000000 318CONFIG_KERNEL_START=0xc000000000000000
312CONFIG_PHYSICAL_START=0x00000000 319CONFIG_PHYSICAL_START=0x00000000
@@ -351,7 +358,6 @@ CONFIG_INET_TCP_DIAG=y
351CONFIG_TCP_CONG_CUBIC=y 358CONFIG_TCP_CONG_CUBIC=y
352CONFIG_DEFAULT_TCP_CONG="cubic" 359CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_TCP_MD5SIG is not set 360# CONFIG_TCP_MD5SIG is not set
354# CONFIG_IP_VS is not set
355# CONFIG_IPV6 is not set 361# CONFIG_IPV6 is not set
356# CONFIG_NETWORK_SECMARK is not set 362# CONFIG_NETWORK_SECMARK is not set
357CONFIG_NETFILTER=y 363CONFIG_NETFILTER=y
@@ -383,9 +389,10 @@ CONFIG_NF_CONNTRACK_TFTP=m
383CONFIG_NF_CT_NETLINK=m 389CONFIG_NF_CT_NETLINK=m
384CONFIG_NETFILTER_XTABLES=m 390CONFIG_NETFILTER_XTABLES=m
385CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 391CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
392CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
386CONFIG_NETFILTER_XT_TARGET_MARK=m 393CONFIG_NETFILTER_XT_TARGET_MARK=m
387CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
388CONFIG_NETFILTER_XT_TARGET_NFLOG=m 394CONFIG_NETFILTER_XT_TARGET_NFLOG=m
395CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
389CONFIG_NETFILTER_XT_TARGET_RATEEST=m 396CONFIG_NETFILTER_XT_TARGET_RATEEST=m
390CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 397CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
391CONFIG_NETFILTER_XT_MATCH_COMMENT=m 398CONFIG_NETFILTER_XT_MATCH_COMMENT=m
@@ -396,19 +403,22 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
396CONFIG_NETFILTER_XT_MATCH_DCCP=m 403CONFIG_NETFILTER_XT_MATCH_DCCP=m
397CONFIG_NETFILTER_XT_MATCH_DSCP=m 404CONFIG_NETFILTER_XT_MATCH_DSCP=m
398CONFIG_NETFILTER_XT_MATCH_ESP=m 405CONFIG_NETFILTER_XT_MATCH_ESP=m
406CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
399CONFIG_NETFILTER_XT_MATCH_HELPER=m 407CONFIG_NETFILTER_XT_MATCH_HELPER=m
400CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 408CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
401CONFIG_NETFILTER_XT_MATCH_LENGTH=m 409CONFIG_NETFILTER_XT_MATCH_LENGTH=m
402CONFIG_NETFILTER_XT_MATCH_LIMIT=m 410CONFIG_NETFILTER_XT_MATCH_LIMIT=m
403CONFIG_NETFILTER_XT_MATCH_MAC=m 411CONFIG_NETFILTER_XT_MATCH_MAC=m
404CONFIG_NETFILTER_XT_MATCH_MARK=m 412CONFIG_NETFILTER_XT_MATCH_MARK=m
413CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
405CONFIG_NETFILTER_XT_MATCH_OWNER=m 414CONFIG_NETFILTER_XT_MATCH_OWNER=m
406CONFIG_NETFILTER_XT_MATCH_POLICY=m 415CONFIG_NETFILTER_XT_MATCH_POLICY=m
407CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
408CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 416CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
409CONFIG_NETFILTER_XT_MATCH_QUOTA=m 417CONFIG_NETFILTER_XT_MATCH_QUOTA=m
410CONFIG_NETFILTER_XT_MATCH_RATEEST=m 418CONFIG_NETFILTER_XT_MATCH_RATEEST=m
411CONFIG_NETFILTER_XT_MATCH_REALM=m 419CONFIG_NETFILTER_XT_MATCH_REALM=m
420CONFIG_NETFILTER_XT_MATCH_RECENT=m
421# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
412CONFIG_NETFILTER_XT_MATCH_SCTP=m 422CONFIG_NETFILTER_XT_MATCH_SCTP=m
413CONFIG_NETFILTER_XT_MATCH_STATE=m 423CONFIG_NETFILTER_XT_MATCH_STATE=m
414CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 424CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -416,20 +426,20 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
416CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 426CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
417CONFIG_NETFILTER_XT_MATCH_TIME=m 427CONFIG_NETFILTER_XT_MATCH_TIME=m
418CONFIG_NETFILTER_XT_MATCH_U32=m 428CONFIG_NETFILTER_XT_MATCH_U32=m
419CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 429# CONFIG_IP_VS is not set
420 430
421# 431#
422# IP: Netfilter Configuration 432# IP: Netfilter Configuration
423# 433#
434CONFIG_NF_DEFRAG_IPV4=m
424CONFIG_NF_CONNTRACK_IPV4=m 435CONFIG_NF_CONNTRACK_IPV4=m
425CONFIG_NF_CONNTRACK_PROC_COMPAT=y 436CONFIG_NF_CONNTRACK_PROC_COMPAT=y
426CONFIG_IP_NF_QUEUE=m 437CONFIG_IP_NF_QUEUE=m
427CONFIG_IP_NF_IPTABLES=m 438CONFIG_IP_NF_IPTABLES=m
428CONFIG_IP_NF_MATCH_RECENT=m 439CONFIG_IP_NF_MATCH_ADDRTYPE=m
429CONFIG_IP_NF_MATCH_ECN=m
430CONFIG_IP_NF_MATCH_AH=m 440CONFIG_IP_NF_MATCH_AH=m
441CONFIG_IP_NF_MATCH_ECN=m
431CONFIG_IP_NF_MATCH_TTL=m 442CONFIG_IP_NF_MATCH_TTL=m
432CONFIG_IP_NF_MATCH_ADDRTYPE=m
433CONFIG_IP_NF_FILTER=m 443CONFIG_IP_NF_FILTER=m
434CONFIG_IP_NF_TARGET_REJECT=m 444CONFIG_IP_NF_TARGET_REJECT=m
435CONFIG_IP_NF_TARGET_LOG=m 445CONFIG_IP_NF_TARGET_LOG=m
@@ -437,8 +447,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
437CONFIG_NF_NAT=m 447CONFIG_NF_NAT=m
438CONFIG_NF_NAT_NEEDED=y 448CONFIG_NF_NAT_NEEDED=y
439CONFIG_IP_NF_TARGET_MASQUERADE=m 449CONFIG_IP_NF_TARGET_MASQUERADE=m
440CONFIG_IP_NF_TARGET_REDIRECT=m
441CONFIG_IP_NF_TARGET_NETMAP=m 450CONFIG_IP_NF_TARGET_NETMAP=m
451CONFIG_IP_NF_TARGET_REDIRECT=m
442CONFIG_NF_NAT_SNMP_BASIC=m 452CONFIG_NF_NAT_SNMP_BASIC=m
443CONFIG_NF_NAT_PROTO_UDPLITE=m 453CONFIG_NF_NAT_PROTO_UDPLITE=m
444CONFIG_NF_NAT_FTP=m 454CONFIG_NF_NAT_FTP=m
@@ -456,6 +466,7 @@ CONFIG_NF_NAT_TFTP=m
456# CONFIG_TIPC is not set 466# CONFIG_TIPC is not set
457# CONFIG_ATM is not set 467# CONFIG_ATM is not set
458# CONFIG_BRIDGE is not set 468# CONFIG_BRIDGE is not set
469# CONFIG_NET_DSA is not set
459# CONFIG_VLAN_8021Q is not set 470# CONFIG_VLAN_8021Q is not set
460# CONFIG_DECNET is not set 471# CONFIG_DECNET is not set
461CONFIG_LLC=y 472CONFIG_LLC=y
@@ -479,14 +490,8 @@ CONFIG_NET_CLS_ROUTE=y
479# CONFIG_IRDA is not set 490# CONFIG_IRDA is not set
480# CONFIG_BT is not set 491# CONFIG_BT is not set
481# CONFIG_AF_RXRPC is not set 492# CONFIG_AF_RXRPC is not set
482 493# CONFIG_PHONET is not set
483# 494# CONFIG_WIRELESS is not set
484# Wireless
485#
486# CONFIG_CFG80211 is not set
487# CONFIG_WIRELESS_EXT is not set
488# CONFIG_MAC80211 is not set
489# CONFIG_IEEE80211 is not set
490# CONFIG_RFKILL is not set 495# CONFIG_RFKILL is not set
491# CONFIG_NET_9P is not set 496# CONFIG_NET_9P is not set
492 497
@@ -546,19 +551,18 @@ CONFIG_MISC_DEVICES=y
546# CONFIG_HP_ILO is not set 551# CONFIG_HP_ILO is not set
547CONFIG_HAVE_IDE=y 552CONFIG_HAVE_IDE=y
548CONFIG_IDE=y 553CONFIG_IDE=y
549CONFIG_BLK_DEV_IDE=y
550 554
551# 555#
552# Please see Documentation/ide/ide.txt for help/info on IDE drives 556# Please see Documentation/ide/ide.txt for help/info on IDE drives
553# 557#
554CONFIG_IDE_TIMINGS=y 558CONFIG_IDE_TIMINGS=y
555# CONFIG_BLK_DEV_IDE_SATA is not set 559# CONFIG_BLK_DEV_IDE_SATA is not set
556CONFIG_BLK_DEV_IDEDISK=y 560CONFIG_IDE_GD=y
557# CONFIG_IDEDISK_MULTI_MODE is not set 561CONFIG_IDE_GD_ATA=y
562# CONFIG_IDE_GD_ATAPI is not set
558CONFIG_BLK_DEV_IDECD=y 563CONFIG_BLK_DEV_IDECD=y
559CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 564CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
560# CONFIG_BLK_DEV_IDETAPE is not set 565# CONFIG_BLK_DEV_IDETAPE is not set
561# CONFIG_BLK_DEV_IDEFLOPPY is not set
562# CONFIG_BLK_DEV_IDESCSI is not set 566# CONFIG_BLK_DEV_IDESCSI is not set
563# CONFIG_IDE_TASK_IOCTL is not set 567# CONFIG_IDE_TASK_IOCTL is not set
564CONFIG_IDE_PROC_FS=y 568CONFIG_IDE_PROC_FS=y
@@ -696,6 +700,7 @@ CONFIG_SATA_PMP=y
696# CONFIG_ATA_SFF is not set 700# CONFIG_ATA_SFF is not set
697CONFIG_MD=y 701CONFIG_MD=y
698CONFIG_BLK_DEV_MD=y 702CONFIG_BLK_DEV_MD=y
703CONFIG_MD_AUTODETECT=y
699CONFIG_MD_LINEAR=y 704CONFIG_MD_LINEAR=y
700CONFIG_MD_RAID0=y 705CONFIG_MD_RAID0=y
701CONFIG_MD_RAID1=y 706CONFIG_MD_RAID1=y
@@ -765,6 +770,9 @@ CONFIG_IBMVETH=y
765# CONFIG_IBM_NEW_EMAC_RGMII is not set 770# CONFIG_IBM_NEW_EMAC_RGMII is not set
766# CONFIG_IBM_NEW_EMAC_TAH is not set 771# CONFIG_IBM_NEW_EMAC_TAH is not set
767# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 772# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
773# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
774# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
775# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
768CONFIG_NET_PCI=y 776CONFIG_NET_PCI=y
769CONFIG_PCNET32=y 777CONFIG_PCNET32=y
770# CONFIG_AMD8111_ETH is not set 778# CONFIG_AMD8111_ETH is not set
@@ -786,12 +794,12 @@ CONFIG_E100=y
786# CONFIG_VIA_RHINE is not set 794# CONFIG_VIA_RHINE is not set
787# CONFIG_SC92031 is not set 795# CONFIG_SC92031 is not set
788# CONFIG_NET_POCKET is not set 796# CONFIG_NET_POCKET is not set
797# CONFIG_ATL2 is not set
789CONFIG_NETDEV_1000=y 798CONFIG_NETDEV_1000=y
790CONFIG_ACENIC=y 799CONFIG_ACENIC=y
791CONFIG_ACENIC_OMIT_TIGON_I=y 800CONFIG_ACENIC_OMIT_TIGON_I=y
792# CONFIG_DL2K is not set 801# CONFIG_DL2K is not set
793CONFIG_E1000=y 802CONFIG_E1000=y
794# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
795# CONFIG_E1000E is not set 803# CONFIG_E1000E is not set
796# CONFIG_IP1000 is not set 804# CONFIG_IP1000 is not set
797# CONFIG_IGB is not set 805# CONFIG_IGB is not set
@@ -808,19 +816,23 @@ CONFIG_TIGON3=y
808# CONFIG_QLA3XXX is not set 816# CONFIG_QLA3XXX is not set
809# CONFIG_ATL1 is not set 817# CONFIG_ATL1 is not set
810# CONFIG_ATL1E is not set 818# CONFIG_ATL1E is not set
819# CONFIG_JME is not set
811CONFIG_NETDEV_10000=y 820CONFIG_NETDEV_10000=y
812# CONFIG_CHELSIO_T1 is not set 821# CONFIG_CHELSIO_T1 is not set
813# CONFIG_CHELSIO_T3 is not set 822# CONFIG_CHELSIO_T3 is not set
814CONFIG_EHEA=y 823CONFIG_EHEA=y
824# CONFIG_ENIC is not set
815# CONFIG_IXGBE is not set 825# CONFIG_IXGBE is not set
816CONFIG_IXGB=m 826CONFIG_IXGB=m
817CONFIG_S2IO=m 827CONFIG_S2IO=m
818# CONFIG_MYRI10GE is not set 828# CONFIG_MYRI10GE is not set
819# CONFIG_NETXEN_NIC is not set 829# CONFIG_NETXEN_NIC is not set
820# CONFIG_NIU is not set 830# CONFIG_NIU is not set
831# CONFIG_MLX4_EN is not set
821# CONFIG_MLX4_CORE is not set 832# CONFIG_MLX4_CORE is not set
822# CONFIG_TEHUTI is not set 833# CONFIG_TEHUTI is not set
823# CONFIG_BNX2X is not set 834# CONFIG_BNX2X is not set
835# CONFIG_QLGE is not set
824# CONFIG_SFC is not set 836# CONFIG_SFC is not set
825CONFIG_TR=y 837CONFIG_TR=y
826CONFIG_IBMOL=y 838CONFIG_IBMOL=y
@@ -902,6 +914,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
902CONFIG_MOUSE_PS2_SYNAPTICS=y 914CONFIG_MOUSE_PS2_SYNAPTICS=y
903CONFIG_MOUSE_PS2_LIFEBOOK=y 915CONFIG_MOUSE_PS2_LIFEBOOK=y
904CONFIG_MOUSE_PS2_TRACKPOINT=y 916CONFIG_MOUSE_PS2_TRACKPOINT=y
917# CONFIG_MOUSE_PS2_ELANTECH is not set
905# CONFIG_MOUSE_PS2_TOUCHKIT is not set 918# CONFIG_MOUSE_PS2_TOUCHKIT is not set
906# CONFIG_MOUSE_SERIAL is not set 919# CONFIG_MOUSE_SERIAL is not set
907# CONFIG_MOUSE_APPLETOUCH is not set 920# CONFIG_MOUSE_APPLETOUCH is not set
@@ -917,6 +930,7 @@ CONFIG_INPUT_PCSPKR=m
917# CONFIG_INPUT_KEYSPAN_REMOTE is not set 930# CONFIG_INPUT_KEYSPAN_REMOTE is not set
918# CONFIG_INPUT_POWERMATE is not set 931# CONFIG_INPUT_POWERMATE is not set
919# CONFIG_INPUT_YEALINK is not set 932# CONFIG_INPUT_YEALINK is not set
933# CONFIG_INPUT_CM109 is not set
920# CONFIG_INPUT_UINPUT is not set 934# CONFIG_INPUT_UINPUT is not set
921 935
922# 936#
@@ -1076,6 +1090,17 @@ CONFIG_SSB_POSSIBLE=y
1076# CONFIG_MFD_SM501 is not set 1090# CONFIG_MFD_SM501 is not set
1077# CONFIG_HTC_PASIC3 is not set 1091# CONFIG_HTC_PASIC3 is not set
1078# CONFIG_MFD_TMIO is not set 1092# CONFIG_MFD_TMIO is not set
1093# CONFIG_PMIC_DA903X is not set
1094# CONFIG_MFD_WM8400 is not set
1095# CONFIG_MFD_WM8350_I2C is not set
1096
1097#
1098# Voltage and Current regulators
1099#
1100# CONFIG_REGULATOR is not set
1101# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1102# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1103# CONFIG_REGULATOR_BQ24022 is not set
1079 1104
1080# 1105#
1081# Multimedia devices 1106# Multimedia devices
@@ -1103,6 +1128,7 @@ CONFIG_SSB_POSSIBLE=y
1103CONFIG_FB=y 1128CONFIG_FB=y
1104CONFIG_FIRMWARE_EDID=y 1129CONFIG_FIRMWARE_EDID=y
1105CONFIG_FB_DDC=y 1130CONFIG_FB_DDC=y
1131# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1106CONFIG_FB_CFB_FILLRECT=y 1132CONFIG_FB_CFB_FILLRECT=y
1107CONFIG_FB_CFB_COPYAREA=y 1133CONFIG_FB_CFB_COPYAREA=y
1108CONFIG_FB_CFB_IMAGEBLIT=y 1134CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1146,6 +1172,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1146# CONFIG_FB_S3 is not set 1172# CONFIG_FB_S3 is not set
1147# CONFIG_FB_SAVAGE is not set 1173# CONFIG_FB_SAVAGE is not set
1148# CONFIG_FB_SIS is not set 1174# CONFIG_FB_SIS is not set
1175# CONFIG_FB_VIA is not set
1149# CONFIG_FB_NEOMAGIC is not set 1176# CONFIG_FB_NEOMAGIC is not set
1150# CONFIG_FB_KYRO is not set 1177# CONFIG_FB_KYRO is not set
1151# CONFIG_FB_3DFX is not set 1178# CONFIG_FB_3DFX is not set
@@ -1157,6 +1184,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1157# CONFIG_FB_CARMINE is not set 1184# CONFIG_FB_CARMINE is not set
1158CONFIG_FB_IBM_GXT4500=y 1185CONFIG_FB_IBM_GXT4500=y
1159# CONFIG_FB_VIRTUAL is not set 1186# CONFIG_FB_VIRTUAL is not set
1187# CONFIG_FB_METRONOME is not set
1160CONFIG_BACKLIGHT_LCD_SUPPORT=y 1188CONFIG_BACKLIGHT_LCD_SUPPORT=y
1161CONFIG_LCD_CLASS_DEVICE=m 1189CONFIG_LCD_CLASS_DEVICE=m
1162# CONFIG_LCD_ILI9320 is not set 1190# CONFIG_LCD_ILI9320 is not set
@@ -1198,9 +1226,36 @@ CONFIG_HID=y
1198# USB Input Devices 1226# USB Input Devices
1199# 1227#
1200CONFIG_USB_HID=y 1228CONFIG_USB_HID=y
1201# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1229# CONFIG_HID_PID is not set
1202# CONFIG_HID_FF is not set
1203CONFIG_USB_HIDDEV=y 1230CONFIG_USB_HIDDEV=y
1231
1232#
1233# Special HID drivers
1234#
1235CONFIG_HID_COMPAT=y
1236CONFIG_HID_A4TECH=y
1237CONFIG_HID_APPLE=y
1238CONFIG_HID_BELKIN=y
1239CONFIG_HID_BRIGHT=y
1240CONFIG_HID_CHERRY=y
1241CONFIG_HID_CHICONY=y
1242CONFIG_HID_CYPRESS=y
1243CONFIG_HID_DELL=y
1244CONFIG_HID_EZKEY=y
1245CONFIG_HID_GYRATION=y
1246CONFIG_HID_LOGITECH=y
1247# CONFIG_LOGITECH_FF is not set
1248# CONFIG_LOGIRUMBLEPAD2_FF is not set
1249CONFIG_HID_MICROSOFT=y
1250CONFIG_HID_MONTEREY=y
1251CONFIG_HID_PANTHERLORD=y
1252# CONFIG_PANTHERLORD_FF is not set
1253CONFIG_HID_PETALYNX=y
1254CONFIG_HID_SAMSUNG=y
1255CONFIG_HID_SONY=y
1256CONFIG_HID_SUNPLUS=y
1257# CONFIG_THRUSTMASTER_FF is not set
1258# CONFIG_ZEROPLUS_FF is not set
1204CONFIG_USB_SUPPORT=y 1259CONFIG_USB_SUPPORT=y
1205CONFIG_USB_ARCH_HAS_HCD=y 1260CONFIG_USB_ARCH_HAS_HCD=y
1206CONFIG_USB_ARCH_HAS_OHCI=y 1261CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1217,6 +1272,8 @@ CONFIG_USB_DEVICE_CLASS=y
1217# CONFIG_USB_DYNAMIC_MINORS is not set 1272# CONFIG_USB_DYNAMIC_MINORS is not set
1218# CONFIG_USB_OTG is not set 1273# CONFIG_USB_OTG is not set
1219CONFIG_USB_MON=y 1274CONFIG_USB_MON=y
1275# CONFIG_USB_WUSB is not set
1276# CONFIG_USB_WUSB_CBAF is not set
1220 1277
1221# 1278#
1222# USB Host Controller Drivers 1279# USB Host Controller Drivers
@@ -1236,6 +1293,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1236# CONFIG_USB_UHCI_HCD is not set 1293# CONFIG_USB_UHCI_HCD is not set
1237# CONFIG_USB_SL811_HCD is not set 1294# CONFIG_USB_SL811_HCD is not set
1238# CONFIG_USB_R8A66597_HCD is not set 1295# CONFIG_USB_R8A66597_HCD is not set
1296# CONFIG_USB_WHCI_HCD is not set
1297# CONFIG_USB_HWA_HCD is not set
1239 1298
1240# 1299#
1241# USB Device Class drivers 1300# USB Device Class drivers
@@ -1243,6 +1302,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1243# CONFIG_USB_ACM is not set 1302# CONFIG_USB_ACM is not set
1244# CONFIG_USB_PRINTER is not set 1303# CONFIG_USB_PRINTER is not set
1245# CONFIG_USB_WDM is not set 1304# CONFIG_USB_WDM is not set
1305# CONFIG_USB_TMC is not set
1246 1306
1247# 1307#
1248# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1308# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1264,7 +1324,6 @@ CONFIG_USB_STORAGE=y
1264# CONFIG_USB_STORAGE_ALAUDA is not set 1324# CONFIG_USB_STORAGE_ALAUDA is not set
1265CONFIG_USB_STORAGE_ONETOUCH=y 1325CONFIG_USB_STORAGE_ONETOUCH=y
1266# CONFIG_USB_STORAGE_KARMA is not set 1326# CONFIG_USB_STORAGE_KARMA is not set
1267# CONFIG_USB_STORAGE_SIERRA is not set
1268# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1327# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1269# CONFIG_USB_LIBUSUAL is not set 1328# CONFIG_USB_LIBUSUAL is not set
1270 1329
@@ -1286,6 +1345,7 @@ CONFIG_USB_STORAGE_ONETOUCH=y
1286# CONFIG_USB_EMI62 is not set 1345# CONFIG_USB_EMI62 is not set
1287# CONFIG_USB_EMI26 is not set 1346# CONFIG_USB_EMI26 is not set
1288# CONFIG_USB_ADUTUX is not set 1347# CONFIG_USB_ADUTUX is not set
1348# CONFIG_USB_SEVSEG is not set
1289# CONFIG_USB_RIO500 is not set 1349# CONFIG_USB_RIO500 is not set
1290# CONFIG_USB_LEGOTOWER is not set 1350# CONFIG_USB_LEGOTOWER is not set
1291# CONFIG_USB_LCD is not set 1351# CONFIG_USB_LCD is not set
@@ -1303,7 +1363,9 @@ CONFIG_USB_STORAGE_ONETOUCH=y
1303# CONFIG_USB_IOWARRIOR is not set 1363# CONFIG_USB_IOWARRIOR is not set
1304# CONFIG_USB_TEST is not set 1364# CONFIG_USB_TEST is not set
1305# CONFIG_USB_ISIGHTFW is not set 1365# CONFIG_USB_ISIGHTFW is not set
1366# CONFIG_USB_VST is not set
1306# CONFIG_USB_GADGET is not set 1367# CONFIG_USB_GADGET is not set
1368# CONFIG_UWB is not set
1307# CONFIG_MMC is not set 1369# CONFIG_MMC is not set
1308# CONFIG_MEMSTICK is not set 1370# CONFIG_MEMSTICK is not set
1309# CONFIG_NEW_LEDS is not set 1371# CONFIG_NEW_LEDS is not set
@@ -1331,6 +1393,7 @@ CONFIG_INFINIBAND_SRP=m
1331# CONFIG_DMADEVICES is not set 1393# CONFIG_DMADEVICES is not set
1332# CONFIG_AUXDISPLAY is not set 1394# CONFIG_AUXDISPLAY is not set
1333# CONFIG_UIO is not set 1395# CONFIG_UIO is not set
1396# CONFIG_STAGING is not set
1334 1397
1335# 1398#
1336# File systems 1399# File systems
@@ -1340,14 +1403,20 @@ CONFIG_EXT2_FS_XATTR=y
1340CONFIG_EXT2_FS_POSIX_ACL=y 1403CONFIG_EXT2_FS_POSIX_ACL=y
1341CONFIG_EXT2_FS_SECURITY=y 1404CONFIG_EXT2_FS_SECURITY=y
1342CONFIG_EXT2_FS_XIP=y 1405CONFIG_EXT2_FS_XIP=y
1343CONFIG_FS_XIP=y
1344CONFIG_EXT3_FS=y 1406CONFIG_EXT3_FS=y
1345CONFIG_EXT3_FS_XATTR=y 1407CONFIG_EXT3_FS_XATTR=y
1346CONFIG_EXT3_FS_POSIX_ACL=y 1408CONFIG_EXT3_FS_POSIX_ACL=y
1347CONFIG_EXT3_FS_SECURITY=y 1409CONFIG_EXT3_FS_SECURITY=y
1348# CONFIG_EXT4DEV_FS is not set 1410CONFIG_EXT4_FS=y
1411# CONFIG_EXT4DEV_COMPAT is not set
1412CONFIG_EXT4_FS_XATTR=y
1413CONFIG_EXT4_FS_POSIX_ACL=y
1414CONFIG_EXT4_FS_SECURITY=y
1415CONFIG_FS_XIP=y
1349CONFIG_JBD=y 1416CONFIG_JBD=y
1350# CONFIG_JBD_DEBUG is not set 1417# CONFIG_JBD_DEBUG is not set
1418CONFIG_JBD2=y
1419# CONFIG_JBD2_DEBUG is not set
1351CONFIG_FS_MBCACHE=y 1420CONFIG_FS_MBCACHE=y
1352CONFIG_REISERFS_FS=y 1421CONFIG_REISERFS_FS=y
1353# CONFIG_REISERFS_CHECK is not set 1422# CONFIG_REISERFS_CHECK is not set
@@ -1361,6 +1430,7 @@ CONFIG_JFS_SECURITY=y
1361# CONFIG_JFS_DEBUG is not set 1430# CONFIG_JFS_DEBUG is not set
1362# CONFIG_JFS_STATISTICS is not set 1431# CONFIG_JFS_STATISTICS is not set
1363CONFIG_FS_POSIX_ACL=y 1432CONFIG_FS_POSIX_ACL=y
1433CONFIG_FILE_LOCKING=y
1364CONFIG_XFS_FS=m 1434CONFIG_XFS_FS=m
1365# CONFIG_XFS_QUOTA is not set 1435# CONFIG_XFS_QUOTA is not set
1366CONFIG_XFS_POSIX_ACL=y 1436CONFIG_XFS_POSIX_ACL=y
@@ -1372,6 +1442,7 @@ CONFIG_OCFS2_FS_O2CB=m
1372CONFIG_OCFS2_FS_STATS=y 1442CONFIG_OCFS2_FS_STATS=y
1373CONFIG_OCFS2_DEBUG_MASKLOG=y 1443CONFIG_OCFS2_DEBUG_MASKLOG=y
1374# CONFIG_OCFS2_DEBUG_FS is not set 1444# CONFIG_OCFS2_DEBUG_FS is not set
1445# CONFIG_OCFS2_COMPAT_JBD is not set
1375CONFIG_DNOTIFY=y 1446CONFIG_DNOTIFY=y
1376CONFIG_INOTIFY=y 1447CONFIG_INOTIFY=y
1377CONFIG_INOTIFY_USER=y 1448CONFIG_INOTIFY_USER=y
@@ -1405,6 +1476,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1405CONFIG_PROC_FS=y 1476CONFIG_PROC_FS=y
1406CONFIG_PROC_KCORE=y 1477CONFIG_PROC_KCORE=y
1407CONFIG_PROC_SYSCTL=y 1478CONFIG_PROC_SYSCTL=y
1479CONFIG_PROC_PAGE_MONITOR=y
1408CONFIG_SYSFS=y 1480CONFIG_SYSFS=y
1409CONFIG_TMPFS=y 1481CONFIG_TMPFS=y
1410# CONFIG_TMPFS_POSIX_ACL is not set 1482# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1449,6 +1521,7 @@ CONFIG_NFS_COMMON=y
1449CONFIG_SUNRPC=y 1521CONFIG_SUNRPC=y
1450CONFIG_SUNRPC_GSS=y 1522CONFIG_SUNRPC_GSS=y
1451CONFIG_SUNRPC_XPRT_RDMA=m 1523CONFIG_SUNRPC_XPRT_RDMA=m
1524# CONFIG_SUNRPC_REGISTER_V4 is not set
1452CONFIG_RPCSEC_GSS_KRB5=y 1525CONFIG_RPCSEC_GSS_KRB5=y
1453CONFIG_RPCSEC_GSS_SPKM3=m 1526CONFIG_RPCSEC_GSS_SPKM3=m
1454# CONFIG_SMB_FS is not set 1527# CONFIG_SMB_FS is not set
@@ -1514,9 +1587,8 @@ CONFIG_NLS_ISO8859_1=y
1514# Library routines 1587# Library routines
1515# 1588#
1516CONFIG_BITREVERSE=y 1589CONFIG_BITREVERSE=y
1517# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1518CONFIG_CRC_CCITT=m 1590CONFIG_CRC_CCITT=m
1519# CONFIG_CRC16 is not set 1591CONFIG_CRC16=y
1520CONFIG_CRC_T10DIF=y 1592CONFIG_CRC_T10DIF=y
1521CONFIG_CRC_ITU_T=m 1593CONFIG_CRC_ITU_T=m
1522CONFIG_CRC32=y 1594CONFIG_CRC32=y
@@ -1580,21 +1652,31 @@ CONFIG_DEBUG_MEMORY_INIT=y
1580CONFIG_FRAME_POINTER=y 1652CONFIG_FRAME_POINTER=y
1581# CONFIG_BOOT_PRINTK_DELAY is not set 1653# CONFIG_BOOT_PRINTK_DELAY is not set
1582# CONFIG_RCU_TORTURE_TEST is not set 1654# CONFIG_RCU_TORTURE_TEST is not set
1655# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1583# CONFIG_KPROBES_SANITY_TEST is not set 1656# CONFIG_KPROBES_SANITY_TEST is not set
1584# CONFIG_BACKTRACE_SELF_TEST is not set 1657# CONFIG_BACKTRACE_SELF_TEST is not set
1658# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1585# CONFIG_LKDTM is not set 1659# CONFIG_LKDTM is not set
1586# CONFIG_FAULT_INJECTION is not set 1660# CONFIG_FAULT_INJECTION is not set
1587CONFIG_LATENCYTOP=y 1661CONFIG_LATENCYTOP=y
1588CONFIG_SYSCTL_SYSCALL_CHECK=y 1662CONFIG_SYSCTL_SYSCALL_CHECK=y
1589CONFIG_HAVE_FTRACE=y 1663CONFIG_NOP_TRACER=y
1590CONFIG_HAVE_DYNAMIC_FTRACE=y 1664CONFIG_HAVE_FUNCTION_TRACER=y
1591CONFIG_TRACER_MAX_TRACE=y 1665CONFIG_TRACER_MAX_TRACE=y
1666CONFIG_RING_BUFFER=y
1592CONFIG_TRACING=y 1667CONFIG_TRACING=y
1593# CONFIG_FTRACE is not set 1668
1669#
1670# Tracers
1671#
1672CONFIG_FUNCTION_TRACER=y
1594CONFIG_IRQSOFF_TRACER=y 1673CONFIG_IRQSOFF_TRACER=y
1595CONFIG_SCHED_TRACER=y 1674CONFIG_SCHED_TRACER=y
1596CONFIG_CONTEXT_SWITCH_TRACER=y 1675CONFIG_CONTEXT_SWITCH_TRACER=y
1676# CONFIG_BOOT_TRACER is not set
1677CONFIG_STACK_TRACER=y
1597# CONFIG_FTRACE_STARTUP_TEST is not set 1678# CONFIG_FTRACE_STARTUP_TEST is not set
1679CONFIG_DYNAMIC_PRINTK_DEBUG=y
1598# CONFIG_SAMPLES is not set 1680# CONFIG_SAMPLES is not set
1599CONFIG_HAVE_ARCH_KGDB=y 1681CONFIG_HAVE_ARCH_KGDB=y
1600# CONFIG_KGDB is not set 1682# CONFIG_KGDB is not set
@@ -1604,6 +1686,7 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1604CONFIG_HCALL_STATS=y 1686CONFIG_HCALL_STATS=y
1605# CONFIG_CODE_PATCHING_SELFTEST is not set 1687# CONFIG_CODE_PATCHING_SELFTEST is not set
1606# CONFIG_FTR_FIXUP_SELFTEST is not set 1688# CONFIG_FTR_FIXUP_SELFTEST is not set
1689# CONFIG_MSI_BITMAP_SELFTEST is not set
1607CONFIG_XMON=y 1690CONFIG_XMON=y
1608CONFIG_XMON_DEFAULT=y 1691CONFIG_XMON_DEFAULT=y
1609CONFIG_XMON_DISASSEMBLY=y 1692CONFIG_XMON_DISASSEMBLY=y
@@ -1618,16 +1701,19 @@ CONFIG_VIRQ_DEBUG=y
1618# 1701#
1619# CONFIG_KEYS is not set 1702# CONFIG_KEYS is not set
1620# CONFIG_SECURITY is not set 1703# CONFIG_SECURITY is not set
1704# CONFIG_SECURITYFS is not set
1621# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1705# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1622CONFIG_CRYPTO=y 1706CONFIG_CRYPTO=y
1623 1707
1624# 1708#
1625# Crypto core or helper 1709# Crypto core or helper
1626# 1710#
1711# CONFIG_CRYPTO_FIPS is not set
1627CONFIG_CRYPTO_ALGAPI=y 1712CONFIG_CRYPTO_ALGAPI=y
1628CONFIG_CRYPTO_AEAD=m 1713CONFIG_CRYPTO_AEAD=y
1629CONFIG_CRYPTO_BLKCIPHER=y 1714CONFIG_CRYPTO_BLKCIPHER=y
1630CONFIG_CRYPTO_HASH=y 1715CONFIG_CRYPTO_HASH=y
1716CONFIG_CRYPTO_RNG=y
1631CONFIG_CRYPTO_MANAGER=y 1717CONFIG_CRYPTO_MANAGER=y
1632CONFIG_CRYPTO_GF128MUL=m 1718CONFIG_CRYPTO_GF128MUL=m
1633CONFIG_CRYPTO_NULL=m 1719CONFIG_CRYPTO_NULL=m
@@ -1701,6 +1787,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1701# 1787#
1702CONFIG_CRYPTO_DEFLATE=m 1788CONFIG_CRYPTO_DEFLATE=m
1703CONFIG_CRYPTO_LZO=m 1789CONFIG_CRYPTO_LZO=m
1790
1791#
1792# Random Number Generation
1793#
1794# CONFIG_CRYPTO_ANSI_CPRNG is not set
1704# CONFIG_CRYPTO_HW is not set 1795# CONFIG_CRYPTO_HW is not set
1705# CONFIG_PPC_CLOCK is not set 1796# CONFIG_PPC_CLOCK is not set
1706# CONFIG_VIRTUALIZATION is not set 1797# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index 4340cc1c5b6a..b3f5671972a9 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4 3# Linux kernel version: 2.6.28-rc3
4# Thu Aug 21 00:52:16 2008 4# Sat Nov 8 12:39:48 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
@@ -102,7 +102,9 @@ CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 102CONFIG_TIMERFD=y
103CONFIG_EVENTFD=y 103CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 104CONFIG_SHMEM=y
105CONFIG_AIO=y
105CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
107CONFIG_PCI_QUIRKS=y
106CONFIG_SLUB_DEBUG=y 108CONFIG_SLUB_DEBUG=y
107# CONFIG_SLAB is not set 109# CONFIG_SLAB is not set
108CONFIG_SLUB=y 110CONFIG_SLUB=y
@@ -115,10 +117,6 @@ CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 119CONFIG_HAVE_ARCH_TRACEHOOK=y
118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120# CONFIG_HAVE_CLK is not set
121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
@@ -151,6 +149,7 @@ CONFIG_DEFAULT_CFQ=y
151# CONFIG_DEFAULT_NOOP is not set 149# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="cfq" 150CONFIG_DEFAULT_IOSCHED="cfq"
153CONFIG_CLASSIC_RCU=y 151CONFIG_CLASSIC_RCU=y
152# CONFIG_FREEZER is not set
154 153
155# 154#
156# Platform support 155# Platform support
@@ -190,13 +189,13 @@ CONFIG_MPIC=y
190# CONFIG_GENERIC_IOMAP is not set 189# CONFIG_GENERIC_IOMAP is not set
191# CONFIG_CPU_FREQ is not set 190# CONFIG_CPU_FREQ is not set
192# CONFIG_TAU is not set 191# CONFIG_TAU is not set
192# CONFIG_QUICC_ENGINE is not set
193# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
194 194
195# 195#
196# Kernel options 196# Kernel options
197# 197#
198# CONFIG_HIGHMEM is not set 198# CONFIG_HIGHMEM is not set
199# CONFIG_TICK_ONESHOT is not set
200# CONFIG_NO_HZ is not set 199# CONFIG_NO_HZ is not set
201# CONFIG_HIGH_RES_TIMERS is not set 200# CONFIG_HIGH_RES_TIMERS is not set
202CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 201CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -210,6 +209,8 @@ CONFIG_PREEMPT_NONE=y
210# CONFIG_PREEMPT_VOLUNTARY is not set 209# CONFIG_PREEMPT_VOLUNTARY is not set
211# CONFIG_PREEMPT is not set 210# CONFIG_PREEMPT is not set
212CONFIG_BINFMT_ELF=y 211CONFIG_BINFMT_ELF=y
212# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
213# CONFIG_HAVE_AOUT is not set
213CONFIG_BINFMT_MISC=y 214CONFIG_BINFMT_MISC=y
214# CONFIG_IOMMU_HELPER is not set 215# CONFIG_IOMMU_HELPER is not set
215CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -224,15 +225,15 @@ CONFIG_FLATMEM_MANUAL=y
224# CONFIG_SPARSEMEM_MANUAL is not set 225# CONFIG_SPARSEMEM_MANUAL is not set
225CONFIG_FLATMEM=y 226CONFIG_FLATMEM=y
226CONFIG_FLAT_NODE_MEM_MAP=y 227CONFIG_FLAT_NODE_MEM_MAP=y
227# CONFIG_SPARSEMEM_STATIC is not set
228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
229CONFIG_PAGEFLAGS_EXTENDED=y 228CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 229CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y 230CONFIG_MIGRATION=y
232# CONFIG_RESOURCES_64BIT is not set 231# CONFIG_RESOURCES_64BIT is not set
232# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y
236CONFIG_FORCE_MAX_ZONEORDER=11 237CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
238CONFIG_CMDLINE_BOOL=y 239CONFIG_CMDLINE_BOOL=y
@@ -255,7 +256,7 @@ CONFIG_PCI_SYSCALL=y
255# CONFIG_PCIEPORTBUS is not set 256# CONFIG_PCIEPORTBUS is not set
256CONFIG_ARCH_SUPPORTS_MSI=y 257CONFIG_ARCH_SUPPORTS_MSI=y
257# CONFIG_PCI_MSI is not set 258# CONFIG_PCI_MSI is not set
258CONFIG_PCI_LEGACY=y 259# CONFIG_PCI_LEGACY is not set
259# CONFIG_PCCARD is not set 260# CONFIG_PCCARD is not set
260# CONFIG_HOTPLUG_PCI is not set 261# CONFIG_HOTPLUG_PCI is not set
261# CONFIG_HAS_RAPIDIO is not set 262# CONFIG_HAS_RAPIDIO is not set
@@ -318,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
318# CONFIG_TIPC is not set 319# CONFIG_TIPC is not set
319# CONFIG_ATM is not set 320# CONFIG_ATM is not set
320# CONFIG_BRIDGE is not set 321# CONFIG_BRIDGE is not set
322# CONFIG_NET_DSA is not set
321# CONFIG_VLAN_8021Q is not set 323# CONFIG_VLAN_8021Q is not set
322# CONFIG_DECNET is not set 324# CONFIG_DECNET is not set
323# CONFIG_LLC2 is not set 325# CONFIG_LLC2 is not set
@@ -338,11 +340,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
338# CONFIG_IRDA is not set 340# CONFIG_IRDA is not set
339# CONFIG_BT is not set 341# CONFIG_BT is not set
340# CONFIG_AF_RXRPC is not set 342# CONFIG_AF_RXRPC is not set
341 343# CONFIG_PHONET is not set
342# 344CONFIG_WIRELESS=y
343# Wireless
344#
345# CONFIG_CFG80211 is not set 345# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y
346# CONFIG_WIRELESS_EXT is not set 347# CONFIG_WIRELESS_EXT is not set
347# CONFIG_MAC80211 is not set 348# CONFIG_MAC80211 is not set
348# CONFIG_IEEE80211 is not set 349# CONFIG_IEEE80211 is not set
@@ -471,18 +472,17 @@ CONFIG_MISC_DEVICES=y
471# CONFIG_HP_ILO is not set 472# CONFIG_HP_ILO is not set
472CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
473CONFIG_IDE=y 474CONFIG_IDE=y
474CONFIG_BLK_DEV_IDE=y
475 475
476# 476#
477# Please see Documentation/ide/ide.txt for help/info on IDE drives 477# Please see Documentation/ide/ide.txt for help/info on IDE drives
478# 478#
479CONFIG_IDE_TIMINGS=y 479CONFIG_IDE_TIMINGS=y
480# CONFIG_BLK_DEV_IDE_SATA is not set 480# CONFIG_BLK_DEV_IDE_SATA is not set
481CONFIG_BLK_DEV_IDEDISK=y 481CONFIG_IDE_GD=y
482CONFIG_IDEDISK_MULTI_MODE=y 482CONFIG_IDE_GD_ATA=y
483# CONFIG_IDE_GD_ATAPI is not set
483# CONFIG_BLK_DEV_IDECD is not set 484# CONFIG_BLK_DEV_IDECD is not set
484# CONFIG_BLK_DEV_IDETAPE is not set 485# CONFIG_BLK_DEV_IDETAPE is not set
485# CONFIG_BLK_DEV_IDEFLOPPY is not set
486# CONFIG_BLK_DEV_IDESCSI is not set 486# CONFIG_BLK_DEV_IDESCSI is not set
487# CONFIG_IDE_TASK_IOCTL is not set 487# CONFIG_IDE_TASK_IOCTL is not set
488CONFIG_IDE_PROC_FS=y 488CONFIG_IDE_PROC_FS=y
@@ -605,6 +605,7 @@ CONFIG_SCSI_LOWLEVEL=y
605# CONFIG_ATA is not set 605# CONFIG_ATA is not set
606CONFIG_MD=y 606CONFIG_MD=y
607CONFIG_BLK_DEV_MD=y 607CONFIG_BLK_DEV_MD=y
608CONFIG_MD_AUTODETECT=y
608CONFIG_MD_LINEAR=y 609CONFIG_MD_LINEAR=y
609CONFIG_MD_RAID0=y 610CONFIG_MD_RAID0=y
610CONFIG_MD_RAID1=y 611CONFIG_MD_RAID1=y
@@ -636,6 +637,7 @@ CONFIG_DUMMY=m
636# CONFIG_VETH is not set 637# CONFIG_VETH is not set
637# CONFIG_ARCNET is not set 638# CONFIG_ARCNET is not set
638# CONFIG_NET_ETHERNET is not set 639# CONFIG_NET_ETHERNET is not set
640CONFIG_MII=y
639CONFIG_NETDEV_1000=y 641CONFIG_NETDEV_1000=y
640# CONFIG_ACENIC is not set 642# CONFIG_ACENIC is not set
641# CONFIG_DL2K is not set 643# CONFIG_DL2K is not set
@@ -658,6 +660,7 @@ CONFIG_R8169=y
658# CONFIG_QLA3XXX is not set 660# CONFIG_QLA3XXX is not set
659# CONFIG_ATL1 is not set 661# CONFIG_ATL1 is not set
660# CONFIG_ATL1E is not set 662# CONFIG_ATL1E is not set
663# CONFIG_JME is not set
661# CONFIG_NETDEV_10000 is not set 664# CONFIG_NETDEV_10000 is not set
662# CONFIG_TR is not set 665# CONFIG_TR is not set
663 666
@@ -827,6 +830,17 @@ CONFIG_SSB_POSSIBLE=y
827# CONFIG_MFD_SM501 is not set 830# CONFIG_MFD_SM501 is not set
828# CONFIG_HTC_PASIC3 is not set 831# CONFIG_HTC_PASIC3 is not set
829# CONFIG_MFD_TMIO is not set 832# CONFIG_MFD_TMIO is not set
833# CONFIG_PMIC_DA903X is not set
834# CONFIG_MFD_WM8400 is not set
835# CONFIG_MFD_WM8350_I2C is not set
836
837#
838# Voltage and Current regulators
839#
840# CONFIG_REGULATOR is not set
841# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
842# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
843# CONFIG_REGULATOR_BQ24022 is not set
830 844
831# 845#
832# Multimedia devices 846# Multimedia devices
@@ -877,6 +891,8 @@ CONFIG_USB_DEVICE_CLASS=y
877# CONFIG_USB_OTG_WHITELIST is not set 891# CONFIG_USB_OTG_WHITELIST is not set
878# CONFIG_USB_OTG_BLACKLIST_HUB is not set 892# CONFIG_USB_OTG_BLACKLIST_HUB is not set
879# CONFIG_USB_MON is not set 893# CONFIG_USB_MON is not set
894# CONFIG_USB_WUSB is not set
895# CONFIG_USB_WUSB_CBAF is not set
880 896
881# 897#
882# USB Host Controller Drivers 898# USB Host Controller Drivers
@@ -897,6 +913,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
897# CONFIG_USB_UHCI_HCD is not set 913# CONFIG_USB_UHCI_HCD is not set
898# CONFIG_USB_SL811_HCD is not set 914# CONFIG_USB_SL811_HCD is not set
899# CONFIG_USB_R8A66597_HCD is not set 915# CONFIG_USB_R8A66597_HCD is not set
916# CONFIG_USB_WHCI_HCD is not set
917# CONFIG_USB_HWA_HCD is not set
900 918
901# 919#
902# USB Device Class drivers 920# USB Device Class drivers
@@ -904,6 +922,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
904# CONFIG_USB_ACM is not set 922# CONFIG_USB_ACM is not set
905# CONFIG_USB_PRINTER is not set 923# CONFIG_USB_PRINTER is not set
906# CONFIG_USB_WDM is not set 924# CONFIG_USB_WDM is not set
925# CONFIG_USB_TMC is not set
907 926
908# 927#
909# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 928# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -924,7 +943,6 @@ CONFIG_USB_STORAGE=y
924# CONFIG_USB_STORAGE_JUMPSHOT is not set 943# CONFIG_USB_STORAGE_JUMPSHOT is not set
925# CONFIG_USB_STORAGE_ALAUDA is not set 944# CONFIG_USB_STORAGE_ALAUDA is not set
926# CONFIG_USB_STORAGE_KARMA is not set 945# CONFIG_USB_STORAGE_KARMA is not set
927# CONFIG_USB_STORAGE_SIERRA is not set
928# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 946# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
929# CONFIG_USB_LIBUSUAL is not set 947# CONFIG_USB_LIBUSUAL is not set
930 948
@@ -945,6 +963,7 @@ CONFIG_USB_STORAGE=y
945# CONFIG_USB_EMI62 is not set 963# CONFIG_USB_EMI62 is not set
946# CONFIG_USB_EMI26 is not set 964# CONFIG_USB_EMI26 is not set
947# CONFIG_USB_ADUTUX is not set 965# CONFIG_USB_ADUTUX is not set
966# CONFIG_USB_SEVSEG is not set
948# CONFIG_USB_RIO500 is not set 967# CONFIG_USB_RIO500 is not set
949# CONFIG_USB_LEGOTOWER is not set 968# CONFIG_USB_LEGOTOWER is not set
950# CONFIG_USB_LCD is not set 969# CONFIG_USB_LCD is not set
@@ -962,7 +981,9 @@ CONFIG_USB_STORAGE=y
962# CONFIG_USB_IOWARRIOR is not set 981# CONFIG_USB_IOWARRIOR is not set
963# CONFIG_USB_TEST is not set 982# CONFIG_USB_TEST is not set
964# CONFIG_USB_ISIGHTFW is not set 983# CONFIG_USB_ISIGHTFW is not set
984# CONFIG_USB_VST is not set
965# CONFIG_USB_GADGET is not set 985# CONFIG_USB_GADGET is not set
986# CONFIG_UWB is not set
966# CONFIG_MMC is not set 987# CONFIG_MMC is not set
967# CONFIG_MEMSTICK is not set 988# CONFIG_MEMSTICK is not set
968# CONFIG_NEW_LEDS is not set 989# CONFIG_NEW_LEDS is not set
@@ -1008,12 +1029,15 @@ CONFIG_RTC_DRV_DS1307=y
1008# Platform RTC drivers 1029# Platform RTC drivers
1009# 1030#
1010# CONFIG_RTC_DRV_CMOS is not set 1031# CONFIG_RTC_DRV_CMOS is not set
1032# CONFIG_RTC_DRV_DS1286 is not set
1011# CONFIG_RTC_DRV_DS1511 is not set 1033# CONFIG_RTC_DRV_DS1511 is not set
1012# CONFIG_RTC_DRV_DS1553 is not set 1034# CONFIG_RTC_DRV_DS1553 is not set
1013# CONFIG_RTC_DRV_DS1742 is not set 1035# CONFIG_RTC_DRV_DS1742 is not set
1014# CONFIG_RTC_DRV_STK17TA8 is not set 1036# CONFIG_RTC_DRV_STK17TA8 is not set
1015# CONFIG_RTC_DRV_M48T86 is not set 1037# CONFIG_RTC_DRV_M48T86 is not set
1038# CONFIG_RTC_DRV_M48T35 is not set
1016# CONFIG_RTC_DRV_M48T59 is not set 1039# CONFIG_RTC_DRV_M48T59 is not set
1040# CONFIG_RTC_DRV_BQ4802 is not set
1017# CONFIG_RTC_DRV_V3020 is not set 1041# CONFIG_RTC_DRV_V3020 is not set
1018 1042
1019# 1043#
@@ -1022,6 +1046,7 @@ CONFIG_RTC_DRV_DS1307=y
1022# CONFIG_RTC_DRV_PPC is not set 1046# CONFIG_RTC_DRV_PPC is not set
1023# CONFIG_DMADEVICES is not set 1047# CONFIG_DMADEVICES is not set
1024# CONFIG_UIO is not set 1048# CONFIG_UIO is not set
1049# CONFIG_STAGING is not set
1025 1050
1026# 1051#
1027# File systems 1052# File systems
@@ -1033,12 +1058,13 @@ CONFIG_EXT3_FS=y
1033CONFIG_EXT3_FS_XATTR=y 1058CONFIG_EXT3_FS_XATTR=y
1034# CONFIG_EXT3_FS_POSIX_ACL is not set 1059# CONFIG_EXT3_FS_POSIX_ACL is not set
1035# CONFIG_EXT3_FS_SECURITY is not set 1060# CONFIG_EXT3_FS_SECURITY is not set
1036# CONFIG_EXT4DEV_FS is not set 1061# CONFIG_EXT4_FS is not set
1037CONFIG_JBD=y 1062CONFIG_JBD=y
1038CONFIG_FS_MBCACHE=y 1063CONFIG_FS_MBCACHE=y
1039# CONFIG_REISERFS_FS is not set 1064# CONFIG_REISERFS_FS is not set
1040# CONFIG_JFS_FS is not set 1065# CONFIG_JFS_FS is not set
1041# CONFIG_FS_POSIX_ACL is not set 1066# CONFIG_FS_POSIX_ACL is not set
1067CONFIG_FILE_LOCKING=y
1042CONFIG_XFS_FS=m 1068CONFIG_XFS_FS=m
1043# CONFIG_XFS_QUOTA is not set 1069# CONFIG_XFS_QUOTA is not set
1044# CONFIG_XFS_POSIX_ACL is not set 1070# CONFIG_XFS_POSIX_ACL is not set
@@ -1072,6 +1098,7 @@ CONFIG_INOTIFY_USER=y
1072CONFIG_PROC_FS=y 1098CONFIG_PROC_FS=y
1073CONFIG_PROC_KCORE=y 1099CONFIG_PROC_KCORE=y
1074CONFIG_PROC_SYSCTL=y 1100CONFIG_PROC_SYSCTL=y
1101CONFIG_PROC_PAGE_MONITOR=y
1075CONFIG_SYSFS=y 1102CONFIG_SYSFS=y
1076CONFIG_TMPFS=y 1103CONFIG_TMPFS=y
1077# CONFIG_TMPFS_POSIX_ACL is not set 1104# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1177,7 +1204,6 @@ CONFIG_NLS_UTF8=y
1177# Library routines 1204# Library routines
1178# 1205#
1179CONFIG_BITREVERSE=y 1206CONFIG_BITREVERSE=y
1180# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1181# CONFIG_CRC_CCITT is not set 1207# CONFIG_CRC_CCITT is not set
1182# CONFIG_CRC16 is not set 1208# CONFIG_CRC16 is not set
1183CONFIG_CRC_T10DIF=y 1209CONFIG_CRC_T10DIF=y
@@ -1209,13 +1235,15 @@ CONFIG_FRAME_WARN=1024
1209# CONFIG_SLUB_STATS is not set 1235# CONFIG_SLUB_STATS is not set
1210# CONFIG_DEBUG_BUGVERBOSE is not set 1236# CONFIG_DEBUG_BUGVERBOSE is not set
1211# CONFIG_DEBUG_MEMORY_INIT is not set 1237# CONFIG_DEBUG_MEMORY_INIT is not set
1238# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1212# CONFIG_LATENCYTOP is not set 1239# CONFIG_LATENCYTOP is not set
1213CONFIG_SYSCTL_SYSCALL_CHECK=y 1240CONFIG_SYSCTL_SYSCALL_CHECK=y
1214CONFIG_HAVE_FTRACE=y 1241CONFIG_HAVE_FUNCTION_TRACER=y
1215CONFIG_HAVE_DYNAMIC_FTRACE=y 1242
1216# CONFIG_FTRACE is not set 1243#
1217# CONFIG_SCHED_TRACER is not set 1244# Tracers
1218# CONFIG_CONTEXT_SWITCH_TRACER is not set 1245#
1246# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1219# CONFIG_SAMPLES is not set 1247# CONFIG_SAMPLES is not set
1220CONFIG_HAVE_ARCH_KGDB=y 1248CONFIG_HAVE_ARCH_KGDB=y
1221# CONFIG_IRQSTACKS is not set 1249# CONFIG_IRQSTACKS is not set
@@ -1227,6 +1255,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1227# 1255#
1228# CONFIG_KEYS is not set 1256# CONFIG_KEYS is not set
1229# CONFIG_SECURITY is not set 1257# CONFIG_SECURITY is not set
1258# CONFIG_SECURITYFS is not set
1230# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1259# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1231CONFIG_XOR_BLOCKS=y 1260CONFIG_XOR_BLOCKS=y
1232CONFIG_ASYNC_CORE=y 1261CONFIG_ASYNC_CORE=y
diff --git a/arch/powerpc/include/asm/immap_cpm2.h b/arch/powerpc/include/asm/immap_cpm2.h
index 4080bab0468c..d4f069bf0e57 100644
--- a/arch/powerpc/include/asm/immap_cpm2.h
+++ b/arch/powerpc/include/asm/immap_cpm2.h
@@ -554,14 +554,11 @@ typedef struct usb_ctlr {
554 u8 usb_usadr; 554 u8 usb_usadr;
555 u8 usb_uscom; 555 u8 usb_uscom;
556 u8 res1[1]; 556 u8 res1[1];
557 u16 usb_usep1; 557 __be16 usb_usep[4];
558 u16 usb_usep2;
559 u16 usb_usep3;
560 u16 usb_usep4;
561 u8 res2[4]; 558 u8 res2[4];
562 u16 usb_usber; 559 __be16 usb_usber;
563 u8 res3[2]; 560 u8 res3[2];
564 u16 usb_usbmr; 561 __be16 usb_usbmr;
565 u8 usb_usbs; 562 u8 usb_usbs;
566 u8 res4[7]; 563 u8 res4[7];
567} usb_cpm2_t; 564} usb_cpm2_t;
diff --git a/arch/powerpc/include/asm/immap_qe.h b/arch/powerpc/include/asm/immap_qe.h
index 3c2fced3ac22..c346d0bcd230 100644
--- a/arch/powerpc/include/asm/immap_qe.h
+++ b/arch/powerpc/include/asm/immap_qe.h
@@ -215,10 +215,7 @@ struct usb_ctlr {
215 u8 usb_usadr; 215 u8 usb_usadr;
216 u8 usb_uscom; 216 u8 usb_uscom;
217 u8 res1[1]; 217 u8 res1[1];
218 __be16 usb_usep1; 218 __be16 usb_usep[4];
219 __be16 usb_usep2;
220 __be16 usb_usep3;
221 __be16 usb_usep4;
222 u8 res2[4]; 219 u8 res2[4];
223 __be16 usb_usber; 220 __be16 usb_usber;
224 u8 res3[2]; 221 u8 res3[2];
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 6a9b4bf0d173..5c33bc14bd9f 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -470,6 +470,8 @@ _GLOBAL(_tlbil_pid)
470 mfspr r3,SPRN_MMUCSR0 470 mfspr r3,SPRN_MMUCSR0
471 andi. r3,r3,MMUCSR0_TLBFI@l 471 andi. r3,r3,MMUCSR0_TLBFI@l
472 bne 1b 472 bne 1b
473 msync
474 isync
473 blr 475 blr
474 476
475/* 477/*
@@ -477,15 +479,20 @@ _GLOBAL(_tlbil_pid)
477 * (no broadcast) 479 * (no broadcast)
478 */ 480 */
479_GLOBAL(_tlbil_va) 481_GLOBAL(_tlbil_va)
482 mfmsr r10
483 wrteei 0
480 slwi r4,r4,16 484 slwi r4,r4,16
481 mtspr SPRN_MAS6,r4 /* assume AS=0 for now */ 485 mtspr SPRN_MAS6,r4 /* assume AS=0 for now */
482 tlbsx 0,r3 486 tlbsx 0,r3
483 mfspr r4,SPRN_MAS1 /* check valid */ 487 mfspr r4,SPRN_MAS1 /* check valid */
484 andis. r3,r4,MAS1_VALID@h 488 andis. r3,r4,MAS1_VALID@h
485 beqlr 489 beq 1f
486 rlwinm r4,r4,0,1,31 490 rlwinm r4,r4,0,1,31
487 mtspr SPRN_MAS1,r4 491 mtspr SPRN_MAS1,r4
488 tlbwe 492 tlbwe
493 msync
494 isync
4951: wrtee r10
489 blr 496 blr
490#endif /* CONFIG_FSL_BOOKE */ 497#endif /* CONFIG_FSL_BOOKE */
491 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/signal_32.c b/arch/powerpc/kernel/signal_32.c
index a6a43103655e..b13abf305996 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -941,9 +941,21 @@ long sys_swapcontext(struct ucontext __user *old_ctx,
941#ifdef CONFIG_PPC64 941#ifdef CONFIG_PPC64
942 unsigned long new_msr = 0; 942 unsigned long new_msr = 0;
943 943
944 if (new_ctx && 944 if (new_ctx) {
945 get_user(new_msr, &new_ctx->uc_mcontext.mc_gregs[PT_MSR])) 945 struct mcontext __user *mcp;
946 return -EFAULT; 946 u32 cmcp;
947
948 /*
949 * Get pointer to the real mcontext. No need for
950 * access_ok since we are dealing with compat
951 * pointers.
952 */
953 if (__get_user(cmcp, &new_ctx->uc_regs))
954 return -EFAULT;
955 mcp = (struct mcontext __user *)(u64)cmcp;
956 if (__get_user(new_msr, &mcp->mc_gregs[PT_MSR]))
957 return -EFAULT;
958 }
947 /* 959 /*
948 * Check that the context is not smaller than the original 960 * Check that the context is not smaller than the original
949 * size (with VMX but without VSX) 961 * size (with VMX but without VSX)
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/ras.c b/arch/powerpc/platforms/cell/ras.c
index fdf088f2430e..7b4cefa2199b 100644
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
@@ -16,6 +16,7 @@
16#include <linux/kexec.h> 16#include <linux/kexec.h>
17#include <linux/crash_dump.h> 17#include <linux/crash_dump.h>
18 18
19#include <asm/kexec.h>
19#include <asm/reg.h> 20#include <asm/reg.h>
20#include <asm/io.h> 21#include <asm/io.h>
21#include <asm/prom.h> 22#include <asm/prom.h>
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/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c
index 31481dc485de..7190493e9bdc 100644
--- a/arch/powerpc/platforms/pseries/pci_dlpar.c
+++ b/arch/powerpc/platforms/pseries/pci_dlpar.c
@@ -189,7 +189,6 @@ struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn)
189{ 189{
190 struct pci_controller *phb; 190 struct pci_controller *phb;
191 int primary; 191 int primary;
192 struct pci_bus *b;
193 192
194 primary = list_empty(&hose_list); 193 primary = list_empty(&hose_list);
195 phb = pcibios_alloc_controller(dn); 194 phb = pcibios_alloc_controller(dn);
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 ed500ef799b7..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 | \
@@ -61,22 +61,25 @@ STACK_SIZE = 1 << STACK_SHIFT
61 61
62#ifdef CONFIG_TRACE_IRQFLAGS 62#ifdef CONFIG_TRACE_IRQFLAGS
63 .macro TRACE_IRQS_ON 63 .macro TRACE_IRQS_ON
64 l %r1,BASED(.Ltrace_irq_on) 64 basr %r2,%r0
65 l %r1,BASED(.Ltrace_irq_on_caller)
65 basr %r14,%r1 66 basr %r14,%r1
66 .endm 67 .endm
67 68
68 .macro TRACE_IRQS_OFF 69 .macro TRACE_IRQS_OFF
69 l %r1,BASED(.Ltrace_irq_off) 70 basr %r2,%r0
71 l %r1,BASED(.Ltrace_irq_off_caller)
70 basr %r14,%r1 72 basr %r14,%r1
71 .endm 73 .endm
72 74
73 .macro TRACE_IRQS_CHECK 75 .macro TRACE_IRQS_CHECK
76 basr %r2,%r0
74 tm SP_PSW(%r15),0x03 # irqs enabled? 77 tm SP_PSW(%r15),0x03 # irqs enabled?
75 jz 0f 78 jz 0f
76 l %r1,BASED(.Ltrace_irq_on) 79 l %r1,BASED(.Ltrace_irq_on_caller)
77 basr %r14,%r1 80 basr %r14,%r1
78 j 1f 81 j 1f
790: l %r1,BASED(.Ltrace_irq_off) 820: l %r1,BASED(.Ltrace_irq_off_caller)
80 basr %r14,%r1 83 basr %r14,%r1
811: 841:
82 .endm 85 .endm
@@ -180,11 +183,10 @@ STACK_SIZE = 1 << STACK_SHIFT
180 .macro CREATE_STACK_FRAME psworg,savearea 183 .macro CREATE_STACK_FRAME psworg,savearea
181 s %r15,BASED(.Lc_spsize) # make room for registers & psw 184 s %r15,BASED(.Lc_spsize) # make room for registers & psw
182 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
183 la %r12,\psworg
184 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
185 icm %r12,12,__LC_SVC_ILC 187 icm %r12,3,__LC_SVC_ILC
186 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
187 st %r12,SP_ILC(%r15) 189 st %r12,SP_SVCNR(%r15)
188 mvc SP_R12(16,%r15),\savearea # move %r12-%r15 to stack 190 mvc SP_R12(16,%r15),\savearea # move %r12-%r15 to stack
189 la %r12,0 191 la %r12,0
190 st %r12,__SF_BACKCHAIN(%r15) # clear back chain 192 st %r12,__SF_BACKCHAIN(%r15) # clear back chain
@@ -261,16 +263,17 @@ sysc_update:
261#endif 263#endif
262sysc_do_svc: 264sysc_do_svc:
263 l %r9,__LC_THREAD_INFO # load pointer to thread_info struct 265 l %r9,__LC_THREAD_INFO # load pointer to thread_info struct
264 sla %r7,2 # *4 and test for svc 0 266 ltr %r7,%r7 # test for svc 0
265 bnz BASED(sysc_nr_ok) # svc number > 0 267 bnz BASED(sysc_nr_ok) # svc number > 0
266 # svc 0: system call number in %r1 268 # svc 0: system call number in %r1
267 cl %r1,BASED(.Lnr_syscalls) 269 cl %r1,BASED(.Lnr_syscalls)
268 bnl BASED(sysc_nr_ok) 270 bnl BASED(sysc_nr_ok)
269 lr %r7,%r1 # copy svc number to %r7 271 lr %r7,%r1 # copy svc number to %r7
270 sla %r7,2 # *4
271sysc_nr_ok: 272sysc_nr_ok:
272 mvc SP_ARGS(4,%r15),SP_R7(%r15) 273 mvc SP_ARGS(4,%r15),SP_R7(%r15)
273sysc_do_restart: 274sysc_do_restart:
275 sth %r7,SP_SVCNR(%r15)
276 sll %r7,2 # svc number *4
274 l %r8,BASED(.Lsysc_table) 277 l %r8,BASED(.Lsysc_table)
275 tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT) 278 tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)
276 l %r8,0(%r7,%r8) # get system call addr. 279 l %r8,0(%r7,%r8) # get system call addr.
@@ -373,7 +376,6 @@ sysc_notify_resume:
373sysc_restart: 376sysc_restart:
374 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
375 l %r7,SP_R2(%r15) # load new svc number 378 l %r7,SP_R2(%r15) # load new svc number
376 sla %r7,2
377 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
378 lm %r2,%r6,SP_R2(%r15) # load svc arguments 380 lm %r2,%r6,SP_R2(%r15) # load svc arguments
379 b BASED(sysc_do_restart) # restart svc 381 b BASED(sysc_do_restart) # restart svc
@@ -383,7 +385,8 @@ sysc_restart:
383# 385#
384sysc_singlestep: 386sysc_singlestep:
385 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
386 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
387 la %r2,SP_PTREGS(%r15) # address of register-save area 390 la %r2,SP_PTREGS(%r15) # address of register-save area
388 l %r1,BASED(.Lhandle_per) # load adr. of per handler 391 l %r1,BASED(.Lhandle_per) # load adr. of per handler
389 la %r14,BASED(sysc_return) # load adr. of system return 392 la %r14,BASED(sysc_return) # load adr. of system return
@@ -404,7 +407,7 @@ sysc_tracesys:
404 bnl BASED(sysc_tracenogo) 407 bnl BASED(sysc_tracenogo)
405 l %r8,BASED(.Lsysc_table) 408 l %r8,BASED(.Lsysc_table)
406 lr %r7,%r2 409 lr %r7,%r2
407 sll %r7,2 # *4 410 sll %r7,2 # svc number *4
408 l %r8,0(%r7,%r8) 411 l %r8,0(%r7,%r8)
409sysc_tracego: 412sysc_tracego:
410 lm %r3,%r6,SP_R3(%r15) 413 lm %r3,%r6,SP_R3(%r15)
@@ -583,7 +586,8 @@ pgm_svcper:
583# per was called from kernel, must be kprobes 586# per was called from kernel, must be kprobes
584# 587#
585kernel_per: 588kernel_per:
586 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
587 la %r2,SP_PTREGS(%r15) # address of register-save area 591 la %r2,SP_PTREGS(%r15) # address of register-save area
588 l %r1,BASED(.Lhandle_per) # load adr. of per handler 592 l %r1,BASED(.Lhandle_per) # load adr. of per handler
589 la %r14,BASED(sysc_restore)# load adr. of system return 593 la %r14,BASED(sysc_restore)# load adr. of system return
@@ -1113,9 +1117,12 @@ cleanup_io_leave_insn:
1113.Lschedtail: .long schedule_tail 1117.Lschedtail: .long schedule_tail
1114.Lsysc_table: .long sys_call_table 1118.Lsysc_table: .long sys_call_table
1115#ifdef CONFIG_TRACE_IRQFLAGS 1119#ifdef CONFIG_TRACE_IRQFLAGS
1116.Ltrace_irq_on: .long trace_hardirqs_on 1120.Ltrace_irq_on_caller:
1117.Ltrace_irq_off: 1121 .long trace_hardirqs_on_caller
1118 .long trace_hardirqs_off 1122.Ltrace_irq_off_caller:
1123 .long trace_hardirqs_off_caller
1124#endif
1125#ifdef CONFIG_LOCKDEP
1119.Llockdep_sys_exit: 1126.Llockdep_sys_exit:
1120 .long lockdep_sys_exit 1127 .long lockdep_sys_exit
1121#endif 1128#endif
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index d7ce150453f2..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
@@ -61,19 +61,22 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \
61 61
62#ifdef CONFIG_TRACE_IRQFLAGS 62#ifdef CONFIG_TRACE_IRQFLAGS
63 .macro TRACE_IRQS_ON 63 .macro TRACE_IRQS_ON
64 brasl %r14,trace_hardirqs_on 64 basr %r2,%r0
65 brasl %r14,trace_hardirqs_on_caller
65 .endm 66 .endm
66 67
67 .macro TRACE_IRQS_OFF 68 .macro TRACE_IRQS_OFF
68 brasl %r14,trace_hardirqs_off 69 basr %r2,%r0
70 brasl %r14,trace_hardirqs_off_caller
69 .endm 71 .endm
70 72
71 .macro TRACE_IRQS_CHECK 73 .macro TRACE_IRQS_CHECK
74 basr %r2,%r0
72 tm SP_PSW(%r15),0x03 # irqs enabled? 75 tm SP_PSW(%r15),0x03 # irqs enabled?
73 jz 0f 76 jz 0f
74 brasl %r14,trace_hardirqs_on 77 brasl %r14,trace_hardirqs_on_caller
75 j 1f 78 j 1f
760: brasl %r14,trace_hardirqs_off 790: brasl %r14,trace_hardirqs_off_caller
771: 801:
78 .endm 81 .endm
79#else 82#else
@@ -168,11 +171,10 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \
168 .macro CREATE_STACK_FRAME psworg,savearea 171 .macro CREATE_STACK_FRAME psworg,savearea
169 aghi %r15,-SP_SIZE # make room for registers & psw 172 aghi %r15,-SP_SIZE # make room for registers & psw
170 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
171 la %r12,\psworg
172 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
173 icm %r12,12,__LC_SVC_ILC 175 icm %r12,3,__LC_SVC_ILC
174 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
175 st %r12,SP_ILC(%r15) 177 st %r12,SP_SVCNR(%r15)
176 mvc SP_R12(32,%r15),\savearea # move %r12-%r15 to stack 178 mvc SP_R12(32,%r15),\savearea # move %r12-%r15 to stack
177 la %r12,0 179 la %r12,0
178 stg %r12,__SF_BACKCHAIN(%r15) 180 stg %r12,__SF_BACKCHAIN(%r15)
@@ -247,16 +249,17 @@ sysc_update:
247#endif 249#endif
248sysc_do_svc: 250sysc_do_svc:
249 lg %r9,__LC_THREAD_INFO # load pointer to thread_info struct 251 lg %r9,__LC_THREAD_INFO # load pointer to thread_info struct
250 slag %r7,%r7,2 # *4 and test for svc 0 252 ltgr %r7,%r7 # test for svc 0
251 jnz sysc_nr_ok 253 jnz sysc_nr_ok
252 # svc 0: system call number in %r1 254 # svc 0: system call number in %r1
253 cl %r1,BASED(.Lnr_syscalls) 255 cl %r1,BASED(.Lnr_syscalls)
254 jnl sysc_nr_ok 256 jnl sysc_nr_ok
255 lgfr %r7,%r1 # clear high word in r1 257 lgfr %r7,%r1 # clear high word in r1
256 slag %r7,%r7,2 # svc 0: system call number in %r1
257sysc_nr_ok: 258sysc_nr_ok:
258 mvc SP_ARGS(8,%r15),SP_R7(%r15) 259 mvc SP_ARGS(8,%r15),SP_R7(%r15)
259sysc_do_restart: 260sysc_do_restart:
261 sth %r7,SP_SVCNR(%r15)
262 sllg %r7,%r7,2 # svc number * 4
260 larl %r10,sys_call_table 263 larl %r10,sys_call_table
261#ifdef CONFIG_COMPAT 264#ifdef CONFIG_COMPAT
262 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 ?
@@ -360,7 +363,6 @@ sysc_notify_resume:
360sysc_restart: 363sysc_restart:
361 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
362 lg %r7,SP_R2(%r15) # load new svc number 365 lg %r7,SP_R2(%r15) # load new svc number
363 slag %r7,%r7,2 # *4
364 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
365 lmg %r2,%r6,SP_R2(%r15) # load svc arguments 367 lmg %r2,%r6,SP_R2(%r15) # load svc arguments
366 j sysc_do_restart # restart svc 368 j sysc_do_restart # restart svc
@@ -369,9 +371,8 @@ sysc_restart:
369# _TIF_SINGLE_STEP is set, call do_single_step 371# _TIF_SINGLE_STEP is set, call do_single_step
370# 372#
371sysc_singlestep: 373sysc_singlestep:
372 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
373 lhi %r0,__LC_PGM_OLD_PSW 375 xc SP_SVCNR(2,%r15),SP_SVCNR(%r15) # clear svc number
374 sth %r0,SP_TRAP(%r15) # set trap indication to pgm check
375 la %r2,SP_PTREGS(%r15) # address of register-save area 376 la %r2,SP_PTREGS(%r15) # address of register-save area
376 larl %r14,sysc_return # load adr. of system return 377 larl %r14,sysc_return # load adr. of system return
377 jg do_single_step # branch to do_sigtrap 378 jg do_single_step # branch to do_sigtrap
@@ -389,7 +390,7 @@ sysc_tracesys:
389 lghi %r0,NR_syscalls 390 lghi %r0,NR_syscalls
390 clgr %r0,%r2 391 clgr %r0,%r2
391 jnh sysc_tracenogo 392 jnh sysc_tracenogo
392 slag %r7,%r2,2 # *4 393 sllg %r7,%r2,2 # svc number *4
393 lgf %r8,0(%r7,%r10) 394 lgf %r8,0(%r7,%r10)
394sysc_tracego: 395sysc_tracego:
395 lmg %r3,%r6,SP_R3(%r15) 396 lmg %r3,%r6,SP_R3(%r15)
@@ -564,8 +565,7 @@ pgm_svcper:
564# per was called from kernel, must be kprobes 565# per was called from kernel, must be kprobes
565# 566#
566kernel_per: 567kernel_per:
567 lhi %r0,__LC_PGM_OLD_PSW 568 xc SP_SVCNR(2,%r15),SP_SVCNR(%r15) # clear svc number
568 sth %r0,SP_TRAP(%r15) # set trap indication to pgm check
569 la %r2,SP_PTREGS(%r15) # address of register-save area 569 la %r2,SP_PTREGS(%r15) # address of register-save area
570 larl %r14,sysc_restore # load adr. of system ret, no work 570 larl %r14,sysc_restore # load adr. of system ret, no work
571 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/process.c b/arch/s390/kernel/process.c
index 3e2c05cb6a87..04f8c67a6101 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -136,9 +136,12 @@ static void default_idle(void)
136 return; 136 return;
137 } 137 }
138 trace_hardirqs_on(); 138 trace_hardirqs_on();
139 /* Don't trace preempt off for idle. */
140 stop_critical_timings();
139 /* Wait for external, I/O or machine check interrupt. */ 141 /* Wait for external, I/O or machine check interrupt. */
140 __load_psw_mask(psw_kernel_bits | PSW_MASK_WAIT | 142 __load_psw_mask(psw_kernel_bits | PSW_MASK_WAIT |
141 PSW_MASK_IO | PSW_MASK_EXT); 143 PSW_MASK_IO | PSW_MASK_EXT);
144 start_critical_timings();
142} 145}
143 146
144void cpu_idle(void) 147void cpu_idle(void)
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/setup.c b/arch/s390/kernel/setup.c
index 62122bad1e33..400b040df7fa 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -604,13 +604,13 @@ setup_memory(void)
604 if (memory_chunk[i].type != CHUNK_READ_WRITE) 604 if (memory_chunk[i].type != CHUNK_READ_WRITE)
605 continue; 605 continue;
606 start_chunk = PFN_DOWN(memory_chunk[i].addr); 606 start_chunk = PFN_DOWN(memory_chunk[i].addr);
607 end_chunk = start_chunk + PFN_DOWN(memory_chunk[i].size) - 1; 607 end_chunk = start_chunk + PFN_DOWN(memory_chunk[i].size);
608 end_chunk = min(end_chunk, end_pfn); 608 end_chunk = min(end_chunk, end_pfn);
609 if (start_chunk >= end_chunk) 609 if (start_chunk >= end_chunk)
610 continue; 610 continue;
611 add_active_range(0, start_chunk, end_chunk); 611 add_active_range(0, start_chunk, end_chunk);
612 pfn = max(start_chunk, start_pfn); 612 pfn = max(start_chunk, start_pfn);
613 for (; pfn <= end_chunk; pfn++) 613 for (; pfn < end_chunk; pfn++)
614 page_set_storage_key(PFN_PHYS(pfn), PAGE_DEFAULT_KEY); 614 page_set_storage_key(PFN_PHYS(pfn), PAGE_DEFAULT_KEY);
615 } 615 }
616 616
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/sys_s390.c b/arch/s390/kernel/sys_s390.c
index 5fdb799062b7..4fe952e557ac 100644
--- a/arch/s390/kernel/sys_s390.c
+++ b/arch/s390/kernel/sys_s390.c
@@ -198,7 +198,7 @@ asmlinkage long s390x_newuname(struct new_utsname __user *name)
198{ 198{
199 int ret = sys_newuname(name); 199 int ret = sys_newuname(name);
200 200
201 if (current->personality == PER_LINUX32 && !ret) { 201 if (personality(current->personality) == PER_LINUX32 && !ret) {
202 ret = copy_to_user(name->machine, "s390\0\0\0\0", 8); 202 ret = copy_to_user(name->machine, "s390\0\0\0\0", 8);
203 if (ret) ret = -EFAULT; 203 if (ret) ret = -EFAULT;
204 } 204 }
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/topology.c b/arch/s390/kernel/topology.c
index 632b13e10053..a947899dcba1 100644
--- a/arch/s390/kernel/topology.c
+++ b/arch/s390/kernel/topology.c
@@ -65,18 +65,21 @@ static int machine_has_topology_irq;
65static struct timer_list topology_timer; 65static struct timer_list topology_timer;
66static void set_topology_timer(void); 66static void set_topology_timer(void);
67static DECLARE_WORK(topology_work, topology_work_fn); 67static DECLARE_WORK(topology_work, topology_work_fn);
68/* topology_lock protects the core linked list */
69static DEFINE_SPINLOCK(topology_lock);
68 70
69cpumask_t cpu_core_map[NR_CPUS]; 71cpumask_t cpu_core_map[NR_CPUS];
70 72
71cpumask_t cpu_coregroup_map(unsigned int cpu) 73cpumask_t cpu_coregroup_map(unsigned int cpu)
72{ 74{
73 struct core_info *core = &core_info; 75 struct core_info *core = &core_info;
76 unsigned long flags;
74 cpumask_t mask; 77 cpumask_t mask;
75 78
76 cpus_clear(mask); 79 cpus_clear(mask);
77 if (!machine_has_topology) 80 if (!machine_has_topology)
78 return cpu_present_map; 81 return cpu_present_map;
79 mutex_lock(&smp_cpu_state_mutex); 82 spin_lock_irqsave(&topology_lock, flags);
80 while (core) { 83 while (core) {
81 if (cpu_isset(cpu, core->mask)) { 84 if (cpu_isset(cpu, core->mask)) {
82 mask = core->mask; 85 mask = core->mask;
@@ -84,7 +87,7 @@ cpumask_t cpu_coregroup_map(unsigned int cpu)
84 } 87 }
85 core = core->next; 88 core = core->next;
86 } 89 }
87 mutex_unlock(&smp_cpu_state_mutex); 90 spin_unlock_irqrestore(&topology_lock, flags);
88 if (cpus_empty(mask)) 91 if (cpus_empty(mask))
89 mask = cpumask_of_cpu(cpu); 92 mask = cpumask_of_cpu(cpu);
90 return mask; 93 return mask;
@@ -133,7 +136,7 @@ static void tl_to_cores(struct tl_info *info)
133 union tl_entry *tle, *end; 136 union tl_entry *tle, *end;
134 struct core_info *core = &core_info; 137 struct core_info *core = &core_info;
135 138
136 mutex_lock(&smp_cpu_state_mutex); 139 spin_lock_irq(&topology_lock);
137 clear_cores(); 140 clear_cores();
138 tle = info->tle; 141 tle = info->tle;
139 end = (union tl_entry *)((unsigned long)info + info->length); 142 end = (union tl_entry *)((unsigned long)info + info->length);
@@ -157,7 +160,7 @@ static void tl_to_cores(struct tl_info *info)
157 } 160 }
158 tle = next_tle(tle); 161 tle = next_tle(tle);
159 } 162 }
160 mutex_unlock(&smp_cpu_state_mutex); 163 spin_unlock_irq(&topology_lock);
161} 164}
162 165
163static void topology_update_polarization_simple(void) 166static void topology_update_polarization_simple(void)
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/sh/include/asm/io.h b/arch/sh/include/asm/io.h
index 436c28539577..65eaae34e753 100644
--- a/arch/sh/include/asm/io.h
+++ b/arch/sh/include/asm/io.h
@@ -293,6 +293,10 @@ __ioremap_mode(unsigned long offset, unsigned long size, unsigned long flags)
293 */ 293 */
294#define xlate_dev_kmem_ptr(p) p 294#define xlate_dev_kmem_ptr(p) p
295 295
296#define ARCH_HAS_VALID_PHYS_ADDR_RANGE
297int valid_phys_addr_range(unsigned long addr, size_t size);
298int valid_mmap_phys_addr_range(unsigned long pfn, size_t size);
299
296#endif /* __KERNEL__ */ 300#endif /* __KERNEL__ */
297 301
298#endif /* __ASM_SH_IO_H */ 302#endif /* __ASM_SH_IO_H */
diff --git a/arch/sh/include/asm/pgtable.h b/arch/sh/include/asm/pgtable.h
index 52220d70a096..b517ae08b9c0 100644
--- a/arch/sh/include/asm/pgtable.h
+++ b/arch/sh/include/asm/pgtable.h
@@ -148,6 +148,12 @@ extern void paging_init(void);
148extern void page_table_range_init(unsigned long start, unsigned long end, 148extern void page_table_range_init(unsigned long start, unsigned long end,
149 pgd_t *pgd); 149 pgd_t *pgd);
150 150
151#if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_CPU_SH4) && defined(CONFIG_MMU)
152extern void kmap_coherent_init(void);
153#else
154#define kmap_coherent_init() do { } while (0)
155#endif
156
151#include <asm-generic/pgtable.h> 157#include <asm-generic/pgtable.h>
152 158
153#endif /* __ASM_SH_PGTABLE_H */ 159#endif /* __ASM_SH_PGTABLE_H */
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
index a7412cede534..6d9e6972cfc9 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
@@ -119,17 +119,17 @@ static struct plat_sci_port sci_platform_data[] = {
119 },{ 119 },{
120 .mapbase = 0xa4e30000, 120 .mapbase = 0xa4e30000,
121 .flags = UPF_BOOT_AUTOCONF, 121 .flags = UPF_BOOT_AUTOCONF,
122 .type = PORT_SCI, 122 .type = PORT_SCIFA,
123 .irqs = { 56, 56, 56, 56 }, 123 .irqs = { 56, 56, 56, 56 },
124 },{ 124 },{
125 .mapbase = 0xa4e40000, 125 .mapbase = 0xa4e40000,
126 .flags = UPF_BOOT_AUTOCONF, 126 .flags = UPF_BOOT_AUTOCONF,
127 .type = PORT_SCI, 127 .type = PORT_SCIFA,
128 .irqs = { 88, 88, 88, 88 }, 128 .irqs = { 88, 88, 88, 88 },
129 },{ 129 },{
130 .mapbase = 0xa4e50000, 130 .mapbase = 0xa4e50000,
131 .flags = UPF_BOOT_AUTOCONF, 131 .flags = UPF_BOOT_AUTOCONF,
132 .type = PORT_SCI, 132 .type = PORT_SCIFA,
133 .irqs = { 109, 109, 109, 109 }, 133 .irqs = { 109, 109, 109, 109 },
134 }, { 134 }, {
135 .flags = 0, 135 .flags = 0,
diff --git a/arch/sh/kernel/early_printk.c b/arch/sh/kernel/early_printk.c
index 6b7d166694e2..a952dcf9999d 100644
--- a/arch/sh/kernel/early_printk.c
+++ b/arch/sh/kernel/early_printk.c
@@ -75,6 +75,7 @@ static struct console bios_console = {
75#endif 75#endif
76 76
77static struct uart_port scif_port = { 77static struct uart_port scif_port = {
78 .type = PORT_SCIF,
78 .mapbase = CONFIG_EARLY_SCIF_CONSOLE_PORT, 79 .mapbase = CONFIG_EARLY_SCIF_CONSOLE_PORT,
79 .membase = (char __iomem *)CONFIG_EARLY_SCIF_CONSOLE_PORT, 80 .membase = (char __iomem *)CONFIG_EARLY_SCIF_CONSOLE_PORT,
80}; 81};
@@ -84,9 +85,9 @@ static void scif_sercon_putc(int c)
84 while (((sci_in(&scif_port, SCFDR) & EPK_FIFO_BITS) >= EPK_FIFO_SIZE)) 85 while (((sci_in(&scif_port, SCFDR) & EPK_FIFO_BITS) >= EPK_FIFO_SIZE))
85 ; 86 ;
86 87
87 sci_out(&scif_port, SCxTDR, c);
88 sci_in(&scif_port, SCxSR); 88 sci_in(&scif_port, SCxSR);
89 sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40)); 89 sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40));
90 sci_out(&scif_port, SCxTDR, c);
90 91
91 while ((sci_in(&scif_port, SCxSR) & 0x40) == 0) 92 while ((sci_in(&scif_port, SCxSR) & 0x40) == 0)
92 ; 93 ;
diff --git a/arch/sh/kernel/timers/timer-tmu.c b/arch/sh/kernel/timers/timer-tmu.c
index aaaf90d06b85..3c61ddd4d43e 100644
--- a/arch/sh/kernel/timers/timer-tmu.c
+++ b/arch/sh/kernel/timers/timer-tmu.c
@@ -120,7 +120,7 @@ static void tmu_set_mode(enum clock_event_mode mode,
120{ 120{
121 switch (mode) { 121 switch (mode) {
122 case CLOCK_EVT_MODE_PERIODIC: 122 case CLOCK_EVT_MODE_PERIODIC:
123 ctrl_outl(ctrl_inl(TMU0_TCNT), TMU0_TCOR); 123 ctrl_outl(tmu_latest_interval[TMU0], TMU0_TCOR);
124 break; 124 break;
125 case CLOCK_EVT_MODE_ONESHOT: 125 case CLOCK_EVT_MODE_ONESHOT:
126 ctrl_outl(0, TMU0_TCOR); 126 ctrl_outl(0, TMU0_TCOR);
diff --git a/arch/sh/lib/copy_page.S b/arch/sh/lib/copy_page.S
index 5d12e657be34..43de7e8e4e17 100644
--- a/arch/sh/lib/copy_page.S
+++ b/arch/sh/lib/copy_page.S
@@ -80,6 +80,11 @@ ENTRY(copy_page)
80 .section __ex_table, "a"; \ 80 .section __ex_table, "a"; \
81 .long 9999b, 6000f ; \ 81 .long 9999b, 6000f ; \
82 .previous 82 .previous
83#define EX_NO_POP(...) \
84 9999: __VA_ARGS__ ; \
85 .section __ex_table, "a"; \
86 .long 9999b, 6005f ; \
87 .previous
83ENTRY(__copy_user) 88ENTRY(__copy_user)
84 ! Check if small number of bytes 89 ! Check if small number of bytes
85 mov #11,r0 90 mov #11,r0
@@ -139,9 +144,9 @@ EX( mov.b r1,@r4 )
139 bt 1f 144 bt 1f
140 145
1412: 1462:
142EX( mov.b @r5+,r0 ) 147EX_NO_POP( mov.b @r5+,r0 )
143 dt r6 148 dt r6
144EX( mov.b r0,@r4 ) 149EX_NO_POP( mov.b r0,@r4 )
145 bf/s 2b 150 bf/s 2b
146 add #1,r4 151 add #1,r4
147 152
@@ -150,7 +155,7 @@ EX( mov.b r0,@r4 )
150 155
151# Exception handler: 156# Exception handler:
152.section .fixup, "ax" 157.section .fixup, "ax"
1536000: 1586005:
154 mov.l 8000f,r1 159 mov.l 8000f,r1
155 mov r3,r0 160 mov r3,r0
156 jmp @r1 161 jmp @r1
diff --git a/arch/sh/mm/Makefile_32 b/arch/sh/mm/Makefile_32
index 70e0906023cc..f066e76da204 100644
--- a/arch/sh/mm/Makefile_32
+++ b/arch/sh/mm/Makefile_32
@@ -2,7 +2,7 @@
2# Makefile for the Linux SuperH-specific parts of the memory manager. 2# Makefile for the Linux SuperH-specific parts of the memory manager.
3# 3#
4 4
5obj-y := init.o extable_32.o consistent.o 5obj-y := init.o extable_32.o consistent.o mmap.o
6 6
7ifndef CONFIG_CACHE_OFF 7ifndef CONFIG_CACHE_OFF
8cache-$(CONFIG_CPU_SH2) := cache-sh2.o 8cache-$(CONFIG_CPU_SH2) := cache-sh2.o
diff --git a/arch/sh/mm/Makefile_64 b/arch/sh/mm/Makefile_64
index 0d92a8a3ac9a..9481d0f54efd 100644
--- a/arch/sh/mm/Makefile_64
+++ b/arch/sh/mm/Makefile_64
@@ -2,7 +2,7 @@
2# Makefile for the Linux SuperH-specific parts of the memory manager. 2# Makefile for the Linux SuperH-specific parts of the memory manager.
3# 3#
4 4
5obj-y := init.o consistent.o 5obj-y := init.o consistent.o mmap.o
6 6
7mmu-y := tlb-nommu.o pg-nommu.o extable_32.o 7mmu-y := tlb-nommu.o pg-nommu.o extable_32.o
8mmu-$(CONFIG_MMU) := fault_64.o ioremap_64.o tlbflush_64.o tlb-sh5.o \ 8mmu-$(CONFIG_MMU) := fault_64.o ioremap_64.o tlbflush_64.o tlb-sh5.o \
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
index 4abf00031dae..6cbef8caeb56 100644
--- a/arch/sh/mm/init.c
+++ b/arch/sh/mm/init.c
@@ -137,6 +137,7 @@ void __init page_table_range_init(unsigned long start, unsigned long end,
137void __init paging_init(void) 137void __init paging_init(void)
138{ 138{
139 unsigned long max_zone_pfns[MAX_NR_ZONES]; 139 unsigned long max_zone_pfns[MAX_NR_ZONES];
140 unsigned long vaddr;
140 int nid; 141 int nid;
141 142
142 /* We don't need to map the kernel through the TLB, as 143 /* We don't need to map the kernel through the TLB, as
@@ -148,10 +149,15 @@ void __init paging_init(void)
148 * check for a null value. */ 149 * check for a null value. */
149 set_TTB(swapper_pg_dir); 150 set_TTB(swapper_pg_dir);
150 151
151 /* Populate the relevant portions of swapper_pg_dir so that 152 /*
153 * Populate the relevant portions of swapper_pg_dir so that
152 * we can use the fixmap entries without calling kmalloc. 154 * we can use the fixmap entries without calling kmalloc.
153 * pte's will be filled in by __set_fixmap(). */ 155 * pte's will be filled in by __set_fixmap().
154 page_table_range_init(FIXADDR_START, FIXADDR_TOP, swapper_pg_dir); 156 */
157 vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK;
158 page_table_range_init(vaddr, 0, swapper_pg_dir);
159
160 kmap_coherent_init();
155 161
156 memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); 162 memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
157 163
diff --git a/arch/sh/mm/mmap.c b/arch/sh/mm/mmap.c
new file mode 100644
index 000000000000..8837d511710a
--- /dev/null
+++ b/arch/sh/mm/mmap.c
@@ -0,0 +1,31 @@
1/*
2 * arch/sh/mm/mmap.c
3 *
4 * Copyright (C) 2008 Paul Mundt
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
9 */
10#include <linux/io.h>
11#include <linux/mm.h>
12#include <asm/page.h>
13
14/*
15 * You really shouldn't be using read() or write() on /dev/mem. This
16 * might go away in the future.
17 */
18int valid_phys_addr_range(unsigned long addr, size_t count)
19{
20 if (addr < __MEMORY_START)
21 return 0;
22 if (addr + count > __pa(high_memory))
23 return 0;
24
25 return 1;
26}
27
28int valid_mmap_phys_addr_range(unsigned long pfn, size_t size)
29{
30 return 1;
31}
diff --git a/arch/sh/mm/pg-sh4.c b/arch/sh/mm/pg-sh4.c
index 38870e0fc182..2fe14da1f839 100644
--- a/arch/sh/mm/pg-sh4.c
+++ b/arch/sh/mm/pg-sh4.c
@@ -7,6 +7,7 @@
7 * Released under the terms of the GNU GPL v2.0. 7 * Released under the terms of the GNU GPL v2.0.
8 */ 8 */
9#include <linux/mm.h> 9#include <linux/mm.h>
10#include <linux/init.h>
10#include <linux/mutex.h> 11#include <linux/mutex.h>
11#include <linux/fs.h> 12#include <linux/fs.h>
12#include <linux/highmem.h> 13#include <linux/highmem.h>
@@ -16,6 +17,20 @@
16 17
17#define CACHE_ALIAS (current_cpu_data.dcache.alias_mask) 18#define CACHE_ALIAS (current_cpu_data.dcache.alias_mask)
18 19
20#define kmap_get_fixmap_pte(vaddr) \
21 pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr)), (vaddr))
22
23static pte_t *kmap_coherent_pte;
24
25void __init kmap_coherent_init(void)
26{
27 unsigned long vaddr;
28
29 /* cache the first coherent kmap pte */
30 vaddr = __fix_to_virt(FIX_CMAP_BEGIN);
31 kmap_coherent_pte = kmap_get_fixmap_pte(vaddr);
32}
33
19static inline void *kmap_coherent(struct page *page, unsigned long addr) 34static inline void *kmap_coherent(struct page *page, unsigned long addr)
20{ 35{
21 enum fixed_addresses idx; 36 enum fixed_addresses idx;
@@ -34,6 +49,8 @@ static inline void *kmap_coherent(struct page *page, unsigned long addr)
34 49
35 update_mmu_cache(NULL, vaddr, pte); 50 update_mmu_cache(NULL, vaddr, pte);
36 51
52 set_pte(kmap_coherent_pte - (FIX_CMAP_END - idx), pte);
53
37 return (void *)vaddr; 54 return (void *)vaddr;
38} 55}
39 56
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_64.h b/arch/sparc/include/asm/ptrace_64.h
index 3d3e9c161d8b..84e969f06afe 100644
--- a/arch/sparc/include/asm/ptrace_64.h
+++ b/arch/sparc/include/asm/ptrace_64.h
@@ -142,8 +142,6 @@ struct global_reg_snapshot {
142}; 142};
143extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; 143extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS];
144 144
145#define __ARCH_WANT_COMPAT_SYS_PTRACE
146
147#define force_successful_syscall_return() \ 145#define force_successful_syscall_return() \
148do { current_thread_info()->syscall_noerror = 1; \ 146do { current_thread_info()->syscall_noerror = 1; \
149} while (0) 147} while (0)
diff --git a/arch/sparc/include/asm/termbits.h b/arch/sparc/include/asm/termbits.h
index d6ca3e2754f5..d72dfed1f9d7 100644
--- a/arch/sparc/include/asm/termbits.h
+++ b/arch/sparc/include/asm/termbits.h
@@ -29,10 +29,11 @@ struct termios {
29 tcflag_t c_cflag; /* control mode flags */ 29 tcflag_t c_cflag; /* control mode flags */
30 tcflag_t c_lflag; /* local mode flags */ 30 tcflag_t c_lflag; /* local mode flags */
31 cc_t c_line; /* line discipline */ 31 cc_t c_line; /* line discipline */
32#ifndef __KERNEL__
32 cc_t c_cc[NCCS]; /* control characters */ 33 cc_t c_cc[NCCS]; /* control characters */
33#ifdef __KERNEL__ 34#else
35 cc_t c_cc[NCCS+2]; /* kernel needs 2 more to hold vmin/vtime */
34#define SIZEOF_USER_TERMIOS sizeof (struct termios) - (2*sizeof (cc_t)) 36#define SIZEOF_USER_TERMIOS sizeof (struct termios) - (2*sizeof (cc_t))
35 cc_t _x_cc[2]; /* We need them to hold vmin/vtime */
36#endif 37#endif
37}; 38};
38 39
@@ -42,8 +43,7 @@ struct termios2 {
42 tcflag_t c_cflag; /* control mode flags */ 43 tcflag_t c_cflag; /* control mode flags */
43 tcflag_t c_lflag; /* local mode flags */ 44 tcflag_t c_lflag; /* local mode flags */
44 cc_t c_line; /* line discipline */ 45 cc_t c_line; /* line discipline */
45 cc_t c_cc[NCCS]; /* control characters */ 46 cc_t c_cc[NCCS+2]; /* control characters */
46 cc_t _x_cc[2]; /* padding to match ktermios */
47 speed_t c_ispeed; /* input speed */ 47 speed_t c_ispeed; /* input speed */
48 speed_t c_ospeed; /* output speed */ 48 speed_t c_ospeed; /* output speed */
49}; 49};
@@ -54,8 +54,7 @@ struct ktermios {
54 tcflag_t c_cflag; /* control mode flags */ 54 tcflag_t c_cflag; /* control mode flags */
55 tcflag_t c_lflag; /* local mode flags */ 55 tcflag_t c_lflag; /* local mode flags */
56 cc_t c_line; /* line discipline */ 56 cc_t c_line; /* line discipline */
57 cc_t c_cc[NCCS]; /* control characters */ 57 cc_t c_cc[NCCS+2]; /* control characters */
58 cc_t _x_cc[2]; /* We need them to hold vmin/vtime */
59 speed_t c_ispeed; /* input speed */ 58 speed_t c_ispeed; /* input speed */
60 speed_t c_ospeed; /* output speed */ 59 speed_t c_ospeed; /* output speed */
61}; 60};
diff --git a/arch/sparc/include/asm/unistd_32.h b/arch/sparc/include/asm/unistd_32.h
index 648643a9f139..0d13d2a4c76f 100644
--- a/arch/sparc/include/asm/unistd_32.h
+++ b/arch/sparc/include/asm/unistd_32.h
@@ -338,8 +338,9 @@
338#define __NR_dup3 320 338#define __NR_dup3 320
339#define __NR_pipe2 321 339#define __NR_pipe2 321
340#define __NR_inotify_init1 322 340#define __NR_inotify_init1 322
341#define __NR_accept4 323
341 342
342#define NR_SYSCALLS 323 343#define NR_SYSCALLS 324
343 344
344/* Sparc 32-bit only has the "setresuid32", "getresuid32" variants, 345/* Sparc 32-bit only has the "setresuid32", "getresuid32" variants,
345 * it never had the plain ones and there is no value to adding those 346 * it never had the plain ones and there is no value to adding those
diff --git a/arch/sparc/include/asm/unistd_64.h b/arch/sparc/include/asm/unistd_64.h
index c5cc0e052321..fa5d3c0343c7 100644
--- a/arch/sparc/include/asm/unistd_64.h
+++ b/arch/sparc/include/asm/unistd_64.h
@@ -340,8 +340,9 @@
340#define __NR_dup3 320 340#define __NR_dup3 320
341#define __NR_pipe2 321 341#define __NR_pipe2 321
342#define __NR_inotify_init1 322 342#define __NR_inotify_init1 322
343#define __NR_accept4 323
343 344
344#define NR_SYSCALLS 323 345#define NR_SYSCALLS 324
345 346
346#ifdef __KERNEL__ 347#ifdef __KERNEL__
347#define __ARCH_WANT_IPC_PARSE_VERSION 348#define __ARCH_WANT_IPC_PARSE_VERSION
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 2fe2c117e772..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 */
@@ -465,7 +465,6 @@ gokernel:
465 mov %o7, %g4 ! Save %o7 465 mov %o7, %g4 ! Save %o7
466 466
467 /* Jump to it, and pray... */ 467 /* Jump to it, and pray... */
468 __INIT
469current_pc: 468current_pc:
470 call 1f 469 call 1f
471 nop 470 nop
diff --git a/arch/sparc/kernel/of_device.c b/arch/sparc/kernel/of_device.c
index 0837bd52e28f..0a83bd737654 100644
--- a/arch/sparc/kernel/of_device.c
+++ b/arch/sparc/kernel/of_device.c
@@ -563,9 +563,9 @@ build_resources:
563 op->dev.parent = parent; 563 op->dev.parent = parent;
564 op->dev.bus = &of_platform_bus_type; 564 op->dev.bus = &of_platform_bus_type;
565 if (!parent) 565 if (!parent)
566 strcpy(op->dev.bus_id, "root"); 566 dev_set_name(&op->dev, "root");
567 else 567 else
568 sprintf(op->dev.bus_id, "%08x", dp->node); 568 dev_set_name(&op->dev, "%08x", dp->node);
569 569
570 if (of_device_register(op)) { 570 if (of_device_register(op)) {
571 printk("%s: Could not register of device.\n", 571 printk("%s: Could not register of device.\n",
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/systbls.S b/arch/sparc/kernel/systbls.S
index e1b9233b90ab..7d0807586442 100644
--- a/arch/sparc/kernel/systbls.S
+++ b/arch/sparc/kernel/systbls.S
@@ -81,4 +81,4 @@ sys_call_table:
81/*305*/ .long sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait 81/*305*/ .long sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
82/*310*/ .long sys_utimensat, sys_signalfd, sys_timerfd_create, sys_eventfd, sys_fallocate 82/*310*/ .long sys_utimensat, sys_signalfd, sys_timerfd_create, sys_eventfd, sys_fallocate
83/*315*/ .long sys_timerfd_settime, sys_timerfd_gettime, sys_signalfd4, sys_eventfd2, sys_epoll_create1 83/*315*/ .long sys_timerfd_settime, sys_timerfd_gettime, sys_signalfd4, sys_eventfd2, sys_epoll_create1
84/*320*/ .long sys_dup3, sys_pipe2, sys_inotify_init1 84/*320*/ .long sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4
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/defconfig b/arch/sparc64/defconfig
index 82cab5cc8070..05d19a3e590f 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26 3# Linux kernel version: 2.6.28-rc4
4# Fri Jul 18 00:47:07 2008 4# Mon Nov 10 12:35:09 2008
5# 5#
6CONFIG_SPARC=y 6CONFIG_SPARC=y
7CONFIG_SPARC64=y 7CONFIG_SPARC64=y
@@ -62,7 +62,6 @@ CONFIG_SYSCTL=y
62# CONFIG_EMBEDDED is not set 62# CONFIG_EMBEDDED is not set
63CONFIG_UID16=y 63CONFIG_UID16=y
64CONFIG_SYSCTL_SYSCALL=y 64CONFIG_SYSCTL_SYSCALL=y
65CONFIG_SYSCTL_SYSCALL_CHECK=y
66CONFIG_KALLSYMS=y 65CONFIG_KALLSYMS=y
67# CONFIG_KALLSYMS_ALL is not set 66# CONFIG_KALLSYMS_ALL is not set
68# CONFIG_KALLSYMS_EXTRA_PASS is not set 67# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -79,7 +78,9 @@ CONFIG_SIGNALFD=y
79CONFIG_TIMERFD=y 78CONFIG_TIMERFD=y
80CONFIG_EVENTFD=y 79CONFIG_EVENTFD=y
81CONFIG_SHMEM=y 80CONFIG_SHMEM=y
81CONFIG_AIO=y
82CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_PCI_QUIRKS=y
83CONFIG_SLUB_DEBUG=y 84CONFIG_SLUB_DEBUG=y
84# CONFIG_SLAB is not set 85# CONFIG_SLAB is not set
85CONFIG_SLUB=y 86CONFIG_SLUB=y
@@ -92,9 +93,9 @@ CONFIG_KPROBES=y
92CONFIG_KRETPROBES=y 93CONFIG_KRETPROBES=y
93CONFIG_HAVE_KPROBES=y 94CONFIG_HAVE_KPROBES=y
94CONFIG_HAVE_KRETPROBES=y 95CONFIG_HAVE_KRETPROBES=y
95# CONFIG_HAVE_DMA_ATTRS is not set 96CONFIG_HAVE_ARCH_TRACEHOOK=y
96CONFIG_USE_GENERIC_SMP_HELPERS=y 97CONFIG_USE_GENERIC_SMP_HELPERS=y
97CONFIG_PROC_PAGE_MONITOR=y 98# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
98CONFIG_SLABINFO=y 99CONFIG_SLABINFO=y
99CONFIG_RT_MUTEXES=y 100CONFIG_RT_MUTEXES=y
100# CONFIG_TINY_SHMEM is not set 101# CONFIG_TINY_SHMEM is not set
@@ -126,6 +127,7 @@ CONFIG_DEFAULT_AS=y
126# CONFIG_DEFAULT_NOOP is not set 127# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 128CONFIG_DEFAULT_IOSCHED="anticipatory"
128CONFIG_CLASSIC_RCU=y 129CONFIG_CLASSIC_RCU=y
130# CONFIG_FREEZER is not set
129 131
130# 132#
131# Processor type and features 133# Processor type and features
@@ -138,7 +140,7 @@ CONFIG_HZ_100=y
138# CONFIG_HZ_300 is not set 140# CONFIG_HZ_300 is not set
139# CONFIG_HZ_1000 is not set 141# CONFIG_HZ_1000 is not set
140CONFIG_HZ=100 142CONFIG_HZ=100
141# CONFIG_SCHED_HRTICK is not set 143CONFIG_SCHED_HRTICK=y
142CONFIG_HOTPLUG_CPU=y 144CONFIG_HOTPLUG_CPU=y
143CONFIG_GENERIC_HARDIRQS=y 145CONFIG_GENERIC_HARDIRQS=y
144CONFIG_TICK_ONESHOT=y 146CONFIG_TICK_ONESHOT=y
@@ -148,6 +150,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
148CONFIG_SMP=y 150CONFIG_SMP=y
149CONFIG_NR_CPUS=64 151CONFIG_NR_CPUS=64
150# CONFIG_CPU_FREQ is not set 152# CONFIG_CPU_FREQ is not set
153CONFIG_US3_MC=y
151CONFIG_RWSEM_XCHGADD_ALGORITHM=y 154CONFIG_RWSEM_XCHGADD_ALGORITHM=y
152CONFIG_GENERIC_FIND_NEXT_BIT=y 155CONFIG_GENERIC_FIND_NEXT_BIT=y
153CONFIG_GENERIC_HWEIGHT=y 156CONFIG_GENERIC_HWEIGHT=y
@@ -169,7 +172,6 @@ CONFIG_SPARSEMEM_MANUAL=y
169CONFIG_SPARSEMEM=y 172CONFIG_SPARSEMEM=y
170CONFIG_NEED_MULTIPLE_NODES=y 173CONFIG_NEED_MULTIPLE_NODES=y
171CONFIG_HAVE_MEMORY_PRESENT=y 174CONFIG_HAVE_MEMORY_PRESENT=y
172# CONFIG_SPARSEMEM_STATIC is not set
173CONFIG_SPARSEMEM_EXTREME=y 175CONFIG_SPARSEMEM_EXTREME=y
174CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 176CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
175CONFIG_SPARSEMEM_VMEMMAP=y 177CONFIG_SPARSEMEM_VMEMMAP=y
@@ -177,8 +179,10 @@ CONFIG_PAGEFLAGS_EXTENDED=y
177CONFIG_SPLIT_PTLOCK_CPUS=4 179CONFIG_SPLIT_PTLOCK_CPUS=4
178CONFIG_MIGRATION=y 180CONFIG_MIGRATION=y
179CONFIG_RESOURCES_64BIT=y 181CONFIG_RESOURCES_64BIT=y
182CONFIG_PHYS_ADDR_T_64BIT=y
180CONFIG_ZONE_DMA_FLAG=0 183CONFIG_ZONE_DMA_FLAG=0
181CONFIG_NR_QUICK=1 184CONFIG_NR_QUICK=1
185CONFIG_UNEVICTABLE_LRU=y
182CONFIG_SBUS=y 186CONFIG_SBUS=y
183CONFIG_SBUSCHAR=y 187CONFIG_SBUSCHAR=y
184CONFIG_SUN_AUXIO=y 188CONFIG_SUN_AUXIO=y
@@ -198,6 +202,8 @@ CONFIG_SUN_OPENPROMFS=m
198# 202#
199CONFIG_BINFMT_ELF=y 203CONFIG_BINFMT_ELF=y
200CONFIG_COMPAT_BINFMT_ELF=y 204CONFIG_COMPAT_BINFMT_ELF=y
205# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
206# CONFIG_HAVE_AOUT is not set
201CONFIG_BINFMT_MISC=m 207CONFIG_BINFMT_MISC=m
202CONFIG_COMPAT=y 208CONFIG_COMPAT=y
203CONFIG_SYSVIPC_COMPAT=y 209CONFIG_SYSVIPC_COMPAT=y
@@ -207,10 +213,6 @@ CONFIG_SCHED_MC=y
207CONFIG_PREEMPT_VOLUNTARY=y 213CONFIG_PREEMPT_VOLUNTARY=y
208# CONFIG_PREEMPT is not set 214# CONFIG_PREEMPT is not set
209# CONFIG_CMDLINE_BOOL is not set 215# CONFIG_CMDLINE_BOOL is not set
210
211#
212# Networking
213#
214CONFIG_NET=y 216CONFIG_NET=y
215 217
216# 218#
@@ -224,6 +226,7 @@ CONFIG_XFRM_USER=m
224# CONFIG_XFRM_SUB_POLICY is not set 226# CONFIG_XFRM_SUB_POLICY is not set
225CONFIG_XFRM_MIGRATE=y 227CONFIG_XFRM_MIGRATE=y
226# CONFIG_XFRM_STATISTICS is not set 228# CONFIG_XFRM_STATISTICS is not set
229CONFIG_XFRM_IPCOMP=y
227CONFIG_NET_KEY=m 230CONFIG_NET_KEY=m
228CONFIG_NET_KEY_MIGRATE=y 231CONFIG_NET_KEY_MIGRATE=y
229CONFIG_INET=y 232CONFIG_INET=y
@@ -299,7 +302,9 @@ CONFIG_IP_DCCP_TFRC_LIB=m
299# CONFIG_TIPC is not set 302# CONFIG_TIPC is not set
300# CONFIG_ATM is not set 303# CONFIG_ATM is not set
301# CONFIG_BRIDGE is not set 304# CONFIG_BRIDGE is not set
305# CONFIG_NET_DSA is not set
302CONFIG_VLAN_8021Q=m 306CONFIG_VLAN_8021Q=m
307# CONFIG_VLAN_8021Q_GVRP is not set
303# CONFIG_DECNET is not set 308# CONFIG_DECNET is not set
304# CONFIG_LLC2 is not set 309# CONFIG_LLC2 is not set
305# CONFIG_IPX is not set 310# CONFIG_IPX is not set
@@ -320,11 +325,10 @@ CONFIG_NET_TCPPROBE=m
320# CONFIG_IRDA is not set 325# CONFIG_IRDA is not set
321# CONFIG_BT is not set 326# CONFIG_BT is not set
322# CONFIG_AF_RXRPC is not set 327# CONFIG_AF_RXRPC is not set
323 328# CONFIG_PHONET is not set
324# 329CONFIG_WIRELESS=y
325# Wireless
326#
327# CONFIG_CFG80211 is not set 330# CONFIG_CFG80211 is not set
331CONFIG_WIRELESS_OLD_REGULATORY=y
328# CONFIG_WIRELESS_EXT is not set 332# CONFIG_WIRELESS_EXT is not set
329# CONFIG_MAC80211 is not set 333# CONFIG_MAC80211 is not set
330# CONFIG_IEEE80211 is not set 334# CONFIG_IEEE80211 is not set
@@ -375,21 +379,21 @@ CONFIG_MISC_DEVICES=y
375# CONFIG_SGI_IOC4 is not set 379# CONFIG_SGI_IOC4 is not set
376# CONFIG_TIFM_CORE is not set 380# CONFIG_TIFM_CORE is not set
377# CONFIG_ENCLOSURE_SERVICES is not set 381# CONFIG_ENCLOSURE_SERVICES is not set
382# CONFIG_HP_ILO is not set
378CONFIG_HAVE_IDE=y 383CONFIG_HAVE_IDE=y
379CONFIG_IDE=y 384CONFIG_IDE=y
380CONFIG_BLK_DEV_IDE=y
381 385
382# 386#
383# Please see Documentation/ide/ide.txt for help/info on IDE drives 387# Please see Documentation/ide/ide.txt for help/info on IDE drives
384# 388#
385CONFIG_IDE_TIMINGS=y 389CONFIG_IDE_TIMINGS=y
386# CONFIG_BLK_DEV_IDE_SATA is not set 390# CONFIG_BLK_DEV_IDE_SATA is not set
387CONFIG_BLK_DEV_IDEDISK=y 391CONFIG_IDE_GD=y
388# CONFIG_IDEDISK_MULTI_MODE is not set 392CONFIG_IDE_GD_ATA=y
393# CONFIG_IDE_GD_ATAPI is not set
389CONFIG_BLK_DEV_IDECD=y 394CONFIG_BLK_DEV_IDECD=y
390CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 395CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
391# CONFIG_BLK_DEV_IDETAPE is not set 396# CONFIG_BLK_DEV_IDETAPE is not set
392# CONFIG_BLK_DEV_IDEFLOPPY is not set
393# CONFIG_BLK_DEV_IDESCSI is not set 397# CONFIG_BLK_DEV_IDESCSI is not set
394# CONFIG_IDE_TASK_IOCTL is not set 398# CONFIG_IDE_TASK_IOCTL is not set
395CONFIG_IDE_PROC_FS=y 399CONFIG_IDE_PROC_FS=y
@@ -413,10 +417,8 @@ CONFIG_BLK_DEV_ALI15X3=y
413# CONFIG_BLK_DEV_AMD74XX is not set 417# CONFIG_BLK_DEV_AMD74XX is not set
414# CONFIG_BLK_DEV_CMD64X is not set 418# CONFIG_BLK_DEV_CMD64X is not set
415# CONFIG_BLK_DEV_TRIFLEX is not set 419# CONFIG_BLK_DEV_TRIFLEX is not set
416# CONFIG_BLK_DEV_CY82C693 is not set
417# CONFIG_BLK_DEV_CS5520 is not set 420# CONFIG_BLK_DEV_CS5520 is not set
418# CONFIG_BLK_DEV_CS5530 is not set 421# CONFIG_BLK_DEV_CS5530 is not set
419# CONFIG_BLK_DEV_HPT34X is not set
420# CONFIG_BLK_DEV_HPT366 is not set 422# CONFIG_BLK_DEV_HPT366 is not set
421# CONFIG_BLK_DEV_JMICRON is not set 423# CONFIG_BLK_DEV_JMICRON is not set
422# CONFIG_BLK_DEV_SC1200 is not set 424# CONFIG_BLK_DEV_SC1200 is not set
@@ -540,7 +542,6 @@ CONFIG_DM_ZERO=m
540# CONFIG_IEEE1394 is not set 542# CONFIG_IEEE1394 is not set
541# CONFIG_I2O is not set 543# CONFIG_I2O is not set
542CONFIG_NETDEVICES=y 544CONFIG_NETDEVICES=y
543# CONFIG_NETDEVICES_MULTIQUEUE is not set
544# CONFIG_DUMMY is not set 545# CONFIG_DUMMY is not set
545# CONFIG_BONDING is not set 546# CONFIG_BONDING is not set
546# CONFIG_MACVLAN is not set 547# CONFIG_MACVLAN is not set
@@ -548,7 +549,22 @@ CONFIG_NETDEVICES=y
548# CONFIG_TUN is not set 549# CONFIG_TUN is not set
549# CONFIG_VETH is not set 550# CONFIG_VETH is not set
550# CONFIG_ARCNET is not set 551# CONFIG_ARCNET is not set
551# CONFIG_PHYLIB is not set 552CONFIG_PHYLIB=m
553
554#
555# MII PHY device drivers
556#
557# CONFIG_MARVELL_PHY is not set
558# CONFIG_DAVICOM_PHY is not set
559# CONFIG_QSEMI_PHY is not set
560# CONFIG_LXT_PHY is not set
561# CONFIG_CICADA_PHY is not set
562# CONFIG_VITESSE_PHY is not set
563# CONFIG_SMSC_PHY is not set
564# CONFIG_BROADCOM_PHY is not set
565# CONFIG_ICPLUS_PHY is not set
566# CONFIG_REALTEK_PHY is not set
567# CONFIG_MDIO_BITBANG is not set
552CONFIG_NET_ETHERNET=y 568CONFIG_NET_ETHERNET=y
553CONFIG_MII=m 569CONFIG_MII=m
554# CONFIG_SUNLANCE is not set 570# CONFIG_SUNLANCE is not set
@@ -565,6 +581,9 @@ CONFIG_SUNVNET=m
565# CONFIG_IBM_NEW_EMAC_RGMII is not set 581# CONFIG_IBM_NEW_EMAC_RGMII is not set
566# CONFIG_IBM_NEW_EMAC_TAH is not set 582# CONFIG_IBM_NEW_EMAC_TAH is not set
567# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 583# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
584# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
585# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
586# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
568CONFIG_NET_PCI=y 587CONFIG_NET_PCI=y
569# CONFIG_PCNET32 is not set 588# CONFIG_PCNET32 is not set
570# CONFIG_AMD8111_ETH is not set 589# CONFIG_AMD8111_ETH is not set
@@ -582,16 +601,15 @@ CONFIG_NET_PCI=y
582# CONFIG_SIS900 is not set 601# CONFIG_SIS900 is not set
583# CONFIG_EPIC100 is not set 602# CONFIG_EPIC100 is not set
584# CONFIG_SUNDANCE is not set 603# CONFIG_SUNDANCE is not set
604# CONFIG_TLAN is not set
585# CONFIG_VIA_RHINE is not set 605# CONFIG_VIA_RHINE is not set
586# CONFIG_SC92031 is not set 606# CONFIG_SC92031 is not set
607# CONFIG_ATL2 is not set
587CONFIG_NETDEV_1000=y 608CONFIG_NETDEV_1000=y
588# CONFIG_ACENIC is not set 609# CONFIG_ACENIC is not set
589# CONFIG_DL2K is not set 610# CONFIG_DL2K is not set
590CONFIG_E1000=m 611CONFIG_E1000=m
591CONFIG_E1000_NAPI=y
592# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
593# CONFIG_E1000E is not set 612# CONFIG_E1000E is not set
594# CONFIG_E1000E_ENABLED is not set
595# CONFIG_IP1000 is not set 613# CONFIG_IP1000 is not set
596# CONFIG_IGB is not set 614# CONFIG_IGB is not set
597# CONFIG_MYRI_SBUS is not set 615# CONFIG_MYRI_SBUS is not set
@@ -607,18 +625,23 @@ CONFIG_TIGON3=m
607CONFIG_BNX2=m 625CONFIG_BNX2=m
608# CONFIG_QLA3XXX is not set 626# CONFIG_QLA3XXX is not set
609# CONFIG_ATL1 is not set 627# CONFIG_ATL1 is not set
628# CONFIG_ATL1E is not set
629# CONFIG_JME is not set
610CONFIG_NETDEV_10000=y 630CONFIG_NETDEV_10000=y
611# CONFIG_CHELSIO_T1 is not set 631# CONFIG_CHELSIO_T1 is not set
612# CONFIG_CHELSIO_T3 is not set 632# CONFIG_CHELSIO_T3 is not set
633# CONFIG_ENIC is not set
613# CONFIG_IXGBE is not set 634# CONFIG_IXGBE is not set
614# CONFIG_IXGB is not set 635# CONFIG_IXGB is not set
615# CONFIG_S2IO is not set 636# CONFIG_S2IO is not set
616# CONFIG_MYRI10GE is not set 637# CONFIG_MYRI10GE is not set
617# CONFIG_NETXEN_NIC is not set 638# CONFIG_NETXEN_NIC is not set
618CONFIG_NIU=m 639CONFIG_NIU=m
640# CONFIG_MLX4_EN is not set
619# CONFIG_MLX4_CORE is not set 641# CONFIG_MLX4_CORE is not set
620# CONFIG_TEHUTI is not set 642# CONFIG_TEHUTI is not set
621# CONFIG_BNX2X is not set 643# CONFIG_BNX2X is not set
644# CONFIG_QLGE is not set
622# CONFIG_SFC is not set 645# CONFIG_SFC is not set
623# CONFIG_TR is not set 646# CONFIG_TR is not set
624 647
@@ -694,9 +717,11 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
694CONFIG_MOUSE_PS2_SYNAPTICS=y 717CONFIG_MOUSE_PS2_SYNAPTICS=y
695CONFIG_MOUSE_PS2_LIFEBOOK=y 718CONFIG_MOUSE_PS2_LIFEBOOK=y
696CONFIG_MOUSE_PS2_TRACKPOINT=y 719CONFIG_MOUSE_PS2_TRACKPOINT=y
720# CONFIG_MOUSE_PS2_ELANTECH is not set
697# CONFIG_MOUSE_PS2_TOUCHKIT is not set 721# CONFIG_MOUSE_PS2_TOUCHKIT is not set
698CONFIG_MOUSE_SERIAL=y 722CONFIG_MOUSE_SERIAL=y
699# CONFIG_MOUSE_APPLETOUCH is not set 723# CONFIG_MOUSE_APPLETOUCH is not set
724# CONFIG_MOUSE_BCM5974 is not set
700# CONFIG_MOUSE_VSXXXAA is not set 725# CONFIG_MOUSE_VSXXXAA is not set
701# CONFIG_INPUT_JOYSTICK is not set 726# CONFIG_INPUT_JOYSTICK is not set
702# CONFIG_INPUT_TABLET is not set 727# CONFIG_INPUT_TABLET is not set
@@ -708,6 +733,7 @@ CONFIG_INPUT_SPARCSPKR=y
708# CONFIG_INPUT_KEYSPAN_REMOTE is not set 733# CONFIG_INPUT_KEYSPAN_REMOTE is not set
709# CONFIG_INPUT_POWERMATE is not set 734# CONFIG_INPUT_POWERMATE is not set
710# CONFIG_INPUT_YEALINK is not set 735# CONFIG_INPUT_YEALINK is not set
736# CONFIG_INPUT_CM109 is not set
711# CONFIG_INPUT_UINPUT is not set 737# CONFIG_INPUT_UINPUT is not set
712 738
713# 739#
@@ -725,6 +751,7 @@ CONFIG_SERIO_RAW=m
725# Character devices 751# Character devices
726# 752#
727CONFIG_VT=y 753CONFIG_VT=y
754CONFIG_CONSOLE_TRANSLATIONS=y
728CONFIG_VT_CONSOLE=y 755CONFIG_VT_CONSOLE=y
729CONFIG_HW_CONSOLE=y 756CONFIG_HW_CONSOLE=y
730# CONFIG_VT_HW_CONSOLE_BINDING is not set 757# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -735,6 +762,7 @@ CONFIG_HW_CONSOLE=y
735# 762#
736# Serial drivers 763# Serial drivers
737# 764#
765# CONFIG_SERIAL_8250 is not set
738 766
739# 767#
740# Non-8250 serial port support 768# Non-8250 serial port support
@@ -762,6 +790,7 @@ CONFIG_DEVPORT=y
762CONFIG_I2C=y 790CONFIG_I2C=y
763CONFIG_I2C_BOARDINFO=y 791CONFIG_I2C_BOARDINFO=y
764# CONFIG_I2C_CHARDEV is not set 792# CONFIG_I2C_CHARDEV is not set
793CONFIG_I2C_HELPER_AUTO=y
765CONFIG_I2C_ALGOBIT=y 794CONFIG_I2C_ALGOBIT=y
766 795
767# 796#
@@ -827,10 +856,13 @@ CONFIG_I2C_ALGOBIT=y
827# CONFIG_I2C_DEBUG_BUS is not set 856# CONFIG_I2C_DEBUG_BUS is not set
828# CONFIG_I2C_DEBUG_CHIP is not set 857# CONFIG_I2C_DEBUG_CHIP is not set
829# CONFIG_SPI is not set 858# CONFIG_SPI is not set
859CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
860# CONFIG_GPIOLIB is not set
830# CONFIG_W1 is not set 861# CONFIG_W1 is not set
831# CONFIG_POWER_SUPPLY is not set 862# CONFIG_POWER_SUPPLY is not set
832CONFIG_HWMON=y 863CONFIG_HWMON=y
833# CONFIG_HWMON_VID is not set 864# CONFIG_HWMON_VID is not set
865# CONFIG_SENSORS_AD7414 is not set
834# CONFIG_SENSORS_AD7418 is not set 866# CONFIG_SENSORS_AD7418 is not set
835# CONFIG_SENSORS_ADM1021 is not set 867# CONFIG_SENSORS_ADM1021 is not set
836# CONFIG_SENSORS_ADM1025 is not set 868# CONFIG_SENSORS_ADM1025 is not set
@@ -882,6 +914,7 @@ CONFIG_HWMON=y
882# CONFIG_SENSORS_W83L786NG is not set 914# CONFIG_SENSORS_W83L786NG is not set
883# CONFIG_SENSORS_W83627HF is not set 915# CONFIG_SENSORS_W83627HF is not set
884# CONFIG_SENSORS_W83627EHF is not set 916# CONFIG_SENSORS_W83627EHF is not set
917# CONFIG_SENSORS_ULTRA45 is not set
885# CONFIG_HWMON_DEBUG_CHIP is not set 918# CONFIG_HWMON_DEBUG_CHIP is not set
886# CONFIG_THERMAL is not set 919# CONFIG_THERMAL is not set
887# CONFIG_THERMAL_HWMON is not set 920# CONFIG_THERMAL_HWMON is not set
@@ -896,8 +929,14 @@ CONFIG_SSB_POSSIBLE=y
896# 929#
897# Multifunction device drivers 930# Multifunction device drivers
898# 931#
932# CONFIG_MFD_CORE is not set
899# CONFIG_MFD_SM501 is not set 933# CONFIG_MFD_SM501 is not set
900# CONFIG_HTC_PASIC3 is not set 934# CONFIG_HTC_PASIC3 is not set
935# CONFIG_MFD_TMIO is not set
936# CONFIG_PMIC_DA903X is not set
937# CONFIG_MFD_WM8400 is not set
938# CONFIG_MFD_WM8350_I2C is not set
939# CONFIG_REGULATOR is not set
901 940
902# 941#
903# Multimedia devices 942# Multimedia devices
@@ -924,6 +963,7 @@ CONFIG_SSB_POSSIBLE=y
924CONFIG_FB=y 963CONFIG_FB=y
925# CONFIG_FIRMWARE_EDID is not set 964# CONFIG_FIRMWARE_EDID is not set
926CONFIG_FB_DDC=y 965CONFIG_FB_DDC=y
966# CONFIG_FB_BOOT_VESA_SUPPORT is not set
927CONFIG_FB_CFB_FILLRECT=y 967CONFIG_FB_CFB_FILLRECT=y
928CONFIG_FB_CFB_COPYAREA=y 968CONFIG_FB_CFB_COPYAREA=y
929CONFIG_FB_CFB_IMAGEBLIT=y 969CONFIG_FB_CFB_IMAGEBLIT=y
@@ -975,6 +1015,7 @@ CONFIG_FB_ATY_GX=y
975# CONFIG_FB_S3 is not set 1015# CONFIG_FB_S3 is not set
976# CONFIG_FB_SAVAGE is not set 1016# CONFIG_FB_SAVAGE is not set
977# CONFIG_FB_SIS is not set 1017# CONFIG_FB_SIS is not set
1018# CONFIG_FB_VIA is not set
978# CONFIG_FB_NEOMAGIC is not set 1019# CONFIG_FB_NEOMAGIC is not set
979# CONFIG_FB_KYRO is not set 1020# CONFIG_FB_KYRO is not set
980# CONFIG_FB_3DFX is not set 1021# CONFIG_FB_3DFX is not set
@@ -983,7 +1024,10 @@ CONFIG_FB_ATY_GX=y
983# CONFIG_FB_TRIDENT is not set 1024# CONFIG_FB_TRIDENT is not set
984# CONFIG_FB_ARK is not set 1025# CONFIG_FB_ARK is not set
985# CONFIG_FB_PM3 is not set 1026# CONFIG_FB_PM3 is not set
1027# CONFIG_FB_CARMINE is not set
986# CONFIG_FB_VIRTUAL is not set 1028# CONFIG_FB_VIRTUAL is not set
1029# CONFIG_FB_METRONOME is not set
1030# CONFIG_FB_MB862XX is not set
987# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1031# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
988 1032
989# 1033#
@@ -1015,6 +1059,7 @@ CONFIG_LOGO=y
1015# CONFIG_LOGO_LINUX_CLUT224 is not set 1059# CONFIG_LOGO_LINUX_CLUT224 is not set
1016CONFIG_LOGO_SUN_CLUT224=y 1060CONFIG_LOGO_SUN_CLUT224=y
1017CONFIG_SOUND=m 1061CONFIG_SOUND=m
1062CONFIG_SOUND_OSS_CORE=y
1018CONFIG_SND=m 1063CONFIG_SND=m
1019CONFIG_SND_TIMER=m 1064CONFIG_SND_TIMER=m
1020CONFIG_SND_PCM=m 1065CONFIG_SND_PCM=m
@@ -1120,9 +1165,36 @@ CONFIG_HID=y
1120# USB Input Devices 1165# USB Input Devices
1121# 1166#
1122CONFIG_USB_HID=y 1167CONFIG_USB_HID=y
1123# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1168# CONFIG_HID_PID is not set
1124# CONFIG_HID_FF is not set
1125CONFIG_USB_HIDDEV=y 1169CONFIG_USB_HIDDEV=y
1170
1171#
1172# Special HID drivers
1173#
1174CONFIG_HID_COMPAT=y
1175CONFIG_HID_A4TECH=y
1176CONFIG_HID_APPLE=y
1177CONFIG_HID_BELKIN=y
1178CONFIG_HID_BRIGHT=y
1179CONFIG_HID_CHERRY=y
1180CONFIG_HID_CHICONY=y
1181CONFIG_HID_CYPRESS=y
1182CONFIG_HID_DELL=y
1183CONFIG_HID_EZKEY=y
1184CONFIG_HID_GYRATION=y
1185CONFIG_HID_LOGITECH=y
1186# CONFIG_LOGITECH_FF is not set
1187# CONFIG_LOGIRUMBLEPAD2_FF is not set
1188CONFIG_HID_MICROSOFT=y
1189CONFIG_HID_MONTEREY=y
1190CONFIG_HID_PANTHERLORD=y
1191# CONFIG_PANTHERLORD_FF is not set
1192CONFIG_HID_PETALYNX=y
1193CONFIG_HID_SAMSUNG=y
1194CONFIG_HID_SONY=y
1195CONFIG_HID_SUNPLUS=y
1196# CONFIG_THRUSTMASTER_FF is not set
1197# CONFIG_ZEROPLUS_FF is not set
1126CONFIG_USB_SUPPORT=y 1198CONFIG_USB_SUPPORT=y
1127CONFIG_USB_ARCH_HAS_HCD=y 1199CONFIG_USB_ARCH_HAS_HCD=y
1128CONFIG_USB_ARCH_HAS_OHCI=y 1200CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1138,6 +1210,9 @@ CONFIG_USB_DEVICEFS=y
1138# CONFIG_USB_DEVICE_CLASS is not set 1210# CONFIG_USB_DEVICE_CLASS is not set
1139# CONFIG_USB_DYNAMIC_MINORS is not set 1211# CONFIG_USB_DYNAMIC_MINORS is not set
1140# CONFIG_USB_OTG is not set 1212# CONFIG_USB_OTG is not set
1213# CONFIG_USB_MON is not set
1214# CONFIG_USB_WUSB is not set
1215# CONFIG_USB_WUSB_CBAF is not set
1141 1216
1142# 1217#
1143# USB Host Controller Drivers 1218# USB Host Controller Drivers
@@ -1155,6 +1230,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1155CONFIG_USB_UHCI_HCD=m 1230CONFIG_USB_UHCI_HCD=m
1156# CONFIG_USB_SL811_HCD is not set 1231# CONFIG_USB_SL811_HCD is not set
1157# CONFIG_USB_R8A66597_HCD is not set 1232# CONFIG_USB_R8A66597_HCD is not set
1233# CONFIG_USB_WHCI_HCD is not set
1234# CONFIG_USB_HWA_HCD is not set
1158 1235
1159# 1236#
1160# USB Device Class drivers 1237# USB Device Class drivers
@@ -1162,6 +1239,7 @@ CONFIG_USB_UHCI_HCD=m
1162# CONFIG_USB_ACM is not set 1239# CONFIG_USB_ACM is not set
1163# CONFIG_USB_PRINTER is not set 1240# CONFIG_USB_PRINTER is not set
1164# CONFIG_USB_WDM is not set 1241# CONFIG_USB_WDM is not set
1242# CONFIG_USB_TMC is not set
1165 1243
1166# 1244#
1167# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1245# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1191,7 +1269,6 @@ CONFIG_USB_STORAGE=m
1191# 1269#
1192# CONFIG_USB_MDC800 is not set 1270# CONFIG_USB_MDC800 is not set
1193# CONFIG_USB_MICROTEK is not set 1271# CONFIG_USB_MICROTEK is not set
1194# CONFIG_USB_MON is not set
1195 1272
1196# 1273#
1197# USB port drivers 1274# USB port drivers
@@ -1204,7 +1281,7 @@ CONFIG_USB_STORAGE=m
1204# CONFIG_USB_EMI62 is not set 1281# CONFIG_USB_EMI62 is not set
1205# CONFIG_USB_EMI26 is not set 1282# CONFIG_USB_EMI26 is not set
1206# CONFIG_USB_ADUTUX is not set 1283# CONFIG_USB_ADUTUX is not set
1207# CONFIG_USB_AUERSWALD is not set 1284# CONFIG_USB_SEVSEG is not set
1208# CONFIG_USB_RIO500 is not set 1285# CONFIG_USB_RIO500 is not set
1209# CONFIG_USB_LEGOTOWER is not set 1286# CONFIG_USB_LEGOTOWER is not set
1210# CONFIG_USB_LCD is not set 1287# CONFIG_USB_LCD is not set
@@ -1222,21 +1299,80 @@ CONFIG_USB_STORAGE=m
1222# CONFIG_USB_IOWARRIOR is not set 1299# CONFIG_USB_IOWARRIOR is not set
1223# CONFIG_USB_TEST is not set 1300# CONFIG_USB_TEST is not set
1224# CONFIG_USB_ISIGHTFW is not set 1301# CONFIG_USB_ISIGHTFW is not set
1302# CONFIG_USB_VST is not set
1225# CONFIG_USB_GADGET is not set 1303# CONFIG_USB_GADGET is not set
1304# CONFIG_UWB is not set
1226# CONFIG_MMC is not set 1305# CONFIG_MMC is not set
1227# CONFIG_MEMSTICK is not set 1306# CONFIG_MEMSTICK is not set
1228# CONFIG_NEW_LEDS is not set 1307# CONFIG_NEW_LEDS is not set
1229# CONFIG_ACCESSIBILITY is not set 1308# CONFIG_ACCESSIBILITY is not set
1230# CONFIG_INFINIBAND is not set 1309# CONFIG_INFINIBAND is not set
1231# CONFIG_RTC_CLASS is not set 1310CONFIG_RTC_LIB=y
1311CONFIG_RTC_CLASS=y
1312CONFIG_RTC_HCTOSYS=y
1313CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1314# CONFIG_RTC_DEBUG is not set
1315
1316#
1317# RTC interfaces
1318#
1319CONFIG_RTC_INTF_SYSFS=y
1320CONFIG_RTC_INTF_PROC=y
1321CONFIG_RTC_INTF_DEV=y
1322# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1323# CONFIG_RTC_DRV_TEST is not set
1324
1325#
1326# I2C RTC drivers
1327#
1328# CONFIG_RTC_DRV_DS1307 is not set
1329# CONFIG_RTC_DRV_DS1374 is not set
1330# CONFIG_RTC_DRV_DS1672 is not set
1331# CONFIG_RTC_DRV_MAX6900 is not set
1332# CONFIG_RTC_DRV_RS5C372 is not set
1333# CONFIG_RTC_DRV_ISL1208 is not set
1334# CONFIG_RTC_DRV_X1205 is not set
1335# CONFIG_RTC_DRV_PCF8563 is not set
1336# CONFIG_RTC_DRV_PCF8583 is not set
1337# CONFIG_RTC_DRV_M41T80 is not set
1338# CONFIG_RTC_DRV_S35390A is not set
1339# CONFIG_RTC_DRV_FM3130 is not set
1340
1341#
1342# SPI RTC drivers
1343#
1344
1345#
1346# Platform RTC drivers
1347#
1348CONFIG_RTC_DRV_CMOS=y
1349# CONFIG_RTC_DRV_DS1286 is not set
1350# CONFIG_RTC_DRV_DS1511 is not set
1351# CONFIG_RTC_DRV_DS1553 is not set
1352# CONFIG_RTC_DRV_DS1742 is not set
1353# CONFIG_RTC_DRV_STK17TA8 is not set
1354# CONFIG_RTC_DRV_M48T86 is not set
1355# CONFIG_RTC_DRV_M48T35 is not set
1356CONFIG_RTC_DRV_M48T59=y
1357CONFIG_RTC_DRV_BQ4802=y
1358# CONFIG_RTC_DRV_V3020 is not set
1359
1360#
1361# on-CPU RTC drivers
1362#
1363CONFIG_RTC_DRV_SUN4V=y
1364CONFIG_RTC_DRV_STARFIRE=y
1365# CONFIG_DMADEVICES is not set
1232# CONFIG_UIO is not set 1366# CONFIG_UIO is not set
1367# CONFIG_STAGING is not set
1368CONFIG_STAGING_EXCLUDE_BUILD=y
1233 1369
1234# 1370#
1235# Misc Linux/SPARC drivers 1371# Misc Linux/SPARC drivers
1236# 1372#
1237CONFIG_SUN_OPENPROMIO=y 1373CONFIG_SUN_OPENPROMIO=y
1238# CONFIG_OBP_FLASH is not set 1374# CONFIG_OBP_FLASH is not set
1239# CONFIG_SUN_BPP is not set 1375# CONFIG_TADPOLE_TS102_UCTRL is not set
1240# CONFIG_BBC_I2C is not set 1376# CONFIG_BBC_I2C is not set
1241# CONFIG_ENVCTRL is not set 1377# CONFIG_ENVCTRL is not set
1242# CONFIG_DISPLAY7SEG is not set 1378# CONFIG_DISPLAY7SEG is not set
@@ -1253,13 +1389,14 @@ CONFIG_EXT3_FS=y
1253CONFIG_EXT3_FS_XATTR=y 1389CONFIG_EXT3_FS_XATTR=y
1254CONFIG_EXT3_FS_POSIX_ACL=y 1390CONFIG_EXT3_FS_POSIX_ACL=y
1255CONFIG_EXT3_FS_SECURITY=y 1391CONFIG_EXT3_FS_SECURITY=y
1256# CONFIG_EXT4DEV_FS is not set 1392# CONFIG_EXT4_FS is not set
1257CONFIG_JBD=y 1393CONFIG_JBD=y
1258# CONFIG_JBD_DEBUG is not set 1394# CONFIG_JBD_DEBUG is not set
1259CONFIG_FS_MBCACHE=y 1395CONFIG_FS_MBCACHE=y
1260# CONFIG_REISERFS_FS is not set 1396# CONFIG_REISERFS_FS is not set
1261# CONFIG_JFS_FS is not set 1397# CONFIG_JFS_FS is not set
1262CONFIG_FS_POSIX_ACL=y 1398CONFIG_FS_POSIX_ACL=y
1399CONFIG_FILE_LOCKING=y
1263# CONFIG_XFS_FS is not set 1400# CONFIG_XFS_FS is not set
1264# CONFIG_GFS2_FS is not set 1401# CONFIG_GFS2_FS is not set
1265# CONFIG_OCFS2_FS is not set 1402# CONFIG_OCFS2_FS is not set
@@ -1290,6 +1427,7 @@ CONFIG_INOTIFY_USER=y
1290CONFIG_PROC_FS=y 1427CONFIG_PROC_FS=y
1291CONFIG_PROC_KCORE=y 1428CONFIG_PROC_KCORE=y
1292CONFIG_PROC_SYSCTL=y 1429CONFIG_PROC_SYSCTL=y
1430CONFIG_PROC_PAGE_MONITOR=y
1293CONFIG_SYSFS=y 1431CONFIG_SYSFS=y
1294CONFIG_TMPFS=y 1432CONFIG_TMPFS=y
1295# CONFIG_TMPFS_POSIX_ACL is not set 1433# CONFIG_TMPFS_POSIX_ACL is not set
@@ -1311,6 +1449,7 @@ CONFIG_HUGETLB_PAGE=y
1311# CONFIG_CRAMFS is not set 1449# CONFIG_CRAMFS is not set
1312# CONFIG_VXFS_FS is not set 1450# CONFIG_VXFS_FS is not set
1313# CONFIG_MINIX_FS is not set 1451# CONFIG_MINIX_FS is not set
1452# CONFIG_OMFS_FS is not set
1314# CONFIG_HPFS_FS is not set 1453# CONFIG_HPFS_FS is not set
1315# CONFIG_QNX4FS_FS is not set 1454# CONFIG_QNX4FS_FS is not set
1316# CONFIG_ROMFS_FS is not set 1455# CONFIG_ROMFS_FS is not set
@@ -1388,6 +1527,8 @@ CONFIG_DEBUG_FS=y
1388CONFIG_DEBUG_KERNEL=y 1527CONFIG_DEBUG_KERNEL=y
1389# CONFIG_DEBUG_SHIRQ is not set 1528# CONFIG_DEBUG_SHIRQ is not set
1390CONFIG_DETECT_SOFTLOCKUP=y 1529CONFIG_DETECT_SOFTLOCKUP=y
1530# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1531CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1391# CONFIG_SCHED_DEBUG is not set 1532# CONFIG_SCHED_DEBUG is not set
1392CONFIG_SCHEDSTATS=y 1533CONFIG_SCHEDSTATS=y
1393# CONFIG_TIMER_STATS is not set 1534# CONFIG_TIMER_STATS is not set
@@ -1408,20 +1549,30 @@ CONFIG_DEBUG_BUGVERBOSE=y
1408# CONFIG_DEBUG_INFO is not set 1549# CONFIG_DEBUG_INFO is not set
1409# CONFIG_DEBUG_VM is not set 1550# CONFIG_DEBUG_VM is not set
1410# CONFIG_DEBUG_WRITECOUNT is not set 1551# CONFIG_DEBUG_WRITECOUNT is not set
1552CONFIG_DEBUG_MEMORY_INIT=y
1411# CONFIG_DEBUG_LIST is not set 1553# CONFIG_DEBUG_LIST is not set
1412# CONFIG_DEBUG_SG is not set 1554# CONFIG_DEBUG_SG is not set
1413# CONFIG_BOOT_PRINTK_DELAY is not set 1555# CONFIG_BOOT_PRINTK_DELAY is not set
1414# CONFIG_RCU_TORTURE_TEST is not set 1556# CONFIG_RCU_TORTURE_TEST is not set
1557# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1415# CONFIG_KPROBES_SANITY_TEST is not set 1558# CONFIG_KPROBES_SANITY_TEST is not set
1416# CONFIG_BACKTRACE_SELF_TEST is not set 1559# CONFIG_BACKTRACE_SELF_TEST is not set
1560# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1417# CONFIG_LKDTM is not set 1561# CONFIG_LKDTM is not set
1418# CONFIG_FAULT_INJECTION is not set 1562# CONFIG_FAULT_INJECTION is not set
1419CONFIG_HAVE_FTRACE=y 1563CONFIG_SYSCTL_SYSCALL_CHECK=y
1420CONFIG_HAVE_DYNAMIC_FTRACE=y 1564CONFIG_HAVE_FUNCTION_TRACER=y
1421# CONFIG_FTRACE is not set 1565
1566#
1567# Tracers
1568#
1569# CONFIG_FUNCTION_TRACER is not set
1422# CONFIG_IRQSOFF_TRACER is not set 1570# CONFIG_IRQSOFF_TRACER is not set
1423# CONFIG_SCHED_TRACER is not set 1571# CONFIG_SCHED_TRACER is not set
1424# CONFIG_CONTEXT_SWITCH_TRACER is not set 1572# CONFIG_CONTEXT_SWITCH_TRACER is not set
1573# CONFIG_BOOT_TRACER is not set
1574# CONFIG_STACK_TRACER is not set
1575# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1425# CONFIG_SAMPLES is not set 1576# CONFIG_SAMPLES is not set
1426CONFIG_HAVE_ARCH_KGDB=y 1577CONFIG_HAVE_ARCH_KGDB=y
1427# CONFIG_KGDB is not set 1578# CONFIG_KGDB is not set
@@ -1436,6 +1587,7 @@ CONFIG_HAVE_ARCH_KGDB=y
1436CONFIG_KEYS=y 1587CONFIG_KEYS=y
1437# CONFIG_KEYS_DEBUG_PROC_KEYS is not set 1588# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
1438# CONFIG_SECURITY is not set 1589# CONFIG_SECURITY is not set
1590# CONFIG_SECURITYFS is not set
1439# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1591# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1440CONFIG_XOR_BLOCKS=m 1592CONFIG_XOR_BLOCKS=m
1441CONFIG_ASYNC_CORE=m 1593CONFIG_ASYNC_CORE=m
@@ -1446,10 +1598,12 @@ CONFIG_CRYPTO=y
1446# 1598#
1447# Crypto core or helper 1599# Crypto core or helper
1448# 1600#
1601# CONFIG_CRYPTO_FIPS is not set
1449CONFIG_CRYPTO_ALGAPI=y 1602CONFIG_CRYPTO_ALGAPI=y
1450CONFIG_CRYPTO_AEAD=y 1603CONFIG_CRYPTO_AEAD=y
1451CONFIG_CRYPTO_BLKCIPHER=y 1604CONFIG_CRYPTO_BLKCIPHER=y
1452CONFIG_CRYPTO_HASH=y 1605CONFIG_CRYPTO_HASH=y
1606CONFIG_CRYPTO_RNG=y
1453CONFIG_CRYPTO_MANAGER=y 1607CONFIG_CRYPTO_MANAGER=y
1454CONFIG_CRYPTO_GF128MUL=m 1608CONFIG_CRYPTO_GF128MUL=m
1455CONFIG_CRYPTO_NULL=m 1609CONFIG_CRYPTO_NULL=m
@@ -1523,6 +1677,11 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1523# 1677#
1524CONFIG_CRYPTO_DEFLATE=y 1678CONFIG_CRYPTO_DEFLATE=y
1525# CONFIG_CRYPTO_LZO is not set 1679# CONFIG_CRYPTO_LZO is not set
1680
1681#
1682# Random Number Generation
1683#
1684# CONFIG_CRYPTO_ANSI_CPRNG is not set
1526CONFIG_CRYPTO_HW=y 1685CONFIG_CRYPTO_HW=y
1527# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1686# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1528 1687
@@ -1530,7 +1689,6 @@ CONFIG_CRYPTO_HW=y
1530# Library routines 1689# Library routines
1531# 1690#
1532CONFIG_BITREVERSE=y 1691CONFIG_BITREVERSE=y
1533# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1534CONFIG_CRC_CCITT=m 1692CONFIG_CRC_CCITT=m
1535CONFIG_CRC16=m 1693CONFIG_CRC16=m
1536# CONFIG_CRC_T10DIF is not set 1694# CONFIG_CRC_T10DIF is not set
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/sys32.S b/arch/sparc64/kernel/sys32.S
index ade18ba0c686..f061c4dda9ef 100644
--- a/arch/sparc64/kernel/sys32.S
+++ b/arch/sparc64/kernel/sys32.S
@@ -150,7 +150,7 @@ sys32_mmap2:
150sys32_socketcall: /* %o0=call, %o1=args */ 150sys32_socketcall: /* %o0=call, %o1=args */
151 cmp %o0, 1 151 cmp %o0, 1
152 bl,pn %xcc, do_einval 152 bl,pn %xcc, do_einval
153 cmp %o0, 17 153 cmp %o0, 18
154 bg,pn %xcc, do_einval 154 bg,pn %xcc, do_einval
155 sub %o0, 1, %o0 155 sub %o0, 1, %o0
156 sllx %o0, 5, %o0 156 sllx %o0, 5, %o0
@@ -319,6 +319,15 @@ do_sys_recvmsg: /* compat_sys_recvmsg(int, struct compat_msghdr *, unsigned int)
319 nop 319 nop
320 nop 320 nop
321 nop 321 nop
322do_sys_accept4: /* sys_accept4(int, struct sockaddr *, int *, int) */
32363: ldswa [%o1 + 0x0] %asi, %o0
324 sethi %hi(sys_accept4), %g1
32564: lduwa [%o1 + 0x8] %asi, %o2
32665: ldswa [%o1 + 0xc] %asi, %o3
327 jmpl %g1 + %lo(sys_accept4), %g0
32866: lduwa [%o1 + 0x4] %asi, %o1
329 nop
330 nop
322 331
323 .section __ex_table,"a" 332 .section __ex_table,"a"
324 .align 4 333 .align 4
@@ -353,4 +362,6 @@ do_sys_recvmsg: /* compat_sys_recvmsg(int, struct compat_msghdr *, unsigned int)
353 .word 57b, __retl_efault, 58b, __retl_efault 362 .word 57b, __retl_efault, 58b, __retl_efault
354 .word 59b, __retl_efault, 60b, __retl_efault 363 .word 59b, __retl_efault, 60b, __retl_efault
355 .word 61b, __retl_efault, 62b, __retl_efault 364 .word 61b, __retl_efault, 62b, __retl_efault
365 .word 63b, __retl_efault, 64b, __retl_efault
366 .word 65b, __retl_efault, 66b, __retl_efault
356 .previous 367 .previous
diff --git a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S
index b2fa4c163638..9fc78cf354bd 100644
--- a/arch/sparc64/kernel/systbls.S
+++ b/arch/sparc64/kernel/systbls.S
@@ -82,7 +82,7 @@ sys_call_table32:
82 .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait 82 .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait
83/*310*/ .word compat_sys_utimensat, compat_sys_signalfd, sys_timerfd_create, sys_eventfd, compat_sys_fallocate 83/*310*/ .word compat_sys_utimensat, compat_sys_signalfd, sys_timerfd_create, sys_eventfd, compat_sys_fallocate
84 .word compat_sys_timerfd_settime, compat_sys_timerfd_gettime, compat_sys_signalfd4, sys_eventfd2, sys_epoll_create1 84 .word compat_sys_timerfd_settime, compat_sys_timerfd_gettime, compat_sys_signalfd4, sys_eventfd2, sys_epoll_create1
85/*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1 85/*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4
86 86
87#endif /* CONFIG_COMPAT */ 87#endif /* CONFIG_COMPAT */
88 88
@@ -156,4 +156,4 @@ sys_call_table:
156 .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait 156 .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
157/*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd_create, sys_eventfd, sys_fallocate 157/*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd_create, sys_eventfd, sys_fallocate
158 .word sys_timerfd_settime, sys_timerfd_gettime, sys_signalfd4, sys_eventfd2, sys_epoll_create1 158 .word sys_timerfd_settime, sys_timerfd_gettime, sys_signalfd4, sys_eventfd2, sys_epoll_create1
159/*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1 159/*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4
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 b/arch/x86/Kconfig
index 6f20718d3156..ac22bb7719f7 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -167,9 +167,12 @@ config GENERIC_PENDING_IRQ
167config X86_SMP 167config X86_SMP
168 bool 168 bool
169 depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64) 169 depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64)
170 select USE_GENERIC_SMP_HELPERS
171 default y 170 default y
172 171
172config USE_GENERIC_SMP_HELPERS
173 def_bool y
174 depends on SMP
175
173config X86_32_SMP 176config X86_32_SMP
174 def_bool y 177 def_bool y
175 depends on X86_32 && SMP 178 depends on X86_32 && SMP
@@ -1494,7 +1497,7 @@ config HAVE_ARCH_EARLY_PFN_TO_NID
1494 def_bool X86_64 1497 def_bool X86_64
1495 depends on NUMA 1498 depends on NUMA
1496 1499
1497menu "Power management options" 1500menu "Power management and ACPI options"
1498 depends on !X86_VOYAGER 1501 depends on !X86_VOYAGER
1499 1502
1500config ARCH_HIBERNATION_HEADER 1503config ARCH_HIBERNATION_HEADER
@@ -1894,6 +1897,10 @@ config SYSVIPC_COMPAT
1894endmenu 1897endmenu
1895 1898
1896 1899
1900config HAVE_ATOMIC_IOMAP
1901 def_bool y
1902 depends on X86_32
1903
1897source "net/Kconfig" 1904source "net/Kconfig"
1898 1905
1899source "drivers/Kconfig" 1906source "drivers/Kconfig"
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/acpi.h b/arch/x86/include/asm/acpi.h
index 8d676d8ecde9..9830681446ad 100644
--- a/arch/x86/include/asm/acpi.h
+++ b/arch/x86/include/asm/acpi.h
@@ -113,7 +113,6 @@ static inline void acpi_disable_pci(void)
113 acpi_pci_disabled = 1; 113 acpi_pci_disabled = 1;
114 acpi_noirq_set(); 114 acpi_noirq_set();
115} 115}
116extern int acpi_irq_balance_set(char *str);
117 116
118/* routines for saving/restoring kernel state */ 117/* routines for saving/restoring kernel state */
119extern int acpi_save_state_mem(void); 118extern int acpi_save_state_mem(void);
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/fixmap.h b/arch/x86/include/asm/fixmap.h
index 8668a94f850e..23696d44a0af 100644
--- a/arch/x86/include/asm/fixmap.h
+++ b/arch/x86/include/asm/fixmap.h
@@ -9,6 +9,10 @@
9 9
10extern int fixmaps_set; 10extern int fixmaps_set;
11 11
12extern pte_t *kmap_pte;
13extern pgprot_t kmap_prot;
14extern pte_t *pkmap_page_table;
15
12void __native_set_fixmap(enum fixed_addresses idx, pte_t pte); 16void __native_set_fixmap(enum fixed_addresses idx, pte_t pte);
13void native_set_fixmap(enum fixed_addresses idx, 17void native_set_fixmap(enum fixed_addresses idx,
14 unsigned long phys, pgprot_t flags); 18 unsigned long phys, pgprot_t flags);
diff --git a/arch/x86/include/asm/fixmap_32.h b/arch/x86/include/asm/fixmap_32.h
index 09f29ab5c139..c7115c1d7217 100644
--- a/arch/x86/include/asm/fixmap_32.h
+++ b/arch/x86/include/asm/fixmap_32.h
@@ -28,10 +28,8 @@ extern unsigned long __FIXADDR_TOP;
28#include <asm/acpi.h> 28#include <asm/acpi.h>
29#include <asm/apicdef.h> 29#include <asm/apicdef.h>
30#include <asm/page.h> 30#include <asm/page.h>
31#ifdef CONFIG_HIGHMEM
32#include <linux/threads.h> 31#include <linux/threads.h>
33#include <asm/kmap_types.h> 32#include <asm/kmap_types.h>
34#endif
35 33
36/* 34/*
37 * Here we define all the compile-time 'special' virtual 35 * Here we define all the compile-time 'special' virtual
@@ -75,10 +73,8 @@ enum fixed_addresses {
75#ifdef CONFIG_X86_CYCLONE_TIMER 73#ifdef CONFIG_X86_CYCLONE_TIMER
76 FIX_CYCLONE_TIMER, /*cyclone timer register*/ 74 FIX_CYCLONE_TIMER, /*cyclone timer register*/
77#endif 75#endif
78#ifdef CONFIG_HIGHMEM
79 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */ 76 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
80 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1, 77 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
81#endif
82#ifdef CONFIG_PCI_MMCONFIG 78#ifdef CONFIG_PCI_MMCONFIG
83 FIX_PCIE_MCFG, 79 FIX_PCIE_MCFG,
84#endif 80#endif
diff --git a/arch/x86/include/asm/highmem.h b/arch/x86/include/asm/highmem.h
index a3b3b7c3027b..bf9276bea660 100644
--- a/arch/x86/include/asm/highmem.h
+++ b/arch/x86/include/asm/highmem.h
@@ -25,14 +25,11 @@
25#include <asm/kmap_types.h> 25#include <asm/kmap_types.h>
26#include <asm/tlbflush.h> 26#include <asm/tlbflush.h>
27#include <asm/paravirt.h> 27#include <asm/paravirt.h>
28#include <asm/fixmap.h>
28 29
29/* declarations for highmem.c */ 30/* declarations for highmem.c */
30extern unsigned long highstart_pfn, highend_pfn; 31extern unsigned long highstart_pfn, highend_pfn;
31 32
32extern pte_t *kmap_pte;
33extern pgprot_t kmap_prot;
34extern pte_t *pkmap_page_table;
35
36/* 33/*
37 * Right now we initialize only a single pte table. It can be extended 34 * Right now we initialize only a single pte table. It can be extended
38 * easily, subsequent pte tables have to be allocated in one physical 35 * easily, subsequent pte tables have to be allocated in one physical
diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h
new file mode 100644
index 000000000000..c1f06289b14b
--- /dev/null
+++ b/arch/x86/include/asm/iomap.h
@@ -0,0 +1,30 @@
1/*
2 * Copyright © 2008 Ingo Molnar
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17 */
18
19#include <linux/fs.h>
20#include <linux/mm.h>
21#include <linux/uaccess.h>
22#include <asm/cacheflush.h>
23#include <asm/pgtable.h>
24#include <asm/tlbflush.h>
25
26void *
27iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot);
28
29void
30iounmap_atomic(void *kvaddr, enum km_type type);
diff --git a/arch/x86/include/asm/iommu.h b/arch/x86/include/asm/iommu.h
index e4a552d44465..0b500c5b6446 100644
--- a/arch/x86/include/asm/iommu.h
+++ b/arch/x86/include/asm/iommu.h
@@ -6,7 +6,6 @@ extern void no_iommu_init(void);
6extern struct dma_mapping_ops nommu_dma_ops; 6extern struct dma_mapping_ops nommu_dma_ops;
7extern int force_iommu, no_iommu; 7extern int force_iommu, no_iommu;
8extern int iommu_detected; 8extern int iommu_detected;
9extern int dmar_disabled;
10 9
11extern unsigned long iommu_nr_pages(unsigned long addr, unsigned long len); 10extern unsigned long iommu_nr_pages(unsigned long addr, unsigned long len);
12 11
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
index d843ed0e9b2e..0005adb0f941 100644
--- a/arch/x86/include/asm/irq_vectors.h
+++ b/arch/x86/include/asm/irq_vectors.h
@@ -101,30 +101,22 @@
101#define LAST_VM86_IRQ 15 101#define LAST_VM86_IRQ 15
102#define invalid_vm86_irq(irq) ((irq) < 3 || (irq) > 15) 102#define invalid_vm86_irq(irq) ((irq) < 3 || (irq) > 15)
103 103
104#ifdef CONFIG_X86_64 104#if defined(CONFIG_X86_IO_APIC) && !defined(CONFIG_X86_VOYAGER)
105# if NR_CPUS < MAX_IO_APICS 105# if NR_CPUS < MAX_IO_APICS
106# define NR_IRQS (NR_VECTORS + (32 * NR_CPUS)) 106# define NR_IRQS (NR_VECTORS + (32 * NR_CPUS))
107# else 107# else
108# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS)) 108# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
109# endif 109# endif
110 110
111#elif !defined(CONFIG_X86_VOYAGER) 111#elif defined(CONFIG_X86_VOYAGER)
112 112
113# if defined(CONFIG_X86_IO_APIC) || defined(CONFIG_PARAVIRT) || defined(CONFIG_X86_VISWS) 113# define NR_IRQS 224
114
115# define NR_IRQS 224
116
117# else /* IO_APIC || PARAVIRT */
118
119# define NR_IRQS 16
120
121# endif
122 114
123#else /* !VISWS && !VOYAGER */ 115#else /* IO_APIC || VOYAGER */
124 116
125# define NR_IRQS 224 117# define NR_IRQS 16
126 118
127#endif /* VISWS */ 119#endif
128 120
129/* Voyager specific defines */ 121/* Voyager specific defines */
130/* These define the CPIs we use in linux */ 122/* These define the CPIs we use in linux */
diff --git a/arch/x86/include/asm/mmzone_32.h b/arch/x86/include/asm/mmzone_32.h
index 485bdf059ffb..07f1af494ca5 100644
--- a/arch/x86/include/asm/mmzone_32.h
+++ b/arch/x86/include/asm/mmzone_32.h
@@ -34,10 +34,14 @@ static inline void get_memcfg_numa(void)
34 34
35extern int early_pfn_to_nid(unsigned long pfn); 35extern int early_pfn_to_nid(unsigned long pfn);
36 36
37extern void resume_map_numa_kva(pgd_t *pgd);
38
37#else /* !CONFIG_NUMA */ 39#else /* !CONFIG_NUMA */
38 40
39#define get_memcfg_numa get_memcfg_numa_flat 41#define get_memcfg_numa get_memcfg_numa_flat
40 42
43static inline void resume_map_numa_kva(pgd_t *pgd) {}
44
41#endif /* CONFIG_NUMA */ 45#endif /* CONFIG_NUMA */
42 46
43#ifdef CONFIG_DISCONTIGMEM 47#ifdef CONFIG_DISCONTIGMEM
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 46be2fa7ac26..c2a812ebde89 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -108,9 +108,7 @@ static __always_inline unsigned long long __native_read_tsc(void)
108{ 108{
109 DECLARE_ARGS(val, low, high); 109 DECLARE_ARGS(val, low, high);
110 110
111 rdtsc_barrier();
112 asm volatile("rdtsc" : EAX_EDX_RET(val, low, high)); 111 asm volatile("rdtsc" : EAX_EDX_RET(val, low, high));
113 rdtsc_barrier();
114 112
115 return EAX_EDX_VAL(val, low, high); 113 return EAX_EDX_VAL(val, low, high);
116} 114}
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 90ac7718469a..ff386ff50ed7 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -154,7 +154,7 @@ extern unsigned long node_remap_size[];
154 154
155#endif 155#endif
156 156
157/* sched_domains SD_NODE_INIT for NUMAQ machines */ 157/* sched_domains SD_NODE_INIT for NUMA machines */
158#define SD_NODE_INIT (struct sched_domain) { \ 158#define SD_NODE_INIT (struct sched_domain) { \
159 .min_interval = 8, \ 159 .min_interval = 8, \
160 .max_interval = 32, \ 160 .max_interval = 32, \
@@ -169,8 +169,9 @@ extern unsigned long node_remap_size[];
169 .flags = SD_LOAD_BALANCE \ 169 .flags = SD_LOAD_BALANCE \
170 | SD_BALANCE_EXEC \ 170 | SD_BALANCE_EXEC \
171 | SD_BALANCE_FORK \ 171 | SD_BALANCE_FORK \
172 | SD_SERIALIZE \ 172 | SD_WAKE_AFFINE \
173 | SD_WAKE_BALANCE, \ 173 | SD_WAKE_BALANCE \
174 | SD_SERIALIZE, \
174 .last_balance = jiffies, \ 175 .last_balance = jiffies, \
175 .balance_interval = 1, \ 176 .balance_interval = 1, \
176} 177}
@@ -238,7 +239,7 @@ struct pci_bus;
238void set_pci_bus_resources_arch_default(struct pci_bus *b); 239void set_pci_bus_resources_arch_default(struct pci_bus *b);
239 240
240#ifdef CONFIG_SMP 241#ifdef CONFIG_SMP
241#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)
242#define smt_capable() (smp_num_siblings > 1) 243#define smt_capable() (smp_num_siblings > 1)
243#endif 244#endif
244 245
diff --git a/arch/x86/include/asm/tsc.h b/arch/x86/include/asm/tsc.h
index 38ae163cc91b..9cd83a8e40d5 100644
--- a/arch/x86/include/asm/tsc.h
+++ b/arch/x86/include/asm/tsc.h
@@ -34,6 +34,8 @@ static inline cycles_t get_cycles(void)
34 34
35static __always_inline cycles_t vget_cycles(void) 35static __always_inline cycles_t vget_cycles(void)
36{ 36{
37 cycles_t cycles;
38
37 /* 39 /*
38 * We only do VDSOs on TSC capable CPUs, so this shouldnt 40 * We only do VDSOs on TSC capable CPUs, so this shouldnt
39 * access boot_cpu_data (which is not VDSO-safe): 41 * access boot_cpu_data (which is not VDSO-safe):
@@ -42,7 +44,11 @@ static __always_inline cycles_t vget_cycles(void)
42 if (!cpu_has_tsc) 44 if (!cpu_has_tsc)
43 return 0; 45 return 0;
44#endif 46#endif
45 return (cycles_t)__native_read_tsc(); 47 rdtsc_barrier();
48 cycles = (cycles_t)__native_read_tsc();
49 rdtsc_barrier();
50
51 return cycles;
46} 52}
47 53
48extern void tsc_init(void); 54extern void tsc_init(void);
diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
index 664f15280f14..f8cfd00db450 100644
--- a/arch/x86/include/asm/uaccess_64.h
+++ b/arch/x86/include/asm/uaccess_64.h
@@ -46,7 +46,7 @@ int __copy_from_user(void *dst, const void __user *src, unsigned size)
46 return ret; 46 return ret;
47 case 10: 47 case 10:
48 __get_user_asm(*(u64 *)dst, (u64 __user *)src, 48 __get_user_asm(*(u64 *)dst, (u64 __user *)src,
49 ret, "q", "", "=r", 16); 49 ret, "q", "", "=r", 10);
50 if (unlikely(ret)) 50 if (unlikely(ret))
51 return ret; 51 return ret;
52 __get_user_asm(*(u16 *)(8 + (char *)dst), 52 __get_user_asm(*(u16 *)(8 + (char *)dst),
diff --git a/arch/x86/include/asm/unistd_64.h b/arch/x86/include/asm/unistd_64.h
index 834b2c1d89fb..d2e415e6666f 100644
--- a/arch/x86/include/asm/unistd_64.h
+++ b/arch/x86/include/asm/unistd_64.h
@@ -639,8 +639,8 @@ __SYSCALL(__NR_fallocate, sys_fallocate)
639__SYSCALL(__NR_timerfd_settime, sys_timerfd_settime) 639__SYSCALL(__NR_timerfd_settime, sys_timerfd_settime)
640#define __NR_timerfd_gettime 287 640#define __NR_timerfd_gettime 287
641__SYSCALL(__NR_timerfd_gettime, sys_timerfd_gettime) 641__SYSCALL(__NR_timerfd_gettime, sys_timerfd_gettime)
642#define __NR_paccept 288 642#define __NR_accept4 288
643__SYSCALL(__NR_paccept, sys_paccept) 643__SYSCALL(__NR_accept4, sys_accept4)
644#define __NR_signalfd4 289 644#define __NR_signalfd4 289
645__SYSCALL(__NR_signalfd4, sys_signalfd4) 645__SYSCALL(__NR_signalfd4, sys_signalfd4)
646#define __NR_eventfd2 290 646#define __NR_eventfd2 290
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/include/asm/voyager.h b/arch/x86/include/asm/voyager.h
index 9c811d2e6f91..b3e647307625 100644
--- a/arch/x86/include/asm/voyager.h
+++ b/arch/x86/include/asm/voyager.h
@@ -520,6 +520,7 @@ extern void voyager_restart(void);
520extern void voyager_cat_power_off(void); 520extern void voyager_cat_power_off(void);
521extern void voyager_cat_do_common_interrupt(void); 521extern void voyager_cat_do_common_interrupt(void);
522extern void voyager_handle_nmi(void); 522extern void voyager_handle_nmi(void);
523extern void voyager_smp_intr_init(void);
523/* Commands for the following are */ 524/* Commands for the following are */
524#define VOYAGER_PSI_READ 0 525#define VOYAGER_PSI_READ 0
525#define VOYAGER_PSI_WRITE 1 526#define VOYAGER_PSI_WRITE 1
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/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 8c1f76abae9e..4c51a2f8fd31 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1343,7 +1343,6 @@ static void __init acpi_process_madt(void)
1343 error = acpi_parse_madt_ioapic_entries(); 1343 error = acpi_parse_madt_ioapic_entries();
1344 if (!error) { 1344 if (!error) {
1345 acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC; 1345 acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC;
1346 acpi_irq_balance_set(NULL);
1347 acpi_ioapic = 1; 1346 acpi_ioapic = 1;
1348 1347
1349 smp_found_config = 1; 1348 smp_found_config = 1;
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index a8fd9ebdc8e2..a7b6dec6fc3f 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -50,7 +50,7 @@ static int dma_ops_unity_map(struct dma_ops_domain *dma_dom,
50/* returns !0 if the IOMMU is caching non-present entries in its TLB */ 50/* returns !0 if the IOMMU is caching non-present entries in its TLB */
51static int iommu_has_npcache(struct amd_iommu *iommu) 51static int iommu_has_npcache(struct amd_iommu *iommu)
52{ 52{
53 return iommu->cap & IOMMU_CAP_NPCACHE; 53 return iommu->cap & (1UL << IOMMU_CAP_NPCACHE);
54} 54}
55 55
56/**************************************************************************** 56/****************************************************************************
@@ -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)
@@ -254,8 +259,6 @@ static int iommu_queue_inv_dev_entry(struct amd_iommu *iommu, u16 devid)
254 259
255 ret = iommu_queue_command(iommu, &cmd); 260 ret = iommu_queue_command(iommu, &cmd);
256 261
257 iommu->need_sync = 1;
258
259 return ret; 262 return ret;
260} 263}
261 264
@@ -281,8 +284,6 @@ static int iommu_queue_inv_iommu_pages(struct amd_iommu *iommu,
281 284
282 ret = iommu_queue_command(iommu, &cmd); 285 ret = iommu_queue_command(iommu, &cmd);
283 286
284 iommu->need_sync = 1;
285
286 return ret; 287 return ret;
287} 288}
288 289
@@ -343,7 +344,7 @@ static int iommu_map(struct protection_domain *dom,
343 u64 __pte, *pte, *page; 344 u64 __pte, *pte, *page;
344 345
345 bus_addr = PAGE_ALIGN(bus_addr); 346 bus_addr = PAGE_ALIGN(bus_addr);
346 phys_addr = PAGE_ALIGN(bus_addr); 347 phys_addr = PAGE_ALIGN(phys_addr);
347 348
348 /* only support 512GB address spaces for now */ 349 /* only support 512GB address spaces for now */
349 if (bus_addr > IOMMU_MAP_SIZE_L3 || !(prot & IOMMU_PROT_MASK)) 350 if (bus_addr > IOMMU_MAP_SIZE_L3 || !(prot & IOMMU_PROT_MASK))
@@ -536,6 +537,9 @@ static void dma_ops_free_addresses(struct dma_ops_domain *dom,
536{ 537{
537 address >>= PAGE_SHIFT; 538 address >>= PAGE_SHIFT;
538 iommu_area_free(dom->bitmap, address, pages); 539 iommu_area_free(dom->bitmap, address, pages);
540
541 if (address >= dom->next_bit)
542 dom->need_flush = true;
539} 543}
540 544
541/**************************************************************************** 545/****************************************************************************
@@ -596,7 +600,7 @@ static void dma_ops_free_pagetable(struct dma_ops_domain *dma_dom)
596 continue; 600 continue;
597 601
598 p2 = IOMMU_PTE_PAGE(p1[i]); 602 p2 = IOMMU_PTE_PAGE(p1[i]);
599 for (j = 0; j < 512; ++i) { 603 for (j = 0; j < 512; ++j) {
600 if (!IOMMU_PTE_PRESENT(p2[j])) 604 if (!IOMMU_PTE_PRESENT(p2[j]))
601 continue; 605 continue;
602 p3 = IOMMU_PTE_PAGE(p2[j]); 606 p3 = IOMMU_PTE_PAGE(p2[j]);
@@ -759,8 +763,6 @@ static void set_device_domain(struct amd_iommu *iommu,
759 write_unlock_irqrestore(&amd_iommu_devtable_lock, flags); 763 write_unlock_irqrestore(&amd_iommu_devtable_lock, flags);
760 764
761 iommu_queue_inv_dev_entry(iommu, devid); 765 iommu_queue_inv_dev_entry(iommu, devid);
762
763 iommu->need_sync = 1;
764} 766}
765 767
766/***************************************************************************** 768/*****************************************************************************
@@ -855,6 +857,9 @@ static int get_device_resources(struct device *dev,
855 print_devid(_bdf, 1); 857 print_devid(_bdf, 1);
856 } 858 }
857 859
860 if (domain_for_device(_bdf) == NULL)
861 set_device_domain(*iommu, *domain, _bdf);
862
858 return 1; 863 return 1;
859} 864}
860 865
@@ -905,7 +910,7 @@ static void dma_ops_domain_unmap(struct amd_iommu *iommu,
905 if (address >= dom->aperture_size) 910 if (address >= dom->aperture_size)
906 return; 911 return;
907 912
908 WARN_ON(address & 0xfffULL || address > dom->aperture_size); 913 WARN_ON(address & ~PAGE_MASK || address >= dom->aperture_size);
909 914
910 pte = dom->pte_pages[IOMMU_PTE_L1_INDEX(address)]; 915 pte = dom->pte_pages[IOMMU_PTE_L1_INDEX(address)];
911 pte += IOMMU_PTE_L0_INDEX(address); 916 pte += IOMMU_PTE_L0_INDEX(address);
@@ -917,8 +922,8 @@ static void dma_ops_domain_unmap(struct amd_iommu *iommu,
917 922
918/* 923/*
919 * This function contains common code for mapping of a physically 924 * This function contains common code for mapping of a physically
920 * contiguous memory region into DMA address space. It is uses by all 925 * contiguous memory region into DMA address space. It is used by all
921 * mapping functions provided by this IOMMU driver. 926 * mapping functions provided with this IOMMU driver.
922 * Must be called with the domain lock held. 927 * Must be called with the domain lock held.
923 */ 928 */
924static dma_addr_t __map_single(struct device *dev, 929static dma_addr_t __map_single(struct device *dev,
@@ -978,7 +983,8 @@ static void __unmap_single(struct amd_iommu *iommu,
978 dma_addr_t i, start; 983 dma_addr_t i, start;
979 unsigned int pages; 984 unsigned int pages;
980 985
981 if ((dma_addr == 0) || (dma_addr + size > dma_dom->aperture_size)) 986 if ((dma_addr == bad_dma_address) ||
987 (dma_addr + size > dma_dom->aperture_size))
982 return; 988 return;
983 989
984 pages = iommu_num_pages(dma_addr, size, PAGE_SIZE); 990 pages = iommu_num_pages(dma_addr, size, PAGE_SIZE);
@@ -992,8 +998,10 @@ static void __unmap_single(struct amd_iommu *iommu,
992 998
993 dma_ops_free_addresses(dma_dom, dma_addr, pages); 999 dma_ops_free_addresses(dma_dom, dma_addr, pages);
994 1000
995 if (amd_iommu_unmap_flush) 1001 if (amd_iommu_unmap_flush || dma_dom->need_flush) {
996 iommu_flush_pages(iommu, dma_dom->domain.id, dma_addr, size); 1002 iommu_flush_pages(iommu, dma_dom->domain.id, dma_addr, size);
1003 dma_dom->need_flush = false;
1004 }
997} 1005}
998 1006
999/* 1007/*
@@ -1026,8 +1034,7 @@ static dma_addr_t map_single(struct device *dev, phys_addr_t paddr,
1026 if (addr == bad_dma_address) 1034 if (addr == bad_dma_address)
1027 goto out; 1035 goto out;
1028 1036
1029 if (unlikely(iommu->need_sync)) 1037 iommu_completion_wait(iommu);
1030 iommu_completion_wait(iommu);
1031 1038
1032out: 1039out:
1033 spin_unlock_irqrestore(&domain->lock, flags); 1040 spin_unlock_irqrestore(&domain->lock, flags);
@@ -1055,8 +1062,7 @@ static void unmap_single(struct device *dev, dma_addr_t dma_addr,
1055 1062
1056 __unmap_single(iommu, domain->priv, dma_addr, size, dir); 1063 __unmap_single(iommu, domain->priv, dma_addr, size, dir);
1057 1064
1058 if (unlikely(iommu->need_sync)) 1065 iommu_completion_wait(iommu);
1059 iommu_completion_wait(iommu);
1060 1066
1061 spin_unlock_irqrestore(&domain->lock, flags); 1067 spin_unlock_irqrestore(&domain->lock, flags);
1062} 1068}
@@ -1122,8 +1128,7 @@ static int map_sg(struct device *dev, struct scatterlist *sglist,
1122 goto unmap; 1128 goto unmap;
1123 } 1129 }
1124 1130
1125 if (unlikely(iommu->need_sync)) 1131 iommu_completion_wait(iommu);
1126 iommu_completion_wait(iommu);
1127 1132
1128out: 1133out:
1129 spin_unlock_irqrestore(&domain->lock, flags); 1134 spin_unlock_irqrestore(&domain->lock, flags);
@@ -1168,8 +1173,7 @@ static void unmap_sg(struct device *dev, struct scatterlist *sglist,
1168 s->dma_address = s->dma_length = 0; 1173 s->dma_address = s->dma_length = 0;
1169 } 1174 }
1170 1175
1171 if (unlikely(iommu->need_sync)) 1176 iommu_completion_wait(iommu);
1172 iommu_completion_wait(iommu);
1173 1177
1174 spin_unlock_irqrestore(&domain->lock, flags); 1178 spin_unlock_irqrestore(&domain->lock, flags);
1175} 1179}
@@ -1220,8 +1224,7 @@ static void *alloc_coherent(struct device *dev, size_t size,
1220 goto out; 1224 goto out;
1221 } 1225 }
1222 1226
1223 if (unlikely(iommu->need_sync)) 1227 iommu_completion_wait(iommu);
1224 iommu_completion_wait(iommu);
1225 1228
1226out: 1229out:
1227 spin_unlock_irqrestore(&domain->lock, flags); 1230 spin_unlock_irqrestore(&domain->lock, flags);
@@ -1252,8 +1255,7 @@ static void free_coherent(struct device *dev, size_t size,
1252 1255
1253 __unmap_single(iommu, domain->priv, dma_addr, size, DMA_BIDIRECTIONAL); 1256 __unmap_single(iommu, domain->priv, dma_addr, size, DMA_BIDIRECTIONAL);
1254 1257
1255 if (unlikely(iommu->need_sync)) 1258 iommu_completion_wait(iommu);
1256 iommu_completion_wait(iommu);
1257 1259
1258 spin_unlock_irqrestore(&domain->lock, flags); 1260 spin_unlock_irqrestore(&domain->lock, flags);
1259 1261
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
index 0cdcda35a05f..30ae2701b3df 100644
--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -121,7 +121,7 @@ u16 amd_iommu_last_bdf; /* largest PCI device id we have
121LIST_HEAD(amd_iommu_unity_map); /* a list of required unity mappings 121LIST_HEAD(amd_iommu_unity_map); /* a list of required unity mappings
122 we find in ACPI */ 122 we find in ACPI */
123unsigned amd_iommu_aperture_order = 26; /* size of aperture in power of 2 */ 123unsigned amd_iommu_aperture_order = 26; /* size of aperture in power of 2 */
124int amd_iommu_isolate; /* if 1, device isolation is enabled */ 124int amd_iommu_isolate = 1; /* if 1, device isolation is enabled */
125bool amd_iommu_unmap_flush; /* if true, flush on every unmap */ 125bool amd_iommu_unmap_flush; /* if true, flush on every unmap */
126 126
127LIST_HEAD(amd_iommu_list); /* list of all AMD IOMMUs in the 127LIST_HEAD(amd_iommu_list); /* list of all AMD IOMMUs in the
@@ -1213,7 +1213,9 @@ static int __init parse_amd_iommu_options(char *str)
1213 for (; *str; ++str) { 1213 for (; *str; ++str) {
1214 if (strncmp(str, "isolate", 7) == 0) 1214 if (strncmp(str, "isolate", 7) == 0)
1215 amd_iommu_isolate = 1; 1215 amd_iommu_isolate = 1;
1216 if (strncmp(str, "fullflush", 11) == 0) 1216 if (strncmp(str, "share", 5) == 0)
1217 amd_iommu_isolate = 0;
1218 if (strncmp(str, "fullflush", 9) == 0)
1217 amd_iommu_unmap_flush = true; 1219 amd_iommu_unmap_flush = true;
1218 } 1220 }
1219 1221
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/ds.c b/arch/x86/kernel/ds.c
index 2b69994fd3a8..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,18 +225,16 @@ 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 context = kzalloc(sizeof(*context), GFP_KERNEL); 237 context = kzalloc(sizeof(*context), GFP_KERNEL);
240
241 if (!context) 238 if (!context)
242 return NULL; 239 return NULL;
243 240
@@ -247,18 +244,27 @@ static inline struct ds_context *ds_alloc_context(struct task_struct *task)
247 return NULL; 244 return NULL;
248 } 245 }
249 246
250 *p_context = context; 247 spin_lock_irqsave(&ds_lock, irq);
251 248
252 context->this = p_context; 249 if (*p_context) {
253 context->task = task; 250 kfree(context->ds);
251 kfree(context);
252
253 context = *p_context;
254 } else {
255 *p_context = context;
254 256
255 if (task) 257 context->this = p_context;
256 set_tsk_thread_flag(task, TIF_DS_AREA_MSR); 258 context->task = task;
257 259
258 if (!task || (task == current)) 260 if (task)
259 wrmsr(MSR_IA32_DS_AREA, (unsigned long)context->ds, 0); 261 set_tsk_thread_flag(task, TIF_DS_AREA_MSR);
260 262
261 get_tracer(task); 263 if (!task || (task == current))
264 wrmsrl(MSR_IA32_DS_AREA,
265 (unsigned long)context->ds);
266 }
267 spin_unlock_irqrestore(&ds_lock, irq);
262 } 268 }
263 269
264 context->count++; 270 context->count++;
@@ -272,10 +278,12 @@ static inline struct ds_context *ds_alloc_context(struct task_struct *task)
272 */ 278 */
273static inline void ds_put_context(struct ds_context *context) 279static inline void ds_put_context(struct ds_context *context)
274{ 280{
281 unsigned long irq;
282
275 if (!context) 283 if (!context)
276 return; 284 return;
277 285
278 spin_lock(&ds_lock); 286 spin_lock_irqsave(&ds_lock, irq);
279 287
280 if (--context->count) 288 if (--context->count)
281 goto out; 289 goto out;
@@ -297,7 +305,7 @@ static inline void ds_put_context(struct ds_context *context)
297 kfree(context->ds); 305 kfree(context->ds);
298 kfree(context); 306 kfree(context);
299 out: 307 out:
300 spin_unlock(&ds_lock); 308 spin_unlock_irqrestore(&ds_lock, irq);
301} 309}
302 310
303 311
@@ -368,6 +376,7 @@ static int ds_request(struct task_struct *task, void *base, size_t size,
368 struct ds_context *context; 376 struct ds_context *context;
369 unsigned long buffer, adj; 377 unsigned long buffer, adj;
370 const unsigned long alignment = (1 << 3); 378 const unsigned long alignment = (1 << 3);
379 unsigned long irq;
371 int error = 0; 380 int error = 0;
372 381
373 if (!ds_cfg.sizeof_ds) 382 if (!ds_cfg.sizeof_ds)
@@ -382,25 +391,27 @@ static int ds_request(struct task_struct *task, void *base, size_t size,
382 return -EOPNOTSUPP; 391 return -EOPNOTSUPP;
383 392
384 393
385 spin_lock(&ds_lock);
386
387 if (!check_tracer(task))
388 return -EPERM;
389
390 error = -ENOMEM;
391 context = ds_alloc_context(task); 394 context = ds_alloc_context(task);
392 if (!context) 395 if (!context)
396 return -ENOMEM;
397
398 spin_lock_irqsave(&ds_lock, irq);
399
400 error = -EPERM;
401 if (!check_tracer(task))
393 goto out_unlock; 402 goto out_unlock;
394 403
404 get_tracer(task);
405
395 error = -EALREADY; 406 error = -EALREADY;
396 if (context->owner[qual] == current) 407 if (context->owner[qual] == current)
397 goto out_unlock; 408 goto out_put_tracer;
398 error = -EPERM; 409 error = -EPERM;
399 if (context->owner[qual] != NULL) 410 if (context->owner[qual] != NULL)
400 goto out_unlock; 411 goto out_put_tracer;
401 context->owner[qual] = current; 412 context->owner[qual] = current;
402 413
403 spin_unlock(&ds_lock); 414 spin_unlock_irqrestore(&ds_lock, irq);
404 415
405 416
406 error = -ENOMEM; 417 error = -ENOMEM;
@@ -448,10 +459,17 @@ static int ds_request(struct task_struct *task, void *base, size_t size,
448 out_release: 459 out_release:
449 context->owner[qual] = NULL; 460 context->owner[qual] = NULL;
450 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);
451 return error; 469 return error;
452 470
453 out_unlock: 471 out_unlock:
454 spin_unlock(&ds_lock); 472 spin_unlock_irqrestore(&ds_lock, irq);
455 ds_put_context(context); 473 ds_put_context(context);
456 return error; 474 return error;
457} 475}
@@ -801,13 +819,21 @@ static const struct ds_configuration ds_cfg_var = {
801 .sizeof_ds = sizeof(long) * 12, 819 .sizeof_ds = sizeof(long) * 12,
802 .sizeof_field = sizeof(long), 820 .sizeof_field = sizeof(long),
803 .sizeof_rec[ds_bts] = sizeof(long) * 3, 821 .sizeof_rec[ds_bts] = sizeof(long) * 3,
822#ifdef __i386__
804 .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
805}; 827};
806static const struct ds_configuration ds_cfg_64 = { 828static const struct ds_configuration ds_cfg_64 = {
807 .sizeof_ds = 8 * 12, 829 .sizeof_ds = 8 * 12,
808 .sizeof_field = 8, 830 .sizeof_field = 8,
809 .sizeof_rec[ds_bts] = 8 * 3, 831 .sizeof_rec[ds_bts] = 8 * 3,
832#ifdef __i386__
810 .sizeof_rec[ds_pebs] = 8 * 10 833 .sizeof_rec[ds_pebs] = 8 * 10
834#else
835 .sizeof_rec[ds_pebs] = 8 * 18
836#endif
811}; 837};
812 838
813static inline void 839static inline void
@@ -861,4 +887,3 @@ void ds_free(struct ds_context *context)
861 while (leftovers--) 887 while (leftovers--)
862 ds_put_context(context); 888 ds_put_context(context);
863} 889}
864#endif /* CONFIG_X86_DS */
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index 3ce029ffaa55..1b894b72c0f5 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -188,20 +188,6 @@ static void __init ati_bugs_contd(int num, int slot, int func)
188} 188}
189#endif 189#endif
190 190
191#ifdef CONFIG_DMAR
192static void __init intel_g33_dmar(int num, int slot, int func)
193{
194 struct acpi_table_header *dmar_tbl;
195 acpi_status status;
196
197 status = acpi_get_table(ACPI_SIG_DMAR, 0, &dmar_tbl);
198 if (ACPI_SUCCESS(status)) {
199 printk(KERN_INFO "BIOS BUG: DMAR advertised on Intel G31/G33 chipset -- ignoring\n");
200 dmar_disabled = 1;
201 }
202}
203#endif
204
205#define QFLAG_APPLY_ONCE 0x1 191#define QFLAG_APPLY_ONCE 0x1
206#define QFLAG_APPLIED 0x2 192#define QFLAG_APPLIED 0x2
207#define QFLAG_DONE (QFLAG_APPLY_ONCE|QFLAG_APPLIED) 193#define QFLAG_DONE (QFLAG_APPLY_ONCE|QFLAG_APPLIED)
@@ -225,10 +211,6 @@ static struct chipset early_qrk[] __initdata = {
225 PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs }, 211 PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs },
226 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS, 212 { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
227 PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs_contd }, 213 PCI_CLASS_SERIAL_SMBUS, PCI_ANY_ID, 0, ati_bugs_contd },
228#ifdef CONFIG_DMAR
229 { PCI_VENDOR_ID_INTEL, 0x29c0,
230 PCI_CLASS_BRIDGE_HOST, PCI_ANY_ID, 0, intel_g33_dmar },
231#endif
232 {} 214 {}
233}; 215};
234 216
diff --git a/arch/x86/kernel/es7000_32.c b/arch/x86/kernel/es7000_32.c
index f454c78fcef6..0aa2c443d600 100644
--- a/arch/x86/kernel/es7000_32.c
+++ b/arch/x86/kernel/es7000_32.c
@@ -250,31 +250,24 @@ int __init find_unisys_acpi_oem_table(unsigned long *oem_addr)
250{ 250{
251 struct acpi_table_header *header = NULL; 251 struct acpi_table_header *header = NULL;
252 int i = 0; 252 int i = 0;
253 acpi_size tbl_size;
254 253
255 while (ACPI_SUCCESS(acpi_get_table_with_size("OEM1", i++, &header, &tbl_size))) { 254 while (ACPI_SUCCESS(acpi_get_table("OEM1", i++, &header))) {
256 if (!memcmp((char *) &header->oem_id, "UNISYS", 6)) { 255 if (!memcmp((char *) &header->oem_id, "UNISYS", 6)) {
257 struct oem_table *t = (struct oem_table *)header; 256 struct oem_table *t = (struct oem_table *)header;
258 257
259 oem_addrX = t->OEMTableAddr; 258 oem_addrX = t->OEMTableAddr;
260 oem_size = t->OEMTableSize; 259 oem_size = t->OEMTableSize;
261 early_acpi_os_unmap_memory(header, tbl_size);
262 260
263 *oem_addr = (unsigned long)__acpi_map_table(oem_addrX, 261 *oem_addr = (unsigned long)__acpi_map_table(oem_addrX,
264 oem_size); 262 oem_size);
265 return 0; 263 return 0;
266 } 264 }
267 early_acpi_os_unmap_memory(header, tbl_size);
268 } 265 }
269 return -1; 266 return -1;
270} 267}
271 268
272void __init unmap_unisys_acpi_oem_table(unsigned long oem_addr) 269void __init unmap_unisys_acpi_oem_table(unsigned long oem_addr)
273{ 270{
274 if (!oem_addr)
275 return;
276
277 __acpi_unmap_table((char *)oem_addr, oem_size);
278} 271}
279#endif 272#endif
280 273
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 77017e834cf7..067d8de913f6 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -322,7 +322,7 @@ static int hpet_next_event(unsigned long delta,
322 * what we wrote hit the chip before we compare it to the 322 * what we wrote hit the chip before we compare it to the
323 * counter. 323 * counter.
324 */ 324 */
325 WARN_ON((u32)hpet_readl(HPET_T0_CMP) != cnt); 325 WARN_ON_ONCE((u32)hpet_readl(HPET_Tn_CMP(timer)) != cnt);
326 326
327 return (s32)((u32)hpet_readl(HPET_COUNTER) - cnt) >= 0 ? -ETIME : 0; 327 return (s32)((u32)hpet_readl(HPET_COUNTER) - cnt) >= 0 ? -ETIME : 0;
328} 328}
@@ -445,7 +445,7 @@ static int hpet_setup_irq(struct hpet_dev *dev)
445{ 445{
446 446
447 if (request_irq(dev->irq, hpet_interrupt_handler, 447 if (request_irq(dev->irq, hpet_interrupt_handler,
448 IRQF_SHARED|IRQF_NOBALANCING, dev->name, dev)) 448 IRQF_DISABLED|IRQF_NOBALANCING, dev->name, dev))
449 return -1; 449 return -1;
450 450
451 disable_irq(dev->irq); 451 disable_irq(dev->irq);
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 b764d7429c61..9043251210fb 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -1140,6 +1140,20 @@ static void __clear_irq_vector(int irq)
1140 1140
1141 cfg->vector = 0; 1141 cfg->vector = 0;
1142 cpus_clear(cfg->domain); 1142 cpus_clear(cfg->domain);
1143
1144 if (likely(!cfg->move_in_progress))
1145 return;
1146 cpus_and(mask, cfg->old_domain, cpu_online_map);
1147 for_each_cpu_mask_nr(cpu, mask) {
1148 for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS;
1149 vector++) {
1150 if (per_cpu(vector_irq, cpu)[vector] != irq)
1151 continue;
1152 per_cpu(vector_irq, cpu)[vector] = -1;
1153 break;
1154 }
1155 }
1156 cfg->move_in_progress = 0;
1143} 1157}
1144 1158
1145void __setup_vector_irq(int cpu) 1159void __setup_vector_irq(int cpu)
@@ -3594,25 +3608,7 @@ int __init io_apic_get_redir_entries (int ioapic)
3594 3608
3595int __init probe_nr_irqs(void) 3609int __init probe_nr_irqs(void)
3596{ 3610{
3597 int idx; 3611 return NR_IRQS;
3598 int nr = 0;
3599#ifndef CONFIG_XEN
3600 int nr_min = 32;
3601#else
3602 int nr_min = NR_IRQS;
3603#endif
3604
3605 for (idx = 0; idx < nr_ioapics; idx++)
3606 nr += io_apic_get_redir_entries(idx) + 1;
3607
3608 /* double it for hotplug and msi and nmi */
3609 nr <<= 1;
3610
3611 /* something wrong ? */
3612 if (nr < nr_min)
3613 nr = nr_min;
3614
3615 return nr;
3616} 3612}
3617 3613
3618/* -------------------------------------------------------------------------- 3614/* --------------------------------------------------------------------------
@@ -3759,7 +3755,9 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity)
3759void __init setup_ioapic_dest(void) 3755void __init setup_ioapic_dest(void)
3760{ 3756{
3761 int pin, ioapic, irq, irq_entry; 3757 int pin, ioapic, irq, irq_entry;
3758 struct irq_desc *desc;
3762 struct irq_cfg *cfg; 3759 struct irq_cfg *cfg;
3760 cpumask_t mask;
3763 3761
3764 if (skip_ioapic_setup == 1) 3762 if (skip_ioapic_setup == 1)
3765 return; 3763 return;
@@ -3776,16 +3774,30 @@ void __init setup_ioapic_dest(void)
3776 * cpu is online. 3774 * cpu is online.
3777 */ 3775 */
3778 cfg = irq_cfg(irq); 3776 cfg = irq_cfg(irq);
3779 if (!cfg->vector) 3777 if (!cfg->vector) {
3780 setup_IO_APIC_irq(ioapic, pin, irq, 3778 setup_IO_APIC_irq(ioapic, pin, irq,
3781 irq_trigger(irq_entry), 3779 irq_trigger(irq_entry),
3782 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
3783#ifdef CONFIG_INTR_REMAP 3795#ifdef CONFIG_INTR_REMAP
3784 else if (intr_remapping_enabled) 3796 if (intr_remapping_enabled)
3785 set_ir_ioapic_affinity_irq(irq, TARGET_CPUS); 3797 set_ir_ioapic_affinity_irq(irq, mask);
3786#endif
3787 else 3798 else
3788 set_ioapic_affinity_irq(irq, TARGET_CPUS); 3799#endif
3800 set_ioapic_affinity_irq(irq, mask);
3789 } 3801 }
3790 3802
3791 } 3803 }
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 774ac4991568..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 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/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..ba7ad83e20a8 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
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index f4c93f1cfc19..cc5a2545dd41 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -29,11 +29,7 @@ EXPORT_SYMBOL(pm_power_off);
29 29
30static const struct desc_ptr no_idt = {}; 30static const struct desc_ptr no_idt = {};
31static int reboot_mode; 31static int reboot_mode;
32/* 32enum reboot_type reboot_type = BOOT_KBD;
33 * Keyboard reset and triple fault may result in INIT, not RESET, which
34 * doesn't work when we're in vmx root mode. Try ACPI first.
35 */
36enum reboot_type reboot_type = BOOT_ACPI;
37int reboot_force; 33int reboot_force;
38 34
39#if defined(CONFIG_X86_32) && defined(CONFIG_SMP) 35#if defined(CONFIG_X86_32) && defined(CONFIG_SMP)
@@ -173,6 +169,15 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
173 DMI_MATCH(DMI_BOARD_NAME, "0KW626"), 169 DMI_MATCH(DMI_BOARD_NAME, "0KW626"),
174 }, 170 },
175 }, 171 },
172 { /* Handle problems with rebooting on Dell Optiplex 330 with 0KP561 */
173 .callback = set_bios_reboot,
174 .ident = "Dell OptiPlex 330",
175 .matches = {
176 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
177 DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 330"),
178 DMI_MATCH(DMI_BOARD_NAME, "0KP561"),
179 },
180 },
176 { /* Handle problems with rebooting on Dell 2400's */ 181 { /* Handle problems with rebooting on Dell 2400's */
177 .callback = set_bios_reboot, 182 .callback = set_bios_reboot,
178 .ident = "Dell PowerEdge 2400", 183 .ident = "Dell PowerEdge 2400",
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 0fa6790c1dd3..bdec76e55594 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -764,7 +764,7 @@ static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
764 .callback = dmi_low_memory_corruption, 764 .callback = dmi_low_memory_corruption,
765 .ident = "Phoenix BIOS", 765 .ident = "Phoenix BIOS",
766 .matches = { 766 .matches = {
767 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"), 767 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies"),
768 }, 768 },
769 }, 769 },
770#endif 770#endif
@@ -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/tlb_32.c b/arch/x86/kernel/tlb_32.c
index e00534b33534..f4049f3513b6 100644
--- a/arch/x86/kernel/tlb_32.c
+++ b/arch/x86/kernel/tlb_32.c
@@ -154,6 +154,12 @@ void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm,
154 flush_mm = mm; 154 flush_mm = mm;
155 flush_va = va; 155 flush_va = va;
156 cpus_or(flush_cpumask, cpumask, flush_cpumask); 156 cpus_or(flush_cpumask, cpumask, flush_cpumask);
157
158 /*
159 * Make the above memory operations globally visible before
160 * sending the IPI.
161 */
162 smp_mb();
157 /* 163 /*
158 * We have to send the IPI only to 164 * We have to send the IPI only to
159 * CPUs affected. 165 * CPUs affected.
diff --git a/arch/x86/kernel/tlb_64.c b/arch/x86/kernel/tlb_64.c
index dcbf7a1159ea..8f919ca69494 100644
--- a/arch/x86/kernel/tlb_64.c
+++ b/arch/x86/kernel/tlb_64.c
@@ -183,6 +183,11 @@ void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm,
183 cpus_or(f->flush_cpumask, cpumask, f->flush_cpumask); 183 cpus_or(f->flush_cpumask, cpumask, f->flush_cpumask);
184 184
185 /* 185 /*
186 * Make the above memory operations globally visible before
187 * sending the IPI.
188 */
189 smp_mb();
190 /*
186 * We have to send the IPI only to 191 * We have to send the IPI only to
187 * CPUs affected. 192 * CPUs affected.
188 */ 193 */
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 62348e4fd8d1..424093b157d3 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -55,7 +55,7 @@ u64 native_sched_clock(void)
55 rdtscll(this_offset); 55 rdtscll(this_offset);
56 56
57 /* return the value in ns */ 57 /* return the value in ns */
58 return cycles_2_ns(this_offset); 58 return __cycles_2_ns(this_offset);
59} 59}
60 60
61/* We need to define a real function for sched_clock, to override the 61/* We need to define a real function for sched_clock, to override the
@@ -813,10 +813,6 @@ void __init tsc_init(void)
813 cpu_khz = calibrate_cpu(); 813 cpu_khz = calibrate_cpu();
814#endif 814#endif
815 815
816 lpj = ((u64)tsc_khz * 1000);
817 do_div(lpj, HZ);
818 lpj_fine = lpj;
819
820 printk("Detected %lu.%03lu MHz processor.\n", 816 printk("Detected %lu.%03lu MHz processor.\n",
821 (unsigned long)cpu_khz / 1000, 817 (unsigned long)cpu_khz / 1000,
822 (unsigned long)cpu_khz % 1000); 818 (unsigned long)cpu_khz % 1000);
@@ -836,6 +832,10 @@ void __init tsc_init(void)
836 /* now allow native_sched_clock() to use rdtsc */ 832 /* now allow native_sched_clock() to use rdtsc */
837 tsc_disabled = 0; 833 tsc_disabled = 0;
838 834
835 lpj = ((u64)tsc_khz * 1000);
836 do_div(lpj, HZ);
837 lpj_fine = lpj;
838
839 use_tsc_delay(); 839 use_tsc_delay();
840 /* Check and install the TSC clocksource */ 840 /* Check and install the TSC clocksource */
841 dmi_check_system(bad_tsc_dmi_table); 841 dmi_check_system(bad_tsc_dmi_table);
diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c
index 9ffb01c31c40..1c0dfbca87c1 100644
--- a/arch/x86/kernel/tsc_sync.c
+++ b/arch/x86/kernel/tsc_sync.c
@@ -46,7 +46,9 @@ static __cpuinit void check_tsc_warp(void)
46 cycles_t start, now, prev, end; 46 cycles_t start, now, prev, end;
47 int i; 47 int i;
48 48
49 rdtsc_barrier();
49 start = get_cycles(); 50 start = get_cycles();
51 rdtsc_barrier();
50 /* 52 /*
51 * The measurement runs for 20 msecs: 53 * The measurement runs for 20 msecs:
52 */ 54 */
@@ -61,7 +63,9 @@ static __cpuinit void check_tsc_warp(void)
61 */ 63 */
62 __raw_spin_lock(&sync_lock); 64 __raw_spin_lock(&sync_lock);
63 prev = last_tsc; 65 prev = last_tsc;
66 rdtsc_barrier();
64 now = get_cycles(); 67 now = get_cycles();
68 rdtsc_barrier();
65 last_tsc = now; 69 last_tsc = now;
66 __raw_spin_unlock(&sync_lock); 70 __raw_spin_unlock(&sync_lock);
67 71
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/Kconfig b/arch/x86/kvm/Kconfig
index ce3251ce5504..b81125f0bdee 100644
--- a/arch/x86/kvm/Kconfig
+++ b/arch/x86/kvm/Kconfig
@@ -20,6 +20,8 @@ if VIRTUALIZATION
20config KVM 20config KVM
21 tristate "Kernel-based Virtual Machine (KVM) support" 21 tristate "Kernel-based Virtual Machine (KVM) support"
22 depends on HAVE_KVM 22 depends on HAVE_KVM
23 # for device assignment:
24 depends on PCI
23 select PREEMPT_NOTIFIERS 25 select PREEMPT_NOTIFIERS
24 select MMU_NOTIFIER 26 select MMU_NOTIFIER
25 select ANON_INODES 27 select ANON_INODES
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index 8772dc946823..59ebd37ad79e 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -548,8 +548,10 @@ struct kvm_pit *kvm_create_pit(struct kvm *kvm)
548 mutex_lock(&kvm->lock); 548 mutex_lock(&kvm->lock);
549 pit->irq_source_id = kvm_request_irq_source_id(kvm); 549 pit->irq_source_id = kvm_request_irq_source_id(kvm);
550 mutex_unlock(&kvm->lock); 550 mutex_unlock(&kvm->lock);
551 if (pit->irq_source_id < 0) 551 if (pit->irq_source_id < 0) {
552 kfree(pit);
552 return NULL; 553 return NULL;
554 }
553 555
554 mutex_init(&pit->pit_state.lock); 556 mutex_init(&pit->pit_state.lock);
555 mutex_lock(&pit->pit_state.lock); 557 mutex_lock(&pit->pit_state.lock);
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 2a5e64881d9b..410ddbc1aa2e 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -314,7 +314,7 @@ static int mmu_topup_memory_caches(struct kvm_vcpu *vcpu)
314 if (r) 314 if (r)
315 goto out; 315 goto out;
316 r = mmu_topup_memory_cache(&vcpu->arch.mmu_rmap_desc_cache, 316 r = mmu_topup_memory_cache(&vcpu->arch.mmu_rmap_desc_cache,
317 rmap_desc_cache, 1); 317 rmap_desc_cache, 4);
318 if (r) 318 if (r)
319 goto out; 319 goto out;
320 r = mmu_topup_memory_cache_page(&vcpu->arch.mmu_page_cache, 8); 320 r = mmu_topup_memory_cache_page(&vcpu->arch.mmu_page_cache, 8);
@@ -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 2643b430d83a..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 {
@@ -3564,7 +3566,8 @@ static int __init vmx_init(void)
3564 bypass_guest_pf = 0; 3566 bypass_guest_pf = 0;
3565 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK | 3567 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
3566 VMX_EPT_WRITABLE_MASK | 3568 VMX_EPT_WRITABLE_MASK |
3567 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT); 3569 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT |
3570 VMX_EPT_IGMT_BIT);
3568 kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull, 3571 kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull,
3569 VMX_EPT_EXECUTABLE_MASK); 3572 VMX_EPT_EXECUTABLE_MASK);
3570 kvm_enable_tdp(); 3573 kvm_enable_tdp();
diff --git a/arch/x86/kvm/vmx.h b/arch/x86/kvm/vmx.h
index 3e010d21fdd7..ec5edc339da6 100644
--- a/arch/x86/kvm/vmx.h
+++ b/arch/x86/kvm/vmx.h
@@ -352,6 +352,7 @@ enum vmcs_field {
352#define VMX_EPT_READABLE_MASK 0x1ull 352#define VMX_EPT_READABLE_MASK 0x1ull
353#define VMX_EPT_WRITABLE_MASK 0x2ull 353#define VMX_EPT_WRITABLE_MASK 0x2ull
354#define VMX_EPT_EXECUTABLE_MASK 0x4ull 354#define VMX_EPT_EXECUTABLE_MASK 0x4ull
355#define VMX_EPT_IGMT_BIT (1ull << 6)
355 356
356#define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul 357#define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul
357 358
diff --git a/arch/x86/mach-voyager/setup.c b/arch/x86/mach-voyager/setup.c
index 6bbdd633864c..a580b9562e76 100644
--- a/arch/x86/mach-voyager/setup.c
+++ b/arch/x86/mach-voyager/setup.c
@@ -27,7 +27,7 @@ static struct irqaction irq2 = {
27void __init intr_init_hook(void) 27void __init intr_init_hook(void)
28{ 28{
29#ifdef CONFIG_SMP 29#ifdef CONFIG_SMP
30 smp_intr_init(); 30 voyager_smp_intr_init();
31#endif 31#endif
32 32
33 setup_irq(2, &irq2); 33 setup_irq(2, &irq2);
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c
index 7f4c6af14351..52145007bd7e 100644
--- a/arch/x86/mach-voyager/voyager_smp.c
+++ b/arch/x86/mach-voyager/voyager_smp.c
@@ -7,6 +7,7 @@
7 * This file provides all the same external entries as smp.c but uses 7 * This file provides all the same external entries as smp.c but uses
8 * the voyager hal to provide the functionality 8 * the voyager hal to provide the functionality
9 */ 9 */
10#include <linux/cpu.h>
10#include <linux/module.h> 11#include <linux/module.h>
11#include <linux/mm.h> 12#include <linux/mm.h>
12#include <linux/kernel_stat.h> 13#include <linux/kernel_stat.h>
@@ -1258,7 +1259,7 @@ static void handle_vic_irq(unsigned int irq, struct irq_desc *desc)
1258#define QIC_SET_GATE(cpi, vector) \ 1259#define QIC_SET_GATE(cpi, vector) \
1259 set_intr_gate((cpi) + QIC_DEFAULT_CPI_BASE, (vector)) 1260 set_intr_gate((cpi) + QIC_DEFAULT_CPI_BASE, (vector))
1260 1261
1261void __init smp_intr_init(void) 1262void __init voyager_smp_intr_init(void)
1262{ 1263{
1263 int i; 1264 int i;
1264 1265
@@ -1790,6 +1791,17 @@ void __init smp_setup_processor_id(void)
1790 x86_write_percpu(cpu_number, hard_smp_processor_id()); 1791 x86_write_percpu(cpu_number, hard_smp_processor_id());
1791} 1792}
1792 1793
1794static void voyager_send_call_func(cpumask_t callmask)
1795{
1796 __u32 mask = cpus_addr(callmask)[0] & ~(1 << smp_processor_id());
1797 send_CPI(mask, VIC_CALL_FUNCTION_CPI);
1798}
1799
1800static void voyager_send_call_func_single(int cpu)
1801{
1802 send_CPI(1 << cpu, VIC_CALL_FUNCTION_SINGLE_CPI);
1803}
1804
1793struct smp_ops smp_ops = { 1805struct smp_ops smp_ops = {
1794 .smp_prepare_boot_cpu = voyager_smp_prepare_boot_cpu, 1806 .smp_prepare_boot_cpu = voyager_smp_prepare_boot_cpu,
1795 .smp_prepare_cpus = voyager_smp_prepare_cpus, 1807 .smp_prepare_cpus = voyager_smp_prepare_cpus,
@@ -1799,6 +1811,6 @@ struct smp_ops smp_ops = {
1799 .smp_send_stop = voyager_smp_send_stop, 1811 .smp_send_stop = voyager_smp_send_stop,
1800 .smp_send_reschedule = voyager_smp_send_reschedule, 1812 .smp_send_reschedule = voyager_smp_send_reschedule,
1801 1813
1802 .send_call_func_ipi = native_send_call_func_ipi, 1814 .send_call_func_ipi = voyager_send_call_func,
1803 .send_call_func_single_ipi = native_send_call_func_single_ipi, 1815 .send_call_func_single_ipi = voyager_send_call_func_single,
1804}; 1816};
diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
index 59f89b434b45..fea4565ff576 100644
--- a/arch/x86/mm/Makefile
+++ b/arch/x86/mm/Makefile
@@ -1,7 +1,7 @@
1obj-y := init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \ 1obj-y := init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \
2 pat.o pgtable.o gup.o 2 pat.o pgtable.o gup.o
3 3
4obj-$(CONFIG_X86_32) += pgtable_32.o 4obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o
5 5
6obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o 6obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
7obj-$(CONFIG_X86_PTDUMP) += dump_pagetables.o 7obj-$(CONFIG_X86_PTDUMP) += dump_pagetables.o
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 8396868e82c5..c483f4242079 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -334,7 +334,6 @@ int devmem_is_allowed(unsigned long pagenr)
334 return 0; 334 return 0;
335} 335}
336 336
337#ifdef CONFIG_HIGHMEM
338pte_t *kmap_pte; 337pte_t *kmap_pte;
339pgprot_t kmap_prot; 338pgprot_t kmap_prot;
340 339
@@ -357,6 +356,7 @@ static void __init kmap_init(void)
357 kmap_prot = PAGE_KERNEL; 356 kmap_prot = PAGE_KERNEL;
358} 357}
359 358
359#ifdef CONFIG_HIGHMEM
360static void __init permanent_kmaps_init(pgd_t *pgd_base) 360static void __init permanent_kmaps_init(pgd_t *pgd_base)
361{ 361{
362 unsigned long vaddr; 362 unsigned long vaddr;
@@ -436,7 +436,6 @@ static void __init set_highmem_pages_init(void)
436#endif /* !CONFIG_NUMA */ 436#endif /* !CONFIG_NUMA */
437 437
438#else 438#else
439# define kmap_init() do { } while (0)
440# define permanent_kmaps_init(pgd_base) do { } while (0) 439# define permanent_kmaps_init(pgd_base) do { } while (0)
441# define set_highmem_pages_init() do { } while (0) 440# define set_highmem_pages_init() do { } while (0)
442#endif /* CONFIG_HIGHMEM */ 441#endif /* CONFIG_HIGHMEM */
diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
new file mode 100644
index 000000000000..d0151d8ce452
--- /dev/null
+++ b/arch/x86/mm/iomap_32.c
@@ -0,0 +1,59 @@
1/*
2 * Copyright © 2008 Ingo Molnar
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
17 */
18
19#include <asm/iomap.h>
20#include <linux/module.h>
21
22/* Map 'pfn' using fixed map 'type' and protections 'prot'
23 */
24void *
25iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot)
26{
27 enum fixed_addresses idx;
28 unsigned long vaddr;
29
30 pagefault_disable();
31
32 idx = type + KM_TYPE_NR*smp_processor_id();
33 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
34 set_pte(kmap_pte-idx, pfn_pte(pfn, prot));
35 arch_flush_lazy_mmu_mode();
36
37 return (void*) vaddr;
38}
39EXPORT_SYMBOL_GPL(iomap_atomic_prot_pfn);
40
41void
42iounmap_atomic(void *kvaddr, enum km_type type)
43{
44 unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK;
45 enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id();
46
47 /*
48 * Force other mappings to Oops if they'll try to access this pte
49 * without first remap it. Keeping stale mappings around is a bad idea
50 * also, in case the page changes cacheability attributes or becomes
51 * a protected page in a hypervisor.
52 */
53 if (vaddr == __fix_to_virt(FIX_KMAP_BEGIN+idx))
54 kpte_clear_flush(kmap_pte-idx, vaddr);
55
56 arch_flush_lazy_mmu_mode();
57 pagefault_enable();
58}
59EXPORT_SYMBOL_GPL(iounmap_atomic);
diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c
index 847c164725f4..8518c678d83f 100644
--- a/arch/x86/mm/numa_32.c
+++ b/arch/x86/mm/numa_32.c
@@ -222,6 +222,41 @@ static void __init remap_numa_kva(void)
222 } 222 }
223} 223}
224 224
225#ifdef CONFIG_HIBERNATION
226/**
227 * resume_map_numa_kva - add KVA mapping to the temporary page tables created
228 * during resume from hibernation
229 * @pgd_base - temporary resume page directory
230 */
231void resume_map_numa_kva(pgd_t *pgd_base)
232{
233 int node;
234
235 for_each_online_node(node) {
236 unsigned long start_va, start_pfn, size, pfn;
237
238 start_va = (unsigned long)node_remap_start_vaddr[node];
239 start_pfn = node_remap_start_pfn[node];
240 size = node_remap_size[node];
241
242 printk(KERN_DEBUG "%s: node %d\n", __FUNCTION__, node);
243
244 for (pfn = 0; pfn < size; pfn += PTRS_PER_PTE) {
245 unsigned long vaddr = start_va + (pfn << PAGE_SHIFT);
246 pgd_t *pgd = pgd_base + pgd_index(vaddr);
247 pud_t *pud = pud_offset(pgd, vaddr);
248 pmd_t *pmd = pmd_offset(pud, vaddr);
249
250 set_pmd(pmd, pfn_pmd(start_pfn + pfn,
251 PAGE_KERNEL_LARGE_EXEC));
252
253 printk(KERN_DEBUG "%s: %08lx -> pfn %08lx\n",
254 __FUNCTION__, vaddr, start_pfn + pfn);
255 }
256 }
257}
258#endif
259
225static unsigned long calculate_numa_remap_pages(void) 260static unsigned long calculate_numa_remap_pages(void)
226{ 261{
227 int nid; 262 int nid;
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index f1dc1b75d166..e89d24815f26 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -67,18 +67,18 @@ static void split_page_count(int level)
67 67
68void arch_report_meminfo(struct seq_file *m) 68void arch_report_meminfo(struct seq_file *m)
69{ 69{
70 seq_printf(m, "DirectMap4k: %8lu kB\n", 70 seq_printf(m, "DirectMap4k: %8lu kB\n",
71 direct_pages_count[PG_LEVEL_4K] << 2); 71 direct_pages_count[PG_LEVEL_4K] << 2);
72#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) 72#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
73 seq_printf(m, "DirectMap2M: %8lu kB\n", 73 seq_printf(m, "DirectMap2M: %8lu kB\n",
74 direct_pages_count[PG_LEVEL_2M] << 11); 74 direct_pages_count[PG_LEVEL_2M] << 11);
75#else 75#else
76 seq_printf(m, "DirectMap4M: %8lu kB\n", 76 seq_printf(m, "DirectMap4M: %8lu kB\n",
77 direct_pages_count[PG_LEVEL_2M] << 12); 77 direct_pages_count[PG_LEVEL_2M] << 12);
78#endif 78#endif
79#ifdef CONFIG_X86_64 79#ifdef CONFIG_X86_64
80 if (direct_gbpages) 80 if (direct_gbpages)
81 seq_printf(m, "DirectMap1G: %8lu kB\n", 81 seq_printf(m, "DirectMap1G: %8lu kB\n",
82 direct_pages_count[PG_LEVEL_1G] << 20); 82 direct_pages_count[PG_LEVEL_1G] << 20);
83#endif 83#endif
84} 84}
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 0620d6d45f7d..e9f80c744cf3 100644
--- a/arch/x86/oprofile/op_model_ppro.c
+++ b/arch/x86/oprofile/op_model_ppro.c
@@ -27,8 +27,7 @@ static int num_counters = 2;
27static int counter_width = 32; 27static int counter_width = 32;
28 28
29#define CTR_IS_RESERVED(msrs, c) (msrs->counters[(c)].addr ? 1 : 0) 29#define CTR_IS_RESERVED(msrs, c) (msrs->counters[(c)].addr ? 1 : 0)
30#define CTR_READ(l, h, msrs, c) do {rdmsr(msrs->counters[(c)].addr, (l), (h)); } while (0) 30#define CTR_OVERFLOWED(n) (!((n) & (1ULL<<(counter_width-1))))
31#define CTR_OVERFLOWED(n) (!((n) & (1U<<(counter_width-1))))
32 31
33#define CTRL_IS_RESERVED(msrs, c) (msrs->controls[(c)].addr ? 1 : 0) 32#define CTRL_IS_RESERVED(msrs, c) (msrs->controls[(c)].addr ? 1 : 0)
34#define CTRL_READ(l, h, msrs, c) do {rdmsr((msrs->controls[(c)].addr), (l), (h)); } while (0) 33#define CTRL_READ(l, h, msrs, c) do {rdmsr((msrs->controls[(c)].addr), (l), (h)); } while (0)
@@ -70,7 +69,7 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs)
70 int i; 69 int i;
71 70
72 if (!reset_value) { 71 if (!reset_value) {
73 reset_value = kmalloc(sizeof(unsigned) * num_counters, 72 reset_value = kmalloc(sizeof(reset_value[0]) * num_counters,
74 GFP_ATOMIC); 73 GFP_ATOMIC);
75 if (!reset_value) 74 if (!reset_value)
76 return; 75 return;
@@ -124,14 +123,14 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs)
124static int ppro_check_ctrs(struct pt_regs * const regs, 123static int ppro_check_ctrs(struct pt_regs * const regs,
125 struct op_msrs const * const msrs) 124 struct op_msrs const * const msrs)
126{ 125{
127 unsigned int low, high; 126 u64 val;
128 int i; 127 int i;
129 128
130 for (i = 0 ; i < num_counters; ++i) { 129 for (i = 0 ; i < num_counters; ++i) {
131 if (!reset_value[i]) 130 if (!reset_value[i])
132 continue; 131 continue;
133 CTR_READ(low, high, msrs, i); 132 rdmsrl(msrs->counters[i].addr, val);
134 if (CTR_OVERFLOWED(low)) { 133 if (CTR_OVERFLOWED(val)) {
135 oprofile_add_sample(regs, i); 134 oprofile_add_sample(regs, i);
136 wrmsrl(msrs->counters[i].addr, -reset_value[i]); 135 wrmsrl(msrs->counters[i].addr, -reset_value[i]);
137 } 136 }
@@ -157,6 +156,8 @@ static void ppro_start(struct op_msrs const * const msrs)
157 unsigned int low, high; 156 unsigned int low, high;
158 int i; 157 int i;
159 158
159 if (!reset_value)
160 return;
160 for (i = 0; i < num_counters; ++i) { 161 for (i = 0; i < num_counters; ++i) {
161 if (reset_value[i]) { 162 if (reset_value[i]) {
162 CTRL_READ(low, high, msrs, i); 163 CTRL_READ(low, high, msrs, i);
@@ -172,6 +173,8 @@ static void ppro_stop(struct op_msrs const * const msrs)
172 unsigned int low, high; 173 unsigned int low, high;
173 int i; 174 int i;
174 175
176 if (!reset_value)
177 return;
175 for (i = 0; i < num_counters; ++i) { 178 for (i = 0; i < num_counters; ++i) {
176 if (!reset_value[i]) 179 if (!reset_value[i])
177 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/power/hibernate_32.c b/arch/x86/power/hibernate_32.c
index f2b6e3f11bfc..81197c62d5b3 100644
--- a/arch/x86/power/hibernate_32.c
+++ b/arch/x86/power/hibernate_32.c
@@ -12,6 +12,7 @@
12#include <asm/system.h> 12#include <asm/system.h>
13#include <asm/page.h> 13#include <asm/page.h>
14#include <asm/pgtable.h> 14#include <asm/pgtable.h>
15#include <asm/mmzone.h>
15 16
16/* Defined in hibernate_asm_32.S */ 17/* Defined in hibernate_asm_32.S */
17extern int restore_image(void); 18extern int restore_image(void);
@@ -127,6 +128,9 @@ static int resume_physical_mapping_init(pgd_t *pgd_base)
127 } 128 }
128 } 129 }
129 } 130 }
131
132 resume_map_numa_kva(pgd_base);
133
130 return 0; 134 return 0;
131} 135}
132 136
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index b61534c7a4c4..5e4686d70f62 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -863,15 +863,16 @@ static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn, unsigned l
863 if (PagePinned(virt_to_page(mm->pgd))) { 863 if (PagePinned(virt_to_page(mm->pgd))) {
864 SetPagePinned(page); 864 SetPagePinned(page);
865 865
866 vm_unmap_aliases();
866 if (!PageHighMem(page)) { 867 if (!PageHighMem(page)) {
867 make_lowmem_page_readonly(__va(PFN_PHYS((unsigned long)pfn))); 868 make_lowmem_page_readonly(__va(PFN_PHYS((unsigned long)pfn)));
868 if (level == PT_PTE && USE_SPLIT_PTLOCKS) 869 if (level == PT_PTE && USE_SPLIT_PTLOCKS)
869 pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn); 870 pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
870 } else 871 } else {
871 /* make sure there are no stray mappings of 872 /* make sure there are no stray mappings of
872 this page */ 873 this page */
873 kmap_flush_unused(); 874 kmap_flush_unused();
874 vm_unmap_aliases(); 875 }
875 } 876 }
876} 877}
877 878
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index aba77b2b7d18..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)
@@ -850,13 +857,16 @@ static int xen_pin_page(struct mm_struct *mm, struct page *page,
850 read-only, and can be pinned. */ 857 read-only, and can be pinned. */
851static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd) 858static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd)
852{ 859{
860 vm_unmap_aliases();
861
853 xen_mc_batch(); 862 xen_mc_batch();
854 863
855 if (xen_pgd_walk(mm, xen_pin_page, USER_LIMIT)) { 864 if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) {
856 /* re-enable interrupts for kmap_flush_unused */ 865 /* re-enable interrupts for flushing */
857 xen_mc_issue(0); 866 xen_mc_issue(0);
867
858 kmap_flush_unused(); 868 kmap_flush_unused();
859 vm_unmap_aliases(); 869
860 xen_mc_batch(); 870 xen_mc_batch();
861 } 871 }
862 872
@@ -874,7 +884,7 @@ static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd)
874#else /* CONFIG_X86_32 */ 884#else /* CONFIG_X86_32 */
875#ifdef CONFIG_X86_PAE 885#ifdef CONFIG_X86_PAE
876 /* Need to make sure unshared kernel PMD is pinnable */ 886 /* Need to make sure unshared kernel PMD is pinnable */
877 xen_pin_page(mm, virt_to_page(pgd_page(pgd[pgd_index(TASK_SIZE)])), 887 xen_pin_page(mm, pgd_page(pgd[pgd_index(TASK_SIZE)]),
878 PT_PMD); 888 PT_PMD);
879#endif 889#endif
880 xen_do_pin(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(pgd))); 890 xen_do_pin(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(pgd)));
@@ -991,11 +1001,11 @@ static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd)
991 1001
992#ifdef CONFIG_X86_PAE 1002#ifdef CONFIG_X86_PAE
993 /* Need to make sure unshared kernel PMD is unpinned */ 1003 /* Need to make sure unshared kernel PMD is unpinned */
994 xen_unpin_page(mm, virt_to_page(pgd_page(pgd[pgd_index(TASK_SIZE)])), 1004 xen_unpin_page(mm, pgd_page(pgd[pgd_index(TASK_SIZE)]),
995 PT_PMD); 1005 PT_PMD);
996#endif 1006#endif
997 1007
998 xen_pgd_walk(mm, xen_unpin_page, USER_LIMIT); 1008 __xen_pgd_walk(mm, pgd, xen_unpin_page, USER_LIMIT);
999 1009
1000 xen_mc_issue(0); 1010 xen_mc_issue(0);
1001} 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 c3df30cfb3fc..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
@@ -1770,17 +1792,17 @@ static void end_that_request_last(struct request *req, int error)
1770{ 1792{
1771 struct gendisk *disk = req->rq_disk; 1793 struct gendisk *disk = req->rq_disk;
1772 1794
1773 blk_delete_timer(req);
1774
1775 if (blk_rq_tagged(req)) 1795 if (blk_rq_tagged(req))
1776 blk_queue_end_tag(req->q, req); 1796 blk_queue_end_tag(req->q, req);
1777 1797
1778 if (blk_queued_rq(req)) 1798 if (blk_queued_rq(req))
1779 blkdev_dequeue_request(req); 1799 elv_dequeue_request(req->q, req);
1780 1800
1781 if (unlikely(laptop_mode) && blk_fs_request(req)) 1801 if (unlikely(laptop_mode) && blk_fs_request(req))
1782 laptop_io_completion(); 1802 laptop_io_completion();
1783 1803
1804 blk_delete_timer(req);
1805
1784 /* 1806 /*
1785 * Account IO completion. bar_rq isn't accounted as a normal 1807 * Account IO completion. bar_rq isn't accounted as a normal
1786 * IO on queueing nor completion. Accounting the containing 1808 * IO on queueing nor completion. Accounting the containing
diff --git a/block/blk-map.c b/block/blk-map.c
index 4849fa36161e..2990447f45e9 100644
--- a/block/blk-map.c
+++ b/block/blk-map.c
@@ -217,8 +217,14 @@ int blk_rq_map_user_iov(struct request_queue *q, struct request *rq,
217 return PTR_ERR(bio); 217 return PTR_ERR(bio);
218 218
219 if (bio->bi_size != len) { 219 if (bio->bi_size != len) {
220 /*
221 * Grab an extra reference to this bio, as bio_unmap_user()
222 * expects to be able to drop it twice as it happens on the
223 * normal IO completion path
224 */
225 bio_get(bio);
220 bio_endio(bio, 0); 226 bio_endio(bio, 0);
221 bio_unmap_user(bio); 227 __blk_rq_unmap_user(bio);
222 return -EINVAL; 228 return -EINVAL;
223 } 229 }
224 230
diff --git a/block/blk-merge.c b/block/blk-merge.c
index 8681cd6f9911..b92f5b0866b0 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -222,27 +222,6 @@ new_segment:
222} 222}
223EXPORT_SYMBOL(blk_rq_map_sg); 223EXPORT_SYMBOL(blk_rq_map_sg);
224 224
225static inline int ll_new_mergeable(struct request_queue *q,
226 struct request *req,
227 struct bio *bio)
228{
229 int nr_phys_segs = bio_phys_segments(q, bio);
230
231 if (req->nr_phys_segments + nr_phys_segs > q->max_phys_segments) {
232 req->cmd_flags |= REQ_NOMERGE;
233 if (req == q->last_merge)
234 q->last_merge = NULL;
235 return 0;
236 }
237
238 /*
239 * A hw segment is just getting larger, bump just the phys
240 * counter.
241 */
242 req->nr_phys_segments += nr_phys_segs;
243 return 1;
244}
245
246static inline int ll_new_hw_segment(struct request_queue *q, 225static inline int ll_new_hw_segment(struct request_queue *q,
247 struct request *req, 226 struct request *req,
248 struct bio *bio) 227 struct bio *bio)
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/blk-timeout.c b/block/blk-timeout.c
index 972a63f848fb..69185ea9fae2 100644
--- a/block/blk-timeout.c
+++ b/block/blk-timeout.c
@@ -75,14 +75,7 @@ void blk_delete_timer(struct request *req)
75{ 75{
76 struct request_queue *q = req->q; 76 struct request_queue *q = req->q;
77 77
78 /*
79 * Nothing to detach
80 */
81 if (!q->rq_timed_out_fn || !req->deadline)
82 return;
83
84 list_del_init(&req->timeout_list); 78 list_del_init(&req->timeout_list);
85
86 if (list_empty(&q->timeout_list)) 79 if (list_empty(&q->timeout_list))
87 del_timer(&q->timeout); 80 del_timer(&q->timeout);
88} 81}
@@ -142,7 +135,7 @@ void blk_rq_timed_out_timer(unsigned long data)
142 } 135 }
143 136
144 if (next_set && !list_empty(&q->timeout_list)) 137 if (next_set && !list_empty(&q->timeout_list))
145 mod_timer(&q->timeout, round_jiffies(next)); 138 mod_timer(&q->timeout, round_jiffies_up(next));
146 139
147 spin_unlock_irqrestore(q->queue_lock, flags); 140 spin_unlock_irqrestore(q->queue_lock, flags);
148} 141}
@@ -198,17 +191,10 @@ void blk_add_timer(struct request *req)
198 191
199 /* 192 /*
200 * If the timer isn't already pending or this timeout is earlier 193 * If the timer isn't already pending or this timeout is earlier
201 * than an existing one, modify the timer. Round to next nearest 194 * than an existing one, modify the timer. Round up to next nearest
202 * second. 195 * second.
203 */ 196 */
204 expiry = round_jiffies(req->deadline); 197 expiry = round_jiffies_up(req->deadline);
205
206 /*
207 * We use ->deadline == 0 to detect whether a timer was added or
208 * not, so just increase to next jiffy for that specific case
209 */
210 if (unlikely(!req->deadline))
211 req->deadline = 1;
212 198
213 if (!timer_pending(&q->timeout) || 199 if (!timer_pending(&q->timeout) ||
214 time_before(expiry, q->timeout.expires)) 200 time_before(expiry, q->timeout.expires))
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 59173a69ebdf..a6951f76ba0c 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -773,12 +773,6 @@ struct request *elv_next_request(struct request_queue *q)
773 */ 773 */
774 rq->cmd_flags |= REQ_STARTED; 774 rq->cmd_flags |= REQ_STARTED;
775 blk_add_trace_rq(q, rq, BLK_TA_ISSUE); 775 blk_add_trace_rq(q, rq, BLK_TA_ISSUE);
776
777 /*
778 * We are now handing the request to the hardware,
779 * add the timeout handler
780 */
781 blk_add_timer(rq);
782 } 776 }
783 777
784 if (!q->boundary_rq || q->boundary_rq == rq) { 778 if (!q->boundary_rq || q->boundary_rq == rq) {
@@ -851,7 +845,6 @@ void elv_dequeue_request(struct request_queue *q, struct request *rq)
851 if (blk_account_rq(rq)) 845 if (blk_account_rq(rq))
852 q->in_flight++; 846 q->in_flight++;
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 4e5e7493f676..2f7feda61e35 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -768,6 +768,8 @@ static int __init genhd_device_init(void)
768 bdev_map = kobj_map_init(base_probe, &block_class_lock); 768 bdev_map = kobj_map_init(base_probe, &block_class_lock);
769 blk_dev_init(); 769 blk_dev_init();
770 770
771 register_blkdev(BLOCK_EXT_MAJOR, "blkext");
772
771#ifndef CONFIG_SYSFS_DEPRECATED 773#ifndef CONFIG_SYSFS_DEPRECATED
772 /* create top-level block dir */ 774 /* create top-level block dir */
773 block_depr = kobject_create_and_add("block", NULL); 775 block_depr = kobject_create_and_add("block", NULL);
@@ -1100,6 +1102,7 @@ struct gendisk *alloc_disk_node(int minors, int node_id)
1100 kfree(disk); 1102 kfree(disk);
1101 return NULL; 1103 return NULL;
1102 } 1104 }
1105 disk->node_id = node_id;
1103 if (disk_expand_part_tbl(disk, 0)) { 1106 if (disk_expand_part_tbl(disk, 0)) {
1104 free_part_stats(&disk->part0); 1107 free_part_stats(&disk->part0);
1105 kfree(disk); 1108 kfree(disk);
@@ -1114,7 +1117,6 @@ struct gendisk *alloc_disk_node(int minors, int node_id)
1114 device_initialize(disk_to_dev(disk)); 1117 device_initialize(disk_to_dev(disk));
1115 INIT_WORK(&disk->async_notify, 1118 INIT_WORK(&disk->async_notify,
1116 media_change_notify_thread); 1119 media_change_notify_thread);
1117 disk->node_id = node_id;
1118 } 1120 }
1119 return disk; 1121 return disk;
1120} 1122}
diff --git a/block/ioctl.c b/block/ioctl.c
index c832d639b6e2..d03985b04d67 100644
--- a/block/ioctl.c
+++ b/block/ioctl.c
@@ -18,7 +18,6 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg __user
18 struct disk_part_iter piter; 18 struct disk_part_iter piter;
19 long long start, length; 19 long long start, length;
20 int partno; 20 int partno;
21 int err;
22 21
23 if (!capable(CAP_SYS_ADMIN)) 22 if (!capable(CAP_SYS_ADMIN))
24 return -EACCES; 23 return -EACCES;
@@ -61,10 +60,10 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg __user
61 disk_part_iter_exit(&piter); 60 disk_part_iter_exit(&piter);
62 61
63 /* all seems OK */ 62 /* all seems OK */
64 err = add_partition(disk, partno, start, length, 63 part = add_partition(disk, partno, start, length,
65 ADDPART_FLAG_NONE); 64 ADDPART_FLAG_NONE);
66 mutex_unlock(&bdev->bd_mutex); 65 mutex_unlock(&bdev->bd_mutex);
67 return err; 66 return IS_ERR(part) ? PTR_ERR(part) : 0;
68 case BLKPG_DEL_PARTITION: 67 case BLKPG_DEL_PARTITION:
69 part = disk_get_part(disk, partno); 68 part = disk_get_part(disk, partno);
70 if (!part) 69 if (!part)
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/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index f4f632917509..b0243fd55ac0 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -312,9 +312,13 @@ config ACPI_DEBUG
312 bool "Debug Statements" 312 bool "Debug Statements"
313 default n 313 default n
314 help 314 help
315 The ACPI driver can optionally report errors with a great deal 315 The ACPI subsystem can produce debug output. Saying Y enables this
316 of verbosity. Saying Y enables these statements. This will increase 316 output and increases the kernel size by around 50K.
317 your kernel size by around 50K. 317
318 Use the acpi.debug_layer and acpi.debug_level kernel command-line
319 parameters documented in Documentation/acpi/debug.txt and
320 Documentation/kernel-parameters.txt to control the type and
321 amount of debug output.
318 322
319config ACPI_DEBUG_FUNC_TRACE 323config ACPI_DEBUG_FUNC_TRACE
320 bool "Additionally enable ACPI function tracing" 324 bool "Additionally enable ACPI function tracing"
@@ -324,14 +328,6 @@ config ACPI_DEBUG_FUNC_TRACE
324 ACPI Debug Statements slow down ACPI processing. Function trace 328 ACPI Debug Statements slow down ACPI processing. Function trace
325 is about half of the penalty and is rarely useful. 329 is about half of the penalty and is rarely useful.
326 330
327config ACPI_EC
328 bool
329 default y
330 help
331 This driver is required on some systems for the proper operation of
332 the battery and thermal drivers. If you are compiling for a
333 mobile system, say Y.
334
335config ACPI_PCI_SLOT 331config ACPI_PCI_SLOT
336 tristate "PCI slot detection driver" 332 tristate "PCI slot detection driver"
337 default n 333 default n
@@ -341,10 +337,6 @@ config ACPI_PCI_SLOT
341 help you correlate PCI bus addresses with the physical geography 337 help you correlate PCI bus addresses with the physical geography
342 of your slots. If you are unsure, say N. 338 of your slots. If you are unsure, say N.
343 339
344config ACPI_POWER
345 bool
346 default y
347
348config ACPI_SYSTEM 340config ACPI_SYSTEM
349 bool 341 bool
350 default y 342 default y
diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
index d91c027ece8f..3c0c93300f12 100644
--- a/drivers/acpi/Makefile
+++ b/drivers/acpi/Makefile
@@ -39,19 +39,23 @@ obj-y += sleep/
39obj-y += bus.o glue.o 39obj-y += bus.o glue.o
40obj-y += scan.o 40obj-y += scan.o
41# Keep EC driver first. Initialization of others depend on it. 41# Keep EC driver first. Initialization of others depend on it.
42obj-$(CONFIG_ACPI_EC) += ec.o 42obj-y += ec.o
43obj-$(CONFIG_ACPI_AC) += ac.o 43obj-$(CONFIG_ACPI_AC) += ac.o
44obj-$(CONFIG_ACPI_BATTERY) += battery.o 44obj-$(CONFIG_ACPI_BATTERY) += battery.o
45obj-$(CONFIG_ACPI_BUTTON) += button.o 45obj-$(CONFIG_ACPI_BUTTON) += button.o
46obj-$(CONFIG_ACPI_FAN) += fan.o 46obj-$(CONFIG_ACPI_FAN) += fan.o
47obj-$(CONFIG_ACPI_DOCK) += dock.o 47obj-$(CONFIG_ACPI_DOCK) += dock.o
48obj-$(CONFIG_ACPI_VIDEO) += video.o 48obj-$(CONFIG_ACPI_VIDEO) += video.o
49ifdef CONFIG_ACPI_VIDEO
50obj-y += video_detect.o
51endif
52
49obj-y += pci_root.o pci_link.o pci_irq.o pci_bind.o 53obj-y += pci_root.o pci_link.o pci_irq.o pci_bind.o
50obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o 54obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o
51obj-$(CONFIG_ACPI_PROCESSOR) += processor.o 55obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
52obj-$(CONFIG_ACPI_CONTAINER) += container.o 56obj-$(CONFIG_ACPI_CONTAINER) += container.o
53obj-$(CONFIG_ACPI_THERMAL) += thermal.o 57obj-$(CONFIG_ACPI_THERMAL) += thermal.o
54obj-$(CONFIG_ACPI_POWER) += power.o 58obj-y += power.o
55obj-$(CONFIG_ACPI_SYSTEM) += system.o event.o 59obj-$(CONFIG_ACPI_SYSTEM) += system.o event.o
56obj-$(CONFIG_ACPI_DEBUG) += debug.o 60obj-$(CONFIG_ACPI_DEBUG) += debug.o
57obj-$(CONFIG_ACPI_NUMA) += numa.o 61obj-$(CONFIG_ACPI_NUMA) += numa.o
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index d72a1b6c8a94..9b917dac7732 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -37,7 +37,6 @@
37#include <acpi/acpi_bus.h> 37#include <acpi/acpi_bus.h>
38#include <acpi/acpi_drivers.h> 38#include <acpi/acpi_drivers.h>
39 39
40#define ACPI_AC_COMPONENT 0x00020000
41#define ACPI_AC_CLASS "ac_adapter" 40#define ACPI_AC_CLASS "ac_adapter"
42#define ACPI_AC_DEVICE_NAME "AC Adapter" 41#define ACPI_AC_DEVICE_NAME "AC Adapter"
43#define ACPI_AC_FILE_STATE "state" 42#define ACPI_AC_FILE_STATE "state"
@@ -242,7 +241,7 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
242 acpi_ac_get_state(ac); 241 acpi_ac_get_state(ac);
243 acpi_bus_generate_proc_event(device, event, (u32) ac->state); 242 acpi_bus_generate_proc_event(device, event, (u32) ac->state);
244 acpi_bus_generate_netlink_event(device->pnp.device_class, 243 acpi_bus_generate_netlink_event(device->pnp.device_class,
245 device->dev.bus_id, event, 244 dev_name(&device->dev), event,
246 (u32) ac->state); 245 (u32) ac->state);
247#ifdef CONFIG_ACPI_SYSFS_POWER 246#ifdef CONFIG_ACPI_SYSFS_POWER
248 kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE); 247 kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE);
diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c
index 71d21c51c45f..63a17b55b39b 100644
--- a/drivers/acpi/acpi_memhotplug.c
+++ b/drivers/acpi/acpi_memhotplug.c
@@ -32,7 +32,6 @@
32#include <linux/memory_hotplug.h> 32#include <linux/memory_hotplug.h>
33#include <acpi/acpi_drivers.h> 33#include <acpi/acpi_drivers.h>
34 34
35#define ACPI_MEMORY_DEVICE_COMPONENT 0x08000000UL
36#define ACPI_MEMORY_DEVICE_CLASS "memory" 35#define ACPI_MEMORY_DEVICE_CLASS "memory"
37#define ACPI_MEMORY_DEVICE_HID "PNP0C80" 36#define ACPI_MEMORY_DEVICE_HID "PNP0C80"
38#define ACPI_MEMORY_DEVICE_NAME "Hotplug Mem Device" 37#define ACPI_MEMORY_DEVICE_NAME "Hotplug Mem Device"
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index b2133e89ad9a..1423b0c0cd2e 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -46,7 +46,6 @@
46 46
47#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF 47#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
48 48
49#define ACPI_BATTERY_COMPONENT 0x00040000
50#define ACPI_BATTERY_CLASS "battery" 49#define ACPI_BATTERY_CLASS "battery"
51#define ACPI_BATTERY_DEVICE_NAME "Battery" 50#define ACPI_BATTERY_DEVICE_NAME "Battery"
52#define ACPI_BATTERY_NOTIFY_STATUS 0x80 51#define ACPI_BATTERY_NOTIFY_STATUS 0x80
@@ -782,7 +781,7 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data)
782 acpi_bus_generate_proc_event(device, event, 781 acpi_bus_generate_proc_event(device, event,
783 acpi_battery_present(battery)); 782 acpi_battery_present(battery));
784 acpi_bus_generate_netlink_event(device->pnp.device_class, 783 acpi_bus_generate_netlink_event(device->pnp.device_class,
785 device->dev.bus_id, event, 784 dev_name(&device->dev), event,
786 acpi_battery_present(battery)); 785 acpi_battery_present(battery));
787#ifdef CONFIG_ACPI_SYSFS_POWER 786#ifdef CONFIG_ACPI_SYSFS_POWER
788 /* acpi_batter_update could remove power_supply object */ 787 /* acpi_batter_update could remove power_supply object */
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 c797c6473f31..7edf6d913c13 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -688,6 +688,14 @@ 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
691 printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION); 699 printk(KERN_INFO PREFIX "Core revision %08x\n", ACPI_CA_VERSION);
692 700
693 /* enable workarounds, unless strict ACPI spec. compliance */ 701 /* enable workarounds, unless strict ACPI spec. compliance */
@@ -774,7 +782,7 @@ static int __init acpi_bus_init(void)
774 "Unable to initialize ACPI OS objects\n"); 782 "Unable to initialize ACPI OS objects\n");
775 goto error1; 783 goto error1;
776 } 784 }
777#ifdef CONFIG_ACPI_EC 785
778 /* 786 /*
779 * ACPI 2.0 requires the EC driver to be loaded and work before 787 * ACPI 2.0 requires the EC driver to be loaded and work before
780 * the EC device is found in the namespace (i.e. before acpi_initialize_objects() 788 * the EC device is found in the namespace (i.e. before acpi_initialize_objects()
@@ -785,7 +793,6 @@ static int __init acpi_bus_init(void)
785 */ 793 */
786 status = acpi_ec_ecdt_probe(); 794 status = acpi_ec_ecdt_probe();
787 /* Ignore result. Not having an ECDT is not fatal. */ 795 /* Ignore result. Not having an ECDT is not fatal. */
788#endif
789 796
790 status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION); 797 status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION);
791 if (ACPI_FAILURE(status)) { 798 if (ACPI_FAILURE(status)) {
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index cb046c3fc3f2..171fd914f435 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -33,7 +33,6 @@
33#include <acpi/acpi_bus.h> 33#include <acpi/acpi_bus.h>
34#include <acpi/acpi_drivers.h> 34#include <acpi/acpi_drivers.h>
35 35
36#define ACPI_BUTTON_COMPONENT 0x00080000
37#define ACPI_BUTTON_CLASS "button" 36#define ACPI_BUTTON_CLASS "button"
38#define ACPI_BUTTON_FILE_INFO "info" 37#define ACPI_BUTTON_FILE_INFO "info"
39#define ACPI_BUTTON_FILE_STATE "state" 38#define ACPI_BUTTON_FILE_STATE "state"
@@ -479,7 +478,7 @@ static int acpi_button_add(struct acpi_device *device)
479 device->wakeup.gpe_number, 478 device->wakeup.gpe_number,
480 ACPI_GPE_TYPE_WAKE_RUN); 479 ACPI_GPE_TYPE_WAKE_RUN);
481 acpi_enable_gpe(device->wakeup.gpe_device, 480 acpi_enable_gpe(device->wakeup.gpe_device,
482 device->wakeup.gpe_number, ACPI_NOT_ISR); 481 device->wakeup.gpe_number);
483 device->wakeup.state.enabled = 1; 482 device->wakeup.state.enabled = 1;
484 } 483 }
485 484
diff --git a/drivers/acpi/cm_sbs.c b/drivers/acpi/cm_sbs.c
index 4441e84b28a9..307963bd1043 100644
--- a/drivers/acpi/cm_sbs.c
+++ b/drivers/acpi/cm_sbs.c
@@ -34,7 +34,6 @@
34ACPI_MODULE_NAME("cm_sbs"); 34ACPI_MODULE_NAME("cm_sbs");
35#define ACPI_AC_CLASS "ac_adapter" 35#define ACPI_AC_CLASS "ac_adapter"
36#define ACPI_BATTERY_CLASS "battery" 36#define ACPI_BATTERY_CLASS "battery"
37#define ACPI_SBS_COMPONENT 0x00080000
38#define _COMPONENT ACPI_SBS_COMPONENT 37#define _COMPONENT ACPI_SBS_COMPONENT
39static struct proc_dir_entry *acpi_ac_dir; 38static struct proc_dir_entry *acpi_ac_dir;
40static struct proc_dir_entry *acpi_battery_dir; 39static struct proc_dir_entry *acpi_battery_dir;
@@ -105,9 +104,3 @@ void acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir_param)
105 return; 104 return;
106} 105}
107EXPORT_SYMBOL(acpi_unlock_battery_dir); 106EXPORT_SYMBOL(acpi_unlock_battery_dir);
108
109static int __init acpi_cm_sbs_init(void)
110{
111 return 0;
112}
113subsys_initcall(acpi_cm_sbs_init);
diff --git a/drivers/acpi/container.c b/drivers/acpi/container.c
index 134818b265a9..17020c12623c 100644
--- a/drivers/acpi/container.c
+++ b/drivers/acpi/container.c
@@ -41,7 +41,6 @@
41#define INSTALL_NOTIFY_HANDLER 1 41#define INSTALL_NOTIFY_HANDLER 1
42#define UNINSTALL_NOTIFY_HANDLER 2 42#define UNINSTALL_NOTIFY_HANDLER 2
43 43
44#define ACPI_CONTAINER_COMPONENT 0x01000000
45#define _COMPONENT ACPI_CONTAINER_COMPONENT 44#define _COMPONENT ACPI_CONTAINER_COMPONENT
46ACPI_MODULE_NAME("container"); 45ACPI_MODULE_NAME("container");
47 46
diff --git a/drivers/acpi/debug.c b/drivers/acpi/debug.c
index abf36b4b1d1d..c48396892008 100644
--- a/drivers/acpi/debug.c
+++ b/drivers/acpi/debug.c
@@ -44,6 +44,21 @@ static const struct acpi_dlayer acpi_debug_layers[] = {
44 ACPI_DEBUG_INIT(ACPI_CA_DISASSEMBLER), 44 ACPI_DEBUG_INIT(ACPI_CA_DISASSEMBLER),
45 ACPI_DEBUG_INIT(ACPI_COMPILER), 45 ACPI_DEBUG_INIT(ACPI_COMPILER),
46 ACPI_DEBUG_INIT(ACPI_TOOLS), 46 ACPI_DEBUG_INIT(ACPI_TOOLS),
47
48 ACPI_DEBUG_INIT(ACPI_BUS_COMPONENT),
49 ACPI_DEBUG_INIT(ACPI_AC_COMPONENT),
50 ACPI_DEBUG_INIT(ACPI_BATTERY_COMPONENT),
51 ACPI_DEBUG_INIT(ACPI_BUTTON_COMPONENT),
52 ACPI_DEBUG_INIT(ACPI_SBS_COMPONENT),
53 ACPI_DEBUG_INIT(ACPI_FAN_COMPONENT),
54 ACPI_DEBUG_INIT(ACPI_PCI_COMPONENT),
55 ACPI_DEBUG_INIT(ACPI_POWER_COMPONENT),
56 ACPI_DEBUG_INIT(ACPI_CONTAINER_COMPONENT),
57 ACPI_DEBUG_INIT(ACPI_SYSTEM_COMPONENT),
58 ACPI_DEBUG_INIT(ACPI_THERMAL_COMPONENT),
59 ACPI_DEBUG_INIT(ACPI_MEMORY_DEVICE_COMPONENT),
60 ACPI_DEBUG_INIT(ACPI_VIDEO_COMPONENT),
61 ACPI_DEBUG_INIT(ACPI_PROCESSOR_COMPONENT),
47}; 62};
48 63
49static const struct acpi_dlevel acpi_debug_levels[] = { 64static const struct acpi_dlevel acpi_debug_levels[] = {
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index ef42316f89f5..30f3ef236ecb 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -70,7 +70,7 @@ enum ec_command {
70#define ACPI_EC_UDELAY_GLK 1000 /* Wait 1ms max. to get global lock */ 70#define ACPI_EC_UDELAY_GLK 1000 /* Wait 1ms max. to get global lock */
71#define ACPI_EC_UDELAY 100 /* Wait 100us before polling EC again */ 71#define ACPI_EC_UDELAY 100 /* Wait 100us before polling EC again */
72 72
73#define ACPI_EC_STORM_THRESHOLD 20 /* number of false interrupts 73#define ACPI_EC_STORM_THRESHOLD 8 /* number of false interrupts
74 per one transaction */ 74 per one transaction */
75 75
76enum { 76enum {
@@ -100,8 +100,11 @@ struct transaction {
100 u8 *rdata; 100 u8 *rdata;
101 unsigned short irq_count; 101 unsigned short irq_count;
102 u8 command; 102 u8 command;
103 u8 wi;
104 u8 ri;
103 u8 wlen; 105 u8 wlen;
104 u8 rlen; 106 u8 rlen;
107 bool done;
105}; 108};
106 109
107static struct acpi_ec { 110static struct acpi_ec {
@@ -178,34 +181,46 @@ static int ec_transaction_done(struct acpi_ec *ec)
178 unsigned long flags; 181 unsigned long flags;
179 int ret = 0; 182 int ret = 0;
180 spin_lock_irqsave(&ec->curr_lock, flags); 183 spin_lock_irqsave(&ec->curr_lock, flags);
181 if (!ec->curr || (!ec->curr->wlen && !ec->curr->rlen)) 184 if (!ec->curr || ec->curr->done)
182 ret = 1; 185 ret = 1;
183 spin_unlock_irqrestore(&ec->curr_lock, flags); 186 spin_unlock_irqrestore(&ec->curr_lock, flags);
184 return ret; 187 return ret;
185} 188}
186 189
190static void start_transaction(struct acpi_ec *ec)
191{
192 ec->curr->irq_count = ec->curr->wi = ec->curr->ri = 0;
193 ec->curr->done = false;
194 acpi_ec_write_cmd(ec, ec->curr->command);
195}
196
187static void gpe_transaction(struct acpi_ec *ec, u8 status) 197static void gpe_transaction(struct acpi_ec *ec, u8 status)
188{ 198{
189 unsigned long flags; 199 unsigned long flags;
190 spin_lock_irqsave(&ec->curr_lock, flags); 200 spin_lock_irqsave(&ec->curr_lock, flags);
191 if (!ec->curr) 201 if (!ec->curr)
192 goto unlock; 202 goto unlock;
193 if (ec->curr->wlen > 0) { 203 if (ec->curr->wlen > ec->curr->wi) {
194 if ((status & ACPI_EC_FLAG_IBF) == 0) { 204 if ((status & ACPI_EC_FLAG_IBF) == 0)
195 acpi_ec_write_data(ec, *(ec->curr->wdata++)); 205 acpi_ec_write_data(ec,
196 --ec->curr->wlen; 206 ec->curr->wdata[ec->curr->wi++]);
197 } else 207 else
198 /* false interrupt, state didn't change */ 208 goto err;
199 ++ec->curr->irq_count; 209 } else if (ec->curr->rlen > ec->curr->ri) {
200
201 } else if (ec->curr->rlen > 0) {
202 if ((status & ACPI_EC_FLAG_OBF) == 1) { 210 if ((status & ACPI_EC_FLAG_OBF) == 1) {
203 *(ec->curr->rdata++) = acpi_ec_read_data(ec); 211 ec->curr->rdata[ec->curr->ri++] = acpi_ec_read_data(ec);
204 --ec->curr->rlen; 212 if (ec->curr->rlen == ec->curr->ri)
213 ec->curr->done = true;
205 } else 214 } else
206 /* false interrupt, state didn't change */ 215 goto err;
207 ++ec->curr->irq_count; 216 } else if (ec->curr->wlen == ec->curr->wi &&
208 } 217 (status & ACPI_EC_FLAG_IBF) == 0)
218 ec->curr->done = true;
219 goto unlock;
220err:
221 /* false interrupt, state didn't change */
222 if (in_interrupt())
223 ++ec->curr->irq_count;
209unlock: 224unlock:
210 spin_unlock_irqrestore(&ec->curr_lock, flags); 225 spin_unlock_irqrestore(&ec->curr_lock, flags);
211} 226}
@@ -215,6 +230,15 @@ static int acpi_ec_wait(struct acpi_ec *ec)
215 if (wait_event_timeout(ec->wait, ec_transaction_done(ec), 230 if (wait_event_timeout(ec->wait, ec_transaction_done(ec),
216 msecs_to_jiffies(ACPI_EC_DELAY))) 231 msecs_to_jiffies(ACPI_EC_DELAY)))
217 return 0; 232 return 0;
233 /* try restart command if we get any false interrupts */
234 if (ec->curr->irq_count &&
235 (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF) == 0) {
236 pr_debug(PREFIX "controller reset, restart transaction\n");
237 start_transaction(ec);
238 if (wait_event_timeout(ec->wait, ec_transaction_done(ec),
239 msecs_to_jiffies(ACPI_EC_DELAY)))
240 return 0;
241 }
218 /* missing GPEs, switch back to poll mode */ 242 /* missing GPEs, switch back to poll mode */
219 if (printk_ratelimit()) 243 if (printk_ratelimit())
220 pr_info(PREFIX "missing confirmations, " 244 pr_info(PREFIX "missing confirmations, "
@@ -239,10 +263,10 @@ static int ec_check_sci(struct acpi_ec *ec, u8 state)
239static int ec_poll(struct acpi_ec *ec) 263static int ec_poll(struct acpi_ec *ec)
240{ 264{
241 unsigned long delay = jiffies + msecs_to_jiffies(ACPI_EC_DELAY); 265 unsigned long delay = jiffies + msecs_to_jiffies(ACPI_EC_DELAY);
242 msleep(1); 266 udelay(ACPI_EC_UDELAY);
243 while (time_before(jiffies, delay)) { 267 while (time_before(jiffies, delay)) {
244 gpe_transaction(ec, acpi_ec_read_status(ec)); 268 gpe_transaction(ec, acpi_ec_read_status(ec));
245 msleep(1); 269 udelay(ACPI_EC_UDELAY);
246 if (ec_transaction_done(ec)) 270 if (ec_transaction_done(ec))
247 return 0; 271 return 0;
248 } 272 }
@@ -259,14 +283,13 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
259 /* disable GPE during transaction if storm is detected */ 283 /* disable GPE during transaction if storm is detected */
260 if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { 284 if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
261 clear_bit(EC_FLAGS_GPE_MODE, &ec->flags); 285 clear_bit(EC_FLAGS_GPE_MODE, &ec->flags);
262 acpi_disable_gpe(NULL, ec->gpe, ACPI_NOT_ISR); 286 acpi_disable_gpe(NULL, ec->gpe);
263 } 287 }
264 /* start transaction */ 288 /* start transaction */
265 spin_lock_irqsave(&ec->curr_lock, tmp); 289 spin_lock_irqsave(&ec->curr_lock, tmp);
266 /* following two actions should be kept atomic */ 290 /* following two actions should be kept atomic */
267 t->irq_count = 0;
268 ec->curr = t; 291 ec->curr = t;
269 acpi_ec_write_cmd(ec, ec->curr->command); 292 start_transaction(ec);
270 if (ec->curr->command == ACPI_EC_COMMAND_QUERY) 293 if (ec->curr->command == ACPI_EC_COMMAND_QUERY)
271 clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags); 294 clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
272 spin_unlock_irqrestore(&ec->curr_lock, tmp); 295 spin_unlock_irqrestore(&ec->curr_lock, tmp);
@@ -283,10 +306,11 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
283 /* check if we received SCI during transaction */ 306 /* check if we received SCI during transaction */
284 ec_check_sci(ec, acpi_ec_read_status(ec)); 307 ec_check_sci(ec, acpi_ec_read_status(ec));
285 /* it is safe to enable GPE outside of transaction */ 308 /* it is safe to enable GPE outside of transaction */
286 acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR); 309 acpi_enable_gpe(NULL, ec->gpe);
287 } else if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags) && 310 } else if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags) &&
288 t->irq_count > ACPI_EC_STORM_THRESHOLD) { 311 t->irq_count > ACPI_EC_STORM_THRESHOLD) {
289 pr_debug(PREFIX "GPE storm detected\n"); 312 pr_info(PREFIX "GPE storm detected, "
313 "transactions will use polling mode\n");
290 set_bit(EC_FLAGS_GPE_STORM, &ec->flags); 314 set_bit(EC_FLAGS_GPE_STORM, &ec->flags);
291 } 315 }
292 return ret; 316 return ret;
@@ -558,17 +582,26 @@ static u32 acpi_ec_gpe_handler(void *data)
558 pr_debug(PREFIX "~~~> interrupt\n"); 582 pr_debug(PREFIX "~~~> interrupt\n");
559 status = acpi_ec_read_status(ec); 583 status = acpi_ec_read_status(ec);
560 584
561 gpe_transaction(ec, status); 585 if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags)) {
562 if (ec_transaction_done(ec) && (status & ACPI_EC_FLAG_IBF) == 0) 586 gpe_transaction(ec, status);
563 wake_up(&ec->wait); 587 if (ec_transaction_done(ec) &&
588 (status & ACPI_EC_FLAG_IBF) == 0)
589 wake_up(&ec->wait);
590 }
564 591
565 ec_check_sci(ec, status); 592 ec_check_sci(ec, status);
566 if (!test_bit(EC_FLAGS_GPE_MODE, &ec->flags) && 593 if (!test_bit(EC_FLAGS_GPE_MODE, &ec->flags) &&
567 !test_bit(EC_FLAGS_NO_GPE, &ec->flags)) { 594 !test_bit(EC_FLAGS_NO_GPE, &ec->flags)) {
568 /* this is non-query, must be confirmation */ 595 /* this is non-query, must be confirmation */
569 if (printk_ratelimit()) 596 if (!test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) {
570 pr_info(PREFIX "non-query interrupt received," 597 if (printk_ratelimit())
598 pr_info(PREFIX "non-query interrupt received,"
599 " switching to interrupt mode\n");
600 } else {
601 /* hush, STORM switches the mode every transaction */
602 pr_debug(PREFIX "non-query interrupt received,"
571 " switching to interrupt mode\n"); 603 " switching to interrupt mode\n");
604 }
572 set_bit(EC_FLAGS_GPE_MODE, &ec->flags); 605 set_bit(EC_FLAGS_GPE_MODE, &ec->flags);
573 } 606 }
574 return ACPI_INTERRUPT_HANDLED; 607 return ACPI_INTERRUPT_HANDLED;
@@ -736,7 +769,7 @@ static acpi_status
736ec_parse_device(acpi_handle handle, u32 Level, void *context, void **retval) 769ec_parse_device(acpi_handle handle, u32 Level, void *context, void **retval)
737{ 770{
738 acpi_status status; 771 acpi_status status;
739 unsigned long long tmp; 772 unsigned long long tmp = 0;
740 773
741 struct acpi_ec *ec = context; 774 struct acpi_ec *ec = context;
742 status = acpi_walk_resources(handle, METHOD_NAME__CRS, 775 status = acpi_walk_resources(handle, METHOD_NAME__CRS,
@@ -751,6 +784,7 @@ ec_parse_device(acpi_handle handle, u32 Level, void *context, void **retval)
751 return status; 784 return status;
752 ec->gpe = tmp; 785 ec->gpe = tmp;
753 /* Use the global lock for all EC transactions? */ 786 /* Use the global lock for all EC transactions? */
787 tmp = 0;
754 acpi_evaluate_integer(handle, "_GLK", NULL, &tmp); 788 acpi_evaluate_integer(handle, "_GLK", NULL, &tmp);
755 ec->global_lock = tmp; 789 ec->global_lock = tmp;
756 ec->handle = handle; 790 ec->handle = handle;
@@ -868,7 +902,7 @@ static int ec_install_handlers(struct acpi_ec *ec)
868 if (ACPI_FAILURE(status)) 902 if (ACPI_FAILURE(status))
869 return -ENODEV; 903 return -ENODEV;
870 acpi_set_gpe_type(NULL, ec->gpe, ACPI_GPE_TYPE_RUNTIME); 904 acpi_set_gpe_type(NULL, ec->gpe, ACPI_GPE_TYPE_RUNTIME);
871 acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR); 905 acpi_enable_gpe(NULL, ec->gpe);
872 status = acpi_install_address_space_handler(ec->handle, 906 status = acpi_install_address_space_handler(ec->handle,
873 ACPI_ADR_SPACE_EC, 907 ACPI_ADR_SPACE_EC,
874 &acpi_ec_space_handler, 908 &acpi_ec_space_handler,
@@ -1007,7 +1041,7 @@ static int acpi_ec_suspend(struct acpi_device *device, pm_message_t state)
1007 /* Stop using GPE */ 1041 /* Stop using GPE */
1008 set_bit(EC_FLAGS_NO_GPE, &ec->flags); 1042 set_bit(EC_FLAGS_NO_GPE, &ec->flags);
1009 clear_bit(EC_FLAGS_GPE_MODE, &ec->flags); 1043 clear_bit(EC_FLAGS_GPE_MODE, &ec->flags);
1010 acpi_disable_gpe(NULL, ec->gpe, ACPI_NOT_ISR); 1044 acpi_disable_gpe(NULL, ec->gpe);
1011 return 0; 1045 return 0;
1012} 1046}
1013 1047
@@ -1016,7 +1050,7 @@ static int acpi_ec_resume(struct acpi_device *device)
1016 struct acpi_ec *ec = acpi_driver_data(device); 1050 struct acpi_ec *ec = acpi_driver_data(device);
1017 /* Enable use of GPE back */ 1051 /* Enable use of GPE back */
1018 clear_bit(EC_FLAGS_NO_GPE, &ec->flags); 1052 clear_bit(EC_FLAGS_NO_GPE, &ec->flags);
1019 acpi_enable_gpe(NULL, ec->gpe, ACPI_NOT_ISR); 1053 acpi_enable_gpe(NULL, ec->gpe);
1020 return 0; 1054 return 0;
1021} 1055}
1022 1056
diff --git a/drivers/acpi/events/evgpe.c b/drivers/acpi/events/evgpe.c
index c5e53aae86f7..f45c74fe745e 100644
--- a/drivers/acpi/events/evgpe.c
+++ b/drivers/acpi/events/evgpe.c
@@ -289,8 +289,6 @@ acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info)
289 */ 289 */
290 status = acpi_hw_low_disable_gpe(gpe_event_info); 290 status = acpi_hw_low_disable_gpe(gpe_event_info);
291 return_ACPI_STATUS(status); 291 return_ACPI_STATUS(status);
292
293 return_ACPI_STATUS(AE_OK);
294} 292}
295 293
296/******************************************************************************* 294/*******************************************************************************
diff --git a/drivers/acpi/events/evxfevnt.c b/drivers/acpi/events/evxfevnt.c
index 73bfd6bf962f..41554f736b68 100644
--- a/drivers/acpi/events/evxfevnt.c
+++ b/drivers/acpi/events/evxfevnt.c
@@ -248,21 +248,15 @@ ACPI_EXPORT_SYMBOL(acpi_set_gpe_type)
248 * DESCRIPTION: Enable an ACPI event (general purpose) 248 * DESCRIPTION: Enable an ACPI event (general purpose)
249 * 249 *
250 ******************************************************************************/ 250 ******************************************************************************/
251acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags) 251acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number)
252{ 252{
253 acpi_status status = AE_OK; 253 acpi_status status = AE_OK;
254 acpi_cpu_flags flags;
254 struct acpi_gpe_event_info *gpe_event_info; 255 struct acpi_gpe_event_info *gpe_event_info;
255 256
256 ACPI_FUNCTION_TRACE(acpi_enable_gpe); 257 ACPI_FUNCTION_TRACE(acpi_enable_gpe);
257 258
258 /* Use semaphore lock if not executing at interrupt level */ 259 flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
259
260 if (flags & ACPI_NOT_ISR) {
261 status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
262 if (ACPI_FAILURE(status)) {
263 return_ACPI_STATUS(status);
264 }
265 }
266 260
267 /* Ensure that we have a valid GPE number */ 261 /* Ensure that we have a valid GPE number */
268 262
@@ -277,9 +271,7 @@ acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
277 status = acpi_ev_enable_gpe(gpe_event_info, TRUE); 271 status = acpi_ev_enable_gpe(gpe_event_info, TRUE);
278 272
279 unlock_and_exit: 273 unlock_and_exit:
280 if (flags & ACPI_NOT_ISR) { 274 acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
281 (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
282 }
283 return_ACPI_STATUS(status); 275 return_ACPI_STATUS(status);
284} 276}
285 277
@@ -299,22 +291,15 @@ ACPI_EXPORT_SYMBOL(acpi_enable_gpe)
299 * DESCRIPTION: Disable an ACPI event (general purpose) 291 * DESCRIPTION: Disable an ACPI event (general purpose)
300 * 292 *
301 ******************************************************************************/ 293 ******************************************************************************/
302acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags) 294acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number)
303{ 295{
304 acpi_status status = AE_OK; 296 acpi_status status = AE_OK;
297 acpi_cpu_flags flags;
305 struct acpi_gpe_event_info *gpe_event_info; 298 struct acpi_gpe_event_info *gpe_event_info;
306 299
307 ACPI_FUNCTION_TRACE(acpi_disable_gpe); 300 ACPI_FUNCTION_TRACE(acpi_disable_gpe);
308 301
309 /* Use semaphore lock if not executing at interrupt level */ 302 flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
310
311 if (flags & ACPI_NOT_ISR) {
312 status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
313 if (ACPI_FAILURE(status)) {
314 return_ACPI_STATUS(status);
315 }
316 }
317
318 /* Ensure that we have a valid GPE number */ 303 /* Ensure that we have a valid GPE number */
319 304
320 gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number); 305 gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
@@ -325,10 +310,8 @@ acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
325 310
326 status = acpi_ev_disable_gpe(gpe_event_info); 311 status = acpi_ev_disable_gpe(gpe_event_info);
327 312
328 unlock_and_exit: 313unlock_and_exit:
329 if (flags & ACPI_NOT_ISR) { 314 acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
330 (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
331 }
332 return_ACPI_STATUS(status); 315 return_ACPI_STATUS(status);
333} 316}
334 317
@@ -521,6 +504,9 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
521 if (value) 504 if (value)
522 *event_status |= ACPI_EVENT_FLAG_SET; 505 *event_status |= ACPI_EVENT_FLAG_SET;
523 506
507 if (acpi_gbl_fixed_event_handlers[event].handler)
508 *event_status |= ACPI_EVENT_FLAG_HANDLE;
509
524 return_ACPI_STATUS(status); 510 return_ACPI_STATUS(status);
525} 511}
526 512
@@ -571,6 +557,9 @@ acpi_get_gpe_status(acpi_handle gpe_device,
571 557
572 status = acpi_hw_get_gpe_status(gpe_event_info, event_status); 558 status = acpi_hw_get_gpe_status(gpe_event_info, event_status);
573 559
560 if (gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK)
561 *event_status |= ACPI_EVENT_FLAG_HANDLE;
562
574 unlock_and_exit: 563 unlock_and_exit:
575 if (flags & ACPI_NOT_ISR) { 564 if (flags & ACPI_NOT_ISR) {
576 (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS); 565 (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c
index 60d54d1f6b19..eaaee1660bdf 100644
--- a/drivers/acpi/fan.c
+++ b/drivers/acpi/fan.c
@@ -34,7 +34,6 @@
34#include <acpi/acpi_bus.h> 34#include <acpi/acpi_bus.h>
35#include <acpi/acpi_drivers.h> 35#include <acpi/acpi_drivers.h>
36 36
37#define ACPI_FAN_COMPONENT 0x00200000
38#define ACPI_FAN_CLASS "fan" 37#define ACPI_FAN_CLASS "fan"
39#define ACPI_FAN_FILE_STATE "state" 38#define ACPI_FAN_FILE_STATE "state"
40 39
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
index 24649ada08df..adec3d15810a 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -140,6 +140,46 @@ struct device *acpi_get_physical_device(acpi_handle handle)
140 140
141EXPORT_SYMBOL(acpi_get_physical_device); 141EXPORT_SYMBOL(acpi_get_physical_device);
142 142
143/* ToDo: When a PCI bridge is found, return the PCI device behind the bridge
144 * This should work in general, but did not on a Lenovo T61 for the
145 * graphics card. But this must be fixed when the PCI device is
146 * bound and the kernel device struct is attached to the acpi device
147 * Note: A success call will increase reference count by one
148 * Do call put_device(dev) on the returned device then
149 */
150struct device *acpi_get_physical_pci_device(acpi_handle handle)
151{
152 struct device *dev;
153 long long device_id;
154 acpi_status status;
155
156 status =
157 acpi_evaluate_integer(handle, "_ADR", NULL, &device_id);
158
159 if (ACPI_FAILURE(status))
160 return NULL;
161
162 /* We need to attempt to determine whether the _ADR refers to a
163 PCI device or not. There's no terribly good way to do this,
164 so the best we can hope for is to assume that there'll never
165 be a device in the host bridge */
166 if (device_id >= 0x10000) {
167 /* It looks like a PCI device. Does it exist? */
168 dev = acpi_get_physical_device(handle);
169 } else {
170 /* It doesn't look like a PCI device. Does its parent
171 exist? */
172 acpi_handle phandle;
173 if (acpi_get_parent(handle, &phandle))
174 return NULL;
175 dev = acpi_get_physical_device(phandle);
176 }
177 if (!dev)
178 return NULL;
179 return dev;
180}
181EXPORT_SYMBOL(acpi_get_physical_pci_device);
182
143static int acpi_bind_one(struct device *dev, acpi_handle handle) 183static int acpi_bind_one(struct device *dev, acpi_handle handle)
144{ 184{
145 struct acpi_device *acpi_dev; 185 struct acpi_device *acpi_dev;
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/pci_link.c b/drivers/acpi/pci_link.c
index fcfdef7b4fdd..e52ad91ce2dc 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -531,7 +531,7 @@ int __init acpi_irq_penalty_init(void)
531 return 0; 531 return 0;
532} 532}
533 533
534static int acpi_irq_balance; /* 0: static, 1: balance */ 534static int acpi_irq_balance = -1; /* 0: static, 1: balance */
535 535
536static int acpi_pci_link_allocate(struct acpi_pci_link *link) 536static int acpi_pci_link_allocate(struct acpi_pci_link *link)
537{ 537{
@@ -950,10 +950,17 @@ device_initcall(irqrouter_init_sysfs);
950 950
951static int __init acpi_pci_link_init(void) 951static int __init acpi_pci_link_init(void)
952{ 952{
953
954 if (acpi_noirq) 953 if (acpi_noirq)
955 return 0; 954 return 0;
956 955
956 if (acpi_irq_balance == -1) {
957 /* no command line switch: enable balancing in IOAPIC mode */
958 if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC)
959 acpi_irq_balance = 1;
960 else
961 acpi_irq_balance = 0;
962 }
963
957 acpi_link.count = 0; 964 acpi_link.count = 0;
958 INIT_LIST_HEAD(&acpi_link.entries); 965 INIT_LIST_HEAD(&acpi_link.entries);
959 966
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 1b8f67d21d53..642554b1b60c 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -376,15 +376,9 @@ static int acpi_pci_root_remove(struct acpi_device *device, int type)
376 376
377static int __init acpi_pci_root_init(void) 377static int __init acpi_pci_root_init(void)
378{ 378{
379
380 if (acpi_pci_disabled) 379 if (acpi_pci_disabled)
381 return 0; 380 return 0;
382 381
383 /* DEBUG:
384 acpi_dbg_layer = ACPI_PCI_COMPONENT;
385 acpi_dbg_level = 0xFFFFFFFF;
386 */
387
388 if (acpi_bus_register_driver(&acpi_pci_root_driver) < 0) 382 if (acpi_bus_register_driver(&acpi_pci_root_driver) < 0)
389 return -ENODEV; 383 return -ENODEV;
390 384
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
index a1718e56103b..bb7d50dd2818 100644
--- a/drivers/acpi/power.c
+++ b/drivers/acpi/power.c
@@ -44,9 +44,8 @@
44#include <acpi/acpi_bus.h> 44#include <acpi/acpi_bus.h>
45#include <acpi/acpi_drivers.h> 45#include <acpi/acpi_drivers.h>
46 46
47#define _COMPONENT ACPI_POWER_COMPONENT 47#define _COMPONENT ACPI_POWER_COMPONENT
48ACPI_MODULE_NAME("power"); 48ACPI_MODULE_NAME("power");
49#define ACPI_POWER_COMPONENT 0x00800000
50#define ACPI_POWER_CLASS "power_resource" 49#define ACPI_POWER_CLASS "power_resource"
51#define ACPI_POWER_DEVICE_NAME "Power Resource" 50#define ACPI_POWER_DEVICE_NAME "Power Resource"
52#define ACPI_POWER_FILE_INFO "info" 51#define ACPI_POWER_FILE_INFO "info"
@@ -153,7 +152,8 @@ static int acpi_power_get_state(acpi_handle handle, int *state)
153 ACPI_POWER_RESOURCE_STATE_OFF; 152 ACPI_POWER_RESOURCE_STATE_OFF;
154 153
155 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] is %s\n", 154 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] is %s\n",
156 acpi_ut_get_node_name(handle), state ? "on" : "off")); 155 acpi_ut_get_node_name(handle),
156 *state ? "on" : "off"));
157 157
158 return 0; 158 return 0;
159} 159}
@@ -516,11 +516,6 @@ int acpi_power_transition(struct acpi_device *device, int state)
516 cl = &device->power.states[device->power.state].resources; 516 cl = &device->power.states[device->power.state].resources;
517 tl = &device->power.states[state].resources; 517 tl = &device->power.states[state].resources;
518 518
519 if (!cl->count && !tl->count) {
520 result = -ENODEV;
521 goto end;
522 }
523
524 /* TBD: Resources must be ordered. */ 519 /* TBD: Resources must be ordered. */
525 520
526 /* 521 /*
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index 24a362f8034c..34948362f41d 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -59,7 +59,6 @@
59#include <acpi/acpi_drivers.h> 59#include <acpi/acpi_drivers.h>
60#include <acpi/processor.h> 60#include <acpi/processor.h>
61 61
62#define ACPI_PROCESSOR_COMPONENT 0x01000000
63#define ACPI_PROCESSOR_CLASS "processor" 62#define ACPI_PROCESSOR_CLASS "processor"
64#define ACPI_PROCESSOR_DEVICE_NAME "Processor" 63#define ACPI_PROCESSOR_DEVICE_NAME "Processor"
65#define ACPI_PROCESSOR_FILE_INFO "info" 64#define ACPI_PROCESSOR_FILE_INFO "info"
@@ -89,6 +88,7 @@ static int acpi_processor_handle_eject(struct acpi_processor *pr);
89 88
90 89
91static const struct acpi_device_id processor_device_ids[] = { 90static const struct acpi_device_id processor_device_ids[] = {
91 {ACPI_PROCESSOR_OBJECT_HID, 0},
92 {ACPI_PROCESSOR_HID, 0}, 92 {ACPI_PROCESSOR_HID, 0},
93 {"", 0}, 93 {"", 0},
94}; 94};
@@ -409,7 +409,7 @@ static int acpi_processor_remove_fs(struct acpi_device *device)
409/* Use the acpiid in MADT to map cpus in case of SMP */ 409/* Use the acpiid in MADT to map cpus in case of SMP */
410 410
411#ifndef CONFIG_SMP 411#ifndef CONFIG_SMP
412static int get_cpu_id(acpi_handle handle, u32 acpi_id) {return -1;} 412static int get_cpu_id(acpi_handle handle, int type, u32 acpi_id) { return -1; }
413#else 413#else
414 414
415static struct acpi_table_madt *madt; 415static struct acpi_table_madt *madt;
@@ -428,27 +428,35 @@ static int map_lapic_id(struct acpi_subtable_header *entry,
428} 428}
429 429
430static int map_lsapic_id(struct acpi_subtable_header *entry, 430static int map_lsapic_id(struct acpi_subtable_header *entry,
431 u32 acpi_id, int *apic_id) 431 int device_declaration, u32 acpi_id, int *apic_id)
432{ 432{
433 struct acpi_madt_local_sapic *lsapic = 433 struct acpi_madt_local_sapic *lsapic =
434 (struct acpi_madt_local_sapic *)entry; 434 (struct acpi_madt_local_sapic *)entry;
435 u32 tmp = (lsapic->id << 8) | lsapic->eid;
436
435 /* Only check enabled APICs*/ 437 /* Only check enabled APICs*/
436 if (lsapic->lapic_flags & ACPI_MADT_ENABLED) { 438 if (!(lsapic->lapic_flags & ACPI_MADT_ENABLED))
437 /* First check against id */ 439 return 0;
438 if (lsapic->processor_id == acpi_id) { 440
439 *apic_id = (lsapic->id << 8) | lsapic->eid; 441 /* Device statement declaration type */
440 return 1; 442 if (device_declaration) {
441 /* Check against optional uid */ 443 if (entry->length < 16)
442 } else if (entry->length >= 16 && 444 printk(KERN_ERR PREFIX
443 lsapic->uid == acpi_id) { 445 "Invalid LSAPIC with Device type processor (SAPIC ID %#x)\n",
444 *apic_id = lsapic->uid; 446 tmp);
445 return 1; 447 else if (lsapic->uid == acpi_id)
446 } 448 goto found;
447 } 449 /* Processor statement declaration type */
450 } else if (lsapic->processor_id == acpi_id)
451 goto found;
452
448 return 0; 453 return 0;
454found:
455 *apic_id = tmp;
456 return 1;
449} 457}
450 458
451static int map_madt_entry(u32 acpi_id) 459static int map_madt_entry(int type, u32 acpi_id)
452{ 460{
453 unsigned long madt_end, entry; 461 unsigned long madt_end, entry;
454 int apic_id = -1; 462 int apic_id = -1;
@@ -469,7 +477,7 @@ static int map_madt_entry(u32 acpi_id)
469 if (map_lapic_id(header, acpi_id, &apic_id)) 477 if (map_lapic_id(header, acpi_id, &apic_id))
470 break; 478 break;
471 } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { 479 } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) {
472 if (map_lsapic_id(header, acpi_id, &apic_id)) 480 if (map_lsapic_id(header, type, acpi_id, &apic_id))
473 break; 481 break;
474 } 482 }
475 entry += header->length; 483 entry += header->length;
@@ -477,7 +485,7 @@ static int map_madt_entry(u32 acpi_id)
477 return apic_id; 485 return apic_id;
478} 486}
479 487
480static int map_mat_entry(acpi_handle handle, u32 acpi_id) 488static int map_mat_entry(acpi_handle handle, int type, u32 acpi_id)
481{ 489{
482 struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; 490 struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
483 union acpi_object *obj; 491 union acpi_object *obj;
@@ -500,7 +508,7 @@ static int map_mat_entry(acpi_handle handle, u32 acpi_id)
500 if (header->type == ACPI_MADT_TYPE_LOCAL_APIC) { 508 if (header->type == ACPI_MADT_TYPE_LOCAL_APIC) {
501 map_lapic_id(header, acpi_id, &apic_id); 509 map_lapic_id(header, acpi_id, &apic_id);
502 } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) { 510 } else if (header->type == ACPI_MADT_TYPE_LOCAL_SAPIC) {
503 map_lsapic_id(header, acpi_id, &apic_id); 511 map_lsapic_id(header, type, acpi_id, &apic_id);
504 } 512 }
505 513
506exit: 514exit:
@@ -509,14 +517,14 @@ exit:
509 return apic_id; 517 return apic_id;
510} 518}
511 519
512static int get_cpu_id(acpi_handle handle, u32 acpi_id) 520static int get_cpu_id(acpi_handle handle, int type, u32 acpi_id)
513{ 521{
514 int i; 522 int i;
515 int apic_id = -1; 523 int apic_id = -1;
516 524
517 apic_id = map_mat_entry(handle, acpi_id); 525 apic_id = map_mat_entry(handle, type, acpi_id);
518 if (apic_id == -1) 526 if (apic_id == -1)
519 apic_id = map_madt_entry(acpi_id); 527 apic_id = map_madt_entry(type, acpi_id);
520 if (apic_id == -1) 528 if (apic_id == -1)
521 return apic_id; 529 return apic_id;
522 530
@@ -532,15 +540,16 @@ static int get_cpu_id(acpi_handle handle, u32 acpi_id)
532 Driver Interface 540 Driver Interface
533 -------------------------------------------------------------------------- */ 541 -------------------------------------------------------------------------- */
534 542
535static int acpi_processor_get_info(struct acpi_processor *pr, unsigned has_uid) 543static int acpi_processor_get_info(struct acpi_device *device)
536{ 544{
537 acpi_status status = 0; 545 acpi_status status = 0;
538 union acpi_object object = { 0 }; 546 union acpi_object object = { 0 };
539 struct acpi_buffer buffer = { sizeof(union acpi_object), &object }; 547 struct acpi_buffer buffer = { sizeof(union acpi_object), &object };
540 int cpu_index; 548 struct acpi_processor *pr;
549 int cpu_index, device_declaration = 0;
541 static int cpu0_initialized; 550 static int cpu0_initialized;
542 551
543 552 pr = acpi_driver_data(device);
544 if (!pr) 553 if (!pr)
545 return -EINVAL; 554 return -EINVAL;
546 555
@@ -561,22 +570,23 @@ static int acpi_processor_get_info(struct acpi_processor *pr, unsigned has_uid)
561 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 570 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
562 "No bus mastering arbitration control\n")); 571 "No bus mastering arbitration control\n"));
563 572
564 /* Check if it is a Device with HID and UID */ 573 if (!strcmp(acpi_device_hid(device), ACPI_PROCESSOR_HID)) {
565 if (has_uid) { 574 /*
575 * Declared with "Device" statement; match _UID.
576 * Note that we don't handle string _UIDs yet.
577 */
566 unsigned long long value; 578 unsigned long long value;
567 status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID, 579 status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID,
568 NULL, &value); 580 NULL, &value);
569 if (ACPI_FAILURE(status)) { 581 if (ACPI_FAILURE(status)) {
570 printk(KERN_ERR PREFIX "Evaluating processor _UID\n"); 582 printk(KERN_ERR PREFIX
583 "Evaluating processor _UID [%#x]\n", status);
571 return -ENODEV; 584 return -ENODEV;
572 } 585 }
586 device_declaration = 1;
573 pr->acpi_id = value; 587 pr->acpi_id = value;
574 } else { 588 } else {
575 /* 589 /* Declared with "Processor" statement; match ProcessorID */
576 * Evalute the processor object. Note that it is common on SMP to
577 * have the first (boot) processor with a valid PBLK address while
578 * all others have a NULL address.
579 */
580 status = acpi_evaluate_object(pr->handle, NULL, NULL, &buffer); 590 status = acpi_evaluate_object(pr->handle, NULL, NULL, &buffer);
581 if (ACPI_FAILURE(status)) { 591 if (ACPI_FAILURE(status)) {
582 printk(KERN_ERR PREFIX "Evaluating processor object\n"); 592 printk(KERN_ERR PREFIX "Evaluating processor object\n");
@@ -584,12 +594,13 @@ static int acpi_processor_get_info(struct acpi_processor *pr, unsigned has_uid)
584 } 594 }
585 595
586 /* 596 /*
587 * TBD: Synch processor ID (via LAPIC/LSAPIC structures) on SMP. 597 * TBD: Synch processor ID (via LAPIC/LSAPIC structures) on SMP.
588 * >>> 'acpi_get_processor_id(acpi_id, &id)' in arch/xxx/acpi.c 598 * >>> 'acpi_get_processor_id(acpi_id, &id)' in
589 */ 599 * arch/xxx/acpi.c
600 */
590 pr->acpi_id = object.processor.proc_id; 601 pr->acpi_id = object.processor.proc_id;
591 } 602 }
592 cpu_index = get_cpu_id(pr->handle, pr->acpi_id); 603 cpu_index = get_cpu_id(pr->handle, device_declaration, pr->acpi_id);
593 604
594 /* Handle UP system running SMP kernel, with no LAPIC in MADT */ 605 /* Handle UP system running SMP kernel, with no LAPIC in MADT */
595 if (!cpu0_initialized && (cpu_index == -1) && 606 if (!cpu0_initialized && (cpu_index == -1) &&
@@ -661,7 +672,7 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device)
661 672
662 pr = acpi_driver_data(device); 673 pr = acpi_driver_data(device);
663 674
664 result = acpi_processor_get_info(pr, device->flags.unique_id); 675 result = acpi_processor_get_info(device);
665 if (result) { 676 if (result) {
666 /* Processor is physically not present */ 677 /* Processor is physically not present */
667 return 0; 678 return 0;
@@ -761,20 +772,20 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
761 acpi_bus_generate_proc_event(device, event, 772 acpi_bus_generate_proc_event(device, event,
762 pr->performance_platform_limit); 773 pr->performance_platform_limit);
763 acpi_bus_generate_netlink_event(device->pnp.device_class, 774 acpi_bus_generate_netlink_event(device->pnp.device_class,
764 device->dev.bus_id, event, 775 dev_name(&device->dev), event,
765 pr->performance_platform_limit); 776 pr->performance_platform_limit);
766 break; 777 break;
767 case ACPI_PROCESSOR_NOTIFY_POWER: 778 case ACPI_PROCESSOR_NOTIFY_POWER:
768 acpi_processor_cst_has_changed(pr); 779 acpi_processor_cst_has_changed(pr);
769 acpi_bus_generate_proc_event(device, event, 0); 780 acpi_bus_generate_proc_event(device, event, 0);
770 acpi_bus_generate_netlink_event(device->pnp.device_class, 781 acpi_bus_generate_netlink_event(device->pnp.device_class,
771 device->dev.bus_id, event, 0); 782 dev_name(&device->dev), event, 0);
772 break; 783 break;
773 case ACPI_PROCESSOR_NOTIFY_THROTTLING: 784 case ACPI_PROCESSOR_NOTIFY_THROTTLING:
774 acpi_processor_tstate_has_changed(pr); 785 acpi_processor_tstate_has_changed(pr);
775 acpi_bus_generate_proc_event(device, event, 0); 786 acpi_bus_generate_proc_event(device, event, 0);
776 acpi_bus_generate_netlink_event(device->pnp.device_class, 787 acpi_bus_generate_netlink_event(device->pnp.device_class,
777 device->dev.bus_id, event, 0); 788 dev_name(&device->dev), event, 0);
778 default: 789 default:
779 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 790 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
780 "Unsupported event [0x%x]\n", event)); 791 "Unsupported event [0x%x]\n", event));
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 81b40ed5379e..5f8d746a9b81 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -59,7 +59,6 @@
59#include <acpi/processor.h> 59#include <acpi/processor.h>
60#include <asm/processor.h> 60#include <asm/processor.h>
61 61
62#define ACPI_PROCESSOR_COMPONENT 0x01000000
63#define ACPI_PROCESSOR_CLASS "processor" 62#define ACPI_PROCESSOR_CLASS "processor"
64#define _COMPONENT ACPI_PROCESSOR_COMPONENT 63#define _COMPONENT ACPI_PROCESSOR_COMPONENT
65ACPI_MODULE_NAME("processor_idle"); 64ACPI_MODULE_NAME("processor_idle");
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index dbcf260ea93f..0d7b772bef50 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -44,9 +44,9 @@
44#endif 44#endif
45 45
46#include <acpi/acpi_bus.h> 46#include <acpi/acpi_bus.h>
47#include <acpi/acpi_drivers.h>
47#include <acpi/processor.h> 48#include <acpi/processor.h>
48 49
49#define ACPI_PROCESSOR_COMPONENT 0x01000000
50#define ACPI_PROCESSOR_CLASS "processor" 50#define ACPI_PROCESSOR_CLASS "processor"
51#define ACPI_PROCESSOR_FILE_PERFORMANCE "performance" 51#define ACPI_PROCESSOR_FILE_PERFORMANCE "performance"
52#define _COMPONENT ACPI_PROCESSOR_COMPONENT 52#define _COMPONENT ACPI_PROCESSOR_COMPONENT
diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
index ef34b18f95ca..b1eb376fae45 100644
--- a/drivers/acpi/processor_thermal.c
+++ b/drivers/acpi/processor_thermal.c
@@ -40,7 +40,6 @@
40#include <acpi/processor.h> 40#include <acpi/processor.h>
41#include <acpi/acpi_drivers.h> 41#include <acpi/acpi_drivers.h>
42 42
43#define ACPI_PROCESSOR_COMPONENT 0x01000000
44#define ACPI_PROCESSOR_CLASS "processor" 43#define ACPI_PROCESSOR_CLASS "processor"
45#define _COMPONENT ACPI_PROCESSOR_COMPONENT 44#define _COMPONENT ACPI_PROCESSOR_COMPONENT
46ACPI_MODULE_NAME("processor_thermal"); 45ACPI_MODULE_NAME("processor_thermal");
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index 3da2df93d924..a0c38c94a8a0 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -38,9 +38,9 @@
38#include <asm/uaccess.h> 38#include <asm/uaccess.h>
39 39
40#include <acpi/acpi_bus.h> 40#include <acpi/acpi_bus.h>
41#include <acpi/acpi_drivers.h>
41#include <acpi/processor.h> 42#include <acpi/processor.h>
42 43
43#define ACPI_PROCESSOR_COMPONENT 0x01000000
44#define ACPI_PROCESSOR_CLASS "processor" 44#define ACPI_PROCESSOR_CLASS "processor"
45#define _COMPONENT ACPI_PROCESSOR_COMPONENT 45#define _COMPONENT ACPI_PROCESSOR_COMPONENT
46ACPI_MODULE_NAME("processor_throttling"); 46ACPI_MODULE_NAME("processor_throttling");
diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c
index 755baf2ca70a..a6b662c00b67 100644
--- a/drivers/acpi/reboot.c
+++ b/drivers/acpi/reboot.c
@@ -15,28 +15,9 @@ void acpi_reboot(void)
15 15
16 rr = &acpi_gbl_FADT.reset_register; 16 rr = &acpi_gbl_FADT.reset_register;
17 17
18 /* 18 /* Is the reset register supported? */
19 * Is the ACPI reset register supported? 19 if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) ||
20 * 20 rr->bit_width != 8 || rr->bit_offset != 0)
21 * According to ACPI 3.0, FADT.flags.RESET_REG_SUP indicates
22 * whether the ACPI reset mechanism is supported.
23 *
24 * However, some boxes have this bit clear, yet a valid
25 * ACPI_RESET_REG & RESET_VALUE, and ACPI reboot is the only
26 * mechanism that works for them after S3.
27 *
28 * This suggests that other operating systems may not be checking
29 * the RESET_REG_SUP bit, and are using other means to decide
30 * whether to use the ACPI reboot mechanism or not.
31 *
32 * So when acpi reboot is requested,
33 * only the reset_register is checked. If the following
34 * conditions are met, it indicates that the reset register is supported.
35 * a. reset_register is not zero
36 * b. the access width is eight
37 * c. the bit_offset is zero
38 */
39 if (!(rr->address) || rr->bit_width != 8 || rr->bit_offset != 0)
40 return; 21 return;
41 22
42 reset_value = acpi_gbl_FADT.reset_value; 23 reset_value = acpi_gbl_FADT.reset_value;
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index a9dda8e0f9f9..39b7233c3485 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -109,8 +109,7 @@ static int acpi_bus_hot_remove_device(void *context)
109 return 0; 109 return 0;
110 110
111 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 111 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
112 "Hot-removing device %s...\n", device->dev.bus_id)); 112 "Hot-removing device %s...\n", dev_name(&device->dev)));
113
114 113
115 if (acpi_bus_trim(device, 1)) { 114 if (acpi_bus_trim(device, 1)) {
116 printk(KERN_ERR PREFIX 115 printk(KERN_ERR PREFIX
@@ -460,7 +459,7 @@ static int acpi_device_register(struct acpi_device *device,
460 acpi_device_bus_id->instance_no = 0; 459 acpi_device_bus_id->instance_no = 0;
461 list_add_tail(&acpi_device_bus_id->node, &acpi_bus_id_list); 460 list_add_tail(&acpi_device_bus_id->node, &acpi_bus_id_list);
462 } 461 }
463 sprintf(device->dev.bus_id, "%s:%02x", acpi_device_bus_id->bus_id, acpi_device_bus_id->instance_no); 462 dev_set_name(&device->dev, "%s:%02x", acpi_device_bus_id->bus_id, acpi_device_bus_id->instance_no);
464 463
465 if (device->parent) { 464 if (device->parent) {
466 list_add_tail(&device->node, &device->parent->children); 465 list_add_tail(&device->node, &device->parent->children);
@@ -484,7 +483,8 @@ static int acpi_device_register(struct acpi_device *device,
484 483
485 result = acpi_device_setup_files(device); 484 result = acpi_device_setup_files(device);
486 if(result) 485 if(result)
487 printk(KERN_ERR PREFIX "Error creating sysfs interface for device %s\n", device->dev.bus_id); 486 printk(KERN_ERR PREFIX "Error creating sysfs interface for device %s\n",
487 dev_name(&device->dev));
488 488
489 device->removal_type = ACPI_BUS_REMOVAL_NORMAL; 489 device->removal_type = ACPI_BUS_REMOVAL_NORMAL;
490 return 0; 490 return 0;
@@ -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;
@@ -919,36 +909,6 @@ static void acpi_device_get_busid(struct acpi_device *device,
919 } 909 }
920} 910}
921 911
922static int
923acpi_video_bus_match(struct acpi_device *device)
924{
925 acpi_handle h_dummy;
926
927 if (!device)
928 return -EINVAL;
929
930 /* Since there is no HID, CID for ACPI Video drivers, we have
931 * to check well known required nodes for each feature we support.
932 */
933
934 /* Does this device able to support video switching ? */
935 if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
936 ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
937 return 0;
938
939 /* Does this device able to retrieve a video ROM ? */
940 if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_ROM", &h_dummy)))
941 return 0;
942
943 /* Does this device able to configure which video head to be POSTed ? */
944 if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_VPO", &h_dummy)) &&
945 ACPI_SUCCESS(acpi_get_handle(device->handle, "_GPD", &h_dummy)) &&
946 ACPI_SUCCESS(acpi_get_handle(device->handle, "_SPD", &h_dummy)))
947 return 0;
948
949 return -ENODEV;
950}
951
952/* 912/*
953 * acpi_bay_match - see if a device is an ejectable driver bay 913 * acpi_bay_match - see if a device is an ejectable driver bay
954 * 914 *
@@ -1031,7 +991,7 @@ static void acpi_device_set_id(struct acpi_device *device,
1031 will get autoloaded and the device might still match 991 will get autoloaded and the device might still match
1032 against another driver. 992 against another driver.
1033 */ 993 */
1034 if (ACPI_SUCCESS(acpi_video_bus_match(device))) 994 if (acpi_is_video_device(device))
1035 cid_add = ACPI_VIDEO_HID; 995 cid_add = ACPI_VIDEO_HID;
1036 else if (ACPI_SUCCESS(acpi_bay_match(device))) 996 else if (ACPI_SUCCESS(acpi_bay_match(device)))
1037 cid_add = ACPI_BAY_HID; 997 cid_add = ACPI_BAY_HID;
@@ -1043,7 +1003,7 @@ static void acpi_device_set_id(struct acpi_device *device,
1043 hid = ACPI_POWER_HID; 1003 hid = ACPI_POWER_HID;
1044 break; 1004 break;
1045 case ACPI_BUS_TYPE_PROCESSOR: 1005 case ACPI_BUS_TYPE_PROCESSOR:
1046 hid = ACPI_PROCESSOR_HID; 1006 hid = ACPI_PROCESSOR_OBJECT_HID;
1047 break; 1007 break;
1048 case ACPI_BUS_TYPE_SYSTEM: 1008 case ACPI_BUS_TYPE_SYSTEM:
1049 hid = ACPI_SYSTEM_HID; 1009 hid = ACPI_SYSTEM_HID;
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/sleep/proc.c b/drivers/acpi/sleep/proc.c
index 631ee2ee2ca0..4dbc2271acf5 100644
--- a/drivers/acpi/sleep/proc.c
+++ b/drivers/acpi/sleep/proc.c
@@ -367,7 +367,7 @@ acpi_system_wakeup_device_seq_show(struct seq_file *seq, void *offset)
367 if (ldev) 367 if (ldev)
368 seq_printf(seq, "%s:%s", 368 seq_printf(seq, "%s:%s",
369 ldev->bus ? ldev->bus->name : "no-bus", 369 ldev->bus ? ldev->bus->name : "no-bus",
370 ldev->bus_id); 370 dev_name(ldev));
371 seq_printf(seq, "\n"); 371 seq_printf(seq, "\n");
372 put_device(ldev); 372 put_device(ldev);
373 373
diff --git a/drivers/acpi/sleep/wakeup.c b/drivers/acpi/sleep/wakeup.c
index 38655eb132dc..dea4c23df764 100644
--- a/drivers/acpi/sleep/wakeup.c
+++ b/drivers/acpi/sleep/wakeup.c
@@ -88,7 +88,7 @@ void acpi_enable_wakeup_device(u8 sleep_state)
88 spin_unlock(&acpi_device_lock); 88 spin_unlock(&acpi_device_lock);
89 if (!dev->wakeup.flags.run_wake) 89 if (!dev->wakeup.flags.run_wake)
90 acpi_enable_gpe(dev->wakeup.gpe_device, 90 acpi_enable_gpe(dev->wakeup.gpe_device,
91 dev->wakeup.gpe_number, ACPI_ISR); 91 dev->wakeup.gpe_number);
92 spin_lock(&acpi_device_lock); 92 spin_lock(&acpi_device_lock);
93 } 93 }
94 spin_unlock(&acpi_device_lock); 94 spin_unlock(&acpi_device_lock);
@@ -122,7 +122,7 @@ void acpi_disable_wakeup_device(u8 sleep_state)
122 ACPI_GPE_TYPE_WAKE_RUN); 122 ACPI_GPE_TYPE_WAKE_RUN);
123 /* Re-enable it, since set_gpe_type will disable it */ 123 /* Re-enable it, since set_gpe_type will disable it */
124 acpi_enable_gpe(dev->wakeup.gpe_device, 124 acpi_enable_gpe(dev->wakeup.gpe_device,
125 dev->wakeup.gpe_number, ACPI_NOT_ISR); 125 dev->wakeup.gpe_number);
126 spin_lock(&acpi_device_lock); 126 spin_lock(&acpi_device_lock);
127 } 127 }
128 continue; 128 continue;
@@ -133,7 +133,7 @@ void acpi_disable_wakeup_device(u8 sleep_state)
133 /* Never disable run-wake GPE */ 133 /* Never disable run-wake GPE */
134 if (!dev->wakeup.flags.run_wake) { 134 if (!dev->wakeup.flags.run_wake) {
135 acpi_disable_gpe(dev->wakeup.gpe_device, 135 acpi_disable_gpe(dev->wakeup.gpe_device,
136 dev->wakeup.gpe_number, ACPI_NOT_ISR); 136 dev->wakeup.gpe_number);
137 acpi_clear_gpe(dev->wakeup.gpe_device, 137 acpi_clear_gpe(dev->wakeup.gpe_device,
138 dev->wakeup.gpe_number, ACPI_NOT_ISR); 138 dev->wakeup.gpe_number, ACPI_NOT_ISR);
139 } 139 }
@@ -162,7 +162,7 @@ static int __init acpi_wakeup_device_init(void)
162 dev->wakeup.gpe_number, 162 dev->wakeup.gpe_number,
163 ACPI_GPE_TYPE_WAKE_RUN); 163 ACPI_GPE_TYPE_WAKE_RUN);
164 acpi_enable_gpe(dev->wakeup.gpe_device, 164 acpi_enable_gpe(dev->wakeup.gpe_device,
165 dev->wakeup.gpe_number, ACPI_NOT_ISR); 165 dev->wakeup.gpe_number);
166 dev->wakeup.state.enabled = 1; 166 dev->wakeup.state.enabled = 1;
167 spin_lock(&acpi_device_lock); 167 spin_lock(&acpi_device_lock);
168 } 168 }
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c
index 1d74171b7940..6e4107f82403 100644
--- a/drivers/acpi/system.c
+++ b/drivers/acpi/system.c
@@ -78,9 +78,15 @@ static ssize_t acpi_table_show(struct kobject *kobj,
78 container_of(bin_attr, struct acpi_table_attr, attr); 78 container_of(bin_attr, struct acpi_table_attr, attr);
79 struct acpi_table_header *table_header = NULL; 79 struct acpi_table_header *table_header = NULL;
80 acpi_status status; 80 acpi_status status;
81 char name[ACPI_NAME_SIZE];
82
83 if (strncmp(table_attr->name, "NULL", 4))
84 memcpy(name, table_attr->name, ACPI_NAME_SIZE);
85 else
86 memcpy(name, "\0\0\0\0", 4);
81 87
82 status = 88 status =
83 acpi_get_table(table_attr->name, table_attr->instance, 89 acpi_get_table(name, table_attr->instance,
84 &table_header); 90 &table_header);
85 if (ACPI_FAILURE(status)) 91 if (ACPI_FAILURE(status))
86 return -ENODEV; 92 return -ENODEV;
@@ -95,21 +101,24 @@ static void acpi_table_attr_init(struct acpi_table_attr *table_attr,
95 struct acpi_table_header *header = NULL; 101 struct acpi_table_header *header = NULL;
96 struct acpi_table_attr *attr = NULL; 102 struct acpi_table_attr *attr = NULL;
97 103
98 memcpy(table_attr->name, table_header->signature, ACPI_NAME_SIZE); 104 if (table_header->signature[0] != '\0')
105 memcpy(table_attr->name, table_header->signature,
106 ACPI_NAME_SIZE);
107 else
108 memcpy(table_attr->name, "NULL", 4);
99 109
100 list_for_each_entry(attr, &acpi_table_attr_list, node) { 110 list_for_each_entry(attr, &acpi_table_attr_list, node) {
101 if (!memcmp(table_header->signature, attr->name, 111 if (!memcmp(table_attr->name, attr->name, ACPI_NAME_SIZE))
102 ACPI_NAME_SIZE))
103 if (table_attr->instance < attr->instance) 112 if (table_attr->instance < attr->instance)
104 table_attr->instance = attr->instance; 113 table_attr->instance = attr->instance;
105 } 114 }
106 table_attr->instance++; 115 table_attr->instance++;
107 116
108 if (table_attr->instance > 1 || (table_attr->instance == 1 && 117 if (table_attr->instance > 1 || (table_attr->instance == 1 &&
109 !acpi_get_table(table_header-> 118 !acpi_get_table
110 signature, 2, 119 (table_header->signature, 2, &header)))
111 &header))) 120 sprintf(table_attr->name + ACPI_NAME_SIZE, "%d",
112 sprintf(table_attr->name + 4, "%d", table_attr->instance); 121 table_attr->instance);
113 122
114 table_attr->attr.size = 0; 123 table_attr->attr.size = 0;
115 table_attr->attr.read = acpi_table_show; 124 table_attr->attr.read = acpi_table_show;
@@ -167,7 +176,6 @@ static int acpi_system_sysfs_init(void)
167#define COUNT_ERROR 2 /* other */ 176#define COUNT_ERROR 2 /* other */
168#define NUM_COUNTERS_EXTRA 3 177#define NUM_COUNTERS_EXTRA 3
169 178
170#define ACPI_EVENT_VALID 0x01
171struct event_counter { 179struct event_counter {
172 u32 count; 180 u32 count;
173 u32 flags; 181 u32 flags;
@@ -312,12 +320,6 @@ static int get_status(u32 index, acpi_event_status *status, acpi_handle *handle)
312 } else if (index < (num_gpes + ACPI_NUM_FIXED_EVENTS)) 320 } else if (index < (num_gpes + ACPI_NUM_FIXED_EVENTS))
313 result = acpi_get_event_status(index - num_gpes, status); 321 result = acpi_get_event_status(index - num_gpes, status);
314 322
315 /*
316 * sleep/power button GPE/Fixed Event is enabled after acpi_system_init,
317 * check the status at runtime and mark it as valid once it's enabled
318 */
319 if (!result && (*status & ACPI_EVENT_FLAG_ENABLED))
320 all_counters[index].flags |= ACPI_EVENT_VALID;
321end: 323end:
322 return result; 324 return result;
323} 325}
@@ -346,12 +348,14 @@ static ssize_t counter_show(struct kobject *kobj,
346 if (result) 348 if (result)
347 goto end; 349 goto end;
348 350
349 if (!(all_counters[index].flags & ACPI_EVENT_VALID)) 351 if (!(status & ACPI_EVENT_FLAG_HANDLE))
350 size += sprintf(buf + size, " invalid"); 352 size += sprintf(buf + size, " invalid");
351 else if (status & ACPI_EVENT_FLAG_ENABLED) 353 else if (status & ACPI_EVENT_FLAG_ENABLED)
352 size += sprintf(buf + size, " enable"); 354 size += sprintf(buf + size, " enabled");
355 else if (status & ACPI_EVENT_FLAG_WAKE_ENABLED)
356 size += sprintf(buf + size, " wake_enabled");
353 else 357 else
354 size += sprintf(buf + size, " disable"); 358 size += sprintf(buf + size, " disabled");
355 359
356end: 360end:
357 size += sprintf(buf + size, "\n"); 361 size += sprintf(buf + size, "\n");
@@ -385,7 +389,7 @@ static ssize_t counter_set(struct kobject *kobj,
385 if (result) 389 if (result)
386 goto end; 390 goto end;
387 391
388 if (!(all_counters[index].flags & ACPI_EVENT_VALID)) { 392 if (!(status & ACPI_EVENT_FLAG_HANDLE)) {
389 printk(KERN_WARNING PREFIX 393 printk(KERN_WARNING PREFIX
390 "Can not change Invalid GPE/Fixed Event status\n"); 394 "Can not change Invalid GPE/Fixed Event status\n");
391 return -EINVAL; 395 return -EINVAL;
@@ -394,10 +398,10 @@ static ssize_t counter_set(struct kobject *kobj,
394 if (index < num_gpes) { 398 if (index < num_gpes) {
395 if (!strcmp(buf, "disable\n") && 399 if (!strcmp(buf, "disable\n") &&
396 (status & ACPI_EVENT_FLAG_ENABLED)) 400 (status & ACPI_EVENT_FLAG_ENABLED))
397 result = acpi_disable_gpe(handle, index, ACPI_NOT_ISR); 401 result = acpi_disable_gpe(handle, index);
398 else if (!strcmp(buf, "enable\n") && 402 else if (!strcmp(buf, "enable\n") &&
399 !(status & ACPI_EVENT_FLAG_ENABLED)) 403 !(status & ACPI_EVENT_FLAG_ENABLED))
400 result = acpi_enable_gpe(handle, index, ACPI_NOT_ISR); 404 result = acpi_enable_gpe(handle, index);
401 else if (!strcmp(buf, "clear\n") && 405 else if (!strcmp(buf, "clear\n") &&
402 (status & ACPI_EVENT_FLAG_SET)) 406 (status & ACPI_EVENT_FLAG_SET))
403 result = acpi_clear_gpe(handle, index, ACPI_NOT_ISR); 407 result = acpi_clear_gpe(handle, index, ACPI_NOT_ISR);
diff --git a/drivers/acpi/tables/tbfadt.c b/drivers/acpi/tables/tbfadt.c
index 2c7885e7ffba..2817158fb6a1 100644
--- a/drivers/acpi/tables/tbfadt.c
+++ b/drivers/acpi/tables/tbfadt.c
@@ -304,7 +304,7 @@ static void acpi_tb_convert_fadt(void)
304 * The ACPI 1.0 reserved fields that will be zeroed are the bytes located at 304 * The ACPI 1.0 reserved fields that will be zeroed are the bytes located at
305 * offset 45, 55, 95, and the word located at offset 109, 110. 305 * offset 45, 55, 95, and the word located at offset 109, 110.
306 */ 306 */
307 if (acpi_gbl_FADT.header.revision < 3) { 307 if (acpi_gbl_FADT.header.revision < FADT2_REVISION_ID) {
308 acpi_gbl_FADT.preferred_profile = 0; 308 acpi_gbl_FADT.preferred_profile = 0;
309 acpi_gbl_FADT.pstate_control = 0; 309 acpi_gbl_FADT.pstate_control = 0;
310 acpi_gbl_FADT.cst_control = 0; 310 acpi_gbl_FADT.cst_control = 0;
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index ad6cae938f0b..073ff09218a9 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -47,7 +47,6 @@
47#include <acpi/acpi_bus.h> 47#include <acpi/acpi_bus.h>
48#include <acpi/acpi_drivers.h> 48#include <acpi/acpi_drivers.h>
49 49
50#define ACPI_THERMAL_COMPONENT 0x04000000
51#define ACPI_THERMAL_CLASS "thermal_zone" 50#define ACPI_THERMAL_CLASS "thermal_zone"
52#define ACPI_THERMAL_DEVICE_NAME "Thermal Zone" 51#define ACPI_THERMAL_DEVICE_NAME "Thermal Zone"
53#define ACPI_THERMAL_FILE_STATE "state" 52#define ACPI_THERMAL_FILE_STATE "state"
@@ -576,7 +575,7 @@ static int acpi_thermal_critical(struct acpi_thermal *tz)
576 acpi_bus_generate_proc_event(tz->device, ACPI_THERMAL_NOTIFY_CRITICAL, 575 acpi_bus_generate_proc_event(tz->device, ACPI_THERMAL_NOTIFY_CRITICAL,
577 tz->trips.critical.flags.enabled); 576 tz->trips.critical.flags.enabled);
578 acpi_bus_generate_netlink_event(tz->device->pnp.device_class, 577 acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
579 tz->device->dev.bus_id, 578 dev_name(&tz->device->dev),
580 ACPI_THERMAL_NOTIFY_CRITICAL, 579 ACPI_THERMAL_NOTIFY_CRITICAL,
581 tz->trips.critical.flags.enabled); 580 tz->trips.critical.flags.enabled);
582 581
@@ -605,7 +604,7 @@ static int acpi_thermal_hot(struct acpi_thermal *tz)
605 acpi_bus_generate_proc_event(tz->device, ACPI_THERMAL_NOTIFY_HOT, 604 acpi_bus_generate_proc_event(tz->device, ACPI_THERMAL_NOTIFY_HOT,
606 tz->trips.hot.flags.enabled); 605 tz->trips.hot.flags.enabled);
607 acpi_bus_generate_netlink_event(tz->device->pnp.device_class, 606 acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
608 tz->device->dev.bus_id, 607 dev_name(&tz->device->dev),
609 ACPI_THERMAL_NOTIFY_HOT, 608 ACPI_THERMAL_NOTIFY_HOT,
610 tz->trips.hot.flags.enabled); 609 tz->trips.hot.flags.enabled);
611 610
@@ -1592,14 +1591,14 @@ static void acpi_thermal_notify(acpi_handle handle, u32 event, void *data)
1592 acpi_thermal_check(tz); 1591 acpi_thermal_check(tz);
1593 acpi_bus_generate_proc_event(device, event, 0); 1592 acpi_bus_generate_proc_event(device, event, 0);
1594 acpi_bus_generate_netlink_event(device->pnp.device_class, 1593 acpi_bus_generate_netlink_event(device->pnp.device_class,
1595 device->dev.bus_id, event, 0); 1594 dev_name(&device->dev), event, 0);
1596 break; 1595 break;
1597 case ACPI_THERMAL_NOTIFY_DEVICES: 1596 case ACPI_THERMAL_NOTIFY_DEVICES:
1598 acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES); 1597 acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES);
1599 acpi_thermal_check(tz); 1598 acpi_thermal_check(tz);
1600 acpi_bus_generate_proc_event(device, event, 0); 1599 acpi_bus_generate_proc_event(device, event, 0);
1601 acpi_bus_generate_netlink_event(device->pnp.device_class, 1600 acpi_bus_generate_netlink_event(device->pnp.device_class,
1602 device->dev.bus_id, event, 0); 1601 dev_name(&device->dev), event, 0);
1603 break; 1602 break;
1604 default: 1603 default:
1605 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 1604 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
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/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/acpi/video.c b/drivers/acpi/video.c
index a29b0ccac65a..baa441929720 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -41,7 +41,6 @@
41#include <acpi/acpi_bus.h> 41#include <acpi/acpi_bus.h>
42#include <acpi/acpi_drivers.h> 42#include <acpi/acpi_drivers.h>
43 43
44#define ACPI_VIDEO_COMPONENT 0x08000000
45#define ACPI_VIDEO_CLASS "video" 44#define ACPI_VIDEO_CLASS "video"
46#define ACPI_VIDEO_BUS_NAME "Video Bus" 45#define ACPI_VIDEO_BUS_NAME "Video Bus"
47#define ACPI_VIDEO_DEVICE_NAME "Video Device" 46#define ACPI_VIDEO_DEVICE_NAME "Video Device"
@@ -739,7 +738,8 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
739 device->cap._DSS = 1; 738 device->cap._DSS = 1;
740 } 739 }
741 740
742 max_level = acpi_video_init_brightness(device); 741 if (acpi_video_backlight_support())
742 max_level = acpi_video_init_brightness(device);
743 743
744 if (device->cap._BCL && device->cap._BCM && max_level > 0) { 744 if (device->cap._BCL && device->cap._BCM && max_level > 0) {
745 int result; 745 int result;
@@ -785,18 +785,21 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
785 printk(KERN_ERR PREFIX "Create sysfs link\n"); 785 printk(KERN_ERR PREFIX "Create sysfs link\n");
786 786
787 } 787 }
788 if (device->cap._DCS && device->cap._DSS){ 788
789 static int count = 0; 789 if (acpi_video_display_switch_support()) {
790 char *name; 790
791 name = kzalloc(MAX_NAME_LEN, GFP_KERNEL); 791 if (device->cap._DCS && device->cap._DSS) {
792 if (!name) 792 static int count;
793 return; 793 char *name;
794 sprintf(name, "acpi_video%d", count++); 794 name = kzalloc(MAX_NAME_LEN, GFP_KERNEL);
795 device->output_dev = video_output_register(name, 795 if (!name)
796 NULL, device, &acpi_output_properties); 796 return;
797 kfree(name); 797 sprintf(name, "acpi_video%d", count++);
798 device->output_dev = video_output_register(name,
799 NULL, device, &acpi_output_properties);
800 kfree(name);
801 }
798 } 802 }
799 return;
800} 803}
801 804
802/* 805/*
@@ -842,11 +845,16 @@ static void acpi_video_bus_find_cap(struct acpi_video_bus *video)
842static int acpi_video_bus_check(struct acpi_video_bus *video) 845static int acpi_video_bus_check(struct acpi_video_bus *video)
843{ 846{
844 acpi_status status = -ENOENT; 847 acpi_status status = -ENOENT;
845 848 struct device *dev;
846 849
847 if (!video) 850 if (!video)
848 return -EINVAL; 851 return -EINVAL;
849 852
853 dev = acpi_get_physical_pci_device(video->device->handle);
854 if (!dev)
855 return -ENODEV;
856 put_device(dev);
857
850 /* Since there is no HID, CID and so on for VGA driver, we have 858 /* Since there is no HID, CID and so on for VGA driver, we have
851 * to check well known required nodes. 859 * to check well known required nodes.
852 */ 860 */
@@ -2094,12 +2102,6 @@ static int __init acpi_video_init(void)
2094{ 2102{
2095 int result = 0; 2103 int result = 0;
2096 2104
2097
2098 /*
2099 acpi_dbg_level = 0xFFFFFFFF;
2100 acpi_dbg_layer = 0x08000000;
2101 */
2102
2103 acpi_video_dir = proc_mkdir(ACPI_VIDEO_CLASS, acpi_root_dir); 2105 acpi_video_dir = proc_mkdir(ACPI_VIDEO_CLASS, acpi_root_dir);
2104 if (!acpi_video_dir) 2106 if (!acpi_video_dir)
2105 return -ENODEV; 2107 return -ENODEV;
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
new file mode 100644
index 000000000000..f022eb6f5637
--- /dev/null
+++ b/drivers/acpi/video_detect.c
@@ -0,0 +1,267 @@
1/*
2 * Copyright (C) 2008 SuSE Linux Products GmbH
3 * Thomas Renninger <trenn@suse.de>
4 *
5 * May be copied or modified under the terms of the GNU General Public License
6 *
7 * video_detect.c:
8 * Provides acpi_is_video_device() for early scanning of ACPI devices in scan.c
9 * There a Linux specific (Spec does not provide a HID for video devices) is
10 * assinged
11 *
12 * After PCI devices are glued with ACPI devices
13 * acpi_get_physical_pci_device() can be called to identify ACPI graphics
14 * devices for which a real graphics card is plugged in
15 *
16 * Now acpi_video_get_capabilities() can be called to check which
17 * capabilities the graphics cards plugged in support. The check for general
18 * video capabilities will be triggered by the first caller of
19 * acpi_video_get_capabilities(NULL); which will happen when the first
20 * backlight (or display output) switching supporting driver calls:
21 * acpi_video_backlight_support();
22 *
23 * Depending on whether ACPI graphics extensions (cmp. ACPI spec Appendix B)
24 * are available, video.ko should be used to handle the device.
25 *
26 * Otherwise vendor specific drivers like thinkpad_acpi, asus_acpi,
27 * sony_acpi,... can take care about backlight brightness and display output
28 * switching.
29 *
30 * If CONFIG_ACPI_VIDEO is neither set as "compiled in" (y) nor as a module (m)
31 * this file will not be compiled, acpi_video_get_capabilities() and
32 * acpi_video_backlight_support() will always return 0 and vendor specific
33 * drivers always can handle backlight.
34 *
35 */
36
37#include <linux/acpi.h>
38#include <linux/dmi.h>
39
40ACPI_MODULE_NAME("video");
41#define _COMPONENT ACPI_VIDEO_COMPONENT
42
43static long acpi_video_support;
44static bool acpi_video_caps_checked;
45
46static acpi_status
47acpi_backlight_cap_match(acpi_handle handle, u32 level, void *context,
48 void **retyurn_value)
49{
50 long *cap = context;
51 acpi_handle h_dummy;
52
53 if (ACPI_SUCCESS(acpi_get_handle(handle, "_BCM", &h_dummy)) &&
54 ACPI_SUCCESS(acpi_get_handle(handle, "_BCL", &h_dummy))) {
55 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found generic backlight "
56 "support\n"));
57 *cap |= ACPI_VIDEO_BACKLIGHT;
58 /* We have backlight support, no need to scan further */
59 return AE_CTRL_TERMINATE;
60 }
61 return 0;
62}
63
64/* Returns true if the device is a video device which can be handled by
65 * video.ko.
66 * The device will get a Linux specific CID added in scan.c to
67 * identify the device as an ACPI graphics device
68 * Be aware that the graphics device may not be physically present
69 * Use acpi_video_get_capabilities() to detect general ACPI video
70 * capabilities of present cards
71 */
72long acpi_is_video_device(struct acpi_device *device)
73{
74 acpi_handle h_dummy;
75 long video_caps = 0;
76
77 if (!device)
78 return 0;
79
80 /* Does this device able to support video switching ? */
81 if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) &&
82 ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy)))
83 video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING;
84
85 /* Does this device able to retrieve a video ROM ? */
86 if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_ROM", &h_dummy)))
87 video_caps |= ACPI_VIDEO_ROM_AVAILABLE;
88
89 /* Does this device able to configure which video head to be POSTed ? */
90 if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_VPO", &h_dummy)) &&
91 ACPI_SUCCESS(acpi_get_handle(device->handle, "_GPD", &h_dummy)) &&
92 ACPI_SUCCESS(acpi_get_handle(device->handle, "_SPD", &h_dummy)))
93 video_caps |= ACPI_VIDEO_DEVICE_POSTING;
94
95 /* Only check for backlight functionality if one of the above hit. */
96 if (video_caps)
97 acpi_walk_namespace(ACPI_TYPE_DEVICE, device->handle,
98 ACPI_UINT32_MAX, acpi_backlight_cap_match,
99 &video_caps, NULL);
100
101 return video_caps;
102}
103EXPORT_SYMBOL(acpi_is_video_device);
104
105static acpi_status
106find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
107{
108 long *cap = context;
109 struct device *dev;
110 struct acpi_device *acpi_dev;
111
112 const struct acpi_device_id video_ids[] = {
113 {ACPI_VIDEO_HID, 0},
114 {"", 0},
115 };
116 if (acpi_bus_get_device(handle, &acpi_dev))
117 return AE_OK;
118
119 if (!acpi_match_device_ids(acpi_dev, video_ids)) {
120 dev = acpi_get_physical_pci_device(handle);
121 if (!dev)
122 return AE_OK;
123 put_device(dev);
124 *cap |= acpi_is_video_device(acpi_dev);
125 }
126 return AE_OK;
127}
128
129/*
130 * Returns the video capabilities of a specific ACPI graphics device
131 *
132 * if NULL is passed as argument all ACPI devices are enumerated and
133 * all graphics capabilities of physically present devices are
134 * summerized and returned. This is cached and done only once.
135 */
136long acpi_video_get_capabilities(acpi_handle graphics_handle)
137{
138 long caps = 0;
139 struct acpi_device *tmp_dev;
140 acpi_status status;
141
142 if (acpi_video_caps_checked && graphics_handle == NULL)
143 return acpi_video_support;
144
145 if (!graphics_handle) {
146 /* Only do the global walk through all graphics devices once */
147 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
148 ACPI_UINT32_MAX, find_video,
149 &caps, NULL);
150 /* There might be boot param flags set already... */
151 acpi_video_support |= caps;
152 acpi_video_caps_checked = 1;
153 /* Add blacklists here. Be careful to use the right *DMI* bits
154 * to still be able to override logic via boot params, e.g.:
155 *
156 * if (dmi_name_in_vendors("XY")) {
157 * acpi_video_support |=
158 * ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR;
159 * acpi_video_support |=
160 * ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
161 *}
162 */
163 } else {
164 status = acpi_bus_get_device(graphics_handle, &tmp_dev);
165 if (ACPI_FAILURE(status)) {
166 ACPI_EXCEPTION((AE_INFO, status, "Invalid device"));
167 return 0;
168 }
169 acpi_walk_namespace(ACPI_TYPE_DEVICE, graphics_handle,
170 ACPI_UINT32_MAX, find_video,
171 &caps, NULL);
172 }
173 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "We have 0x%lX video support %s %s\n",
174 graphics_handle ? caps : acpi_video_support,
175 graphics_handle ? "on device " : "in general",
176 graphics_handle ? acpi_device_bid(tmp_dev) : ""));
177 return caps;
178}
179EXPORT_SYMBOL(acpi_video_get_capabilities);
180
181/* Returns true if video.ko can do backlight switching */
182int acpi_video_backlight_support(void)
183{
184 /*
185 * We must check whether the ACPI graphics device is physically plugged
186 * in. Therefore this must be called after binding PCI and ACPI devices
187 */
188 if (!acpi_video_caps_checked)
189 acpi_video_get_capabilities(NULL);
190
191 /* First check for boot param -> highest prio */
192 if (acpi_video_support & ACPI_VIDEO_BACKLIGHT_FORCE_VENDOR)
193 return 0;
194 else if (acpi_video_support & ACPI_VIDEO_BACKLIGHT_FORCE_VIDEO)
195 return 1;
196
197 /* Then check for DMI blacklist -> second highest prio */
198 if (acpi_video_support & ACPI_VIDEO_BACKLIGHT_DMI_VENDOR)
199 return 0;
200 else if (acpi_video_support & ACPI_VIDEO_BACKLIGHT_DMI_VIDEO)
201 return 1;
202
203 /* Then go the default way */
204 return acpi_video_support & ACPI_VIDEO_BACKLIGHT;
205}
206EXPORT_SYMBOL(acpi_video_backlight_support);
207
208/*
209 * Returns true if video.ko can do display output switching.
210 * This does not work well/at all with binary graphics drivers
211 * which disable system io ranges and do it on their own.
212 */
213int acpi_video_display_switch_support(void)
214{
215 if (!acpi_video_caps_checked)
216 acpi_video_get_capabilities(NULL);
217
218 if (acpi_video_support & ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VENDOR)
219 return 0;
220 else if (acpi_video_support & ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO)
221 return 1;
222
223 if (acpi_video_support & ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR)
224 return 0;
225 else if (acpi_video_support & ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VIDEO)
226 return 1;
227
228 return acpi_video_support & ACPI_VIDEO_OUTPUT_SWITCHING;
229}
230EXPORT_SYMBOL(acpi_video_display_switch_support);
231
232/*
233 * Use acpi_display_output=vendor/video or acpi_backlight=vendor/video
234 * To force that backlight or display output switching is processed by vendor
235 * specific acpi drivers or video.ko driver.
236 */
237int __init acpi_backlight(char *str)
238{
239 if (str == NULL || *str == '\0')
240 return 1;
241 else {
242 if (!strcmp("vendor", str))
243 acpi_video_support |=
244 ACPI_VIDEO_BACKLIGHT_FORCE_VENDOR;
245 if (!strcmp("video", str))
246 acpi_video_support |=
247 ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO;
248 }
249 return 1;
250}
251__setup("acpi_backlight=", acpi_backlight);
252
253int __init acpi_display_output(char *str)
254{
255 if (str == NULL || *str == '\0')
256 return 1;
257 else {
258 if (!strcmp("vendor", str))
259 acpi_video_support |=
260 ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VENDOR;
261 if (!strcmp("video", str))
262 acpi_video_support |=
263 ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO;
264 }
265 return 1;
266}
267__setup("acpi_display_output=", acpi_display_output);
diff --git a/drivers/acpi/wmi.c b/drivers/acpi/wmi.c
index 47cd7baf9b1b..8a8b377712c9 100644
--- a/drivers/acpi/wmi.c
+++ b/drivers/acpi/wmi.c
@@ -660,7 +660,7 @@ static void acpi_wmi_notify(acpi_handle handle, u32 event, void *data)
660 wblock->handler(event, wblock->handler_data); 660 wblock->handler(event, wblock->handler_data);
661 661
662 acpi_bus_generate_netlink_event( 662 acpi_bus_generate_netlink_event(
663 device->pnp.device_class, device->dev.bus_id, 663 device->pnp.device_class, dev_name(&device->dev),
664 event, 0); 664 event, 0);
665 break; 665 break;
666 } 666 }
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 82af7011f2dd..bc6695e3c848 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -612,7 +612,7 @@ u64 ata_tf_read_block(struct ata_taskfile *tf, struct ata_device *dev)
612 if (tf->flags & ATA_TFLAG_LBA48) { 612 if (tf->flags & ATA_TFLAG_LBA48) {
613 block |= (u64)tf->hob_lbah << 40; 613 block |= (u64)tf->hob_lbah << 40;
614 block |= (u64)tf->hob_lbam << 32; 614 block |= (u64)tf->hob_lbam << 32;
615 block |= tf->hob_lbal << 24; 615 block |= (u64)tf->hob_lbal << 24;
616 } else 616 } else
617 block |= (tf->device & 0xf) << 24; 617 block |= (tf->device & 0xf) << 24;
618 618
@@ -1712,6 +1712,8 @@ unsigned ata_exec_internal_sg(struct ata_device *dev,
1712 else 1712 else
1713 tag = 0; 1713 tag = 0;
1714 1714
1715 if (test_and_set_bit(tag, &ap->qc_allocated))
1716 BUG();
1715 qc = __ata_qc_from_tag(ap, tag); 1717 qc = __ata_qc_from_tag(ap, tag);
1716 1718
1717 qc->tag = tag; 1719 qc->tag = tag;
@@ -2490,6 +2492,13 @@ int ata_dev_configure(struct ata_device *dev)
2490 } 2492 }
2491 } 2493 }
2492 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
2493 return 0; 2502 return 0;
2494 2503
2495err_out_nosup: 2504err_out_nosup:
@@ -4024,6 +4033,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
4024 4033
4025 /* Weird ATAPI devices */ 4034 /* Weird ATAPI devices */
4026 { "TORiSAN DVD-ROM DRD-N216", NULL, ATA_HORKAGE_MAX_SEC_128 }, 4035 { "TORiSAN DVD-ROM DRD-N216", NULL, ATA_HORKAGE_MAX_SEC_128 },
4036 { "QUANTUM DAT DAT72-000", NULL, ATA_HORKAGE_ATAPI_MOD16_DMA },
4027 4037
4028 /* Devices we expect to fail diagnostics */ 4038 /* Devices we expect to fail diagnostics */
4029 4039
@@ -4039,6 +4049,73 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
4039 { "ST380817AS", "3.42", ATA_HORKAGE_NONCQ }, 4049 { "ST380817AS", "3.42", ATA_HORKAGE_NONCQ },
4040 { "ST3160023AS", "3.42", ATA_HORKAGE_NONCQ }, 4050 { "ST3160023AS", "3.42", ATA_HORKAGE_NONCQ },
4041 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
4042 /* Blacklist entries taken from Silicon Image 3124/3132 4119 /* Blacklist entries taken from Silicon Image 3124/3132
4043 Windows driver .inf file - also several Linux problem reports */ 4120 Windows driver .inf file - also several Linux problem reports */
4044 { "HTS541060G9SA00", "MB3OC60D", ATA_HORKAGE_NONCQ, }, 4121 { "HTS541060G9SA00", "MB3OC60D", ATA_HORKAGE_NONCQ, },
@@ -4444,7 +4521,8 @@ int atapi_check_dma(struct ata_queued_cmd *qc)
4444 /* Don't allow DMA if it isn't multiple of 16 bytes. Quite a 4521 /* Don't allow DMA if it isn't multiple of 16 bytes. Quite a
4445 * few ATAPI devices choke on such DMA requests. 4522 * few ATAPI devices choke on such DMA requests.
4446 */ 4523 */
4447 if (unlikely(qc->nbytes & 15)) 4524 if (!(qc->dev->horkage & ATA_HORKAGE_ATAPI_MOD16_DMA) &&
4525 unlikely(qc->nbytes & 15))
4448 return 1; 4526 return 1;
4449 4527
4450 if (ap->ops->check_atapi_dma) 4528 if (ap->ops->check_atapi_dma)
@@ -4561,6 +4639,37 @@ void swap_buf_le16(u16 *buf, unsigned int buf_words)
4561} 4639}
4562 4640
4563/** 4641/**
4642 * ata_qc_new - Request an available ATA command, for queueing
4643 * @ap: Port associated with device @dev
4644 * @dev: Device from whom we request an available command structure
4645 *
4646 * LOCKING:
4647 * None.
4648 */
4649
4650static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap)
4651{
4652 struct ata_queued_cmd *qc = NULL;
4653 unsigned int i;
4654
4655 /* no command while frozen */
4656 if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
4657 return NULL;
4658
4659 /* the last tag is reserved for internal command. */
4660 for (i = 0; i < ATA_MAX_QUEUE - 1; i++)
4661 if (!test_and_set_bit(i, &ap->qc_allocated)) {
4662 qc = __ata_qc_from_tag(ap, i);
4663 break;
4664 }
4665
4666 if (qc)
4667 qc->tag = i;
4668
4669 return qc;
4670}
4671
4672/**
4564 * ata_qc_new_init - Request an available ATA command, and initialize it 4673 * ata_qc_new_init - Request an available ATA command, and initialize it
4565 * @dev: Device from whom we request an available command structure 4674 * @dev: Device from whom we request an available command structure
4566 * @tag: command tag 4675 * @tag: command tag
@@ -4569,20 +4678,16 @@ void swap_buf_le16(u16 *buf, unsigned int buf_words)
4569 * None. 4678 * None.
4570 */ 4679 */
4571 4680
4572struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev, int tag) 4681struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev)
4573{ 4682{
4574 struct ata_port *ap = dev->link->ap; 4683 struct ata_port *ap = dev->link->ap;
4575 struct ata_queued_cmd *qc; 4684 struct ata_queued_cmd *qc;
4576 4685
4577 if (unlikely(ap->pflags & ATA_PFLAG_FROZEN)) 4686 qc = ata_qc_new(ap);
4578 return NULL;
4579
4580 qc = __ata_qc_from_tag(ap, tag);
4581 if (qc) { 4687 if (qc) {
4582 qc->scsicmd = NULL; 4688 qc->scsicmd = NULL;
4583 qc->ap = ap; 4689 qc->ap = ap;
4584 qc->dev = dev; 4690 qc->dev = dev;
4585 qc->tag = tag;
4586 4691
4587 ata_qc_reinit(qc); 4692 ata_qc_reinit(qc);
4588 } 4693 }
@@ -4590,6 +4695,31 @@ struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev, int tag)
4590 return qc; 4695 return qc;
4591} 4696}
4592 4697
4698/**
4699 * ata_qc_free - free unused ata_queued_cmd
4700 * @qc: Command to complete
4701 *
4702 * Designed to free unused ata_queued_cmd object
4703 * in case something prevents using it.
4704 *
4705 * LOCKING:
4706 * spin_lock_irqsave(host lock)
4707 */
4708void ata_qc_free(struct ata_queued_cmd *qc)
4709{
4710 struct ata_port *ap = qc->ap;
4711 unsigned int tag;
4712
4713 WARN_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
4714
4715 qc->flags = 0;
4716 tag = qc->tag;
4717 if (likely(ata_tag_valid(tag))) {
4718 qc->tag = ATA_TAG_POISON;
4719 clear_bit(tag, &ap->qc_allocated);
4720 }
4721}
4722
4593void __ata_qc_complete(struct ata_queued_cmd *qc) 4723void __ata_qc_complete(struct ata_queued_cmd *qc)
4594{ 4724{
4595 struct ata_port *ap = qc->ap; 4725 struct ata_port *ap = qc->ap;
@@ -5934,7 +6064,7 @@ static void ata_port_detach(struct ata_port *ap)
5934 * to us. Restore SControl and disable all existing devices. 6064 * to us. Restore SControl and disable all existing devices.
5935 */ 6065 */
5936 __ata_port_for_each_link(link, ap) { 6066 __ata_port_for_each_link(link, ap) {
5937 sata_scr_write(link, SCR_CONTROL, link->saved_scontrol); 6067 sata_scr_write(link, SCR_CONTROL, link->saved_scontrol & 0xff0);
5938 ata_link_for_each_dev(dev, link) 6068 ata_link_for_each_dev(dev, link)
5939 ata_dev_disable(dev); 6069 ata_dev_disable(dev);
5940 } 6070 }
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 8077bdf5d30d..32da9a93ce44 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -610,9 +610,6 @@ void ata_scsi_error(struct Scsi_Host *host)
610 if (ata_ncq_enabled(dev)) 610 if (ata_ncq_enabled(dev))
611 ehc->saved_ncq_enabled |= 1 << devno; 611 ehc->saved_ncq_enabled |= 1 << devno;
612 } 612 }
613
614 /* set last reset timestamp to some time in the past */
615 ehc->last_reset = jiffies - 60 * HZ;
616 } 613 }
617 614
618 ap->pflags |= ATA_PFLAG_EH_IN_PROGRESS; 615 ap->pflags |= ATA_PFLAG_EH_IN_PROGRESS;
@@ -2281,17 +2278,21 @@ int ata_eh_reset(struct ata_link *link, int classify,
2281 if (link->flags & ATA_LFLAG_NO_SRST) 2278 if (link->flags & ATA_LFLAG_NO_SRST)
2282 softreset = NULL; 2279 softreset = NULL;
2283 2280
2284 now = jiffies; 2281 /* make sure each reset attemp is at least COOL_DOWN apart */
2285 deadline = ata_deadline(ehc->last_reset, ATA_EH_RESET_COOL_DOWN); 2282 if (ehc->i.flags & ATA_EHI_DID_RESET) {
2286 if (time_before(now, deadline)) 2283 now = jiffies;
2287 schedule_timeout_uninterruptible(deadline - now); 2284 WARN_ON(time_after(ehc->last_reset, now));
2285 deadline = ata_deadline(ehc->last_reset,
2286 ATA_EH_RESET_COOL_DOWN);
2287 if (time_before(now, deadline))
2288 schedule_timeout_uninterruptible(deadline - now);
2289 }
2288 2290
2289 spin_lock_irqsave(ap->lock, flags); 2291 spin_lock_irqsave(ap->lock, flags);
2290 ap->pflags |= ATA_PFLAG_RESETTING; 2292 ap->pflags |= ATA_PFLAG_RESETTING;
2291 spin_unlock_irqrestore(ap->lock, flags); 2293 spin_unlock_irqrestore(ap->lock, flags);
2292 2294
2293 ata_eh_about_to_do(link, NULL, ATA_EH_RESET); 2295 ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
2294 ehc->last_reset = jiffies;
2295 2296
2296 ata_link_for_each_dev(dev, link) { 2297 ata_link_for_each_dev(dev, link) {
2297 /* If we issue an SRST then an ATA drive (not ATAPI) 2298 /* If we issue an SRST then an ATA drive (not ATAPI)
@@ -2379,7 +2380,6 @@ int ata_eh_reset(struct ata_link *link, int classify,
2379 /* 2380 /*
2380 * Perform reset 2381 * Perform reset
2381 */ 2382 */
2382 ehc->last_reset = jiffies;
2383 if (ata_is_host_link(link)) 2383 if (ata_is_host_link(link))
2384 ata_eh_freeze_port(ap); 2384 ata_eh_freeze_port(ap);
2385 2385
@@ -2391,6 +2391,7 @@ int ata_eh_reset(struct ata_link *link, int classify,
2391 reset == softreset ? "soft" : "hard"); 2391 reset == softreset ? "soft" : "hard");
2392 2392
2393 /* mark that this EH session started with reset */ 2393 /* mark that this EH session started with reset */
2394 ehc->last_reset = jiffies;
2394 if (reset == hardreset) 2395 if (reset == hardreset)
2395 ehc->i.flags |= ATA_EHI_DID_HARDRESET; 2396 ehc->i.flags |= ATA_EHI_DID_HARDRESET;
2396 else 2397 else
@@ -2535,7 +2536,7 @@ int ata_eh_reset(struct ata_link *link, int classify,
2535 ata_eh_done(link, NULL, ATA_EH_RESET); 2536 ata_eh_done(link, NULL, ATA_EH_RESET);
2536 if (slave) 2537 if (slave)
2537 ata_eh_done(slave, NULL, ATA_EH_RESET); 2538 ata_eh_done(slave, NULL, ATA_EH_RESET);
2538 ehc->last_reset = jiffies; 2539 ehc->last_reset = jiffies; /* update to completion time */
2539 ehc->i.action |= ATA_EH_REVALIDATE; 2540 ehc->i.action |= ATA_EH_REVALIDATE;
2540 2541
2541 rc = 0; 2542 rc = 0;
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index bbb30d882f05..47c7afcb36f2 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -190,7 +190,7 @@ static ssize_t ata_scsi_park_show(struct device *device,
190 struct ata_port *ap; 190 struct ata_port *ap;
191 struct ata_link *link; 191 struct ata_link *link;
192 struct ata_device *dev; 192 struct ata_device *dev;
193 unsigned long flags; 193 unsigned long flags, now;
194 unsigned int uninitialized_var(msecs); 194 unsigned int uninitialized_var(msecs);
195 int rc = 0; 195 int rc = 0;
196 196
@@ -208,10 +208,11 @@ static ssize_t ata_scsi_park_show(struct device *device,
208 } 208 }
209 209
210 link = dev->link; 210 link = dev->link;
211 now = jiffies;
211 if (ap->pflags & ATA_PFLAG_EH_IN_PROGRESS && 212 if (ap->pflags & ATA_PFLAG_EH_IN_PROGRESS &&
212 link->eh_context.unloaded_mask & (1 << dev->devno) && 213 link->eh_context.unloaded_mask & (1 << dev->devno) &&
213 time_after(dev->unpark_deadline, jiffies)) 214 time_after(dev->unpark_deadline, now))
214 msecs = jiffies_to_msecs(dev->unpark_deadline - jiffies); 215 msecs = jiffies_to_msecs(dev->unpark_deadline - now);
215 else 216 else
216 msecs = 0; 217 msecs = 0;
217 218
@@ -708,11 +709,7 @@ static struct ata_queued_cmd *ata_scsi_qc_new(struct ata_device *dev,
708{ 709{
709 struct ata_queued_cmd *qc; 710 struct ata_queued_cmd *qc;
710 711
711 if (cmd->request->tag != -1) 712 qc = ata_qc_new_init(dev);
712 qc = ata_qc_new_init(dev, cmd->request->tag);
713 else
714 qc = ata_qc_new_init(dev, 0);
715
716 if (qc) { 713 if (qc) {
717 qc->scsicmd = cmd; 714 qc->scsicmd = cmd;
718 qc->scsidone = done; 715 qc->scsidone = done;
@@ -1107,17 +1104,7 @@ static int ata_scsi_dev_config(struct scsi_device *sdev,
1107 1104
1108 depth = min(sdev->host->can_queue, ata_id_queue_depth(dev->id)); 1105 depth = min(sdev->host->can_queue, ata_id_queue_depth(dev->id));
1109 depth = min(ATA_MAX_QUEUE - 1, depth); 1106 depth = min(ATA_MAX_QUEUE - 1, depth);
1110 1107 scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, depth);
1111 /*
1112 * If this device is behind a port multiplier, we have
1113 * to share the tag map between all devices on that PMP.
1114 * Set up the shared tag map here and we get automatic.
1115 */
1116 if (dev->link->ap->pmp_link)
1117 scsi_init_shared_tag_map(sdev->host, ATA_MAX_QUEUE - 1);
1118
1119 scsi_set_tag_type(sdev, MSG_SIMPLE_TAG);
1120 scsi_activate_tcq(sdev, depth);
1121 } 1108 }
1122 1109
1123 return 0; 1110 return 0;
@@ -1957,11 +1944,6 @@ static unsigned int ata_scsiop_inq_std(struct ata_scsi_args *args, u8 *rbuf)
1957 hdr[1] |= (1 << 7); 1944 hdr[1] |= (1 << 7);
1958 1945
1959 memcpy(rbuf, hdr, sizeof(hdr)); 1946 memcpy(rbuf, hdr, sizeof(hdr));
1960
1961 /* if ncq, set tags supported */
1962 if (ata_id_has_ncq(args->id))
1963 rbuf[7] |= (1 << 1);
1964
1965 memcpy(&rbuf[8], "ATA ", 8); 1947 memcpy(&rbuf[8], "ATA ", 8);
1966 ata_id_string(args->id, &rbuf[16], ATA_ID_PROD, 16); 1948 ata_id_string(args->id, &rbuf[16], ATA_ID_PROD, 16);
1967 ata_id_string(args->id, &rbuf[32], ATA_ID_FW_REV, 4); 1949 ata_id_string(args->id, &rbuf[32], ATA_ID_FW_REV, 4);
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 4b4739486327..9033d164c4ec 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1227,10 +1227,19 @@ fsm_start:
1227 /* ATA PIO protocol */ 1227 /* ATA PIO protocol */
1228 if (unlikely((status & ATA_DRQ) == 0)) { 1228 if (unlikely((status & ATA_DRQ) == 0)) {
1229 /* handle BSY=0, DRQ=0 as error */ 1229 /* handle BSY=0, DRQ=0 as error */
1230 if (likely(status & (ATA_ERR | ATA_DF))) 1230 if (likely(status & (ATA_ERR | ATA_DF))) {
1231 /* device stops HSM for abort/error */ 1231 /* device stops HSM for abort/error */
1232 qc->err_mask |= AC_ERR_DEV; 1232 qc->err_mask |= AC_ERR_DEV;
1233 else { 1233
1234 /* If diagnostic failed and this is
1235 * IDENTIFY, it's likely a phantom
1236 * device. Mark hint.
1237 */
1238 if (qc->dev->horkage &
1239 ATA_HORKAGE_DIAGNOSTIC)
1240 qc->err_mask |=
1241 AC_ERR_NODEV_HINT;
1242 } else {
1234 /* HSM violation. Let EH handle this. 1243 /* HSM violation. Let EH handle this.
1235 * Phantom devices also trigger this 1244 * Phantom devices also trigger this
1236 * condition. Mark hint. 1245 * condition. Mark hint.
diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
index d3831d39bdaa..fe2839e58774 100644
--- a/drivers/ata/libata.h
+++ b/drivers/ata/libata.h
@@ -74,7 +74,7 @@ extern struct ata_link *ata_dev_phys_link(struct ata_device *dev);
74extern void ata_force_cbl(struct ata_port *ap); 74extern void ata_force_cbl(struct ata_port *ap);
75extern u64 ata_tf_to_lba(const struct ata_taskfile *tf); 75extern u64 ata_tf_to_lba(const struct ata_taskfile *tf);
76extern u64 ata_tf_to_lba48(const struct ata_taskfile *tf); 76extern u64 ata_tf_to_lba48(const struct ata_taskfile *tf);
77extern struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev, int tag); 77extern struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev);
78extern int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev, 78extern int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev,
79 u64 block, u32 n_block, unsigned int tf_flags, 79 u64 block, u32 n_block, unsigned int tf_flags,
80 unsigned int tag); 80 unsigned int tag);
@@ -103,6 +103,7 @@ extern int ata_dev_configure(struct ata_device *dev);
103extern int sata_down_spd_limit(struct ata_link *link); 103extern int sata_down_spd_limit(struct ata_link *link);
104extern int ata_down_xfermask_limit(struct ata_device *dev, unsigned int sel); 104extern int ata_down_xfermask_limit(struct ata_device *dev, unsigned int sel);
105extern void ata_sg_clean(struct ata_queued_cmd *qc); 105extern void ata_sg_clean(struct ata_queued_cmd *qc);
106extern void ata_qc_free(struct ata_queued_cmd *qc);
106extern void ata_qc_issue(struct ata_queued_cmd *qc); 107extern void ata_qc_issue(struct ata_queued_cmd *qc);
107extern void __ata_qc_complete(struct ata_queued_cmd *qc); 108extern void __ata_qc_complete(struct ata_queued_cmd *qc);
108extern int atapi_check_dma(struct ata_queued_cmd *qc); 109extern int atapi_check_dma(struct ata_queued_cmd *qc);
@@ -118,22 +119,6 @@ extern struct ata_port *ata_port_alloc(struct ata_host *host);
118extern void ata_dev_enable_pm(struct ata_device *dev, enum link_pm policy); 119extern void ata_dev_enable_pm(struct ata_device *dev, enum link_pm policy);
119extern void ata_lpm_schedule(struct ata_port *ap, enum link_pm); 120extern void ata_lpm_schedule(struct ata_port *ap, enum link_pm);
120 121
121/**
122 * ata_qc_free - free unused ata_queued_cmd
123 * @qc: Command to complete
124 *
125 * Designed to free unused ata_queued_cmd object
126 * in case something prevents using it.
127 *
128 * LOCKING:
129 * spin_lock_irqsave(host lock)
130 */
131static inline void ata_qc_free(struct ata_queued_cmd *qc)
132{
133 qc->flags = 0;
134 qc->tag = ATA_TAG_POISON;
135}
136
137/* libata-acpi.c */ 122/* libata-acpi.c */
138#ifdef CONFIG_ATA_ACPI 123#ifdef CONFIG_ATA_ACPI
139extern void ata_acpi_associate_sata_port(struct ata_port *ap); 124extern void ata_acpi_associate_sata_port(struct ata_port *ap);
diff --git a/drivers/ata/pata_cs5535.c b/drivers/ata/pata_cs5535.c
index 1b2d4a0f5f74..8b236af84c2e 100644
--- a/drivers/ata/pata_cs5535.c
+++ b/drivers/ata/pata_cs5535.c
@@ -72,7 +72,6 @@
72/** 72/**
73 * cs5535_cable_detect - detect cable type 73 * cs5535_cable_detect - detect cable type
74 * @ap: Port to detect on 74 * @ap: Port to detect on
75 * @deadline: deadline jiffies for the operation
76 * 75 *
77 * Perform cable detection for ATA66 capable cable. Return a libata 76 * Perform cable detection for ATA66 capable cable. Return a libata
78 * cable type. 77 * cable type.
diff --git a/drivers/ata/pata_cs5536.c b/drivers/ata/pata_cs5536.c
index 73f8332cb679..afed92976198 100644
--- a/drivers/ata/pata_cs5536.c
+++ b/drivers/ata/pata_cs5536.c
@@ -110,7 +110,6 @@ static inline int cs5536_write(struct pci_dev *pdev, int reg, int val)
110/** 110/**
111 * cs5536_cable_detect - detect cable type 111 * cs5536_cable_detect - detect cable type
112 * @ap: Port to detect on 112 * @ap: Port to detect on
113 * @deadline: deadline jiffies for the operation
114 * 113 *
115 * Perform cable detection for ATA66 capable cable. Return a libata 114 * Perform cable detection for ATA66 capable cable. Return a libata
116 * cable type. 115 * cable type.
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_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 271cb64d429e..64b2e2281ee7 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -416,6 +416,7 @@ static struct pcmcia_device_id pcmcia_devices[] = {
416 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209), 416 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
417 PCMCIA_DEVICE_PROD_ID12("STI", "Flash 5.0", 0xbf2df18d, 0x8cb57a0e), 417 PCMCIA_DEVICE_PROD_ID12("STI", "Flash 5.0", 0xbf2df18d, 0x8cb57a0e),
418 PCMCIA_MFC_DEVICE_PROD_ID12(1, "SanDisk", "ConnectPlus", 0x7a954bd9, 0x74be00c6), 418 PCMCIA_MFC_DEVICE_PROD_ID12(1, "SanDisk", "ConnectPlus", 0x7a954bd9, 0x74be00c6),
419 PCMCIA_DEVICE_PROD_ID2("Flash Card", 0x5a362506),
419 PCMCIA_DEVICE_NULL, 420 PCMCIA_DEVICE_NULL,
420}; 421};
421 422
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_sch.c b/drivers/ata/pata_sch.c
index c8cc027789fe..6aeeeeb34124 100644
--- a/drivers/ata/pata_sch.c
+++ b/drivers/ata/pata_sch.c
@@ -83,7 +83,7 @@ static struct ata_port_operations sch_pata_ops = {
83}; 83};
84 84
85static struct ata_port_info sch_port_info = { 85static struct ata_port_info sch_port_info = {
86 .flags = 0, 86 .flags = ATA_FLAG_SLAVE_POSS,
87 .pio_mask = ATA_PIO4, /* pio0-4 */ 87 .pio_mask = ATA_PIO4, /* pio0-4 */
88 .mwdma_mask = ATA_MWDMA2, /* mwdma0-2 */ 88 .mwdma_mask = ATA_MWDMA2, /* mwdma0-2 */
89 .udma_mask = ATA_UDMA5, /* udma0-5 */ 89 .udma_mask = ATA_UDMA5, /* udma0-5 */
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/ata/sata_nv.c b/drivers/ata/sata_nv.c
index fae3841de0d8..6f1460614325 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -307,10 +307,10 @@ static int nv_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
307 307
308static void nv_nf2_freeze(struct ata_port *ap); 308static void nv_nf2_freeze(struct ata_port *ap);
309static void nv_nf2_thaw(struct ata_port *ap); 309static void nv_nf2_thaw(struct ata_port *ap);
310static int nv_nf2_hardreset(struct ata_link *link, unsigned int *class,
311 unsigned long deadline);
310static void nv_ck804_freeze(struct ata_port *ap); 312static void nv_ck804_freeze(struct ata_port *ap);
311static void nv_ck804_thaw(struct ata_port *ap); 313static void nv_ck804_thaw(struct ata_port *ap);
312static int nv_hardreset(struct ata_link *link, unsigned int *class,
313 unsigned long deadline);
314static int nv_adma_slave_config(struct scsi_device *sdev); 314static int nv_adma_slave_config(struct scsi_device *sdev);
315static int nv_adma_check_atapi_dma(struct ata_queued_cmd *qc); 315static int nv_adma_check_atapi_dma(struct ata_queued_cmd *qc);
316static void nv_adma_qc_prep(struct ata_queued_cmd *qc); 316static void nv_adma_qc_prep(struct ata_queued_cmd *qc);
@@ -405,17 +405,8 @@ static struct scsi_host_template nv_swncq_sht = {
405 .slave_configure = nv_swncq_slave_config, 405 .slave_configure = nv_swncq_slave_config,
406}; 406};
407 407
408/* OSDL bz3352 reports that some nv controllers can't determine device
409 * signature reliably and nv_hardreset is implemented to work around
410 * the problem. This was reported on nf3 and it's unclear whether any
411 * other controllers are affected. However, the workaround has been
412 * applied to all variants and there isn't much to gain by trying to
413 * find out exactly which ones are affected at this point especially
414 * because NV has moved over to ahci for newer controllers.
415 */
416static struct ata_port_operations nv_common_ops = { 408static struct ata_port_operations nv_common_ops = {
417 .inherits = &ata_bmdma_port_ops, 409 .inherits = &ata_bmdma_port_ops,
418 .hardreset = nv_hardreset,
419 .scr_read = nv_scr_read, 410 .scr_read = nv_scr_read,
420 .scr_write = nv_scr_write, 411 .scr_write = nv_scr_write,
421}; 412};
@@ -429,12 +420,22 @@ static struct ata_port_operations nv_generic_ops = {
429 .hardreset = ATA_OP_NULL, 420 .hardreset = ATA_OP_NULL,
430}; 421};
431 422
423/* OSDL bz3352 reports that nf2/3 controllers can't determine device
424 * signature reliably. Also, the following thread reports detection
425 * failure on cold boot with the standard debouncing timing.
426 *
427 * http://thread.gmane.org/gmane.linux.ide/34098
428 *
429 * Debounce with hotplug timing and request follow-up SRST.
430 */
432static struct ata_port_operations nv_nf2_ops = { 431static struct ata_port_operations nv_nf2_ops = {
433 .inherits = &nv_common_ops, 432 .inherits = &nv_common_ops,
434 .freeze = nv_nf2_freeze, 433 .freeze = nv_nf2_freeze,
435 .thaw = nv_nf2_thaw, 434 .thaw = nv_nf2_thaw,
435 .hardreset = nv_nf2_hardreset,
436}; 436};
437 437
438/* CK804 finally gets hardreset right */
438static struct ata_port_operations nv_ck804_ops = { 439static struct ata_port_operations nv_ck804_ops = {
439 .inherits = &nv_common_ops, 440 .inherits = &nv_common_ops,
440 .freeze = nv_ck804_freeze, 441 .freeze = nv_ck804_freeze,
@@ -443,7 +444,7 @@ static struct ata_port_operations nv_ck804_ops = {
443}; 444};
444 445
445static struct ata_port_operations nv_adma_ops = { 446static struct ata_port_operations nv_adma_ops = {
446 .inherits = &nv_common_ops, 447 .inherits = &nv_ck804_ops,
447 448
448 .check_atapi_dma = nv_adma_check_atapi_dma, 449 .check_atapi_dma = nv_adma_check_atapi_dma,
449 .sff_tf_read = nv_adma_tf_read, 450 .sff_tf_read = nv_adma_tf_read,
@@ -467,7 +468,7 @@ static struct ata_port_operations nv_adma_ops = {
467}; 468};
468 469
469static struct ata_port_operations nv_swncq_ops = { 470static struct ata_port_operations nv_swncq_ops = {
470 .inherits = &nv_common_ops, 471 .inherits = &nv_generic_ops,
471 472
472 .qc_defer = ata_std_qc_defer, 473 .qc_defer = ata_std_qc_defer,
473 .qc_prep = nv_swncq_qc_prep, 474 .qc_prep = nv_swncq_qc_prep,
@@ -1553,6 +1554,17 @@ static void nv_nf2_thaw(struct ata_port *ap)
1553 iowrite8(mask, scr_addr + NV_INT_ENABLE); 1554 iowrite8(mask, scr_addr + NV_INT_ENABLE);
1554} 1555}
1555 1556
1557static int nv_nf2_hardreset(struct ata_link *link, unsigned int *class,
1558 unsigned long deadline)
1559{
1560 bool online;
1561 int rc;
1562
1563 rc = sata_link_hardreset(link, sata_deb_timing_hotplug, deadline,
1564 &online, NULL);
1565 return online ? -EAGAIN : rc;
1566}
1567
1556static void nv_ck804_freeze(struct ata_port *ap) 1568static void nv_ck804_freeze(struct ata_port *ap)
1557{ 1569{
1558 void __iomem *mmio_base = ap->host->iomap[NV_MMIO_BAR]; 1570 void __iomem *mmio_base = ap->host->iomap[NV_MMIO_BAR];
@@ -1605,21 +1617,6 @@ static void nv_mcp55_thaw(struct ata_port *ap)
1605 ata_sff_thaw(ap); 1617 ata_sff_thaw(ap);
1606} 1618}
1607 1619
1608static int nv_hardreset(struct ata_link *link, unsigned int *class,
1609 unsigned long deadline)
1610{
1611 int rc;
1612
1613 /* SATA hardreset fails to retrieve proper device signature on
1614 * some controllers. Request follow up SRST. For more info,
1615 * see http://bugzilla.kernel.org/show_bug.cgi?id=3352
1616 */
1617 rc = sata_sff_hardreset(link, class, deadline);
1618 if (rc)
1619 return rc;
1620 return -EAGAIN;
1621}
1622
1623static void nv_adma_error_handler(struct ata_port *ap) 1620static void nv_adma_error_handler(struct ata_port *ap)
1624{ 1621{
1625 struct nv_adma_port_priv *pp = ap->private_data; 1622 struct nv_adma_port_priv *pp = ap->private_data;
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
index 750d8cdc00cd..ba9a2570a742 100644
--- a/drivers/ata/sata_promise.c
+++ b/drivers/ata/sata_promise.c
@@ -153,6 +153,10 @@ static void pdc_freeze(struct ata_port *ap);
153static void pdc_sata_freeze(struct ata_port *ap); 153static void pdc_sata_freeze(struct ata_port *ap);
154static void pdc_thaw(struct ata_port *ap); 154static void pdc_thaw(struct ata_port *ap);
155static void pdc_sata_thaw(struct ata_port *ap); 155static void pdc_sata_thaw(struct ata_port *ap);
156static int pdc_pata_softreset(struct ata_link *link, unsigned int *class,
157 unsigned long deadline);
158static int pdc_sata_hardreset(struct ata_link *link, unsigned int *class,
159 unsigned long deadline);
156static void pdc_error_handler(struct ata_port *ap); 160static void pdc_error_handler(struct ata_port *ap);
157static void pdc_post_internal_cmd(struct ata_queued_cmd *qc); 161static void pdc_post_internal_cmd(struct ata_queued_cmd *qc);
158static int pdc_pata_cable_detect(struct ata_port *ap); 162static int pdc_pata_cable_detect(struct ata_port *ap);
@@ -186,6 +190,7 @@ static struct ata_port_operations pdc_sata_ops = {
186 .scr_read = pdc_sata_scr_read, 190 .scr_read = pdc_sata_scr_read,
187 .scr_write = pdc_sata_scr_write, 191 .scr_write = pdc_sata_scr_write,
188 .port_start = pdc_sata_port_start, 192 .port_start = pdc_sata_port_start,
193 .hardreset = pdc_sata_hardreset,
189}; 194};
190 195
191/* First-generation chips need a more restrictive ->check_atapi_dma op */ 196/* First-generation chips need a more restrictive ->check_atapi_dma op */
@@ -200,6 +205,7 @@ static struct ata_port_operations pdc_pata_ops = {
200 .freeze = pdc_freeze, 205 .freeze = pdc_freeze,
201 .thaw = pdc_thaw, 206 .thaw = pdc_thaw,
202 .port_start = pdc_common_port_start, 207 .port_start = pdc_common_port_start,
208 .softreset = pdc_pata_softreset,
203}; 209};
204 210
205static const struct ata_port_info pdc_port_info[] = { 211static const struct ata_port_info pdc_port_info[] = {
@@ -693,6 +699,20 @@ static void pdc_sata_thaw(struct ata_port *ap)
693 readl(host_mmio + hotplug_offset); /* flush */ 699 readl(host_mmio + hotplug_offset); /* flush */
694} 700}
695 701
702static int pdc_pata_softreset(struct ata_link *link, unsigned int *class,
703 unsigned long deadline)
704{
705 pdc_reset_port(link->ap);
706 return ata_sff_softreset(link, class, deadline);
707}
708
709static int pdc_sata_hardreset(struct ata_link *link, unsigned int *class,
710 unsigned long deadline)
711{
712 pdc_reset_port(link->ap);
713 return sata_sff_hardreset(link, class, deadline);
714}
715
696static void pdc_error_handler(struct ata_port *ap) 716static void pdc_error_handler(struct ata_port *ap)
697{ 717{
698 if (!(ap->pflags & ATA_PFLAG_FROZEN)) 718 if (!(ap->pflags & ATA_PFLAG_FROZEN))
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
index 62367fe4d5dc..c18935f0bda2 100644
--- a/drivers/ata/sata_via.c
+++ b/drivers/ata/sata_via.c
@@ -602,8 +602,10 @@ static int svia_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
602 rc = vt8251_prepare_host(pdev, &host); 602 rc = vt8251_prepare_host(pdev, &host);
603 break; 603 break;
604 default: 604 default:
605 return -EINVAL; 605 rc = -EINVAL;
606 } 606 }
607 if (rc)
608 return rc;
607 609
608 svia_configure(pdev); 610 svia_configure(pdev);
609 611
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/Kconfig b/drivers/block/Kconfig
index 61ad8d639ba3..0344a8a8321d 100644
--- a/drivers/block/Kconfig
+++ b/drivers/block/Kconfig
@@ -21,7 +21,8 @@ config BLK_DEV_FD
21 ---help--- 21 ---help---
22 If you want to use the floppy disk drive(s) of your PC under Linux, 22 If you want to use the floppy disk drive(s) of your PC under Linux,
23 say Y. Information about this driver, especially important for IBM 23 say Y. Information about this driver, especially important for IBM
24 Thinkpad users, is contained in <file:Documentation/floppy.txt>. 24 Thinkpad users, is contained in
25 <file:Documentation/blockdev/floppy.txt>.
25 That file also contains the location of the Floppy driver FAQ as 26 That file also contains the location of the Floppy driver FAQ as
26 well as location of the fdutils package used to configure additional 27 well as location of the fdutils package used to configure additional
27 parameters of the driver at run time. 28 parameters of the driver at run time.
@@ -76,7 +77,7 @@ config PARIDE
76 your computer's parallel port. Most of them are actually IDE devices 77 your computer's parallel port. Most of them are actually IDE devices
77 using a parallel port IDE adapter. This option enables the PARIDE 78 using a parallel port IDE adapter. This option enables the PARIDE
78 subsystem which contains drivers for many of these external drives. 79 subsystem which contains drivers for many of these external drives.
79 Read <file:Documentation/paride.txt> for more information. 80 Read <file:Documentation/blockdev/paride.txt> for more information.
80 81
81 If you have said Y to the "Parallel-port support" configuration 82 If you have said Y to the "Parallel-port support" configuration
82 option, you may share a single port between your printer and other 83 option, you may share a single port between your printer and other
@@ -114,9 +115,9 @@ config BLK_CPQ_DA
114 help 115 help
115 This is the driver for Compaq Smart Array controllers. Everyone 116 This is the driver for Compaq Smart Array controllers. Everyone
116 using these boards should say Y here. See the file 117 using these boards should say Y here. See the file
117 <file:Documentation/cpqarray.txt> for the current list of boards 118 <file:Documentation/blockdev/cpqarray.txt> for the current list of
118 supported by this driver, and for further information on the use of 119 boards supported by this driver, and for further information on the
119 this driver. 120 use of this driver.
120 121
121config BLK_CPQ_CISS_DA 122config BLK_CPQ_CISS_DA
122 tristate "Compaq Smart Array 5xxx support" 123 tristate "Compaq Smart Array 5xxx support"
@@ -124,7 +125,7 @@ config BLK_CPQ_CISS_DA
124 help 125 help
125 This is the driver for Compaq Smart Array 5xxx controllers. 126 This is the driver for Compaq Smart Array 5xxx controllers.
126 Everyone using these boards should say Y here. 127 Everyone using these boards should say Y here.
127 See <file:Documentation/cciss.txt> for the current list of 128 See <file:Documentation/blockdev/cciss.txt> for the current list of
128 boards supported by this driver, and for further information 129 boards supported by this driver, and for further information
129 on the use of this driver. 130 on the use of this driver.
130 131
@@ -135,7 +136,7 @@ config CISS_SCSI_TAPE
135 help 136 help
136 When enabled (Y), this option allows SCSI tape drives and SCSI medium 137 When enabled (Y), this option allows SCSI tape drives and SCSI medium
137 changers (tape robots) to be accessed via a Compaq 5xxx array 138 changers (tape robots) to be accessed via a Compaq 5xxx array
138 controller. (See <file:Documentation/cciss.txt> for more details.) 139 controller. (See <file:Documentation/blockdev/cciss.txt> for more details.)
139 140
140 "SCSI support" and "SCSI tape support" must also be enabled for this 141 "SCSI support" and "SCSI tape support" must also be enabled for this
141 option to work. 142 option to work.
@@ -149,8 +150,8 @@ config BLK_DEV_DAC960
149 help 150 help
150 This driver adds support for the Mylex DAC960, AcceleRAID, and 151 This driver adds support for the Mylex DAC960, AcceleRAID, and
151 eXtremeRAID PCI RAID controllers. See the file 152 eXtremeRAID PCI RAID controllers. See the file
152 <file:Documentation/README.DAC960> for further information about 153 <file:Documentation/blockdev/README.DAC960> for further information
153 this driver. 154 about this driver.
154 155
155 To compile this driver as a module, choose M here: the 156 To compile this driver as a module, choose M here: the
156 module will be called DAC960. 157 module will be called DAC960.
@@ -278,9 +279,9 @@ config BLK_DEV_NBD
278 userland (making server and client physically the same computer, 279 userland (making server and client physically the same computer,
279 communicating using the loopback network device). 280 communicating using the loopback network device).
280 281
281 Read <file:Documentation/nbd.txt> for more information, especially 282 Read <file:Documentation/blockdev/nbd.txt> for more information,
282 about where to find the server code, which runs in user space and 283 especially about where to find the server code, which runs in user
283 does not need special kernel support. 284 space and does not need special kernel support.
284 285
285 Note that this has nothing to do with the network file systems NFS 286 Note that this has nothing to do with the network file systems NFS
286 or Coda; you can say N here even if you intend to use NFS or Coda. 287 or Coda; you can say N here even if you intend to use NFS or Coda.
@@ -321,8 +322,8 @@ config BLK_DEV_RAM
321 store a copy of a minimal root file system off of a floppy into RAM 322 store a copy of a minimal root file system off of a floppy into RAM
322 during the initial install of Linux. 323 during the initial install of Linux.
323 324
324 Note that the kernel command line option "ramdisk=XX" is now 325 Note that the kernel command line option "ramdisk=XX" is now obsolete.
325 obsolete. For details, read <file:Documentation/ramdisk.txt>. 326 For details, read <file:Documentation/blockdev/ramdisk.txt>.
326 327
327 To compile this driver as a module, choose M here: the 328 To compile this driver as a module, choose M here: the
328 module will be called rd. 329 module will be called rd.
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 4023885353e0..9364dc554257 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -96,6 +96,8 @@ static const struct pci_device_id cciss_pci_device_id[] = {
96 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3245}, 96 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3245},
97 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3247}, 97 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3247},
98 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3249}, 98 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3249},
99 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x324A},
100 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x324B},
99 {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 101 {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
100 PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, 102 PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0},
101 {0,} 103 {0,}
@@ -133,6 +135,8 @@ static struct board_type products[] = {
133 {0x3245103C, "Smart Array P410i", &SA5_access}, 135 {0x3245103C, "Smart Array P410i", &SA5_access},
134 {0x3247103C, "Smart Array P411", &SA5_access}, 136 {0x3247103C, "Smart Array P411", &SA5_access},
135 {0x3249103C, "Smart Array P812", &SA5_access}, 137 {0x3249103C, "Smart Array P812", &SA5_access},
138 {0x324A103C, "Smart Array P712m", &SA5_access},
139 {0x324B103C, "Smart Array P711m", &SA5_access},
136 {0xFFFF103C, "Unknown Smart Array", &SA5_access}, 140 {0xFFFF103C, "Unknown Smart Array", &SA5_access},
137}; 141};
138 142
@@ -1366,6 +1370,7 @@ static void cciss_add_disk(ctlr_info_t *h, struct gendisk *disk,
1366 disk->first_minor = drv_index << NWD_SHIFT; 1370 disk->first_minor = drv_index << NWD_SHIFT;
1367 disk->fops = &cciss_fops; 1371 disk->fops = &cciss_fops;
1368 disk->private_data = &h->drv[drv_index]; 1372 disk->private_data = &h->drv[drv_index];
1373 disk->driverfs_dev = &h->pdev->dev;
1369 1374
1370 /* Set up queue information */ 1375 /* Set up queue information */
1371 blk_queue_bounce_limit(disk->queue, h->pdev->dma_mask); 1376 blk_queue_bounce_limit(disk->queue, h->pdev->dma_mask);
@@ -2842,7 +2847,7 @@ static void do_cciss_request(struct request_queue *q)
2842 h->maxSG = seg; 2847 h->maxSG = seg;
2843 2848
2844#ifdef CCISS_DEBUG 2849#ifdef CCISS_DEBUG
2845 printk(KERN_DEBUG "cciss: Submitting %d sectors in %d segments\n", 2850 printk(KERN_DEBUG "cciss: Submitting %lu sectors in %d segments\n",
2846 creq->nr_sectors, seg); 2851 creq->nr_sectors, seg);
2847#endif /* CCISS_DEBUG */ 2852#endif /* CCISS_DEBUG */
2848 2853
@@ -3192,7 +3197,7 @@ static int __devinit cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev)
3192 3197
3193 c->paddr = pci_resource_start(pdev, 0); /* addressing mode bits already removed */ 3198 c->paddr = pci_resource_start(pdev, 0); /* addressing mode bits already removed */
3194#ifdef CCISS_DEBUG 3199#ifdef CCISS_DEBUG
3195 printk("address 0 = %x\n", c->paddr); 3200 printk("address 0 = %lx\n", c->paddr);
3196#endif /* CCISS_DEBUG */ 3201#endif /* CCISS_DEBUG */
3197 c->vaddr = remap_pci_mem(c->paddr, 0x250); 3202 c->vaddr = remap_pci_mem(c->paddr, 0x250);
3198 3203
@@ -3219,7 +3224,8 @@ static int __devinit cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev)
3219#endif /* CCISS_DEBUG */ 3224#endif /* CCISS_DEBUG */
3220 cfg_base_addr_index = find_PCI_BAR_index(pdev, cfg_base_addr); 3225 cfg_base_addr_index = find_PCI_BAR_index(pdev, cfg_base_addr);
3221#ifdef CCISS_DEBUG 3226#ifdef CCISS_DEBUG
3222 printk("cfg base address index = %x\n", cfg_base_addr_index); 3227 printk("cfg base address index = %llx\n",
3228 (unsigned long long)cfg_base_addr_index);
3223#endif /* CCISS_DEBUG */ 3229#endif /* CCISS_DEBUG */
3224 if (cfg_base_addr_index == -1) { 3230 if (cfg_base_addr_index == -1) {
3225 printk(KERN_WARNING "cciss: Cannot find cfg_base_addr_index\n"); 3231 printk(KERN_WARNING "cciss: Cannot find cfg_base_addr_index\n");
@@ -3229,7 +3235,7 @@ static int __devinit cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev)
3229 3235
3230 cfg_offset = readl(c->vaddr + SA5_CTMEM_OFFSET); 3236 cfg_offset = readl(c->vaddr + SA5_CTMEM_OFFSET);
3231#ifdef CCISS_DEBUG 3237#ifdef CCISS_DEBUG
3232 printk("cfg offset = %x\n", cfg_offset); 3238 printk("cfg offset = %llx\n", (unsigned long long)cfg_offset);
3233#endif /* CCISS_DEBUG */ 3239#endif /* CCISS_DEBUG */
3234 c->cfgtable = remap_pci_mem(pci_resource_start(pdev, 3240 c->cfgtable = remap_pci_mem(pci_resource_start(pdev,
3235 cfg_base_addr_index) + 3241 cfg_base_addr_index) +
@@ -3404,7 +3410,8 @@ static int __devinit cciss_init_one(struct pci_dev *pdev,
3404 int i; 3410 int i;
3405 int j = 0; 3411 int j = 0;
3406 int rc; 3412 int rc;
3407 int dac; 3413 int dac, return_code;
3414 InquiryData_struct *inq_buff = NULL;
3408 3415
3409 i = alloc_cciss_hba(); 3416 i = alloc_cciss_hba();
3410 if (i < 0) 3417 if (i < 0)
@@ -3510,6 +3517,25 @@ static int __devinit cciss_init_one(struct pci_dev *pdev,
3510 /* Turn the interrupts on so we can service requests */ 3517 /* Turn the interrupts on so we can service requests */
3511 hba[i]->access.set_intr_mask(hba[i], CCISS_INTR_ON); 3518 hba[i]->access.set_intr_mask(hba[i], CCISS_INTR_ON);
3512 3519
3520 /* Get the firmware version */
3521 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
3522 if (inq_buff == NULL) {
3523 printk(KERN_ERR "cciss: out of memory\n");
3524 goto clean4;
3525 }
3526
3527 return_code = sendcmd_withirq(CISS_INQUIRY, i, inq_buff,
3528 sizeof(InquiryData_struct), 0, 0 , 0, TYPE_CMD);
3529 if (return_code == IO_OK) {
3530 hba[i]->firm_ver[0] = inq_buff->data_byte[32];
3531 hba[i]->firm_ver[1] = inq_buff->data_byte[33];
3532 hba[i]->firm_ver[2] = inq_buff->data_byte[34];
3533 hba[i]->firm_ver[3] = inq_buff->data_byte[35];
3534 } else { /* send command failed */
3535 printk(KERN_WARNING "cciss: unable to determine firmware"
3536 " version of controller\n");
3537 }
3538
3513 cciss_procinit(i); 3539 cciss_procinit(i);
3514 3540
3515 hba[i]->cciss_max_sectors = 2048; 3541 hba[i]->cciss_max_sectors = 2048;
@@ -3520,6 +3546,7 @@ static int __devinit cciss_init_one(struct pci_dev *pdev,
3520 return 1; 3546 return 1;
3521 3547
3522clean4: 3548clean4:
3549 kfree(inq_buff);
3523#ifdef CONFIG_CISS_SCSI_TAPE 3550#ifdef CONFIG_CISS_SCSI_TAPE
3524 kfree(hba[i]->scsi_rejects.complete); 3551 kfree(hba[i]->scsi_rejects.complete);
3525#endif 3552#endif
diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
index 47d233c6d0b3..5d39df14ed90 100644
--- a/drivers/block/cpqarray.c
+++ b/drivers/block/cpqarray.c
@@ -567,7 +567,12 @@ static int __init cpqarray_init(void)
567 num_cntlrs_reg++; 567 num_cntlrs_reg++;
568 } 568 }
569 569
570 return(num_cntlrs_reg); 570 if (num_cntlrs_reg)
571 return 0;
572 else {
573 pci_unregister_driver(&cpqarray_pci_driver);
574 return -ENODEV;
575 }
571} 576}
572 577
573/* Function to find the first free pointer into our hba[] array */ 578/* Function to find the first free pointer into our hba[] array */
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 14db747a636e..cf29cc4e6ab7 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -4124,7 +4124,7 @@ static int __init floppy_setup(char *str)
4124 printk("\n"); 4124 printk("\n");
4125 } else 4125 } else
4126 DPRINT("botched floppy option\n"); 4126 DPRINT("botched floppy option\n");
4127 DPRINT("Read Documentation/floppy.txt\n"); 4127 DPRINT("Read Documentation/blockdev/floppy.txt\n");
4128 return 0; 4128 return 0;
4129} 4129}
4130 4130
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/ub.c b/drivers/block/ub.c
index fccac18d3111..048d71d244d7 100644
--- a/drivers/block/ub.c
+++ b/drivers/block/ub.c
@@ -1546,8 +1546,6 @@ static void ub_top_sense_done(struct ub_dev *sc, struct ub_scsi_cmd *scmd)
1546 1546
1547/* 1547/*
1548 * Reset management 1548 * Reset management
1549 * XXX Move usb_reset_device to khubd. Hogging kevent is not a good thing.
1550 * XXX Make usb_sync_reset asynchronous.
1551 */ 1549 */
1552 1550
1553static void ub_reset_enter(struct ub_dev *sc, int try) 1551static void ub_reset_enter(struct ub_dev *sc, int try)
@@ -1633,6 +1631,22 @@ static void ub_reset_task(struct work_struct *work)
1633} 1631}
1634 1632
1635/* 1633/*
1634 * XXX Reset brackets are too much hassle to implement, so just stub them
1635 * in order to prevent forced unbinding (which deadlocks solid when our
1636 * ->disconnect method waits for the reset to complete and this kills keventd).
1637 *
1638 * XXX Tell Alan to move usb_unlock_device inside of usb_reset_device,
1639 * or else the post_reset is invoked, and restats I/O on a locked device.
1640 */
1641static int ub_pre_reset(struct usb_interface *iface) {
1642 return 0;
1643}
1644
1645static int ub_post_reset(struct usb_interface *iface) {
1646 return 0;
1647}
1648
1649/*
1636 * This is called from a process context. 1650 * This is called from a process context.
1637 */ 1651 */
1638static void ub_revalidate(struct ub_dev *sc, struct ub_lun *lun) 1652static void ub_revalidate(struct ub_dev *sc, struct ub_lun *lun)
@@ -2446,6 +2460,8 @@ static struct usb_driver ub_driver = {
2446 .probe = ub_probe, 2460 .probe = ub_probe,
2447 .disconnect = ub_disconnect, 2461 .disconnect = ub_disconnect,
2448 .id_table = ub_usb_ids, 2462 .id_table = ub_usb_ids,
2463 .pre_reset = ub_pre_reset,
2464 .post_reset = ub_post_reset,
2449}; 2465};
2450 2466
2451static int __init ub_init(void) 2467static int __init ub_init(void)
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index b220c686089d..2d19f0cc47f2 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -338,12 +338,18 @@ wait:
338static int xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size) 338static int xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size)
339{ 339{
340 struct request_queue *rq; 340 struct request_queue *rq;
341 elevator_t *old_e;
341 342
342 rq = blk_init_queue(do_blkif_request, &blkif_io_lock); 343 rq = blk_init_queue(do_blkif_request, &blkif_io_lock);
343 if (rq == NULL) 344 if (rq == NULL)
344 return -1; 345 return -1;
345 346
346 elevator_init(rq, "noop"); 347 old_e = rq->elevator;
348 if (IS_ERR_VALUE(elevator_init(rq, "noop")))
349 printk(KERN_WARNING
350 "blkfront: Switch elevator failed, use default\n");
351 else
352 elevator_exit(old_e);
347 353
348 /* Hard sector size and max sectors impersonate the equiv. hardware. */ 354 /* Hard sector size and max sectors impersonate the equiv. hardware. */
349 blk_queue_hardsect_size(rq, sector_size); 355 blk_queue_hardsect_size(rq, sector_size);
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/Kconfig b/drivers/char/Kconfig
index 43b35d0369d6..43d6ba83a191 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -124,7 +124,7 @@ config COMPUTONE
124 which give you many serial ports. You would need something like this 124 which give you many serial ports. You would need something like this
125 to connect more than two modems to your Linux box, for instance in 125 to connect more than two modems to your Linux box, for instance in
126 order to become a dial-in server. If you have a card like that, say 126 order to become a dial-in server. If you have a card like that, say
127 Y here and read <file:Documentation/computone.txt>. 127 Y here and read <file:Documentation/serial/computone.txt>.
128 128
129 To compile this driver as module, choose M here: the 129 To compile this driver as module, choose M here: the
130 module will be called ip2. 130 module will be called ip2.
@@ -136,7 +136,7 @@ config ROCKETPORT
136 This driver supports Comtrol RocketPort and RocketModem PCI boards. 136 This driver supports Comtrol RocketPort and RocketModem PCI boards.
137 These boards provide 2, 4, 8, 16, or 32 high-speed serial ports or 137 These boards provide 2, 4, 8, 16, or 32 high-speed serial ports or
138 modems. For information about the RocketPort/RocketModem boards 138 modems. For information about the RocketPort/RocketModem boards
139 and this driver read <file:Documentation/rocket.txt>. 139 and this driver read <file:Documentation/serial/rocket.txt>.
140 140
141 To compile this driver as a module, choose M here: the 141 To compile this driver as a module, choose M here: the
142 module will be called rocket. 142 module will be called rocket.
@@ -154,7 +154,7 @@ config CYCLADES
154 your Linux box, for instance in order to become a dial-in server. 154 your Linux box, for instance in order to become a dial-in server.
155 155
156 For information about the Cyclades-Z card, read 156 For information about the Cyclades-Z card, read
157 <file:Documentation/README.cycladesZ>. 157 <file:Documentation/serial/README.cycladesZ>.
158 158
159 To compile this driver as a module, choose M here: the 159 To compile this driver as a module, choose M here: the
160 module will be called cyclades. 160 module will be called cyclades.
@@ -183,7 +183,7 @@ config DIGIEPCA
183 box, for instance in order to become a dial-in server. This driver 183 box, for instance in order to become a dial-in server. This driver
184 supports the original PC (ISA) boards as well as PCI, and EISA. If 184 supports the original PC (ISA) boards as well as PCI, and EISA. If
185 you have a card like this, say Y here and read the file 185 you have a card like this, say Y here and read the file
186 <file:Documentation/digiepca.txt>. 186 <file:Documentation/serial/digiepca.txt>.
187 187
188 To compile this driver as a module, choose M here: the 188 To compile this driver as a module, choose M here: the
189 module will be called epca. 189 module will be called epca.
@@ -289,7 +289,7 @@ config RISCOM8
289 which gives you many serial ports. You would need something like 289 which gives you many serial ports. You would need something like
290 this to connect more than two modems to your Linux box, for instance 290 this to connect more than two modems to your Linux box, for instance
291 in order to become a dial-in server. If you have a card like that, 291 in order to become a dial-in server. If you have a card like that,
292 say Y here and read the file <file:Documentation/riscom8.txt>. 292 say Y here and read the file <file:Documentation/serial/riscom8.txt>.
293 293
294 Also it's possible to say M here and compile this driver as kernel 294 Also it's possible to say M here and compile this driver as kernel
295 loadable module; the module will be called riscom8. 295 loadable module; the module will be called riscom8.
@@ -304,8 +304,8 @@ config SPECIALIX
304 your Linux box, for instance in order to become a dial-in server. 304 your Linux box, for instance in order to become a dial-in server.
305 305
306 If you have a card like that, say Y here and read the file 306 If you have a card like that, say Y here and read the file
307 <file:Documentation/specialix.txt>. Also it's possible to say M here 307 <file:Documentation/serial/specialix.txt>. Also it's possible to say
308 and compile this driver as kernel loadable module which will be 308 M here and compile this driver as kernel loadable module which will be
309 called specialix. 309 called specialix.
310 310
311config SX 311config SX
@@ -313,7 +313,7 @@ config SX
313 depends on SERIAL_NONSTANDARD && (PCI || EISA || ISA) 313 depends on SERIAL_NONSTANDARD && (PCI || EISA || ISA)
314 help 314 help
315 This is a driver for the SX and SI multiport serial cards. 315 This is a driver for the SX and SI multiport serial cards.
316 Please read the file <file:Documentation/sx.txt> for details. 316 Please read the file <file:Documentation/serial/sx.txt> for details.
317 317
318 This driver can only be built as a module ( = code which can be 318 This driver can only be built as a module ( = code which can be
319 inserted in and removed from the running kernel whenever you want). 319 inserted in and removed from the running kernel whenever you want).
@@ -344,8 +344,8 @@ config STALDRV
344 like this to connect more than two modems to your Linux box, for 344 like this to connect more than two modems to your Linux box, for
345 instance in order to become a dial-in server. If you say Y here, 345 instance in order to become a dial-in server. If you say Y here,
346 you will be asked for your specific card model in the next 346 you will be asked for your specific card model in the next
347 questions. Make sure to read <file:Documentation/stallion.txt> in 347 questions. Make sure to read <file:Documentation/serial/stallion.txt>
348 this case. If you have never heard about all this, it's safe to 348 in this case. If you have never heard about all this, it's safe to
349 say N. 349 say N.
350 350
351config STALLION 351config STALLION
@@ -354,7 +354,7 @@ config STALLION
354 help 354 help
355 If you have an EasyIO or EasyConnection 8/32 multiport Stallion 355 If you have an EasyIO or EasyConnection 8/32 multiport Stallion
356 card, then this is for you; say Y. Make sure to read 356 card, then this is for you; say Y. Make sure to read
357 <file:Documentation/stallion.txt>. 357 <file:Documentation/serial/stallion.txt>.
358 358
359 To compile this driver as a module, choose M here: the 359 To compile this driver as a module, choose M here: the
360 module will be called stallion. 360 module will be called stallion.
@@ -365,7 +365,7 @@ config ISTALLION
365 help 365 help
366 If you have an EasyConnection 8/64, ONboard, Brumby or Stallion 366 If you have an EasyConnection 8/64, ONboard, Brumby or Stallion
367 serial multiport card, say Y here. Make sure to read 367 serial multiport card, say Y here. Make sure to read
368 <file:Documentation/stallion.txt>. 368 <file:Documentation/serial/stallion.txt>.
369 369
370 To compile this driver as a module, choose M here: the 370 To compile this driver as a module, choose M here: the
371 module will be called istallion. 371 module will be called istallion.
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/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
index 8a59aaa21be5..7a88dfd4427b 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -422,9 +422,11 @@ struct ipmi_smi {
422/** 422/**
423 * The driver model view of the IPMI messaging driver. 423 * The driver model view of the IPMI messaging driver.
424 */ 424 */
425static struct device_driver ipmidriver = { 425static struct platform_driver ipmidriver = {
426 .name = "ipmi", 426 .driver = {
427 .bus = &platform_bus_type 427 .name = "ipmi",
428 .bus = &platform_bus_type
429 }
428}; 430};
429static DEFINE_MUTEX(ipmidriver_mutex); 431static DEFINE_MUTEX(ipmidriver_mutex);
430 432
@@ -2384,9 +2386,9 @@ static int ipmi_bmc_register(ipmi_smi_t intf, int ifnum,
2384 * representing the interfaced BMC already 2386 * representing the interfaced BMC already
2385 */ 2387 */
2386 if (bmc->guid_set) 2388 if (bmc->guid_set)
2387 old_bmc = ipmi_find_bmc_guid(&ipmidriver, bmc->guid); 2389 old_bmc = ipmi_find_bmc_guid(&ipmidriver.driver, bmc->guid);
2388 else 2390 else
2389 old_bmc = ipmi_find_bmc_prod_dev_id(&ipmidriver, 2391 old_bmc = ipmi_find_bmc_prod_dev_id(&ipmidriver.driver,
2390 bmc->id.product_id, 2392 bmc->id.product_id,
2391 bmc->id.device_id); 2393 bmc->id.device_id);
2392 2394
@@ -2416,7 +2418,7 @@ static int ipmi_bmc_register(ipmi_smi_t intf, int ifnum,
2416 snprintf(name, sizeof(name), 2418 snprintf(name, sizeof(name),
2417 "ipmi_bmc.%4.4x", bmc->id.product_id); 2419 "ipmi_bmc.%4.4x", bmc->id.product_id);
2418 2420
2419 while (ipmi_find_bmc_prod_dev_id(&ipmidriver, 2421 while (ipmi_find_bmc_prod_dev_id(&ipmidriver.driver,
2420 bmc->id.product_id, 2422 bmc->id.product_id,
2421 bmc->id.device_id)) { 2423 bmc->id.device_id)) {
2422 if (!warn_printed) { 2424 if (!warn_printed) {
@@ -2446,7 +2448,7 @@ static int ipmi_bmc_register(ipmi_smi_t intf, int ifnum,
2446 " Unable to allocate platform device\n"); 2448 " Unable to allocate platform device\n");
2447 return -ENOMEM; 2449 return -ENOMEM;
2448 } 2450 }
2449 bmc->dev->dev.driver = &ipmidriver; 2451 bmc->dev->dev.driver = &ipmidriver.driver;
2450 dev_set_drvdata(&bmc->dev->dev, bmc); 2452 dev_set_drvdata(&bmc->dev->dev, bmc);
2451 kref_init(&bmc->refcount); 2453 kref_init(&bmc->refcount);
2452 2454
@@ -4247,7 +4249,7 @@ static int ipmi_init_msghandler(void)
4247 if (initialized) 4249 if (initialized)
4248 return 0; 4250 return 0;
4249 4251
4250 rv = driver_register(&ipmidriver); 4252 rv = driver_register(&ipmidriver.driver);
4251 if (rv) { 4253 if (rv) {
4252 printk(KERN_ERR PFX "Could not register IPMI driver\n"); 4254 printk(KERN_ERR PFX "Could not register IPMI driver\n");
4253 return rv; 4255 return rv;
@@ -4308,7 +4310,7 @@ static __exit void cleanup_ipmi(void)
4308 remove_proc_entry(proc_ipmi_root->name, NULL); 4310 remove_proc_entry(proc_ipmi_root->name, NULL);
4309#endif /* CONFIG_PROC_FS */ 4311#endif /* CONFIG_PROC_FS */
4310 4312
4311 driver_unregister(&ipmidriver); 4313 driver_unregister(&ipmidriver.driver);
4312 4314
4313 initialized = 0; 4315 initialized = 0;
4314 4316
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 3123bf57ad91..3000135f2ead 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -114,9 +114,11 @@ static char *si_to_str[] = { "kcs", "smic", "bt" };
114 114
115#define DEVICE_NAME "ipmi_si" 115#define DEVICE_NAME "ipmi_si"
116 116
117static struct device_driver ipmi_driver = { 117static struct platform_driver ipmi_driver = {
118 .name = DEVICE_NAME, 118 .driver = {
119 .bus = &platform_bus_type 119 .name = DEVICE_NAME,
120 .bus = &platform_bus_type
121 }
120}; 122};
121 123
122 124
@@ -2868,7 +2870,7 @@ static int try_smi_init(struct smi_info *new_smi)
2868 goto out_err; 2870 goto out_err;
2869 } 2871 }
2870 new_smi->dev = &new_smi->pdev->dev; 2872 new_smi->dev = &new_smi->pdev->dev;
2871 new_smi->dev->driver = &ipmi_driver; 2873 new_smi->dev->driver = &ipmi_driver.driver;
2872 2874
2873 rv = platform_device_add(new_smi->pdev); 2875 rv = platform_device_add(new_smi->pdev);
2874 if (rv) { 2876 if (rv) {
@@ -2983,7 +2985,7 @@ static __devinit int init_ipmi_si(void)
2983 initialized = 1; 2985 initialized = 1;
2984 2986
2985 /* Register the device drivers. */ 2987 /* Register the device drivers. */
2986 rv = driver_register(&ipmi_driver); 2988 rv = driver_register(&ipmi_driver.driver);
2987 if (rv) { 2989 if (rv) {
2988 printk(KERN_ERR 2990 printk(KERN_ERR
2989 "init_ipmi_si: Unable to register driver: %d\n", 2991 "init_ipmi_si: Unable to register driver: %d\n",
@@ -3052,7 +3054,7 @@ static __devinit int init_ipmi_si(void)
3052#ifdef CONFIG_PPC_OF 3054#ifdef CONFIG_PPC_OF
3053 of_unregister_platform_driver(&ipmi_of_platform_driver); 3055 of_unregister_platform_driver(&ipmi_of_platform_driver);
3054#endif 3056#endif
3055 driver_unregister(&ipmi_driver); 3057 driver_unregister(&ipmi_driver.driver);
3056 printk(KERN_WARNING 3058 printk(KERN_WARNING
3057 "ipmi_si: Unable to find any System Interface(s)\n"); 3059 "ipmi_si: Unable to find any System Interface(s)\n");
3058 return -ENODEV; 3060 return -ENODEV;
@@ -3151,7 +3153,7 @@ static __exit void cleanup_ipmi_si(void)
3151 cleanup_one_si(e); 3153 cleanup_one_si(e);
3152 mutex_unlock(&smi_infos_lock); 3154 mutex_unlock(&smi_infos_lock);
3153 3155
3154 driver_unregister(&ipmi_driver); 3156 driver_unregister(&ipmi_driver.driver);
3155} 3157}
3156module_exit(cleanup_ipmi_si); 3158module_exit(cleanup_ipmi_si);
3157 3159
diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c
index 7d30ee1d3fca..04e4549299ba 100644
--- a/drivers/char/isicom.c
+++ b/drivers/char/isicom.c
@@ -7,12 +7,14 @@
7 * Original driver code supplied by Multi-Tech 7 * Original driver code supplied by Multi-Tech
8 * 8 *
9 * Changes 9 * Changes
10 * 1/9/98 alan@redhat.com Merge to 2.0.x kernel tree 10 * 1/9/98 alan@lxorguk.ukuu.org.uk
11 * Merge to 2.0.x kernel tree
11 * Obtain and use official major/minors 12 * Obtain and use official major/minors
12 * Loader switched to a misc device 13 * Loader switched to a misc device
13 * (fixed range check bug as a side effect) 14 * (fixed range check bug as a side effect)
14 * Printk clean up 15 * Printk clean up
15 * 9/12/98 alan@redhat.com Rough port to 2.1.x 16 * 9/12/98 alan@lxorguk.ukuu.org.uk
17 * Rough port to 2.1.x
16 * 18 *
17 * 10/6/99 sameer Merged the ISA and PCI drivers to 19 * 10/6/99 sameer Merged the ISA and PCI drivers to
18 * a new unified driver. 20 * a new unified driver.
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/mxser.c b/drivers/char/mxser.c
index 8beef50f95a0..047766915411 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -14,7 +14,8 @@
14 * (at your option) any later version. 14 * (at your option) any later version.
15 * 15 *
16 * Fed through a cleanup, indent and remove of non 2.6 code by Alan Cox 16 * Fed through a cleanup, indent and remove of non 2.6 code by Alan Cox
17 * <alan@redhat.com>. The original 1.8 code is available on www.moxa.com. 17 * <alan@lxorguk.ukuu.org.uk>. The original 1.8 code is available on
18 * www.moxa.com.
18 * - Fixed x86_64 cleanness 19 * - Fixed x86_64 cleanness
19 */ 20 */
20 21
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/sonypi.c b/drivers/char/sonypi.c
index 2457b07dabd6..f4374437a033 100644
--- a/drivers/char/sonypi.c
+++ b/drivers/char/sonypi.c
@@ -523,7 +523,7 @@ static int acpi_driver_registered;
523 523
524static int sonypi_ec_write(u8 addr, u8 value) 524static int sonypi_ec_write(u8 addr, u8 value)
525{ 525{
526#ifdef CONFIG_ACPI_EC 526#ifdef CONFIG_ACPI
527 if (SONYPI_ACPI_ACTIVE) 527 if (SONYPI_ACPI_ACTIVE)
528 return ec_write(addr, value); 528 return ec_write(addr, value);
529#endif 529#endif
@@ -539,7 +539,7 @@ static int sonypi_ec_write(u8 addr, u8 value)
539 539
540static int sonypi_ec_read(u8 addr, u8 *value) 540static int sonypi_ec_read(u8 addr, u8 *value)
541{ 541{
542#ifdef CONFIG_ACPI_EC 542#ifdef CONFIG_ACPI
543 if (SONYPI_ACPI_ACTIVE) 543 if (SONYPI_ACPI_ACTIVE)
544 return ec_read(addr, value); 544 return ec_read(addr, value);
545#endif 545#endif
diff --git a/drivers/char/specialix.c b/drivers/char/specialix.c
index 242fd46fda22..a16b94f12eb2 100644
--- a/drivers/char/specialix.c
+++ b/drivers/char/specialix.c
@@ -72,7 +72,7 @@
72/* 72/*
73 * There is a bunch of documentation about the card, jumpers, config 73 * There is a bunch of documentation about the card, jumpers, config
74 * settings, restrictions, cables, device names and numbers in 74 * settings, restrictions, cables, device names and numbers in
75 * Documentation/specialix.txt 75 * Documentation/serial/specialix.txt
76 */ 76 */
77 77
78#include <linux/module.h> 78#include <linux/module.h>
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 d8f83e26e4a4..008176edbd64 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -1644,7 +1644,10 @@ static void reset_terminal(struct vc_data *vc, int do_clear)
1644 vc->vc_tab_stop[1] = 1644 vc->vc_tab_stop[1] =
1645 vc->vc_tab_stop[2] = 1645 vc->vc_tab_stop[2] =
1646 vc->vc_tab_stop[3] = 1646 vc->vc_tab_stop[3] =
1647 vc->vc_tab_stop[4] = 0x01010101; 1647 vc->vc_tab_stop[4] =
1648 vc->vc_tab_stop[5] =
1649 vc->vc_tab_stop[6] =
1650 vc->vc_tab_stop[7] = 0x01010101;
1648 1651
1649 vc->vc_bell_pitch = DEFAULT_BELL_PITCH; 1652 vc->vc_bell_pitch = DEFAULT_BELL_PITCH;
1650 vc->vc_bell_duration = DEFAULT_BELL_DURATION; 1653 vc->vc_bell_duration = DEFAULT_BELL_DURATION;
@@ -1935,7 +1938,10 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, int c)
1935 vc->vc_tab_stop[1] = 1938 vc->vc_tab_stop[1] =
1936 vc->vc_tab_stop[2] = 1939 vc->vc_tab_stop[2] =
1937 vc->vc_tab_stop[3] = 1940 vc->vc_tab_stop[3] =
1938 vc->vc_tab_stop[4] = 0; 1941 vc->vc_tab_stop[4] =
1942 vc->vc_tab_stop[5] =
1943 vc->vc_tab_stop[6] =
1944 vc->vc_tab_stop[7] = 0;
1939 } 1945 }
1940 return; 1946 return;
1941 case 'm': 1947 case 'm':
@@ -2268,7 +2274,7 @@ rescan_last_byte:
2268 continue; /* nothing to display */ 2274 continue; /* nothing to display */
2269 } 2275 }
2270 /* Glyph not found */ 2276 /* Glyph not found */
2271 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)) {
2272 /* 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.
2273 This would make absolutely no sense with Unicode in mind, 2279 This would make absolutely no sense with Unicode in mind,
2274 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/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index 5bed73329ef8..8504a2108557 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -65,12 +65,14 @@ static void cpuidle_idle_call(void)
65 return; 65 return;
66 } 66 }
67 67
68#if 0
69 /* shows regressions, re-enable for 2.6.29 */
68 /* 70 /*
69 * run any timers that can be run now, at this point 71 * run any timers that can be run now, at this point
70 * before calculating the idle duration etc. 72 * before calculating the idle duration etc.
71 */ 73 */
72 hrtimer_peek_ahead_timers(); 74 hrtimer_peek_ahead_timers();
73 75#endif
74 /* ask the governor for the next state */ 76 /* ask the governor for the next state */
75 next_state = cpuidle_curr_governor->select(dev); 77 next_state = cpuidle_curr_governor->select(dev);
76 if (need_resched()) 78 if (need_resched())
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/dca/dca-core.c b/drivers/dca/dca-core.c
index ec249d2db633..d883e1b8bb8c 100644
--- a/drivers/dca/dca-core.c
+++ b/drivers/dca/dca-core.c
@@ -270,6 +270,6 @@ static void __exit dca_exit(void)
270 dca_sysfs_exit(); 270 dca_sysfs_exit();
271} 271}
272 272
273module_init(dca_init); 273subsys_initcall(dca_init);
274module_exit(dca_exit); 274module_exit(dca_exit);
275 275
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index dc003a3a787d..5317e08221ec 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -399,8 +399,8 @@ int dma_async_device_register(struct dma_device *device)
399 chan->chan_id = chancnt++; 399 chan->chan_id = chancnt++;
400 chan->dev.class = &dma_devclass; 400 chan->dev.class = &dma_devclass;
401 chan->dev.parent = device->dev; 401 chan->dev.parent = device->dev;
402 snprintf(chan->dev.bus_id, BUS_ID_SIZE, "dma%dchan%d", 402 dev_set_name(&chan->dev, "dma%dchan%d",
403 device->dev_id, chan->chan_id); 403 device->dev_id, chan->chan_id);
404 404
405 rc = device_register(&chan->dev); 405 rc = device_register(&chan->dev);
406 if (rc) { 406 if (rc) {
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index d1e381e35a9e..ed9636bfb54a 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -20,11 +20,11 @@ static unsigned int test_buf_size = 16384;
20module_param(test_buf_size, uint, S_IRUGO); 20module_param(test_buf_size, uint, S_IRUGO);
21MODULE_PARM_DESC(test_buf_size, "Size of the memcpy test buffer"); 21MODULE_PARM_DESC(test_buf_size, "Size of the memcpy test buffer");
22 22
23static char test_channel[BUS_ID_SIZE]; 23static char test_channel[20];
24module_param_string(channel, test_channel, sizeof(test_channel), S_IRUGO); 24module_param_string(channel, test_channel, sizeof(test_channel), S_IRUGO);
25MODULE_PARM_DESC(channel, "Bus ID of the channel to test (default: any)"); 25MODULE_PARM_DESC(channel, "Bus ID of the channel to test (default: any)");
26 26
27static char test_device[BUS_ID_SIZE]; 27static char test_device[20];
28module_param_string(device, test_device, sizeof(test_device), S_IRUGO); 28module_param_string(device, test_device, sizeof(test_device), S_IRUGO);
29MODULE_PARM_DESC(device, "Bus ID of the DMA Engine to test (default: any)"); 29MODULE_PARM_DESC(device, "Bus ID of the DMA Engine to test (default: any)");
30 30
@@ -80,14 +80,14 @@ static bool dmatest_match_channel(struct dma_chan *chan)
80{ 80{
81 if (test_channel[0] == '\0') 81 if (test_channel[0] == '\0')
82 return true; 82 return true;
83 return strcmp(chan->dev.bus_id, test_channel) == 0; 83 return strcmp(dev_name(&chan->dev), test_channel) == 0;
84} 84}
85 85
86static bool dmatest_match_device(struct dma_device *device) 86static bool dmatest_match_device(struct dma_device *device)
87{ 87{
88 if (test_device[0] == '\0') 88 if (test_device[0] == '\0')
89 return true; 89 return true;
90 return strcmp(device->dev->bus_id, test_device) == 0; 90 return strcmp(dev_name(device->dev), test_device) == 0;
91} 91}
92 92
93static unsigned long dmatest_random(void) 93static unsigned long dmatest_random(void)
@@ -332,7 +332,7 @@ static enum dma_state_client dmatest_add_channel(struct dma_chan *chan)
332 332
333 dtc = kmalloc(sizeof(struct dmatest_chan), GFP_KERNEL); 333 dtc = kmalloc(sizeof(struct dmatest_chan), GFP_KERNEL);
334 if (!dtc) { 334 if (!dtc) {
335 pr_warning("dmatest: No memory for %s\n", chan->dev.bus_id); 335 pr_warning("dmatest: No memory for %s\n", dev_name(&chan->dev));
336 return DMA_NAK; 336 return DMA_NAK;
337 } 337 }
338 338
@@ -343,16 +343,16 @@ static enum dma_state_client dmatest_add_channel(struct dma_chan *chan)
343 thread = kzalloc(sizeof(struct dmatest_thread), GFP_KERNEL); 343 thread = kzalloc(sizeof(struct dmatest_thread), GFP_KERNEL);
344 if (!thread) { 344 if (!thread) {
345 pr_warning("dmatest: No memory for %s-test%u\n", 345 pr_warning("dmatest: No memory for %s-test%u\n",
346 chan->dev.bus_id, i); 346 dev_name(&chan->dev), i);
347 break; 347 break;
348 } 348 }
349 thread->chan = dtc->chan; 349 thread->chan = dtc->chan;
350 smp_wmb(); 350 smp_wmb();
351 thread->task = kthread_run(dmatest_func, thread, "%s-test%u", 351 thread->task = kthread_run(dmatest_func, thread, "%s-test%u",
352 chan->dev.bus_id, i); 352 dev_name(&chan->dev), i);
353 if (IS_ERR(thread->task)) { 353 if (IS_ERR(thread->task)) {
354 pr_warning("dmatest: Failed to run thread %s-test%u\n", 354 pr_warning("dmatest: Failed to run thread %s-test%u\n",
355 chan->dev.bus_id, i); 355 dev_name(&chan->dev), i);
356 kfree(thread); 356 kfree(thread);
357 break; 357 break;
358 } 358 }
@@ -362,7 +362,7 @@ static enum dma_state_client dmatest_add_channel(struct dma_chan *chan)
362 list_add_tail(&thread->node, &dtc->threads); 362 list_add_tail(&thread->node, &dtc->threads);
363 } 363 }
364 364
365 pr_info("dmatest: Started %u threads using %s\n", i, chan->dev.bus_id); 365 pr_info("dmatest: Started %u threads using %s\n", i, dev_name(&chan->dev));
366 366
367 list_add_tail(&dtc->node, &dmatest_channels); 367 list_add_tail(&dtc->node, &dmatest_channels);
368 nr_channels++; 368 nr_channels++;
@@ -379,7 +379,7 @@ static enum dma_state_client dmatest_remove_channel(struct dma_chan *chan)
379 list_del(&dtc->node); 379 list_del(&dtc->node);
380 dmatest_cleanup_channel(dtc); 380 dmatest_cleanup_channel(dtc);
381 pr_debug("dmatest: lost channel %s\n", 381 pr_debug("dmatest: lost channel %s\n",
382 chan->dev.bus_id); 382 dev_name(&chan->dev));
383 return DMA_ACK; 383 return DMA_ACK;
384 } 384 }
385 } 385 }
@@ -418,7 +418,7 @@ dmatest_event(struct dma_client *client, struct dma_chan *chan,
418 418
419 default: 419 default:
420 pr_info("dmatest: Unhandled event %u (%s)\n", 420 pr_info("dmatest: Unhandled event %u (%s)\n",
421 state, chan->dev.bus_id); 421 state, dev_name(&chan->dev));
422 break; 422 break;
423 } 423 }
424 424
diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c
index b0438c4f0c30..ecd743f7cc61 100644
--- a/drivers/dma/ioat_dma.c
+++ b/drivers/dma/ioat_dma.c
@@ -525,7 +525,7 @@ static dma_cookie_t ioat1_tx_submit(struct dma_async_tx_descriptor *tx)
525 } 525 }
526 526
527 hw->ctl = IOAT_DMA_DESCRIPTOR_CTL_CP_STS; 527 hw->ctl = IOAT_DMA_DESCRIPTOR_CTL_CP_STS;
528 if (new->async_tx.callback) { 528 if (first->async_tx.callback) {
529 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_INT_GN; 529 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_INT_GN;
530 if (first != new) { 530 if (first != new) {
531 /* move callback into to last desc */ 531 /* move callback into to last desc */
@@ -617,7 +617,7 @@ static dma_cookie_t ioat2_tx_submit(struct dma_async_tx_descriptor *tx)
617 } 617 }
618 618
619 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_CP_STS; 619 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_CP_STS;
620 if (new->async_tx.callback) { 620 if (first->async_tx.callback) {
621 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_INT_GN; 621 hw->ctl |= IOAT_DMA_DESCRIPTOR_CTL_INT_GN;
622 if (first != new) { 622 if (first != new) {
623 /* move callback into to last desc */ 623 /* move callback into to last desc */
@@ -807,6 +807,12 @@ static void ioat_dma_free_chan_resources(struct dma_chan *chan)
807 struct ioat_desc_sw *desc, *_desc; 807 struct ioat_desc_sw *desc, *_desc;
808 int in_use_descs = 0; 808 int in_use_descs = 0;
809 809
810 /* Before freeing channel resources first check
811 * if they have been previously allocated for this channel.
812 */
813 if (ioat_chan->desccount == 0)
814 return;
815
810 tasklet_disable(&ioat_chan->cleanup_task); 816 tasklet_disable(&ioat_chan->cleanup_task);
811 ioat_dma_memcpy_cleanup(ioat_chan); 817 ioat_dma_memcpy_cleanup(ioat_chan);
812 818
@@ -869,6 +875,7 @@ static void ioat_dma_free_chan_resources(struct dma_chan *chan)
869 ioat_chan->last_completion = ioat_chan->completion_addr = 0; 875 ioat_chan->last_completion = ioat_chan->completion_addr = 0;
870 ioat_chan->pending = 0; 876 ioat_chan->pending = 0;
871 ioat_chan->dmacount = 0; 877 ioat_chan->dmacount = 0;
878 ioat_chan->desccount = 0;
872 ioat_chan->watchdog_completion = 0; 879 ioat_chan->watchdog_completion = 0;
873 ioat_chan->last_compl_desc_addr_hw = 0; 880 ioat_chan->last_compl_desc_addr_hw = 0;
874 ioat_chan->watchdog_tcp_cookie = 881 ioat_chan->watchdog_tcp_cookie =
diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c
index 71fba82462cb..c7a9306d951d 100644
--- a/drivers/dma/iop-adma.c
+++ b/drivers/dma/iop-adma.c
@@ -411,6 +411,7 @@ iop_adma_tx_submit(struct dma_async_tx_descriptor *tx)
411 int slot_cnt; 411 int slot_cnt;
412 int slots_per_op; 412 int slots_per_op;
413 dma_cookie_t cookie; 413 dma_cookie_t cookie;
414 dma_addr_t next_dma;
414 415
415 grp_start = sw_desc->group_head; 416 grp_start = sw_desc->group_head;
416 slot_cnt = grp_start->slot_cnt; 417 slot_cnt = grp_start->slot_cnt;
@@ -425,12 +426,12 @@ iop_adma_tx_submit(struct dma_async_tx_descriptor *tx)
425 &old_chain_tail->chain_node); 426 &old_chain_tail->chain_node);
426 427
427 /* fix up the hardware chain */ 428 /* fix up the hardware chain */
428 iop_desc_set_next_desc(old_chain_tail, grp_start->async_tx.phys); 429 next_dma = grp_start->async_tx.phys;
430 iop_desc_set_next_desc(old_chain_tail, next_dma);
431 BUG_ON(iop_desc_get_next_desc(old_chain_tail) != next_dma); /* flush */
429 432
430 /* 1/ don't add pre-chained descriptors 433 /* check for pre-chained descriptors */
431 * 2/ dummy read to flush next_desc write 434 iop_paranoia(iop_desc_get_next_desc(sw_desc));
432 */
433 BUG_ON(iop_desc_get_next_desc(sw_desc));
434 435
435 /* increment the pending count by the number of slots 436 /* increment the pending count by the number of slots
436 * memcpy operations have a 1:1 (slot:operation) relation 437 * memcpy operations have a 1:1 (slot:operation) relation
diff --git a/drivers/dma/iovlock.c b/drivers/dma/iovlock.c
index e763d723e4cf..9f6fe46a9b87 100644
--- a/drivers/dma/iovlock.c
+++ b/drivers/dma/iovlock.c
@@ -55,7 +55,6 @@ struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len)
55 int nr_iovecs = 0; 55 int nr_iovecs = 0;
56 int iovec_len_used = 0; 56 int iovec_len_used = 0;
57 int iovec_pages_used = 0; 57 int iovec_pages_used = 0;
58 long err;
59 58
60 /* don't pin down non-user-based iovecs */ 59 /* don't pin down non-user-based iovecs */
61 if (segment_eq(get_fs(), KERNEL_DS)) 60 if (segment_eq(get_fs(), KERNEL_DS))
@@ -72,23 +71,21 @@ struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len)
72 local_list = kmalloc(sizeof(*local_list) 71 local_list = kmalloc(sizeof(*local_list)
73 + (nr_iovecs * sizeof (struct dma_page_list)) 72 + (nr_iovecs * sizeof (struct dma_page_list))
74 + (iovec_pages_used * sizeof (struct page*)), GFP_KERNEL); 73 + (iovec_pages_used * sizeof (struct page*)), GFP_KERNEL);
75 if (!local_list) { 74 if (!local_list)
76 err = -ENOMEM;
77 goto out; 75 goto out;
78 }
79 76
80 /* list of pages starts right after the page list array */ 77 /* list of pages starts right after the page list array */
81 pages = (struct page **) &local_list->page_list[nr_iovecs]; 78 pages = (struct page **) &local_list->page_list[nr_iovecs];
82 79
80 local_list->nr_iovecs = 0;
81
83 for (i = 0; i < nr_iovecs; i++) { 82 for (i = 0; i < nr_iovecs; i++) {
84 struct dma_page_list *page_list = &local_list->page_list[i]; 83 struct dma_page_list *page_list = &local_list->page_list[i];
85 84
86 len -= iov[i].iov_len; 85 len -= iov[i].iov_len;
87 86
88 if (!access_ok(VERIFY_WRITE, iov[i].iov_base, iov[i].iov_len)) { 87 if (!access_ok(VERIFY_WRITE, iov[i].iov_base, iov[i].iov_len))
89 err = -EFAULT;
90 goto unpin; 88 goto unpin;
91 }
92 89
93 page_list->nr_pages = num_pages_spanned(&iov[i]); 90 page_list->nr_pages = num_pages_spanned(&iov[i]);
94 page_list->base_address = iov[i].iov_base; 91 page_list->base_address = iov[i].iov_base;
@@ -109,10 +106,8 @@ struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len)
109 NULL); 106 NULL);
110 up_read(&current->mm->mmap_sem); 107 up_read(&current->mm->mmap_sem);
111 108
112 if (ret != page_list->nr_pages) { 109 if (ret != page_list->nr_pages)
113 err = -ENOMEM;
114 goto unpin; 110 goto unpin;
115 }
116 111
117 local_list->nr_iovecs = i + 1; 112 local_list->nr_iovecs = i + 1;
118 } 113 }
@@ -122,7 +117,7 @@ struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len)
122unpin: 117unpin:
123 dma_unpin_iovec_pages(local_list); 118 dma_unpin_iovec_pages(local_list);
124out: 119out:
125 return ERR_PTR(err); 120 return NULL;
126} 121}
127 122
128void dma_unpin_iovec_pages(struct dma_pinned_list *pinned_list) 123void dma_unpin_iovec_pages(struct dma_pinned_list *pinned_list)
diff --git a/drivers/edac/i5000_edac.c b/drivers/edac/i5000_edac.c
index f0d9b415db50..d335086f4a26 100644
--- a/drivers/edac/i5000_edac.c
+++ b/drivers/edac/i5000_edac.c
@@ -1381,6 +1381,7 @@ static int i5000_probe1(struct pci_dev *pdev, int dev_idx)
1381 if (mci == NULL) 1381 if (mci == NULL)
1382 return -ENOMEM; 1382 return -ENOMEM;
1383 1383
1384 kobject_get(&mci->edac_mci_kobj);
1384 debugf0("MC: " __FILE__ ": %s(): mci = %p\n", __func__, mci); 1385 debugf0("MC: " __FILE__ ": %s(): mci = %p\n", __func__, mci);
1385 1386
1386 mci->dev = &pdev->dev; /* record ptr to the generic device */ 1387 mci->dev = &pdev->dev; /* record ptr to the generic device */
@@ -1453,6 +1454,7 @@ fail1:
1453 i5000_put_devices(mci); 1454 i5000_put_devices(mci);
1454 1455
1455fail0: 1456fail0:
1457 kobject_put(&mci->edac_mci_kobj);
1456 edac_mc_free(mci); 1458 edac_mc_free(mci);
1457 return -ENODEV; 1459 return -ENODEV;
1458} 1460}
@@ -1498,7 +1500,7 @@ static void __devexit i5000_remove_one(struct pci_dev *pdev)
1498 1500
1499 /* retrieve references to resources, and free those resources */ 1501 /* retrieve references to resources, and free those resources */
1500 i5000_put_devices(mci); 1502 i5000_put_devices(mci);
1501 1503 kobject_put(&mci->edac_mci_kobj);
1502 edac_mc_free(mci); 1504 edac_mc_free(mci);
1503} 1505}
1504 1506
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-device.c b/drivers/firewire/fw-device.c
index 3fccdd484100..6b9be42c7b98 100644
--- a/drivers/firewire/fw-device.c
+++ b/drivers/firewire/fw-device.c
@@ -587,8 +587,7 @@ static void create_units(struct fw_device *device)
587 unit->device.bus = &fw_bus_type; 587 unit->device.bus = &fw_bus_type;
588 unit->device.type = &fw_unit_type; 588 unit->device.type = &fw_unit_type;
589 unit->device.parent = &device->device; 589 unit->device.parent = &device->device;
590 snprintf(unit->device.bus_id, sizeof(unit->device.bus_id), 590 dev_set_name(&unit->device, "%s.%d", dev_name(&device->device), i++);
591 "%s.%d", device->device.bus_id, i++);
592 591
593 init_fw_attribute_group(&unit->device, 592 init_fw_attribute_group(&unit->device,
594 fw_unit_attributes, 593 fw_unit_attributes,
@@ -711,8 +710,7 @@ static void fw_device_init(struct work_struct *work)
711 device->device.type = &fw_device_type; 710 device->device.type = &fw_device_type;
712 device->device.parent = device->card->device; 711 device->device.parent = device->card->device;
713 device->device.devt = MKDEV(fw_cdev_major, minor); 712 device->device.devt = MKDEV(fw_cdev_major, minor);
714 snprintf(device->device.bus_id, sizeof(device->device.bus_id), 713 dev_set_name(&device->device, "fw%d", minor);
715 "fw%d", minor);
716 714
717 init_fw_attribute_group(&device->device, 715 init_fw_attribute_group(&device->device,
718 fw_device_attributes, 716 fw_device_attributes,
@@ -741,13 +739,13 @@ static void fw_device_init(struct work_struct *work)
741 if (device->config_rom_retries) 739 if (device->config_rom_retries)
742 fw_notify("created device %s: GUID %08x%08x, S%d00, " 740 fw_notify("created device %s: GUID %08x%08x, S%d00, "
743 "%d config ROM retries\n", 741 "%d config ROM retries\n",
744 device->device.bus_id, 742 dev_name(&device->device),
745 device->config_rom[3], device->config_rom[4], 743 device->config_rom[3], device->config_rom[4],
746 1 << device->max_speed, 744 1 << device->max_speed,
747 device->config_rom_retries); 745 device->config_rom_retries);
748 else 746 else
749 fw_notify("created device %s: GUID %08x%08x, S%d00\n", 747 fw_notify("created device %s: GUID %08x%08x, S%d00\n",
750 device->device.bus_id, 748 dev_name(&device->device),
751 device->config_rom[3], device->config_rom[4], 749 device->config_rom[3], device->config_rom[4],
752 1 << device->max_speed); 750 1 << device->max_speed);
753 device->config_rom_retries = 0; 751 device->config_rom_retries = 0;
@@ -883,12 +881,12 @@ static void fw_device_refresh(struct work_struct *work)
883 FW_DEVICE_RUNNING) == FW_DEVICE_SHUTDOWN) 881 FW_DEVICE_RUNNING) == FW_DEVICE_SHUTDOWN)
884 goto gone; 882 goto gone;
885 883
886 fw_notify("refreshed device %s\n", device->device.bus_id); 884 fw_notify("refreshed device %s\n", dev_name(&device->device));
887 device->config_rom_retries = 0; 885 device->config_rom_retries = 0;
888 goto out; 886 goto out;
889 887
890 give_up: 888 give_up:
891 fw_notify("giving up on refresh of device %s\n", device->device.bus_id); 889 fw_notify("giving up on refresh of device %s\n", dev_name(&device->device));
892 gone: 890 gone:
893 atomic_set(&device->state, FW_DEVICE_SHUTDOWN); 891 atomic_set(&device->state, FW_DEVICE_SHUTDOWN);
894 fw_device_shutdown(work); 892 fw_device_shutdown(work);
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index 8e16bfbdcb3d..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;
@@ -2468,7 +2471,7 @@ pci_probe(struct pci_dev *dev, const struct pci_device_id *ent)
2468 goto fail_self_id; 2471 goto fail_self_id;
2469 2472
2470 fw_notify("Added fw-ohci device %s, OHCI version %x.%x\n", 2473 fw_notify("Added fw-ohci device %s, OHCI version %x.%x\n",
2471 dev->dev.bus_id, version >> 16, version & 0xff); 2474 dev_name(&dev->dev), version >> 16, version & 0xff);
2472 return 0; 2475 return 0;
2473 2476
2474 fail_self_id: 2477 fail_self_id:
diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c
index d334cac5e1fc..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 },
@@ -1135,7 +1140,7 @@ static int sbp2_probe(struct device *dev)
1135 tgt->unit = unit; 1140 tgt->unit = unit;
1136 kref_init(&tgt->kref); 1141 kref_init(&tgt->kref);
1137 INIT_LIST_HEAD(&tgt->lu_list); 1142 INIT_LIST_HEAD(&tgt->lu_list);
1138 tgt->bus_id = unit->device.bus_id; 1143 tgt->bus_id = dev_name(&unit->device);
1139 tgt->guid = (u64)device->config_rom[3] << 32 | device->config_rom[4]; 1144 tgt->guid = (u64)device->config_rom[3] << 32 | device->config_rom[4];
1140 1145
1141 if (fw_device_enable_phys_dma(device) < 0) 1146 if (fw_device_enable_phys_dma(device) < 0)
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/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 3e526b6d00cb..8daf4793ac32 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -81,9 +81,9 @@ static void dmi_table(u8 *buf, int len, int num,
81 const struct dmi_header *dm = (const struct dmi_header *)data; 81 const struct dmi_header *dm = (const struct dmi_header *)data;
82 82
83 /* 83 /*
84 * We want to know the total length (formated area and strings) 84 * We want to know the total length (formatted area and
85 * before decoding to make sure we won't run off the table in 85 * strings) before decoding to make sure we won't run off the
86 * dmi_decode or dmi_string 86 * table in dmi_decode or dmi_string
87 */ 87 */
88 data += dm->length; 88 data += dm->length;
89 while ((data - buf < len - 1) && (data[0] || data[1])) 89 while ((data - buf < len - 1) && (data[0] || data[1]))
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 7f2ee27fe76b..48f49d93d249 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -65,6 +65,14 @@ config GPIO_SYSFS
65 65
66# put expanders in the right section, in alphabetical order 66# put expanders in the right section, in alphabetical order
67 67
68comment "Memory mapped GPIO expanders:"
69
70config GPIO_XILINX
71 bool "Xilinx GPIO support"
72 depends on PPC_OF
73 help
74 Say yes here to support the Xilinx FPGA GPIO device
75
68comment "I2C GPIO expanders:" 76comment "I2C GPIO expanders:"
69 77
70config GPIO_MAX732X 78config GPIO_MAX732X
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 6aafdeb9ad03..49ac64e515e6 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -10,4 +10,5 @@ obj-$(CONFIG_GPIO_MCP23S08) += mcp23s08.o
10obj-$(CONFIG_GPIO_PCA953X) += pca953x.o 10obj-$(CONFIG_GPIO_PCA953X) += pca953x.o
11obj-$(CONFIG_GPIO_PCF857X) += pcf857x.o 11obj-$(CONFIG_GPIO_PCF857X) += pcf857x.o
12obj-$(CONFIG_GPIO_TWL4030) += twl4030-gpio.o 12obj-$(CONFIG_GPIO_TWL4030) += twl4030-gpio.o
13obj-$(CONFIG_GPIO_XILINX) += xilinx_gpio.o
13obj-$(CONFIG_GPIO_BT8XX) += bt8xxgpio.o 14obj-$(CONFIG_GPIO_BT8XX) += bt8xxgpio.o
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index faa1cc66e9cf..82020abc329e 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1134,7 +1134,7 @@ static void gpiolib_dbg_show(struct seq_file *s, struct gpio_chip *chip)
1134 continue; 1134 continue;
1135 1135
1136 is_out = test_bit(FLAG_IS_OUT, &gdesc->flags); 1136 is_out = test_bit(FLAG_IS_OUT, &gdesc->flags);
1137 seq_printf(s, " gpio-%-3d (%-12s) %s %s", 1137 seq_printf(s, " gpio-%-3d (%-20.20s) %s %s",
1138 gpio, gdesc->label, 1138 gpio, gdesc->label,
1139 is_out ? "out" : "in ", 1139 is_out ? "out" : "in ",
1140 chip->get 1140 chip->get
diff --git a/drivers/gpio/xilinx_gpio.c b/drivers/gpio/xilinx_gpio.c
new file mode 100644
index 000000000000..3c1177abebd3
--- /dev/null
+++ b/drivers/gpio/xilinx_gpio.c
@@ -0,0 +1,235 @@
1/*
2 * Xilinx gpio driver
3 *
4 * Copyright 2008 Xilinx, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2
8 * as published by the Free Software Foundation.
9 *
10 * You should have received a copy of the GNU General Public License
11 * along with this program; if not, write to the Free Software
12 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
13 */
14
15#include <linux/init.h>
16#include <linux/errno.h>
17#include <linux/of_device.h>
18#include <linux/of_platform.h>
19#include <linux/of_gpio.h>
20#include <linux/io.h>
21#include <linux/gpio.h>
22
23/* Register Offset Definitions */
24#define XGPIO_DATA_OFFSET (0x0) /* Data register */
25#define XGPIO_TRI_OFFSET (0x4) /* I/O direction register */
26
27struct xgpio_instance {
28 struct of_mm_gpio_chip mmchip;
29 u32 gpio_state; /* GPIO state shadow register */
30 u32 gpio_dir; /* GPIO direction shadow register */
31 spinlock_t gpio_lock; /* Lock used for synchronization */
32};
33
34/**
35 * xgpio_get - Read the specified signal of the GPIO device.
36 * @gc: Pointer to gpio_chip device structure.
37 * @gpio: GPIO signal number.
38 *
39 * This function reads the specified signal of the GPIO device. It returns 0 if
40 * the signal clear, 1 if signal is set or negative value on error.
41 */
42static int xgpio_get(struct gpio_chip *gc, unsigned int gpio)
43{
44 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
45
46 return (in_be32(mm_gc->regs + XGPIO_DATA_OFFSET) >> gpio) & 1;
47}
48
49/**
50 * xgpio_set - Write the specified signal of the GPIO device.
51 * @gc: Pointer to gpio_chip device structure.
52 * @gpio: GPIO signal number.
53 * @val: Value to be written to specified signal.
54 *
55 * This function writes the specified value in to the specified signal of the
56 * GPIO device.
57 */
58static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
59{
60 unsigned long flags;
61 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
62 struct xgpio_instance *chip =
63 container_of(mm_gc, struct xgpio_instance, mmchip);
64
65 spin_lock_irqsave(&chip->gpio_lock, flags);
66
67 /* Write to GPIO signal and set its direction to output */
68 if (val)
69 chip->gpio_state |= 1 << gpio;
70 else
71 chip->gpio_state &= ~(1 << gpio);
72 out_be32(mm_gc->regs + XGPIO_DATA_OFFSET, chip->gpio_state);
73
74 spin_unlock_irqrestore(&chip->gpio_lock, flags);
75}
76
77/**
78 * xgpio_dir_in - Set the direction of the specified GPIO signal as input.
79 * @gc: Pointer to gpio_chip device structure.
80 * @gpio: GPIO signal number.
81 *
82 * This function sets the direction of specified GPIO signal as input.
83 * It returns 0 if direction of GPIO signals is set as input otherwise it
84 * returns negative error value.
85 */
86static int xgpio_dir_in(struct gpio_chip *gc, unsigned int gpio)
87{
88 unsigned long flags;
89 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
90 struct xgpio_instance *chip =
91 container_of(mm_gc, struct xgpio_instance, mmchip);
92
93 spin_lock_irqsave(&chip->gpio_lock, flags);
94
95 /* Set the GPIO bit in shadow register and set direction as input */
96 chip->gpio_dir |= (1 << gpio);
97 out_be32(mm_gc->regs + XGPIO_TRI_OFFSET, chip->gpio_dir);
98
99 spin_unlock_irqrestore(&chip->gpio_lock, flags);
100
101 return 0;
102}
103
104/**
105 * xgpio_dir_out - Set the direction of the specified GPIO signal as output.
106 * @gc: Pointer to gpio_chip device structure.
107 * @gpio: GPIO signal number.
108 * @val: Value to be written to specified signal.
109 *
110 * This function sets the direction of specified GPIO signal as output. If all
111 * GPIO signals of GPIO chip is configured as input then it returns
112 * error otherwise it returns 0.
113 */
114static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
115{
116 unsigned long flags;
117 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
118 struct xgpio_instance *chip =
119 container_of(mm_gc, struct xgpio_instance, mmchip);
120
121 spin_lock_irqsave(&chip->gpio_lock, flags);
122
123 /* Write state of GPIO signal */
124 if (val)
125 chip->gpio_state |= 1 << gpio;
126 else
127 chip->gpio_state &= ~(1 << gpio);
128 out_be32(mm_gc->regs + XGPIO_DATA_OFFSET, chip->gpio_state);
129
130 /* Clear the GPIO bit in shadow register and set direction as output */
131 chip->gpio_dir &= (~(1 << gpio));
132 out_be32(mm_gc->regs + XGPIO_TRI_OFFSET, chip->gpio_dir);
133
134 spin_unlock_irqrestore(&chip->gpio_lock, flags);
135
136 return 0;
137}
138
139/**
140 * xgpio_save_regs - Set initial values of GPIO pins
141 * @mm_gc: pointer to memory mapped GPIO chip structure
142 */
143static void xgpio_save_regs(struct of_mm_gpio_chip *mm_gc)
144{
145 struct xgpio_instance *chip =
146 container_of(mm_gc, struct xgpio_instance, mmchip);
147
148 out_be32(mm_gc->regs + XGPIO_DATA_OFFSET, chip->gpio_state);
149 out_be32(mm_gc->regs + XGPIO_TRI_OFFSET, chip->gpio_dir);
150}
151
152/**
153 * xgpio_of_probe - Probe method for the GPIO device.
154 * @np: pointer to device tree node
155 *
156 * This function probes the GPIO device in the device tree. It initializes the
157 * driver data structure. It returns 0, if the driver is bound to the GPIO
158 * device, or a negative value if there is an error.
159 */
160static int __devinit xgpio_of_probe(struct device_node *np)
161{
162 struct xgpio_instance *chip;
163 struct of_gpio_chip *ofchip;
164 int status = 0;
165 const u32 *tree_info;
166
167 chip = kzalloc(sizeof(*chip), GFP_KERNEL);
168 if (!chip)
169 return -ENOMEM;
170 ofchip = &chip->mmchip.of_gc;
171
172 /* Update GPIO state shadow register with default value */
173 tree_info = of_get_property(np, "xlnx,dout-default", NULL);
174 if (tree_info)
175 chip->gpio_state = *tree_info;
176
177 /* Update GPIO direction shadow register with default value */
178 chip->gpio_dir = 0xFFFFFFFF; /* By default, all pins are inputs */
179 tree_info = of_get_property(np, "xlnx,tri-default", NULL);
180 if (tree_info)
181 chip->gpio_dir = *tree_info;
182
183 /* Check device node and parent device node for device width */
184 ofchip->gc.ngpio = 32; /* By default assume full GPIO controller */
185 tree_info = of_get_property(np, "xlnx,gpio-width", NULL);
186 if (!tree_info)
187 tree_info = of_get_property(np->parent,
188 "xlnx,gpio-width", NULL);
189 if (tree_info)
190 ofchip->gc.ngpio = *tree_info;
191
192 spin_lock_init(&chip->gpio_lock);
193
194 ofchip->gpio_cells = 2;
195 ofchip->gc.direction_input = xgpio_dir_in;
196 ofchip->gc.direction_output = xgpio_dir_out;
197 ofchip->gc.get = xgpio_get;
198 ofchip->gc.set = xgpio_set;
199
200 chip->mmchip.save_regs = xgpio_save_regs;
201
202 /* Call the OF gpio helper to setup and register the GPIO device */
203 status = of_mm_gpiochip_add(np, &chip->mmchip);
204 if (status) {
205 kfree(chip);
206 pr_err("%s: error in probe function with status %d\n",
207 np->full_name, status);
208 return status;
209 }
210 pr_info("XGpio: %s: registered\n", np->full_name);
211 return 0;
212}
213
214static struct of_device_id xgpio_of_match[] __devinitdata = {
215 { .compatible = "xlnx,xps-gpio-1.00.a", },
216 { /* end of list */ },
217};
218
219static int __init xgpio_init(void)
220{
221 struct device_node *np;
222
223 for_each_matching_node(np, xgpio_of_match)
224 xgpio_of_probe(np);
225
226 return 0;
227}
228
229/* Make sure we get initialized before anyone else tries to use us */
230subsys_initcall(xgpio_init);
231/* No exit call at the moment as we cannot unregister of GPIO chips */
232
233MODULE_AUTHOR("Xilinx, Inc.");
234MODULE_DESCRIPTION("Xilinx GPIO driver");
235MODULE_LICENSE("GPL");
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 96f416afc3f6..996097acb5e7 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -266,11 +266,19 @@ int drm_init(struct drm_driver *driver)
266 for (i = 0; driver->pci_driver.id_table[i].vendor != 0; i++) { 266 for (i = 0; driver->pci_driver.id_table[i].vendor != 0; i++) {
267 pid = (struct pci_device_id *)&driver->pci_driver.id_table[i]; 267 pid = (struct pci_device_id *)&driver->pci_driver.id_table[i];
268 268
269 /* Loop around setting up a DRM device for each PCI device
270 * matching our ID and device class. If we had the internal
271 * function that pci_get_subsys and pci_get_class used, we'd
272 * be able to just pass pid in instead of doing a two-stage
273 * thing.
274 */
269 pdev = NULL; 275 pdev = NULL;
270 /* pass back in pdev to account for multiple identical cards */
271 while ((pdev = 276 while ((pdev =
272 pci_get_subsys(pid->vendor, pid->device, pid->subvendor, 277 pci_get_subsys(pid->vendor, pid->device, pid->subvendor,
273 pid->subdevice, pdev)) != NULL) { 278 pid->subdevice, pdev)) != NULL) {
279 if ((pdev->class & pid->class_mask) != pid->class)
280 continue;
281
274 /* stealth mode requires a manual probe */ 282 /* stealth mode requires a manual probe */
275 pci_dev_get(pdev); 283 pci_dev_get(pdev);
276 drm_get_dev(pdev, pid, driver); 284 drm_get_dev(pdev, pid, driver);
@@ -297,6 +305,8 @@ static void drm_cleanup(struct drm_device * dev)
297 return; 305 return;
298 } 306 }
299 307
308 drm_vblank_cleanup(dev);
309
300 drm_lastclose(dev); 310 drm_lastclose(dev);
301 311
302 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 212a94f715b2..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,10 +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 dev->locked_tasklet_func = NULL;
284
285 return 0; 281 return 0;
286} 282}
287EXPORT_SYMBOL(drm_irq_uninstall); 283EXPORT_SYMBOL(drm_irq_uninstall);
@@ -699,81 +695,3 @@ void drm_handle_vblank(struct drm_device *dev, int crtc)
699 drm_vbl_send_signals(dev, crtc); 695 drm_vbl_send_signals(dev, crtc);
700} 696}
701EXPORT_SYMBOL(drm_handle_vblank); 697EXPORT_SYMBOL(drm_handle_vblank);
702
703/**
704 * Tasklet wrapper function.
705 *
706 * \param data DRM device in disguise.
707 *
708 * Attempts to grab the HW lock and calls the driver callback on success. On
709 * failure, leave the lock marked as contended so the callback can be called
710 * from drm_unlock().
711 */
712static void drm_locked_tasklet_func(unsigned long data)
713{
714 struct drm_device *dev = (struct drm_device *)data;
715 unsigned long irqflags;
716 void (*tasklet_func)(struct drm_device *);
717
718 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
719 tasklet_func = dev->locked_tasklet_func;
720 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
721
722 if (!tasklet_func ||
723 !drm_lock_take(&dev->lock,
724 DRM_KERNEL_CONTEXT)) {
725 return;
726 }
727
728 dev->lock.lock_time = jiffies;
729 atomic_inc(&dev->counts[_DRM_STAT_LOCKS]);
730
731 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
732 tasklet_func = dev->locked_tasklet_func;
733 dev->locked_tasklet_func = NULL;
734 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
735
736 if (tasklet_func != NULL)
737 tasklet_func(dev);
738
739 drm_lock_free(&dev->lock,
740 DRM_KERNEL_CONTEXT);
741}
742
743/**
744 * Schedule a tasklet to call back a driver hook with the HW lock held.
745 *
746 * \param dev DRM device.
747 * \param func Driver callback.
748 *
749 * This is intended for triggering actions that require the HW lock from an
750 * interrupt handler. The lock will be grabbed ASAP after the interrupt handler
751 * completes. Note that the callback may be called from interrupt or process
752 * context, it must not make any assumptions about this. Also, the HW lock will
753 * be held with the kernel context or any client context.
754 */
755void drm_locked_tasklet(struct drm_device *dev, void (*func)(struct drm_device *))
756{
757 unsigned long irqflags;
758 static DECLARE_TASKLET(drm_tasklet, drm_locked_tasklet_func, 0);
759
760 if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ) ||
761 test_bit(TASKLET_STATE_SCHED, &drm_tasklet.state))
762 return;
763
764 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
765
766 if (dev->locked_tasklet_func) {
767 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
768 return;
769 }
770
771 dev->locked_tasklet_func = func;
772
773 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
774
775 drm_tasklet.data = (unsigned long)dev;
776
777 tasklet_hi_schedule(&drm_tasklet);
778}
779EXPORT_SYMBOL(drm_locked_tasklet);
diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
index 888159e03d26..1cfa72031f8f 100644
--- a/drivers/gpu/drm/drm_lock.c
+++ b/drivers/gpu/drm/drm_lock.c
@@ -154,8 +154,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
154int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv) 154int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
155{ 155{
156 struct drm_lock *lock = data; 156 struct drm_lock *lock = data;
157 unsigned long irqflags;
158 void (*tasklet_func)(struct drm_device *);
159 157
160 if (lock->context == DRM_KERNEL_CONTEXT) { 158 if (lock->context == DRM_KERNEL_CONTEXT) {
161 DRM_ERROR("Process %d using kernel context %d\n", 159 DRM_ERROR("Process %d using kernel context %d\n",
@@ -163,13 +161,6 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
163 return -EINVAL; 161 return -EINVAL;
164 } 162 }
165 163
166 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
167 tasklet_func = dev->locked_tasklet_func;
168 dev->locked_tasklet_func = NULL;
169 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
170 if (tasklet_func != NULL)
171 tasklet_func(dev);
172
173 atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]); 164 atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]);
174 165
175 /* kernel_context_switch isn't used by any of the x86 drm 166 /* kernel_context_switch isn't used by any of the x86 drm
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index 141e33004a76..66c96ec66672 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -92,7 +92,6 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev,
92 92
93 spin_lock_init(&dev->count_lock); 93 spin_lock_init(&dev->count_lock);
94 spin_lock_init(&dev->drw_lock); 94 spin_lock_init(&dev->drw_lock);
95 spin_lock_init(&dev->tasklet_lock);
96 spin_lock_init(&dev->lock.spinlock); 95 spin_lock_init(&dev->lock.spinlock);
97 init_timer(&dev->timer); 96 init_timer(&dev->timer);
98 mutex_init(&dev->struct_mutex); 97 mutex_init(&dev->struct_mutex);
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 5ba78e4fd2b5..d8fb5d8ee7ea 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -3,13 +3,14 @@
3# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. 3# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
4 4
5ccflags-y := -Iinclude/drm 5ccflags-y := -Iinclude/drm
6i915-y := i915_drv.o i915_dma.o i915_irq.o i915_mem.o i915_opregion.o \ 6i915-y := i915_drv.o i915_dma.o i915_irq.o i915_mem.o \
7 i915_suspend.o \ 7 i915_suspend.o \
8 i915_gem.o \ 8 i915_gem.o \
9 i915_gem_debug.o \ 9 i915_gem_debug.o \
10 i915_gem_proc.o \ 10 i915_gem_proc.o \
11 i915_gem_tiling.o 11 i915_gem_tiling.o
12 12
13i915-$(CONFIG_ACPI) += i915_opregion.o
13i915-$(CONFIG_COMPAT) += i915_ioc32.o 14i915-$(CONFIG_COMPAT) += i915_ioc32.o
14 15
15obj-$(CONFIG_DRM_I915) += i915.o 16obj-$(CONFIG_DRM_I915) += i915.o
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 01de536e0211..553dd4bc3075 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -154,6 +154,9 @@ static int i915_dma_cleanup(struct drm_device * dev)
154 if (I915_NEED_GFX_HWS(dev)) 154 if (I915_NEED_GFX_HWS(dev))
155 i915_free_hws(dev); 155 i915_free_hws(dev);
156 156
157 dev_priv->sarea = NULL;
158 dev_priv->sarea_priv = NULL;
159
157 return 0; 160 return 0;
158} 161}
159 162
@@ -442,7 +445,7 @@ static void i915_emit_breadcrumb(struct drm_device *dev)
442 445
443 BEGIN_LP_RING(4); 446 BEGIN_LP_RING(4);
444 OUT_RING(MI_STORE_DWORD_INDEX); 447 OUT_RING(MI_STORE_DWORD_INDEX);
445 OUT_RING(5 << MI_STORE_DWORD_INDEX_SHIFT); 448 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
446 OUT_RING(dev_priv->counter); 449 OUT_RING(dev_priv->counter);
447 OUT_RING(0); 450 OUT_RING(0);
448 ADVANCE_LP_RING(); 451 ADVANCE_LP_RING();
@@ -573,7 +576,7 @@ static int i915_dispatch_flip(struct drm_device * dev)
573 576
574 BEGIN_LP_RING(4); 577 BEGIN_LP_RING(4);
575 OUT_RING(MI_STORE_DWORD_INDEX); 578 OUT_RING(MI_STORE_DWORD_INDEX);
576 OUT_RING(5 << MI_STORE_DWORD_INDEX_SHIFT); 579 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
577 OUT_RING(dev_priv->counter); 580 OUT_RING(dev_priv->counter);
578 OUT_RING(0); 581 OUT_RING(0);
579 ADVANCE_LP_RING(); 582 ADVANCE_LP_RING();
@@ -608,7 +611,6 @@ static int i915_batchbuffer(struct drm_device *dev, void *data,
608 struct drm_file *file_priv) 611 struct drm_file *file_priv)
609{ 612{
610 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 613 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
611 u32 *hw_status = dev_priv->hw_status_page;
612 drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *) 614 drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *)
613 dev_priv->sarea_priv; 615 dev_priv->sarea_priv;
614 drm_i915_batchbuffer_t *batch = data; 616 drm_i915_batchbuffer_t *batch = data;
@@ -634,7 +636,7 @@ static int i915_batchbuffer(struct drm_device *dev, void *data,
634 mutex_unlock(&dev->struct_mutex); 636 mutex_unlock(&dev->struct_mutex);
635 637
636 if (sarea_priv) 638 if (sarea_priv)
637 sarea_priv->last_dispatch = (int)hw_status[5]; 639 sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
638 return ret; 640 return ret;
639} 641}
640 642
@@ -642,7 +644,6 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
642 struct drm_file *file_priv) 644 struct drm_file *file_priv)
643{ 645{
644 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 646 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
645 u32 *hw_status = dev_priv->hw_status_page;
646 drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *) 647 drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *)
647 dev_priv->sarea_priv; 648 dev_priv->sarea_priv;
648 drm_i915_cmdbuffer_t *cmdbuf = data; 649 drm_i915_cmdbuffer_t *cmdbuf = data;
@@ -670,7 +671,7 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
670 } 671 }
671 672
672 if (sarea_priv) 673 if (sarea_priv)
673 sarea_priv->last_dispatch = (int)hw_status[5]; 674 sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
674 return 0; 675 return 0;
675} 676}
676 677
@@ -846,16 +847,23 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
846 * and the registers being closely associated. 847 * and the registers being closely associated.
847 * 848 *
848 * According to chipset errata, on the 965GM, MSI interrupts may 849 * According to chipset errata, on the 965GM, MSI interrupts may
849 * be lost or delayed 850 * be lost or delayed, but we use them anyways to avoid
851 * stuck interrupts on some machines.
850 */ 852 */
851 if (!IS_I945G(dev) && !IS_I945GM(dev) && !IS_I965GM(dev)) 853 if (!IS_I945G(dev) && !IS_I945GM(dev))
852 if (pci_enable_msi(dev->pdev)) 854 pci_enable_msi(dev->pdev);
853 DRM_ERROR("failed to enable MSI\n");
854 855
855 intel_opregion_init(dev); 856 intel_opregion_init(dev);
856 857
857 spin_lock_init(&dev_priv->user_irq_lock); 858 spin_lock_init(&dev_priv->user_irq_lock);
858 859
860 ret = drm_vblank_init(dev, I915_NUM_PIPE);
861
862 if (ret) {
863 (void) i915_driver_unload(dev);
864 return ret;
865 }
866
859 return ret; 867 return ret;
860} 868}
861 869
@@ -960,6 +968,7 @@ struct drm_ioctl_desc i915_ioctls[] = {
960 DRM_IOCTL_DEF(DRM_I915_GEM_SW_FINISH, i915_gem_sw_finish_ioctl, 0), 968 DRM_IOCTL_DEF(DRM_I915_GEM_SW_FINISH, i915_gem_sw_finish_ioctl, 0),
961 DRM_IOCTL_DEF(DRM_I915_GEM_SET_TILING, i915_gem_set_tiling, 0), 969 DRM_IOCTL_DEF(DRM_I915_GEM_SET_TILING, i915_gem_set_tiling, 0),
962 DRM_IOCTL_DEF(DRM_I915_GEM_GET_TILING, i915_gem_get_tiling, 0), 970 DRM_IOCTL_DEF(DRM_I915_GEM_GET_TILING, i915_gem_get_tiling, 0),
971 DRM_IOCTL_DEF(DRM_I915_GEM_GET_APERTURE, i915_gem_get_aperture_ioctl, 0),
963}; 972};
964 973
965int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls); 974int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index f20ffe17df71..adc972cc6bfc 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -31,6 +31,7 @@
31#define _I915_DRV_H_ 31#define _I915_DRV_H_
32 32
33#include "i915_reg.h" 33#include "i915_reg.h"
34#include <linux/io-mapping.h>
34 35
35/* General customization: 36/* General customization:
36 */ 37 */
@@ -46,6 +47,8 @@ enum pipe {
46 PIPE_B, 47 PIPE_B,
47}; 48};
48 49
50#define I915_NUM_PIPE 2
51
49/* Interface history: 52/* Interface history:
50 * 53 *
51 * 1.1: Original. 54 * 1.1: Original.
@@ -87,13 +90,6 @@ struct mem_block {
87 struct drm_file *file_priv; /* NULL: free, -1: heap, other: real files */ 90 struct drm_file *file_priv; /* NULL: free, -1: heap, other: real files */
88}; 91};
89 92
90typedef struct _drm_i915_vbl_swap {
91 struct list_head head;
92 drm_drawable_t drw_id;
93 unsigned int pipe;
94 unsigned int sequence;
95} drm_i915_vbl_swap_t;
96
97struct opregion_header; 93struct opregion_header;
98struct opregion_acpi; 94struct opregion_acpi;
99struct opregion_swsci; 95struct opregion_swsci;
@@ -138,6 +134,7 @@ typedef struct drm_i915_private {
138 int user_irq_refcount; 134 int user_irq_refcount;
139 /** Cached value of IMR to avoid reads in updating the bitfield */ 135 /** Cached value of IMR to avoid reads in updating the bitfield */
140 u32 irq_mask_reg; 136 u32 irq_mask_reg;
137 u32 pipestat[2];
141 138
142 int tex_lru_log_granularity; 139 int tex_lru_log_granularity;
143 int allow_batchbuffer; 140 int allow_batchbuffer;
@@ -145,10 +142,6 @@ typedef struct drm_i915_private {
145 unsigned int sr01, adpa, ppcr, dvob, dvoc, lvds; 142 unsigned int sr01, adpa, ppcr, dvob, dvoc, lvds;
146 int vblank_pipe; 143 int vblank_pipe;
147 144
148 spinlock_t swaps_lock;
149 drm_i915_vbl_swap_t vbl_swaps;
150 unsigned int swaps_pending;
151
152 struct intel_opregion opregion; 145 struct intel_opregion opregion;
153 146
154 /* Register state */ 147 /* Register state */
@@ -156,6 +149,8 @@ typedef struct drm_i915_private {
156 u32 saveDSPACNTR; 149 u32 saveDSPACNTR;
157 u32 saveDSPBCNTR; 150 u32 saveDSPBCNTR;
158 u32 saveDSPARB; 151 u32 saveDSPARB;
152 u32 saveRENDERSTANDBY;
153 u32 saveHWS;
159 u32 savePIPEACONF; 154 u32 savePIPEACONF;
160 u32 savePIPEBCONF; 155 u32 savePIPEBCONF;
161 u32 savePIPEASRC; 156 u32 savePIPEASRC;
@@ -240,16 +235,19 @@ typedef struct drm_i915_private {
240 u8 saveDACDATA[256*3]; /* 256 3-byte colors */ 235 u8 saveDACDATA[256*3]; /* 256 3-byte colors */
241 u8 saveCR[37]; 236 u8 saveCR[37];
242 237
243 /** Work task for vblank-related ring access */
244 struct work_struct vblank_work;
245
246 struct { 238 struct {
247 struct drm_mm gtt_space; 239 struct drm_mm gtt_space;
248 240
241 struct io_mapping *gtt_mapping;
242
249 /** 243 /**
250 * List of objects currently involved in rendering from the 244 * List of objects currently involved in rendering from the
251 * ringbuffer. 245 * ringbuffer.
252 * 246 *
247 * Includes buffers having the contents of their GPU caches
248 * flushed, not necessarily primitives. last_rendering_seqno
249 * represents when the rendering involved will be completed.
250 *
253 * A reference is held on the buffer while on this list. 251 * A reference is held on the buffer while on this list.
254 */ 252 */
255 struct list_head active_list; 253 struct list_head active_list;
@@ -259,6 +257,8 @@ typedef struct drm_i915_private {
259 * still have a write_domain which needs to be flushed before 257 * still have a write_domain which needs to be flushed before
260 * unbinding. 258 * unbinding.
261 * 259 *
260 * last_rendering_seqno is 0 while an object is in this list.
261 *
262 * A reference is held on the buffer while on this list. 262 * A reference is held on the buffer while on this list.
263 */ 263 */
264 struct list_head flushing_list; 264 struct list_head flushing_list;
@@ -267,6 +267,8 @@ typedef struct drm_i915_private {
267 * LRU list of objects which are not in the ringbuffer and 267 * LRU list of objects which are not in the ringbuffer and
268 * are ready to unbind, but are still in the GTT. 268 * are ready to unbind, but are still in the GTT.
269 * 269 *
270 * last_rendering_seqno is 0 while an object is in this list.
271 *
270 * A reference is not held on the buffer while on this list, 272 * A reference is not held on the buffer while on this list,
271 * as merely being GTT-bound shouldn't prevent its being 273 * as merely being GTT-bound shouldn't prevent its being
272 * freed, and we'll pull it off the list in the free path. 274 * freed, and we'll pull it off the list in the free path.
@@ -377,8 +379,8 @@ struct drm_i915_gem_object {
377 uint32_t agp_type; 379 uint32_t agp_type;
378 380
379 /** 381 /**
380 * Flagging of which individual pages are valid in GEM_DOMAIN_CPU when 382 * If present, while GEM_DOMAIN_CPU is in the read domain this array
381 * GEM_DOMAIN_CPU is not in the object's read domain. 383 * flags which individual pages are valid.
382 */ 384 */
383 uint8_t *page_cpu_valid; 385 uint8_t *page_cpu_valid;
384}; 386};
@@ -400,9 +402,6 @@ struct drm_i915_gem_request {
400 /** Time at which this request was emitted, in jiffies. */ 402 /** Time at which this request was emitted, in jiffies. */
401 unsigned long emitted_jiffies; 403 unsigned long emitted_jiffies;
402 404
403 /** Cache domains that were flushed at the start of the request. */
404 uint32_t flush_domains;
405
406 struct list_head list; 405 struct list_head list;
407}; 406};
408 407
@@ -441,7 +440,6 @@ extern int i915_irq_wait(struct drm_device *dev, void *data,
441void i915_user_irq_get(struct drm_device *dev); 440void i915_user_irq_get(struct drm_device *dev);
442void i915_user_irq_put(struct drm_device *dev); 441void i915_user_irq_put(struct drm_device *dev);
443 442
444extern void i915_vblank_work_handler(struct work_struct *work);
445extern irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS); 443extern irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS);
446extern void i915_driver_irq_preinstall(struct drm_device * dev); 444extern void i915_driver_irq_preinstall(struct drm_device * dev);
447extern int i915_driver_irq_postinstall(struct drm_device *dev); 445extern int i915_driver_irq_postinstall(struct drm_device *dev);
@@ -457,6 +455,13 @@ extern int i915_vblank_swap(struct drm_device *dev, void *data,
457 struct drm_file *file_priv); 455 struct drm_file *file_priv);
458extern void i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask); 456extern void i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask);
459 457
458void
459i915_enable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask);
460
461void
462i915_disable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask);
463
464
460/* i915_mem.c */ 465/* i915_mem.c */
461extern int i915_mem_alloc(struct drm_device *dev, void *data, 466extern int i915_mem_alloc(struct drm_device *dev, void *data,
462 struct drm_file *file_priv); 467 struct drm_file *file_priv);
@@ -502,6 +507,8 @@ int i915_gem_set_tiling(struct drm_device *dev, void *data,
502 struct drm_file *file_priv); 507 struct drm_file *file_priv);
503int i915_gem_get_tiling(struct drm_device *dev, void *data, 508int i915_gem_get_tiling(struct drm_device *dev, void *data,
504 struct drm_file *file_priv); 509 struct drm_file *file_priv);
510int i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data,
511 struct drm_file *file_priv);
505void i915_gem_load(struct drm_device *dev); 512void i915_gem_load(struct drm_device *dev);
506int i915_gem_proc_init(struct drm_minor *minor); 513int i915_gem_proc_init(struct drm_minor *minor);
507void i915_gem_proc_cleanup(struct drm_minor *minor); 514void i915_gem_proc_cleanup(struct drm_minor *minor);
@@ -539,11 +546,18 @@ extern int i915_restore_state(struct drm_device *dev);
539extern int i915_save_state(struct drm_device *dev); 546extern int i915_save_state(struct drm_device *dev);
540extern int i915_restore_state(struct drm_device *dev); 547extern int i915_restore_state(struct drm_device *dev);
541 548
549#ifdef CONFIG_ACPI
542/* i915_opregion.c */ 550/* i915_opregion.c */
543extern int intel_opregion_init(struct drm_device *dev); 551extern int intel_opregion_init(struct drm_device *dev);
544extern void intel_opregion_free(struct drm_device *dev); 552extern void intel_opregion_free(struct drm_device *dev);
545extern void opregion_asle_intr(struct drm_device *dev); 553extern void opregion_asle_intr(struct drm_device *dev);
546extern void opregion_enable_asle(struct drm_device *dev); 554extern void opregion_enable_asle(struct drm_device *dev);
555#else
556static inline int intel_opregion_init(struct drm_device *dev) { return 0; }
557static inline void intel_opregion_free(struct drm_device *dev) { return; }
558static inline void opregion_asle_intr(struct drm_device *dev) { return; }
559static inline void opregion_enable_asle(struct drm_device *dev) { return; }
560#endif
547 561
548/** 562/**
549 * Lock test for when it's just for synchronization of ring access. 563 * Lock test for when it's just for synchronization of ring access.
@@ -610,8 +624,9 @@ extern void opregion_enable_asle(struct drm_device *dev);
610 * The area from dword 0x20 to 0x3ff is available for driver usage. 624 * The area from dword 0x20 to 0x3ff is available for driver usage.
611 */ 625 */
612#define READ_HWSP(dev_priv, reg) (((volatile u32*)(dev_priv->hw_status_page))[reg]) 626#define READ_HWSP(dev_priv, reg) (((volatile u32*)(dev_priv->hw_status_page))[reg])
613#define READ_BREADCRUMB(dev_priv) READ_HWSP(dev_priv, 5) 627#define READ_BREADCRUMB(dev_priv) READ_HWSP(dev_priv, I915_BREADCRUMB_INDEX)
614#define I915_GEM_HWS_INDEX 0x20 628#define I915_GEM_HWS_INDEX 0x20
629#define I915_BREADCRUMB_INDEX 0x21
615 630
616extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); 631extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
617 632
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 17ae330ff269..ad672d854828 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);
@@ -79,6 +81,22 @@ i915_gem_init_ioctl(struct drm_device *dev, void *data,
79 return 0; 81 return 0;
80} 82}
81 83
84int
85i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data,
86 struct drm_file *file_priv)
87{
88 struct drm_i915_gem_get_aperture *args = data;
89
90 if (!(dev->driver->driver_features & DRIVER_GEM))
91 return -ENODEV;
92
93 args->aper_size = dev->gtt_total;
94 args->aper_available_size = (args->aper_size -
95 atomic_read(&dev->pin_memory));
96
97 return 0;
98}
99
82 100
83/** 101/**
84 * Creates a new mm object and returns a handle to it. 102 * Creates a new mm object and returns a handle to it.
@@ -144,8 +162,8 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
144 162
145 mutex_lock(&dev->struct_mutex); 163 mutex_lock(&dev->struct_mutex);
146 164
147 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,
148 I915_GEM_DOMAIN_CPU, 0); 166 args->size);
149 if (ret != 0) { 167 if (ret != 0) {
150 drm_gem_object_unreference(obj); 168 drm_gem_object_unreference(obj);
151 mutex_unlock(&dev->struct_mutex); 169 mutex_unlock(&dev->struct_mutex);
@@ -171,35 +189,50 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
171 return 0; 189 return 0;
172} 190}
173 191
174/* 192/* This is the fast write path which cannot handle
175 * Try to write quickly with an atomic kmap. Return true on success. 193 * page faults in the source data
176 *
177 * If this fails (which includes a partial write), we'll redo the whole
178 * thing with the slow version.
179 *
180 * This is a workaround for the low performance of iounmap (approximate
181 * 10% cpu cost on normal 3D workloads). kmap_atomic on HIGHMEM kernels
182 * happens to let us map card memory without taking IPIs. When the vmap
183 * rework lands we should be able to dump this hack.
184 */ 194 */
185static inline int fast_user_write(unsigned long pfn, char __user *user_data, 195
186 int l, int o) 196static inline int
197fast_user_write(struct io_mapping *mapping,
198 loff_t page_base, int page_offset,
199 char __user *user_data,
200 int length)
187{ 201{
188#ifdef CONFIG_HIGHMEM
189 unsigned long unwritten;
190 char *vaddr_atomic; 202 char *vaddr_atomic;
203 unsigned long unwritten;
191 204
192 vaddr_atomic = kmap_atomic_pfn(pfn, KM_USER0); 205 vaddr_atomic = io_mapping_map_atomic_wc(mapping, page_base);
193#if WATCH_PWRITE 206 unwritten = __copy_from_user_inatomic_nocache(vaddr_atomic + page_offset,
194 DRM_INFO("pwrite i %d o %d l %d pfn %ld vaddr %p\n", 207 user_data, length);
195 i, o, l, pfn, vaddr_atomic); 208 io_mapping_unmap_atomic(vaddr_atomic);
196#endif 209 if (unwritten)
197 unwritten = __copy_from_user_inatomic_nocache(vaddr_atomic + o, user_data, l); 210 return -EFAULT;
198 kunmap_atomic(vaddr_atomic, KM_USER0); 211 return 0;
199 return !unwritten; 212}
200#else 213
214/* Here's the write path which can sleep for
215 * page faults
216 */
217
218static inline int
219slow_user_write(struct io_mapping *mapping,
220 loff_t page_base, int page_offset,
221 char __user *user_data,
222 int length)
223{
224 char __iomem *vaddr;
225 unsigned long unwritten;
226
227 vaddr = io_mapping_map_wc(mapping, page_base);
228 if (vaddr == NULL)
229 return -EFAULT;
230 unwritten = __copy_from_user(vaddr + page_offset,
231 user_data, length);
232 io_mapping_unmap(vaddr);
233 if (unwritten)
234 return -EFAULT;
201 return 0; 235 return 0;
202#endif
203} 236}
204 237
205static int 238static int
@@ -208,10 +241,12 @@ i915_gem_gtt_pwrite(struct drm_device *dev, struct drm_gem_object *obj,
208 struct drm_file *file_priv) 241 struct drm_file *file_priv)
209{ 242{
210 struct drm_i915_gem_object *obj_priv = obj->driver_private; 243 struct drm_i915_gem_object *obj_priv = obj->driver_private;
244 drm_i915_private_t *dev_priv = dev->dev_private;
211 ssize_t remain; 245 ssize_t remain;
212 loff_t offset; 246 loff_t offset, page_base;
213 char __user *user_data; 247 char __user *user_data;
214 int ret = 0; 248 int page_offset, page_length;
249 int ret;
215 250
216 user_data = (char __user *) (uintptr_t) args->data_ptr; 251 user_data = (char __user *) (uintptr_t) args->data_ptr;
217 remain = args->size; 252 remain = args->size;
@@ -225,8 +260,7 @@ i915_gem_gtt_pwrite(struct drm_device *dev, struct drm_gem_object *obj,
225 mutex_unlock(&dev->struct_mutex); 260 mutex_unlock(&dev->struct_mutex);
226 return ret; 261 return ret;
227 } 262 }
228 ret = i915_gem_set_domain(obj, file_priv, 263 ret = i915_gem_object_set_to_gtt_domain(obj, 1);
229 I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
230 if (ret) 264 if (ret)
231 goto fail; 265 goto fail;
232 266
@@ -235,57 +269,37 @@ i915_gem_gtt_pwrite(struct drm_device *dev, struct drm_gem_object *obj,
235 obj_priv->dirty = 1; 269 obj_priv->dirty = 1;
236 270
237 while (remain > 0) { 271 while (remain > 0) {
238 unsigned long pfn;
239 int i, o, l;
240
241 /* Operation in this page 272 /* Operation in this page
242 * 273 *
243 * i = page number 274 * page_base = page offset within aperture
244 * o = offset within page 275 * page_offset = offset within page
245 * l = bytes to copy 276 * page_length = bytes to copy for this page
246 */ 277 */
247 i = offset >> PAGE_SHIFT; 278 page_base = (offset & ~(PAGE_SIZE-1));
248 o = offset & (PAGE_SIZE-1); 279 page_offset = offset & (PAGE_SIZE-1);
249 l = remain; 280 page_length = remain;
250 if ((o + l) > PAGE_SIZE) 281 if ((page_offset + remain) > PAGE_SIZE)
251 l = PAGE_SIZE - o; 282 page_length = PAGE_SIZE - page_offset;
252 283
253 pfn = (dev->agp->base >> PAGE_SHIFT) + i; 284 ret = fast_user_write (dev_priv->mm.gtt_mapping, page_base,
254 285 page_offset, user_data, page_length);
255 if (!fast_user_write(pfn, user_data, l, o)) { 286
256 unsigned long unwritten; 287 /* If we get a fault while copying data, then (presumably) our
257 char __iomem *vaddr; 288 * source page isn't available. In this case, use the
258 289 * non-atomic function
259 vaddr = ioremap_wc(pfn << PAGE_SHIFT, PAGE_SIZE); 290 */
260#if WATCH_PWRITE 291 if (ret) {
261 DRM_INFO("pwrite slow i %d o %d l %d " 292 ret = slow_user_write (dev_priv->mm.gtt_mapping,
262 "pfn %ld vaddr %p\n", 293 page_base, page_offset,
263 i, o, l, pfn, vaddr); 294 user_data, page_length);
264#endif 295 if (ret)
265 if (vaddr == NULL) {
266 ret = -EFAULT;
267 goto fail;
268 }
269 unwritten = __copy_from_user(vaddr + o, user_data, l);
270#if WATCH_PWRITE
271 DRM_INFO("unwritten %ld\n", unwritten);
272#endif
273 iounmap(vaddr);
274 if (unwritten) {
275 ret = -EFAULT;
276 goto fail; 296 goto fail;
277 }
278 } 297 }
279 298
280 remain -= l; 299 remain -= page_length;
281 user_data += l; 300 user_data += page_length;
282 offset += l; 301 offset += page_length;
283 } 302 }
284#if WATCH_PWRITE && 1
285 i915_gem_clflush_object(obj);
286 i915_gem_dump_object(obj, args->offset + args->size, __func__, ~0);
287 i915_gem_clflush_object(obj);
288#endif
289 303
290fail: 304fail:
291 i915_gem_object_unpin(obj); 305 i915_gem_object_unpin(obj);
@@ -305,8 +319,7 @@ i915_gem_shmem_pwrite(struct drm_device *dev, struct drm_gem_object *obj,
305 319
306 mutex_lock(&dev->struct_mutex); 320 mutex_lock(&dev->struct_mutex);
307 321
308 ret = i915_gem_set_domain(obj, file_priv, 322 ret = i915_gem_object_set_to_cpu_domain(obj, 1);
309 I915_GEM_DOMAIN_CPU, I915_GEM_DOMAIN_CPU);
310 if (ret) { 323 if (ret) {
311 mutex_unlock(&dev->struct_mutex); 324 mutex_unlock(&dev->struct_mutex);
312 return ret; 325 return ret;
@@ -382,7 +395,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
382} 395}
383 396
384/** 397/**
385 * 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.
386 */ 400 */
387int 401int
388i915_gem_set_domain_ioctl(struct drm_device *dev, void *data, 402i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
@@ -390,11 +404,26 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
390{ 404{
391 struct drm_i915_gem_set_domain *args = data; 405 struct drm_i915_gem_set_domain *args = data;
392 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;
393 int ret; 409 int ret;
394 410
395 if (!(dev->driver->driver_features & DRIVER_GEM)) 411 if (!(dev->driver->driver_features & DRIVER_GEM))
396 return -ENODEV; 412 return -ENODEV;
397 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
398 obj = drm_gem_object_lookup(dev, file_priv, args->handle); 427 obj = drm_gem_object_lookup(dev, file_priv, args->handle);
399 if (obj == NULL) 428 if (obj == NULL)
400 return -EBADF; 429 return -EBADF;
@@ -402,10 +431,21 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
402 mutex_lock(&dev->struct_mutex); 431 mutex_lock(&dev->struct_mutex);
403#if WATCH_BUF 432#if WATCH_BUF
404 DRM_INFO("set_domain_ioctl %p(%d), %08x %08x\n", 433 DRM_INFO("set_domain_ioctl %p(%d), %08x %08x\n",
405 obj, obj->size, args->read_domains, args->write_domain); 434 obj, obj->size, read_domains, write_domain);
406#endif 435#endif
407 ret = i915_gem_set_domain(obj, file_priv, 436 if (read_domains & I915_GEM_DOMAIN_GTT) {
408 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
409 drm_gem_object_unreference(obj); 449 drm_gem_object_unreference(obj);
410 mutex_unlock(&dev->struct_mutex); 450 mutex_unlock(&dev->struct_mutex);
411 return ret; 451 return ret;
@@ -440,10 +480,9 @@ i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
440 obj_priv = obj->driver_private; 480 obj_priv = obj->driver_private;
441 481
442 /* Pinned buffers may be scanout, so flush the cache */ 482 /* Pinned buffers may be scanout, so flush the cache */
443 if ((obj->write_domain & I915_GEM_DOMAIN_CPU) && obj_priv->pin_count) { 483 if (obj_priv->pin_count)
444 i915_gem_clflush_object(obj); 484 i915_gem_object_flush_cpu_write_domain(obj);
445 drm_agp_chipset_flush(dev); 485
446 }
447 drm_gem_object_unreference(obj); 486 drm_gem_object_unreference(obj);
448 mutex_unlock(&dev->struct_mutex); 487 mutex_unlock(&dev->struct_mutex);
449 return ret; 488 return ret;
@@ -517,7 +556,7 @@ i915_gem_object_free_page_list(struct drm_gem_object *obj)
517} 556}
518 557
519static void 558static void
520i915_gem_object_move_to_active(struct drm_gem_object *obj) 559i915_gem_object_move_to_active(struct drm_gem_object *obj, uint32_t seqno)
521{ 560{
522 struct drm_device *dev = obj->dev; 561 struct drm_device *dev = obj->dev;
523 drm_i915_private_t *dev_priv = dev->dev_private; 562 drm_i915_private_t *dev_priv = dev->dev_private;
@@ -531,8 +570,20 @@ i915_gem_object_move_to_active(struct drm_gem_object *obj)
531 /* 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. */
532 list_move_tail(&obj_priv->list, 571 list_move_tail(&obj_priv->list,
533 &dev_priv->mm.active_list); 572 &dev_priv->mm.active_list);
573 obj_priv->last_rendering_seqno = seqno;
534} 574}
535 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}
536 587
537static void 588static void
538i915_gem_object_move_to_inactive(struct drm_gem_object *obj) 589i915_gem_object_move_to_inactive(struct drm_gem_object *obj)
@@ -547,6 +598,7 @@ i915_gem_object_move_to_inactive(struct drm_gem_object *obj)
547 else 598 else
548 list_move_tail(&obj_priv->list, &dev_priv->mm.inactive_list); 599 list_move_tail(&obj_priv->list, &dev_priv->mm.inactive_list);
549 600
601 obj_priv->last_rendering_seqno = 0;
550 if (obj_priv->active) { 602 if (obj_priv->active) {
551 obj_priv->active = 0; 603 obj_priv->active = 0;
552 drm_gem_object_unreference(obj); 604 drm_gem_object_unreference(obj);
@@ -595,10 +647,28 @@ i915_add_request(struct drm_device *dev, uint32_t flush_domains)
595 647
596 request->seqno = seqno; 648 request->seqno = seqno;
597 request->emitted_jiffies = jiffies; 649 request->emitted_jiffies = jiffies;
598 request->flush_domains = flush_domains;
599 was_empty = list_empty(&dev_priv->mm.request_list); 650 was_empty = list_empty(&dev_priv->mm.request_list);
600 list_add_tail(&request->list, &dev_priv->mm.request_list); 651 list_add_tail(&request->list, &dev_priv->mm.request_list);
601 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
602 if (was_empty && !dev_priv->mm.suspended) 672 if (was_empty && !dev_priv->mm.suspended)
603 schedule_delayed_work(&dev_priv->mm.retire_work, HZ); 673 schedule_delayed_work(&dev_priv->mm.retire_work, HZ);
604 return seqno; 674 return seqno;
@@ -661,30 +731,10 @@ i915_gem_retire_request(struct drm_device *dev,
661 __func__, request->seqno, obj); 731 __func__, request->seqno, obj);
662#endif 732#endif
663 733
664 if (obj->write_domain != 0) { 734 if (obj->write_domain != 0)
665 list_move_tail(&obj_priv->list, 735 i915_gem_object_move_to_flushing(obj);
666 &dev_priv->mm.flushing_list); 736 else
667 } else {
668 i915_gem_object_move_to_inactive(obj); 737 i915_gem_object_move_to_inactive(obj);
669 }
670 }
671
672 if (request->flush_domains != 0) {
673 struct drm_i915_gem_object *obj_priv, *next;
674
675 /* Clear the write domain and activity from any buffers
676 * that are just waiting for a flush matching the one retired.
677 */
678 list_for_each_entry_safe(obj_priv, next,
679 &dev_priv->mm.flushing_list, list) {
680 struct drm_gem_object *obj = obj_priv->obj;
681
682 if (obj->write_domain & request->flush_domains) {
683 obj->write_domain = 0;
684 i915_gem_object_move_to_inactive(obj);
685 }
686 }
687
688 } 738 }
689} 739}
690 740
@@ -877,25 +927,10 @@ i915_gem_object_wait_rendering(struct drm_gem_object *obj)
877 struct drm_i915_gem_object *obj_priv = obj->driver_private; 927 struct drm_i915_gem_object *obj_priv = obj->driver_private;
878 int ret; 928 int ret;
879 929
880 /* If there are writes queued to the buffer, flush and 930 /* This function only exists to support waiting for existing rendering,
881 * create a new seqno to wait for. 931 * not for emitting required flushes.
882 */ 932 */
883 if (obj->write_domain & ~(I915_GEM_DOMAIN_CPU|I915_GEM_DOMAIN_GTT)) { 933 BUG_ON((obj->write_domain & I915_GEM_GPU_DOMAINS) != 0);
884 uint32_t write_domain = obj->write_domain;
885#if WATCH_BUF
886 DRM_INFO("%s: flushing object %p from write domain %08x\n",
887 __func__, obj, write_domain);
888#endif
889 i915_gem_flush(dev, 0, write_domain);
890
891 i915_gem_object_move_to_active(obj);
892 obj_priv->last_rendering_seqno = i915_add_request(dev,
893 write_domain);
894 BUG_ON(obj_priv->last_rendering_seqno == 0);
895#if WATCH_LRU
896 DRM_INFO("%s: flush moves to exec list %p\n", __func__, obj);
897#endif
898 }
899 934
900 /* 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
901 * it. 936 * it.
@@ -935,24 +970,16 @@ i915_gem_object_unbind(struct drm_gem_object *obj)
935 return -EINVAL; 970 return -EINVAL;
936 } 971 }
937 972
938 /* Wait for any rendering to complete
939 */
940 ret = i915_gem_object_wait_rendering(obj);
941 if (ret) {
942 DRM_ERROR("wait_rendering failed: %d\n", ret);
943 return ret;
944 }
945
946 /* Move the object to the CPU domain to ensure that 973 /* Move the object to the CPU domain to ensure that
947 * any possible CPU writes while it's not in the GTT 974 * any possible CPU writes while it's not in the GTT
948 * are flushed when we go to remap it. This will 975 * are flushed when we go to remap it. This will
949 * also ensure that all pending GPU writes are finished 976 * also ensure that all pending GPU writes are finished
950 * before we unbind. 977 * before we unbind.
951 */ 978 */
952 ret = i915_gem_object_set_domain(obj, I915_GEM_DOMAIN_CPU, 979 ret = i915_gem_object_set_to_cpu_domain(obj, 1);
953 I915_GEM_DOMAIN_CPU);
954 if (ret) { 980 if (ret) {
955 DRM_ERROR("set_domain failed: %d\n", ret); 981 if (ret != -ERESTARTSYS)
982 DRM_ERROR("set_domain failed: %d\n", ret);
956 return ret; 983 return ret;
957 } 984 }
958 985
@@ -1068,6 +1095,21 @@ i915_gem_evict_something(struct drm_device *dev)
1068} 1095}
1069 1096
1070static 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
1071i915_gem_object_get_page_list(struct drm_gem_object *obj) 1113i915_gem_object_get_page_list(struct drm_gem_object *obj)
1072{ 1114{
1073 struct drm_i915_gem_object *obj_priv = obj->driver_private; 1115 struct drm_i915_gem_object *obj_priv = obj->driver_private;
@@ -1153,7 +1195,8 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
1153 1195
1154 ret = i915_gem_evict_something(dev); 1196 ret = i915_gem_evict_something(dev);
1155 if (ret != 0) { 1197 if (ret != 0) {
1156 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);
1157 return ret; 1200 return ret;
1158 } 1201 }
1159 goto search_free; 1202 goto search_free;
@@ -1213,6 +1256,143 @@ i915_gem_clflush_object(struct drm_gem_object *obj)
1213 drm_clflush_pages(obj_priv->page_list, obj->size / PAGE_SIZE); 1256 drm_clflush_pages(obj_priv->page_list, obj->size / PAGE_SIZE);
1214} 1257}
1215 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
1216/* 1396/*
1217 * Set the next domain for the specified object. This 1397 * Set the next domain for the specified object. This
1218 * may not actually perform the necessary flushing/invaliding though, 1398 * may not actually perform the necessary flushing/invaliding though,
@@ -1324,16 +1504,18 @@ i915_gem_clflush_object(struct drm_gem_object *obj)
1324 * MI_FLUSH 1504 * MI_FLUSH
1325 * drm_agp_chipset_flush 1505 * drm_agp_chipset_flush
1326 */ 1506 */
1327static int 1507static void
1328i915_gem_object_set_domain(struct drm_gem_object *obj, 1508i915_gem_object_set_to_gpu_domain(struct drm_gem_object *obj,
1329 uint32_t read_domains, 1509 uint32_t read_domains,
1330 uint32_t write_domain) 1510 uint32_t write_domain)
1331{ 1511{
1332 struct drm_device *dev = obj->dev; 1512 struct drm_device *dev = obj->dev;
1333 struct drm_i915_gem_object *obj_priv = obj->driver_private; 1513 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1334 uint32_t invalidate_domains = 0; 1514 uint32_t invalidate_domains = 0;
1335 uint32_t flush_domains = 0; 1515 uint32_t flush_domains = 0;
1336 int ret; 1516
1517 BUG_ON(read_domains & I915_GEM_DOMAIN_CPU);
1518 BUG_ON(write_domain == I915_GEM_DOMAIN_CPU);
1337 1519
1338#if WATCH_BUF 1520#if WATCH_BUF
1339 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",
@@ -1370,34 +1552,11 @@ i915_gem_object_set_domain(struct drm_gem_object *obj,
1370 DRM_INFO("%s: CPU domain flush %08x invalidate %08x\n", 1552 DRM_INFO("%s: CPU domain flush %08x invalidate %08x\n",
1371 __func__, flush_domains, invalidate_domains); 1553 __func__, flush_domains, invalidate_domains);
1372#endif 1554#endif
1373 /*
1374 * If we're invaliding the CPU cache and flushing a GPU cache,
1375 * then pause for rendering so that the GPU caches will be
1376 * flushed before the cpu cache is invalidated
1377 */
1378 if ((invalidate_domains & I915_GEM_DOMAIN_CPU) &&
1379 (flush_domains & ~(I915_GEM_DOMAIN_CPU |
1380 I915_GEM_DOMAIN_GTT))) {
1381 ret = i915_gem_object_wait_rendering(obj);
1382 if (ret)
1383 return ret;
1384 }
1385 i915_gem_clflush_object(obj); 1555 i915_gem_clflush_object(obj);
1386 } 1556 }
1387 1557
1388 if ((write_domain | flush_domains) != 0) 1558 if ((write_domain | flush_domains) != 0)
1389 obj->write_domain = write_domain; 1559 obj->write_domain = write_domain;
1390
1391 /* If we're invalidating the CPU domain, clear the per-page CPU
1392 * domain list as well.
1393 */
1394 if (obj_priv->page_cpu_valid != NULL &&
1395 (write_domain != 0 ||
1396 read_domains & I915_GEM_DOMAIN_CPU)) {
1397 drm_free(obj_priv->page_cpu_valid, obj->size / PAGE_SIZE,
1398 DRM_MEM_DRIVER);
1399 obj_priv->page_cpu_valid = NULL;
1400 }
1401 obj->read_domains = read_domains; 1560 obj->read_domains = read_domains;
1402 1561
1403 dev->invalidate_domains |= invalidate_domains; 1562 dev->invalidate_domains |= invalidate_domains;
@@ -1408,49 +1567,94 @@ i915_gem_object_set_domain(struct drm_gem_object *obj,
1408 obj->read_domains, obj->write_domain, 1567 obj->read_domains, obj->write_domain,
1409 dev->invalidate_domains, dev->flush_domains); 1568 dev->invalidate_domains, dev->flush_domains);
1410#endif 1569#endif
1411 return 0;
1412} 1570}
1413 1571
1414/** 1572/**
1415 * Set the read/write domain on a range of the object. 1573 * Moves the object from a partially CPU read to a full one.
1416 * 1574 *
1417 * Currently only implemented for CPU reads, otherwise drops to normal 1575 * Note that this only resolves i915_gem_object_set_cpu_read_domain_range(),
1418 * i915_gem_object_set_domain(). 1576 * and doesn't handle transitioning from !(read_domains & I915_GEM_DOMAIN_CPU).
1419 */ 1577 */
1420static int 1578static void
1421i915_gem_object_set_domain_range(struct drm_gem_object *obj, 1579i915_gem_object_set_to_full_cpu_read_domain(struct drm_gem_object *obj)
1422 uint64_t offset,
1423 uint64_t size,
1424 uint32_t read_domains,
1425 uint32_t write_domain)
1426{ 1580{
1581 struct drm_device *dev = obj->dev;
1427 struct drm_i915_gem_object *obj_priv = obj->driver_private; 1582 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1428 int ret, i;
1429 1583
1430 if (obj->read_domains & I915_GEM_DOMAIN_CPU) 1584 if (!obj_priv->page_cpu_valid)
1431 return 0; 1585 return;
1432 1586
1433 if (read_domains != I915_GEM_DOMAIN_CPU || 1587 /* If we're partially in the CPU read domain, finish moving it in.
1434 write_domain != 0) 1588 */
1435 return i915_gem_object_set_domain(obj, 1589 if (obj->read_domains & I915_GEM_DOMAIN_CPU) {
1436 read_domains, write_domain); 1590 int i;
1437 1591
1438 /* Wait on any GPU rendering to the object to be flushed. */ 1592 for (i = 0; i <= (obj->size - 1) / PAGE_SIZE; i++) {
1439 if (obj->write_domain & ~(I915_GEM_DOMAIN_CPU | I915_GEM_DOMAIN_GTT)) { 1593 if (obj_priv->page_cpu_valid[i])
1440 ret = i915_gem_object_wait_rendering(obj); 1594 continue;
1441 if (ret) 1595 drm_clflush_pages(obj_priv->page_list + i, 1);
1442 return ret; 1596 }
1597 drm_agp_chipset_flush(dev);
1443 } 1598 }
1444 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. */
1632 ret = i915_gem_object_wait_rendering(obj);
1633 if (ret != 0)
1634 return ret;
1635 i915_gem_object_flush_gtt_write_domain(obj);
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 */
1445 if (obj_priv->page_cpu_valid == NULL) { 1645 if (obj_priv->page_cpu_valid == NULL) {
1446 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,
1447 DRM_MEM_DRIVER); 1647 DRM_MEM_DRIVER);
1448 } 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);
1449 1652
1450 /* 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
1451 * perspective. 1654 * perspective.
1452 */ 1655 */
1453 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++) {
1454 if (obj_priv->page_cpu_valid[i]) 1658 if (obj_priv->page_cpu_valid[i])
1455 continue; 1659 continue;
1456 1660
@@ -1459,39 +1663,14 @@ i915_gem_object_set_domain_range(struct drm_gem_object *obj,
1459 obj_priv->page_cpu_valid[i] = 1; 1663 obj_priv->page_cpu_valid[i] = 1;
1460 } 1664 }
1461 1665
1462 return 0; 1666 /* It should now be out of any other write domains, and we can update
1463} 1667 * the domain values for our changes.
1464
1465/**
1466 * Once all of the objects have been set in the proper domain,
1467 * perform the necessary flush and invalidate operations.
1468 *
1469 * Returns the write domains flushed, for use in flush tracking.
1470 */
1471static uint32_t
1472i915_gem_dev_set_domain(struct drm_device *dev)
1473{
1474 uint32_t flush_domains = dev->flush_domains;
1475
1476 /*
1477 * Now that all the buffers are synced to the proper domains,
1478 * flush and invalidate the collected domains
1479 */ 1668 */
1480 if (dev->invalidate_domains | dev->flush_domains) { 1669 BUG_ON((obj->write_domain & ~I915_GEM_DOMAIN_CPU) != 0);
1481#if WATCH_EXEC
1482 DRM_INFO("%s: invalidate_domains %08x flush_domains %08x\n",
1483 __func__,
1484 dev->invalidate_domains,
1485 dev->flush_domains);
1486#endif
1487 i915_gem_flush(dev,
1488 dev->invalidate_domains,
1489 dev->flush_domains);
1490 dev->invalidate_domains = 0;
1491 dev->flush_domains = 0;
1492 }
1493 1670
1494 return flush_domains; 1671 obj->read_domains |= I915_GEM_DOMAIN_CPU;
1672
1673 return 0;
1495} 1674}
1496 1675
1497/** 1676/**
@@ -1503,12 +1682,12 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
1503 struct drm_i915_gem_exec_object *entry) 1682 struct drm_i915_gem_exec_object *entry)
1504{ 1683{
1505 struct drm_device *dev = obj->dev; 1684 struct drm_device *dev = obj->dev;
1685 drm_i915_private_t *dev_priv = dev->dev_private;
1506 struct drm_i915_gem_relocation_entry reloc; 1686 struct drm_i915_gem_relocation_entry reloc;
1507 struct drm_i915_gem_relocation_entry __user *relocs; 1687 struct drm_i915_gem_relocation_entry __user *relocs;
1508 struct drm_i915_gem_object *obj_priv = obj->driver_private; 1688 struct drm_i915_gem_object *obj_priv = obj->driver_private;
1509 int i, ret; 1689 int i, ret;
1510 uint32_t last_reloc_offset = -1; 1690 void __iomem *reloc_page;
1511 void __iomem *reloc_page = NULL;
1512 1691
1513 /* Choose the GTT offset for our buffer and put it there. */ 1692 /* Choose the GTT offset for our buffer and put it there. */
1514 ret = i915_gem_object_pin(obj, (uint32_t) entry->alignment); 1693 ret = i915_gem_object_pin(obj, (uint32_t) entry->alignment);
@@ -1572,6 +1751,18 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
1572 return -EINVAL; 1751 return -EINVAL;
1573 } 1752 }
1574 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
1575 if (reloc.write_domain && target_obj->pending_write_domain && 1766 if (reloc.write_domain && target_obj->pending_write_domain &&
1576 reloc.write_domain != target_obj->pending_write_domain) { 1767 reloc.write_domain != target_obj->pending_write_domain) {
1577 DRM_ERROR("Write domain conflict: " 1768 DRM_ERROR("Write domain conflict: "
@@ -1612,45 +1803,22 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
1612 continue; 1803 continue;
1613 } 1804 }
1614 1805
1615 /* Now that we're going to actually write some data in, 1806 ret = i915_gem_object_set_to_gtt_domain(obj, 1);
1616 * make sure that any rendering using this buffer's contents 1807 if (ret != 0) {
1617 * is completed. 1808 drm_gem_object_unreference(target_obj);
1618 */ 1809 i915_gem_object_unpin(obj);
1619 i915_gem_object_wait_rendering(obj); 1810 return -EINVAL;
1620
1621 /* As we're writing through the gtt, flush
1622 * any CPU writes before we write the relocations
1623 */
1624 if (obj->write_domain & I915_GEM_DOMAIN_CPU) {
1625 i915_gem_clflush_object(obj);
1626 drm_agp_chipset_flush(dev);
1627 obj->write_domain = 0;
1628 } 1811 }
1629 1812
1630 /* Map the page containing the relocation we're going to 1813 /* Map the page containing the relocation we're going to
1631 * perform. 1814 * perform.
1632 */ 1815 */
1633 reloc_offset = obj_priv->gtt_offset + reloc.offset; 1816 reloc_offset = obj_priv->gtt_offset + reloc.offset;
1634 if (reloc_page == NULL || 1817 reloc_page = io_mapping_map_atomic_wc(dev_priv->mm.gtt_mapping,
1635 (last_reloc_offset & ~(PAGE_SIZE - 1)) != 1818 (reloc_offset &
1636 (reloc_offset & ~(PAGE_SIZE - 1))) { 1819 ~(PAGE_SIZE - 1)));
1637 if (reloc_page != NULL)
1638 iounmap(reloc_page);
1639
1640 reloc_page = ioremap_wc(dev->agp->base +
1641 (reloc_offset &
1642 ~(PAGE_SIZE - 1)),
1643 PAGE_SIZE);
1644 last_reloc_offset = reloc_offset;
1645 if (reloc_page == NULL) {
1646 drm_gem_object_unreference(target_obj);
1647 i915_gem_object_unpin(obj);
1648 return -ENOMEM;
1649 }
1650 }
1651
1652 reloc_entry = (uint32_t __iomem *)(reloc_page + 1820 reloc_entry = (uint32_t __iomem *)(reloc_page +
1653 (reloc_offset & (PAGE_SIZE - 1))); 1821 (reloc_offset & (PAGE_SIZE - 1)));
1654 reloc_val = target_obj_priv->gtt_offset + reloc.delta; 1822 reloc_val = target_obj_priv->gtt_offset + reloc.delta;
1655 1823
1656#if WATCH_BUF 1824#if WATCH_BUF
@@ -1659,6 +1827,7 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
1659 readl(reloc_entry), reloc_val); 1827 readl(reloc_entry), reloc_val);
1660#endif 1828#endif
1661 writel(reloc_val, reloc_entry); 1829 writel(reloc_val, reloc_entry);
1830 io_mapping_unmap_atomic(reloc_page);
1662 1831
1663 /* Write the updated presumed offset for this entry back out 1832 /* Write the updated presumed offset for this entry back out
1664 * to the user. 1833 * to the user.
@@ -1674,9 +1843,6 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
1674 drm_gem_object_unreference(target_obj); 1843 drm_gem_object_unreference(target_obj);
1675 } 1844 }
1676 1845
1677 if (reloc_page != NULL)
1678 iounmap(reloc_page);
1679
1680#if WATCH_BUF 1846#if WATCH_BUF
1681 if (0) 1847 if (0)
1682 i915_gem_dump_object(obj, 128, __func__, ~0); 1848 i915_gem_dump_object(obj, 128, __func__, ~0);
@@ -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
1875 if (obj_priv->gtt_space == NULL) {
1876 /* We evicted the buffer in the process of validating
1877 * our set of buffers in. We could try to recover by
1878 * kicking them everything out and trying again from
1879 * the start.
1880 */
1881 ret = -ENOMEM;
1882 goto err;
1883 }
1884 2062
1885 /* make sure all previous memory operations have passed */ 2063 /* Compute new gpu domains and update invalidate/flush */
1886 ret = i915_gem_object_set_domain(obj, 2064 i915_gem_object_set_to_gpu_domain(obj,
1887 obj->pending_read_domains, 2065 obj->pending_read_domains,
1888 obj->pending_write_domain); 2066 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);
@@ -2182,29 +2361,6 @@ void i915_gem_free_object(struct drm_gem_object *obj)
2182 drm_free(obj->driver_private, 1, DRM_MEM_DRIVER); 2361 drm_free(obj->driver_private, 1, DRM_MEM_DRIVER);
2183} 2362}
2184 2363
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. */ 2364/** Unbinds all objects that are on the given buffer list. */
2209static int 2365static int
2210i915_gem_evict_from_list(struct drm_device *dev, struct list_head *head) 2366i915_gem_evict_from_list(struct drm_device *dev, struct list_head *head)
@@ -2299,29 +2455,52 @@ i915_gem_idle(struct drm_device *dev)
2299 2455
2300 i915_gem_retire_requests(dev); 2456 i915_gem_retire_requests(dev);
2301 2457
2302 /* Active and flushing should now be empty as we've 2458 if (!dev_priv->mm.wedged) {
2303 * waited for a sequence higher than any pending execbuffer 2459 /* Active and flushing should now be empty as we've
2304 */ 2460 * waited for a sequence higher than any pending execbuffer
2305 BUG_ON(!list_empty(&dev_priv->mm.active_list)); 2461 */
2306 BUG_ON(!list_empty(&dev_priv->mm.flushing_list)); 2462 WARN_ON(!list_empty(&dev_priv->mm.active_list));
2463 WARN_ON(!list_empty(&dev_priv->mm.flushing_list));
2464 /* Request should now be empty as we've also waited
2465 * for the last request in the list
2466 */
2467 WARN_ON(!list_empty(&dev_priv->mm.request_list));
2468 }
2307 2469
2308 /* Request should now be empty as we've also waited 2470 /* Empty the active and flushing lists to inactive. If there's
2309 * for the last request in the list 2471 * anything left at this point, it means that we're wedged and
2472 * nothing good's going to happen by leaving them there. So strip
2473 * the GPU domains and just stuff them onto inactive.
2310 */ 2474 */
2311 BUG_ON(!list_empty(&dev_priv->mm.request_list)); 2475 while (!list_empty(&dev_priv->mm.active_list)) {
2476 struct drm_i915_gem_object *obj_priv;
2477
2478 obj_priv = list_first_entry(&dev_priv->mm.active_list,
2479 struct drm_i915_gem_object,
2480 list);
2481 obj_priv->obj->write_domain &= ~I915_GEM_GPU_DOMAINS;
2482 i915_gem_object_move_to_inactive(obj_priv->obj);
2483 }
2484
2485 while (!list_empty(&dev_priv->mm.flushing_list)) {
2486 struct drm_i915_gem_object *obj_priv;
2312 2487
2313 /* Move all buffers out of the GTT. */ 2488 obj_priv = list_first_entry(&dev_priv->mm.flushing_list,
2489 struct drm_i915_gem_object,
2490 list);
2491 obj_priv->obj->write_domain &= ~I915_GEM_GPU_DOMAINS;
2492 i915_gem_object_move_to_inactive(obj_priv->obj);
2493 }
2494
2495
2496 /* Move all inactive buffers out of the GTT. */
2314 ret = i915_gem_evict_from_list(dev, &dev_priv->mm.inactive_list); 2497 ret = i915_gem_evict_from_list(dev, &dev_priv->mm.inactive_list);
2498 WARN_ON(!list_empty(&dev_priv->mm.inactive_list));
2315 if (ret) { 2499 if (ret) {
2316 mutex_unlock(&dev->struct_mutex); 2500 mutex_unlock(&dev->struct_mutex);
2317 return ret; 2501 return ret;
2318 } 2502 }
2319 2503
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); 2504 i915_gem_cleanup_ringbuffer(dev);
2326 mutex_unlock(&dev->struct_mutex); 2505 mutex_unlock(&dev->struct_mutex);
2327 2506
@@ -2518,6 +2697,10 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
2518 if (ret != 0) 2697 if (ret != 0)
2519 return ret; 2698 return ret;
2520 2699
2700 dev_priv->mm.gtt_mapping = io_mapping_create_wc(dev->agp->base,
2701 dev->agp->agp_info.aper_size
2702 * 1024 * 1024);
2703
2521 mutex_lock(&dev->struct_mutex); 2704 mutex_lock(&dev->struct_mutex);
2522 BUG_ON(!list_empty(&dev_priv->mm.active_list)); 2705 BUG_ON(!list_empty(&dev_priv->mm.active_list));
2523 BUG_ON(!list_empty(&dev_priv->mm.flushing_list)); 2706 BUG_ON(!list_empty(&dev_priv->mm.flushing_list));
@@ -2535,11 +2718,13 @@ int
2535i915_gem_leavevt_ioctl(struct drm_device *dev, void *data, 2718i915_gem_leavevt_ioctl(struct drm_device *dev, void *data,
2536 struct drm_file *file_priv) 2719 struct drm_file *file_priv)
2537{ 2720{
2721 drm_i915_private_t *dev_priv = dev->dev_private;
2538 int ret; 2722 int ret;
2539 2723
2540 ret = i915_gem_idle(dev); 2724 ret = i915_gem_idle(dev);
2541 drm_irq_uninstall(dev); 2725 drm_irq_uninstall(dev);
2542 2726
2727 io_mapping_free(dev_priv->mm.gtt_mapping);
2543 return ret; 2728 return ret;
2544} 2729}
2545 2730
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 26f48932a51e..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
@@ -80,211 +127,6 @@ i915_pipe_enabled(struct drm_device *dev, int pipe)
80 return 0; 127 return 0;
81} 128}
82 129
83/**
84 * Emit blits for scheduled buffer swaps.
85 *
86 * This function will be called with the HW lock held.
87 * Because this function must grab the ring mutex (dev->struct_mutex),
88 * it can no longer run at soft irq time. We'll fix this when we do
89 * the DRI2 swap buffer work.
90 */
91static void i915_vblank_tasklet(struct drm_device *dev)
92{
93 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
94 unsigned long irqflags;
95 struct list_head *list, *tmp, hits, *hit;
96 int nhits, nrects, slice[2], upper[2], lower[2], i;
97 unsigned counter[2];
98 struct drm_drawable_info *drw;
99 drm_i915_sarea_t *sarea_priv = dev_priv->sarea_priv;
100 u32 cpp = dev_priv->cpp;
101 u32 cmd = (cpp == 4) ? (XY_SRC_COPY_BLT_CMD |
102 XY_SRC_COPY_BLT_WRITE_ALPHA |
103 XY_SRC_COPY_BLT_WRITE_RGB)
104 : XY_SRC_COPY_BLT_CMD;
105 u32 src_pitch = sarea_priv->pitch * cpp;
106 u32 dst_pitch = sarea_priv->pitch * cpp;
107 u32 ropcpp = (0xcc << 16) | ((cpp - 1) << 24);
108 RING_LOCALS;
109
110 mutex_lock(&dev->struct_mutex);
111
112 if (IS_I965G(dev) && sarea_priv->front_tiled) {
113 cmd |= XY_SRC_COPY_BLT_DST_TILED;
114 dst_pitch >>= 2;
115 }
116 if (IS_I965G(dev) && sarea_priv->back_tiled) {
117 cmd |= XY_SRC_COPY_BLT_SRC_TILED;
118 src_pitch >>= 2;
119 }
120
121 counter[0] = drm_vblank_count(dev, 0);
122 counter[1] = drm_vblank_count(dev, 1);
123
124 DRM_DEBUG("\n");
125
126 INIT_LIST_HEAD(&hits);
127
128 nhits = nrects = 0;
129
130 spin_lock_irqsave(&dev_priv->swaps_lock, irqflags);
131
132 /* Find buffer swaps scheduled for this vertical blank */
133 list_for_each_safe(list, tmp, &dev_priv->vbl_swaps.head) {
134 drm_i915_vbl_swap_t *vbl_swap =
135 list_entry(list, drm_i915_vbl_swap_t, head);
136 int pipe = vbl_swap->pipe;
137
138 if ((counter[pipe] - vbl_swap->sequence) > (1<<23))
139 continue;
140
141 list_del(list);
142 dev_priv->swaps_pending--;
143 drm_vblank_put(dev, pipe);
144
145 spin_unlock(&dev_priv->swaps_lock);
146 spin_lock(&dev->drw_lock);
147
148 drw = drm_get_drawable_info(dev, vbl_swap->drw_id);
149
150 list_for_each(hit, &hits) {
151 drm_i915_vbl_swap_t *swap_cmp =
152 list_entry(hit, drm_i915_vbl_swap_t, head);
153 struct drm_drawable_info *drw_cmp =
154 drm_get_drawable_info(dev, swap_cmp->drw_id);
155
156 /* Make sure both drawables are still
157 * around and have some rectangles before
158 * we look inside to order them for the
159 * blts below.
160 */
161 if (drw_cmp && drw_cmp->num_rects > 0 &&
162 drw && drw->num_rects > 0 &&
163 drw_cmp->rects[0].y1 > drw->rects[0].y1) {
164 list_add_tail(list, hit);
165 break;
166 }
167 }
168
169 spin_unlock(&dev->drw_lock);
170
171 /* List of hits was empty, or we reached the end of it */
172 if (hit == &hits)
173 list_add_tail(list, hits.prev);
174
175 nhits++;
176
177 spin_lock(&dev_priv->swaps_lock);
178 }
179
180 if (nhits == 0) {
181 spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags);
182 mutex_unlock(&dev->struct_mutex);
183 return;
184 }
185
186 spin_unlock(&dev_priv->swaps_lock);
187
188 i915_kernel_lost_context(dev);
189
190 if (IS_I965G(dev)) {
191 BEGIN_LP_RING(4);
192
193 OUT_RING(GFX_OP_DRAWRECT_INFO_I965);
194 OUT_RING(0);
195 OUT_RING(((sarea_priv->width - 1) & 0xffff) | ((sarea_priv->height - 1) << 16));
196 OUT_RING(0);
197 ADVANCE_LP_RING();
198 } else {
199 BEGIN_LP_RING(6);
200
201 OUT_RING(GFX_OP_DRAWRECT_INFO);
202 OUT_RING(0);
203 OUT_RING(0);
204 OUT_RING(sarea_priv->width | sarea_priv->height << 16);
205 OUT_RING(sarea_priv->width | sarea_priv->height << 16);
206 OUT_RING(0);
207
208 ADVANCE_LP_RING();
209 }
210
211 sarea_priv->ctxOwner = DRM_KERNEL_CONTEXT;
212
213 upper[0] = upper[1] = 0;
214 slice[0] = max(sarea_priv->pipeA_h / nhits, 1);
215 slice[1] = max(sarea_priv->pipeB_h / nhits, 1);
216 lower[0] = sarea_priv->pipeA_y + slice[0];
217 lower[1] = sarea_priv->pipeB_y + slice[0];
218
219 spin_lock(&dev->drw_lock);
220
221 /* Emit blits for buffer swaps, partitioning both outputs into as many
222 * slices as there are buffer swaps scheduled in order to avoid tearing
223 * (based on the assumption that a single buffer swap would always
224 * complete before scanout starts).
225 */
226 for (i = 0; i++ < nhits;
227 upper[0] = lower[0], lower[0] += slice[0],
228 upper[1] = lower[1], lower[1] += slice[1]) {
229 if (i == nhits)
230 lower[0] = lower[1] = sarea_priv->height;
231
232 list_for_each(hit, &hits) {
233 drm_i915_vbl_swap_t *swap_hit =
234 list_entry(hit, drm_i915_vbl_swap_t, head);
235 struct drm_clip_rect *rect;
236 int num_rects, pipe;
237 unsigned short top, bottom;
238
239 drw = drm_get_drawable_info(dev, swap_hit->drw_id);
240
241 /* The drawable may have been destroyed since
242 * the vblank swap was queued
243 */
244 if (!drw)
245 continue;
246
247 rect = drw->rects;
248 pipe = swap_hit->pipe;
249 top = upper[pipe];
250 bottom = lower[pipe];
251
252 for (num_rects = drw->num_rects; num_rects--; rect++) {
253 int y1 = max(rect->y1, top);
254 int y2 = min(rect->y2, bottom);
255
256 if (y1 >= y2)
257 continue;
258
259 BEGIN_LP_RING(8);
260
261 OUT_RING(cmd);
262 OUT_RING(ropcpp | dst_pitch);
263 OUT_RING((y1 << 16) | rect->x1);
264 OUT_RING((y2 << 16) | rect->x2);
265 OUT_RING(sarea_priv->front_offset);
266 OUT_RING((y1 << 16) | rect->x1);
267 OUT_RING(src_pitch);
268 OUT_RING(sarea_priv->back_offset);
269
270 ADVANCE_LP_RING();
271 }
272 }
273 }
274
275 spin_unlock_irqrestore(&dev->drw_lock, irqflags);
276 mutex_unlock(&dev->struct_mutex);
277
278 list_for_each_safe(hit, tmp, &hits) {
279 drm_i915_vbl_swap_t *swap_hit =
280 list_entry(hit, drm_i915_vbl_swap_t, head);
281
282 list_del(hit);
283
284 drm_free(swap_hit, sizeof(*swap_hit), DRM_MEM_DRIVER);
285 }
286}
287
288/* Called from drm generic code, passed a 'crtc', which 130/* Called from drm generic code, passed a 'crtc', which
289 * we use as a pipe index 131 * we use as a pipe index
290 */ 132 */
@@ -322,121 +164,106 @@ u32 i915_get_vblank_counter(struct drm_device *dev, int pipe)
322 return count; 164 return count;
323} 165}
324 166
325void
326i915_vblank_work_handler(struct work_struct *work)
327{
328 drm_i915_private_t *dev_priv = container_of(work, drm_i915_private_t,
329 vblank_work);
330 struct drm_device *dev = dev_priv->dev;
331 unsigned long irqflags;
332
333 if (dev->lock.hw_lock == NULL) {
334 i915_vblank_tasklet(dev);
335 return;
336 }
337
338 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
339 dev->locked_tasklet_func = i915_vblank_tasklet;
340 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
341
342 /* Try to get the lock now, if this fails, the lock
343 * holder will execute the tasklet during unlock
344 */
345 if (!drm_lock_take(&dev->lock, DRM_KERNEL_CONTEXT))
346 return;
347
348 dev->lock.lock_time = jiffies;
349 atomic_inc(&dev->counts[_DRM_STAT_LOCKS]);
350
351 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
352 dev->locked_tasklet_func = NULL;
353 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
354
355 i915_vblank_tasklet(dev);
356 drm_lock_free(&dev->lock, DRM_KERNEL_CONTEXT);
357}
358
359irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) 167irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
360{ 168{
361 struct drm_device *dev = (struct drm_device *) arg; 169 struct drm_device *dev = (struct drm_device *) arg;
362 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;
363 u32 iir; 171 u32 iir, new_iir;
364 u32 pipea_stats, pipeb_stats; 172 u32 pipea_stats, pipeb_stats;
173 u32 vblank_status;
174 u32 vblank_enable;
365 int vblank = 0; 175 int vblank = 0;
176 unsigned long irqflags;
177 int irq_received;
178 int ret = IRQ_NONE;
366 179
367 atomic_inc(&dev_priv->irq_received); 180 atomic_inc(&dev_priv->irq_received);
368 181
369 if (dev->pdev->msi_enabled)
370 I915_WRITE(IMR, ~0);
371 iir = I915_READ(IIR); 182 iir = I915_READ(IIR);
372 183
373 if (iir == 0) { 184 if (IS_I965G(dev)) {
374 if (dev->pdev->msi_enabled) { 185 vblank_status = I915_START_VBLANK_INTERRUPT_STATUS;
375 I915_WRITE(IMR, dev_priv->irq_mask_reg); 186 vblank_enable = PIPE_START_VBLANK_INTERRUPT_ENABLE;
376 (void) I915_READ(IMR); 187 } else {
377 } 188 vblank_status = I915_VBLANK_INTERRUPT_STATUS;
378 return IRQ_NONE; 189 vblank_enable = I915_VBLANK_INTERRUPT_ENABLE;
379 } 190 }
380 191
381 /* 192 for (;;) {
382 * Clear the PIPE(A|B)STAT regs before the IIR otherwise 193 irq_received = iir != 0;
383 * we may get extra interrupts. 194
384 */ 195 /* Can't rely on pipestat interrupt bit in iir as it might
385 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);
386 pipea_stats = I915_READ(PIPEASTAT); 201 pipea_stats = I915_READ(PIPEASTAT);
387 if (!(dev_priv->vblank_pipe & DRM_I915_VBLANK_PIPE_A)) 202 pipeb_stats = I915_READ(PIPEBSTAT);
388 pipea_stats &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE | 203 /*
389 PIPE_VBLANK_INTERRUPT_ENABLE); 204 * Clear the PIPE(A|B)STAT regs before the IIR
390 else if (pipea_stats & (PIPE_START_VBLANK_INTERRUPT_STATUS| 205 */
391 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) {
392 vblank++; 235 vblank++;
393 drm_handle_vblank(dev, 0); 236 drm_handle_vblank(dev, 0);
394 } 237 }
395 238
396 I915_WRITE(PIPEASTAT, pipea_stats); 239 if (pipeb_stats & vblank_status) {
397 }
398 if (iir & I915_DISPLAY_PIPE_B_EVENT_INTERRUPT) {
399 pipeb_stats = I915_READ(PIPEBSTAT);
400 /* Ack the event */
401 I915_WRITE(PIPEBSTAT, pipeb_stats);
402
403 /* The vblank interrupt gets enabled even if we didn't ask for
404 it, so make sure it's shut down again */
405 if (!(dev_priv->vblank_pipe & DRM_I915_VBLANK_PIPE_B))
406 pipeb_stats &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE |
407 PIPE_VBLANK_INTERRUPT_ENABLE);
408 else if (pipeb_stats & (PIPE_START_VBLANK_INTERRUPT_STATUS|
409 PIPE_VBLANK_INTERRUPT_STATUS)) {
410 vblank++; 240 vblank++;
411 drm_handle_vblank(dev, 1); 241 drm_handle_vblank(dev, 1);
412 } 242 }
413 243
414 if (pipeb_stats & I915_LEGACY_BLC_EVENT_STATUS) 244 if ((pipeb_stats & I915_LEGACY_BLC_EVENT_STATUS) ||
245 (iir & I915_ASLE_INTERRUPT))
415 opregion_asle_intr(dev); 246 opregion_asle_intr(dev);
416 I915_WRITE(PIPEBSTAT, pipeb_stats);
417 }
418
419 I915_WRITE(IIR, iir);
420 if (dev->pdev->msi_enabled)
421 I915_WRITE(IMR, dev_priv->irq_mask_reg);
422 (void) I915_READ(IIR); /* Flush posted writes */
423
424 if (dev_priv->sarea_priv)
425 dev_priv->sarea_priv->last_dispatch =
426 READ_BREADCRUMB(dev_priv);
427 247
428 if (iir & I915_USER_INTERRUPT) { 248 /* With MSI, interrupts are only generated when iir
429 dev_priv->mm.irq_gem_seqno = i915_get_gem_seqno(dev); 249 * transitions from zero to nonzero. If another bit got
430 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;
431 } 264 }
432 265
433 if (iir & I915_ASLE_INTERRUPT) 266 return ret;
434 opregion_asle_intr(dev);
435
436 if (vblank && dev_priv->swaps_pending > 0)
437 schedule_work(&dev_priv->vblank_work);
438
439 return IRQ_HANDLED;
440} 267}
441 268
442static int i915_emit_irq(struct drm_device * dev) 269static int i915_emit_irq(struct drm_device * dev)
@@ -454,12 +281,10 @@ static int i915_emit_irq(struct drm_device * dev)
454 if (dev_priv->sarea_priv) 281 if (dev_priv->sarea_priv)
455 dev_priv->sarea_priv->last_enqueue = dev_priv->counter; 282 dev_priv->sarea_priv->last_enqueue = dev_priv->counter;
456 283
457 BEGIN_LP_RING(6); 284 BEGIN_LP_RING(4);
458 OUT_RING(MI_STORE_DWORD_INDEX); 285 OUT_RING(MI_STORE_DWORD_INDEX);
459 OUT_RING(5 << MI_STORE_DWORD_INDEX_SHIFT); 286 OUT_RING(I915_BREADCRUMB_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
460 OUT_RING(dev_priv->counter); 287 OUT_RING(dev_priv->counter);
461 OUT_RING(0);
462 OUT_RING(0);
463 OUT_RING(MI_USER_INTERRUPT); 288 OUT_RING(MI_USER_INTERRUPT);
464 ADVANCE_LP_RING(); 289 ADVANCE_LP_RING();
465 290
@@ -574,48 +399,16 @@ int i915_irq_wait(struct drm_device *dev, void *data,
574int i915_enable_vblank(struct drm_device *dev, int pipe) 399int i915_enable_vblank(struct drm_device *dev, int pipe)
575{ 400{
576 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;
577 u32 pipestat_reg = 0;
578 u32 pipestat;
579 u32 interrupt = 0;
580 unsigned long irqflags; 402 unsigned long irqflags;
581 403
582 switch (pipe) {
583 case 0:
584 pipestat_reg = PIPEASTAT;
585 interrupt = I915_DISPLAY_PIPE_A_EVENT_INTERRUPT;
586 break;
587 case 1:
588 pipestat_reg = PIPEBSTAT;
589 interrupt = I915_DISPLAY_PIPE_B_EVENT_INTERRUPT;
590 break;
591 default:
592 DRM_ERROR("tried to enable vblank on non-existent pipe %d\n",
593 pipe);
594 return 0;
595 }
596
597 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); 404 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags);
598 /* Enabling vblank events in IMR comes before PIPESTAT write, or
599 * there's a race where the PIPESTAT vblank bit gets set to 1, so
600 * the OR of enabled PIPESTAT bits goes to 1, so the PIPExEVENT in
601 * ISR flashes to 1, but the IIR bit doesn't get set to 1 because
602 * IMR masks it. It doesn't ever get set after we clear the masking
603 * in IMR because the ISR bit is edge, not level-triggered, on the
604 * OR of PIPESTAT bits.
605 */
606 i915_enable_irq(dev_priv, interrupt);
607 pipestat = I915_READ(pipestat_reg);
608 if (IS_I965G(dev)) 405 if (IS_I965G(dev))
609 pipestat |= PIPE_START_VBLANK_INTERRUPT_ENABLE; 406 i915_enable_pipestat(dev_priv, pipe,
407 PIPE_START_VBLANK_INTERRUPT_ENABLE);
610 else 408 else
611 pipestat |= PIPE_VBLANK_INTERRUPT_ENABLE; 409 i915_enable_pipestat(dev_priv, pipe,
612 /* Clear any stale interrupt status */ 410 PIPE_VBLANK_INTERRUPT_ENABLE);
613 pipestat |= (PIPE_START_VBLANK_INTERRUPT_STATUS |
614 PIPE_VBLANK_INTERRUPT_STATUS);
615 I915_WRITE(pipestat_reg, pipestat);
616 (void) I915_READ(pipestat_reg); /* Posting read */
617 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); 411 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags);
618
619 return 0; 412 return 0;
620} 413}
621 414
@@ -625,37 +418,12 @@ int i915_enable_vblank(struct drm_device *dev, int pipe)
625void i915_disable_vblank(struct drm_device *dev, int pipe) 418void i915_disable_vblank(struct drm_device *dev, int pipe)
626{ 419{
627 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;
628 u32 pipestat_reg = 0;
629 u32 pipestat;
630 u32 interrupt = 0;
631 unsigned long irqflags; 421 unsigned long irqflags;
632 422
633 switch (pipe) {
634 case 0:
635 pipestat_reg = PIPEASTAT;
636 interrupt = I915_DISPLAY_PIPE_A_EVENT_INTERRUPT;
637 break;
638 case 1:
639 pipestat_reg = PIPEBSTAT;
640 interrupt = I915_DISPLAY_PIPE_B_EVENT_INTERRUPT;
641 break;
642 default:
643 DRM_ERROR("tried to disable vblank on non-existent pipe %d\n",
644 pipe);
645 return;
646 break;
647 }
648
649 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); 423 spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags);
650 i915_disable_irq(dev_priv, interrupt); 424 i915_disable_pipestat(dev_priv, pipe,
651 pipestat = I915_READ(pipestat_reg); 425 PIPE_VBLANK_INTERRUPT_ENABLE |
652 pipestat &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE | 426 PIPE_START_VBLANK_INTERRUPT_ENABLE);
653 PIPE_VBLANK_INTERRUPT_ENABLE);
654 /* Clear any stale interrupt status */
655 pipestat |= (PIPE_START_VBLANK_INTERRUPT_STATUS |
656 PIPE_VBLANK_INTERRUPT_STATUS);
657 I915_WRITE(pipestat_reg, pipestat);
658 (void) I915_READ(pipestat_reg); /* Posting read */
659 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); 427 spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags);
660} 428}
661 429
@@ -696,123 +464,21 @@ int i915_vblank_pipe_get(struct drm_device *dev, void *data,
696int i915_vblank_swap(struct drm_device *dev, void *data, 464int i915_vblank_swap(struct drm_device *dev, void *data,
697 struct drm_file *file_priv) 465 struct drm_file *file_priv)
698{ 466{
699 drm_i915_private_t *dev_priv = dev->dev_private; 467 /* The delayed swap mechanism was fundamentally racy, and has been
700 drm_i915_vblank_swap_t *swap = data; 468 * removed. The model was that the client requested a delayed flip/swap
701 drm_i915_vbl_swap_t *vbl_swap, *vbl_old; 469 * from the kernel, then waited for vblank before continuing to perform
702 unsigned int pipe, seqtype, curseq; 470 * rendering. The problem was that the kernel might wake the client
703 unsigned long irqflags; 471 * up before it dispatched the vblank swap (since the lock has to be
704 struct list_head *list; 472 * held while touching the ringbuffer), in which case the client would
705 int ret; 473 * clear and start the next frame before the swap occurred, and
706 474 * flicker would occur in addition to likely missing the vblank.
707 if (!dev_priv || !dev_priv->sarea_priv) { 475 *
708 DRM_ERROR("%s called with no initialization\n", __func__); 476 * In the absence of this ioctl, userland falls back to a correct path
709 return -EINVAL; 477 * of waiting for a vblank, then dispatching the swap on its own.
710 } 478 * Context switching to userland and back is plenty fast enough for
711 479 * meeting the requirements of vblank swapping.
712 if (dev_priv->sarea_priv->rotation) {
713 DRM_DEBUG("Rotation not supported\n");
714 return -EINVAL;
715 }
716
717 if (swap->seqtype & ~(_DRM_VBLANK_RELATIVE | _DRM_VBLANK_ABSOLUTE |
718 _DRM_VBLANK_SECONDARY | _DRM_VBLANK_NEXTONMISS)) {
719 DRM_ERROR("Invalid sequence type 0x%x\n", swap->seqtype);
720 return -EINVAL;
721 }
722
723 pipe = (swap->seqtype & _DRM_VBLANK_SECONDARY) ? 1 : 0;
724
725 seqtype = swap->seqtype & (_DRM_VBLANK_RELATIVE | _DRM_VBLANK_ABSOLUTE);
726
727 if (!(dev_priv->vblank_pipe & (1 << pipe))) {
728 DRM_ERROR("Invalid pipe %d\n", pipe);
729 return -EINVAL;
730 }
731
732 spin_lock_irqsave(&dev->drw_lock, irqflags);
733
734 if (!drm_get_drawable_info(dev, swap->drawable)) {
735 spin_unlock_irqrestore(&dev->drw_lock, irqflags);
736 DRM_DEBUG("Invalid drawable ID %d\n", swap->drawable);
737 return -EINVAL;
738 }
739
740 spin_unlock_irqrestore(&dev->drw_lock, irqflags);
741
742 /*
743 * We take the ref here and put it when the swap actually completes
744 * in the tasklet.
745 */ 480 */
746 ret = drm_vblank_get(dev, pipe); 481 return -EINVAL;
747 if (ret)
748 return ret;
749 curseq = drm_vblank_count(dev, pipe);
750
751 if (seqtype == _DRM_VBLANK_RELATIVE)
752 swap->sequence += curseq;
753
754 if ((curseq - swap->sequence) <= (1<<23)) {
755 if (swap->seqtype & _DRM_VBLANK_NEXTONMISS) {
756 swap->sequence = curseq + 1;
757 } else {
758 DRM_DEBUG("Missed target sequence\n");
759 drm_vblank_put(dev, pipe);
760 return -EINVAL;
761 }
762 }
763
764 vbl_swap = drm_calloc(1, sizeof(*vbl_swap), DRM_MEM_DRIVER);
765
766 if (!vbl_swap) {
767 DRM_ERROR("Failed to allocate memory to queue swap\n");
768 drm_vblank_put(dev, pipe);
769 return -ENOMEM;
770 }
771
772 vbl_swap->drw_id = swap->drawable;
773 vbl_swap->pipe = pipe;
774 vbl_swap->sequence = swap->sequence;
775
776 spin_lock_irqsave(&dev_priv->swaps_lock, irqflags);
777
778 list_for_each(list, &dev_priv->vbl_swaps.head) {
779 vbl_old = list_entry(list, drm_i915_vbl_swap_t, head);
780
781 if (vbl_old->drw_id == swap->drawable &&
782 vbl_old->pipe == pipe &&
783 vbl_old->sequence == swap->sequence) {
784 spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags);
785 drm_vblank_put(dev, pipe);
786 drm_free(vbl_swap, sizeof(*vbl_swap), DRM_MEM_DRIVER);
787 DRM_DEBUG("Already scheduled\n");
788 return 0;
789 }
790 }
791
792 if (dev_priv->swaps_pending >= 10) {
793 DRM_DEBUG("Too many swaps queued\n");
794 DRM_DEBUG(" pipe 0: %d pipe 1: %d\n",
795 drm_vblank_count(dev, 0),
796 drm_vblank_count(dev, 1));
797
798 list_for_each(list, &dev_priv->vbl_swaps.head) {
799 vbl_old = list_entry(list, drm_i915_vbl_swap_t, head);
800 DRM_DEBUG("\tdrw %x pipe %d seq %x\n",
801 vbl_old->drw_id, vbl_old->pipe,
802 vbl_old->sequence);
803 }
804 spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags);
805 drm_vblank_put(dev, pipe);
806 drm_free(vbl_swap, sizeof(*vbl_swap), DRM_MEM_DRIVER);
807 return -EBUSY;
808 }
809
810 list_add_tail(&vbl_swap->head, &dev_priv->vbl_swaps.head);
811 dev_priv->swaps_pending++;
812
813 spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags);
814
815 return 0;
816} 482}
817 483
818/* drm_dma.h hooks 484/* drm_dma.h hooks
@@ -822,37 +488,35 @@ void i915_driver_irq_preinstall(struct drm_device * dev)
822 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;
823 489
824 I915_WRITE(HWSTAM, 0xeffe); 490 I915_WRITE(HWSTAM, 0xeffe);
491 I915_WRITE(PIPEASTAT, 0);
492 I915_WRITE(PIPEBSTAT, 0);
825 I915_WRITE(IMR, 0xffffffff); 493 I915_WRITE(IMR, 0xffffffff);
826 I915_WRITE(IER, 0x0); 494 I915_WRITE(IER, 0x0);
495 (void) I915_READ(IER);
827} 496}
828 497
829int i915_driver_irq_postinstall(struct drm_device *dev) 498int i915_driver_irq_postinstall(struct drm_device *dev)
830{ 499{
831 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;
832 int ret, num_pipes = 2;
833
834 spin_lock_init(&dev_priv->swaps_lock);
835 INIT_LIST_HEAD(&dev_priv->vbl_swaps.head);
836 INIT_WORK(&dev_priv->vblank_work, i915_vblank_work_handler);
837 dev_priv->swaps_pending = 0;
838
839 /* Set initial unmasked IRQs to just the selected vblank pipes. */
840 dev_priv->irq_mask_reg = ~0;
841
842 ret = drm_vblank_init(dev, num_pipes);
843 if (ret)
844 return ret;
845 501
846 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;
847 dev_priv->irq_mask_reg &= ~I915_DISPLAY_PIPE_A_VBLANK_INTERRUPT;
848 dev_priv->irq_mask_reg &= ~I915_DISPLAY_PIPE_B_VBLANK_INTERRUPT;
849 503
850 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ 504 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
851 505
852 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));
853 517
854 I915_WRITE(IMR, dev_priv->irq_mask_reg);
855 I915_WRITE(IER, I915_INTERRUPT_ENABLE_MASK); 518 I915_WRITE(IER, I915_INTERRUPT_ENABLE_MASK);
519 I915_WRITE(IMR, dev_priv->irq_mask_reg);
856 (void) I915_READ(IER); 520 (void) I915_READ(IER);
857 521
858 opregion_enable_asle(dev); 522 opregion_enable_asle(dev);
@@ -864,7 +528,6 @@ int i915_driver_irq_postinstall(struct drm_device *dev)
864void i915_driver_irq_uninstall(struct drm_device * dev) 528void i915_driver_irq_uninstall(struct drm_device * dev)
865{ 529{
866 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;
867 u32 temp;
868 531
869 if (!dev_priv) 532 if (!dev_priv)
870 return; 533 return;
@@ -872,13 +535,12 @@ void i915_driver_irq_uninstall(struct drm_device * dev)
872 dev_priv->vblank_pipe = 0; 535 dev_priv->vblank_pipe = 0;
873 536
874 I915_WRITE(HWSTAM, 0xffffffff); 537 I915_WRITE(HWSTAM, 0xffffffff);
538 I915_WRITE(PIPEASTAT, 0);
539 I915_WRITE(PIPEBSTAT, 0);
875 I915_WRITE(IMR, 0xffffffff); 540 I915_WRITE(IMR, 0xffffffff);
876 I915_WRITE(IER, 0x0); 541 I915_WRITE(IER, 0x0);
877 542
878 temp = I915_READ(PIPEASTAT); 543 I915_WRITE(PIPEASTAT, I915_READ(PIPEASTAT) & 0x8000ffff);
879 I915_WRITE(PIPEASTAT, temp); 544 I915_WRITE(PIPEBSTAT, I915_READ(PIPEBSTAT) & 0x8000ffff);
880 temp = I915_READ(PIPEBSTAT); 545 I915_WRITE(IIR, I915_READ(IIR));
881 I915_WRITE(PIPEBSTAT, temp);
882 temp = I915_READ(IIR);
883 I915_WRITE(IIR, temp);
884} 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 5c2d9f206d05..9d24aaeb8a45 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -522,11 +522,15 @@
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
528#define C1DRB3 0x10606 529#define C1DRB3 0x10606
529 530
531/** GM965 GM45 render standby register */
532#define MCHBAR_RENDER_STANDBY 0x111B8
533
530/* 534/*
531 * Overlay regs 535 * Overlay regs
532 */ 536 */
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index 603fe742ccd4..5d84027ee8f3 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -240,6 +240,13 @@ int i915_save_state(struct drm_device *dev)
240 240
241 pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB); 241 pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB);
242 242
243 /* Render Standby */
244 if (IS_I965G(dev) && IS_MOBILE(dev))
245 dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY);
246
247 /* Hardware status page */
248 dev_priv->saveHWS = I915_READ(HWS_PGA);
249
243 /* Display arbitration control */ 250 /* Display arbitration control */
244 dev_priv->saveDSPARB = I915_READ(DSPARB); 251 dev_priv->saveDSPARB = I915_READ(DSPARB);
245 252
@@ -365,6 +372,14 @@ int i915_restore_state(struct drm_device *dev)
365 372
366 pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); 373 pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB);
367 374
375 /* Render Standby */
376 if (IS_I965G(dev) && IS_MOBILE(dev))
377 I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY);
378
379 /* Hardware status page */
380 I915_WRITE(HWS_PGA, dev_priv->saveHWS);
381
382 /* Display arbitration */
368 I915_WRITE(DSPARB, dev_priv->saveDSPARB); 383 I915_WRITE(DSPARB, dev_priv->saveDSPARB);
369 384
370 /* Pipe & plane A info */ 385 /* Pipe & plane A info */
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 59a2132a8f57..dcebb4bee7aa 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -653,15 +653,16 @@ static void radeon_cp_init_ring_buffer(struct drm_device * dev,
653 RADEON_WRITE(RADEON_SCRATCH_UMSK, 0x7); 653 RADEON_WRITE(RADEON_SCRATCH_UMSK, 0x7);
654 654
655 /* Turn on bus mastering */ 655 /* Turn on bus mastering */
656 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS400) || 656 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) ||
657 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) ||
658 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS740)) { 657 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS740)) {
659 /* rs400, rs690/rs740 */ 658 /* rs600/rs690/rs740 */
660 tmp = RADEON_READ(RADEON_BUS_CNTL) & ~RS400_BUS_MASTER_DIS; 659 tmp = RADEON_READ(RADEON_BUS_CNTL) & ~RS600_BUS_MASTER_DIS;
661 RADEON_WRITE(RADEON_BUS_CNTL, tmp); 660 RADEON_WRITE(RADEON_BUS_CNTL, tmp);
662 } else if (!(((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV380) || 661 } else if (((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV350) ||
663 ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R423))) { 662 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R420) ||
664 /* r1xx, r2xx, r300, r(v)350, r420/r481, rs480 */ 663 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS400) ||
664 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS480)) {
665 /* r1xx, r2xx, r300, r(v)350, r420/r481, rs400/rs480 */
665 tmp = RADEON_READ(RADEON_BUS_CNTL) & ~RADEON_BUS_MASTER_DIS; 666 tmp = RADEON_READ(RADEON_BUS_CNTL) & ~RADEON_BUS_MASTER_DIS;
666 RADEON_WRITE(RADEON_BUS_CNTL, tmp); 667 RADEON_WRITE(RADEON_BUS_CNTL, tmp);
667 } /* PCIE cards appears to not need this */ 668 } /* PCIE cards appears to not need this */
@@ -1750,6 +1751,18 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
1750 else 1751 else
1751 dev_priv->flags |= RADEON_IS_PCI; 1752 dev_priv->flags |= RADEON_IS_PCI;
1752 1753
1754 ret = drm_addmap(dev, drm_get_resource_start(dev, 2),
1755 drm_get_resource_len(dev, 2), _DRM_REGISTERS,
1756 _DRM_READ_ONLY | _DRM_DRIVER, &dev_priv->mmio);
1757 if (ret != 0)
1758 return ret;
1759
1760 ret = drm_vblank_init(dev, 2);
1761 if (ret) {
1762 radeon_driver_unload(dev);
1763 return ret;
1764 }
1765
1753 DRM_DEBUG("%s card detected\n", 1766 DRM_DEBUG("%s card detected\n",
1754 ((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"))));
1755 return ret; 1768 return ret;
@@ -1766,12 +1779,6 @@ int radeon_driver_firstopen(struct drm_device *dev)
1766 1779
1767 dev_priv->gart_info.table_size = RADEON_PCIGART_TABLE_SIZE; 1780 dev_priv->gart_info.table_size = RADEON_PCIGART_TABLE_SIZE;
1768 1781
1769 ret = drm_addmap(dev, drm_get_resource_start(dev, 2),
1770 drm_get_resource_len(dev, 2), _DRM_REGISTERS,
1771 _DRM_READ_ONLY, &dev_priv->mmio);
1772 if (ret != 0)
1773 return ret;
1774
1775 dev_priv->fb_aper_offset = drm_get_resource_start(dev, 0); 1782 dev_priv->fb_aper_offset = drm_get_resource_start(dev, 0);
1776 ret = drm_addmap(dev, dev_priv->fb_aper_offset, 1783 ret = drm_addmap(dev, dev_priv->fb_aper_offset,
1777 drm_get_resource_len(dev, 0), _DRM_FRAME_BUFFER, 1784 drm_get_resource_len(dev, 0), _DRM_FRAME_BUFFER,
@@ -1787,6 +1794,9 @@ int radeon_driver_unload(struct drm_device *dev)
1787 drm_radeon_private_t *dev_priv = dev->dev_private; 1794 drm_radeon_private_t *dev_priv = dev->dev_private;
1788 1795
1789 DRM_DEBUG("\n"); 1796 DRM_DEBUG("\n");
1797
1798 drm_rmmap(dev, dev_priv->mmio);
1799
1790 drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER); 1800 drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);
1791 1801
1792 dev->dev_private = NULL; 1802 dev->dev_private = NULL;
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
index 4dbb813910c3..3bbb871b25d5 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -287,7 +287,6 @@ typedef struct drm_radeon_private {
287 unsigned long gart_textures_offset; 287 unsigned long gart_textures_offset;
288 288
289 drm_local_map_t *sarea; 289 drm_local_map_t *sarea;
290 drm_local_map_t *mmio;
291 drm_local_map_t *cp_ring; 290 drm_local_map_t *cp_ring;
292 drm_local_map_t *ring_rptr; 291 drm_local_map_t *ring_rptr;
293 drm_local_map_t *gart_textures; 292 drm_local_map_t *gart_textures;
@@ -300,7 +299,6 @@ typedef struct drm_radeon_private {
300 atomic_t swi_emitted; 299 atomic_t swi_emitted;
301 int vblank_crtc; 300 int vblank_crtc;
302 uint32_t irq_enable_reg; 301 uint32_t irq_enable_reg;
303 int irq_enabled;
304 uint32_t r500_disp_irq_reg; 302 uint32_t r500_disp_irq_reg;
305 303
306 struct radeon_surface surfaces[RADEON_MAX_SURFACES]; 304 struct radeon_surface surfaces[RADEON_MAX_SURFACES];
@@ -318,6 +316,7 @@ typedef struct drm_radeon_private {
318 316
319 int num_gb_pipes; 317 int num_gb_pipes;
320 int track_flush; 318 int track_flush;
319 drm_local_map_t *mmio;
321} drm_radeon_private_t; 320} drm_radeon_private_t;
322 321
323typedef struct drm_radeon_buf_priv { 322typedef struct drm_radeon_buf_priv {
@@ -447,12 +446,12 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
447 * handling, not bus mastering itself. 446 * handling, not bus mastering itself.
448 */ 447 */
449#define RADEON_BUS_CNTL 0x0030 448#define RADEON_BUS_CNTL 0x0030
450/* r1xx, r2xx, r300, r(v)350, r420/r481, rs480 */ 449/* r1xx, r2xx, r300, r(v)350, r420/r481, rs400/rs480 */
451# define RADEON_BUS_MASTER_DIS (1 << 6) 450# define RADEON_BUS_MASTER_DIS (1 << 6)
452/* rs400, rs690/rs740 */ 451/* rs600/rs690/rs740 */
453# define RS400_BUS_MASTER_DIS (1 << 14) 452# define RS600_BUS_MASTER_DIS (1 << 14)
454# define RS400_MSI_REARM (1 << 20) 453# define RS600_MSI_REARM (1 << 20)
455/* see RS480_MSI_REARM in AIC_CNTL for rs480 */ 454/* see RS400_MSI_REARM in AIC_CNTL for rs480 */
456 455
457#define RADEON_BUS_CNTL1 0x0034 456#define RADEON_BUS_CNTL1 0x0034
458# define RADEON_PMI_BM_DIS (1 << 2) 457# define RADEON_PMI_BM_DIS (1 << 2)
@@ -937,7 +936,7 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
937 936
938#define RADEON_AIC_CNTL 0x01d0 937#define RADEON_AIC_CNTL 0x01d0
939# define RADEON_PCIGART_TRANSLATE_EN (1 << 0) 938# define RADEON_PCIGART_TRANSLATE_EN (1 << 0)
940# define RS480_MSI_REARM (1 << 3) 939# define RS400_MSI_REARM (1 << 3)
941#define RADEON_AIC_STAT 0x01d4 940#define RADEON_AIC_STAT 0x01d4
942#define RADEON_AIC_PT_BASE 0x01d8 941#define RADEON_AIC_PT_BASE 0x01d8
943#define RADEON_AIC_LO_ADDR 0x01dc 942#define RADEON_AIC_LO_ADDR 0x01dc
diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
index 5079f7054a2f..99be11418ac2 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 c6ab4ba60c52..aa28aed0e46c 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -55,10 +55,11 @@ struct apple_key_translation {
55 55
56static struct apple_key_translation apple_fn_keys[] = { 56static struct apple_key_translation apple_fn_keys[] = {
57 { KEY_BACKSPACE, KEY_DELETE }, 57 { KEY_BACKSPACE, KEY_DELETE },
58 { KEY_ENTER, KEY_INSERT },
58 { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY }, 59 { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY },
59 { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY }, 60 { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY },
60 { KEY_F3, KEY_FN_F5, APPLE_FLAG_FKEY }, /* Exposé */ 61 { KEY_F3, KEY_SCALE, APPLE_FLAG_FKEY },
61 { KEY_F4, KEY_FN_F4, APPLE_FLAG_FKEY }, /* Dashboard */ 62 { KEY_F4, KEY_DASHBOARD, APPLE_FLAG_FKEY },
62 { KEY_F5, KEY_KBDILLUMDOWN, APPLE_FLAG_FKEY }, 63 { KEY_F5, KEY_KBDILLUMDOWN, APPLE_FLAG_FKEY },
63 { KEY_F6, KEY_KBDILLUMUP, APPLE_FLAG_FKEY }, 64 { KEY_F6, KEY_KBDILLUMUP, APPLE_FLAG_FKEY },
64 { KEY_F7, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY }, 65 { KEY_F7, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY },
@@ -399,12 +400,12 @@ static const struct hid_device_id apple_devices[] = {
399 { 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),
400 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | 401 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
401 APPLE_RDESC_JIS }, 402 APPLE_RDESC_JIS },
402 { 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),
403 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, 404 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
404 { 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),
405 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | 406 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
406 APPLE_ISO_KEYBOARD }, 407 APPLE_ISO_KEYBOARD },
407 { 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),
408 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, 409 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
409 { 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),
410 .driver_data = APPLE_HAS_FN }, 411 .driver_data = APPLE_HAS_FN },
@@ -418,6 +419,12 @@ static const struct hid_device_id apple_devices[] = {
418 .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, 419 .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
419 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS), 420 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS),
420 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, 421 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
422 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI),
423 .driver_data = APPLE_HAS_FN },
424 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO),
425 .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
426 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS),
427 .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
421 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY), 428 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY),
422 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, 429 .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
423 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY), 430 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY),
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 1903e7515650..40df3e1b4bd1 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1241,18 +1241,20 @@ 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) },
1250 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI) }, 1250 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI) },
1251 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO) }, 1251 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO) },
1252 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS) }, 1252 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS) },
1253 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) },
1254 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) },
1255 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) },
1253 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, 1256 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
1254 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, 1257 { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
1255 { HID_USB_DEVICE(USB_VENDOR_ID_AVERMEDIA, USB_DEVICE_ID_AVER_FM_MR800) },
1256 { HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) }, 1258 { HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) },
1257 { HID_USB_DEVICE(USB_VENDOR_ID_BRIGHT, USB_DEVICE_ID_BRIGHT_ABNT2) }, 1259 { HID_USB_DEVICE(USB_VENDOR_ID_BRIGHT, USB_DEVICE_ID_BRIGHT_ABNT2) },
1258 { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) }, 1260 { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) },
@@ -1264,6 +1266,9 @@ static const struct hid_device_id hid_blacklist[] = {
1264 { 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) },
1265 { 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) },
1266 { 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) },
1267 { 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) },
1268 { 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) },
1269 { 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) },
@@ -1408,6 +1413,7 @@ static const struct hid_device_id hid_ignore_list[] = {
1408 { HID_USB_DEVICE(USB_VENDOR_ID_ALCOR, USB_DEVICE_ID_ALCOR_USBRS232) }, 1413 { HID_USB_DEVICE(USB_VENDOR_ID_ALCOR, USB_DEVICE_ID_ALCOR_USBRS232) },
1409 { HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_LCM)}, 1414 { HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_LCM)},
1410 { HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_LCM2)}, 1415 { HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_LCM2)},
1416 { HID_USB_DEVICE(USB_VENDOR_ID_AVERMEDIA, USB_DEVICE_ID_AVER_FM_MR800) },
1411 { HID_USB_DEVICE(USB_VENDOR_ID_BERKSHIRE, USB_DEVICE_ID_BERKSHIRE_PCWD) }, 1417 { HID_USB_DEVICE(USB_VENDOR_ID_BERKSHIRE, USB_DEVICE_ID_BERKSHIRE_PCWD) },
1412 { HID_USB_DEVICE(USB_VENDOR_ID_CIDC, 0x0103) }, 1418 { HID_USB_DEVICE(USB_VENDOR_ID_CIDC, 0x0103) },
1413 { HID_USB_DEVICE(USB_VENDOR_ID_CYGNAL, USB_DEVICE_ID_CYGNAL_RADIO_SI470X) }, 1419 { HID_USB_DEVICE(USB_VENDOR_ID_CYGNAL, USB_DEVICE_ID_CYGNAL_RADIO_SI470X) },
@@ -1417,7 +1423,6 @@ static const struct hid_device_id hid_ignore_list[] = {
1417 { 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) },
1418 { 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) },
1419 { 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) },
1420 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) },
1421 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0001) }, 1426 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0001) },
1422 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0002) }, 1427 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0002) },
1423 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0003) }, 1428 { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0003) },
@@ -1433,7 +1438,6 @@ static const struct hid_device_id hid_ignore_list[] = {
1433 { 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) },
1434 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_GOGOPEN) }, 1439 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_GOGOPEN) },
1435 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_PENPOWER) }, 1440 { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_PENPOWER) },
1436 { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003) },
1437 { 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) },
1438 { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_POWERMATE) }, 1442 { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_POWERMATE) },
1439 { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_SOUNDKNOB) }, 1443 { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_SOUNDKNOB) },
@@ -1485,6 +1489,7 @@ static const struct hid_device_id hid_ignore_list[] = {
1485 { HID_USB_DEVICE(USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1007) }, 1489 { HID_USB_DEVICE(USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1007) },
1486 { HID_USB_DEVICE(USB_VENDOR_ID_IMATION, USB_DEVICE_ID_DISC_STAKKA) }, 1490 { HID_USB_DEVICE(USB_VENDOR_ID_IMATION, USB_DEVICE_ID_DISC_STAKKA) },
1487 { HID_USB_DEVICE(USB_VENDOR_ID_KBGEAR, USB_DEVICE_ID_KBGEAR_JAMSTUDIO) }, 1491 { HID_USB_DEVICE(USB_VENDOR_ID_KBGEAR, USB_DEVICE_ID_KBGEAR_JAMSTUDIO) },
1492 { HID_USB_DEVICE(USB_VENDOR_ID_KWORLD, USB_DEVICE_ID_KWORLD_RADIO_FM700) },
1488 { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_GPEN_560) }, 1493 { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_GPEN_560) },
1489 { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_CASSY) }, 1494 { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_CASSY) },
1490 { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_POCKETCASSY) }, 1495 { HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_POCKETCASSY) },
@@ -1729,7 +1734,7 @@ static int __init hid_init(void)
1729 goto err_bus; 1734 goto err_bus;
1730 1735
1731#ifdef CONFIG_HID_COMPAT 1736#ifdef CONFIG_HID_COMPAT
1732 hid_compat_wq = create_workqueue("hid_compat"); 1737 hid_compat_wq = create_singlethread_workqueue("hid_compat");
1733 if (!hid_compat_wq) { 1738 if (!hid_compat_wq) {
1734 hidraw_exit(); 1739 hidraw_exit();
1735 goto err; 1740 goto err;
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 5cc404291736..39289699c32f 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -82,6 +82,9 @@
82#define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230 82#define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230
83#define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231 83#define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231
84#define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232 84#define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232
85#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236
86#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237
87#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238
85#define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a 88#define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a
86#define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b 89#define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b
87#define USB_DEVICE_ID_APPLE_ATV_IRCONTROL 0x8241 90#define USB_DEVICE_ID_APPLE_ATV_IRCONTROL 0x8241
@@ -160,6 +163,7 @@
160 163
161#define USB_VENDOR_ID_GAMERON 0x0810 164#define USB_VENDOR_ID_GAMERON 0x0810
162#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
163 167
164#define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc 168#define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc
165 169
@@ -253,6 +257,9 @@
253#define USB_VENDOR_ID_KBGEAR 0x084e 257#define USB_VENDOR_ID_KBGEAR 0x084e
254#define USB_DEVICE_ID_KBGEAR_JAMSTUDIO 0x1001 258#define USB_DEVICE_ID_KBGEAR_JAMSTUDIO 0x1001
255 259
260#define USB_VENDOR_ID_KWORLD 0x1b80
261#define USB_DEVICE_ID_KWORLD_RADIO_FM700 0xd700
262
256#define USB_VENDOR_ID_LABTEC 0x1020 263#define USB_VENDOR_ID_LABTEC 0x1020
257#define USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD 0x0006 264#define USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD 0x0006
258 265
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/hidraw.c b/drivers/hid/hidraw.c
index 894d52e05bf9..7685ae6808c4 100644
--- a/drivers/hid/hidraw.c
+++ b/drivers/hid/hidraw.c
@@ -38,7 +38,7 @@ static int hidraw_major;
38static struct cdev hidraw_cdev; 38static struct cdev hidraw_cdev;
39static struct class *hidraw_class; 39static struct class *hidraw_class;
40static struct hidraw *hidraw_table[HIDRAW_MAX_DEVICES]; 40static struct hidraw *hidraw_table[HIDRAW_MAX_DEVICES];
41static DEFINE_SPINLOCK(minors_lock); 41static DEFINE_MUTEX(minors_lock);
42 42
43static ssize_t hidraw_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos) 43static ssize_t hidraw_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
44{ 44{
@@ -159,13 +159,13 @@ static int hidraw_open(struct inode *inode, struct file *file)
159 struct hidraw_list *list; 159 struct hidraw_list *list;
160 int err = 0; 160 int err = 0;
161 161
162 lock_kernel();
163 if (!(list = kzalloc(sizeof(struct hidraw_list), GFP_KERNEL))) { 162 if (!(list = kzalloc(sizeof(struct hidraw_list), GFP_KERNEL))) {
164 err = -ENOMEM; 163 err = -ENOMEM;
165 goto out; 164 goto out;
166 } 165 }
167 166
168 spin_lock(&minors_lock); 167 lock_kernel();
168 mutex_lock(&minors_lock);
169 if (!hidraw_table[minor]) { 169 if (!hidraw_table[minor]) {
170 printk(KERN_EMERG "hidraw device with minor %d doesn't exist\n", 170 printk(KERN_EMERG "hidraw device with minor %d doesn't exist\n",
171 minor); 171 minor);
@@ -180,13 +180,16 @@ static int hidraw_open(struct inode *inode, struct file *file)
180 file->private_data = list; 180 file->private_data = list;
181 181
182 dev = hidraw_table[minor]; 182 dev = hidraw_table[minor];
183 if (!dev->open++) 183 if (!dev->open++) {
184 dev->hid->ll_driver->open(dev->hid); 184 err = dev->hid->ll_driver->open(dev->hid);
185 if (err < 0)
186 dev->open--;
187 }
185 188
186out_unlock: 189out_unlock:
187 spin_unlock(&minors_lock); 190 mutex_unlock(&minors_lock);
188out:
189 unlock_kernel(); 191 unlock_kernel();
192out:
190 return err; 193 return err;
191 194
192} 195}
@@ -310,7 +313,7 @@ int hidraw_connect(struct hid_device *hid)
310 313
311 result = -EINVAL; 314 result = -EINVAL;
312 315
313 spin_lock(&minors_lock); 316 mutex_lock(&minors_lock);
314 317
315 for (minor = 0; minor < HIDRAW_MAX_DEVICES; minor++) { 318 for (minor = 0; minor < HIDRAW_MAX_DEVICES; minor++) {
316 if (hidraw_table[minor]) 319 if (hidraw_table[minor])
@@ -320,9 +323,8 @@ int hidraw_connect(struct hid_device *hid)
320 break; 323 break;
321 } 324 }
322 325
323 spin_unlock(&minors_lock);
324
325 if (result) { 326 if (result) {
327 mutex_unlock(&minors_lock);
326 kfree(dev); 328 kfree(dev);
327 goto out; 329 goto out;
328 } 330 }
@@ -331,14 +333,14 @@ int hidraw_connect(struct hid_device *hid)
331 NULL, "%s%d", "hidraw", minor); 333 NULL, "%s%d", "hidraw", minor);
332 334
333 if (IS_ERR(dev->dev)) { 335 if (IS_ERR(dev->dev)) {
334 spin_lock(&minors_lock);
335 hidraw_table[minor] = NULL; 336 hidraw_table[minor] = NULL;
336 spin_unlock(&minors_lock); 337 mutex_unlock(&minors_lock);
337 result = PTR_ERR(dev->dev); 338 result = PTR_ERR(dev->dev);
338 kfree(dev); 339 kfree(dev);
339 goto out; 340 goto out;
340 } 341 }
341 342
343 mutex_unlock(&minors_lock);
342 init_waitqueue_head(&dev->wait); 344 init_waitqueue_head(&dev->wait);
343 INIT_LIST_HEAD(&dev->list); 345 INIT_LIST_HEAD(&dev->list);
344 346
@@ -360,9 +362,9 @@ void hidraw_disconnect(struct hid_device *hid)
360 362
361 hidraw->exist = 0; 363 hidraw->exist = 0;
362 364
363 spin_lock(&minors_lock); 365 mutex_lock(&minors_lock);
364 hidraw_table[hidraw->minor] = NULL; 366 hidraw_table[hidraw->minor] = NULL;
365 spin_unlock(&minors_lock); 367 mutex_unlock(&minors_lock);
366 368
367 device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor)); 369 device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor));
368 370
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 18e5ddd722cd..606369ea24ca 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -781,6 +781,8 @@ static int usbhid_start(struct hid_device *hid)
781 unsigned int n, insize = 0; 781 unsigned int n, insize = 0;
782 int ret; 782 int ret;
783 783
784 clear_bit(HID_DISCONNECTED, &usbhid->iofl);
785
784 usbhid->bufsize = HID_MIN_BUFFER_SIZE; 786 usbhid->bufsize = HID_MIN_BUFFER_SIZE;
785 hid_find_max_report(hid, HID_INPUT_REPORT, &usbhid->bufsize); 787 hid_find_max_report(hid, HID_INPUT_REPORT, &usbhid->bufsize);
786 hid_find_max_report(hid, HID_OUTPUT_REPORT, &usbhid->bufsize); 788 hid_find_max_report(hid, HID_OUTPUT_REPORT, &usbhid->bufsize);
@@ -794,7 +796,6 @@ static int usbhid_start(struct hid_device *hid)
794 if (insize > HID_MAX_BUFFER_SIZE) 796 if (insize > HID_MAX_BUFFER_SIZE)
795 insize = HID_MAX_BUFFER_SIZE; 797 insize = HID_MAX_BUFFER_SIZE;
796 798
797 mutex_lock(&usbhid->setup);
798 if (hid_alloc_buffers(dev, hid)) { 799 if (hid_alloc_buffers(dev, hid)) {
799 ret = -ENOMEM; 800 ret = -ENOMEM;
800 goto fail; 801 goto fail;
@@ -847,12 +848,6 @@ static int usbhid_start(struct hid_device *hid)
847 } 848 }
848 } 849 }
849 850
850 if (!usbhid->urbin) {
851 err_hid("couldn't find an input interrupt endpoint");
852 ret = -ENODEV;
853 goto fail;
854 }
855
856 init_waitqueue_head(&usbhid->wait); 851 init_waitqueue_head(&usbhid->wait);
857 INIT_WORK(&usbhid->reset_work, hid_reset); 852 INIT_WORK(&usbhid->reset_work, hid_reset);
858 setup_timer(&usbhid->io_retry, hid_retry_timeout, (unsigned long) hid); 853 setup_timer(&usbhid->io_retry, hid_retry_timeout, (unsigned long) hid);
@@ -880,7 +875,6 @@ static int usbhid_start(struct hid_device *hid)
880 hid_dump_device(hid); 875 hid_dump_device(hid);
881 876
882 set_bit(HID_STARTED, &usbhid->iofl); 877 set_bit(HID_STARTED, &usbhid->iofl);
883 mutex_unlock(&usbhid->setup);
884 878
885 return 0; 879 return 0;
886 880
@@ -888,8 +882,10 @@ fail:
888 usb_free_urb(usbhid->urbin); 882 usb_free_urb(usbhid->urbin);
889 usb_free_urb(usbhid->urbout); 883 usb_free_urb(usbhid->urbout);
890 usb_free_urb(usbhid->urbctrl); 884 usb_free_urb(usbhid->urbctrl);
885 usbhid->urbin = NULL;
886 usbhid->urbout = NULL;
887 usbhid->urbctrl = NULL;
891 hid_free_buffers(dev, hid); 888 hid_free_buffers(dev, hid);
892 mutex_unlock(&usbhid->setup);
893 return ret; 889 return ret;
894} 890}
895 891
@@ -900,7 +896,6 @@ static void usbhid_stop(struct hid_device *hid)
900 if (WARN_ON(!usbhid)) 896 if (WARN_ON(!usbhid))
901 return; 897 return;
902 898
903 mutex_lock(&usbhid->setup);
904 clear_bit(HID_STARTED, &usbhid->iofl); 899 clear_bit(HID_STARTED, &usbhid->iofl);
905 spin_lock_irq(&usbhid->inlock); /* Sync with error handler */ 900 spin_lock_irq(&usbhid->inlock); /* Sync with error handler */
906 set_bit(HID_DISCONNECTED, &usbhid->iofl); 901 set_bit(HID_DISCONNECTED, &usbhid->iofl);
@@ -924,9 +919,11 @@ static void usbhid_stop(struct hid_device *hid)
924 usb_free_urb(usbhid->urbin); 919 usb_free_urb(usbhid->urbin);
925 usb_free_urb(usbhid->urbctrl); 920 usb_free_urb(usbhid->urbctrl);
926 usb_free_urb(usbhid->urbout); 921 usb_free_urb(usbhid->urbout);
922 usbhid->urbin = NULL; /* don't mess up next start */
923 usbhid->urbctrl = NULL;
924 usbhid->urbout = NULL;
927 925
928 hid_free_buffers(hid_to_usb_dev(hid), hid); 926 hid_free_buffers(hid_to_usb_dev(hid), hid);
929 mutex_unlock(&usbhid->setup);
930} 927}
931 928
932static struct hid_ll_driver usb_hid_driver = { 929static struct hid_ll_driver usb_hid_driver = {
@@ -940,15 +937,26 @@ static struct hid_ll_driver usb_hid_driver = {
940 937
941static int hid_probe(struct usb_interface *intf, const struct usb_device_id *id) 938static int hid_probe(struct usb_interface *intf, const struct usb_device_id *id)
942{ 939{
940 struct usb_host_interface *interface = intf->cur_altsetting;
943 struct usb_device *dev = interface_to_usbdev(intf); 941 struct usb_device *dev = interface_to_usbdev(intf);
944 struct usbhid_device *usbhid; 942 struct usbhid_device *usbhid;
945 struct hid_device *hid; 943 struct hid_device *hid;
944 unsigned int n, has_in = 0;
946 size_t len; 945 size_t len;
947 int ret; 946 int ret;
948 947
949 dbg_hid("HID probe called for ifnum %d\n", 948 dbg_hid("HID probe called for ifnum %d\n",
950 intf->altsetting->desc.bInterfaceNumber); 949 intf->altsetting->desc.bInterfaceNumber);
951 950
951 for (n = 0; n < interface->desc.bNumEndpoints; n++)
952 if (usb_endpoint_is_int_in(&interface->endpoint[n].desc))
953 has_in++;
954 if (!has_in) {
955 dev_err(&intf->dev, "couldn't find an input interrupt "
956 "endpoint\n");
957 return -ENODEV;
958 }
959
952 hid = hid_allocate_device(); 960 hid = hid_allocate_device();
953 if (IS_ERR(hid)) 961 if (IS_ERR(hid))
954 return PTR_ERR(hid); 962 return PTR_ERR(hid);
@@ -1003,7 +1011,6 @@ static int hid_probe(struct usb_interface *intf, const struct usb_device_id *id)
1003 1011
1004 hid->driver_data = usbhid; 1012 hid->driver_data = usbhid;
1005 usbhid->hid = hid; 1013 usbhid->hid = hid;
1006 mutex_init(&usbhid->setup); /* needed on suspend/resume */
1007 1014
1008 ret = hid_add_device(hid); 1015 ret = hid_add_device(hid);
1009 if (ret) { 1016 if (ret) {
@@ -1038,18 +1045,14 @@ static int hid_suspend(struct usb_interface *intf, pm_message_t message)
1038 struct hid_device *hid = usb_get_intfdata (intf); 1045 struct hid_device *hid = usb_get_intfdata (intf);
1039 struct usbhid_device *usbhid = hid->driver_data; 1046 struct usbhid_device *usbhid = hid->driver_data;
1040 1047
1041 mutex_lock(&usbhid->setup); 1048 if (!test_bit(HID_STARTED, &usbhid->iofl))
1042 if (!test_bit(HID_STARTED, &usbhid->iofl)) {
1043 mutex_unlock(&usbhid->setup);
1044 return 0; 1049 return 0;
1045 }
1046 1050
1047 spin_lock_irq(&usbhid->inlock); /* Sync with error handler */ 1051 spin_lock_irq(&usbhid->inlock); /* Sync with error handler */
1048 set_bit(HID_SUSPENDED, &usbhid->iofl); 1052 set_bit(HID_SUSPENDED, &usbhid->iofl);
1049 spin_unlock_irq(&usbhid->inlock); 1053 spin_unlock_irq(&usbhid->inlock);
1050 del_timer_sync(&usbhid->io_retry); 1054 del_timer_sync(&usbhid->io_retry);
1051 usb_kill_urb(usbhid->urbin); 1055 usb_kill_urb(usbhid->urbin);
1052 mutex_unlock(&usbhid->setup);
1053 dev_dbg(&intf->dev, "suspend\n"); 1056 dev_dbg(&intf->dev, "suspend\n");
1054 return 0; 1057 return 0;
1055} 1058}
@@ -1060,16 +1063,12 @@ static int hid_resume(struct usb_interface *intf)
1060 struct usbhid_device *usbhid = hid->driver_data; 1063 struct usbhid_device *usbhid = hid->driver_data;
1061 int status; 1064 int status;
1062 1065
1063 mutex_lock(&usbhid->setup); 1066 if (!test_bit(HID_STARTED, &usbhid->iofl))
1064 if (!test_bit(HID_STARTED, &usbhid->iofl)) {
1065 mutex_unlock(&usbhid->setup);
1066 return 0; 1067 return 0;
1067 }
1068 1068
1069 clear_bit(HID_SUSPENDED, &usbhid->iofl); 1069 clear_bit(HID_SUSPENDED, &usbhid->iofl);
1070 usbhid->retry_delay = 0; 1070 usbhid->retry_delay = 0;
1071 status = hid_start_in(hid); 1071 status = hid_start_in(hid);
1072 mutex_unlock(&usbhid->setup);
1073 dev_dbg(&intf->dev, "resume status %d\n", status); 1072 dev_dbg(&intf->dev, "resume status %d\n", status);
1074 return status; 1073 return status;
1075} 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/Kconfig b/drivers/hwmon/Kconfig
index 6de1e0ffd391..c709e821f04b 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -159,6 +159,16 @@ config SENSORS_ADM9240
159 This driver can also be built as a module. If so, the module 159 This driver can also be built as a module. If so, the module
160 will be called adm9240. 160 will be called adm9240.
161 161
162config SENSORS_ADT7462
163 tristate "Analog Devices ADT7462"
164 depends on I2C && EXPERIMENTAL
165 help
166 If you say yes here you get support for the Analog Devices
167 ADT7462 temperature monitoring chips.
168
169 This driver can also be built as a module. If so, the module
170 will be called adt7462.
171
162config SENSORS_ADT7470 172config SENSORS_ADT7470
163 tristate "Analog Devices ADT7470" 173 tristate "Analog Devices ADT7470"
164 depends on I2C && EXPERIMENTAL 174 depends on I2C && EXPERIMENTAL
@@ -825,6 +835,25 @@ config SENSORS_HDAPS
825 Say Y here if you have an applicable laptop and want to experience 835 Say Y here if you have an applicable laptop and want to experience
826 the awesome power of hdaps. 836 the awesome power of hdaps.
827 837
838config SENSORS_LIS3LV02D
839 tristate "STMicroeletronics LIS3LV02Dx three-axis digital accelerometer"
840 depends on ACPI && INPUT
841 default n
842 help
843 This driver provides support for the LIS3LV02Dx accelerometer. In
844 particular, it can be found in a number of HP laptops, which have the
845 "Mobile Data Protection System 3D" or "3D DriveGuard" feature. On such
846 systems the driver should load automatically (via ACPI). The
847 accelerometer might also be found in other systems, connected via SPI
848 or I2C. The accelerometer data is readable via
849 /sys/devices/platform/lis3lv02d.
850
851 This driver also provides an absolute input class device, allowing
852 the laptop to act as a pinball machine-esque joystick.
853
854 This driver can also be built as a module. If so, the module
855 will be called lis3lv02d.
856
828config SENSORS_APPLESMC 857config SENSORS_APPLESMC
829 tristate "Apple SMC (Motion sensor, light sensor, keyboard backlight)" 858 tristate "Apple SMC (Motion sensor, light sensor, keyboard backlight)"
830 depends on INPUT && X86 859 depends on INPUT && X86
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
index 042d5a78622e..58fc5be5355d 100644
--- a/drivers/hwmon/Makefile
+++ b/drivers/hwmon/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_SENSORS_ADM1029) += adm1029.o
25obj-$(CONFIG_SENSORS_ADM1031) += adm1031.o 25obj-$(CONFIG_SENSORS_ADM1031) += adm1031.o
26obj-$(CONFIG_SENSORS_ADM9240) += adm9240.o 26obj-$(CONFIG_SENSORS_ADM9240) += adm9240.o
27obj-$(CONFIG_SENSORS_ADS7828) += ads7828.o 27obj-$(CONFIG_SENSORS_ADS7828) += ads7828.o
28obj-$(CONFIG_SENSORS_ADT7462) += adt7462.o
28obj-$(CONFIG_SENSORS_ADT7470) += adt7470.o 29obj-$(CONFIG_SENSORS_ADT7470) += adt7470.o
29obj-$(CONFIG_SENSORS_ADT7473) += adt7473.o 30obj-$(CONFIG_SENSORS_ADT7473) += adt7473.o
30obj-$(CONFIG_SENSORS_APPLESMC) += applesmc.o 31obj-$(CONFIG_SENSORS_APPLESMC) += applesmc.o
@@ -48,6 +49,7 @@ obj-$(CONFIG_SENSORS_IBMAEM) += ibmaem.o
48obj-$(CONFIG_SENSORS_IBMPEX) += ibmpex.o 49obj-$(CONFIG_SENSORS_IBMPEX) += ibmpex.o
49obj-$(CONFIG_SENSORS_IT87) += it87.o 50obj-$(CONFIG_SENSORS_IT87) += it87.o
50obj-$(CONFIG_SENSORS_K8TEMP) += k8temp.o 51obj-$(CONFIG_SENSORS_K8TEMP) += k8temp.o
52obj-$(CONFIG_SENSORS_LIS3LV02D) += lis3lv02d.o
51obj-$(CONFIG_SENSORS_LM63) += lm63.o 53obj-$(CONFIG_SENSORS_LM63) += lm63.o
52obj-$(CONFIG_SENSORS_LM70) += lm70.o 54obj-$(CONFIG_SENSORS_LM70) += lm70.o
53obj-$(CONFIG_SENSORS_LM75) += lm75.o 55obj-$(CONFIG_SENSORS_LM75) += lm75.o
diff --git a/drivers/hwmon/adt7462.c b/drivers/hwmon/adt7462.c
new file mode 100644
index 000000000000..66107b4dc12a
--- /dev/null
+++ b/drivers/hwmon/adt7462.c
@@ -0,0 +1,2002 @@
1/*
2 * A hwmon driver for the Analog Devices ADT7462
3 * Copyright (C) 2008 IBM
4 *
5 * Author: Darrick J. Wong <djwong@us.ibm.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#include <linux/module.h>
23#include <linux/jiffies.h>
24#include <linux/i2c.h>
25#include <linux/hwmon.h>
26#include <linux/hwmon-sysfs.h>
27#include <linux/err.h>
28#include <linux/mutex.h>
29#include <linux/delay.h>
30#include <linux/log2.h>
31
32/* Addresses to scan */
33static const unsigned short normal_i2c[] = { 0x58, 0x5C, I2C_CLIENT_END };
34
35/* Insmod parameters */
36I2C_CLIENT_INSMOD_1(adt7462);
37
38/* ADT7462 registers */
39#define ADT7462_REG_DEVICE 0x3D
40#define ADT7462_REG_VENDOR 0x3E
41#define ADT7462_REG_REVISION 0x3F
42
43#define ADT7462_REG_MIN_TEMP_BASE_ADDR 0x44
44#define ADT7462_REG_MIN_TEMP_MAX_ADDR 0x47
45#define ADT7462_REG_MAX_TEMP_BASE_ADDR 0x48
46#define ADT7462_REG_MAX_TEMP_MAX_ADDR 0x4B
47#define ADT7462_REG_TEMP_BASE_ADDR 0x88
48#define ADT7462_REG_TEMP_MAX_ADDR 0x8F
49
50#define ADT7462_REG_FAN_BASE_ADDR 0x98
51#define ADT7462_REG_FAN_MAX_ADDR 0x9F
52#define ADT7462_REG_FAN2_BASE_ADDR 0xA2
53#define ADT7462_REG_FAN2_MAX_ADDR 0xA9
54#define ADT7462_REG_FAN_ENABLE 0x07
55#define ADT7462_REG_FAN_MIN_BASE_ADDR 0x78
56#define ADT7462_REG_FAN_MIN_MAX_ADDR 0x7F
57
58#define ADT7462_REG_CFG2 0x02
59#define ADT7462_FSPD_MASK 0x20
60
61#define ADT7462_REG_PWM_BASE_ADDR 0xAA
62#define ADT7462_REG_PWM_MAX_ADDR 0xAD
63#define ADT7462_REG_PWM_MIN_BASE_ADDR 0x28
64#define ADT7462_REG_PWM_MIN_MAX_ADDR 0x2B
65#define ADT7462_REG_PWM_MAX 0x2C
66#define ADT7462_REG_PWM_TEMP_MIN_BASE_ADDR 0x5C
67#define ADT7462_REG_PWM_TEMP_MIN_MAX_ADDR 0x5F
68#define ADT7462_REG_PWM_TEMP_RANGE_BASE_ADDR 0x60
69#define ADT7462_REG_PWM_TEMP_RANGE_MAX_ADDR 0x63
70#define ADT7462_PWM_HYST_MASK 0x0F
71#define ADT7462_PWM_RANGE_MASK 0xF0
72#define ADT7462_PWM_RANGE_SHIFT 4
73#define ADT7462_REG_PWM_CFG_BASE_ADDR 0x21
74#define ADT7462_REG_PWM_CFG_MAX_ADDR 0x24
75#define ADT7462_PWM_CHANNEL_MASK 0xE0
76#define ADT7462_PWM_CHANNEL_SHIFT 5
77
78#define ADT7462_REG_PIN_CFG_BASE_ADDR 0x10
79#define ADT7462_REG_PIN_CFG_MAX_ADDR 0x13
80#define ADT7462_PIN7_INPUT 0x01 /* cfg0 */
81#define ADT7462_DIODE3_INPUT 0x20
82#define ADT7462_DIODE1_INPUT 0x40
83#define ADT7462_VID_INPUT 0x80
84#define ADT7462_PIN22_INPUT 0x04 /* cfg1 */
85#define ADT7462_PIN21_INPUT 0x08
86#define ADT7462_PIN19_INPUT 0x10
87#define ADT7462_PIN15_INPUT 0x20
88#define ADT7462_PIN13_INPUT 0x40
89#define ADT7462_PIN8_INPUT 0x80
90#define ADT7462_PIN23_MASK 0x03
91#define ADT7462_PIN23_SHIFT 0
92#define ADT7462_PIN26_MASK 0x0C /* cfg2 */
93#define ADT7462_PIN26_SHIFT 2
94#define ADT7462_PIN25_MASK 0x30
95#define ADT7462_PIN25_SHIFT 4
96#define ADT7462_PIN24_MASK 0xC0
97#define ADT7462_PIN24_SHIFT 6
98#define ADT7462_PIN26_VOLT_INPUT 0x08
99#define ADT7462_PIN25_VOLT_INPUT 0x20
100#define ADT7462_PIN28_SHIFT 6 /* cfg3 */
101#define ADT7462_PIN28_VOLT 0x5
102
103#define ADT7462_REG_ALARM1 0xB8
104#define ADT7462_LT_ALARM 0x02
105#define ADT7462_R1T_ALARM 0x04
106#define ADT7462_R2T_ALARM 0x08
107#define ADT7462_R3T_ALARM 0x10
108#define ADT7462_REG_ALARM2 0xBB
109#define ADT7462_V0_ALARM 0x01
110#define ADT7462_V1_ALARM 0x02
111#define ADT7462_V2_ALARM 0x04
112#define ADT7462_V3_ALARM 0x08
113#define ADT7462_V4_ALARM 0x10
114#define ADT7462_V5_ALARM 0x20
115#define ADT7462_V6_ALARM 0x40
116#define ADT7462_V7_ALARM 0x80
117#define ADT7462_REG_ALARM3 0xBC
118#define ADT7462_V8_ALARM 0x08
119#define ADT7462_V9_ALARM 0x10
120#define ADT7462_V10_ALARM 0x20
121#define ADT7462_V11_ALARM 0x40
122#define ADT7462_V12_ALARM 0x80
123#define ADT7462_REG_ALARM4 0xBD
124#define ADT7462_F0_ALARM 0x01
125#define ADT7462_F1_ALARM 0x02
126#define ADT7462_F2_ALARM 0x04
127#define ADT7462_F3_ALARM 0x08
128#define ADT7462_F4_ALARM 0x10
129#define ADT7462_F5_ALARM 0x20
130#define ADT7462_F6_ALARM 0x40
131#define ADT7462_F7_ALARM 0x80
132#define ADT7462_ALARM1 0x0000
133#define ADT7462_ALARM2 0x0100
134#define ADT7462_ALARM3 0x0200
135#define ADT7462_ALARM4 0x0300
136#define ADT7462_ALARM_REG_SHIFT 8
137#define ADT7462_ALARM_FLAG_MASK 0x0F
138
139#define ADT7462_TEMP_COUNT 4
140#define ADT7462_TEMP_REG(x) (ADT7462_REG_TEMP_BASE_ADDR + (x * 2))
141#define ADT7462_TEMP_MIN_REG(x) (ADT7462_REG_MIN_TEMP_BASE_ADDR + (x))
142#define ADT7462_TEMP_MAX_REG(x) (ADT7462_REG_MAX_TEMP_BASE_ADDR + (x))
143#define TEMP_FRAC_OFFSET 6
144
145#define ADT7462_FAN_COUNT 8
146#define ADT7462_REG_FAN_MIN(x) (ADT7462_REG_FAN_MIN_BASE_ADDR + (x))
147
148#define ADT7462_PWM_COUNT 4
149#define ADT7462_REG_PWM(x) (ADT7462_REG_PWM_BASE_ADDR + (x))
150#define ADT7462_REG_PWM_MIN(x) (ADT7462_REG_PWM_MIN_BASE_ADDR + (x))
151#define ADT7462_REG_PWM_TMIN(x) \
152 (ADT7462_REG_PWM_TEMP_MIN_BASE_ADDR + (x))
153#define ADT7462_REG_PWM_TRANGE(x) \
154 (ADT7462_REG_PWM_TEMP_RANGE_BASE_ADDR + (x))
155
156#define ADT7462_PIN_CFG_REG_COUNT 4
157#define ADT7462_REG_PIN_CFG(x) (ADT7462_REG_PIN_CFG_BASE_ADDR + (x))
158#define ADT7462_REG_PWM_CFG(x) (ADT7462_REG_PWM_CFG_BASE_ADDR + (x))
159
160#define ADT7462_ALARM_REG_COUNT 4
161
162/*
163 * The chip can measure 13 different voltage sources:
164 *
165 * 1. +12V1 (pin 7)
166 * 2. Vccp1/+2.5V/+1.8V/+1.5V (pin 23)
167 * 3. +12V3 (pin 22)
168 * 4. +5V (pin 21)
169 * 5. +1.25V/+0.9V (pin 19)
170 * 6. +2.5V/+1.8V (pin 15)
171 * 7. +3.3v (pin 13)
172 * 8. +12V2 (pin 8)
173 * 9. Vbatt/FSB_Vtt (pin 26)
174 * A. +3.3V/+1.2V1 (pin 25)
175 * B. Vccp2/+2.5V/+1.8V/+1.5V (pin 24)
176 * C. +1.5V ICH (only if BOTH pin 28/29 are set to +1.5V)
177 * D. +1.5V 3GPIO (only if BOTH pin 28/29 are set to +1.5V)
178 *
179 * Each of these 13 has a factor to convert raw to voltage. Even better,
180 * the pins can be connected to other sensors (tach/gpio/hot/etc), which
181 * makes the bookkeeping tricky.
182 *
183 * Some, but not all, of these voltages have low/high limits.
184 */
185#define ADT7462_VOLT_COUNT 12
186
187#define ADT7462_VENDOR 0x41
188#define ADT7462_DEVICE 0x62
189/* datasheet only mentions a revision 4 */
190#define ADT7462_REVISION 0x04
191
192/* How often do we reread sensors values? (In jiffies) */
193#define SENSOR_REFRESH_INTERVAL (2 * HZ)
194
195/* How often do we reread sensor limit values? (In jiffies) */
196#define LIMIT_REFRESH_INTERVAL (60 * HZ)
197
198/* datasheet says to divide this number by the fan reading to get fan rpm */
199#define FAN_PERIOD_TO_RPM(x) ((90000 * 60) / (x))
200#define FAN_RPM_TO_PERIOD FAN_PERIOD_TO_RPM
201#define FAN_PERIOD_INVALID 65535
202#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID)
203
204#define MASK_AND_SHIFT(value, prefix) \
205 (((value) & prefix##_MASK) >> prefix##_SHIFT)
206
207#define ROUND_DIV(x, divisor) (((x) + ((divisor) / 2)) / (divisor))
208
209struct adt7462_data {
210 struct device *hwmon_dev;
211 struct attribute_group attrs;
212 struct mutex lock;
213 char sensors_valid;
214 char limits_valid;
215 unsigned long sensors_last_updated; /* In jiffies */
216 unsigned long limits_last_updated; /* In jiffies */
217
218 u8 temp[ADT7462_TEMP_COUNT];
219 /* bits 6-7 are quarter pieces of temp */
220 u8 temp_frac[ADT7462_TEMP_COUNT];
221 u8 temp_min[ADT7462_TEMP_COUNT];
222 u8 temp_max[ADT7462_TEMP_COUNT];
223 u16 fan[ADT7462_FAN_COUNT];
224 u8 fan_enabled;
225 u8 fan_min[ADT7462_FAN_COUNT];
226 u8 cfg2;
227 u8 pwm[ADT7462_PWM_COUNT];
228 u8 pin_cfg[ADT7462_PIN_CFG_REG_COUNT];
229 u8 voltages[ADT7462_VOLT_COUNT];
230 u8 volt_max[ADT7462_VOLT_COUNT];
231 u8 volt_min[ADT7462_VOLT_COUNT];
232 u8 pwm_min[ADT7462_PWM_COUNT];
233 u8 pwm_tmin[ADT7462_PWM_COUNT];
234 u8 pwm_trange[ADT7462_PWM_COUNT];
235 u8 pwm_max; /* only one per chip */
236 u8 pwm_cfg[ADT7462_PWM_COUNT];
237 u8 alarms[ADT7462_ALARM_REG_COUNT];
238};
239
240static int adt7462_probe(struct i2c_client *client,
241 const struct i2c_device_id *id);
242static int adt7462_detect(struct i2c_client *client, int kind,
243 struct i2c_board_info *info);
244static int adt7462_remove(struct i2c_client *client);
245
246static const struct i2c_device_id adt7462_id[] = {
247 { "adt7462", adt7462 },
248 { }
249};
250MODULE_DEVICE_TABLE(i2c, adt7462_id);
251
252static struct i2c_driver adt7462_driver = {
253 .class = I2C_CLASS_HWMON,
254 .driver = {
255 .name = "adt7462",
256 },
257 .probe = adt7462_probe,
258 .remove = adt7462_remove,
259 .id_table = adt7462_id,
260 .detect = adt7462_detect,
261 .address_data = &addr_data,
262};
263
264/*
265 * 16-bit registers on the ADT7462 are low-byte first. The data sheet says
266 * that the low byte must be read before the high byte.
267 */
268static inline int adt7462_read_word_data(struct i2c_client *client, u8 reg)
269{
270 u16 foo;
271 foo = i2c_smbus_read_byte_data(client, reg);
272 foo |= ((u16)i2c_smbus_read_byte_data(client, reg + 1) << 8);
273 return foo;
274}
275
276/* For some reason these registers are not contiguous. */
277static int ADT7462_REG_FAN(int fan)
278{
279 if (fan < 4)
280 return ADT7462_REG_FAN_BASE_ADDR + (2 * fan);
281 return ADT7462_REG_FAN2_BASE_ADDR + (2 * (fan - 4));
282}
283
284/* Voltage registers are scattered everywhere */
285static int ADT7462_REG_VOLT_MAX(struct adt7462_data *data, int which)
286{
287 switch (which) {
288 case 0:
289 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
290 return 0x7C;
291 break;
292 case 1:
293 return 0x69;
294 case 2:
295 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
296 return 0x7F;
297 break;
298 case 3:
299 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
300 return 0x7E;
301 break;
302 case 4:
303 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT))
304 return 0x4B;
305 break;
306 case 5:
307 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT))
308 return 0x49;
309 break;
310 case 6:
311 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
312 return 0x68;
313 break;
314 case 7:
315 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
316 return 0x7D;
317 break;
318 case 8:
319 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT))
320 return 0x6C;
321 break;
322 case 9:
323 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT))
324 return 0x6B;
325 break;
326 case 10:
327 return 0x6A;
328 case 11:
329 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
330 ADT7462_PIN28_VOLT &&
331 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
332 return 0x50;
333 break;
334 case 12:
335 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
336 ADT7462_PIN28_VOLT &&
337 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
338 return 0x4C;
339 break;
340 }
341 return -ENODEV;
342}
343
344static int ADT7462_REG_VOLT_MIN(struct adt7462_data *data, int which)
345{
346 switch (which) {
347 case 0:
348 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
349 return 0x6D;
350 break;
351 case 1:
352 return 0x72;
353 case 2:
354 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
355 return 0x6F;
356 break;
357 case 3:
358 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
359 return 0x71;
360 break;
361 case 4:
362 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT))
363 return 0x47;
364 break;
365 case 5:
366 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT))
367 return 0x45;
368 break;
369 case 6:
370 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
371 return 0x70;
372 break;
373 case 7:
374 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
375 return 0x6E;
376 break;
377 case 8:
378 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT))
379 return 0x75;
380 break;
381 case 9:
382 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT))
383 return 0x74;
384 break;
385 case 10:
386 return 0x73;
387 case 11:
388 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
389 ADT7462_PIN28_VOLT &&
390 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
391 return 0x76;
392 break;
393 case 12:
394 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
395 ADT7462_PIN28_VOLT &&
396 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
397 return 0x77;
398 break;
399 }
400 return -ENODEV;
401}
402
403static int ADT7462_REG_VOLT(struct adt7462_data *data, int which)
404{
405 switch (which) {
406 case 0:
407 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
408 return 0xA3;
409 break;
410 case 1:
411 return 0x90;
412 case 2:
413 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
414 return 0xA9;
415 break;
416 case 3:
417 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
418 return 0xA7;
419 break;
420 case 4:
421 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT))
422 return 0x8F;
423 break;
424 case 5:
425 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT))
426 return 0x8B;
427 break;
428 case 6:
429 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
430 return 0x96;
431 break;
432 case 7:
433 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
434 return 0xA5;
435 break;
436 case 8:
437 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT))
438 return 0x93;
439 break;
440 case 9:
441 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT))
442 return 0x92;
443 break;
444 case 10:
445 return 0x91;
446 case 11:
447 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
448 ADT7462_PIN28_VOLT &&
449 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
450 return 0x94;
451 break;
452 case 12:
453 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
454 ADT7462_PIN28_VOLT &&
455 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
456 return 0x95;
457 break;
458 }
459 return -ENODEV;
460}
461
462/* Provide labels for sysfs */
463static const char *voltage_label(struct adt7462_data *data, int which)
464{
465 switch (which) {
466 case 0:
467 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
468 return "+12V1";
469 break;
470 case 1:
471 switch (MASK_AND_SHIFT(data->pin_cfg[1], ADT7462_PIN23)) {
472 case 0:
473 return "Vccp1";
474 case 1:
475 return "+2.5V";
476 case 2:
477 return "+1.8V";
478 case 3:
479 return "+1.5V";
480 }
481 case 2:
482 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
483 return "+12V3";
484 break;
485 case 3:
486 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
487 return "+5V";
488 break;
489 case 4:
490 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) {
491 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT)
492 return "+0.9V";
493 return "+1.25V";
494 }
495 break;
496 case 5:
497 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) {
498 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT)
499 return "+1.8V";
500 return "+2.5V";
501 }
502 break;
503 case 6:
504 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
505 return "+3.3V";
506 break;
507 case 7:
508 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
509 return "+12V2";
510 break;
511 case 8:
512 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN26)) {
513 case 0:
514 return "Vbatt";
515 case 1:
516 return "FSB_Vtt";
517 }
518 break;
519 case 9:
520 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN25)) {
521 case 0:
522 return "+3.3V";
523 case 1:
524 return "+1.2V1";
525 }
526 break;
527 case 10:
528 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN24)) {
529 case 0:
530 return "Vccp2";
531 case 1:
532 return "+2.5V";
533 case 2:
534 return "+1.8V";
535 case 3:
536 return "+1.5";
537 }
538 case 11:
539 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
540 ADT7462_PIN28_VOLT &&
541 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
542 return "+1.5V ICH";
543 break;
544 case 12:
545 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
546 ADT7462_PIN28_VOLT &&
547 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
548 return "+1.5V 3GPIO";
549 break;
550 }
551 return "N/A";
552}
553
554/* Multipliers are actually in uV, not mV. */
555static int voltage_multiplier(struct adt7462_data *data, int which)
556{
557 switch (which) {
558 case 0:
559 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
560 return 62500;
561 break;
562 case 1:
563 switch (MASK_AND_SHIFT(data->pin_cfg[1], ADT7462_PIN23)) {
564 case 0:
565 if (data->pin_cfg[0] & ADT7462_VID_INPUT)
566 return 12500;
567 return 6250;
568 case 1:
569 return 13000;
570 case 2:
571 return 9400;
572 case 3:
573 return 7800;
574 }
575 case 2:
576 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
577 return 62500;
578 break;
579 case 3:
580 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
581 return 26000;
582 break;
583 case 4:
584 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) {
585 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT)
586 return 4690;
587 return 6500;
588 }
589 break;
590 case 5:
591 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) {
592 if (data->pin_cfg[1] & ADT7462_PIN15_INPUT)
593 return 9400;
594 return 13000;
595 }
596 break;
597 case 6:
598 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
599 return 17200;
600 break;
601 case 7:
602 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
603 return 62500;
604 break;
605 case 8:
606 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN26)) {
607 case 0:
608 return 15600;
609 case 1:
610 return 6250;
611 }
612 break;
613 case 9:
614 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN25)) {
615 case 0:
616 return 17200;
617 case 1:
618 return 6250;
619 }
620 break;
621 case 10:
622 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN24)) {
623 case 0:
624 return 6250;
625 case 1:
626 return 13000;
627 case 2:
628 return 9400;
629 case 3:
630 return 7800;
631 }
632 case 11:
633 case 12:
634 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
635 ADT7462_PIN28_VOLT &&
636 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
637 return 7800;
638 }
639 return 0;
640}
641
642static int temp_enabled(struct adt7462_data *data, int which)
643{
644 switch (which) {
645 case 0:
646 case 2:
647 return 1;
648 case 1:
649 if (data->pin_cfg[0] & ADT7462_DIODE1_INPUT)
650 return 1;
651 break;
652 case 3:
653 if (data->pin_cfg[0] & ADT7462_DIODE3_INPUT)
654 return 1;
655 break;
656 }
657 return 0;
658}
659
660static const char *temp_label(struct adt7462_data *data, int which)
661{
662 switch (which) {
663 case 0:
664 return "local";
665 case 1:
666 if (data->pin_cfg[0] & ADT7462_DIODE1_INPUT)
667 return "remote1";
668 break;
669 case 2:
670 return "remote2";
671 case 3:
672 if (data->pin_cfg[0] & ADT7462_DIODE3_INPUT)
673 return "remote3";
674 break;
675 }
676 return "N/A";
677}
678
679/* Map Trange register values to mC */
680#define NUM_TRANGE_VALUES 16
681static const int trange_values[NUM_TRANGE_VALUES] = {
682 2000,
683 2500,
684 3300,
685 4000,
686 5000,
687 6700,
688 8000,
689 10000,
690 13300,
691 16000,
692 20000,
693 26700,
694 32000,
695 40000,
696 53300,
697 80000
698};
699
700static int find_trange_value(int trange)
701{
702 int i;
703
704 for (i = 0; i < NUM_TRANGE_VALUES; i++)
705 if (trange_values[i] == trange)
706 return i;
707
708 return -ENODEV;
709}
710
711static struct adt7462_data *adt7462_update_device(struct device *dev)
712{
713 struct i2c_client *client = to_i2c_client(dev);
714 struct adt7462_data *data = i2c_get_clientdata(client);
715 unsigned long local_jiffies = jiffies;
716 int i;
717
718 mutex_lock(&data->lock);
719 if (time_before(local_jiffies, data->sensors_last_updated +
720 SENSOR_REFRESH_INTERVAL)
721 && data->sensors_valid)
722 goto no_sensor_update;
723
724 for (i = 0; i < ADT7462_TEMP_COUNT; i++) {
725 /*
726 * Reading the fractional register locks the integral
727 * register until both have been read.
728 */
729 data->temp_frac[i] = i2c_smbus_read_byte_data(client,
730 ADT7462_TEMP_REG(i));
731 data->temp[i] = i2c_smbus_read_byte_data(client,
732 ADT7462_TEMP_REG(i) + 1);
733 }
734
735 for (i = 0; i < ADT7462_FAN_COUNT; i++)
736 data->fan[i] = adt7462_read_word_data(client,
737 ADT7462_REG_FAN(i));
738
739 data->fan_enabled = i2c_smbus_read_byte_data(client,
740 ADT7462_REG_FAN_ENABLE);
741
742 for (i = 0; i < ADT7462_PWM_COUNT; i++)
743 data->pwm[i] = i2c_smbus_read_byte_data(client,
744 ADT7462_REG_PWM(i));
745
746 for (i = 0; i < ADT7462_PIN_CFG_REG_COUNT; i++)
747 data->pin_cfg[i] = i2c_smbus_read_byte_data(client,
748 ADT7462_REG_PIN_CFG(i));
749
750 for (i = 0; i < ADT7462_VOLT_COUNT; i++) {
751 int reg = ADT7462_REG_VOLT(data, i);
752 if (!reg)
753 data->voltages[i] = 0;
754 else
755 data->voltages[i] = i2c_smbus_read_byte_data(client,
756 reg);
757 }
758
759 data->alarms[0] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM1);
760 data->alarms[1] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM2);
761 data->alarms[2] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM3);
762 data->alarms[3] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM4);
763
764 data->sensors_last_updated = local_jiffies;
765 data->sensors_valid = 1;
766
767no_sensor_update:
768 if (time_before(local_jiffies, data->limits_last_updated +
769 LIMIT_REFRESH_INTERVAL)
770 && data->limits_valid)
771 goto out;
772
773 for (i = 0; i < ADT7462_TEMP_COUNT; i++) {
774 data->temp_min[i] = i2c_smbus_read_byte_data(client,
775 ADT7462_TEMP_MIN_REG(i));
776 data->temp_max[i] = i2c_smbus_read_byte_data(client,
777 ADT7462_TEMP_MAX_REG(i));
778 }
779
780 for (i = 0; i < ADT7462_FAN_COUNT; i++)
781 data->fan_min[i] = i2c_smbus_read_byte_data(client,
782 ADT7462_REG_FAN_MIN(i));
783
784 for (i = 0; i < ADT7462_VOLT_COUNT; i++) {
785 int reg = ADT7462_REG_VOLT_MAX(data, i);
786 data->volt_max[i] =
787 (reg ? i2c_smbus_read_byte_data(client, reg) : 0);
788
789 reg = ADT7462_REG_VOLT_MIN(data, i);
790 data->volt_min[i] =
791 (reg ? i2c_smbus_read_byte_data(client, reg) : 0);
792 }
793
794 for (i = 0; i < ADT7462_PWM_COUNT; i++) {
795 data->pwm_min[i] = i2c_smbus_read_byte_data(client,
796 ADT7462_REG_PWM_MIN(i));
797 data->pwm_tmin[i] = i2c_smbus_read_byte_data(client,
798 ADT7462_REG_PWM_TMIN(i));
799 data->pwm_trange[i] = i2c_smbus_read_byte_data(client,
800 ADT7462_REG_PWM_TRANGE(i));
801 data->pwm_cfg[i] = i2c_smbus_read_byte_data(client,
802 ADT7462_REG_PWM_CFG(i));
803 }
804
805 data->pwm_max = i2c_smbus_read_byte_data(client, ADT7462_REG_PWM_MAX);
806
807 data->cfg2 = i2c_smbus_read_byte_data(client, ADT7462_REG_CFG2);
808
809 data->limits_last_updated = local_jiffies;
810 data->limits_valid = 1;
811
812out:
813 mutex_unlock(&data->lock);
814 return data;
815}
816
817static ssize_t show_temp_min(struct device *dev,
818 struct device_attribute *devattr,
819 char *buf)
820{
821 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
822 struct adt7462_data *data = adt7462_update_device(dev);
823
824 if (!temp_enabled(data, attr->index))
825 return sprintf(buf, "0\n");
826
827 return sprintf(buf, "%d\n", 1000 * (data->temp_min[attr->index] - 64));
828}
829
830static ssize_t set_temp_min(struct device *dev,
831 struct device_attribute *devattr,
832 const char *buf,
833 size_t count)
834{
835 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
836 struct i2c_client *client = to_i2c_client(dev);
837 struct adt7462_data *data = i2c_get_clientdata(client);
838 long temp;
839
840 if (strict_strtol(buf, 10, &temp) || !temp_enabled(data, attr->index))
841 return -EINVAL;
842
843 temp = ROUND_DIV(temp, 1000) + 64;
844 temp = SENSORS_LIMIT(temp, 0, 255);
845
846 mutex_lock(&data->lock);
847 data->temp_min[attr->index] = temp;
848 i2c_smbus_write_byte_data(client, ADT7462_TEMP_MIN_REG(attr->index),
849 temp);
850 mutex_unlock(&data->lock);
851
852 return count;
853}
854
855static ssize_t show_temp_max(struct device *dev,
856 struct device_attribute *devattr,
857 char *buf)
858{
859 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
860 struct adt7462_data *data = adt7462_update_device(dev);
861
862 if (!temp_enabled(data, attr->index))
863 return sprintf(buf, "0\n");
864
865 return sprintf(buf, "%d\n", 1000 * (data->temp_max[attr->index] - 64));
866}
867
868static ssize_t set_temp_max(struct device *dev,
869 struct device_attribute *devattr,
870 const char *buf,
871 size_t count)
872{
873 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
874 struct i2c_client *client = to_i2c_client(dev);
875 struct adt7462_data *data = i2c_get_clientdata(client);
876 long temp;
877
878 if (strict_strtol(buf, 10, &temp) || !temp_enabled(data, attr->index))
879 return -EINVAL;
880
881 temp = ROUND_DIV(temp, 1000) + 64;
882 temp = SENSORS_LIMIT(temp, 0, 255);
883
884 mutex_lock(&data->lock);
885 data->temp_max[attr->index] = temp;
886 i2c_smbus_write_byte_data(client, ADT7462_TEMP_MAX_REG(attr->index),
887 temp);
888 mutex_unlock(&data->lock);
889
890 return count;
891}
892
893static ssize_t show_temp(struct device *dev, struct device_attribute *devattr,
894 char *buf)
895{
896 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
897 struct adt7462_data *data = adt7462_update_device(dev);
898 u8 frac = data->temp_frac[attr->index] >> TEMP_FRAC_OFFSET;
899
900 if (!temp_enabled(data, attr->index))
901 return sprintf(buf, "0\n");
902
903 return sprintf(buf, "%d\n", 1000 * (data->temp[attr->index] - 64) +
904 250 * frac);
905}
906
907static ssize_t show_temp_label(struct device *dev,
908 struct device_attribute *devattr,
909 char *buf)
910{
911 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
912 struct adt7462_data *data = adt7462_update_device(dev);
913
914 return sprintf(buf, "%s\n", temp_label(data, attr->index));
915}
916
917static ssize_t show_volt_max(struct device *dev,
918 struct device_attribute *devattr,
919 char *buf)
920{
921 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
922 struct adt7462_data *data = adt7462_update_device(dev);
923 int x = voltage_multiplier(data, attr->index);
924
925 x *= data->volt_max[attr->index];
926 x /= 1000; /* convert from uV to mV */
927
928 return sprintf(buf, "%d\n", x);
929}
930
931static ssize_t set_volt_max(struct device *dev,
932 struct device_attribute *devattr,
933 const char *buf,
934 size_t count)
935{
936 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
937 struct i2c_client *client = to_i2c_client(dev);
938 struct adt7462_data *data = i2c_get_clientdata(client);
939 int x = voltage_multiplier(data, attr->index);
940 long temp;
941
942 if (strict_strtol(buf, 10, &temp) || !x)
943 return -EINVAL;
944
945 temp *= 1000; /* convert mV to uV */
946 temp = ROUND_DIV(temp, x);
947 temp = SENSORS_LIMIT(temp, 0, 255);
948
949 mutex_lock(&data->lock);
950 data->volt_max[attr->index] = temp;
951 i2c_smbus_write_byte_data(client,
952 ADT7462_REG_VOLT_MAX(data, attr->index),
953 temp);
954 mutex_unlock(&data->lock);
955
956 return count;
957}
958
959static ssize_t show_volt_min(struct device *dev,
960 struct device_attribute *devattr,
961 char *buf)
962{
963 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
964 struct adt7462_data *data = adt7462_update_device(dev);
965 int x = voltage_multiplier(data, attr->index);
966
967 x *= data->volt_min[attr->index];
968 x /= 1000; /* convert from uV to mV */
969
970 return sprintf(buf, "%d\n", x);
971}
972
973static ssize_t set_volt_min(struct device *dev,
974 struct device_attribute *devattr,
975 const char *buf,
976 size_t count)
977{
978 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
979 struct i2c_client *client = to_i2c_client(dev);
980 struct adt7462_data *data = i2c_get_clientdata(client);
981 int x = voltage_multiplier(data, attr->index);
982 long temp;
983
984 if (strict_strtol(buf, 10, &temp) || !x)
985 return -EINVAL;
986
987 temp *= 1000; /* convert mV to uV */
988 temp = ROUND_DIV(temp, x);
989 temp = SENSORS_LIMIT(temp, 0, 255);
990
991 mutex_lock(&data->lock);
992 data->volt_min[attr->index] = temp;
993 i2c_smbus_write_byte_data(client,
994 ADT7462_REG_VOLT_MIN(data, attr->index),
995 temp);
996 mutex_unlock(&data->lock);
997
998 return count;
999}
1000
1001static ssize_t show_voltage(struct device *dev,
1002 struct device_attribute *devattr,
1003 char *buf)
1004{
1005 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1006 struct adt7462_data *data = adt7462_update_device(dev);
1007 int x = voltage_multiplier(data, attr->index);
1008
1009 x *= data->voltages[attr->index];
1010 x /= 1000; /* convert from uV to mV */
1011
1012 return sprintf(buf, "%d\n", x);
1013}
1014
1015static ssize_t show_voltage_label(struct device *dev,
1016 struct device_attribute *devattr,
1017 char *buf)
1018{
1019 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1020 struct adt7462_data *data = adt7462_update_device(dev);
1021
1022 return sprintf(buf, "%s\n", voltage_label(data, attr->index));
1023}
1024
1025static ssize_t show_alarm(struct device *dev,
1026 struct device_attribute *devattr,
1027 char *buf)
1028{
1029 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1030 struct adt7462_data *data = adt7462_update_device(dev);
1031 int reg = attr->index >> ADT7462_ALARM_REG_SHIFT;
1032 int mask = attr->index & ADT7462_ALARM_FLAG_MASK;
1033
1034 if (data->alarms[reg] & mask)
1035 return sprintf(buf, "1\n");
1036 else
1037 return sprintf(buf, "0\n");
1038}
1039
1040static int fan_enabled(struct adt7462_data *data, int fan)
1041{
1042 return data->fan_enabled & (1 << fan);
1043}
1044
1045static ssize_t show_fan_min(struct device *dev,
1046 struct device_attribute *devattr,
1047 char *buf)
1048{
1049 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1050 struct adt7462_data *data = adt7462_update_device(dev);
1051 u16 temp;
1052
1053 /* Only the MSB of the min fan period is stored... */
1054 temp = data->fan_min[attr->index];
1055 temp <<= 8;
1056
1057 if (!fan_enabled(data, attr->index) ||
1058 !FAN_DATA_VALID(temp))
1059 return sprintf(buf, "0\n");
1060
1061 return sprintf(buf, "%d\n", FAN_PERIOD_TO_RPM(temp));
1062}
1063
1064static ssize_t set_fan_min(struct device *dev,
1065 struct device_attribute *devattr,
1066 const char *buf, size_t count)
1067{
1068 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1069 struct i2c_client *client = to_i2c_client(dev);
1070 struct adt7462_data *data = i2c_get_clientdata(client);
1071 long temp;
1072
1073 if (strict_strtol(buf, 10, &temp) || !temp ||
1074 !fan_enabled(data, attr->index))
1075 return -EINVAL;
1076
1077 temp = FAN_RPM_TO_PERIOD(temp);
1078 temp >>= 8;
1079 temp = SENSORS_LIMIT(temp, 1, 255);
1080
1081 mutex_lock(&data->lock);
1082 data->fan_min[attr->index] = temp;
1083 i2c_smbus_write_byte_data(client, ADT7462_REG_FAN_MIN(attr->index),
1084 temp);
1085 mutex_unlock(&data->lock);
1086
1087 return count;
1088}
1089
1090static ssize_t show_fan(struct device *dev, struct device_attribute *devattr,
1091 char *buf)
1092{
1093 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1094 struct adt7462_data *data = adt7462_update_device(dev);
1095
1096 if (!fan_enabled(data, attr->index) ||
1097 !FAN_DATA_VALID(data->fan[attr->index]))
1098 return sprintf(buf, "0\n");
1099
1100 return sprintf(buf, "%d\n",
1101 FAN_PERIOD_TO_RPM(data->fan[attr->index]));
1102}
1103
1104static ssize_t show_force_pwm_max(struct device *dev,
1105 struct device_attribute *devattr,
1106 char *buf)
1107{
1108 struct adt7462_data *data = adt7462_update_device(dev);
1109 return sprintf(buf, "%d\n", (data->cfg2 & ADT7462_FSPD_MASK ? 1 : 0));
1110}
1111
1112static ssize_t set_force_pwm_max(struct device *dev,
1113 struct device_attribute *devattr,
1114 const char *buf,
1115 size_t count)
1116{
1117 struct i2c_client *client = to_i2c_client(dev);
1118 struct adt7462_data *data = i2c_get_clientdata(client);
1119 long temp;
1120 u8 reg;
1121
1122 if (strict_strtol(buf, 10, &temp))
1123 return -EINVAL;
1124
1125 mutex_lock(&data->lock);
1126 reg = i2c_smbus_read_byte_data(client, ADT7462_REG_CFG2);
1127 if (temp)
1128 reg |= ADT7462_FSPD_MASK;
1129 else
1130 reg &= ~ADT7462_FSPD_MASK;
1131 data->cfg2 = reg;
1132 i2c_smbus_write_byte_data(client, ADT7462_REG_CFG2, reg);
1133 mutex_unlock(&data->lock);
1134
1135 return count;
1136}
1137
1138static ssize_t show_pwm(struct device *dev, struct device_attribute *devattr,
1139 char *buf)
1140{
1141 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1142 struct adt7462_data *data = adt7462_update_device(dev);
1143 return sprintf(buf, "%d\n", data->pwm[attr->index]);
1144}
1145
1146static ssize_t set_pwm(struct device *dev, struct device_attribute *devattr,
1147 const char *buf, size_t count)
1148{
1149 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1150 struct i2c_client *client = to_i2c_client(dev);
1151 struct adt7462_data *data = i2c_get_clientdata(client);
1152 long temp;
1153
1154 if (strict_strtol(buf, 10, &temp))
1155 return -EINVAL;
1156
1157 temp = SENSORS_LIMIT(temp, 0, 255);
1158
1159 mutex_lock(&data->lock);
1160 data->pwm[attr->index] = temp;
1161 i2c_smbus_write_byte_data(client, ADT7462_REG_PWM(attr->index), temp);
1162 mutex_unlock(&data->lock);
1163
1164 return count;
1165}
1166
1167static ssize_t show_pwm_max(struct device *dev,
1168 struct device_attribute *devattr,
1169 char *buf)
1170{
1171 struct adt7462_data *data = adt7462_update_device(dev);
1172 return sprintf(buf, "%d\n", data->pwm_max);
1173}
1174
1175static ssize_t set_pwm_max(struct device *dev,
1176 struct device_attribute *devattr,
1177 const char *buf,
1178 size_t count)
1179{
1180 struct i2c_client *client = to_i2c_client(dev);
1181 struct adt7462_data *data = i2c_get_clientdata(client);
1182 long temp;
1183
1184 if (strict_strtol(buf, 10, &temp))
1185 return -EINVAL;
1186
1187 temp = SENSORS_LIMIT(temp, 0, 255);
1188
1189 mutex_lock(&data->lock);
1190 data->pwm_max = temp;
1191 i2c_smbus_write_byte_data(client, ADT7462_REG_PWM_MAX, temp);
1192 mutex_unlock(&data->lock);
1193
1194 return count;
1195}
1196
1197static ssize_t show_pwm_min(struct device *dev,
1198 struct device_attribute *devattr,
1199 char *buf)
1200{
1201 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1202 struct adt7462_data *data = adt7462_update_device(dev);
1203 return sprintf(buf, "%d\n", data->pwm_min[attr->index]);
1204}
1205
1206static ssize_t set_pwm_min(struct device *dev,
1207 struct device_attribute *devattr,
1208 const char *buf,
1209 size_t count)
1210{
1211 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1212 struct i2c_client *client = to_i2c_client(dev);
1213 struct adt7462_data *data = i2c_get_clientdata(client);
1214 long temp;
1215
1216 if (strict_strtol(buf, 10, &temp))
1217 return -EINVAL;
1218
1219 temp = SENSORS_LIMIT(temp, 0, 255);
1220
1221 mutex_lock(&data->lock);
1222 data->pwm_min[attr->index] = temp;
1223 i2c_smbus_write_byte_data(client, ADT7462_REG_PWM_MIN(attr->index),
1224 temp);
1225 mutex_unlock(&data->lock);
1226
1227 return count;
1228}
1229
1230static ssize_t show_pwm_hyst(struct device *dev,
1231 struct device_attribute *devattr,
1232 char *buf)
1233{
1234 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1235 struct adt7462_data *data = adt7462_update_device(dev);
1236 return sprintf(buf, "%d\n", 1000 *
1237 (data->pwm_trange[attr->index] & ADT7462_PWM_HYST_MASK));
1238}
1239
1240static ssize_t set_pwm_hyst(struct device *dev,
1241 struct device_attribute *devattr,
1242 const char *buf,
1243 size_t count)
1244{
1245 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1246 struct i2c_client *client = to_i2c_client(dev);
1247 struct adt7462_data *data = i2c_get_clientdata(client);
1248 long temp;
1249
1250 if (strict_strtol(buf, 10, &temp))
1251 return -EINVAL;
1252
1253 temp = ROUND_DIV(temp, 1000);
1254 temp = SENSORS_LIMIT(temp, 0, 15);
1255
1256 /* package things up */
1257 temp &= ADT7462_PWM_HYST_MASK;
1258 temp |= data->pwm_trange[attr->index] & ADT7462_PWM_RANGE_MASK;
1259
1260 mutex_lock(&data->lock);
1261 data->pwm_trange[attr->index] = temp;
1262 i2c_smbus_write_byte_data(client, ADT7462_REG_PWM_TRANGE(attr->index),
1263 temp);
1264 mutex_unlock(&data->lock);
1265
1266 return count;
1267}
1268
1269static ssize_t show_pwm_tmax(struct device *dev,
1270 struct device_attribute *devattr,
1271 char *buf)
1272{
1273 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1274 struct adt7462_data *data = adt7462_update_device(dev);
1275
1276 /* tmax = tmin + trange */
1277 int trange = trange_values[data->pwm_trange[attr->index] >>
1278 ADT7462_PWM_RANGE_SHIFT];
1279 int tmin = (data->pwm_tmin[attr->index] - 64) * 1000;
1280
1281 return sprintf(buf, "%d\n", tmin + trange);
1282}
1283
1284static ssize_t set_pwm_tmax(struct device *dev,
1285 struct device_attribute *devattr,
1286 const char *buf,
1287 size_t count)
1288{
1289 int temp;
1290 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1291 struct i2c_client *client = to_i2c_client(dev);
1292 struct adt7462_data *data = i2c_get_clientdata(client);
1293 int tmin, trange_value;
1294 long trange;
1295
1296 if (strict_strtol(buf, 10, &trange))
1297 return -EINVAL;
1298
1299 /* trange = tmax - tmin */
1300 tmin = (data->pwm_tmin[attr->index] - 64) * 1000;
1301 trange_value = find_trange_value(trange - tmin);
1302
1303 if (trange_value < 0)
1304 return -EINVAL;
1305
1306 temp = trange_value << ADT7462_PWM_RANGE_SHIFT;
1307 temp |= data->pwm_trange[attr->index] & ADT7462_PWM_HYST_MASK;
1308
1309 mutex_lock(&data->lock);
1310 data->pwm_trange[attr->index] = temp;
1311 i2c_smbus_write_byte_data(client, ADT7462_REG_PWM_TRANGE(attr->index),
1312 temp);
1313 mutex_unlock(&data->lock);
1314
1315 return count;
1316}
1317
1318static ssize_t show_pwm_tmin(struct device *dev,
1319 struct device_attribute *devattr,
1320 char *buf)
1321{
1322 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1323 struct adt7462_data *data = adt7462_update_device(dev);
1324 return sprintf(buf, "%d\n", 1000 * (data->pwm_tmin[attr->index] - 64));
1325}
1326
1327static ssize_t set_pwm_tmin(struct device *dev,
1328 struct device_attribute *devattr,
1329 const char *buf,
1330 size_t count)
1331{
1332 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1333 struct i2c_client *client = to_i2c_client(dev);
1334 struct adt7462_data *data = i2c_get_clientdata(client);
1335 long temp;
1336
1337 if (strict_strtol(buf, 10, &temp))
1338 return -EINVAL;
1339
1340 temp = ROUND_DIV(temp, 1000) + 64;
1341 temp = SENSORS_LIMIT(temp, 0, 255);
1342
1343 mutex_lock(&data->lock);
1344 data->pwm_tmin[attr->index] = temp;
1345 i2c_smbus_write_byte_data(client, ADT7462_REG_PWM_TMIN(attr->index),
1346 temp);
1347 mutex_unlock(&data->lock);
1348
1349 return count;
1350}
1351
1352static ssize_t show_pwm_auto(struct device *dev,
1353 struct device_attribute *devattr,
1354 char *buf)
1355{
1356 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1357 struct adt7462_data *data = adt7462_update_device(dev);
1358 int cfg = data->pwm_cfg[attr->index] >> ADT7462_PWM_CHANNEL_SHIFT;
1359
1360 switch (cfg) {
1361 case 4: /* off */
1362 return sprintf(buf, "0\n");
1363 case 7: /* manual */
1364 return sprintf(buf, "1\n");
1365 default: /* automatic */
1366 return sprintf(buf, "2\n");
1367 }
1368}
1369
1370static void set_pwm_channel(struct i2c_client *client,
1371 struct adt7462_data *data,
1372 int which,
1373 int value)
1374{
1375 int temp = data->pwm_cfg[which] & ~ADT7462_PWM_CHANNEL_MASK;
1376 temp |= value << ADT7462_PWM_CHANNEL_SHIFT;
1377
1378 mutex_lock(&data->lock);
1379 data->pwm_cfg[which] = temp;
1380 i2c_smbus_write_byte_data(client, ADT7462_REG_PWM_CFG(which), temp);
1381 mutex_unlock(&data->lock);
1382}
1383
1384static ssize_t set_pwm_auto(struct device *dev,
1385 struct device_attribute *devattr,
1386 const char *buf,
1387 size_t count)
1388{
1389 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1390 struct i2c_client *client = to_i2c_client(dev);
1391 struct adt7462_data *data = i2c_get_clientdata(client);
1392 long temp;
1393
1394 if (strict_strtol(buf, 10, &temp))
1395 return -EINVAL;
1396
1397 switch (temp) {
1398 case 0: /* off */
1399 set_pwm_channel(client, data, attr->index, 4);
1400 return count;
1401 case 1: /* manual */
1402 set_pwm_channel(client, data, attr->index, 7);
1403 return count;
1404 default:
1405 return -EINVAL;
1406 }
1407}
1408
1409static ssize_t show_pwm_auto_temp(struct device *dev,
1410 struct device_attribute *devattr,
1411 char *buf)
1412{
1413 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1414 struct adt7462_data *data = adt7462_update_device(dev);
1415 int channel = data->pwm_cfg[attr->index] >> ADT7462_PWM_CHANNEL_SHIFT;
1416
1417 switch (channel) {
1418 case 0: /* temp[1234] only */
1419 case 1:
1420 case 2:
1421 case 3:
1422 return sprintf(buf, "%d\n", (1 << channel));
1423 case 5: /* temp1 & temp4 */
1424 return sprintf(buf, "9\n");
1425 case 6:
1426 return sprintf(buf, "15\n");
1427 default:
1428 return sprintf(buf, "0\n");
1429 }
1430}
1431
1432static int cvt_auto_temp(int input)
1433{
1434 if (input == 0xF)
1435 return 6;
1436 if (input == 0x9)
1437 return 5;
1438 if (input < 1 || !is_power_of_2(input))
1439 return -EINVAL;
1440 return ilog2(input);
1441}
1442
1443static ssize_t set_pwm_auto_temp(struct device *dev,
1444 struct device_attribute *devattr,
1445 const char *buf,
1446 size_t count)
1447{
1448 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
1449 struct i2c_client *client = to_i2c_client(dev);
1450 struct adt7462_data *data = i2c_get_clientdata(client);
1451 long temp;
1452
1453 if (strict_strtol(buf, 10, &temp))
1454 return -EINVAL;
1455
1456 temp = cvt_auto_temp(temp);
1457 if (temp < 0)
1458 return temp;
1459
1460 set_pwm_channel(client, data, attr->index, temp);
1461
1462 return count;
1463}
1464
1465static SENSOR_DEVICE_ATTR(temp1_max, S_IWUSR | S_IRUGO, show_temp_max,
1466 set_temp_max, 0);
1467static SENSOR_DEVICE_ATTR(temp2_max, S_IWUSR | S_IRUGO, show_temp_max,
1468 set_temp_max, 1);
1469static SENSOR_DEVICE_ATTR(temp3_max, S_IWUSR | S_IRUGO, show_temp_max,
1470 set_temp_max, 2);
1471static SENSOR_DEVICE_ATTR(temp4_max, S_IWUSR | S_IRUGO, show_temp_max,
1472 set_temp_max, 3);
1473
1474static SENSOR_DEVICE_ATTR(temp1_min, S_IWUSR | S_IRUGO, show_temp_min,
1475 set_temp_min, 0);
1476static SENSOR_DEVICE_ATTR(temp2_min, S_IWUSR | S_IRUGO, show_temp_min,
1477 set_temp_min, 1);
1478static SENSOR_DEVICE_ATTR(temp3_min, S_IWUSR | S_IRUGO, show_temp_min,
1479 set_temp_min, 2);
1480static SENSOR_DEVICE_ATTR(temp4_min, S_IWUSR | S_IRUGO, show_temp_min,
1481 set_temp_min, 3);
1482
1483static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_temp, NULL, 0);
1484static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO, show_temp, NULL, 1);
1485static SENSOR_DEVICE_ATTR(temp3_input, S_IRUGO, show_temp, NULL, 2);
1486static SENSOR_DEVICE_ATTR(temp4_input, S_IRUGO, show_temp, NULL, 3);
1487
1488static SENSOR_DEVICE_ATTR(temp1_label, S_IRUGO, show_temp_label, NULL, 0);
1489static SENSOR_DEVICE_ATTR(temp2_label, S_IRUGO, show_temp_label, NULL, 1);
1490static SENSOR_DEVICE_ATTR(temp3_label, S_IRUGO, show_temp_label, NULL, 2);
1491static SENSOR_DEVICE_ATTR(temp4_label, S_IRUGO, show_temp_label, NULL, 3);
1492
1493static SENSOR_DEVICE_ATTR(temp1_alarm, S_IRUGO, show_alarm, NULL,
1494 ADT7462_ALARM1 | ADT7462_LT_ALARM);
1495static SENSOR_DEVICE_ATTR(temp2_alarm, S_IRUGO, show_alarm, NULL,
1496 ADT7462_ALARM1 | ADT7462_R1T_ALARM);
1497static SENSOR_DEVICE_ATTR(temp3_alarm, S_IRUGO, show_alarm, NULL,
1498 ADT7462_ALARM1 | ADT7462_R2T_ALARM);
1499static SENSOR_DEVICE_ATTR(temp4_alarm, S_IRUGO, show_alarm, NULL,
1500 ADT7462_ALARM1 | ADT7462_R3T_ALARM);
1501
1502static SENSOR_DEVICE_ATTR(in1_max, S_IWUSR | S_IRUGO, show_volt_max,
1503 set_volt_max, 0);
1504static SENSOR_DEVICE_ATTR(in2_max, S_IWUSR | S_IRUGO, show_volt_max,
1505 set_volt_max, 1);
1506static SENSOR_DEVICE_ATTR(in3_max, S_IWUSR | S_IRUGO, show_volt_max,
1507 set_volt_max, 2);
1508static SENSOR_DEVICE_ATTR(in4_max, S_IWUSR | S_IRUGO, show_volt_max,
1509 set_volt_max, 3);
1510static SENSOR_DEVICE_ATTR(in5_max, S_IWUSR | S_IRUGO, show_volt_max,
1511 set_volt_max, 4);
1512static SENSOR_DEVICE_ATTR(in6_max, S_IWUSR | S_IRUGO, show_volt_max,
1513 set_volt_max, 5);
1514static SENSOR_DEVICE_ATTR(in7_max, S_IWUSR | S_IRUGO, show_volt_max,
1515 set_volt_max, 6);
1516static SENSOR_DEVICE_ATTR(in8_max, S_IWUSR | S_IRUGO, show_volt_max,
1517 set_volt_max, 7);
1518static SENSOR_DEVICE_ATTR(in9_max, S_IWUSR | S_IRUGO, show_volt_max,
1519 set_volt_max, 8);
1520static SENSOR_DEVICE_ATTR(in10_max, S_IWUSR | S_IRUGO, show_volt_max,
1521 set_volt_max, 9);
1522static SENSOR_DEVICE_ATTR(in11_max, S_IWUSR | S_IRUGO, show_volt_max,
1523 set_volt_max, 10);
1524static SENSOR_DEVICE_ATTR(in12_max, S_IWUSR | S_IRUGO, show_volt_max,
1525 set_volt_max, 11);
1526static SENSOR_DEVICE_ATTR(in13_max, S_IWUSR | S_IRUGO, show_volt_max,
1527 set_volt_max, 12);
1528
1529static SENSOR_DEVICE_ATTR(in1_min, S_IWUSR | S_IRUGO, show_volt_min,
1530 set_volt_min, 0);
1531static SENSOR_DEVICE_ATTR(in2_min, S_IWUSR | S_IRUGO, show_volt_min,
1532 set_volt_min, 1);
1533static SENSOR_DEVICE_ATTR(in3_min, S_IWUSR | S_IRUGO, show_volt_min,
1534 set_volt_min, 2);
1535static SENSOR_DEVICE_ATTR(in4_min, S_IWUSR | S_IRUGO, show_volt_min,
1536 set_volt_min, 3);
1537static SENSOR_DEVICE_ATTR(in5_min, S_IWUSR | S_IRUGO, show_volt_min,
1538 set_volt_min, 4);
1539static SENSOR_DEVICE_ATTR(in6_min, S_IWUSR | S_IRUGO, show_volt_min,
1540 set_volt_min, 5);
1541static SENSOR_DEVICE_ATTR(in7_min, S_IWUSR | S_IRUGO, show_volt_min,
1542 set_volt_min, 6);
1543static SENSOR_DEVICE_ATTR(in8_min, S_IWUSR | S_IRUGO, show_volt_min,
1544 set_volt_min, 7);
1545static SENSOR_DEVICE_ATTR(in9_min, S_IWUSR | S_IRUGO, show_volt_min,
1546 set_volt_min, 8);
1547static SENSOR_DEVICE_ATTR(in10_min, S_IWUSR | S_IRUGO, show_volt_min,
1548 set_volt_min, 9);
1549static SENSOR_DEVICE_ATTR(in11_min, S_IWUSR | S_IRUGO, show_volt_min,
1550 set_volt_min, 10);
1551static SENSOR_DEVICE_ATTR(in12_min, S_IWUSR | S_IRUGO, show_volt_min,
1552 set_volt_min, 11);
1553static SENSOR_DEVICE_ATTR(in13_min, S_IWUSR | S_IRUGO, show_volt_min,
1554 set_volt_min, 12);
1555
1556static SENSOR_DEVICE_ATTR(in1_input, S_IRUGO, show_voltage, NULL, 0);
1557static SENSOR_DEVICE_ATTR(in2_input, S_IRUGO, show_voltage, NULL, 1);
1558static SENSOR_DEVICE_ATTR(in3_input, S_IRUGO, show_voltage, NULL, 2);
1559static SENSOR_DEVICE_ATTR(in4_input, S_IRUGO, show_voltage, NULL, 3);
1560static SENSOR_DEVICE_ATTR(in5_input, S_IRUGO, show_voltage, NULL, 4);
1561static SENSOR_DEVICE_ATTR(in6_input, S_IRUGO, show_voltage, NULL, 5);
1562static SENSOR_DEVICE_ATTR(in7_input, S_IRUGO, show_voltage, NULL, 6);
1563static SENSOR_DEVICE_ATTR(in8_input, S_IRUGO, show_voltage, NULL, 7);
1564static SENSOR_DEVICE_ATTR(in9_input, S_IRUGO, show_voltage, NULL, 8);
1565static SENSOR_DEVICE_ATTR(in10_input, S_IRUGO, show_voltage, NULL, 9);
1566static SENSOR_DEVICE_ATTR(in11_input, S_IRUGO, show_voltage, NULL, 10);
1567static SENSOR_DEVICE_ATTR(in12_input, S_IRUGO, show_voltage, NULL, 11);
1568static SENSOR_DEVICE_ATTR(in13_input, S_IRUGO, show_voltage, NULL, 12);
1569
1570static SENSOR_DEVICE_ATTR(in1_label, S_IRUGO, show_voltage_label, NULL, 0);
1571static SENSOR_DEVICE_ATTR(in2_label, S_IRUGO, show_voltage_label, NULL, 1);
1572static SENSOR_DEVICE_ATTR(in3_label, S_IRUGO, show_voltage_label, NULL, 2);
1573static SENSOR_DEVICE_ATTR(in4_label, S_IRUGO, show_voltage_label, NULL, 3);
1574static SENSOR_DEVICE_ATTR(in5_label, S_IRUGO, show_voltage_label, NULL, 4);
1575static SENSOR_DEVICE_ATTR(in6_label, S_IRUGO, show_voltage_label, NULL, 5);
1576static SENSOR_DEVICE_ATTR(in7_label, S_IRUGO, show_voltage_label, NULL, 6);
1577static SENSOR_DEVICE_ATTR(in8_label, S_IRUGO, show_voltage_label, NULL, 7);
1578static SENSOR_DEVICE_ATTR(in9_label, S_IRUGO, show_voltage_label, NULL, 8);
1579static SENSOR_DEVICE_ATTR(in10_label, S_IRUGO, show_voltage_label, NULL, 9);
1580static SENSOR_DEVICE_ATTR(in11_label, S_IRUGO, show_voltage_label, NULL, 10);
1581static SENSOR_DEVICE_ATTR(in12_label, S_IRUGO, show_voltage_label, NULL, 11);
1582static SENSOR_DEVICE_ATTR(in13_label, S_IRUGO, show_voltage_label, NULL, 12);
1583
1584static SENSOR_DEVICE_ATTR(in1_alarm, S_IRUGO, show_alarm, NULL,
1585 ADT7462_ALARM2 | ADT7462_V0_ALARM);
1586static SENSOR_DEVICE_ATTR(in2_alarm, S_IRUGO, show_alarm, NULL,
1587 ADT7462_ALARM2 | ADT7462_V7_ALARM);
1588static SENSOR_DEVICE_ATTR(in3_alarm, S_IRUGO, show_alarm, NULL,
1589 ADT7462_ALARM2 | ADT7462_V2_ALARM);
1590static SENSOR_DEVICE_ATTR(in4_alarm, S_IRUGO, show_alarm, NULL,
1591 ADT7462_ALARM2 | ADT7462_V6_ALARM);
1592static SENSOR_DEVICE_ATTR(in5_alarm, S_IRUGO, show_alarm, NULL,
1593 ADT7462_ALARM2 | ADT7462_V5_ALARM);
1594static SENSOR_DEVICE_ATTR(in6_alarm, S_IRUGO, show_alarm, NULL,
1595 ADT7462_ALARM2 | ADT7462_V4_ALARM);
1596static SENSOR_DEVICE_ATTR(in7_alarm, S_IRUGO, show_alarm, NULL,
1597 ADT7462_ALARM2 | ADT7462_V3_ALARM);
1598static SENSOR_DEVICE_ATTR(in8_alarm, S_IRUGO, show_alarm, NULL,
1599 ADT7462_ALARM2 | ADT7462_V1_ALARM);
1600static SENSOR_DEVICE_ATTR(in9_alarm, S_IRUGO, show_alarm, NULL,
1601 ADT7462_ALARM3 | ADT7462_V10_ALARM);
1602static SENSOR_DEVICE_ATTR(in10_alarm, S_IRUGO, show_alarm, NULL,
1603 ADT7462_ALARM3 | ADT7462_V9_ALARM);
1604static SENSOR_DEVICE_ATTR(in11_alarm, S_IRUGO, show_alarm, NULL,
1605 ADT7462_ALARM3 | ADT7462_V8_ALARM);
1606static SENSOR_DEVICE_ATTR(in12_alarm, S_IRUGO, show_alarm, NULL,
1607 ADT7462_ALARM3 | ADT7462_V11_ALARM);
1608static SENSOR_DEVICE_ATTR(in13_alarm, S_IRUGO, show_alarm, NULL,
1609 ADT7462_ALARM3 | ADT7462_V12_ALARM);
1610
1611static SENSOR_DEVICE_ATTR(fan1_min, S_IWUSR | S_IRUGO, show_fan_min,
1612 set_fan_min, 0);
1613static SENSOR_DEVICE_ATTR(fan2_min, S_IWUSR | S_IRUGO, show_fan_min,
1614 set_fan_min, 1);
1615static SENSOR_DEVICE_ATTR(fan3_min, S_IWUSR | S_IRUGO, show_fan_min,
1616 set_fan_min, 2);
1617static SENSOR_DEVICE_ATTR(fan4_min, S_IWUSR | S_IRUGO, show_fan_min,
1618 set_fan_min, 3);
1619static SENSOR_DEVICE_ATTR(fan5_min, S_IWUSR | S_IRUGO, show_fan_min,
1620 set_fan_min, 4);
1621static SENSOR_DEVICE_ATTR(fan6_min, S_IWUSR | S_IRUGO, show_fan_min,
1622 set_fan_min, 5);
1623static SENSOR_DEVICE_ATTR(fan7_min, S_IWUSR | S_IRUGO, show_fan_min,
1624 set_fan_min, 6);
1625static SENSOR_DEVICE_ATTR(fan8_min, S_IWUSR | S_IRUGO, show_fan_min,
1626 set_fan_min, 7);
1627
1628static SENSOR_DEVICE_ATTR(fan1_input, S_IRUGO, show_fan, NULL, 0);
1629static SENSOR_DEVICE_ATTR(fan2_input, S_IRUGO, show_fan, NULL, 1);
1630static SENSOR_DEVICE_ATTR(fan3_input, S_IRUGO, show_fan, NULL, 2);
1631static SENSOR_DEVICE_ATTR(fan4_input, S_IRUGO, show_fan, NULL, 3);
1632static SENSOR_DEVICE_ATTR(fan5_input, S_IRUGO, show_fan, NULL, 4);
1633static SENSOR_DEVICE_ATTR(fan6_input, S_IRUGO, show_fan, NULL, 5);
1634static SENSOR_DEVICE_ATTR(fan7_input, S_IRUGO, show_fan, NULL, 6);
1635static SENSOR_DEVICE_ATTR(fan8_input, S_IRUGO, show_fan, NULL, 7);
1636
1637static SENSOR_DEVICE_ATTR(fan1_alarm, S_IRUGO, show_alarm, NULL,
1638 ADT7462_ALARM4 | ADT7462_F0_ALARM);
1639static SENSOR_DEVICE_ATTR(fan2_alarm, S_IRUGO, show_alarm, NULL,
1640 ADT7462_ALARM4 | ADT7462_F1_ALARM);
1641static SENSOR_DEVICE_ATTR(fan3_alarm, S_IRUGO, show_alarm, NULL,
1642 ADT7462_ALARM4 | ADT7462_F2_ALARM);
1643static SENSOR_DEVICE_ATTR(fan4_alarm, S_IRUGO, show_alarm, NULL,
1644 ADT7462_ALARM4 | ADT7462_F3_ALARM);
1645static SENSOR_DEVICE_ATTR(fan5_alarm, S_IRUGO, show_alarm, NULL,
1646 ADT7462_ALARM4 | ADT7462_F4_ALARM);
1647static SENSOR_DEVICE_ATTR(fan6_alarm, S_IRUGO, show_alarm, NULL,
1648 ADT7462_ALARM4 | ADT7462_F5_ALARM);
1649static SENSOR_DEVICE_ATTR(fan7_alarm, S_IRUGO, show_alarm, NULL,
1650 ADT7462_ALARM4 | ADT7462_F6_ALARM);
1651static SENSOR_DEVICE_ATTR(fan8_alarm, S_IRUGO, show_alarm, NULL,
1652 ADT7462_ALARM4 | ADT7462_F7_ALARM);
1653
1654static SENSOR_DEVICE_ATTR(force_pwm_max, S_IWUSR | S_IRUGO,
1655 show_force_pwm_max, set_force_pwm_max, 0);
1656
1657static SENSOR_DEVICE_ATTR(pwm1, S_IWUSR | S_IRUGO, show_pwm, set_pwm, 0);
1658static SENSOR_DEVICE_ATTR(pwm2, S_IWUSR | S_IRUGO, show_pwm, set_pwm, 1);
1659static SENSOR_DEVICE_ATTR(pwm3, S_IWUSR | S_IRUGO, show_pwm, set_pwm, 2);
1660static SENSOR_DEVICE_ATTR(pwm4, S_IWUSR | S_IRUGO, show_pwm, set_pwm, 3);
1661
1662static SENSOR_DEVICE_ATTR(pwm1_auto_point1_pwm, S_IWUSR | S_IRUGO,
1663 show_pwm_min, set_pwm_min, 0);
1664static SENSOR_DEVICE_ATTR(pwm2_auto_point1_pwm, S_IWUSR | S_IRUGO,
1665 show_pwm_min, set_pwm_min, 1);
1666static SENSOR_DEVICE_ATTR(pwm3_auto_point1_pwm, S_IWUSR | S_IRUGO,
1667 show_pwm_min, set_pwm_min, 2);
1668static SENSOR_DEVICE_ATTR(pwm4_auto_point1_pwm, S_IWUSR | S_IRUGO,
1669 show_pwm_min, set_pwm_min, 3);
1670
1671static SENSOR_DEVICE_ATTR(pwm1_auto_point2_pwm, S_IWUSR | S_IRUGO,
1672 show_pwm_max, set_pwm_max, 0);
1673static SENSOR_DEVICE_ATTR(pwm2_auto_point2_pwm, S_IWUSR | S_IRUGO,
1674 show_pwm_max, set_pwm_max, 1);
1675static SENSOR_DEVICE_ATTR(pwm3_auto_point2_pwm, S_IWUSR | S_IRUGO,
1676 show_pwm_max, set_pwm_max, 2);
1677static SENSOR_DEVICE_ATTR(pwm4_auto_point2_pwm, S_IWUSR | S_IRUGO,
1678 show_pwm_max, set_pwm_max, 3);
1679
1680static SENSOR_DEVICE_ATTR(temp1_auto_point1_hyst, S_IWUSR | S_IRUGO,
1681 show_pwm_hyst, set_pwm_hyst, 0);
1682static SENSOR_DEVICE_ATTR(temp2_auto_point1_hyst, S_IWUSR | S_IRUGO,
1683 show_pwm_hyst, set_pwm_hyst, 1);
1684static SENSOR_DEVICE_ATTR(temp3_auto_point1_hyst, S_IWUSR | S_IRUGO,
1685 show_pwm_hyst, set_pwm_hyst, 2);
1686static SENSOR_DEVICE_ATTR(temp4_auto_point1_hyst, S_IWUSR | S_IRUGO,
1687 show_pwm_hyst, set_pwm_hyst, 3);
1688
1689static SENSOR_DEVICE_ATTR(temp1_auto_point2_hyst, S_IWUSR | S_IRUGO,
1690 show_pwm_hyst, set_pwm_hyst, 0);
1691static SENSOR_DEVICE_ATTR(temp2_auto_point2_hyst, S_IWUSR | S_IRUGO,
1692 show_pwm_hyst, set_pwm_hyst, 1);
1693static SENSOR_DEVICE_ATTR(temp3_auto_point2_hyst, S_IWUSR | S_IRUGO,
1694 show_pwm_hyst, set_pwm_hyst, 2);
1695static SENSOR_DEVICE_ATTR(temp4_auto_point2_hyst, S_IWUSR | S_IRUGO,
1696 show_pwm_hyst, set_pwm_hyst, 3);
1697
1698static SENSOR_DEVICE_ATTR(temp1_auto_point1_temp, S_IWUSR | S_IRUGO,
1699 show_pwm_tmin, set_pwm_tmin, 0);
1700static SENSOR_DEVICE_ATTR(temp2_auto_point1_temp, S_IWUSR | S_IRUGO,
1701 show_pwm_tmin, set_pwm_tmin, 1);
1702static SENSOR_DEVICE_ATTR(temp3_auto_point1_temp, S_IWUSR | S_IRUGO,
1703 show_pwm_tmin, set_pwm_tmin, 2);
1704static SENSOR_DEVICE_ATTR(temp4_auto_point1_temp, S_IWUSR | S_IRUGO,
1705 show_pwm_tmin, set_pwm_tmin, 3);
1706
1707static SENSOR_DEVICE_ATTR(temp1_auto_point2_temp, S_IWUSR | S_IRUGO,
1708 show_pwm_tmax, set_pwm_tmax, 0);
1709static SENSOR_DEVICE_ATTR(temp2_auto_point2_temp, S_IWUSR | S_IRUGO,
1710 show_pwm_tmax, set_pwm_tmax, 1);
1711static SENSOR_DEVICE_ATTR(temp3_auto_point2_temp, S_IWUSR | S_IRUGO,
1712 show_pwm_tmax, set_pwm_tmax, 2);
1713static SENSOR_DEVICE_ATTR(temp4_auto_point2_temp, S_IWUSR | S_IRUGO,
1714 show_pwm_tmax, set_pwm_tmax, 3);
1715
1716static SENSOR_DEVICE_ATTR(pwm1_enable, S_IWUSR | S_IRUGO, show_pwm_auto,
1717 set_pwm_auto, 0);
1718static SENSOR_DEVICE_ATTR(pwm2_enable, S_IWUSR | S_IRUGO, show_pwm_auto,
1719 set_pwm_auto, 1);
1720static SENSOR_DEVICE_ATTR(pwm3_enable, S_IWUSR | S_IRUGO, show_pwm_auto,
1721 set_pwm_auto, 2);
1722static SENSOR_DEVICE_ATTR(pwm4_enable, S_IWUSR | S_IRUGO, show_pwm_auto,
1723 set_pwm_auto, 3);
1724
1725static SENSOR_DEVICE_ATTR(pwm1_auto_channels_temp, S_IWUSR | S_IRUGO,
1726 show_pwm_auto_temp, set_pwm_auto_temp, 0);
1727static SENSOR_DEVICE_ATTR(pwm2_auto_channels_temp, S_IWUSR | S_IRUGO,
1728 show_pwm_auto_temp, set_pwm_auto_temp, 1);
1729static SENSOR_DEVICE_ATTR(pwm3_auto_channels_temp, S_IWUSR | S_IRUGO,
1730 show_pwm_auto_temp, set_pwm_auto_temp, 2);
1731static SENSOR_DEVICE_ATTR(pwm4_auto_channels_temp, S_IWUSR | S_IRUGO,
1732 show_pwm_auto_temp, set_pwm_auto_temp, 3);
1733
1734static struct attribute *adt7462_attr[] =
1735{
1736 &sensor_dev_attr_temp1_max.dev_attr.attr,
1737 &sensor_dev_attr_temp2_max.dev_attr.attr,
1738 &sensor_dev_attr_temp3_max.dev_attr.attr,
1739 &sensor_dev_attr_temp4_max.dev_attr.attr,
1740
1741 &sensor_dev_attr_temp1_min.dev_attr.attr,
1742 &sensor_dev_attr_temp2_min.dev_attr.attr,
1743 &sensor_dev_attr_temp3_min.dev_attr.attr,
1744 &sensor_dev_attr_temp4_min.dev_attr.attr,
1745
1746 &sensor_dev_attr_temp1_input.dev_attr.attr,
1747 &sensor_dev_attr_temp2_input.dev_attr.attr,
1748 &sensor_dev_attr_temp3_input.dev_attr.attr,
1749 &sensor_dev_attr_temp4_input.dev_attr.attr,
1750
1751 &sensor_dev_attr_temp1_label.dev_attr.attr,
1752 &sensor_dev_attr_temp2_label.dev_attr.attr,
1753 &sensor_dev_attr_temp3_label.dev_attr.attr,
1754 &sensor_dev_attr_temp4_label.dev_attr.attr,
1755
1756 &sensor_dev_attr_temp1_alarm.dev_attr.attr,
1757 &sensor_dev_attr_temp2_alarm.dev_attr.attr,
1758 &sensor_dev_attr_temp3_alarm.dev_attr.attr,
1759 &sensor_dev_attr_temp4_alarm.dev_attr.attr,
1760
1761 &sensor_dev_attr_in1_max.dev_attr.attr,
1762 &sensor_dev_attr_in2_max.dev_attr.attr,
1763 &sensor_dev_attr_in3_max.dev_attr.attr,
1764 &sensor_dev_attr_in4_max.dev_attr.attr,
1765 &sensor_dev_attr_in5_max.dev_attr.attr,
1766 &sensor_dev_attr_in6_max.dev_attr.attr,
1767 &sensor_dev_attr_in7_max.dev_attr.attr,
1768 &sensor_dev_attr_in8_max.dev_attr.attr,
1769 &sensor_dev_attr_in9_max.dev_attr.attr,
1770 &sensor_dev_attr_in10_max.dev_attr.attr,
1771 &sensor_dev_attr_in11_max.dev_attr.attr,
1772 &sensor_dev_attr_in12_max.dev_attr.attr,
1773 &sensor_dev_attr_in13_max.dev_attr.attr,
1774
1775 &sensor_dev_attr_in1_min.dev_attr.attr,
1776 &sensor_dev_attr_in2_min.dev_attr.attr,
1777 &sensor_dev_attr_in3_min.dev_attr.attr,
1778 &sensor_dev_attr_in4_min.dev_attr.attr,
1779 &sensor_dev_attr_in5_min.dev_attr.attr,
1780 &sensor_dev_attr_in6_min.dev_attr.attr,
1781 &sensor_dev_attr_in7_min.dev_attr.attr,
1782 &sensor_dev_attr_in8_min.dev_attr.attr,
1783 &sensor_dev_attr_in9_min.dev_attr.attr,
1784 &sensor_dev_attr_in10_min.dev_attr.attr,
1785 &sensor_dev_attr_in11_min.dev_attr.attr,
1786 &sensor_dev_attr_in12_min.dev_attr.attr,
1787 &sensor_dev_attr_in13_min.dev_attr.attr,
1788
1789 &sensor_dev_attr_in1_input.dev_attr.attr,
1790 &sensor_dev_attr_in2_input.dev_attr.attr,
1791 &sensor_dev_attr_in3_input.dev_attr.attr,
1792 &sensor_dev_attr_in4_input.dev_attr.attr,
1793 &sensor_dev_attr_in5_input.dev_attr.attr,
1794 &sensor_dev_attr_in6_input.dev_attr.attr,
1795 &sensor_dev_attr_in7_input.dev_attr.attr,
1796 &sensor_dev_attr_in8_input.dev_attr.attr,
1797 &sensor_dev_attr_in9_input.dev_attr.attr,
1798 &sensor_dev_attr_in10_input.dev_attr.attr,
1799 &sensor_dev_attr_in11_input.dev_attr.attr,
1800 &sensor_dev_attr_in12_input.dev_attr.attr,
1801 &sensor_dev_attr_in13_input.dev_attr.attr,
1802
1803 &sensor_dev_attr_in1_label.dev_attr.attr,
1804 &sensor_dev_attr_in2_label.dev_attr.attr,
1805 &sensor_dev_attr_in3_label.dev_attr.attr,
1806 &sensor_dev_attr_in4_label.dev_attr.attr,
1807 &sensor_dev_attr_in5_label.dev_attr.attr,
1808 &sensor_dev_attr_in6_label.dev_attr.attr,
1809 &sensor_dev_attr_in7_label.dev_attr.attr,
1810 &sensor_dev_attr_in8_label.dev_attr.attr,
1811 &sensor_dev_attr_in9_label.dev_attr.attr,
1812 &sensor_dev_attr_in10_label.dev_attr.attr,
1813 &sensor_dev_attr_in11_label.dev_attr.attr,
1814 &sensor_dev_attr_in12_label.dev_attr.attr,
1815 &sensor_dev_attr_in13_label.dev_attr.attr,
1816
1817 &sensor_dev_attr_in1_alarm.dev_attr.attr,
1818 &sensor_dev_attr_in2_alarm.dev_attr.attr,
1819 &sensor_dev_attr_in3_alarm.dev_attr.attr,
1820 &sensor_dev_attr_in4_alarm.dev_attr.attr,
1821 &sensor_dev_attr_in5_alarm.dev_attr.attr,
1822 &sensor_dev_attr_in6_alarm.dev_attr.attr,
1823 &sensor_dev_attr_in7_alarm.dev_attr.attr,
1824 &sensor_dev_attr_in8_alarm.dev_attr.attr,
1825 &sensor_dev_attr_in9_alarm.dev_attr.attr,
1826 &sensor_dev_attr_in10_alarm.dev_attr.attr,
1827 &sensor_dev_attr_in11_alarm.dev_attr.attr,
1828 &sensor_dev_attr_in12_alarm.dev_attr.attr,
1829 &sensor_dev_attr_in13_alarm.dev_attr.attr,
1830
1831 &sensor_dev_attr_fan1_min.dev_attr.attr,
1832 &sensor_dev_attr_fan2_min.dev_attr.attr,
1833 &sensor_dev_attr_fan3_min.dev_attr.attr,
1834 &sensor_dev_attr_fan4_min.dev_attr.attr,
1835 &sensor_dev_attr_fan5_min.dev_attr.attr,
1836 &sensor_dev_attr_fan6_min.dev_attr.attr,
1837 &sensor_dev_attr_fan7_min.dev_attr.attr,
1838 &sensor_dev_attr_fan8_min.dev_attr.attr,
1839
1840 &sensor_dev_attr_fan1_input.dev_attr.attr,
1841 &sensor_dev_attr_fan2_input.dev_attr.attr,
1842 &sensor_dev_attr_fan3_input.dev_attr.attr,
1843 &sensor_dev_attr_fan4_input.dev_attr.attr,
1844 &sensor_dev_attr_fan5_input.dev_attr.attr,
1845 &sensor_dev_attr_fan6_input.dev_attr.attr,
1846 &sensor_dev_attr_fan7_input.dev_attr.attr,
1847 &sensor_dev_attr_fan8_input.dev_attr.attr,
1848
1849 &sensor_dev_attr_fan1_alarm.dev_attr.attr,
1850 &sensor_dev_attr_fan2_alarm.dev_attr.attr,
1851 &sensor_dev_attr_fan3_alarm.dev_attr.attr,
1852 &sensor_dev_attr_fan4_alarm.dev_attr.attr,
1853 &sensor_dev_attr_fan5_alarm.dev_attr.attr,
1854 &sensor_dev_attr_fan6_alarm.dev_attr.attr,
1855 &sensor_dev_attr_fan7_alarm.dev_attr.attr,
1856 &sensor_dev_attr_fan8_alarm.dev_attr.attr,
1857
1858 &sensor_dev_attr_force_pwm_max.dev_attr.attr,
1859 &sensor_dev_attr_pwm1.dev_attr.attr,
1860 &sensor_dev_attr_pwm2.dev_attr.attr,
1861 &sensor_dev_attr_pwm3.dev_attr.attr,
1862 &sensor_dev_attr_pwm4.dev_attr.attr,
1863
1864 &sensor_dev_attr_pwm1_auto_point1_pwm.dev_attr.attr,
1865 &sensor_dev_attr_pwm2_auto_point1_pwm.dev_attr.attr,
1866 &sensor_dev_attr_pwm3_auto_point1_pwm.dev_attr.attr,
1867 &sensor_dev_attr_pwm4_auto_point1_pwm.dev_attr.attr,
1868
1869 &sensor_dev_attr_pwm1_auto_point2_pwm.dev_attr.attr,
1870 &sensor_dev_attr_pwm2_auto_point2_pwm.dev_attr.attr,
1871 &sensor_dev_attr_pwm3_auto_point2_pwm.dev_attr.attr,
1872 &sensor_dev_attr_pwm4_auto_point2_pwm.dev_attr.attr,
1873
1874 &sensor_dev_attr_temp1_auto_point1_hyst.dev_attr.attr,
1875 &sensor_dev_attr_temp2_auto_point1_hyst.dev_attr.attr,
1876 &sensor_dev_attr_temp3_auto_point1_hyst.dev_attr.attr,
1877 &sensor_dev_attr_temp4_auto_point1_hyst.dev_attr.attr,
1878
1879 &sensor_dev_attr_temp1_auto_point2_hyst.dev_attr.attr,
1880 &sensor_dev_attr_temp2_auto_point2_hyst.dev_attr.attr,
1881 &sensor_dev_attr_temp3_auto_point2_hyst.dev_attr.attr,
1882 &sensor_dev_attr_temp4_auto_point2_hyst.dev_attr.attr,
1883
1884 &sensor_dev_attr_temp1_auto_point1_temp.dev_attr.attr,
1885 &sensor_dev_attr_temp2_auto_point1_temp.dev_attr.attr,
1886 &sensor_dev_attr_temp3_auto_point1_temp.dev_attr.attr,
1887 &sensor_dev_attr_temp4_auto_point1_temp.dev_attr.attr,
1888
1889 &sensor_dev_attr_temp1_auto_point2_temp.dev_attr.attr,
1890 &sensor_dev_attr_temp2_auto_point2_temp.dev_attr.attr,
1891 &sensor_dev_attr_temp3_auto_point2_temp.dev_attr.attr,
1892 &sensor_dev_attr_temp4_auto_point2_temp.dev_attr.attr,
1893
1894 &sensor_dev_attr_pwm1_enable.dev_attr.attr,
1895 &sensor_dev_attr_pwm2_enable.dev_attr.attr,
1896 &sensor_dev_attr_pwm3_enable.dev_attr.attr,
1897 &sensor_dev_attr_pwm4_enable.dev_attr.attr,
1898
1899 &sensor_dev_attr_pwm1_auto_channels_temp.dev_attr.attr,
1900 &sensor_dev_attr_pwm2_auto_channels_temp.dev_attr.attr,
1901 &sensor_dev_attr_pwm3_auto_channels_temp.dev_attr.attr,
1902 &sensor_dev_attr_pwm4_auto_channels_temp.dev_attr.attr,
1903 NULL
1904};
1905
1906/* Return 0 if detection is successful, -ENODEV otherwise */
1907static int adt7462_detect(struct i2c_client *client, int kind,
1908 struct i2c_board_info *info)
1909{
1910 struct i2c_adapter *adapter = client->adapter;
1911
1912 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
1913 return -ENODEV;
1914
1915 if (kind <= 0) {
1916 int vendor, device, revision;
1917
1918 vendor = i2c_smbus_read_byte_data(client, ADT7462_REG_VENDOR);
1919 if (vendor != ADT7462_VENDOR)
1920 return -ENODEV;
1921
1922 device = i2c_smbus_read_byte_data(client, ADT7462_REG_DEVICE);
1923 if (device != ADT7462_DEVICE)
1924 return -ENODEV;
1925
1926 revision = i2c_smbus_read_byte_data(client,
1927 ADT7462_REG_REVISION);
1928 if (revision != ADT7462_REVISION)
1929 return -ENODEV;
1930 } else
1931 dev_dbg(&adapter->dev, "detection forced\n");
1932
1933 strlcpy(info->type, "adt7462", I2C_NAME_SIZE);
1934
1935 return 0;
1936}
1937
1938static int adt7462_probe(struct i2c_client *client,
1939 const struct i2c_device_id *id)
1940{
1941 struct adt7462_data *data;
1942 int err;
1943
1944 data = kzalloc(sizeof(struct adt7462_data), GFP_KERNEL);
1945 if (!data) {
1946 err = -ENOMEM;
1947 goto exit;
1948 }
1949
1950 i2c_set_clientdata(client, data);
1951 mutex_init(&data->lock);
1952
1953 dev_info(&client->dev, "%s chip found\n", client->name);
1954
1955 /* Register sysfs hooks */
1956 data->attrs.attrs = adt7462_attr;
1957 err = sysfs_create_group(&client->dev.kobj, &data->attrs);
1958 if (err)
1959 goto exit_free;
1960
1961 data->hwmon_dev = hwmon_device_register(&client->dev);
1962 if (IS_ERR(data->hwmon_dev)) {
1963 err = PTR_ERR(data->hwmon_dev);
1964 goto exit_remove;
1965 }
1966
1967 return 0;
1968
1969exit_remove:
1970 sysfs_remove_group(&client->dev.kobj, &data->attrs);
1971exit_free:
1972 kfree(data);
1973exit:
1974 return err;
1975}
1976
1977static int adt7462_remove(struct i2c_client *client)
1978{
1979 struct adt7462_data *data = i2c_get_clientdata(client);
1980
1981 hwmon_device_unregister(data->hwmon_dev);
1982 sysfs_remove_group(&client->dev.kobj, &data->attrs);
1983 kfree(data);
1984 return 0;
1985}
1986
1987static int __init adt7462_init(void)
1988{
1989 return i2c_add_driver(&adt7462_driver);
1990}
1991
1992static void __exit adt7462_exit(void)
1993{
1994 i2c_del_driver(&adt7462_driver);
1995}
1996
1997MODULE_AUTHOR("Darrick J. Wong <djwong@us.ibm.com>");
1998MODULE_DESCRIPTION("ADT7462 driver");
1999MODULE_LICENSE("GPL");
2000
2001module_init(adt7462_init);
2002module_exit(adt7462_exit);
diff --git a/drivers/hwmon/adt7470.c b/drivers/hwmon/adt7470.c
index d368d8f845e1..1311a595147e 100644
--- a/drivers/hwmon/adt7470.c
+++ b/drivers/hwmon/adt7470.c
@@ -137,6 +137,8 @@ I2C_CLIENT_INSMOD_1(adt7470);
137#define FAN_PERIOD_INVALID 65535 137#define FAN_PERIOD_INVALID 65535
138#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID) 138#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID)
139 139
140#define ROUND_DIV(x, divisor) (((x) + ((divisor) / 2)) / (divisor))
141
140struct adt7470_data { 142struct adt7470_data {
141 struct device *hwmon_dev; 143 struct device *hwmon_dev;
142 struct attribute_group attrs; 144 struct attribute_group attrs;
@@ -353,7 +355,13 @@ static ssize_t set_temp_min(struct device *dev,
353 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 355 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
354 struct i2c_client *client = to_i2c_client(dev); 356 struct i2c_client *client = to_i2c_client(dev);
355 struct adt7470_data *data = i2c_get_clientdata(client); 357 struct adt7470_data *data = i2c_get_clientdata(client);
356 int temp = simple_strtol(buf, NULL, 10) / 1000; 358 long temp;
359
360 if (strict_strtol(buf, 10, &temp))
361 return -EINVAL;
362
363 temp = ROUND_DIV(temp, 1000);
364 temp = SENSORS_LIMIT(temp, 0, 255);
357 365
358 mutex_lock(&data->lock); 366 mutex_lock(&data->lock);
359 data->temp_min[attr->index] = temp; 367 data->temp_min[attr->index] = temp;
@@ -381,7 +389,13 @@ static ssize_t set_temp_max(struct device *dev,
381 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 389 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
382 struct i2c_client *client = to_i2c_client(dev); 390 struct i2c_client *client = to_i2c_client(dev);
383 struct adt7470_data *data = i2c_get_clientdata(client); 391 struct adt7470_data *data = i2c_get_clientdata(client);
384 int temp = simple_strtol(buf, NULL, 10) / 1000; 392 long temp;
393
394 if (strict_strtol(buf, 10, &temp))
395 return -EINVAL;
396
397 temp = ROUND_DIV(temp, 1000);
398 temp = SENSORS_LIMIT(temp, 0, 255);
385 399
386 mutex_lock(&data->lock); 400 mutex_lock(&data->lock);
387 data->temp_max[attr->index] = temp; 401 data->temp_max[attr->index] = temp;
@@ -430,11 +444,13 @@ static ssize_t set_fan_max(struct device *dev,
430 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 444 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
431 struct i2c_client *client = to_i2c_client(dev); 445 struct i2c_client *client = to_i2c_client(dev);
432 struct adt7470_data *data = i2c_get_clientdata(client); 446 struct adt7470_data *data = i2c_get_clientdata(client);
433 int temp = simple_strtol(buf, NULL, 10); 447 long temp;
434 448
435 if (!temp) 449 if (strict_strtol(buf, 10, &temp) || !temp)
436 return -EINVAL; 450 return -EINVAL;
451
437 temp = FAN_RPM_TO_PERIOD(temp); 452 temp = FAN_RPM_TO_PERIOD(temp);
453 temp = SENSORS_LIMIT(temp, 1, 65534);
438 454
439 mutex_lock(&data->lock); 455 mutex_lock(&data->lock);
440 data->fan_max[attr->index] = temp; 456 data->fan_max[attr->index] = temp;
@@ -465,11 +481,13 @@ static ssize_t set_fan_min(struct device *dev,
465 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 481 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
466 struct i2c_client *client = to_i2c_client(dev); 482 struct i2c_client *client = to_i2c_client(dev);
467 struct adt7470_data *data = i2c_get_clientdata(client); 483 struct adt7470_data *data = i2c_get_clientdata(client);
468 int temp = simple_strtol(buf, NULL, 10); 484 long temp;
469 485
470 if (!temp) 486 if (strict_strtol(buf, 10, &temp) || !temp)
471 return -EINVAL; 487 return -EINVAL;
488
472 temp = FAN_RPM_TO_PERIOD(temp); 489 temp = FAN_RPM_TO_PERIOD(temp);
490 temp = SENSORS_LIMIT(temp, 1, 65534);
473 491
474 mutex_lock(&data->lock); 492 mutex_lock(&data->lock);
475 data->fan_min[attr->index] = temp; 493 data->fan_min[attr->index] = temp;
@@ -507,9 +525,12 @@ static ssize_t set_force_pwm_max(struct device *dev,
507{ 525{
508 struct i2c_client *client = to_i2c_client(dev); 526 struct i2c_client *client = to_i2c_client(dev);
509 struct adt7470_data *data = i2c_get_clientdata(client); 527 struct adt7470_data *data = i2c_get_clientdata(client);
510 int temp = simple_strtol(buf, NULL, 10); 528 long temp;
511 u8 reg; 529 u8 reg;
512 530
531 if (strict_strtol(buf, 10, &temp))
532 return -EINVAL;
533
513 mutex_lock(&data->lock); 534 mutex_lock(&data->lock);
514 data->force_pwm_max = temp; 535 data->force_pwm_max = temp;
515 reg = i2c_smbus_read_byte_data(client, ADT7470_REG_CFG); 536 reg = i2c_smbus_read_byte_data(client, ADT7470_REG_CFG);
@@ -537,7 +558,12 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *devattr,
537 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 558 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
538 struct i2c_client *client = to_i2c_client(dev); 559 struct i2c_client *client = to_i2c_client(dev);
539 struct adt7470_data *data = i2c_get_clientdata(client); 560 struct adt7470_data *data = i2c_get_clientdata(client);
540 int temp = simple_strtol(buf, NULL, 10); 561 long temp;
562
563 if (strict_strtol(buf, 10, &temp))
564 return -EINVAL;
565
566 temp = SENSORS_LIMIT(temp, 0, 255);
541 567
542 mutex_lock(&data->lock); 568 mutex_lock(&data->lock);
543 data->pwm[attr->index] = temp; 569 data->pwm[attr->index] = temp;
@@ -564,7 +590,12 @@ static ssize_t set_pwm_max(struct device *dev,
564 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 590 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
565 struct i2c_client *client = to_i2c_client(dev); 591 struct i2c_client *client = to_i2c_client(dev);
566 struct adt7470_data *data = i2c_get_clientdata(client); 592 struct adt7470_data *data = i2c_get_clientdata(client);
567 int temp = simple_strtol(buf, NULL, 10); 593 long temp;
594
595 if (strict_strtol(buf, 10, &temp))
596 return -EINVAL;
597
598 temp = SENSORS_LIMIT(temp, 0, 255);
568 599
569 mutex_lock(&data->lock); 600 mutex_lock(&data->lock);
570 data->pwm_max[attr->index] = temp; 601 data->pwm_max[attr->index] = temp;
@@ -592,7 +623,12 @@ static ssize_t set_pwm_min(struct device *dev,
592 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 623 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
593 struct i2c_client *client = to_i2c_client(dev); 624 struct i2c_client *client = to_i2c_client(dev);
594 struct adt7470_data *data = i2c_get_clientdata(client); 625 struct adt7470_data *data = i2c_get_clientdata(client);
595 int temp = simple_strtol(buf, NULL, 10); 626 long temp;
627
628 if (strict_strtol(buf, 10, &temp))
629 return -EINVAL;
630
631 temp = SENSORS_LIMIT(temp, 0, 255);
596 632
597 mutex_lock(&data->lock); 633 mutex_lock(&data->lock);
598 data->pwm_min[attr->index] = temp; 634 data->pwm_min[attr->index] = temp;
@@ -630,7 +666,13 @@ static ssize_t set_pwm_tmin(struct device *dev,
630 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 666 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
631 struct i2c_client *client = to_i2c_client(dev); 667 struct i2c_client *client = to_i2c_client(dev);
632 struct adt7470_data *data = i2c_get_clientdata(client); 668 struct adt7470_data *data = i2c_get_clientdata(client);
633 int temp = simple_strtol(buf, NULL, 10) / 1000; 669 long temp;
670
671 if (strict_strtol(buf, 10, &temp))
672 return -EINVAL;
673
674 temp = ROUND_DIV(temp, 1000);
675 temp = SENSORS_LIMIT(temp, 0, 255);
634 676
635 mutex_lock(&data->lock); 677 mutex_lock(&data->lock);
636 data->pwm_tmin[attr->index] = temp; 678 data->pwm_tmin[attr->index] = temp;
@@ -658,11 +700,14 @@ static ssize_t set_pwm_auto(struct device *dev,
658 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 700 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
659 struct i2c_client *client = to_i2c_client(dev); 701 struct i2c_client *client = to_i2c_client(dev);
660 struct adt7470_data *data = i2c_get_clientdata(client); 702 struct adt7470_data *data = i2c_get_clientdata(client);
661 int temp = simple_strtol(buf, NULL, 10);
662 int pwm_auto_reg = ADT7470_REG_PWM_CFG(attr->index); 703 int pwm_auto_reg = ADT7470_REG_PWM_CFG(attr->index);
663 int pwm_auto_reg_mask; 704 int pwm_auto_reg_mask;
705 long temp;
664 u8 reg; 706 u8 reg;
665 707
708 if (strict_strtol(buf, 10, &temp))
709 return -EINVAL;
710
666 if (attr->index % 2) 711 if (attr->index % 2)
667 pwm_auto_reg_mask = ADT7470_PWM2_AUTO_MASK; 712 pwm_auto_reg_mask = ADT7470_PWM2_AUTO_MASK;
668 else 713 else
@@ -716,10 +761,14 @@ static ssize_t set_pwm_auto_temp(struct device *dev,
716 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 761 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
717 struct i2c_client *client = to_i2c_client(dev); 762 struct i2c_client *client = to_i2c_client(dev);
718 struct adt7470_data *data = i2c_get_clientdata(client); 763 struct adt7470_data *data = i2c_get_clientdata(client);
719 int temp = cvt_auto_temp(simple_strtol(buf, NULL, 10));
720 int pwm_auto_reg = ADT7470_REG_PWM_AUTO_TEMP(attr->index); 764 int pwm_auto_reg = ADT7470_REG_PWM_AUTO_TEMP(attr->index);
765 long temp;
721 u8 reg; 766 u8 reg;
722 767
768 if (strict_strtol(buf, 10, &temp))
769 return -EINVAL;
770
771 temp = cvt_auto_temp(temp);
723 if (temp < 0) 772 if (temp < 0)
724 return temp; 773 return temp;
725 774
diff --git a/drivers/hwmon/adt7473.c b/drivers/hwmon/adt7473.c
index b9a8ea30c99c..18aa30866a6c 100644
--- a/drivers/hwmon/adt7473.c
+++ b/drivers/hwmon/adt7473.c
@@ -129,6 +129,8 @@ I2C_CLIENT_INSMOD_1(adt7473);
129#define FAN_PERIOD_INVALID 65535 129#define FAN_PERIOD_INVALID 65535
130#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID) 130#define FAN_DATA_VALID(x) ((x) && (x) != FAN_PERIOD_INVALID)
131 131
132#define ROUND_DIV(x, divisor) (((x) + ((divisor) / 2)) / (divisor))
133
132struct adt7473_data { 134struct adt7473_data {
133 struct device *hwmon_dev; 135 struct device *hwmon_dev;
134 struct attribute_group attrs; 136 struct attribute_group attrs;
@@ -357,7 +359,12 @@ static ssize_t set_volt_min(struct device *dev,
357 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 359 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
358 struct i2c_client *client = to_i2c_client(dev); 360 struct i2c_client *client = to_i2c_client(dev);
359 struct adt7473_data *data = i2c_get_clientdata(client); 361 struct adt7473_data *data = i2c_get_clientdata(client);
360 int volt = encode_volt(attr->index, simple_strtol(buf, NULL, 10)); 362 long volt;
363
364 if (strict_strtol(buf, 10, &volt))
365 return -EINVAL;
366
367 volt = encode_volt(attr->index, volt);
361 368
362 mutex_lock(&data->lock); 369 mutex_lock(&data->lock);
363 data->volt_min[attr->index] = volt; 370 data->volt_min[attr->index] = volt;
@@ -386,7 +393,12 @@ static ssize_t set_volt_max(struct device *dev,
386 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 393 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
387 struct i2c_client *client = to_i2c_client(dev); 394 struct i2c_client *client = to_i2c_client(dev);
388 struct adt7473_data *data = i2c_get_clientdata(client); 395 struct adt7473_data *data = i2c_get_clientdata(client);
389 int volt = encode_volt(attr->index, simple_strtol(buf, NULL, 10)); 396 long volt;
397
398 if (strict_strtol(buf, 10, &volt))
399 return -EINVAL;
400
401 volt = encode_volt(attr->index, volt);
390 402
391 mutex_lock(&data->lock); 403 mutex_lock(&data->lock);
392 data->volt_max[attr->index] = volt; 404 data->volt_max[attr->index] = volt;
@@ -419,7 +431,8 @@ static int decode_temp(u8 twos_complement, u8 raw)
419 431
420static u8 encode_temp(u8 twos_complement, int cooked) 432static u8 encode_temp(u8 twos_complement, int cooked)
421{ 433{
422 return twos_complement ? cooked & 0xFF : cooked + 64; 434 u8 ret = twos_complement ? cooked & 0xFF : cooked + 64;
435 return SENSORS_LIMIT(ret, 0, 255);
423} 436}
424 437
425static ssize_t show_temp_min(struct device *dev, 438static ssize_t show_temp_min(struct device *dev,
@@ -441,7 +454,12 @@ static ssize_t set_temp_min(struct device *dev,
441 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 454 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
442 struct i2c_client *client = to_i2c_client(dev); 455 struct i2c_client *client = to_i2c_client(dev);
443 struct adt7473_data *data = i2c_get_clientdata(client); 456 struct adt7473_data *data = i2c_get_clientdata(client);
444 int temp = simple_strtol(buf, NULL, 10) / 1000; 457 long temp;
458
459 if (strict_strtol(buf, 10, &temp))
460 return -EINVAL;
461
462 temp = ROUND_DIV(temp, 1000);
445 temp = encode_temp(data->temp_twos_complement, temp); 463 temp = encode_temp(data->temp_twos_complement, temp);
446 464
447 mutex_lock(&data->lock); 465 mutex_lock(&data->lock);
@@ -472,7 +490,12 @@ static ssize_t set_temp_max(struct device *dev,
472 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 490 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
473 struct i2c_client *client = to_i2c_client(dev); 491 struct i2c_client *client = to_i2c_client(dev);
474 struct adt7473_data *data = i2c_get_clientdata(client); 492 struct adt7473_data *data = i2c_get_clientdata(client);
475 int temp = simple_strtol(buf, NULL, 10) / 1000; 493 long temp;
494
495 if (strict_strtol(buf, 10, &temp))
496 return -EINVAL;
497
498 temp = ROUND_DIV(temp, 1000);
476 temp = encode_temp(data->temp_twos_complement, temp); 499 temp = encode_temp(data->temp_twos_complement, temp);
477 500
478 mutex_lock(&data->lock); 501 mutex_lock(&data->lock);
@@ -515,11 +538,13 @@ static ssize_t set_fan_min(struct device *dev,
515 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 538 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
516 struct i2c_client *client = to_i2c_client(dev); 539 struct i2c_client *client = to_i2c_client(dev);
517 struct adt7473_data *data = i2c_get_clientdata(client); 540 struct adt7473_data *data = i2c_get_clientdata(client);
518 int temp = simple_strtol(buf, NULL, 10); 541 long temp;
519 542
520 if (!temp) 543 if (strict_strtol(buf, 10, &temp) || !temp)
521 return -EINVAL; 544 return -EINVAL;
545
522 temp = FAN_RPM_TO_PERIOD(temp); 546 temp = FAN_RPM_TO_PERIOD(temp);
547 temp = SENSORS_LIMIT(temp, 1, 65534);
523 548
524 mutex_lock(&data->lock); 549 mutex_lock(&data->lock);
525 data->fan_min[attr->index] = temp; 550 data->fan_min[attr->index] = temp;
@@ -558,7 +583,10 @@ static ssize_t set_max_duty_at_crit(struct device *dev,
558 u8 reg; 583 u8 reg;
559 struct i2c_client *client = to_i2c_client(dev); 584 struct i2c_client *client = to_i2c_client(dev);
560 struct adt7473_data *data = i2c_get_clientdata(client); 585 struct adt7473_data *data = i2c_get_clientdata(client);
561 int temp = simple_strtol(buf, NULL, 10); 586 long temp;
587
588 if (strict_strtol(buf, 10, &temp))
589 return -EINVAL;
562 590
563 mutex_lock(&data->lock); 591 mutex_lock(&data->lock);
564 data->max_duty_at_overheat = !!temp; 592 data->max_duty_at_overheat = !!temp;
@@ -587,7 +615,12 @@ static ssize_t set_pwm(struct device *dev, struct device_attribute *devattr,
587 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 615 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
588 struct i2c_client *client = to_i2c_client(dev); 616 struct i2c_client *client = to_i2c_client(dev);
589 struct adt7473_data *data = i2c_get_clientdata(client); 617 struct adt7473_data *data = i2c_get_clientdata(client);
590 int temp = simple_strtol(buf, NULL, 10); 618 long temp;
619
620 if (strict_strtol(buf, 10, &temp))
621 return -EINVAL;
622
623 temp = SENSORS_LIMIT(temp, 0, 255);
591 624
592 mutex_lock(&data->lock); 625 mutex_lock(&data->lock);
593 data->pwm[attr->index] = temp; 626 data->pwm[attr->index] = temp;
@@ -614,7 +647,12 @@ static ssize_t set_pwm_max(struct device *dev,
614 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 647 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
615 struct i2c_client *client = to_i2c_client(dev); 648 struct i2c_client *client = to_i2c_client(dev);
616 struct adt7473_data *data = i2c_get_clientdata(client); 649 struct adt7473_data *data = i2c_get_clientdata(client);
617 int temp = simple_strtol(buf, NULL, 10); 650 long temp;
651
652 if (strict_strtol(buf, 10, &temp))
653 return -EINVAL;
654
655 temp = SENSORS_LIMIT(temp, 0, 255);
618 656
619 mutex_lock(&data->lock); 657 mutex_lock(&data->lock);
620 data->pwm_max[attr->index] = temp; 658 data->pwm_max[attr->index] = temp;
@@ -642,7 +680,12 @@ static ssize_t set_pwm_min(struct device *dev,
642 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 680 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
643 struct i2c_client *client = to_i2c_client(dev); 681 struct i2c_client *client = to_i2c_client(dev);
644 struct adt7473_data *data = i2c_get_clientdata(client); 682 struct adt7473_data *data = i2c_get_clientdata(client);
645 int temp = simple_strtol(buf, NULL, 10); 683 long temp;
684
685 if (strict_strtol(buf, 10, &temp))
686 return -EINVAL;
687
688 temp = SENSORS_LIMIT(temp, 0, 255);
646 689
647 mutex_lock(&data->lock); 690 mutex_lock(&data->lock);
648 data->pwm_min[attr->index] = temp; 691 data->pwm_min[attr->index] = temp;
@@ -672,7 +715,12 @@ static ssize_t set_temp_tmax(struct device *dev,
672 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 715 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
673 struct i2c_client *client = to_i2c_client(dev); 716 struct i2c_client *client = to_i2c_client(dev);
674 struct adt7473_data *data = i2c_get_clientdata(client); 717 struct adt7473_data *data = i2c_get_clientdata(client);
675 int temp = simple_strtol(buf, NULL, 10) / 1000; 718 long temp;
719
720 if (strict_strtol(buf, 10, &temp))
721 return -EINVAL;
722
723 temp = ROUND_DIV(temp, 1000);
676 temp = encode_temp(data->temp_twos_complement, temp); 724 temp = encode_temp(data->temp_twos_complement, temp);
677 725
678 mutex_lock(&data->lock); 726 mutex_lock(&data->lock);
@@ -703,7 +751,12 @@ static ssize_t set_temp_tmin(struct device *dev,
703 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 751 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
704 struct i2c_client *client = to_i2c_client(dev); 752 struct i2c_client *client = to_i2c_client(dev);
705 struct adt7473_data *data = i2c_get_clientdata(client); 753 struct adt7473_data *data = i2c_get_clientdata(client);
706 int temp = simple_strtol(buf, NULL, 10) / 1000; 754 long temp;
755
756 if (strict_strtol(buf, 10, &temp))
757 return -EINVAL;
758
759 temp = ROUND_DIV(temp, 1000);
707 temp = encode_temp(data->temp_twos_complement, temp); 760 temp = encode_temp(data->temp_twos_complement, temp);
708 761
709 mutex_lock(&data->lock); 762 mutex_lock(&data->lock);
@@ -741,7 +794,10 @@ static ssize_t set_pwm_enable(struct device *dev,
741 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 794 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
742 struct i2c_client *client = to_i2c_client(dev); 795 struct i2c_client *client = to_i2c_client(dev);
743 struct adt7473_data *data = i2c_get_clientdata(client); 796 struct adt7473_data *data = i2c_get_clientdata(client);
744 int temp = simple_strtol(buf, NULL, 10); 797 long temp;
798
799 if (strict_strtol(buf, 10, &temp))
800 return -EINVAL;
745 801
746 switch (temp) { 802 switch (temp) {
747 case 0: 803 case 0:
@@ -805,7 +861,10 @@ static ssize_t set_pwm_auto_temp(struct device *dev,
805 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 861 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
806 struct i2c_client *client = to_i2c_client(dev); 862 struct i2c_client *client = to_i2c_client(dev);
807 struct adt7473_data *data = i2c_get_clientdata(client); 863 struct adt7473_data *data = i2c_get_clientdata(client);
808 int temp = simple_strtol(buf, NULL, 10); 864 long temp;
865
866 if (strict_strtol(buf, 10, &temp))
867 return -EINVAL;
809 868
810 switch (temp) { 869 switch (temp) {
811 case 1: 870 case 1:
diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
index bc011da79e14..086c2a5cef0b 100644
--- a/drivers/hwmon/applesmc.c
+++ b/drivers/hwmon/applesmc.c
@@ -116,6 +116,21 @@ static const char* temperature_sensors_sets[][36] = {
116/* Set 9: Macbook Pro 3,1 (Santa Rosa) */ 116/* Set 9: Macbook Pro 3,1 (Santa Rosa) */
117 { "TALP", "TB0T", "TC0D", "TC0P", "TG0D", "TG0H", "TTF0", "TW0P", 117 { "TALP", "TB0T", "TC0D", "TC0P", "TG0D", "TG0H", "TTF0", "TW0P",
118 "Th0H", "Th1H", "Th2H", "Tm0P", "Ts0P", NULL }, 118 "Th0H", "Th1H", "Th2H", "Tm0P", "Ts0P", NULL },
119/* Set 10: iMac 5,1 */
120 { "TA0P", "TC0D", "TC0P", "TG0D", "TH0P", "TO0P", "Tm0P", NULL },
121/* Set 11: Macbook 5,1 */
122 { "TB0T", "TB1T", "TB2T", "TB3T", "TC0D", "TC0P", "TN0D", "TN0P",
123 "TTF0", "Th0H", "Th1H", "ThFH", "Ts0P", "Ts0S", NULL },
124/* Set 12: Macbook Pro 5,1 */
125 { "TB0T", "TB1T", "TB2T", "TB3T", "TC0D", "TC0F", "TC0P", "TG0D",
126 "TG0F", "TG0H", "TG0P", "TG0T", "TG1H", "TN0D", "TN0P", "TTF0",
127 "Th2H", "Tm0P", "Ts0P", "Ts0S", NULL },
128/* Set 13: iMac 8,1 */
129 { "TA0P", "TC0D", "TC0H", "TC0P", "TG0D", "TG0H", "TG0P", "TH0P",
130 "TL0P", "TO0P", "TW0P", "Tm0P", "Tp0P", NULL },
131/* Set 14: iMac 6,1 */
132 { "TA0P", "TC0D", "TC0H", "TC0P", "TG0D", "TG0H", "TG0P", "TH0P",
133 "TO0P", "Tp0P", NULL },
119}; 134};
120 135
121/* List of keys used to read/write fan speeds */ 136/* List of keys used to read/write fan speeds */
@@ -1268,7 +1283,7 @@ static __initdata struct dmi_match_data applesmc_dmi_data[] = {
1268 { .accelerometer = 0, .light = 0, .temperature_set = 4 }, 1283 { .accelerometer = 0, .light = 0, .temperature_set = 4 },
1269/* iMac: temperature set 5 */ 1284/* iMac: temperature set 5 */
1270 { .accelerometer = 0, .light = 0, .temperature_set = 5 }, 1285 { .accelerometer = 0, .light = 0, .temperature_set = 5 },
1271/* MacBook3: accelerometer and temperature set 6 */ 1286/* MacBook3, MacBook4: accelerometer and temperature set 6 */
1272 { .accelerometer = 1, .light = 0, .temperature_set = 6 }, 1287 { .accelerometer = 1, .light = 0, .temperature_set = 6 },
1273/* MacBook Air: accelerometer, backlight and temperature set 7 */ 1288/* MacBook Air: accelerometer, backlight and temperature set 7 */
1274 { .accelerometer = 1, .light = 1, .temperature_set = 7 }, 1289 { .accelerometer = 1, .light = 1, .temperature_set = 7 },
@@ -1276,6 +1291,16 @@ static __initdata struct dmi_match_data applesmc_dmi_data[] = {
1276 { .accelerometer = 1, .light = 1, .temperature_set = 8 }, 1291 { .accelerometer = 1, .light = 1, .temperature_set = 8 },
1277/* MacBook Pro 3: accelerometer, backlight and temperature set 9 */ 1292/* MacBook Pro 3: accelerometer, backlight and temperature set 9 */
1278 { .accelerometer = 1, .light = 1, .temperature_set = 9 }, 1293 { .accelerometer = 1, .light = 1, .temperature_set = 9 },
1294/* iMac 5: light sensor only, temperature set 10 */
1295 { .accelerometer = 0, .light = 0, .temperature_set = 10 },
1296/* MacBook 5: accelerometer, backlight and temperature set 11 */
1297 { .accelerometer = 1, .light = 1, .temperature_set = 11 },
1298/* MacBook Pro 5: accelerometer, backlight and temperature set 12 */
1299 { .accelerometer = 1, .light = 1, .temperature_set = 12 },
1300/* iMac 8: light sensor only, temperature set 13 */
1301 { .accelerometer = 0, .light = 0, .temperature_set = 13 },
1302/* iMac 6: light sensor only, temperature set 14 */
1303 { .accelerometer = 0, .light = 0, .temperature_set = 14 },
1279}; 1304};
1280 1305
1281/* Note that DMI_MATCH(...,"MacBook") will match "MacBookPro1,1". 1306/* Note that DMI_MATCH(...,"MacBook") will match "MacBookPro1,1".
@@ -1285,6 +1310,10 @@ static __initdata struct dmi_system_id applesmc_whitelist[] = {
1285 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"), 1310 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1286 DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir") }, 1311 DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir") },
1287 &applesmc_dmi_data[7]}, 1312 &applesmc_dmi_data[7]},
1313 { applesmc_dmi_match, "Apple MacBook Pro 5", {
1314 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1315 DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro5") },
1316 &applesmc_dmi_data[12]},
1288 { applesmc_dmi_match, "Apple MacBook Pro 4", { 1317 { applesmc_dmi_match, "Apple MacBook Pro 4", {
1289 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"), 1318 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1290 DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro4") }, 1319 DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro4") },
@@ -1305,6 +1334,14 @@ static __initdata struct dmi_system_id applesmc_whitelist[] = {
1305 DMI_MATCH(DMI_BOARD_VENDOR,"Apple"), 1334 DMI_MATCH(DMI_BOARD_VENDOR,"Apple"),
1306 DMI_MATCH(DMI_PRODUCT_NAME,"MacBook3") }, 1335 DMI_MATCH(DMI_PRODUCT_NAME,"MacBook3") },
1307 &applesmc_dmi_data[6]}, 1336 &applesmc_dmi_data[6]},
1337 { applesmc_dmi_match, "Apple MacBook 4", {
1338 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1339 DMI_MATCH(DMI_PRODUCT_NAME, "MacBook4") },
1340 &applesmc_dmi_data[6]},
1341 { applesmc_dmi_match, "Apple MacBook 5", {
1342 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1343 DMI_MATCH(DMI_PRODUCT_NAME, "MacBook5") },
1344 &applesmc_dmi_data[11]},
1308 { applesmc_dmi_match, "Apple MacBook", { 1345 { applesmc_dmi_match, "Apple MacBook", {
1309 DMI_MATCH(DMI_BOARD_VENDOR,"Apple"), 1346 DMI_MATCH(DMI_BOARD_VENDOR,"Apple"),
1310 DMI_MATCH(DMI_PRODUCT_NAME,"MacBook") }, 1347 DMI_MATCH(DMI_PRODUCT_NAME,"MacBook") },
@@ -1317,6 +1354,22 @@ static __initdata struct dmi_system_id applesmc_whitelist[] = {
1317 DMI_MATCH(DMI_BOARD_VENDOR,"Apple"), 1354 DMI_MATCH(DMI_BOARD_VENDOR,"Apple"),
1318 DMI_MATCH(DMI_PRODUCT_NAME,"MacPro2") }, 1355 DMI_MATCH(DMI_PRODUCT_NAME,"MacPro2") },
1319 &applesmc_dmi_data[4]}, 1356 &applesmc_dmi_data[4]},
1357 { applesmc_dmi_match, "Apple MacPro", {
1358 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1359 DMI_MATCH(DMI_PRODUCT_NAME, "MacPro") },
1360 &applesmc_dmi_data[4]},
1361 { applesmc_dmi_match, "Apple iMac 8", {
1362 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1363 DMI_MATCH(DMI_PRODUCT_NAME, "iMac8") },
1364 &applesmc_dmi_data[13]},
1365 { applesmc_dmi_match, "Apple iMac 6", {
1366 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1367 DMI_MATCH(DMI_PRODUCT_NAME, "iMac6") },
1368 &applesmc_dmi_data[14]},
1369 { applesmc_dmi_match, "Apple iMac 5", {
1370 DMI_MATCH(DMI_BOARD_VENDOR, "Apple"),
1371 DMI_MATCH(DMI_PRODUCT_NAME, "iMac5") },
1372 &applesmc_dmi_data[10]},
1320 { applesmc_dmi_match, "Apple iMac", { 1373 { applesmc_dmi_match, "Apple iMac", {
1321 DMI_MATCH(DMI_BOARD_VENDOR,"Apple"), 1374 DMI_MATCH(DMI_BOARD_VENDOR,"Apple"),
1322 DMI_MATCH(DMI_PRODUCT_NAME,"iMac") }, 1375 DMI_MATCH(DMI_PRODUCT_NAME,"iMac") },
@@ -1511,3 +1564,4 @@ module_exit(applesmc_exit);
1511MODULE_AUTHOR("Nicolas Boichat"); 1564MODULE_AUTHOR("Nicolas Boichat");
1512MODULE_DESCRIPTION("Apple SMC"); 1565MODULE_DESCRIPTION("Apple SMC");
1513MODULE_LICENSE("GPL v2"); 1566MODULE_LICENSE("GPL v2");
1567MODULE_DEVICE_TABLE(dmi, applesmc_whitelist);
diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
index 7b0ed5dea399..fe74609a7feb 100644
--- a/drivers/hwmon/ibmaem.c
+++ b/drivers/hwmon/ibmaem.c
@@ -88,9 +88,11 @@
88static DEFINE_IDR(aem_idr); 88static DEFINE_IDR(aem_idr);
89static DEFINE_SPINLOCK(aem_idr_lock); 89static DEFINE_SPINLOCK(aem_idr_lock);
90 90
91static struct device_driver aem_driver = { 91static struct platform_driver aem_driver = {
92 .name = DRVNAME, 92 .driver = {
93 .bus = &platform_bus_type, 93 .name = DRVNAME,
94 .bus = &platform_bus_type,
95 }
94}; 96};
95 97
96struct aem_ipmi_data { 98struct aem_ipmi_data {
@@ -583,7 +585,7 @@ static int aem_init_aem1_inst(struct aem_ipmi_data *probe, u8 module_handle)
583 data->pdev = platform_device_alloc(DRVNAME, data->id); 585 data->pdev = platform_device_alloc(DRVNAME, data->id);
584 if (!data->pdev) 586 if (!data->pdev)
585 goto dev_err; 587 goto dev_err;
586 data->pdev->dev.driver = &aem_driver; 588 data->pdev->dev.driver = &aem_driver.driver;
587 589
588 res = platform_device_add(data->pdev); 590 res = platform_device_add(data->pdev);
589 if (res) 591 if (res)
@@ -716,7 +718,7 @@ static int aem_init_aem2_inst(struct aem_ipmi_data *probe,
716 data->pdev = platform_device_alloc(DRVNAME, data->id); 718 data->pdev = platform_device_alloc(DRVNAME, data->id);
717 if (!data->pdev) 719 if (!data->pdev)
718 goto dev_err; 720 goto dev_err;
719 data->pdev->dev.driver = &aem_driver; 721 data->pdev->dev.driver = &aem_driver.driver;
720 722
721 res = platform_device_add(data->pdev); 723 res = platform_device_add(data->pdev);
722 if (res) 724 if (res)
@@ -1085,7 +1087,7 @@ static int __init aem_init(void)
1085{ 1087{
1086 int res; 1088 int res;
1087 1089
1088 res = driver_register(&aem_driver); 1090 res = driver_register(&aem_driver.driver);
1089 if (res) { 1091 if (res) {
1090 printk(KERN_ERR "Can't register aem driver\n"); 1092 printk(KERN_ERR "Can't register aem driver\n");
1091 return res; 1093 return res;
@@ -1097,7 +1099,7 @@ static int __init aem_init(void)
1097 return 0; 1099 return 0;
1098 1100
1099ipmi_reg_err: 1101ipmi_reg_err:
1100 driver_unregister(&aem_driver); 1102 driver_unregister(&aem_driver.driver);
1101 return res; 1103 return res;
1102 1104
1103} 1105}
@@ -1107,7 +1109,7 @@ static void __exit aem_exit(void)
1107 struct aem_data *p1, *next1; 1109 struct aem_data *p1, *next1;
1108 1110
1109 ipmi_smi_watcher_unregister(&driver_data.bmc_events); 1111 ipmi_smi_watcher_unregister(&driver_data.bmc_events);
1110 driver_unregister(&aem_driver); 1112 driver_unregister(&aem_driver.driver);
1111 list_for_each_entry_safe(p1, next1, &driver_data.aem_devices, list) 1113 list_for_each_entry_safe(p1, next1, &driver_data.aem_devices, list)
1112 aem_delete(p1); 1114 aem_delete(p1);
1113} 1115}
diff --git a/drivers/hwmon/lis3lv02d.c b/drivers/hwmon/lis3lv02d.c
new file mode 100644
index 000000000000..c002144c76bc
--- /dev/null
+++ b/drivers/hwmon/lis3lv02d.c
@@ -0,0 +1,581 @@
1/*
2 * lis3lv02d.c - ST LIS3LV02DL accelerometer driver
3 *
4 * Copyright (C) 2007-2008 Yan Burman
5 * Copyright (C) 2008 Eric Piel
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#include <linux/kernel.h>
23#include <linux/init.h>
24#include <linux/dmi.h>
25#include <linux/module.h>
26#include <linux/types.h>
27#include <linux/platform_device.h>
28#include <linux/interrupt.h>
29#include <linux/input.h>
30#include <linux/kthread.h>
31#include <linux/semaphore.h>
32#include <linux/delay.h>
33#include <linux/wait.h>
34#include <linux/poll.h>
35#include <linux/freezer.h>
36#include <linux/uaccess.h>
37#include <acpi/acpi_drivers.h>
38#include <asm/atomic.h>
39#include "lis3lv02d.h"
40
41#define DRIVER_NAME "lis3lv02d"
42#define ACPI_MDPS_CLASS "accelerometer"
43
44/* joystick device poll interval in milliseconds */
45#define MDPS_POLL_INTERVAL 50
46/*
47 * The sensor can also generate interrupts (DRDY) but it's pretty pointless
48 * because their are generated even if the data do not change. So it's better
49 * to keep the interrupt for the free-fall event. The values are updated at
50 * 40Hz (at the lowest frequency), but as it can be pretty time consuming on
51 * some low processor, we poll the sensor only at 20Hz... enough for the
52 * joystick.
53 */
54
55/* Maximum value our axis may get for the input device (signed 12 bits) */
56#define MDPS_MAX_VAL 2048
57
58struct axis_conversion {
59 s8 x;
60 s8 y;
61 s8 z;
62};
63
64struct acpi_lis3lv02d {
65 struct acpi_device *device; /* The ACPI device */
66 struct input_dev *idev; /* input device */
67 struct task_struct *kthread; /* kthread for input */
68 struct mutex lock;
69 struct platform_device *pdev; /* platform device */
70 atomic_t count; /* interrupt count after last read */
71 int xcalib; /* calibrated null value for x */
72 int ycalib; /* calibrated null value for y */
73 int zcalib; /* calibrated null value for z */
74 unsigned char is_on; /* whether the device is on or off */
75 unsigned char usage; /* usage counter */
76 struct axis_conversion ac; /* hw -> logical axis */
77};
78
79static struct acpi_lis3lv02d adev;
80
81static int lis3lv02d_remove_fs(void);
82static int lis3lv02d_add_fs(struct acpi_device *device);
83
84/* For automatic insertion of the module */
85static struct acpi_device_id lis3lv02d_device_ids[] = {
86 {"HPQ0004", 0}, /* HP Mobile Data Protection System PNP */
87 {"", 0},
88};
89MODULE_DEVICE_TABLE(acpi, lis3lv02d_device_ids);
90
91/**
92 * lis3lv02d_acpi_init - ACPI _INI method: initialize the device.
93 * @handle: the handle of the device
94 *
95 * Returns AE_OK on success.
96 */
97static inline acpi_status lis3lv02d_acpi_init(acpi_handle handle)
98{
99 return acpi_evaluate_object(handle, METHOD_NAME__INI, NULL, NULL);
100}
101
102/**
103 * lis3lv02d_acpi_read - ACPI ALRD method: read a register
104 * @handle: the handle of the device
105 * @reg: the register to read
106 * @ret: result of the operation
107 *
108 * Returns AE_OK on success.
109 */
110static acpi_status lis3lv02d_acpi_read(acpi_handle handle, int reg, u8 *ret)
111{
112 union acpi_object arg0 = { ACPI_TYPE_INTEGER };
113 struct acpi_object_list args = { 1, &arg0 };
114 unsigned long long lret;
115 acpi_status status;
116
117 arg0.integer.value = reg;
118
119 status = acpi_evaluate_integer(handle, "ALRD", &args, &lret);
120 *ret = lret;
121 return status;
122}
123
124/**
125 * lis3lv02d_acpi_write - ACPI ALWR method: write to a register
126 * @handle: the handle of the device
127 * @reg: the register to write to
128 * @val: the value to write
129 *
130 * Returns AE_OK on success.
131 */
132static acpi_status lis3lv02d_acpi_write(acpi_handle handle, int reg, u8 val)
133{
134 unsigned long long ret; /* Not used when writting */
135 union acpi_object in_obj[2];
136 struct acpi_object_list args = { 2, in_obj };
137
138 in_obj[0].type = ACPI_TYPE_INTEGER;
139 in_obj[0].integer.value = reg;
140 in_obj[1].type = ACPI_TYPE_INTEGER;
141 in_obj[1].integer.value = val;
142
143 return acpi_evaluate_integer(handle, "ALWR", &args, &ret);
144}
145
146static s16 lis3lv02d_read_16(acpi_handle handle, int reg)
147{
148 u8 lo, hi;
149
150 lis3lv02d_acpi_read(handle, reg, &lo);
151 lis3lv02d_acpi_read(handle, reg + 1, &hi);
152 /* In "12 bit right justified" mode, bit 6, bit 7, bit 8 = bit 5 */
153 return (s16)((hi << 8) | lo);
154}
155
156/**
157 * lis3lv02d_get_axis - For the given axis, give the value converted
158 * @axis: 1,2,3 - can also be negative
159 * @hw_values: raw values returned by the hardware
160 *
161 * Returns the converted value.
162 */
163static inline int lis3lv02d_get_axis(s8 axis, int hw_values[3])
164{
165 if (axis > 0)
166 return hw_values[axis - 1];
167 else
168 return -hw_values[-axis - 1];
169}
170
171/**
172 * lis3lv02d_get_xyz - Get X, Y and Z axis values from the accelerometer
173 * @handle: the handle to the device
174 * @x: where to store the X axis value
175 * @y: where to store the Y axis value
176 * @z: where to store the Z axis value
177 *
178 * Note that 40Hz input device can eat up about 10% CPU at 800MHZ
179 */
180static void lis3lv02d_get_xyz(acpi_handle handle, int *x, int *y, int *z)
181{
182 int position[3];
183
184 position[0] = lis3lv02d_read_16(handle, OUTX_L);
185 position[1] = lis3lv02d_read_16(handle, OUTY_L);
186 position[2] = lis3lv02d_read_16(handle, OUTZ_L);
187
188 *x = lis3lv02d_get_axis(adev.ac.x, position);
189 *y = lis3lv02d_get_axis(adev.ac.y, position);
190 *z = lis3lv02d_get_axis(adev.ac.z, position);
191}
192
193static inline void lis3lv02d_poweroff(acpi_handle handle)
194{
195 adev.is_on = 0;
196 /* disable X,Y,Z axis and power down */
197 lis3lv02d_acpi_write(handle, CTRL_REG1, 0x00);
198}
199
200static void lis3lv02d_poweron(acpi_handle handle)
201{
202 u8 val;
203
204 adev.is_on = 1;
205 lis3lv02d_acpi_init(handle);
206 lis3lv02d_acpi_write(handle, FF_WU_CFG, 0);
207 /*
208 * BDU: LSB and MSB values are not updated until both have been read.
209 * So the value read will always be correct.
210 * IEN: Interrupt for free-fall and DD, not for data-ready.
211 */
212 lis3lv02d_acpi_read(handle, CTRL_REG2, &val);
213 val |= CTRL2_BDU | CTRL2_IEN;
214 lis3lv02d_acpi_write(handle, CTRL_REG2, val);
215}
216
217#ifdef CONFIG_PM
218static int lis3lv02d_suspend(struct acpi_device *device, pm_message_t state)
219{
220 /* make sure the device is off when we suspend */
221 lis3lv02d_poweroff(device->handle);
222 return 0;
223}
224
225static int lis3lv02d_resume(struct acpi_device *device)
226{
227 /* put back the device in the right state (ACPI might turn it on) */
228 mutex_lock(&adev.lock);
229 if (adev.usage > 0)
230 lis3lv02d_poweron(device->handle);
231 else
232 lis3lv02d_poweroff(device->handle);
233 mutex_unlock(&adev.lock);
234 return 0;
235}
236#else
237#define lis3lv02d_suspend NULL
238#define lis3lv02d_resume NULL
239#endif
240
241
242/*
243 * To be called before starting to use the device. It makes sure that the
244 * device will always be on until a call to lis3lv02d_decrease_use(). Not to be
245 * used from interrupt context.
246 */
247static void lis3lv02d_increase_use(struct acpi_lis3lv02d *dev)
248{
249 mutex_lock(&dev->lock);
250 dev->usage++;
251 if (dev->usage == 1) {
252 if (!dev->is_on)
253 lis3lv02d_poweron(dev->device->handle);
254 }
255 mutex_unlock(&dev->lock);
256}
257
258/*
259 * To be called whenever a usage of the device is stopped.
260 * It will make sure to turn off the device when there is not usage.
261 */
262static void lis3lv02d_decrease_use(struct acpi_lis3lv02d *dev)
263{
264 mutex_lock(&dev->lock);
265 dev->usage--;
266 if (dev->usage == 0)
267 lis3lv02d_poweroff(dev->device->handle);
268 mutex_unlock(&dev->lock);
269}
270
271/**
272 * lis3lv02d_joystick_kthread - Kthread polling function
273 * @data: unused - here to conform to threadfn prototype
274 */
275static int lis3lv02d_joystick_kthread(void *data)
276{
277 int x, y, z;
278
279 while (!kthread_should_stop()) {
280 lis3lv02d_get_xyz(adev.device->handle, &x, &y, &z);
281 input_report_abs(adev.idev, ABS_X, x - adev.xcalib);
282 input_report_abs(adev.idev, ABS_Y, y - adev.ycalib);
283 input_report_abs(adev.idev, ABS_Z, z - adev.zcalib);
284
285 input_sync(adev.idev);
286
287 try_to_freeze();
288 msleep_interruptible(MDPS_POLL_INTERVAL);
289 }
290
291 return 0;
292}
293
294static int lis3lv02d_joystick_open(struct input_dev *input)
295{
296 lis3lv02d_increase_use(&adev);
297 adev.kthread = kthread_run(lis3lv02d_joystick_kthread, NULL, "klis3lv02d");
298 if (IS_ERR(adev.kthread)) {
299 lis3lv02d_decrease_use(&adev);
300 return PTR_ERR(adev.kthread);
301 }
302
303 return 0;
304}
305
306static void lis3lv02d_joystick_close(struct input_dev *input)
307{
308 kthread_stop(adev.kthread);
309 lis3lv02d_decrease_use(&adev);
310}
311
312
313static inline void lis3lv02d_calibrate_joystick(void)
314{
315 lis3lv02d_get_xyz(adev.device->handle, &adev.xcalib, &adev.ycalib, &adev.zcalib);
316}
317
318static int lis3lv02d_joystick_enable(void)
319{
320 int err;
321
322 if (adev.idev)
323 return -EINVAL;
324
325 adev.idev = input_allocate_device();
326 if (!adev.idev)
327 return -ENOMEM;
328
329 lis3lv02d_calibrate_joystick();
330
331 adev.idev->name = "ST LIS3LV02DL Accelerometer";
332 adev.idev->phys = DRIVER_NAME "/input0";
333 adev.idev->id.bustype = BUS_HOST;
334 adev.idev->id.vendor = 0;
335 adev.idev->dev.parent = &adev.pdev->dev;
336 adev.idev->open = lis3lv02d_joystick_open;
337 adev.idev->close = lis3lv02d_joystick_close;
338
339 set_bit(EV_ABS, adev.idev->evbit);
340 input_set_abs_params(adev.idev, ABS_X, -MDPS_MAX_VAL, MDPS_MAX_VAL, 3, 3);
341 input_set_abs_params(adev.idev, ABS_Y, -MDPS_MAX_VAL, MDPS_MAX_VAL, 3, 3);
342 input_set_abs_params(adev.idev, ABS_Z, -MDPS_MAX_VAL, MDPS_MAX_VAL, 3, 3);
343
344 err = input_register_device(adev.idev);
345 if (err) {
346 input_free_device(adev.idev);
347 adev.idev = NULL;
348 }
349
350 return err;
351}
352
353static void lis3lv02d_joystick_disable(void)
354{
355 if (!adev.idev)
356 return;
357
358 input_unregister_device(adev.idev);
359 adev.idev = NULL;
360}
361
362
363/*
364 * Initialise the accelerometer and the various subsystems.
365 * Should be rather independant of the bus system.
366 */
367static int lis3lv02d_init_device(struct acpi_lis3lv02d *dev)
368{
369 mutex_init(&dev->lock);
370 lis3lv02d_add_fs(dev->device);
371 lis3lv02d_increase_use(dev);
372
373 if (lis3lv02d_joystick_enable())
374 printk(KERN_ERR DRIVER_NAME ": joystick initialization failed\n");
375
376 lis3lv02d_decrease_use(dev);
377 return 0;
378}
379
380static int lis3lv02d_dmi_matched(const struct dmi_system_id *dmi)
381{
382 adev.ac = *((struct axis_conversion *)dmi->driver_data);
383 printk(KERN_INFO DRIVER_NAME ": hardware type %s found.\n", dmi->ident);
384
385 return 1;
386}
387
388/* Represents, for each axis seen by userspace, the corresponding hw axis (+1).
389 * If the value is negative, the opposite of the hw value is used. */
390static struct axis_conversion lis3lv02d_axis_normal = {1, 2, 3};
391static struct axis_conversion lis3lv02d_axis_y_inverted = {1, -2, 3};
392static struct axis_conversion lis3lv02d_axis_x_inverted = {-1, 2, 3};
393static struct axis_conversion lis3lv02d_axis_z_inverted = {1, 2, -3};
394static struct axis_conversion lis3lv02d_axis_xy_rotated_left = {-2, 1, 3};
395static struct axis_conversion lis3lv02d_axis_xy_swap_inverted = {-2, -1, 3};
396
397#define AXIS_DMI_MATCH(_ident, _name, _axis) { \
398 .ident = _ident, \
399 .callback = lis3lv02d_dmi_matched, \
400 .matches = { \
401 DMI_MATCH(DMI_PRODUCT_NAME, _name) \
402 }, \
403 .driver_data = &lis3lv02d_axis_##_axis \
404}
405static struct dmi_system_id lis3lv02d_dmi_ids[] = {
406 /* product names are truncated to match all kinds of a same model */
407 AXIS_DMI_MATCH("NC64x0", "HP Compaq nc64", x_inverted),
408 AXIS_DMI_MATCH("NC84x0", "HP Compaq nc84", z_inverted),
409 AXIS_DMI_MATCH("NX9420", "HP Compaq nx9420", x_inverted),
410 AXIS_DMI_MATCH("NW9440", "HP Compaq nw9440", x_inverted),
411 AXIS_DMI_MATCH("NC2510", "HP Compaq 2510", y_inverted),
412 AXIS_DMI_MATCH("NC8510", "HP Compaq 8510", xy_swap_inverted),
413 AXIS_DMI_MATCH("HP2133", "HP 2133", xy_rotated_left),
414 { NULL, }
415/* Laptop models without axis info (yet):
416 * "NC651xx" "HP Compaq 651"
417 * "NC671xx" "HP Compaq 671"
418 * "NC6910" "HP Compaq 6910"
419 * HP Compaq 8710x Notebook PC / Mobile Workstation
420 * "NC2400" "HP Compaq nc2400"
421 * "NX74x0" "HP Compaq nx74"
422 * "NX6325" "HP Compaq nx6325"
423 * "NC4400" "HP Compaq nc4400"
424 */
425};
426
427static int lis3lv02d_add(struct acpi_device *device)
428{
429 u8 val;
430
431 if (!device)
432 return -EINVAL;
433
434 adev.device = device;
435 strcpy(acpi_device_name(device), DRIVER_NAME);
436 strcpy(acpi_device_class(device), ACPI_MDPS_CLASS);
437 device->driver_data = &adev;
438
439 lis3lv02d_acpi_read(device->handle, WHO_AM_I, &val);
440 if ((val != LIS3LV02DL_ID) && (val != LIS302DL_ID)) {
441 printk(KERN_ERR DRIVER_NAME
442 ": Accelerometer chip not LIS3LV02D{L,Q}\n");
443 }
444
445 /* If possible use a "standard" axes order */
446 if (dmi_check_system(lis3lv02d_dmi_ids) == 0) {
447 printk(KERN_INFO DRIVER_NAME ": laptop model unknown, "
448 "using default axes configuration\n");
449 adev.ac = lis3lv02d_axis_normal;
450 }
451
452 return lis3lv02d_init_device(&adev);
453}
454
455static int lis3lv02d_remove(struct acpi_device *device, int type)
456{
457 if (!device)
458 return -EINVAL;
459
460 lis3lv02d_joystick_disable();
461 lis3lv02d_poweroff(device->handle);
462
463 return lis3lv02d_remove_fs();
464}
465
466
467/* Sysfs stuff */
468static ssize_t lis3lv02d_position_show(struct device *dev,
469 struct device_attribute *attr, char *buf)
470{
471 int x, y, z;
472
473 lis3lv02d_increase_use(&adev);
474 lis3lv02d_get_xyz(adev.device->handle, &x, &y, &z);
475 lis3lv02d_decrease_use(&adev);
476 return sprintf(buf, "(%d,%d,%d)\n", x, y, z);
477}
478
479static ssize_t lis3lv02d_calibrate_show(struct device *dev,
480 struct device_attribute *attr, char *buf)
481{
482 return sprintf(buf, "(%d,%d,%d)\n", adev.xcalib, adev.ycalib, adev.zcalib);
483}
484
485static ssize_t lis3lv02d_calibrate_store(struct device *dev,
486 struct device_attribute *attr,
487 const char *buf, size_t count)
488{
489 lis3lv02d_increase_use(&adev);
490 lis3lv02d_calibrate_joystick();
491 lis3lv02d_decrease_use(&adev);
492 return count;
493}
494
495/* conversion btw sampling rate and the register values */
496static int lis3lv02dl_df_val[4] = {40, 160, 640, 2560};
497static ssize_t lis3lv02d_rate_show(struct device *dev,
498 struct device_attribute *attr, char *buf)
499{
500 u8 ctrl;
501 int val;
502
503 lis3lv02d_increase_use(&adev);
504 lis3lv02d_acpi_read(adev.device->handle, CTRL_REG1, &ctrl);
505 lis3lv02d_decrease_use(&adev);
506 val = (ctrl & (CTRL1_DF0 | CTRL1_DF1)) >> 4;
507 return sprintf(buf, "%d\n", lis3lv02dl_df_val[val]);
508}
509
510static DEVICE_ATTR(position, S_IRUGO, lis3lv02d_position_show, NULL);
511static DEVICE_ATTR(calibrate, S_IRUGO|S_IWUSR, lis3lv02d_calibrate_show,
512 lis3lv02d_calibrate_store);
513static DEVICE_ATTR(rate, S_IRUGO, lis3lv02d_rate_show, NULL);
514
515static struct attribute *lis3lv02d_attributes[] = {
516 &dev_attr_position.attr,
517 &dev_attr_calibrate.attr,
518 &dev_attr_rate.attr,
519 NULL
520};
521
522static struct attribute_group lis3lv02d_attribute_group = {
523 .attrs = lis3lv02d_attributes
524};
525
526static int lis3lv02d_add_fs(struct acpi_device *device)
527{
528 adev.pdev = platform_device_register_simple(DRIVER_NAME, -1, NULL, 0);
529 if (IS_ERR(adev.pdev))
530 return PTR_ERR(adev.pdev);
531
532 return sysfs_create_group(&adev.pdev->dev.kobj, &lis3lv02d_attribute_group);
533}
534
535static int lis3lv02d_remove_fs(void)
536{
537 sysfs_remove_group(&adev.pdev->dev.kobj, &lis3lv02d_attribute_group);
538 platform_device_unregister(adev.pdev);
539 return 0;
540}
541
542/* For the HP MDPS aka 3D Driveguard */
543static struct acpi_driver lis3lv02d_driver = {
544 .name = DRIVER_NAME,
545 .class = ACPI_MDPS_CLASS,
546 .ids = lis3lv02d_device_ids,
547 .ops = {
548 .add = lis3lv02d_add,
549 .remove = lis3lv02d_remove,
550 .suspend = lis3lv02d_suspend,
551 .resume = lis3lv02d_resume,
552 }
553};
554
555static int __init lis3lv02d_init_module(void)
556{
557 int ret;
558
559 if (acpi_disabled)
560 return -ENODEV;
561
562 ret = acpi_bus_register_driver(&lis3lv02d_driver);
563 if (ret < 0)
564 return ret;
565
566 printk(KERN_INFO DRIVER_NAME " driver loaded.\n");
567
568 return 0;
569}
570
571static void __exit lis3lv02d_exit_module(void)
572{
573 acpi_bus_unregister_driver(&lis3lv02d_driver);
574}
575
576MODULE_DESCRIPTION("ST LIS3LV02Dx three-axis digital accelerometer driver");
577MODULE_AUTHOR("Yan Burman and Eric Piel");
578MODULE_LICENSE("GPL");
579
580module_init(lis3lv02d_init_module);
581module_exit(lis3lv02d_exit_module);
diff --git a/drivers/hwmon/lis3lv02d.h b/drivers/hwmon/lis3lv02d.h
new file mode 100644
index 000000000000..330cfc60e948
--- /dev/null
+++ b/drivers/hwmon/lis3lv02d.h
@@ -0,0 +1,149 @@
1/*
2 * lis3lv02d.h - ST LIS3LV02DL accelerometer driver
3 *
4 * Copyright (C) 2007-2008 Yan Burman
5 * Copyright (C) 2008 Eric Piel
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22/*
23 * The actual chip is STMicroelectronics LIS3LV02DL or LIS3LV02DQ that seems to
24 * be connected via SPI. There exists also several similar chips (such as LIS302DL or
25 * LIS3L02DQ) but not in the HP laptops and they have slightly different registers.
26 * They can also be connected via I²C.
27 */
28
29#define LIS3LV02DL_ID 0x3A /* Also the LIS3LV02DQ */
30#define LIS302DL_ID 0x3B /* Also the LIS202DL! */
31
32enum lis3lv02d_reg {
33 WHO_AM_I = 0x0F,
34 OFFSET_X = 0x16,
35 OFFSET_Y = 0x17,
36 OFFSET_Z = 0x18,
37 GAIN_X = 0x19,
38 GAIN_Y = 0x1A,
39 GAIN_Z = 0x1B,
40 CTRL_REG1 = 0x20,
41 CTRL_REG2 = 0x21,
42 CTRL_REG3 = 0x22,
43 HP_FILTER_RESET = 0x23,
44 STATUS_REG = 0x27,
45 OUTX_L = 0x28,
46 OUTX_H = 0x29,
47 OUTY_L = 0x2A,
48 OUTY_H = 0x2B,
49 OUTZ_L = 0x2C,
50 OUTZ_H = 0x2D,
51 FF_WU_CFG = 0x30,
52 FF_WU_SRC = 0x31,
53 FF_WU_ACK = 0x32,
54 FF_WU_THS_L = 0x34,
55 FF_WU_THS_H = 0x35,
56 FF_WU_DURATION = 0x36,
57 DD_CFG = 0x38,
58 DD_SRC = 0x39,
59 DD_ACK = 0x3A,
60 DD_THSI_L = 0x3C,
61 DD_THSI_H = 0x3D,
62 DD_THSE_L = 0x3E,
63 DD_THSE_H = 0x3F,
64};
65
66enum lis3lv02d_ctrl1 {
67 CTRL1_Xen = 0x01,
68 CTRL1_Yen = 0x02,
69 CTRL1_Zen = 0x04,
70 CTRL1_ST = 0x08,
71 CTRL1_DF0 = 0x10,
72 CTRL1_DF1 = 0x20,
73 CTRL1_PD0 = 0x40,
74 CTRL1_PD1 = 0x80,
75};
76enum lis3lv02d_ctrl2 {
77 CTRL2_DAS = 0x01,
78 CTRL2_SIM = 0x02,
79 CTRL2_DRDY = 0x04,
80 CTRL2_IEN = 0x08,
81 CTRL2_BOOT = 0x10,
82 CTRL2_BLE = 0x20,
83 CTRL2_BDU = 0x40, /* Block Data Update */
84 CTRL2_FS = 0x80, /* Full Scale selection */
85};
86
87
88enum lis3lv02d_ctrl3 {
89 CTRL3_CFS0 = 0x01,
90 CTRL3_CFS1 = 0x02,
91 CTRL3_FDS = 0x10,
92 CTRL3_HPFF = 0x20,
93 CTRL3_HPDD = 0x40,
94 CTRL3_ECK = 0x80,
95};
96
97enum lis3lv02d_status_reg {
98 STATUS_XDA = 0x01,
99 STATUS_YDA = 0x02,
100 STATUS_ZDA = 0x04,
101 STATUS_XYZDA = 0x08,
102 STATUS_XOR = 0x10,
103 STATUS_YOR = 0x20,
104 STATUS_ZOR = 0x40,
105 STATUS_XYZOR = 0x80,
106};
107
108enum lis3lv02d_ff_wu_cfg {
109 FF_WU_CFG_XLIE = 0x01,
110 FF_WU_CFG_XHIE = 0x02,
111 FF_WU_CFG_YLIE = 0x04,
112 FF_WU_CFG_YHIE = 0x08,
113 FF_WU_CFG_ZLIE = 0x10,
114 FF_WU_CFG_ZHIE = 0x20,
115 FF_WU_CFG_LIR = 0x40,
116 FF_WU_CFG_AOI = 0x80,
117};
118
119enum lis3lv02d_ff_wu_src {
120 FF_WU_SRC_XL = 0x01,
121 FF_WU_SRC_XH = 0x02,
122 FF_WU_SRC_YL = 0x04,
123 FF_WU_SRC_YH = 0x08,
124 FF_WU_SRC_ZL = 0x10,
125 FF_WU_SRC_ZH = 0x20,
126 FF_WU_SRC_IA = 0x40,
127};
128
129enum lis3lv02d_dd_cfg {
130 DD_CFG_XLIE = 0x01,
131 DD_CFG_XHIE = 0x02,
132 DD_CFG_YLIE = 0x04,
133 DD_CFG_YHIE = 0x08,
134 DD_CFG_ZLIE = 0x10,
135 DD_CFG_ZHIE = 0x20,
136 DD_CFG_LIR = 0x40,
137 DD_CFG_IEND = 0x80,
138};
139
140enum lis3lv02d_dd_src {
141 DD_SRC_XL = 0x01,
142 DD_SRC_XH = 0x02,
143 DD_SRC_YL = 0x04,
144 DD_SRC_YH = 0x08,
145 DD_SRC_ZL = 0x10,
146 DD_SRC_ZH = 0x20,
147 DD_SRC_IA = 0x40,
148};
149
diff --git a/drivers/hwmon/lm85.c b/drivers/hwmon/lm85.c
index 3ff0285396fa..cfc1ee90f5a3 100644
--- a/drivers/hwmon/lm85.c
+++ b/drivers/hwmon/lm85.c
@@ -39,7 +39,8 @@
39static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END }; 39static const unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END };
40 40
41/* Insmod parameters */ 41/* Insmod parameters */
42I2C_CLIENT_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102); 42I2C_CLIENT_INSMOD_7(lm85b, lm85c, adm1027, adt7463, adt7468, emc6d100,
43 emc6d102);
43 44
44/* The LM85 registers */ 45/* The LM85 registers */
45 46
@@ -59,6 +60,12 @@ I2C_CLIENT_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102);
59 60
60#define LM85_REG_COMPANY 0x3e 61#define LM85_REG_COMPANY 0x3e
61#define LM85_REG_VERSTEP 0x3f 62#define LM85_REG_VERSTEP 0x3f
63
64#define ADT7468_REG_CFG5 0x7c
65#define ADT7468_OFF64 0x01
66#define IS_ADT7468_OFF64(data) \
67 ((data)->type == adt7468 && !((data)->cfg5 & ADT7468_OFF64))
68
62/* These are the recognized values for the above regs */ 69/* These are the recognized values for the above regs */
63#define LM85_COMPANY_NATIONAL 0x01 70#define LM85_COMPANY_NATIONAL 0x01
64#define LM85_COMPANY_ANALOG_DEV 0x41 71#define LM85_COMPANY_ANALOG_DEV 0x41
@@ -70,6 +77,8 @@ I2C_CLIENT_INSMOD_6(lm85b, lm85c, adm1027, adt7463, emc6d100, emc6d102);
70#define LM85_VERSTEP_ADM1027 0x60 77#define LM85_VERSTEP_ADM1027 0x60
71#define LM85_VERSTEP_ADT7463 0x62 78#define LM85_VERSTEP_ADT7463 0x62
72#define LM85_VERSTEP_ADT7463C 0x6A 79#define LM85_VERSTEP_ADT7463C 0x6A
80#define LM85_VERSTEP_ADT7468_1 0x71
81#define LM85_VERSTEP_ADT7468_2 0x72
73#define LM85_VERSTEP_EMC6D100_A0 0x60 82#define LM85_VERSTEP_EMC6D100_A0 0x60
74#define LM85_VERSTEP_EMC6D100_A1 0x61 83#define LM85_VERSTEP_EMC6D100_A1 0x61
75#define LM85_VERSTEP_EMC6D102 0x65 84#define LM85_VERSTEP_EMC6D102 0x65
@@ -306,6 +315,7 @@ struct lm85_data {
306 u8 vid; /* Register value */ 315 u8 vid; /* Register value */
307 u8 vrm; /* VRM version */ 316 u8 vrm; /* VRM version */
308 u32 alarms; /* Register encoding, combined */ 317 u32 alarms; /* Register encoding, combined */
318 u8 cfg5; /* Config Register 5 on ADT7468 */
309 struct lm85_autofan autofan[3]; 319 struct lm85_autofan autofan[3];
310 struct lm85_zone zone[3]; 320 struct lm85_zone zone[3];
311}; 321};
@@ -685,6 +695,9 @@ static ssize_t set_temp_min(struct device *dev, struct device_attribute *attr,
685 struct lm85_data *data = i2c_get_clientdata(client); 695 struct lm85_data *data = i2c_get_clientdata(client);
686 long val = simple_strtol(buf, NULL, 10); 696 long val = simple_strtol(buf, NULL, 10);
687 697
698 if (IS_ADT7468_OFF64(data))
699 val += 64;
700
688 mutex_lock(&data->update_lock); 701 mutex_lock(&data->update_lock);
689 data->temp_min[nr] = TEMP_TO_REG(val); 702 data->temp_min[nr] = TEMP_TO_REG(val);
690 lm85_write_value(client, LM85_REG_TEMP_MIN(nr), data->temp_min[nr]); 703 lm85_write_value(client, LM85_REG_TEMP_MIN(nr), data->temp_min[nr]);
@@ -708,6 +721,9 @@ static ssize_t set_temp_max(struct device *dev, struct device_attribute *attr,
708 struct lm85_data *data = i2c_get_clientdata(client); 721 struct lm85_data *data = i2c_get_clientdata(client);
709 long val = simple_strtol(buf, NULL, 10); 722 long val = simple_strtol(buf, NULL, 10);
710 723
724 if (IS_ADT7468_OFF64(data))
725 val += 64;
726
711 mutex_lock(&data->update_lock); 727 mutex_lock(&data->update_lock);
712 data->temp_max[nr] = TEMP_TO_REG(val); 728 data->temp_max[nr] = TEMP_TO_REG(val);
713 lm85_write_value(client, LM85_REG_TEMP_MAX(nr), data->temp_max[nr]); 729 lm85_write_value(client, LM85_REG_TEMP_MAX(nr), data->temp_max[nr]);
@@ -1163,6 +1179,10 @@ static int lm85_detect(struct i2c_client *client, int kind,
1163 case LM85_VERSTEP_ADT7463C: 1179 case LM85_VERSTEP_ADT7463C:
1164 kind = adt7463; 1180 kind = adt7463;
1165 break; 1181 break;
1182 case LM85_VERSTEP_ADT7468_1:
1183 case LM85_VERSTEP_ADT7468_2:
1184 kind = adt7468;
1185 break;
1166 } 1186 }
1167 } else if (company == LM85_COMPANY_SMSC) { 1187 } else if (company == LM85_COMPANY_SMSC) {
1168 switch (verstep) { 1188 switch (verstep) {
@@ -1195,6 +1215,9 @@ static int lm85_detect(struct i2c_client *client, int kind,
1195 case adt7463: 1215 case adt7463:
1196 type_name = "adt7463"; 1216 type_name = "adt7463";
1197 break; 1217 break;
1218 case adt7468:
1219 type_name = "adt7468";
1220 break;
1198 case emc6d100: 1221 case emc6d100:
1199 type_name = "emc6d100"; 1222 type_name = "emc6d100";
1200 break; 1223 break;
@@ -1246,10 +1269,11 @@ static int lm85_probe(struct i2c_client *client,
1246 if (err) 1269 if (err)
1247 goto err_kfree; 1270 goto err_kfree;
1248 1271
1249 /* The ADT7463 has an optional VRM 10 mode where pin 21 is used 1272 /* The ADT7463/68 have an optional VRM 10 mode where pin 21 is used
1250 as a sixth digital VID input rather than an analog input. */ 1273 as a sixth digital VID input rather than an analog input. */
1251 data->vid = lm85_read_value(client, LM85_REG_VID); 1274 data->vid = lm85_read_value(client, LM85_REG_VID);
1252 if (!(data->type == adt7463 && (data->vid & 0x80))) 1275 if (!((data->type == adt7463 || data->type == adt7468) &&
1276 (data->vid & 0x80)))
1253 if ((err = sysfs_create_group(&client->dev.kobj, 1277 if ((err = sysfs_create_group(&client->dev.kobj,
1254 &lm85_group_in4))) 1278 &lm85_group_in4)))
1255 goto err_remove_files; 1279 goto err_remove_files;
@@ -1357,7 +1381,8 @@ static struct lm85_data *lm85_update_device(struct device *dev)
1357 * There are 2 additional resolution bits per channel and we 1381 * There are 2 additional resolution bits per channel and we
1358 * have room for 4, so we shift them to the left. 1382 * have room for 4, so we shift them to the left.
1359 */ 1383 */
1360 if (data->type == adm1027 || data->type == adt7463) { 1384 if (data->type == adm1027 || data->type == adt7463 ||
1385 data->type == adt7468) {
1361 int ext1 = lm85_read_value(client, 1386 int ext1 = lm85_read_value(client,
1362 ADM1027_REG_EXTEND_ADC1); 1387 ADM1027_REG_EXTEND_ADC1);
1363 int ext2 = lm85_read_value(client, 1388 int ext2 = lm85_read_value(client,
@@ -1382,16 +1407,23 @@ static struct lm85_data *lm85_update_device(struct device *dev)
1382 lm85_read_value(client, LM85_REG_FAN(i)); 1407 lm85_read_value(client, LM85_REG_FAN(i));
1383 } 1408 }
1384 1409
1385 if (!(data->type == adt7463 && (data->vid & 0x80))) { 1410 if (!((data->type == adt7463 || data->type == adt7468) &&
1411 (data->vid & 0x80))) {
1386 data->in[4] = lm85_read_value(client, 1412 data->in[4] = lm85_read_value(client,
1387 LM85_REG_IN(4)); 1413 LM85_REG_IN(4));
1388 } 1414 }
1389 1415
1416 if (data->type == adt7468)
1417 data->cfg5 = lm85_read_value(client, ADT7468_REG_CFG5);
1418
1390 for (i = 0; i <= 2; ++i) { 1419 for (i = 0; i <= 2; ++i) {
1391 data->temp[i] = 1420 data->temp[i] =
1392 lm85_read_value(client, LM85_REG_TEMP(i)); 1421 lm85_read_value(client, LM85_REG_TEMP(i));
1393 data->pwm[i] = 1422 data->pwm[i] =
1394 lm85_read_value(client, LM85_REG_PWM(i)); 1423 lm85_read_value(client, LM85_REG_PWM(i));
1424
1425 if (IS_ADT7468_OFF64(data))
1426 data->temp[i] -= 64;
1395 } 1427 }
1396 1428
1397 data->alarms = lm85_read_value(client, LM85_REG_ALARM1); 1429 data->alarms = lm85_read_value(client, LM85_REG_ALARM1);
@@ -1446,7 +1478,8 @@ static struct lm85_data *lm85_update_device(struct device *dev)
1446 lm85_read_value(client, LM85_REG_FAN_MIN(i)); 1478 lm85_read_value(client, LM85_REG_FAN_MIN(i));
1447 } 1479 }
1448 1480
1449 if (!(data->type == adt7463 && (data->vid & 0x80))) { 1481 if (!((data->type == adt7463 || data->type == adt7468) &&
1482 (data->vid & 0x80))) {
1450 data->in_min[4] = lm85_read_value(client, 1483 data->in_min[4] = lm85_read_value(client,
1451 LM85_REG_IN_MIN(4)); 1484 LM85_REG_IN_MIN(4));
1452 data->in_max[4] = lm85_read_value(client, 1485 data->in_max[4] = lm85_read_value(client,
@@ -1481,6 +1514,13 @@ static struct lm85_data *lm85_update_device(struct device *dev)
1481 lm85_read_value(client, LM85_REG_AFAN_LIMIT(i)); 1514 lm85_read_value(client, LM85_REG_AFAN_LIMIT(i));
1482 data->zone[i].critical = 1515 data->zone[i].critical =
1483 lm85_read_value(client, LM85_REG_AFAN_CRITICAL(i)); 1516 lm85_read_value(client, LM85_REG_AFAN_CRITICAL(i));
1517
1518 if (IS_ADT7468_OFF64(data)) {
1519 data->temp_min[i] -= 64;
1520 data->temp_max[i] -= 64;
1521 data->zone[i].limit -= 64;
1522 data->zone[i].critical -= 64;
1523 }
1484 } 1524 }
1485 1525
1486 i = lm85_read_value(client, LM85_REG_AFAN_SPIKE1); 1526 i = lm85_read_value(client, LM85_REG_AFAN_SPIKE1);
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/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c
index 640cbb237328..3384a717fec0 100644
--- a/drivers/i2c/busses/i2c-sh_mobile.c
+++ b/drivers/i2c/busses/i2c-sh_mobile.c
@@ -318,7 +318,8 @@ static int sh_mobile_i2c_isr_rx(struct sh_mobile_i2c_data *pd)
318 } else 318 } else
319 data = i2c_op(pd, OP_RX, 0); 319 data = i2c_op(pd, OP_RX, 0);
320 320
321 pd->msg->buf[real_pos] = data; 321 if (real_pos >= 0)
322 pd->msg->buf[real_pos] = data;
322 } while (0); 323 } while (0);
323 324
324 pd->pos++; 325 pd->pos++;
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/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-cs.c b/drivers/ide/ide-cs.c
index cb199c815b53..f50210fe558f 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -444,6 +444,7 @@ static struct pcmcia_device_id ide_ids[] = {
444 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209), 444 PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209),
445 PCMCIA_DEVICE_PROD_ID12("STI", "Flash 5.0", 0xbf2df18d, 0x8cb57a0e), 445 PCMCIA_DEVICE_PROD_ID12("STI", "Flash 5.0", 0xbf2df18d, 0x8cb57a0e),
446 PCMCIA_MFC_DEVICE_PROD_ID12(1, "SanDisk", "ConnectPlus", 0x7a954bd9, 0x74be00c6), 446 PCMCIA_MFC_DEVICE_PROD_ID12(1, "SanDisk", "ConnectPlus", 0x7a954bd9, 0x74be00c6),
447 PCMCIA_DEVICE_PROD_ID2("Flash Card", 0x5a362506),
447 PCMCIA_DEVICE_NULL, 448 PCMCIA_DEVICE_NULL,
448}; 449};
449MODULE_DEVICE_TABLE(pcmcia, ide_ids); 450MODULE_DEVICE_TABLE(pcmcia, ide_ids);
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/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/idle/Kconfig b/drivers/idle/Kconfig
index 108264de0ac9..f15e90a453d1 100644
--- a/drivers/idle/Kconfig
+++ b/drivers/idle/Kconfig
@@ -1,5 +1,6 @@
1 1
2menu "Memory power savings" 2menu "Memory power savings"
3depends on X86_64
3 4
4config I7300_IDLE_IOAT_CHANNEL 5config I7300_IDLE_IOAT_CHANNEL
5 bool 6 bool
@@ -7,7 +8,7 @@ config I7300_IDLE_IOAT_CHANNEL
7config I7300_IDLE 8config I7300_IDLE
8 tristate "Intel chipset idle memory power saving driver" 9 tristate "Intel chipset idle memory power saving driver"
9 select I7300_IDLE_IOAT_CHANNEL 10 select I7300_IDLE_IOAT_CHANNEL
10 depends on X86_64 && EXPERIMENTAL 11 depends on EXPERIMENTAL
11 help 12 help
12 Enable memory power savings when idle with certain Intel server 13 Enable memory power savings when idle with certain Intel server
13 chipsets. The chipset must have I/O AT support, such as the 14 chipsets. The chipset must have I/O AT support, such as the
diff --git a/drivers/ieee1394/dv1394.c b/drivers/ieee1394/dv1394.c
index 965cfdb84ebc..c19f23267157 100644
--- a/drivers/ieee1394/dv1394.c
+++ b/drivers/ieee1394/dv1394.c
@@ -1270,8 +1270,14 @@ static int dv1394_mmap(struct file *file, struct vm_area_struct *vma)
1270 struct video_card *video = file_to_video_card(file); 1270 struct video_card *video = file_to_video_card(file);
1271 int retval = -EINVAL; 1271 int retval = -EINVAL;
1272 1272
1273 /* serialize mmap */ 1273 /*
1274 mutex_lock(&video->mtx); 1274 * We cannot use the blocking variant mutex_lock here because .mmap
1275 * is called with mmap_sem held, while .ioctl, .read, .write acquire
1276 * video->mtx and subsequently call copy_to/from_user which will
1277 * grab mmap_sem in case of a page fault.
1278 */
1279 if (!mutex_trylock(&video->mtx))
1280 return -EAGAIN;
1275 1281
1276 if ( ! video_card_initialized(video) ) { 1282 if ( ! video_card_initialized(video) ) {
1277 retval = do_dv1394_init_default(video); 1283 retval = do_dv1394_init_default(video);
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.c b/drivers/ieee1394/hosts.c
index 8dd09d850419..237d0c9d69c6 100644
--- a/drivers/ieee1394/hosts.c
+++ b/drivers/ieee1394/hosts.c
@@ -155,11 +155,11 @@ struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra,
155 memcpy(&h->device, &nodemgr_dev_template_host, sizeof(h->device)); 155 memcpy(&h->device, &nodemgr_dev_template_host, sizeof(h->device));
156 h->device.parent = dev; 156 h->device.parent = dev;
157 set_dev_node(&h->device, dev_to_node(dev)); 157 set_dev_node(&h->device, dev_to_node(dev));
158 snprintf(h->device.bus_id, BUS_ID_SIZE, "fw-host%d", h->id); 158 dev_set_name(&h->device, "fw-host%d", h->id);
159 159
160 h->host_dev.parent = &h->device; 160 h->host_dev.parent = &h->device;
161 h->host_dev.class = &hpsb_host_class; 161 h->host_dev.class = &hpsb_host_class;
162 snprintf(h->host_dev.bus_id, BUS_ID_SIZE, "fw-host%d", h->id); 162 dev_set_name(&h->host_dev, "fw-host%d", h->id);
163 163
164 if (device_register(&h->device)) 164 if (device_register(&h->device))
165 goto fail; 165 goto fail;
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 2376b729e876..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
@@ -826,13 +832,11 @@ static struct node_entry *nodemgr_create_node(octlet_t guid,
826 memcpy(&ne->device, &nodemgr_dev_template_ne, 832 memcpy(&ne->device, &nodemgr_dev_template_ne,
827 sizeof(ne->device)); 833 sizeof(ne->device));
828 ne->device.parent = &host->device; 834 ne->device.parent = &host->device;
829 snprintf(ne->device.bus_id, BUS_ID_SIZE, "%016Lx", 835 dev_set_name(&ne->device, "%016Lx", (unsigned long long)(ne->guid));
830 (unsigned long long)(ne->guid));
831 836
832 ne->node_dev.parent = &ne->device; 837 ne->node_dev.parent = &ne->device;
833 ne->node_dev.class = &nodemgr_ne_class; 838 ne->node_dev.class = &nodemgr_ne_class;
834 snprintf(ne->node_dev.bus_id, BUS_ID_SIZE, "%016Lx", 839 dev_set_name(&ne->node_dev, "%016Lx", (unsigned long long)(ne->guid));
835 (unsigned long long)(ne->guid));
836 840
837 if (device_register(&ne->device)) 841 if (device_register(&ne->device))
838 goto fail_devreg; 842 goto fail_devreg;
@@ -932,13 +936,11 @@ static void nodemgr_register_device(struct node_entry *ne,
932 936
933 ud->device.parent = parent; 937 ud->device.parent = parent;
934 938
935 snprintf(ud->device.bus_id, BUS_ID_SIZE, "%s-%u", 939 dev_set_name(&ud->device, "%s-%u", dev_name(&ne->device), ud->id);
936 ne->device.bus_id, ud->id);
937 940
938 ud->unit_dev.parent = &ud->device; 941 ud->unit_dev.parent = &ud->device;
939 ud->unit_dev.class = &nodemgr_ud_class; 942 ud->unit_dev.class = &nodemgr_ud_class;
940 snprintf(ud->unit_dev.bus_id, BUS_ID_SIZE, "%s-%u", 943 dev_set_name(&ud->unit_dev, "%s-%u", dev_name(&ne->device), ud->id);
941 ne->device.bus_id, ud->id);
942 944
943 if (device_register(&ud->device)) 945 if (device_register(&ud->device))
944 goto fail_devreg; 946 goto fail_devreg;
@@ -953,7 +955,7 @@ static void nodemgr_register_device(struct node_entry *ne,
953fail_classdevreg: 955fail_classdevreg:
954 device_unregister(&ud->device); 956 device_unregister(&ud->device);
955fail_devreg: 957fail_devreg:
956 HPSB_ERR("Failed to create unit %s", ud->device.bus_id); 958 HPSB_ERR("Failed to create unit %s", dev_name(&ud->device));
957} 959}
958 960
959 961
@@ -1689,6 +1691,7 @@ static int nodemgr_host_thread(void *data)
1689 g = get_hpsb_generation(host); 1691 g = get_hpsb_generation(host);
1690 for (i = 0; i < 4 ; i++) { 1692 for (i = 0; i < 4 ; i++) {
1691 msleep_interruptible(63); 1693 msleep_interruptible(63);
1694 try_to_freeze();
1692 if (kthread_should_stop()) 1695 if (kthread_should_stop())
1693 goto exit; 1696 goto exit;
1694 1697
@@ -1729,6 +1732,7 @@ static int nodemgr_host_thread(void *data)
1729 /* Sleep 3 seconds */ 1732 /* Sleep 3 seconds */
1730 for (i = 3000/200; i; i--) { 1733 for (i = 3000/200; i; i--) {
1731 msleep_interruptible(200); 1734 msleep_interruptible(200);
1735 try_to_freeze();
1732 if (kthread_should_stop()) 1736 if (kthread_should_stop())
1733 goto exit; 1737 goto exit;
1734 1738
diff --git a/drivers/ieee1394/raw1394.c b/drivers/ieee1394/raw1394.c
index 9f19ac492106..bf7e761c12b1 100644
--- a/drivers/ieee1394/raw1394.c
+++ b/drivers/ieee1394/raw1394.c
@@ -2268,7 +2268,8 @@ static ssize_t raw1394_write(struct file *file, const char __user * buffer,
2268 return -EFAULT; 2268 return -EFAULT;
2269 } 2269 }
2270 2270
2271 mutex_lock(&fi->state_mutex); 2271 if (!mutex_trylock(&fi->state_mutex))
2272 return -EAGAIN;
2272 2273
2273 switch (fi->state) { 2274 switch (fi->state) {
2274 case opened: 2275 case opened:
@@ -2548,7 +2549,8 @@ static int raw1394_mmap(struct file *file, struct vm_area_struct *vma)
2548 struct file_info *fi = file->private_data; 2549 struct file_info *fi = file->private_data;
2549 int ret; 2550 int ret;
2550 2551
2551 mutex_lock(&fi->state_mutex); 2552 if (!mutex_trylock(&fi->state_mutex))
2553 return -EAGAIN;
2552 2554
2553 if (fi->iso_state == RAW1394_ISO_INACTIVE) 2555 if (fi->iso_state == RAW1394_ISO_INACTIVE)
2554 ret = -EINVAL; 2556 ret = -EINVAL;
@@ -2669,7 +2671,8 @@ static long raw1394_ioctl(struct file *file, unsigned int cmd,
2669 break; 2671 break;
2670 } 2672 }
2671 2673
2672 mutex_lock(&fi->state_mutex); 2674 if (!mutex_trylock(&fi->state_mutex))
2675 return -EAGAIN;
2673 2676
2674 switch (fi->iso_state) { 2677 switch (fi->iso_state) {
2675 case RAW1394_ISO_INACTIVE: 2678 case RAW1394_ISO_INACTIVE:
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/cxgb3/iwch_provider.c b/drivers/infiniband/hw/cxgb3/iwch_provider.c
index ecff98043589..160ef482712d 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_provider.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_provider.c
@@ -1102,9 +1102,7 @@ static u64 fw_vers_string_to_u64(struct iwch_dev *iwch_dev)
1102 char *cp, *next; 1102 char *cp, *next;
1103 unsigned fw_maj, fw_min, fw_mic; 1103 unsigned fw_maj, fw_min, fw_mic;
1104 1104
1105 rtnl_lock();
1106 lldev->ethtool_ops->get_drvinfo(lldev, &info); 1105 lldev->ethtool_ops->get_drvinfo(lldev, &info);
1107 rtnl_unlock();
1108 1106
1109 next = info.fw_version + 1; 1107 next = info.fw_version + 1;
1110 cp = strsep(&next, "."); 1108 cp = strsep(&next, ".");
@@ -1192,9 +1190,7 @@ static ssize_t show_fw_ver(struct device *dev, struct device_attribute *attr, ch
1192 struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev; 1190 struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
1193 1191
1194 PDBG("%s dev 0x%p\n", __func__, dev); 1192 PDBG("%s dev 0x%p\n", __func__, dev);
1195 rtnl_lock();
1196 lldev->ethtool_ops->get_drvinfo(lldev, &info); 1193 lldev->ethtool_ops->get_drvinfo(lldev, &info);
1197 rtnl_unlock();
1198 return sprintf(buf, "%s\n", info.fw_version); 1194 return sprintf(buf, "%s\n", info.fw_version);
1199} 1195}
1200 1196
@@ -1207,9 +1203,7 @@ static ssize_t show_hca(struct device *dev, struct device_attribute *attr,
1207 struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev; 1203 struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
1208 1204
1209 PDBG("%s dev 0x%p\n", __func__, dev); 1205 PDBG("%s dev 0x%p\n", __func__, dev);
1210 rtnl_lock();
1211 lldev->ethtool_ops->get_drvinfo(lldev, &info); 1206 lldev->ethtool_ops->get_drvinfo(lldev, &info);
1212 rtnl_unlock();
1213 return sprintf(buf, "%s\n", info.driver); 1207 return sprintf(buf, "%s\n", info.driver);
1214} 1208}
1215 1209
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index 3e4585c2318a..19661b2f0406 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -745,7 +745,6 @@ int iwch_post_zb_read(struct iwch_qp *qhp)
745 wqe->read.rdmaop = T3_READ_REQ; 745 wqe->read.rdmaop = T3_READ_REQ;
746 wqe->read.reserved[0] = 0; 746 wqe->read.reserved[0] = 0;
747 wqe->read.reserved[1] = 0; 747 wqe->read.reserved[1] = 0;
748 wqe->read.reserved[2] = 0;
749 wqe->read.rem_stag = cpu_to_be32(1); 748 wqe->read.rem_stag = cpu_to_be32(1);
750 wqe->read.rem_to = cpu_to_be64(1); 749 wqe->read.rem_to = cpu_to_be64(1);
751 wqe->read.local_stag = cpu_to_be32(1); 750 wqe->read.local_stag = cpu_to_be32(1);
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_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c
index cb55be04442c..757035ea246f 100644
--- a/drivers/infiniband/hw/ehca/ehca_irq.c
+++ b/drivers/infiniband/hw/ehca/ehca_irq.c
@@ -359,36 +359,48 @@ static void notify_port_conf_change(struct ehca_shca *shca, int port_num)
359 *old_attr = new_attr; 359 *old_attr = new_attr;
360} 360}
361 361
362/* replay modify_qp for sqps -- return 0 if all is well, 1 if AQP1 destroyed */
363static int replay_modify_qp(struct ehca_sport *sport)
364{
365 int aqp1_destroyed;
366 unsigned long flags;
367
368 spin_lock_irqsave(&sport->mod_sqp_lock, flags);
369
370 aqp1_destroyed = !sport->ibqp_sqp[IB_QPT_GSI];
371
372 if (sport->ibqp_sqp[IB_QPT_SMI])
373 ehca_recover_sqp(sport->ibqp_sqp[IB_QPT_SMI]);
374 if (!aqp1_destroyed)
375 ehca_recover_sqp(sport->ibqp_sqp[IB_QPT_GSI]);
376
377 spin_unlock_irqrestore(&sport->mod_sqp_lock, flags);
378
379 return aqp1_destroyed;
380}
381
362static void parse_ec(struct ehca_shca *shca, u64 eqe) 382static void parse_ec(struct ehca_shca *shca, u64 eqe)
363{ 383{
364 u8 ec = EHCA_BMASK_GET(NEQE_EVENT_CODE, eqe); 384 u8 ec = EHCA_BMASK_GET(NEQE_EVENT_CODE, eqe);
365 u8 port = EHCA_BMASK_GET(NEQE_PORT_NUMBER, eqe); 385 u8 port = EHCA_BMASK_GET(NEQE_PORT_NUMBER, eqe);
366 u8 spec_event; 386 u8 spec_event;
367 struct ehca_sport *sport = &shca->sport[port - 1]; 387 struct ehca_sport *sport = &shca->sport[port - 1];
368 unsigned long flags;
369 388
370 switch (ec) { 389 switch (ec) {
371 case 0x30: /* port availability change */ 390 case 0x30: /* port availability change */
372 if (EHCA_BMASK_GET(NEQE_PORT_AVAILABILITY, eqe)) { 391 if (EHCA_BMASK_GET(NEQE_PORT_AVAILABILITY, eqe)) {
373 int suppress_event; 392 /* only replay modify_qp calls in autodetect mode;
374 /* replay modify_qp for sqps */ 393 * if AQP1 was destroyed, the port is already down
375 spin_lock_irqsave(&sport->mod_sqp_lock, flags); 394 * again and we can drop the event.
376 suppress_event = !sport->ibqp_sqp[IB_QPT_GSI]; 395 */
377 if (sport->ibqp_sqp[IB_QPT_SMI]) 396 if (ehca_nr_ports < 0)
378 ehca_recover_sqp(sport->ibqp_sqp[IB_QPT_SMI]); 397 if (replay_modify_qp(sport))
379 if (!suppress_event) 398 break;
380 ehca_recover_sqp(sport->ibqp_sqp[IB_QPT_GSI]);
381 spin_unlock_irqrestore(&sport->mod_sqp_lock, flags);
382
383 /* AQP1 was destroyed, ignore this event */
384 if (suppress_event)
385 break;
386 399
387 sport->port_state = IB_PORT_ACTIVE; 400 sport->port_state = IB_PORT_ACTIVE;
388 dispatch_port_event(shca, port, IB_EVENT_PORT_ACTIVE, 401 dispatch_port_event(shca, port, IB_EVENT_PORT_ACTIVE,
389 "is active"); 402 "is active");
390 ehca_query_sma_attr(shca, port, 403 ehca_query_sma_attr(shca, port, &sport->saved_attr);
391 &sport->saved_attr);
392 } else { 404 } else {
393 sport->port_state = IB_PORT_DOWN; 405 sport->port_state = IB_PORT_DOWN;
394 dispatch_port_event(shca, port, IB_EVENT_PORT_ERR, 406 dispatch_port_event(shca, port, IB_EVENT_PORT_ERR,
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 4d54b9f64567..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/*
@@ -860,6 +864,11 @@ static struct ehca_qp *internal_create_qp(
860 if (qp_type == IB_QPT_GSI) { 864 if (qp_type == IB_QPT_GSI) {
861 h_ret = ehca_define_sqp(shca, my_qp, init_attr); 865 h_ret = ehca_define_sqp(shca, my_qp, init_attr);
862 if (h_ret != H_SUCCESS) { 866 if (h_ret != H_SUCCESS) {
867 kfree(my_qp->mod_qp_parm);
868 my_qp->mod_qp_parm = NULL;
869 /* the QP pointer is no longer valid */
870 shca->sport[init_attr->port_num - 1].ibqp_sqp[qp_type] =
871 NULL;
863 ret = ehca2ib_return_code(h_ret); 872 ret = ehca2ib_return_code(h_ret);
864 goto create_qp_exit6; 873 goto create_qp_exit6;
865 } 874 }
@@ -1116,6 +1125,7 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue,
1116 void *wqe_v; 1125 void *wqe_v;
1117 u64 q_ofs; 1126 u64 q_ofs;
1118 u32 wqe_idx; 1127 u32 wqe_idx;
1128 unsigned int tail_idx;
1119 1129
1120 /* convert real to abs address */ 1130 /* convert real to abs address */
1121 wqe_p = wqe_p & (~(1UL << 63)); 1131 wqe_p = wqe_p & (~(1UL << 63));
@@ -1128,12 +1138,17 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue,
1128 return -EFAULT; 1138 return -EFAULT;
1129 } 1139 }
1130 1140
1141 tail_idx = (qmap->tail + 1) % qmap->entries;
1131 wqe_idx = q_ofs / ipz_queue->qe_size; 1142 wqe_idx = q_ofs / ipz_queue->qe_size;
1132 if (wqe_idx < qmap->tail)
1133 qmap->left_to_poll = (qmap->entries - qmap->tail) + wqe_idx;
1134 else
1135 qmap->left_to_poll = wqe_idx - qmap->tail;
1136 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;
1137 return 0; 1152 return 0;
1138} 1153}
1139 1154
@@ -1180,10 +1195,14 @@ static int check_for_left_cqes(struct ehca_qp *my_qp, struct ehca_shca *shca)
1180 } else { 1195 } else {
1181 spin_lock_irqsave(&my_qp->send_cq->spinlock, flags); 1196 spin_lock_irqsave(&my_qp->send_cq->spinlock, flags);
1182 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;
1183 spin_unlock_irqrestore(&my_qp->send_cq->spinlock, flags); 1200 spin_unlock_irqrestore(&my_qp->send_cq->spinlock, flags);
1184 1201
1185 spin_lock_irqsave(&my_qp->recv_cq->spinlock, flags); 1202 spin_lock_irqsave(&my_qp->recv_cq->spinlock, flags);
1186 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;
1187 spin_unlock_irqrestore(&my_qp->recv_cq->spinlock, flags); 1206 spin_unlock_irqrestore(&my_qp->recv_cq->spinlock, flags);
1188 } 1207 }
1189 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/ipath/ipath_ruc.c b/drivers/infiniband/hw/ipath/ipath_ruc.c
index fc0f6d9e6030..2296832f94da 100644
--- a/drivers/infiniband/hw/ipath/ipath_ruc.c
+++ b/drivers/infiniband/hw/ipath/ipath_ruc.c
@@ -156,7 +156,7 @@ bail:
156/** 156/**
157 * ipath_get_rwqe - copy the next RWQE into the QP's RWQE 157 * ipath_get_rwqe - copy the next RWQE into the QP's RWQE
158 * @qp: the QP 158 * @qp: the QP
159 * @wr_id_only: update wr_id only, not SGEs 159 * @wr_id_only: update qp->r_wr_id only, not qp->r_sge
160 * 160 *
161 * Return 0 if no RWQE is available, otherwise return 1. 161 * Return 0 if no RWQE is available, otherwise return 1.
162 * 162 *
@@ -173,8 +173,6 @@ int ipath_get_rwqe(struct ipath_qp *qp, int wr_id_only)
173 u32 tail; 173 u32 tail;
174 int ret; 174 int ret;
175 175
176 qp->r_sge.sg_list = qp->r_sg_list;
177
178 if (qp->ibqp.srq) { 176 if (qp->ibqp.srq) {
179 srq = to_isrq(qp->ibqp.srq); 177 srq = to_isrq(qp->ibqp.srq);
180 handler = srq->ibsrq.event_handler; 178 handler = srq->ibsrq.event_handler;
@@ -206,8 +204,10 @@ int ipath_get_rwqe(struct ipath_qp *qp, int wr_id_only)
206 wqe = get_rwqe_ptr(rq, tail); 204 wqe = get_rwqe_ptr(rq, tail);
207 if (++tail >= rq->size) 205 if (++tail >= rq->size)
208 tail = 0; 206 tail = 0;
209 } while (!wr_id_only && !ipath_init_sge(qp, wqe, &qp->r_len, 207 if (wr_id_only)
210 &qp->r_sge)); 208 break;
209 qp->r_sge.sg_list = qp->r_sg_list;
210 } while (!ipath_init_sge(qp, wqe, &qp->r_len, &qp->r_sge));
211 qp->r_wr_id = wqe->wr_id; 211 qp->r_wr_id = wqe->wr_id;
212 wq->tail = tail; 212 wq->tail = tail;
213 213
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/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index 87f5c5a87b98..8e4d26d56a95 100644
--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -205,6 +205,7 @@ struct ib_mr *mlx4_ib_alloc_fast_reg_mr(struct ib_pd *pd,
205 goto err_mr; 205 goto err_mr;
206 206
207 mr->ibmr.rkey = mr->ibmr.lkey = mr->mmr.key; 207 mr->ibmr.rkey = mr->ibmr.lkey = mr->mmr.key;
208 mr->umem = NULL;
208 209
209 return &mr->ibmr; 210 return &mr->ibmr;
210 211
diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
index a2b04d62b1a4..aa1dc41f04c8 100644
--- a/drivers/infiniband/hw/nes/nes.c
+++ b/drivers/infiniband/hw/nes/nes.c
@@ -95,6 +95,10 @@ unsigned int wqm_quanta = 0x10000;
95module_param(wqm_quanta, int, 0644); 95module_param(wqm_quanta, int, 0644);
96MODULE_PARM_DESC(wqm_quanta, "WQM quanta"); 96MODULE_PARM_DESC(wqm_quanta, "WQM quanta");
97 97
98static unsigned int limit_maxrdreqsz;
99module_param(limit_maxrdreqsz, bool, 0644);
100MODULE_PARM_DESC(limit_maxrdreqsz, "Limit max read request size to 256 Bytes");
101
98LIST_HEAD(nes_adapter_list); 102LIST_HEAD(nes_adapter_list);
99static LIST_HEAD(nes_dev_list); 103static LIST_HEAD(nes_dev_list);
100 104
@@ -588,6 +592,18 @@ static int __devinit nes_probe(struct pci_dev *pcidev, const struct pci_device_i
588 nesdev->nesadapter->port_count; 592 nesdev->nesadapter->port_count;
589 } 593 }
590 594
595 if ((limit_maxrdreqsz ||
596 ((nesdev->nesadapter->phy_type[0] == NES_PHY_TYPE_GLADIUS) &&
597 (hw_rev == NE020_REV1))) &&
598 (pcie_get_readrq(pcidev) > 256)) {
599 if (pcie_set_readrq(pcidev, 256))
600 printk(KERN_ERR PFX "Unable to set max read request"
601 " to 256 bytes\n");
602 else
603 nes_debug(NES_DBG_INIT, "Max read request size set"
604 " to 256 bytes\n");
605 }
606
591 tasklet_init(&nesdev->dpc_tasklet, nes_dpc, (unsigned long)nesdev); 607 tasklet_init(&nesdev->dpc_tasklet, nes_dpc, (unsigned long)nesdev);
592 608
593 /* bring up the Control QP */ 609 /* bring up the Control QP */
diff --git a/drivers/infiniband/hw/nes/nes_hw.h b/drivers/infiniband/hw/nes/nes_hw.h
index 610b9d859597..bc0b4de04450 100644
--- a/drivers/infiniband/hw/nes/nes_hw.h
+++ b/drivers/infiniband/hw/nes/nes_hw.h
@@ -40,6 +40,7 @@
40#define NES_PHY_TYPE_ARGUS 4 40#define NES_PHY_TYPE_ARGUS 4
41#define NES_PHY_TYPE_PUMA_1G 5 41#define NES_PHY_TYPE_PUMA_1G 5
42#define NES_PHY_TYPE_PUMA_10G 6 42#define NES_PHY_TYPE_PUMA_10G 6
43#define NES_PHY_TYPE_GLADIUS 7
43 44
44#define NES_MULTICAST_PF_MAX 8 45#define NES_MULTICAST_PF_MAX 8
45 46
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index 932e56fcf774..d36c9a0bf1bb 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -220,14 +220,14 @@ static int nes_bind_mw(struct ib_qp *ibqp, struct ib_mw *ibmw,
220 if (nesqp->ibqp_state > IB_QPS_RTS) 220 if (nesqp->ibqp_state > IB_QPS_RTS)
221 return -EINVAL; 221 return -EINVAL;
222 222
223 spin_lock_irqsave(&nesqp->lock, flags); 223 spin_lock_irqsave(&nesqp->lock, flags);
224 224
225 head = nesqp->hwqp.sq_head; 225 head = nesqp->hwqp.sq_head;
226 qsize = nesqp->hwqp.sq_tail; 226 qsize = nesqp->hwqp.sq_tail;
227 227
228 /* Check for SQ overflow */ 228 /* Check for SQ overflow */
229 if (((head + (2 * qsize) - nesqp->hwqp.sq_tail) % qsize) == (qsize - 1)) { 229 if (((head + (2 * qsize) - nesqp->hwqp.sq_tail) % qsize) == (qsize - 1)) {
230 spin_unlock_irqrestore(&nesqp->lock, flags); 230 spin_unlock_irqrestore(&nesqp->lock, flags);
231 return -EINVAL; 231 return -EINVAL;
232 } 232 }
233 233
@@ -269,7 +269,7 @@ static int nes_bind_mw(struct ib_qp *ibqp, struct ib_mw *ibmw,
269 nes_write32(nesdev->regs+NES_WQE_ALLOC, 269 nes_write32(nesdev->regs+NES_WQE_ALLOC,
270 (1 << 24) | 0x00800000 | nesqp->hwqp.qp_id); 270 (1 << 24) | 0x00800000 | nesqp->hwqp.qp_id);
271 271
272 spin_unlock_irqrestore(&nesqp->lock, flags); 272 spin_unlock_irqrestore(&nesqp->lock, flags);
273 273
274 return 0; 274 return 0;
275} 275}
@@ -349,7 +349,7 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
349 if (nesfmr->nesmr.pbls_used > nesadapter->free_4kpbl) { 349 if (nesfmr->nesmr.pbls_used > nesadapter->free_4kpbl) {
350 spin_unlock_irqrestore(&nesadapter->pbl_lock, flags); 350 spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
351 ret = -ENOMEM; 351 ret = -ENOMEM;
352 goto failed_vpbl_alloc; 352 goto failed_vpbl_avail;
353 } else { 353 } else {
354 nesadapter->free_4kpbl -= nesfmr->nesmr.pbls_used; 354 nesadapter->free_4kpbl -= nesfmr->nesmr.pbls_used;
355 } 355 }
@@ -357,7 +357,7 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
357 if (nesfmr->nesmr.pbls_used > nesadapter->free_256pbl) { 357 if (nesfmr->nesmr.pbls_used > nesadapter->free_256pbl) {
358 spin_unlock_irqrestore(&nesadapter->pbl_lock, flags); 358 spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
359 ret = -ENOMEM; 359 ret = -ENOMEM;
360 goto failed_vpbl_alloc; 360 goto failed_vpbl_avail;
361 } else { 361 } else {
362 nesadapter->free_256pbl -= nesfmr->nesmr.pbls_used; 362 nesadapter->free_256pbl -= nesfmr->nesmr.pbls_used;
363 } 363 }
@@ -391,14 +391,14 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
391 goto failed_vpbl_alloc; 391 goto failed_vpbl_alloc;
392 } 392 }
393 393
394 nesfmr->root_vpbl.leaf_vpbl = kzalloc(sizeof(*nesfmr->root_vpbl.leaf_vpbl)*1024, GFP_KERNEL); 394 nesfmr->leaf_pbl_cnt = nesfmr->nesmr.pbls_used-1;
395 nesfmr->root_vpbl.leaf_vpbl = kzalloc(sizeof(*nesfmr->root_vpbl.leaf_vpbl)*1024, GFP_ATOMIC);
395 if (!nesfmr->root_vpbl.leaf_vpbl) { 396 if (!nesfmr->root_vpbl.leaf_vpbl) {
396 spin_unlock_irqrestore(&nesadapter->pbl_lock, flags); 397 spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
397 ret = -ENOMEM; 398 ret = -ENOMEM;
398 goto failed_leaf_vpbl_alloc; 399 goto failed_leaf_vpbl_alloc;
399 } 400 }
400 401
401 nesfmr->leaf_pbl_cnt = nesfmr->nesmr.pbls_used-1;
402 nes_debug(NES_DBG_MR, "two level pbl, root_vpbl.pbl_vbase=%p" 402 nes_debug(NES_DBG_MR, "two level pbl, root_vpbl.pbl_vbase=%p"
403 " leaf_pbl_cnt=%d root_vpbl.leaf_vpbl=%p\n", 403 " leaf_pbl_cnt=%d root_vpbl.leaf_vpbl=%p\n",
404 nesfmr->root_vpbl.pbl_vbase, nesfmr->leaf_pbl_cnt, nesfmr->root_vpbl.leaf_vpbl); 404 nesfmr->root_vpbl.pbl_vbase, nesfmr->leaf_pbl_cnt, nesfmr->root_vpbl.leaf_vpbl);
@@ -519,6 +519,16 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
519 nesfmr->root_vpbl.pbl_pbase); 519 nesfmr->root_vpbl.pbl_pbase);
520 520
521 failed_vpbl_alloc: 521 failed_vpbl_alloc:
522 if (nesfmr->nesmr.pbls_used != 0) {
523 spin_lock_irqsave(&nesadapter->pbl_lock, flags);
524 if (nesfmr->nesmr.pbl_4k)
525 nesadapter->free_4kpbl += nesfmr->nesmr.pbls_used;
526 else
527 nesadapter->free_256pbl += nesfmr->nesmr.pbls_used;
528 spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
529 }
530
531failed_vpbl_avail:
522 kfree(nesfmr); 532 kfree(nesfmr);
523 533
524 failed_fmr_alloc: 534 failed_fmr_alloc:
@@ -534,18 +544,14 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd *ibpd,
534 */ 544 */
535static int nes_dealloc_fmr(struct ib_fmr *ibfmr) 545static int nes_dealloc_fmr(struct ib_fmr *ibfmr)
536{ 546{
547 unsigned long flags;
537 struct nes_mr *nesmr = to_nesmr_from_ibfmr(ibfmr); 548 struct nes_mr *nesmr = to_nesmr_from_ibfmr(ibfmr);
538 struct nes_fmr *nesfmr = to_nesfmr(nesmr); 549 struct nes_fmr *nesfmr = to_nesfmr(nesmr);
539 struct nes_vnic *nesvnic = to_nesvnic(ibfmr->device); 550 struct nes_vnic *nesvnic = to_nesvnic(ibfmr->device);
540 struct nes_device *nesdev = nesvnic->nesdev; 551 struct nes_device *nesdev = nesvnic->nesdev;
541 struct nes_mr temp_nesmr = *nesmr; 552 struct nes_adapter *nesadapter = nesdev->nesadapter;
542 int i = 0; 553 int i = 0;
543 554
544 temp_nesmr.ibmw.device = ibfmr->device;
545 temp_nesmr.ibmw.pd = ibfmr->pd;
546 temp_nesmr.ibmw.rkey = ibfmr->rkey;
547 temp_nesmr.ibmw.uobject = NULL;
548
549 /* free the resources */ 555 /* free the resources */
550 if (nesfmr->leaf_pbl_cnt == 0) { 556 if (nesfmr->leaf_pbl_cnt == 0) {
551 /* single PBL case */ 557 /* single PBL case */
@@ -561,8 +567,24 @@ static int nes_dealloc_fmr(struct ib_fmr *ibfmr)
561 pci_free_consistent(nesdev->pcidev, 8192, nesfmr->root_vpbl.pbl_vbase, 567 pci_free_consistent(nesdev->pcidev, 8192, nesfmr->root_vpbl.pbl_vbase,
562 nesfmr->root_vpbl.pbl_pbase); 568 nesfmr->root_vpbl.pbl_pbase);
563 } 569 }
570 nesmr->ibmw.device = ibfmr->device;
571 nesmr->ibmw.pd = ibfmr->pd;
572 nesmr->ibmw.rkey = ibfmr->rkey;
573 nesmr->ibmw.uobject = NULL;
564 574
565 return nes_dealloc_mw(&temp_nesmr.ibmw); 575 if (nesfmr->nesmr.pbls_used != 0) {
576 spin_lock_irqsave(&nesadapter->pbl_lock, flags);
577 if (nesfmr->nesmr.pbl_4k) {
578 nesadapter->free_4kpbl += nesfmr->nesmr.pbls_used;
579 WARN_ON(nesadapter->free_4kpbl > nesadapter->max_4kpbl);
580 } else {
581 nesadapter->free_256pbl += nesfmr->nesmr.pbls_used;
582 WARN_ON(nesadapter->free_256pbl > nesadapter->max_256pbl);
583 }
584 spin_unlock_irqrestore(&nesadapter->pbl_lock, flags);
585 }
586
587 return nes_dealloc_mw(&nesmr->ibmw);
566} 588}
567 589
568 590
@@ -1595,7 +1617,7 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1595 nes_ucontext->mcrqf = req.mcrqf; 1617 nes_ucontext->mcrqf = req.mcrqf;
1596 if (nes_ucontext->mcrqf) { 1618 if (nes_ucontext->mcrqf) {
1597 if (nes_ucontext->mcrqf & 0x80000000) 1619 if (nes_ucontext->mcrqf & 0x80000000)
1598 nescq->hw_cq.cq_number = nesvnic->nic.qp_id + 12 + (nes_ucontext->mcrqf & 0xf) - 1; 1620 nescq->hw_cq.cq_number = nesvnic->nic.qp_id + 28 + 2 * ((nes_ucontext->mcrqf & 0xf) - 1);
1599 else if (nes_ucontext->mcrqf & 0x40000000) 1621 else if (nes_ucontext->mcrqf & 0x40000000)
1600 nescq->hw_cq.cq_number = nes_ucontext->mcrqf & 0xffff; 1622 nescq->hw_cq.cq_number = nes_ucontext->mcrqf & 0xffff;
1601 else 1623 else
@@ -3212,7 +3234,7 @@ static int nes_post_send(struct ib_qp *ibqp, struct ib_send_wr *ib_wr,
3212 if (nesqp->ibqp_state > IB_QPS_RTS) 3234 if (nesqp->ibqp_state > IB_QPS_RTS)
3213 return -EINVAL; 3235 return -EINVAL;
3214 3236
3215 spin_lock_irqsave(&nesqp->lock, flags); 3237 spin_lock_irqsave(&nesqp->lock, flags);
3216 3238
3217 head = nesqp->hwqp.sq_head; 3239 head = nesqp->hwqp.sq_head;
3218 3240
@@ -3337,7 +3359,7 @@ static int nes_post_send(struct ib_qp *ibqp, struct ib_send_wr *ib_wr,
3337 (counter << 24) | 0x00800000 | nesqp->hwqp.qp_id); 3359 (counter << 24) | 0x00800000 | nesqp->hwqp.qp_id);
3338 } 3360 }
3339 3361
3340 spin_unlock_irqrestore(&nesqp->lock, flags); 3362 spin_unlock_irqrestore(&nesqp->lock, flags);
3341 3363
3342 if (err) 3364 if (err)
3343 *bad_wr = ib_wr; 3365 *bad_wr = ib_wr;
@@ -3368,7 +3390,7 @@ static int nes_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *ib_wr,
3368 if (nesqp->ibqp_state > IB_QPS_RTS) 3390 if (nesqp->ibqp_state > IB_QPS_RTS)
3369 return -EINVAL; 3391 return -EINVAL;
3370 3392
3371 spin_lock_irqsave(&nesqp->lock, flags); 3393 spin_lock_irqsave(&nesqp->lock, flags);
3372 3394
3373 head = nesqp->hwqp.rq_head; 3395 head = nesqp->hwqp.rq_head;
3374 3396
@@ -3421,7 +3443,7 @@ static int nes_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *ib_wr,
3421 nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter<<24) | nesqp->hwqp.qp_id); 3443 nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter<<24) | nesqp->hwqp.qp_id);
3422 } 3444 }
3423 3445
3424 spin_unlock_irqrestore(&nesqp->lock, flags); 3446 spin_unlock_irqrestore(&nesqp->lock, flags);
3425 3447
3426 if (err) 3448 if (err)
3427 *bad_wr = ib_wr; 3449 *bad_wr = ib_wr;
@@ -3453,7 +3475,7 @@ static int nes_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *entry)
3453 3475
3454 nes_debug(NES_DBG_CQ, "\n"); 3476 nes_debug(NES_DBG_CQ, "\n");
3455 3477
3456 spin_lock_irqsave(&nescq->lock, flags); 3478 spin_lock_irqsave(&nescq->lock, flags);
3457 3479
3458 head = nescq->hw_cq.cq_head; 3480 head = nescq->hw_cq.cq_head;
3459 cq_size = nescq->hw_cq.cq_size; 3481 cq_size = nescq->hw_cq.cq_size;
@@ -3562,7 +3584,7 @@ static int nes_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *entry)
3562 nes_debug(NES_DBG_CQ, "Reporting %u completions for CQ%u.\n", 3584 nes_debug(NES_DBG_CQ, "Reporting %u completions for CQ%u.\n",
3563 cqe_count, nescq->hw_cq.cq_number); 3585 cqe_count, nescq->hw_cq.cq_number);
3564 3586
3565 spin_unlock_irqrestore(&nescq->lock, flags); 3587 spin_unlock_irqrestore(&nescq->lock, flags);
3566 3588
3567 return cqe_count; 3589 return cqe_count;
3568} 3590}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index fddded7900d1..85257f6b9576 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -106,12 +106,13 @@ int ipoib_open(struct net_device *dev)
106 106
107 ipoib_dbg(priv, "bringing up interface\n"); 107 ipoib_dbg(priv, "bringing up interface\n");
108 108
109 napi_enable(&priv->napi);
110 set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); 109 set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
111 110
112 if (ipoib_pkey_dev_delay_open(dev)) 111 if (ipoib_pkey_dev_delay_open(dev))
113 return 0; 112 return 0;
114 113
114 napi_enable(&priv->napi);
115
115 if (ipoib_ib_dev_open(dev)) { 116 if (ipoib_ib_dev_open(dev)) {
116 napi_disable(&priv->napi); 117 napi_disable(&priv->napi);
117 return -EINVAL; 118 return -EINVAL;
@@ -546,6 +547,7 @@ static int path_rec_start(struct net_device *dev,
546 if (path->query_id < 0) { 547 if (path->query_id < 0) {
547 ipoib_warn(priv, "ib_sa_path_rec_get failed: %d\n", path->query_id); 548 ipoib_warn(priv, "ib_sa_path_rec_get failed: %d\n", path->query_id);
548 path->query = NULL; 549 path->query = NULL;
550 complete(&path->done);
549 return path->query_id; 551 return path->query_id;
550 } 552 }
551 553
@@ -662,7 +664,7 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
662 skb_push(skb, sizeof *phdr); 664 skb_push(skb, sizeof *phdr);
663 __skb_queue_tail(&path->queue, skb); 665 __skb_queue_tail(&path->queue, skb);
664 666
665 if (path_rec_start(dev, path)) { 667 if (!path->query && path_rec_start(dev, path)) {
666 spin_unlock_irqrestore(&priv->lock, flags); 668 spin_unlock_irqrestore(&priv->lock, flags);
667 path_free(dev, path); 669 path_free(dev, path);
668 return; 670 return;
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/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c
index bb904a0a98bd..1bfc55d7a26c 100644
--- a/drivers/isdn/i4l/isdn_net.c
+++ b/drivers/isdn/i4l/isdn_net.c
@@ -1641,8 +1641,10 @@ isdn_net_ciscohdlck_slarp_send_reply(isdn_net_local *lp)
1641 /* slarp reply, send own ip/netmask; if values are nonsense remote 1641 /* slarp reply, send own ip/netmask; if values are nonsense remote
1642 * should think we are unable to provide it with an address via SLARP */ 1642 * should think we are unable to provide it with an address via SLARP */
1643 p += put_u32(p, CISCO_SLARP_REPLY); 1643 p += put_u32(p, CISCO_SLARP_REPLY);
1644 p += put_u32(p, addr); // address 1644 *(__be32 *)p = addr; // address
1645 p += put_u32(p, mask); // netmask 1645 p += 4;
1646 *(__be32 *)p = mask; // netmask
1647 p += 4;
1646 p += put_u16(p, 0); // unused 1648 p += put_u16(p, 0); // unused
1647 1649
1648 isdn_net_write_super(lp, skb); 1650 isdn_net_write_super(lp, skb);
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/dm-mpath.c b/drivers/md/dm-mpath.c
index 4840733cd903..3d7f4923cd13 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -441,13 +441,13 @@ static void process_queued_ios(struct work_struct *work)
441 __choose_pgpath(m); 441 __choose_pgpath(m);
442 442
443 pgpath = m->current_pgpath; 443 pgpath = m->current_pgpath;
444 m->pgpath_to_activate = m->current_pgpath;
445 444
446 if ((pgpath && !m->queue_io) || 445 if ((pgpath && !m->queue_io) ||
447 (!pgpath && !m->queue_if_no_path)) 446 (!pgpath && !m->queue_if_no_path))
448 must_queue = 0; 447 must_queue = 0;
449 448
450 if (m->pg_init_required && !m->pg_init_in_progress) { 449 if (m->pg_init_required && !m->pg_init_in_progress && pgpath) {
450 m->pgpath_to_activate = pgpath;
451 m->pg_init_count++; 451 m->pg_init_count++;
452 m->pg_init_required = 0; 452 m->pg_init_required = 0;
453 m->pg_init_in_progress = 1; 453 m->pg_init_in_progress = 1;
@@ -708,6 +708,10 @@ static int parse_hw_handler(struct arg_set *as, struct multipath *m)
708 m->hw_handler_name = NULL; 708 m->hw_handler_name = NULL;
709 return -EINVAL; 709 return -EINVAL;
710 } 710 }
711
712 if (hw_argc > 1)
713 DMWARN("Ignoring user-specified arguments for "
714 "hardware handler \"%s\"", m->hw_handler_name);
711 consume(as, hw_argc - 1); 715 consume(as, hw_argc - 1);
712 716
713 return 0; 717 return 0;
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
index 9d7b53ed75b2..ec43f9fa4b2a 100644
--- a/drivers/md/dm-raid1.c
+++ b/drivers/md/dm-raid1.c
@@ -1032,6 +1032,7 @@ static void mirror_dtr(struct dm_target *ti)
1032 1032
1033 del_timer_sync(&ms->timer); 1033 del_timer_sync(&ms->timer);
1034 flush_workqueue(ms->kmirrord_wq); 1034 flush_workqueue(ms->kmirrord_wq);
1035 flush_scheduled_work();
1035 dm_kcopyd_client_destroy(ms->kcopyd_client); 1036 dm_kcopyd_client_destroy(ms->kcopyd_client);
1036 destroy_workqueue(ms->kmirrord_wq); 1037 destroy_workqueue(ms->kmirrord_wq);
1037 free_context(ms, ti, ms->nr_mirrors); 1038 free_context(ms, ti, ms->nr_mirrors);
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index a2d068dbe9e2..9e4ef88d421e 100644
--- a/drivers/md/dm-stripe.c
+++ b/drivers/md/dm-stripe.c
@@ -320,8 +320,10 @@ int __init dm_stripe_init(void)
320 int r; 320 int r;
321 321
322 r = dm_register_target(&stripe_target); 322 r = dm_register_target(&stripe_target);
323 if (r < 0) 323 if (r < 0) {
324 DMWARN("target registration failed"); 324 DMWARN("target registration failed");
325 return r;
326 }
325 327
326 kstriped = create_singlethread_workqueue("kstriped"); 328 kstriped = create_singlethread_workqueue("kstriped");
327 if (!kstriped) { 329 if (!kstriped) {
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/md/dm.c b/drivers/md/dm.c
index 6963ad148408..c99e4728ff41 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -375,7 +375,7 @@ static void start_io_acct(struct dm_io *io)
375 dm_disk(md)->part0.in_flight = atomic_inc_return(&md->pending); 375 dm_disk(md)->part0.in_flight = atomic_inc_return(&md->pending);
376} 376}
377 377
378static int end_io_acct(struct dm_io *io) 378static void end_io_acct(struct dm_io *io)
379{ 379{
380 struct mapped_device *md = io->md; 380 struct mapped_device *md = io->md;
381 struct bio *bio = io->bio; 381 struct bio *bio = io->bio;
@@ -391,7 +391,9 @@ static int end_io_acct(struct dm_io *io)
391 dm_disk(md)->part0.in_flight = pending = 391 dm_disk(md)->part0.in_flight = pending =
392 atomic_dec_return(&md->pending); 392 atomic_dec_return(&md->pending);
393 393
394 return !pending; 394 /* nudge anyone waiting on suspend queue */
395 if (!pending)
396 wake_up(&md->wait);
395} 397}
396 398
397/* 399/*
@@ -499,9 +501,7 @@ static void dec_pending(struct dm_io *io, int error)
499 spin_unlock_irqrestore(&io->md->pushback_lock, flags); 501 spin_unlock_irqrestore(&io->md->pushback_lock, flags);
500 } 502 }
501 503
502 if (end_io_acct(io)) 504 end_io_acct(io);
503 /* nudge anyone waiting on suspend queue */
504 wake_up(&io->md->wait);
505 505
506 if (io->error != DM_ENDIO_REQUEUE) { 506 if (io->error != DM_ENDIO_REQUEUE) {
507 blk_add_trace_bio(io->md->queue, io->bio, 507 blk_add_trace_bio(io->md->queue, io->bio,
@@ -937,16 +937,24 @@ static void dm_unplug_all(struct request_queue *q)
937 937
938static int dm_any_congested(void *congested_data, int bdi_bits) 938static int dm_any_congested(void *congested_data, int bdi_bits)
939{ 939{
940 int r; 940 int r = bdi_bits;
941 struct mapped_device *md = (struct mapped_device *) congested_data; 941 struct mapped_device *md = congested_data;
942 struct dm_table *map = dm_get_table(md); 942 struct dm_table *map;
943 943
944 if (!map || test_bit(DMF_BLOCK_IO, &md->flags)) 944 atomic_inc(&md->pending);
945 r = bdi_bits; 945
946 else 946 if (!test_bit(DMF_BLOCK_IO, &md->flags)) {
947 r = dm_table_any_congested(map, bdi_bits); 947 map = dm_get_table(md);
948 if (map) {
949 r = dm_table_any_congested(map, bdi_bits);
950 dm_table_put(map);
951 }
952 }
953
954 if (!atomic_dec_return(&md->pending))
955 /* nudge anyone waiting on suspend queue */
956 wake_up(&md->wait);
948 957
949 dm_table_put(map);
950 return r; 958 return r;
951} 959}
952 960
diff --git a/drivers/md/linear.c b/drivers/md/linear.c
index 190147c79e79..3b90c5c924ec 100644
--- a/drivers/md/linear.c
+++ b/drivers/md/linear.c
@@ -148,6 +148,8 @@ static linear_conf_t *linear_conf(mddev_t *mddev, int raid_disks)
148 148
149 min_sectors = conf->array_sectors; 149 min_sectors = conf->array_sectors;
150 sector_div(min_sectors, PAGE_SIZE/sizeof(struct dev_info *)); 150 sector_div(min_sectors, PAGE_SIZE/sizeof(struct dev_info *));
151 if (min_sectors == 0)
152 min_sectors = 1;
151 153
152 /* min_sectors is the minimum spacing that will fit the hash 154 /* min_sectors is the minimum spacing that will fit the hash
153 * table in one PAGE. This may be much smaller than needed. 155 * table in one PAGE. This may be much smaller than needed.
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 9abf6ed16535..1b1d32694f6f 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3884,7 +3884,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
3884 if (mode == 0) { 3884 if (mode == 0) {
3885 mdk_rdev_t *rdev; 3885 mdk_rdev_t *rdev;
3886 struct list_head *tmp; 3886 struct list_head *tmp;
3887 struct block_device *bdev;
3888 3887
3889 printk(KERN_INFO "md: %s stopped.\n", mdname(mddev)); 3888 printk(KERN_INFO "md: %s stopped.\n", mdname(mddev));
3890 3889
@@ -3941,11 +3940,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
3941 mddev->degraded = 0; 3940 mddev->degraded = 0;
3942 mddev->barriers_work = 0; 3941 mddev->barriers_work = 0;
3943 mddev->safemode = 0; 3942 mddev->safemode = 0;
3944 bdev = bdget_disk(mddev->gendisk, 0);
3945 if (bdev) {
3946 blkdev_ioctl(bdev, 0, BLKRRPART, 0);
3947 bdput(bdev);
3948 }
3949 kobject_uevent(&disk_to_dev(mddev->gendisk)->kobj, KOBJ_CHANGE); 3943 kobject_uevent(&disk_to_dev(mddev->gendisk)->kobj, KOBJ_CHANGE);
3950 3944
3951 } else if (mddev->pers) 3945 } else if (mddev->pers)
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index da5129a24b18..970a96ef9b18 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -1137,7 +1137,7 @@ static int raid10_add_disk(mddev_t *mddev, mdk_rdev_t *rdev)
1137 if (!enough(conf)) 1137 if (!enough(conf))
1138 return -EINVAL; 1138 return -EINVAL;
1139 1139
1140 if (rdev->raid_disk) 1140 if (rdev->raid_disk >= 0)
1141 first = last = rdev->raid_disk; 1141 first = last = rdev->raid_disk;
1142 1142
1143 if (rdev->saved_raid_disk >= 0 && 1143 if (rdev->saved_raid_disk >= 0 &&
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 5689d1f1d444..7a421e9dba5a 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -223,6 +223,8 @@ static void dvb_frontend_init(struct dvb_frontend *fe)
223 if (fe->ops.init) 223 if (fe->ops.init)
224 fe->ops.init(fe); 224 fe->ops.init(fe);
225 if (fe->ops.tuner_ops.init) { 225 if (fe->ops.tuner_ops.init) {
226 if (fe->ops.i2c_gate_ctrl)
227 fe->ops.i2c_gate_ctrl(fe, 1);
226 fe->ops.tuner_ops.init(fe); 228 fe->ops.tuner_ops.init(fe);
227 if (fe->ops.i2c_gate_ctrl) 229 if (fe->ops.i2c_gate_ctrl)
228 fe->ops.i2c_gate_ctrl(fe, 0); 230 fe->ops.i2c_gate_ctrl(fe, 0);
@@ -583,6 +585,8 @@ restart:
583 if (fe->ops.set_voltage) 585 if (fe->ops.set_voltage)
584 fe->ops.set_voltage(fe, SEC_VOLTAGE_OFF); 586 fe->ops.set_voltage(fe, SEC_VOLTAGE_OFF);
585 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);
586 fe->ops.tuner_ops.sleep(fe); 590 fe->ops.tuner_ops.sleep(fe);
587 if (fe->ops.i2c_gate_ctrl) 591 if (fe->ops.i2c_gate_ctrl)
588 fe->ops.i2c_gate_ctrl(fe, 0); 592 fe->ops.i2c_gate_ctrl(fe, 0);
@@ -932,7 +936,8 @@ void dtv_property_dump(struct dtv_property *tvp)
932int is_legacy_delivery_system(fe_delivery_system_t s) 936int is_legacy_delivery_system(fe_delivery_system_t s)
933{ 937{
934 if((s == SYS_UNDEFINED) || (s == SYS_DVBC_ANNEX_AC) || 938 if((s == SYS_UNDEFINED) || (s == SYS_DVBC_ANNEX_AC) ||
935 (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))
936 return 1; 941 return 1;
937 942
938 return 0; 943 return 0;
diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig
index 3c13bcfa6385..62b68c291d99 100644
--- a/drivers/media/dvb/dvb-usb/Kconfig
+++ b/drivers/media/dvb/dvb-usb/Kconfig
@@ -261,7 +261,7 @@ config DVB_USB_DW2102
261 Say Y here to support the DvbWorld DVB-S/S2 USB2.0 receivers 261 Say Y here to support the DvbWorld DVB-S/S2 USB2.0 receivers
262 and the TeVii S650. 262 and the TeVii S650.
263 263
264config DVB_USB_CINERGY_T2 264config DVB_USB_CINERGY_T2
265 tristate "Terratec CinergyT2/qanu USB 2.0 DVB-T receiver" 265 tristate "Terratec CinergyT2/qanu USB 2.0 DVB-T receiver"
266 depends on DVB_USB 266 depends on DVB_USB
267 help 267 help
@@ -283,6 +283,7 @@ config DVB_USB_ANYSEE
283config DVB_USB_DTV5100 283config 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 MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE 287 select MEDIA_TUNER_QT1010 if !DVB_FE_CUSTOMISE
287 help 288 help
288 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.
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index cb0829c038ce..e9ab0249d133 100644
--- a/drivers/media/dvb/dvb-usb/af9015.c
+++ b/drivers/media/dvb/dvb-usb/af9015.c
@@ -31,13 +31,13 @@
31#include "mc44s80x.h" 31#include "mc44s80x.h"
32#endif 32#endif
33 33
34int dvb_usb_af9015_debug; 34static int dvb_usb_af9015_debug;
35module_param_named(debug, dvb_usb_af9015_debug, int, 0644); 35module_param_named(debug, dvb_usb_af9015_debug, int, 0644);
36MODULE_PARM_DESC(debug, "set debugging level" DVB_USB_DEBUG_STATUS); 36MODULE_PARM_DESC(debug, "set debugging level" DVB_USB_DEBUG_STATUS);
37int dvb_usb_af9015_remote; 37static int dvb_usb_af9015_remote;
38module_param_named(remote, dvb_usb_af9015_remote, int, 0644); 38module_param_named(remote, dvb_usb_af9015_remote, int, 0644);
39MODULE_PARM_DESC(remote, "select remote"); 39MODULE_PARM_DESC(remote, "select remote");
40int dvb_usb_af9015_dual_mode; 40static int dvb_usb_af9015_dual_mode;
41module_param_named(dual_mode, dvb_usb_af9015_dual_mode, int, 0644); 41module_param_named(dual_mode, dvb_usb_af9015_dual_mode, int, 0644);
42MODULE_PARM_DESC(dual_mode, "enable dual mode"); 42MODULE_PARM_DESC(dual_mode, "enable dual mode");
43DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); 43DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
@@ -46,7 +46,7 @@ static DEFINE_MUTEX(af9015_usb_mutex);
46 46
47static struct af9015_config af9015_config; 47static struct af9015_config af9015_config;
48static struct dvb_usb_device_properties af9015_properties[2]; 48static struct dvb_usb_device_properties af9015_properties[2];
49int af9015_properties_count = ARRAY_SIZE(af9015_properties); 49static int af9015_properties_count = ARRAY_SIZE(af9015_properties);
50 50
51static struct af9013_config af9015_af9013_config[] = { 51static struct af9013_config af9015_af9013_config[] = {
52 { 52 {
@@ -549,7 +549,7 @@ static int af9015_eeprom_dump(struct dvb_usb_device *d)
549 return 0; 549 return 0;
550} 550}
551 551
552int af9015_download_ir_table(struct dvb_usb_device *d) 552static int af9015_download_ir_table(struct dvb_usb_device *d)
553{ 553{
554 int i, packets = 0, ret; 554 int i, packets = 0, ret;
555 u16 addr = 0x9a56; /* ir-table start address */ 555 u16 addr = 0x9a56; /* ir-table start address */
@@ -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}
@@ -999,7 +993,7 @@ static int af9015_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
999} 993}
1000 994
1001/* init 2nd I2C adapter */ 995/* init 2nd I2C adapter */
1002int af9015_i2c_init(struct dvb_usb_device *d) 996static int af9015_i2c_init(struct dvb_usb_device *d)
1003{ 997{
1004 int ret; 998 int ret;
1005 struct af9015_state *state = d->priv; 999 struct af9015_state *state = d->priv;
@@ -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
@@ -1419,7 +1415,7 @@ static int af9015_usb_probe(struct usb_interface *intf,
1419 return ret; 1415 return ret;
1420} 1416}
1421 1417
1422void af9015_i2c_exit(struct dvb_usb_device *d) 1418static void af9015_i2c_exit(struct dvb_usb_device *d)
1423{ 1419{
1424 struct af9015_state *state = d->priv; 1420 struct af9015_state *state = d->priv;
1425 deb_info("%s: \n", __func__); 1421 deb_info("%s: \n", __func__);
diff --git a/drivers/media/dvb/dvb-usb/af9015.h b/drivers/media/dvb/dvb-usb/af9015.h
index 882e8a4b3681..6c3c97293316 100644
--- a/drivers/media/dvb/dvb-usb/af9015.h
+++ b/drivers/media/dvb/dvb-usb/af9015.h
@@ -27,7 +27,6 @@
27#define DVB_USB_LOG_PREFIX "af9015" 27#define DVB_USB_LOG_PREFIX "af9015"
28#include "dvb-usb.h" 28#include "dvb-usb.h"
29 29
30extern int dvb_usb_af9015_debug;
31#define deb_info(args...) dprintk(dvb_usb_af9015_debug, 0x01, args) 30#define deb_info(args...) dprintk(dvb_usb_af9015_debug, 0x01, args)
32#define deb_rc(args...) dprintk(dvb_usb_af9015_debug, 0x02, args) 31#define deb_rc(args...) dprintk(dvb_usb_af9015_debug, 0x02, args)
33#define deb_xfer(args...) dprintk(dvb_usb_af9015_debug, 0x04, args) 32#define deb_xfer(args...) dprintk(dvb_usb_af9015_debug, 0x04, args)
diff --git a/drivers/media/dvb/dvb-usb/anysee.c b/drivers/media/dvb/dvb-usb/anysee.c
index c786359fba03..cd2edbcaa097 100644
--- a/drivers/media/dvb/dvb-usb/anysee.c
+++ b/drivers/media/dvb/dvb-usb/anysee.c
@@ -46,7 +46,7 @@ module_param_named(delsys, dvb_usb_anysee_delsys, int, 0644);
46MODULE_PARM_DESC(delsys, "select delivery mode (0=DVB-C, 1=DVB-T)"); 46MODULE_PARM_DESC(delsys, "select delivery mode (0=DVB-C, 1=DVB-T)");
47DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); 47DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
48 48
49static struct mutex anysee_usb_mutex; 49static DEFINE_MUTEX(anysee_usb_mutex);
50 50
51static int anysee_ctrl_msg(struct dvb_usb_device *d, u8 *sbuf, u8 slen, 51static int anysee_ctrl_msg(struct dvb_usb_device *d, u8 *sbuf, u8 slen,
52 u8 *rbuf, u8 rlen) 52 u8 *rbuf, u8 rlen)
@@ -456,8 +456,6 @@ static int anysee_probe(struct usb_interface *intf,
456 struct usb_host_interface *alt; 456 struct usb_host_interface *alt;
457 int ret; 457 int ret;
458 458
459 mutex_init(&anysee_usb_mutex);
460
461 /* There is one interface with two alternate settings. 459 /* There is one interface with two alternate settings.
462 Alternate setting 0 is for bulk transfer. 460 Alternate setting 0 is for bulk transfer.
463 Alternate setting 1 is for isochronous transfer. 461 Alternate setting 1 is for isochronous transfer.
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..f28d3ae59e04 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),
@@ -451,8 +452,13 @@ static 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 2
455#define RC_REPEAT_DELAY_V1_20 5
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/dvb-usb-urb.c b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
index 5cef12a07f72..6fe71c6745eb 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-urb.c
@@ -13,14 +13,14 @@ int dvb_usb_generic_rw(struct dvb_usb_device *d, u8 *wbuf, u16 wlen, u8 *rbuf,
13{ 13{
14 int actlen,ret = -ENOMEM; 14 int actlen,ret = -ENOMEM;
15 15
16 if (!d || wbuf == NULL || wlen == 0)
17 return -EINVAL;
18
16 if (d->props.generic_bulk_ctrl_endpoint == 0) { 19 if (d->props.generic_bulk_ctrl_endpoint == 0) {
17 err("endpoint for generic control not specified."); 20 err("endpoint for generic control not specified.");
18 return -EINVAL; 21 return -EINVAL;
19 } 22 }
20 23
21 if (wbuf == NULL || wlen == 0)
22 return -EINVAL;
23
24 if ((ret = mutex_lock_interruptible(&d->usb_mutex))) 24 if ((ret = mutex_lock_interruptible(&d->usb_mutex)))
25 return ret; 25 return ret;
26 26
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/frontends/af9013.c b/drivers/media/dvb/frontends/af9013.c
index 21c1060cf10e..692b68a9e73b 100644
--- a/drivers/media/dvb/frontends/af9013.c
+++ b/drivers/media/dvb/frontends/af9013.c
@@ -1187,7 +1187,7 @@ static int af9013_read_status(struct dvb_frontend *fe, fe_status_t *status)
1187 if (tmp) 1187 if (tmp)
1188 *status |= FE_HAS_SYNC | FE_HAS_LOCK; 1188 *status |= FE_HAS_SYNC | FE_HAS_LOCK;
1189 1189
1190 if (!*status & FE_HAS_SIGNAL) { 1190 if (!(*status & FE_HAS_SIGNAL)) {
1191 /* AGC lock */ 1191 /* AGC lock */
1192 ret = af9013_read_reg_bits(state, 0xd1a0, 6, 1, &tmp); 1192 ret = af9013_read_reg_bits(state, 0xd1a0, 6, 1, &tmp);
1193 if (ret) 1193 if (ret)
@@ -1196,7 +1196,7 @@ static int af9013_read_status(struct dvb_frontend *fe, fe_status_t *status)
1196 *status |= FE_HAS_SIGNAL; 1196 *status |= FE_HAS_SIGNAL;
1197 } 1197 }
1198 1198
1199 if (!*status & FE_HAS_CARRIER) { 1199 if (!(*status & FE_HAS_CARRIER)) {
1200 /* CFO lock */ 1200 /* CFO lock */
1201 ret = af9013_read_reg_bits(state, 0xd333, 7, 1, &tmp); 1201 ret = af9013_read_reg_bits(state, 0xd333, 7, 1, &tmp);
1202 if (ret) 1202 if (ret)
@@ -1205,7 +1205,7 @@ static int af9013_read_status(struct dvb_frontend *fe, fe_status_t *status)
1205 *status |= FE_HAS_CARRIER; 1205 *status |= FE_HAS_CARRIER;
1206 } 1206 }
1207 1207
1208 if (!*status & FE_HAS_CARRIER) { 1208 if (!(*status & FE_HAS_CARRIER)) {
1209 /* SFOE lock */ 1209 /* SFOE lock */
1210 ret = af9013_read_reg_bits(state, 0xd334, 6, 1, &tmp); 1210 ret = af9013_read_reg_bits(state, 0xd334, 6, 1, &tmp);
1211 if (ret) 1211 if (ret)
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/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/radio/Kconfig b/drivers/media/radio/Kconfig
index 04cd7c04bdde..5189c4eb439f 100644
--- a/drivers/media/radio/Kconfig
+++ b/drivers/media/radio/Kconfig
@@ -355,6 +355,20 @@ config USB_SI470X
355 tristate "Silicon Labs Si470x FM Radio Receiver support" 355 tristate "Silicon Labs Si470x FM Radio Receiver support"
356 depends on USB && VIDEO_V4L2 356 depends on USB && VIDEO_V4L2
357 ---help--- 357 ---help---
358 This is a driver for USB devices with the Silicon Labs SI470x
359 chip. Currently these devices are known to work:
360 - 10c4:818a: Silicon Labs USB FM Radio Reference Design
361 - 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music)
362 - 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700)
363
364 Sound is provided by the ALSA USB Audio/MIDI driver. Therefore
365 if you don't want to use the device solely for RDS receiving,
366 it is recommended to also select SND_USB_AUDIO.
367
368 Please have a look at the documentation, especially on how
369 to redirect the audio stream from the radio to your sound device:
370 Documentation/video4linux/si470x.txt
371
358 Say Y here if you want to connect this type of radio to your 372 Say Y here if you want to connect this type of radio to your
359 computer's USB port. 373 computer's USB port.
360 374
diff --git a/drivers/media/radio/radio-si470x.c b/drivers/media/radio/radio-si470x.c
index 5920cd306975..3e1830293de5 100644
--- a/drivers/media/radio/radio-si470x.c
+++ b/drivers/media/radio/radio-si470x.c
@@ -4,6 +4,7 @@
4 * Driver for USB radios for the Silicon Labs Si470x FM Radio Receivers: 4 * Driver for USB radios for the Silicon Labs Si470x FM Radio Receivers:
5 * - Silicon Labs USB FM Radio Reference Design 5 * - Silicon Labs USB FM Radio Reference Design
6 * - ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF) 6 * - ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF)
7 * - KWorld USB FM Radio SnapMusic Mobile 700 (FM700)
7 * 8 *
8 * Copyright (c) 2008 Tobias Lorenz <tobias.lorenz@gmx.net> 9 * Copyright (c) 2008 Tobias Lorenz <tobias.lorenz@gmx.net>
9 * 10 *
@@ -24,19 +25,6 @@
24 25
25 26
26/* 27/*
27 * User Notes:
28 * - USB Audio is provided by the alsa snd_usb_audio module.
29 * For listing you have to redirect the sound, for example using:
30 * arecord -D hw:1,0 -r96000 -c2 -f S16_LE | artsdsp aplay -B -
31 * - regarding module parameters in /sys/module/radio_si470x/parameters:
32 * the contents of read-only files (0444) are not updated, even if
33 * space, band and de are changed using private video controls
34 * - increase tune_timeout, if you often get -EIO errors
35 * - hw_freq_seek returns -EAGAIN, when timed out or band limit is reached
36 */
37
38
39/*
40 * History: 28 * History:
41 * 2008-01-12 Tobias Lorenz <tobias.lorenz@gmx.net> 29 * 2008-01-12 Tobias Lorenz <tobias.lorenz@gmx.net>
42 * Version 1.0.0 30 * Version 1.0.0
@@ -105,6 +93,9 @@
105 * - afc indication 93 * - afc indication
106 * - more safety checks, let si470x_get_freq return errno 94 * - more safety checks, let si470x_get_freq return errno
107 * - vidioc behavior corrected according to v4l2 spec 95 * - vidioc behavior corrected according to v4l2 spec
96 * 2008-10-20 Alexey Klimov <klimov.linux@gmail.com>
97 * - add support for KWorld USB FM Radio FM700
98 * - blacklisted KWorld radio in hid-core.c and hid-ids.h
108 * 99 *
109 * ToDo: 100 * ToDo:
110 * - add firmware download/update support 101 * - add firmware download/update support
@@ -145,6 +136,8 @@ static struct usb_device_id si470x_usb_driver_id_table[] = {
145 { USB_DEVICE_AND_INTERFACE_INFO(0x10c4, 0x818a, USB_CLASS_HID, 0, 0) }, 136 { USB_DEVICE_AND_INTERFACE_INFO(0x10c4, 0x818a, USB_CLASS_HID, 0, 0) },
146 /* ADS/Tech FM Radio Receiver (formerly Instant FM Music) */ 137 /* ADS/Tech FM Radio Receiver (formerly Instant FM Music) */
147 { USB_DEVICE_AND_INTERFACE_INFO(0x06e1, 0xa155, USB_CLASS_HID, 0, 0) }, 138 { USB_DEVICE_AND_INTERFACE_INFO(0x06e1, 0xa155, USB_CLASS_HID, 0, 0) },
139 /* KWorld USB FM Radio SnapMusic Mobile 700 (FM700) */
140 { USB_DEVICE_AND_INTERFACE_INFO(0x1b80, 0xd700, USB_CLASS_HID, 0, 0) },
148 /* Terminating entry */ 141 /* Terminating entry */
149 { } 142 { }
150}; 143};
diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c
index a8c068e1de1c..1740b9ebdcef 100644
--- a/drivers/media/video/cafe_ccic.c
+++ b/drivers/media/video/cafe_ccic.c
@@ -1476,12 +1476,9 @@ static int cafe_v4l_open(struct inode *inode, struct file *filp)
1476{ 1476{
1477 struct cafe_camera *cam; 1477 struct cafe_camera *cam;
1478 1478
1479 lock_kernel();
1480 cam = cafe_find_dev(iminor(inode)); 1479 cam = cafe_find_dev(iminor(inode));
1481 if (cam == NULL) { 1480 if (cam == NULL)
1482 unlock_kernel();
1483 return -ENODEV; 1481 return -ENODEV;
1484 }
1485 filp->private_data = cam; 1482 filp->private_data = cam;
1486 1483
1487 mutex_lock(&cam->s_mutex); 1484 mutex_lock(&cam->s_mutex);
@@ -1493,7 +1490,6 @@ static int cafe_v4l_open(struct inode *inode, struct file *filp)
1493 } 1490 }
1494 (cam->users)++; 1491 (cam->users)++;
1495 mutex_unlock(&cam->s_mutex); 1492 mutex_unlock(&cam->s_mutex);
1496 unlock_kernel();
1497 return 0; 1493 return 0;
1498} 1494}
1499 1495
diff --git a/drivers/media/video/compat_ioctl32.c b/drivers/media/video/compat_ioctl32.c
index bd5d9de5a008..e6ca4012b5f0 100644
--- a/drivers/media/video/compat_ioctl32.c
+++ b/drivers/media/video/compat_ioctl32.c
@@ -867,6 +867,7 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
867 case VIDIOC_STREAMON32: 867 case VIDIOC_STREAMON32:
868 case VIDIOC_STREAMOFF32: 868 case VIDIOC_STREAMOFF32:
869 case VIDIOC_G_PARM: 869 case VIDIOC_G_PARM:
870 case VIDIOC_S_PARM:
870 case VIDIOC_G_STD: 871 case VIDIOC_G_STD:
871 case VIDIOC_S_STD: 872 case VIDIOC_S_STD:
872 case VIDIOC_G_TUNER: 873 case VIDIOC_G_TUNER:
@@ -885,6 +886,8 @@ long v4l_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)
885 case VIDIOC_S_INPUT32: 886 case VIDIOC_S_INPUT32:
886 case VIDIOC_TRY_FMT32: 887 case VIDIOC_TRY_FMT32:
887 case VIDIOC_S_HW_FREQ_SEEK: 888 case VIDIOC_S_HW_FREQ_SEEK:
889 case VIDIOC_ENUM_FRAMESIZES:
890 case VIDIOC_ENUM_FRAMEINTERVALS:
888 ret = do_video_ioctl(file, cmd, arg); 891 ret = do_video_ioctl(file, cmd, arg);
889 break; 892 break;
890 893
diff --git a/drivers/media/video/cx18/cx18-driver.c b/drivers/media/video/cx18/cx18-driver.c
index 7a1a7830a6b3..7874d9790a51 100644
--- a/drivers/media/video/cx18/cx18-driver.c
+++ b/drivers/media/video/cx18/cx18-driver.c
@@ -448,7 +448,14 @@ static int __devinit cx18_init_struct1(struct cx18 *cx)
448 mutex_init(&cx->gpio_lock); 448 mutex_init(&cx->gpio_lock);
449 449
450 spin_lock_init(&cx->lock); 450 spin_lock_init(&cx->lock);
451 spin_lock_init(&cx->dma_reg_lock); 451
452 cx->work_queue = create_singlethread_workqueue(cx->name);
453 if (cx->work_queue == NULL) {
454 CX18_ERR("Could not create work queue\n");
455 return -1;
456 }
457
458 INIT_WORK(&cx->work, cx18_work_handler);
452 459
453 /* start counting open_id at 1 */ 460 /* start counting open_id at 1 */
454 cx->open_id = 1; 461 cx->open_id = 1;
@@ -581,10 +588,10 @@ static void cx18_load_and_init_modules(struct cx18 *cx)
581 588
582#ifdef MODULE 589#ifdef MODULE
583 /* load modules */ 590 /* load modules */
584#ifndef CONFIG_MEDIA_TUNER 591#ifdef CONFIG_MEDIA_TUNER_MODULE
585 hw = cx18_request_module(cx, hw, "tuner", CX18_HW_TUNER); 592 hw = cx18_request_module(cx, hw, "tuner", CX18_HW_TUNER);
586#endif 593#endif
587#ifndef CONFIG_VIDEO_CS5345 594#ifdef CONFIG_VIDEO_CS5345_MODULE
588 hw = cx18_request_module(cx, hw, "cs5345", CX18_HW_CS5345); 595 hw = cx18_request_module(cx, hw, "cs5345", CX18_HW_CS5345);
589#endif 596#endif
590#endif 597#endif
@@ -832,6 +839,7 @@ free_map:
832free_mem: 839free_mem:
833 release_mem_region(cx->base_addr, CX18_MEM_SIZE); 840 release_mem_region(cx->base_addr, CX18_MEM_SIZE);
834free_workqueue: 841free_workqueue:
842 destroy_workqueue(cx->work_queue);
835err: 843err:
836 if (retval == 0) 844 if (retval == 0)
837 retval = -ENODEV; 845 retval = -ENODEV;
@@ -932,6 +940,9 @@ static void cx18_remove(struct pci_dev *pci_dev)
932 940
933 cx18_halt_firmware(cx); 941 cx18_halt_firmware(cx);
934 942
943 flush_workqueue(cx->work_queue);
944 destroy_workqueue(cx->work_queue);
945
935 cx18_streams_cleanup(cx, 1); 946 cx18_streams_cleanup(cx, 1);
936 947
937 exit_cx18_i2c(cx); 948 exit_cx18_i2c(cx);
diff --git a/drivers/media/video/cx18/cx18-driver.h b/drivers/media/video/cx18/cx18-driver.h
index a4b1708fafe7..bbdd5f25041d 100644
--- a/drivers/media/video/cx18/cx18-driver.h
+++ b/drivers/media/video/cx18/cx18-driver.h
@@ -199,12 +199,15 @@ struct cx18_options {
199#define CX18_F_S_APPL_IO 8 /* this stream is used read/written by an application */ 199#define CX18_F_S_APPL_IO 8 /* this stream is used read/written by an application */
200 200
201/* per-cx18, i_flags */ 201/* per-cx18, i_flags */
202#define CX18_F_I_LOADED_FW 0 /* Loaded the firmware the first time */ 202#define CX18_F_I_LOADED_FW 0 /* Loaded firmware 1st time */
203#define CX18_F_I_EOS 4 /* End of encoder stream reached */ 203#define CX18_F_I_EOS 4 /* End of encoder stream */
204#define CX18_F_I_RADIO_USER 5 /* The radio tuner is selected */ 204#define CX18_F_I_RADIO_USER 5 /* radio tuner is selected */
205#define CX18_F_I_ENC_PAUSED 13 /* the encoder is paused */ 205#define CX18_F_I_ENC_PAUSED 13 /* the encoder is paused */
206#define CX18_F_I_INITED 21 /* set after first open */ 206#define CX18_F_I_HAVE_WORK 15 /* there is work to be done */
207#define CX18_F_I_FAILED 22 /* set if first open failed */ 207#define CX18_F_I_WORK_HANDLER_DVB 18 /* work to be done for DVB */
208#define CX18_F_I_INITED 21 /* set after first open */
209#define CX18_F_I_FAILED 22 /* set if first open failed */
210#define CX18_F_I_WORK_INITED 23 /* worker thread initialized */
208 211
209/* These are the VBI types as they appear in the embedded VBI private packets. */ 212/* These are the VBI types as they appear in the embedded VBI private packets. */
210#define CX18_SLICED_TYPE_TELETEXT_B (1) 213#define CX18_SLICED_TYPE_TELETEXT_B (1)
@@ -402,8 +405,6 @@ struct cx18 {
402 spinlock_t lock; /* lock access to this struct */ 405 spinlock_t lock; /* lock access to this struct */
403 int search_pack_header; 406 int search_pack_header;
404 407
405 spinlock_t dma_reg_lock; /* lock access to DMA engine registers */
406
407 int open_id; /* incremented each time an open occurs, used as 408 int open_id; /* incremented each time an open occurs, used as
408 unique ID. Starts at 1, so 0 can be used as 409 unique ID. Starts at 1, so 0 can be used as
409 uninitialized value in the stream->id. */ 410 uninitialized value in the stream->id. */
@@ -433,6 +434,9 @@ struct cx18 {
433 /* when the current DMA is finished this queue is woken up */ 434 /* when the current DMA is finished this queue is woken up */
434 wait_queue_head_t dma_waitq; 435 wait_queue_head_t dma_waitq;
435 436
437 struct workqueue_struct *work_queue;
438 struct work_struct work;
439
436 /* i2c */ 440 /* i2c */
437 struct i2c_adapter i2c_adap[2]; 441 struct i2c_adapter i2c_adap[2];
438 struct i2c_algo_bit_data i2c_algo[2]; 442 struct i2c_algo_bit_data i2c_algo[2];
diff --git a/drivers/media/video/cx18/cx18-dvb.c b/drivers/media/video/cx18/cx18-dvb.c
index afc694e7bdb2..4542e2e5e3d7 100644
--- a/drivers/media/video/cx18/cx18-dvb.c
+++ b/drivers/media/video/cx18/cx18-dvb.c
@@ -23,6 +23,8 @@
23#include "cx18-dvb.h" 23#include "cx18-dvb.h"
24#include "cx18-io.h" 24#include "cx18-io.h"
25#include "cx18-streams.h" 25#include "cx18-streams.h"
26#include "cx18-queue.h"
27#include "cx18-scb.h"
26#include "cx18-cards.h" 28#include "cx18-cards.h"
27#include "s5h1409.h" 29#include "s5h1409.h"
28#include "mxl5005s.h" 30#include "mxl5005s.h"
@@ -300,3 +302,24 @@ static int dvb_register(struct cx18_stream *stream)
300 302
301 return ret; 303 return ret;
302} 304}
305
306void cx18_dvb_work_handler(struct cx18 *cx)
307{
308 struct cx18_buffer *buf;
309 struct cx18_stream *s = &cx->streams[CX18_ENC_STREAM_TYPE_TS];
310
311 while ((buf = cx18_dequeue(s, &s->q_full)) != NULL) {
312 if (s->dvb.enabled)
313 dvb_dmx_swfilter(&s->dvb.demux, buf->buf,
314 buf->bytesused);
315
316 cx18_enqueue(s, buf, &s->q_free);
317 cx18_buf_sync_for_device(s, buf);
318 if (s->handle == CX18_INVALID_TASK_HANDLE) /* FIXME: improve */
319 continue;
320
321 cx18_vapi(cx, CX18_CPU_DE_SET_MDL, 5, s->handle,
322 (void __iomem *)&cx->scb->cpu_mdl[buf->id] - cx->enc_mem,
323 1, buf->id, s->buf_size);
324 }
325}
diff --git a/drivers/media/video/cx18/cx18-dvb.h b/drivers/media/video/cx18/cx18-dvb.h
index bf8d8f6f5455..bbdcefc87f28 100644
--- a/drivers/media/video/cx18/cx18-dvb.h
+++ b/drivers/media/video/cx18/cx18-dvb.h
@@ -23,3 +23,4 @@
23 23
24int cx18_dvb_register(struct cx18_stream *stream); 24int cx18_dvb_register(struct cx18_stream *stream);
25void cx18_dvb_unregister(struct cx18_stream *stream); 25void cx18_dvb_unregister(struct cx18_stream *stream);
26void cx18_dvb_work_handler(struct cx18 *cx);
diff --git a/drivers/media/video/cx18/cx18-io.c b/drivers/media/video/cx18/cx18-io.c
index 700ab9439c16..220fae8d4ad7 100644
--- a/drivers/media/video/cx18/cx18-io.c
+++ b/drivers/media/video/cx18/cx18-io.c
@@ -88,6 +88,19 @@ void cx18_writel_retry(struct cx18 *cx, u32 val, void __iomem *addr)
88 cx18_log_write_retries(cx, i, addr); 88 cx18_log_write_retries(cx, i, addr);
89} 89}
90 90
91void _cx18_writel_expect(struct cx18 *cx, u32 val, void __iomem *addr,
92 u32 eval, u32 mask)
93{
94 int i;
95 eval &= mask;
96 for (i = 0; i < CX18_MAX_MMIO_RETRIES; i++) {
97 cx18_writel_noretry(cx, val, addr);
98 if (eval == (cx18_readl_noretry(cx, addr) & mask))
99 break;
100 }
101 cx18_log_write_retries(cx, i, addr);
102}
103
91void cx18_writew_retry(struct cx18 *cx, u16 val, void __iomem *addr) 104void cx18_writew_retry(struct cx18 *cx, u16 val, void __iomem *addr)
92{ 105{
93 int i; 106 int i;
@@ -218,7 +231,7 @@ void cx18_memset_io(struct cx18 *cx, void __iomem *addr, int val, size_t count)
218void cx18_sw1_irq_enable(struct cx18 *cx, u32 val) 231void cx18_sw1_irq_enable(struct cx18 *cx, u32 val)
219{ 232{
220 u32 r; 233 u32 r;
221 cx18_write_reg(cx, val, SW1_INT_STATUS); 234 cx18_write_reg_expect(cx, val, SW1_INT_STATUS, ~val, val);
222 r = cx18_read_reg(cx, SW1_INT_ENABLE_PCI); 235 r = cx18_read_reg(cx, SW1_INT_ENABLE_PCI);
223 cx18_write_reg(cx, r | val, SW1_INT_ENABLE_PCI); 236 cx18_write_reg(cx, r | val, SW1_INT_ENABLE_PCI);
224} 237}
@@ -233,7 +246,7 @@ void cx18_sw1_irq_disable(struct cx18 *cx, u32 val)
233void cx18_sw2_irq_enable(struct cx18 *cx, u32 val) 246void cx18_sw2_irq_enable(struct cx18 *cx, u32 val)
234{ 247{
235 u32 r; 248 u32 r;
236 cx18_write_reg(cx, val, SW2_INT_STATUS); 249 cx18_write_reg_expect(cx, val, SW2_INT_STATUS, ~val, val);
237 r = cx18_read_reg(cx, SW2_INT_ENABLE_PCI); 250 r = cx18_read_reg(cx, SW2_INT_ENABLE_PCI);
238 cx18_write_reg(cx, r | val, SW2_INT_ENABLE_PCI); 251 cx18_write_reg(cx, r | val, SW2_INT_ENABLE_PCI);
239} 252}
diff --git a/drivers/media/video/cx18/cx18-io.h b/drivers/media/video/cx18/cx18-io.h
index 287a5e8bf67b..425244453ea7 100644
--- a/drivers/media/video/cx18/cx18-io.h
+++ b/drivers/media/video/cx18/cx18-io.h
@@ -133,6 +133,8 @@ static inline void cx18_writel(struct cx18 *cx, u32 val, void __iomem *addr)
133 cx18_writel_noretry(cx, val, addr); 133 cx18_writel_noretry(cx, val, addr);
134} 134}
135 135
136void _cx18_writel_expect(struct cx18 *cx, u32 val, void __iomem *addr,
137 u32 eval, u32 mask);
136 138
137static inline 139static inline
138void cx18_writew_noretry(struct cx18 *cx, u16 val, void __iomem *addr) 140void cx18_writew_noretry(struct cx18 *cx, u16 val, void __iomem *addr)
@@ -271,6 +273,21 @@ static inline void cx18_write_reg(struct cx18 *cx, u32 val, u32 reg)
271 cx18_write_reg_noretry(cx, val, reg); 273 cx18_write_reg_noretry(cx, val, reg);
272} 274}
273 275
276static inline void _cx18_write_reg_expect(struct cx18 *cx, u32 val, u32 reg,
277 u32 eval, u32 mask)
278{
279 _cx18_writel_expect(cx, val, cx->reg_mem + reg, eval, mask);
280}
281
282static inline void cx18_write_reg_expect(struct cx18 *cx, u32 val, u32 reg,
283 u32 eval, u32 mask)
284{
285 if (cx18_retry_mmio)
286 _cx18_write_reg_expect(cx, val, reg, eval, mask);
287 else
288 cx18_write_reg_noretry(cx, val, reg);
289}
290
274 291
275static inline u32 cx18_read_reg_noretry(struct cx18 *cx, u32 reg) 292static inline u32 cx18_read_reg_noretry(struct cx18 *cx, u32 reg)
276{ 293{
diff --git a/drivers/media/video/cx18/cx18-irq.c b/drivers/media/video/cx18/cx18-irq.c
index 360330f5463f..5fbfbd0f1493 100644
--- a/drivers/media/video/cx18/cx18-irq.c
+++ b/drivers/media/video/cx18/cx18-irq.c
@@ -29,8 +29,20 @@
29#include "cx18-mailbox.h" 29#include "cx18-mailbox.h"
30#include "cx18-vbi.h" 30#include "cx18-vbi.h"
31#include "cx18-scb.h" 31#include "cx18-scb.h"
32#include "cx18-dvb.h"
32 33
33#define DMA_MAGIC_COOKIE 0x000001fe 34void cx18_work_handler(struct work_struct *work)
35{
36 struct cx18 *cx = container_of(work, struct cx18, work);
37 if (test_and_clear_bit(CX18_F_I_WORK_INITED, &cx->i_flags)) {
38 struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 };
39 /* This thread must use the FIFO scheduler as it
40 * is realtime sensitive. */
41 sched_setscheduler(current, SCHED_FIFO, &param);
42 }
43 if (test_and_clear_bit(CX18_F_I_WORK_HANDLER_DVB, &cx->i_flags))
44 cx18_dvb_work_handler(cx);
45}
34 46
35static void epu_dma_done(struct cx18 *cx, struct cx18_mailbox *mb) 47static void epu_dma_done(struct cx18 *cx, struct cx18_mailbox *mb)
36{ 48{
@@ -67,17 +79,11 @@ static void epu_dma_done(struct cx18 *cx, struct cx18_mailbox *mb)
67 if (buf) { 79 if (buf) {
68 cx18_buf_sync_for_cpu(s, buf); 80 cx18_buf_sync_for_cpu(s, buf);
69 if (s->type == CX18_ENC_STREAM_TYPE_TS && s->dvb.enabled) { 81 if (s->type == CX18_ENC_STREAM_TYPE_TS && s->dvb.enabled) {
70 /* process the buffer here */ 82 CX18_DEBUG_HI_DMA("TS recv bytesused = %d\n",
71 CX18_DEBUG_HI_DMA("TS recv and sent bytesused=%d\n",
72 buf->bytesused);
73
74 dvb_dmx_swfilter(&s->dvb.demux, buf->buf,
75 buf->bytesused); 83 buf->bytesused);
76 84
77 cx18_buf_sync_for_device(s, buf); 85 set_bit(CX18_F_I_WORK_HANDLER_DVB, &cx->i_flags);
78 cx18_vapi(cx, CX18_CPU_DE_SET_MDL, 5, s->handle, 86 set_bit(CX18_F_I_HAVE_WORK, &cx->i_flags);
79 (void __iomem *)&cx->scb->cpu_mdl[buf->id] - cx->enc_mem,
80 1, buf->id, s->buf_size);
81 } else 87 } else
82 set_bit(CX18_F_B_NEED_BUF_SWAP, &buf->b_flags); 88 set_bit(CX18_F_B_NEED_BUF_SWAP, &buf->b_flags);
83 } else { 89 } else {
@@ -109,7 +115,7 @@ static void epu_debug(struct cx18 *cx, struct cx18_mailbox *mb)
109 CX18_INFO("FW version: %s\n", p - 1); 115 CX18_INFO("FW version: %s\n", p - 1);
110} 116}
111 117
112static void hpu_cmd(struct cx18 *cx, u32 sw1) 118static void epu_cmd(struct cx18 *cx, u32 sw1)
113{ 119{
114 struct cx18_mailbox mb; 120 struct cx18_mailbox mb;
115 121
@@ -125,12 +131,31 @@ static void hpu_cmd(struct cx18 *cx, u32 sw1)
125 epu_debug(cx, &mb); 131 epu_debug(cx, &mb);
126 break; 132 break;
127 default: 133 default:
128 CX18_WARN("Unexpected mailbox command %08x\n", mb.cmd); 134 CX18_WARN("Unknown CPU_TO_EPU mailbox command %#08x\n",
135 mb.cmd);
129 break; 136 break;
130 } 137 }
131 } 138 }
132 if (sw1 & (IRQ_APU_TO_EPU | IRQ_HPU_TO_EPU)) 139
133 CX18_WARN("Unexpected interrupt %08x\n", sw1); 140 if (sw1 & IRQ_APU_TO_EPU) {
141 cx18_memcpy_fromio(cx, &mb, &cx->scb->apu2epu_mb, sizeof(mb));
142 CX18_WARN("Unknown APU_TO_EPU mailbox command %#08x\n", mb.cmd);
143 }
144
145 if (sw1 & IRQ_HPU_TO_EPU) {
146 cx18_memcpy_fromio(cx, &mb, &cx->scb->hpu2epu_mb, sizeof(mb));
147 CX18_WARN("Unknown HPU_TO_EPU mailbox command %#08x\n", mb.cmd);
148 }
149}
150
151static void xpu_ack(struct cx18 *cx, u32 sw2)
152{
153 if (sw2 & IRQ_CPU_TO_EPU_ACK)
154 wake_up(&cx->mb_cpu_waitq);
155 if (sw2 & IRQ_APU_TO_EPU_ACK)
156 wake_up(&cx->mb_apu_waitq);
157 if (sw2 & IRQ_HPU_TO_EPU_ACK)
158 wake_up(&cx->mb_hpu_waitq);
134} 159}
135 160
136irqreturn_t cx18_irq_handler(int irq, void *dev_id) 161irqreturn_t cx18_irq_handler(int irq, void *dev_id)
@@ -140,43 +165,36 @@ irqreturn_t cx18_irq_handler(int irq, void *dev_id)
140 u32 sw2, sw2_mask; 165 u32 sw2, sw2_mask;
141 u32 hw2, hw2_mask; 166 u32 hw2, hw2_mask;
142 167
143 spin_lock(&cx->dma_reg_lock); 168 sw1_mask = cx18_read_reg(cx, SW1_INT_ENABLE_PCI);
144 169 sw1 = cx18_read_reg(cx, SW1_INT_STATUS) & sw1_mask;
170 sw2_mask = cx18_read_reg(cx, SW2_INT_ENABLE_PCI);
171 sw2 = cx18_read_reg(cx, SW2_INT_STATUS) & sw2_mask;
145 hw2_mask = cx18_read_reg(cx, HW2_INT_MASK5_PCI); 172 hw2_mask = cx18_read_reg(cx, HW2_INT_MASK5_PCI);
146 hw2 = cx18_read_reg(cx, HW2_INT_CLR_STATUS) & hw2_mask; 173 hw2 = cx18_read_reg(cx, HW2_INT_CLR_STATUS) & hw2_mask;
147 sw2_mask = cx18_read_reg(cx, SW2_INT_ENABLE_PCI) | IRQ_EPU_TO_HPU_ACK;
148 sw2 = cx18_read_reg(cx, SW2_INT_STATUS) & sw2_mask;
149 sw1_mask = cx18_read_reg(cx, SW1_INT_ENABLE_PCI) | IRQ_EPU_TO_HPU;
150 sw1 = cx18_read_reg(cx, SW1_INT_STATUS) & sw1_mask;
151 174
152 cx18_write_reg(cx, sw2&sw2_mask, SW2_INT_STATUS); 175 if (sw1)
153 cx18_write_reg(cx, sw1&sw1_mask, SW1_INT_STATUS); 176 cx18_write_reg_expect(cx, sw1, SW1_INT_STATUS, ~sw1, sw1);
154 cx18_write_reg(cx, hw2&hw2_mask, HW2_INT_CLR_STATUS); 177 if (sw2)
178 cx18_write_reg_expect(cx, sw2, SW2_INT_STATUS, ~sw2, sw2);
179 if (hw2)
180 cx18_write_reg_expect(cx, hw2, HW2_INT_CLR_STATUS, ~hw2, hw2);
155 181
156 if (sw1 || sw2 || hw2) 182 if (sw1 || sw2 || hw2)
157 CX18_DEBUG_HI_IRQ("SW1: %x SW2: %x HW2: %x\n", sw1, sw2, hw2); 183 CX18_DEBUG_HI_IRQ("SW1: %x SW2: %x HW2: %x\n", sw1, sw2, hw2);
158 184
159 /* To do: interrupt-based I2C handling 185 /* To do: interrupt-based I2C handling
160 if (hw2 & 0x00c00000) { 186 if (hw2 & (HW2_I2C1_INT|HW2_I2C2_INT)) {
161 } 187 }
162 */ 188 */
163 189
164 if (sw2) { 190 if (sw2)
165 if (sw2 & (cx18_readl(cx, &cx->scb->cpu2hpu_irq_ack) | 191 xpu_ack(cx, sw2);
166 cx18_readl(cx, &cx->scb->cpu2epu_irq_ack)))
167 wake_up(&cx->mb_cpu_waitq);
168 if (sw2 & (cx18_readl(cx, &cx->scb->apu2hpu_irq_ack) |
169 cx18_readl(cx, &cx->scb->apu2epu_irq_ack)))
170 wake_up(&cx->mb_apu_waitq);
171 if (sw2 & cx18_readl(cx, &cx->scb->epu2hpu_irq_ack))
172 wake_up(&cx->mb_epu_waitq);
173 if (sw2 & cx18_readl(cx, &cx->scb->hpu2epu_irq_ack))
174 wake_up(&cx->mb_hpu_waitq);
175 }
176 192
177 if (sw1) 193 if (sw1)
178 hpu_cmd(cx, sw1); 194 epu_cmd(cx, sw1);
179 spin_unlock(&cx->dma_reg_lock); 195
196 if (test_and_clear_bit(CX18_F_I_HAVE_WORK, &cx->i_flags))
197 queue_work(cx->work_queue, &cx->work);
180 198
181 return (hw2 | sw1 | sw2) ? IRQ_HANDLED : IRQ_NONE; 199 return (sw1 || sw2 || hw2) ? IRQ_HANDLED : IRQ_NONE;
182} 200}
diff --git a/drivers/media/video/cx18/cx18-irq.h b/drivers/media/video/cx18/cx18-irq.h
index 379f704f5cba..6173ca3bc9e4 100644
--- a/drivers/media/video/cx18/cx18-irq.h
+++ b/drivers/media/video/cx18/cx18-irq.h
@@ -32,6 +32,4 @@
32 32
33irqreturn_t cx18_irq_handler(int irq, void *dev_id); 33irqreturn_t cx18_irq_handler(int irq, void *dev_id);
34 34
35void cx18_irq_work_handler(struct work_struct *work); 35void cx18_work_handler(struct work_struct *work);
36void cx18_dma_stream_dec_prepare(struct cx18_stream *s, u32 offset, int lock);
37void cx18_unfinished_dma(unsigned long arg);
diff --git a/drivers/media/video/cx18/cx18-mailbox.c b/drivers/media/video/cx18/cx18-mailbox.c
index 9d18dd22de76..acff7dfb60df 100644
--- a/drivers/media/video/cx18/cx18-mailbox.c
+++ b/drivers/media/video/cx18/cx18-mailbox.c
@@ -83,7 +83,7 @@ static const struct cx18_api_info api_info[] = {
83 API_ENTRY(CPU, CX18_CPU_DE_SET_MDL_ACK, 0), 83 API_ENTRY(CPU, CX18_CPU_DE_SET_MDL_ACK, 0),
84 API_ENTRY(CPU, CX18_CPU_DE_SET_MDL, API_FAST), 84 API_ENTRY(CPU, CX18_CPU_DE_SET_MDL, API_FAST),
85 API_ENTRY(CPU, CX18_APU_RESETAI, API_FAST), 85 API_ENTRY(CPU, CX18_APU_RESETAI, API_FAST),
86 API_ENTRY(CPU, CX18_CPU_DE_RELEASE_MDL, 0), 86 API_ENTRY(CPU, CX18_CPU_DE_RELEASE_MDL, API_SLOW),
87 API_ENTRY(0, 0, 0), 87 API_ENTRY(0, 0, 0),
88}; 88};
89 89
@@ -176,7 +176,7 @@ long cx18_mb_ack(struct cx18 *cx, const struct cx18_mailbox *mb)
176 176
177 cx18_setup_page(cx, SCB_OFFSET); 177 cx18_setup_page(cx, SCB_OFFSET);
178 cx18_write_sync(cx, mb->request, &ack_mb->ack); 178 cx18_write_sync(cx, mb->request, &ack_mb->ack);
179 cx18_write_reg(cx, ack_irq, SW2_INT_SET); 179 cx18_write_reg_expect(cx, ack_irq, SW2_INT_SET, ack_irq, ack_irq);
180 return 0; 180 return 0;
181} 181}
182 182
@@ -225,7 +225,7 @@ static int cx18_api_call(struct cx18 *cx, u32 cmd, int args, u32 data[])
225 } 225 }
226 if (info->flags & API_FAST) 226 if (info->flags & API_FAST)
227 timeout /= 2; 227 timeout /= 2;
228 cx18_write_reg(cx, irq, SW1_INT_SET); 228 cx18_write_reg_expect(cx, irq, SW1_INT_SET, irq, irq);
229 229
230 while (!sig && cx18_readl(cx, &mb->ack) != cx18_readl(cx, &mb->request) 230 while (!sig && cx18_readl(cx, &mb->ack) != cx18_readl(cx, &mb->request)
231 && cnt < 660) { 231 && cnt < 660) {
diff --git a/drivers/media/video/cx18/cx18-queue.c b/drivers/media/video/cx18/cx18-queue.c
index a33ba04a2686..174682c2582f 100644
--- a/drivers/media/video/cx18/cx18-queue.c
+++ b/drivers/media/video/cx18/cx18-queue.c
@@ -88,15 +88,13 @@ struct cx18_buffer *cx18_queue_get_buf_irq(struct cx18_stream *s, u32 id,
88 88
89 if (buf->id != id) 89 if (buf->id != id)
90 continue; 90 continue;
91
91 buf->bytesused = bytesused; 92 buf->bytesused = bytesused;
92 /* the transport buffers are handled differently, 93 atomic_dec(&s->q_free.buffers);
93 they are not moved to the full queue */ 94 atomic_inc(&s->q_full.buffers);
94 if (s->type != CX18_ENC_STREAM_TYPE_TS) { 95 s->q_full.bytesused += buf->bytesused;
95 atomic_dec(&s->q_free.buffers); 96 list_move_tail(&buf->list, &s->q_full.list);
96 atomic_inc(&s->q_full.buffers); 97
97 s->q_full.bytesused += buf->bytesused;
98 list_move_tail(&buf->list, &s->q_full.list);
99 }
100 spin_unlock(&s->qlock); 98 spin_unlock(&s->qlock);
101 return buf; 99 return buf;
102 } 100 }
diff --git a/drivers/media/video/cx18/cx18-scb.h b/drivers/media/video/cx18/cx18-scb.h
index 86b4cb15d163..594713bbed68 100644
--- a/drivers/media/video/cx18/cx18-scb.h
+++ b/drivers/media/video/cx18/cx18-scb.h
@@ -128,22 +128,22 @@ struct cx18_scb {
128 u32 apu2cpu_irq; 128 u32 apu2cpu_irq;
129 /* Value to write to register SW2 register set (0xC7003140) after the 129 /* Value to write to register SW2 register set (0xC7003140) after the
130 command is cleared */ 130 command is cleared */
131 u32 apu2cpu_irq_ack; 131 u32 cpu2apu_irq_ack;
132 u32 reserved2[13]; 132 u32 reserved2[13];
133 133
134 u32 hpu2cpu_mb_offset; 134 u32 hpu2cpu_mb_offset;
135 u32 hpu2cpu_irq; 135 u32 hpu2cpu_irq;
136 u32 hpu2cpu_irq_ack; 136 u32 cpu2hpu_irq_ack;
137 u32 reserved3[13]; 137 u32 reserved3[13];
138 138
139 u32 ppu2cpu_mb_offset; 139 u32 ppu2cpu_mb_offset;
140 u32 ppu2cpu_irq; 140 u32 ppu2cpu_irq;
141 u32 ppu2cpu_irq_ack; 141 u32 cpu2ppu_irq_ack;
142 u32 reserved4[13]; 142 u32 reserved4[13];
143 143
144 u32 epu2cpu_mb_offset; 144 u32 epu2cpu_mb_offset;
145 u32 epu2cpu_irq; 145 u32 epu2cpu_irq;
146 u32 epu2cpu_irq_ack; 146 u32 cpu2epu_irq_ack;
147 u32 reserved5[13]; 147 u32 reserved5[13];
148 u32 reserved6[8]; 148 u32 reserved6[8];
149 149
@@ -153,22 +153,22 @@ struct cx18_scb {
153 u32 reserved11[7]; 153 u32 reserved11[7];
154 u32 cpu2apu_mb_offset; 154 u32 cpu2apu_mb_offset;
155 u32 cpu2apu_irq; 155 u32 cpu2apu_irq;
156 u32 cpu2apu_irq_ack; 156 u32 apu2cpu_irq_ack;
157 u32 reserved12[13]; 157 u32 reserved12[13];
158 158
159 u32 hpu2apu_mb_offset; 159 u32 hpu2apu_mb_offset;
160 u32 hpu2apu_irq; 160 u32 hpu2apu_irq;
161 u32 hpu2apu_irq_ack; 161 u32 apu2hpu_irq_ack;
162 u32 reserved13[13]; 162 u32 reserved13[13];
163 163
164 u32 ppu2apu_mb_offset; 164 u32 ppu2apu_mb_offset;
165 u32 ppu2apu_irq; 165 u32 ppu2apu_irq;
166 u32 ppu2apu_irq_ack; 166 u32 apu2ppu_irq_ack;
167 u32 reserved14[13]; 167 u32 reserved14[13];
168 168
169 u32 epu2apu_mb_offset; 169 u32 epu2apu_mb_offset;
170 u32 epu2apu_irq; 170 u32 epu2apu_irq;
171 u32 epu2apu_irq_ack; 171 u32 apu2epu_irq_ack;
172 u32 reserved15[13]; 172 u32 reserved15[13];
173 u32 reserved16[8]; 173 u32 reserved16[8];
174 174
@@ -178,22 +178,22 @@ struct cx18_scb {
178 u32 reserved21[7]; 178 u32 reserved21[7];
179 u32 cpu2hpu_mb_offset; 179 u32 cpu2hpu_mb_offset;
180 u32 cpu2hpu_irq; 180 u32 cpu2hpu_irq;
181 u32 cpu2hpu_irq_ack; 181 u32 hpu2cpu_irq_ack;
182 u32 reserved22[13]; 182 u32 reserved22[13];
183 183
184 u32 apu2hpu_mb_offset; 184 u32 apu2hpu_mb_offset;
185 u32 apu2hpu_irq; 185 u32 apu2hpu_irq;
186 u32 apu2hpu_irq_ack; 186 u32 hpu2apu_irq_ack;
187 u32 reserved23[13]; 187 u32 reserved23[13];
188 188
189 u32 ppu2hpu_mb_offset; 189 u32 ppu2hpu_mb_offset;
190 u32 ppu2hpu_irq; 190 u32 ppu2hpu_irq;
191 u32 ppu2hpu_irq_ack; 191 u32 hpu2ppu_irq_ack;
192 u32 reserved24[13]; 192 u32 reserved24[13];
193 193
194 u32 epu2hpu_mb_offset; 194 u32 epu2hpu_mb_offset;
195 u32 epu2hpu_irq; 195 u32 epu2hpu_irq;
196 u32 epu2hpu_irq_ack; 196 u32 hpu2epu_irq_ack;
197 u32 reserved25[13]; 197 u32 reserved25[13];
198 u32 reserved26[8]; 198 u32 reserved26[8];
199 199
@@ -203,22 +203,22 @@ struct cx18_scb {
203 u32 reserved31[7]; 203 u32 reserved31[7];
204 u32 cpu2ppu_mb_offset; 204 u32 cpu2ppu_mb_offset;
205 u32 cpu2ppu_irq; 205 u32 cpu2ppu_irq;
206 u32 cpu2ppu_irq_ack; 206 u32 ppu2cpu_irq_ack;
207 u32 reserved32[13]; 207 u32 reserved32[13];
208 208
209 u32 apu2ppu_mb_offset; 209 u32 apu2ppu_mb_offset;
210 u32 apu2ppu_irq; 210 u32 apu2ppu_irq;
211 u32 apu2ppu_irq_ack; 211 u32 ppu2apu_irq_ack;
212 u32 reserved33[13]; 212 u32 reserved33[13];
213 213
214 u32 hpu2ppu_mb_offset; 214 u32 hpu2ppu_mb_offset;
215 u32 hpu2ppu_irq; 215 u32 hpu2ppu_irq;
216 u32 hpu2ppu_irq_ack; 216 u32 ppu2hpu_irq_ack;
217 u32 reserved34[13]; 217 u32 reserved34[13];
218 218
219 u32 epu2ppu_mb_offset; 219 u32 epu2ppu_mb_offset;
220 u32 epu2ppu_irq; 220 u32 epu2ppu_irq;
221 u32 epu2ppu_irq_ack; 221 u32 ppu2epu_irq_ack;
222 u32 reserved35[13]; 222 u32 reserved35[13];
223 u32 reserved36[8]; 223 u32 reserved36[8];
224 224
@@ -228,22 +228,22 @@ struct cx18_scb {
228 u32 reserved41[7]; 228 u32 reserved41[7];
229 u32 cpu2epu_mb_offset; 229 u32 cpu2epu_mb_offset;
230 u32 cpu2epu_irq; 230 u32 cpu2epu_irq;
231 u32 cpu2epu_irq_ack; 231 u32 epu2cpu_irq_ack;
232 u32 reserved42[13]; 232 u32 reserved42[13];
233 233
234 u32 apu2epu_mb_offset; 234 u32 apu2epu_mb_offset;
235 u32 apu2epu_irq; 235 u32 apu2epu_irq;
236 u32 apu2epu_irq_ack; 236 u32 epu2apu_irq_ack;
237 u32 reserved43[13]; 237 u32 reserved43[13];
238 238
239 u32 hpu2epu_mb_offset; 239 u32 hpu2epu_mb_offset;
240 u32 hpu2epu_irq; 240 u32 hpu2epu_irq;
241 u32 hpu2epu_irq_ack; 241 u32 epu2hpu_irq_ack;
242 u32 reserved44[13]; 242 u32 reserved44[13];
243 243
244 u32 ppu2epu_mb_offset; 244 u32 ppu2epu_mb_offset;
245 u32 ppu2epu_irq; 245 u32 ppu2epu_irq;
246 u32 ppu2epu_irq_ack; 246 u32 epu2ppu_irq_ack;
247 u32 reserved45[13]; 247 u32 reserved45[13];
248 u32 reserved46[8]; 248 u32 reserved46[8];
249 249
diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c
index 078be6319556..d3ae5b4dfca7 100644
--- a/drivers/media/video/cx88/cx88-blackbird.c
+++ b/drivers/media/video/cx88/cx88-blackbird.c
@@ -1078,7 +1078,7 @@ static int mpeg_open(struct inode *inode, struct file *file)
1078 } 1078 }
1079 } 1079 }
1080 1080
1081 if (blackbird_initialize_codec(dev) < 0) { 1081 if (!atomic_read(&dev->core->mpeg_users) && blackbird_initialize_codec(dev) < 0) {
1082 if (drv) 1082 if (drv)
1083 drv->request_release(drv); 1083 drv->request_release(drv);
1084 unlock_kernel(); 1084 unlock_kernel();
@@ -1109,6 +1109,8 @@ static int mpeg_open(struct inode *inode, struct file *file)
1109 fh->mpegq.field); 1109 fh->mpegq.field);
1110 unlock_kernel(); 1110 unlock_kernel();
1111 1111
1112 atomic_inc(&dev->core->mpeg_users);
1113
1112 return 0; 1114 return 0;
1113} 1115}
1114 1116
@@ -1118,7 +1120,7 @@ static int mpeg_release(struct inode *inode, struct file *file)
1118 struct cx8802_dev *dev = fh->dev; 1120 struct cx8802_dev *dev = fh->dev;
1119 struct cx8802_driver *drv = NULL; 1121 struct cx8802_driver *drv = NULL;
1120 1122
1121 if (dev->mpeg_active) 1123 if (dev->mpeg_active && atomic_read(&dev->core->mpeg_users) == 1)
1122 blackbird_stop_codec(dev); 1124 blackbird_stop_codec(dev);
1123 1125
1124 cx8802_cancel_buffers(fh->dev); 1126 cx8802_cancel_buffers(fh->dev);
@@ -1138,6 +1140,8 @@ static int mpeg_release(struct inode *inode, struct file *file)
1138 if (drv) 1140 if (drv)
1139 drv->request_release(drv); 1141 drv->request_release(drv);
1140 1142
1143 atomic_dec(&dev->core->mpeg_users);
1144
1141 return 0; 1145 return 0;
1142} 1146}
1143 1147
@@ -1158,6 +1162,10 @@ static unsigned int
1158mpeg_poll(struct file *file, struct poll_table_struct *wait) 1162mpeg_poll(struct file *file, struct poll_table_struct *wait)
1159{ 1163{
1160 struct cx8802_fh *fh = file->private_data; 1164 struct cx8802_fh *fh = file->private_data;
1165 struct cx8802_dev *dev = fh->dev;
1166
1167 if (!dev->mpeg_active)
1168 blackbird_start_codec(file, fh);
1161 1169
1162 return videobuf_poll_stream(file, &fh->mpegq, wait); 1170 return videobuf_poll_stream(file, &fh->mpegq, wait);
1163} 1171}
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index cf6c30d4e545..309ca5e68063 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -598,6 +598,11 @@ static int dvb_register(struct cx8802_dev *dev)
598 struct videobuf_dvb_frontend *fe0, *fe1 = NULL; 598 struct videobuf_dvb_frontend *fe0, *fe1 = NULL;
599 int mfe_shared = 0; /* bus not shared by default */ 599 int mfe_shared = 0; /* bus not shared by default */
600 600
601 if (0 != core->i2c_rc) {
602 printk(KERN_ERR "%s/2: no i2c-bus available, cannot attach dvb drivers\n", core->name);
603 goto frontend_detach;
604 }
605
601 /* Get the first frontend */ 606 /* Get the first frontend */
602 fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1); 607 fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1);
603 if (!fe0) 608 if (!fe0)
diff --git a/drivers/media/video/cx88/cx88-mpeg.c b/drivers/media/video/cx88/cx88-mpeg.c
index a1c435b4b1cd..3ebdcd1d83f8 100644
--- a/drivers/media/video/cx88/cx88-mpeg.c
+++ b/drivers/media/video/cx88/cx88-mpeg.c
@@ -769,10 +769,6 @@ static int __devinit cx8802_probe(struct pci_dev *pci_dev,
769 struct cx8802_dev *dev; 769 struct cx8802_dev *dev;
770 struct cx88_core *core; 770 struct cx88_core *core;
771 int err; 771 int err;
772#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
773 struct videobuf_dvb_frontend *demod;
774 int i;
775#endif
776 772
777 /* general setup */ 773 /* general setup */
778 core = cx88_core_get(pci_dev); 774 core = cx88_core_get(pci_dev);
@@ -803,15 +799,21 @@ static int __devinit cx8802_probe(struct pci_dev *pci_dev,
803 mutex_init(&dev->frontends.lock); 799 mutex_init(&dev->frontends.lock);
804 INIT_LIST_HEAD(&dev->frontends.felist); 800 INIT_LIST_HEAD(&dev->frontends.felist);
805 801
806 if (core->board.num_frontends) 802 if (core->board.num_frontends) {
807 printk(KERN_INFO "%s() allocating %d frontend(s)\n", __func__, core->board.num_frontends); 803 struct videobuf_dvb_frontend *fe;
808 804 int i;
809 for (i = 1; i <= core->board.num_frontends; i++) { 805
810 demod = videobuf_dvb_alloc_frontend(&dev->frontends, i); 806 printk(KERN_INFO "%s() allocating %d frontend(s)\n", __func__,
811 if(demod == NULL) { 807 core->board.num_frontends);
812 printk(KERN_ERR "%s() failed to alloc\n", __func__); 808 for (i = 1; i <= core->board.num_frontends; i++) {
813 err = -ENOMEM; 809 fe = videobuf_dvb_alloc_frontend(&dev->frontends, i);
814 goto fail_free; 810 if(fe == NULL) {
811 printk(KERN_ERR "%s() failed to alloc\n",
812 __func__);
813 videobuf_dvb_dealloc_frontends(&dev->frontends);
814 err = -ENOMEM;
815 goto fail_free;
816 }
815 } 817 }
816 } 818 }
817#endif 819#endif
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index 61265fd04d56..b96ce991d968 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -1216,8 +1216,12 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
1216 struct cx8800_fh *fh = priv; 1216 struct cx8800_fh *fh = priv;
1217 struct cx8800_dev *dev = fh->dev; 1217 struct cx8800_dev *dev = fh->dev;
1218 1218
1219 if (unlikely(fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)) 1219 /* We should remember that this driver also supports teletext, */
1220 /* so we have to test if the v4l2_buf_type is VBI capture data. */
1221 if (unlikely((fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
1222 (fh->type != V4L2_BUF_TYPE_VBI_CAPTURE)))
1220 return -EINVAL; 1223 return -EINVAL;
1224
1221 if (unlikely(i != fh->type)) 1225 if (unlikely(i != fh->type))
1222 return -EINVAL; 1226 return -EINVAL;
1223 1227
@@ -1232,8 +1236,10 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
1232 struct cx8800_dev *dev = fh->dev; 1236 struct cx8800_dev *dev = fh->dev;
1233 int err, res; 1237 int err, res;
1234 1238
1235 if (fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) 1239 if ((fh->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
1240 (fh->type != V4L2_BUF_TYPE_VBI_CAPTURE))
1236 return -EINVAL; 1241 return -EINVAL;
1242
1237 if (i != fh->type) 1243 if (i != fh->type)
1238 return -EINVAL; 1244 return -EINVAL;
1239 1245
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h
index 76207c2856b7..f4240965be32 100644
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -352,6 +352,7 @@ struct cx88_core {
352 /* various v4l controls */ 352 /* various v4l controls */
353 u32 freq; 353 u32 freq;
354 atomic_t users; 354 atomic_t users;
355 atomic_t mpeg_users;
355 356
356 /* cx88-video needs to access cx8802 for hybrid tuner pll access. */ 357 /* cx88-video needs to access cx8802 for hybrid tuner pll access. */
357 struct cx8802_dev *dvbdev; 358 struct cx8802_dev *dvbdev;
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..610f535a257c 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 };
@@ -1519,7 +1520,7 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp)
1519 struct em28xx_fh *fh; 1520 struct em28xx_fh *fh;
1520 enum v4l2_buf_type fh_type = 0; 1521 enum v4l2_buf_type fh_type = 0;
1521 1522
1522 lock_kernel(); 1523 mutex_lock(&em28xx_devlist_mutex);
1523 list_for_each_entry(h, &em28xx_devlist, devlist) { 1524 list_for_each_entry(h, &em28xx_devlist, devlist) {
1524 if (h->vdev->minor == minor) { 1525 if (h->vdev->minor == minor) {
1525 dev = h; 1526 dev = h;
@@ -1535,10 +1536,11 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp)
1535 dev = h; 1536 dev = h;
1536 } 1537 }
1537 } 1538 }
1538 if (NULL == dev) { 1539 mutex_unlock(&em28xx_devlist_mutex);
1539 unlock_kernel(); 1540 if (NULL == dev)
1540 return -ENODEV; 1541 return -ENODEV;
1541 } 1542
1543 mutex_lock(&dev->lock);
1542 1544
1543 em28xx_videodbg("open minor=%d type=%s users=%d\n", 1545 em28xx_videodbg("open minor=%d type=%s users=%d\n",
1544 minor, v4l2_type_names[fh_type], dev->users); 1546 minor, v4l2_type_names[fh_type], dev->users);
@@ -1547,10 +1549,9 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp)
1547 fh = kzalloc(sizeof(struct em28xx_fh), GFP_KERNEL); 1549 fh = kzalloc(sizeof(struct em28xx_fh), GFP_KERNEL);
1548 if (!fh) { 1550 if (!fh) {
1549 em28xx_errdev("em28xx-video.c: Out of memory?!\n"); 1551 em28xx_errdev("em28xx-video.c: Out of memory?!\n");
1550 unlock_kernel(); 1552 mutex_unlock(&dev->lock);
1551 return -ENOMEM; 1553 return -ENOMEM;
1552 } 1554 }
1553 mutex_lock(&dev->lock);
1554 fh->dev = dev; 1555 fh->dev = dev;
1555 fh->radio = radio; 1556 fh->radio = radio;
1556 fh->type = fh_type; 1557 fh->type = fh_type;
@@ -1584,7 +1585,6 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp)
1584 sizeof(struct em28xx_buffer), fh); 1585 sizeof(struct em28xx_buffer), fh);
1585 1586
1586 mutex_unlock(&dev->lock); 1587 mutex_unlock(&dev->lock);
1587 unlock_kernel();
1588 1588
1589 return errCode; 1589 return errCode;
1590} 1590}
@@ -1871,6 +1871,7 @@ int em28xx_register_extension(struct em28xx_ops *ops)
1871{ 1871{
1872 struct em28xx *dev = NULL; 1872 struct em28xx *dev = NULL;
1873 1873
1874 mutex_lock(&em28xx_devlist_mutex);
1874 mutex_lock(&em28xx_extension_devlist_lock); 1875 mutex_lock(&em28xx_extension_devlist_lock);
1875 list_add_tail(&ops->next, &em28xx_extension_devlist); 1876 list_add_tail(&ops->next, &em28xx_extension_devlist);
1876 list_for_each_entry(dev, &em28xx_devlist, devlist) { 1877 list_for_each_entry(dev, &em28xx_devlist, devlist) {
@@ -1879,6 +1880,7 @@ int em28xx_register_extension(struct em28xx_ops *ops)
1879 } 1880 }
1880 printk(KERN_INFO "Em28xx: Initialized (%s) extension\n", ops->name); 1881 printk(KERN_INFO "Em28xx: Initialized (%s) extension\n", ops->name);
1881 mutex_unlock(&em28xx_extension_devlist_lock); 1882 mutex_unlock(&em28xx_extension_devlist_lock);
1883 mutex_unlock(&em28xx_devlist_mutex);
1882 return 0; 1884 return 0;
1883} 1885}
1884EXPORT_SYMBOL(em28xx_register_extension); 1886EXPORT_SYMBOL(em28xx_register_extension);
@@ -1887,6 +1889,7 @@ void em28xx_unregister_extension(struct em28xx_ops *ops)
1887{ 1889{
1888 struct em28xx *dev = NULL; 1890 struct em28xx *dev = NULL;
1889 1891
1892 mutex_lock(&em28xx_devlist_mutex);
1890 list_for_each_entry(dev, &em28xx_devlist, devlist) { 1893 list_for_each_entry(dev, &em28xx_devlist, devlist) {
1891 if (dev) 1894 if (dev)
1892 ops->fini(dev); 1895 ops->fini(dev);
@@ -1896,6 +1899,7 @@ void em28xx_unregister_extension(struct em28xx_ops *ops)
1896 printk(KERN_INFO "Em28xx: Removed (%s) extension\n", ops->name); 1899 printk(KERN_INFO "Em28xx: Removed (%s) extension\n", ops->name);
1897 list_del(&ops->next); 1900 list_del(&ops->next);
1898 mutex_unlock(&em28xx_extension_devlist_lock); 1901 mutex_unlock(&em28xx_extension_devlist_lock);
1902 mutex_unlock(&em28xx_devlist_mutex);
1899} 1903}
1900EXPORT_SYMBOL(em28xx_unregister_extension); 1904EXPORT_SYMBOL(em28xx_unregister_extension);
1901 1905
@@ -1921,6 +1925,60 @@ static struct video_device *em28xx_vdev_init(struct em28xx *dev,
1921} 1925}
1922 1926
1923 1927
1928static int register_analog_devices(struct em28xx *dev)
1929{
1930 int ret;
1931
1932 /* allocate and fill video video_device struct */
1933 dev->vdev = em28xx_vdev_init(dev, &em28xx_video_template, "video");
1934 if (!dev->vdev) {
1935 em28xx_errdev("cannot allocate video_device.\n");
1936 return -ENODEV;
1937 }
1938
1939 /* register v4l2 video video_device */
1940 ret = video_register_device(dev->vdev, VFL_TYPE_GRABBER,
1941 video_nr[dev->devno]);
1942 if (ret) {
1943 em28xx_errdev("unable to register video device (error=%i).\n",
1944 ret);
1945 return ret;
1946 }
1947
1948 /* Allocate and fill vbi video_device struct */
1949 dev->vbi_dev = em28xx_vdev_init(dev, &em28xx_video_template, "vbi");
1950
1951 /* register v4l2 vbi video_device */
1952 ret = video_register_device(dev->vbi_dev, VFL_TYPE_VBI,
1953 vbi_nr[dev->devno]);
1954 if (ret < 0) {
1955 em28xx_errdev("unable to register vbi device\n");
1956 return ret;
1957 }
1958
1959 if (em28xx_boards[dev->model].radio.type == EM28XX_RADIO) {
1960 dev->radio_dev = em28xx_vdev_init(dev, &em28xx_radio_template, "radio");
1961 if (!dev->radio_dev) {
1962 em28xx_errdev("cannot allocate video_device.\n");
1963 return -ENODEV;
1964 }
1965 ret = video_register_device(dev->radio_dev, VFL_TYPE_RADIO,
1966 radio_nr[dev->devno]);
1967 if (ret < 0) {
1968 em28xx_errdev("can't register radio device\n");
1969 return ret;
1970 }
1971 em28xx_info("Registered radio device as /dev/radio%d\n",
1972 dev->radio_dev->num);
1973 }
1974
1975 em28xx_info("V4L2 device registered as /dev/video%d and /dev/vbi%d\n",
1976 dev->vdev->num, dev->vbi_dev->num);
1977
1978 return 0;
1979}
1980
1981
1924/* 1982/*
1925 * em28xx_init_dev() 1983 * em28xx_init_dev()
1926 * allocates and inits the device structs, registers i2c bus and v4l device 1984 * allocates and inits the device structs, registers i2c bus and v4l device
@@ -1936,6 +1994,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
1936 1994
1937 dev->udev = udev; 1995 dev->udev = udev;
1938 mutex_init(&dev->lock); 1996 mutex_init(&dev->lock);
1997 mutex_init(&dev->ctrl_urb_lock);
1939 spin_lock_init(&dev->slock); 1998 spin_lock_init(&dev->slock);
1940 init_waitqueue_head(&dev->open); 1999 init_waitqueue_head(&dev->open);
1941 init_waitqueue_head(&dev->wait_frame); 2000 init_waitqueue_head(&dev->wait_frame);
@@ -1953,8 +2012,6 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
1953 errCode = em28xx_config(dev); 2012 errCode = em28xx_config(dev);
1954 if (errCode) { 2013 if (errCode) {
1955 em28xx_errdev("error configuring device\n"); 2014 em28xx_errdev("error configuring device\n");
1956 em28xx_devused &= ~(1<<dev->devno);
1957 kfree(dev);
1958 return -ENOMEM; 2015 return -ENOMEM;
1959 } 2016 }
1960 2017
@@ -2001,50 +2058,6 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
2001 return errCode; 2058 return errCode;
2002 } 2059 }
2003 2060
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 */ 2061 /* init video dma queues */
2049 INIT_LIST_HEAD(&dev->vidq.active); 2062 INIT_LIST_HEAD(&dev->vidq.active);
2050 INIT_LIST_HEAD(&dev->vidq.queued); 2063 INIT_LIST_HEAD(&dev->vidq.queued);
@@ -2071,8 +2084,14 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
2071 2084
2072 video_mux(dev, 0); 2085 video_mux(dev, 0);
2073 2086
2074 em28xx_info("V4L2 device registered as /dev/video%d and /dev/vbi%d\n", 2087 mutex_lock(&em28xx_devlist_mutex);
2075 dev->vdev->num, dev->vbi_dev->num); 2088 list_add_tail(&dev->devlist, &em28xx_devlist);
2089 retval = register_analog_devices(dev);
2090 if (retval < 0) {
2091 em28xx_release_resources(dev);
2092 mutex_unlock(&em28xx_devlist_mutex);
2093 goto fail_reg_devices;
2094 }
2076 2095
2077 mutex_lock(&em28xx_extension_devlist_lock); 2096 mutex_lock(&em28xx_extension_devlist_lock);
2078 if (!list_empty(&em28xx_extension_devlist)) { 2097 if (!list_empty(&em28xx_extension_devlist)) {
@@ -2082,13 +2101,12 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev,
2082 } 2101 }
2083 } 2102 }
2084 mutex_unlock(&em28xx_extension_devlist_lock); 2103 mutex_unlock(&em28xx_extension_devlist_lock);
2104 mutex_unlock(&em28xx_devlist_mutex);
2085 2105
2086 return 0; 2106 return 0;
2087 2107
2088fail_unreg: 2108fail_reg_devices:
2089 em28xx_release_resources(dev);
2090 mutex_unlock(&dev->lock); 2109 mutex_unlock(&dev->lock);
2091 kfree(dev);
2092 return retval; 2110 return retval;
2093} 2111}
2094 2112
@@ -2231,8 +2249,12 @@ static int em28xx_usb_probe(struct usb_interface *interface,
2231 2249
2232 /* allocate device struct */ 2250 /* allocate device struct */
2233 retval = em28xx_init_dev(&dev, udev, nr); 2251 retval = em28xx_init_dev(&dev, udev, nr);
2234 if (retval) 2252 if (retval) {
2253 em28xx_devused &= ~(1<<dev->devno);
2254 kfree(dev);
2255
2235 return retval; 2256 return retval;
2257 }
2236 2258
2237 em28xx_info("Found %s\n", em28xx_boards[dev->model].name); 2259 em28xx_info("Found %s\n", em28xx_boards[dev->model].name);
2238 2260
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/Kconfig b/drivers/media/video/gspca/Kconfig
index 4d0817471c9f..6b557c057fac 100644
--- a/drivers/media/video/gspca/Kconfig
+++ b/drivers/media/video/gspca/Kconfig
@@ -3,16 +3,16 @@ menuconfig USB_GSPCA
3 depends on VIDEO_V4L2 3 depends on VIDEO_V4L2
4 default m 4 default m
5 ---help--- 5 ---help---
6 Say Y here if you want to enable selecting webcams based 6 Say Y here if you want to enable selecting webcams based
7 on the GSPCA framework. 7 on the GSPCA framework.
8 8
9 See <file:Documentation/video4linux/gspca.txt> for more info. 9 See <file:Documentation/video4linux/gspca.txt> for more info.
10 10
11 This driver uses the Video For Linux API. You must say Y or M to 11 This driver uses the Video For Linux API. You must say Y or M to
12 "Video For Linux" to use this driver. 12 "Video For Linux" to use this driver.
13 13
14 To compile this driver as modules, choose M here: the 14 To compile this driver as modules, choose M here: the
15 modules will be called gspca_main. 15 modules will be called gspca_main.
16 16
17 17
18if USB_GSPCA && VIDEO_V4L2 18if USB_GSPCA && VIDEO_V4L2
@@ -23,190 +23,190 @@ config USB_GSPCA_CONEX
23 tristate "Conexant Camera Driver" 23 tristate "Conexant Camera Driver"
24 depends on VIDEO_V4L2 && USB_GSPCA 24 depends on VIDEO_V4L2 && USB_GSPCA
25 help 25 help
26 Say Y here if you want support for cameras based on the Conexant chip. 26 Say Y here if you want support for cameras based on the Conexant chip.
27 27
28 To compile this driver as a module, choose M here: the 28 To compile this driver as a module, choose M here: the
29 module will be called gspca_conex. 29 module will be called gspca_conex.
30 30
31config USB_GSPCA_ETOMS 31config USB_GSPCA_ETOMS
32 tristate "Etoms USB Camera Driver" 32 tristate "Etoms USB Camera Driver"
33 depends on VIDEO_V4L2 && USB_GSPCA 33 depends on VIDEO_V4L2 && USB_GSPCA
34 help 34 help
35 Say Y here if you want support for cameras based on the Etoms chip. 35 Say Y here if you want support for cameras based on the Etoms chip.
36 36
37 To compile this driver as a module, choose M here: the 37 To compile this driver as a module, choose M here: the
38 module will be called gspca_etoms. 38 module will be called gspca_etoms.
39 39
40config USB_GSPCA_FINEPIX 40config USB_GSPCA_FINEPIX
41 tristate "Fujifilm FinePix USB V4L2 driver" 41 tristate "Fujifilm FinePix USB V4L2 driver"
42 depends on VIDEO_V4L2 && USB_GSPCA 42 depends on VIDEO_V4L2 && USB_GSPCA
43 help 43 help
44 Say Y here if you want support for cameras based on the FinePix chip. 44 Say Y here if you want support for cameras based on the FinePix chip.
45 45
46 To compile this driver as a module, choose M here: the 46 To compile this driver as a module, choose M here: the
47 module will be called gspca_finepix. 47 module will be called gspca_finepix.
48 48
49config USB_GSPCA_MARS 49config USB_GSPCA_MARS
50 tristate "Mars USB Camera Driver" 50 tristate "Mars USB Camera Driver"
51 depends on VIDEO_V4L2 && USB_GSPCA 51 depends on VIDEO_V4L2 && USB_GSPCA
52 help 52 help
53 Say Y here if you want support for cameras based on the Mars chip. 53 Say Y here if you want support for cameras based on the Mars chip.
54 54
55 To compile this driver as a module, choose M here: the 55 To compile this driver as a module, choose M here: the
56 module will be called gspca_mars. 56 module will be called gspca_mars.
57 57
58config USB_GSPCA_OV519 58config USB_GSPCA_OV519
59 tristate "OV519 USB Camera Driver" 59 tristate "OV519 USB Camera Driver"
60 depends on VIDEO_V4L2 && USB_GSPCA 60 depends on VIDEO_V4L2 && USB_GSPCA
61 help 61 help
62 Say Y here if you want support for cameras based on the OV519 chip. 62 Say Y here if you want support for cameras based on the OV519 chip.
63 63
64 To compile this driver as a module, choose M here: the 64 To compile this driver as a module, choose M here: the
65 module will be called gspca_ov519. 65 module will be called gspca_ov519.
66 66
67config USB_GSPCA_PAC207 67config USB_GSPCA_PAC207
68 tristate "Pixart PAC207 USB Camera Driver" 68 tristate "Pixart PAC207 USB Camera Driver"
69 depends on VIDEO_V4L2 && USB_GSPCA 69 depends on VIDEO_V4L2 && USB_GSPCA
70 help 70 help
71 Say Y here if you want support for cameras based on the PAC207 chip. 71 Say Y here if you want support for cameras based on the PAC207 chip.
72 72
73 To compile this driver as a module, choose M here: the 73 To compile this driver as a module, choose M here: the
74 module will be called gspca_pac207. 74 module will be called gspca_pac207.
75 75
76config USB_GSPCA_PAC7311 76config USB_GSPCA_PAC7311
77 tristate "Pixart PAC7311 USB Camera Driver" 77 tristate "Pixart PAC7311 USB Camera Driver"
78 depends on VIDEO_V4L2 && USB_GSPCA 78 depends on VIDEO_V4L2 && USB_GSPCA
79 help 79 help
80 Say Y here if you want support for cameras based on the PAC7311 chip. 80 Say Y here if you want support for cameras based on the PAC7311 chip.
81 81
82 To compile this driver as a module, choose M here: the 82 To compile this driver as a module, choose M here: the
83 module will be called gspca_pac7311. 83 module will be called gspca_pac7311.
84 84
85config USB_GSPCA_SONIXB 85config USB_GSPCA_SONIXB
86 tristate "SN9C102 USB Camera Driver" 86 tristate "SN9C102 USB Camera Driver"
87 depends on VIDEO_V4L2 && USB_GSPCA 87 depends on VIDEO_V4L2 && USB_GSPCA
88 help 88 help
89 Say Y here if you want support for cameras based on the SONIXB chip. 89 Say Y here if you want support for cameras based on the SONIXB chip.
90 90
91 To compile this driver as a module, choose M here: the 91 To compile this driver as a module, choose M here: the
92 module will be called gspca_sonixb. 92 module will be called gspca_sonixb.
93 93
94config USB_GSPCA_SONIXJ 94config USB_GSPCA_SONIXJ
95 tristate "SONIX JPEG USB Camera Driver" 95 tristate "SONIX JPEG USB Camera Driver"
96 depends on VIDEO_V4L2 && USB_GSPCA 96 depends on VIDEO_V4L2 && USB_GSPCA
97 help 97 help
98 Say Y here if you want support for cameras based on the SONIXJ chip. 98 Say Y here if you want support for cameras based on the SONIXJ chip.
99 99
100 To compile this driver as a module, choose M here: the 100 To compile this driver as a module, choose M here: the
101 module will be called gspca_sonixj 101 module will be called gspca_sonixj
102 102
103config USB_GSPCA_SPCA500 103config USB_GSPCA_SPCA500
104 tristate "SPCA500 USB Camera Driver" 104 tristate "SPCA500 USB Camera Driver"
105 depends on VIDEO_V4L2 && USB_GSPCA 105 depends on VIDEO_V4L2 && USB_GSPCA
106 help 106 help
107 Say Y here if you want support for cameras based on the SPCA500 chip. 107 Say Y here if you want support for cameras based on the SPCA500 chip.
108 108
109 To compile this driver as a module, choose M here: the 109 To compile this driver as a module, choose M here: the
110 module will be called gspca_spca500. 110 module will be called gspca_spca500.
111 111
112config USB_GSPCA_SPCA501 112config USB_GSPCA_SPCA501
113 tristate "SPCA501 USB Camera Driver" 113 tristate "SPCA501 USB Camera Driver"
114 depends on VIDEO_V4L2 && USB_GSPCA 114 depends on VIDEO_V4L2 && USB_GSPCA
115 help 115 help
116 Say Y here if you want support for cameras based on the SPCA501 chip. 116 Say Y here if you want support for cameras based on the SPCA501 chip.
117 117
118 To compile this driver as a module, choose M here: the 118 To compile this driver as a module, choose M here: the
119 module will be called gspca_spca501. 119 module will be called gspca_spca501.
120 120
121config USB_GSPCA_SPCA505 121config USB_GSPCA_SPCA505
122 tristate "SPCA505 USB Camera Driver" 122 tristate "SPCA505 USB Camera Driver"
123 depends on VIDEO_V4L2 && USB_GSPCA 123 depends on VIDEO_V4L2 && USB_GSPCA
124 help 124 help
125 Say Y here if you want support for cameras based on the SPCA505 chip. 125 Say Y here if you want support for cameras based on the SPCA505 chip.
126 126
127 To compile this driver as a module, choose M here: the 127 To compile this driver as a module, choose M here: the
128 module will be called gspca_spca505. 128 module will be called gspca_spca505.
129 129
130config USB_GSPCA_SPCA506 130config USB_GSPCA_SPCA506
131 tristate "SPCA506 USB Camera Driver" 131 tristate "SPCA506 USB Camera Driver"
132 depends on VIDEO_V4L2 && USB_GSPCA 132 depends on VIDEO_V4L2 && USB_GSPCA
133 help 133 help
134 Say Y here if you want support for cameras based on the SPCA506 chip. 134 Say Y here if you want support for cameras based on the SPCA506 chip.
135 135
136 To compile this driver as a module, choose M here: the 136 To compile this driver as a module, choose M here: the
137 module will be called gspca_spca506. 137 module will be called gspca_spca506.
138 138
139config USB_GSPCA_SPCA508 139config USB_GSPCA_SPCA508
140 tristate "SPCA508 USB Camera Driver" 140 tristate "SPCA508 USB Camera Driver"
141 depends on VIDEO_V4L2 && USB_GSPCA 141 depends on VIDEO_V4L2 && USB_GSPCA
142 help 142 help
143 Say Y here if you want support for cameras based on the SPCA508 chip. 143 Say Y here if you want support for cameras based on the SPCA508 chip.
144 144
145 To compile this driver as a module, choose M here: the 145 To compile this driver as a module, choose M here: the
146 module will be called gspca_spca508. 146 module will be called gspca_spca508.
147 147
148config USB_GSPCA_SPCA561 148config USB_GSPCA_SPCA561
149 tristate "SPCA561 USB Camera Driver" 149 tristate "SPCA561 USB Camera Driver"
150 depends on VIDEO_V4L2 && USB_GSPCA 150 depends on VIDEO_V4L2 && USB_GSPCA
151 help 151 help
152 Say Y here if you want support for cameras based on the SPCA561 chip. 152 Say Y here if you want support for cameras based on the SPCA561 chip.
153 153
154 To compile this driver as a module, choose M here: the 154 To compile this driver as a module, choose M here: the
155 module will be called gspca_spca561. 155 module will be called gspca_spca561.
156 156
157config USB_GSPCA_STK014 157config USB_GSPCA_STK014
158 tristate "Syntek DV4000 (STK014) USB Camera Driver" 158 tristate "Syntek DV4000 (STK014) USB Camera Driver"
159 depends on VIDEO_V4L2 && USB_GSPCA 159 depends on VIDEO_V4L2 && USB_GSPCA
160 help 160 help
161 Say Y here if you want support for cameras based on the STK014 chip. 161 Say Y here if you want support for cameras based on the STK014 chip.
162 162
163 To compile this driver as a module, choose M here: the 163 To compile this driver as a module, choose M here: the
164 module will be called gspca_stk014. 164 module will be called gspca_stk014.
165 165
166config USB_GSPCA_SUNPLUS 166config USB_GSPCA_SUNPLUS
167 tristate "SUNPLUS USB Camera Driver" 167 tristate "SUNPLUS USB Camera Driver"
168 depends on VIDEO_V4L2 && USB_GSPCA 168 depends on VIDEO_V4L2 && USB_GSPCA
169 help 169 help
170 Say Y here if you want support for cameras based on the Sunplus 170 Say Y here if you want support for cameras based on the Sunplus
171 SPCA504(abc) SPCA533 SPCA536 chips. 171 SPCA504(abc) SPCA533 SPCA536 chips.
172 172
173 To compile this driver as a module, choose M here: the 173 To compile this driver as a module, choose M here: the
174 module will be called gspca_spca5xx. 174 module will be called gspca_spca5xx.
175 175
176config USB_GSPCA_T613 176config USB_GSPCA_T613
177 tristate "T613 (JPEG Compliance) USB Camera Driver" 177 tristate "T613 (JPEG Compliance) USB Camera Driver"
178 depends on VIDEO_V4L2 && USB_GSPCA 178 depends on VIDEO_V4L2 && USB_GSPCA
179 help 179 help
180 Say Y here if you want support for cameras based on the T613 chip. 180 Say Y here if you want support for cameras based on the T613 chip.
181 181
182 To compile this driver as a module, choose M here: the 182 To compile this driver as a module, choose M here: the
183 module will be called gspca_t613. 183 module will be called gspca_t613.
184 184
185config USB_GSPCA_TV8532 185config USB_GSPCA_TV8532
186 tristate "TV8532 USB Camera Driver" 186 tristate "TV8532 USB Camera Driver"
187 depends on VIDEO_V4L2 && USB_GSPCA 187 depends on VIDEO_V4L2 && USB_GSPCA
188 help 188 help
189 Say Y here if you want support for cameras based on the TV8531 chip. 189 Say Y here if you want support for cameras based on the TV8531 chip.
190 190
191 To compile this driver as a module, choose M here: the 191 To compile this driver as a module, choose M here: the
192 module will be called gspca_tv8532. 192 module will be called gspca_tv8532.
193 193
194config USB_GSPCA_VC032X 194config USB_GSPCA_VC032X
195 tristate "VC032X USB Camera Driver" 195 tristate "VC032X USB Camera Driver"
196 depends on VIDEO_V4L2 && USB_GSPCA 196 depends on VIDEO_V4L2 && USB_GSPCA
197 help 197 help
198 Say Y here if you want support for cameras based on the VC032X chip. 198 Say Y here if you want support for cameras based on the VC032X chip.
199 199
200 To compile this driver as a module, choose M here: the 200 To compile this driver as a module, choose M here: the
201 module will be called gspca_vc032x. 201 module will be called gspca_vc032x.
202 202
203config USB_GSPCA_ZC3XX 203config USB_GSPCA_ZC3XX
204 tristate "VC3xx USB Camera Driver" 204 tristate "ZC3XX USB Camera Driver"
205 depends on VIDEO_V4L2 && USB_GSPCA 205 depends on VIDEO_V4L2 && USB_GSPCA
206 help 206 help
207 Say Y here if you want support for cameras based on the ZC3XX chip. 207 Say Y here if you want support for cameras based on the ZC3XX chip.
208 208
209 To compile this driver as a module, choose M here: the 209 To compile this driver as a module, choose M here: the
210 module will be called gspca_zc3xx. 210 module will be called gspca_zc3xx.
211 211
212endif 212endif
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..748a87e82e44 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");
@@ -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 d0a4451dc46f..0befacf49855 100644
--- a/drivers/media/video/gspca/zc3xx.c
+++ b/drivers/media/video/gspca/zc3xx.c
@@ -2266,7 +2266,7 @@ static const struct usb_action hdcs2020b_NoFliker[] = {
2266 {} 2266 {}
2267}; 2267};
2268 2268
2269static const struct usb_action hv7131bxx_Initial[] = { 2269static const struct usb_action hv7131bxx_Initial[] = { /* 320x240 */
2270 {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, 2270 {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
2271 {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT}, 2271 {0xa0, 0x10, ZC3XX_R002_CLOCKSELECT},
2272 {0xa0, 0x00, ZC3XX_R010_CMOSSENSORSELECT}, 2272 {0xa0, 0x00, ZC3XX_R010_CMOSSENSORSELECT},
@@ -2290,7 +2290,7 @@ static const struct usb_action hv7131bxx_Initial[] = {
2290 {0xaa, 0x14, 0x0001}, 2290 {0xaa, 0x14, 0x0001},
2291 {0xaa, 0x15, 0x00e8}, 2291 {0xaa, 0x15, 0x00e8},
2292 {0xaa, 0x16, 0x0002}, 2292 {0xaa, 0x16, 0x0002},
2293 {0xaa, 0x17, 0x0086}, 2293 {0xaa, 0x17, 0x0086}, /* 00,17,88,aa */
2294 {0xaa, 0x31, 0x0038}, 2294 {0xaa, 0x31, 0x0038},
2295 {0xaa, 0x32, 0x0038}, 2295 {0xaa, 0x32, 0x0038},
2296 {0xaa, 0x33, 0x0038}, 2296 {0xaa, 0x33, 0x0038},
@@ -2309,7 +2309,7 @@ static const struct usb_action hv7131bxx_Initial[] = {
2309 {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05}, 2309 {0xa0, 0x13, ZC3XX_R1CB_SHARPNESS05},
2310 {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE}, 2310 {0xa0, 0x08, ZC3XX_R250_DEADPIXELSMODE},
2311 {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS}, 2311 {0xa0, 0x08, ZC3XX_R301_EEPROMACCESS},
2312 {0xaa, 0x02, 0x0080}, /* {0xaa, 0x02, 0x0090}; */ 2312 {0xaa, 0x02, 0x0090}, /* 00,02,80,aa */
2313 {0xa1, 0x01, 0x0002}, 2313 {0xa1, 0x01, 0x0002},
2314 {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT}, 2314 {0xa0, 0x00, ZC3XX_R092_I2CADDRESSSELECT},
2315 {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND}, 2315 {0xa0, 0x02, ZC3XX_R090_I2CCOMMAND},
@@ -2374,7 +2374,7 @@ static const struct usb_action hv7131bxx_Initial[] = {
2374 {} 2374 {}
2375}; 2375};
2376 2376
2377static const struct usb_action hv7131bxx_InitialScale[] = { 2377static const struct usb_action hv7131bxx_InitialScale[] = { /* 640x480*/
2378 {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, 2378 {0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL},
2379 {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT}, 2379 {0xa0, 0x00, ZC3XX_R002_CLOCKSELECT},
2380 {0xa0, 0x00, ZC3XX_R010_CMOSSENSORSELECT}, 2380 {0xa0, 0x00, ZC3XX_R010_CMOSSENSORSELECT},
@@ -6388,6 +6388,8 @@ static void setbrightness(struct gspca_dev *gspca_dev)
6388/*fixme: is it really write to 011d and 018d for all other sensors? */ 6388/*fixme: is it really write to 011d and 018d for all other sensors? */
6389 brightness = sd->brightness; 6389 brightness = sd->brightness;
6390 reg_w(gspca_dev->dev, brightness, 0x011d); 6390 reg_w(gspca_dev->dev, brightness, 0x011d);
6391 if (sd->sensor == SENSOR_HV7131B)
6392 return;
6391 if (brightness < 0x70) 6393 if (brightness < 0x70)
6392 brightness += 0x10; 6394 brightness += 0x10;
6393 else 6395 else
@@ -6529,6 +6531,7 @@ static void setquality(struct gspca_dev *gspca_dev)
6529 6531
6530 switch (sd->sensor) { 6532 switch (sd->sensor) {
6531 case SENSOR_GC0305: 6533 case SENSOR_GC0305:
6534 case SENSOR_HV7131B:
6532 case SENSOR_OV7620: 6535 case SENSOR_OV7620:
6533 case SENSOR_PO2030: 6536 case SENSOR_PO2030:
6534 return; 6537 return;
@@ -7209,7 +7212,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
7209 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; 7212 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv;
7210 zc3_init = init_tb[(int) sd->sensor][mode]; 7213 zc3_init = init_tb[(int) sd->sensor][mode];
7211 switch (sd->sensor) { 7214 switch (sd->sensor) {
7212 case SENSOR_HV7131B:
7213 case SENSOR_HV7131C: 7215 case SENSOR_HV7131C:
7214 zcxx_probeSensor(gspca_dev); 7216 zcxx_probeSensor(gspca_dev);
7215 break; 7217 break;
@@ -7334,10 +7336,13 @@ static int sd_start(struct gspca_dev *gspca_dev)
7334 return 0; 7336 return 0;
7335} 7337}
7336 7338
7339/* called on streamoff with alt 0 and on disconnect */
7337static void sd_stop0(struct gspca_dev *gspca_dev) 7340static void sd_stop0(struct gspca_dev *gspca_dev)
7338{ 7341{
7339 struct sd *sd = (struct sd *) gspca_dev; 7342 struct sd *sd = (struct sd *) gspca_dev;
7340 7343
7344 if (!gspca_dev->present)
7345 return;
7341 send_unknown(gspca_dev->dev, sd->sensor); 7346 send_unknown(gspca_dev->dev, sd->sensor);
7342} 7347}
7343 7348
diff --git a/drivers/media/video/ivtv/Kconfig b/drivers/media/video/ivtv/Kconfig
index 0069898bddab..c46bfb1569e3 100644
--- a/drivers/media/video/ivtv/Kconfig
+++ b/drivers/media/video/ivtv/Kconfig
@@ -1,6 +1,6 @@
1config VIDEO_IVTV 1config VIDEO_IVTV
2 tristate "Conexant cx23416/cx23415 MPEG encoder/decoder support" 2 tristate "Conexant cx23416/cx23415 MPEG encoder/decoder support"
3 depends on VIDEO_V4L1 && VIDEO_V4L2 && PCI && I2C && EXPERIMENTAL 3 depends on VIDEO_V4L2 && PCI && I2C
4 depends on INPUT # due to VIDEO_IR 4 depends on INPUT # due to VIDEO_IR
5 select I2C_ALGOBIT 5 select I2C_ALGOBIT
6 select VIDEO_IR 6 select VIDEO_IR
@@ -12,7 +12,6 @@ config VIDEO_IVTV
12 select VIDEO_SAA711X 12 select VIDEO_SAA711X
13 select VIDEO_SAA717X 13 select VIDEO_SAA717X
14 select VIDEO_SAA7127 14 select VIDEO_SAA7127
15 select VIDEO_TVAUDIO
16 select VIDEO_CS53L32A 15 select VIDEO_CS53L32A
17 select VIDEO_M52790 16 select VIDEO_M52790
18 select VIDEO_WM8775 17 select VIDEO_WM8775
@@ -32,7 +31,7 @@ config VIDEO_IVTV
32 31
33config VIDEO_FB_IVTV 32config VIDEO_FB_IVTV
34 tristate "Conexant cx23415 framebuffer support" 33 tristate "Conexant cx23415 framebuffer support"
35 depends on VIDEO_IVTV && FB && EXPERIMENTAL 34 depends on VIDEO_IVTV && FB
36 select FB_CFB_FILLRECT 35 select FB_CFB_FILLRECT
37 select FB_CFB_COPYAREA 36 select FB_CFB_COPYAREA
38 select FB_CFB_IMAGEBLIT 37 select FB_CFB_IMAGEBLIT
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index d36485023b68..b69cc1d55e5b 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -875,43 +875,43 @@ static void ivtv_load_and_init_modules(struct ivtv *itv)
875 875
876#ifdef MODULE 876#ifdef MODULE
877 /* load modules */ 877 /* load modules */
878#ifndef CONFIG_MEDIA_TUNER 878#ifdef CONFIG_MEDIA_TUNER_MODULE
879 hw = ivtv_request_module(itv, hw, "tuner", IVTV_HW_TUNER); 879 hw = ivtv_request_module(itv, hw, "tuner", IVTV_HW_TUNER);
880#endif 880#endif
881#ifndef CONFIG_VIDEO_CX25840 881#ifdef CONFIG_VIDEO_CX25840_MODULE
882 hw = ivtv_request_module(itv, hw, "cx25840", IVTV_HW_CX25840); 882 hw = ivtv_request_module(itv, hw, "cx25840", IVTV_HW_CX25840);
883#endif 883#endif
884#ifndef CONFIG_VIDEO_SAA711X 884#ifdef CONFIG_VIDEO_SAA711X_MODULE
885 hw = ivtv_request_module(itv, hw, "saa7115", IVTV_HW_SAA711X); 885 hw = ivtv_request_module(itv, hw, "saa7115", IVTV_HW_SAA711X);
886#endif 886#endif
887#ifndef CONFIG_VIDEO_SAA7127 887#ifdef CONFIG_VIDEO_SAA7127_MODULE
888 hw = ivtv_request_module(itv, hw, "saa7127", IVTV_HW_SAA7127); 888 hw = ivtv_request_module(itv, hw, "saa7127", IVTV_HW_SAA7127);
889#endif 889#endif
890#ifndef CONFIG_VIDEO_SAA717X 890#ifdef CONFIG_VIDEO_SAA717X_MODULE
891 hw = ivtv_request_module(itv, hw, "saa717x", IVTV_HW_SAA717X); 891 hw = ivtv_request_module(itv, hw, "saa717x", IVTV_HW_SAA717X);
892#endif 892#endif
893#ifndef CONFIG_VIDEO_UPD64031A 893#ifdef CONFIG_VIDEO_UPD64031A_MODULE
894 hw = ivtv_request_module(itv, hw, "upd64031a", IVTV_HW_UPD64031A); 894 hw = ivtv_request_module(itv, hw, "upd64031a", IVTV_HW_UPD64031A);
895#endif 895#endif
896#ifndef CONFIG_VIDEO_UPD64083 896#ifdef CONFIG_VIDEO_UPD64083_MODULE
897 hw = ivtv_request_module(itv, hw, "upd64083", IVTV_HW_UPD6408X); 897 hw = ivtv_request_module(itv, hw, "upd64083", IVTV_HW_UPD6408X);
898#endif 898#endif
899#ifndef CONFIG_VIDEO_MSP3400 899#ifdef CONFIG_VIDEO_MSP3400_MODULE
900 hw = ivtv_request_module(itv, hw, "msp3400", IVTV_HW_MSP34XX); 900 hw = ivtv_request_module(itv, hw, "msp3400", IVTV_HW_MSP34XX);
901#endif 901#endif
902#ifndef CONFIG_VIDEO_VP27SMPX 902#ifdef CONFIG_VIDEO_VP27SMPX_MODULE
903 hw = ivtv_request_module(itv, hw, "vp27smpx", IVTV_HW_VP27SMPX); 903 hw = ivtv_request_module(itv, hw, "vp27smpx", IVTV_HW_VP27SMPX);
904#endif 904#endif
905#ifndef CONFIG_VIDEO_WM8775 905#ifdef CONFIG_VIDEO_WM8775_MODULE
906 hw = ivtv_request_module(itv, hw, "wm8775", IVTV_HW_WM8775); 906 hw = ivtv_request_module(itv, hw, "wm8775", IVTV_HW_WM8775);
907#endif 907#endif
908#ifndef CONFIG_VIDEO_WM8739 908#ifdef CONFIG_VIDEO_WM8739_MODULE
909 hw = ivtv_request_module(itv, hw, "wm8739", IVTV_HW_WM8739); 909 hw = ivtv_request_module(itv, hw, "wm8739", IVTV_HW_WM8739);
910#endif 910#endif
911#ifndef CONFIG_VIDEO_CS53L32A 911#ifdef CONFIG_VIDEO_CS53L32A_MODULE
912 hw = ivtv_request_module(itv, hw, "cs53l32a", IVTV_HW_CS53L32A); 912 hw = ivtv_request_module(itv, hw, "cs53l32a", IVTV_HW_CS53L32A);
913#endif 913#endif
914#ifndef CONFIG_VIDEO_M52790 914#ifdef CONFIG_VIDEO_M52790_MODULE
915 hw = ivtv_request_module(itv, hw, "m52790", IVTV_HW_M52790); 915 hw = ivtv_request_module(itv, hw, "m52790", IVTV_HW_M52790);
916#endif 916#endif
917#endif 917#endif
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/saa7110.c b/drivers/media/video/saa7110.c
index adf2ba79496a..37860698f782 100644
--- a/drivers/media/video/saa7110.c
+++ b/drivers/media/video/saa7110.c
@@ -47,7 +47,7 @@ module_param(debug, int, 0);
47MODULE_PARM_DESC(debug, "Debug level (0-1)"); 47MODULE_PARM_DESC(debug, "Debug level (0-1)");
48 48
49#define SAA7110_MAX_INPUT 9 /* 6 CVBS, 3 SVHS */ 49#define SAA7110_MAX_INPUT 9 /* 6 CVBS, 3 SVHS */
50#define SAA7110_MAX_OUTPUT 0 /* its a decoder only */ 50#define SAA7110_MAX_OUTPUT 1 /* 1 YUV */
51 51
52#define SAA7110_NR_REG 0x35 52#define SAA7110_NR_REG 0x35
53 53
@@ -327,7 +327,7 @@ saa7110_command (struct i2c_client *client,
327 327
328 case DECODER_SET_INPUT: 328 case DECODER_SET_INPUT:
329 v = *(int *) arg; 329 v = *(int *) arg;
330 if (v < 0 || v > SAA7110_MAX_INPUT) { 330 if (v < 0 || v >= SAA7110_MAX_INPUT) {
331 v4l_dbg(1, debug, client, "input=%d not available\n", v); 331 v4l_dbg(1, debug, client, "input=%d not available\n", v);
332 return -EINVAL; 332 return -EINVAL;
333 } 333 }
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
index 249184452949..dfbe08a9ad9b 100644
--- a/drivers/media/video/saa7134/saa7134-core.c
+++ b/drivers/media/video/saa7134/saa7134-core.c
@@ -941,7 +941,8 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev,
941 dev->name,(unsigned long long)pci_resource_start(pci_dev,0)); 941 dev->name,(unsigned long long)pci_resource_start(pci_dev,0));
942 goto fail1; 942 goto fail1;
943 } 943 }
944 dev->lmmio = ioremap(pci_resource_start(pci_dev,0), 0x1000); 944 dev->lmmio = ioremap(pci_resource_start(pci_dev, 0),
945 pci_resource_len(pci_dev, 0));
945 dev->bmmio = (__u8 __iomem *)dev->lmmio; 946 dev->bmmio = (__u8 __iomem *)dev->lmmio;
946 if (NULL == dev->lmmio) { 947 if (NULL == dev->lmmio) {
947 err = -EIO; 948 err = -EIO;
diff --git a/drivers/media/video/tvaudio.c b/drivers/media/video/tvaudio.c
index b59e47272abf..3720f0e03a16 100644
--- a/drivers/media/video/tvaudio.c
+++ b/drivers/media/video/tvaudio.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * experimental driver for simple i2c audio chips. 2 * Driver for simple i2c audio chips.
3 * 3 *
4 * Copyright (c) 2000 Gerd Knorr 4 * Copyright (c) 2000 Gerd Knorr
5 * based on code by: 5 * based on code by:
@@ -7,6 +7,10 @@
7 * Steve VanDeBogart (vandebo@uclink.berkeley.edu) 7 * Steve VanDeBogart (vandebo@uclink.berkeley.edu)
8 * Greg Alexander (galexand@acm.org) 8 * Greg Alexander (galexand@acm.org)
9 * 9 *
10 * Copyright(c) 2005-2008 Mauro Carvalho Chehab
11 * - Some cleanups, code fixes, etc
12 * - Convert it to V4L2 API
13 *
10 * This code is placed under the terms of the GNU General Public License 14 * This code is placed under the terms of the GNU General Public License
11 * 15 *
12 * OPTIONS: 16 * OPTIONS:
@@ -30,6 +34,7 @@
30 34
31#include <media/tvaudio.h> 35#include <media/tvaudio.h>
32#include <media/v4l2-common.h> 36#include <media/v4l2-common.h>
37#include <media/v4l2-ioctl.h>
33#include <media/v4l2-chip-ident.h> 38#include <media/v4l2-chip-ident.h>
34#include <media/v4l2-i2c-drv-legacy.h> 39#include <media/v4l2-i2c-drv-legacy.h>
35 40
@@ -58,7 +63,6 @@ typedef int (*checkit)(struct CHIPSTATE*);
58typedef int (*initialize)(struct CHIPSTATE*); 63typedef int (*initialize)(struct CHIPSTATE*);
59typedef int (*getmode)(struct CHIPSTATE*); 64typedef int (*getmode)(struct CHIPSTATE*);
60typedef void (*setmode)(struct CHIPSTATE*, int mode); 65typedef void (*setmode)(struct CHIPSTATE*, int mode);
61typedef void (*checkmode)(struct CHIPSTATE*);
62 66
63/* i2c command */ 67/* i2c command */
64typedef struct AUDIOCMD { 68typedef struct AUDIOCMD {
@@ -79,6 +83,7 @@ struct CHIPDESC {
79#define CHIP_HAS_VOLUME 1 83#define CHIP_HAS_VOLUME 1
80#define CHIP_HAS_BASSTREBLE 2 84#define CHIP_HAS_BASSTREBLE 2
81#define CHIP_HAS_INPUTSEL 4 85#define CHIP_HAS_INPUTSEL 4
86#define CHIP_NEED_CHECKMODE 8
82 87
83 /* various i2c command sequences */ 88 /* various i2c command sequences */
84 audiocmd init; 89 audiocmd init;
@@ -96,23 +101,20 @@ struct CHIPDESC {
96 getmode getmode; 101 getmode getmode;
97 setmode setmode; 102 setmode setmode;
98 103
99 /* check / autoswitch audio after channel switches */
100 checkmode checkmode;
101
102 /* input switch register + values for v4l inputs */ 104 /* input switch register + values for v4l inputs */
103 int inputreg; 105 int inputreg;
104 int inputmap[4]; 106 int inputmap[4];
105 int inputmute; 107 int inputmute;
106 int inputmask; 108 int inputmask;
107}; 109};
108static struct CHIPDESC chiplist[];
109 110
110/* current state of the chip */ 111/* current state of the chip */
111struct CHIPSTATE { 112struct CHIPSTATE {
112 struct i2c_client *c; 113 struct i2c_client *c;
113 114
114 /* index into CHIPDESC array */ 115 /* chip-specific description - should point to
115 int type; 116 an entry at CHIPDESC table */
117 struct CHIPDESC *desc;
116 118
117 /* shadow register set */ 119 /* shadow register set */
118 audiocmd shadow; 120 audiocmd shadow;
@@ -152,7 +154,7 @@ static int chip_write(struct CHIPSTATE *chip, int subaddr, int val)
152{ 154{
153 unsigned char buffer[2]; 155 unsigned char buffer[2];
154 156
155 if (-1 == subaddr) { 157 if (subaddr < 0) {
156 v4l_dbg(1, debug, chip->c, "%s: chip_write: 0x%x\n", 158 v4l_dbg(1, debug, chip->c, "%s: chip_write: 0x%x\n",
157 chip->c->name, val); 159 chip->c->name, val);
158 chip->shadow.bytes[1] = val; 160 chip->shadow.bytes[1] = val;
@@ -163,6 +165,13 @@ static int chip_write(struct CHIPSTATE *chip, int subaddr, int val)
163 return -1; 165 return -1;
164 } 166 }
165 } else { 167 } else {
168 if (subaddr + 1 >= ARRAY_SIZE(chip->shadow.bytes)) {
169 v4l_info(chip->c,
170 "Tried to access a non-existent register: %d\n",
171 subaddr);
172 return -EINVAL;
173 }
174
166 v4l_dbg(1, debug, chip->c, "%s: chip_write: reg%d=0x%x\n", 175 v4l_dbg(1, debug, chip->c, "%s: chip_write: reg%d=0x%x\n",
167 chip->c->name, subaddr, val); 176 chip->c->name, subaddr, val);
168 chip->shadow.bytes[subaddr+1] = val; 177 chip->shadow.bytes[subaddr+1] = val;
@@ -177,12 +186,20 @@ static int chip_write(struct CHIPSTATE *chip, int subaddr, int val)
177 return 0; 186 return 0;
178} 187}
179 188
180static int chip_write_masked(struct CHIPSTATE *chip, int subaddr, int val, int mask) 189static int chip_write_masked(struct CHIPSTATE *chip,
190 int subaddr, int val, int mask)
181{ 191{
182 if (mask != 0) { 192 if (mask != 0) {
183 if (-1 == subaddr) { 193 if (subaddr < 0) {
184 val = (chip->shadow.bytes[1] & ~mask) | (val & mask); 194 val = (chip->shadow.bytes[1] & ~mask) | (val & mask);
185 } else { 195 } else {
196 if (subaddr + 1 >= ARRAY_SIZE(chip->shadow.bytes)) {
197 v4l_info(chip->c,
198 "Tried to access a non-existent register: %d\n",
199 subaddr);
200 return -EINVAL;
201 }
202
186 val = (chip->shadow.bytes[subaddr+1] & ~mask) | (val & mask); 203 val = (chip->shadow.bytes[subaddr+1] & ~mask) | (val & mask);
187 } 204 }
188 } 205 }
@@ -228,6 +245,15 @@ static int chip_cmd(struct CHIPSTATE *chip, char *name, audiocmd *cmd)
228 if (0 == cmd->count) 245 if (0 == cmd->count)
229 return 0; 246 return 0;
230 247
248 if (cmd->count + cmd->bytes[0] - 1 >= ARRAY_SIZE(chip->shadow.bytes)) {
249 v4l_info(chip->c,
250 "Tried to access a non-existent register range: %d to %d\n",
251 cmd->bytes[0] + 1, cmd->bytes[0] + cmd->count - 1);
252 return -EINVAL;
253 }
254
255 /* FIXME: it seems that the shadow bytes are wrong bellow !*/
256
231 /* update our shadow register set; print bytes if (debug > 0) */ 257 /* update our shadow register set; print bytes if (debug > 0) */
232 v4l_dbg(1, debug, chip->c, "%s: chip_cmd(%s): reg=%d, data:", 258 v4l_dbg(1, debug, chip->c, "%s: chip_cmd(%s): reg=%d, data:",
233 chip->c->name, name,cmd->bytes[0]); 259 chip->c->name, name,cmd->bytes[0]);
@@ -263,7 +289,8 @@ static void chip_thread_wake(unsigned long data)
263static int chip_thread(void *data) 289static int chip_thread(void *data)
264{ 290{
265 struct CHIPSTATE *chip = data; 291 struct CHIPSTATE *chip = data;
266 struct CHIPDESC *desc = chiplist + chip->type; 292 struct CHIPDESC *desc = chip->desc;
293 int mode;
267 294
268 v4l_dbg(1, debug, chip->c, "%s: thread started\n", chip->c->name); 295 v4l_dbg(1, debug, chip->c, "%s: thread started\n", chip->c->name);
269 set_freezable(); 296 set_freezable();
@@ -282,7 +309,26 @@ static int chip_thread(void *data)
282 continue; 309 continue;
283 310
284 /* have a look what's going on */ 311 /* have a look what's going on */
285 desc->checkmode(chip); 312 mode = desc->getmode(chip);
313 if (mode == chip->prevmode)
314 continue;
315
316 /* chip detected a new audio mode - set it */
317 v4l_dbg(1, debug, chip->c, "%s: thread checkmode\n",
318 chip->c->name);
319
320 chip->prevmode = mode;
321
322 if (mode & V4L2_TUNER_MODE_STEREO)
323 desc->setmode(chip, V4L2_TUNER_MODE_STEREO);
324 if (mode & V4L2_TUNER_MODE_LANG1_LANG2)
325 desc->setmode(chip, V4L2_TUNER_MODE_STEREO);
326 else if (mode & V4L2_TUNER_MODE_LANG1)
327 desc->setmode(chip, V4L2_TUNER_MODE_LANG1);
328 else if (mode & V4L2_TUNER_MODE_LANG2)
329 desc->setmode(chip, V4L2_TUNER_MODE_LANG2);
330 else
331 desc->setmode(chip, V4L2_TUNER_MODE_MONO);
286 332
287 /* schedule next check */ 333 /* schedule next check */
288 mod_timer(&chip->wt, jiffies+msecs_to_jiffies(2000)); 334 mod_timer(&chip->wt, jiffies+msecs_to_jiffies(2000));
@@ -292,29 +338,6 @@ static int chip_thread(void *data)
292 return 0; 338 return 0;
293} 339}
294 340
295static void generic_checkmode(struct CHIPSTATE *chip)
296{
297 struct CHIPDESC *desc = chiplist + chip->type;
298 int mode = desc->getmode(chip);
299
300 if (mode == chip->prevmode)
301 return;
302
303 v4l_dbg(1, debug, chip->c, "%s: thread checkmode\n", chip->c->name);
304 chip->prevmode = mode;
305
306 if (mode & V4L2_TUNER_MODE_STEREO)
307 desc->setmode(chip,V4L2_TUNER_MODE_STEREO);
308 if (mode & V4L2_TUNER_MODE_LANG1_LANG2)
309 desc->setmode(chip,V4L2_TUNER_MODE_STEREO);
310 else if (mode & V4L2_TUNER_MODE_LANG1)
311 desc->setmode(chip,V4L2_TUNER_MODE_LANG1);
312 else if (mode & V4L2_TUNER_MODE_LANG2)
313 desc->setmode(chip,V4L2_TUNER_MODE_LANG2);
314 else
315 desc->setmode(chip,V4L2_TUNER_MODE_MONO);
316}
317
318/* ---------------------------------------------------------------------- */ 341/* ---------------------------------------------------------------------- */
319/* audio chip descriptions - defines+functions for tda9840 */ 342/* audio chip descriptions - defines+functions for tda9840 */
320 343
@@ -777,7 +800,7 @@ static struct tda9874a_MODES {
777 char *name; 800 char *name;
778 audiocmd cmd; 801 audiocmd cmd;
779} tda9874a_modelist[9] = { 802} tda9874a_modelist[9] = {
780 { "A2, B/G", 803 { "A2, B/G", /* default */
781 { 9, { TDA9874A_C1FRA, 0x72,0x95,0x55, 0x77,0xA0,0x00, 0x00,0x00 }} }, 804 { 9, { TDA9874A_C1FRA, 0x72,0x95,0x55, 0x77,0xA0,0x00, 0x00,0x00 }} },
782 { "A2, M (Korea)", 805 { "A2, M (Korea)",
783 { 9, { TDA9874A_C1FRA, 0x5D,0xC0,0x00, 0x62,0x6A,0xAA, 0x20,0x22 }} }, 806 { 9, { TDA9874A_C1FRA, 0x5D,0xC0,0x00, 0x62,0x6A,0xAA, 0x20,0x22 }} },
@@ -791,7 +814,7 @@ static struct tda9874a_MODES {
791 { 9, { TDA9874A_C1FRA, 0x7D,0x00,0x00, 0x88,0x8A,0xAA, 0x08,0x33 }} }, 814 { 9, { TDA9874A_C1FRA, 0x7D,0x00,0x00, 0x88,0x8A,0xAA, 0x08,0x33 }} },
792 { "NICAM, B/G", 815 { "NICAM, B/G",
793 { 9, { TDA9874A_C1FRA, 0x72,0x95,0x55, 0x79,0xEA,0xAA, 0x08,0x33 }} }, 816 { 9, { TDA9874A_C1FRA, 0x72,0x95,0x55, 0x79,0xEA,0xAA, 0x08,0x33 }} },
794 { "NICAM, D/K", /* default */ 817 { "NICAM, D/K",
795 { 9, { TDA9874A_C1FRA, 0x87,0x6A,0xAA, 0x79,0xEA,0xAA, 0x08,0x33 }} }, 818 { 9, { TDA9874A_C1FRA, 0x87,0x6A,0xAA, 0x79,0xEA,0xAA, 0x08,0x33 }} },
796 { "NICAM, L", 819 { "NICAM, L",
797 { 9, { TDA9874A_C1FRA, 0x87,0x6A,0xAA, 0x79,0xEA,0xAA, 0x09,0x33 }} } 820 { 9, { TDA9874A_C1FRA, 0x87,0x6A,0xAA, 0x79,0xEA,0xAA, 0x09,0x33 }} }
@@ -981,7 +1004,7 @@ static int tda9874a_initialize(struct CHIPSTATE *chip)
981{ 1004{
982 if (tda9874a_SIF > 2) 1005 if (tda9874a_SIF > 2)
983 tda9874a_SIF = 1; 1006 tda9874a_SIF = 1;
984 if (tda9874a_STD > 8) 1007 if (tda9874a_STD >= ARRAY_SIZE(tda9874a_modelist))
985 tda9874a_STD = 0; 1008 tda9874a_STD = 0;
986 if(tda9874a_AMSEL > 1) 1009 if(tda9874a_AMSEL > 1)
987 tda9874a_AMSEL = 0; 1010 tda9874a_AMSEL = 0;
@@ -1089,7 +1112,7 @@ static int tda8425_shift12(int val) { return (val >> 12) | 0xf0; }
1089 1112
1090static int tda8425_initialize(struct CHIPSTATE *chip) 1113static int tda8425_initialize(struct CHIPSTATE *chip)
1091{ 1114{
1092 struct CHIPDESC *desc = chiplist + chip->type; 1115 struct CHIPDESC *desc = chip->desc;
1093 int inputmap[4] = { /* tuner */ TDA8425_S1_CH2, /* radio */ TDA8425_S1_CH1, 1116 int inputmap[4] = { /* tuner */ TDA8425_S1_CH2, /* radio */ TDA8425_S1_CH1,
1094 /* extern */ TDA8425_S1_CH1, /* intern */ TDA8425_S1_OFF}; 1117 /* extern */ TDA8425_S1_CH1, /* intern */ TDA8425_S1_OFF};
1095 1118
@@ -1259,27 +1282,28 @@ static struct CHIPDESC chiplist[] = {
1259 .addr_lo = I2C_ADDR_TDA9840 >> 1, 1282 .addr_lo = I2C_ADDR_TDA9840 >> 1,
1260 .addr_hi = I2C_ADDR_TDA9840 >> 1, 1283 .addr_hi = I2C_ADDR_TDA9840 >> 1,
1261 .registers = 5, 1284 .registers = 5,
1285 .flags = CHIP_NEED_CHECKMODE,
1262 1286
1287 /* callbacks */
1263 .checkit = tda9840_checkit, 1288 .checkit = tda9840_checkit,
1264 .getmode = tda9840_getmode, 1289 .getmode = tda9840_getmode,
1265 .setmode = tda9840_setmode, 1290 .setmode = tda9840_setmode,
1266 .checkmode = generic_checkmode,
1267 1291
1268 .init = { 2, { TDA9840_TEST, TDA9840_TEST_INT1SN 1292 .init = { 2, { TDA9840_TEST, TDA9840_TEST_INT1SN
1269 /* ,TDA9840_SW, TDA9840_MONO */} } 1293 /* ,TDA9840_SW, TDA9840_MONO */} }
1270 }, 1294 },
1271 { 1295 {
1272 .name = "tda9873h", 1296 .name = "tda9873h",
1273 .checkit = tda9873_checkit,
1274 .insmodopt = &tda9873, 1297 .insmodopt = &tda9873,
1275 .addr_lo = I2C_ADDR_TDA985x_L >> 1, 1298 .addr_lo = I2C_ADDR_TDA985x_L >> 1,
1276 .addr_hi = I2C_ADDR_TDA985x_H >> 1, 1299 .addr_hi = I2C_ADDR_TDA985x_H >> 1,
1277 .registers = 3, 1300 .registers = 3,
1278 .flags = CHIP_HAS_INPUTSEL, 1301 .flags = CHIP_HAS_INPUTSEL | CHIP_NEED_CHECKMODE,
1279 1302
1303 /* callbacks */
1304 .checkit = tda9873_checkit,
1280 .getmode = tda9873_getmode, 1305 .getmode = tda9873_getmode,
1281 .setmode = tda9873_setmode, 1306 .setmode = tda9873_setmode,
1282 .checkmode = generic_checkmode,
1283 1307
1284 .init = { 4, { TDA9873_SW, 0xa4, 0x06, 0x03 } }, 1308 .init = { 4, { TDA9873_SW, 0xa4, 0x06, 0x03 } },
1285 .inputreg = TDA9873_SW, 1309 .inputreg = TDA9873_SW,
@@ -1290,15 +1314,16 @@ static struct CHIPDESC chiplist[] = {
1290 }, 1314 },
1291 { 1315 {
1292 .name = "tda9874h/a", 1316 .name = "tda9874h/a",
1293 .checkit = tda9874a_checkit,
1294 .initialize = tda9874a_initialize,
1295 .insmodopt = &tda9874a, 1317 .insmodopt = &tda9874a,
1296 .addr_lo = I2C_ADDR_TDA9874 >> 1, 1318 .addr_lo = I2C_ADDR_TDA9874 >> 1,
1297 .addr_hi = I2C_ADDR_TDA9874 >> 1, 1319 .addr_hi = I2C_ADDR_TDA9874 >> 1,
1320 .flags = CHIP_NEED_CHECKMODE,
1298 1321
1322 /* callbacks */
1323 .initialize = tda9874a_initialize,
1324 .checkit = tda9874a_checkit,
1299 .getmode = tda9874a_getmode, 1325 .getmode = tda9874a_getmode,
1300 .setmode = tda9874a_setmode, 1326 .setmode = tda9874a_setmode,
1301 .checkmode = generic_checkmode,
1302 }, 1327 },
1303 { 1328 {
1304 .name = "tda9850", 1329 .name = "tda9850",
@@ -1324,10 +1349,11 @@ static struct CHIPDESC chiplist[] = {
1324 .rightreg = TDA9855_VR, 1349 .rightreg = TDA9855_VR,
1325 .bassreg = TDA9855_BA, 1350 .bassreg = TDA9855_BA,
1326 .treblereg = TDA9855_TR, 1351 .treblereg = TDA9855_TR,
1352
1353 /* callbacks */
1327 .volfunc = tda9855_volume, 1354 .volfunc = tda9855_volume,
1328 .bassfunc = tda9855_bass, 1355 .bassfunc = tda9855_bass,
1329 .treblefunc = tda9855_treble, 1356 .treblefunc = tda9855_treble,
1330
1331 .getmode = tda985x_getmode, 1357 .getmode = tda985x_getmode,
1332 .setmode = tda985x_setmode, 1358 .setmode = tda985x_setmode,
1333 1359
@@ -1348,6 +1374,8 @@ static struct CHIPDESC chiplist[] = {
1348 .rightreg = TEA6300_VL, 1374 .rightreg = TEA6300_VL,
1349 .bassreg = TEA6300_BA, 1375 .bassreg = TEA6300_BA,
1350 .treblereg = TEA6300_TR, 1376 .treblereg = TEA6300_TR,
1377
1378 /* callbacks */
1351 .volfunc = tea6300_shift10, 1379 .volfunc = tea6300_shift10,
1352 .bassfunc = tea6300_shift12, 1380 .bassfunc = tea6300_shift12,
1353 .treblefunc = tea6300_shift12, 1381 .treblefunc = tea6300_shift12,
@@ -1358,7 +1386,6 @@ static struct CHIPDESC chiplist[] = {
1358 }, 1386 },
1359 { 1387 {
1360 .name = "tea6320", 1388 .name = "tea6320",
1361 .initialize = tea6320_initialize,
1362 .insmodopt = &tea6320, 1389 .insmodopt = &tea6320,
1363 .addr_lo = I2C_ADDR_TEA6300 >> 1, 1390 .addr_lo = I2C_ADDR_TEA6300 >> 1,
1364 .addr_hi = I2C_ADDR_TEA6300 >> 1, 1391 .addr_hi = I2C_ADDR_TEA6300 >> 1,
@@ -1369,6 +1396,9 @@ static struct CHIPDESC chiplist[] = {
1369 .rightreg = TEA6320_V, 1396 .rightreg = TEA6320_V,
1370 .bassreg = TEA6320_BA, 1397 .bassreg = TEA6320_BA,
1371 .treblereg = TEA6320_TR, 1398 .treblereg = TEA6320_TR,
1399
1400 /* callbacks */
1401 .initialize = tea6320_initialize,
1372 .volfunc = tea6320_volume, 1402 .volfunc = tea6320_volume,
1373 .bassfunc = tea6320_shift11, 1403 .bassfunc = tea6320_shift11,
1374 .treblefunc = tea6320_shift11, 1404 .treblefunc = tea6320_shift11,
@@ -1401,16 +1431,18 @@ static struct CHIPDESC chiplist[] = {
1401 .rightreg = TDA8425_VR, 1431 .rightreg = TDA8425_VR,
1402 .bassreg = TDA8425_BA, 1432 .bassreg = TDA8425_BA,
1403 .treblereg = TDA8425_TR, 1433 .treblereg = TDA8425_TR,
1434
1435 /* callbacks */
1436 .initialize = tda8425_initialize,
1404 .volfunc = tda8425_shift10, 1437 .volfunc = tda8425_shift10,
1405 .bassfunc = tda8425_shift12, 1438 .bassfunc = tda8425_shift12,
1406 .treblefunc = tda8425_shift12, 1439 .treblefunc = tda8425_shift12,
1440 .setmode = tda8425_setmode,
1407 1441
1408 .inputreg = TDA8425_S1, 1442 .inputreg = TDA8425_S1,
1409 .inputmap = { TDA8425_S1_CH1, TDA8425_S1_CH1, TDA8425_S1_CH1 }, 1443 .inputmap = { TDA8425_S1_CH1, TDA8425_S1_CH1, TDA8425_S1_CH1 },
1410 .inputmute = TDA8425_S1_OFF, 1444 .inputmute = TDA8425_S1_OFF,
1411 1445
1412 .setmode = tda8425_setmode,
1413 .initialize = tda8425_initialize,
1414 }, 1446 },
1415 { 1447 {
1416 .name = "pic16c54 (PV951)", 1448 .name = "pic16c54 (PV951)",
@@ -1434,10 +1466,11 @@ static struct CHIPDESC chiplist[] = {
1434 .addr_lo = I2C_ADDR_TDA9840 >> 1, 1466 .addr_lo = I2C_ADDR_TDA9840 >> 1,
1435 .addr_hi = I2C_ADDR_TDA9840 >> 1, 1467 .addr_hi = I2C_ADDR_TDA9840 >> 1,
1436 .registers = 2, 1468 .registers = 2,
1469 .flags = CHIP_NEED_CHECKMODE,
1437 1470
1471 /* callbacks */
1438 .getmode = ta8874z_getmode, 1472 .getmode = ta8874z_getmode,
1439 .setmode = ta8874z_setmode, 1473 .setmode = ta8874z_setmode,
1440 .checkmode = generic_checkmode,
1441 1474
1442 .init = {2, { TA8874Z_MONO_SET, TA8874Z_SEPARATION_DEFAULT}}, 1475 .init = {2, { TA8874Z_MONO_SET, TA8874Z_SEPARATION_DEFAULT}},
1443 }, 1476 },
@@ -1481,6 +1514,7 @@ static int chip_probe(struct i2c_client *client, const struct i2c_device_id *id)
1481 } 1514 }
1482 if (desc->name == NULL) { 1515 if (desc->name == NULL) {
1483 v4l_dbg(1, debug, client, "no matching chip description found\n"); 1516 v4l_dbg(1, debug, client, "no matching chip description found\n");
1517 kfree(chip);
1484 return -EIO; 1518 return -EIO;
1485 } 1519 }
1486 v4l_info(client, "%s found @ 0x%x (%s)\n", desc->name, client->addr<<1, client->adapter->name); 1520 v4l_info(client, "%s found @ 0x%x (%s)\n", desc->name, client->addr<<1, client->adapter->name);
@@ -1494,7 +1528,7 @@ static int chip_probe(struct i2c_client *client, const struct i2c_device_id *id)
1494 /* fill required data structures */ 1528 /* fill required data structures */
1495 if (!id) 1529 if (!id)
1496 strlcpy(client->name, desc->name, I2C_NAME_SIZE); 1530 strlcpy(client->name, desc->name, I2C_NAME_SIZE);
1497 chip->type = desc-chiplist; 1531 chip->desc = desc;
1498 chip->shadow.count = desc->registers+1; 1532 chip->shadow.count = desc->registers+1;
1499 chip->prevmode = -1; 1533 chip->prevmode = -1;
1500 chip->audmode = V4L2_TUNER_MODE_LANG1; 1534 chip->audmode = V4L2_TUNER_MODE_LANG1;
@@ -1506,20 +1540,49 @@ static int chip_probe(struct i2c_client *client, const struct i2c_device_id *id)
1506 chip_cmd(chip,"init",&desc->init); 1540 chip_cmd(chip,"init",&desc->init);
1507 1541
1508 if (desc->flags & CHIP_HAS_VOLUME) { 1542 if (desc->flags & CHIP_HAS_VOLUME) {
1509 chip->left = desc->leftinit ? desc->leftinit : 65535; 1543 if (!desc->volfunc) {
1510 chip->right = desc->rightinit ? desc->rightinit : 65535; 1544 /* This shouldn't be happen. Warn user, but keep working
1511 chip_write(chip,desc->leftreg,desc->volfunc(chip->left)); 1545 without volume controls
1512 chip_write(chip,desc->rightreg,desc->volfunc(chip->right)); 1546 */
1547 v4l_info(chip->c, "volume callback undefined!\n");
1548 desc->flags &= ~CHIP_HAS_VOLUME;
1549 } else {
1550 chip->left = desc->leftinit ? desc->leftinit : 65535;
1551 chip->right = desc->rightinit ? desc->rightinit : 65535;
1552 chip_write(chip, desc->leftreg,
1553 desc->volfunc(chip->left));
1554 chip_write(chip, desc->rightreg,
1555 desc->volfunc(chip->right));
1556 }
1513 } 1557 }
1514 if (desc->flags & CHIP_HAS_BASSTREBLE) { 1558 if (desc->flags & CHIP_HAS_BASSTREBLE) {
1515 chip->treble = desc->trebleinit ? desc->trebleinit : 32768; 1559 if (!desc->bassfunc || !desc->treblefunc) {
1516 chip->bass = desc->bassinit ? desc->bassinit : 32768; 1560 /* This shouldn't be happen. Warn user, but keep working
1517 chip_write(chip,desc->bassreg,desc->bassfunc(chip->bass)); 1561 without bass/treble controls
1518 chip_write(chip,desc->treblereg,desc->treblefunc(chip->treble)); 1562 */
1563 v4l_info(chip->c, "bass/treble callbacks undefined!\n");
1564 desc->flags &= ~CHIP_HAS_BASSTREBLE;
1565 } else {
1566 chip->treble = desc->trebleinit ?
1567 desc->trebleinit : 32768;
1568 chip->bass = desc->bassinit ?
1569 desc->bassinit : 32768;
1570 chip_write(chip, desc->bassreg,
1571 desc->bassfunc(chip->bass));
1572 chip_write(chip, desc->treblereg,
1573 desc->treblefunc(chip->treble));
1574 }
1519 } 1575 }
1520 1576
1521 chip->thread = NULL; 1577 chip->thread = NULL;
1522 if (desc->checkmode) { 1578 if (desc->flags & CHIP_NEED_CHECKMODE) {
1579 if (!desc->getmode || !desc->setmode) {
1580 /* This shouldn't be happen. Warn user, but keep working
1581 without kthread
1582 */
1583 v4l_info(chip->c, "set/get mode callbacks undefined!\n");
1584 return 0;
1585 }
1523 /* start async thread */ 1586 /* start async thread */
1524 init_timer(&chip->wt); 1587 init_timer(&chip->wt);
1525 chip->wt.function = chip_thread_wake; 1588 chip->wt.function = chip_thread_wake;
@@ -1552,7 +1615,7 @@ static int chip_remove(struct i2c_client *client)
1552static int tvaudio_get_ctrl(struct CHIPSTATE *chip, 1615static int tvaudio_get_ctrl(struct CHIPSTATE *chip,
1553 struct v4l2_control *ctrl) 1616 struct v4l2_control *ctrl)
1554{ 1617{
1555 struct CHIPDESC *desc = chiplist + chip->type; 1618 struct CHIPDESC *desc = chip->desc;
1556 1619
1557 switch (ctrl->id) { 1620 switch (ctrl->id) {
1558 case V4L2_CID_AUDIO_MUTE: 1621 case V4L2_CID_AUDIO_MUTE:
@@ -1576,13 +1639,13 @@ static int tvaudio_get_ctrl(struct CHIPSTATE *chip,
1576 return 0; 1639 return 0;
1577 } 1640 }
1578 case V4L2_CID_AUDIO_BASS: 1641 case V4L2_CID_AUDIO_BASS:
1579 if (desc->flags & CHIP_HAS_BASSTREBLE) 1642 if (!(desc->flags & CHIP_HAS_BASSTREBLE))
1580 break; 1643 break;
1581 ctrl->value = chip->bass; 1644 ctrl->value = chip->bass;
1582 return 0; 1645 return 0;
1583 case V4L2_CID_AUDIO_TREBLE: 1646 case V4L2_CID_AUDIO_TREBLE:
1584 if (desc->flags & CHIP_HAS_BASSTREBLE) 1647 if (!(desc->flags & CHIP_HAS_BASSTREBLE))
1585 return -EINVAL; 1648 break;
1586 ctrl->value = chip->treble; 1649 ctrl->value = chip->treble;
1587 return 0; 1650 return 0;
1588 } 1651 }
@@ -1592,7 +1655,7 @@ static int tvaudio_get_ctrl(struct CHIPSTATE *chip,
1592static int tvaudio_set_ctrl(struct CHIPSTATE *chip, 1655static int tvaudio_set_ctrl(struct CHIPSTATE *chip,
1593 struct v4l2_control *ctrl) 1656 struct v4l2_control *ctrl)
1594{ 1657{
1595 struct CHIPDESC *desc = chiplist + chip->type; 1658 struct CHIPDESC *desc = chip->desc;
1596 1659
1597 switch (ctrl->id) { 1660 switch (ctrl->id) {
1598 case V4L2_CID_AUDIO_MUTE: 1661 case V4L2_CID_AUDIO_MUTE:
@@ -1642,16 +1705,15 @@ static int tvaudio_set_ctrl(struct CHIPSTATE *chip,
1642 return 0; 1705 return 0;
1643 } 1706 }
1644 case V4L2_CID_AUDIO_BASS: 1707 case V4L2_CID_AUDIO_BASS:
1645 if (desc->flags & CHIP_HAS_BASSTREBLE) 1708 if (!(desc->flags & CHIP_HAS_BASSTREBLE))
1646 break; 1709 break;
1647 chip->bass = ctrl->value; 1710 chip->bass = ctrl->value;
1648 chip_write(chip,desc->bassreg,desc->bassfunc(chip->bass)); 1711 chip_write(chip,desc->bassreg,desc->bassfunc(chip->bass));
1649 1712
1650 return 0; 1713 return 0;
1651 case V4L2_CID_AUDIO_TREBLE: 1714 case V4L2_CID_AUDIO_TREBLE:
1652 if (desc->flags & CHIP_HAS_BASSTREBLE) 1715 if (!(desc->flags & CHIP_HAS_BASSTREBLE))
1653 return -EINVAL; 1716 break;
1654
1655 chip->treble = ctrl->value; 1717 chip->treble = ctrl->value;
1656 chip_write(chip,desc->treblereg,desc->treblefunc(chip->treble)); 1718 chip_write(chip,desc->treblereg,desc->treblefunc(chip->treble));
1657 1719
@@ -1668,9 +1730,12 @@ static int chip_command(struct i2c_client *client,
1668 unsigned int cmd, void *arg) 1730 unsigned int cmd, void *arg)
1669{ 1731{
1670 struct CHIPSTATE *chip = i2c_get_clientdata(client); 1732 struct CHIPSTATE *chip = i2c_get_clientdata(client);
1671 struct CHIPDESC *desc = chiplist + chip->type; 1733 struct CHIPDESC *desc = chip->desc;
1672 1734
1673 v4l_dbg(1, debug, chip->c, "%s: chip_command 0x%x\n", chip->c->name, cmd); 1735 if (debug > 0) {
1736 v4l_i2c_print_ioctl(chip->c, cmd);
1737 printk("\n");
1738 }
1674 1739
1675 switch (cmd) { 1740 switch (cmd) {
1676 case AUDC_SET_RADIO: 1741 case AUDC_SET_RADIO:
@@ -1695,7 +1760,7 @@ static int chip_command(struct i2c_client *client,
1695 break; 1760 break;
1696 case V4L2_CID_AUDIO_BASS: 1761 case V4L2_CID_AUDIO_BASS:
1697 case V4L2_CID_AUDIO_TREBLE: 1762 case V4L2_CID_AUDIO_TREBLE:
1698 if (desc->flags & CHIP_HAS_BASSTREBLE) 1763 if (!(desc->flags & CHIP_HAS_BASSTREBLE))
1699 return -EINVAL; 1764 return -EINVAL;
1700 break; 1765 break;
1701 default: 1766 default:
@@ -1792,12 +1857,20 @@ static int chip_command(struct i2c_client *client,
1792 break; 1857 break;
1793 case VIDIOC_S_FREQUENCY: 1858 case VIDIOC_S_FREQUENCY:
1794 chip->mode = 0; /* automatic */ 1859 chip->mode = 0; /* automatic */
1795 if (desc->checkmode && desc->setmode) { 1860
1861 /* For chips that provide getmode and setmode, and doesn't
1862 automatically follows the stereo carrier, a kthread is
1863 created to set the audio standard. In this case, when then
1864 the video channel is changed, tvaudio starts on MONO mode.
1865 After waiting for 2 seconds, the kernel thread is called,
1866 to follow whatever audio standard is pointed by the
1867 audio carrier.
1868 */
1869 if (chip->thread) {
1796 desc->setmode(chip,V4L2_TUNER_MODE_MONO); 1870 desc->setmode(chip,V4L2_TUNER_MODE_MONO);
1797 if (chip->prevmode != V4L2_TUNER_MODE_MONO) 1871 if (chip->prevmode != V4L2_TUNER_MODE_MONO)
1798 chip->prevmode = -1; /* reset previous mode */ 1872 chip->prevmode = -1; /* reset previous mode */
1799 mod_timer(&chip->wt, jiffies+msecs_to_jiffies(2000)); 1873 mod_timer(&chip->wt, jiffies+msecs_to_jiffies(2000));
1800 /* the thread will call checkmode() later */
1801 } 1874 }
1802 break; 1875 break;
1803 1876
@@ -1836,9 +1909,3 @@ static struct v4l2_i2c_driver_data v4l2_i2c_data = {
1836 .legacy_probe = chip_legacy_probe, 1909 .legacy_probe = chip_legacy_probe,
1837 .id_table = chip_id, 1910 .id_table = chip_id,
1838}; 1911};
1839
1840/*
1841 * Local variables:
1842 * c-basic-offset: 8
1843 * End:
1844 */
diff --git a/drivers/media/video/usbvideo/ibmcam.c b/drivers/media/video/usbvideo/ibmcam.c
index 28421d386f1e..c710bcd1df48 100644
--- a/drivers/media/video/usbvideo/ibmcam.c
+++ b/drivers/media/video/usbvideo/ibmcam.c
@@ -3695,7 +3695,7 @@ static int ibmcam_probe(struct usb_interface *intf, const struct usb_device_id *
3695 unsigned char video_ep = 0; 3695 unsigned char video_ep = 0;
3696 3696
3697 if (debug >= 1) 3697 if (debug >= 1)
3698 dev_info(&uvd->dev->dev, "ibmcam_probe(%p,%u.)\n", intf, ifnum); 3698 dev_info(&dev->dev, "ibmcam_probe(%p,%u.)\n", intf, ifnum);
3699 3699
3700 /* We don't handle multi-config cameras */ 3700 /* We don't handle multi-config cameras */
3701 if (dev->descriptor.bNumConfigurations != 1) 3701 if (dev->descriptor.bNumConfigurations != 1)
@@ -3746,7 +3746,7 @@ static int ibmcam_probe(struct usb_interface *intf, const struct usb_device_id *
3746 brand = "IBM PC Camera"; /* a.k.a. Xirlink C-It */ 3746 brand = "IBM PC Camera"; /* a.k.a. Xirlink C-It */
3747 break; 3747 break;
3748 } 3748 }
3749 dev_info(&uvd->dev->dev, 3749 dev_info(&dev->dev,
3750 "%s USB camera found (model %d, rev. 0x%04x)\n", 3750 "%s USB camera found (model %d, rev. 0x%04x)\n",
3751 brand, model, le16_to_cpu(dev->descriptor.bcdDevice)); 3751 brand, model, le16_to_cpu(dev->descriptor.bcdDevice));
3752 } while (0); 3752 } while (0);
@@ -3754,7 +3754,7 @@ static int ibmcam_probe(struct usb_interface *intf, const struct usb_device_id *
3754 /* Validate found interface: must have one ISO endpoint */ 3754 /* Validate found interface: must have one ISO endpoint */
3755 nas = intf->num_altsetting; 3755 nas = intf->num_altsetting;
3756 if (debug > 0) 3756 if (debug > 0)
3757 dev_info(&uvd->dev->dev, "Number of alternate settings=%d.\n", 3757 dev_info(&dev->dev, "Number of alternate settings=%d.\n",
3758 nas); 3758 nas);
3759 if (nas < 2) { 3759 if (nas < 2) {
3760 err("Too few alternate settings for this camera!"); 3760 err("Too few alternate settings for this camera!");
@@ -3799,7 +3799,7 @@ static int ibmcam_probe(struct usb_interface *intf, const struct usb_device_id *
3799 actInterface = i; 3799 actInterface = i;
3800 maxPS = le16_to_cpu(endpoint->wMaxPacketSize); 3800 maxPS = le16_to_cpu(endpoint->wMaxPacketSize);
3801 if (debug > 0) 3801 if (debug > 0)
3802 dev_info(&uvd->dev->dev, 3802 dev_info(&dev->dev,
3803 "Active setting=%d. " 3803 "Active setting=%d. "
3804 "maxPS=%d.\n", i, maxPS); 3804 "maxPS=%d.\n", i, maxPS);
3805 } else 3805 } else
@@ -3840,7 +3840,7 @@ static int ibmcam_probe(struct usb_interface *intf, const struct usb_device_id *
3840 RESTRICT_TO_RANGE(framerate, 0, 5); 3840 RESTRICT_TO_RANGE(framerate, 0, 5);
3841 break; 3841 break;
3842 default: 3842 default:
3843 dev_info(&uvd->dev->dev, "IBM camera: using 320x240\n"); 3843 dev_info(&dev->dev, "IBM camera: using 320x240\n");
3844 size = SIZE_320x240; 3844 size = SIZE_320x240;
3845 /* No break here */ 3845 /* No break here */
3846 case SIZE_320x240: 3846 case SIZE_320x240:
@@ -3869,7 +3869,7 @@ static int ibmcam_probe(struct usb_interface *intf, const struct usb_device_id *
3869 canvasY = 120; 3869 canvasY = 120;
3870 break; 3870 break;
3871 default: 3871 default:
3872 dev_info(&uvd->dev->dev, "IBM NetCamera: using 176x144\n"); 3872 dev_info(&dev->dev, "IBM NetCamera: using 176x144\n");
3873 size = SIZE_176x144; 3873 size = SIZE_176x144;
3874 /* No break here */ 3874 /* No break here */
3875 case SIZE_176x144: 3875 case SIZE_176x144:
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c
index a1abf95cf751..603ffd008c73 100644
--- a/drivers/message/fusion/mptlan.c
+++ b/drivers/message/fusion/mptlan.c
@@ -77,12 +77,6 @@ MODULE_VERSION(my_VERSION);
77 * Fusion MPT LAN private structures 77 * Fusion MPT LAN private structures
78 */ 78 */
79 79
80struct NAA_Hosed {
81 u16 NAA;
82 u8 ieee[FC_ALEN];
83 struct NAA_Hosed *next;
84};
85
86struct BufferControl { 80struct BufferControl {
87 struct sk_buff *skb; 81 struct sk_buff *skb;
88 dma_addr_t dma; 82 dma_addr_t dma;
@@ -159,11 +153,6 @@ static u8 LanCtx = MPT_MAX_PROTOCOL_DRIVERS;
159static u32 max_buckets_out = 127; 153static u32 max_buckets_out = 127;
160static u32 tx_max_out_p = 127 - 16; 154static u32 tx_max_out_p = 127 - 16;
161 155
162#ifdef QLOGIC_NAA_WORKAROUND
163static struct NAA_Hosed *mpt_bad_naa = NULL;
164DEFINE_RWLOCK(bad_naa_lock);
165#endif
166
167/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 156/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
168/** 157/**
169 * lan_reply - Handle all data sent from the hardware. 158 * lan_reply - Handle all data sent from the hardware.
@@ -780,30 +769,6 @@ mpt_lan_sdu_send (struct sk_buff *skb, struct net_device *dev)
780// ctx, skb, skb->data)); 769// ctx, skb, skb->data));
781 770
782 mac = skb_mac_header(skb); 771 mac = skb_mac_header(skb);
783#ifdef QLOGIC_NAA_WORKAROUND
784{
785 struct NAA_Hosed *nh;
786
787 /* Munge the NAA for Tx packets to QLogic boards, which don't follow
788 RFC 2625. The longer I look at this, the more my opinion of Qlogic
789 drops. */
790 read_lock_irq(&bad_naa_lock);
791 for (nh = mpt_bad_naa; nh != NULL; nh=nh->next) {
792 if ((nh->ieee[0] == mac[0]) &&
793 (nh->ieee[1] == mac[1]) &&
794 (nh->ieee[2] == mac[2]) &&
795 (nh->ieee[3] == mac[3]) &&
796 (nh->ieee[4] == mac[4]) &&
797 (nh->ieee[5] == mac[5])) {
798 cur_naa = nh->NAA;
799 dlprintk ((KERN_INFO "mptlan/sdu_send: using NAA value "
800 "= %04x.\n", cur_naa));
801 break;
802 }
803 }
804 read_unlock_irq(&bad_naa_lock);
805}
806#endif
807 772
808 pTrans->TransactionDetails[0] = cpu_to_le32((cur_naa << 16) | 773 pTrans->TransactionDetails[0] = cpu_to_le32((cur_naa << 16) |
809 (mac[0] << 8) | 774 (mac[0] << 8) |
@@ -1572,79 +1537,6 @@ mpt_lan_type_trans(struct sk_buff *skb, struct net_device *dev)
1572 1537
1573 fcllc = (struct fcllc *)skb->data; 1538 fcllc = (struct fcllc *)skb->data;
1574 1539
1575#ifdef QLOGIC_NAA_WORKAROUND
1576{
1577 u16 source_naa = fch->stype, found = 0;
1578
1579 /* Workaround for QLogic not following RFC 2625 in regards to the NAA
1580 value. */
1581
1582 if ((source_naa & 0xF000) == 0)
1583 source_naa = swab16(source_naa);
1584
1585 if (fcllc->ethertype == htons(ETH_P_ARP))
1586 dlprintk ((KERN_INFO "mptlan/type_trans: got arp req/rep w/ naa of "
1587 "%04x.\n", source_naa));
1588
1589 if ((fcllc->ethertype == htons(ETH_P_ARP)) &&
1590 ((source_naa >> 12) != MPT_LAN_NAA_RFC2625)){
1591 struct NAA_Hosed *nh, *prevnh;
1592 int i;
1593
1594 dlprintk ((KERN_INFO "mptlan/type_trans: ARP Req/Rep from "
1595 "system with non-RFC 2625 NAA value (%04x).\n",
1596 source_naa));
1597
1598 write_lock_irq(&bad_naa_lock);
1599 for (prevnh = nh = mpt_bad_naa; nh != NULL;
1600 prevnh=nh, nh=nh->next) {
1601 if ((nh->ieee[0] == fch->saddr[0]) &&
1602 (nh->ieee[1] == fch->saddr[1]) &&
1603 (nh->ieee[2] == fch->saddr[2]) &&
1604 (nh->ieee[3] == fch->saddr[3]) &&
1605 (nh->ieee[4] == fch->saddr[4]) &&
1606 (nh->ieee[5] == fch->saddr[5])) {
1607 found = 1;
1608 dlprintk ((KERN_INFO "mptlan/type_trans: ARP Re"
1609 "q/Rep w/ bad NAA from system already"
1610 " in DB.\n"));
1611 break;
1612 }
1613 }
1614
1615 if ((!found) && (nh == NULL)) {
1616
1617 nh = kmalloc(sizeof(struct NAA_Hosed), GFP_KERNEL);
1618 dlprintk ((KERN_INFO "mptlan/type_trans: ARP Req/Rep w/"
1619 " bad NAA from system not yet in DB.\n"));
1620
1621 if (nh != NULL) {
1622 nh->next = NULL;
1623 if (!mpt_bad_naa)
1624 mpt_bad_naa = nh;
1625 if (prevnh)
1626 prevnh->next = nh;
1627
1628 nh->NAA = source_naa; /* Set the S_NAA value. */
1629 for (i = 0; i < FC_ALEN; i++)
1630 nh->ieee[i] = fch->saddr[i];
1631 dlprintk ((KERN_INFO "Got ARP from %02x:%02x:%02x:%02x:"
1632 "%02x:%02x with non-compliant S_NAA value.\n",
1633 fch->saddr[0], fch->saddr[1], fch->saddr[2],
1634 fch->saddr[3], fch->saddr[4],fch->saddr[5]));
1635 } else {
1636 printk (KERN_ERR "mptlan/type_trans: Unable to"
1637 " kmalloc a NAA_Hosed struct.\n");
1638 }
1639 } else if (!found) {
1640 printk (KERN_ERR "mptlan/type_trans: found not"
1641 " set, but nh isn't null. Evil "
1642 "funkiness abounds.\n");
1643 }
1644 write_unlock_irq(&bad_naa_lock);
1645 }
1646}
1647#endif
1648 1540
1649 /* Strip the SNAP header from ARP packets since we don't 1541 /* Strip the SNAP header from ARP packets since we don't
1650 * pass them through to the 802.2/SNAP layers. 1542 * pass them through to the 802.2/SNAP layers.
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/mfd/da903x.c b/drivers/mfd/da903x.c
index b57326ae464d..0b5bd85dfcec 100644
--- a/drivers/mfd/da903x.c
+++ b/drivers/mfd/da903x.c
@@ -267,7 +267,7 @@ static int da9030_mask_events(struct da903x_chip *chip, unsigned int events)
267{ 267{
268 uint8_t v[3]; 268 uint8_t v[3];
269 269
270 chip->events_mask &= ~events; 270 chip->events_mask |= events;
271 271
272 v[0] = (chip->events_mask & 0xff); 272 v[0] = (chip->events_mask & 0xff);
273 v[1] = (chip->events_mask >> 8) & 0xff; 273 v[1] = (chip->events_mask >> 8) & 0xff;
diff --git a/drivers/mfd/wm8350-i2c.c b/drivers/mfd/wm8350-i2c.c
index 8dfe21bb3bd1..3e0ce0e50ea2 100644
--- a/drivers/mfd/wm8350-i2c.c
+++ b/drivers/mfd/wm8350-i2c.c
@@ -30,7 +30,12 @@ static int wm8350_i2c_read_device(struct wm8350 *wm8350, char reg,
30 ret = i2c_master_send(wm8350->i2c_client, &reg, 1); 30 ret = i2c_master_send(wm8350->i2c_client, &reg, 1);
31 if (ret < 0) 31 if (ret < 0)
32 return ret; 32 return ret;
33 return i2c_master_recv(wm8350->i2c_client, dest, bytes); 33 ret = i2c_master_recv(wm8350->i2c_client, dest, bytes);
34 if (ret < 0)
35 return ret;
36 if (ret != bytes)
37 return -EIO;
38 return 0;
34} 39}
35 40
36static int wm8350_i2c_write_device(struct wm8350 *wm8350, char reg, 41static int wm8350_i2c_write_device(struct wm8350 *wm8350, char reg,
@@ -38,13 +43,19 @@ static int wm8350_i2c_write_device(struct wm8350 *wm8350, char reg,
38{ 43{
39 /* we add 1 byte for device register */ 44 /* we add 1 byte for device register */
40 u8 msg[(WM8350_MAX_REGISTER << 1) + 1]; 45 u8 msg[(WM8350_MAX_REGISTER << 1) + 1];
46 int ret;
41 47
42 if (bytes > ((WM8350_MAX_REGISTER << 1) + 1)) 48 if (bytes > ((WM8350_MAX_REGISTER << 1) + 1))
43 return -EINVAL; 49 return -EINVAL;
44 50
45 msg[0] = reg; 51 msg[0] = reg;
46 memcpy(&msg[1], src, bytes); 52 memcpy(&msg[1], src, bytes);
47 return i2c_master_send(wm8350->i2c_client, msg, bytes + 1); 53 ret = i2c_master_send(wm8350->i2c_client, msg, bytes + 1);
54 if (ret < 0)
55 return ret;
56 if (ret != bytes + 1)
57 return -EIO;
58 return 0;
48} 59}
49 60
50static int wm8350_i2c_probe(struct i2c_client *i2c, 61static int wm8350_i2c_probe(struct i2c_client *i2c,
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 9494400e8fd0..fee7304102af 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -227,10 +227,20 @@ config HP_WMI
227 To compile this driver as a module, choose M here: the module will 227 To compile this driver as a module, choose M here: the module will
228 be called hp-wmi. 228 be called hp-wmi.
229 229
230config ICS932S401
231 tristate "Integrated Circuits ICS932S401"
232 depends on I2C && EXPERIMENTAL
233 help
234 If you say yes here you get support for the Integrated Circuits
235 ICS932S401 clock control chips.
236
237 This driver can also be built as a module. If so, the module
238 will be called ics932s401.
239
230config MSI_LAPTOP 240config MSI_LAPTOP
231 tristate "MSI Laptop Extras" 241 tristate "MSI Laptop Extras"
232 depends on X86 242 depends on X86
233 depends on ACPI_EC 243 depends on ACPI
234 depends on BACKLIGHT_CLASS_DEVICE 244 depends on BACKLIGHT_CLASS_DEVICE
235 ---help--- 245 ---help---
236 This is a driver for laptops built by MSI (MICRO-STAR 246 This is a driver for laptops built by MSI (MICRO-STAR
@@ -260,7 +270,7 @@ config PANASONIC_LAPTOP
260config COMPAL_LAPTOP 270config COMPAL_LAPTOP
261 tristate "Compal Laptop Extras" 271 tristate "Compal Laptop Extras"
262 depends on X86 272 depends on X86
263 depends on ACPI_EC 273 depends on ACPI
264 depends on BACKLIGHT_CLASS_DEVICE 274 depends on BACKLIGHT_CLASS_DEVICE
265 ---help--- 275 ---help---
266 This is a driver for laptops built by Compal: 276 This is a driver for laptops built by Compal:
@@ -488,4 +498,6 @@ config SGI_GRU_DEBUG
488 This option enables addition debugging code for the SGI GRU driver. If 498 This option enables addition debugging code for the SGI GRU driver. If
489 you are unsure, say N. 499 you are unsure, say N.
490 500
501source "drivers/misc/c2port/Kconfig"
502
491endif # MISC_DEVICES 503endif # MISC_DEVICES
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 909e2468cdc9..817f7f5ab3bd 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_ATMEL_PWM) += atmel_pwm.o
14obj-$(CONFIG_ATMEL_SSC) += atmel-ssc.o 14obj-$(CONFIG_ATMEL_SSC) += atmel-ssc.o
15obj-$(CONFIG_ATMEL_TCLIB) += atmel_tclib.o 15obj-$(CONFIG_ATMEL_TCLIB) += atmel_tclib.o
16obj-$(CONFIG_HP_WMI) += hp-wmi.o 16obj-$(CONFIG_HP_WMI) += hp-wmi.o
17obj-$(CONFIG_ICS932S401) += ics932s401.o
17obj-$(CONFIG_TC1100_WMI) += tc1100-wmi.o 18obj-$(CONFIG_TC1100_WMI) += tc1100-wmi.o
18obj-$(CONFIG_LKDTM) += lkdtm.o 19obj-$(CONFIG_LKDTM) += lkdtm.o
19obj-$(CONFIG_TIFM_CORE) += tifm_core.o 20obj-$(CONFIG_TIFM_CORE) += tifm_core.o
@@ -31,3 +32,4 @@ obj-$(CONFIG_KGDB_TESTS) += kgdbts.o
31obj-$(CONFIG_SGI_XP) += sgi-xp/ 32obj-$(CONFIG_SGI_XP) += sgi-xp/
32obj-$(CONFIG_SGI_GRU) += sgi-gru/ 33obj-$(CONFIG_SGI_GRU) += sgi-gru/
33obj-$(CONFIG_HP_ILO) += hpilo.o 34obj-$(CONFIG_HP_ILO) += hpilo.o
35obj-$(CONFIG_C2PORT) += c2port/
diff --git a/drivers/misc/acer-wmi.c b/drivers/misc/acer-wmi.c
index 0532a2de2ce4..94c9f911824e 100644
--- a/drivers/misc/acer-wmi.c
+++ b/drivers/misc/acer-wmi.c
@@ -1297,6 +1297,12 @@ static int __init acer_wmi_init(void)
1297 1297
1298 set_quirks(); 1298 set_quirks();
1299 1299
1300 if (!acpi_video_backlight_support() && has_cap(ACER_CAP_BRIGHTNESS)) {
1301 interface->capability &= ~ACER_CAP_BRIGHTNESS;
1302 printk(ACER_INFO "Brightness must be controlled by "
1303 "generic video driver\n");
1304 }
1305
1300 if (platform_driver_register(&acer_platform_driver)) { 1306 if (platform_driver_register(&acer_platform_driver)) {
1301 printk(ACER_ERR "Unable to register platform driver.\n"); 1307 printk(ACER_ERR "Unable to register platform driver.\n");
1302 goto error_platform_register; 1308 goto error_platform_register;
diff --git a/drivers/misc/asus-laptop.c b/drivers/misc/asus-laptop.c
index a9d5228724a6..8fb8b3591048 100644
--- a/drivers/misc/asus-laptop.c
+++ b/drivers/misc/asus-laptop.c
@@ -1208,9 +1208,13 @@ static int __init asus_laptop_init(void)
1208 1208
1209 dev = acpi_get_physical_device(hotk->device->handle); 1209 dev = acpi_get_physical_device(hotk->device->handle);
1210 1210
1211 result = asus_backlight_init(dev); 1211 if (!acpi_video_backlight_support()) {
1212 if (result) 1212 result = asus_backlight_init(dev);
1213 goto fail_backlight; 1213 if (result)
1214 goto fail_backlight;
1215 } else
1216 printk(ASUS_INFO "Brightness ignored, must be controlled by "
1217 "ACPI video driver\n");
1214 1218
1215 result = asus_led_init(dev); 1219 result = asus_led_init(dev);
1216 if (result) 1220 if (result)
diff --git a/drivers/misc/c2port/Kconfig b/drivers/misc/c2port/Kconfig
new file mode 100644
index 000000000000..e46af9a5810d
--- /dev/null
+++ b/drivers/misc/c2port/Kconfig
@@ -0,0 +1,35 @@
1#
2# C2 port devices
3#
4
5menuconfig C2PORT
6 tristate "Silicon Labs C2 port support (EXPERIMENTAL)"
7 depends on EXPERIMENTAL
8 default no
9 help
10 This option enables support for Silicon Labs C2 port used to
11 program Silicon micro controller chips (and other 8051 compatible).
12
13 If your board have no such micro controllers you don't need this
14 interface at all.
15
16 To compile this driver as a module, choose M here: the module will
17 be called c2port_core. Note that you also need a client module
18 usually called c2port-*.
19
20 If you are not sure, say N here.
21
22if C2PORT
23
24config C2PORT_DURAMAR_2150
25 tristate "C2 port support for Eurotech's Duramar 2150 (EXPERIMENTAL)"
26 depends on X86 && C2PORT
27 default no
28 help
29 This option enables C2 support for the Eurotech's Duramar 2150
30 on board micro controller.
31
32 To compile this driver as a module, choose M here: the module will
33 be called c2port-duramar2150.
34
35endif # C2PORT
diff --git a/drivers/misc/c2port/Makefile b/drivers/misc/c2port/Makefile
new file mode 100644
index 000000000000..3b2cf43d60f5
--- /dev/null
+++ b/drivers/misc/c2port/Makefile
@@ -0,0 +1,3 @@
1obj-$(CONFIG_C2PORT) += core.o
2
3obj-$(CONFIG_C2PORT_DURAMAR_2150) += c2port-duramar2150.o
diff --git a/drivers/misc/c2port/c2port-duramar2150.c b/drivers/misc/c2port/c2port-duramar2150.c
new file mode 100644
index 000000000000..338dcc121507
--- /dev/null
+++ b/drivers/misc/c2port/c2port-duramar2150.c
@@ -0,0 +1,158 @@
1/*
2 * Silicon Labs C2 port Linux support for Eurotech Duramar 2150
3 *
4 * Copyright (c) 2008 Rodolfo Giometti <giometti@linux.it>
5 * Copyright (c) 2008 Eurotech S.p.A. <info@eurotech.it>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation
10 */
11
12#include <linux/errno.h>
13#include <linux/init.h>
14#include <linux/kernel.h>
15#include <linux/module.h>
16#include <linux/delay.h>
17#include <linux/io.h>
18#include <linux/c2port.h>
19
20#define DATA_PORT 0x325
21#define DIR_PORT 0x326
22#define C2D (1 << 0)
23#define C2CK (1 << 1)
24
25static DEFINE_MUTEX(update_lock);
26
27/*
28 * C2 port operations
29 */
30
31static void duramar2150_c2port_access(struct c2port_device *dev, int status)
32{
33 u8 v;
34
35 mutex_lock(&update_lock);
36
37 v = inb(DIR_PORT);
38
39 /* 0 = input, 1 = output */
40 if (status)
41 outb(v | (C2D | C2CK), DIR_PORT);
42 else
43 /* When access is "off" is important that both lines are set
44 * as inputs or hi-impedence */
45 outb(v & ~(C2D | C2CK), DIR_PORT);
46
47 mutex_unlock(&update_lock);
48}
49
50static void duramar2150_c2port_c2d_dir(struct c2port_device *dev, int dir)
51{
52 u8 v;
53
54 mutex_lock(&update_lock);
55
56 v = inb(DIR_PORT);
57
58 if (dir)
59 outb(v & ~C2D, DIR_PORT);
60 else
61 outb(v | C2D, DIR_PORT);
62
63 mutex_unlock(&update_lock);
64}
65
66static int duramar2150_c2port_c2d_get(struct c2port_device *dev)
67{
68 return inb(DATA_PORT) & C2D;
69}
70
71static void duramar2150_c2port_c2d_set(struct c2port_device *dev, int status)
72{
73 u8 v;
74
75 mutex_lock(&update_lock);
76
77 v = inb(DATA_PORT);
78
79 if (status)
80 outb(v | C2D, DATA_PORT);
81 else
82 outb(v & ~C2D, DATA_PORT);
83
84 mutex_unlock(&update_lock);
85}
86
87static void duramar2150_c2port_c2ck_set(struct c2port_device *dev, int status)
88{
89 u8 v;
90
91 mutex_lock(&update_lock);
92
93 v = inb(DATA_PORT);
94
95 if (status)
96 outb(v | C2CK, DATA_PORT);
97 else
98 outb(v & ~C2CK, DATA_PORT);
99
100 mutex_unlock(&update_lock);
101}
102
103static struct c2port_ops duramar2150_c2port_ops = {
104 .block_size = 512, /* bytes */
105 .blocks_num = 30, /* total flash size: 15360 bytes */
106
107 .access = duramar2150_c2port_access,
108 .c2d_dir = duramar2150_c2port_c2d_dir,
109 .c2d_get = duramar2150_c2port_c2d_get,
110 .c2d_set = duramar2150_c2port_c2d_set,
111 .c2ck_set = duramar2150_c2port_c2ck_set,
112};
113
114static struct c2port_device *duramar2150_c2port_dev;
115
116/*
117 * Module stuff
118 */
119
120static int __init duramar2150_c2port_init(void)
121{
122 struct resource *res;
123 int ret = 0;
124
125 res = request_region(0x325, 2, "c2port");
126 if (!res)
127 return -EBUSY;
128
129 duramar2150_c2port_dev = c2port_device_register("uc",
130 &duramar2150_c2port_ops, NULL);
131 if (!duramar2150_c2port_dev) {
132 ret = -ENODEV;
133 goto free_region;
134 }
135
136 return 0;
137
138free_region:
139 release_region(0x325, 2);
140 return ret;
141}
142
143static void __exit duramar2150_c2port_exit(void)
144{
145 /* Setup the GPIOs as input by default (access = 0) */
146 duramar2150_c2port_access(duramar2150_c2port_dev, 0);
147
148 c2port_device_unregister(duramar2150_c2port_dev);
149
150 release_region(0x325, 2);
151}
152
153module_init(duramar2150_c2port_init);
154module_exit(duramar2150_c2port_exit);
155
156MODULE_AUTHOR("Rodolfo Giometti <giometti@linux.it>");
157MODULE_DESCRIPTION("Silicon Labs C2 port Linux support for Duramar 2150");
158MODULE_LICENSE("GPL");
diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c
new file mode 100644
index 000000000000..0207dd59090d
--- /dev/null
+++ b/drivers/misc/c2port/core.c
@@ -0,0 +1,1003 @@
1/*
2 * Silicon Labs C2 port core Linux support
3 *
4 * Copyright (c) 2007 Rodolfo Giometti <giometti@linux.it>
5 * Copyright (c) 2007 Eurotech S.p.A. <info@eurotech.it>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation
10 */
11
12#include <linux/module.h>
13#include <linux/init.h>
14#include <linux/device.h>
15#include <linux/errno.h>
16#include <linux/err.h>
17#include <linux/kernel.h>
18#include <linux/ctype.h>
19#include <linux/delay.h>
20#include <linux/idr.h>
21#include <linux/sched.h>
22
23#include <linux/c2port.h>
24
25#define DRIVER_NAME "c2port"
26#define DRIVER_VERSION "0.51.0"
27
28static DEFINE_SPINLOCK(c2port_idr_lock);
29static DEFINE_IDR(c2port_idr);
30
31/*
32 * Local variables
33 */
34
35static struct class *c2port_class;
36
37/*
38 * C2 registers & commands defines
39 */
40
41/* C2 registers */
42#define C2PORT_DEVICEID 0x00
43#define C2PORT_REVID 0x01
44#define C2PORT_FPCTL 0x02
45#define C2PORT_FPDAT 0xB4
46
47/* C2 interface commands */
48#define C2PORT_GET_VERSION 0x01
49#define C2PORT_DEVICE_ERASE 0x03
50#define C2PORT_BLOCK_READ 0x06
51#define C2PORT_BLOCK_WRITE 0x07
52#define C2PORT_PAGE_ERASE 0x08
53
54/* C2 status return codes */
55#define C2PORT_INVALID_COMMAND 0x00
56#define C2PORT_COMMAND_FAILED 0x02
57#define C2PORT_COMMAND_OK 0x0d
58
59/*
60 * C2 port low level signal managements
61 */
62
63static void c2port_reset(struct c2port_device *dev)
64{
65 struct c2port_ops *ops = dev->ops;
66
67 /* To reset the device we have to keep clock line low for at least
68 * 20us.
69 */
70 local_irq_disable();
71 ops->c2ck_set(dev, 0);
72 udelay(25);
73 ops->c2ck_set(dev, 1);
74 local_irq_enable();
75
76 udelay(1);
77}
78
79static void c2port_strobe_ck(struct c2port_device *dev)
80{
81 struct c2port_ops *ops = dev->ops;
82
83 /* During hi-low-hi transition we disable local IRQs to avoid
84 * interructions since C2 port specification says that it must be
85 * shorter than 5us, otherwise the microcontroller may consider
86 * it as a reset signal!
87 */
88 local_irq_disable();
89 ops->c2ck_set(dev, 0);
90 udelay(1);
91 ops->c2ck_set(dev, 1);
92 local_irq_enable();
93
94 udelay(1);
95}
96
97/*
98 * C2 port basic functions
99 */
100
101static void c2port_write_ar(struct c2port_device *dev, u8 addr)
102{
103 struct c2port_ops *ops = dev->ops;
104 int i;
105
106 /* START field */
107 c2port_strobe_ck(dev);
108
109 /* INS field (11b, LSB first) */
110 ops->c2d_dir(dev, 0);
111 ops->c2d_set(dev, 1);
112 c2port_strobe_ck(dev);
113 ops->c2d_set(dev, 1);
114 c2port_strobe_ck(dev);
115
116 /* ADDRESS field */
117 for (i = 0; i < 8; i++) {
118 ops->c2d_set(dev, addr & 0x01);
119 c2port_strobe_ck(dev);
120
121 addr >>= 1;
122 }
123
124 /* STOP field */
125 ops->c2d_dir(dev, 1);
126 c2port_strobe_ck(dev);
127}
128
129static int c2port_read_ar(struct c2port_device *dev, u8 *addr)
130{
131 struct c2port_ops *ops = dev->ops;
132 int i;
133
134 /* START field */
135 c2port_strobe_ck(dev);
136
137 /* INS field (10b, LSB first) */
138 ops->c2d_dir(dev, 0);
139 ops->c2d_set(dev, 0);
140 c2port_strobe_ck(dev);
141 ops->c2d_set(dev, 1);
142 c2port_strobe_ck(dev);
143
144 /* ADDRESS field */
145 ops->c2d_dir(dev, 1);
146 *addr = 0;
147 for (i = 0; i < 8; i++) {
148 *addr >>= 1; /* shift in 8-bit ADDRESS field LSB first */
149
150 c2port_strobe_ck(dev);
151 if (ops->c2d_get(dev))
152 *addr |= 0x80;
153 }
154
155 /* STOP field */
156 c2port_strobe_ck(dev);
157
158 return 0;
159}
160
161static int c2port_write_dr(struct c2port_device *dev, u8 data)
162{
163 struct c2port_ops *ops = dev->ops;
164 int timeout, i;
165
166 /* START field */
167 c2port_strobe_ck(dev);
168
169 /* INS field (01b, LSB first) */
170 ops->c2d_dir(dev, 0);
171 ops->c2d_set(dev, 1);
172 c2port_strobe_ck(dev);
173 ops->c2d_set(dev, 0);
174 c2port_strobe_ck(dev);
175
176 /* LENGTH field (00b, LSB first -> 1 byte) */
177 ops->c2d_set(dev, 0);
178 c2port_strobe_ck(dev);
179 ops->c2d_set(dev, 0);
180 c2port_strobe_ck(dev);
181
182 /* DATA field */
183 for (i = 0; i < 8; i++) {
184 ops->c2d_set(dev, data & 0x01);
185 c2port_strobe_ck(dev);
186
187 data >>= 1;
188 }
189
190 /* WAIT field */
191 ops->c2d_dir(dev, 1);
192 timeout = 20;
193 do {
194 c2port_strobe_ck(dev);
195 if (ops->c2d_get(dev))
196 break;
197
198 udelay(1);
199 } while (--timeout > 0);
200 if (timeout == 0)
201 return -EIO;
202
203 /* STOP field */
204 c2port_strobe_ck(dev);
205
206 return 0;
207}
208
209static int c2port_read_dr(struct c2port_device *dev, u8 *data)
210{
211 struct c2port_ops *ops = dev->ops;
212 int timeout, i;
213
214 /* START field */
215 c2port_strobe_ck(dev);
216
217 /* INS field (00b, LSB first) */
218 ops->c2d_dir(dev, 0);
219 ops->c2d_set(dev, 0);
220 c2port_strobe_ck(dev);
221 ops->c2d_set(dev, 0);
222 c2port_strobe_ck(dev);
223
224 /* LENGTH field (00b, LSB first -> 1 byte) */
225 ops->c2d_set(dev, 0);
226 c2port_strobe_ck(dev);
227 ops->c2d_set(dev, 0);
228 c2port_strobe_ck(dev);
229
230 /* WAIT field */
231 ops->c2d_dir(dev, 1);
232 timeout = 20;
233 do {
234 c2port_strobe_ck(dev);
235 if (ops->c2d_get(dev))
236 break;
237
238 udelay(1);
239 } while (--timeout > 0);
240 if (timeout == 0)
241 return -EIO;
242
243 /* DATA field */
244 *data = 0;
245 for (i = 0; i < 8; i++) {
246 *data >>= 1; /* shift in 8-bit DATA field LSB first */
247
248 c2port_strobe_ck(dev);
249 if (ops->c2d_get(dev))
250 *data |= 0x80;
251 }
252
253 /* STOP field */
254 c2port_strobe_ck(dev);
255
256 return 0;
257}
258
259static int c2port_poll_in_busy(struct c2port_device *dev)
260{
261 u8 addr;
262 int ret, timeout = 20;
263
264 do {
265 ret = (c2port_read_ar(dev, &addr));
266 if (ret < 0)
267 return -EIO;
268
269 if (!(addr & 0x02))
270 break;
271
272 udelay(1);
273 } while (--timeout > 0);
274 if (timeout == 0)
275 return -EIO;
276
277 return 0;
278}
279
280static int c2port_poll_out_ready(struct c2port_device *dev)
281{
282 u8 addr;
283 int ret, timeout = 10000; /* erase flash needs long time... */
284
285 do {
286 ret = (c2port_read_ar(dev, &addr));
287 if (ret < 0)
288 return -EIO;
289
290 if (addr & 0x01)
291 break;
292
293 udelay(1);
294 } while (--timeout > 0);
295 if (timeout == 0)
296 return -EIO;
297
298 return 0;
299}
300
301/*
302 * sysfs methods
303 */
304
305static ssize_t c2port_show_name(struct device *dev,
306 struct device_attribute *attr, char *buf)
307{
308 struct c2port_device *c2dev = dev_get_drvdata(dev);
309
310 return sprintf(buf, "%s\n", c2dev->name);
311}
312
313static ssize_t c2port_show_flash_blocks_num(struct device *dev,
314 struct device_attribute *attr, char *buf)
315{
316 struct c2port_device *c2dev = dev_get_drvdata(dev);
317 struct c2port_ops *ops = c2dev->ops;
318
319 return sprintf(buf, "%d\n", ops->blocks_num);
320}
321
322static ssize_t c2port_show_flash_block_size(struct device *dev,
323 struct device_attribute *attr, char *buf)
324{
325 struct c2port_device *c2dev = dev_get_drvdata(dev);
326 struct c2port_ops *ops = c2dev->ops;
327
328 return sprintf(buf, "%d\n", ops->block_size);
329}
330
331static ssize_t c2port_show_flash_size(struct device *dev,
332 struct device_attribute *attr, char *buf)
333{
334 struct c2port_device *c2dev = dev_get_drvdata(dev);
335 struct c2port_ops *ops = c2dev->ops;
336
337 return sprintf(buf, "%d\n", ops->blocks_num * ops->block_size);
338}
339
340static ssize_t c2port_show_access(struct device *dev,
341 struct device_attribute *attr, char *buf)
342{
343 struct c2port_device *c2dev = dev_get_drvdata(dev);
344
345 return sprintf(buf, "%d\n", c2dev->access);
346}
347
348static ssize_t c2port_store_access(struct device *dev,
349 struct device_attribute *attr,
350 const char *buf, size_t count)
351{
352 struct c2port_device *c2dev = dev_get_drvdata(dev);
353 struct c2port_ops *ops = c2dev->ops;
354 int status, ret;
355
356 ret = sscanf(buf, "%d", &status);
357 if (ret != 1)
358 return -EINVAL;
359
360 mutex_lock(&c2dev->mutex);
361
362 c2dev->access = !!status;
363
364 /* If access is "on" clock should be HIGH _before_ setting the line
365 * as output and data line should be set as INPUT anyway */
366 if (c2dev->access)
367 ops->c2ck_set(c2dev, 1);
368 ops->access(c2dev, c2dev->access);
369 if (c2dev->access)
370 ops->c2d_dir(c2dev, 1);
371
372 mutex_unlock(&c2dev->mutex);
373
374 return count;
375}
376
377static ssize_t c2port_store_reset(struct device *dev,
378 struct device_attribute *attr,
379 const char *buf, size_t count)
380{
381 struct c2port_device *c2dev = dev_get_drvdata(dev);
382
383 /* Check the device access status */
384 if (!c2dev->access)
385 return -EBUSY;
386
387 mutex_lock(&c2dev->mutex);
388
389 c2port_reset(c2dev);
390 c2dev->flash_access = 0;
391
392 mutex_unlock(&c2dev->mutex);
393
394 return count;
395}
396
397static ssize_t __c2port_show_dev_id(struct c2port_device *dev, char *buf)
398{
399 u8 data;
400 int ret;
401
402 /* Select DEVICEID register for C2 data register accesses */
403 c2port_write_ar(dev, C2PORT_DEVICEID);
404
405 /* Read and return the device ID register */
406 ret = c2port_read_dr(dev, &data);
407 if (ret < 0)
408 return ret;
409
410 return sprintf(buf, "%d\n", data);
411}
412
413static ssize_t c2port_show_dev_id(struct device *dev,
414 struct device_attribute *attr, char *buf)
415{
416 struct c2port_device *c2dev = dev_get_drvdata(dev);
417 ssize_t ret;
418
419 /* Check the device access status */
420 if (!c2dev->access)
421 return -EBUSY;
422
423 mutex_lock(&c2dev->mutex);
424 ret = __c2port_show_dev_id(c2dev, buf);
425 mutex_unlock(&c2dev->mutex);
426
427 if (ret < 0)
428 dev_err(dev, "cannot read from %s\n", c2dev->name);
429
430 return ret;
431}
432
433static ssize_t __c2port_show_rev_id(struct c2port_device *dev, char *buf)
434{
435 u8 data;
436 int ret;
437
438 /* Select REVID register for C2 data register accesses */
439 c2port_write_ar(dev, C2PORT_REVID);
440
441 /* Read and return the revision ID register */
442 ret = c2port_read_dr(dev, &data);
443 if (ret < 0)
444 return ret;
445
446 return sprintf(buf, "%d\n", data);
447}
448
449static ssize_t c2port_show_rev_id(struct device *dev,
450 struct device_attribute *attr, char *buf)
451{
452 struct c2port_device *c2dev = dev_get_drvdata(dev);
453 ssize_t ret;
454
455 /* Check the device access status */
456 if (!c2dev->access)
457 return -EBUSY;
458
459 mutex_lock(&c2dev->mutex);
460 ret = __c2port_show_rev_id(c2dev, buf);
461 mutex_unlock(&c2dev->mutex);
462
463 if (ret < 0)
464 dev_err(c2dev->dev, "cannot read from %s\n", c2dev->name);
465
466 return ret;
467}
468
469static ssize_t c2port_show_flash_access(struct device *dev,
470 struct device_attribute *attr, char *buf)
471{
472 struct c2port_device *c2dev = dev_get_drvdata(dev);
473
474 return sprintf(buf, "%d\n", c2dev->flash_access);
475}
476
477static ssize_t __c2port_store_flash_access(struct c2port_device *dev,
478 int status)
479{
480 int ret;
481
482 /* Check the device access status */
483 if (!dev->access)
484 return -EBUSY;
485
486 dev->flash_access = !!status;
487
488 /* If flash_access is off we have nothing to do... */
489 if (dev->flash_access == 0)
490 return 0;
491
492 /* Target the C2 flash programming control register for C2 data
493 * register access */
494 c2port_write_ar(dev, C2PORT_FPCTL);
495
496 /* Write the first keycode to enable C2 Flash programming */
497 ret = c2port_write_dr(dev, 0x02);
498 if (ret < 0)
499 return ret;
500
501 /* Write the second keycode to enable C2 Flash programming */
502 ret = c2port_write_dr(dev, 0x01);
503 if (ret < 0)
504 return ret;
505
506 /* Delay for at least 20ms to ensure the target is ready for
507 * C2 flash programming */
508 mdelay(25);
509
510 return 0;
511}
512
513static ssize_t c2port_store_flash_access(struct device *dev,
514 struct device_attribute *attr,
515 const char *buf, size_t count)
516{
517 struct c2port_device *c2dev = dev_get_drvdata(dev);
518 int status;
519 ssize_t ret;
520
521 ret = sscanf(buf, "%d", &status);
522 if (ret != 1)
523 return -EINVAL;
524
525 mutex_lock(&c2dev->mutex);
526 ret = __c2port_store_flash_access(c2dev, status);
527 mutex_unlock(&c2dev->mutex);
528
529 if (ret < 0) {
530 dev_err(c2dev->dev, "cannot enable %s flash programming\n",
531 c2dev->name);
532 return ret;
533 }
534
535 return count;
536}
537
538static ssize_t __c2port_write_flash_erase(struct c2port_device *dev)
539{
540 u8 status;
541 int ret;
542
543 /* Target the C2 flash programming data register for C2 data register
544 * access.
545 */
546 c2port_write_ar(dev, C2PORT_FPDAT);
547
548 /* Send device erase command */
549 c2port_write_dr(dev, C2PORT_DEVICE_ERASE);
550
551 /* Wait for input acknowledge */
552 ret = c2port_poll_in_busy(dev);
553 if (ret < 0)
554 return ret;
555
556 /* Should check status before starting FLASH access sequence */
557
558 /* Wait for status information */
559 ret = c2port_poll_out_ready(dev);
560 if (ret < 0)
561 return ret;
562
563 /* Read flash programming interface status */
564 ret = c2port_read_dr(dev, &status);
565 if (ret < 0)
566 return ret;
567 if (status != C2PORT_COMMAND_OK)
568 return -EBUSY;
569
570 /* Send a three-byte arming sequence to enable the device erase.
571 * If the sequence is not received correctly, the command will be
572 * ignored.
573 * Sequence is: 0xde, 0xad, 0xa5.
574 */
575 c2port_write_dr(dev, 0xde);
576 ret = c2port_poll_in_busy(dev);
577 if (ret < 0)
578 return ret;
579 c2port_write_dr(dev, 0xad);
580 ret = c2port_poll_in_busy(dev);
581 if (ret < 0)
582 return ret;
583 c2port_write_dr(dev, 0xa5);
584 ret = c2port_poll_in_busy(dev);
585 if (ret < 0)
586 return ret;
587
588 ret = c2port_poll_out_ready(dev);
589 if (ret < 0)
590 return ret;
591
592 return 0;
593}
594
595static ssize_t c2port_store_flash_erase(struct device *dev,
596 struct device_attribute *attr,
597 const char *buf, size_t count)
598{
599 struct c2port_device *c2dev = dev_get_drvdata(dev);
600 int ret;
601
602 /* Check the device and flash access status */
603 if (!c2dev->access || !c2dev->flash_access)
604 return -EBUSY;
605
606 mutex_lock(&c2dev->mutex);
607 ret = __c2port_write_flash_erase(c2dev);
608 mutex_unlock(&c2dev->mutex);
609
610 if (ret < 0) {
611 dev_err(c2dev->dev, "cannot erase %s flash\n", c2dev->name);
612 return ret;
613 }
614
615 return count;
616}
617
618static ssize_t __c2port_read_flash_data(struct c2port_device *dev,
619 char *buffer, loff_t offset, size_t count)
620{
621 struct c2port_ops *ops = dev->ops;
622 u8 status, nread = 128;
623 int i, ret;
624
625 /* Check for flash end */
626 if (offset >= ops->block_size * ops->blocks_num)
627 return 0;
628
629 if (ops->block_size * ops->blocks_num - offset < nread)
630 nread = ops->block_size * ops->blocks_num - offset;
631 if (count < nread)
632 nread = count;
633 if (nread == 0)
634 return nread;
635
636 /* Target the C2 flash programming data register for C2 data register
637 * access */
638 c2port_write_ar(dev, C2PORT_FPDAT);
639
640 /* Send flash block read command */
641 c2port_write_dr(dev, C2PORT_BLOCK_READ);
642
643 /* Wait for input acknowledge */
644 ret = c2port_poll_in_busy(dev);
645 if (ret < 0)
646 return ret;
647
648 /* Should check status before starting FLASH access sequence */
649
650 /* Wait for status information */
651 ret = c2port_poll_out_ready(dev);
652 if (ret < 0)
653 return ret;
654
655 /* Read flash programming interface status */
656 ret = c2port_read_dr(dev, &status);
657 if (ret < 0)
658 return ret;
659 if (status != C2PORT_COMMAND_OK)
660 return -EBUSY;
661
662 /* Send address high byte */
663 c2port_write_dr(dev, offset >> 8);
664 ret = c2port_poll_in_busy(dev);
665 if (ret < 0)
666 return ret;
667
668 /* Send address low byte */
669 c2port_write_dr(dev, offset & 0x00ff);
670 ret = c2port_poll_in_busy(dev);
671 if (ret < 0)
672 return ret;
673
674 /* Send address block size */
675 c2port_write_dr(dev, nread);
676 ret = c2port_poll_in_busy(dev);
677 if (ret < 0)
678 return ret;
679
680 /* Should check status before reading FLASH block */
681
682 /* Wait for status information */
683 ret = c2port_poll_out_ready(dev);
684 if (ret < 0)
685 return ret;
686
687 /* Read flash programming interface status */
688 ret = c2port_read_dr(dev, &status);
689 if (ret < 0)
690 return ret;
691 if (status != C2PORT_COMMAND_OK)
692 return -EBUSY;
693
694 /* Read flash block */
695 for (i = 0; i < nread; i++) {
696 ret = c2port_poll_out_ready(dev);
697 if (ret < 0)
698 return ret;
699
700 ret = c2port_read_dr(dev, buffer+i);
701 if (ret < 0)
702 return ret;
703 }
704
705 return nread;
706}
707
708static ssize_t c2port_read_flash_data(struct kobject *kobj,
709 struct bin_attribute *attr,
710 char *buffer, loff_t offset, size_t count)
711{
712 struct c2port_device *c2dev =
713 dev_get_drvdata(container_of(kobj,
714 struct device, kobj));
715 ssize_t ret;
716
717 /* Check the device and flash access status */
718 if (!c2dev->access || !c2dev->flash_access)
719 return -EBUSY;
720
721 mutex_lock(&c2dev->mutex);
722 ret = __c2port_read_flash_data(c2dev, buffer, offset, count);
723 mutex_unlock(&c2dev->mutex);
724
725 if (ret < 0)
726 dev_err(c2dev->dev, "cannot read %s flash\n", c2dev->name);
727
728 return ret;
729}
730
731static ssize_t __c2port_write_flash_data(struct c2port_device *dev,
732 char *buffer, loff_t offset, size_t count)
733{
734 struct c2port_ops *ops = dev->ops;
735 u8 status, nwrite = 128;
736 int i, ret;
737
738 if (nwrite > count)
739 nwrite = count;
740 if (ops->block_size * ops->blocks_num - offset < nwrite)
741 nwrite = ops->block_size * ops->blocks_num - offset;
742
743 /* Check for flash end */
744 if (offset >= ops->block_size * ops->blocks_num)
745 return -EINVAL;
746
747 /* Target the C2 flash programming data register for C2 data register
748 * access */
749 c2port_write_ar(dev, C2PORT_FPDAT);
750
751 /* Send flash block write command */
752 c2port_write_dr(dev, C2PORT_BLOCK_WRITE);
753
754 /* Wait for input acknowledge */
755 ret = c2port_poll_in_busy(dev);
756 if (ret < 0)
757 return ret;
758
759 /* Should check status before starting FLASH access sequence */
760
761 /* Wait for status information */
762 ret = c2port_poll_out_ready(dev);
763 if (ret < 0)
764 return ret;
765
766 /* Read flash programming interface status */
767 ret = c2port_read_dr(dev, &status);
768 if (ret < 0)
769 return ret;
770 if (status != C2PORT_COMMAND_OK)
771 return -EBUSY;
772
773 /* Send address high byte */
774 c2port_write_dr(dev, offset >> 8);
775 ret = c2port_poll_in_busy(dev);
776 if (ret < 0)
777 return ret;
778
779 /* Send address low byte */
780 c2port_write_dr(dev, offset & 0x00ff);
781 ret = c2port_poll_in_busy(dev);
782 if (ret < 0)
783 return ret;
784
785 /* Send address block size */
786 c2port_write_dr(dev, nwrite);
787 ret = c2port_poll_in_busy(dev);
788 if (ret < 0)
789 return ret;
790
791 /* Should check status before writing FLASH block */
792
793 /* Wait for status information */
794 ret = c2port_poll_out_ready(dev);
795 if (ret < 0)
796 return ret;
797
798 /* Read flash programming interface status */
799 ret = c2port_read_dr(dev, &status);
800 if (ret < 0)
801 return ret;
802 if (status != C2PORT_COMMAND_OK)
803 return -EBUSY;
804
805 /* Write flash block */
806 for (i = 0; i < nwrite; i++) {
807 ret = c2port_write_dr(dev, *(buffer+i));
808 if (ret < 0)
809 return ret;
810
811 ret = c2port_poll_in_busy(dev);
812 if (ret < 0)
813 return ret;
814
815 }
816
817 /* Wait for last flash write to complete */
818 ret = c2port_poll_out_ready(dev);
819 if (ret < 0)
820 return ret;
821
822 return nwrite;
823}
824
825static ssize_t c2port_write_flash_data(struct kobject *kobj,
826 struct bin_attribute *attr,
827 char *buffer, loff_t offset, size_t count)
828{
829 struct c2port_device *c2dev =
830 dev_get_drvdata(container_of(kobj,
831 struct device, kobj));
832 int ret;
833
834 /* Check the device access status */
835 if (!c2dev->access || !c2dev->flash_access)
836 return -EBUSY;
837
838 mutex_lock(&c2dev->mutex);
839 ret = __c2port_write_flash_data(c2dev, buffer, offset, count);
840 mutex_unlock(&c2dev->mutex);
841
842 if (ret < 0)
843 dev_err(c2dev->dev, "cannot write %s flash\n", c2dev->name);
844
845 return ret;
846}
847
848/*
849 * Class attributes
850 */
851
852static struct device_attribute c2port_attrs[] = {
853 __ATTR(name, 0444, c2port_show_name, NULL),
854 __ATTR(flash_blocks_num, 0444, c2port_show_flash_blocks_num, NULL),
855 __ATTR(flash_block_size, 0444, c2port_show_flash_block_size, NULL),
856 __ATTR(flash_size, 0444, c2port_show_flash_size, NULL),
857 __ATTR(access, 0644, c2port_show_access, c2port_store_access),
858 __ATTR(reset, 0200, NULL, c2port_store_reset),
859 __ATTR(dev_id, 0444, c2port_show_dev_id, NULL),
860 __ATTR(rev_id, 0444, c2port_show_rev_id, NULL),
861
862 __ATTR(flash_access, 0644, c2port_show_flash_access,
863 c2port_store_flash_access),
864 __ATTR(flash_erase, 0200, NULL, c2port_store_flash_erase),
865 __ATTR_NULL,
866};
867
868static struct bin_attribute c2port_bin_attrs = {
869 .attr = {
870 .name = "flash_data",
871 .mode = 0644
872 },
873 .read = c2port_read_flash_data,
874 .write = c2port_write_flash_data,
875 /* .size is computed at run-time */
876};
877
878/*
879 * Exported functions
880 */
881
882struct c2port_device *c2port_device_register(char *name,
883 struct c2port_ops *ops, void *devdata)
884{
885 struct c2port_device *c2dev;
886 int id, ret;
887
888 if (unlikely(!ops) || unlikely(!ops->access) || \
889 unlikely(!ops->c2d_dir) || unlikely(!ops->c2ck_set) || \
890 unlikely(!ops->c2d_get) || unlikely(!ops->c2d_set))
891 return ERR_PTR(-EINVAL);
892
893 c2dev = kmalloc(sizeof(struct c2port_device), GFP_KERNEL);
894 if (unlikely(!c2dev))
895 return ERR_PTR(-ENOMEM);
896
897 ret = idr_pre_get(&c2port_idr, GFP_KERNEL);
898 if (!ret) {
899 ret = -ENOMEM;
900 goto error_idr_get_new;
901 }
902
903 spin_lock_irq(&c2port_idr_lock);
904 ret = idr_get_new(&c2port_idr, c2dev, &id);
905 spin_unlock_irq(&c2port_idr_lock);
906
907 if (ret < 0)
908 goto error_idr_get_new;
909 c2dev->id = id;
910
911 c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
912 "c2port%d", id);
913 if (unlikely(!c2dev->dev)) {
914 ret = -ENOMEM;
915 goto error_device_create;
916 }
917 dev_set_drvdata(c2dev->dev, c2dev);
918
919 strncpy(c2dev->name, name, C2PORT_NAME_LEN);
920 c2dev->ops = ops;
921 mutex_init(&c2dev->mutex);
922
923 /* Create binary file */
924 c2port_bin_attrs.size = ops->blocks_num * ops->block_size;
925 ret = device_create_bin_file(c2dev->dev, &c2port_bin_attrs);
926 if (unlikely(ret))
927 goto error_device_create_bin_file;
928
929 /* By default C2 port access is off */
930 c2dev->access = c2dev->flash_access = 0;
931 ops->access(c2dev, 0);
932
933 dev_info(c2dev->dev, "C2 port %s added\n", name);
934 dev_info(c2dev->dev, "%s flash has %d blocks x %d bytes "
935 "(%d bytes total)\n",
936 name, ops->blocks_num, ops->block_size,
937 ops->blocks_num * ops->block_size);
938
939 return c2dev;
940
941error_device_create_bin_file:
942 device_destroy(c2port_class, 0);
943
944error_device_create:
945 spin_lock_irq(&c2port_idr_lock);
946 idr_remove(&c2port_idr, id);
947 spin_unlock_irq(&c2port_idr_lock);
948
949error_idr_get_new:
950 kfree(c2dev);
951
952 return ERR_PTR(ret);
953}
954EXPORT_SYMBOL(c2port_device_register);
955
956void c2port_device_unregister(struct c2port_device *c2dev)
957{
958 if (!c2dev)
959 return;
960
961 dev_info(c2dev->dev, "C2 port %s removed\n", c2dev->name);
962
963 device_remove_bin_file(c2dev->dev, &c2port_bin_attrs);
964 spin_lock_irq(&c2port_idr_lock);
965 idr_remove(&c2port_idr, c2dev->id);
966 spin_unlock_irq(&c2port_idr_lock);
967
968 device_destroy(c2port_class, c2dev->id);
969
970 kfree(c2dev);
971}
972EXPORT_SYMBOL(c2port_device_unregister);
973
974/*
975 * Module stuff
976 */
977
978static int __init c2port_init(void)
979{
980 printk(KERN_INFO "Silicon Labs C2 port support v. " DRIVER_VERSION
981 " - (C) 2007 Rodolfo Giometti\n");
982
983 c2port_class = class_create(THIS_MODULE, "c2port");
984 if (!c2port_class) {
985 printk(KERN_ERR "c2port: failed to allocate class\n");
986 return -ENOMEM;
987 }
988 c2port_class->dev_attrs = c2port_attrs;
989
990 return 0;
991}
992
993static void __exit c2port_exit(void)
994{
995 class_destroy(c2port_class);
996}
997
998module_init(c2port_init);
999module_exit(c2port_exit);
1000
1001MODULE_AUTHOR("Rodolfo Giometti <giometti@linux.it>");
1002MODULE_DESCRIPTION("Silicon Labs C2 port support v. " DRIVER_VERSION);
1003MODULE_LICENSE("GPL");
diff --git a/drivers/misc/compal-laptop.c b/drivers/misc/compal-laptop.c
index 344b790a6253..11003bba10d3 100644
--- a/drivers/misc/compal-laptop.c
+++ b/drivers/misc/compal-laptop.c
@@ -326,12 +326,14 @@ static int __init compal_init(void)
326 326
327 /* Register backlight stuff */ 327 /* Register backlight stuff */
328 328
329 compalbl_device = backlight_device_register("compal-laptop", NULL, NULL, 329 if (!acpi_video_backlight_support()) {
330 &compalbl_ops); 330 compalbl_device = backlight_device_register("compal-laptop", NULL, NULL,
331 if (IS_ERR(compalbl_device)) 331 &compalbl_ops);
332 return PTR_ERR(compalbl_device); 332 if (IS_ERR(compalbl_device))
333 return PTR_ERR(compalbl_device);
333 334
334 compalbl_device->props.max_brightness = COMPAL_LCD_LEVEL_MAX-1; 335 compalbl_device->props.max_brightness = COMPAL_LCD_LEVEL_MAX-1;
336 }
335 337
336 ret = platform_driver_register(&compal_driver); 338 ret = platform_driver_register(&compal_driver);
337 if (ret) 339 if (ret)
diff --git a/drivers/misc/eeepc-laptop.c b/drivers/misc/eeepc-laptop.c
index 9ef98b2d5039..02fe2b8b8939 100644
--- a/drivers/misc/eeepc-laptop.c
+++ b/drivers/misc/eeepc-laptop.c
@@ -825,9 +825,15 @@ static int __init eeepc_laptop_init(void)
825 return -ENODEV; 825 return -ENODEV;
826 } 826 }
827 dev = acpi_get_physical_device(ehotk->device->handle); 827 dev = acpi_get_physical_device(ehotk->device->handle);
828 result = eeepc_backlight_init(dev); 828
829 if (result) 829 if (!acpi_video_backlight_support()) {
830 goto fail_backlight; 830 result = eeepc_backlight_init(dev);
831 if (result)
832 goto fail_backlight;
833 } else
834 printk(EEEPC_INFO "Backlight controlled by ACPI video "
835 "driver\n");
836
831 result = eeepc_hwmon_init(dev); 837 result = eeepc_hwmon_init(dev);
832 if (result) 838 if (result)
833 goto fail_hwmon; 839 goto fail_hwmon;
diff --git a/drivers/misc/fujitsu-laptop.c b/drivers/misc/fujitsu-laptop.c
index d2cf0bfe3163..a7dd3e9fb79d 100644
--- a/drivers/misc/fujitsu-laptop.c
+++ b/drivers/misc/fujitsu-laptop.c
@@ -464,6 +464,14 @@ static int dmi_check_cb_s6410(const struct dmi_system_id *id)
464 return 0; 464 return 0;
465} 465}
466 466
467static int dmi_check_cb_s6420(const struct dmi_system_id *id)
468{
469 dmi_check_cb_common(id);
470 fujitsu->keycode1 = KEY_SCREENLOCK; /* "Lock" */
471 fujitsu->keycode2 = KEY_HELP; /* "Mobility Center" */
472 return 0;
473}
474
467static int dmi_check_cb_p8010(const struct dmi_system_id *id) 475static int dmi_check_cb_p8010(const struct dmi_system_id *id)
468{ 476{
469 dmi_check_cb_common(id); 477 dmi_check_cb_common(id);
@@ -473,7 +481,7 @@ static int dmi_check_cb_p8010(const struct dmi_system_id *id)
473 return 0; 481 return 0;
474} 482}
475 483
476static struct dmi_system_id __initdata fujitsu_dmi_table[] = { 484static struct dmi_system_id fujitsu_dmi_table[] = {
477 { 485 {
478 .ident = "Fujitsu Siemens S6410", 486 .ident = "Fujitsu Siemens S6410",
479 .matches = { 487 .matches = {
@@ -482,6 +490,13 @@ static struct dmi_system_id __initdata fujitsu_dmi_table[] = {
482 }, 490 },
483 .callback = dmi_check_cb_s6410}, 491 .callback = dmi_check_cb_s6410},
484 { 492 {
493 .ident = "Fujitsu Siemens S6420",
494 .matches = {
495 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
496 DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6420"),
497 },
498 .callback = dmi_check_cb_s6420},
499 {
485 .ident = "Fujitsu LifeBook P8010", 500 .ident = "Fujitsu LifeBook P8010",
486 .matches = { 501 .matches = {
487 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), 502 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
@@ -990,16 +1005,16 @@ static int __init fujitsu_init(void)
990 1005
991 /* Register backlight stuff */ 1006 /* Register backlight stuff */
992 1007
993 fujitsu->bl_device = 1008 if (!acpi_video_backlight_support()) {
994 backlight_device_register("fujitsu-laptop", NULL, NULL, 1009 fujitsu->bl_device =
995 &fujitsubl_ops); 1010 backlight_device_register("fujitsu-laptop", NULL, NULL,
996 if (IS_ERR(fujitsu->bl_device)) 1011 &fujitsubl_ops);
997 return PTR_ERR(fujitsu->bl_device); 1012 if (IS_ERR(fujitsu->bl_device))
998 1013 return PTR_ERR(fujitsu->bl_device);
999 max_brightness = fujitsu->max_brightness; 1014 max_brightness = fujitsu->max_brightness;
1000 1015 fujitsu->bl_device->props.max_brightness = max_brightness - 1;
1001 fujitsu->bl_device->props.max_brightness = max_brightness - 1; 1016 fujitsu->bl_device->props.brightness = fujitsu->brightness_level;
1002 fujitsu->bl_device->props.brightness = fujitsu->brightness_level; 1017 }
1003 1018
1004 ret = platform_driver_register(&fujitsupf_driver); 1019 ret = platform_driver_register(&fujitsupf_driver);
1005 if (ret) 1020 if (ret)
@@ -1035,7 +1050,8 @@ fail_hotkey:
1035 1050
1036fail_backlight: 1051fail_backlight:
1037 1052
1038 backlight_device_unregister(fujitsu->bl_device); 1053 if (fujitsu->bl_device)
1054 backlight_device_unregister(fujitsu->bl_device);
1039 1055
1040fail_platform_device2: 1056fail_platform_device2:
1041 1057
@@ -1062,7 +1078,8 @@ static void __exit fujitsu_cleanup(void)
1062 &fujitsupf_attribute_group); 1078 &fujitsupf_attribute_group);
1063 platform_device_unregister(fujitsu->pf_device); 1079 platform_device_unregister(fujitsu->pf_device);
1064 platform_driver_unregister(&fujitsupf_driver); 1080 platform_driver_unregister(&fujitsupf_driver);
1065 backlight_device_unregister(fujitsu->bl_device); 1081 if (fujitsu->bl_device)
1082 backlight_device_unregister(fujitsu->bl_device);
1066 1083
1067 acpi_bus_unregister_driver(&acpi_fujitsu_driver); 1084 acpi_bus_unregister_driver(&acpi_fujitsu_driver);
1068 1085
diff --git a/drivers/misc/ics932s401.c b/drivers/misc/ics932s401.c
new file mode 100644
index 000000000000..6e43ab4231ae
--- /dev/null
+++ b/drivers/misc/ics932s401.c
@@ -0,0 +1,515 @@
1/*
2 * A driver for the Integrated Circuits ICS932S401
3 * Copyright (C) 2008 IBM
4 *
5 * Author: Darrick J. Wong <djwong@us.ibm.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#include <linux/module.h>
23#include <linux/jiffies.h>
24#include <linux/i2c.h>
25#include <linux/err.h>
26#include <linux/mutex.h>
27#include <linux/delay.h>
28#include <linux/log2.h>
29
30/* Addresses to scan */
31static const unsigned short normal_i2c[] = { 0x69, I2C_CLIENT_END };
32
33/* Insmod parameters */
34I2C_CLIENT_INSMOD_1(ics932s401);
35
36/* ICS932S401 registers */
37#define ICS932S401_REG_CFG2 0x01
38#define ICS932S401_CFG1_SPREAD 0x01
39#define ICS932S401_REG_CFG7 0x06
40#define ICS932S401_FS_MASK 0x07
41#define ICS932S401_REG_VENDOR_REV 0x07
42#define ICS932S401_VENDOR 1
43#define ICS932S401_VENDOR_MASK 0x0F
44#define ICS932S401_REV 4
45#define ICS932S401_REV_SHIFT 4
46#define ICS932S401_REG_DEVICE 0x09
47#define ICS932S401_DEVICE 11
48#define ICS932S401_REG_CTRL 0x0A
49#define ICS932S401_MN_ENABLED 0x80
50#define ICS932S401_CPU_ALT 0x04
51#define ICS932S401_SRC_ALT 0x08
52#define ICS932S401_REG_CPU_M_CTRL 0x0B
53#define ICS932S401_M_MASK 0x3F
54#define ICS932S401_REG_CPU_N_CTRL 0x0C
55#define ICS932S401_REG_CPU_SPREAD1 0x0D
56#define ICS932S401_REG_CPU_SPREAD2 0x0E
57#define ICS932S401_SPREAD_MASK 0x7FFF
58#define ICS932S401_REG_SRC_M_CTRL 0x0F
59#define ICS932S401_REG_SRC_N_CTRL 0x10
60#define ICS932S401_REG_SRC_SPREAD1 0x11
61#define ICS932S401_REG_SRC_SPREAD2 0x12
62#define ICS932S401_REG_CPU_DIVISOR 0x13
63#define ICS932S401_CPU_DIVISOR_SHIFT 4
64#define ICS932S401_REG_PCISRC_DIVISOR 0x14
65#define ICS932S401_SRC_DIVISOR_MASK 0x0F
66#define ICS932S401_PCI_DIVISOR_SHIFT 4
67
68/* Base clock is 14.318MHz */
69#define BASE_CLOCK 14318
70
71#define NUM_REGS 21
72#define NUM_MIRRORED_REGS 15
73
74static int regs_to_copy[NUM_MIRRORED_REGS] = {
75 ICS932S401_REG_CFG2,
76 ICS932S401_REG_CFG7,
77 ICS932S401_REG_VENDOR_REV,
78 ICS932S401_REG_DEVICE,
79 ICS932S401_REG_CTRL,
80 ICS932S401_REG_CPU_M_CTRL,
81 ICS932S401_REG_CPU_N_CTRL,
82 ICS932S401_REG_CPU_SPREAD1,
83 ICS932S401_REG_CPU_SPREAD2,
84 ICS932S401_REG_SRC_M_CTRL,
85 ICS932S401_REG_SRC_N_CTRL,
86 ICS932S401_REG_SRC_SPREAD1,
87 ICS932S401_REG_SRC_SPREAD2,
88 ICS932S401_REG_CPU_DIVISOR,
89 ICS932S401_REG_PCISRC_DIVISOR,
90};
91
92/* How often do we reread sensors values? (In jiffies) */
93#define SENSOR_REFRESH_INTERVAL (2 * HZ)
94
95/* How often do we reread sensor limit values? (In jiffies) */
96#define LIMIT_REFRESH_INTERVAL (60 * HZ)
97
98struct ics932s401_data {
99 struct attribute_group attrs;
100 struct mutex lock;
101 char sensors_valid;
102 unsigned long sensors_last_updated; /* In jiffies */
103
104 u8 regs[NUM_REGS];
105};
106
107static int ics932s401_probe(struct i2c_client *client,
108 const struct i2c_device_id *id);
109static int ics932s401_detect(struct i2c_client *client, int kind,
110 struct i2c_board_info *info);
111static int ics932s401_remove(struct i2c_client *client);
112
113static const struct i2c_device_id ics932s401_id[] = {
114 { "ics932s401", ics932s401 },
115 { }
116};
117MODULE_DEVICE_TABLE(i2c, ics932s401_id);
118
119static struct i2c_driver ics932s401_driver = {
120 .class = I2C_CLASS_HWMON,
121 .driver = {
122 .name = "ics932s401",
123 },
124 .probe = ics932s401_probe,
125 .remove = ics932s401_remove,
126 .id_table = ics932s401_id,
127 .detect = ics932s401_detect,
128 .address_data = &addr_data,
129};
130
131static struct ics932s401_data *ics932s401_update_device(struct device *dev)
132{
133 struct i2c_client *client = to_i2c_client(dev);
134 struct ics932s401_data *data = i2c_get_clientdata(client);
135 unsigned long local_jiffies = jiffies;
136 int i, temp;
137
138 mutex_lock(&data->lock);
139 if (time_before(local_jiffies, data->sensors_last_updated +
140 SENSOR_REFRESH_INTERVAL)
141 && data->sensors_valid)
142 goto out;
143
144 /*
145 * Each register must be read as a word and then right shifted 8 bits.
146 * Not really sure why this is; setting the "byte count programming"
147 * register to 1 does not fix this problem.
148 */
149 for (i = 0; i < NUM_MIRRORED_REGS; i++) {
150 temp = i2c_smbus_read_word_data(client, regs_to_copy[i]);
151 data->regs[regs_to_copy[i]] = temp >> 8;
152 }
153
154 data->sensors_last_updated = local_jiffies;
155 data->sensors_valid = 1;
156
157out:
158 mutex_unlock(&data->lock);
159 return data;
160}
161
162static ssize_t show_spread_enabled(struct device *dev,
163 struct device_attribute *devattr,
164 char *buf)
165{
166 struct ics932s401_data *data = ics932s401_update_device(dev);
167
168 if (data->regs[ICS932S401_REG_CFG2] & ICS932S401_CFG1_SPREAD)
169 return sprintf(buf, "1\n");
170
171 return sprintf(buf, "0\n");
172}
173
174/* bit to cpu khz map */
175static const int fs_speeds[] = {
176 266666,
177 133333,
178 200000,
179 166666,
180 333333,
181 100000,
182 400000,
183 0,
184};
185
186/* clock divisor map */
187static const int divisors[] = {2, 3, 5, 15, 4, 6, 10, 30, 8, 12, 20, 60, 16,
188 24, 40, 120};
189
190/* Calculate CPU frequency from the M/N registers. */
191static int calculate_cpu_freq(struct ics932s401_data *data)
192{
193 int m, n, freq;
194
195 m = data->regs[ICS932S401_REG_CPU_M_CTRL] & ICS932S401_M_MASK;
196 n = data->regs[ICS932S401_REG_CPU_N_CTRL];
197
198 /* Pull in bits 8 & 9 from the M register */
199 n |= ((int)data->regs[ICS932S401_REG_CPU_M_CTRL] & 0x80) << 1;
200 n |= ((int)data->regs[ICS932S401_REG_CPU_M_CTRL] & 0x40) << 3;
201
202 freq = BASE_CLOCK * (n + 8) / (m + 2);
203 freq /= divisors[data->regs[ICS932S401_REG_CPU_DIVISOR] >>
204 ICS932S401_CPU_DIVISOR_SHIFT];
205
206 return freq;
207}
208
209static ssize_t show_cpu_clock(struct device *dev,
210 struct device_attribute *devattr,
211 char *buf)
212{
213 struct ics932s401_data *data = ics932s401_update_device(dev);
214
215 return sprintf(buf, "%d\n", calculate_cpu_freq(data));
216}
217
218static ssize_t show_cpu_clock_sel(struct device *dev,
219 struct device_attribute *devattr,
220 char *buf)
221{
222 struct ics932s401_data *data = ics932s401_update_device(dev);
223 int freq;
224
225 if (data->regs[ICS932S401_REG_CTRL] & ICS932S401_MN_ENABLED)
226 freq = calculate_cpu_freq(data);
227 else {
228 /* Freq is neatly wrapped up for us */
229 int fid = data->regs[ICS932S401_REG_CFG7] & ICS932S401_FS_MASK;
230 freq = fs_speeds[fid];
231 if (data->regs[ICS932S401_REG_CTRL] & ICS932S401_CPU_ALT) {
232 switch (freq) {
233 case 166666:
234 freq = 160000;
235 break;
236 case 333333:
237 freq = 320000;
238 break;
239 }
240 }
241 }
242
243 return sprintf(buf, "%d\n", freq);
244}
245
246/* Calculate SRC frequency from the M/N registers. */
247static int calculate_src_freq(struct ics932s401_data *data)
248{
249 int m, n, freq;
250
251 m = data->regs[ICS932S401_REG_SRC_M_CTRL] & ICS932S401_M_MASK;
252 n = data->regs[ICS932S401_REG_SRC_N_CTRL];
253
254 /* Pull in bits 8 & 9 from the M register */
255 n |= ((int)data->regs[ICS932S401_REG_SRC_M_CTRL] & 0x80) << 1;
256 n |= ((int)data->regs[ICS932S401_REG_SRC_M_CTRL] & 0x40) << 3;
257
258 freq = BASE_CLOCK * (n + 8) / (m + 2);
259 freq /= divisors[data->regs[ICS932S401_REG_PCISRC_DIVISOR] &
260 ICS932S401_SRC_DIVISOR_MASK];
261
262 return freq;
263}
264
265static ssize_t show_src_clock(struct device *dev,
266 struct device_attribute *devattr,
267 char *buf)
268{
269 struct ics932s401_data *data = ics932s401_update_device(dev);
270
271 return sprintf(buf, "%d\n", calculate_src_freq(data));
272}
273
274static ssize_t show_src_clock_sel(struct device *dev,
275 struct device_attribute *devattr,
276 char *buf)
277{
278 struct ics932s401_data *data = ics932s401_update_device(dev);
279 int freq;
280
281 if (data->regs[ICS932S401_REG_CTRL] & ICS932S401_MN_ENABLED)
282 freq = calculate_src_freq(data);
283 else
284 /* Freq is neatly wrapped up for us */
285 if (data->regs[ICS932S401_REG_CTRL] & ICS932S401_CPU_ALT &&
286 data->regs[ICS932S401_REG_CTRL] & ICS932S401_SRC_ALT)
287 freq = 96000;
288 else
289 freq = 100000;
290
291 return sprintf(buf, "%d\n", freq);
292}
293
294/* Calculate PCI frequency from the SRC M/N registers. */
295static int calculate_pci_freq(struct ics932s401_data *data)
296{
297 int m, n, freq;
298
299 m = data->regs[ICS932S401_REG_SRC_M_CTRL] & ICS932S401_M_MASK;
300 n = data->regs[ICS932S401_REG_SRC_N_CTRL];
301
302 /* Pull in bits 8 & 9 from the M register */
303 n |= ((int)data->regs[ICS932S401_REG_SRC_M_CTRL] & 0x80) << 1;
304 n |= ((int)data->regs[ICS932S401_REG_SRC_M_CTRL] & 0x40) << 3;
305
306 freq = BASE_CLOCK * (n + 8) / (m + 2);
307 freq /= divisors[data->regs[ICS932S401_REG_PCISRC_DIVISOR] >>
308 ICS932S401_PCI_DIVISOR_SHIFT];
309
310 return freq;
311}
312
313static ssize_t show_pci_clock(struct device *dev,
314 struct device_attribute *devattr,
315 char *buf)
316{
317 struct ics932s401_data *data = ics932s401_update_device(dev);
318
319 return sprintf(buf, "%d\n", calculate_pci_freq(data));
320}
321
322static ssize_t show_pci_clock_sel(struct device *dev,
323 struct device_attribute *devattr,
324 char *buf)
325{
326 struct ics932s401_data *data = ics932s401_update_device(dev);
327 int freq;
328
329 if (data->regs[ICS932S401_REG_CTRL] & ICS932S401_MN_ENABLED)
330 freq = calculate_pci_freq(data);
331 else
332 freq = 33333;
333
334 return sprintf(buf, "%d\n", freq);
335}
336
337static ssize_t show_value(struct device *dev,
338 struct device_attribute *devattr,
339 char *buf);
340
341static ssize_t show_spread(struct device *dev,
342 struct device_attribute *devattr,
343 char *buf);
344
345static DEVICE_ATTR(spread_enabled, S_IRUGO, show_spread_enabled, NULL);
346static DEVICE_ATTR(cpu_clock_selection, S_IRUGO, show_cpu_clock_sel, NULL);
347static DEVICE_ATTR(cpu_clock, S_IRUGO, show_cpu_clock, NULL);
348static DEVICE_ATTR(src_clock_selection, S_IRUGO, show_src_clock_sel, NULL);
349static DEVICE_ATTR(src_clock, S_IRUGO, show_src_clock, NULL);
350static DEVICE_ATTR(pci_clock_selection, S_IRUGO, show_pci_clock_sel, NULL);
351static DEVICE_ATTR(pci_clock, S_IRUGO, show_pci_clock, NULL);
352static DEVICE_ATTR(usb_clock, S_IRUGO, show_value, NULL);
353static DEVICE_ATTR(ref_clock, S_IRUGO, show_value, NULL);
354static DEVICE_ATTR(cpu_spread, S_IRUGO, show_spread, NULL);
355static DEVICE_ATTR(src_spread, S_IRUGO, show_spread, NULL);
356
357static struct attribute *ics932s401_attr[] =
358{
359 &dev_attr_spread_enabled.attr,
360 &dev_attr_cpu_clock_selection.attr,
361 &dev_attr_cpu_clock.attr,
362 &dev_attr_src_clock_selection.attr,
363 &dev_attr_src_clock.attr,
364 &dev_attr_pci_clock_selection.attr,
365 &dev_attr_pci_clock.attr,
366 &dev_attr_usb_clock.attr,
367 &dev_attr_ref_clock.attr,
368 &dev_attr_cpu_spread.attr,
369 &dev_attr_src_spread.attr,
370 NULL
371};
372
373static ssize_t show_value(struct device *dev,
374 struct device_attribute *devattr,
375 char *buf)
376{
377 int x;
378
379 if (devattr == &dev_attr_usb_clock)
380 x = 48000;
381 else if (devattr == &dev_attr_ref_clock)
382 x = BASE_CLOCK;
383 else
384 BUG();
385
386 return sprintf(buf, "%d\n", x);
387}
388
389static ssize_t show_spread(struct device *dev,
390 struct device_attribute *devattr,
391 char *buf)
392{
393 struct ics932s401_data *data = ics932s401_update_device(dev);
394 int reg;
395 unsigned long val;
396
397 if (!(data->regs[ICS932S401_REG_CFG2] & ICS932S401_CFG1_SPREAD))
398 return sprintf(buf, "0%%\n");
399
400 if (devattr == &dev_attr_src_spread)
401 reg = ICS932S401_REG_SRC_SPREAD1;
402 else if (devattr == &dev_attr_cpu_spread)
403 reg = ICS932S401_REG_CPU_SPREAD1;
404 else
405 BUG();
406
407 val = data->regs[reg] | (data->regs[reg + 1] << 8);
408 val &= ICS932S401_SPREAD_MASK;
409
410 /* Scale 0..2^14 to -0.5. */
411 val = 500000 * val / 16384;
412 return sprintf(buf, "-0.%lu%%\n", val);
413}
414
415/* Return 0 if detection is successful, -ENODEV otherwise */
416static int ics932s401_detect(struct i2c_client *client, int kind,
417 struct i2c_board_info *info)
418{
419 struct i2c_adapter *adapter = client->adapter;
420
421 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
422 return -ENODEV;
423
424 if (kind <= 0) {
425 int vendor, device, revision;
426
427 vendor = i2c_smbus_read_word_data(client,
428 ICS932S401_REG_VENDOR_REV);
429 vendor >>= 8;
430 revision = vendor >> ICS932S401_REV_SHIFT;
431 vendor &= ICS932S401_VENDOR_MASK;
432 if (vendor != ICS932S401_VENDOR)
433 return -ENODEV;
434
435 device = i2c_smbus_read_word_data(client,
436 ICS932S401_REG_DEVICE);
437 device >>= 8;
438 if (device != ICS932S401_DEVICE)
439 return -ENODEV;
440
441 if (revision != ICS932S401_REV)
442 dev_info(&adapter->dev, "Unknown revision %d\n",
443 revision);
444 } else
445 dev_dbg(&adapter->dev, "detection forced\n");
446
447 strlcpy(info->type, "ics932s401", I2C_NAME_SIZE);
448
449 return 0;
450}
451
452static int ics932s401_probe(struct i2c_client *client,
453 const struct i2c_device_id *id)
454{
455 struct ics932s401_data *data;
456 int err;
457
458 data = kzalloc(sizeof(struct ics932s401_data), GFP_KERNEL);
459 if (!data) {
460 err = -ENOMEM;
461 goto exit;
462 }
463
464 i2c_set_clientdata(client, data);
465 mutex_init(&data->lock);
466
467 dev_info(&client->dev, "%s chip found\n", client->name);
468
469 /* Register sysfs hooks */
470 data->attrs.attrs = ics932s401_attr;
471 err = sysfs_create_group(&client->dev.kobj, &data->attrs);
472 if (err)
473 goto exit_free;
474
475 return 0;
476
477exit_free:
478 kfree(data);
479exit:
480 return err;
481}
482
483static int ics932s401_remove(struct i2c_client *client)
484{
485 struct ics932s401_data *data = i2c_get_clientdata(client);
486
487 sysfs_remove_group(&client->dev.kobj, &data->attrs);
488 kfree(data);
489 return 0;
490}
491
492static int __init ics932s401_init(void)
493{
494 return i2c_add_driver(&ics932s401_driver);
495}
496
497static void __exit ics932s401_exit(void)
498{
499 i2c_del_driver(&ics932s401_driver);
500}
501
502MODULE_AUTHOR("Darrick J. Wong <djwong@us.ibm.com>");
503MODULE_DESCRIPTION("ICS932S401 driver");
504MODULE_LICENSE("GPL");
505
506module_init(ics932s401_init);
507module_exit(ics932s401_exit);
508
509/* IBM IntelliStation Z30 */
510MODULE_ALIAS("dmi:bvnIBM:*:rn9228:*");
511MODULE_ALIAS("dmi:bvnIBM:*:rn9232:*");
512
513/* IBM x3650/x3550 */
514MODULE_ALIAS("dmi:bvnIBM:*:pnIBMSystemx3650*");
515MODULE_ALIAS("dmi:bvnIBM:*:pnIBMSystemx3550*");
diff --git a/drivers/misc/intel_menlow.c b/drivers/misc/intel_menlow.c
index e00a2756e97e..27b7662955bb 100644
--- a/drivers/misc/intel_menlow.c
+++ b/drivers/misc/intel_menlow.c
@@ -52,6 +52,11 @@ MODULE_LICENSE("GPL");
52#define MEMORY_ARG_CUR_BANDWIDTH 1 52#define MEMORY_ARG_CUR_BANDWIDTH 1
53#define MEMORY_ARG_MAX_BANDWIDTH 0 53#define MEMORY_ARG_MAX_BANDWIDTH 0
54 54
55/*
56 * GTHS returning 'n' would mean that [0,n-1] states are supported
57 * In that case max_cstate would be n-1
58 * GTHS returning '0' would mean that no bandwidth control states are supported
59 */
55static int memory_get_int_max_bandwidth(struct thermal_cooling_device *cdev, 60static int memory_get_int_max_bandwidth(struct thermal_cooling_device *cdev,
56 unsigned long *max_state) 61 unsigned long *max_state)
57{ 62{
@@ -71,6 +76,9 @@ static int memory_get_int_max_bandwidth(struct thermal_cooling_device *cdev,
71 if (ACPI_FAILURE(status)) 76 if (ACPI_FAILURE(status))
72 return -EFAULT; 77 return -EFAULT;
73 78
79 if (!value)
80 return -EINVAL;
81
74 *max_state = value - 1; 82 *max_state = value - 1;
75 return 0; 83 return 0;
76} 84}
@@ -121,7 +129,7 @@ static int memory_set_cur_bandwidth(struct thermal_cooling_device *cdev,
121 if (memory_get_int_max_bandwidth(cdev, &max_state)) 129 if (memory_get_int_max_bandwidth(cdev, &max_state))
122 return -EFAULT; 130 return -EFAULT;
123 131
124 if (max_state < 0 || state > max_state) 132 if (state > max_state)
125 return -EINVAL; 133 return -EINVAL;
126 134
127 arg_list.count = 1; 135 arg_list.count = 1;
diff --git a/drivers/misc/msi-laptop.c b/drivers/misc/msi-laptop.c
index de898c6938f3..759763d18e4c 100644
--- a/drivers/misc/msi-laptop.c
+++ b/drivers/misc/msi-laptop.c
@@ -347,12 +347,16 @@ static int __init msi_init(void)
347 347
348 /* Register backlight stuff */ 348 /* Register backlight stuff */
349 349
350 msibl_device = backlight_device_register("msi-laptop-bl", NULL, NULL, 350 if (acpi_video_backlight_support()) {
351 &msibl_ops); 351 printk(KERN_INFO "MSI: Brightness ignored, must be controlled "
352 if (IS_ERR(msibl_device)) 352 "by ACPI video driver\n");
353 return PTR_ERR(msibl_device); 353 } else {
354 354 msibl_device = backlight_device_register("msi-laptop-bl", NULL,
355 msibl_device->props.max_brightness = MSI_LCD_LEVEL_MAX-1; 355 NULL, &msibl_ops);
356 if (IS_ERR(msibl_device))
357 return PTR_ERR(msibl_device);
358 msibl_device->props.max_brightness = MSI_LCD_LEVEL_MAX-1;
359 }
356 360
357 ret = platform_driver_register(&msipf_driver); 361 ret = platform_driver_register(&msipf_driver);
358 if (ret) 362 if (ret)
diff --git a/drivers/misc/sgi-gru/Makefile b/drivers/misc/sgi-gru/Makefile
index d03597a521b0..9e9170b3599a 100644
--- a/drivers/misc/sgi-gru/Makefile
+++ b/drivers/misc/sgi-gru/Makefile
@@ -1,3 +1,7 @@
1ifdef CONFIG_SGI_GRU_DEBUG
2 EXTRA_CFLAGS += -DDEBUG
3endif
4
1obj-$(CONFIG_SGI_GRU) := gru.o 5obj-$(CONFIG_SGI_GRU) := gru.o
2gru-y := grufile.o grumain.o grufault.o grutlbpurge.o gruprocfs.o grukservices.o 6gru-y := grufile.o grumain.o grufault.o grutlbpurge.o gruprocfs.o grukservices.o
3 7
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 06f07e19dc70..571b211608d1 100644
--- a/drivers/misc/sony-laptop.c
+++ b/drivers/misc/sony-laptop.c
@@ -1038,7 +1038,11 @@ static int sony_nc_add(struct acpi_device *device)
1038 goto outinput; 1038 goto outinput;
1039 } 1039 }
1040 1040
1041 if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT", &handle))) { 1041 if (acpi_video_backlight_support()) {
1042 printk(KERN_INFO DRV_PFX "brightness ignored, must be "
1043 "controlled by ACPI video driver\n");
1044 } else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT",
1045 &handle))) {
1042 sony_backlight_device = backlight_device_register("sony", NULL, 1046 sony_backlight_device = backlight_device_register("sony", NULL,
1043 NULL, 1047 NULL,
1044 &sony_backlight_ops); 1048 &sony_backlight_ops);
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index 4db1cf9078d9..899766e16fa8 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -4932,16 +4932,25 @@ static int __init brightness_init(struct ibm_init_struct *iibm)
4932 */ 4932 */
4933 b = tpacpi_check_std_acpi_brightness_support(); 4933 b = tpacpi_check_std_acpi_brightness_support();
4934 if (b > 0) { 4934 if (b > 0) {
4935 if (thinkpad_id.vendor == PCI_VENDOR_ID_LENOVO) { 4935
4936 printk(TPACPI_NOTICE 4936 if (acpi_video_backlight_support()) {
4937 "Lenovo BIOS switched to ACPI backlight " 4937 if (brightness_enable > 1) {
4938 "control mode\n"); 4938 printk(TPACPI_NOTICE
4939 } 4939 "Standard ACPI backlight interface "
4940 if (brightness_enable > 1) { 4940 "available, not loading native one.\n");
4941 printk(TPACPI_NOTICE 4941 return 1;
4942 "standard ACPI backlight interface " 4942 } else if (brightness_enable == 1) {
4943 "available, not loading native one...\n"); 4943 printk(TPACPI_NOTICE
4944 return 1; 4944 "Backlight control force enabled, even if standard "
4945 "ACPI backlight interface is available\n");
4946 }
4947 } else {
4948 if (brightness_enable > 1) {
4949 printk(TPACPI_NOTICE
4950 "Standard ACPI backlight interface not "
4951 "available, thinkpad_acpi native "
4952 "brightness control enabled\n");
4953 }
4945 } 4954 }
4946 } 4955 }
4947 4956
@@ -5309,6 +5318,7 @@ static enum fan_control_commands fan_control_commands;
5309 5318
5310static u8 fan_control_initial_status; 5319static u8 fan_control_initial_status;
5311static u8 fan_control_desired_level; 5320static u8 fan_control_desired_level;
5321static u8 fan_control_resume_level;
5312static int fan_watchdog_maxinterval; 5322static int fan_watchdog_maxinterval;
5313 5323
5314static struct mutex fan_mutex; 5324static struct mutex fan_mutex;
@@ -5431,8 +5441,8 @@ static int fan_set_level(int level)
5431 5441
5432 case TPACPI_FAN_WR_ACPI_FANS: 5442 case TPACPI_FAN_WR_ACPI_FANS:
5433 case TPACPI_FAN_WR_TPEC: 5443 case TPACPI_FAN_WR_TPEC:
5434 if ((level != TP_EC_FAN_AUTO) && 5444 if (!(level & TP_EC_FAN_AUTO) &&
5435 (level != TP_EC_FAN_FULLSPEED) && 5445 !(level & TP_EC_FAN_FULLSPEED) &&
5436 ((level < 0) || (level > 7))) 5446 ((level < 0) || (level > 7)))
5437 return -EINVAL; 5447 return -EINVAL;
5438 5448
@@ -5996,38 +6006,67 @@ static void fan_exit(void)
5996 6006
5997static void fan_suspend(pm_message_t state) 6007static void fan_suspend(pm_message_t state)
5998{ 6008{
6009 int rc;
6010
5999 if (!fan_control_allowed) 6011 if (!fan_control_allowed)
6000 return; 6012 return;
6001 6013
6002 /* Store fan status in cache */ 6014 /* Store fan status in cache */
6003 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 */
6004 if (tp_features.fan_ctrl_status_undef) 6024 if (tp_features.fan_ctrl_status_undef)
6005 fan_control_desired_level = TP_EC_FAN_AUTO; 6025 fan_control_resume_level = 0;
6006} 6026}
6007 6027
6008static void fan_resume(void) 6028static void fan_resume(void)
6009{ 6029{
6010 u8 saved_fan_level;
6011 u8 current_level = 7; 6030 u8 current_level = 7;
6012 bool do_set = false; 6031 bool do_set = false;
6032 int rc;
6013 6033
6014 /* DSDT *always* updates status on resume */ 6034 /* DSDT *always* updates status on resume */
6015 tp_features.fan_ctrl_status_undef = 0; 6035 tp_features.fan_ctrl_status_undef = 0;
6016 6036
6017 saved_fan_level = fan_control_desired_level;
6018 if (!fan_control_allowed || 6037 if (!fan_control_allowed ||
6038 !fan_control_resume_level ||
6019 (fan_get_status_safe(&current_level) < 0)) 6039 (fan_get_status_safe(&current_level) < 0))
6020 return; 6040 return;
6021 6041
6022 switch (fan_control_access_mode) { 6042 switch (fan_control_access_mode) {
6023 case TPACPI_FAN_WR_ACPI_SFAN: 6043 case TPACPI_FAN_WR_ACPI_SFAN:
6024 do_set = (saved_fan_level > current_level); 6044 /* never decrease fan level */
6045 do_set = (fan_control_resume_level > current_level);
6025 break; 6046 break;
6026 case TPACPI_FAN_WR_ACPI_FANS: 6047 case TPACPI_FAN_WR_ACPI_FANS:
6027 case TPACPI_FAN_WR_TPEC: 6048 case TPACPI_FAN_WR_TPEC:
6028 do_set = ((saved_fan_level & TP_EC_FAN_FULLSPEED) || 6049 /* never decrease fan level, scale is:
6029 (saved_fan_level == 7 && 6050 * TP_EC_FAN_FULLSPEED > 7 >= TP_EC_FAN_AUTO
6030 !(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);
6031 break; 6070 break;
6032 default: 6071 default:
6033 return; 6072 return;
@@ -6035,8 +6074,11 @@ static void fan_resume(void)
6035 if (do_set) { 6074 if (do_set) {
6036 printk(TPACPI_NOTICE 6075 printk(TPACPI_NOTICE
6037 "restoring fan level to 0x%02x\n", 6076 "restoring fan level to 0x%02x\n",
6038 saved_fan_level); 6077 fan_control_resume_level);
6039 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);
6040 } 6082 }
6041} 6083}
6042 6084
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index 0d9b2d6f9ebf..f210a8ee6861 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -216,8 +216,7 @@ int mmc_add_card(struct mmc_card *card)
216 int ret; 216 int ret;
217 const char *type; 217 const char *type;
218 218
219 snprintf(card->dev.bus_id, sizeof(card->dev.bus_id), 219 dev_set_name(&card->dev, "%s:%04x", mmc_hostname(card->host), card->rca);
220 "%s:%04x", mmc_hostname(card->host), card->rca);
221 220
222 switch (card->type) { 221 switch (card->type) {
223 case MMC_TYPE_MMC: 222 case MMC_TYPE_MMC:
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 044d84eeed7c..f7284b905eb3 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -280,7 +280,11 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
280 (card->host->ios.clock / 1000); 280 (card->host->ios.clock / 1000);
281 281
282 if (data->flags & MMC_DATA_WRITE) 282 if (data->flags & MMC_DATA_WRITE)
283 limit_us = 250000; 283 /*
284 * The limit is really 250 ms, but that is
285 * insufficient for some crappy cards.
286 */
287 limit_us = 300000;
284 else 288 else
285 limit_us = 100000; 289 limit_us = 100000;
286 290
diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
index 6da80fd4d974..5e945e64ead7 100644
--- a/drivers/mmc/core/host.c
+++ b/drivers/mmc/core/host.c
@@ -73,8 +73,7 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)
73 if (err) 73 if (err)
74 goto free; 74 goto free;
75 75
76 snprintf(host->class_dev.bus_id, BUS_ID_SIZE, 76 dev_set_name(&host->class_dev, "mmc%d", host->index);
77 "mmc%d", host->index);
78 77
79 host->parent = dev; 78 host->parent = dev;
80 host->class_dev.parent = dev; 79 host->class_dev.parent = dev;
@@ -121,7 +120,7 @@ int mmc_add_host(struct mmc_host *host)
121 WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) && 120 WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) &&
122 !host->ops->enable_sdio_irq); 121 !host->ops->enable_sdio_irq);
123 122
124 led_trigger_register_simple(host->class_dev.bus_id, &host->led); 123 led_trigger_register_simple(dev_name(&host->class_dev), &host->led);
125 124
126 err = device_add(&host->class_dev); 125 err = device_add(&host->class_dev);
127 if (err) 126 if (err)
diff --git a/drivers/mmc/core/sdio_bus.c b/drivers/mmc/core/sdio_bus.c
index 233d0f9b3c4b..46284b527397 100644
--- a/drivers/mmc/core/sdio_bus.c
+++ b/drivers/mmc/core/sdio_bus.c
@@ -239,8 +239,7 @@ int sdio_add_func(struct sdio_func *func)
239{ 239{
240 int ret; 240 int ret;
241 241
242 snprintf(func->dev.bus_id, sizeof(func->dev.bus_id), 242 dev_set_name(&func->dev, "%s:%d", mmc_card_id(func->card), func->num);
243 "%s:%d", mmc_card_id(func->card), func->num);
244 243
245 ret = device_add(&func->dev); 244 ret = device_add(&func->dev);
246 if (ret == 0) 245 if (ret == 0)
diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
index 07faf5412a1f..ad00e1632317 100644
--- a/drivers/mmc/host/mmc_spi.c
+++ b/drivers/mmc/host/mmc_spi.c
@@ -1348,7 +1348,7 @@ static int mmc_spi_probe(struct spi_device *spi)
1348 goto fail_add_host; 1348 goto fail_add_host;
1349 1349
1350 dev_info(&spi->dev, "SD/MMC host %s%s%s%s%s\n", 1350 dev_info(&spi->dev, "SD/MMC host %s%s%s%s%s\n",
1351 mmc->class_dev.bus_id, 1351 dev_name(&mmc->class_dev),
1352 host->dma_dev ? "" : ", no DMA", 1352 host->dma_dev ? "" : ", no DMA",
1353 (host->pdata && host->pdata->get_ro) 1353 (host->pdata && host->pdata->get_ro)
1354 ? "" : ", no WP", 1354 ? "" : ", no WP",
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 30f64b1f2354..4d010a984bed 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1733,7 +1733,7 @@ int sdhci_add_host(struct sdhci_host *host)
1733 mmc_add_host(mmc); 1733 mmc_add_host(mmc);
1734 1734
1735 printk(KERN_INFO "%s: SDHCI controller on %s [%s] using %s%s\n", 1735 printk(KERN_INFO "%s: SDHCI controller on %s [%s] using %s%s\n",
1736 mmc_hostname(mmc), host->hw_name, mmc_dev(mmc)->bus_id, 1736 mmc_hostname(mmc), host->hw_name, dev_name(mmc_dev(mmc)),
1737 (host->flags & SDHCI_USE_ADMA)?"A":"", 1737 (host->flags & SDHCI_USE_ADMA)?"A":"",
1738 (host->flags & SDHCI_USE_DMA)?"DMA":"PIO"); 1738 (host->flags & SDHCI_USE_DMA)?"DMA":"PIO");
1739 1739
diff --git a/drivers/mmc/host/tifm_sd.c b/drivers/mmc/host/tifm_sd.c
index 13844843e8de..82554ddec6b3 100644
--- a/drivers/mmc/host/tifm_sd.c
+++ b/drivers/mmc/host/tifm_sd.c
@@ -632,7 +632,7 @@ static void tifm_sd_request(struct mmc_host *mmc, struct mmc_request *mrq)
632 632
633 if (host->req) { 633 if (host->req) {
634 printk(KERN_ERR "%s : unfinished request detected\n", 634 printk(KERN_ERR "%s : unfinished request detected\n",
635 sock->dev.bus_id); 635 dev_name(&sock->dev));
636 mrq->cmd->error = -ETIMEDOUT; 636 mrq->cmd->error = -ETIMEDOUT;
637 goto err_out; 637 goto err_out;
638 } 638 }
@@ -672,7 +672,7 @@ static void tifm_sd_request(struct mmc_host *mmc, struct mmc_request *mrq)
672 ? PCI_DMA_TODEVICE 672 ? PCI_DMA_TODEVICE
673 : PCI_DMA_FROMDEVICE)) { 673 : PCI_DMA_FROMDEVICE)) {
674 printk(KERN_ERR "%s : scatterlist map failed\n", 674 printk(KERN_ERR "%s : scatterlist map failed\n",
675 sock->dev.bus_id); 675 dev_name(&sock->dev));
676 mrq->cmd->error = -ENOMEM; 676 mrq->cmd->error = -ENOMEM;
677 goto err_out; 677 goto err_out;
678 } 678 }
@@ -684,7 +684,7 @@ static void tifm_sd_request(struct mmc_host *mmc, struct mmc_request *mrq)
684 : PCI_DMA_FROMDEVICE); 684 : PCI_DMA_FROMDEVICE);
685 if (host->sg_len < 1) { 685 if (host->sg_len < 1) {
686 printk(KERN_ERR "%s : scatterlist map failed\n", 686 printk(KERN_ERR "%s : scatterlist map failed\n",
687 sock->dev.bus_id); 687 dev_name(&sock->dev));
688 tifm_unmap_sg(sock, &host->bounce_buf, 1, 688 tifm_unmap_sg(sock, &host->bounce_buf, 1,
689 r_data->flags & MMC_DATA_WRITE 689 r_data->flags & MMC_DATA_WRITE
690 ? PCI_DMA_TODEVICE 690 ? PCI_DMA_TODEVICE
@@ -748,7 +748,7 @@ static void tifm_sd_end_cmd(unsigned long data)
748 748
749 if (!mrq) { 749 if (!mrq) {
750 printk(KERN_ERR " %s : no request to complete?\n", 750 printk(KERN_ERR " %s : no request to complete?\n",
751 sock->dev.bus_id); 751 dev_name(&sock->dev));
752 spin_unlock_irqrestore(&sock->lock, flags); 752 spin_unlock_irqrestore(&sock->lock, flags);
753 return; 753 return;
754 } 754 }
@@ -789,7 +789,7 @@ static void tifm_sd_abort(unsigned long data)
789 printk(KERN_ERR 789 printk(KERN_ERR
790 "%s : card failed to respond for a long period of time " 790 "%s : card failed to respond for a long period of time "
791 "(%x, %x)\n", 791 "(%x, %x)\n",
792 host->dev->dev.bus_id, host->req->cmd->opcode, host->cmd_flags); 792 dev_name(&host->dev->dev), host->req->cmd->opcode, host->cmd_flags);
793 793
794 tifm_eject(host->dev); 794 tifm_eject(host->dev);
795} 795}
@@ -906,7 +906,7 @@ static int tifm_sd_initialize_host(struct tifm_sd *host)
906 906
907 if (rc) { 907 if (rc) {
908 printk(KERN_ERR "%s : controller failed to reset\n", 908 printk(KERN_ERR "%s : controller failed to reset\n",
909 sock->dev.bus_id); 909 dev_name(&sock->dev));
910 return -ENODEV; 910 return -ENODEV;
911 } 911 }
912 912
@@ -933,7 +933,7 @@ static int tifm_sd_initialize_host(struct tifm_sd *host)
933 if (rc) { 933 if (rc) {
934 printk(KERN_ERR 934 printk(KERN_ERR
935 "%s : card not ready - probe failed on initialization\n", 935 "%s : card not ready - probe failed on initialization\n",
936 sock->dev.bus_id); 936 dev_name(&sock->dev));
937 return -ENODEV; 937 return -ENODEV;
938 } 938 }
939 939
@@ -954,7 +954,7 @@ static int tifm_sd_probe(struct tifm_dev *sock)
954 if (!(TIFM_SOCK_STATE_OCCUPIED 954 if (!(TIFM_SOCK_STATE_OCCUPIED
955 & readl(sock->addr + SOCK_PRESENT_STATE))) { 955 & readl(sock->addr + SOCK_PRESENT_STATE))) {
956 printk(KERN_WARNING "%s : card gone, unexpectedly\n", 956 printk(KERN_WARNING "%s : card gone, unexpectedly\n",
957 sock->dev.bus_id); 957 dev_name(&sock->dev));
958 return rc; 958 return rc;
959 } 959 }
960 960
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index 3e6f5d8609e8..d74ec46aa032 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -406,19 +406,6 @@ struct mtd_info *cfi_cmdset_0002(struct map_info *map, int primary)
406 /* Set the default CFI lock/unlock addresses */ 406 /* Set the default CFI lock/unlock addresses */
407 cfi->addr_unlock1 = 0x555; 407 cfi->addr_unlock1 = 0x555;
408 cfi->addr_unlock2 = 0x2aa; 408 cfi->addr_unlock2 = 0x2aa;
409 /* Modify the unlock address if we are in compatibility mode */
410 if ( /* x16 in x8 mode */
411 ((cfi->device_type == CFI_DEVICETYPE_X8) &&
412 (cfi->cfiq->InterfaceDesc ==
413 CFI_INTERFACE_X8_BY_X16_ASYNC)) ||
414 /* x32 in x16 mode */
415 ((cfi->device_type == CFI_DEVICETYPE_X16) &&
416 (cfi->cfiq->InterfaceDesc ==
417 CFI_INTERFACE_X16_BY_X32_ASYNC)))
418 {
419 cfi->addr_unlock1 = 0xaaa;
420 cfi->addr_unlock2 = 0x555;
421 }
422 409
423 } /* CFI mode */ 410 } /* CFI mode */
424 else if (cfi->cfi_mode == CFI_MODE_JEDEC) { 411 else if (cfi->cfi_mode == CFI_MODE_JEDEC) {
diff --git a/drivers/mtd/chips/jedec_probe.c b/drivers/mtd/chips/jedec_probe.c
index f84ab6182148..2f3f2f719ba4 100644
--- a/drivers/mtd/chips/jedec_probe.c
+++ b/drivers/mtd/chips/jedec_probe.c
@@ -1808,9 +1808,7 @@ static inline u32 jedec_read_mfr(struct map_info *map, uint32_t base,
1808 * several first banks can contain 0x7f instead of actual ID 1808 * several first banks can contain 0x7f instead of actual ID
1809 */ 1809 */
1810 do { 1810 do {
1811 uint32_t ofs = cfi_build_cmd_addr(0 + (bank << 8), 1811 uint32_t ofs = cfi_build_cmd_addr(0 + (bank << 8), map, cfi);
1812 cfi_interleave(cfi),
1813 cfi->device_type);
1814 mask = (1 << (cfi->device_type * 8)) - 1; 1812 mask = (1 << (cfi->device_type * 8)) - 1;
1815 result = map_read(map, base + ofs); 1813 result = map_read(map, base + ofs);
1816 bank++; 1814 bank++;
@@ -1824,7 +1822,7 @@ static inline u32 jedec_read_id(struct map_info *map, uint32_t base,
1824{ 1822{
1825 map_word result; 1823 map_word result;
1826 unsigned long mask; 1824 unsigned long mask;
1827 u32 ofs = cfi_build_cmd_addr(1, cfi_interleave(cfi), cfi->device_type); 1825 u32 ofs = cfi_build_cmd_addr(1, map, cfi);
1828 mask = (1 << (cfi->device_type * 8)) -1; 1826 mask = (1 << (cfi->device_type * 8)) -1;
1829 result = map_read(map, base + ofs); 1827 result = map_read(map, base + ofs);
1830 return result.x[0] & mask; 1828 return result.x[0] & mask;
@@ -2067,8 +2065,8 @@ static int jedec_probe_chip(struct map_info *map, __u32 base,
2067 2065
2068 } 2066 }
2069 /* Ensure the unlock addresses we try stay inside the map */ 2067 /* Ensure the unlock addresses we try stay inside the map */
2070 probe_offset1 = cfi_build_cmd_addr(cfi->addr_unlock1, cfi_interleave(cfi), cfi->device_type); 2068 probe_offset1 = cfi_build_cmd_addr(cfi->addr_unlock1, map, cfi);
2071 probe_offset2 = cfi_build_cmd_addr(cfi->addr_unlock2, cfi_interleave(cfi), cfi->device_type); 2069 probe_offset2 = cfi_build_cmd_addr(cfi->addr_unlock2, map, cfi);
2072 if ( ((base + probe_offset1 + map_bankwidth(map)) >= map->size) || 2070 if ( ((base + probe_offset1 + map_bankwidth(map)) >= map->size) ||
2073 ((base + probe_offset2 + map_bankwidth(map)) >= map->size)) 2071 ((base + probe_offset2 + map_bankwidth(map)) >= map->size))
2074 goto retry; 2072 goto retry;
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/cdb89712.c b/drivers/mtd/maps/cdb89712.c
index e5059aa3c724..8d92d8db9a98 100644
--- a/drivers/mtd/maps/cdb89712.c
+++ b/drivers/mtd/maps/cdb89712.c
@@ -14,7 +14,18 @@
14#include <linux/mtd/map.h> 14#include <linux/mtd/map.h>
15#include <linux/mtd/partitions.h> 15#include <linux/mtd/partitions.h>
16 16
17 17/* dynamic ioremap() areas */
18#define FLASH_START 0x00000000
19#define FLASH_SIZE 0x800000
20#define FLASH_WIDTH 4
21
22#define SRAM_START 0x60000000
23#define SRAM_SIZE 0xc000
24#define SRAM_WIDTH 4
25
26#define BOOTROM_START 0x70000000
27#define BOOTROM_SIZE 0x80
28#define BOOTROM_WIDTH 4
18 29
19 30
20static struct mtd_info *flash_mtd; 31static struct mtd_info *flash_mtd;
diff --git a/drivers/mtd/maps/h720x-flash.c b/drivers/mtd/maps/h720x-flash.c
index 35fef655ccc4..3b959fad1c4e 100644
--- a/drivers/mtd/maps/h720x-flash.c
+++ b/drivers/mtd/maps/h720x-flash.c
@@ -24,8 +24,8 @@ static struct mtd_info *mymtd;
24static struct map_info h720x_map = { 24static struct map_info h720x_map = {
25 .name = "H720X", 25 .name = "H720X",
26 .bankwidth = 4, 26 .bankwidth = 4,
27 .size = FLASH_SIZE, 27 .size = H720X_FLASH_SIZE,
28 .phys = FLASH_PHYS, 28 .phys = H720X_FLASH_PHYS,
29}; 29};
30 30
31static struct mtd_partition h720x_partitions[] = { 31static struct mtd_partition h720x_partitions[] = {
@@ -70,7 +70,7 @@ int __init h720x_mtd_init(void)
70 70
71 char *part_type = NULL; 71 char *part_type = NULL;
72 72
73 h720x_map.virt = ioremap(FLASH_PHYS, FLASH_SIZE); 73 h720x_map.virt = ioremap(h720x_map.phys, h720x_map.size);
74 74
75 if (!h720x_map.virt) { 75 if (!h720x_map.virt) {
76 printk(KERN_ERR "H720x-MTD: ioremap failed\n"); 76 printk(KERN_ERR "H720x-MTD: ioremap failed\n");
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 8387e05daae2..a7e4d985f5ef 100644
--- a/drivers/mtd/onenand/omap2.c
+++ b/drivers/mtd/onenand/omap2.c
@@ -32,20 +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/gpmc.h> 42#include <mach/pm.h>
42#include <asm/arch/pm.h>
43 43
44#include <linux/dma-mapping.h> 44#include <mach/dma.h>
45#include <asm/dma-mapping.h>
46#include <asm/arch/dma.h>
47 45
48#include <asm/arch/board.h> 46#include <mach/board.h>
49 47
50#define DRIVER_NAME "omap2-onenand" 48#define DRIVER_NAME "omap2-onenand"
51 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 f749b40f954e..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
@@ -2010,9 +2011,13 @@ config IGB_LRO
2010 If in doubt, say N. 2011 If in doubt, say N.
2011 2012
2012config IGB_DCA 2013config IGB_DCA
2013 bool "Enable DCA" 2014 bool "Direct Cache Access (DCA) Support"
2014 default y 2015 default y
2015 depends on IGB && DCA && !(IGB=y && DCA=m) 2016 depends on IGB && DCA && !(IGB=y && DCA=m)
2017 ---help---
2018 Say Y here if you want to use Direct Cache Access (DCA) in the
2019 driver. DCA is a method for warming the CPU cache before data
2020 is used, with the intent of lessening the impact of cache misses.
2016 2021
2017source "drivers/net/ixp2000/Kconfig" 2022source "drivers/net/ixp2000/Kconfig"
2018 2023
@@ -2437,9 +2442,13 @@ config IXGBE
2437 will be called ixgbe. 2442 will be called ixgbe.
2438 2443
2439config IXGBE_DCA 2444config IXGBE_DCA
2440 bool 2445 bool "Direct Cache Access (DCA) Support"
2441 default y 2446 default y
2442 depends on IXGBE && DCA && !(IXGBE=y && DCA=m) 2447 depends on IXGBE && DCA && !(IXGBE=y && DCA=m)
2448 ---help---
2449 Say Y here if you want to use Direct Cache Access (DCA) in the
2450 driver. DCA is a method for warming the CPU cache before data
2451 is used, with the intent of lessening the impact of cache misses.
2443 2452
2444config IXGB 2453config IXGB
2445 tristate "Intel(R) PRO/10GbE support" 2454 tristate "Intel(R) PRO/10GbE support"
@@ -2489,9 +2498,13 @@ config MYRI10GE
2489 will be called myri10ge. 2498 will be called myri10ge.
2490 2499
2491config MYRI10GE_DCA 2500config MYRI10GE_DCA
2492 bool 2501 bool "Direct Cache Access (DCA) Support"
2493 default y 2502 default y
2494 depends on MYRI10GE && DCA && !(MYRI10GE=y && DCA=m) 2503 depends on MYRI10GE && DCA && !(MYRI10GE=y && DCA=m)
2504 ---help---
2505 Say Y here if you want to use Direct Cache Access (DCA) in the
2506 driver. DCA is a method for warming the CPU cache before data
2507 is used, with the intent of lessening the impact of cache misses.
2495 2508
2496config NETXEN_NIC 2509config NETXEN_NIC
2497 tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC" 2510 tristate "NetXen Multi port (1/10) Gigabit Ethernet NIC"
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/atl1e/atl1e.h b/drivers/net/atl1e/atl1e.h
index b645fa0f3f64..c49550d507a0 100644
--- a/drivers/net/atl1e/atl1e.h
+++ b/drivers/net/atl1e/atl1e.h
@@ -46,7 +46,6 @@
46#include <linux/vmalloc.h> 46#include <linux/vmalloc.h>
47#include <linux/pagemap.h> 47#include <linux/pagemap.h>
48#include <linux/tcp.h> 48#include <linux/tcp.h>
49#include <linux/mii.h>
50#include <linux/ethtool.h> 49#include <linux/ethtool.h>
51#include <linux/if_vlan.h> 50#include <linux/if_vlan.h>
52#include <linux/workqueue.h> 51#include <linux/workqueue.h>
diff --git a/drivers/net/atl1e/atl1e_hw.c b/drivers/net/atl1e/atl1e_hw.c
index 8cbc1b59bd62..4a7700620119 100644
--- a/drivers/net/atl1e/atl1e_hw.c
+++ b/drivers/net/atl1e/atl1e_hw.c
@@ -163,9 +163,6 @@ int atl1e_read_mac_addr(struct atl1e_hw *hw)
163 * atl1e_hash_mc_addr 163 * atl1e_hash_mc_addr
164 * purpose 164 * purpose
165 * set hash value for a multicast address 165 * set hash value for a multicast address
166 * hash calcu processing :
167 * 1. calcu 32bit CRC for multicast address
168 * 2. reverse crc with MSB to LSB
169 */ 166 */
170u32 atl1e_hash_mc_addr(struct atl1e_hw *hw, u8 *mc_addr) 167u32 atl1e_hash_mc_addr(struct atl1e_hw *hw, u8 *mc_addr)
171{ 168{
@@ -174,7 +171,6 @@ u32 atl1e_hash_mc_addr(struct atl1e_hw *hw, u8 *mc_addr)
174 int i; 171 int i;
175 172
176 crc32 = ether_crc_le(6, mc_addr); 173 crc32 = ether_crc_le(6, mc_addr);
177 crc32 = ~crc32;
178 for (i = 0; i < 32; i++) 174 for (i = 0; i < 32; i++)
179 value |= (((crc32 >> i) & 1) << (31 - i)); 175 value |= (((crc32 >> i) & 1) << (31 - i));
180 176
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 246d92b42636..aef403d299ee 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -3404,14 +3404,8 @@ static void atl1_get_wol(struct net_device *netdev,
3404{ 3404{
3405 struct atl1_adapter *adapter = netdev_priv(netdev); 3405 struct atl1_adapter *adapter = netdev_priv(netdev);
3406 3406
3407 wol->supported = WAKE_UCAST | WAKE_MCAST | WAKE_BCAST | WAKE_MAGIC; 3407 wol->supported = WAKE_MAGIC;
3408 wol->wolopts = 0; 3408 wol->wolopts = 0;
3409 if (adapter->wol & ATLX_WUFC_EX)
3410 wol->wolopts |= WAKE_UCAST;
3411 if (adapter->wol & ATLX_WUFC_MC)
3412 wol->wolopts |= WAKE_MCAST;
3413 if (adapter->wol & ATLX_WUFC_BC)
3414 wol->wolopts |= WAKE_BCAST;
3415 if (adapter->wol & ATLX_WUFC_MAG) 3409 if (adapter->wol & ATLX_WUFC_MAG)
3416 wol->wolopts |= WAKE_MAGIC; 3410 wol->wolopts |= WAKE_MAGIC;
3417 return; 3411 return;
@@ -3422,15 +3416,10 @@ static int atl1_set_wol(struct net_device *netdev,
3422{ 3416{
3423 struct atl1_adapter *adapter = netdev_priv(netdev); 3417 struct atl1_adapter *adapter = netdev_priv(netdev);
3424 3418
3425 if (wol->wolopts & (WAKE_PHY | WAKE_ARP | WAKE_MAGICSECURE)) 3419 if (wol->wolopts & (WAKE_PHY | WAKE_UCAST | WAKE_MCAST | WAKE_BCAST |
3420 WAKE_ARP | WAKE_MAGICSECURE))
3426 return -EOPNOTSUPP; 3421 return -EOPNOTSUPP;
3427 adapter->wol = 0; 3422 adapter->wol = 0;
3428 if (wol->wolopts & WAKE_UCAST)
3429 adapter->wol |= ATLX_WUFC_EX;
3430 if (wol->wolopts & WAKE_MCAST)
3431 adapter->wol |= ATLX_WUFC_MC;
3432 if (wol->wolopts & WAKE_BCAST)
3433 adapter->wol |= ATLX_WUFC_BC;
3434 if (wol->wolopts & WAKE_MAGIC) 3423 if (wol->wolopts & WAKE_MAGIC)
3435 adapter->wol |= ATLX_WUFC_MAG; 3424 adapter->wol |= ATLX_WUFC_MAG;
3436 return 0; 3425 return 0;
diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c
index f5bdc92c1a65..8571e8c0bc67 100644
--- a/drivers/net/atlx/atl2.c
+++ b/drivers/net/atlx/atl2.c
@@ -1690,9 +1690,11 @@ static int atl2_resume(struct pci_dev *pdev)
1690 1690
1691 ATL2_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0); 1691 ATL2_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0);
1692 1692
1693 err = atl2_request_irq(adapter); 1693 if (netif_running(netdev)) {
1694 if (netif_running(netdev) && err) 1694 err = atl2_request_irq(adapter);
1695 return err; 1695 if (err)
1696 return err;
1697 }
1696 1698
1697 atl2_reset_hw(&adapter->hw); 1699 atl2_reset_hw(&adapter->hw);
1698 1700
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 430d430bce29..a1a3d0e5d2b4 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -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 =
@@ -7204,10 +7233,13 @@ static void
7204poll_bnx2(struct net_device *dev) 7233poll_bnx2(struct net_device *dev)
7205{ 7234{
7206 struct bnx2 *bp = netdev_priv(dev); 7235 struct bnx2 *bp = netdev_priv(dev);
7236 int i;
7207 7237
7208 disable_irq(bp->pdev->irq); 7238 for (i = 0; i < bp->irq_nvecs; i++) {
7209 bnx2_interrupt(bp->pdev->irq, dev); 7239 disable_irq(bp->irq_tbl[i].vector);
7210 enable_irq(bp->pdev->irq); 7240 bnx2_interrupt(bp->irq_tbl[i].vector, &bp->bnx2_napi[i]);
7241 enable_irq(bp->irq_tbl[i].vector);
7242 }
7211} 7243}
7212#endif 7244#endif
7213 7245
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/bnx2x_init.h b/drivers/net/bnx2x_init.h
index 130927cfc75b..a6c0b3abba29 100644
--- a/drivers/net/bnx2x_init.h
+++ b/drivers/net/bnx2x_init.h
@@ -564,14 +564,15 @@ static const struct arb_line write_arb_addr[NUM_WR_Q-1] = {
564 564
565static void bnx2x_init_pxp(struct bnx2x *bp) 565static void bnx2x_init_pxp(struct bnx2x *bp)
566{ 566{
567 u16 devctl;
567 int r_order, w_order; 568 int r_order, w_order;
568 u32 val, i; 569 u32 val, i;
569 570
570 pci_read_config_word(bp->pdev, 571 pci_read_config_word(bp->pdev,
571 bp->pcie_cap + PCI_EXP_DEVCTL, (u16 *)&val); 572 bp->pcie_cap + PCI_EXP_DEVCTL, &devctl);
572 DP(NETIF_MSG_HW, "read 0x%x from devctl\n", (u16)val); 573 DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl);
573 w_order = ((val & PCI_EXP_DEVCTL_PAYLOAD) >> 5); 574 w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5);
574 r_order = ((val & PCI_EXP_DEVCTL_READRQ) >> 12); 575 r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12);
575 576
576 if (r_order > MAX_RD_ORD) { 577 if (r_order > MAX_RD_ORD) {
577 DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n", 578 DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n",
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index fce745148ff9..600210d7eff9 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -59,8 +59,8 @@
59#include "bnx2x.h" 59#include "bnx2x.h"
60#include "bnx2x_init.h" 60#include "bnx2x_init.h"
61 61
62#define DRV_MODULE_VERSION "1.45.22" 62#define DRV_MODULE_VERSION "1.45.23"
63#define DRV_MODULE_RELDATE "2008/09/09" 63#define DRV_MODULE_RELDATE "2008/11/03"
64#define BNX2X_BC_VER 0x040200 64#define BNX2X_BC_VER 0x040200
65 65
66/* Time in jiffies before concluding the transmitter is hung */ 66/* Time in jiffies before concluding the transmitter is hung */
@@ -6481,6 +6481,7 @@ load_int_disable:
6481 bnx2x_free_irq(bp); 6481 bnx2x_free_irq(bp);
6482load_error: 6482load_error:
6483 bnx2x_free_mem(bp); 6483 bnx2x_free_mem(bp);
6484 bp->port.pmf = 0;
6484 6485
6485 /* TBD we really need to reset the chip 6486 /* TBD we really need to reset the chip
6486 if we want to recover from this */ 6487 if we want to recover from this */
@@ -6791,6 +6792,7 @@ unload_error:
6791 /* Report UNLOAD_DONE to MCP */ 6792 /* Report UNLOAD_DONE to MCP */
6792 if (!BP_NOMCP(bp)) 6793 if (!BP_NOMCP(bp))
6793 bnx2x_fw_command(bp, DRV_MSG_CODE_UNLOAD_DONE); 6794 bnx2x_fw_command(bp, DRV_MSG_CODE_UNLOAD_DONE);
6795 bp->port.pmf = 0;
6794 6796
6795 /* Free SKBs, SGEs, TPA pool and driver internals */ 6797 /* Free SKBs, SGEs, TPA pool and driver internals */
6796 bnx2x_free_skbs(bp); 6798 bnx2x_free_skbs(bp);
@@ -10204,8 +10206,6 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev,
10204 return -ENOMEM; 10206 return -ENOMEM;
10205 } 10207 }
10206 10208
10207 netif_carrier_off(dev);
10208
10209 bp = netdev_priv(dev); 10209 bp = netdev_priv(dev);
10210 bp->msglevel = debug; 10210 bp->msglevel = debug;
10211 10211
@@ -10229,6 +10229,8 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev,
10229 goto init_one_exit; 10229 goto init_one_exit;
10230 } 10230 }
10231 10231
10232 netif_carrier_off(dev);
10233
10232 bp->common.name = board_info[ent->driver_data].name; 10234 bp->common.name = board_info[ent->driver_data].name;
10233 printk(KERN_INFO "%s: %s (%c%d) PCI-E x%d %s found at mem %lx," 10235 printk(KERN_INFO "%s: %s (%c%d) PCI-E x%d %s found at mem %lx,"
10234 " IRQ %d, ", dev->name, bp->common.name, 10236 " IRQ %d, ", dev->name, bp->common.name,
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/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 1ace41a13ac3..2c341f83d327 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -1307,8 +1307,10 @@ static void get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
1307 u32 fw_vers = 0; 1307 u32 fw_vers = 0;
1308 u32 tp_vers = 0; 1308 u32 tp_vers = 0;
1309 1309
1310 spin_lock(&adapter->stats_lock);
1310 t3_get_fw_version(adapter, &fw_vers); 1311 t3_get_fw_version(adapter, &fw_vers);
1311 t3_get_tp_version(adapter, &tp_vers); 1312 t3_get_tp_version(adapter, &tp_vers);
1313 spin_unlock(&adapter->stats_lock);
1312 1314
1313 strcpy(info->driver, DRV_NAME); 1315 strcpy(info->driver, DRV_NAME);
1314 strcpy(info->version, DRV_VERSION); 1316 strcpy(info->version, DRV_VERSION);
@@ -2699,7 +2701,7 @@ static void set_nqsets(struct adapter *adap)
2699 int hwports = adap->params.nports; 2701 int hwports = adap->params.nports;
2700 int nqsets = SGE_QSETS; 2702 int nqsets = SGE_QSETS;
2701 2703
2702 if (adap->params.rev > 0) { 2704 if (adap->params.rev > 0 && adap->flags & USING_MSIX) {
2703 if (hwports == 2 && 2705 if (hwports == 2 &&
2704 (hwports * nqsets > SGE_QSETS || 2706 (hwports * nqsets > SGE_QSETS ||
2705 num_cpus >= nqsets / hwports)) 2707 num_cpus >= nqsets / hwports))
diff --git a/drivers/net/cxgb3/t3_hw.c b/drivers/net/cxgb3/t3_hw.c
index 968f64be3743..9a0898b0dbce 100644
--- a/drivers/net/cxgb3/t3_hw.c
+++ b/drivers/net/cxgb3/t3_hw.c
@@ -572,7 +572,7 @@ struct t3_vpd {
572 u32 pad; /* for multiple-of-4 sizing and alignment */ 572 u32 pad; /* for multiple-of-4 sizing and alignment */
573}; 573};
574 574
575#define EEPROM_MAX_POLL 4 575#define EEPROM_MAX_POLL 40
576#define EEPROM_STAT_ADDR 0x4000 576#define EEPROM_STAT_ADDR 0x4000
577#define VPD_BASE 0xc00 577#define VPD_BASE 0xc00
578 578
@@ -3690,6 +3690,12 @@ int t3_prep_adapter(struct adapter *adapter, const struct adapter_info *ai,
3690 ; 3690 ;
3691 3691
3692 pti = &port_types[adapter->params.vpd.port_type[j]]; 3692 pti = &port_types[adapter->params.vpd.port_type[j]];
3693 if (!pti->phy_prep) {
3694 CH_ALERT(adapter, "Invalid port type index %d\n",
3695 adapter->params.vpd.port_type[j]);
3696 return -EINVAL;
3697 }
3698
3693 ret = pti->phy_prep(&p->phy, adapter, ai->phy_base_addr + j, 3699 ret = pti->phy_prep(&p->phy, adapter, ai->phy_base_addr + j,
3694 ai->mdio_ops); 3700 ai->mdio_ops);
3695 if (ret) 3701 if (ret)
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 3d69fae781cf..e8bfcce6b319 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -166,7 +166,7 @@
166 166
167#define DRV_NAME "e100" 167#define DRV_NAME "e100"
168#define DRV_EXT "-NAPI" 168#define DRV_EXT "-NAPI"
169#define DRV_VERSION "3.5.23-k4"DRV_EXT 169#define DRV_VERSION "3.5.23-k6"DRV_EXT
170#define DRV_DESCRIPTION "Intel(R) PRO/100 Network Driver" 170#define DRV_DESCRIPTION "Intel(R) PRO/100 Network Driver"
171#define DRV_COPYRIGHT "Copyright(c) 1999-2006 Intel Corporation" 171#define DRV_COPYRIGHT "Copyright(c) 1999-2006 Intel Corporation"
172#define PFX DRV_NAME ": " 172#define PFX DRV_NAME ": "
@@ -1804,7 +1804,7 @@ static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx)
1804 struct rfd *prev_rfd = (struct rfd *)rx->prev->skb->data; 1804 struct rfd *prev_rfd = (struct rfd *)rx->prev->skb->data;
1805 put_unaligned_le32(rx->dma_addr, &prev_rfd->link); 1805 put_unaligned_le32(rx->dma_addr, &prev_rfd->link);
1806 pci_dma_sync_single_for_device(nic->pdev, rx->prev->dma_addr, 1806 pci_dma_sync_single_for_device(nic->pdev, rx->prev->dma_addr,
1807 sizeof(struct rfd), PCI_DMA_TODEVICE); 1807 sizeof(struct rfd), PCI_DMA_BIDIRECTIONAL);
1808 } 1808 }
1809 1809
1810 return 0; 1810 return 0;
@@ -1823,7 +1823,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,
1823 1823
1824 /* Need to sync before taking a peek at cb_complete bit */ 1824 /* Need to sync before taking a peek at cb_complete bit */
1825 pci_dma_sync_single_for_cpu(nic->pdev, rx->dma_addr, 1825 pci_dma_sync_single_for_cpu(nic->pdev, rx->dma_addr,
1826 sizeof(struct rfd), PCI_DMA_FROMDEVICE); 1826 sizeof(struct rfd), PCI_DMA_BIDIRECTIONAL);
1827 rfd_status = le16_to_cpu(rfd->status); 1827 rfd_status = le16_to_cpu(rfd->status);
1828 1828
1829 DPRINTK(RX_STATUS, DEBUG, "status=0x%04X\n", rfd_status); 1829 DPRINTK(RX_STATUS, DEBUG, "status=0x%04X\n", rfd_status);
@@ -1850,7 +1850,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,
1850 1850
1851 /* Get data */ 1851 /* Get data */
1852 pci_unmap_single(nic->pdev, rx->dma_addr, 1852 pci_unmap_single(nic->pdev, rx->dma_addr,
1853 RFD_BUF_LEN, PCI_DMA_FROMDEVICE); 1853 RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL);
1854 1854
1855 /* If this buffer has the el bit, but we think the receiver 1855 /* If this buffer has the el bit, but we think the receiver
1856 * is still running, check to see if it really stopped while 1856 * is still running, check to see if it really stopped while
@@ -1943,7 +1943,7 @@ static void e100_rx_clean(struct nic *nic, unsigned int *work_done,
1943 new_before_last_rfd->command |= cpu_to_le16(cb_el); 1943 new_before_last_rfd->command |= cpu_to_le16(cb_el);
1944 pci_dma_sync_single_for_device(nic->pdev, 1944 pci_dma_sync_single_for_device(nic->pdev,
1945 new_before_last_rx->dma_addr, sizeof(struct rfd), 1945 new_before_last_rx->dma_addr, sizeof(struct rfd),
1946 PCI_DMA_TODEVICE); 1946 PCI_DMA_BIDIRECTIONAL);
1947 1947
1948 /* Now that we have a new stopping point, we can clear the old 1948 /* Now that we have a new stopping point, we can clear the old
1949 * stopping point. We must sync twice to get the proper 1949 * stopping point. We must sync twice to get the proper
@@ -1951,11 +1951,11 @@ static void e100_rx_clean(struct nic *nic, unsigned int *work_done,
1951 old_before_last_rfd->command &= ~cpu_to_le16(cb_el); 1951 old_before_last_rfd->command &= ~cpu_to_le16(cb_el);
1952 pci_dma_sync_single_for_device(nic->pdev, 1952 pci_dma_sync_single_for_device(nic->pdev,
1953 old_before_last_rx->dma_addr, sizeof(struct rfd), 1953 old_before_last_rx->dma_addr, sizeof(struct rfd),
1954 PCI_DMA_TODEVICE); 1954 PCI_DMA_BIDIRECTIONAL);
1955 old_before_last_rfd->size = cpu_to_le16(VLAN_ETH_FRAME_LEN); 1955 old_before_last_rfd->size = cpu_to_le16(VLAN_ETH_FRAME_LEN);
1956 pci_dma_sync_single_for_device(nic->pdev, 1956 pci_dma_sync_single_for_device(nic->pdev,
1957 old_before_last_rx->dma_addr, sizeof(struct rfd), 1957 old_before_last_rx->dma_addr, sizeof(struct rfd),
1958 PCI_DMA_TODEVICE); 1958 PCI_DMA_BIDIRECTIONAL);
1959 } 1959 }
1960 1960
1961 if(restart_required) { 1961 if(restart_required) {
@@ -1978,7 +1978,7 @@ static void e100_rx_clean_list(struct nic *nic)
1978 for(rx = nic->rxs, i = 0; i < count; rx++, i++) { 1978 for(rx = nic->rxs, i = 0; i < count; rx++, i++) {
1979 if(rx->skb) { 1979 if(rx->skb) {
1980 pci_unmap_single(nic->pdev, rx->dma_addr, 1980 pci_unmap_single(nic->pdev, rx->dma_addr,
1981 RFD_BUF_LEN, PCI_DMA_FROMDEVICE); 1981 RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL);
1982 dev_kfree_skb(rx->skb); 1982 dev_kfree_skb(rx->skb);
1983 } 1983 }
1984 } 1984 }
@@ -2021,7 +2021,7 @@ static int e100_rx_alloc_list(struct nic *nic)
2021 before_last->command |= cpu_to_le16(cb_el); 2021 before_last->command |= cpu_to_le16(cb_el);
2022 before_last->size = 0; 2022 before_last->size = 0;
2023 pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr, 2023 pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr,
2024 sizeof(struct rfd), PCI_DMA_TODEVICE); 2024 sizeof(struct rfd), PCI_DMA_BIDIRECTIONAL);
2025 2025
2026 nic->rx_to_use = nic->rx_to_clean = nic->rxs; 2026 nic->rx_to_use = nic->rx_to_clean = nic->rxs;
2027 nic->ru_running = RU_SUSPENDED; 2027 nic->ru_running = RU_SUSPENDED;
@@ -2222,7 +2222,7 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode)
2222 msleep(10); 2222 msleep(10);
2223 2223
2224 pci_dma_sync_single_for_cpu(nic->pdev, nic->rx_to_clean->dma_addr, 2224 pci_dma_sync_single_for_cpu(nic->pdev, nic->rx_to_clean->dma_addr,
2225 RFD_BUF_LEN, PCI_DMA_FROMDEVICE); 2225 RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL);
2226 2226
2227 if(memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd), 2227 if(memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd),
2228 skb->data, ETH_DATA_LEN)) 2228 skb->data, ETH_DATA_LEN))
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c
index 6a3893acfe04..c854c96f5ab3 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -1774,7 +1774,8 @@ static void e1000_get_wol(struct net_device *netdev,
1774 1774
1775 /* this function will set ->supported = 0 and return 1 if wol is not 1775 /* this function will set ->supported = 0 and return 1 if wol is not
1776 * supported by this hardware */ 1776 * supported by this hardware */
1777 if (e1000_wol_exclusion(adapter, wol)) 1777 if (e1000_wol_exclusion(adapter, wol) ||
1778 !device_can_wakeup(&adapter->pdev->dev))
1778 return; 1779 return;
1779 1780
1780 /* apply any specific unsupported masks here */ 1781 /* apply any specific unsupported masks here */
@@ -1811,7 +1812,8 @@ static int e1000_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
1811 if (wol->wolopts & (WAKE_PHY | WAKE_ARP | WAKE_MAGICSECURE)) 1812 if (wol->wolopts & (WAKE_PHY | WAKE_ARP | WAKE_MAGICSECURE))
1812 return -EOPNOTSUPP; 1813 return -EOPNOTSUPP;
1813 1814
1814 if (e1000_wol_exclusion(adapter, wol)) 1815 if (e1000_wol_exclusion(adapter, wol) ||
1816 !device_can_wakeup(&adapter->pdev->dev))
1815 return wol->wolopts ? -EOPNOTSUPP : 0; 1817 return wol->wolopts ? -EOPNOTSUPP : 0;
1816 1818
1817 switch (hw->device_id) { 1819 switch (hw->device_id) {
@@ -1838,6 +1840,8 @@ static int e1000_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
1838 if (wol->wolopts & WAKE_MAGIC) 1840 if (wol->wolopts & WAKE_MAGIC)
1839 adapter->wol |= E1000_WUFC_MAG; 1841 adapter->wol |= E1000_WUFC_MAG;
1840 1842
1843 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
1844
1841 return 0; 1845 return 0;
1842} 1846}
1843 1847
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index fac82152e4c8..872799b746f5 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -1179,6 +1179,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
1179 1179
1180 /* initialize the wol settings based on the eeprom settings */ 1180 /* initialize the wol settings based on the eeprom settings */
1181 adapter->wol = adapter->eeprom_wol; 1181 adapter->wol = adapter->eeprom_wol;
1182 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
1182 1183
1183 /* print bus type/speed/width info */ 1184 /* print bus type/speed/width info */
1184 DPRINTK(PROBE, INFO, "(PCI%s:%s:%s) ", 1185 DPRINTK(PROBE, INFO, "(PCI%s:%s:%s) ",
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index c55de1c027af..c55fd6fdb91c 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -299,6 +299,7 @@ struct e1000_adapter {
299 unsigned long led_status; 299 unsigned long led_status;
300 300
301 unsigned int flags; 301 unsigned int flags;
302 unsigned int flags2;
302 struct work_struct downshift_task; 303 struct work_struct downshift_task;
303 struct work_struct update_phy_task; 304 struct work_struct update_phy_task;
304}; 305};
@@ -306,6 +307,7 @@ struct e1000_adapter {
306struct e1000_info { 307struct e1000_info {
307 enum e1000_mac_type mac; 308 enum e1000_mac_type mac;
308 unsigned int flags; 309 unsigned int flags;
310 unsigned int flags2;
309 u32 pba; 311 u32 pba;
310 s32 (*get_variants)(struct e1000_adapter *); 312 s32 (*get_variants)(struct e1000_adapter *);
311 struct e1000_mac_operations *mac_ops; 313 struct e1000_mac_operations *mac_ops;
@@ -347,6 +349,9 @@ struct e1000_info {
347#define FLAG_RX_RESTART_NOW (1 << 30) 349#define FLAG_RX_RESTART_NOW (1 << 30)
348#define FLAG_MSI_TEST_FAILED (1 << 31) 350#define FLAG_MSI_TEST_FAILED (1 << 31)
349 351
352/* CRC Stripping defines */
353#define FLAG2_CRC_STRIPPING (1 << 0)
354
350#define E1000_RX_DESC_PS(R, i) \ 355#define E1000_RX_DESC_PS(R, i) \
351 (&(((union e1000_rx_desc_packet_split *)((R).desc))[i])) 356 (&(((union e1000_rx_desc_packet_split *)((R).desc))[i]))
352#define E1000_GET_DESC(R, i, type) (&(((struct type *)((R).desc))[i])) 357#define E1000_GET_DESC(R, i, type) (&(((struct type *)((R).desc))[i]))
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index 70c11c811a08..62421ce96311 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -1713,7 +1713,8 @@ static void e1000_get_wol(struct net_device *netdev,
1713 wol->supported = 0; 1713 wol->supported = 0;
1714 wol->wolopts = 0; 1714 wol->wolopts = 0;
1715 1715
1716 if (!(adapter->flags & FLAG_HAS_WOL)) 1716 if (!(adapter->flags & FLAG_HAS_WOL) ||
1717 !device_can_wakeup(&adapter->pdev->dev))
1717 return; 1718 return;
1718 1719
1719 wol->supported = WAKE_UCAST | WAKE_MCAST | 1720 wol->supported = WAKE_UCAST | WAKE_MCAST |
@@ -1751,7 +1752,8 @@ static int e1000_set_wol(struct net_device *netdev,
1751 if (wol->wolopts & WAKE_MAGICSECURE) 1752 if (wol->wolopts & WAKE_MAGICSECURE)
1752 return -EOPNOTSUPP; 1753 return -EOPNOTSUPP;
1753 1754
1754 if (!(adapter->flags & FLAG_HAS_WOL)) 1755 if (!(adapter->flags & FLAG_HAS_WOL) ||
1756 !device_can_wakeup(&adapter->pdev->dev))
1755 return wol->wolopts ? -EOPNOTSUPP : 0; 1757 return wol->wolopts ? -EOPNOTSUPP : 0;
1756 1758
1757 /* these settings will always override what we currently have */ 1759 /* these settings will always override what we currently have */
@@ -1770,6 +1772,8 @@ static int e1000_set_wol(struct net_device *netdev,
1770 if (wol->wolopts & WAKE_ARP) 1772 if (wol->wolopts & WAKE_ARP)
1771 adapter->wol |= E1000_WUFC_ARP; 1773 adapter->wol |= E1000_WUFC_ARP;
1772 1774
1775 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
1776
1773 return 0; 1777 return 0;
1774} 1778}
1775 1779
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 abd492b7336d..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
@@ -499,6 +498,10 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
499 goto next_desc; 498 goto next_desc;
500 } 499 }
501 500
501 /* adjust length to remove Ethernet CRC */
502 if (!(adapter->flags2 & FLAG2_CRC_STRIPPING))
503 length -= 4;
504
502 total_rx_bytes += length; 505 total_rx_bytes += length;
503 total_rx_packets++; 506 total_rx_packets++;
504 507
@@ -804,6 +807,10 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
804 pci_dma_sync_single_for_device(pdev, ps_page->dma, 807 pci_dma_sync_single_for_device(pdev, ps_page->dma,
805 PAGE_SIZE, PCI_DMA_FROMDEVICE); 808 PAGE_SIZE, PCI_DMA_FROMDEVICE);
806 809
810 /* remove the CRC */
811 if (!(adapter->flags2 & FLAG2_CRC_STRIPPING))
812 l1 -= 4;
813
807 skb_put(skb, l1); 814 skb_put(skb, l1);
808 goto copydone; 815 goto copydone;
809 } /* if */ 816 } /* if */
@@ -825,6 +832,12 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
825 skb->truesize += length; 832 skb->truesize += length;
826 } 833 }
827 834
835 /* strip the ethernet crc, problem is we're using pages now so
836 * this whole operation can get a little cpu intensive
837 */
838 if (!(adapter->flags2 & FLAG2_CRC_STRIPPING))
839 pskb_trim(skb, skb->len - 4);
840
828copydone: 841copydone:
829 total_rx_bytes += skb->len; 842 total_rx_bytes += skb->len;
830 total_rx_packets++; 843 total_rx_packets++;
@@ -2301,8 +2314,12 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)
2301 else 2314 else
2302 rctl |= E1000_RCTL_LPE; 2315 rctl |= E1000_RCTL_LPE;
2303 2316
2304 /* Enable hardware CRC frame stripping */ 2317 /* Some systems expect that the CRC is included in SMBUS traffic. The
2305 rctl |= E1000_RCTL_SECRC; 2318 * hardware strips the CRC before sending to both SMBUS (BMC) and to
2319 * host memory when this is enabled
2320 */
2321 if (adapter->flags2 & FLAG2_CRC_STRIPPING)
2322 rctl |= E1000_RCTL_SECRC;
2306 2323
2307 /* Setup buffer sizes */ 2324 /* Setup buffer sizes */
2308 rctl &= ~E1000_RCTL_SZ_4096; 2325 rctl &= ~E1000_RCTL_SZ_4096;
@@ -4766,6 +4783,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
4766 adapter->ei = ei; 4783 adapter->ei = ei;
4767 adapter->pba = ei->pba; 4784 adapter->pba = ei->pba;
4768 adapter->flags = ei->flags; 4785 adapter->flags = ei->flags;
4786 adapter->flags2 = ei->flags2;
4769 adapter->hw.adapter = adapter; 4787 adapter->hw.adapter = adapter;
4770 adapter->hw.mac.type = ei->mac; 4788 adapter->hw.mac.type = ei->mac;
4771 adapter->msg_enable = (1 << NETIF_MSG_DRV | NETIF_MSG_PROBE) - 1; 4789 adapter->msg_enable = (1 << NETIF_MSG_DRV | NETIF_MSG_PROBE) - 1;
@@ -4970,6 +4988,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
4970 4988
4971 /* initialize the wol settings based on the eeprom settings */ 4989 /* initialize the wol settings based on the eeprom settings */
4972 adapter->wol = adapter->eeprom_wol; 4990 adapter->wol = adapter->eeprom_wol;
4991 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
4973 4992
4974 /* reset the hardware with the new settings */ 4993 /* reset the hardware with the new settings */
4975 e1000e_reset(adapter); 4994 e1000e_reset(adapter);
@@ -5008,6 +5027,7 @@ err_hw_init:
5008err_sw_init: 5027err_sw_init:
5009 if (adapter->hw.flash_address) 5028 if (adapter->hw.flash_address)
5010 iounmap(adapter->hw.flash_address); 5029 iounmap(adapter->hw.flash_address);
5030 e1000e_reset_interrupt_capability(adapter);
5011err_flashmap: 5031err_flashmap:
5012 iounmap(adapter->hw.hw_addr); 5032 iounmap(adapter->hw.hw_addr);
5013err_ioremap: 5033err_ioremap:
diff --git a/drivers/net/e1000e/param.c b/drivers/net/e1000e/param.c
index 77a3d7207a5f..e909f96698e8 100644
--- a/drivers/net/e1000e/param.c
+++ b/drivers/net/e1000e/param.c
@@ -151,6 +151,16 @@ E1000_PARAM(KumeranLockLoss, "Enable Kumeran lock loss workaround");
151 */ 151 */
152E1000_PARAM(WriteProtectNVM, "Write-protect NVM [WARNING: disabling this can lead to corrupted NVM]"); 152E1000_PARAM(WriteProtectNVM, "Write-protect NVM [WARNING: disabling this can lead to corrupted NVM]");
153 153
154/*
155 * Enable CRC Stripping
156 *
157 * Valid Range: 0, 1
158 *
159 * Default Value: 1 (enabled)
160 */
161E1000_PARAM(CrcStripping, "Enable CRC Stripping, disable if your BMC needs " \
162 "the CRC");
163
154struct e1000_option { 164struct e1000_option {
155 enum { enable_option, range_option, list_option } type; 165 enum { enable_option, range_option, list_option } type;
156 const char *name; 166 const char *name;
@@ -404,6 +414,21 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter)
404 adapter->flags |= FLAG_SMART_POWER_DOWN; 414 adapter->flags |= FLAG_SMART_POWER_DOWN;
405 } 415 }
406 } 416 }
417 { /* CRC Stripping */
418 const struct e1000_option opt = {
419 .type = enable_option,
420 .name = "CRC Stripping",
421 .err = "defaulting to enabled",
422 .def = OPTION_ENABLED
423 };
424
425 if (num_CrcStripping > bd) {
426 unsigned int crc_stripping = CrcStripping[bd];
427 e1000_validate_option(&crc_stripping, &opt, adapter);
428 if (crc_stripping == OPTION_ENABLED)
429 adapter->flags2 |= FLAG2_CRC_STRIPPING;
430 }
431 }
407 { /* Kumeran Lock Loss Workaround */ 432 { /* Kumeran Lock Loss Workaround */
408 const struct e1000_option opt = { 433 const struct e1000_option opt = {
409 .type = enable_option, 434 .type = enable_option,
diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c
index e1b441effbbe..c414554ac321 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);
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index cb51c1fb0338..a6f49d025787 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -1099,7 +1099,9 @@ static int __devinit fs_enet_probe(struct of_device *ofdev,
1099 ndev->stop = fs_enet_close; 1099 ndev->stop = fs_enet_close;
1100 ndev->get_stats = fs_enet_get_stats; 1100 ndev->get_stats = fs_enet_get_stats;
1101 ndev->set_multicast_list = fs_set_multicast_list; 1101 ndev->set_multicast_list = fs_set_multicast_list;
1102 1102#ifdef CONFIG_NET_POLL_CONTROLLER
1103 ndev->poll_controller = fs_enet_netpoll;
1104#endif
1103 if (fpi->use_napi) 1105 if (fpi->use_napi)
1104 netif_napi_add(ndev, &fep->napi, fs_enet_rx_napi, 1106 netif_napi_add(ndev, &fep->napi, fs_enet_rx_napi,
1105 fpi->napi_weight); 1107 fpi->napi_weight);
@@ -1209,7 +1211,7 @@ static void __exit fs_cleanup(void)
1209static void fs_enet_netpoll(struct net_device *dev) 1211static void fs_enet_netpoll(struct net_device *dev)
1210{ 1212{
1211 disable_irq(dev->irq); 1213 disable_irq(dev->irq);
1212 fs_enet_interrupt(dev->irq, dev, NULL); 1214 fs_enet_interrupt(dev->irq, dev);
1213 enable_irq(dev->irq); 1215 enable_irq(dev->irq);
1214} 1216}
1215#endif 1217#endif
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 83a5cb6aa23b..c4af949bf860 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1407,6 +1407,10 @@ static int gfar_clean_tx_ring(struct net_device *dev)
1407 if (bdp->status & TXBD_DEF) 1407 if (bdp->status & TXBD_DEF)
1408 dev->stats.collisions++; 1408 dev->stats.collisions++;
1409 1409
1410 /* Unmap the DMA memory */
1411 dma_unmap_single(&priv->dev->dev, bdp->bufPtr,
1412 bdp->length, DMA_TO_DEVICE);
1413
1410 /* Free the sk buffer associated with this TxBD */ 1414 /* Free the sk buffer associated with this TxBD */
1411 dev_kfree_skb_irq(priv->tx_skbuff[priv->skb_dirtytx]); 1415 dev_kfree_skb_irq(priv->tx_skbuff[priv->skb_dirtytx]);
1412 1416
@@ -1666,6 +1670,9 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit)
1666 1670
1667 skb = priv->rx_skbuff[priv->skb_currx]; 1671 skb = priv->rx_skbuff[priv->skb_currx];
1668 1672
1673 dma_unmap_single(&priv->dev->dev, bdp->bufPtr,
1674 priv->rx_buffer_size, DMA_FROM_DEVICE);
1675
1669 /* We drop the frame if we failed to allocate a new buffer */ 1676 /* We drop the frame if we failed to allocate a new buffer */
1670 if (unlikely(!newskb || !(bdp->status & RXBD_LAST) || 1677 if (unlikely(!newskb || !(bdp->status & RXBD_LAST) ||
1671 bdp->status & RXBD_ERR)) { 1678 bdp->status & RXBD_ERR)) {
@@ -1674,14 +1681,8 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit)
1674 if (unlikely(!newskb)) 1681 if (unlikely(!newskb))
1675 newskb = skb; 1682 newskb = skb;
1676 1683
1677 if (skb) { 1684 if (skb)
1678 dma_unmap_single(&priv->dev->dev,
1679 bdp->bufPtr,
1680 priv->rx_buffer_size,
1681 DMA_FROM_DEVICE);
1682
1683 dev_kfree_skb_any(skb); 1685 dev_kfree_skb_any(skb);
1684 }
1685 } else { 1686 } else {
1686 /* Increment the number of packets */ 1687 /* Increment the number of packets */
1687 dev->stats.rx_packets++; 1688 dev->stats.rx_packets++;
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_ethtool.c b/drivers/net/igb/igb_ethtool.c
index 58906c984be9..89964fa739a0 100644
--- a/drivers/net/igb/igb_ethtool.c
+++ b/drivers/net/igb/igb_ethtool.c
@@ -1776,7 +1776,8 @@ static void igb_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
1776 1776
1777 /* this function will set ->supported = 0 and return 1 if wol is not 1777 /* this function will set ->supported = 0 and return 1 if wol is not
1778 * supported by this hardware */ 1778 * supported by this hardware */
1779 if (igb_wol_exclusion(adapter, wol)) 1779 if (igb_wol_exclusion(adapter, wol) ||
1780 !device_can_wakeup(&adapter->pdev->dev))
1780 return; 1781 return;
1781 1782
1782 /* apply any specific unsupported masks here */ 1783 /* apply any specific unsupported masks here */
@@ -1805,7 +1806,8 @@ static int igb_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
1805 if (wol->wolopts & (WAKE_PHY | WAKE_ARP | WAKE_MAGICSECURE)) 1806 if (wol->wolopts & (WAKE_PHY | WAKE_ARP | WAKE_MAGICSECURE))
1806 return -EOPNOTSUPP; 1807 return -EOPNOTSUPP;
1807 1808
1808 if (igb_wol_exclusion(adapter, wol)) 1809 if (igb_wol_exclusion(adapter, wol) ||
1810 !device_can_wakeup(&adapter->pdev->dev))
1809 return wol->wolopts ? -EOPNOTSUPP : 0; 1811 return wol->wolopts ? -EOPNOTSUPP : 0;
1810 1812
1811 switch (hw->device_id) { 1813 switch (hw->device_id) {
@@ -1825,6 +1827,8 @@ static int igb_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
1825 if (wol->wolopts & WAKE_MAGIC) 1827 if (wol->wolopts & WAKE_MAGIC)
1826 adapter->wol |= E1000_WUFC_MAG; 1828 adapter->wol |= E1000_WUFC_MAG;
1827 1829
1830 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
1831
1828 return 0; 1832 return 0;
1829} 1833}
1830 1834
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 1f397cd99414..20d27e622ec1 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -1019,10 +1019,9 @@ static int __devinit igb_probe(struct pci_dev *pdev,
1019 state &= ~PCIE_LINK_STATE_L0S; 1019 state &= ~PCIE_LINK_STATE_L0S;
1020 pci_write_config_word(us_dev, pos + PCI_EXP_LNKCTL, 1020 pci_write_config_word(us_dev, pos + PCI_EXP_LNKCTL,
1021 state); 1021 state);
1022 printk(KERN_INFO "Disabling ASPM L0s upstream switch " 1022 dev_info(&pdev->dev,
1023 "port %x:%x.%x\n", us_dev->bus->number, 1023 "Disabling ASPM L0s upstream switch port %s\n",
1024 PCI_SLOT(us_dev->devfn), 1024 pci_name(us_dev));
1025 PCI_FUNC(us_dev->devfn));
1026 } 1025 }
1027 default: 1026 default:
1028 break; 1027 break;
@@ -1244,6 +1243,7 @@ static int __devinit igb_probe(struct pci_dev *pdev,
1244 1243
1245 /* initialize the wol settings based on the eeprom settings */ 1244 /* initialize the wol settings based on the eeprom settings */
1246 adapter->wol = adapter->eeprom_wol; 1245 adapter->wol = adapter->eeprom_wol;
1246 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
1247 1247
1248 /* reset the hardware with the new settings */ 1248 /* reset the hardware with the new settings */
1249 igb_reset(adapter); 1249 igb_reset(adapter);
@@ -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/ipg.c b/drivers/net/ipg.c
index 7373dafbb3f7..059369885be1 100644
--- a/drivers/net/ipg.c
+++ b/drivers/net/ipg.c
@@ -1112,7 +1112,7 @@ static void ipg_nic_rx_free_skb(struct net_device *dev)
1112 struct ipg_rx *rxfd = sp->rxd + entry; 1112 struct ipg_rx *rxfd = sp->rxd + entry;
1113 1113
1114 pci_unmap_single(sp->pdev, 1114 pci_unmap_single(sp->pdev,
1115 le64_to_cpu(rxfd->frag_info & ~IPG_RFI_FRAGLEN), 1115 le64_to_cpu(rxfd->frag_info) & ~IPG_RFI_FRAGLEN,
1116 sp->rx_buf_sz, PCI_DMA_FROMDEVICE); 1116 sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
1117 dev_kfree_skb_irq(sp->rx_buff[entry]); 1117 dev_kfree_skb_irq(sp->rx_buff[entry]);
1118 sp->rx_buff[entry] = NULL; 1118 sp->rx_buff[entry] = NULL;
@@ -1179,7 +1179,7 @@ static int ipg_nic_rx_check_error(struct net_device *dev)
1179 */ 1179 */
1180 if (sp->rx_buff[entry]) { 1180 if (sp->rx_buff[entry]) {
1181 pci_unmap_single(sp->pdev, 1181 pci_unmap_single(sp->pdev,
1182 le64_to_cpu(rxfd->frag_info & ~IPG_RFI_FRAGLEN), 1182 le64_to_cpu(rxfd->frag_info) & ~IPG_RFI_FRAGLEN,
1183 sp->rx_buf_sz, PCI_DMA_FROMDEVICE); 1183 sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
1184 1184
1185 dev_kfree_skb_irq(sp->rx_buff[entry]); 1185 dev_kfree_skb_irq(sp->rx_buff[entry]);
@@ -1246,7 +1246,7 @@ static void ipg_nic_rx_with_start(struct net_device *dev,
1246 if (jumbo->found_start) 1246 if (jumbo->found_start)
1247 dev_kfree_skb_irq(jumbo->skb); 1247 dev_kfree_skb_irq(jumbo->skb);
1248 1248
1249 pci_unmap_single(pdev, le64_to_cpu(rxfd->frag_info & ~IPG_RFI_FRAGLEN), 1249 pci_unmap_single(pdev, le64_to_cpu(rxfd->frag_info) & ~IPG_RFI_FRAGLEN,
1250 sp->rx_buf_sz, PCI_DMA_FROMDEVICE); 1250 sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
1251 1251
1252 skb_put(skb, sp->rxfrag_size); 1252 skb_put(skb, sp->rxfrag_size);
@@ -1349,7 +1349,7 @@ static int ipg_nic_rx_jumbo(struct net_device *dev)
1349 unsigned int entry = curr % IPG_RFDLIST_LENGTH; 1349 unsigned int entry = curr % IPG_RFDLIST_LENGTH;
1350 struct ipg_rx *rxfd = sp->rxd + entry; 1350 struct ipg_rx *rxfd = sp->rxd + entry;
1351 1351
1352 if (!(rxfd->rfs & le64_to_cpu(IPG_RFS_RFDDONE))) 1352 if (!(rxfd->rfs & cpu_to_le64(IPG_RFS_RFDDONE)))
1353 break; 1353 break;
1354 1354
1355 switch (ipg_nic_rx_check_frame_type(dev)) { 1355 switch (ipg_nic_rx_check_frame_type(dev)) {
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 7548fb7360d9..5236f633ee36 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1287,13 +1287,39 @@ static void ixgbe_set_itr(struct ixgbe_adapter *adapter)
1287 return; 1287 return;
1288} 1288}
1289 1289
1290static inline void ixgbe_irq_enable(struct ixgbe_adapter *adapter); 1290/**
1291 * ixgbe_irq_disable - Mask off interrupt generation on the NIC
1292 * @adapter: board private structure
1293 **/
1294static inline void ixgbe_irq_disable(struct ixgbe_adapter *adapter)
1295{
1296 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, ~0);
1297 IXGBE_WRITE_FLUSH(&adapter->hw);
1298 if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) {
1299 int i;
1300 for (i = 0; i < adapter->num_msix_vectors; i++)
1301 synchronize_irq(adapter->msix_entries[i].vector);
1302 } else {
1303 synchronize_irq(adapter->pdev->irq);
1304 }
1305}
1306
1307/**
1308 * ixgbe_irq_enable - Enable default interrupt generation settings
1309 * @adapter: board private structure
1310 **/
1311static inline void ixgbe_irq_enable(struct ixgbe_adapter *adapter)
1312{
1313 u32 mask;
1314 mask = IXGBE_EIMS_ENABLE_MASK;
1315 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMS, mask);
1316 IXGBE_WRITE_FLUSH(&adapter->hw);
1317}
1291 1318
1292/** 1319/**
1293 * ixgbe_intr - legacy mode Interrupt Handler 1320 * ixgbe_intr - legacy mode Interrupt Handler
1294 * @irq: interrupt number 1321 * @irq: interrupt number
1295 * @data: pointer to a network interface device structure 1322 * @data: pointer to a network interface device structure
1296 * @pt_regs: CPU registers structure
1297 **/ 1323 **/
1298static irqreturn_t ixgbe_intr(int irq, void *data) 1324static irqreturn_t ixgbe_intr(int irq, void *data)
1299{ 1325{
@@ -1394,35 +1420,6 @@ static void ixgbe_free_irq(struct ixgbe_adapter *adapter)
1394} 1420}
1395 1421
1396/** 1422/**
1397 * ixgbe_irq_disable - Mask off interrupt generation on the NIC
1398 * @adapter: board private structure
1399 **/
1400static inline void ixgbe_irq_disable(struct ixgbe_adapter *adapter)
1401{
1402 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, ~0);
1403 IXGBE_WRITE_FLUSH(&adapter->hw);
1404 if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) {
1405 int i;
1406 for (i = 0; i < adapter->num_msix_vectors; i++)
1407 synchronize_irq(adapter->msix_entries[i].vector);
1408 } else {
1409 synchronize_irq(adapter->pdev->irq);
1410 }
1411}
1412
1413/**
1414 * ixgbe_irq_enable - Enable default interrupt generation settings
1415 * @adapter: board private structure
1416 **/
1417static inline void ixgbe_irq_enable(struct ixgbe_adapter *adapter)
1418{
1419 u32 mask;
1420 mask = IXGBE_EIMS_ENABLE_MASK;
1421 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMS, mask);
1422 IXGBE_WRITE_FLUSH(&adapter->hw);
1423}
1424
1425/**
1426 * ixgbe_configure_msi_and_legacy - Initialize PIN (INTA...) and MSI interrupts 1423 * ixgbe_configure_msi_and_legacy - Initialize PIN (INTA...) and MSI interrupts
1427 * 1424 *
1428 **/ 1425 **/
@@ -2332,7 +2329,7 @@ static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,
2332 * 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
2333 * the register offset the descriptor ring is assigned to. 2330 * the register offset the descriptor ring is assigned to.
2334 **/ 2331 **/
2335static void __devinit ixgbe_cache_ring_register(struct ixgbe_adapter *adapter) 2332static void ixgbe_cache_ring_register(struct ixgbe_adapter *adapter)
2336{ 2333{
2337 int feature_mask = 0, rss_i; 2334 int feature_mask = 0, rss_i;
2338 int i, txr_idx, rxr_idx; 2335 int i, txr_idx, rxr_idx;
@@ -2369,7 +2366,7 @@ static void __devinit ixgbe_cache_ring_register(struct ixgbe_adapter *adapter)
2369 * number of queues at compile-time. The polling_netdev array is 2366 * number of queues at compile-time. The polling_netdev array is
2370 * intended for Multiqueue, but should work fine with a single queue. 2367 * intended for Multiqueue, but should work fine with a single queue.
2371 **/ 2368 **/
2372static int __devinit ixgbe_alloc_queues(struct ixgbe_adapter *adapter) 2369static int ixgbe_alloc_queues(struct ixgbe_adapter *adapter)
2373{ 2370{
2374 int i; 2371 int i;
2375 2372
@@ -2410,8 +2407,7 @@ err_tx_ring_allocation:
2410 * Attempt to configure the interrupts using the best available 2407 * Attempt to configure the interrupts using the best available
2411 * capabilities of the hardware and the kernel. 2408 * capabilities of the hardware and the kernel.
2412 **/ 2409 **/
2413static int __devinit ixgbe_set_interrupt_capability(struct ixgbe_adapter 2410static int ixgbe_set_interrupt_capability(struct ixgbe_adapter *adapter)
2414 *adapter)
2415{ 2411{
2416 int err = 0; 2412 int err = 0;
2417 int vector, v_budget; 2413 int vector, v_budget;
@@ -2503,7 +2499,7 @@ static void ixgbe_reset_interrupt_capability(struct ixgbe_adapter *adapter)
2503 * - Hardware queue count (num_*_queues) 2499 * - Hardware queue count (num_*_queues)
2504 * - defined by miscellaneous hardware support/features (RSS, etc.) 2500 * - defined by miscellaneous hardware support/features (RSS, etc.)
2505 **/ 2501 **/
2506static int __devinit ixgbe_init_interrupt_scheme(struct ixgbe_adapter *adapter) 2502static int ixgbe_init_interrupt_scheme(struct ixgbe_adapter *adapter)
2507{ 2503{
2508 int err; 2504 int err;
2509 2505
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index 81c6cdc3851f..665e70d620fc 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -912,23 +912,23 @@ jme_alloc_and_feed_skb(struct jme_adapter *jme, int idx)
912 skb_put(skb, framesize); 912 skb_put(skb, framesize);
913 skb->protocol = eth_type_trans(skb, jme->dev); 913 skb->protocol = eth_type_trans(skb, jme->dev);
914 914
915 if (jme_rxsum_ok(jme, rxdesc->descwb.flags)) 915 if (jme_rxsum_ok(jme, le16_to_cpu(rxdesc->descwb.flags)))
916 skb->ip_summed = CHECKSUM_UNNECESSARY; 916 skb->ip_summed = CHECKSUM_UNNECESSARY;
917 else 917 else
918 skb->ip_summed = CHECKSUM_NONE; 918 skb->ip_summed = CHECKSUM_NONE;
919 919
920 if (rxdesc->descwb.flags & RXWBFLAG_TAGON) { 920 if (rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_TAGON)) {
921 if (jme->vlgrp) { 921 if (jme->vlgrp) {
922 jme->jme_vlan_rx(skb, jme->vlgrp, 922 jme->jme_vlan_rx(skb, jme->vlgrp,
923 le32_to_cpu(rxdesc->descwb.vlan)); 923 le16_to_cpu(rxdesc->descwb.vlan));
924 NET_STAT(jme).rx_bytes += 4; 924 NET_STAT(jme).rx_bytes += 4;
925 } 925 }
926 } else { 926 } else {
927 jme->jme_rx(skb); 927 jme->jme_rx(skb);
928 } 928 }
929 929
930 if ((le16_to_cpu(rxdesc->descwb.flags) & RXWBFLAG_DEST) == 930 if ((rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_DEST)) ==
931 RXWBFLAG_DEST_MUL) 931 cpu_to_le16(RXWBFLAG_DEST_MUL))
932 ++(NET_STAT(jme).multicast); 932 ++(NET_STAT(jme).multicast);
933 933
934 jme->dev->last_rx = jiffies; 934 jme->dev->last_rx = jiffies;
@@ -961,7 +961,7 @@ jme_process_receive(struct jme_adapter *jme, int limit)
961 rxdesc = rxring->desc; 961 rxdesc = rxring->desc;
962 rxdesc += i; 962 rxdesc += i;
963 963
964 if ((rxdesc->descwb.flags & RXWBFLAG_OWN) || 964 if ((rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_OWN)) ||
965 !(rxdesc->descwb.desccnt & RXWBDCNT_WBCPL)) 965 !(rxdesc->descwb.desccnt & RXWBDCNT_WBCPL))
966 goto out; 966 goto out;
967 967
@@ -1763,10 +1763,9 @@ jme_expand_header(struct jme_adapter *jme, struct sk_buff *skb)
1763} 1763}
1764 1764
1765static int 1765static int
1766jme_tx_tso(struct sk_buff *skb, 1766jme_tx_tso(struct sk_buff *skb, __le16 *mss, u8 *flags)
1767 u16 *mss, u8 *flags)
1768{ 1767{
1769 *mss = skb_shinfo(skb)->gso_size << TXDESC_MSS_SHIFT; 1768 *mss = cpu_to_le16(skb_shinfo(skb)->gso_size << TXDESC_MSS_SHIFT);
1770 if (*mss) { 1769 if (*mss) {
1771 *flags |= TXFLAG_LSEN; 1770 *flags |= TXFLAG_LSEN;
1772 1771
@@ -1826,11 +1825,11 @@ jme_tx_csum(struct jme_adapter *jme, struct sk_buff *skb, u8 *flags)
1826} 1825}
1827 1826
1828static inline void 1827static inline void
1829jme_tx_vlan(struct sk_buff *skb, u16 *vlan, u8 *flags) 1828jme_tx_vlan(struct sk_buff *skb, __le16 *vlan, u8 *flags)
1830{ 1829{
1831 if (vlan_tx_tag_present(skb)) { 1830 if (vlan_tx_tag_present(skb)) {
1832 *flags |= TXFLAG_TAGON; 1831 *flags |= TXFLAG_TAGON;
1833 *vlan = vlan_tx_tag_get(skb); 1832 *vlan = cpu_to_le16(vlan_tx_tag_get(skb));
1834 } 1833 }
1835} 1834}
1836 1835
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/en_netdev.c b/drivers/net/mlx4/en_netdev.c
index a339afbeed38..96e709d6440a 100644
--- a/drivers/net/mlx4/en_netdev.c
+++ b/drivers/net/mlx4/en_netdev.c
@@ -656,10 +656,10 @@ static int mlx4_en_start_port(struct net_device *dev)
656 /* Configure port */ 656 /* Configure port */
657 err = mlx4_SET_PORT_general(mdev->dev, priv->port, 657 err = mlx4_SET_PORT_general(mdev->dev, priv->port,
658 priv->rx_skb_size + ETH_FCS_LEN, 658 priv->rx_skb_size + ETH_FCS_LEN,
659 mdev->profile.tx_pause, 659 priv->prof->tx_pause,
660 mdev->profile.tx_ppp, 660 priv->prof->tx_ppp,
661 mdev->profile.rx_pause, 661 priv->prof->rx_pause,
662 mdev->profile.rx_ppp); 662 priv->prof->rx_ppp);
663 if (err) { 663 if (err) {
664 mlx4_err(mdev, "Failed setting port general configurations" 664 mlx4_err(mdev, "Failed setting port general configurations"
665 " for port %d, with error %d\n", priv->port, err); 665 " for port %d, with error %d\n", priv->port, err);
@@ -706,7 +706,7 @@ tx_err:
706 mlx4_en_release_rss_steer(priv); 706 mlx4_en_release_rss_steer(priv);
707rx_err: 707rx_err:
708 for (i = 0; i < priv->rx_ring_num; i++) 708 for (i = 0; i < priv->rx_ring_num; i++)
709 mlx4_en_deactivate_rx_ring(priv, &priv->rx_ring[rx_index]); 709 mlx4_en_deactivate_rx_ring(priv, &priv->rx_ring[i]);
710cq_err: 710cq_err:
711 while (rx_index--) 711 while (rx_index--)
712 mlx4_en_deactivate_cq(priv, &priv->rx_cq[rx_index]); 712 mlx4_en_deactivate_cq(priv, &priv->rx_cq[rx_index]);
diff --git a/drivers/net/mlx4/en_params.c b/drivers/net/mlx4/en_params.c
index c2e69b1bcd0a..95706ee1c019 100644
--- a/drivers/net/mlx4/en_params.c
+++ b/drivers/net/mlx4/en_params.c
@@ -90,6 +90,7 @@ MLX4_EN_PARM_INT(rx_ring_size2, MLX4_EN_AUTO_CONF, "Rx ring size for port 2");
90int mlx4_en_get_profile(struct mlx4_en_dev *mdev) 90int mlx4_en_get_profile(struct mlx4_en_dev *mdev)
91{ 91{
92 struct mlx4_en_profile *params = &mdev->profile; 92 struct mlx4_en_profile *params = &mdev->profile;
93 int i;
93 94
94 params->rx_moder_cnt = min_t(int, rx_moder_cnt, MLX4_EN_AUTO_CONF); 95 params->rx_moder_cnt = min_t(int, rx_moder_cnt, MLX4_EN_AUTO_CONF);
95 params->rx_moder_time = min_t(int, rx_moder_time, MLX4_EN_AUTO_CONF); 96 params->rx_moder_time = min_t(int, rx_moder_time, MLX4_EN_AUTO_CONF);
@@ -97,11 +98,13 @@ int mlx4_en_get_profile(struct mlx4_en_dev *mdev)
97 params->rss_xor = (rss_xor != 0); 98 params->rss_xor = (rss_xor != 0);
98 params->rss_mask = rss_mask & 0x1f; 99 params->rss_mask = rss_mask & 0x1f;
99 params->num_lro = min_t(int, num_lro , MLX4_EN_MAX_LRO_DESCRIPTORS); 100 params->num_lro = min_t(int, num_lro , MLX4_EN_MAX_LRO_DESCRIPTORS);
100 params->rx_pause = pprx; 101 for (i = 1; i <= MLX4_MAX_PORTS; i++) {
101 params->rx_ppp = pfcrx; 102 params->prof[i].rx_pause = pprx;
102 params->tx_pause = pptx; 103 params->prof[i].rx_ppp = pfcrx;
103 params->tx_ppp = pfctx; 104 params->prof[i].tx_pause = pptx;
104 if (params->rx_ppp || params->tx_ppp) { 105 params->prof[i].tx_ppp = pfctx;
106 }
107 if (pfcrx || pfctx) {
105 params->prof[1].tx_ring_num = MLX4_EN_TX_RING_NUM; 108 params->prof[1].tx_ring_num = MLX4_EN_TX_RING_NUM;
106 params->prof[2].tx_ring_num = MLX4_EN_TX_RING_NUM; 109 params->prof[2].tx_ring_num = MLX4_EN_TX_RING_NUM;
107 } else { 110 } else {
@@ -407,14 +410,14 @@ static int mlx4_en_set_pauseparam(struct net_device *dev,
407 struct mlx4_en_dev *mdev = priv->mdev; 410 struct mlx4_en_dev *mdev = priv->mdev;
408 int err; 411 int err;
409 412
410 mdev->profile.tx_pause = pause->tx_pause != 0; 413 priv->prof->tx_pause = pause->tx_pause != 0;
411 mdev->profile.rx_pause = pause->rx_pause != 0; 414 priv->prof->rx_pause = pause->rx_pause != 0;
412 err = mlx4_SET_PORT_general(mdev->dev, priv->port, 415 err = mlx4_SET_PORT_general(mdev->dev, priv->port,
413 priv->rx_skb_size + ETH_FCS_LEN, 416 priv->rx_skb_size + ETH_FCS_LEN,
414 mdev->profile.tx_pause, 417 priv->prof->tx_pause,
415 mdev->profile.tx_ppp, 418 priv->prof->tx_ppp,
416 mdev->profile.rx_pause, 419 priv->prof->rx_pause,
417 mdev->profile.rx_ppp); 420 priv->prof->rx_ppp);
418 if (err) 421 if (err)
419 mlx4_err(mdev, "Failed setting pause params to\n"); 422 mlx4_err(mdev, "Failed setting pause params to\n");
420 423
@@ -425,10 +428,9 @@ static void mlx4_en_get_pauseparam(struct net_device *dev,
425 struct ethtool_pauseparam *pause) 428 struct ethtool_pauseparam *pause)
426{ 429{
427 struct mlx4_en_priv *priv = netdev_priv(dev); 430 struct mlx4_en_priv *priv = netdev_priv(dev);
428 struct mlx4_en_dev *mdev = priv->mdev;
429 431
430 pause->tx_pause = mdev->profile.tx_pause; 432 pause->tx_pause = priv->prof->tx_pause;
431 pause->rx_pause = mdev->profile.rx_pause; 433 pause->rx_pause = priv->prof->rx_pause;
432} 434}
433 435
434static void mlx4_en_get_ringparam(struct net_device *dev, 436static void mlx4_en_get_ringparam(struct net_device *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 fa431fad0eec..34c909deaff3 100644
--- a/drivers/net/mlx4/mlx4.h
+++ b/drivers/net/mlx4/mlx4.h
@@ -87,6 +87,9 @@ enum {
87 87
88#ifdef CONFIG_MLX4_DEBUG 88#ifdef CONFIG_MLX4_DEBUG
89extern int mlx4_debug_level; 89extern int mlx4_debug_level;
90#else /* CONFIG_MLX4_DEBUG */
91#define mlx4_debug_level (0)
92#endif /* CONFIG_MLX4_DEBUG */
90 93
91#define mlx4_dbg(mdev, format, arg...) \ 94#define mlx4_dbg(mdev, format, arg...) \
92 do { \ 95 do { \
@@ -94,12 +97,6 @@ extern int mlx4_debug_level;
94 dev_printk(KERN_DEBUG, &mdev->pdev->dev, format, ## arg); \ 97 dev_printk(KERN_DEBUG, &mdev->pdev->dev, format, ## arg); \
95 } while (0) 98 } while (0)
96 99
97#else /* CONFIG_MLX4_DEBUG */
98
99#define mlx4_dbg(mdev, format, arg...) do { (void) mdev; } while (0)
100
101#endif /* CONFIG_MLX4_DEBUG */
102
103#define mlx4_err(mdev, format, arg...) \ 100#define mlx4_err(mdev, format, arg...) \
104 dev_err(&mdev->pdev->dev, format, ## arg) 101 dev_err(&mdev->pdev->dev, format, ## arg)
105#define mlx4_info(mdev, format, arg...) \ 102#define mlx4_info(mdev, format, arg...) \
@@ -388,5 +385,6 @@ void mlx4_init_mac_table(struct mlx4_dev *dev, struct mlx4_mac_table *table);
388void 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);
389 386
390int 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);
391 389
392#endif /* MLX4_H */ 390#endif /* MLX4_H */
diff --git a/drivers/net/mlx4/mlx4_en.h b/drivers/net/mlx4/mlx4_en.h
index 11fb17c6e97b..98ddc0811f93 100644
--- a/drivers/net/mlx4/mlx4_en.h
+++ b/drivers/net/mlx4/mlx4_en.h
@@ -322,6 +322,10 @@ struct mlx4_en_port_profile {
322 u32 rx_ring_num; 322 u32 rx_ring_num;
323 u32 tx_ring_size; 323 u32 tx_ring_size;
324 u32 rx_ring_size; 324 u32 rx_ring_size;
325 u8 rx_pause;
326 u8 rx_ppp;
327 u8 tx_pause;
328 u8 tx_ppp;
325}; 329};
326 330
327struct mlx4_en_profile { 331struct mlx4_en_profile {
@@ -333,10 +337,6 @@ struct mlx4_en_profile {
333 int rx_moder_cnt; 337 int rx_moder_cnt;
334 int rx_moder_time; 338 int rx_moder_time;
335 int auto_moder; 339 int auto_moder;
336 u8 rx_pause;
337 u8 rx_ppp;
338 u8 tx_pause;
339 u8 tx_ppp;
340 u8 no_reset; 340 u8 no_reset;
341 struct mlx4_en_port_profile prof[MLX4_MAX_PORTS + 1]; 341 struct mlx4_en_port_profile prof[MLX4_MAX_PORTS + 1];
342}; 342};
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/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index a9c8c08044b1..e513f76f2a9f 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -899,7 +899,8 @@ static int txq_reclaim(struct tx_queue *txq, int budget, int force)
899 if (skb != NULL) { 899 if (skb != NULL) {
900 if (skb_queue_len(&mp->rx_recycle) < 900 if (skb_queue_len(&mp->rx_recycle) <
901 mp->default_rx_ring_size && 901 mp->default_rx_ring_size &&
902 skb_recycle_check(skb, mp->skb_size)) 902 skb_recycle_check(skb, mp->skb_size +
903 dma_get_cache_alignment() - 1))
903 __skb_queue_head(&mp->rx_recycle, skb); 904 __skb_queue_head(&mp->rx_recycle, skb);
904 else 905 else
905 dev_kfree_skb(skb); 906 dev_kfree_skb(skb);
@@ -1066,9 +1067,12 @@ static int smi_wait_ready(struct mv643xx_eth_shared_private *msp)
1066 return 0; 1067 return 0;
1067 } 1068 }
1068 1069
1069 if (!wait_event_timeout(msp->smi_busy_wait, smi_is_done(msp), 1070 if (!smi_is_done(msp)) {
1070 msecs_to_jiffies(100))) 1071 wait_event_timeout(msp->smi_busy_wait, smi_is_done(msp),
1071 return -ETIMEDOUT; 1072 msecs_to_jiffies(100));
1073 if (!smi_is_done(msp))
1074 return -ETIMEDOUT;
1075 }
1072 1076
1073 return 0; 1077 return 0;
1074} 1078}
@@ -2432,8 +2436,8 @@ static int mv643xx_eth_shared_remove(struct platform_device *pdev)
2432 struct mv643xx_eth_shared_platform_data *pd = pdev->dev.platform_data; 2436 struct mv643xx_eth_shared_platform_data *pd = pdev->dev.platform_data;
2433 2437
2434 if (pd == NULL || pd->shared_smi == NULL) { 2438 if (pd == NULL || pd->shared_smi == NULL) {
2435 mdiobus_free(msp->smi_bus);
2436 mdiobus_unregister(msp->smi_bus); 2439 mdiobus_unregister(msp->smi_bus);
2440 mdiobus_free(msp->smi_bus);
2437 } 2441 }
2438 if (msp->err_interrupt != NO_IRQ) 2442 if (msp->err_interrupt != NO_IRQ)
2439 free_irq(msp->err_interrupt, msp); 2443 free_irq(msp->err_interrupt, msp);
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index a5f428bcc0eb..b37867097308 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -75,7 +75,7 @@
75#include "myri10ge_mcp.h" 75#include "myri10ge_mcp.h"
76#include "myri10ge_mcp_gen_header.h" 76#include "myri10ge_mcp_gen_header.h"
77 77
78#define MYRI10GE_VERSION_STR "1.4.3-1.375" 78#define MYRI10GE_VERSION_STR "1.4.3-1.378"
79 79
80MODULE_DESCRIPTION("Myricom 10G driver (10GbE)"); 80MODULE_DESCRIPTION("Myricom 10G driver (10GbE)");
81MODULE_AUTHOR("Maintainer: help@myri.com"); 81MODULE_AUTHOR("Maintainer: help@myri.com");
@@ -1393,6 +1393,7 @@ myri10ge_tx_done(struct myri10ge_slice_state *ss, int mcp_index)
1393 if (tx->req == tx->done) { 1393 if (tx->req == tx->done) {
1394 tx->queue_active = 0; 1394 tx->queue_active = 0;
1395 put_be32(htonl(1), tx->send_stop); 1395 put_be32(htonl(1), tx->send_stop);
1396 mb();
1396 mmiowb(); 1397 mmiowb();
1397 } 1398 }
1398 __netif_tx_unlock(dev_queue); 1399 __netif_tx_unlock(dev_queue);
@@ -2865,6 +2866,7 @@ again:
2865 if ((mgp->dev->real_num_tx_queues > 1) && tx->queue_active == 0) { 2866 if ((mgp->dev->real_num_tx_queues > 1) && tx->queue_active == 0) {
2866 tx->queue_active = 1; 2867 tx->queue_active = 1;
2867 put_be32(htonl(1), tx->send_go); 2868 put_be32(htonl(1), tx->send_go);
2869 mb();
2868 mmiowb(); 2870 mmiowb();
2869 } 2871 }
2870 tx->pkt_start++; 2872 tx->pkt_start++;
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/niu.c b/drivers/net/niu.c
index ebc812702903..1b6f548c4411 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -33,8 +33,8 @@
33 33
34#define DRV_MODULE_NAME "niu" 34#define DRV_MODULE_NAME "niu"
35#define PFX DRV_MODULE_NAME ": " 35#define PFX DRV_MODULE_NAME ": "
36#define DRV_MODULE_VERSION "0.9" 36#define DRV_MODULE_VERSION "1.0"
37#define DRV_MODULE_RELDATE "May 4, 2008" 37#define DRV_MODULE_RELDATE "Nov 14, 2008"
38 38
39static char version[] __devinitdata = 39static char version[] __devinitdata =
40 DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; 40 DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
@@ -51,8 +51,7 @@ MODULE_VERSION(DRV_MODULE_VERSION);
51#ifndef readq 51#ifndef readq
52static u64 readq(void __iomem *reg) 52static u64 readq(void __iomem *reg)
53{ 53{
54 return (((u64)readl(reg + 0x4UL) << 32) | 54 return ((u64) readl(reg)) | (((u64) readl(reg + 4UL)) << 32);
55 (u64)readl(reg));
56} 55}
57 56
58static void writeq(u64 val, void __iomem *reg) 57static void writeq(u64 val, void __iomem *reg)
@@ -407,7 +406,7 @@ static int esr2_set_rx_cfg(struct niu *np, unsigned long channel, u32 val)
407} 406}
408 407
409/* Mode is always 10G fiber. */ 408/* Mode is always 10G fiber. */
410static int serdes_init_niu(struct niu *np) 409static int serdes_init_niu_10g_fiber(struct niu *np)
411{ 410{
412 struct niu_link_config *lp = &np->link_config; 411 struct niu_link_config *lp = &np->link_config;
413 u32 tx_cfg, rx_cfg; 412 u32 tx_cfg, rx_cfg;
@@ -444,6 +443,223 @@ static int serdes_init_niu(struct niu *np)
444 return 0; 443 return 0;
445} 444}
446 445
446static int serdes_init_niu_1g_serdes(struct niu *np)
447{
448 struct niu_link_config *lp = &np->link_config;
449 u16 pll_cfg, pll_sts;
450 int max_retry = 100;
451 u64 sig, mask, val;
452 u32 tx_cfg, rx_cfg;
453 unsigned long i;
454 int err;
455
456 tx_cfg = (PLL_TX_CFG_ENTX | PLL_TX_CFG_SWING_1375MV |
457 PLL_TX_CFG_RATE_HALF);
458 rx_cfg = (PLL_RX_CFG_ENRX | PLL_RX_CFG_TERM_0P8VDDT |
459 PLL_RX_CFG_ALIGN_ENA | PLL_RX_CFG_LOS_LTHRESH |
460 PLL_RX_CFG_RATE_HALF);
461
462 if (np->port == 0)
463 rx_cfg |= PLL_RX_CFG_EQ_LP_ADAPTIVE;
464
465 if (lp->loopback_mode == LOOPBACK_PHY) {
466 u16 test_cfg = PLL_TEST_CFG_LOOPBACK_CML_DIS;
467
468 mdio_write(np, np->port, NIU_ESR2_DEV_ADDR,
469 ESR2_TI_PLL_TEST_CFG_L, test_cfg);
470
471 tx_cfg |= PLL_TX_CFG_ENTEST;
472 rx_cfg |= PLL_RX_CFG_ENTEST;
473 }
474
475 /* Initialize PLL for 1G */
476 pll_cfg = (PLL_CFG_ENPLL | PLL_CFG_MPY_8X);
477
478 err = mdio_write(np, np->port, NIU_ESR2_DEV_ADDR,
479 ESR2_TI_PLL_CFG_L, pll_cfg);
480 if (err) {
481 dev_err(np->device, PFX "NIU Port %d "
482 "serdes_init_niu_1g_serdes: "
483 "mdio write to ESR2_TI_PLL_CFG_L failed", np->port);
484 return err;
485 }
486
487 pll_sts = PLL_CFG_ENPLL;
488
489 err = mdio_write(np, np->port, NIU_ESR2_DEV_ADDR,
490 ESR2_TI_PLL_STS_L, pll_sts);
491 if (err) {
492 dev_err(np->device, PFX "NIU Port %d "
493 "serdes_init_niu_1g_serdes: "
494 "mdio write to ESR2_TI_PLL_STS_L failed", np->port);
495 return err;
496 }
497
498 udelay(200);
499
500 /* Initialize all 4 lanes of the SERDES. */
501 for (i = 0; i < 4; i++) {
502 err = esr2_set_tx_cfg(np, i, tx_cfg);
503 if (err)
504 return err;
505 }
506
507 for (i = 0; i < 4; i++) {
508 err = esr2_set_rx_cfg(np, i, rx_cfg);
509 if (err)
510 return err;
511 }
512
513 switch (np->port) {
514 case 0:
515 val = (ESR_INT_SRDY0_P0 | ESR_INT_DET0_P0);
516 mask = val;
517 break;
518
519 case 1:
520 val = (ESR_INT_SRDY0_P1 | ESR_INT_DET0_P1);
521 mask = val;
522 break;
523
524 default:
525 return -EINVAL;
526 }
527
528 while (max_retry--) {
529 sig = nr64(ESR_INT_SIGNALS);
530 if ((sig & mask) == val)
531 break;
532
533 mdelay(500);
534 }
535
536 if ((sig & mask) != val) {
537 dev_err(np->device, PFX "Port %u signal bits [%08x] are not "
538 "[%08x]\n", np->port, (int) (sig & mask), (int) val);
539 return -ENODEV;
540 }
541
542 return 0;
543}
544
545static int serdes_init_niu_10g_serdes(struct niu *np)
546{
547 struct niu_link_config *lp = &np->link_config;
548 u32 tx_cfg, rx_cfg, pll_cfg, pll_sts;
549 int max_retry = 100;
550 u64 sig, mask, val;
551 unsigned long i;
552 int err;
553
554 tx_cfg = (PLL_TX_CFG_ENTX | PLL_TX_CFG_SWING_1375MV);
555 rx_cfg = (PLL_RX_CFG_ENRX | PLL_RX_CFG_TERM_0P8VDDT |
556 PLL_RX_CFG_ALIGN_ENA | PLL_RX_CFG_LOS_LTHRESH |
557 PLL_RX_CFG_EQ_LP_ADAPTIVE);
558
559 if (lp->loopback_mode == LOOPBACK_PHY) {
560 u16 test_cfg = PLL_TEST_CFG_LOOPBACK_CML_DIS;
561
562 mdio_write(np, np->port, NIU_ESR2_DEV_ADDR,
563 ESR2_TI_PLL_TEST_CFG_L, test_cfg);
564
565 tx_cfg |= PLL_TX_CFG_ENTEST;
566 rx_cfg |= PLL_RX_CFG_ENTEST;
567 }
568
569 /* Initialize PLL for 10G */
570 pll_cfg = (PLL_CFG_ENPLL | PLL_CFG_MPY_10X);
571
572 err = mdio_write(np, np->port, NIU_ESR2_DEV_ADDR,
573 ESR2_TI_PLL_CFG_L, pll_cfg & 0xffff);
574 if (err) {
575 dev_err(np->device, PFX "NIU Port %d "
576 "serdes_init_niu_10g_serdes: "
577 "mdio write to ESR2_TI_PLL_CFG_L failed", np->port);
578 return err;
579 }
580
581 pll_sts = PLL_CFG_ENPLL;
582
583 err = mdio_write(np, np->port, NIU_ESR2_DEV_ADDR,
584 ESR2_TI_PLL_STS_L, pll_sts & 0xffff);
585 if (err) {
586 dev_err(np->device, PFX "NIU Port %d "
587 "serdes_init_niu_10g_serdes: "
588 "mdio write to ESR2_TI_PLL_STS_L failed", np->port);
589 return err;
590 }
591
592 udelay(200);
593
594 /* Initialize all 4 lanes of the SERDES. */
595 for (i = 0; i < 4; i++) {
596 err = esr2_set_tx_cfg(np, i, tx_cfg);
597 if (err)
598 return err;
599 }
600
601 for (i = 0; i < 4; i++) {
602 err = esr2_set_rx_cfg(np, i, rx_cfg);
603 if (err)
604 return err;
605 }
606
607 /* check if serdes is ready */
608
609 switch (np->port) {
610 case 0:
611 mask = ESR_INT_SIGNALS_P0_BITS;
612 val = (ESR_INT_SRDY0_P0 |
613 ESR_INT_DET0_P0 |
614 ESR_INT_XSRDY_P0 |
615 ESR_INT_XDP_P0_CH3 |
616 ESR_INT_XDP_P0_CH2 |
617 ESR_INT_XDP_P0_CH1 |
618 ESR_INT_XDP_P0_CH0);
619 break;
620
621 case 1:
622 mask = ESR_INT_SIGNALS_P1_BITS;
623 val = (ESR_INT_SRDY0_P1 |
624 ESR_INT_DET0_P1 |
625 ESR_INT_XSRDY_P1 |
626 ESR_INT_XDP_P1_CH3 |
627 ESR_INT_XDP_P1_CH2 |
628 ESR_INT_XDP_P1_CH1 |
629 ESR_INT_XDP_P1_CH0);
630 break;
631
632 default:
633 return -EINVAL;
634 }
635
636 while (max_retry--) {
637 sig = nr64(ESR_INT_SIGNALS);
638 if ((sig & mask) == val)
639 break;
640
641 mdelay(500);
642 }
643
644 if ((sig & mask) != val) {
645 pr_info(PFX "NIU Port %u signal bits [%08x] are not "
646 "[%08x] for 10G...trying 1G\n",
647 np->port, (int) (sig & mask), (int) val);
648
649 /* 10G failed, try initializing at 1G */
650 err = serdes_init_niu_1g_serdes(np);
651 if (!err) {
652 np->flags &= ~NIU_FLAGS_10G;
653 np->mac_xcvr = MAC_XCVR_PCS;
654 } else {
655 dev_err(np->device, PFX "Port %u 10G/1G SERDES "
656 "Link Failed \n", np->port);
657 return -ENODEV;
658 }
659 }
660 return 0;
661}
662
447static int esr_read_rxtx_ctrl(struct niu *np, unsigned long chan, u32 *val) 663static int esr_read_rxtx_ctrl(struct niu *np, unsigned long chan, u32 *val)
448{ 664{
449 int err; 665 int err;
@@ -1955,13 +2171,23 @@ static const struct niu_phy_ops phy_ops_10g_serdes = {
1955 .link_status = link_status_10g_serdes, 2171 .link_status = link_status_10g_serdes,
1956}; 2172};
1957 2173
2174static const struct niu_phy_ops phy_ops_10g_serdes_niu = {
2175 .serdes_init = serdes_init_niu_10g_serdes,
2176 .link_status = link_status_10g_serdes,
2177};
2178
2179static const struct niu_phy_ops phy_ops_1g_serdes_niu = {
2180 .serdes_init = serdes_init_niu_1g_serdes,
2181 .link_status = link_status_1g_serdes,
2182};
2183
1958static const struct niu_phy_ops phy_ops_1g_rgmii = { 2184static const struct niu_phy_ops phy_ops_1g_rgmii = {
1959 .xcvr_init = xcvr_init_1g_rgmii, 2185 .xcvr_init = xcvr_init_1g_rgmii,
1960 .link_status = link_status_1g_rgmii, 2186 .link_status = link_status_1g_rgmii,
1961}; 2187};
1962 2188
1963static const struct niu_phy_ops phy_ops_10g_fiber_niu = { 2189static const struct niu_phy_ops phy_ops_10g_fiber_niu = {
1964 .serdes_init = serdes_init_niu, 2190 .serdes_init = serdes_init_niu_10g_fiber,
1965 .xcvr_init = xcvr_init_10g, 2191 .xcvr_init = xcvr_init_10g,
1966 .link_status = link_status_10g, 2192 .link_status = link_status_10g,
1967}; 2193};
@@ -1999,11 +2225,21 @@ struct niu_phy_template {
1999 u32 phy_addr_base; 2225 u32 phy_addr_base;
2000}; 2226};
2001 2227
2002static const struct niu_phy_template phy_template_niu = { 2228static const struct niu_phy_template phy_template_niu_10g_fiber = {
2003 .ops = &phy_ops_10g_fiber_niu, 2229 .ops = &phy_ops_10g_fiber_niu,
2004 .phy_addr_base = 16, 2230 .phy_addr_base = 16,
2005}; 2231};
2006 2232
2233static const struct niu_phy_template phy_template_niu_10g_serdes = {
2234 .ops = &phy_ops_10g_serdes_niu,
2235 .phy_addr_base = 0,
2236};
2237
2238static const struct niu_phy_template phy_template_niu_1g_serdes = {
2239 .ops = &phy_ops_1g_serdes_niu,
2240 .phy_addr_base = 0,
2241};
2242
2007static const struct niu_phy_template phy_template_10g_fiber = { 2243static const struct niu_phy_template phy_template_10g_fiber = {
2008 .ops = &phy_ops_10g_fiber, 2244 .ops = &phy_ops_10g_fiber,
2009 .phy_addr_base = 8, 2245 .phy_addr_base = 8,
@@ -2183,8 +2419,25 @@ static int niu_determine_phy_disposition(struct niu *np)
2183 u32 phy_addr_off = 0; 2419 u32 phy_addr_off = 0;
2184 2420
2185 if (plat_type == PLAT_TYPE_NIU) { 2421 if (plat_type == PLAT_TYPE_NIU) {
2186 tp = &phy_template_niu; 2422 switch (np->flags &
2187 phy_addr_off += np->port; 2423 (NIU_FLAGS_10G |
2424 NIU_FLAGS_FIBER |
2425 NIU_FLAGS_XCVR_SERDES)) {
2426 case NIU_FLAGS_10G | NIU_FLAGS_XCVR_SERDES:
2427 /* 10G Serdes */
2428 tp = &phy_template_niu_10g_serdes;
2429 break;
2430 case NIU_FLAGS_XCVR_SERDES:
2431 /* 1G Serdes */
2432 tp = &phy_template_niu_1g_serdes;
2433 break;
2434 case NIU_FLAGS_10G | NIU_FLAGS_FIBER:
2435 /* 10G Fiber */
2436 default:
2437 tp = &phy_template_niu_10g_fiber;
2438 phy_addr_off += np->port;
2439 break;
2440 }
2188 } else { 2441 } else {
2189 switch (np->flags & 2442 switch (np->flags &
2190 (NIU_FLAGS_10G | 2443 (NIU_FLAGS_10G |
@@ -7214,6 +7467,12 @@ static int __devinit niu_phy_type_prop_decode(struct niu *np,
7214 np->flags |= NIU_FLAGS_10G; 7467 np->flags |= NIU_FLAGS_10G;
7215 np->flags &= ~NIU_FLAGS_FIBER; 7468 np->flags &= ~NIU_FLAGS_FIBER;
7216 np->mac_xcvr = MAC_XCVR_XPCS; 7469 np->mac_xcvr = MAC_XCVR_XPCS;
7470 } else if (!strcmp(phy_prop, "xgsd") || !strcmp(phy_prop, "gsd")) {
7471 /* 10G Serdes or 1G Serdes, default to 10G */
7472 np->flags |= NIU_FLAGS_10G;
7473 np->flags &= ~NIU_FLAGS_FIBER;
7474 np->flags |= NIU_FLAGS_XCVR_SERDES;
7475 np->mac_xcvr = MAC_XCVR_XPCS;
7217 } else { 7476 } else {
7218 return -EINVAL; 7477 return -EINVAL;
7219 } 7478 }
@@ -7742,6 +8001,8 @@ static int __devinit walk_phys(struct niu *np, struct niu_parent *parent)
7742 u32 val; 8001 u32 val;
7743 int err; 8002 int err;
7744 8003
8004 num_10g = num_1g = 0;
8005
7745 if (!strcmp(np->vpd.model, NIU_ALONSO_MDL_STR) || 8006 if (!strcmp(np->vpd.model, NIU_ALONSO_MDL_STR) ||
7746 !strcmp(np->vpd.model, NIU_KIMI_MDL_STR)) { 8007 !strcmp(np->vpd.model, NIU_KIMI_MDL_STR)) {
7747 num_10g = 0; 8008 num_10g = 0;
@@ -7758,6 +8019,16 @@ static int __devinit walk_phys(struct niu *np, struct niu_parent *parent)
7758 parent->num_ports = 2; 8019 parent->num_ports = 2;
7759 val = (phy_encode(PORT_TYPE_10G, 0) | 8020 val = (phy_encode(PORT_TYPE_10G, 0) |
7760 phy_encode(PORT_TYPE_10G, 1)); 8021 phy_encode(PORT_TYPE_10G, 1));
8022 } else if ((np->flags & NIU_FLAGS_XCVR_SERDES) &&
8023 (parent->plat_type == PLAT_TYPE_NIU)) {
8024 /* this is the Monza case */
8025 if (np->flags & NIU_FLAGS_10G) {
8026 val = (phy_encode(PORT_TYPE_10G, 0) |
8027 phy_encode(PORT_TYPE_10G, 1));
8028 } else {
8029 val = (phy_encode(PORT_TYPE_1G, 0) |
8030 phy_encode(PORT_TYPE_1G, 1));
8031 }
7761 } else { 8032 } else {
7762 err = fill_phy_probe_info(np, parent, info); 8033 err = fill_phy_probe_info(np, parent, info);
7763 if (err) 8034 if (err)
@@ -8657,7 +8928,9 @@ static void __devinit niu_device_announce(struct niu *np)
8657 dev->name, 8928 dev->name,
8658 (np->flags & NIU_FLAGS_XMAC ? "XMAC" : "BMAC"), 8929 (np->flags & NIU_FLAGS_XMAC ? "XMAC" : "BMAC"),
8659 (np->flags & NIU_FLAGS_10G ? "10G" : "1G"), 8930 (np->flags & NIU_FLAGS_10G ? "10G" : "1G"),
8660 (np->flags & NIU_FLAGS_FIBER ? "FIBER" : "COPPER"), 8931 (np->flags & NIU_FLAGS_FIBER ? "FIBER" :
8932 (np->flags & NIU_FLAGS_XCVR_SERDES ? "SERDES" :
8933 "COPPER")),
8661 (np->mac_xcvr == MAC_XCVR_MII ? "MII" : 8934 (np->mac_xcvr == MAC_XCVR_MII ? "MII" :
8662 (np->mac_xcvr == MAC_XCVR_PCS ? "PCS" : "XPCS")), 8935 (np->mac_xcvr == MAC_XCVR_PCS ? "PCS" : "XPCS")),
8663 np->vpd.phy_type); 8936 np->vpd.phy_type);
@@ -8667,7 +8940,6 @@ static void __devinit niu_device_announce(struct niu *np)
8667static int __devinit niu_pci_init_one(struct pci_dev *pdev, 8940static int __devinit niu_pci_init_one(struct pci_dev *pdev,
8668 const struct pci_device_id *ent) 8941 const struct pci_device_id *ent)
8669{ 8942{
8670 unsigned long niureg_base, niureg_len;
8671 union niu_parent_id parent_id; 8943 union niu_parent_id parent_id;
8672 struct net_device *dev; 8944 struct net_device *dev;
8673 struct niu *np; 8945 struct niu *np;
@@ -8758,10 +9030,7 @@ static int __devinit niu_pci_init_one(struct pci_dev *pdev,
8758 9030
8759 dev->features |= (NETIF_F_SG | NETIF_F_HW_CSUM); 9031 dev->features |= (NETIF_F_SG | NETIF_F_HW_CSUM);
8760 9032
8761 niureg_base = pci_resource_start(pdev, 0); 9033 np->regs = pci_ioremap_bar(pdev, 0);
8762 niureg_len = pci_resource_len(pdev, 0);
8763
8764 np->regs = ioremap_nocache(niureg_base, niureg_len);
8765 if (!np->regs) { 9034 if (!np->regs) {
8766 dev_err(&pdev->dev, PFX "Cannot map device registers, " 9035 dev_err(&pdev->dev, PFX "Cannot map device registers, "
8767 "aborting.\n"); 9036 "aborting.\n");
diff --git a/drivers/net/niu.h b/drivers/net/niu.h
index c6fa883daa22..180ca8ae93de 100644
--- a/drivers/net/niu.h
+++ b/drivers/net/niu.h
@@ -1048,6 +1048,13 @@
1048#define PLL_CFG_LD_SHIFT 8 1048#define PLL_CFG_LD_SHIFT 8
1049#define PLL_CFG_MPY 0x0000001e 1049#define PLL_CFG_MPY 0x0000001e
1050#define PLL_CFG_MPY_SHIFT 1 1050#define PLL_CFG_MPY_SHIFT 1
1051#define PLL_CFG_MPY_4X 0x0
1052#define PLL_CFG_MPY_5X 0x00000002
1053#define PLL_CFG_MPY_6X 0x00000004
1054#define PLL_CFG_MPY_8X 0x00000008
1055#define PLL_CFG_MPY_10X 0x0000000a
1056#define PLL_CFG_MPY_12X 0x0000000c
1057#define PLL_CFG_MPY_12P5X 0x0000000e
1051#define PLL_CFG_ENPLL 0x00000001 1058#define PLL_CFG_ENPLL 0x00000001
1052 1059
1053#define ESR2_TI_PLL_STS_L (ESR2_BASE + 0x002) 1060#define ESR2_TI_PLL_STS_L (ESR2_BASE + 0x002)
@@ -1093,6 +1100,9 @@
1093#define PLL_TX_CFG_INVPAIR 0x00000080 1100#define PLL_TX_CFG_INVPAIR 0x00000080
1094#define PLL_TX_CFG_RATE 0x00000060 1101#define PLL_TX_CFG_RATE 0x00000060
1095#define PLL_TX_CFG_RATE_SHIFT 5 1102#define PLL_TX_CFG_RATE_SHIFT 5
1103#define PLL_TX_CFG_RATE_FULL 0x0
1104#define PLL_TX_CFG_RATE_HALF 0x20
1105#define PLL_TX_CFG_RATE_QUAD 0x40
1096#define PLL_TX_CFG_BUSWIDTH 0x0000001c 1106#define PLL_TX_CFG_BUSWIDTH 0x0000001c
1097#define PLL_TX_CFG_BUSWIDTH_SHIFT 2 1107#define PLL_TX_CFG_BUSWIDTH_SHIFT 2
1098#define PLL_TX_CFG_ENTEST 0x00000002 1108#define PLL_TX_CFG_ENTEST 0x00000002
@@ -1132,6 +1142,9 @@
1132#define PLL_RX_CFG_INVPAIR 0x00000080 1142#define PLL_RX_CFG_INVPAIR 0x00000080
1133#define PLL_RX_CFG_RATE 0x00000060 1143#define PLL_RX_CFG_RATE 0x00000060
1134#define PLL_RX_CFG_RATE_SHIFT 5 1144#define PLL_RX_CFG_RATE_SHIFT 5
1145#define PLL_RX_CFG_RATE_FULL 0x0
1146#define PLL_RX_CFG_RATE_HALF 0x20
1147#define PLL_RX_CFG_RATE_QUAD 0x40
1135#define PLL_RX_CFG_BUSWIDTH 0x0000001c 1148#define PLL_RX_CFG_BUSWIDTH 0x0000001c
1136#define PLL_RX_CFG_BUSWIDTH_SHIFT 2 1149#define PLL_RX_CFG_BUSWIDTH_SHIFT 2
1137#define PLL_RX_CFG_ENTEST 0x00000002 1150#define PLL_RX_CFG_ENTEST 0x00000002
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/marvell.c b/drivers/net/phy/marvell.c
index 4aa547947040..eb6411c4694f 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -227,6 +227,59 @@ static int m88e1111_config_init(struct phy_device *phydev)
227 return 0; 227 return 0;
228} 228}
229 229
230static int m88e1118_config_aneg(struct phy_device *phydev)
231{
232 int err;
233
234 err = phy_write(phydev, MII_BMCR, BMCR_RESET);
235 if (err < 0)
236 return err;
237
238 err = phy_write(phydev, MII_M1011_PHY_SCR,
239 MII_M1011_PHY_SCR_AUTO_CROSS);
240 if (err < 0)
241 return err;
242
243 err = genphy_config_aneg(phydev);
244 return 0;
245}
246
247static int m88e1118_config_init(struct phy_device *phydev)
248{
249 int err;
250
251 /* Change address */
252 err = phy_write(phydev, 0x16, 0x0002);
253 if (err < 0)
254 return err;
255
256 /* Enable 1000 Mbit */
257 err = phy_write(phydev, 0x15, 0x1070);
258 if (err < 0)
259 return err;
260
261 /* Change address */
262 err = phy_write(phydev, 0x16, 0x0003);
263 if (err < 0)
264 return err;
265
266 /* Adjust LED Control */
267 err = phy_write(phydev, 0x10, 0x021e);
268 if (err < 0)
269 return err;
270
271 /* Reset address */
272 err = phy_write(phydev, 0x16, 0x0);
273 if (err < 0)
274 return err;
275
276 err = phy_write(phydev, MII_BMCR, BMCR_RESET);
277 if (err < 0)
278 return err;
279
280 return 0;
281}
282
230static int m88e1145_config_init(struct phy_device *phydev) 283static int m88e1145_config_init(struct phy_device *phydev)
231{ 284{
232 int err; 285 int err;
@@ -416,6 +469,19 @@ static struct phy_driver marvell_drivers[] = {
416 .driver = { .owner = THIS_MODULE }, 469 .driver = { .owner = THIS_MODULE },
417 }, 470 },
418 { 471 {
472 .phy_id = 0x01410e10,
473 .phy_id_mask = 0xfffffff0,
474 .name = "Marvell 88E1118",
475 .features = PHY_GBIT_FEATURES,
476 .flags = PHY_HAS_INTERRUPT,
477 .config_init = &m88e1118_config_init,
478 .config_aneg = &m88e1118_config_aneg,
479 .read_status = &genphy_read_status,
480 .ack_interrupt = &marvell_ack_interrupt,
481 .config_intr = &marvell_config_intr,
482 .driver = {.owner = THIS_MODULE,},
483 },
484 {
419 .phy_id = 0x01410cd0, 485 .phy_id = 0x01410cd0,
420 .phy_id_mask = 0xfffffff0, 486 .phy_id_mask = 0xfffffff0,
421 .name = "Marvell 88E1145", 487 .name = "Marvell 88E1145",
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index d0ed1ef284a8..536bda1f428b 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -136,7 +136,7 @@ void mdiobus_unregister(struct mii_bus *bus)
136 BUG_ON(bus->state != MDIOBUS_REGISTERED); 136 BUG_ON(bus->state != MDIOBUS_REGISTERED);
137 bus->state = MDIOBUS_UNREGISTERED; 137 bus->state = MDIOBUS_UNREGISTERED;
138 138
139 device_unregister(&bus->dev); 139 device_del(&bus->dev);
140 for (i = 0; i < PHY_MAX_ADDR; i++) { 140 for (i = 0; i < PHY_MAX_ADDR; i++) {
141 if (bus->phy_map[i]) 141 if (bus->phy_map[i])
142 device_unregister(&bus->phy_map[i]->dev); 142 device_unregister(&bus->phy_map[i]->dev);
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index e11b03b2b25a..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, there is no device there */ 230 /* If the phy_id is mostly Fs, there is no device there */
231 if (0xffffffff == 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);
@@ -564,20 +573,32 @@ EXPORT_SYMBOL(genphy_restart_aneg);
564 */ 573 */
565int genphy_config_aneg(struct phy_device *phydev) 574int genphy_config_aneg(struct phy_device *phydev)
566{ 575{
567 int result = 0; 576 int result;
568 577
569 if (AUTONEG_ENABLE == phydev->autoneg) { 578 if (AUTONEG_ENABLE != phydev->autoneg)
570 int result = genphy_config_advert(phydev); 579 return genphy_setup_forced(phydev);
571 580
572 if (result < 0) /* error */ 581 result = genphy_config_advert(phydev);
573 return result; 582
583 if (result < 0) /* error */
584 return result;
585
586 if (result == 0) {
587 /* Advertisment hasn't changed, but maybe aneg was never on to
588 * begin with? Or maybe phy was isolated? */
589 int ctl = phy_read(phydev, MII_BMCR);
590
591 if (ctl < 0)
592 return ctl;
593
594 if (!(ctl & BMCR_ANENABLE) || (ctl & BMCR_ISOLATE))
595 result = 1; /* do restart aneg */
596 }
574 597
575 /* Only restart aneg if we are advertising something different 598 /* Only restart aneg if we are advertising something different
576 * than we were before. */ 599 * than we were before. */
577 if (result > 0) 600 if (result > 0)
578 result = genphy_restart_aneg(phydev); 601 result = genphy_restart_aneg(phydev);
579 } else
580 result = genphy_setup_forced(phydev);
581 602
582 return result; 603 return result;
583} 604}
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/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/qla3xxx.c b/drivers/net/qla3xxx.c
index 3cdd07c45b6d..508452c02151 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -1515,9 +1515,6 @@ static u32 ql_get_link_state(struct ql3_adapter *qdev)
1515 linkState = LS_UP; 1515 linkState = LS_UP;
1516 } else { 1516 } else {
1517 linkState = LS_DOWN; 1517 linkState = LS_DOWN;
1518 if (netif_msg_link(qdev))
1519 printk(KERN_WARNING PFX
1520 "%s: Link is down.\n", qdev->ndev->name);
1521 } 1518 }
1522 return linkState; 1519 return linkState;
1523} 1520}
@@ -1581,10 +1578,6 @@ static int ql_finish_auto_neg(struct ql3_adapter *qdev)
1581 ql_mac_enable(qdev, 1); 1578 ql_mac_enable(qdev, 1);
1582 } 1579 }
1583 1580
1584 if (netif_msg_link(qdev))
1585 printk(KERN_DEBUG PFX
1586 "%s: Change port_link_state LS_DOWN to LS_UP.\n",
1587 qdev->ndev->name);
1588 qdev->port_link_state = LS_UP; 1581 qdev->port_link_state = LS_UP;
1589 netif_start_queue(qdev->ndev); 1582 netif_start_queue(qdev->ndev);
1590 netif_carrier_on(qdev->ndev); 1583 netif_carrier_on(qdev->ndev);
@@ -1655,14 +1648,9 @@ static void ql_link_state_machine_work(struct work_struct *work)
1655 /* Fall Through */ 1648 /* Fall Through */
1656 1649
1657 case LS_DOWN: 1650 case LS_DOWN:
1658 if (netif_msg_link(qdev))
1659 printk(KERN_DEBUG PFX
1660 "%s: port_link_state = LS_DOWN.\n",
1661 qdev->ndev->name);
1662 if (curr_link_state == LS_UP) { 1651 if (curr_link_state == LS_UP) {
1663 if (netif_msg_link(qdev)) 1652 if (netif_msg_link(qdev))
1664 printk(KERN_DEBUG PFX 1653 printk(KERN_INFO PFX "%s: Link is up.\n",
1665 "%s: curr_link_state = LS_UP.\n",
1666 qdev->ndev->name); 1654 qdev->ndev->name);
1667 if (ql_is_auto_neg_complete(qdev)) 1655 if (ql_is_auto_neg_complete(qdev))
1668 ql_finish_auto_neg(qdev); 1656 ql_finish_auto_neg(qdev);
@@ -1670,6 +1658,7 @@ static void ql_link_state_machine_work(struct work_struct *work)
1670 if (qdev->port_link_state == LS_UP) 1658 if (qdev->port_link_state == LS_UP)
1671 ql_link_down_detect_clear(qdev); 1659 ql_link_down_detect_clear(qdev);
1672 1660
1661 qdev->port_link_state = LS_UP;
1673 } 1662 }
1674 break; 1663 break;
1675 1664
@@ -1678,12 +1667,14 @@ static void ql_link_state_machine_work(struct work_struct *work)
1678 * See if the link is currently down or went down and came 1667 * See if the link is currently down or went down and came
1679 * back up 1668 * back up
1680 */ 1669 */
1681 if ((curr_link_state == LS_DOWN) || ql_link_down_detect(qdev)) { 1670 if (curr_link_state == LS_DOWN) {
1682 if (netif_msg_link(qdev)) 1671 if (netif_msg_link(qdev))
1683 printk(KERN_INFO PFX "%s: Link is down.\n", 1672 printk(KERN_INFO PFX "%s: Link is down.\n",
1684 qdev->ndev->name); 1673 qdev->ndev->name);
1685 qdev->port_link_state = LS_DOWN; 1674 qdev->port_link_state = LS_DOWN;
1686 } 1675 }
1676 if (ql_link_down_detect(qdev))
1677 qdev->port_link_state = LS_DOWN;
1687 break; 1678 break;
1688 } 1679 }
1689 spin_unlock_irqrestore(&qdev->hw_lock, hw_flags); 1680 spin_unlock_irqrestore(&qdev->hw_lock, hw_flags);
diff --git a/drivers/net/sfc/ethtool.c b/drivers/net/sfc/ethtool.c
index fa98af58223e..cd0d0873d978 100644
--- a/drivers/net/sfc/ethtool.c
+++ b/drivers/net/sfc/ethtool.c
@@ -174,8 +174,8 @@ static struct efx_ethtool_stat efx_ethtool_stats[] = {
174 174
175/* EEPROM range with gPXE configuration */ 175/* EEPROM range with gPXE configuration */
176#define EFX_ETHTOOL_EEPROM_MAGIC 0xEFAB 176#define EFX_ETHTOOL_EEPROM_MAGIC 0xEFAB
177#define EFX_ETHTOOL_EEPROM_MIN 0x100U 177#define EFX_ETHTOOL_EEPROM_MIN 0x800U
178#define EFX_ETHTOOL_EEPROM_MAX 0x400U 178#define EFX_ETHTOOL_EEPROM_MAX 0x1800U
179 179
180/************************************************************************** 180/**************************************************************************
181 * 181 *
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index a24bb68887ab..59f242a67714 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -927,7 +927,7 @@ static int sh_eth_start_xmit(struct sk_buff *skb, struct net_device *ndev)
927 struct sh_eth_private *mdp = netdev_priv(ndev); 927 struct sh_eth_private *mdp = netdev_priv(ndev);
928 struct sh_eth_txdesc *txdesc; 928 struct sh_eth_txdesc *txdesc;
929 u32 entry; 929 u32 entry;
930 int flags; 930 unsigned long flags;
931 931
932 spin_lock_irqsave(&mdp->lock, flags); 932 spin_lock_irqsave(&mdp->lock, flags);
933 if ((mdp->cur_tx - mdp->dirty_tx) >= (TX_RING_SIZE - 4)) { 933 if ((mdp->cur_tx - mdp->dirty_tx) >= (TX_RING_SIZE - 4)) {
@@ -1141,7 +1141,7 @@ static int sh_mdio_init(struct net_device *ndev, int id)
1141 /* Hook up MII support for ethtool */ 1141 /* Hook up MII support for ethtool */
1142 mdp->mii_bus->name = "sh_mii"; 1142 mdp->mii_bus->name = "sh_mii";
1143 mdp->mii_bus->parent = &ndev->dev; 1143 mdp->mii_bus->parent = &ndev->dev;
1144 mdp->mii_bus->id[0] = id; 1144 snprintf(mdp->mii_bus->id, MII_BUS_ID_SIZE, "%x", id);
1145 1145
1146 /* PHY IRQ */ 1146 /* PHY IRQ */
1147 mdp->mii_bus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL); 1147 mdp->mii_bus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL);
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 f59c7772f344..9a16a79b67d0 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -499,7 +499,7 @@ static void smc911x_hardware_send_pkt(struct net_device *dev)
499#else 499#else
500 SMC_PUSH_DATA(lp, buf, len); 500 SMC_PUSH_DATA(lp, buf, len);
501 dev->trans_start = jiffies; 501 dev->trans_start = jiffies;
502 dev_kfree_skb(skb); 502 dev_kfree_skb_irq(skb);
503#endif 503#endif
504 if (!lp->tx_throttle) { 504 if (!lp->tx_throttle) {
505 netif_wake_queue(dev); 505 netif_wake_queue(dev);
@@ -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;
@@ -1813,7 +1813,7 @@ static int __init smc911x_probe(struct net_device *dev)
1813 val = SMC_GET_BYTE_TEST(lp); 1813 val = SMC_GET_BYTE_TEST(lp);
1814 DBG(SMC_DEBUG_MISC, "%s: endian probe returned 0x%04x\n", CARDNAME, val); 1814 DBG(SMC_DEBUG_MISC, "%s: endian probe returned 0x%04x\n", CARDNAME, val);
1815 if (val != 0x87654321) { 1815 if (val != 0x87654321) {
1816 printk(KERN_ERR "Invalid chip endian 0x08%x\n",val); 1816 printk(KERN_ERR "Invalid chip endian 0x%08x\n",val);
1817 retval = -ENODEV; 1817 retval = -ENODEV;
1818 goto err_out; 1818 goto err_out;
1819 } 1819 }
@@ -2048,9 +2048,11 @@ 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 struct smc911x_platdata *pd = pdev->dev.platform_data; 2054 struct smc911x_platdata *pd = pdev->dev.platform_data;
2055#endif
2054 struct net_device *ndev; 2056 struct net_device *ndev;
2055 struct resource *res; 2057 struct resource *res;
2056 struct smc911x_local *lp; 2058 struct smc911x_local *lp;
@@ -2122,7 +2124,7 @@ out:
2122 return ret; 2124 return ret;
2123} 2125}
2124 2126
2125static int smc911x_drv_remove(struct platform_device *pdev) 2127static int __devexit smc911x_drv_remove(struct platform_device *pdev)
2126{ 2128{
2127 struct net_device *ndev = platform_get_drvdata(pdev); 2129 struct net_device *ndev = platform_get_drvdata(pdev);
2128 struct smc911x_local *lp = netdev_priv(ndev); 2130 struct smc911x_local *lp = netdev_priv(ndev);
@@ -2182,9 +2184,9 @@ static int smc911x_drv_resume(struct platform_device *dev)
2182 2184
2183 if (netif_running(ndev)) { 2185 if (netif_running(ndev)) {
2184 smc911x_reset(ndev); 2186 smc911x_reset(ndev);
2185 smc911x_enable(ndev);
2186 if (lp->phy_type != 0) 2187 if (lp->phy_type != 0)
2187 smc911x_phy_configure(&lp->phy_configure); 2188 smc911x_phy_configure(&lp->phy_configure);
2189 smc911x_enable(ndev);
2188 netif_device_attach(ndev); 2190 netif_device_attach(ndev);
2189 } 2191 }
2190 } 2192 }
@@ -2193,7 +2195,7 @@ static int smc911x_drv_resume(struct platform_device *dev)
2193 2195
2194static struct platform_driver smc911x_driver = { 2196static struct platform_driver smc911x_driver = {
2195 .probe = smc911x_drv_probe, 2197 .probe = smc911x_drv_probe,
2196 .remove = smc911x_drv_remove, 2198 .remove = __devexit_p(smc911x_drv_remove),
2197 .suspend = smc911x_drv_suspend, 2199 .suspend = smc911x_drv_suspend,
2198 .resume = smc911x_drv_resume, 2200 .resume = smc911x_drv_resume,
2199 .driver = { 2201 .driver = {
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 6f9895d4e5bd..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);
@@ -2060,6 +2060,7 @@ static int smc_request_attrib(struct platform_device *pdev,
2060 struct net_device *ndev) 2060 struct net_device *ndev)
2061{ 2061{
2062 struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-attrib"); 2062 struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-attrib");
2063 struct smc_local *lp __maybe_unused = netdev_priv(ndev);
2063 2064
2064 if (!res) 2065 if (!res)
2065 return 0; 2066 return 0;
@@ -2074,6 +2075,7 @@ static void smc_release_attrib(struct platform_device *pdev,
2074 struct net_device *ndev) 2075 struct net_device *ndev)
2075{ 2076{
2076 struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-attrib"); 2077 struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-attrib");
2078 struct smc_local *lp __maybe_unused = netdev_priv(ndev);
2077 2079
2078 if (res) 2080 if (res)
2079 release_mem_region(res->start, ATTRIB_SIZE); 2081 release_mem_region(res->start, ATTRIB_SIZE);
@@ -2124,7 +2126,7 @@ static void smc_release_datacs(struct platform_device *pdev, struct net_device *
2124 * 0 --> there is a device 2126 * 0 --> there is a device
2125 * anything else, error 2127 * anything else, error
2126 */ 2128 */
2127static int smc_drv_probe(struct platform_device *pdev) 2129static int __devinit smc_drv_probe(struct platform_device *pdev)
2128{ 2130{
2129 struct smc91x_platdata *pd = pdev->dev.platform_data; 2131 struct smc91x_platdata *pd = pdev->dev.platform_data;
2130 struct smc_local *lp; 2132 struct smc_local *lp;
@@ -2238,7 +2240,7 @@ static int smc_drv_probe(struct platform_device *pdev)
2238 return ret; 2240 return ret;
2239} 2241}
2240 2242
2241static int smc_drv_remove(struct platform_device *pdev) 2243static int __devexit smc_drv_remove(struct platform_device *pdev)
2242{ 2244{
2243 struct net_device *ndev = platform_get_drvdata(pdev); 2245 struct net_device *ndev = platform_get_drvdata(pdev);
2244 struct smc_local *lp = netdev_priv(ndev); 2246 struct smc_local *lp = netdev_priv(ndev);
@@ -2303,7 +2305,7 @@ static int smc_drv_resume(struct platform_device *dev)
2303 2305
2304static struct platform_driver smc_driver = { 2306static struct platform_driver smc_driver = {
2305 .probe = smc_drv_probe, 2307 .probe = smc_drv_probe,
2306 .remove = smc_drv_remove, 2308 .remove = __devexit_p(smc_drv_remove),
2307 .suspend = smc_drv_suspend, 2309 .suspend = smc_drv_suspend,
2308 .resume = smc_drv_resume, 2310 .resume = smc_drv_resume,
2309 .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/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/ucc_geth_ethtool.c b/drivers/net/ucc_geth_ethtool.c
index cfbbfee55836..68a7f5414133 100644
--- a/drivers/net/ucc_geth_ethtool.c
+++ b/drivers/net/ucc_geth_ethtool.c
@@ -37,7 +37,6 @@
37#include <asm/irq.h> 37#include <asm/irq.h>
38#include <asm/uaccess.h> 38#include <asm/uaccess.h>
39#include <asm/types.h> 39#include <asm/types.h>
40#include <asm/uaccess.h>
41 40
42#include "ucc_geth.h" 41#include "ucc_geth.h"
43#include "ucc_geth_mii.h" 42#include "ucc_geth_mii.h"
@@ -324,17 +323,17 @@ static void uec_get_ethtool_stats(struct net_device *netdev,
324 if (stats_mode & UCC_GETH_STATISTICS_GATHERING_MODE_HARDWARE) { 323 if (stats_mode & UCC_GETH_STATISTICS_GATHERING_MODE_HARDWARE) {
325 base = (u32 __iomem *)&ugeth->ug_regs->tx64; 324 base = (u32 __iomem *)&ugeth->ug_regs->tx64;
326 for (i = 0; i < UEC_HW_STATS_LEN; i++) 325 for (i = 0; i < UEC_HW_STATS_LEN; i++)
327 data[j++] = (u64)in_be32(&base[i]); 326 data[j++] = in_be32(&base[i]);
328 } 327 }
329 if (stats_mode & UCC_GETH_STATISTICS_GATHERING_MODE_FIRMWARE_TX) { 328 if (stats_mode & UCC_GETH_STATISTICS_GATHERING_MODE_FIRMWARE_TX) {
330 base = (u32 __iomem *)ugeth->p_tx_fw_statistics_pram; 329 base = (u32 __iomem *)ugeth->p_tx_fw_statistics_pram;
331 for (i = 0; i < UEC_TX_FW_STATS_LEN; i++) 330 for (i = 0; i < UEC_TX_FW_STATS_LEN; i++)
332 data[j++] = (u64)in_be32(&base[i]); 331 data[j++] = base ? in_be32(&base[i]) : 0;
333 } 332 }
334 if (stats_mode & UCC_GETH_STATISTICS_GATHERING_MODE_FIRMWARE_RX) { 333 if (stats_mode & UCC_GETH_STATISTICS_GATHERING_MODE_FIRMWARE_RX) {
335 base = (u32 __iomem *)ugeth->p_rx_fw_statistics_pram; 334 base = (u32 __iomem *)ugeth->p_rx_fw_statistics_pram;
336 for (i = 0; i < UEC_RX_FW_STATS_LEN; i++) 335 for (i = 0; i < UEC_RX_FW_STATS_LEN; i++)
337 data[j++] = (u64)in_be32(&base[i]); 336 data[j++] = base ? in_be32(&base[i]) : 0;
338 } 337 }
339} 338}
340 339
diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
index 37ecf845edfe..de57490103fc 100644
--- a/drivers/net/usb/asix.c
+++ b/drivers/net/usb/asix.c
@@ -1102,12 +1102,14 @@ static int ax88178_link_reset(struct usbnet *dev)
1102 mode = AX88178_MEDIUM_DEFAULT; 1102 mode = AX88178_MEDIUM_DEFAULT;
1103 1103
1104 if (ecmd.speed == SPEED_1000) 1104 if (ecmd.speed == SPEED_1000)
1105 mode |= AX_MEDIUM_GM | AX_MEDIUM_ENCK; 1105 mode |= AX_MEDIUM_GM;
1106 else if (ecmd.speed == SPEED_100) 1106 else if (ecmd.speed == SPEED_100)
1107 mode |= AX_MEDIUM_PS; 1107 mode |= AX_MEDIUM_PS;
1108 else 1108 else
1109 mode &= ~(AX_MEDIUM_PS | AX_MEDIUM_GM); 1109 mode &= ~(AX_MEDIUM_PS | AX_MEDIUM_GM);
1110 1110
1111 mode |= AX_MEDIUM_ENCK;
1112
1111 if (ecmd.duplex == DUPLEX_FULL) 1113 if (ecmd.duplex == DUPLEX_FULL)
1112 mode |= AX_MEDIUM_FD; 1114 mode |= AX_MEDIUM_FD;
1113 else 1115 else
@@ -1444,6 +1446,10 @@ static const struct usb_device_id products [] = {
1444 // Apple USB Ethernet Adapter 1446 // Apple USB Ethernet Adapter
1445 USB_DEVICE(0x05ac, 0x1402), 1447 USB_DEVICE(0x05ac, 0x1402),
1446 .driver_info = (unsigned long) &ax88772_info, 1448 .driver_info = (unsigned long) &ax88772_info,
1449}, {
1450 // Cables-to-Go USB Ethernet Adapter
1451 USB_DEVICE(0x0b95, 0x772a),
1452 .driver_info = (unsigned long) &ax88772_info,
1447}, 1453},
1448 { }, // END 1454 { }, // END
1449}; 1455};
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 1164c52e2c0a..8e90891f0e42 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -2184,19 +2184,20 @@ static void hso_create_rfkill(struct hso_device *hso_dev,
2184 struct usb_interface *interface) 2184 struct usb_interface *interface)
2185{ 2185{
2186 struct hso_net *hso_net = dev2net(hso_dev); 2186 struct hso_net *hso_net = dev2net(hso_dev);
2187 struct device *dev = hso_dev->dev; 2187 struct device *dev = &hso_net->net->dev;
2188 char *rfkn; 2188 char *rfkn;
2189 2189
2190 hso_net->rfkill = rfkill_allocate(&interface_to_usbdev(interface)->dev, 2190 hso_net->rfkill = rfkill_allocate(&interface_to_usbdev(interface)->dev,
2191 RFKILL_TYPE_WLAN); 2191 RFKILL_TYPE_WWAN);
2192 if (!hso_net->rfkill) { 2192 if (!hso_net->rfkill) {
2193 dev_err(dev, "%s - Out of memory", __func__); 2193 dev_err(dev, "%s - Out of memory\n", __func__);
2194 return; 2194 return;
2195 } 2195 }
2196 rfkn = kzalloc(20, GFP_KERNEL); 2196 rfkn = kzalloc(20, GFP_KERNEL);
2197 if (!rfkn) { 2197 if (!rfkn) {
2198 rfkill_free(hso_net->rfkill); 2198 rfkill_free(hso_net->rfkill);
2199 dev_err(dev, "%s - Out of memory", __func__); 2199 hso_net->rfkill = NULL;
2200 dev_err(dev, "%s - Out of memory\n", __func__);
2200 return; 2201 return;
2201 } 2202 }
2202 snprintf(rfkn, 20, "hso-%d", 2203 snprintf(rfkn, 20, "hso-%d",
@@ -2209,7 +2210,8 @@ static void hso_create_rfkill(struct hso_device *hso_dev,
2209 kfree(rfkn); 2210 kfree(rfkn);
2210 hso_net->rfkill->name = NULL; 2211 hso_net->rfkill->name = NULL;
2211 rfkill_free(hso_net->rfkill); 2212 rfkill_free(hso_net->rfkill);
2212 dev_err(dev, "%s - Failed to register rfkill", __func__); 2213 hso_net->rfkill = NULL;
2214 dev_err(dev, "%s - Failed to register rfkill\n", __func__);
2213 return; 2215 return;
2214 } 2216 }
2215} 2217}
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index 3590ea5a902d..11cb3e504e1c 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -2296,7 +2296,7 @@ static void velocity_set_multi(struct net_device *dev)
2296 } 2296 }
2297 2297
2298 mac_set_cam_mask(regs, vptr->mCAMmask); 2298 mac_set_cam_mask(regs, vptr->mCAMmask);
2299 rx_mode = (RCR_AM | RCR_AB); 2299 rx_mode = RCR_AM | RCR_AB | RCR_AP;
2300 } 2300 }
2301 if (dev->mtu > 1500) 2301 if (dev->mtu > 1500)
2302 rx_mode |= RCR_AL; 2302 rx_mode |= RCR_AL;
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index 9e47d727e220..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,8 +2947,10 @@ 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_ADHOC) 2950 if ((sc->opmode == NL80211_IFTYPE_STATION && sc->assoc) ||
2951 sc->opmode == NL80211_IFTYPE_ADHOC) {
2946 rfilt |= AR5K_RX_FILTER_BEACON; 2952 rfilt |= AR5K_RX_FILTER_BEACON;
2953 }
2947 2954
2948 /* Set filters */ 2955 /* Set filters */
2949 ath5k_hw_set_rx_filter(ah,rfilt); 2956 ath5k_hw_set_rx_filter(ah,rfilt);
@@ -3081,4 +3088,32 @@ ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
3081end: 3088end:
3082 return ret; 3089 return ret;
3083} 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}
3084 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/ath5k/desc.c b/drivers/net/wireless/ath5k/desc.c
index dd1374052ba9..5e362a7a3620 100644
--- a/drivers/net/wireless/ath5k/desc.c
+++ b/drivers/net/wireless/ath5k/desc.c
@@ -531,10 +531,10 @@ static int ath5k_hw_proc_5210_rx_status(struct ath5k_hw *ah,
531 AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL); 531 AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL);
532 rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, 532 rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0,
533 AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE); 533 AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE);
534 rs->rs_antenna = rx_status->rx_status_0 & 534 rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0,
535 AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA; 535 AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA);
536 rs->rs_more = rx_status->rx_status_0 & 536 rs->rs_more = !!(rx_status->rx_status_0 &
537 AR5K_5210_RX_DESC_STATUS0_MORE; 537 AR5K_5210_RX_DESC_STATUS0_MORE);
538 /* TODO: this timestamp is 13 bit, later on we assume 15 bit */ 538 /* TODO: this timestamp is 13 bit, later on we assume 15 bit */
539 rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, 539 rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1,
540 AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); 540 AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP);
@@ -607,10 +607,10 @@ static int ath5k_hw_proc_5212_rx_status(struct ath5k_hw *ah,
607 AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL); 607 AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL);
608 rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0, 608 rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0,
609 AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE); 609 AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE);
610 rs->rs_antenna = rx_status->rx_status_0 & 610 rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0,
611 AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA; 611 AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA);
612 rs->rs_more = rx_status->rx_status_0 & 612 rs->rs_more = !!(rx_status->rx_status_0 &
613 AR5K_5212_RX_DESC_STATUS0_MORE; 613 AR5K_5212_RX_DESC_STATUS0_MORE);
614 rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1, 614 rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1,
615 AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP); 615 AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP);
616 rs->rs_status = 0; 616 rs->rs_status = 0;
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/hostap/hostap_wlan.h b/drivers/net/wireless/hostap/hostap_wlan.h
index ffdf4876121b..a68f97c39359 100644
--- a/drivers/net/wireless/hostap/hostap_wlan.h
+++ b/drivers/net/wireless/hostap/hostap_wlan.h
@@ -918,9 +918,12 @@ struct hostap_interface {
918 918
919/* 919/*
920 * TX meta data - stored in skb->cb buffer, so this must not be increased over 920 * TX meta data - stored in skb->cb buffer, so this must not be increased over
921 * the 40-byte limit 921 * the 48-byte limit.
922 * THE PADDING THIS STARTS WITH IS A HORRIBLE HACK THAT SHOULD NOT LIVE
923 * TO SEE THE DAY.
922 */ 924 */
923struct hostap_skb_tx_data { 925struct hostap_skb_tx_data {
926 unsigned int __padding_for_default_qdiscs;
924 u32 magic; /* HOSTAP_SKB_TX_DATA_MAGIC */ 927 u32 magic; /* HOSTAP_SKB_TX_DATA_MAGIC */
925 u8 rate; /* transmit rate */ 928 u8 rate; /* transmit rate */
926#define HOSTAP_TX_FLAGS_WDS BIT(0) 929#define HOSTAP_TX_FLAGS_WDS BIT(0)
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 321dbc8c034a..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->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
@@ -1436,8 +1438,8 @@ void iwl_rx_handle(struct iwl_priv *priv)
1436 rxb->skb = NULL; 1438 rxb->skb = NULL;
1437 } 1439 }
1438 1440
1439 pci_unmap_single(priv->pci_dev, rxb->dma_addr, 1441 pci_unmap_single(priv->pci_dev, rxb->real_dma_addr,
1440 priv->hw_params.rx_buf_size, 1442 priv->hw_params.rx_buf_size + 256,
1441 PCI_DMA_FROMDEVICE); 1443 PCI_DMA_FROMDEVICE);
1442 spin_lock_irqsave(&rxq->lock, flags); 1444 spin_lock_irqsave(&rxq->lock, flags);
1443 list_add_tail(&rxb->list, &priv->rxq.rx_used); 1445 list_add_tail(&rxb->list, &priv->rxq.rx_used);
@@ -2341,7 +2343,6 @@ static void iwl_bg_alive_start(struct work_struct *data)
2341 mutex_lock(&priv->mutex); 2343 mutex_lock(&priv->mutex);
2342 iwl_alive_start(priv); 2344 iwl_alive_start(priv);
2343 mutex_unlock(&priv->mutex); 2345 mutex_unlock(&priv->mutex);
2344 ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
2345} 2346}
2346 2347
2347static void iwl4965_bg_rf_kill(struct work_struct *work) 2348static void iwl4965_bg_rf_kill(struct work_struct *work)
@@ -3252,7 +3253,11 @@ static void iwl4965_mac_update_tkip_key(struct ieee80211_hw *hw,
3252 return; 3253 return;
3253 } 3254 }
3254 3255
3255 iwl_scan_cancel_timeout(priv, 100); 3256 if (iwl_scan_cancel(priv)) {
3257 /* cancel scan failed, just live w/ bad key and rely
3258 briefly on SW decryption */
3259 return;
3260 }
3256 3261
3257 key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK); 3262 key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK);
3258 key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS); 3263 key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
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-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index c018121085e9..9966d4e384ce 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -89,7 +89,8 @@ extern struct iwl_cfg iwl5100_abg_cfg;
89#define DEFAULT_LONG_RETRY_LIMIT 4U 89#define DEFAULT_LONG_RETRY_LIMIT 4U
90 90
91struct iwl_rx_mem_buffer { 91struct iwl_rx_mem_buffer {
92 dma_addr_t dma_addr; 92 dma_addr_t real_dma_addr;
93 dma_addr_t aligned_dma_addr;
93 struct sk_buff *skb; 94 struct sk_buff *skb;
94 struct list_head list; 95 struct list_head list;
95}; 96};
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index 7cde9d76ff5d..0509c16dbe75 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -204,7 +204,7 @@ int iwl_rx_queue_restock(struct iwl_priv *priv)
204 list_del(element); 204 list_del(element);
205 205
206 /* Point to Rx buffer via next RBD in circular buffer */ 206 /* Point to Rx buffer via next RBD in circular buffer */
207 rxq->bd[rxq->write] = iwl_dma_addr2rbd_ptr(priv, rxb->dma_addr); 207 rxq->bd[rxq->write] = iwl_dma_addr2rbd_ptr(priv, rxb->aligned_dma_addr);
208 rxq->queue[rxq->write] = rxb; 208 rxq->queue[rxq->write] = rxb;
209 rxq->write = (rxq->write + 1) & RX_QUEUE_MASK; 209 rxq->write = (rxq->write + 1) & RX_QUEUE_MASK;
210 rxq->free_count--; 210 rxq->free_count--;
@@ -251,7 +251,7 @@ void iwl_rx_allocate(struct iwl_priv *priv)
251 rxb = list_entry(element, struct iwl_rx_mem_buffer, list); 251 rxb = list_entry(element, struct iwl_rx_mem_buffer, list);
252 252
253 /* Alloc a new receive buffer */ 253 /* Alloc a new receive buffer */
254 rxb->skb = alloc_skb(priv->hw_params.rx_buf_size, 254 rxb->skb = alloc_skb(priv->hw_params.rx_buf_size + 256,
255 __GFP_NOWARN | GFP_ATOMIC); 255 __GFP_NOWARN | GFP_ATOMIC);
256 if (!rxb->skb) { 256 if (!rxb->skb) {
257 if (net_ratelimit()) 257 if (net_ratelimit())
@@ -266,9 +266,17 @@ void iwl_rx_allocate(struct iwl_priv *priv)
266 list_del(element); 266 list_del(element);
267 267
268 /* Get physical address of RB/SKB */ 268 /* Get physical address of RB/SKB */
269 rxb->dma_addr = 269 rxb->real_dma_addr = pci_map_single(
270 pci_map_single(priv->pci_dev, rxb->skb->data, 270 priv->pci_dev,
271 priv->hw_params.rx_buf_size, PCI_DMA_FROMDEVICE); 271 rxb->skb->data,
272 priv->hw_params.rx_buf_size + 256,
273 PCI_DMA_FROMDEVICE);
274 /* dma address must be no more than 36 bits */
275 BUG_ON(rxb->real_dma_addr & ~DMA_BIT_MASK(36));
276 /* and also 256 byte aligned! */
277 rxb->aligned_dma_addr = ALIGN(rxb->real_dma_addr, 256);
278 skb_reserve(rxb->skb, rxb->aligned_dma_addr - rxb->real_dma_addr);
279
272 list_add_tail(&rxb->list, &rxq->rx_free); 280 list_add_tail(&rxb->list, &rxq->rx_free);
273 rxq->free_count++; 281 rxq->free_count++;
274 } 282 }
@@ -300,8 +308,8 @@ void iwl_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
300 for (i = 0; i < RX_QUEUE_SIZE + RX_FREE_BUFFERS; i++) { 308 for (i = 0; i < RX_QUEUE_SIZE + RX_FREE_BUFFERS; i++) {
301 if (rxq->pool[i].skb != NULL) { 309 if (rxq->pool[i].skb != NULL) {
302 pci_unmap_single(priv->pci_dev, 310 pci_unmap_single(priv->pci_dev,
303 rxq->pool[i].dma_addr, 311 rxq->pool[i].real_dma_addr,
304 priv->hw_params.rx_buf_size, 312 priv->hw_params.rx_buf_size + 256,
305 PCI_DMA_FROMDEVICE); 313 PCI_DMA_FROMDEVICE);
306 dev_kfree_skb(rxq->pool[i].skb); 314 dev_kfree_skb(rxq->pool[i].skb);
307 } 315 }
@@ -354,8 +362,8 @@ void iwl_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
354 * to an SKB, so we need to unmap and free potential storage */ 362 * to an SKB, so we need to unmap and free potential storage */
355 if (rxq->pool[i].skb != NULL) { 363 if (rxq->pool[i].skb != NULL) {
356 pci_unmap_single(priv->pci_dev, 364 pci_unmap_single(priv->pci_dev,
357 rxq->pool[i].dma_addr, 365 rxq->pool[i].real_dma_addr,
358 priv->hw_params.rx_buf_size, 366 priv->hw_params.rx_buf_size + 256,
359 PCI_DMA_FROMDEVICE); 367 PCI_DMA_FROMDEVICE);
360 priv->alloc_rxb_skb--; 368 priv->alloc_rxb_skb--;
361 dev_kfree_skb(rxq->pool[i].skb); 369 dev_kfree_skb(rxq->pool[i].skb);
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 3b0bee331a33..c89365e2ca58 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -896,6 +896,13 @@ static void iwl_bg_request_scan(struct work_struct *data)
896 return; 896 return;
897 897
898 done: 898 done:
899 /* Cannot perform scan. Make sure we clear scanning
900 * bits from status so next scan request can be performed.
901 * If we don't clear scanning status bit here all next scan
902 * will fail
903 */
904 clear_bit(STATUS_SCAN_HW, &priv->status);
905 clear_bit(STATUS_SCANNING, &priv->status);
899 /* inform mac80211 scan aborted */ 906 /* inform mac80211 scan aborted */
900 queue_work(priv->workqueue, &priv->scan_completed); 907 queue_work(priv->workqueue, &priv->scan_completed);
901 mutex_unlock(&priv->mutex); 908 mutex_unlock(&priv->mutex);
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/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index d15a2c997954..45a6b0c35695 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -5768,7 +5768,6 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv)
5768 if (priv->error_recovering) 5768 if (priv->error_recovering)
5769 iwl3945_error_recovery(priv); 5769 iwl3945_error_recovery(priv);
5770 5770
5771 ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
5772 return; 5771 return;
5773 5772
5774 restart: 5773 restart:
@@ -6256,6 +6255,11 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
6256 n_probes, 6255 n_probes,
6257 (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]); 6256 (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
6258 6257
6258 if (scan->channel_count == 0) {
6259 IWL_DEBUG_SCAN("channel count %d\n", scan->channel_count);
6260 goto done;
6261 }
6262
6259 cmd.len += le16_to_cpu(scan->tx_cmd.len) + 6263 cmd.len += le16_to_cpu(scan->tx_cmd.len) +
6260 scan->channel_count * sizeof(struct iwl3945_scan_channel); 6264 scan->channel_count * sizeof(struct iwl3945_scan_channel);
6261 cmd.data = scan; 6265 cmd.data = scan;
@@ -6273,6 +6277,14 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
6273 return; 6277 return;
6274 6278
6275 done: 6279 done:
6280 /* can not perform scan make sure we clear scanning
6281 * bits from status so next scan request can be performed.
6282 * if we dont clear scanning status bit here all next scan
6283 * will fail
6284 */
6285 clear_bit(STATUS_SCAN_HW, &priv->status);
6286 clear_bit(STATUS_SCANNING, &priv->status);
6287
6276 /* inform mac80211 scan aborted */ 6288 /* inform mac80211 scan aborted */
6277 queue_work(priv->workqueue, &priv->scan_completed); 6289 queue_work(priv->workqueue, &priv->scan_completed);
6278 mutex_unlock(&priv->mutex); 6290 mutex_unlock(&priv->mutex);
diff --git a/drivers/net/wireless/libertas_tf/if_usb.c b/drivers/net/wireless/libertas_tf/if_usb.c
index 1cc03a8dd67a..59634c33b1f9 100644
--- a/drivers/net/wireless/libertas_tf/if_usb.c
+++ b/drivers/net/wireless/libertas_tf/if_usb.c
@@ -331,7 +331,7 @@ static int __if_usb_submit_rx_urb(struct if_usb_card *cardp,
331 /* Fill the receive configuration URB and initialise the Rx call back */ 331 /* Fill the receive configuration URB and initialise the Rx call back */
332 usb_fill_bulk_urb(cardp->rx_urb, cardp->udev, 332 usb_fill_bulk_urb(cardp->rx_urb, cardp->udev,
333 usb_rcvbulkpipe(cardp->udev, cardp->ep_in), 333 usb_rcvbulkpipe(cardp->udev, cardp->ep_in),
334 (void *) (skb->tail), 334 skb_tail_pointer(skb),
335 MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, callbackfn, cardp); 335 MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, callbackfn, cardp);
336 336
337 cardp->rx_urb->transfer_flags |= URB_ZERO_PACKET; 337 cardp->rx_urb->transfer_flags |= URB_ZERO_PACKET;
diff --git a/drivers/net/wireless/rtl8187_dev.c b/drivers/net/wireless/rtl8187_dev.c
index 431e3c78bf27..69eb0132593b 100644
--- a/drivers/net/wireless/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl8187_dev.c
@@ -48,6 +48,9 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
48 {USB_DEVICE(0x03f0, 0xca02), .driver_info = DEVICE_RTL8187}, 48 {USB_DEVICE(0x03f0, 0xca02), .driver_info = DEVICE_RTL8187},
49 /* Sitecom */ 49 /* Sitecom */
50 {USB_DEVICE(0x0df6, 0x000d), .driver_info = DEVICE_RTL8187}, 50 {USB_DEVICE(0x0df6, 0x000d), .driver_info = DEVICE_RTL8187},
51 {USB_DEVICE(0x0df6, 0x0028), .driver_info = DEVICE_RTL8187B},
52 /* Abocom */
53 {USB_DEVICE(0x13d1, 0xabe6), .driver_info = DEVICE_RTL8187},
51 {} 54 {}
52}; 55};
53 56
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/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
index a60ae86bd5c9..a3ccd8c1c716 100644
--- a/drivers/net/wireless/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/zd1211rw/zd_usb.c
@@ -61,6 +61,7 @@ static struct usb_device_id usb_ids[] = {
61 { USB_DEVICE(0x0105, 0x145f), .driver_info = DEVICE_ZD1211 }, 61 { USB_DEVICE(0x0105, 0x145f), .driver_info = DEVICE_ZD1211 },
62 /* ZD1211B */ 62 /* ZD1211B */
63 { USB_DEVICE(0x0ace, 0x1215), .driver_info = DEVICE_ZD1211B }, 63 { USB_DEVICE(0x0ace, 0x1215), .driver_info = DEVICE_ZD1211B },
64 { USB_DEVICE(0x0ace, 0xb215), .driver_info = DEVICE_ZD1211B },
64 { USB_DEVICE(0x157e, 0x300d), .driver_info = DEVICE_ZD1211B }, 65 { USB_DEVICE(0x157e, 0x300d), .driver_info = DEVICE_ZD1211B },
65 { USB_DEVICE(0x079b, 0x0062), .driver_info = DEVICE_ZD1211B }, 66 { USB_DEVICE(0x079b, 0x0062), .driver_info = DEVICE_ZD1211B },
66 { USB_DEVICE(0x1582, 0x6003), .driver_info = DEVICE_ZD1211B }, 67 { USB_DEVICE(0x1582, 0x6003), .driver_info = DEVICE_ZD1211B },
@@ -82,6 +83,7 @@ static struct usb_device_id usb_ids[] = {
82 { USB_DEVICE(0x0cde, 0x001a), .driver_info = DEVICE_ZD1211B }, 83 { USB_DEVICE(0x0cde, 0x001a), .driver_info = DEVICE_ZD1211B },
83 { USB_DEVICE(0x0586, 0x340a), .driver_info = DEVICE_ZD1211B }, 84 { USB_DEVICE(0x0586, 0x340a), .driver_info = DEVICE_ZD1211B },
84 { USB_DEVICE(0x0471, 0x1237), .driver_info = DEVICE_ZD1211B }, 85 { USB_DEVICE(0x0471, 0x1237), .driver_info = DEVICE_ZD1211B },
86 { USB_DEVICE(0x07fa, 0x1196), .driver_info = DEVICE_ZD1211B },
85 /* "Driverless" devices that need ejecting */ 87 /* "Driverless" devices that need ejecting */
86 { USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER }, 88 { USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
87 { USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER }, 89 { USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER },
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/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
index d962ba0dd87a..191a3202cecc 100644
--- a/drivers/oprofile/event_buffer.c
+++ b/drivers/oprofile/event_buffer.c
@@ -105,7 +105,7 @@ static int event_buffer_open(struct inode *inode, struct file *file)
105 if (!capable(CAP_SYS_ADMIN)) 105 if (!capable(CAP_SYS_ADMIN))
106 return -EPERM; 106 return -EPERM;
107 107
108 if (test_and_set_bit(0, &buffer_opened)) 108 if (test_and_set_bit_lock(0, &buffer_opened))
109 return -EBUSY; 109 return -EBUSY;
110 110
111 /* Register as a user of dcookies 111 /* Register as a user of dcookies
@@ -129,7 +129,7 @@ static int event_buffer_open(struct inode *inode, struct file *file)
129fail: 129fail:
130 dcookie_unregister(file->private_data); 130 dcookie_unregister(file->private_data);
131out: 131out:
132 clear_bit(0, &buffer_opened); 132 __clear_bit_unlock(0, &buffer_opened);
133 return err; 133 return err;
134} 134}
135 135
@@ -141,7 +141,7 @@ static int event_buffer_release(struct inode *inode, struct file *file)
141 dcookie_unregister(file->private_data); 141 dcookie_unregister(file->private_data);
142 buffer_pos = 0; 142 buffer_pos = 0;
143 atomic_set(&buffer_ready, 0); 143 atomic_set(&buffer_ready, 0);
144 clear_bit(0, &buffer_opened); 144 __clear_bit_unlock(0, &buffer_opened);
145 return 0; 145 return 0;
146} 146}
147 147
diff --git a/drivers/parport/Kconfig b/drivers/parport/Kconfig
index 209b4a464bcf..855f389eea40 100644
--- a/drivers/parport/Kconfig
+++ b/drivers/parport/Kconfig
@@ -36,7 +36,7 @@ if PARPORT
36config PARPORT_PC 36config PARPORT_PC
37 tristate "PC-style hardware" 37 tristate "PC-style hardware"
38 depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && \ 38 depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && \
39 (!M68K || ISA) && !MN10300 && !AVR32 39 (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN
40 ---help--- 40 ---help---
41 You should say Y here if you have a PC-style parallel port. All 41 You should say Y here if you have a PC-style parallel port. All
42 IBM PC compatible computers and some Alphas have PC-style 42 IBM PC compatible computers and some Alphas have PC-style
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/intel-iommu.c b/drivers/pci/intel-iommu.c
index a2692724b68f..5c8baa43ac9c 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -1655,12 +1655,14 @@ int __init init_dmars(void)
1655 iommu->flush.flush_context = __iommu_flush_context; 1655 iommu->flush.flush_context = __iommu_flush_context;
1656 iommu->flush.flush_iotlb = __iommu_flush_iotlb; 1656 iommu->flush.flush_iotlb = __iommu_flush_iotlb;
1657 printk(KERN_INFO "IOMMU 0x%Lx: using Register based " 1657 printk(KERN_INFO "IOMMU 0x%Lx: using Register based "
1658 "invalidation\n", drhd->reg_base_addr); 1658 "invalidation\n",
1659 (unsigned long long)drhd->reg_base_addr);
1659 } else { 1660 } else {
1660 iommu->flush.flush_context = qi_flush_context; 1661 iommu->flush.flush_context = qi_flush_context;
1661 iommu->flush.flush_iotlb = qi_flush_iotlb; 1662 iommu->flush.flush_iotlb = qi_flush_iotlb;
1662 printk(KERN_INFO "IOMMU 0x%Lx: using Queued " 1663 printk(KERN_INFO "IOMMU 0x%Lx: using Queued "
1663 "invalidation\n", drhd->reg_base_addr); 1664 "invalidation\n",
1665 (unsigned long long)drhd->reg_base_addr);
1664 } 1666 }
1665 } 1667 }
1666 1668
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index b3a63edb6901..ae5ec76dca77 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -63,7 +63,7 @@ static acpi_status acpi_run_osc(acpi_handle handle,
63 union acpi_object in_params[4]; 63 union acpi_object in_params[4];
64 struct acpi_buffer output = {ACPI_ALLOCATE_BUFFER, NULL}; 64 struct acpi_buffer output = {ACPI_ALLOCATE_BUFFER, NULL};
65 union acpi_object *out_obj; 65 union acpi_object *out_obj;
66 u32 osc_dw0, flags = osc_args->capbuf[OSC_QUERY_TYPE]; 66 u32 errors, flags = osc_args->capbuf[OSC_QUERY_TYPE];
67 67
68 /* Setting up input parameters */ 68 /* Setting up input parameters */
69 input.count = 4; 69 input.count = 4;
@@ -92,15 +92,16 @@ static acpi_status acpi_run_osc(acpi_handle handle,
92 status = AE_TYPE; 92 status = AE_TYPE;
93 goto out_kfree; 93 goto out_kfree;
94 } 94 }
95 osc_dw0 = *((u32 *)out_obj->buffer.pointer); 95 /* Need to ignore the bit0 in result code */
96 if (osc_dw0) { 96 errors = *((u32 *)out_obj->buffer.pointer) & ~(1 << 0);
97 if (osc_dw0 & OSC_REQUEST_ERROR) 97 if (errors) {
98 if (errors & OSC_REQUEST_ERROR)
98 printk(KERN_DEBUG "_OSC request fails\n"); 99 printk(KERN_DEBUG "_OSC request fails\n");
99 if (osc_dw0 & OSC_INVALID_UUID_ERROR) 100 if (errors & OSC_INVALID_UUID_ERROR)
100 printk(KERN_DEBUG "_OSC invalid UUID\n"); 101 printk(KERN_DEBUG "_OSC invalid UUID\n");
101 if (osc_dw0 & OSC_INVALID_REVISION_ERROR) 102 if (errors & OSC_INVALID_REVISION_ERROR)
102 printk(KERN_DEBUG "_OSC invalid revision\n"); 103 printk(KERN_DEBUG "_OSC invalid revision\n");
103 if (osc_dw0 & OSC_CAPABILITIES_MASK_ERROR) { 104 if (errors & OSC_CAPABILITIES_MASK_ERROR) {
104 if (flags & OSC_QUERY_ENABLE) 105 if (flags & OSC_QUERY_ENABLE)
105 goto out_success; 106 goto out_success;
106 printk(KERN_DEBUG "_OSC FW not grant req. control\n"); 107 printk(KERN_DEBUG "_OSC FW not grant req. control\n");
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 110022d78689..5d72866897a8 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -575,7 +575,7 @@ static int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct
575 575
576 nr = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; 576 nr = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
577 start = vma->vm_pgoff; 577 start = vma->vm_pgoff;
578 size = pci_resource_len(pdev, resno) >> PAGE_SHIFT; 578 size = ((pci_resource_len(pdev, resno) - 1) >> PAGE_SHIFT) + 1;
579 if (start < size && size - start >= nr) 579 if (start < size && size - start >= nr)
580 return 1; 580 return 1;
581 WARN(1, "process \"%s\" tried to map 0x%08lx-0x%08lx on %s BAR %d (size 0x%08lx)\n", 581 WARN(1, "process \"%s\" tried to map 0x%08lx-0x%08lx on %s BAR %d (size 0x%08lx)\n",
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 21f2ac639cab..061d1ee0046a 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -1832,7 +1832,7 @@ int pci_reset_function(struct pci_dev *dev)
1832 if (!(cap & PCI_EXP_DEVCAP_FLR)) 1832 if (!(cap & PCI_EXP_DEVCAP_FLR))
1833 return -ENOTTY; 1833 return -ENOTTY;
1834 1834
1835 if (!dev->msi_enabled && !dev->msix_enabled) 1835 if (!dev->msi_enabled && !dev->msix_enabled && dev->irq != 0)
1836 disable_irq(dev->irq); 1836 disable_irq(dev->irq);
1837 pci_save_state(dev); 1837 pci_save_state(dev);
1838 1838
@@ -1841,7 +1841,7 @@ int pci_reset_function(struct pci_dev *dev)
1841 r = pci_execute_reset_function(dev); 1841 r = pci_execute_reset_function(dev);
1842 1842
1843 pci_restore_state(dev); 1843 pci_restore_state(dev);
1844 if (!dev->msi_enabled && !dev->msix_enabled) 1844 if (!dev->msi_enabled && !dev->msix_enabled && dev->irq != 0)
1845 enable_irq(dev->irq); 1845 enable_irq(dev->irq);
1846 1846
1847 return r; 1847 return r;
@@ -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/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 bbf66ea8fd87..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;
@@ -1692,24 +1693,24 @@ static void __devinit quirk_brcm_570x_limit_vpd(struct pci_dev *dev)
1692 } 1693 }
1693} 1694}
1694 1695
1695DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 1696DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
1696 PCI_DEVICE_ID_NX2_5706, 1697 PCI_DEVICE_ID_NX2_5706,
1697 quirk_brcm_570x_limit_vpd); 1698 quirk_brcm_570x_limit_vpd);
1698DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 1699DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
1699 PCI_DEVICE_ID_NX2_5706S, 1700 PCI_DEVICE_ID_NX2_5706S,
1700 quirk_brcm_570x_limit_vpd); 1701 quirk_brcm_570x_limit_vpd);
1701DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 1702DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
1702 PCI_DEVICE_ID_NX2_5708, 1703 PCI_DEVICE_ID_NX2_5708,
1703 quirk_brcm_570x_limit_vpd); 1704 quirk_brcm_570x_limit_vpd);
1704DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 1705DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
1705 PCI_DEVICE_ID_NX2_5708S, 1706 PCI_DEVICE_ID_NX2_5708S,
1706 quirk_brcm_570x_limit_vpd); 1707 quirk_brcm_570x_limit_vpd);
1707DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 1708DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
1708 PCI_DEVICE_ID_NX2_5709, 1709 PCI_DEVICE_ID_NX2_5709,
1709 quirk_brcm_570x_limit_vpd); 1710 quirk_brcm_570x_limit_vpd);
1710DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 1711DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
1711 PCI_DEVICE_ID_NX2_5709S, 1712 PCI_DEVICE_ID_NX2_5709S,
1712 quirk_brcm_570x_limit_vpd); 1713 quirk_brcm_570x_limit_vpd);
1713 1714
1714#ifdef CONFIG_PCI_MSI 1715#ifdef CONFIG_PCI_MSI
1715/* Some chipsets do not support MSI. We cannot easily rely on setting 1716/* Some chipsets do not support MSI. We cannot easily rely on setting
@@ -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/rom.c b/drivers/pci/rom.c
index 1f5f6143f35c..132a78159b60 100644
--- a/drivers/pci/rom.c
+++ b/drivers/pci/rom.c
@@ -100,7 +100,8 @@ size_t pci_get_rom_size(void __iomem *rom, size_t size)
100 * pci_map_rom - map a PCI ROM to kernel space 100 * pci_map_rom - map a PCI ROM to kernel space
101 * @pdev: pointer to pci device struct 101 * @pdev: pointer to pci device struct
102 * @size: pointer to receive size of pci window over ROM 102 * @size: pointer to receive size of pci window over ROM
103 * @return: kernel virtual pointer to image of ROM 103 *
104 * Return: kernel virtual pointer to image of ROM
104 * 105 *
105 * Map a PCI ROM into kernel space. If ROM is boot video ROM, 106 * Map a PCI ROM into kernel space. If ROM is boot video ROM,
106 * the shadow BIOS copy will be returned instead of the 107 * the shadow BIOS copy will be returned instead of the
@@ -167,7 +168,8 @@ void __iomem *pci_map_rom(struct pci_dev *pdev, size_t *size)
167 * pci_map_rom_copy - map a PCI ROM to kernel space, create a copy 168 * pci_map_rom_copy - map a PCI ROM to kernel space, create a copy
168 * @pdev: pointer to pci device struct 169 * @pdev: pointer to pci device struct
169 * @size: pointer to receive size of pci window over ROM 170 * @size: pointer to receive size of pci window over ROM
170 * @return: kernel virtual pointer to image of ROM 171 *
172 * Return: kernel virtual pointer to image of ROM
171 * 173 *
172 * Map a PCI ROM into kernel space. If ROM is boot video ROM, 174 * Map a PCI ROM into kernel space. If ROM is boot video ROM,
173 * the shadow BIOS copy will be returned instead of the 175 * the shadow BIOS copy will be returned instead of the
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/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
index dcce9f5d8465..4a110b7b2673 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -351,10 +351,11 @@ int verify_cis_cache(struct pcmcia_socket *s)
351 char *buf; 351 char *buf;
352 352
353 buf = kmalloc(256, GFP_KERNEL); 353 buf = kmalloc(256, GFP_KERNEL);
354 if (buf == NULL) 354 if (buf == NULL) {
355 dev_printk(KERN_WARNING, &s->dev, 355 dev_printk(KERN_WARNING, &s->dev,
356 "no memory for verifying CIS\n"); 356 "no memory for verifying CIS\n");
357 return -ENOMEM; 357 return -ENOMEM;
358 }
358 list_for_each_entry(cis, &s->cis_cache, node) { 359 list_for_each_entry(cis, &s->cis_cache, node) {
359 int len = cis->len; 360 int len = cis->len;
360 361
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index c68c5d338285..0660ad182589 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -186,12 +186,6 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)
186 186
187 spin_lock_init(&socket->lock); 187 spin_lock_init(&socket->lock);
188 188
189 if (socket->resource_ops->init) {
190 ret = socket->resource_ops->init(socket);
191 if (ret)
192 return (ret);
193 }
194
195 /* try to obtain a socket number [yes, it gets ugly if we 189 /* try to obtain a socket number [yes, it gets ugly if we
196 * register more than 2^sizeof(unsigned int) pcmcia 190 * register more than 2^sizeof(unsigned int) pcmcia
197 * sockets... but the socket number is deprecated 191 * sockets... but the socket number is deprecated
@@ -226,7 +220,7 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)
226 /* set proper values in socket->dev */ 220 /* set proper values in socket->dev */
227 dev_set_drvdata(&socket->dev, socket); 221 dev_set_drvdata(&socket->dev, socket);
228 socket->dev.class = &pcmcia_socket_class; 222 socket->dev.class = &pcmcia_socket_class;
229 snprintf(socket->dev.bus_id, BUS_ID_SIZE, "pcmcia_socket%u", socket->sock); 223 dev_set_name(&socket->dev, "pcmcia_socket%u", socket->sock);
230 224
231 /* base address = 0, map = 0 */ 225 /* base address = 0, map = 0 */
232 socket->cis_mem.flags = 0; 226 socket->cis_mem.flags = 0;
@@ -239,6 +233,12 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)
239 mutex_init(&socket->skt_mutex); 233 mutex_init(&socket->skt_mutex);
240 spin_lock_init(&socket->thread_lock); 234 spin_lock_init(&socket->thread_lock);
241 235
236 if (socket->resource_ops->init) {
237 ret = socket->resource_ops->init(socket);
238 if (ret)
239 goto err;
240 }
241
242 tsk = kthread_run(pccardd, socket, "pccardd"); 242 tsk = kthread_run(pccardd, socket, "pccardd");
243 if (IS_ERR(tsk)) { 243 if (IS_ERR(tsk)) {
244 ret = PTR_ERR(tsk); 244 ret = PTR_ERR(tsk);
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 795660255490..47cab31ff6e4 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -622,7 +622,6 @@ struct pcmcia_device * pcmcia_device_add(struct pcmcia_socket *s, unsigned int f
622{ 622{
623 struct pcmcia_device *p_dev, *tmp_dev; 623 struct pcmcia_device *p_dev, *tmp_dev;
624 unsigned long flags; 624 unsigned long flags;
625 int bus_id_len;
626 625
627 s = pcmcia_get_socket(s); 626 s = pcmcia_get_socket(s);
628 if (!s) 627 if (!s)
@@ -650,12 +649,12 @@ struct pcmcia_device * pcmcia_device_add(struct pcmcia_socket *s, unsigned int f
650 /* by default don't allow DMA */ 649 /* by default don't allow DMA */
651 p_dev->dma_mask = DMA_MASK_NONE; 650 p_dev->dma_mask = DMA_MASK_NONE;
652 p_dev->dev.dma_mask = &p_dev->dma_mask; 651 p_dev->dev.dma_mask = &p_dev->dma_mask;
653 bus_id_len = sprintf (p_dev->dev.bus_id, "%d.%d", p_dev->socket->sock, p_dev->device_no); 652 dev_set_name(&p_dev->dev, "%d.%d", p_dev->socket->sock, p_dev->device_no);
654 653 if (!dev_name(&p_dev->dev))
655 p_dev->devname = kmalloc(6 + bus_id_len + 1, GFP_KERNEL); 654 goto err_free;
655 p_dev->devname = kasprintf(GFP_KERNEL, "pcmcia%s", dev_name(&p_dev->dev));
656 if (!p_dev->devname) 656 if (!p_dev->devname)
657 goto err_free; 657 goto err_free;
658 sprintf (p_dev->devname, "pcmcia%s", p_dev->dev.bus_id);
659 ds_dev_dbg(3, &p_dev->dev, "devname is %s\n", p_dev->devname); 658 ds_dev_dbg(3, &p_dev->dev, "devname is %s\n", p_dev->devname);
660 659
661 spin_lock_irqsave(&pcmcia_dev_list_lock, flags); 660 spin_lock_irqsave(&pcmcia_dev_list_lock, flags);
@@ -668,6 +667,8 @@ struct pcmcia_device * pcmcia_device_add(struct pcmcia_socket *s, unsigned int f
668 list_for_each_entry(tmp_dev, &s->devices_list, socket_device_list) 667 list_for_each_entry(tmp_dev, &s->devices_list, socket_device_list)
669 if (p_dev->func == tmp_dev->func) { 668 if (p_dev->func == tmp_dev->func) {
670 p_dev->function_config = tmp_dev->function_config; 669 p_dev->function_config = tmp_dev->function_config;
670 p_dev->io = tmp_dev->io;
671 p_dev->irq = tmp_dev->irq;
671 kref_get(&p_dev->function_config->ref); 672 kref_get(&p_dev->function_config->ref);
672 } 673 }
673 674
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index 76d4a98f0955..f5d0ba8e22d5 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -302,9 +302,10 @@ int pcmcia_modify_configuration(struct pcmcia_device *p_dev,
302 /* We only allow changing Vpp1 and Vpp2 to the same value */ 302 /* We only allow changing Vpp1 and Vpp2 to the same value */
303 if ((mod->Attributes & CONF_VPP1_CHANGE_VALID) && 303 if ((mod->Attributes & CONF_VPP1_CHANGE_VALID) &&
304 (mod->Attributes & CONF_VPP2_CHANGE_VALID)) { 304 (mod->Attributes & CONF_VPP2_CHANGE_VALID)) {
305 if (mod->Vpp1 != mod->Vpp2) 305 if (mod->Vpp1 != mod->Vpp2) {
306 ds_dbg(s, 0, "Vpp1 and Vpp2 must be the same\n"); 306 ds_dbg(s, 0, "Vpp1 and Vpp2 must be the same\n");
307 return -EINVAL; 307 return -EINVAL;
308 }
308 s->socket.Vpp = mod->Vpp1; 309 s->socket.Vpp = mod->Vpp1;
309 if (s->ops->set_socket(s, &s->socket)) { 310 if (s->ops->set_socket(s, &s->socket)) {
310 dev_printk(KERN_WARNING, &s->dev, 311 dev_printk(KERN_WARNING, &s->dev,
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index 17f4ecf1c0c5..9ca22c7aafb2 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -71,7 +71,7 @@ static DEFINE_MUTEX(rsrc_mutex);
71======================================================================*/ 71======================================================================*/
72 72
73static struct resource * 73static struct resource *
74make_resource(resource_size_t b, resource_size_t n, int flags, char *name) 74make_resource(resource_size_t b, resource_size_t n, int flags, const char *name)
75{ 75{
76 struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL); 76 struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL);
77 77
@@ -624,7 +624,7 @@ static int nonstatic_adjust_io_region(struct resource *res, unsigned long r_star
624static struct resource *nonstatic_find_io_region(unsigned long base, int num, 624static struct resource *nonstatic_find_io_region(unsigned long base, int num,
625 unsigned long align, struct pcmcia_socket *s) 625 unsigned long align, struct pcmcia_socket *s)
626{ 626{
627 struct resource *res = make_resource(0, num, IORESOURCE_IO, s->dev.bus_id); 627 struct resource *res = make_resource(0, num, IORESOURCE_IO, dev_name(&s->dev));
628 struct socket_data *s_data = s->resource_data; 628 struct socket_data *s_data = s->resource_data;
629 struct pcmcia_align_data data; 629 struct pcmcia_align_data data;
630 unsigned long min = base; 630 unsigned long min = base;
@@ -658,7 +658,7 @@ static struct resource *nonstatic_find_io_region(unsigned long base, int num,
658static struct resource * nonstatic_find_mem_region(u_long base, u_long num, 658static struct resource * nonstatic_find_mem_region(u_long base, u_long num,
659 u_long align, int low, struct pcmcia_socket *s) 659 u_long align, int low, struct pcmcia_socket *s)
660{ 660{
661 struct resource *res = make_resource(0, num, IORESOURCE_MEM, s->dev.bus_id); 661 struct resource *res = make_resource(0, num, IORESOURCE_MEM, dev_name(&s->dev));
662 struct socket_data *s_data = s->resource_data; 662 struct socket_data *s_data = s->resource_data;
663 struct pcmcia_align_data data; 663 struct pcmcia_align_data data;
664 unsigned long min, max; 664 unsigned long min, max;
diff --git a/drivers/pnp/interface.c b/drivers/pnp/interface.c
index 478a4a739c00..c3f1c8e9d254 100644
--- a/drivers/pnp/interface.c
+++ b/drivers/pnp/interface.c
@@ -12,7 +12,6 @@
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/list.h> 13#include <linux/list.h>
14#include <linux/types.h> 14#include <linux/types.h>
15#include <linux/pnp.h>
16#include <linux/stat.h> 15#include <linux/stat.h>
17#include <linux/ctype.h> 16#include <linux/ctype.h>
18#include <linux/slab.h> 17#include <linux/slab.h>
diff --git a/drivers/ps3/ps3-lpm.c b/drivers/ps3/ps3-lpm.c
index 85edf945ab86..204158cf7a55 100644
--- a/drivers/ps3/ps3-lpm.c
+++ b/drivers/ps3/ps3-lpm.c
@@ -22,6 +22,7 @@
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/interrupt.h> 23#include <linux/interrupt.h>
24#include <linux/uaccess.h> 24#include <linux/uaccess.h>
25#include <asm/smp.h>
25#include <asm/time.h> 26#include <asm/time.h>
26#include <asm/ps3.h> 27#include <asm/ps3.h>
27#include <asm/lv1call.h> 28#include <asm/lv1call.h>
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/regulator/Kconfig b/drivers/regulator/Kconfig
index 4dada6ee1119..39360e2a4540 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -1,6 +1,4 @@
1menu "Voltage and Current regulators" 1menuconfig REGULATOR
2
3config REGULATOR
4 bool "Voltage and Current Regulator Support" 2 bool "Voltage and Current Regulator Support"
5 default n 3 default n
6 help 4 help
@@ -23,21 +21,20 @@ config REGULATOR
23 21
24 If unsure, say no. 22 If unsure, say no.
25 23
24if REGULATOR
25
26config REGULATOR_DEBUG 26config REGULATOR_DEBUG
27 bool "Regulator debug support" 27 bool "Regulator debug support"
28 depends on REGULATOR
29 help 28 help
30 Say yes here to enable debugging support. 29 Say yes here to enable debugging support.
31 30
32config REGULATOR_FIXED_VOLTAGE 31config REGULATOR_FIXED_VOLTAGE
33 tristate 32 tristate
34 default n 33 default n
35 select REGULATOR
36 34
37config REGULATOR_VIRTUAL_CONSUMER 35config REGULATOR_VIRTUAL_CONSUMER
38 tristate "Virtual regulator consumer support" 36 tristate "Virtual regulator consumer support"
39 default n 37 default n
40 select REGULATOR
41 help 38 help
42 This driver provides a virtual consumer for the voltage and 39 This driver provides a virtual consumer for the voltage and
43 current regulator API which provides sysfs controls for 40 current regulator API which provides sysfs controls for
@@ -49,7 +46,6 @@ config REGULATOR_VIRTUAL_CONSUMER
49config REGULATOR_BQ24022 46config REGULATOR_BQ24022
50 tristate "TI bq24022 Dual Input 1-Cell Li-Ion Charger IC" 47 tristate "TI bq24022 Dual Input 1-Cell Li-Ion Charger IC"
51 default n 48 default n
52 select REGULATOR
53 help 49 help
54 This driver controls a TI bq24022 Charger attached via 50 This driver controls a TI bq24022 Charger attached via
55 GPIOs. The provided current regulator can enable/disable 51 GPIOs. The provided current regulator can enable/disable
@@ -59,7 +55,6 @@ config REGULATOR_BQ24022
59config REGULATOR_WM8350 55config REGULATOR_WM8350
60 tristate "Wolfson Microelectroncis WM8350 AudioPlus PMIC" 56 tristate "Wolfson Microelectroncis WM8350 AudioPlus PMIC"
61 depends on MFD_WM8350 57 depends on MFD_WM8350
62 select REGULATOR
63 help 58 help
64 This driver provides support for the voltage and current regulators 59 This driver provides support for the voltage and current regulators
65 of the WM8350 AudioPlus PMIC. 60 of the WM8350 AudioPlus PMIC.
@@ -67,7 +62,6 @@ config REGULATOR_WM8350
67config REGULATOR_WM8400 62config REGULATOR_WM8400
68 tristate "Wolfson Microelectroncis WM8400 AudioPlus PMIC" 63 tristate "Wolfson Microelectroncis WM8400 AudioPlus PMIC"
69 depends on MFD_WM8400 64 depends on MFD_WM8400
70 select REGULATOR
71 help 65 help
72 This driver provides support for the voltage regulators of the 66 This driver provides support for the voltage regulators of the
73 WM8400 AudioPlus PMIC. 67 WM8400 AudioPlus PMIC.
@@ -75,9 +69,8 @@ config REGULATOR_WM8400
75config REGULATOR_DA903X 69config REGULATOR_DA903X
76 tristate "Support regulators on Dialog Semiconductor DA9030/DA9034 PMIC" 70 tristate "Support regulators on Dialog Semiconductor DA9030/DA9034 PMIC"
77 depends on PMIC_DA903X 71 depends on PMIC_DA903X
78 select REGULATOR
79 help 72 help
80 Say y here to support the BUCKs and LDOs regulators found on 73 Say y here to support the BUCKs and LDOs regulators found on
81 Dialog Semiconductor DA9030/DA9034 PMIC. 74 Dialog Semiconductor DA9030/DA9034 PMIC.
82 75
83endmenu 76endif
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 8abbb2020af9..123092d8a984 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -277,6 +277,14 @@ config RTC_DRV_FM3130
277 This driver can also be built as a module. If so the module 277 This driver can also be built as a module. If so the module
278 will be called rtc-fm3130. 278 will be called rtc-fm3130.
279 279
280config RTC_DRV_RX8581
281 tristate "Epson RX-8581"
282 help
283 If you say yes here you will get support for the Epson RX-8581.
284
285 This driver can also be built as a module. If so the module
286 will be called rtc-rx8581.
287
280endif # I2C 288endif # I2C
281 289
282comment "SPI RTC drivers" 290comment "SPI RTC drivers"
@@ -302,6 +310,17 @@ config RTC_DRV_DS1305
302 This driver can also be built as a module. If so, the module 310 This driver can also be built as a module. If so, the module
303 will be called rtc-ds1305. 311 will be called rtc-ds1305.
304 312
313config RTC_DRV_DS1390
314 tristate "Dallas/Maxim DS1390/93/94"
315 help
316 If you say yes here you get support for the DS1390/93/94 chips.
317
318 This driver only supports the RTC feature, and not other chip
319 features such as alarms and trickle charging.
320
321 This driver can also be built as a module. If so, the module
322 will be called rtc-ds1390.
323
305config RTC_DRV_MAX6902 324config RTC_DRV_MAX6902
306 tristate "Maxim MAX6902" 325 tristate "Maxim MAX6902"
307 help 326 help
@@ -468,6 +487,16 @@ config RTC_DRV_V3020
468 This driver can also be built as a module. If so, the module 487 This driver can also be built as a module. If so, the module
469 will be called rtc-v3020. 488 will be called rtc-v3020.
470 489
490config RTC_DRV_WM8350
491 tristate "Wolfson Microelectronics WM8350 RTC"
492 depends on MFD_WM8350
493 help
494 If you say yes here you will get support for the RTC subsystem
495 of the Wolfson Microelectronics WM8350.
496
497 This driver can also be built as a module. If so, the module
498 will be called "rtc-wm8350".
499
471comment "on-CPU RTC drivers" 500comment "on-CPU RTC drivers"
472 501
473config RTC_DRV_OMAP 502config RTC_DRV_OMAP
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index e9e8474cc8fe..6e79c912bf9e 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -28,6 +28,7 @@ obj-$(CONFIG_RTC_DRV_DS1302) += rtc-ds1302.o
28obj-$(CONFIG_RTC_DRV_DS1305) += rtc-ds1305.o 28obj-$(CONFIG_RTC_DRV_DS1305) += rtc-ds1305.o
29obj-$(CONFIG_RTC_DRV_DS1307) += rtc-ds1307.o 29obj-$(CONFIG_RTC_DRV_DS1307) += rtc-ds1307.o
30obj-$(CONFIG_RTC_DRV_DS1374) += rtc-ds1374.o 30obj-$(CONFIG_RTC_DRV_DS1374) += rtc-ds1374.o
31obj-$(CONFIG_RTC_DRV_DS1390) += rtc-ds1390.o
31obj-$(CONFIG_RTC_DRV_DS1511) += rtc-ds1511.o 32obj-$(CONFIG_RTC_DRV_DS1511) += rtc-ds1511.o
32obj-$(CONFIG_RTC_DRV_DS1553) += rtc-ds1553.o 33obj-$(CONFIG_RTC_DRV_DS1553) += rtc-ds1553.o
33obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o 34obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o
@@ -57,6 +58,7 @@ obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o
57obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o 58obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o
58obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o 59obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o
59obj-$(CONFIG_RTC_DRV_RS5C372) += rtc-rs5c372.o 60obj-$(CONFIG_RTC_DRV_RS5C372) += rtc-rs5c372.o
61obj-$(CONFIG_RTC_DRV_RX8581) += rtc-rx8581.o
60obj-$(CONFIG_RTC_DRV_S35390A) += rtc-s35390a.o 62obj-$(CONFIG_RTC_DRV_S35390A) += rtc-s35390a.o
61obj-$(CONFIG_RTC_DRV_S3C) += rtc-s3c.o 63obj-$(CONFIG_RTC_DRV_S3C) += rtc-s3c.o
62obj-$(CONFIG_RTC_DRV_SA1100) += rtc-sa1100.o 64obj-$(CONFIG_RTC_DRV_SA1100) += rtc-sa1100.o
@@ -66,4 +68,5 @@ obj-$(CONFIG_RTC_DRV_TEST) += rtc-test.o
66obj-$(CONFIG_RTC_DRV_TWL4030) += rtc-twl4030.o 68obj-$(CONFIG_RTC_DRV_TWL4030) += rtc-twl4030.o
67obj-$(CONFIG_RTC_DRV_V3020) += rtc-v3020.o 69obj-$(CONFIG_RTC_DRV_V3020) += rtc-v3020.o
68obj-$(CONFIG_RTC_DRV_VR41XX) += rtc-vr41xx.o 70obj-$(CONFIG_RTC_DRV_VR41XX) += rtc-vr41xx.o
71obj-$(CONFIG_RTC_DRV_WM8350) += rtc-wm8350.o
69obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o 72obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o
diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c
index 7af60b98d8a4..a04c1b6b1575 100644
--- a/drivers/rtc/interface.c
+++ b/drivers/rtc/interface.c
@@ -271,7 +271,7 @@ int rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)
271 dev_dbg(&rtc->dev, "alarm rollover: %s\n", "year"); 271 dev_dbg(&rtc->dev, "alarm rollover: %s\n", "year");
272 do { 272 do {
273 alarm->time.tm_year++; 273 alarm->time.tm_year++;
274 } while (!rtc_valid_tm(&alarm->time)); 274 } while (rtc_valid_tm(&alarm->time) != 0);
275 break; 275 break;
276 276
277 default: 277 default:
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index 5549231179a2..6cf8e282338f 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -794,7 +794,7 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
794 goto cleanup2; 794 goto cleanup2;
795 } 795 }
796 796
797 pr_info("%s: alarms up to one %s%s, %zd bytes nvram, %s irqs\n", 797 pr_info("%s: alarms up to one %s%s, %zd bytes nvram%s\n",
798 cmos_rtc.rtc->dev.bus_id, 798 cmos_rtc.rtc->dev.bus_id,
799 is_valid_irq(rtc_irq) 799 is_valid_irq(rtc_irq)
800 ? (cmos_rtc.mon_alrm 800 ? (cmos_rtc.mon_alrm
diff --git a/drivers/rtc/rtc-ds1390.c b/drivers/rtc/rtc-ds1390.c
new file mode 100644
index 000000000000..599e976bf014
--- /dev/null
+++ b/drivers/rtc/rtc-ds1390.c
@@ -0,0 +1,220 @@
1/*
2 * rtc-ds1390.c -- driver for DS1390/93/94
3 *
4 * Copyright (C) 2008 Mercury IMC Ltd
5 * Written by Mark Jackson <mpfj@mimc.co.uk>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * NOTE : Currently this driver only supports the bare minimum for read
12 * and write the RTC. The extra features provided by the chip family
13 * (alarms, trickle charger, different control registers) are unavailable.
14 */
15
16#include <linux/platform_device.h>
17#include <linux/rtc.h>
18#include <linux/spi/spi.h>
19#include <linux/bcd.h>
20
21#define DS1390_REG_100THS 0x00
22#define DS1390_REG_SECONDS 0x01
23#define DS1390_REG_MINUTES 0x02
24#define DS1390_REG_HOURS 0x03
25#define DS1390_REG_DAY 0x04
26#define DS1390_REG_DATE 0x05
27#define DS1390_REG_MONTH_CENT 0x06
28#define DS1390_REG_YEAR 0x07
29
30#define DS1390_REG_ALARM_100THS 0x08
31#define DS1390_REG_ALARM_SECONDS 0x09
32#define DS1390_REG_ALARM_MINUTES 0x0A
33#define DS1390_REG_ALARM_HOURS 0x0B
34#define DS1390_REG_ALARM_DAY_DATE 0x0C
35
36#define DS1390_REG_CONTROL 0x0D
37#define DS1390_REG_STATUS 0x0E
38#define DS1390_REG_TRICKLE 0x0F
39
40struct ds1390 {
41 struct rtc_device *rtc;
42 u8 txrx_buf[9]; /* cmd + 8 registers */
43};
44
45static void ds1390_set_reg(struct device *dev, unsigned char address,
46 unsigned char data)
47{
48 struct spi_device *spi = to_spi_device(dev);
49 struct ds1390 *chip = dev_get_drvdata(dev);
50
51 /* Set MSB to indicate write */
52 chip->txrx_buf[0] = address | 0x80;
53 chip->txrx_buf[1] = data;
54
55 /* do the i/o */
56 spi_write_then_read(spi, chip->txrx_buf, 2, NULL, 0);
57}
58
59static int ds1390_get_reg(struct device *dev, unsigned char address,
60 unsigned char *data)
61{
62 struct spi_device *spi = to_spi_device(dev);
63 struct ds1390 *chip = dev_get_drvdata(dev);
64 int status;
65
66 if (!data)
67 return -EINVAL;
68
69 /* Clear MSB to indicate read */
70 chip->txrx_buf[0] = address & 0x7f;
71 /* do the i/o */
72 status = spi_write_then_read(spi, chip->txrx_buf, 1, chip->txrx_buf, 1);
73 if (status != 0)
74 return status;
75
76 *data = chip->txrx_buf[1];
77
78 return 0;
79}
80
81static int ds1390_get_datetime(struct device *dev, struct rtc_time *dt)
82{
83 struct spi_device *spi = to_spi_device(dev);
84 struct ds1390 *chip = dev_get_drvdata(dev);
85 int status;
86
87 /* build the message */
88 chip->txrx_buf[0] = DS1390_REG_SECONDS;
89
90 /* do the i/o */
91 status = spi_write_then_read(spi, chip->txrx_buf, 1, chip->txrx_buf, 8);
92 if (status != 0)
93 return status;
94
95 /* The chip sends data in this order:
96 * Seconds, Minutes, Hours, Day, Date, Month / Century, Year */
97 dt->tm_sec = bcd2bin(chip->txrx_buf[0]);
98 dt->tm_min = bcd2bin(chip->txrx_buf[1]);
99 dt->tm_hour = bcd2bin(chip->txrx_buf[2]);
100 dt->tm_wday = bcd2bin(chip->txrx_buf[3]);
101 dt->tm_mday = bcd2bin(chip->txrx_buf[4]);
102 /* mask off century bit */
103 dt->tm_mon = bcd2bin(chip->txrx_buf[5] & 0x7f) - 1;
104 /* adjust for century bit */
105 dt->tm_year = bcd2bin(chip->txrx_buf[6]) + ((chip->txrx_buf[5] & 0x80) ? 100 : 0);
106
107 return rtc_valid_tm(dt);
108}
109
110static int ds1390_set_datetime(struct device *dev, struct rtc_time *dt)
111{
112 struct spi_device *spi = to_spi_device(dev);
113 struct ds1390 *chip = dev_get_drvdata(dev);
114
115 /* build the message */
116 chip->txrx_buf[0] = DS1390_REG_SECONDS | 0x80;
117 chip->txrx_buf[1] = bin2bcd(dt->tm_sec);
118 chip->txrx_buf[2] = bin2bcd(dt->tm_min);
119 chip->txrx_buf[3] = bin2bcd(dt->tm_hour);
120 chip->txrx_buf[4] = bin2bcd(dt->tm_wday);
121 chip->txrx_buf[5] = bin2bcd(dt->tm_mday);
122 chip->txrx_buf[6] = bin2bcd(dt->tm_mon + 1) |
123 ((dt->tm_year > 99) ? 0x80 : 0x00);
124 chip->txrx_buf[7] = bin2bcd(dt->tm_year % 100);
125
126 /* do the i/o */
127 return spi_write_then_read(spi, chip->txrx_buf, 8, NULL, 0);
128}
129
130static int ds1390_read_time(struct device *dev, struct rtc_time *tm)
131{
132 return ds1390_get_datetime(dev, tm);
133}
134
135static int ds1390_set_time(struct device *dev, struct rtc_time *tm)
136{
137 return ds1390_set_datetime(dev, tm);
138}
139
140static const struct rtc_class_ops ds1390_rtc_ops = {
141 .read_time = ds1390_read_time,
142 .set_time = ds1390_set_time,
143};
144
145static int __devinit ds1390_probe(struct spi_device *spi)
146{
147 struct rtc_device *rtc;
148 unsigned char tmp;
149 struct ds1390 *chip;
150 int res;
151
152 printk(KERN_DEBUG "DS1390 SPI RTC driver\n");
153
154 rtc = rtc_device_register("ds1390",
155 &spi->dev, &ds1390_rtc_ops, THIS_MODULE);
156 if (IS_ERR(rtc)) {
157 printk(KERN_ALERT "RTC : unable to register device\n");
158 return PTR_ERR(rtc);
159 }
160
161 spi->mode = SPI_MODE_3;
162 spi->bits_per_word = 8;
163 spi_setup(spi);
164
165 chip = kzalloc(sizeof *chip, GFP_KERNEL);
166 if (!chip) {
167 printk(KERN_ALERT "RTC : unable to allocate device memory\n");
168 rtc_device_unregister(rtc);
169 return -ENOMEM;
170 }
171 chip->rtc = rtc;
172 dev_set_drvdata(&spi->dev, chip);
173
174 res = ds1390_get_reg(&spi->dev, DS1390_REG_SECONDS, &tmp);
175 if (res) {
176 printk(KERN_ALERT "RTC : unable to read device\n");
177 rtc_device_unregister(rtc);
178 return res;
179 }
180
181 return 0;
182}
183
184static int __devexit ds1390_remove(struct spi_device *spi)
185{
186 struct ds1390 *chip = platform_get_drvdata(spi);
187 struct rtc_device *rtc = chip->rtc;
188
189 if (rtc)
190 rtc_device_unregister(rtc);
191
192 kfree(chip);
193
194 return 0;
195}
196
197static struct spi_driver ds1390_driver = {
198 .driver = {
199 .name = "rtc-ds1390",
200 .owner = THIS_MODULE,
201 },
202 .probe = ds1390_probe,
203 .remove = __devexit_p(ds1390_remove),
204};
205
206static __init int ds1390_init(void)
207{
208 return spi_register_driver(&ds1390_driver);
209}
210module_init(ds1390_init);
211
212static __exit void ds1390_exit(void)
213{
214 spi_unregister_driver(&ds1390_driver);
215}
216module_exit(ds1390_exit);
217
218MODULE_DESCRIPTION("DS1390/93/94 SPI RTC driver");
219MODULE_AUTHOR("Mark Jackson <mpfj@mimc.co.uk>");
220MODULE_LICENSE("GPL");
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-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-rx8581.c b/drivers/rtc/rtc-rx8581.c
new file mode 100644
index 000000000000..c9522f3bc21c
--- /dev/null
+++ b/drivers/rtc/rtc-rx8581.c
@@ -0,0 +1,281 @@
1/*
2 * An I2C driver for the Epson RX8581 RTC
3 *
4 * Author: Martyn Welch <martyn.welch@gefanuc.com>
5 * Copyright 2008 GE Fanuc Intelligent Platforms Embedded Systems, Inc.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * Based on: rtc-pcf8563.c (An I2C driver for the Philips PCF8563 RTC)
12 * Copyright 2005-06 Tower Technologies
13 */
14
15#include <linux/module.h>
16#include <linux/i2c.h>
17#include <linux/bcd.h>
18#include <linux/rtc.h>
19#include <linux/log2.h>
20
21#define DRV_VERSION "0.1"
22
23#define RX8581_REG_SC 0x00 /* Second in BCD */
24#define RX8581_REG_MN 0x01 /* Minute in BCD */
25#define RX8581_REG_HR 0x02 /* Hour in BCD */
26#define RX8581_REG_DW 0x03 /* Day of Week */
27#define RX8581_REG_DM 0x04 /* Day of Month in BCD */
28#define RX8581_REG_MO 0x05 /* Month in BCD */
29#define RX8581_REG_YR 0x06 /* Year in BCD */
30#define RX8581_REG_RAM 0x07 /* RAM */
31#define RX8581_REG_AMN 0x08 /* Alarm Min in BCD*/
32#define RX8581_REG_AHR 0x09 /* Alarm Hour in BCD */
33#define RX8581_REG_ADM 0x0A
34#define RX8581_REG_ADW 0x0A
35#define RX8581_REG_TMR0 0x0B
36#define RX8581_REG_TMR1 0x0C
37#define RX8581_REG_EXT 0x0D /* Extension Register */
38#define RX8581_REG_FLAG 0x0E /* Flag Register */
39#define RX8581_REG_CTRL 0x0F /* Control Register */
40
41
42/* Flag Register bit definitions */
43#define RX8581_FLAG_UF 0x20 /* Update */
44#define RX8581_FLAG_TF 0x10 /* Timer */
45#define RX8581_FLAG_AF 0x08 /* Alarm */
46#define RX8581_FLAG_VLF 0x02 /* Voltage Low */
47
48/* Control Register bit definitions */
49#define RX8581_CTRL_UIE 0x20 /* Update Interrupt Enable */
50#define RX8581_CTRL_TIE 0x10 /* Timer Interrupt Enable */
51#define RX8581_CTRL_AIE 0x08 /* Alarm Interrupt Enable */
52#define RX8581_CTRL_STOP 0x02 /* STOP bit */
53#define RX8581_CTRL_RESET 0x01 /* RESET bit */
54
55static struct i2c_driver rx8581_driver;
56
57/*
58 * In the routines that deal directly with the rx8581 hardware, we use
59 * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch.
60 */
61static int rx8581_get_datetime(struct i2c_client *client, struct rtc_time *tm)
62{
63 unsigned char date[7];
64 int data, err;
65
66 /* First we ensure that the "update flag" is not set, we read the
67 * time and date then re-read the "update flag". If the update flag
68 * has been set, we know that the time has changed during the read so
69 * we repeat the whole process again.
70 */
71 data = i2c_smbus_read_byte_data(client, RX8581_REG_FLAG);
72 if (data < 0) {
73 dev_err(&client->dev, "Unable to read device flags\n");
74 return -EIO;
75 }
76
77 do {
78 /* If update flag set, clear it */
79 if (data & RX8581_FLAG_UF) {
80 err = i2c_smbus_write_byte_data(client,
81 RX8581_REG_FLAG, (data & ~RX8581_FLAG_UF));
82 if (err != 0) {
83 dev_err(&client->dev, "Unable to write device "
84 "flags\n");
85 return -EIO;
86 }
87 }
88
89 /* Now read time and date */
90 err = i2c_smbus_read_i2c_block_data(client, RX8581_REG_SC,
91 7, date);
92 if (err < 0) {
93 dev_err(&client->dev, "Unable to read date\n");
94 return -EIO;
95 }
96
97 /* Check flag register */
98 data = i2c_smbus_read_byte_data(client, RX8581_REG_FLAG);
99 if (data < 0) {
100 dev_err(&client->dev, "Unable to read device flags\n");
101 return -EIO;
102 }
103 } while (data & RX8581_FLAG_UF);
104
105 if (data & RX8581_FLAG_VLF)
106 dev_info(&client->dev,
107 "low voltage detected, date/time is not reliable.\n");
108
109 dev_dbg(&client->dev,
110 "%s: raw data is sec=%02x, min=%02x, hr=%02x, "
111 "wday=%02x, mday=%02x, mon=%02x, year=%02x\n",
112 __func__,
113 date[0], date[1], date[2], date[3], date[4], date[5], date[6]);
114
115 tm->tm_sec = bcd2bin(date[RX8581_REG_SC] & 0x7F);
116 tm->tm_min = bcd2bin(date[RX8581_REG_MN] & 0x7F);
117 tm->tm_hour = bcd2bin(date[RX8581_REG_HR] & 0x3F); /* rtc hr 0-23 */
118 tm->tm_wday = ilog2(date[RX8581_REG_DW] & 0x7F);
119 tm->tm_mday = bcd2bin(date[RX8581_REG_DM] & 0x3F);
120 tm->tm_mon = bcd2bin(date[RX8581_REG_MO] & 0x1F) - 1; /* rtc mn 1-12 */
121 tm->tm_year = bcd2bin(date[RX8581_REG_YR]);
122 if (tm->tm_year < 70)
123 tm->tm_year += 100; /* assume we are in 1970...2069 */
124
125
126 dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
127 "mday=%d, mon=%d, year=%d, wday=%d\n",
128 __func__,
129 tm->tm_sec, tm->tm_min, tm->tm_hour,
130 tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
131
132 err = rtc_valid_tm(tm);
133 if (err < 0)
134 dev_err(&client->dev, "retrieved date/time is not valid.\n");
135
136 return err;
137}
138
139static int rx8581_set_datetime(struct i2c_client *client, struct rtc_time *tm)
140{
141 int data, err;
142 unsigned char buf[7];
143
144 dev_dbg(&client->dev, "%s: secs=%d, mins=%d, hours=%d, "
145 "mday=%d, mon=%d, year=%d, wday=%d\n",
146 __func__,
147 tm->tm_sec, tm->tm_min, tm->tm_hour,
148 tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
149
150 /* hours, minutes and seconds */
151 buf[RX8581_REG_SC] = bin2bcd(tm->tm_sec);
152 buf[RX8581_REG_MN] = bin2bcd(tm->tm_min);
153 buf[RX8581_REG_HR] = bin2bcd(tm->tm_hour);
154
155 buf[RX8581_REG_DM] = bin2bcd(tm->tm_mday);
156
157 /* month, 1 - 12 */
158 buf[RX8581_REG_MO] = bin2bcd(tm->tm_mon + 1);
159
160 /* year and century */
161 buf[RX8581_REG_YR] = bin2bcd(tm->tm_year % 100);
162 buf[RX8581_REG_DW] = (0x1 << tm->tm_wday);
163
164 /* Stop the clock */
165 data = i2c_smbus_read_byte_data(client, RX8581_REG_CTRL);
166 if (data < 0) {
167 dev_err(&client->dev, "Unable to read control register\n");
168 return -EIO;
169 }
170
171 err = i2c_smbus_write_byte_data(client, RX8581_REG_FLAG,
172 (data | RX8581_CTRL_STOP));
173 if (err < 0) {
174 dev_err(&client->dev, "Unable to write control register\n");
175 return -EIO;
176 }
177
178 /* write register's data */
179 err = i2c_smbus_write_i2c_block_data(client, RX8581_REG_SC, 7, buf);
180 if (err < 0) {
181 dev_err(&client->dev, "Unable to write to date registers\n");
182 return -EIO;
183 }
184
185 /* Restart the clock */
186 data = i2c_smbus_read_byte_data(client, RX8581_REG_CTRL);
187 if (data < 0) {
188 dev_err(&client->dev, "Unable to read control register\n");
189 return -EIO;
190 }
191
192 err = i2c_smbus_write_byte_data(client, RX8581_REG_FLAG,
193 (data | ~(RX8581_CTRL_STOP)));
194 if (err != 0) {
195 dev_err(&client->dev, "Unable to write control register\n");
196 return -EIO;
197 }
198
199 return 0;
200}
201
202static int rx8581_rtc_read_time(struct device *dev, struct rtc_time *tm)
203{
204 return rx8581_get_datetime(to_i2c_client(dev), tm);
205}
206
207static int rx8581_rtc_set_time(struct device *dev, struct rtc_time *tm)
208{
209 return rx8581_set_datetime(to_i2c_client(dev), tm);
210}
211
212static const struct rtc_class_ops rx8581_rtc_ops = {
213 .read_time = rx8581_rtc_read_time,
214 .set_time = rx8581_rtc_set_time,
215};
216
217static int __devinit rx8581_probe(struct i2c_client *client,
218 const struct i2c_device_id *id)
219{
220 struct rtc_device *rtc;
221
222 dev_dbg(&client->dev, "%s\n", __func__);
223
224 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
225 return -ENODEV;
226
227 dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n");
228
229 rtc = rtc_device_register(rx8581_driver.driver.name,
230 &client->dev, &rx8581_rtc_ops, THIS_MODULE);
231
232 if (IS_ERR(rtc))
233 return PTR_ERR(rtc);
234
235 i2c_set_clientdata(client, rtc);
236
237 return 0;
238}
239
240static int __devexit rx8581_remove(struct i2c_client *client)
241{
242 struct rtc_device *rtc = i2c_get_clientdata(client);
243
244 rtc_device_unregister(rtc);
245
246 return 0;
247}
248
249static const struct i2c_device_id rx8581_id[] = {
250 { "rx8581", 0 },
251 { }
252};
253MODULE_DEVICE_TABLE(i2c, rx8581_id);
254
255static struct i2c_driver rx8581_driver = {
256 .driver = {
257 .name = "rtc-rx8581",
258 .owner = THIS_MODULE,
259 },
260 .probe = rx8581_probe,
261 .remove = __devexit_p(rx8581_remove),
262 .id_table = rx8581_id,
263};
264
265static int __init rx8581_init(void)
266{
267 return i2c_add_driver(&rx8581_driver);
268}
269
270static void __exit rx8581_exit(void)
271{
272 i2c_del_driver(&rx8581_driver);
273}
274
275MODULE_AUTHOR("Martyn Welch <martyn.welch@gefanuc.com>");
276MODULE_DESCRIPTION("Epson RX-8581 RTC driver");
277MODULE_LICENSE("GPL");
278MODULE_VERSION(DRV_VERSION);
279
280module_init(rx8581_init);
281module_exit(rx8581_exit);
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-sun4v.c b/drivers/rtc/rtc-sun4v.c
index 2012ccbb4a53..5b2261052a65 100644
--- a/drivers/rtc/rtc-sun4v.c
+++ b/drivers/rtc/rtc-sun4v.c
@@ -1,4 +1,4 @@
1/* rtc-sun4c.c: Hypervisor based RTC for SUN4V systems. 1/* rtc-sun4v.c: Hypervisor based RTC for SUN4V systems.
2 * 2 *
3 * Copyright (C) 2008 David S. Miller <davem@davemloft.net> 3 * Copyright (C) 2008 David S. Miller <davem@davemloft.net>
4 */ 4 */
@@ -7,21 +7,11 @@
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/delay.h> 8#include <linux/delay.h>
9#include <linux/init.h> 9#include <linux/init.h>
10#include <linux/time.h>
11#include <linux/rtc.h> 10#include <linux/rtc.h>
12#include <linux/platform_device.h> 11#include <linux/platform_device.h>
13 12
14#include <asm/hypervisor.h> 13#include <asm/hypervisor.h>
15 14
16MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
17MODULE_DESCRIPTION("SUN4V RTC driver");
18MODULE_LICENSE("GPL");
19
20struct sun4v_rtc {
21 struct rtc_device *rtc;
22 spinlock_t lock;
23};
24
25static unsigned long hypervisor_get_time(void) 15static unsigned long hypervisor_get_time(void)
26{ 16{
27 unsigned long ret, time; 17 unsigned long ret, time;
@@ -45,15 +35,7 @@ retry:
45 35
46static int sun4v_read_time(struct device *dev, struct rtc_time *tm) 36static int sun4v_read_time(struct device *dev, struct rtc_time *tm)
47{ 37{
48 struct sun4v_rtc *p = dev_get_drvdata(dev); 38 rtc_time_to_tm(hypervisor_get_time(), tm);
49 unsigned long flags, secs;
50
51 spin_lock_irqsave(&p->lock, flags);
52 secs = hypervisor_get_time();
53 spin_unlock_irqrestore(&p->lock, flags);
54
55 rtc_time_to_tm(secs, tm);
56
57 return 0; 39 return 0;
58} 40}
59 41
@@ -80,19 +62,14 @@ retry:
80 62
81static int sun4v_set_time(struct device *dev, struct rtc_time *tm) 63static int sun4v_set_time(struct device *dev, struct rtc_time *tm)
82{ 64{
83 struct sun4v_rtc *p = dev_get_drvdata(dev); 65 unsigned long secs;
84 unsigned long flags, secs;
85 int err; 66 int err;
86 67
87 err = rtc_tm_to_time(tm, &secs); 68 err = rtc_tm_to_time(tm, &secs);
88 if (err) 69 if (err)
89 return err; 70 return err;
90 71
91 spin_lock_irqsave(&p->lock, flags); 72 return hypervisor_set_time(secs);
92 err = hypervisor_set_time(secs);
93 spin_unlock_irqrestore(&p->lock, flags);
94
95 return err;
96} 73}
97 74
98static const struct rtc_class_ops sun4v_rtc_ops = { 75static const struct rtc_class_ops sun4v_rtc_ops = {
@@ -100,33 +77,22 @@ static const struct rtc_class_ops sun4v_rtc_ops = {
100 .set_time = sun4v_set_time, 77 .set_time = sun4v_set_time,
101}; 78};
102 79
103static int __devinit sun4v_rtc_probe(struct platform_device *pdev) 80static int __init sun4v_rtc_probe(struct platform_device *pdev)
104{ 81{
105 struct sun4v_rtc *p = kzalloc(sizeof(*p), GFP_KERNEL); 82 struct rtc_device *rtc = rtc_device_register("sun4v", &pdev->dev,
106
107 if (!p)
108 return -ENOMEM;
109
110 spin_lock_init(&p->lock);
111
112 p->rtc = rtc_device_register("sun4v", &pdev->dev,
113 &sun4v_rtc_ops, THIS_MODULE); 83 &sun4v_rtc_ops, THIS_MODULE);
114 if (IS_ERR(p->rtc)) { 84 if (IS_ERR(rtc))
115 int err = PTR_ERR(p->rtc); 85 return PTR_ERR(rtc);
116 kfree(p); 86
117 return err; 87 platform_set_drvdata(pdev, rtc);
118 }
119 platform_set_drvdata(pdev, p);
120 return 0; 88 return 0;
121} 89}
122 90
123static int __devexit sun4v_rtc_remove(struct platform_device *pdev) 91static int __exit sun4v_rtc_remove(struct platform_device *pdev)
124{ 92{
125 struct sun4v_rtc *p = platform_get_drvdata(pdev); 93 struct rtc_device *rtc = platform_get_drvdata(pdev);
126
127 rtc_device_unregister(p->rtc);
128 kfree(p);
129 94
95 rtc_device_unregister(rtc);
130 return 0; 96 return 0;
131} 97}
132 98
@@ -135,13 +101,12 @@ static struct platform_driver sun4v_rtc_driver = {
135 .name = "rtc-sun4v", 101 .name = "rtc-sun4v",
136 .owner = THIS_MODULE, 102 .owner = THIS_MODULE,
137 }, 103 },
138 .probe = sun4v_rtc_probe, 104 .remove = __exit_p(sun4v_rtc_remove),
139 .remove = __devexit_p(sun4v_rtc_remove),
140}; 105};
141 106
142static int __init sun4v_rtc_init(void) 107static int __init sun4v_rtc_init(void)
143{ 108{
144 return platform_driver_register(&sun4v_rtc_driver); 109 return platform_driver_probe(&sun4v_rtc_driver, sun4v_rtc_probe);
145} 110}
146 111
147static void __exit sun4v_rtc_exit(void) 112static void __exit sun4v_rtc_exit(void)
@@ -151,3 +116,7 @@ static void __exit sun4v_rtc_exit(void)
151 116
152module_init(sun4v_rtc_init); 117module_init(sun4v_rtc_init);
153module_exit(sun4v_rtc_exit); 118module_exit(sun4v_rtc_exit);
119
120MODULE_AUTHOR("David S. Miller <davem@davemloft.net>");
121MODULE_DESCRIPTION("SUN4V RTC driver");
122MODULE_LICENSE("GPL");
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/rtc/rtc-wm8350.c b/drivers/rtc/rtc-wm8350.c
new file mode 100644
index 000000000000..5c5e3aa91385
--- /dev/null
+++ b/drivers/rtc/rtc-wm8350.c
@@ -0,0 +1,514 @@
1/*
2 * Real Time Clock driver for Wolfson Microelectronics WM8350
3 *
4 * Copyright (C) 2007, 2008 Wolfson Microelectronics PLC.
5 *
6 * Author: Liam Girdwood
7 * linux@wolfsonmicro.com
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 */
15
16#include <linux/module.h>
17#include <linux/kernel.h>
18#include <linux/time.h>
19#include <linux/rtc.h>
20#include <linux/bcd.h>
21#include <linux/interrupt.h>
22#include <linux/ioctl.h>
23#include <linux/completion.h>
24#include <linux/mfd/wm8350/rtc.h>
25#include <linux/mfd/wm8350/core.h>
26#include <linux/delay.h>
27#include <linux/platform_device.h>
28
29#define WM8350_SET_ALM_RETRIES 5
30#define WM8350_SET_TIME_RETRIES 5
31#define WM8350_GET_TIME_RETRIES 5
32
33#define to_wm8350_from_rtc_dev(d) container_of(d, struct wm8350, rtc.pdev.dev)
34
35/*
36 * Read current time and date in RTC
37 */
38static int wm8350_rtc_readtime(struct device *dev, struct rtc_time *tm)
39{
40 struct wm8350 *wm8350 = dev_get_drvdata(dev);
41 u16 time1[4], time2[4];
42 int retries = WM8350_GET_TIME_RETRIES, ret;
43
44 /*
45 * Read the time twice and compare.
46 * If time1 == time2, then time is valid else retry.
47 */
48 do {
49 ret = wm8350_block_read(wm8350, WM8350_RTC_SECONDS_MINUTES,
50 4, time1);
51 if (ret < 0)
52 return ret;
53 ret = wm8350_block_read(wm8350, WM8350_RTC_SECONDS_MINUTES,
54 4, time2);
55 if (ret < 0)
56 return ret;
57
58 if (memcmp(time1, time2, sizeof(time1)) == 0) {
59 tm->tm_sec = time1[0] & WM8350_RTC_SECS_MASK;
60
61 tm->tm_min = (time1[0] & WM8350_RTC_MINS_MASK)
62 >> WM8350_RTC_MINS_SHIFT;
63
64 tm->tm_hour = time1[1] & WM8350_RTC_HRS_MASK;
65
66 tm->tm_wday = ((time1[1] >> WM8350_RTC_DAY_SHIFT)
67 & 0x7) - 1;
68
69 tm->tm_mon = ((time1[2] & WM8350_RTC_MTH_MASK)
70 >> WM8350_RTC_MTH_SHIFT) - 1;
71
72 tm->tm_mday = (time1[2] & WM8350_RTC_DATE_MASK);
73
74 tm->tm_year = ((time1[3] & WM8350_RTC_YHUNDREDS_MASK)
75 >> WM8350_RTC_YHUNDREDS_SHIFT) * 100;
76 tm->tm_year += time1[3] & WM8350_RTC_YUNITS_MASK;
77
78 tm->tm_yday = rtc_year_days(tm->tm_mday, tm->tm_mon,
79 tm->tm_year);
80 tm->tm_year -= 1900;
81
82 dev_dbg(dev, "Read (%d left): %04x %04x %04x %04x\n",
83 retries,
84 time1[0], time1[1], time1[2], time1[3]);
85
86 return 0;
87 }
88 } while (retries--);
89
90 dev_err(dev, "timed out reading RTC time\n");
91 return -EIO;
92}
93
94/*
95 * Set current time and date in RTC
96 */
97static int wm8350_rtc_settime(struct device *dev, struct rtc_time *tm)
98{
99 struct wm8350 *wm8350 = dev_get_drvdata(dev);
100 u16 time[4];
101 u16 rtc_ctrl;
102 int ret, retries = WM8350_SET_TIME_RETRIES;
103
104 time[0] = tm->tm_sec;
105 time[0] |= tm->tm_min << WM8350_RTC_MINS_SHIFT;
106 time[1] = tm->tm_hour;
107 time[1] |= (tm->tm_wday + 1) << WM8350_RTC_DAY_SHIFT;
108 time[2] = tm->tm_mday;
109 time[2] |= (tm->tm_mon + 1) << WM8350_RTC_MTH_SHIFT;
110 time[3] = ((tm->tm_year + 1900) / 100) << WM8350_RTC_YHUNDREDS_SHIFT;
111 time[3] |= (tm->tm_year + 1900) % 100;
112
113 dev_dbg(dev, "Setting: %04x %04x %04x %04x\n",
114 time[0], time[1], time[2], time[3]);
115
116 /* Set RTC_SET to stop the clock */
117 ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL, WM8350_RTC_SET);
118 if (ret < 0)
119 return ret;
120
121 /* Wait until confirmation of stopping */
122 do {
123 rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
124 schedule_timeout_uninterruptible(msecs_to_jiffies(1));
125 } while (retries-- && !(rtc_ctrl & WM8350_RTC_STS));
126
127 if (!retries) {
128 dev_err(dev, "timed out on set confirmation\n");
129 return -EIO;
130 }
131
132 /* Write time to RTC */
133 ret = wm8350_block_write(wm8350, WM8350_RTC_SECONDS_MINUTES, 4, time);
134 if (ret < 0)
135 return ret;
136
137 /* Clear RTC_SET to start the clock */
138 ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
139 WM8350_RTC_SET);
140 return ret;
141}
142
143/*
144 * Read alarm time and date in RTC
145 */
146static int wm8350_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)
147{
148 struct wm8350 *wm8350 = dev_get_drvdata(dev);
149 struct rtc_time *tm = &alrm->time;
150 u16 time[4];
151 int ret;
152
153 ret = wm8350_block_read(wm8350, WM8350_ALARM_SECONDS_MINUTES, 4, time);
154 if (ret < 0)
155 return ret;
156
157 tm->tm_sec = time[0] & WM8350_RTC_ALMSECS_MASK;
158 if (tm->tm_sec == WM8350_RTC_ALMSECS_MASK)
159 tm->tm_sec = -1;
160
161 tm->tm_min = time[0] & WM8350_RTC_ALMMINS_MASK;
162 if (tm->tm_min == WM8350_RTC_ALMMINS_MASK)
163 tm->tm_min = -1;
164 else
165 tm->tm_min >>= WM8350_RTC_ALMMINS_SHIFT;
166
167 tm->tm_hour = time[1] & WM8350_RTC_ALMHRS_MASK;
168 if (tm->tm_hour == WM8350_RTC_ALMHRS_MASK)
169 tm->tm_hour = -1;
170
171 tm->tm_wday = ((time[1] >> WM8350_RTC_ALMDAY_SHIFT) & 0x7) - 1;
172 if (tm->tm_wday > 7)
173 tm->tm_wday = -1;
174
175 tm->tm_mon = time[2] & WM8350_RTC_ALMMTH_MASK;
176 if (tm->tm_mon == WM8350_RTC_ALMMTH_MASK)
177 tm->tm_mon = -1;
178 else
179 tm->tm_mon = (tm->tm_mon >> WM8350_RTC_ALMMTH_SHIFT) - 1;
180
181 tm->tm_mday = (time[2] & WM8350_RTC_ALMDATE_MASK);
182 if (tm->tm_mday == WM8350_RTC_ALMDATE_MASK)
183 tm->tm_mday = -1;
184
185 tm->tm_year = -1;
186
187 alrm->enabled = !(time[3] & WM8350_RTC_ALMSTS);
188
189 return 0;
190}
191
192static int wm8350_rtc_stop_alarm(struct wm8350 *wm8350)
193{
194 int retries = WM8350_SET_ALM_RETRIES;
195 u16 rtc_ctrl;
196 int ret;
197
198 /* Set RTC_SET to stop the clock */
199 ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL,
200 WM8350_RTC_ALMSET);
201 if (ret < 0)
202 return ret;
203
204 /* Wait until confirmation of stopping */
205 do {
206 rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
207 schedule_timeout_uninterruptible(msecs_to_jiffies(1));
208 } while (retries-- && !(rtc_ctrl & WM8350_RTC_ALMSTS));
209
210 if (!(rtc_ctrl & WM8350_RTC_ALMSTS))
211 return -ETIMEDOUT;
212
213 return 0;
214}
215
216static int wm8350_rtc_start_alarm(struct wm8350 *wm8350)
217{
218 int ret;
219 int retries = WM8350_SET_ALM_RETRIES;
220 u16 rtc_ctrl;
221
222 ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
223 WM8350_RTC_ALMSET);
224 if (ret < 0)
225 return ret;
226
227 /* Wait until confirmation */
228 do {
229 rtc_ctrl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
230 schedule_timeout_uninterruptible(msecs_to_jiffies(1));
231 } while (retries-- && rtc_ctrl & WM8350_RTC_ALMSTS);
232
233 if (rtc_ctrl & WM8350_RTC_ALMSTS)
234 return -ETIMEDOUT;
235
236 return 0;
237}
238
239static int wm8350_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
240{
241 struct wm8350 *wm8350 = dev_get_drvdata(dev);
242 struct rtc_time *tm = &alrm->time;
243 u16 time[3];
244 int ret;
245
246 memset(time, 0, sizeof(time));
247
248 if (tm->tm_sec != -1)
249 time[0] |= tm->tm_sec;
250 else
251 time[0] |= WM8350_RTC_ALMSECS_MASK;
252
253 if (tm->tm_min != -1)
254 time[0] |= tm->tm_min << WM8350_RTC_ALMMINS_SHIFT;
255 else
256 time[0] |= WM8350_RTC_ALMMINS_MASK;
257
258 if (tm->tm_hour != -1)
259 time[1] |= tm->tm_hour;
260 else
261 time[1] |= WM8350_RTC_ALMHRS_MASK;
262
263 if (tm->tm_wday != -1)
264 time[1] |= (tm->tm_wday + 1) << WM8350_RTC_ALMDAY_SHIFT;
265 else
266 time[1] |= WM8350_RTC_ALMDAY_MASK;
267
268 if (tm->tm_mday != -1)
269 time[2] |= tm->tm_mday;
270 else
271 time[2] |= WM8350_RTC_ALMDATE_MASK;
272
273 if (tm->tm_mon != -1)
274 time[2] |= (tm->tm_mon + 1) << WM8350_RTC_ALMMTH_SHIFT;
275 else
276 time[2] |= WM8350_RTC_ALMMTH_MASK;
277
278 ret = wm8350_rtc_stop_alarm(wm8350);
279 if (ret < 0)
280 return ret;
281
282 /* Write time to RTC */
283 ret = wm8350_block_write(wm8350, WM8350_ALARM_SECONDS_MINUTES,
284 3, time);
285 if (ret < 0)
286 return ret;
287
288 if (alrm->enabled)
289 ret = wm8350_rtc_start_alarm(wm8350);
290
291 return ret;
292}
293
294/*
295 * Handle commands from user-space
296 */
297static int wm8350_rtc_ioctl(struct device *dev, unsigned int cmd,
298 unsigned long arg)
299{
300 struct wm8350 *wm8350 = dev_get_drvdata(dev);
301
302 switch (cmd) {
303 case RTC_AIE_OFF:
304 return wm8350_rtc_stop_alarm(wm8350);
305 case RTC_AIE_ON:
306 return wm8350_rtc_start_alarm(wm8350);
307
308 case RTC_UIE_OFF:
309 wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC);
310 break;
311 case RTC_UIE_ON:
312 wm8350_unmask_irq(wm8350, WM8350_IRQ_RTC_SEC);
313 break;
314
315 default:
316 return -ENOIOCTLCMD;
317 }
318
319 return 0;
320}
321
322static void wm8350_rtc_alarm_handler(struct wm8350 *wm8350, int irq,
323 void *data)
324{
325 struct rtc_device *rtc = wm8350->rtc.rtc;
326 int ret;
327
328 rtc_update_irq(rtc, 1, RTC_IRQF | RTC_AF);
329
330 /* Make it one shot */
331 ret = wm8350_set_bits(wm8350, WM8350_RTC_TIME_CONTROL,
332 WM8350_RTC_ALMSET);
333 if (ret != 0) {
334 dev_err(&(wm8350->rtc.pdev->dev),
335 "Failed to disable alarm: %d\n", ret);
336 }
337}
338
339static void wm8350_rtc_update_handler(struct wm8350 *wm8350, int irq,
340 void *data)
341{
342 struct rtc_device *rtc = wm8350->rtc.rtc;
343
344 rtc_update_irq(rtc, 1, RTC_IRQF | RTC_UF);
345}
346
347static const struct rtc_class_ops wm8350_rtc_ops = {
348 .ioctl = wm8350_rtc_ioctl,
349 .read_time = wm8350_rtc_readtime,
350 .set_time = wm8350_rtc_settime,
351 .read_alarm = wm8350_rtc_readalarm,
352 .set_alarm = wm8350_rtc_setalarm,
353};
354
355#ifdef CONFIG_PM
356static int wm8350_rtc_suspend(struct platform_device *pdev, pm_message_t state)
357{
358 struct wm8350 *wm8350 = dev_get_drvdata(&pdev->dev);
359 int ret = 0;
360 u16 reg;
361
362 reg = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
363
364 if (device_may_wakeup(&wm8350->rtc.pdev->dev) &&
365 reg & WM8350_RTC_ALMSTS) {
366 ret = wm8350_rtc_stop_alarm(wm8350);
367 if (ret != 0)
368 dev_err(&pdev->dev, "Failed to stop RTC alarm: %d\n",
369 ret);
370 }
371
372 return ret;
373}
374
375static int wm8350_rtc_resume(struct platform_device *pdev)
376{
377 struct wm8350 *wm8350 = dev_get_drvdata(&pdev->dev);
378 int ret;
379
380 if (wm8350->rtc.alarm_enabled) {
381 ret = wm8350_rtc_start_alarm(wm8350);
382 if (ret != 0)
383 dev_err(&pdev->dev,
384 "Failed to restart RTC alarm: %d\n", ret);
385 }
386
387 return 0;
388}
389
390#else
391#define wm8350_rtc_suspend NULL
392#define wm8350_rtc_resume NULL
393#endif
394
395static int wm8350_rtc_probe(struct platform_device *pdev)
396{
397 struct wm8350 *wm8350 = platform_get_drvdata(pdev);
398 struct wm8350_rtc *wm_rtc = &wm8350->rtc;
399 int ret = 0;
400 u16 timectl, power5;
401
402 timectl = wm8350_reg_read(wm8350, WM8350_RTC_TIME_CONTROL);
403 if (timectl & WM8350_RTC_BCD) {
404 dev_err(&pdev->dev, "RTC BCD mode not supported\n");
405 return -EINVAL;
406 }
407 if (timectl & WM8350_RTC_12HR) {
408 dev_err(&pdev->dev, "RTC 12 hour mode not supported\n");
409 return -EINVAL;
410 }
411
412 /* enable the RTC if it's not already enabled */
413 power5 = wm8350_reg_read(wm8350, WM8350_POWER_MGMT_5);
414 if (!(power5 & WM8350_RTC_TICK_ENA)) {
415 dev_info(wm8350->dev, "Starting RTC\n");
416
417 wm8350_reg_unlock(wm8350);
418
419 ret = wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5,
420 WM8350_RTC_TICK_ENA);
421 if (ret < 0) {
422 dev_err(&pdev->dev, "failed to enable RTC: %d\n", ret);
423 return ret;
424 }
425
426 wm8350_reg_lock(wm8350);
427 }
428
429 if (timectl & WM8350_RTC_STS) {
430 int retries;
431
432 ret = wm8350_clear_bits(wm8350, WM8350_RTC_TIME_CONTROL,
433 WM8350_RTC_SET);
434 if (ret < 0) {
435 dev_err(&pdev->dev, "failed to start: %d\n", ret);
436 return ret;
437 }
438
439 retries = WM8350_SET_TIME_RETRIES;
440 do {
441 timectl = wm8350_reg_read(wm8350,
442 WM8350_RTC_TIME_CONTROL);
443 } while (timectl & WM8350_RTC_STS && retries--);
444
445 if (retries == 0) {
446 dev_err(&pdev->dev, "failed to start: timeout\n");
447 return -ENODEV;
448 }
449 }
450
451 device_init_wakeup(&pdev->dev, 1);
452
453 wm_rtc->rtc = rtc_device_register("wm8350", &pdev->dev,
454 &wm8350_rtc_ops, THIS_MODULE);
455 if (IS_ERR(wm_rtc->rtc)) {
456 ret = PTR_ERR(wm_rtc->rtc);
457 dev_err(&pdev->dev, "failed to register RTC: %d\n", ret);
458 return ret;
459 }
460
461 wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC);
462 wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_PER);
463
464 wm8350_register_irq(wm8350, WM8350_IRQ_RTC_SEC,
465 wm8350_rtc_update_handler, NULL);
466
467 wm8350_register_irq(wm8350, WM8350_IRQ_RTC_ALM,
468 wm8350_rtc_alarm_handler, NULL);
469 wm8350_unmask_irq(wm8350, WM8350_IRQ_RTC_ALM);
470
471 return 0;
472}
473
474static int __devexit wm8350_rtc_remove(struct platform_device *pdev)
475{
476 struct wm8350 *wm8350 = platform_get_drvdata(pdev);
477 struct wm8350_rtc *wm_rtc = &wm8350->rtc;
478
479 wm8350_mask_irq(wm8350, WM8350_IRQ_RTC_SEC);
480
481 wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC);
482 wm8350_free_irq(wm8350, WM8350_IRQ_RTC_ALM);
483
484 rtc_device_unregister(wm_rtc->rtc);
485
486 return 0;
487}
488
489static struct platform_driver wm8350_rtc_driver = {
490 .probe = wm8350_rtc_probe,
491 .remove = __devexit_p(wm8350_rtc_remove),
492 .suspend = wm8350_rtc_suspend,
493 .resume = wm8350_rtc_resume,
494 .driver = {
495 .name = "wm8350-rtc",
496 },
497};
498
499static int __init wm8350_rtc_init(void)
500{
501 return platform_driver_register(&wm8350_rtc_driver);
502}
503module_init(wm8350_rtc_init);
504
505static void __exit wm8350_rtc_exit(void)
506{
507 platform_driver_unregister(&wm8350_rtc_driver);
508}
509module_exit(wm8350_rtc_exit);
510
511MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
512MODULE_DESCRIPTION("RTC driver for the WM8350");
513MODULE_LICENSE("GPL");
514MODULE_ALIAS("platform:wm8350-rtc");
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index 4b76fca64a6f..363bd1303d21 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -1746,6 +1746,11 @@ restart:
1746 goto restart; 1746 goto restart;
1747 } 1747 }
1748 1748
1749 /* log sense for fatal error */
1750 if (cqr->status == DASD_CQR_FAILED) {
1751 dasd_log_sense(cqr, &cqr->irb);
1752 }
1753
1749 /* First of all call extended error reporting. */ 1754 /* First of all call extended error reporting. */
1750 if (dasd_eer_enabled(base) && 1755 if (dasd_eer_enabled(base) &&
1751 cqr->status == DASD_CQR_FAILED) { 1756 cqr->status == DASD_CQR_FAILED) {
diff --git a/drivers/s390/char/sclp_cmd.c b/drivers/s390/char/sclp_cmd.c
index eb5f1b8bc57f..ec9c0bcf66ee 100644
--- a/drivers/s390/char/sclp_cmd.c
+++ b/drivers/s390/char/sclp_cmd.c
@@ -324,6 +324,9 @@ static int do_assign_storage(sclp_cmdw_t cmd, u16 rn)
324 case 0x0120: 324 case 0x0120:
325 break; 325 break;
326 default: 326 default:
327 pr_warning("assign storage failed (cmd=0x%08x, "
328 "response=0x%04x, rn=0x%04x)\n", cmd,
329 sccb->header.response_code, rn);
327 rc = -EIO; 330 rc = -EIO;
328 break; 331 break;
329 } 332 }
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 4e78c82194b4..4e4008325e28 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -874,11 +874,15 @@ void ccw_device_move_to_orphanage(struct work_struct *work)
874 replacing_cdev = get_disc_ccwdev_by_dev_id(&dev_id, cdev); 874 replacing_cdev = get_disc_ccwdev_by_dev_id(&dev_id, cdev);
875 if (replacing_cdev) { 875 if (replacing_cdev) {
876 sch_attach_disconnected_device(sch, replacing_cdev); 876 sch_attach_disconnected_device(sch, replacing_cdev);
877 /* Release reference from get_disc_ccwdev_by_dev_id() */
878 put_device(&cdev->dev);
877 return; 879 return;
878 } 880 }
879 replacing_cdev = get_orphaned_ccwdev_by_dev_id(css, &dev_id); 881 replacing_cdev = get_orphaned_ccwdev_by_dev_id(css, &dev_id);
880 if (replacing_cdev) { 882 if (replacing_cdev) {
881 sch_attach_orphaned_device(sch, replacing_cdev); 883 sch_attach_orphaned_device(sch, replacing_cdev);
884 /* Release reference from get_orphaned_ccwdev_by_dev_id() */
885 put_device(&cdev->dev);
882 return; 886 return;
883 } 887 }
884 sch_create_and_recog_new_device(sch); 888 sch_create_and_recog_new_device(sch);
diff --git a/drivers/s390/kvm/kvm_virtio.c b/drivers/s390/kvm/kvm_virtio.c
index ff4a6931bb8e..3d442444c618 100644
--- a/drivers/s390/kvm/kvm_virtio.c
+++ b/drivers/s390/kvm/kvm_virtio.c
@@ -322,13 +322,13 @@ static int __init kvm_devices_init(void)
322 return rc; 322 return rc;
323 } 323 }
324 324
325 rc = vmem_add_mapping(PFN_PHYS(max_pfn), PAGE_SIZE); 325 rc = vmem_add_mapping(real_memory_size, PAGE_SIZE);
326 if (rc) { 326 if (rc) {
327 s390_root_dev_unregister(kvm_root); 327 s390_root_dev_unregister(kvm_root);
328 return rc; 328 return rc;
329 } 329 }
330 330
331 kvm_devices = (void *) PFN_PHYS(max_pfn); 331 kvm_devices = (void *) real_memory_size;
332 332
333 ctl_set_bit(0, 9); 333 ctl_set_bit(0, 9);
334 register_external_interrupt(0x2603, kvm_extint_handler); 334 register_external_interrupt(0x2603, kvm_extint_handler);
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index 3b56220fb900..3d4e3e3f3fc0 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -610,7 +610,8 @@ struct zfcp_port *zfcp_port_enqueue(struct zfcp_adapter *adapter, u64 wwpn,
610 atomic_set_mask(status | ZFCP_STATUS_COMMON_REMOVE, &port->status); 610 atomic_set_mask(status | ZFCP_STATUS_COMMON_REMOVE, &port->status);
611 atomic_set(&port->refcount, 0); 611 atomic_set(&port->refcount, 0);
612 612
613 dev_set_name(&port->sysfs_device, "0x%016llx", wwpn); 613 dev_set_name(&port->sysfs_device, "0x%016llx",
614 (unsigned long long)wwpn);
614 port->sysfs_device.parent = &adapter->ccw_device->dev; 615 port->sysfs_device.parent = &adapter->ccw_device->dev;
615 616
616 port->sysfs_device.release = zfcp_sysfs_port_release; 617 port->sysfs_device.release = zfcp_sysfs_port_release;
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c
index b04038c74786..951a8d409d1d 100644
--- a/drivers/s390/scsi/zfcp_ccw.c
+++ b/drivers/s390/scsi/zfcp_ccw.c
@@ -116,7 +116,9 @@ static int zfcp_ccw_set_online(struct ccw_device *ccw_device)
116 zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, 85, 116 zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, 85,
117 NULL); 117 NULL);
118 zfcp_erp_wait(adapter); 118 zfcp_erp_wait(adapter);
119 goto out; 119 up(&zfcp_data.config_sema);
120 flush_work(&adapter->scan_work);
121 return 0;
120 122
121 out_scsi_register: 123 out_scsi_register:
122 zfcp_erp_thread_kill(adapter); 124 zfcp_erp_thread_kill(adapter);
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c
index 060f5f2352ec..31012d58cfb7 100644
--- a/drivers/s390/scsi/zfcp_dbf.c
+++ b/drivers/s390/scsi/zfcp_dbf.c
@@ -30,7 +30,7 @@ static void zfcp_dbf_hexdump(debug_info_t *dbf, void *to, int to_len,
30 dump->offset = offset; 30 dump->offset = offset;
31 dump->size = min(from_len - offset, room); 31 dump->size = min(from_len - offset, room);
32 memcpy(dump->data, from + offset, dump->size); 32 memcpy(dump->data, from + offset, dump->size);
33 debug_event(dbf, level, dump, dump->size); 33 debug_event(dbf, level, dump, dump->size + sizeof(*dump));
34 } 34 }
35} 35}
36 36
@@ -108,7 +108,7 @@ static int zfcp_dbf_view_header(debug_info_t *id, struct debug_view *view,
108 t.tv_sec, t.tv_nsec); 108 t.tv_sec, t.tv_nsec);
109 zfcp_dbf_out(&p, "cpu", "%02i", entry->id.fields.cpuid); 109 zfcp_dbf_out(&p, "cpu", "%02i", entry->id.fields.cpuid);
110 } else { 110 } else {
111 zfcp_dbf_outd(&p, NULL, dump->data, dump->size, dump->offset, 111 zfcp_dbf_outd(&p, "", dump->data, dump->size, dump->offset,
112 dump->total_size); 112 dump->total_size);
113 if ((dump->offset + dump->size) == dump->total_size) 113 if ((dump->offset + dump->size) == dump->total_size)
114 p += sprintf(p, "\n"); 114 p += sprintf(p, "\n");
@@ -366,6 +366,7 @@ static void zfcp_hba_dbf_view_response(char **p,
366 break; 366 break;
367 zfcp_dbf_out(p, "scsi_cmnd", "0x%0Lx", r->u.fcp.cmnd); 367 zfcp_dbf_out(p, "scsi_cmnd", "0x%0Lx", r->u.fcp.cmnd);
368 zfcp_dbf_out(p, "scsi_serial", "0x%016Lx", r->u.fcp.serial); 368 zfcp_dbf_out(p, "scsi_serial", "0x%016Lx", r->u.fcp.serial);
369 p += sprintf(*p, "\n");
369 break; 370 break;
370 371
371 case FSF_QTCB_OPEN_PORT_WITH_DID: 372 case FSF_QTCB_OPEN_PORT_WITH_DID:
@@ -465,7 +466,8 @@ static int zfcp_hba_dbf_view_format(debug_info_t *id, struct debug_view *view,
465 else if (strncmp(r->tag, "berr", ZFCP_DBF_TAG_SIZE) == 0) 466 else if (strncmp(r->tag, "berr", ZFCP_DBF_TAG_SIZE) == 0)
466 zfcp_hba_dbf_view_berr(&p, &r->u.berr); 467 zfcp_hba_dbf_view_berr(&p, &r->u.berr);
467 468
468 p += sprintf(p, "\n"); 469 if (strncmp(r->tag, "resp", ZFCP_DBF_TAG_SIZE) != 0)
470 p += sprintf(p, "\n");
469 return p - out_buf; 471 return p - out_buf;
470} 472}
471 473
@@ -880,6 +882,7 @@ void zfcp_san_dbf_event_ct_request(struct zfcp_fsf_req *fsf_req)
880 struct ct_hdr *hdr = sg_virt(ct->req); 882 struct ct_hdr *hdr = sg_virt(ct->req);
881 struct zfcp_san_dbf_record *r = &adapter->san_dbf_buf; 883 struct zfcp_san_dbf_record *r = &adapter->san_dbf_buf;
882 struct zfcp_san_dbf_record_ct_request *oct = &r->u.ct_req; 884 struct zfcp_san_dbf_record_ct_request *oct = &r->u.ct_req;
885 int level = 3;
883 unsigned long flags; 886 unsigned long flags;
884 887
885 spin_lock_irqsave(&adapter->san_dbf_lock, flags); 888 spin_lock_irqsave(&adapter->san_dbf_lock, flags);
@@ -896,9 +899,10 @@ void zfcp_san_dbf_event_ct_request(struct zfcp_fsf_req *fsf_req)
896 oct->options = hdr->options; 899 oct->options = hdr->options;
897 oct->max_res_size = hdr->max_res_size; 900 oct->max_res_size = hdr->max_res_size;
898 oct->len = min((int)ct->req->length - (int)sizeof(struct ct_hdr), 901 oct->len = min((int)ct->req->length - (int)sizeof(struct ct_hdr),
899 ZFCP_DBF_CT_PAYLOAD); 902 ZFCP_DBF_SAN_MAX_PAYLOAD);
900 memcpy(oct->payload, (void *)hdr + sizeof(struct ct_hdr), oct->len); 903 debug_event(adapter->san_dbf, level, r, sizeof(*r));
901 debug_event(adapter->san_dbf, 3, r, sizeof(*r)); 904 zfcp_dbf_hexdump(adapter->san_dbf, r, sizeof(*r), level,
905 (void *)hdr + sizeof(struct ct_hdr), oct->len);
902 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags); 906 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags);
903} 907}
904 908
@@ -914,6 +918,7 @@ void zfcp_san_dbf_event_ct_response(struct zfcp_fsf_req *fsf_req)
914 struct ct_hdr *hdr = sg_virt(ct->resp); 918 struct ct_hdr *hdr = sg_virt(ct->resp);
915 struct zfcp_san_dbf_record *r = &adapter->san_dbf_buf; 919 struct zfcp_san_dbf_record *r = &adapter->san_dbf_buf;
916 struct zfcp_san_dbf_record_ct_response *rct = &r->u.ct_resp; 920 struct zfcp_san_dbf_record_ct_response *rct = &r->u.ct_resp;
921 int level = 3;
917 unsigned long flags; 922 unsigned long flags;
918 923
919 spin_lock_irqsave(&adapter->san_dbf_lock, flags); 924 spin_lock_irqsave(&adapter->san_dbf_lock, flags);
@@ -929,9 +934,10 @@ void zfcp_san_dbf_event_ct_response(struct zfcp_fsf_req *fsf_req)
929 rct->expl = hdr->reason_code_expl; 934 rct->expl = hdr->reason_code_expl;
930 rct->vendor_unique = hdr->vendor_unique; 935 rct->vendor_unique = hdr->vendor_unique;
931 rct->len = min((int)ct->resp->length - (int)sizeof(struct ct_hdr), 936 rct->len = min((int)ct->resp->length - (int)sizeof(struct ct_hdr),
932 ZFCP_DBF_CT_PAYLOAD); 937 ZFCP_DBF_SAN_MAX_PAYLOAD);
933 memcpy(rct->payload, (void *)hdr + sizeof(struct ct_hdr), rct->len); 938 debug_event(adapter->san_dbf, level, r, sizeof(*r));
934 debug_event(adapter->san_dbf, 3, r, sizeof(*r)); 939 zfcp_dbf_hexdump(adapter->san_dbf, r, sizeof(*r), level,
940 (void *)hdr + sizeof(struct ct_hdr), rct->len);
935 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags); 941 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags);
936} 942}
937 943
@@ -954,7 +960,7 @@ static void zfcp_san_dbf_event_els(const char *tag, int level,
954 rec->u.els.ls_code = ls_code; 960 rec->u.els.ls_code = ls_code;
955 debug_event(adapter->san_dbf, level, rec, sizeof(*rec)); 961 debug_event(adapter->san_dbf, level, rec, sizeof(*rec));
956 zfcp_dbf_hexdump(adapter->san_dbf, rec, sizeof(*rec), level, 962 zfcp_dbf_hexdump(adapter->san_dbf, rec, sizeof(*rec), level,
957 buffer, min(buflen, ZFCP_DBF_ELS_MAX_PAYLOAD)); 963 buffer, min(buflen, ZFCP_DBF_SAN_MAX_PAYLOAD));
958 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags); 964 spin_unlock_irqrestore(&adapter->san_dbf_lock, flags);
959} 965}
960 966
@@ -1008,8 +1014,6 @@ static int zfcp_san_dbf_view_format(debug_info_t *id, struct debug_view *view,
1008 char *out_buf, const char *in_buf) 1014 char *out_buf, const char *in_buf)
1009{ 1015{
1010 struct zfcp_san_dbf_record *r = (struct zfcp_san_dbf_record *)in_buf; 1016 struct zfcp_san_dbf_record *r = (struct zfcp_san_dbf_record *)in_buf;
1011 char *buffer = NULL;
1012 int buflen = 0, total = 0;
1013 char *p = out_buf; 1017 char *p = out_buf;
1014 1018
1015 if (strncmp(r->tag, "dump", ZFCP_DBF_TAG_SIZE) == 0) 1019 if (strncmp(r->tag, "dump", ZFCP_DBF_TAG_SIZE) == 0)
@@ -1029,9 +1033,6 @@ static int zfcp_san_dbf_view_format(debug_info_t *id, struct debug_view *view,
1029 zfcp_dbf_out(&p, "gs_subtype", "0x%02x", ct->gs_subtype); 1033 zfcp_dbf_out(&p, "gs_subtype", "0x%02x", ct->gs_subtype);
1030 zfcp_dbf_out(&p, "options", "0x%02x", ct->options); 1034 zfcp_dbf_out(&p, "options", "0x%02x", ct->options);
1031 zfcp_dbf_out(&p, "max_res_size", "0x%04x", ct->max_res_size); 1035 zfcp_dbf_out(&p, "max_res_size", "0x%04x", ct->max_res_size);
1032 total = ct->len;
1033 buffer = ct->payload;
1034 buflen = min(total, ZFCP_DBF_CT_PAYLOAD);
1035 } else if (strncmp(r->tag, "rctc", ZFCP_DBF_TAG_SIZE) == 0) { 1036 } else if (strncmp(r->tag, "rctc", ZFCP_DBF_TAG_SIZE) == 0) {
1036 struct zfcp_san_dbf_record_ct_response *ct = &r->u.ct_resp; 1037 struct zfcp_san_dbf_record_ct_response *ct = &r->u.ct_resp;
1037 zfcp_dbf_out(&p, "cmd_rsp_code", "0x%04x", ct->cmd_rsp_code); 1038 zfcp_dbf_out(&p, "cmd_rsp_code", "0x%04x", ct->cmd_rsp_code);
@@ -1039,23 +1040,12 @@ static int zfcp_san_dbf_view_format(debug_info_t *id, struct debug_view *view,
1039 zfcp_dbf_out(&p, "reason_code", "0x%02x", ct->reason_code); 1040 zfcp_dbf_out(&p, "reason_code", "0x%02x", ct->reason_code);
1040 zfcp_dbf_out(&p, "reason_code_expl", "0x%02x", ct->expl); 1041 zfcp_dbf_out(&p, "reason_code_expl", "0x%02x", ct->expl);
1041 zfcp_dbf_out(&p, "vendor_unique", "0x%02x", ct->vendor_unique); 1042 zfcp_dbf_out(&p, "vendor_unique", "0x%02x", ct->vendor_unique);
1042 total = ct->len;
1043 buffer = ct->payload;
1044 buflen = min(total, ZFCP_DBF_CT_PAYLOAD);
1045 } else if (strncmp(r->tag, "oels", ZFCP_DBF_TAG_SIZE) == 0 || 1043 } else if (strncmp(r->tag, "oels", ZFCP_DBF_TAG_SIZE) == 0 ||
1046 strncmp(r->tag, "rels", ZFCP_DBF_TAG_SIZE) == 0 || 1044 strncmp(r->tag, "rels", ZFCP_DBF_TAG_SIZE) == 0 ||
1047 strncmp(r->tag, "iels", ZFCP_DBF_TAG_SIZE) == 0) { 1045 strncmp(r->tag, "iels", ZFCP_DBF_TAG_SIZE) == 0) {
1048 struct zfcp_san_dbf_record_els *els = &r->u.els; 1046 struct zfcp_san_dbf_record_els *els = &r->u.els;
1049 zfcp_dbf_out(&p, "ls_code", "0x%02x", els->ls_code); 1047 zfcp_dbf_out(&p, "ls_code", "0x%02x", els->ls_code);
1050 total = els->len;
1051 buffer = els->payload;
1052 buflen = min(total, ZFCP_DBF_ELS_PAYLOAD);
1053 } 1048 }
1054
1055 zfcp_dbf_outd(&p, "payload", buffer, buflen, 0, total);
1056 if (buflen == total)
1057 p += sprintf(p, "\n");
1058
1059 return p - out_buf; 1049 return p - out_buf;
1060} 1050}
1061 1051
diff --git a/drivers/s390/scsi/zfcp_dbf.h b/drivers/s390/scsi/zfcp_dbf.h
index e8f450801fea..5d6b2dff855b 100644
--- a/drivers/s390/scsi/zfcp_dbf.h
+++ b/drivers/s390/scsi/zfcp_dbf.h
@@ -163,8 +163,6 @@ struct zfcp_san_dbf_record_ct_request {
163 u8 options; 163 u8 options;
164 u16 max_res_size; 164 u16 max_res_size;
165 u32 len; 165 u32 len;
166#define ZFCP_DBF_CT_PAYLOAD 24
167 u8 payload[ZFCP_DBF_CT_PAYLOAD];
168} __attribute__ ((packed)); 166} __attribute__ ((packed));
169 167
170struct zfcp_san_dbf_record_ct_response { 168struct zfcp_san_dbf_record_ct_response {
@@ -174,15 +172,11 @@ struct zfcp_san_dbf_record_ct_response {
174 u8 expl; 172 u8 expl;
175 u8 vendor_unique; 173 u8 vendor_unique;
176 u32 len; 174 u32 len;
177 u8 payload[ZFCP_DBF_CT_PAYLOAD];
178} __attribute__ ((packed)); 175} __attribute__ ((packed));
179 176
180struct zfcp_san_dbf_record_els { 177struct zfcp_san_dbf_record_els {
181 u8 ls_code; 178 u8 ls_code;
182 u32 len; 179 u32 len;
183#define ZFCP_DBF_ELS_PAYLOAD 32
184#define ZFCP_DBF_ELS_MAX_PAYLOAD 1024
185 u8 payload[ZFCP_DBF_ELS_PAYLOAD];
186} __attribute__ ((packed)); 180} __attribute__ ((packed));
187 181
188struct zfcp_san_dbf_record { 182struct zfcp_san_dbf_record {
@@ -196,6 +190,8 @@ struct zfcp_san_dbf_record {
196 struct zfcp_san_dbf_record_ct_response ct_resp; 190 struct zfcp_san_dbf_record_ct_response ct_resp;
197 struct zfcp_san_dbf_record_els els; 191 struct zfcp_san_dbf_record_els els;
198 } u; 192 } u;
193#define ZFCP_DBF_SAN_MAX_PAYLOAD 1024
194 u8 payload[32];
199} __attribute__ ((packed)); 195} __attribute__ ((packed));
200 196
201struct zfcp_scsi_dbf_record { 197struct zfcp_scsi_dbf_record {
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 9040f738ff33..c557ba34e1aa 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -472,6 +472,7 @@ static void zfcp_erp_strategy_check_fsfreq(struct zfcp_erp_action *act)
472 ZFCP_STATUS_ERP_TIMEDOUT)) { 472 ZFCP_STATUS_ERP_TIMEDOUT)) {
473 act->fsf_req->status |= ZFCP_STATUS_FSFREQ_DISMISSED; 473 act->fsf_req->status |= ZFCP_STATUS_FSFREQ_DISMISSED;
474 zfcp_rec_dbf_event_action(142, act); 474 zfcp_rec_dbf_event_action(142, act);
475 act->fsf_req->erp_action = NULL;
475 } 476 }
476 if (act->status & ZFCP_STATUS_ERP_TIMEDOUT) 477 if (act->status & ZFCP_STATUS_ERP_TIMEDOUT)
477 zfcp_rec_dbf_event_action(143, act); 478 zfcp_rec_dbf_event_action(143, act);
@@ -719,7 +720,6 @@ static int zfcp_erp_adapter_strategy_generic(struct zfcp_erp_action *act,
719 goto failed_openfcp; 720 goto failed_openfcp;
720 721
721 atomic_set_mask(ZFCP_STATUS_COMMON_OPEN, &act->adapter->status); 722 atomic_set_mask(ZFCP_STATUS_COMMON_OPEN, &act->adapter->status);
722 schedule_work(&act->adapter->scan_work);
723 723
724 return ZFCP_ERP_SUCCEEDED; 724 return ZFCP_ERP_SUCCEEDED;
725 725
@@ -1185,7 +1185,9 @@ static void zfcp_erp_scsi_scan(struct work_struct *work)
1185 container_of(work, struct zfcp_erp_add_work, work); 1185 container_of(work, struct zfcp_erp_add_work, work);
1186 struct zfcp_unit *unit = p->unit; 1186 struct zfcp_unit *unit = p->unit;
1187 struct fc_rport *rport = unit->port->rport; 1187 struct fc_rport *rport = unit->port->rport;
1188 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,
1189 scsilun_to_int((struct scsi_lun *)&unit->fcp_lun), 0); 1191 scsilun_to_int((struct scsi_lun *)&unit->fcp_lun), 0);
1190 atomic_clear_mask(ZFCP_STATUS_UNIT_SCSI_WORK_PENDING, &unit->status); 1192 atomic_clear_mask(ZFCP_STATUS_UNIT_SCSI_WORK_PENDING, &unit->status);
1191 zfcp_unit_put(unit); 1193 zfcp_unit_put(unit);
@@ -1281,6 +1283,8 @@ static void zfcp_erp_action_cleanup(struct zfcp_erp_action *act, int result)
1281 case ZFCP_ERP_ACTION_REOPEN_ADAPTER: 1283 case ZFCP_ERP_ACTION_REOPEN_ADAPTER:
1282 if (result != ZFCP_ERP_SUCCEEDED) 1284 if (result != ZFCP_ERP_SUCCEEDED)
1283 zfcp_erp_rports_del(adapter); 1285 zfcp_erp_rports_del(adapter);
1286 else
1287 schedule_work(&adapter->scan_work);
1284 zfcp_adapter_put(adapter); 1288 zfcp_adapter_put(adapter);
1285 break; 1289 break;
1286 } 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 5ae1d497e5ed..dc0367690405 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -683,6 +683,7 @@ static struct zfcp_fsf_req *zfcp_fsf_alloc_noqtcb(mempool_t *pool)
683 if (!req) 683 if (!req)
684 return NULL; 684 return NULL;
685 memset(req, 0, sizeof(*req)); 685 memset(req, 0, sizeof(*req));
686 req->pool = pool;
686 return req; 687 return req;
687} 688}
688 689
@@ -769,28 +770,24 @@ static struct zfcp_fsf_req *zfcp_fsf_req_create(struct zfcp_adapter *adapter,
769static int zfcp_fsf_req_send(struct zfcp_fsf_req *req) 770static int zfcp_fsf_req_send(struct zfcp_fsf_req *req)
770{ 771{
771 struct zfcp_adapter *adapter = req->adapter; 772 struct zfcp_adapter *adapter = req->adapter;
772 struct zfcp_qdio_queue *req_q = &adapter->req_q; 773 unsigned long flags;
773 int idx; 774 int idx;
774 775
775 /* put allocated FSF request into hash table */ 776 /* put allocated FSF request into hash table */
776 spin_lock(&adapter->req_list_lock); 777 spin_lock_irqsave(&adapter->req_list_lock, flags);
777 idx = zfcp_reqlist_hash(req->req_id); 778 idx = zfcp_reqlist_hash(req->req_id);
778 list_add_tail(&req->list, &adapter->req_list[idx]); 779 list_add_tail(&req->list, &adapter->req_list[idx]);
779 spin_unlock(&adapter->req_list_lock); 780 spin_unlock_irqrestore(&adapter->req_list_lock, flags);
780 781
781 req->qdio_outb_usage = atomic_read(&req_q->count); 782 req->qdio_outb_usage = atomic_read(&adapter->req_q.count);
782 req->issued = get_clock(); 783 req->issued = get_clock();
783 if (zfcp_qdio_send(req)) { 784 if (zfcp_qdio_send(req)) {
784 /* Queues are down..... */
785 del_timer(&req->timer); 785 del_timer(&req->timer);
786 spin_lock(&adapter->req_list_lock); 786 spin_lock_irqsave(&adapter->req_list_lock, flags);
787 zfcp_reqlist_remove(adapter, req); 787 /* lookup request again, list might have changed */
788 spin_unlock(&adapter->req_list_lock); 788 if (zfcp_reqlist_find_safe(adapter, req))
789 /* undo changes in request queue made for this request */ 789 zfcp_reqlist_remove(adapter, req);
790 atomic_add(req->sbal_number, &req_q->count); 790 spin_unlock_irqrestore(&adapter->req_list_lock, flags);
791 req_q->first -= req->sbal_number;
792 req_q->first += QDIO_MAX_BUFFERS_PER_Q;
793 req_q->first %= QDIO_MAX_BUFFERS_PER_Q; /* wrap */
794 zfcp_erp_adapter_reopen(adapter, 0, 116, req); 791 zfcp_erp_adapter_reopen(adapter, 0, 116, req);
795 return -EIO; 792 return -EIO;
796 } 793 }
@@ -933,8 +930,10 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_command(unsigned long old_req_id,
933 goto out; 930 goto out;
934 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND, 931 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND,
935 req_flags, adapter->pool.fsf_req_abort); 932 req_flags, adapter->pool.fsf_req_abort);
936 if (IS_ERR(req)) 933 if (IS_ERR(req)) {
934 req = NULL;
937 goto out; 935 goto out;
936 }
938 937
939 if (unlikely(!(atomic_read(&unit->status) & 938 if (unlikely(!(atomic_read(&unit->status) &
940 ZFCP_STATUS_COMMON_UNBLOCKED))) 939 ZFCP_STATUS_COMMON_UNBLOCKED)))
@@ -1587,6 +1586,7 @@ static void zfcp_fsf_open_wka_port_handler(struct zfcp_fsf_req *req)
1587 wka_port->status = ZFCP_WKA_PORT_OFFLINE; 1586 wka_port->status = ZFCP_WKA_PORT_OFFLINE;
1588 break; 1587 break;
1589 case FSF_PORT_ALREADY_OPEN: 1588 case FSF_PORT_ALREADY_OPEN:
1589 break;
1590 case FSF_GOOD: 1590 case FSF_GOOD:
1591 wka_port->handle = header->port_handle; 1591 wka_port->handle = header->port_handle;
1592 wka_port->status = ZFCP_WKA_PORT_ONLINE; 1592 wka_port->status = ZFCP_WKA_PORT_ONLINE;
@@ -2116,18 +2116,21 @@ static inline void zfcp_fsf_trace_latency(struct zfcp_fsf_req *fsf_req)
2116 2116
2117static 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)
2118{ 2118{
2119 struct scsi_cmnd *scpnt = req->data; 2119 struct scsi_cmnd *scpnt;
2120 struct fcp_rsp_iu *fcp_rsp_iu = (struct fcp_rsp_iu *) 2120 struct fcp_rsp_iu *fcp_rsp_iu = (struct fcp_rsp_iu *)
2121 &(req->qtcb->bottom.io.fcp_rsp); 2121 &(req->qtcb->bottom.io.fcp_rsp);
2122 u32 sns_len; 2122 u32 sns_len;
2123 char *fcp_rsp_info = (unsigned char *) &fcp_rsp_iu[1]; 2123 char *fcp_rsp_info = (unsigned char *) &fcp_rsp_iu[1];
2124 unsigned long flags; 2124 unsigned long flags;
2125 2125
2126 if (unlikely(!scpnt))
2127 return;
2128
2129 read_lock_irqsave(&req->adapter->abort_lock, flags); 2126 read_lock_irqsave(&req->adapter->abort_lock, flags);
2130 2127
2128 scpnt = req->data;
2129 if (unlikely(!scpnt)) {
2130 read_unlock_irqrestore(&req->adapter->abort_lock, flags);
2131 return;
2132 }
2133
2131 if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ABORTED)) { 2134 if (unlikely(req->status & ZFCP_STATUS_FSFREQ_ABORTED)) {
2132 set_host_byte(scpnt, DID_SOFT_ERROR); 2135 set_host_byte(scpnt, DID_SOFT_ERROR);
2133 set_driver_byte(scpnt, SUGGEST_RETRY); 2136 set_driver_byte(scpnt, SUGGEST_RETRY);
@@ -2445,8 +2448,10 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_ctm(struct zfcp_adapter *adapter,
2445 goto out; 2448 goto out;
2446 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,
2447 adapter->pool.fsf_req_scsi); 2450 adapter->pool.fsf_req_scsi);
2448 if (IS_ERR(req)) 2451 if (IS_ERR(req)) {
2452 req = NULL;
2449 goto out; 2453 goto out;
2454 }
2450 2455
2451 req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT; 2456 req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT;
2452 req->data = unit; 2457 req->data = unit;
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index ca8f85f3dad4..468c880f8b6d 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -24,14 +24,10 @@ char *zfcp_get_fcp_sns_info_ptr(struct fcp_rsp_iu *fcp_rsp_iu)
24static void zfcp_scsi_slave_destroy(struct scsi_device *sdpnt) 24static void zfcp_scsi_slave_destroy(struct scsi_device *sdpnt)
25{ 25{
26 struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata; 26 struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata;
27 WARN_ON(!unit); 27 atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status);
28 if (unit) { 28 unit->device = NULL;
29 atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status); 29 zfcp_erp_unit_failed(unit, 12, NULL);
30 sdpnt->hostdata = NULL; 30 zfcp_unit_put(unit);
31 unit->device = NULL;
32 zfcp_erp_unit_failed(unit, 12, NULL);
33 zfcp_unit_put(unit);
34 }
35} 31}
36 32
37static int zfcp_scsi_slave_configure(struct scsi_device *sdp) 33static int zfcp_scsi_slave_configure(struct scsi_device *sdp)
@@ -92,7 +88,7 @@ static int zfcp_scsi_queuecommand(struct scsi_cmnd *scpnt,
92 ret = zfcp_fsf_send_fcp_command_task(adapter, unit, scpnt, 0, 88 ret = zfcp_fsf_send_fcp_command_task(adapter, unit, scpnt, 0,
93 ZFCP_REQ_AUTO_CLEANUP); 89 ZFCP_REQ_AUTO_CLEANUP);
94 if (unlikely(ret == -EBUSY)) 90 if (unlikely(ret == -EBUSY))
95 zfcp_scsi_command_fail(scpnt, DID_NO_CONNECT); 91 return SCSI_MLQUEUE_DEVICE_BUSY;
96 else if (unlikely(ret < 0)) 92 else if (unlikely(ret < 0))
97 return SCSI_MLQUEUE_HOST_BUSY; 93 return SCSI_MLQUEUE_HOST_BUSY;
98 94
diff --git a/drivers/sbus/char/jsflash.c b/drivers/sbus/char/jsflash.c
index 2bec9ccc0293..a9a9893a5f95 100644
--- a/drivers/sbus/char/jsflash.c
+++ b/drivers/sbus/char/jsflash.c
@@ -36,7 +36,6 @@
36#include <linux/poll.h> 36#include <linux/poll.h>
37#include <linux/init.h> 37#include <linux/init.h>
38#include <linux/string.h> 38#include <linux/string.h>
39#include <linux/smp_lock.h>
40#include <linux/genhd.h> 39#include <linux/genhd.h>
41#include <linux/blkdev.h> 40#include <linux/blkdev.h>
42 41
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
index 9aa301c1ed07..162cd927d94b 100644
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -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/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
index 8aba4fdfb522..6194ed5d02c4 100644
--- a/drivers/scsi/dpt_i2o.c
+++ b/drivers/scsi/dpt_i2o.c
@@ -2445,7 +2445,7 @@ static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd)
2445 hba_status = detailed_status >> 8; 2445 hba_status = detailed_status >> 8;
2446 2446
2447 // calculate resid for sg 2447 // calculate resid for sg
2448 scsi_set_resid(cmd, scsi_bufflen(cmd) - readl(reply+5)); 2448 scsi_set_resid(cmd, scsi_bufflen(cmd) - readl(reply+20));
2449 2449
2450 pHba = (adpt_hba*) cmd->device->host->hostdata[0]; 2450 pHba = (adpt_hba*) cmd->device->host->hostdata[0];
2451 2451
@@ -2456,7 +2456,7 @@ static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd)
2456 case I2O_SCSI_DSC_SUCCESS: 2456 case I2O_SCSI_DSC_SUCCESS:
2457 cmd->result = (DID_OK << 16); 2457 cmd->result = (DID_OK << 16);
2458 // handle underflow 2458 // handle underflow
2459 if(readl(reply+5) < cmd->underflow ) { 2459 if (readl(reply+20) < cmd->underflow) {
2460 cmd->result = (DID_ERROR <<16); 2460 cmd->result = (DID_ERROR <<16);
2461 printk(KERN_WARNING"%s: SCSI CMD underflow\n",pHba->name); 2461 printk(KERN_WARNING"%s: SCSI CMD underflow\n",pHba->name);
2462 } 2462 }
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/megaraid.c b/drivers/scsi/megaraid.c
index 28c9da7d4a5c..7dc62deb4087 100644
--- a/drivers/scsi/megaraid.c
+++ b/drivers/scsi/megaraid.c
@@ -4402,6 +4402,10 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru)
4402 scb_t *scb; 4402 scb_t *scb;
4403 int rval; 4403 int rval;
4404 4404
4405 scmd = scsi_allocate_command(GFP_KERNEL);
4406 if (!scmd)
4407 return -ENOMEM;
4408
4405 /* 4409 /*
4406 * The internal commands share one command id and hence are 4410 * The internal commands share one command id and hence are
4407 * serialized. This is so because we want to reserve maximum number of 4411 * serialized. This is so because we want to reserve maximum number of
@@ -4412,12 +4416,11 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru)
4412 scb = &adapter->int_scb; 4416 scb = &adapter->int_scb;
4413 memset(scb, 0, sizeof(scb_t)); 4417 memset(scb, 0, sizeof(scb_t));
4414 4418
4415 scmd = &adapter->int_scmd;
4416 memset(scmd, 0, sizeof(Scsi_Cmnd));
4417
4418 sdev = kzalloc(sizeof(struct scsi_device), GFP_KERNEL); 4419 sdev = kzalloc(sizeof(struct scsi_device), GFP_KERNEL);
4419 scmd->device = sdev; 4420 scmd->device = sdev;
4420 4421
4422 memset(adapter->int_cdb, 0, sizeof(adapter->int_cdb));
4423 scmd->cmnd = adapter->int_cdb;
4421 scmd->device->host = adapter->host; 4424 scmd->device->host = adapter->host;
4422 scmd->host_scribble = (void *)scb; 4425 scmd->host_scribble = (void *)scb;
4423 scmd->cmnd[0] = MEGA_INTERNAL_CMD; 4426 scmd->cmnd[0] = MEGA_INTERNAL_CMD;
@@ -4456,6 +4459,8 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru)
4456 4459
4457 mutex_unlock(&adapter->int_mtx); 4460 mutex_unlock(&adapter->int_mtx);
4458 4461
4462 scsi_free_command(GFP_KERNEL, scmd);
4463
4459 return rval; 4464 return rval;
4460} 4465}
4461 4466
diff --git a/drivers/scsi/megaraid.h b/drivers/scsi/megaraid.h
index ee70bd4ae4ba..795201fa0b48 100644
--- a/drivers/scsi/megaraid.h
+++ b/drivers/scsi/megaraid.h
@@ -888,8 +888,8 @@ typedef struct {
888 888
889 u8 sglen; /* f/w supported scatter-gather list length */ 889 u8 sglen; /* f/w supported scatter-gather list length */
890 890
891 unsigned char int_cdb[MAX_COMMAND_SIZE];
891 scb_t int_scb; 892 scb_t int_scb;
892 Scsi_Cmnd int_scmd;
893 struct mutex int_mtx; /* To synchronize the internal 893 struct mutex int_mtx; /* To synchronize the internal
894 commands */ 894 commands */
895 struct completion int_waitq; /* wait queue for internal 895 struct completion int_waitq; /* wait queue for internal
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/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index f25f41a499e5..b97194096d8e 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -2547,7 +2547,6 @@ typedef struct scsi_qla_host {
2547 uint8_t fcode_revision[16]; 2547 uint8_t fcode_revision[16];
2548 uint32_t fw_revision[4]; 2548 uint32_t fw_revision[4];
2549 2549
2550 uint16_t fdt_odd_index;
2551 uint32_t fdt_wrt_disable; 2550 uint32_t fdt_wrt_disable;
2552 uint32_t fdt_erase_cmd; 2551 uint32_t fdt_erase_cmd;
2553 uint32_t fdt_block_size; 2552 uint32_t fdt_block_size;
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index a470f2d3270d..4218f20f5ed5 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -140,7 +140,6 @@ int
140qla2100_pci_config(scsi_qla_host_t *ha) 140qla2100_pci_config(scsi_qla_host_t *ha)
141{ 141{
142 uint16_t w; 142 uint16_t w;
143 uint32_t d;
144 unsigned long flags; 143 unsigned long flags;
145 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; 144 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
146 145
@@ -151,10 +150,7 @@ qla2100_pci_config(scsi_qla_host_t *ha)
151 w |= (PCI_COMMAND_PARITY | PCI_COMMAND_SERR); 150 w |= (PCI_COMMAND_PARITY | PCI_COMMAND_SERR);
152 pci_write_config_word(ha->pdev, PCI_COMMAND, w); 151 pci_write_config_word(ha->pdev, PCI_COMMAND, w);
153 152
154 /* Reset expansion ROM address decode enable */ 153 pci_disable_rom(ha->pdev);
155 pci_read_config_dword(ha->pdev, PCI_ROM_ADDRESS, &d);
156 d &= ~PCI_ROM_ADDRESS_ENABLE;
157 pci_write_config_dword(ha->pdev, PCI_ROM_ADDRESS, d);
158 154
159 /* Get PCI bus information. */ 155 /* Get PCI bus information. */
160 spin_lock_irqsave(&ha->hardware_lock, flags); 156 spin_lock_irqsave(&ha->hardware_lock, flags);
@@ -174,7 +170,6 @@ int
174qla2300_pci_config(scsi_qla_host_t *ha) 170qla2300_pci_config(scsi_qla_host_t *ha)
175{ 171{
176 uint16_t w; 172 uint16_t w;
177 uint32_t d;
178 unsigned long flags = 0; 173 unsigned long flags = 0;
179 uint32_t cnt; 174 uint32_t cnt;
180 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; 175 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
@@ -236,10 +231,7 @@ qla2300_pci_config(scsi_qla_host_t *ha)
236 231
237 pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80); 232 pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80);
238 233
239 /* Reset expansion ROM address decode enable */ 234 pci_disable_rom(ha->pdev);
240 pci_read_config_dword(ha->pdev, PCI_ROM_ADDRESS, &d);
241 d &= ~PCI_ROM_ADDRESS_ENABLE;
242 pci_write_config_dword(ha->pdev, PCI_ROM_ADDRESS, d);
243 235
244 /* Get PCI bus information. */ 236 /* Get PCI bus information. */
245 spin_lock_irqsave(&ha->hardware_lock, flags); 237 spin_lock_irqsave(&ha->hardware_lock, flags);
@@ -259,7 +251,6 @@ int
259qla24xx_pci_config(scsi_qla_host_t *ha) 251qla24xx_pci_config(scsi_qla_host_t *ha)
260{ 252{
261 uint16_t w; 253 uint16_t w;
262 uint32_t d;
263 unsigned long flags = 0; 254 unsigned long flags = 0;
264 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24; 255 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
265 256
@@ -281,10 +272,7 @@ qla24xx_pci_config(scsi_qla_host_t *ha)
281 if (pci_find_capability(ha->pdev, PCI_CAP_ID_EXP)) 272 if (pci_find_capability(ha->pdev, PCI_CAP_ID_EXP))
282 pcie_set_readrq(ha->pdev, 2048); 273 pcie_set_readrq(ha->pdev, 2048);
283 274
284 /* Reset expansion ROM address decode enable */ 275 pci_disable_rom(ha->pdev);
285 pci_read_config_dword(ha->pdev, PCI_ROM_ADDRESS, &d);
286 d &= ~PCI_ROM_ADDRESS_ENABLE;
287 pci_write_config_dword(ha->pdev, PCI_ROM_ADDRESS, d);
288 276
289 ha->chip_revision = ha->pdev->revision; 277 ha->chip_revision = ha->pdev->revision;
290 278
@@ -306,7 +294,6 @@ int
306qla25xx_pci_config(scsi_qla_host_t *ha) 294qla25xx_pci_config(scsi_qla_host_t *ha)
307{ 295{
308 uint16_t w; 296 uint16_t w;
309 uint32_t d;
310 297
311 pci_set_master(ha->pdev); 298 pci_set_master(ha->pdev);
312 pci_try_set_mwi(ha->pdev); 299 pci_try_set_mwi(ha->pdev);
@@ -320,10 +307,7 @@ qla25xx_pci_config(scsi_qla_host_t *ha)
320 if (pci_find_capability(ha->pdev, PCI_CAP_ID_EXP)) 307 if (pci_find_capability(ha->pdev, PCI_CAP_ID_EXP))
321 pcie_set_readrq(ha->pdev, 2048); 308 pcie_set_readrq(ha->pdev, 2048);
322 309
323 /* Reset expansion ROM address decode enable */ 310 pci_disable_rom(ha->pdev);
324 pci_read_config_dword(ha->pdev, PCI_ROM_ADDRESS, &d);
325 d &= ~PCI_ROM_ADDRESS_ENABLE;
326 pci_write_config_dword(ha->pdev, PCI_ROM_ADDRESS, d);
327 311
328 ha->chip_revision = ha->pdev->revision; 312 ha->chip_revision = ha->pdev->revision;
329 313
@@ -980,7 +964,6 @@ qla2x00_setup_chip(scsi_qla_host_t *ha)
980 &ha->fw_minor_version, 964 &ha->fw_minor_version,
981 &ha->fw_subminor_version, 965 &ha->fw_subminor_version,
982 &ha->fw_attributes, &ha->fw_memory_size); 966 &ha->fw_attributes, &ha->fw_memory_size);
983 qla2x00_resize_request_q(ha);
984 ha->flags.npiv_supported = 0; 967 ha->flags.npiv_supported = 0;
985 if ((IS_QLA24XX(ha) || IS_QLA25XX(ha) || 968 if ((IS_QLA24XX(ha) || IS_QLA25XX(ha) ||
986 IS_QLA84XX(ha)) && 969 IS_QLA84XX(ha)) &&
@@ -992,6 +975,7 @@ qla2x00_setup_chip(scsi_qla_host_t *ha)
992 ha->max_npiv_vports = 975 ha->max_npiv_vports =
993 MIN_MULTI_ID_FABRIC - 1; 976 MIN_MULTI_ID_FABRIC - 1;
994 } 977 }
978 qla2x00_resize_request_q(ha);
995 979
996 if (ql2xallocfwdump) 980 if (ql2xallocfwdump)
997 qla2x00_alloc_fw_dump(ha); 981 qla2x00_alloc_fw_dump(ha);
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 36bc6851e23d..3402746ec128 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -1964,7 +1964,7 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *ha, uint16_t *cur_xchg_cnt,
1964 *cur_iocb_cnt = mcp->mb[7]; 1964 *cur_iocb_cnt = mcp->mb[7];
1965 if (orig_iocb_cnt) 1965 if (orig_iocb_cnt)
1966 *orig_iocb_cnt = mcp->mb[10]; 1966 *orig_iocb_cnt = mcp->mb[10];
1967 if (max_npiv_vports) 1967 if (ha->flags.npiv_supported && max_npiv_vports)
1968 *max_npiv_vports = mcp->mb[11]; 1968 *max_npiv_vports = mcp->mb[11];
1969 } 1969 }
1970 1970
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 21dd182ad512..35567203ef61 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -728,6 +728,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
728 if (ha->isp_ops->abort_command(ha, sp)) { 728 if (ha->isp_ops->abort_command(ha, sp)) {
729 DEBUG2(printk("%s(%ld): abort_command " 729 DEBUG2(printk("%s(%ld): abort_command "
730 "mbx failed.\n", __func__, ha->host_no)); 730 "mbx failed.\n", __func__, ha->host_no));
731 ret = FAILED;
731 } else { 732 } else {
732 DEBUG3(printk("%s(%ld): abort_command " 733 DEBUG3(printk("%s(%ld): abort_command "
733 "mbx success.\n", __func__, ha->host_no)); 734 "mbx success.\n", __func__, ha->host_no));
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c
index 90a13211717f..e4af678eb2d6 100644
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -722,6 +722,7 @@ done:
722static void 722static void
723qla2xxx_get_fdt_info(scsi_qla_host_t *ha) 723qla2xxx_get_fdt_info(scsi_qla_host_t *ha)
724{ 724{
725#define FLASH_BLK_SIZE_4K 0x1000
725#define FLASH_BLK_SIZE_32K 0x8000 726#define FLASH_BLK_SIZE_32K 0x8000
726#define FLASH_BLK_SIZE_64K 0x10000 727#define FLASH_BLK_SIZE_64K 0x10000
727 const char *loc, *locations[] = { "MID", "FDT" }; 728 const char *loc, *locations[] = { "MID", "FDT" };
@@ -755,7 +756,6 @@ qla2xxx_get_fdt_info(scsi_qla_host_t *ha)
755 loc = locations[1]; 756 loc = locations[1];
756 mid = le16_to_cpu(fdt->man_id); 757 mid = le16_to_cpu(fdt->man_id);
757 fid = le16_to_cpu(fdt->id); 758 fid = le16_to_cpu(fdt->id);
758 ha->fdt_odd_index = mid == 0x1f;
759 ha->fdt_wrt_disable = fdt->wrt_disable_bits; 759 ha->fdt_wrt_disable = fdt->wrt_disable_bits;
760 ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0300 | fdt->erase_cmd); 760 ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0300 | fdt->erase_cmd);
761 ha->fdt_block_size = le32_to_cpu(fdt->block_size); 761 ha->fdt_block_size = le32_to_cpu(fdt->block_size);
@@ -788,8 +788,7 @@ no_flash_data:
788 ha->fdt_block_size = FLASH_BLK_SIZE_64K; 788 ha->fdt_block_size = FLASH_BLK_SIZE_64K;
789 break; 789 break;
790 case 0x1f: /* Atmel 26DF081A. */ 790 case 0x1f: /* Atmel 26DF081A. */
791 ha->fdt_odd_index = 1; 791 ha->fdt_block_size = FLASH_BLK_SIZE_4K;
792 ha->fdt_block_size = FLASH_BLK_SIZE_64K;
793 ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0320); 792 ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0320);
794 ha->fdt_unprotect_sec_cmd = flash_conf_to_access_addr(0x0339); 793 ha->fdt_unprotect_sec_cmd = flash_conf_to_access_addr(0x0339);
795 ha->fdt_protect_sec_cmd = flash_conf_to_access_addr(0x0336); 794 ha->fdt_protect_sec_cmd = flash_conf_to_access_addr(0x0336);
@@ -801,9 +800,9 @@ no_flash_data:
801 } 800 }
802done: 801done:
803 DEBUG2(qla_printk(KERN_DEBUG, ha, "FDT[%s]: (0x%x/0x%x) erase=0x%x " 802 DEBUG2(qla_printk(KERN_DEBUG, ha, "FDT[%s]: (0x%x/0x%x) erase=0x%x "
804 "pro=%x upro=%x idx=%d wrtd=0x%x blk=0x%x.\n", loc, mid, fid, 803 "pro=%x upro=%x wrtd=0x%x blk=0x%x.\n", loc, mid, fid,
805 ha->fdt_erase_cmd, ha->fdt_protect_sec_cmd, 804 ha->fdt_erase_cmd, ha->fdt_protect_sec_cmd,
806 ha->fdt_unprotect_sec_cmd, ha->fdt_odd_index, ha->fdt_wrt_disable, 805 ha->fdt_unprotect_sec_cmd, ha->fdt_wrt_disable,
807 ha->fdt_block_size)); 806 ha->fdt_block_size));
808} 807}
809 808
@@ -987,13 +986,9 @@ qla24xx_write_flash_data(scsi_qla_host_t *ha, uint32_t *dwptr, uint32_t faddr,
987 qla24xx_unprotect_flash(ha); 986 qla24xx_unprotect_flash(ha);
988 987
989 for (liter = 0; liter < dwords; liter++, faddr++, dwptr++) { 988 for (liter = 0; liter < dwords; liter++, faddr++, dwptr++) {
990 if (ha->fdt_odd_index) { 989
991 findex = faddr << 2; 990 findex = faddr;
992 fdata = findex & sec_mask; 991 fdata = (findex & sec_mask) << 2;
993 } else {
994 findex = faddr;
995 fdata = (findex & sec_mask) << 2;
996 }
997 992
998 /* Are we at the beginning of a sector? */ 993 /* Are we at the beginning of a sector? */
999 if ((findex & rest_addr) == 0) { 994 if ((findex & rest_addr) == 0) {
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h
index be5e299df528..eea6720adf16 100644
--- a/drivers/scsi/qla2xxx/qla_version.h
+++ b/drivers/scsi/qla2xxx/qla_version.h
@@ -7,7 +7,7 @@
7/* 7/*
8 * Driver version 8 * Driver version
9 */ 9 */
10#define QLA2XXX_VERSION "8.02.01-k8" 10#define QLA2XXX_VERSION "8.02.01-k9"
11 11
12#define QLA_DRIVER_MAJOR_VER 8 12#define QLA_DRIVER_MAJOR_VER 8
13#define QLA_DRIVER_MINOR_VER 2 13#define QLA_DRIVER_MINOR_VER 2
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index 94ed262bdf0c..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;
@@ -1340,9 +1339,10 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd)
1340 * LLD/transport was disrupted during processing of the IO. 1339 * LLD/transport was disrupted during processing of the IO.
1341 * The transport class is now blocked/blocking, 1340 * The transport class is now blocked/blocking,
1342 * and the transport will decide what to do with the IO 1341 * and the transport will decide what to do with the IO
1343 * based on its timers and recovery capablilities. 1342 * based on its timers and recovery capablilities if
1343 * there are enough retries.
1344 */ 1344 */
1345 return ADD_TO_MLQUEUE; 1345 goto maybe_retry;
1346 case DID_TRANSPORT_FAILFAST: 1346 case DID_TRANSPORT_FAILFAST:
1347 /* 1347 /*
1348 * The transport decided to failfast the IO (most likely 1348 * The transport decided to failfast the IO (most likely
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index f5d3b96890dc..fa45a1a66867 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);
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/atmel_serial.c b/drivers/serial/atmel_serial.c
index 61fb8b6d19af..d5efd6c77904 100644
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -1258,6 +1258,8 @@ static void __devinit atmel_init_port(struct atmel_uart_port *atmel_port,
1258 atmel_port->clk = clk_get(&pdev->dev, "usart"); 1258 atmel_port->clk = clk_get(&pdev->dev, "usart");
1259 clk_enable(atmel_port->clk); 1259 clk_enable(atmel_port->clk);
1260 port->uartclk = clk_get_rate(atmel_port->clk); 1260 port->uartclk = clk_get_rate(atmel_port->clk);
1261 clk_disable(atmel_port->clk);
1262 /* only enable clock when USART is in use */
1261 } 1263 }
1262 1264
1263 atmel_port->use_dma_rx = data->use_dma_rx; 1265 atmel_port->use_dma_rx = data->use_dma_rx;
@@ -1379,6 +1381,8 @@ static int __init atmel_console_setup(struct console *co, char *options)
1379 return -ENODEV; 1381 return -ENODEV;
1380 } 1382 }
1381 1383
1384 clk_enable(atmel_ports[co->index].clk);
1385
1382 UART_PUT_IDR(port, -1); 1386 UART_PUT_IDR(port, -1);
1383 UART_PUT_CR(port, ATMEL_US_RSTSTA | ATMEL_US_RSTRX); 1387 UART_PUT_CR(port, ATMEL_US_RSTSTA | ATMEL_US_RSTRX);
1384 UART_PUT_CR(port, ATMEL_US_TXEN | ATMEL_US_RXEN); 1388 UART_PUT_CR(port, ATMEL_US_TXEN | ATMEL_US_RXEN);
@@ -1403,7 +1407,7 @@ static struct console atmel_console = {
1403 .data = &atmel_uart, 1407 .data = &atmel_uart,
1404}; 1408};
1405 1409
1406#define ATMEL_CONSOLE_DEVICE &atmel_console 1410#define ATMEL_CONSOLE_DEVICE (&atmel_console)
1407 1411
1408/* 1412/*
1409 * Early console initialization (before VM subsystem initialized). 1413 * Early console initialization (before VM subsystem initialized).
@@ -1534,6 +1538,15 @@ static int __devinit atmel_serial_probe(struct platform_device *pdev)
1534 if (ret) 1538 if (ret)
1535 goto err_add_port; 1539 goto err_add_port;
1536 1540
1541 if (atmel_is_console_port(&port->uart)
1542 && ATMEL_CONSOLE_DEVICE->flags & CON_ENABLED) {
1543 /*
1544 * The serial core enabled the clock for us, so undo
1545 * the clk_enable() in atmel_console_setup()
1546 */
1547 clk_disable(port->clk);
1548 }
1549
1537 device_init_wakeup(&pdev->dev, 1); 1550 device_init_wakeup(&pdev->dev, 1);
1538 platform_set_drvdata(pdev, port); 1551 platform_set_drvdata(pdev, port);
1539 1552
@@ -1544,7 +1557,6 @@ err_add_port:
1544 port->rx_ring.buf = NULL; 1557 port->rx_ring.buf = NULL;
1545err_alloc_ring: 1558err_alloc_ring:
1546 if (!atmel_is_console_port(&port->uart)) { 1559 if (!atmel_is_console_port(&port->uart)) {
1547 clk_disable(port->clk);
1548 clk_put(port->clk); 1560 clk_put(port->clk);
1549 port->clk = NULL; 1561 port->clk = NULL;
1550 } 1562 }
@@ -1568,7 +1580,6 @@ static int __devexit atmel_serial_remove(struct platform_device *pdev)
1568 1580
1569 /* "port" is allocated statically, so we shouldn't free it */ 1581 /* "port" is allocated statically, so we shouldn't free it */
1570 1582
1571 clk_disable(atmel_port->clk);
1572 clk_put(atmel_port->clk); 1583 clk_put(atmel_port->clk);
1573 1584
1574 return ret; 1585 return ret;
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/sh-sci.c b/drivers/serial/sh-sci.c
index 5c0f32c7fbf6..165fc010978c 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -144,9 +144,9 @@ static void put_char(struct uart_port *port, char c)
144 status = sci_in(port, SCxSR); 144 status = sci_in(port, SCxSR);
145 } while (!(status & SCxSR_TDxE(port))); 145 } while (!(status & SCxSR_TDxE(port)));
146 146
147 sci_out(port, SCxTDR, c);
148 sci_in(port, SCxSR); /* Dummy read */ 147 sci_in(port, SCxSR); /* Dummy read */
149 sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port)); 148 sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port));
149 sci_out(port, SCxTDR, c);
150 150
151 spin_unlock_irqrestore(&port->lock, flags); 151 spin_unlock_irqrestore(&port->lock, flags);
152} 152}
@@ -478,10 +478,10 @@ static void sci_transmit_chars(struct uart_port *port)
478 return; 478 return;
479 } 479 }
480 480
481 if (port->type == PORT_SCIF) 481 if (port->type == PORT_SCI)
482 count = scif_txroom(port);
483 else
484 count = sci_txroom(port); 482 count = sci_txroom(port);
483 else
484 count = scif_txroom(port);
485 485
486 do { 486 do {
487 unsigned char c; 487 unsigned char c;
@@ -510,7 +510,7 @@ static void sci_transmit_chars(struct uart_port *port)
510 } else { 510 } else {
511 ctrl = sci_in(port, SCSCR); 511 ctrl = sci_in(port, SCSCR);
512 512
513 if (port->type == PORT_SCIF) { 513 if (port->type != PORT_SCI) {
514 sci_in(port, SCxSR); /* Dummy read */ 514 sci_in(port, SCxSR); /* Dummy read */
515 sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port)); 515 sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port));
516 } 516 }
@@ -536,10 +536,10 @@ static inline void sci_receive_chars(struct uart_port *port)
536 return; 536 return;
537 537
538 while (1) { 538 while (1) {
539 if (port->type == PORT_SCIF) 539 if (port->type == PORT_SCI)
540 count = scif_rxroom(port);
541 else
542 count = sci_rxroom(port); 540 count = sci_rxroom(port);
541 else
542 count = scif_rxroom(port);
543 543
544 /* Don't copy more bytes than there is room for in the buffer */ 544 /* Don't copy more bytes than there is room for in the buffer */
545 count = tty_buffer_request_room(tty, count); 545 count = tty_buffer_request_room(tty, count);
@@ -714,7 +714,7 @@ static inline int sci_handle_breaks(struct uart_port *port)
714 714
715#if defined(SCIF_ORER) 715#if defined(SCIF_ORER)
716 /* XXX: Handle SCIF overrun error */ 716 /* XXX: Handle SCIF overrun error */
717 if (port->type == PORT_SCIF && (sci_in(port, SCLSR) & SCIF_ORER) != 0) { 717 if (port->type != PORT_SCI && (sci_in(port, SCLSR) & SCIF_ORER) != 0) {
718 sci_out(port, SCLSR, 0); 718 sci_out(port, SCLSR, 0);
719 if (tty_insert_flip_char(tty, 0, TTY_OVERRUN)) { 719 if (tty_insert_flip_char(tty, 0, TTY_OVERRUN)) {
720 copied++; 720 copied++;
@@ -1042,7 +1042,7 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
1042 1042
1043 sci_out(port, SCSCR, 0x00); /* TE=0, RE=0, CKE1=0 */ 1043 sci_out(port, SCSCR, 0x00); /* TE=0, RE=0, CKE1=0 */
1044 1044
1045 if (port->type == PORT_SCIF) 1045 if (port->type != PORT_SCI)
1046 sci_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST); 1046 sci_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST);
1047 1047
1048 smr_val = sci_in(port, SCSMR) & 3; 1048 smr_val = sci_in(port, SCSMR) & 3;
@@ -1085,6 +1085,7 @@ static const char *sci_type(struct uart_port *port)
1085 case PORT_SCI: return "sci"; 1085 case PORT_SCI: return "sci";
1086 case PORT_SCIF: return "scif"; 1086 case PORT_SCIF: return "scif";
1087 case PORT_IRDA: return "irda"; 1087 case PORT_IRDA: return "irda";
1088 case PORT_SCIFA: return "scifa";
1088 } 1089 }
1089 1090
1090 return NULL; 1091 return NULL;
@@ -1112,6 +1113,7 @@ static void sci_config_port(struct uart_port *port, int flags)
1112 s->init_pins = sci_init_pins_sci; 1113 s->init_pins = sci_init_pins_sci;
1113 break; 1114 break;
1114 case PORT_SCIF: 1115 case PORT_SCIF:
1116 case PORT_SCIFA:
1115 s->init_pins = sci_init_pins_scif; 1117 s->init_pins = sci_init_pins_scif;
1116 break; 1118 break;
1117 case PORT_IRDA: 1119 case PORT_IRDA:
diff --git a/drivers/serial/sh-sci.h b/drivers/serial/sh-sci.h
index 6163a45f968f..9f33b064172e 100644
--- a/drivers/serial/sh-sci.h
+++ b/drivers/serial/sh-sci.h
@@ -289,18 +289,18 @@
289#define CPU_SCIx_FNS(name, sci_offset, sci_size, scif_offset, scif_size)\ 289#define CPU_SCIx_FNS(name, sci_offset, sci_size, scif_offset, scif_size)\
290 static inline unsigned int sci_##name##_in(struct uart_port *port) \ 290 static inline unsigned int sci_##name##_in(struct uart_port *port) \
291 { \ 291 { \
292 if (port->type == PORT_SCI) { \ 292 if (port->type == PORT_SCIF) { \
293 SCI_IN(sci_size, sci_offset) \ 293 SCI_IN(scif_size, scif_offset) \
294 } else { \ 294 } else { /* PORT_SCI or PORT_SCIFA */ \
295 SCI_IN(scif_size, scif_offset); \ 295 SCI_IN(sci_size, sci_offset); \
296 } \ 296 } \
297 } \ 297 } \
298 static inline void sci_##name##_out(struct uart_port *port, unsigned int value) \ 298 static inline void sci_##name##_out(struct uart_port *port, unsigned int value) \
299 { \ 299 { \
300 if (port->type == PORT_SCI) { \ 300 if (port->type == PORT_SCIF) { \
301 SCI_OUT(sci_size, sci_offset, value) \ 301 SCI_OUT(scif_size, scif_offset, value) \
302 } else { \ 302 } else { /* PORT_SCI or PORT_SCIFA */ \
303 SCI_OUT(scif_size, scif_offset, value); \ 303 SCI_OUT(sci_size, sci_offset, value); \
304 } \ 304 } \
305 } 305 }
306 306
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/atmel_spi.c b/drivers/spi/atmel_spi.c
index 02f9320f3efc..8abae4ad0fa5 100644
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
@@ -766,6 +766,7 @@ static int __init atmel_spi_probe(struct platform_device *pdev)
766 /* Initialize the hardware */ 766 /* Initialize the hardware */
767 clk_enable(clk); 767 clk_enable(clk);
768 spi_writel(as, CR, SPI_BIT(SWRST)); 768 spi_writel(as, CR, SPI_BIT(SWRST));
769 spi_writel(as, CR, SPI_BIT(SWRST)); /* AT91SAM9263 Rev B workaround */
769 spi_writel(as, MR, SPI_BIT(MSTR) | SPI_BIT(MODFDIS)); 770 spi_writel(as, MR, SPI_BIT(MSTR) | SPI_BIT(MODFDIS));
770 spi_writel(as, PTCR, SPI_BIT(RXTDIS) | SPI_BIT(TXTDIS)); 771 spi_writel(as, PTCR, SPI_BIT(RXTDIS) | SPI_BIT(TXTDIS));
771 spi_writel(as, CR, SPI_BIT(SPIEN)); 772 spi_writel(as, CR, SPI_BIT(SPIEN));
@@ -782,6 +783,7 @@ static int __init atmel_spi_probe(struct platform_device *pdev)
782 783
783out_reset_hw: 784out_reset_hw:
784 spi_writel(as, CR, SPI_BIT(SWRST)); 785 spi_writel(as, CR, SPI_BIT(SWRST));
786 spi_writel(as, CR, SPI_BIT(SWRST)); /* AT91SAM9263 Rev B workaround */
785 clk_disable(clk); 787 clk_disable(clk);
786 free_irq(irq, master); 788 free_irq(irq, master);
787out_unmap_regs: 789out_unmap_regs:
@@ -805,6 +807,7 @@ static int __exit atmel_spi_remove(struct platform_device *pdev)
805 spin_lock_irq(&as->lock); 807 spin_lock_irq(&as->lock);
806 as->stopping = 1; 808 as->stopping = 1;
807 spi_writel(as, CR, SPI_BIT(SWRST)); 809 spi_writel(as, CR, SPI_BIT(SWRST));
810 spi_writel(as, CR, SPI_BIT(SWRST)); /* AT91SAM9263 Rev B workaround */
808 spi_readl(as, SR); 811 spi_readl(as, SR);
809 spin_unlock_irq(&as->lock); 812 spin_unlock_irq(&as->lock);
810 813
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/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c
index dae87b1a4c6e..cf12f2d84be2 100644
--- a/drivers/spi/pxa2xx_spi.c
+++ b/drivers/spi/pxa2xx_spi.c
@@ -352,21 +352,21 @@ static int map_dma_buffers(struct driver_data *drv_data)
352 } else 352 } else
353 drv_data->tx_map_len = drv_data->len; 353 drv_data->tx_map_len = drv_data->len;
354 354
355 /* Stream map the rx buffer */ 355 /* Stream map the tx buffer. Always do DMA_TO_DEVICE first
356 drv_data->rx_dma = dma_map_single(dev, drv_data->rx, 356 * so we flush the cache *before* invalidating it, in case
357 drv_data->rx_map_len, 357 * the tx and rx buffers overlap.
358 DMA_FROM_DEVICE); 358 */
359 if (dma_mapping_error(dev, drv_data->rx_dma))
360 return 0;
361
362 /* Stream map the tx buffer */
363 drv_data->tx_dma = dma_map_single(dev, drv_data->tx, 359 drv_data->tx_dma = dma_map_single(dev, drv_data->tx,
364 drv_data->tx_map_len, 360 drv_data->tx_map_len, DMA_TO_DEVICE);
365 DMA_TO_DEVICE); 361 if (dma_mapping_error(dev, drv_data->tx_dma))
362 return 0;
366 363
367 if (dma_mapping_error(dev, drv_data->tx_dma)) { 364 /* Stream map the rx buffer */
368 dma_unmap_single(dev, drv_data->rx_dma, 365 drv_data->rx_dma = dma_map_single(dev, drv_data->rx,
369 drv_data->rx_map_len, DMA_FROM_DEVICE); 366 drv_data->rx_map_len, DMA_FROM_DEVICE);
367 if (dma_mapping_error(dev, drv_data->rx_dma)) {
368 dma_unmap_single(dev, drv_data->tx_dma,
369 drv_data->tx_map_len, DMA_TO_DEVICE);
370 return 0; 370 return 0;
371 } 371 }
372 372
diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c
index 61ba147e384d..269a55ec52ef 100644
--- a/drivers/spi/spi_imx.c
+++ b/drivers/spi/spi_imx.c
@@ -506,20 +506,6 @@ static int map_dma_buffers(struct driver_data *drv_data)
506 if (!IS_DMA_ALIGNED(drv_data->rx) || !IS_DMA_ALIGNED(drv_data->tx)) 506 if (!IS_DMA_ALIGNED(drv_data->rx) || !IS_DMA_ALIGNED(drv_data->tx))
507 return -1; 507 return -1;
508 508
509 /* NULL rx means write-only transfer and no map needed
510 since rx DMA will not be used */
511 if (drv_data->rx) {
512 buf = drv_data->rx;
513 drv_data->rx_dma = dma_map_single(
514 dev,
515 buf,
516 drv_data->len,
517 DMA_FROM_DEVICE);
518 if (dma_mapping_error(dev, drv_data->rx_dma))
519 return -1;
520 drv_data->rx_dma_needs_unmap = 1;
521 }
522
523 if (drv_data->tx == NULL) { 509 if (drv_data->tx == NULL) {
524 /* Read only message --> use drv_data->dummy_dma_buf for dummy 510 /* Read only message --> use drv_data->dummy_dma_buf for dummy
525 writes to achive reads */ 511 writes to achive reads */
@@ -533,18 +519,31 @@ static int map_dma_buffers(struct driver_data *drv_data)
533 buf, 519 buf,
534 drv_data->tx_map_len, 520 drv_data->tx_map_len,
535 DMA_TO_DEVICE); 521 DMA_TO_DEVICE);
536 if (dma_mapping_error(dev, drv_data->tx_dma)) { 522 if (dma_mapping_error(dev, drv_data->tx_dma))
537 if (drv_data->rx_dma) {
538 dma_unmap_single(dev,
539 drv_data->rx_dma,
540 drv_data->len,
541 DMA_FROM_DEVICE);
542 drv_data->rx_dma_needs_unmap = 0;
543 }
544 return -1; 523 return -1;
545 }
546 drv_data->tx_dma_needs_unmap = 1; 524 drv_data->tx_dma_needs_unmap = 1;
547 525
526 /* NULL rx means write-only transfer and no map needed
527 * since rx DMA will not be used */
528 if (drv_data->rx) {
529 buf = drv_data->rx;
530 drv_data->rx_dma = dma_map_single(dev,
531 buf,
532 drv_data->len,
533 DMA_FROM_DEVICE);
534 if (dma_mapping_error(dev, drv_data->rx_dma)) {
535 if (drv_data->tx_dma) {
536 dma_unmap_single(dev,
537 drv_data->tx_dma,
538 drv_data->tx_map_len,
539 DMA_TO_DEVICE);
540 drv_data->tx_dma_needs_unmap = 0;
541 }
542 return -1;
543 }
544 drv_data->rx_dma_needs_unmap = 1;
545 }
546
548 return 0; 547 return 0;
549} 548}
550 549
@@ -1457,7 +1456,7 @@ static int __init spi_imx_probe(struct platform_device *pdev)
1457 struct device *dev = &pdev->dev; 1456 struct device *dev = &pdev->dev;
1458 struct spi_imx_master *platform_info; 1457 struct spi_imx_master *platform_info;
1459 struct spi_master *master; 1458 struct spi_master *master;
1460 struct driver_data *drv_data = NULL; 1459 struct driver_data *drv_data;
1461 struct resource *res; 1460 struct resource *res;
1462 int irq, status = 0; 1461 int irq, status = 0;
1463 1462
@@ -1468,14 +1467,6 @@ static int __init spi_imx_probe(struct platform_device *pdev)
1468 goto err_no_pdata; 1467 goto err_no_pdata;
1469 } 1468 }
1470 1469
1471 drv_data->clk = clk_get(&pdev->dev, "perclk2");
1472 if (IS_ERR(drv_data->clk)) {
1473 dev_err(&pdev->dev, "probe - cannot get get\n");
1474 status = PTR_ERR(drv_data->clk);
1475 goto err_no_clk;
1476 }
1477 clk_enable(drv_data->clk);
1478
1479 /* Allocate master with space for drv_data */ 1470 /* Allocate master with space for drv_data */
1480 master = spi_alloc_master(dev, sizeof(struct driver_data)); 1471 master = spi_alloc_master(dev, sizeof(struct driver_data));
1481 if (!master) { 1472 if (!master) {
@@ -1496,6 +1487,14 @@ static int __init spi_imx_probe(struct platform_device *pdev)
1496 1487
1497 drv_data->dummy_dma_buf = SPI_DUMMY_u32; 1488 drv_data->dummy_dma_buf = SPI_DUMMY_u32;
1498 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
1499 /* Find and map resources */ 1498 /* Find and map resources */
1500 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1499 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1501 if (!res) { 1500 if (!res) {
@@ -1631,12 +1630,13 @@ err_no_iomap:
1631 kfree(drv_data->ioarea); 1630 kfree(drv_data->ioarea);
1632 1631
1633err_no_iores: 1632err_no_iores:
1634 spi_master_put(master);
1635
1636err_no_pdata:
1637 clk_disable(drv_data->clk); 1633 clk_disable(drv_data->clk);
1638 clk_put(drv_data->clk); 1634 clk_put(drv_data->clk);
1635
1639err_no_clk: 1636err_no_clk:
1637 spi_master_put(master);
1638
1639err_no_pdata:
1640err_no_mem: 1640err_no_mem:
1641 return status; 1641 return status;
1642} 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/ssb/Kconfig b/drivers/ssb/Kconfig
index 307b1f62d949..b1b947edcf01 100644
--- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig
@@ -1,10 +1,11 @@
1menu "Sonics Silicon Backplane"
2
3config SSB_POSSIBLE 1config SSB_POSSIBLE
4 bool 2 bool
5 depends on HAS_IOMEM && HAS_DMA 3 depends on HAS_IOMEM && HAS_DMA
6 default y 4 default y
7 5
6menu "Sonics Silicon Backplane"
7 depends on SSB_POSSIBLE
8
8config SSB 9config SSB
9 tristate "Sonics Silicon Backplane support" 10 tristate "Sonics Silicon Backplane support"
10 depends on SSB_POSSIBLE 11 depends on SSB_POSSIBLE
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index e1654f59eb70..5d457c96bd7e 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -21,8 +21,26 @@ menuconfig STAGING
21 21
22 If in doubt, say N here. 22 If in doubt, say N here.
23 23
24
24if STAGING 25if STAGING
25 26
27config STAGING_EXCLUDE_BUILD
28 bool "Exclude Staging drivers from being built" if STAGING
29 default y
30 ---help---
31 Are you sure you really want to build the staging drivers?
32 They taint your kernel, don't live up to the normal Linux
33 kernel quality standards, are a bit crufty around the edges,
34 and might go off and kick your dog when you aren't paying
35 attention.
36
37 Say N here to be able to select and build the Staging drivers.
38 This option is primarily here to prevent them from being built
39 when selecting 'make allyesconfg' and 'make allmodconfig' so
40 don't be all that put off, your dog will be just fine.
41
42if !STAGING_EXCLUDE_BUILD
43
26source "drivers/staging/et131x/Kconfig" 44source "drivers/staging/et131x/Kconfig"
27 45
28source "drivers/staging/slicoss/Kconfig" 46source "drivers/staging/slicoss/Kconfig"
@@ -45,4 +63,5 @@ source "drivers/staging/at76_usb/Kconfig"
45 63
46source "drivers/staging/poch/Kconfig" 64source "drivers/staging/poch/Kconfig"
47 65
66endif # !STAGING_EXCLUDE_BUILD
48endif # STAGING 67endif # STAGING
diff --git a/drivers/staging/echo/echo.c b/drivers/staging/echo/echo.c
index b8f2c5e9dee5..fd4007e329e7 100644
--- a/drivers/staging/echo/echo.c
+++ b/drivers/staging/echo/echo.c
@@ -106,7 +106,6 @@
106 106
107#include <linux/kernel.h> /* We're doing kernel work */ 107#include <linux/kernel.h> /* We're doing kernel work */
108#include <linux/module.h> 108#include <linux/module.h>
109#include <linux/kernel.h>
110#include <linux/slab.h> 109#include <linux/slab.h>
111 110
112#include "bit_operations.h" 111#include "bit_operations.h"
diff --git a/drivers/staging/me4000/me4000.c b/drivers/staging/me4000/me4000.c
index cf8b01bcac8d..0394e2709278 100644
--- a/drivers/staging/me4000/me4000.c
+++ b/drivers/staging/me4000/me4000.c
@@ -39,7 +39,6 @@
39#include <asm/uaccess.h> 39#include <asm/uaccess.h>
40#include <asm/io.h> 40#include <asm/io.h>
41#include <asm/system.h> 41#include <asm/system.h>
42#include <asm/uaccess.h>
43 42
44/* Include-File for the Meilhaus ME-4000 I/O board */ 43/* Include-File for the Meilhaus ME-4000 I/O board */
45#include "me4000.h" 44#include "me4000.h"
diff --git a/drivers/staging/usbip/Kconfig b/drivers/staging/usbip/Kconfig
index 7426235ccc44..217fb7e62c2f 100644
--- a/drivers/staging/usbip/Kconfig
+++ b/drivers/staging/usbip/Kconfig
@@ -1,6 +1,6 @@
1config USB_IP_COMMON 1config USB_IP_COMMON
2 tristate "USB IP support (EXPERIMENTAL)" 2 tristate "USB IP support (EXPERIMENTAL)"
3 depends on USB && EXPERIMENTAL 3 depends on USB && NET && EXPERIMENTAL
4 default N 4 default N
5 ---help--- 5 ---help---
6 This enables pushing USB packets over IP to allow remote 6 This enables pushing USB packets over IP to allow remote
diff --git a/drivers/telephony/phonedev.c b/drivers/telephony/phonedev.c
index 37caf4d69037..b52cc830c0b4 100644
--- a/drivers/telephony/phonedev.c
+++ b/drivers/telephony/phonedev.c
@@ -8,7 +8,7 @@
8 * as published by the Free Software Foundation; either version 8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version. 9 * 2 of the License, or (at your option) any later version.
10 * 10 *
11 * Author: Alan Cox, <alan@redhat.com> 11 * Author: Alan Cox, <alan@lxorguk.ukuu.org.uk>
12 * 12 *
13 * Fixes: Mar 01 2000 Thomas Sparr, <thomas.l.sparr@telia.com> 13 * Fixes: Mar 01 2000 Thomas Sparr, <thomas.l.sparr@telia.com>
14 * phone_register_device now works with unit!=PHONE_UNIT_ANY 14 * phone_register_device now works with unit!=PHONE_UNIT_ANY
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 20104443081a..d50a99f70aee 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -158,16 +158,12 @@ static int acm_wb_is_avail(struct acm *acm)
158} 158}
159 159
160/* 160/*
161 * Finish write. 161 * Finish write. Caller must hold acm->write_lock
162 */ 162 */
163static void acm_write_done(struct acm *acm, struct acm_wb *wb) 163static void acm_write_done(struct acm *acm, struct acm_wb *wb)
164{ 164{
165 unsigned long flags;
166
167 spin_lock_irqsave(&acm->write_lock, flags);
168 wb->use = 0; 165 wb->use = 0;
169 acm->transmitting--; 166 acm->transmitting--;
170 spin_unlock_irqrestore(&acm->write_lock, flags);
171} 167}
172 168
173/* 169/*
@@ -482,6 +478,7 @@ static void acm_write_bulk(struct urb *urb)
482{ 478{
483 struct acm_wb *wb = urb->context; 479 struct acm_wb *wb = urb->context;
484 struct acm *acm = wb->instance; 480 struct acm *acm = wb->instance;
481 unsigned long flags;
485 482
486 if (verbose || urb->status 483 if (verbose || urb->status
487 || (urb->actual_length != urb->transfer_buffer_length)) 484 || (urb->actual_length != urb->transfer_buffer_length))
@@ -490,7 +487,9 @@ static void acm_write_bulk(struct urb *urb)
490 urb->transfer_buffer_length, 487 urb->transfer_buffer_length,
491 urb->status); 488 urb->status);
492 489
490 spin_lock_irqsave(&acm->write_lock, flags);
493 acm_write_done(acm, wb); 491 acm_write_done(acm, wb);
492 spin_unlock_irqrestore(&acm->write_lock, flags);
494 if (ACM_READY(acm)) 493 if (ACM_READY(acm))
495 schedule_work(&acm->work); 494 schedule_work(&acm->work);
496 else 495 else
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/core/message.c b/drivers/usb/core/message.c
index 887738577b28..6d1048faf08e 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -1091,6 +1091,7 @@ void usb_disable_device(struct usb_device *dev, int skip_ep0)
1091 continue; 1091 continue;
1092 dev_dbg(&dev->dev, "unregistering interface %s\n", 1092 dev_dbg(&dev->dev, "unregistering interface %s\n",
1093 dev_name(&interface->dev)); 1093 dev_name(&interface->dev));
1094 interface->unregistering = 1;
1094 usb_remove_sysfs_intf_files(interface); 1095 usb_remove_sysfs_intf_files(interface);
1095 device_del(&interface->dev); 1096 device_del(&interface->dev);
1096 } 1097 }
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
index f66fba11fbd5..4fb65fdc9dc3 100644
--- a/drivers/usb/core/sysfs.c
+++ b/drivers/usb/core/sysfs.c
@@ -840,7 +840,7 @@ int usb_create_sysfs_intf_files(struct usb_interface *intf)
840 struct usb_host_interface *alt = intf->cur_altsetting; 840 struct usb_host_interface *alt = intf->cur_altsetting;
841 int retval; 841 int retval;
842 842
843 if (intf->sysfs_files_created) 843 if (intf->sysfs_files_created || intf->unregistering)
844 return 0; 844 return 0;
845 845
846 /* The interface string may be present in some altsettings 846 /* The interface string may be present in some altsettings
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index 4342bd9c3bb6..1f68af9db3f7 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -85,8 +85,8 @@ EXPORT_SYMBOL_GPL(usb_alloc_urb);
85 * Must be called when a user of a urb is finished with it. When the last user 85 * Must be called when a user of a urb is finished with it. When the last user
86 * of the urb calls this function, the memory of the urb is freed. 86 * of the urb calls this function, the memory of the urb is freed.
87 * 87 *
88 * Note: The transfer buffer associated with the urb is not freed, that must be 88 * Note: The transfer buffer associated with the urb is not freed unless the
89 * done elsewhere. 89 * URB_FREE_BUFFER transfer flag is set.
90 */ 90 */
91void usb_free_urb(struct urb *urb) 91void usb_free_urb(struct urb *urb)
92{ 92{
diff --git a/drivers/usb/gadget/f_acm.c b/drivers/usb/gadget/f_acm.c
index 5ee1590b8e9c..c1d34df0b157 100644
--- a/drivers/usb/gadget/f_acm.c
+++ b/drivers/usb/gadget/f_acm.c
@@ -463,7 +463,11 @@ static int acm_cdc_notify(struct f_acm *acm, u8 type, u16 value,
463 notify->wLength = cpu_to_le16(length); 463 notify->wLength = cpu_to_le16(length);
464 memcpy(buf, data, length); 464 memcpy(buf, data, length);
465 465
466 /* ep_queue() can complete immediately if it fills the fifo... */
467 spin_unlock(&acm->lock);
466 status = usb_ep_queue(ep, req, GFP_ATOMIC); 468 status = usb_ep_queue(ep, req, GFP_ATOMIC);
469 spin_lock(&acm->lock);
470
467 if (status < 0) { 471 if (status < 0) {
468 ERROR(acm->port.func.config->cdev, 472 ERROR(acm->port.func.config->cdev,
469 "acm ttyGS%d can't notify serial state, %d\n", 473 "acm ttyGS%d can't notify serial state, %d\n",
diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c
index 659b3d9671c4..3a8bb53fc473 100644
--- a/drivers/usb/gadget/f_rndis.c
+++ b/drivers/usb/gadget/f_rndis.c
@@ -172,7 +172,6 @@ static struct usb_interface_descriptor rndis_data_intf __initdata = {
172 .bDescriptorType = USB_DT_INTERFACE, 172 .bDescriptorType = USB_DT_INTERFACE,
173 173
174 /* .bInterfaceNumber = DYNAMIC */ 174 /* .bInterfaceNumber = DYNAMIC */
175 .bAlternateSetting = 1,
176 .bNumEndpoints = 2, 175 .bNumEndpoints = 2,
177 .bInterfaceClass = USB_CLASS_CDC_DATA, 176 .bInterfaceClass = USB_CLASS_CDC_DATA,
178 .bInterfaceSubClass = 0, 177 .bInterfaceSubClass = 0,
@@ -303,7 +302,7 @@ static void rndis_response_available(void *_rndis)
303 __le32 *data = req->buf; 302 __le32 *data = req->buf;
304 int status; 303 int status;
305 304
306 if (atomic_inc_return(&rndis->notify_count)) 305 if (atomic_inc_return(&rndis->notify_count) != 1)
307 return; 306 return;
308 307
309 /* Send RNDIS RESPONSE_AVAILABLE notification; a 308 /* Send RNDIS RESPONSE_AVAILABLE notification; a
@@ -652,6 +651,8 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
652 fs_in_desc.bEndpointAddress; 651 fs_in_desc.bEndpointAddress;
653 hs_out_desc.bEndpointAddress = 652 hs_out_desc.bEndpointAddress =
654 fs_out_desc.bEndpointAddress; 653 fs_out_desc.bEndpointAddress;
654 hs_notify_desc.bEndpointAddress =
655 fs_notify_desc.bEndpointAddress;
655 656
656 /* copy descriptors, and track endpoint copies */ 657 /* copy descriptors, and track endpoint copies */
657 f->hs_descriptors = usb_copy_descriptors(eth_hs_function); 658 f->hs_descriptors = usb_copy_descriptors(eth_hs_function);
@@ -663,6 +664,8 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
663 f->hs_descriptors, &hs_in_desc); 664 f->hs_descriptors, &hs_in_desc);
664 rndis->hs.out = usb_find_endpoint(eth_hs_function, 665 rndis->hs.out = usb_find_endpoint(eth_hs_function,
665 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);
666 } 669 }
667 670
668 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/Kconfig b/drivers/usb/host/Kconfig
index 56f592dc0b36..f3a75a929e0a 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -110,29 +110,18 @@ config USB_ISP116X_HCD
110 110
111config USB_ISP1760_HCD 111config USB_ISP1760_HCD
112 tristate "ISP 1760 HCD support" 112 tristate "ISP 1760 HCD support"
113 depends on USB && EXPERIMENTAL 113 depends on USB && EXPERIMENTAL && (PCI || PPC_OF)
114 ---help--- 114 ---help---
115 The ISP1760 chip is a USB 2.0 host controller. 115 The ISP1760 chip is a USB 2.0 host controller.
116 116
117 This driver does not support isochronous transfers or OTG. 117 This driver does not support isochronous transfers or OTG.
118 This USB controller is usually attached to a non-DMA-Master
119 capable bus. NXP's eval kit brings this chip on PCI card
120 where the chip itself is behind a PLB to simulate such
121 a bus.
118 122
119 To compile this driver as a module, choose M here: the 123 To compile this driver as a module, choose M here: the
120 module will be called isp1760-hcd. 124 module will be called isp1760.
121
122config USB_ISP1760_PCI
123 bool "Support for the PCI bus"
124 depends on USB_ISP1760_HCD && PCI
125 ---help---
126 Enables support for the device present on the PCI bus.
127 This should only be required if you happen to have the eval kit from
128 NXP and you are going to test it.
129
130config USB_ISP1760_OF
131 bool "Support for the OF platform bus"
132 depends on USB_ISP1760_HCD && PPC_OF
133 ---help---
134 Enables support for the device present on the PowerPC
135 OpenFirmware platform bus.
136 125
137config USB_OHCI_HCD 126config USB_OHCI_HCD
138 tristate "OHCI HCD support" 127 tristate "OHCI HCD support"
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 15a803b206b8..4725d15d096f 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -643,7 +643,7 @@ static int ehci_run (struct usb_hcd *hcd)
643static irqreturn_t ehci_irq (struct usb_hcd *hcd) 643static irqreturn_t ehci_irq (struct usb_hcd *hcd)
644{ 644{
645 struct ehci_hcd *ehci = hcd_to_ehci (hcd); 645 struct ehci_hcd *ehci = hcd_to_ehci (hcd);
646 u32 status, pcd_status = 0, cmd; 646 u32 status, masked_status, pcd_status = 0, cmd;
647 int bh; 647 int bh;
648 648
649 spin_lock (&ehci->lock); 649 spin_lock (&ehci->lock);
@@ -656,14 +656,14 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
656 goto dead; 656 goto dead;
657 } 657 }
658 658
659 status &= INTR_MASK; 659 masked_status = status & INTR_MASK;
660 if (!status) { /* irq sharing? */ 660 if (!masked_status) { /* irq sharing? */
661 spin_unlock(&ehci->lock); 661 spin_unlock(&ehci->lock);
662 return IRQ_NONE; 662 return IRQ_NONE;
663 } 663 }
664 664
665 /* clear (just) interrupts */ 665 /* clear (just) interrupts */
666 ehci_writel(ehci, status, &ehci->regs->status); 666 ehci_writel(ehci, masked_status, &ehci->regs->status);
667 cmd = ehci_readl(ehci, &ehci->regs->command); 667 cmd = ehci_readl(ehci, &ehci->regs->command);
668 bh = 0; 668 bh = 0;
669 669
@@ -734,18 +734,17 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
734 734
735 /* PCI errors [4.15.2.4] */ 735 /* PCI errors [4.15.2.4] */
736 if (unlikely ((status & STS_FATAL) != 0)) { 736 if (unlikely ((status & STS_FATAL) != 0)) {
737 ehci_err(ehci, "fatal error\n");
737 dbg_cmd(ehci, "fatal", cmd); 738 dbg_cmd(ehci, "fatal", cmd);
738 dbg_status(ehci, "fatal", status); 739 dbg_status(ehci, "fatal", status);
739 if (status & STS_HALT) { 740 ehci_halt(ehci);
740 ehci_err (ehci, "fatal error\n");
741dead: 741dead:
742 ehci_reset (ehci); 742 ehci_reset(ehci);
743 ehci_writel(ehci, 0, &ehci->regs->configured_flag); 743 ehci_writel(ehci, 0, &ehci->regs->configured_flag);
744 /* generic layer kills/unlinks all urbs, then 744 /* generic layer kills/unlinks all urbs, then
745 * uses ehci_stop to clean up the rest 745 * uses ehci_stop to clean up the rest
746 */ 746 */
747 bh = 1; 747 bh = 1;
748 }
749 } 748 }
750 749
751 if (bh) 750 if (bh)
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index c46a58f9181d..36864f958444 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -66,6 +66,8 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
66{ 66{
67 struct ehci_hcd *ehci = hcd_to_ehci(hcd); 67 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
68 struct pci_dev *pdev = to_pci_dev(hcd->self.controller); 68 struct pci_dev *pdev = to_pci_dev(hcd->self.controller);
69 struct pci_dev *p_smbus;
70 u8 rev;
69 u32 temp; 71 u32 temp;
70 int retval; 72 int retval;
71 73
@@ -166,6 +168,28 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
166 pci_write_config_byte(pdev, 0x4b, tmp | 0x20); 168 pci_write_config_byte(pdev, 0x4b, tmp | 0x20);
167 } 169 }
168 break; 170 break;
171 case PCI_VENDOR_ID_ATI:
172 /* SB600 and old version of SB700 have a bug in EHCI controller,
173 * which causes usb devices lose response in some cases.
174 */
175 if ((pdev->device == 0x4386) || (pdev->device == 0x4396)) {
176 p_smbus = pci_get_device(PCI_VENDOR_ID_ATI,
177 PCI_DEVICE_ID_ATI_SBX00_SMBUS,
178 NULL);
179 if (!p_smbus)
180 break;
181 rev = p_smbus->revision;
182 if ((pdev->device == 0x4386) || (rev == 0x3a)
183 || (rev == 0x3b)) {
184 u8 tmp;
185 ehci_info(ehci, "applying AMD SB600/SB700 USB "
186 "freeze workaround\n");
187 pci_read_config_byte(pdev, 0x53, &tmp);
188 pci_write_config_byte(pdev, 0x53, tmp | (1<<3));
189 }
190 pci_dev_put(p_smbus);
191 }
192 break;
169 } 193 }
170 194
171 ehci_reset(ehci); 195 ehci_reset(ehci);
diff --git a/drivers/usb/host/ehci-ps3.c b/drivers/usb/host/ehci-ps3.c
index 0eba894bcb01..9c9da35abc6c 100644
--- a/drivers/usb/host/ehci-ps3.c
+++ b/drivers/usb/host/ehci-ps3.c
@@ -205,6 +205,7 @@ static int ps3_ehci_remove(struct ps3_system_bus_device *dev)
205 205
206 tmp = hcd->irq; 206 tmp = hcd->irq;
207 207
208 ehci_shutdown(hcd);
208 usb_remove_hcd(hcd); 209 usb_remove_hcd(hcd);
209 210
210 ps3_system_bus_set_driver_data(dev, NULL); 211 ps3_system_bus_set_driver_data(dev, NULL);
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index 4a0c5a78b2ed..a081ee65bde6 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -918,7 +918,7 @@ iso_stream_init (
918 */ 918 */
919 stream->usecs = HS_USECS_ISO (maxp); 919 stream->usecs = HS_USECS_ISO (maxp);
920 bandwidth = stream->usecs * 8; 920 bandwidth = stream->usecs * 8;
921 bandwidth /= 1 << (interval - 1); 921 bandwidth /= interval;
922 922
923 } else { 923 } else {
924 u32 addr; 924 u32 addr;
@@ -951,7 +951,7 @@ iso_stream_init (
951 } else 951 } else
952 stream->raw_mask = smask_out [hs_transfers - 1]; 952 stream->raw_mask = smask_out [hs_transfers - 1];
953 bandwidth = stream->usecs + stream->c_usecs; 953 bandwidth = stream->usecs + stream->c_usecs;
954 bandwidth /= 1 << (interval + 2); 954 bandwidth /= interval << 3;
955 955
956 /* stream->splits gets created from raw_mask later */ 956 /* stream->splits gets created from raw_mask later */
957 stream->address = cpu_to_hc32(ehci, addr); 957 stream->address = cpu_to_hc32(ehci, addr);
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/host/isp1760-if.c b/drivers/usb/host/isp1760-if.c
index af849f596135..b87ca7cf4b37 100644
--- a/drivers/usb/host/isp1760-if.c
+++ b/drivers/usb/host/isp1760-if.c
@@ -14,16 +14,16 @@
14#include "../core/hcd.h" 14#include "../core/hcd.h"
15#include "isp1760-hcd.h" 15#include "isp1760-hcd.h"
16 16
17#ifdef CONFIG_USB_ISP1760_OF 17#ifdef CONFIG_PPC_OF
18#include <linux/of.h> 18#include <linux/of.h>
19#include <linux/of_platform.h> 19#include <linux/of_platform.h>
20#endif 20#endif
21 21
22#ifdef CONFIG_USB_ISP1760_PCI 22#ifdef CONFIG_PCI
23#include <linux/pci.h> 23#include <linux/pci.h>
24#endif 24#endif
25 25
26#ifdef CONFIG_USB_ISP1760_OF 26#ifdef CONFIG_PPC_OF
27static int of_isp1760_probe(struct of_device *dev, 27static int of_isp1760_probe(struct of_device *dev,
28 const struct of_device_id *match) 28 const struct of_device_id *match)
29{ 29{
@@ -128,7 +128,7 @@ static struct of_platform_driver isp1760_of_driver = {
128}; 128};
129#endif 129#endif
130 130
131#ifdef CONFIG_USB_ISP1760_PCI 131#ifdef CONFIG_PCI
132static u32 nxp_pci_io_base; 132static u32 nxp_pci_io_base;
133static u32 iolength; 133static u32 iolength;
134static u32 pci_mem_phy0; 134static u32 pci_mem_phy0;
@@ -288,28 +288,28 @@ static struct pci_driver isp1761_pci_driver = {
288 288
289static int __init isp1760_init(void) 289static int __init isp1760_init(void)
290{ 290{
291 int ret = -ENODEV; 291 int ret;
292 292
293 init_kmem_once(); 293 init_kmem_once();
294 294
295#ifdef CONFIG_USB_ISP1760_OF 295#ifdef CONFIG_PPC_OF
296 ret = of_register_platform_driver(&isp1760_of_driver); 296 ret = of_register_platform_driver(&isp1760_of_driver);
297 if (ret) { 297 if (ret) {
298 deinit_kmem_cache(); 298 deinit_kmem_cache();
299 return ret; 299 return ret;
300 } 300 }
301#endif 301#endif
302#ifdef CONFIG_USB_ISP1760_PCI 302#ifdef CONFIG_PCI
303 ret = pci_register_driver(&isp1761_pci_driver); 303 ret = pci_register_driver(&isp1761_pci_driver);
304 if (ret) 304 if (ret)
305 goto unreg_of; 305 goto unreg_of;
306#endif 306#endif
307 return ret; 307 return ret;
308 308
309#ifdef CONFIG_USB_ISP1760_PCI 309#ifdef CONFIG_PCI
310unreg_of: 310unreg_of:
311#endif 311#endif
312#ifdef CONFIG_USB_ISP1760_OF 312#ifdef CONFIG_PPC_OF
313 of_unregister_platform_driver(&isp1760_of_driver); 313 of_unregister_platform_driver(&isp1760_of_driver);
314#endif 314#endif
315 deinit_kmem_cache(); 315 deinit_kmem_cache();
@@ -319,10 +319,10 @@ module_init(isp1760_init);
319 319
320static void __exit isp1760_exit(void) 320static void __exit isp1760_exit(void)
321{ 321{
322#ifdef CONFIG_USB_ISP1760_OF 322#ifdef CONFIG_PPC_OF
323 of_unregister_platform_driver(&isp1760_of_driver); 323 of_unregister_platform_driver(&isp1760_of_driver);
324#endif 324#endif
325#ifdef CONFIG_USB_ISP1760_PCI 325#ifdef CONFIG_PCI
326 pci_unregister_driver(&isp1761_pci_driver); 326 pci_unregister_driver(&isp1761_pci_driver);
327#endif 327#endif
328 deinit_kmem_cache(); 328 deinit_kmem_cache();
diff --git a/drivers/usb/host/ohci-ps3.c b/drivers/usb/host/ohci-ps3.c
index 2089d8a46c4b..3c1a3b5f89f1 100644
--- a/drivers/usb/host/ohci-ps3.c
+++ b/drivers/usb/host/ohci-ps3.c
@@ -192,7 +192,7 @@ fail_start:
192 return result; 192 return result;
193} 193}
194 194
195static int ps3_ohci_remove (struct ps3_system_bus_device *dev) 195static int ps3_ohci_remove(struct ps3_system_bus_device *dev)
196{ 196{
197 unsigned int tmp; 197 unsigned int tmp;
198 struct usb_hcd *hcd = 198 struct usb_hcd *hcd =
@@ -205,6 +205,7 @@ static int ps3_ohci_remove (struct ps3_system_bus_device *dev)
205 205
206 tmp = hcd->irq; 206 tmp = hcd->irq;
207 207
208 ohci_shutdown(hcd);
208 usb_remove_hcd(hcd); 209 usb_remove_hcd(hcd);
209 210
210 ps3_system_bus_set_driver_data(dev, NULL); 211 ps3_system_bus_set_driver_data(dev, NULL);
diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c
index c18d8790c410..2376f24f3c83 100644
--- a/drivers/usb/host/r8a66597-hcd.c
+++ b/drivers/usb/host/r8a66597-hcd.c
@@ -1763,11 +1763,12 @@ static void r8a66597_timer(unsigned long _r8a66597)
1763{ 1763{
1764 struct r8a66597 *r8a66597 = (struct r8a66597 *)_r8a66597; 1764 struct r8a66597 *r8a66597 = (struct r8a66597 *)_r8a66597;
1765 unsigned long flags; 1765 unsigned long flags;
1766 int port;
1766 1767
1767 spin_lock_irqsave(&r8a66597->lock, flags); 1768 spin_lock_irqsave(&r8a66597->lock, flags);
1768 1769
1769 r8a66597_root_hub_control(r8a66597, 0); 1770 for (port = 0; port < R8A66597_MAX_ROOT_HUB; port++)
1770 r8a66597_root_hub_control(r8a66597, 1); 1771 r8a66597_root_hub_control(r8a66597, port);
1771 1772
1772 spin_unlock_irqrestore(&r8a66597->lock, flags); 1773 spin_unlock_irqrestore(&r8a66597->lock, flags);
1773} 1774}
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c
index 69c34a58e205..b4ec716de7da 100644
--- a/drivers/usb/misc/sisusbvga/sisusb.c
+++ b/drivers/usb/misc/sisusbvga/sisusb.c
@@ -3270,6 +3270,7 @@ static struct usb_device_id sisusb_table [] = {
3270 { USB_DEVICE(0x0711, 0x0900) }, 3270 { USB_DEVICE(0x0711, 0x0900) },
3271 { USB_DEVICE(0x0711, 0x0901) }, 3271 { USB_DEVICE(0x0711, 0x0901) },
3272 { USB_DEVICE(0x0711, 0x0902) }, 3272 { USB_DEVICE(0x0711, 0x0902) },
3273 { USB_DEVICE(0x0711, 0x0903) },
3273 { USB_DEVICE(0x0711, 0x0918) }, 3274 { USB_DEVICE(0x0711, 0x0918) },
3274 { USB_DEVICE(0x182d, 0x021c) }, 3275 { USB_DEVICE(0x182d, 0x021c) },
3275 { USB_DEVICE(0x182d, 0x0269) }, 3276 { USB_DEVICE(0x182d, 0x0269) },
diff --git a/drivers/usb/misc/vstusb.c b/drivers/usb/misc/vstusb.c
index 8648470c81ca..63dff9ba73c5 100644
--- a/drivers/usb/misc/vstusb.c
+++ b/drivers/usb/misc/vstusb.c
@@ -620,7 +620,7 @@ static long vstusb_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
620 __func__); 620 __func__);
621 retval = -EFAULT; 621 retval = -EFAULT;
622 } else { 622 } else {
623 dev_dbg(&dev->dev, "%s: recv %d bytes from pipe %d\n", 623 dev_dbg(&dev->dev, "%s: recv %zd bytes from pipe %d\n",
624 __func__, usb_data.count, usb_data.pipe); 624 __func__, usb_data.count, usb_data.pipe);
625 } 625 }
626 626
diff --git a/drivers/usb/mon/mon_bin.c b/drivers/usb/mon/mon_bin.c
index c9de3f027aab..e06810aef2df 100644
--- a/drivers/usb/mon/mon_bin.c
+++ b/drivers/usb/mon/mon_bin.c
@@ -687,7 +687,10 @@ static ssize_t mon_bin_read(struct file *file, char __user *buf,
687 } 687 }
688 688
689 if (rp->b_read >= sizeof(struct mon_bin_hdr)) { 689 if (rp->b_read >= sizeof(struct mon_bin_hdr)) {
690 step_len = min(nbytes, (size_t)ep->len_cap); 690 step_len = ep->len_cap;
691 step_len -= rp->b_read - sizeof(struct mon_bin_hdr);
692 if (step_len > nbytes)
693 step_len = nbytes;
691 offset = rp->b_out + PKT_SIZE; 694 offset = rp->b_out + PKT_SIZE;
692 offset += rp->b_read - sizeof(struct mon_bin_hdr); 695 offset += rp->b_read - sizeof(struct mon_bin_hdr);
693 if (offset >= rp->b_size) 696 if (offset >= rp->b_size)
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 4a35745b30be..5280dba9b1fb 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -114,8 +114,8 @@
114 114
115 115
116 116
117unsigned debug; 117unsigned musb_debug;
118module_param(debug, uint, S_IRUGO | S_IWUSR); 118module_param(musb_debug, uint, S_IRUGO | S_IWUSR);
119MODULE_PARM_DESC(debug, "Debug message level. Default = 0"); 119MODULE_PARM_DESC(debug, "Debug message level. Default = 0");
120 120
121#define DRIVER_AUTHOR "Mentor Graphics, Texas Instruments, Nokia" 121#define DRIVER_AUTHOR "Mentor Graphics, Texas Instruments, Nokia"
@@ -2248,7 +2248,7 @@ static int __init musb_init(void)
2248 "host" 2248 "host"
2249#endif 2249#endif
2250 ", debug=%d\n", 2250 ", debug=%d\n",
2251 musb_driver_name, debug); 2251 musb_driver_name, musb_debug);
2252 return platform_driver_probe(&musb_driver, musb_probe); 2252 return platform_driver_probe(&musb_driver, musb_probe);
2253} 2253}
2254 2254
diff --git a/drivers/usb/musb/musb_debug.h b/drivers/usb/musb/musb_debug.h
index 4d2794441b15..9fc1db44c72c 100644
--- a/drivers/usb/musb/musb_debug.h
+++ b/drivers/usb/musb/musb_debug.h
@@ -48,11 +48,11 @@
48 __func__, __LINE__ , ## args); \ 48 __func__, __LINE__ , ## args); \
49 } } while (0) 49 } } while (0)
50 50
51extern unsigned debug; 51extern unsigned musb_debug;
52 52
53static inline int _dbg_level(unsigned l) 53static inline int _dbg_level(unsigned l)
54{ 54{
55 return debug >= l; 55 return musb_debug >= l;
56} 56}
57 57
58#define DBG(level, fmt, args...) xprintk(level, KERN_DEBUG, fmt, ## args) 58#define DBG(level, fmt, args...) xprintk(level, KERN_DEBUG, fmt, ## args)
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 3133990f04ec..cc64462d4c4e 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -378,6 +378,19 @@ musb_giveback(struct musb_qh *qh, struct urb *urb, int status)
378 378
379 switch (qh->type) { 379 switch (qh->type) {
380 380
381 case USB_ENDPOINT_XFER_CONTROL:
382 case USB_ENDPOINT_XFER_BULK:
383 /* fifo policy for these lists, except that NAKing
384 * should rotate a qh to the end (for fairness).
385 */
386 if (qh->mux == 1) {
387 head = qh->ring.prev;
388 list_del(&qh->ring);
389 kfree(qh);
390 qh = first_qh(head);
391 break;
392 }
393
381 case USB_ENDPOINT_XFER_ISOC: 394 case USB_ENDPOINT_XFER_ISOC:
382 case USB_ENDPOINT_XFER_INT: 395 case USB_ENDPOINT_XFER_INT:
383 /* this is where periodic bandwidth should be 396 /* this is where periodic bandwidth should be
@@ -388,17 +401,6 @@ musb_giveback(struct musb_qh *qh, struct urb *urb, int status)
388 kfree(qh); 401 kfree(qh);
389 qh = NULL; 402 qh = NULL;
390 break; 403 break;
391
392 case USB_ENDPOINT_XFER_CONTROL:
393 case USB_ENDPOINT_XFER_BULK:
394 /* fifo policy for these lists, except that NAKing
395 * should rotate a qh to the end (for fairness).
396 */
397 head = qh->ring.prev;
398 list_del(&qh->ring);
399 kfree(qh);
400 qh = first_qh(head);
401 break;
402 } 404 }
403 } 405 }
404 return qh; 406 return qh;
@@ -1507,10 +1509,29 @@ void musb_host_rx(struct musb *musb, u8 epnum)
1507 musb_writew(hw_ep->regs, MUSB_RXCSR, val); 1509 musb_writew(hw_ep->regs, MUSB_RXCSR, val);
1508 1510
1509#ifdef CONFIG_USB_INVENTRA_DMA 1511#ifdef CONFIG_USB_INVENTRA_DMA
1512 if (usb_pipeisoc(pipe)) {
1513 struct usb_iso_packet_descriptor *d;
1514
1515 d = urb->iso_frame_desc + qh->iso_idx;
1516 d->actual_length = xfer_len;
1517
1518 /* even if there was an error, we did the dma
1519 * for iso_frame_desc->length
1520 */
1521 if (d->status != EILSEQ && d->status != -EOVERFLOW)
1522 d->status = 0;
1523
1524 if (++qh->iso_idx >= urb->number_of_packets)
1525 done = true;
1526 else
1527 done = false;
1528
1529 } else {
1510 /* done if urb buffer is full or short packet is recd */ 1530 /* done if urb buffer is full or short packet is recd */
1511 done = (urb->actual_length + xfer_len >= 1531 done = (urb->actual_length + xfer_len >=
1512 urb->transfer_buffer_length 1532 urb->transfer_buffer_length
1513 || dma->actual_len < qh->maxpacket); 1533 || dma->actual_len < qh->maxpacket);
1534 }
1514 1535
1515 /* send IN token for next packet, without AUTOREQ */ 1536 /* send IN token for next packet, without AUTOREQ */
1516 if (!done) { 1537 if (!done) {
@@ -1547,7 +1568,8 @@ void musb_host_rx(struct musb *musb, u8 epnum)
1547 if (dma) { 1568 if (dma) {
1548 struct dma_controller *c; 1569 struct dma_controller *c;
1549 u16 rx_count; 1570 u16 rx_count;
1550 int ret; 1571 int ret, length;
1572 dma_addr_t buf;
1551 1573
1552 rx_count = musb_readw(epio, MUSB_RXCOUNT); 1574 rx_count = musb_readw(epio, MUSB_RXCOUNT);
1553 1575
@@ -1560,6 +1582,35 @@ void musb_host_rx(struct musb *musb, u8 epnum)
1560 1582
1561 c = musb->dma_controller; 1583 c = musb->dma_controller;
1562 1584
1585 if (usb_pipeisoc(pipe)) {
1586 int status = 0;
1587 struct usb_iso_packet_descriptor *d;
1588
1589 d = urb->iso_frame_desc + qh->iso_idx;
1590
1591 if (iso_err) {
1592 status = -EILSEQ;
1593 urb->error_count++;
1594 }
1595 if (rx_count > d->length) {
1596 if (status == 0) {
1597 status = -EOVERFLOW;
1598 urb->error_count++;
1599 }
1600 DBG(2, "** OVERFLOW %d into %d\n",\
1601 rx_count, d->length);
1602
1603 length = d->length;
1604 } else
1605 length = rx_count;
1606 d->status = status;
1607 buf = urb->transfer_dma + d->offset;
1608 } else {
1609 length = rx_count;
1610 buf = urb->transfer_dma +
1611 urb->actual_length;
1612 }
1613
1563 dma->desired_mode = 0; 1614 dma->desired_mode = 0;
1564#ifdef USE_MODE1 1615#ifdef USE_MODE1
1565 /* because of the issue below, mode 1 will 1616 /* because of the issue below, mode 1 will
@@ -1571,6 +1622,12 @@ void musb_host_rx(struct musb *musb, u8 epnum)
1571 urb->actual_length) 1622 urb->actual_length)
1572 > qh->maxpacket) 1623 > qh->maxpacket)
1573 dma->desired_mode = 1; 1624 dma->desired_mode = 1;
1625 if (rx_count < hw_ep->max_packet_sz_rx) {
1626 length = rx_count;
1627 dma->bDesiredMode = 0;
1628 } else {
1629 length = urb->transfer_buffer_length;
1630 }
1574#endif 1631#endif
1575 1632
1576/* Disadvantage of using mode 1: 1633/* Disadvantage of using mode 1:
@@ -1608,12 +1665,7 @@ void musb_host_rx(struct musb *musb, u8 epnum)
1608 */ 1665 */
1609 ret = c->channel_program( 1666 ret = c->channel_program(
1610 dma, qh->maxpacket, 1667 dma, qh->maxpacket,
1611 dma->desired_mode, 1668 dma->desired_mode, buf, length);
1612 urb->transfer_dma
1613 + urb->actual_length,
1614 (dma->desired_mode == 0)
1615 ? rx_count
1616 : urb->transfer_buffer_length);
1617 1669
1618 if (!ret) { 1670 if (!ret) {
1619 c->channel_release(dma); 1671 c->channel_release(dma);
@@ -1631,19 +1683,6 @@ void musb_host_rx(struct musb *musb, u8 epnum)
1631 } 1683 }
1632 } 1684 }
1633 1685
1634 if (dma && usb_pipeisoc(pipe)) {
1635 struct usb_iso_packet_descriptor *d;
1636 int iso_stat = status;
1637
1638 d = urb->iso_frame_desc + qh->iso_idx;
1639 d->actual_length += xfer_len;
1640 if (iso_err) {
1641 iso_stat = -EILSEQ;
1642 urb->error_count++;
1643 }
1644 d->status = iso_stat;
1645 }
1646
1647finish: 1686finish:
1648 urb->actual_length += xfer_len; 1687 urb->actual_length += xfer_len;
1649 qh->offset += xfer_len; 1688 qh->offset += xfer_len;
@@ -1671,22 +1710,9 @@ static int musb_schedule(
1671 struct list_head *head = NULL; 1710 struct list_head *head = NULL;
1672 1711
1673 /* use fixed hardware for control and bulk */ 1712 /* use fixed hardware for control and bulk */
1674 switch (qh->type) { 1713 if (qh->type == USB_ENDPOINT_XFER_CONTROL) {
1675 case USB_ENDPOINT_XFER_CONTROL:
1676 head = &musb->control; 1714 head = &musb->control;
1677 hw_ep = musb->control_ep; 1715 hw_ep = musb->control_ep;
1678 break;
1679 case USB_ENDPOINT_XFER_BULK:
1680 hw_ep = musb->bulk_ep;
1681 if (is_in)
1682 head = &musb->in_bulk;
1683 else
1684 head = &musb->out_bulk;
1685 break;
1686 }
1687 if (head) {
1688 idle = list_empty(head);
1689 list_add_tail(&qh->ring, head);
1690 goto success; 1716 goto success;
1691 } 1717 }
1692 1718
@@ -1725,19 +1751,34 @@ static int musb_schedule(
1725 else 1751 else
1726 diff = hw_ep->max_packet_sz_tx - qh->maxpacket; 1752 diff = hw_ep->max_packet_sz_tx - qh->maxpacket;
1727 1753
1728 if (diff > 0 && best_diff > diff) { 1754 if (diff >= 0 && best_diff > diff) {
1729 best_diff = diff; 1755 best_diff = diff;
1730 best_end = epnum; 1756 best_end = epnum;
1731 } 1757 }
1732 } 1758 }
1733 if (best_end < 0) 1759 /* use bulk reserved ep1 if no other ep is free */
1760 if (best_end < 0 && qh->type == USB_ENDPOINT_XFER_BULK) {
1761 hw_ep = musb->bulk_ep;
1762 if (is_in)
1763 head = &musb->in_bulk;
1764 else
1765 head = &musb->out_bulk;
1766 goto success;
1767 } else if (best_end < 0) {
1734 return -ENOSPC; 1768 return -ENOSPC;
1769 }
1735 1770
1736 idle = 1; 1771 idle = 1;
1772 qh->mux = 0;
1737 hw_ep = musb->endpoints + best_end; 1773 hw_ep = musb->endpoints + best_end;
1738 musb->periodic[best_end] = qh; 1774 musb->periodic[best_end] = qh;
1739 DBG(4, "qh %p periodic slot %d\n", qh, best_end); 1775 DBG(4, "qh %p periodic slot %d\n", qh, best_end);
1740success: 1776success:
1777 if (head) {
1778 idle = list_empty(head);
1779 list_add_tail(&qh->ring, head);
1780 qh->mux = 1;
1781 }
1741 qh->hw_ep = hw_ep; 1782 qh->hw_ep = hw_ep;
1742 qh->hep->hcpriv = qh; 1783 qh->hep->hcpriv = qh;
1743 if (idle) 1784 if (idle)
@@ -2015,11 +2056,13 @@ static int musb_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
2015 sched = &musb->control; 2056 sched = &musb->control;
2016 break; 2057 break;
2017 case USB_ENDPOINT_XFER_BULK: 2058 case USB_ENDPOINT_XFER_BULK:
2018 if (usb_pipein(urb->pipe)) 2059 if (qh->mux == 1) {
2019 sched = &musb->in_bulk; 2060 if (usb_pipein(urb->pipe))
2020 else 2061 sched = &musb->in_bulk;
2021 sched = &musb->out_bulk; 2062 else
2022 break; 2063 sched = &musb->out_bulk;
2064 break;
2065 }
2023 default: 2066 default:
2024 /* REVISIT when we get a schedule tree, periodic 2067 /* REVISIT when we get a schedule tree, periodic
2025 * transfers won't always be at the head of a 2068 * transfers won't always be at the head of a
@@ -2067,11 +2110,13 @@ musb_h_disable(struct usb_hcd *hcd, struct usb_host_endpoint *hep)
2067 sched = &musb->control; 2110 sched = &musb->control;
2068 break; 2111 break;
2069 case USB_ENDPOINT_XFER_BULK: 2112 case USB_ENDPOINT_XFER_BULK:
2070 if (is_in) 2113 if (qh->mux == 1) {
2071 sched = &musb->in_bulk; 2114 if (is_in)
2072 else 2115 sched = &musb->in_bulk;
2073 sched = &musb->out_bulk; 2116 else
2074 break; 2117 sched = &musb->out_bulk;
2118 break;
2119 }
2075 default: 2120 default:
2076 /* REVISIT when we get a schedule tree, periodic transfers 2121 /* REVISIT when we get a schedule tree, periodic transfers
2077 * won't always be at the head of a singleton queue... 2122 * won't always be at the head of a singleton queue...
diff --git a/drivers/usb/musb/musb_host.h b/drivers/usb/musb/musb_host.h
index 77bcdb9d5b32..0b7fbcd21963 100644
--- a/drivers/usb/musb/musb_host.h
+++ b/drivers/usb/musb/musb_host.h
@@ -53,6 +53,7 @@ struct musb_qh {
53 53
54 struct list_head ring; /* of musb_qh */ 54 struct list_head ring; /* of musb_qh */
55 /* struct musb_qh *next; */ /* for periodic tree */ 55 /* struct musb_qh *next; */ /* for periodic tree */
56 u8 mux; /* qh multiplexed to hw_ep */
56 57
57 unsigned offset; /* in urb->transfer_buffer */ 58 unsigned offset; /* in urb->transfer_buffer */
58 unsigned segsize; /* current xfer fragment */ 59 unsigned segsize; /* current xfer fragment */
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 9d2dcb121c5e..ce6c162920f7 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -53,7 +53,9 @@ static void musb_do_idle(unsigned long _musb)
53{ 53{
54 struct musb *musb = (void *)_musb; 54 struct musb *musb = (void *)_musb;
55 unsigned long flags; 55 unsigned long flags;
56#ifdef CONFIG_USB_MUSB_HDRC_HCD
56 u8 power; 57 u8 power;
58#endif
57 u8 devctl; 59 u8 devctl;
58 60
59 devctl = musb_readb(musb->mregs, MUSB_DEVCTL); 61 devctl = musb_readb(musb->mregs, MUSB_DEVCTL);
diff --git a/drivers/usb/musb/tusb6010.c b/drivers/usb/musb/tusb6010.c
index b73b036f3d77..ee8fca92a4ac 100644
--- a/drivers/usb/musb/tusb6010.c
+++ b/drivers/usb/musb/tusb6010.c
@@ -605,7 +605,7 @@ void musb_platform_set_mode(struct musb *musb, u8 musb_mode)
605 605
606 if (musb->board_mode != MUSB_OTG) { 606 if (musb->board_mode != MUSB_OTG) {
607 ERR("Changing mode currently only supported in OTG mode\n"); 607 ERR("Changing mode currently only supported in OTG mode\n");
608 return; 608 return -EINVAL;
609 } 609 }
610 610
611 otg_stat = musb_readl(tbase, TUSB_DEV_OTG_STAT); 611 otg_stat = musb_readl(tbase, TUSB_DEV_OTG_STAT);
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/cp2101.c b/drivers/usb/serial/cp2101.c
index 8008d0bc80ad..cfaf1f085535 100644
--- a/drivers/usb/serial/cp2101.c
+++ b/drivers/usb/serial/cp2101.c
@@ -56,6 +56,7 @@ static void cp2101_shutdown(struct usb_serial *);
56static int debug; 56static int debug;
57 57
58static struct usb_device_id id_table [] = { 58static struct usb_device_id id_table [] = {
59 { USB_DEVICE(0x0471, 0x066A) }, /* AKTAKOM ACE-1001 cable */
59 { USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */ 60 { USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */
60 { USB_DEVICE(0x08e6, 0x5501) }, /* Gemalto Prox-PU/CU contactless smartcard reader */ 61 { USB_DEVICE(0x08e6, 0x5501) }, /* Gemalto Prox-PU/CU contactless smartcard reader */
61 { USB_DEVICE(0x0FCF, 0x1003) }, /* Dynastream ANT development board */ 62 { USB_DEVICE(0x0FCF, 0x1003) }, /* Dynastream ANT development board */
@@ -67,6 +68,7 @@ static struct usb_device_id id_table [] = {
67 { USB_DEVICE(0x10C4, 0x800A) }, /* SPORTident BSM7-D-USB main station */ 68 { USB_DEVICE(0x10C4, 0x800A) }, /* SPORTident BSM7-D-USB main station */
68 { USB_DEVICE(0x10C4, 0x803B) }, /* Pololu USB-serial converter */ 69 { USB_DEVICE(0x10C4, 0x803B) }, /* Pololu USB-serial converter */
69 { USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */ 70 { USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */
71 { USB_DEVICE(0x10C4, 0x8054) }, /* Enfora GSM2228 */
70 { USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */ 72 { USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */
71 { USB_DEVICE(0x10C4, 0x807A) }, /* Crumb128 board */ 73 { USB_DEVICE(0x10C4, 0x807A) }, /* Crumb128 board */
72 { USB_DEVICE(0x10C4, 0x80CA) }, /* Degree Controls Inc */ 74 { USB_DEVICE(0x10C4, 0x80CA) }, /* Degree Controls Inc */
@@ -85,6 +87,7 @@ static struct usb_device_id id_table [] = {
85 { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */ 87 { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */
86 { USB_DEVICE(0x10c4, 0x8293) }, /* Telegesys ETRX2USB */ 88 { USB_DEVICE(0x10c4, 0x8293) }, /* Telegesys ETRX2USB */
87 { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */ 89 { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */
90 { USB_DEVICE(0x10C4, 0x83A8) }, /* Amber Wireless AMB2560 */
88 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ 91 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
89 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ 92 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
90 { USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */ 93 { USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */
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/ir-usb.c b/drivers/usb/serial/ir-usb.c
index b679a556b98d..4e2cda93da59 100644
--- a/drivers/usb/serial/ir-usb.c
+++ b/drivers/usb/serial/ir-usb.c
@@ -26,7 +26,7 @@
26 * Introduced common header to be used also in USB Gadget Framework. 26 * Introduced common header to be used also in USB Gadget Framework.
27 * Still needs some other style fixes. 27 * Still needs some other style fixes.
28 * 28 *
29 * 2007_Jun_21 Alan Cox <alan@redhat.com> 29 * 2007_Jun_21 Alan Cox <alan@lxorguk.ukuu.org.uk>
30 * Minimal cleanups for some of the driver problens and tty layer abuse. 30 * Minimal cleanups for some of the driver problens and tty layer abuse.
31 * Still needs fixing to allow multiple dongles. 31 * Still needs fixing to allow multiple dongles.
32 * 32 *
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index bd07eaa300b9..809697b3c7fc 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -160,6 +160,11 @@ static int option_send_setup(struct tty_struct *tty, struct usb_serial_port *po
160 160
161#define NOVATELWIRELESS_VENDOR_ID 0x1410 161#define NOVATELWIRELESS_VENDOR_ID 0x1410
162 162
163/* YISO PRODUCTS */
164
165#define YISO_VENDOR_ID 0x0EAB
166#define YISO_PRODUCT_U893 0xC893
167
163/* MERLIN EVDO PRODUCTS */ 168/* MERLIN EVDO PRODUCTS */
164#define NOVATELWIRELESS_PRODUCT_V640 0x1100 169#define NOVATELWIRELESS_PRODUCT_V640 0x1100
165#define NOVATELWIRELESS_PRODUCT_V620 0x1110 170#define NOVATELWIRELESS_PRODUCT_V620 0x1110
@@ -219,6 +224,7 @@ static int option_send_setup(struct tty_struct *tty, struct usb_serial_port *po
219#define ONDA_VENDOR_ID 0x19d2 224#define ONDA_VENDOR_ID 0x19d2
220#define ONDA_PRODUCT_MSA501HS 0x0001 225#define ONDA_PRODUCT_MSA501HS 0x0001
221#define ONDA_PRODUCT_ET502HS 0x0002 226#define ONDA_PRODUCT_ET502HS 0x0002
227#define ONDA_PRODUCT_MT503HS 0x0200
222 228
223#define BANDRICH_VENDOR_ID 0x1A8D 229#define BANDRICH_VENDOR_ID 0x1A8D
224#define BANDRICH_PRODUCT_C100_1 0x1002 230#define BANDRICH_PRODUCT_C100_1 0x1002
@@ -408,6 +414,41 @@ static struct usb_device_id option_ids[] = {
408 { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) }, 414 { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
409 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) }, 415 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },
410 { 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) },
451 { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },
411 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) }, 452 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) },
412 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, 453 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) },
413 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1004) }, 454 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1004) },
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/Kconfig b/drivers/usb/storage/Kconfig
index 3d9249632ae1..c68b738900bd 100644
--- a/drivers/usb/storage/Kconfig
+++ b/drivers/usb/storage/Kconfig
@@ -2,8 +2,8 @@
2# USB Storage driver configuration 2# USB Storage driver configuration
3# 3#
4 4
5comment "NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'" 5comment "NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;"
6comment "may also be needed; see USB_STORAGE Help for more information" 6comment "see USB_STORAGE Help for more information"
7 depends on USB 7 depends on USB
8 8
9config USB_STORAGE 9config USB_STORAGE
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index fb9e20e624c1..bfcc1fe82518 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -167,6 +167,27 @@ 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
184/* Patch for Nokia 5310 capacity */
185UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0701,
186 "Nokia",
187 "5310",
188 US_SC_DEVICE, US_PR_DEVICE, NULL,
189 US_FL_FIX_CAPACITY ),
190
170/* Reported by Mario Rettig <mariorettig@web.de> */ 191/* Reported by Mario Rettig <mariorettig@web.de> */
171UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100, 192UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100,
172 "Nokia", 193 "Nokia",
@@ -233,14 +254,14 @@ UNUSUAL_DEV( 0x0421, 0x0495, 0x0370, 0x0370,
233 US_FL_MAX_SECTORS_64 ), 254 US_FL_MAX_SECTORS_64 ),
234 255
235/* Reported by Cedric Godin <cedric@belbone.be> */ 256/* Reported by Cedric Godin <cedric@belbone.be> */
236UNUSUAL_DEV( 0x0421, 0x04b9, 0x0551, 0x0551, 257UNUSUAL_DEV( 0x0421, 0x04b9, 0x0500, 0x0551,
237 "Nokia", 258 "Nokia",
238 "5300", 259 "5300",
239 US_SC_DEVICE, US_PR_DEVICE, NULL, 260 US_SC_DEVICE, US_PR_DEVICE, NULL,
240 US_FL_FIX_CAPACITY ), 261 US_FL_FIX_CAPACITY ),
241 262
242/* Reported by Richard Nauber <RichardNauber@web.de> */ 263/* Reported by Richard Nauber <RichardNauber@web.de> */
243UNUSUAL_DEV( 0x0421, 0x04fa, 0x0601, 0x0601, 264UNUSUAL_DEV( 0x0421, 0x04fa, 0x0550, 0x0660,
244 "Nokia", 265 "Nokia",
245 "6300", 266 "6300",
246 US_SC_DEVICE, US_PR_DEVICE, NULL, 267 US_SC_DEVICE, US_PR_DEVICE, NULL,
@@ -253,6 +274,14 @@ UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591,
253 US_SC_DEVICE, US_PR_DEVICE, NULL, 274 US_SC_DEVICE, US_PR_DEVICE, NULL,
254 US_FL_FIX_CAPACITY ), 275 US_FL_FIX_CAPACITY ),
255 276
277/* Submitted by Ricky Wong Yung Fei <evilbladewarrior@gmail.com> */
278/* Nokia 7610 Supernova - Too many sectors reported in usb storage mode */
279UNUSUAL_DEV( 0x0421, 0x00f5, 0x0000, 0x0470,
280 "Nokia",
281 "7610 Supernova",
282 US_SC_DEVICE, US_PR_DEVICE, NULL,
283 US_FL_FIX_CAPACITY ),
284
256/* Reported by Olaf Hering <olh@suse.de> from novell bug #105878 */ 285/* Reported by Olaf Hering <olh@suse.de> from novell bug #105878 */
257UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210, 286UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210,
258 "SMSC", 287 "SMSC",
@@ -303,6 +332,18 @@ UNUSUAL_DEV( 0x045a, 0x5210, 0x0101, 0x0101,
303 US_SC_SCSI, US_PR_KARMA, rio_karma_init, 0), 332 US_SC_SCSI, US_PR_KARMA, rio_karma_init, 0),
304#endif 333#endif
305 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
306/* 347/*
307 * This virtual floppy is found in Sun equipment (x4600, x4200m2, etc.) 348 * This virtual floppy is found in Sun equipment (x4600, x4200m2, etc.)
308 * Reported by Pete Zaitcev <zaitcev@redhat.com> 349 * Reported by Pete Zaitcev <zaitcev@redhat.com>
@@ -362,6 +403,13 @@ UNUSUAL_DEV( 0x04b0, 0x0401, 0x0200, 0x0200,
362 US_SC_DEVICE, US_PR_DEVICE, NULL, 403 US_SC_DEVICE, US_PR_DEVICE, NULL,
363 US_FL_FIX_CAPACITY), 404 US_FL_FIX_CAPACITY),
364 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
365/* Reported by Milinevsky Dmitry <niam.niam@gmail.com> */ 413/* Reported by Milinevsky Dmitry <niam.niam@gmail.com> */
366UNUSUAL_DEV( 0x04b0, 0x0409, 0x0100, 0x0100, 414UNUSUAL_DEV( 0x04b0, 0x0409, 0x0100, 0x0100,
367 "NIKON", 415 "NIKON",
@@ -418,6 +466,13 @@ UNUSUAL_DEV( 0x04b0, 0x0417, 0x0100, 0x0100,
418 US_SC_DEVICE, US_PR_DEVICE, NULL, 466 US_SC_DEVICE, US_PR_DEVICE, NULL,
419 US_FL_FIX_CAPACITY), 467 US_FL_FIX_CAPACITY),
420 468
469/* Reported by paul ready <lxtwin@homecall.co.uk> */
470UNUSUAL_DEV( 0x04b0, 0x0419, 0x0100, 0x0200,
471 "NIKON",
472 "NIKON DSC D300",
473 US_SC_DEVICE, US_PR_DEVICE, NULL,
474 US_FL_FIX_CAPACITY),
475
421/* Reported by Doug Maxey (dwm@austin.ibm.com) */ 476/* Reported by Doug Maxey (dwm@austin.ibm.com) */
422UNUSUAL_DEV( 0x04b3, 0x4001, 0x0110, 0x0110, 477UNUSUAL_DEV( 0x04b3, 0x4001, 0x0110, 0x0110,
423 "IBM", 478 "IBM",
@@ -1258,6 +1313,13 @@ UNUSUAL_DEV( 0x0839, 0x000a, 0x0001, 0x0001,
1258 US_SC_DEVICE, US_PR_DEVICE, NULL, 1313 US_SC_DEVICE, US_PR_DEVICE, NULL,
1259 US_FL_FIX_INQUIRY), 1314 US_FL_FIX_INQUIRY),
1260 1315
1316/* Reported by Luciano Rocha <luciano@eurotux.com> */
1317UNUSUAL_DEV( 0x0840, 0x0082, 0x0001, 0x0001,
1318 "Argosy",
1319 "Storage",
1320 US_SC_DEVICE, US_PR_DEVICE, NULL,
1321 US_FL_FIX_CAPACITY),
1322
1261/* Entry and supporting patch by Theodore Kilgore <kilgota@auburn.edu>. 1323/* Entry and supporting patch by Theodore Kilgore <kilgota@auburn.edu>.
1262 * Flag will support Bulk devices which use a standards-violating 32-byte 1324 * Flag will support Bulk devices which use a standards-violating 32-byte
1263 * Command Block Wrapper. Here, the "DC2MEGA" cameras (several brands) with 1325 * Command Block Wrapper. Here, the "DC2MEGA" cameras (several brands) with
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 0f13448c6f79..3f3ce13fef43 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -2083,6 +2083,38 @@ config FB_METRONOME
2083 controller. The pre-release name for this device was 8track 2083 controller. The pre-release name for this device was 8track
2084 and could also have been called by some vendors as PVI-nnnn. 2084 and could also have been called by some vendors as PVI-nnnn.
2085 2085
2086config FB_MB862XX
2087 tristate "Fujitsu MB862xx GDC support"
2088 depends on FB
2089 select FB_CFB_FILLRECT
2090 select FB_CFB_COPYAREA
2091 select FB_CFB_IMAGEBLIT
2092 ---help---
2093 Frame buffer driver for Fujitsu Carmine/Coral-P(A)/Lime controllers.
2094
2095config FB_MB862XX_PCI_GDC
2096 bool "Carmine/Coral-P(A) GDC"
2097 depends on PCI && FB_MB862XX
2098 ---help---
2099 This enables framebuffer support for Fujitsu Carmine/Coral-P(A)
2100 PCI graphics controller devices.
2101
2102config FB_MB862XX_LIME
2103 bool "Lime GDC"
2104 depends on FB_MB862XX
2105 depends on OF && !FB_MB862XX_PCI_GDC
2106 select FB_FOREIGN_ENDIAN
2107 select FB_LITTLE_ENDIAN
2108 ---help---
2109 Framebuffer support for Fujitsu Lime GDC on host CPU bus.
2110
2111config FB_PRE_INIT_FB
2112 bool "Don't reinitialize, use bootloader's GDC/Display configuration"
2113 depends on FB_MB862XX_LIME
2114 ---help---
2115 Select this option if display contents should be inherited as set by
2116 the bootloader.
2117
2086source "drivers/video/omap/Kconfig" 2118source "drivers/video/omap/Kconfig"
2087 2119
2088source "drivers/video/backlight/Kconfig" 2120source "drivers/video/backlight/Kconfig"
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index 248bddc8d0b0..e39e33e797da 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -122,6 +122,7 @@ obj-$(CONFIG_FB_SH_MOBILE_LCDC) += sh_mobile_lcdcfb.o
122obj-$(CONFIG_FB_OMAP) += omap/ 122obj-$(CONFIG_FB_OMAP) += omap/
123obj-$(CONFIG_XEN_FBDEV_FRONTEND) += xen-fbfront.o 123obj-$(CONFIG_XEN_FBDEV_FRONTEND) += xen-fbfront.o
124obj-$(CONFIG_FB_CARMINE) += carminefb.o 124obj-$(CONFIG_FB_CARMINE) += carminefb.o
125obj-$(CONFIG_FB_MB862XX) += mb862xx/
125 126
126# Platform or fallback drivers go here 127# Platform or fallback drivers go here
127obj-$(CONFIG_FB_UVESA) += uvesafb.o 128obj-$(CONFIG_FB_UVESA) += uvesafb.o
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index f8d0a57a07cb..9a577a800db5 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -132,7 +132,7 @@ static void init_backlight(struct atmel_lcdfb_info *sinfo)
132 132
133 bl = backlight_device_register("backlight", &sinfo->pdev->dev, 133 bl = backlight_device_register("backlight", &sinfo->pdev->dev,
134 sinfo, &atmel_lcdc_bl_ops); 134 sinfo, &atmel_lcdc_bl_ops);
135 if (IS_ERR(sinfo->backlight)) { 135 if (IS_ERR(bl)) {
136 dev_err(&sinfo->pdev->dev, "error %ld on backlight register\n", 136 dev_err(&sinfo->pdev->dev, "error %ld on backlight register\n",
137 PTR_ERR(bl)); 137 PTR_ERR(bl));
138 return; 138 return;
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/backlight/da903x.c b/drivers/video/backlight/da903x.c
index 242c38250166..93bb4340cc64 100644
--- a/drivers/video/backlight/da903x.c
+++ b/drivers/video/backlight/da903x.c
@@ -119,6 +119,7 @@ static int da903x_backlight_probe(struct platform_device *pdev)
119 default: 119 default:
120 dev_err(&pdev->dev, "invalid backlight device ID(%d)\n", 120 dev_err(&pdev->dev, "invalid backlight device ID(%d)\n",
121 pdev->id); 121 pdev->id);
122 kfree(data);
122 return -EINVAL; 123 return -EINVAL;
123 } 124 }
124 125
@@ -130,6 +131,7 @@ static int da903x_backlight_probe(struct platform_device *pdev)
130 data, &da903x_backlight_ops); 131 data, &da903x_backlight_ops);
131 if (IS_ERR(bl)) { 132 if (IS_ERR(bl)) {
132 dev_err(&pdev->dev, "failed to register backlight\n"); 133 dev_err(&pdev->dev, "failed to register backlight\n");
134 kfree(data);
133 return PTR_ERR(bl); 135 return PTR_ERR(bl);
134 } 136 }
135 137
diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
index 8e1731d3b228..680e57b616cd 100644
--- a/drivers/video/backlight/lcd.c
+++ b/drivers/video/backlight/lcd.c
@@ -42,10 +42,13 @@ static int fb_notifier_callback(struct notifier_block *self,
42 42
43 mutex_lock(&ld->ops_lock); 43 mutex_lock(&ld->ops_lock);
44 if (!ld->ops->check_fb || ld->ops->check_fb(ld, evdata->info)) { 44 if (!ld->ops->check_fb || ld->ops->check_fb(ld, evdata->info)) {
45 if (event == FB_EVENT_BLANK) 45 if (event == FB_EVENT_BLANK) {
46 ld->ops->set_power(ld, *(int *)evdata->data); 46 if (ld->ops->set_power)
47 else 47 ld->ops->set_power(ld, *(int *)evdata->data);
48 ld->ops->set_mode(ld, evdata->data); 48 } else {
49 if (ld->ops->set_mode)
50 ld->ops->set_mode(ld, evdata->data);
51 }
49 } 52 }
50 mutex_unlock(&ld->ops_lock); 53 mutex_unlock(&ld->ops_lock);
51 return 0; 54 return 0;
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c
index 8a8760230bc7..a2aa6ddffbe2 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -2462,8 +2462,7 @@ static int __init cirrusfb_init(void)
2462 2462
2463#ifndef MODULE 2463#ifndef MODULE
2464static int __init cirrusfb_setup(char *options) { 2464static int __init cirrusfb_setup(char *options) {
2465 char *this_opt, s[32]; 2465 char *this_opt;
2466 int i;
2467 2466
2468 DPRINTK("ENTER\n"); 2467 DPRINTK("ENTER\n");
2469 2468
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/fbmem.c b/drivers/video/fbmem.c
index 6048b55f2878..3c65b0d67617 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -230,7 +230,7 @@ static void fb_set_logo_directpalette(struct fb_info *info,
230 greenshift = info->var.green.offset; 230 greenshift = info->var.green.offset;
231 blueshift = info->var.blue.offset; 231 blueshift = info->var.blue.offset;
232 232
233 for (i = 32; i < logo->clutsize; i++) 233 for (i = 32; i < 32 + logo->clutsize; i++)
234 palette[i] = i << redshift | i << greenshift | i << blueshift; 234 palette[i] = i << redshift | i << greenshift | i << blueshift;
235} 235}
236 236
@@ -1002,13 +1002,9 @@ fb_blank(struct fb_info *info, int blank)
1002 return ret; 1002 return ret;
1003} 1003}
1004 1004
1005static long 1005static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
1006fb_ioctl(struct file *file, unsigned int cmd, 1006 unsigned long arg)
1007 unsigned long arg)
1008{ 1007{
1009 struct inode *inode = file->f_path.dentry->d_inode;
1010 int fbidx = iminor(inode);
1011 struct fb_info *info;
1012 struct fb_ops *fb; 1008 struct fb_ops *fb;
1013 struct fb_var_screeninfo var; 1009 struct fb_var_screeninfo var;
1014 struct fb_fix_screeninfo fix; 1010 struct fb_fix_screeninfo fix;
@@ -1018,14 +1014,10 @@ fb_ioctl(struct file *file, unsigned int cmd,
1018 void __user *argp = (void __user *)arg; 1014 void __user *argp = (void __user *)arg;
1019 long ret = 0; 1015 long ret = 0;
1020 1016
1021 info = registered_fb[fbidx];
1022 mutex_lock(&info->lock);
1023 fb = info->fbops; 1017 fb = info->fbops;
1024 1018 if (!fb)
1025 if (!fb) {
1026 mutex_unlock(&info->lock);
1027 return -ENODEV; 1019 return -ENODEV;
1028 } 1020
1029 switch (cmd) { 1021 switch (cmd) {
1030 case FBIOGET_VSCREENINFO: 1022 case FBIOGET_VSCREENINFO:
1031 ret = copy_to_user(argp, &info->var, 1023 ret = copy_to_user(argp, &info->var,
@@ -1126,6 +1118,21 @@ fb_ioctl(struct file *file, unsigned int cmd,
1126 else 1118 else
1127 ret = fb->fb_ioctl(info, cmd, arg); 1119 ret = fb->fb_ioctl(info, cmd, arg);
1128 } 1120 }
1121 return ret;
1122}
1123
1124static long fb_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
1125__acquires(&info->lock)
1126__releases(&info->lock)
1127{
1128 struct inode *inode = file->f_path.dentry->d_inode;
1129 int fbidx = iminor(inode);
1130 struct fb_info *info;
1131 long ret;
1132
1133 info = registered_fb[fbidx];
1134 mutex_lock(&info->lock);
1135 ret = do_fb_ioctl(info, cmd, arg);
1129 mutex_unlock(&info->lock); 1136 mutex_unlock(&info->lock);
1130 return ret; 1137 return ret;
1131} 1138}
@@ -1157,8 +1164,8 @@ struct fb_cmap32 {
1157 compat_caddr_t transp; 1164 compat_caddr_t transp;
1158}; 1165};
1159 1166
1160static int fb_getput_cmap(struct inode *inode, struct file *file, 1167static int fb_getput_cmap(struct fb_info *info, unsigned int cmd,
1161 unsigned int cmd, unsigned long arg) 1168 unsigned long arg)
1162{ 1169{
1163 struct fb_cmap_user __user *cmap; 1170 struct fb_cmap_user __user *cmap;
1164 struct fb_cmap32 __user *cmap32; 1171 struct fb_cmap32 __user *cmap32;
@@ -1181,7 +1188,7 @@ static int fb_getput_cmap(struct inode *inode, struct file *file,
1181 put_user(compat_ptr(data), &cmap->transp)) 1188 put_user(compat_ptr(data), &cmap->transp))
1182 return -EFAULT; 1189 return -EFAULT;
1183 1190
1184 err = fb_ioctl(file, cmd, (unsigned long) cmap); 1191 err = do_fb_ioctl(info, cmd, (unsigned long) cmap);
1185 1192
1186 if (!err) { 1193 if (!err) {
1187 if (copy_in_user(&cmap32->start, 1194 if (copy_in_user(&cmap32->start,
@@ -1223,8 +1230,8 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
1223 return err; 1230 return err;
1224} 1231}
1225 1232
1226static int fb_get_fscreeninfo(struct inode *inode, struct file *file, 1233static int fb_get_fscreeninfo(struct fb_info *info, unsigned int cmd,
1227 unsigned int cmd, unsigned long arg) 1234 unsigned long arg)
1228{ 1235{
1229 mm_segment_t old_fs; 1236 mm_segment_t old_fs;
1230 struct fb_fix_screeninfo fix; 1237 struct fb_fix_screeninfo fix;
@@ -1235,7 +1242,7 @@ static int fb_get_fscreeninfo(struct inode *inode, struct file *file,
1235 1242
1236 old_fs = get_fs(); 1243 old_fs = get_fs();
1237 set_fs(KERNEL_DS); 1244 set_fs(KERNEL_DS);
1238 err = fb_ioctl(file, cmd, (unsigned long) &fix); 1245 err = do_fb_ioctl(info, cmd, (unsigned long) &fix);
1239 set_fs(old_fs); 1246 set_fs(old_fs);
1240 1247
1241 if (!err) 1248 if (!err)
@@ -1244,8 +1251,10 @@ static int fb_get_fscreeninfo(struct inode *inode, struct file *file,
1244 return err; 1251 return err;
1245} 1252}
1246 1253
1247static long 1254static long fb_compat_ioctl(struct file *file, unsigned int cmd,
1248fb_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 1255 unsigned long arg)
1256__acquires(&info->lock)
1257__releases(&info->lock)
1249{ 1258{
1250 struct inode *inode = file->f_path.dentry->d_inode; 1259 struct inode *inode = file->f_path.dentry->d_inode;
1251 int fbidx = iminor(inode); 1260 int fbidx = iminor(inode);
@@ -1262,16 +1271,16 @@ fb_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
1262 case FBIOPUT_CON2FBMAP: 1271 case FBIOPUT_CON2FBMAP:
1263 arg = (unsigned long) compat_ptr(arg); 1272 arg = (unsigned long) compat_ptr(arg);
1264 case FBIOBLANK: 1273 case FBIOBLANK:
1265 mutex_unlock(&info->lock); 1274 ret = do_fb_ioctl(info, cmd, arg);
1266 return fb_ioctl(file, cmd, arg); 1275 break;
1267 1276
1268 case FBIOGET_FSCREENINFO: 1277 case FBIOGET_FSCREENINFO:
1269 ret = fb_get_fscreeninfo(inode, file, cmd, arg); 1278 ret = fb_get_fscreeninfo(info, cmd, arg);
1270 break; 1279 break;
1271 1280
1272 case FBIOGETCMAP: 1281 case FBIOGETCMAP:
1273 case FBIOPUTCMAP: 1282 case FBIOPUTCMAP:
1274 ret = fb_getput_cmap(inode, file, cmd, arg); 1283 ret = fb_getput_cmap(info, cmd, arg);
1275 break; 1284 break;
1276 1285
1277 default: 1286 default:
@@ -1286,6 +1295,8 @@ fb_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
1286 1295
1287static int 1296static int
1288fb_mmap(struct file *file, struct vm_area_struct * vma) 1297fb_mmap(struct file *file, struct vm_area_struct * vma)
1298__acquires(&info->lock)
1299__releases(&info->lock)
1289{ 1300{
1290 int fbidx = iminor(file->f_path.dentry->d_inode); 1301 int fbidx = iminor(file->f_path.dentry->d_inode);
1291 struct fb_info *info = registered_fb[fbidx]; 1302 struct fb_info *info = registered_fb[fbidx];
@@ -1339,6 +1350,8 @@ fb_mmap(struct file *file, struct vm_area_struct * vma)
1339 1350
1340static int 1351static int
1341fb_open(struct inode *inode, struct file *file) 1352fb_open(struct inode *inode, struct file *file)
1353__acquires(&info->lock)
1354__releases(&info->lock)
1342{ 1355{
1343 int fbidx = iminor(inode); 1356 int fbidx = iminor(inode);
1344 struct fb_info *info; 1357 struct fb_info *info;
@@ -1374,6 +1387,8 @@ out:
1374 1387
1375static int 1388static int
1376fb_release(struct inode *inode, struct file *file) 1389fb_release(struct inode *inode, struct file *file)
1390__acquires(&info->lock)
1391__releases(&info->lock)
1377{ 1392{
1378 struct fb_info * const info = file->private_data; 1393 struct fb_info * const info = file->private_data;
1379 1394
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/Makefile b/drivers/video/mb862xx/Makefile
new file mode 100644
index 000000000000..07664814bb1d
--- /dev/null
+++ b/drivers/video/mb862xx/Makefile
@@ -0,0 +1,5 @@
1#
2# Makefile for the MB862xx framebuffer driver
3#
4
5obj-$(CONFIG_FB_MB862XX) := mb862xxfb.o
diff --git a/drivers/video/mb862xx/mb862xx_reg.h b/drivers/video/mb862xx/mb862xx_reg.h
new file mode 100644
index 000000000000..2ba65e118500
--- /dev/null
+++ b/drivers/video/mb862xx/mb862xx_reg.h
@@ -0,0 +1,138 @@
1/*
2 * Fujitsu MB862xx Graphics Controller Registers/Bits
3 */
4
5#ifndef _MB862XX_REG_H
6#define _MB862XX_REG_H
7
8#ifdef MB862XX_MMIO_BOTTOM
9#define MB862XX_MMIO_BASE 0x03fc0000
10#else
11#define MB862XX_MMIO_BASE 0x01fc0000
12#endif
13#define MB862XX_I2C_BASE 0x0000c000
14#define MB862XX_DISP_BASE 0x00010000
15#define MB862XX_CAP_BASE 0x00018000
16#define MB862XX_DRAW_BASE 0x00030000
17#define MB862XX_GEO_BASE 0x00038000
18#define MB862XX_PIO_BASE 0x00038000
19#define MB862XX_MMIO_SIZE 0x40000
20
21/* Host interface/pio registers */
22#define GC_IST 0x00000020
23#define GC_IMASK 0x00000024
24#define GC_SRST 0x0000002c
25#define GC_CCF 0x00000038
26#define GC_CID 0x000000f0
27#define GC_REVISION 0x00000084
28
29#define GC_CCF_CGE_100 0x00000000
30#define GC_CCF_CGE_133 0x00040000
31#define GC_CCF_CGE_166 0x00080000
32#define GC_CCF_COT_100 0x00000000
33#define GC_CCF_COT_133 0x00010000
34#define GC_CID_CNAME_MSK 0x0000ff00
35#define GC_CID_VERSION_MSK 0x000000ff
36
37/* define enabled interrupts hereby */
38#define GC_INT_EN 0x00000000
39
40/* Memory interface mode register */
41#define GC_MMR 0x0000fffc
42
43/* Display Controller registers */
44#define GC_DCM0 0x00000000
45#define GC_HTP 0x00000004
46#define GC_HDB_HDP 0x00000008
47#define GC_VSW_HSW_HSP 0x0000000c
48#define GC_VTR 0x00000010
49#define GC_VDP_VSP 0x00000014
50#define GC_WY_WX 0x00000018
51#define GC_WH_WW 0x0000001c
52#define GC_L0M 0x00000020
53#define GC_L0OA0 0x00000024
54#define GC_L0DA0 0x00000028
55#define GC_L0DY_L0DX 0x0000002c
56#define GC_DCM1 0x00000100
57#define GC_L0EM 0x00000110
58#define GC_L0WY_L0WX 0x00000114
59#define GC_L0WH_L0WW 0x00000118
60#define GC_DCM2 0x00000104
61#define GC_DCM3 0x00000108
62#define GC_CPM_CUTC 0x000000a0
63#define GC_CUOA0 0x000000a4
64#define GC_CUY0_CUX0 0x000000a8
65#define GC_CUOA1 0x000000ac
66#define GC_CUY1_CUX1 0x000000b0
67#define GC_L0PAL0 0x00000400
68
69#define GC_CPM_CEN0 0x00100000
70#define GC_CPM_CEN1 0x00200000
71
72#define GC_DCM01_ESY 0x00000004
73#define GC_DCM01_SC 0x00003f00
74#define GC_DCM01_RESV 0x00004000
75#define GC_DCM01_CKS 0x00008000
76#define GC_DCM01_L0E 0x00010000
77#define GC_DCM01_DEN 0x80000000
78#define GC_L0M_L0C_8 0x00000000
79#define GC_L0M_L0C_16 0x80000000
80#define GC_L0EM_L0EC_24 0x40000000
81#define GC_L0M_L0W_UNIT 64
82
83#define GC_DISP_REFCLK_400 400
84
85/* Carmine specific */
86#define MB86297_DRAW_BASE 0x00020000
87#define MB86297_DISP0_BASE 0x00100000
88#define MB86297_DISP1_BASE 0x00140000
89#define MB86297_WRBACK_BASE 0x00180000
90#define MB86297_CAP0_BASE 0x00200000
91#define MB86297_CAP1_BASE 0x00280000
92#define MB86297_DRAMCTRL_BASE 0x00300000
93#define MB86297_CTRL_BASE 0x00400000
94#define MB86297_I2C_BASE 0x00500000
95
96#define GC_CTRL_STATUS 0x00000000
97#define GC_CTRL_INT_MASK 0x00000004
98#define GC_CTRL_CLK_ENABLE 0x0000000c
99#define GC_CTRL_SOFT_RST 0x00000010
100
101#define GC_CTRL_CLK_EN_DRAM 0x00000001
102#define GC_CTRL_CLK_EN_2D3D 0x00000002
103#define GC_CTRL_CLK_EN_DISP0 0x00000020
104#define GC_CTRL_CLK_EN_DISP1 0x00000040
105
106#define GC_2D3D_REV 0x000004b4
107#define GC_RE_REVISION 0x24240200
108
109/* define enabled interrupts hereby */
110#define GC_CARMINE_INT_EN 0x00000004
111
112/* DRAM controller */
113#define GC_DCTL_MODE_ADD 0x00000000
114#define GC_DCTL_SETTIME1_EMODE 0x00000004
115#define GC_DCTL_REFRESH_SETTIME2 0x00000008
116#define GC_DCTL_RSV0_STATES 0x0000000C
117#define GC_DCTL_RSV2_RSV1 0x00000010
118#define GC_DCTL_DDRIF2_DDRIF1 0x00000014
119#define GC_DCTL_IOCONT1_IOCONT0 0x00000024
120
121#define GC_DCTL_STATES_MSK 0x0000000f
122#define GC_DCTL_INIT_WAIT_CNT 3000
123#define GC_DCTL_INIT_WAIT_INTERVAL 1
124
125/* DRAM ctrl values for Carmine PCI Eval. board */
126#define GC_EVB_DCTL_MODE_ADD 0x012105c3
127#define GC_EVB_DCTL_MODE_ADD_AFT_RST 0x002105c3
128#define GC_EVB_DCTL_SETTIME1_EMODE 0x47498000
129#define GC_EVB_DCTL_REFRESH_SETTIME2 0x00422a22
130#define GC_EVB_DCTL_RSV0_STATES 0x00200003
131#define GC_EVB_DCTL_RSV0_STATES_AFT_RST 0x00200002
132#define GC_EVB_DCTL_RSV2_RSV1 0x0000000f
133#define GC_EVB_DCTL_DDRIF2_DDRIF1 0x00556646
134#define GC_EVB_DCTL_IOCONT1_IOCONT0 0x05550555
135
136#define GC_DISP_REFCLK_533 533
137
138#endif
diff --git a/drivers/video/mb862xx/mb862xxfb.c b/drivers/video/mb862xx/mb862xxfb.c
new file mode 100644
index 000000000000..fb64234a3825
--- /dev/null
+++ b/drivers/video/mb862xx/mb862xxfb.c
@@ -0,0 +1,1061 @@
1/*
2 * drivers/mb862xx/mb862xxfb.c
3 *
4 * Fujitsu Carmine/Coral-P(A)/Lime framebuffer driver
5 *
6 * (C) 2008 Anatolij Gustschin <agust@denx.de>
7 * DENX Software Engineering
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12 *
13 */
14
15#undef DEBUG
16
17#include <linux/fb.h>
18#include <linux/delay.h>
19#include <linux/init.h>
20#include <linux/interrupt.h>
21#include <linux/pci.h>
22#if defined(CONFIG_PPC_OF)
23#include <linux/of_platform.h>
24#endif
25#include "mb862xxfb.h"
26#include "mb862xx_reg.h"
27
28#define NR_PALETTE 256
29#define MB862XX_MEM_SIZE 0x1000000
30#define CORALP_MEM_SIZE 0x4000000
31#define CARMINE_MEM_SIZE 0x8000000
32#define DRV_NAME "mb862xxfb"
33
34#if defined(CONFIG_LWMON5)
35static struct mb862xx_gc_mode lwmon5_gc_mode = {
36 /* Mode for Sharp LQ104V1DG61 TFT LCD Panel */
37 { "640x480", 60, 640, 480, 40000, 48, 16, 32, 11, 96, 2, 0, 0, 0 },
38 /* 16 bits/pixel, 32MB, 100MHz, SDRAM memory mode value */
39 16, 0x2000000, GC_CCF_COT_100, 0x414fb7f2
40};
41#endif
42
43#if defined(CONFIG_SOCRATES)
44static struct mb862xx_gc_mode socrates_gc_mode = {
45 /* Mode for Prime View PM070WL4 TFT LCD Panel */
46 { "800x480", 45, 800, 480, 40000, 86, 42, 33, 10, 128, 2, 0, 0, 0 },
47 /* 16 bits/pixel, 16MB, 133MHz, SDRAM memory mode value */
48 16, 0x1000000, GC_CCF_COT_133, 0x4157ba63
49};
50#endif
51
52/* Helpers */
53static inline int h_total(struct fb_var_screeninfo *var)
54{
55 return var->xres + var->left_margin +
56 var->right_margin + var->hsync_len;
57}
58
59static inline int v_total(struct fb_var_screeninfo *var)
60{
61 return var->yres + var->upper_margin +
62 var->lower_margin + var->vsync_len;
63}
64
65static inline int hsp(struct fb_var_screeninfo *var)
66{
67 return var->xres + var->right_margin - 1;
68}
69
70static inline int vsp(struct fb_var_screeninfo *var)
71{
72 return var->yres + var->lower_margin - 1;
73}
74
75static inline int d_pitch(struct fb_var_screeninfo *var)
76{
77 return var->xres * var->bits_per_pixel / 8;
78}
79
80static inline unsigned int chan_to_field(unsigned int chan,
81 struct fb_bitfield *bf)
82{
83 chan &= 0xffff;
84 chan >>= 16 - bf->length;
85 return chan << bf->offset;
86}
87
88static int mb862xxfb_setcolreg(unsigned regno,
89 unsigned red, unsigned green, unsigned blue,
90 unsigned transp, struct fb_info *info)
91{
92 struct mb862xxfb_par *par = info->par;
93 unsigned int val;
94
95 switch (info->fix.visual) {
96 case FB_VISUAL_TRUECOLOR:
97 if (regno < 16) {
98 val = chan_to_field(red, &info->var.red);
99 val |= chan_to_field(green, &info->var.green);
100 val |= chan_to_field(blue, &info->var.blue);
101 par->pseudo_palette[regno] = val;
102 }
103 break;
104 case FB_VISUAL_PSEUDOCOLOR:
105 if (regno < 256) {
106 val = (red >> 8) << 16;
107 val |= (green >> 8) << 8;
108 val |= blue >> 8;
109 outreg(disp, GC_L0PAL0 + (regno * 4), val);
110 }
111 break;
112 default:
113 return 1; /* unsupported type */
114 }
115 return 0;
116}
117
118static int mb862xxfb_check_var(struct fb_var_screeninfo *var,
119 struct fb_info *fbi)
120{
121 unsigned long tmp;
122
123 if (fbi->dev)
124 dev_dbg(fbi->dev, "%s\n", __func__);
125
126 /* check if these values fit into the registers */
127 if (var->hsync_len > 255 || var->vsync_len > 255)
128 return -EINVAL;
129
130 if ((var->xres + var->right_margin) >= 4096)
131 return -EINVAL;
132
133 if ((var->yres + var->lower_margin) > 4096)
134 return -EINVAL;
135
136 if (h_total(var) > 4096 || v_total(var) > 4096)
137 return -EINVAL;
138
139 if (var->xres_virtual > 4096 || var->yres_virtual > 4096)
140 return -EINVAL;
141
142 if (var->bits_per_pixel <= 8)
143 var->bits_per_pixel = 8;
144 else if (var->bits_per_pixel <= 16)
145 var->bits_per_pixel = 16;
146 else if (var->bits_per_pixel <= 32)
147 var->bits_per_pixel = 32;
148
149 /*
150 * can cope with 8,16 or 24/32bpp if resulting
151 * pitch is divisible by 64 without remainder
152 */
153 if (d_pitch(&fbi->var) % GC_L0M_L0W_UNIT) {
154 int r;
155
156 var->bits_per_pixel = 0;
157 do {
158 var->bits_per_pixel += 8;
159 r = d_pitch(&fbi->var) % GC_L0M_L0W_UNIT;
160 } while (r && var->bits_per_pixel <= 32);
161
162 if (d_pitch(&fbi->var) % GC_L0M_L0W_UNIT)
163 return -EINVAL;
164 }
165
166 /* line length is going to be 128 bit aligned */
167 tmp = (var->xres * var->bits_per_pixel) / 8;
168 if ((tmp & 15) != 0)
169 return -EINVAL;
170
171 /* set r/g/b positions and validate bpp */
172 switch (var->bits_per_pixel) {
173 case 8:
174 var->red.length = var->bits_per_pixel;
175 var->green.length = var->bits_per_pixel;
176 var->blue.length = var->bits_per_pixel;
177 var->red.offset = 0;
178 var->green.offset = 0;
179 var->blue.offset = 0;
180 var->transp.length = 0;
181 break;
182 case 16:
183 var->red.length = 5;
184 var->green.length = 5;
185 var->blue.length = 5;
186 var->red.offset = 10;
187 var->green.offset = 5;
188 var->blue.offset = 0;
189 var->transp.length = 0;
190 break;
191 case 24:
192 case 32:
193 var->transp.length = 8;
194 var->red.length = 8;
195 var->green.length = 8;
196 var->blue.length = 8;
197 var->transp.offset = 24;
198 var->red.offset = 16;
199 var->green.offset = 8;
200 var->blue.offset = 0;
201 break;
202 default:
203 return -EINVAL;
204 }
205 return 0;
206}
207
208/*
209 * set display parameters
210 */
211static int mb862xxfb_set_par(struct fb_info *fbi)
212{
213 struct mb862xxfb_par *par = fbi->par;
214 unsigned long reg, sc;
215
216 dev_dbg(par->dev, "%s\n", __func__);
217
218 if (par->pre_init)
219 return 0;
220
221 /* disp off */
222 reg = inreg(disp, GC_DCM1);
223 reg &= ~GC_DCM01_DEN;
224 outreg(disp, GC_DCM1, reg);
225
226 /* set display reference clock div. */
227 sc = par->refclk / (1000000 / fbi->var.pixclock) - 1;
228 reg = inreg(disp, GC_DCM1);
229 reg &= ~(GC_DCM01_CKS | GC_DCM01_RESV | GC_DCM01_SC);
230 reg |= sc << 8;
231 outreg(disp, GC_DCM1, reg);
232 dev_dbg(par->dev, "SC 0x%lx\n", sc);
233
234 /* disp dimension, format */
235 reg = pack(d_pitch(&fbi->var) / GC_L0M_L0W_UNIT,
236 (fbi->var.yres - 1));
237 if (fbi->var.bits_per_pixel == 16)
238 reg |= GC_L0M_L0C_16;
239 outreg(disp, GC_L0M, reg);
240
241 if (fbi->var.bits_per_pixel == 32) {
242 reg = inreg(disp, GC_L0EM);
243 outreg(disp, GC_L0EM, reg | GC_L0EM_L0EC_24);
244 }
245 outreg(disp, GC_WY_WX, 0);
246 reg = pack(fbi->var.yres - 1, fbi->var.xres);
247 outreg(disp, GC_WH_WW, reg);
248 outreg(disp, GC_L0OA0, 0);
249 outreg(disp, GC_L0DA0, 0);
250 outreg(disp, GC_L0DY_L0DX, 0);
251 outreg(disp, GC_L0WY_L0WX, 0);
252 outreg(disp, GC_L0WH_L0WW, reg);
253
254 /* both HW-cursors off */
255 reg = inreg(disp, GC_CPM_CUTC);
256 reg &= ~(GC_CPM_CEN0 | GC_CPM_CEN1);
257 outreg(disp, GC_CPM_CUTC, reg);
258
259 /* timings */
260 reg = pack(fbi->var.xres - 1, fbi->var.xres - 1);
261 outreg(disp, GC_HDB_HDP, reg);
262 reg = pack((fbi->var.yres - 1), vsp(&fbi->var));
263 outreg(disp, GC_VDP_VSP, reg);
264 reg = ((fbi->var.vsync_len - 1) << 24) |
265 pack((fbi->var.hsync_len - 1), hsp(&fbi->var));
266 outreg(disp, GC_VSW_HSW_HSP, reg);
267 outreg(disp, GC_HTP, pack(h_total(&fbi->var) - 1, 0));
268 outreg(disp, GC_VTR, pack(v_total(&fbi->var) - 1, 0));
269
270 /* display on */
271 reg = inreg(disp, GC_DCM1);
272 reg |= GC_DCM01_DEN | GC_DCM01_L0E;
273 reg &= ~GC_DCM01_ESY;
274 outreg(disp, GC_DCM1, reg);
275 return 0;
276}
277
278static int mb862xxfb_pan(struct fb_var_screeninfo *var,
279 struct fb_info *info)
280{
281 struct mb862xxfb_par *par = info->par;
282 unsigned long reg;
283
284 reg = pack(var->yoffset, var->xoffset);
285 outreg(disp, GC_L0WY_L0WX, reg);
286
287 reg = pack(var->yres_virtual, var->xres_virtual);
288 outreg(disp, GC_L0WH_L0WW, reg);
289 return 0;
290}
291
292static int mb862xxfb_blank(int mode, struct fb_info *fbi)
293{
294 struct mb862xxfb_par *par = fbi->par;
295 unsigned long reg;
296
297 dev_dbg(fbi->dev, "blank mode=%d\n", mode);
298
299 switch (mode) {
300 case FB_BLANK_POWERDOWN:
301 reg = inreg(disp, GC_DCM1);
302 reg &= ~GC_DCM01_DEN;
303 outreg(disp, GC_DCM1, reg);
304 break;
305 case FB_BLANK_UNBLANK:
306 reg = inreg(disp, GC_DCM1);
307 reg |= GC_DCM01_DEN;
308 outreg(disp, GC_DCM1, reg);
309 break;
310 case FB_BLANK_NORMAL:
311 case FB_BLANK_VSYNC_SUSPEND:
312 case FB_BLANK_HSYNC_SUSPEND:
313 default:
314 return 1;
315 }
316 return 0;
317}
318
319/* framebuffer ops */
320static struct fb_ops mb862xxfb_ops = {
321 .owner = THIS_MODULE,
322 .fb_check_var = mb862xxfb_check_var,
323 .fb_set_par = mb862xxfb_set_par,
324 .fb_setcolreg = mb862xxfb_setcolreg,
325 .fb_blank = mb862xxfb_blank,
326 .fb_pan_display = mb862xxfb_pan,
327 .fb_fillrect = cfb_fillrect,
328 .fb_copyarea = cfb_copyarea,
329 .fb_imageblit = cfb_imageblit,
330};
331
332/* initialize fb_info data */
333static int mb862xxfb_init_fbinfo(struct fb_info *fbi)
334{
335 struct mb862xxfb_par *par = fbi->par;
336 struct mb862xx_gc_mode *mode = par->gc_mode;
337 unsigned long reg;
338
339 fbi->fbops = &mb862xxfb_ops;
340 fbi->pseudo_palette = par->pseudo_palette;
341 fbi->screen_base = par->fb_base;
342 fbi->screen_size = par->mapped_vram;
343
344 strcpy(fbi->fix.id, DRV_NAME);
345 fbi->fix.smem_start = (unsigned long)par->fb_base_phys;
346 fbi->fix.smem_len = par->mapped_vram;
347 fbi->fix.mmio_start = (unsigned long)par->mmio_base_phys;
348 fbi->fix.mmio_len = par->mmio_len;
349 fbi->fix.accel = FB_ACCEL_NONE;
350 fbi->fix.type = FB_TYPE_PACKED_PIXELS;
351 fbi->fix.type_aux = 0;
352 fbi->fix.xpanstep = 1;
353 fbi->fix.ypanstep = 1;
354 fbi->fix.ywrapstep = 0;
355
356 reg = inreg(disp, GC_DCM1);
357 if (reg & GC_DCM01_DEN && reg & GC_DCM01_L0E) {
358 /* get the disp mode from active display cfg */
359 unsigned long sc = ((reg & GC_DCM01_SC) >> 8) + 1;
360 unsigned long hsp, vsp, ht, vt;
361
362 dev_dbg(par->dev, "using bootloader's disp. mode\n");
363 fbi->var.pixclock = (sc * 1000000) / par->refclk;
364 fbi->var.xres = (inreg(disp, GC_HDB_HDP) & 0x0fff) + 1;
365 reg = inreg(disp, GC_VDP_VSP);
366 fbi->var.yres = ((reg >> 16) & 0x0fff) + 1;
367 vsp = (reg & 0x0fff) + 1;
368 fbi->var.xres_virtual = fbi->var.xres;
369 fbi->var.yres_virtual = fbi->var.yres;
370 reg = inreg(disp, GC_L0EM);
371 if (reg & GC_L0EM_L0EC_24) {
372 fbi->var.bits_per_pixel = 32;
373 } else {
374 reg = inreg(disp, GC_L0M);
375 if (reg & GC_L0M_L0C_16)
376 fbi->var.bits_per_pixel = 16;
377 else
378 fbi->var.bits_per_pixel = 8;
379 }
380 reg = inreg(disp, GC_VSW_HSW_HSP);
381 fbi->var.hsync_len = ((reg & 0xff0000) >> 16) + 1;
382 fbi->var.vsync_len = ((reg & 0x3f000000) >> 24) + 1;
383 hsp = (reg & 0xffff) + 1;
384 ht = ((inreg(disp, GC_HTP) & 0xfff0000) >> 16) + 1;
385 fbi->var.right_margin = hsp - fbi->var.xres;
386 fbi->var.left_margin = ht - hsp - fbi->var.hsync_len;
387 vt = ((inreg(disp, GC_VTR) & 0xfff0000) >> 16) + 1;
388 fbi->var.lower_margin = vsp - fbi->var.yres;
389 fbi->var.upper_margin = vt - vsp - fbi->var.vsync_len;
390 } else if (mode) {
391 dev_dbg(par->dev, "using supplied mode\n");
392 fb_videomode_to_var(&fbi->var, (struct fb_videomode *)mode);
393 fbi->var.bits_per_pixel = mode->def_bpp ? mode->def_bpp : 8;
394 } else {
395 int ret;
396
397 ret = fb_find_mode(&fbi->var, fbi, "640x480-16@60",
398 NULL, 0, NULL, 16);
399 if (ret == 0 || ret == 4) {
400 dev_err(par->dev,
401 "failed to get initial mode\n");
402 return -EINVAL;
403 }
404 }
405
406 fbi->var.xoffset = 0;
407 fbi->var.yoffset = 0;
408 fbi->var.grayscale = 0;
409 fbi->var.nonstd = 0;
410 fbi->var.height = -1;
411 fbi->var.width = -1;
412 fbi->var.accel_flags = 0;
413 fbi->var.vmode = FB_VMODE_NONINTERLACED;
414 fbi->var.activate = FB_ACTIVATE_NOW;
415 fbi->flags = FBINFO_DEFAULT |
416#ifdef __BIG_ENDIAN
417 FBINFO_FOREIGN_ENDIAN |
418#endif
419 FBINFO_HWACCEL_XPAN |
420 FBINFO_HWACCEL_YPAN;
421
422 /* check and possibly fix bpp */
423 if ((fbi->fbops->fb_check_var)(&fbi->var, fbi))
424 dev_err(par->dev, "check_var() failed on initial setup?\n");
425
426 fbi->fix.visual = fbi->var.bits_per_pixel == 8 ?
427 FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR;
428 fbi->fix.line_length = (fbi->var.xres_virtual *
429 fbi->var.bits_per_pixel) / 8;
430 return 0;
431}
432
433/*
434 * show some display controller and cursor registers
435 */
436static ssize_t mb862xxfb_show_dispregs(struct device *dev,
437 struct device_attribute *attr, char *buf)
438{
439 struct fb_info *fbi = dev_get_drvdata(dev);
440 struct mb862xxfb_par *par = fbi->par;
441 char *ptr = buf;
442 unsigned int reg;
443
444 for (reg = GC_DCM0; reg <= GC_L0DY_L0DX; reg += 4)
445 ptr += sprintf(ptr, "%08x = %08x\n",
446 reg, inreg(disp, reg));
447
448 for (reg = GC_CPM_CUTC; reg <= GC_CUY1_CUX1; reg += 4)
449 ptr += sprintf(ptr, "%08x = %08x\n",
450 reg, inreg(disp, reg));
451
452 for (reg = GC_DCM1; reg <= GC_L0WH_L0WW; reg += 4)
453 ptr += sprintf(ptr, "%08x = %08x\n",
454 reg, inreg(disp, reg));
455
456 return ptr - buf;
457}
458
459static DEVICE_ATTR(dispregs, 0444, mb862xxfb_show_dispregs, NULL);
460
461irqreturn_t mb862xx_intr(int irq, void *dev_id)
462{
463 struct mb862xxfb_par *par = (struct mb862xxfb_par *) dev_id;
464 unsigned long reg_ist, mask;
465
466 if (!par)
467 return IRQ_NONE;
468
469 if (par->type == BT_CARMINE) {
470 /* Get Interrupt Status */
471 reg_ist = inreg(ctrl, GC_CTRL_STATUS);
472 mask = inreg(ctrl, GC_CTRL_INT_MASK);
473 if (reg_ist == 0)
474 return IRQ_HANDLED;
475
476 reg_ist &= mask;
477 if (reg_ist == 0)
478 return IRQ_HANDLED;
479
480 /* Clear interrupt status */
481 outreg(ctrl, 0x0, reg_ist);
482 } else {
483 /* Get status */
484 reg_ist = inreg(host, GC_IST);
485 mask = inreg(host, GC_IMASK);
486
487 reg_ist &= mask;
488 if (reg_ist == 0)
489 return IRQ_HANDLED;
490
491 /* Clear status */
492 outreg(host, GC_IST, ~reg_ist);
493 }
494 return IRQ_HANDLED;
495}
496
497#if defined(CONFIG_FB_MB862XX_LIME)
498/*
499 * GDC (Lime, Coral(B/Q), Mint, ...) on host bus
500 */
501static int mb862xx_gdc_init(struct mb862xxfb_par *par)
502{
503 unsigned long ccf, mmr;
504 unsigned long ver, rev;
505
506 if (!par)
507 return -ENODEV;
508
509#if defined(CONFIG_FB_PRE_INIT_FB)
510 par->pre_init = 1;
511#endif
512 par->host = par->mmio_base;
513 par->i2c = par->mmio_base + MB862XX_I2C_BASE;
514 par->disp = par->mmio_base + MB862XX_DISP_BASE;
515 par->cap = par->mmio_base + MB862XX_CAP_BASE;
516 par->draw = par->mmio_base + MB862XX_DRAW_BASE;
517 par->geo = par->mmio_base + MB862XX_GEO_BASE;
518 par->pio = par->mmio_base + MB862XX_PIO_BASE;
519
520 par->refclk = GC_DISP_REFCLK_400;
521
522 ver = inreg(host, GC_CID);
523 rev = inreg(pio, GC_REVISION);
524 if ((ver == 0x303) && (rev & 0xffffff00) == 0x20050100) {
525 dev_info(par->dev, "Fujitsu Lime v1.%d found\n",
526 (int)rev & 0xff);
527 par->type = BT_LIME;
528 ccf = par->gc_mode ? par->gc_mode->ccf : GC_CCF_COT_100;
529 mmr = par->gc_mode ? par->gc_mode->mmr : 0x414fb7f2;
530 } else {
531 dev_info(par->dev, "? GDC, CID/Rev.: 0x%lx/0x%lx \n", ver, rev);
532 return -ENODEV;
533 }
534
535 if (!par->pre_init) {
536 outreg(host, GC_CCF, ccf);
537 udelay(200);
538 outreg(host, GC_MMR, mmr);
539 udelay(10);
540 }
541
542 /* interrupt status */
543 outreg(host, GC_IST, 0);
544 outreg(host, GC_IMASK, GC_INT_EN);
545 return 0;
546}
547
548static int __devinit of_platform_mb862xx_probe(struct of_device *ofdev,
549 const struct of_device_id *id)
550{
551 struct device_node *np = ofdev->node;
552 struct device *dev = &ofdev->dev;
553 struct mb862xxfb_par *par;
554 struct fb_info *info;
555 struct resource res;
556 resource_size_t res_size;
557 unsigned long ret = -ENODEV;
558
559 if (of_address_to_resource(np, 0, &res)) {
560 dev_err(dev, "Invalid address\n");
561 return -ENXIO;
562 }
563
564 info = framebuffer_alloc(sizeof(struct mb862xxfb_par), dev);
565 if (info == NULL) {
566 dev_err(dev, "cannot allocate framebuffer\n");
567 return -ENOMEM;
568 }
569
570 par = info->par;
571 par->info = info;
572 par->dev = dev;
573
574 par->irq = irq_of_parse_and_map(np, 0);
575 if (par->irq == NO_IRQ) {
576 dev_err(dev, "failed to map irq\n");
577 ret = -ENODEV;
578 goto fbrel;
579 }
580
581 res_size = 1 + res.end - res.start;
582 par->res = request_mem_region(res.start, res_size, DRV_NAME);
583 if (par->res == NULL) {
584 dev_err(dev, "Cannot claim framebuffer/mmio\n");
585 ret = -ENXIO;
586 goto irqdisp;
587 }
588
589#if defined(CONFIG_LWMON5)
590 par->gc_mode = &lwmon5_gc_mode;
591#endif
592
593#if defined(CONFIG_SOCRATES)
594 par->gc_mode = &socrates_gc_mode;
595#endif
596
597 par->fb_base_phys = res.start;
598 par->mmio_base_phys = res.start + MB862XX_MMIO_BASE;
599 par->mmio_len = MB862XX_MMIO_SIZE;
600 if (par->gc_mode)
601 par->mapped_vram = par->gc_mode->max_vram;
602 else
603 par->mapped_vram = MB862XX_MEM_SIZE;
604
605 par->fb_base = ioremap(par->fb_base_phys, par->mapped_vram);
606 if (par->fb_base == NULL) {
607 dev_err(dev, "Cannot map framebuffer\n");
608 goto rel_reg;
609 }
610
611 par->mmio_base = ioremap(par->mmio_base_phys, par->mmio_len);
612 if (par->mmio_base == NULL) {
613 dev_err(dev, "Cannot map registers\n");
614 goto fb_unmap;
615 }
616
617 dev_dbg(dev, "fb phys 0x%llx 0x%lx\n",
618 (u64)par->fb_base_phys, (ulong)par->mapped_vram);
619 dev_dbg(dev, "mmio phys 0x%llx 0x%lx, (irq = %d)\n",
620 (u64)par->mmio_base_phys, (ulong)par->mmio_len, par->irq);
621
622 if (mb862xx_gdc_init(par))
623 goto io_unmap;
624
625 if (request_irq(par->irq, mb862xx_intr, IRQF_DISABLED,
626 DRV_NAME, (void *)par)) {
627 dev_err(dev, "Cannot request irq\n");
628 goto io_unmap;
629 }
630
631 mb862xxfb_init_fbinfo(info);
632
633 if (fb_alloc_cmap(&info->cmap, NR_PALETTE, 0) < 0) {
634 dev_err(dev, "Could not allocate cmap for fb_info.\n");
635 goto free_irq;
636 }
637
638 if ((info->fbops->fb_set_par)(info))
639 dev_err(dev, "set_var() failed on initial setup?\n");
640
641 if (register_framebuffer(info)) {
642 dev_err(dev, "failed to register framebuffer\n");
643 goto rel_cmap;
644 }
645
646 dev_set_drvdata(dev, info);
647
648 if (device_create_file(dev, &dev_attr_dispregs))
649 dev_err(dev, "Can't create sysfs regdump file\n");
650 return 0;
651
652rel_cmap:
653 fb_dealloc_cmap(&info->cmap);
654free_irq:
655 outreg(host, GC_IMASK, 0);
656 free_irq(par->irq, (void *)par);
657io_unmap:
658 iounmap(par->mmio_base);
659fb_unmap:
660 iounmap(par->fb_base);
661rel_reg:
662 release_mem_region(res.start, res_size);
663irqdisp:
664 irq_dispose_mapping(par->irq);
665fbrel:
666 dev_set_drvdata(dev, NULL);
667 framebuffer_release(info);
668 return ret;
669}
670
671static int __devexit of_platform_mb862xx_remove(struct of_device *ofdev)
672{
673 struct fb_info *fbi = dev_get_drvdata(&ofdev->dev);
674 struct mb862xxfb_par *par = fbi->par;
675 resource_size_t res_size = 1 + par->res->end - par->res->start;
676 unsigned long reg;
677
678 dev_dbg(fbi->dev, "%s release\n", fbi->fix.id);
679
680 /* display off */
681 reg = inreg(disp, GC_DCM1);
682 reg &= ~(GC_DCM01_DEN | GC_DCM01_L0E);
683 outreg(disp, GC_DCM1, reg);
684
685 /* disable interrupts */
686 outreg(host, GC_IMASK, 0);
687
688 free_irq(par->irq, (void *)par);
689 irq_dispose_mapping(par->irq);
690
691 device_remove_file(&ofdev->dev, &dev_attr_dispregs);
692
693 unregister_framebuffer(fbi);
694 fb_dealloc_cmap(&fbi->cmap);
695
696 iounmap(par->mmio_base);
697 iounmap(par->fb_base);
698
699 dev_set_drvdata(&ofdev->dev, NULL);
700 release_mem_region(par->res->start, res_size);
701 framebuffer_release(fbi);
702 return 0;
703}
704
705/*
706 * common types
707 */
708static struct of_device_id __devinitdata of_platform_mb862xx_tbl[] = {
709 { .compatible = "fujitsu,MB86276", },
710 { .compatible = "fujitsu,lime", },
711 { .compatible = "fujitsu,MB86277", },
712 { .compatible = "fujitsu,mint", },
713 { .compatible = "fujitsu,MB86293", },
714 { .compatible = "fujitsu,MB86294", },
715 { .compatible = "fujitsu,coral", },
716 { /* end */ }
717};
718
719static struct of_platform_driver of_platform_mb862xxfb_driver = {
720 .owner = THIS_MODULE,
721 .name = DRV_NAME,
722 .match_table = of_platform_mb862xx_tbl,
723 .probe = of_platform_mb862xx_probe,
724 .remove = __devexit_p(of_platform_mb862xx_remove),
725};
726#endif
727
728#if defined(CONFIG_FB_MB862XX_PCI_GDC)
729static int coralp_init(struct mb862xxfb_par *par)
730{
731 int cn, ver;
732
733 par->host = par->mmio_base;
734 par->i2c = par->mmio_base + MB862XX_I2C_BASE;
735 par->disp = par->mmio_base + MB862XX_DISP_BASE;
736 par->cap = par->mmio_base + MB862XX_CAP_BASE;
737 par->draw = par->mmio_base + MB862XX_DRAW_BASE;
738 par->geo = par->mmio_base + MB862XX_GEO_BASE;
739 par->pio = par->mmio_base + MB862XX_PIO_BASE;
740
741 par->refclk = GC_DISP_REFCLK_400;
742
743 ver = inreg(host, GC_CID);
744 cn = (ver & GC_CID_CNAME_MSK) >> 8;
745 ver = ver & GC_CID_VERSION_MSK;
746 if (cn == 3) {
747 dev_info(par->dev, "Fujitsu Coral-%s GDC Rev.%d found\n",\
748 (ver == 6) ? "P" : (ver == 8) ? "PA" : "?",
749 par->pdev->revision);
750 outreg(host, GC_CCF, GC_CCF_CGE_166 | GC_CCF_COT_133);
751 udelay(200);
752 outreg(host, GC_MMR, GC_MMR_CORALP_EVB_VAL);
753 udelay(10);
754 /* Clear interrupt status */
755 outreg(host, GC_IST, 0);
756 } else {
757 return -ENODEV;
758 }
759 return 0;
760}
761
762static int init_dram_ctrl(struct mb862xxfb_par *par)
763{
764 unsigned long i = 0;
765
766 /*
767 * Set io mode first! Spec. says IC may be destroyed
768 * if not set to SSTL2/LVCMOS before init.
769 */
770 outreg(dram_ctrl, GC_DCTL_IOCONT1_IOCONT0, GC_EVB_DCTL_IOCONT1_IOCONT0);
771
772 /* DRAM init */
773 outreg(dram_ctrl, GC_DCTL_MODE_ADD, GC_EVB_DCTL_MODE_ADD);
774 outreg(dram_ctrl, GC_DCTL_SETTIME1_EMODE, GC_EVB_DCTL_SETTIME1_EMODE);
775 outreg(dram_ctrl, GC_DCTL_REFRESH_SETTIME2,
776 GC_EVB_DCTL_REFRESH_SETTIME2);
777 outreg(dram_ctrl, GC_DCTL_RSV2_RSV1, GC_EVB_DCTL_RSV2_RSV1);
778 outreg(dram_ctrl, GC_DCTL_DDRIF2_DDRIF1, GC_EVB_DCTL_DDRIF2_DDRIF1);
779 outreg(dram_ctrl, GC_DCTL_RSV0_STATES, GC_EVB_DCTL_RSV0_STATES);
780
781 /* DLL reset done? */
782 while ((inreg(dram_ctrl, GC_DCTL_RSV0_STATES) & GC_DCTL_STATES_MSK)) {
783 udelay(GC_DCTL_INIT_WAIT_INTERVAL);
784 if (i++ > GC_DCTL_INIT_WAIT_CNT) {
785 dev_err(par->dev, "VRAM init failed.\n");
786 return -EINVAL;
787 }
788 }
789 outreg(dram_ctrl, GC_DCTL_MODE_ADD, GC_EVB_DCTL_MODE_ADD_AFT_RST);
790 outreg(dram_ctrl, GC_DCTL_RSV0_STATES, GC_EVB_DCTL_RSV0_STATES_AFT_RST);
791 return 0;
792}
793
794static int carmine_init(struct mb862xxfb_par *par)
795{
796 unsigned long reg;
797
798 par->ctrl = par->mmio_base + MB86297_CTRL_BASE;
799 par->i2c = par->mmio_base + MB86297_I2C_BASE;
800 par->disp = par->mmio_base + MB86297_DISP0_BASE;
801 par->disp1 = par->mmio_base + MB86297_DISP1_BASE;
802 par->cap = par->mmio_base + MB86297_CAP0_BASE;
803 par->cap1 = par->mmio_base + MB86297_CAP1_BASE;
804 par->draw = par->mmio_base + MB86297_DRAW_BASE;
805 par->dram_ctrl = par->mmio_base + MB86297_DRAMCTRL_BASE;
806 par->wrback = par->mmio_base + MB86297_WRBACK_BASE;
807
808 par->refclk = GC_DISP_REFCLK_533;
809
810 /* warm up */
811 reg = GC_CTRL_CLK_EN_DRAM | GC_CTRL_CLK_EN_2D3D | GC_CTRL_CLK_EN_DISP0;
812 outreg(ctrl, GC_CTRL_CLK_ENABLE, reg);
813
814 /* check for engine module revision */
815 if (inreg(draw, GC_2D3D_REV) == GC_RE_REVISION)
816 dev_info(par->dev, "Fujitsu Carmine GDC Rev.%d found\n",
817 par->pdev->revision);
818 else
819 goto err_init;
820
821 reg &= ~GC_CTRL_CLK_EN_2D3D;
822 outreg(ctrl, GC_CTRL_CLK_ENABLE, reg);
823
824 /* set up vram */
825 if (init_dram_ctrl(par) < 0)
826 goto err_init;
827
828 outreg(ctrl, GC_CTRL_INT_MASK, 0);
829 return 0;
830
831err_init:
832 outreg(ctrl, GC_CTRL_CLK_ENABLE, 0);
833 return -EINVAL;
834}
835
836static inline int mb862xx_pci_gdc_init(struct mb862xxfb_par *par)
837{
838 switch (par->type) {
839 case BT_CORALP:
840 return coralp_init(par);
841 case BT_CARMINE:
842 return carmine_init(par);
843 default:
844 return -ENODEV;
845 }
846}
847
848#define CHIP_ID(id) \
849 { PCI_DEVICE(PCI_VENDOR_ID_FUJITSU_LIMITED, id) }
850
851static struct pci_device_id mb862xx_pci_tbl[] __devinitdata = {
852 /* MB86295/MB86296 */
853 CHIP_ID(PCI_DEVICE_ID_FUJITSU_CORALP),
854 CHIP_ID(PCI_DEVICE_ID_FUJITSU_CORALPA),
855 /* MB86297 */
856 CHIP_ID(PCI_DEVICE_ID_FUJITSU_CARMINE),
857 { 0, }
858};
859
860MODULE_DEVICE_TABLE(pci, mb862xx_pci_tbl);
861
862static int __devinit mb862xx_pci_probe(struct pci_dev *pdev,
863 const struct pci_device_id *ent)
864{
865 struct mb862xxfb_par *par;
866 struct fb_info *info;
867 struct device *dev = &pdev->dev;
868 int ret;
869
870 ret = pci_enable_device(pdev);
871 if (ret < 0) {
872 dev_err(dev, "Cannot enable PCI device\n");
873 goto out;
874 }
875
876 info = framebuffer_alloc(sizeof(struct mb862xxfb_par), dev);
877 if (!info) {
878 dev_err(dev, "framebuffer alloc failed\n");
879 ret = -ENOMEM;
880 goto dis_dev;
881 }
882
883 par = info->par;
884 par->info = info;
885 par->dev = dev;
886 par->pdev = pdev;
887 par->irq = pdev->irq;
888
889 ret = pci_request_regions(pdev, DRV_NAME);
890 if (ret < 0) {
891 dev_err(dev, "Cannot reserve region(s) for PCI device\n");
892 goto rel_fb;
893 }
894
895 switch (pdev->device) {
896 case PCI_DEVICE_ID_FUJITSU_CORALP:
897 case PCI_DEVICE_ID_FUJITSU_CORALPA:
898 par->fb_base_phys = pci_resource_start(par->pdev, 0);
899 par->mapped_vram = CORALP_MEM_SIZE;
900 par->mmio_base_phys = par->fb_base_phys + MB862XX_MMIO_BASE;
901 par->mmio_len = MB862XX_MMIO_SIZE;
902 par->type = BT_CORALP;
903 break;
904 case PCI_DEVICE_ID_FUJITSU_CARMINE:
905 par->fb_base_phys = pci_resource_start(par->pdev, 2);
906 par->mmio_base_phys = pci_resource_start(par->pdev, 3);
907 par->mmio_len = pci_resource_len(par->pdev, 3);
908 par->mapped_vram = CARMINE_MEM_SIZE;
909 par->type = BT_CARMINE;
910 break;
911 default:
912 /* should never occur */
913 goto rel_reg;
914 }
915
916 par->fb_base = ioremap(par->fb_base_phys, par->mapped_vram);
917 if (par->fb_base == NULL) {
918 dev_err(dev, "Cannot map framebuffer\n");
919 goto rel_reg;
920 }
921
922 par->mmio_base = ioremap(par->mmio_base_phys, par->mmio_len);
923 if (par->mmio_base == NULL) {
924 dev_err(dev, "Cannot map registers\n");
925 ret = -EIO;
926 goto fb_unmap;
927 }
928
929 dev_dbg(dev, "fb phys 0x%llx 0x%lx\n",
930 (unsigned long long)par->fb_base_phys, (ulong)par->mapped_vram);
931 dev_dbg(dev, "mmio phys 0x%llx 0x%lx\n",
932 (unsigned long long)par->mmio_base_phys, (ulong)par->mmio_len);
933
934 if (mb862xx_pci_gdc_init(par))
935 goto io_unmap;
936
937 if (request_irq(par->irq, mb862xx_intr, IRQF_DISABLED | IRQF_SHARED,
938 DRV_NAME, (void *)par)) {
939 dev_err(dev, "Cannot request irq\n");
940 goto io_unmap;
941 }
942
943 mb862xxfb_init_fbinfo(info);
944
945 if (fb_alloc_cmap(&info->cmap, NR_PALETTE, 0) < 0) {
946 dev_err(dev, "Could not allocate cmap for fb_info.\n");
947 ret = -ENOMEM;
948 goto free_irq;
949 }
950
951 if ((info->fbops->fb_set_par)(info))
952 dev_err(dev, "set_var() failed on initial setup?\n");
953
954 ret = register_framebuffer(info);
955 if (ret < 0) {
956 dev_err(dev, "failed to register framebuffer\n");
957 goto rel_cmap;
958 }
959
960 pci_set_drvdata(pdev, info);
961
962 if (device_create_file(dev, &dev_attr_dispregs))
963 dev_err(dev, "Can't create sysfs regdump file\n");
964
965 if (par->type == BT_CARMINE)
966 outreg(ctrl, GC_CTRL_INT_MASK, GC_CARMINE_INT_EN);
967 else
968 outreg(host, GC_IMASK, GC_INT_EN);
969
970 return 0;
971
972rel_cmap:
973 fb_dealloc_cmap(&info->cmap);
974free_irq:
975 free_irq(par->irq, (void *)par);
976io_unmap:
977 iounmap(par->mmio_base);
978fb_unmap:
979 iounmap(par->fb_base);
980rel_reg:
981 pci_release_regions(pdev);
982rel_fb:
983 framebuffer_release(info);
984dis_dev:
985 pci_disable_device(pdev);
986out:
987 return ret;
988}
989
990static void __devexit mb862xx_pci_remove(struct pci_dev *pdev)
991{
992 struct fb_info *fbi = pci_get_drvdata(pdev);
993 struct mb862xxfb_par *par = fbi->par;
994 unsigned long reg;
995
996 dev_dbg(fbi->dev, "%s release\n", fbi->fix.id);
997
998 /* display off */
999 reg = inreg(disp, GC_DCM1);
1000 reg &= ~(GC_DCM01_DEN | GC_DCM01_L0E);
1001 outreg(disp, GC_DCM1, reg);
1002
1003 if (par->type == BT_CARMINE) {
1004 outreg(ctrl, GC_CTRL_INT_MASK, 0);
1005 outreg(ctrl, GC_CTRL_CLK_ENABLE, 0);
1006 } else {
1007 outreg(host, GC_IMASK, 0);
1008 }
1009
1010 device_remove_file(&pdev->dev, &dev_attr_dispregs);
1011
1012 pci_set_drvdata(pdev, NULL);
1013 unregister_framebuffer(fbi);
1014 fb_dealloc_cmap(&fbi->cmap);
1015
1016 free_irq(par->irq, (void *)par);
1017 iounmap(par->mmio_base);
1018 iounmap(par->fb_base);
1019
1020 pci_release_regions(pdev);
1021 framebuffer_release(fbi);
1022 pci_disable_device(pdev);
1023}
1024
1025static struct pci_driver mb862xxfb_pci_driver = {
1026 .name = DRV_NAME,
1027 .id_table = mb862xx_pci_tbl,
1028 .probe = mb862xx_pci_probe,
1029 .remove = __devexit_p(mb862xx_pci_remove),
1030};
1031#endif
1032
1033static int __devinit mb862xxfb_init(void)
1034{
1035 int ret = -ENODEV;
1036
1037#if defined(CONFIG_FB_MB862XX_LIME)
1038 ret = of_register_platform_driver(&of_platform_mb862xxfb_driver);
1039#endif
1040#if defined(CONFIG_FB_MB862XX_PCI_GDC)
1041 ret = pci_register_driver(&mb862xxfb_pci_driver);
1042#endif
1043 return ret;
1044}
1045
1046static void __exit mb862xxfb_exit(void)
1047{
1048#if defined(CONFIG_FB_MB862XX_LIME)
1049 of_unregister_platform_driver(&of_platform_mb862xxfb_driver);
1050#endif
1051#if defined(CONFIG_FB_MB862XX_PCI_GDC)
1052 pci_unregister_driver(&mb862xxfb_pci_driver);
1053#endif
1054}
1055
1056module_init(mb862xxfb_init);
1057module_exit(mb862xxfb_exit);
1058
1059MODULE_DESCRIPTION("Fujitsu MB862xx Framebuffer driver");
1060MODULE_AUTHOR("Anatolij Gustschin <agust@denx.de>");
1061MODULE_LICENSE("GPL v2");
diff --git a/drivers/video/mb862xx/mb862xxfb.h b/drivers/video/mb862xx/mb862xxfb.h
new file mode 100644
index 000000000000..c4c8f4dd2217
--- /dev/null
+++ b/drivers/video/mb862xx/mb862xxfb.h
@@ -0,0 +1,83 @@
1#ifndef __MB862XX_H__
2#define __MB862XX_H__
3
4#define PCI_VENDOR_ID_FUJITSU_LIMITED 0x10cf
5#define PCI_DEVICE_ID_FUJITSU_CORALP 0x2019
6#define PCI_DEVICE_ID_FUJITSU_CORALPA 0x201e
7#define PCI_DEVICE_ID_FUJITSU_CARMINE 0x202b
8
9#define GC_MMR_CORALP_EVB_VAL 0x11d7fa13
10
11enum gdctype {
12 BT_NONE,
13 BT_LIME,
14 BT_MINT,
15 BT_CORAL,
16 BT_CORALP,
17 BT_CARMINE,
18};
19
20struct mb862xx_gc_mode {
21 struct fb_videomode def_mode; /* mode of connected display */
22 unsigned int def_bpp; /* default depth */
23 unsigned long max_vram; /* connected SDRAM size */
24 unsigned long ccf; /* gdc clk */
25 unsigned long mmr; /* memory mode for SDRAM */
26};
27
28/* private data */
29struct mb862xxfb_par {
30 struct fb_info *info; /* fb info head */
31 struct device *dev;
32 struct pci_dev *pdev;
33 struct resource *res; /* framebuffer/mmio resource */
34
35 resource_size_t fb_base_phys; /* fb base, 36-bit PPC440EPx */
36 resource_size_t mmio_base_phys; /* io base addr */
37 void __iomem *fb_base; /* remapped framebuffer */
38 void __iomem *mmio_base; /* remapped registers */
39 size_t mapped_vram; /* length of remapped vram */
40 size_t mmio_len; /* length of register region */
41
42 void __iomem *host; /* relocatable reg. bases */
43 void __iomem *i2c;
44 void __iomem *disp;
45 void __iomem *disp1;
46 void __iomem *cap;
47 void __iomem *cap1;
48 void __iomem *draw;
49 void __iomem *geo;
50 void __iomem *pio;
51 void __iomem *ctrl;
52 void __iomem *dram_ctrl;
53 void __iomem *wrback;
54
55 unsigned int irq;
56 unsigned int type; /* GDC type */
57 unsigned int refclk; /* disp. reference clock */
58 struct mb862xx_gc_mode *gc_mode; /* GDC mode init data */
59 int pre_init; /* don't init display if 1 */
60
61 u32 pseudo_palette[16];
62};
63
64#if defined(CONFIG_FB_MB862XX_LIME) && defined(CONFIG_FB_MB862XX_PCI_GDC)
65#error "Select Lime GDC or CoralP/Carmine support, but not both together"
66#endif
67#if defined(CONFIG_FB_MB862XX_LIME)
68#define gdc_read __raw_readl
69#define gdc_write __raw_writel
70#else
71#define gdc_read readl
72#define gdc_write writel
73#endif
74
75#define inreg(type, off) \
76 gdc_read((par->type + (off)))
77
78#define outreg(type, off, val) \
79 gdc_write((val), (par->type + (off)))
80
81#define pack(a, b) (((a) << 16) | (b))
82
83#endif
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/pxafb.c b/drivers/video/pxafb.c
index 97204497d9f7..cc59c52e1103 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -804,6 +804,9 @@ static int pxafb_smart_thread(void *arg)
804 804
805static int pxafb_smart_init(struct pxafb_info *fbi) 805static int pxafb_smart_init(struct pxafb_info *fbi)
806{ 806{
807 if (!(fbi->lccr0 | LCCR0_LCDT))
808 return 0;
809
807 fbi->smart_thread = kthread_run(pxafb_smart_thread, fbi, 810 fbi->smart_thread = kthread_run(pxafb_smart_thread, fbi,
808 "lcd_refresh"); 811 "lcd_refresh");
809 if (IS_ERR(fbi->smart_thread)) { 812 if (IS_ERR(fbi->smart_thread)) {
@@ -1372,7 +1375,7 @@ static void pxafb_decode_mach_info(struct pxafb_info *fbi,
1372 fbi->cmap_inverse = inf->cmap_inverse; 1375 fbi->cmap_inverse = inf->cmap_inverse;
1373 fbi->cmap_static = inf->cmap_static; 1376 fbi->cmap_static = inf->cmap_static;
1374 1377
1375 switch (lcd_conn & 0xf) { 1378 switch (lcd_conn & LCD_TYPE_MASK) {
1376 case LCD_TYPE_MONO_STN: 1379 case LCD_TYPE_MONO_STN:
1377 fbi->lccr0 = LCCR0_CMS; 1380 fbi->lccr0 = LCCR0_CMS;
1378 break; 1381 break;
diff --git a/drivers/video/tmiofb.c b/drivers/video/tmiofb.c
index 2a380011e9ba..7baf2dd12d50 100644
--- a/drivers/video/tmiofb.c
+++ b/drivers/video/tmiofb.c
@@ -222,6 +222,9 @@ static irqreturn_t tmiofb_irq(int irq, void *__info)
222 unsigned int bbisc = tmio_ioread16(par->lcr + LCR_BBISC); 222 unsigned int bbisc = tmio_ioread16(par->lcr + LCR_BBISC);
223 223
224 224
225 tmio_iowrite16(bbisc, par->lcr + LCR_BBISC);
226
227#ifdef CONFIG_FB_TMIO_ACCELL
225 /* 228 /*
226 * We were in polling mode and now we got correct irq. 229 * We were in polling mode and now we got correct irq.
227 * Switch back to IRQ-based sync of command FIFO 230 * Switch back to IRQ-based sync of command FIFO
@@ -231,9 +234,6 @@ static irqreturn_t tmiofb_irq(int irq, void *__info)
231 par->use_polling = false; 234 par->use_polling = false;
232 } 235 }
233 236
234 tmio_iowrite16(bbisc, par->lcr + LCR_BBISC);
235
236#ifdef CONFIG_FB_TMIO_ACCELL
237 if (bbisc & 1) 237 if (bbisc & 1)
238 wake_up(&par->wait_acc); 238 wake_up(&par->wait_acc);
239#endif 239#endif
@@ -938,7 +938,9 @@ static void tmiofb_dump_regs(struct platform_device *dev)
938static int tmiofb_suspend(struct platform_device *dev, pm_message_t state) 938static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
939{ 939{
940 struct fb_info *info = platform_get_drvdata(dev); 940 struct fb_info *info = platform_get_drvdata(dev);
941#ifdef CONFIG_FB_TMIO_ACCELL
941 struct tmiofb_par *par = info->par; 942 struct tmiofb_par *par = info->par;
943#endif
942 struct mfd_cell *cell = dev->dev.platform_data; 944 struct mfd_cell *cell = dev->dev.platform_data;
943 int retval = 0; 945 int retval = 0;
944 946
@@ -950,12 +952,14 @@ static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
950 info->fbops->fb_sync(info); 952 info->fbops->fb_sync(info);
951 953
952 954
955#ifdef CONFIG_FB_TMIO_ACCELL
953 /* 956 /*
954 * The fb should be usable even if interrupts are disabled (and they are 957 * The fb should be usable even if interrupts are disabled (and they are
955 * during suspend/resume). Switch temporary to forced polling. 958 * during suspend/resume). Switch temporary to forced polling.
956 */ 959 */
957 printk(KERN_INFO "tmiofb: switching to polling\n"); 960 printk(KERN_INFO "tmiofb: switching to polling\n");
958 par->use_polling = true; 961 par->use_polling = true;
962#endif
959 tmiofb_hw_stop(dev); 963 tmiofb_hw_stop(dev);
960 964
961 if (cell->suspend) 965 if (cell->suspend)
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c
index 0132eae06f55..73ac754ad801 100644
--- a/drivers/video/via/viafbdev.c
+++ b/drivers/video/via/viafbdev.c
@@ -2036,30 +2036,30 @@ static int viafb_vt1636_proc_write(struct file *file,
2036 return count; 2036 return count;
2037} 2037}
2038 2038
2039static void viafb_init_proc(struct proc_dir_entry *viafb_entry) 2039static void viafb_init_proc(struct proc_dir_entry **viafb_entry)
2040{ 2040{
2041 struct proc_dir_entry *entry; 2041 struct proc_dir_entry *entry;
2042 viafb_entry = proc_mkdir("viafb", NULL); 2042 *viafb_entry = proc_mkdir("viafb", NULL);
2043 if (viafb_entry) { 2043 if (viafb_entry) {
2044 entry = create_proc_entry("dvp0", 0, viafb_entry); 2044 entry = create_proc_entry("dvp0", 0, *viafb_entry);
2045 if (entry) { 2045 if (entry) {
2046 entry->owner = THIS_MODULE; 2046 entry->owner = THIS_MODULE;
2047 entry->read_proc = viafb_dvp0_proc_read; 2047 entry->read_proc = viafb_dvp0_proc_read;
2048 entry->write_proc = viafb_dvp0_proc_write; 2048 entry->write_proc = viafb_dvp0_proc_write;
2049 } 2049 }
2050 entry = create_proc_entry("dvp1", 0, viafb_entry); 2050 entry = create_proc_entry("dvp1", 0, *viafb_entry);
2051 if (entry) { 2051 if (entry) {
2052 entry->owner = THIS_MODULE; 2052 entry->owner = THIS_MODULE;
2053 entry->read_proc = viafb_dvp1_proc_read; 2053 entry->read_proc = viafb_dvp1_proc_read;
2054 entry->write_proc = viafb_dvp1_proc_write; 2054 entry->write_proc = viafb_dvp1_proc_write;
2055 } 2055 }
2056 entry = create_proc_entry("dfph", 0, viafb_entry); 2056 entry = create_proc_entry("dfph", 0, *viafb_entry);
2057 if (entry) { 2057 if (entry) {
2058 entry->owner = THIS_MODULE; 2058 entry->owner = THIS_MODULE;
2059 entry->read_proc = viafb_dfph_proc_read; 2059 entry->read_proc = viafb_dfph_proc_read;
2060 entry->write_proc = viafb_dfph_proc_write; 2060 entry->write_proc = viafb_dfph_proc_write;
2061 } 2061 }
2062 entry = create_proc_entry("dfpl", 0, viafb_entry); 2062 entry = create_proc_entry("dfpl", 0, *viafb_entry);
2063 if (entry) { 2063 if (entry) {
2064 entry->owner = THIS_MODULE; 2064 entry->owner = THIS_MODULE;
2065 entry->read_proc = viafb_dfpl_proc_read; 2065 entry->read_proc = viafb_dfpl_proc_read;
@@ -2068,7 +2068,7 @@ static void viafb_init_proc(struct proc_dir_entry *viafb_entry)
2068 if (VT1636_LVDS == viaparinfo->chip_info->lvds_chip_info. 2068 if (VT1636_LVDS == viaparinfo->chip_info->lvds_chip_info.
2069 lvds_chip_name || VT1636_LVDS == 2069 lvds_chip_name || VT1636_LVDS ==
2070 viaparinfo->chip_info->lvds_chip_info2.lvds_chip_name) { 2070 viaparinfo->chip_info->lvds_chip_info2.lvds_chip_name) {
2071 entry = create_proc_entry("vt1636", 0, viafb_entry); 2071 entry = create_proc_entry("vt1636", 0, *viafb_entry);
2072 if (entry) { 2072 if (entry) {
2073 entry->owner = THIS_MODULE; 2073 entry->owner = THIS_MODULE;
2074 entry->read_proc = viafb_vt1636_proc_read; 2074 entry->read_proc = viafb_vt1636_proc_read;
@@ -2087,6 +2087,7 @@ static void viafb_remove_proc(struct proc_dir_entry *viafb_entry)
2087 remove_proc_entry("dfpl", viafb_entry); 2087 remove_proc_entry("dfpl", viafb_entry);
2088 remove_proc_entry("vt1636", viafb_entry); 2088 remove_proc_entry("vt1636", viafb_entry);
2089 remove_proc_entry("vt1625", viafb_entry); 2089 remove_proc_entry("vt1625", viafb_entry);
2090 remove_proc_entry("viafb", NULL);
2090} 2091}
2091 2092
2092static int __devinit via_pci_probe(void) 2093static int __devinit via_pci_probe(void)
@@ -2348,7 +2349,7 @@ static int __devinit via_pci_probe(void)
2348 viafbinfo->node, viafbinfo->fix.id, default_var.xres, 2349 viafbinfo->node, viafbinfo->fix.id, default_var.xres,
2349 default_var.yres, default_var.bits_per_pixel); 2350 default_var.yres, default_var.bits_per_pixel);
2350 2351
2351 viafb_init_proc(viaparinfo->proc_entry); 2352 viafb_init_proc(&viaparinfo->proc_entry);
2352 viafb_init_dac(IGA2); 2353 viafb_init_dac(IGA2);
2353 return 0; 2354 return 0;
2354} 2355}
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 c4493091c655..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
@@ -52,5 +52,12 @@ config W1_MASTER_GPIO
52 This support is also available as a module. If so, the module 52 This support is also available as a module. If so, the module
53 will be called w1-gpio.ko. 53 will be called w1-gpio.ko.
54 54
55config HDQ_MASTER_OMAP
56 tristate "OMAP HDQ driver"
57 depends on ARCH_OMAP2430 || ARCH_OMAP34XX
58 help
59 Say Y here if you want support for the 1-wire or HDQ Interface
60 on an OMAP processor.
61
55endmenu 62endmenu
56 63
diff --git a/drivers/w1/masters/Makefile b/drivers/w1/masters/Makefile
index 1420b5bbdda8..bc4714a75f3a 100644
--- a/drivers/w1/masters/Makefile
+++ b/drivers/w1/masters/Makefile
@@ -7,3 +7,4 @@ obj-$(CONFIG_W1_MASTER_DS2490) += ds2490.o
7obj-$(CONFIG_W1_MASTER_DS2482) += ds2482.o 7obj-$(CONFIG_W1_MASTER_DS2482) += ds2482.o
8obj-$(CONFIG_W1_MASTER_DS1WM) += ds1wm.o 8obj-$(CONFIG_W1_MASTER_DS1WM) += ds1wm.o
9obj-$(CONFIG_W1_MASTER_GPIO) += w1-gpio.o 9obj-$(CONFIG_W1_MASTER_GPIO) += w1-gpio.o
10obj-$(CONFIG_HDQ_MASTER_OMAP) += omap_hdq.o
diff --git a/drivers/w1/masters/omap_hdq.c b/drivers/w1/masters/omap_hdq.c
new file mode 100644
index 000000000000..c973889110c8
--- /dev/null
+++ b/drivers/w1/masters/omap_hdq.c
@@ -0,0 +1,725 @@
1/*
2 * drivers/w1/masters/omap_hdq.c
3 *
4 * Copyright (C) 2007 Texas Instruments, Inc.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 *
10 */
11#include <linux/kernel.h>
12#include <linux/module.h>
13#include <linux/platform_device.h>
14#include <linux/interrupt.h>
15#include <linux/err.h>
16#include <linux/clk.h>
17#include <linux/io.h>
18
19#include <asm/irq.h>
20#include <mach/hardware.h>
21
22#include "../w1.h"
23#include "../w1_int.h"
24
25#define MOD_NAME "OMAP_HDQ:"
26
27#define OMAP_HDQ_REVISION 0x00
28#define OMAP_HDQ_TX_DATA 0x04
29#define OMAP_HDQ_RX_DATA 0x08
30#define OMAP_HDQ_CTRL_STATUS 0x0c
31#define OMAP_HDQ_CTRL_STATUS_INTERRUPTMASK (1<<6)
32#define OMAP_HDQ_CTRL_STATUS_CLOCKENABLE (1<<5)
33#define OMAP_HDQ_CTRL_STATUS_GO (1<<4)
34#define OMAP_HDQ_CTRL_STATUS_INITIALIZATION (1<<2)
35#define OMAP_HDQ_CTRL_STATUS_DIR (1<<1)
36#define OMAP_HDQ_CTRL_STATUS_MODE (1<<0)
37#define OMAP_HDQ_INT_STATUS 0x10
38#define OMAP_HDQ_INT_STATUS_TXCOMPLETE (1<<2)
39#define OMAP_HDQ_INT_STATUS_RXCOMPLETE (1<<1)
40#define OMAP_HDQ_INT_STATUS_TIMEOUT (1<<0)
41#define OMAP_HDQ_SYSCONFIG 0x14
42#define OMAP_HDQ_SYSCONFIG_SOFTRESET (1<<1)
43#define OMAP_HDQ_SYSCONFIG_AUTOIDLE (1<<0)
44#define OMAP_HDQ_SYSSTATUS 0x18
45#define OMAP_HDQ_SYSSTATUS_RESETDONE (1<<0)
46
47#define OMAP_HDQ_FLAG_CLEAR 0
48#define OMAP_HDQ_FLAG_SET 1
49#define OMAP_HDQ_TIMEOUT (HZ/5)
50
51#define OMAP_HDQ_MAX_USER 4
52
53static DECLARE_WAIT_QUEUE_HEAD(hdq_wait_queue);
54static int w1_id;
55
56struct hdq_data {
57 struct device *dev;
58 void __iomem *hdq_base;
59 /* lock status update */
60 struct mutex hdq_mutex;
61 int hdq_usecount;
62 struct clk *hdq_ick;
63 struct clk *hdq_fck;
64 u8 hdq_irqstatus;
65 /* device lock */
66 spinlock_t hdq_spinlock;
67 /*
68 * Used to control the call to omap_hdq_get and omap_hdq_put.
69 * HDQ Protocol: Write the CMD|REG_address first, followed by
70 * the data wrire or read.
71 */
72 int init_trans;
73};
74
75static int __init omap_hdq_probe(struct platform_device *pdev);
76static int omap_hdq_remove(struct platform_device *pdev);
77
78static struct platform_driver omap_hdq_driver = {
79 .probe = omap_hdq_probe,
80 .remove = omap_hdq_remove,
81 .driver = {
82 .name = "omap_hdq",
83 },
84};
85
86static u8 omap_w1_read_byte(void *_hdq);
87static void omap_w1_write_byte(void *_hdq, u8 byte);
88static u8 omap_w1_reset_bus(void *_hdq);
89static void omap_w1_search_bus(void *_hdq, struct w1_master *master_dev,
90 u8 search_type, w1_slave_found_callback slave_found);
91
92
93static struct w1_bus_master omap_w1_master = {
94 .read_byte = omap_w1_read_byte,
95 .write_byte = omap_w1_write_byte,
96 .reset_bus = omap_w1_reset_bus,
97 .search = omap_w1_search_bus,
98};
99
100/* HDQ register I/O routines */
101static inline u8 hdq_reg_in(struct hdq_data *hdq_data, u32 offset)
102{
103 return __raw_readb(hdq_data->hdq_base + offset);
104}
105
106static inline void hdq_reg_out(struct hdq_data *hdq_data, u32 offset, u8 val)
107{
108 __raw_writeb(val, hdq_data->hdq_base + offset);
109}
110
111static inline u8 hdq_reg_merge(struct hdq_data *hdq_data, u32 offset,
112 u8 val, u8 mask)
113{
114 u8 new_val = (__raw_readb(hdq_data->hdq_base + offset) & ~mask)
115 | (val & mask);
116 __raw_writeb(new_val, hdq_data->hdq_base + offset);
117
118 return new_val;
119}
120
121/*
122 * Wait for one or more bits in flag change.
123 * HDQ_FLAG_SET: wait until any bit in the flag is set.
124 * HDQ_FLAG_CLEAR: wait until all bits in the flag are cleared.
125 * return 0 on success and -ETIMEDOUT in the case of timeout.
126 */
127static int hdq_wait_for_flag(struct hdq_data *hdq_data, u32 offset,
128 u8 flag, u8 flag_set, u8 *status)
129{
130 int ret = 0;
131 unsigned long timeout = jiffies + OMAP_HDQ_TIMEOUT;
132
133 if (flag_set == OMAP_HDQ_FLAG_CLEAR) {
134 /* wait for the flag clear */
135 while (((*status = hdq_reg_in(hdq_data, offset)) & flag)
136 && time_before(jiffies, timeout)) {
137 schedule_timeout_uninterruptible(1);
138 }
139 if (*status & flag)
140 ret = -ETIMEDOUT;
141 } else if (flag_set == OMAP_HDQ_FLAG_SET) {
142 /* wait for the flag set */
143 while (!((*status = hdq_reg_in(hdq_data, offset)) & flag)
144 && time_before(jiffies, timeout)) {
145 schedule_timeout_uninterruptible(1);
146 }
147 if (!(*status & flag))
148 ret = -ETIMEDOUT;
149 } else
150 return -EINVAL;
151
152 return ret;
153}
154
155/* write out a byte and fill *status with HDQ_INT_STATUS */
156static int hdq_write_byte(struct hdq_data *hdq_data, u8 val, u8 *status)
157{
158 int ret;
159 u8 tmp_status;
160 unsigned long irqflags;
161
162 *status = 0;
163
164 spin_lock_irqsave(&hdq_data->hdq_spinlock, irqflags);
165 /* clear interrupt flags via a dummy read */
166 hdq_reg_in(hdq_data, OMAP_HDQ_INT_STATUS);
167 /* ISR loads it with new INT_STATUS */
168 hdq_data->hdq_irqstatus = 0;
169 spin_unlock_irqrestore(&hdq_data->hdq_spinlock, irqflags);
170
171 hdq_reg_out(hdq_data, OMAP_HDQ_TX_DATA, val);
172
173 /* set the GO bit */
174 hdq_reg_merge(hdq_data, OMAP_HDQ_CTRL_STATUS, OMAP_HDQ_CTRL_STATUS_GO,
175 OMAP_HDQ_CTRL_STATUS_DIR | OMAP_HDQ_CTRL_STATUS_GO);
176 /* wait for the TXCOMPLETE bit */
177 ret = wait_event_timeout(hdq_wait_queue,
178 hdq_data->hdq_irqstatus, OMAP_HDQ_TIMEOUT);
179 if (ret == 0) {
180 dev_dbg(hdq_data->dev, "TX wait elapsed\n");
181 goto out;
182 }
183
184 *status = hdq_data->hdq_irqstatus;
185 /* check irqstatus */
186 if (!(*status & OMAP_HDQ_INT_STATUS_TXCOMPLETE)) {
187 dev_dbg(hdq_data->dev, "timeout waiting for"
188 "TXCOMPLETE/RXCOMPLETE, %x", *status);
189 ret = -ETIMEDOUT;
190 goto out;
191 }
192
193 /* wait for the GO bit return to zero */
194 ret = hdq_wait_for_flag(hdq_data, OMAP_HDQ_CTRL_STATUS,
195 OMAP_HDQ_CTRL_STATUS_GO,
196 OMAP_HDQ_FLAG_CLEAR, &tmp_status);
197 if (ret) {
198 dev_dbg(hdq_data->dev, "timeout waiting GO bit"
199 "return to zero, %x", tmp_status);
200 }
201
202out:
203 return ret;
204}
205
206/* HDQ Interrupt service routine */
207static irqreturn_t hdq_isr(int irq, void *_hdq)
208{
209 struct hdq_data *hdq_data = _hdq;
210 unsigned long irqflags;
211
212 spin_lock_irqsave(&hdq_data->hdq_spinlock, irqflags);
213 hdq_data->hdq_irqstatus = hdq_reg_in(hdq_data, OMAP_HDQ_INT_STATUS);
214 spin_unlock_irqrestore(&hdq_data->hdq_spinlock, irqflags);
215 dev_dbg(hdq_data->dev, "hdq_isr: %x", hdq_data->hdq_irqstatus);
216
217 if (hdq_data->hdq_irqstatus &
218 (OMAP_HDQ_INT_STATUS_TXCOMPLETE | OMAP_HDQ_INT_STATUS_RXCOMPLETE
219 | OMAP_HDQ_INT_STATUS_TIMEOUT)) {
220 /* wake up sleeping process */
221 wake_up(&hdq_wait_queue);
222 }
223
224 return IRQ_HANDLED;
225}
226
227/* HDQ Mode: always return success */
228static u8 omap_w1_reset_bus(void *_hdq)
229{
230 return 0;
231}
232
233/* W1 search callback function */
234static void omap_w1_search_bus(void *_hdq, struct w1_master *master_dev,
235 u8 search_type, w1_slave_found_callback slave_found)
236{
237 u64 module_id, rn_le, cs, id;
238
239 if (w1_id)
240 module_id = w1_id;
241 else
242 module_id = 0x1;
243
244 rn_le = cpu_to_le64(module_id);
245 /*
246 * HDQ might not obey truly the 1-wire spec.
247 * So calculate CRC based on module parameter.
248 */
249 cs = w1_calc_crc8((u8 *)&rn_le, 7);
250 id = (cs << 56) | module_id;
251
252 slave_found(master_dev, id);
253}
254
255static int _omap_hdq_reset(struct hdq_data *hdq_data)
256{
257 int ret;
258 u8 tmp_status;
259
260 hdq_reg_out(hdq_data, OMAP_HDQ_SYSCONFIG, OMAP_HDQ_SYSCONFIG_SOFTRESET);
261 /*
262 * Select HDQ mode & enable clocks.
263 * It is observed that INT flags can't be cleared via a read and GO/INIT
264 * won't return to zero if interrupt is disabled. So we always enable
265 * interrupt.
266 */
267 hdq_reg_out(hdq_data, OMAP_HDQ_CTRL_STATUS,
268 OMAP_HDQ_CTRL_STATUS_CLOCKENABLE |
269 OMAP_HDQ_CTRL_STATUS_INTERRUPTMASK);
270
271 /* wait for reset to complete */
272 ret = hdq_wait_for_flag(hdq_data, OMAP_HDQ_SYSSTATUS,
273 OMAP_HDQ_SYSSTATUS_RESETDONE, OMAP_HDQ_FLAG_SET, &tmp_status);
274 if (ret)
275 dev_dbg(hdq_data->dev, "timeout waiting HDQ reset, %x",
276 tmp_status);
277 else {
278 hdq_reg_out(hdq_data, OMAP_HDQ_CTRL_STATUS,
279 OMAP_HDQ_CTRL_STATUS_CLOCKENABLE |
280 OMAP_HDQ_CTRL_STATUS_INTERRUPTMASK);
281 hdq_reg_out(hdq_data, OMAP_HDQ_SYSCONFIG,
282 OMAP_HDQ_SYSCONFIG_AUTOIDLE);
283 }
284
285 return ret;
286}
287
288/* Issue break pulse to the device */
289static int omap_hdq_break(struct hdq_data *hdq_data)
290{
291 int ret = 0;
292 u8 tmp_status;
293 unsigned long irqflags;
294
295 ret = mutex_lock_interruptible(&hdq_data->hdq_mutex);
296 if (ret < 0) {
297 dev_dbg(hdq_data->dev, "Could not acquire mutex\n");
298 ret = -EINTR;
299 goto rtn;
300 }
301
302 spin_lock_irqsave(&hdq_data->hdq_spinlock, irqflags);
303 /* clear interrupt flags via a dummy read */
304 hdq_reg_in(hdq_data, OMAP_HDQ_INT_STATUS);
305 /* ISR loads it with new INT_STATUS */
306 hdq_data->hdq_irqstatus = 0;
307 spin_unlock_irqrestore(&hdq_data->hdq_spinlock, irqflags);
308
309 /* set the INIT and GO bit */
310 hdq_reg_merge(hdq_data, OMAP_HDQ_CTRL_STATUS,
311 OMAP_HDQ_CTRL_STATUS_INITIALIZATION | OMAP_HDQ_CTRL_STATUS_GO,
312 OMAP_HDQ_CTRL_STATUS_DIR | OMAP_HDQ_CTRL_STATUS_INITIALIZATION |
313 OMAP_HDQ_CTRL_STATUS_GO);
314
315 /* wait for the TIMEOUT bit */
316 ret = wait_event_timeout(hdq_wait_queue,
317 hdq_data->hdq_irqstatus, OMAP_HDQ_TIMEOUT);
318 if (ret == 0) {
319 dev_dbg(hdq_data->dev, "break wait elapsed\n");
320 ret = -EINTR;
321 goto out;
322 }
323
324 tmp_status = hdq_data->hdq_irqstatus;
325 /* check irqstatus */
326 if (!(tmp_status & OMAP_HDQ_INT_STATUS_TIMEOUT)) {
327 dev_dbg(hdq_data->dev, "timeout waiting for TIMEOUT, %x",
328 tmp_status);
329 ret = -ETIMEDOUT;
330 goto out;
331 }
332 /*
333 * wait for both INIT and GO bits rerurn to zero.
334 * zero wait time expected for interrupt mode.
335 */
336 ret = hdq_wait_for_flag(hdq_data, OMAP_HDQ_CTRL_STATUS,
337 OMAP_HDQ_CTRL_STATUS_INITIALIZATION |
338 OMAP_HDQ_CTRL_STATUS_GO, OMAP_HDQ_FLAG_CLEAR,
339 &tmp_status);
340 if (ret)
341 dev_dbg(hdq_data->dev, "timeout waiting INIT&GO bits"
342 "return to zero, %x", tmp_status);
343
344out:
345 mutex_unlock(&hdq_data->hdq_mutex);
346rtn:
347 return ret;
348}
349
350static int hdq_read_byte(struct hdq_data *hdq_data, u8 *val)
351{
352 int ret = 0;
353 u8 status;
354 unsigned long timeout = jiffies + OMAP_HDQ_TIMEOUT;
355
356 ret = mutex_lock_interruptible(&hdq_data->hdq_mutex);
357 if (ret < 0) {
358 ret = -EINTR;
359 goto rtn;
360 }
361
362 if (!hdq_data->hdq_usecount) {
363 ret = -EINVAL;
364 goto out;
365 }
366
367 if (!(hdq_data->hdq_irqstatus & OMAP_HDQ_INT_STATUS_RXCOMPLETE)) {
368 hdq_reg_merge(hdq_data, OMAP_HDQ_CTRL_STATUS,
369 OMAP_HDQ_CTRL_STATUS_DIR | OMAP_HDQ_CTRL_STATUS_GO,
370 OMAP_HDQ_CTRL_STATUS_DIR | OMAP_HDQ_CTRL_STATUS_GO);
371 /*
372 * The RX comes immediately after TX. It
373 * triggers another interrupt before we
374 * sleep. So we have to wait for RXCOMPLETE bit.
375 */
376 while (!(hdq_data->hdq_irqstatus
377 & OMAP_HDQ_INT_STATUS_RXCOMPLETE)
378 && time_before(jiffies, timeout)) {
379 schedule_timeout_uninterruptible(1);
380 }
381 hdq_reg_merge(hdq_data, OMAP_HDQ_CTRL_STATUS, 0,
382 OMAP_HDQ_CTRL_STATUS_DIR);
383 status = hdq_data->hdq_irqstatus;
384 /* check irqstatus */
385 if (!(status & OMAP_HDQ_INT_STATUS_RXCOMPLETE)) {
386 dev_dbg(hdq_data->dev, "timeout waiting for"
387 "RXCOMPLETE, %x", status);
388 ret = -ETIMEDOUT;
389 goto out;
390 }
391 }
392 /* the data is ready. Read it in! */
393 *val = hdq_reg_in(hdq_data, OMAP_HDQ_RX_DATA);
394out:
395 mutex_unlock(&hdq_data->hdq_mutex);
396rtn:
397 return 0;
398
399}
400
401/* Enable clocks and set the controller to HDQ mode */
402static int omap_hdq_get(struct hdq_data *hdq_data)
403{
404 int ret = 0;
405
406 ret = mutex_lock_interruptible(&hdq_data->hdq_mutex);
407 if (ret < 0) {
408 ret = -EINTR;
409 goto rtn;
410 }
411
412 if (OMAP_HDQ_MAX_USER == hdq_data->hdq_usecount) {
413 dev_dbg(hdq_data->dev, "attempt to exceed the max use count");
414 ret = -EINVAL;
415 goto out;
416 } else {
417 hdq_data->hdq_usecount++;
418 try_module_get(THIS_MODULE);
419 if (1 == hdq_data->hdq_usecount) {
420 if (clk_enable(hdq_data->hdq_ick)) {
421 dev_dbg(hdq_data->dev, "Can not enable ick\n");
422 ret = -ENODEV;
423 goto clk_err;
424 }
425 if (clk_enable(hdq_data->hdq_fck)) {
426 dev_dbg(hdq_data->dev, "Can not enable fck\n");
427 clk_disable(hdq_data->hdq_ick);
428 ret = -ENODEV;
429 goto clk_err;
430 }
431
432 /* make sure HDQ is out of reset */
433 if (!(hdq_reg_in(hdq_data, OMAP_HDQ_SYSSTATUS) &
434 OMAP_HDQ_SYSSTATUS_RESETDONE)) {
435 ret = _omap_hdq_reset(hdq_data);
436 if (ret)
437 /* back up the count */
438 hdq_data->hdq_usecount--;
439 } else {
440 /* select HDQ mode & enable clocks */
441 hdq_reg_out(hdq_data, OMAP_HDQ_CTRL_STATUS,
442 OMAP_HDQ_CTRL_STATUS_CLOCKENABLE |
443 OMAP_HDQ_CTRL_STATUS_INTERRUPTMASK);
444 hdq_reg_out(hdq_data, OMAP_HDQ_SYSCONFIG,
445 OMAP_HDQ_SYSCONFIG_AUTOIDLE);
446 hdq_reg_in(hdq_data, OMAP_HDQ_INT_STATUS);
447 }
448 }
449 }
450
451clk_err:
452 clk_put(hdq_data->hdq_ick);
453 clk_put(hdq_data->hdq_fck);
454out:
455 mutex_unlock(&hdq_data->hdq_mutex);
456rtn:
457 return ret;
458}
459
460/* Disable clocks to the module */
461static int omap_hdq_put(struct hdq_data *hdq_data)
462{
463 int ret = 0;
464
465 ret = mutex_lock_interruptible(&hdq_data->hdq_mutex);
466 if (ret < 0)
467 return -EINTR;
468
469 if (0 == hdq_data->hdq_usecount) {
470 dev_dbg(hdq_data->dev, "attempt to decrement use count"
471 "when it is zero");
472 ret = -EINVAL;
473 } else {
474 hdq_data->hdq_usecount--;
475 module_put(THIS_MODULE);
476 if (0 == hdq_data->hdq_usecount) {
477 clk_disable(hdq_data->hdq_ick);
478 clk_disable(hdq_data->hdq_fck);
479 }
480 }
481 mutex_unlock(&hdq_data->hdq_mutex);
482
483 return ret;
484}
485
486/* Read a byte of data from the device */
487static u8 omap_w1_read_byte(void *_hdq)
488{
489 struct hdq_data *hdq_data = _hdq;
490 u8 val = 0;
491 int ret;
492
493 ret = hdq_read_byte(hdq_data, &val);
494 if (ret) {
495 ret = mutex_lock_interruptible(&hdq_data->hdq_mutex);
496 if (ret < 0) {
497 dev_dbg(hdq_data->dev, "Could not acquire mutex\n");
498 return -EINTR;
499 }
500 hdq_data->init_trans = 0;
501 mutex_unlock(&hdq_data->hdq_mutex);
502 omap_hdq_put(hdq_data);
503 return -1;
504 }
505
506 /* Write followed by a read, release the module */
507 if (hdq_data->init_trans) {
508 ret = mutex_lock_interruptible(&hdq_data->hdq_mutex);
509 if (ret < 0) {
510 dev_dbg(hdq_data->dev, "Could not acquire mutex\n");
511 return -EINTR;
512 }
513 hdq_data->init_trans = 0;
514 mutex_unlock(&hdq_data->hdq_mutex);
515 omap_hdq_put(hdq_data);
516 }
517
518 return val;
519}
520
521/* Write a byte of data to the device */
522static void omap_w1_write_byte(void *_hdq, u8 byte)
523{
524 struct hdq_data *hdq_data = _hdq;
525 int ret;
526 u8 status;
527
528 /* First write to initialize the transfer */
529 if (hdq_data->init_trans == 0)
530 omap_hdq_get(hdq_data);
531
532 ret = mutex_lock_interruptible(&hdq_data->hdq_mutex);
533 if (ret < 0) {
534 dev_dbg(hdq_data->dev, "Could not acquire mutex\n");
535 return;
536 }
537 hdq_data->init_trans++;
538 mutex_unlock(&hdq_data->hdq_mutex);
539
540 ret = hdq_write_byte(hdq_data, byte, &status);
541 if (ret == 0) {
542 dev_dbg(hdq_data->dev, "TX failure:Ctrl status %x\n", status);
543 return;
544 }
545
546 /* Second write, data transfered. Release the module */
547 if (hdq_data->init_trans > 1) {
548 omap_hdq_put(hdq_data);
549 ret = mutex_lock_interruptible(&hdq_data->hdq_mutex);
550 if (ret < 0) {
551 dev_dbg(hdq_data->dev, "Could not acquire mutex\n");
552 return;
553 }
554 hdq_data->init_trans = 0;
555 mutex_unlock(&hdq_data->hdq_mutex);
556 }
557
558 return;
559}
560
561static int __init omap_hdq_probe(struct platform_device *pdev)
562{
563 struct hdq_data *hdq_data;
564 struct resource *res;
565 int ret, irq;
566 u8 rev;
567
568 hdq_data = kmalloc(sizeof(*hdq_data), GFP_KERNEL);
569 if (!hdq_data) {
570 dev_dbg(&pdev->dev, "unable to allocate memory\n");
571 ret = -ENOMEM;
572 goto err_kmalloc;
573 }
574
575 hdq_data->dev = &pdev->dev;
576 platform_set_drvdata(pdev, hdq_data);
577
578 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
579 if (!res) {
580 dev_dbg(&pdev->dev, "unable to get resource\n");
581 ret = -ENXIO;
582 goto err_resource;
583 }
584
585 hdq_data->hdq_base = ioremap(res->start, SZ_4K);
586 if (!hdq_data->hdq_base) {
587 dev_dbg(&pdev->dev, "ioremap failed\n");
588 ret = -EINVAL;
589 goto err_ioremap;
590 }
591
592 /* get interface & functional clock objects */
593 hdq_data->hdq_ick = clk_get(&pdev->dev, "hdq_ick");
594 hdq_data->hdq_fck = clk_get(&pdev->dev, "hdq_fck");
595
596 if (IS_ERR(hdq_data->hdq_ick) || IS_ERR(hdq_data->hdq_fck)) {
597 dev_dbg(&pdev->dev, "Can't get HDQ clock objects\n");
598 if (IS_ERR(hdq_data->hdq_ick)) {
599 ret = PTR_ERR(hdq_data->hdq_ick);
600 goto err_clk;
601 }
602 if (IS_ERR(hdq_data->hdq_fck)) {
603 ret = PTR_ERR(hdq_data->hdq_fck);
604 clk_put(hdq_data->hdq_ick);
605 goto err_clk;
606 }
607 }
608
609 hdq_data->hdq_usecount = 0;
610 mutex_init(&hdq_data->hdq_mutex);
611
612 if (clk_enable(hdq_data->hdq_ick)) {
613 dev_dbg(&pdev->dev, "Can not enable ick\n");
614 ret = -ENODEV;
615 goto err_intfclk;
616 }
617
618 if (clk_enable(hdq_data->hdq_fck)) {
619 dev_dbg(&pdev->dev, "Can not enable fck\n");
620 ret = -ENODEV;
621 goto err_fnclk;
622 }
623
624 rev = hdq_reg_in(hdq_data, OMAP_HDQ_REVISION);
625 dev_info(&pdev->dev, "OMAP HDQ Hardware Rev %c.%c. Driver in %s mode\n",
626 (rev >> 4) + '0', (rev & 0x0f) + '0', "Interrupt");
627
628 spin_lock_init(&hdq_data->hdq_spinlock);
629
630 irq = platform_get_irq(pdev, 0);
631 if (irq < 0) {
632 ret = -ENXIO;
633 goto err_irq;
634 }
635
636 ret = request_irq(irq, hdq_isr, IRQF_DISABLED, "omap_hdq", hdq_data);
637 if (ret < 0) {
638 dev_dbg(&pdev->dev, "could not request irq\n");
639 goto err_irq;
640 }
641
642 omap_hdq_break(hdq_data);
643
644 /* don't clock the HDQ until it is needed */
645 clk_disable(hdq_data->hdq_ick);
646 clk_disable(hdq_data->hdq_fck);
647
648 omap_w1_master.data = hdq_data;
649
650 ret = w1_add_master_device(&omap_w1_master);
651 if (ret) {
652 dev_dbg(&pdev->dev, "Failure in registering w1 master\n");
653 goto err_w1;
654 }
655
656 return 0;
657
658err_w1:
659err_irq:
660 clk_disable(hdq_data->hdq_fck);
661
662err_fnclk:
663 clk_disable(hdq_data->hdq_ick);
664
665err_intfclk:
666 clk_put(hdq_data->hdq_ick);
667 clk_put(hdq_data->hdq_fck);
668
669err_clk:
670 iounmap(hdq_data->hdq_base);
671
672err_ioremap:
673err_resource:
674 platform_set_drvdata(pdev, NULL);
675 kfree(hdq_data);
676
677err_kmalloc:
678 return ret;
679
680}
681
682static int omap_hdq_remove(struct platform_device *pdev)
683{
684 struct hdq_data *hdq_data = platform_get_drvdata(pdev);
685
686 mutex_lock(&hdq_data->hdq_mutex);
687
688 if (hdq_data->hdq_usecount) {
689 dev_dbg(&pdev->dev, "removed when use count is not zero\n");
690 return -EBUSY;
691 }
692
693 mutex_unlock(&hdq_data->hdq_mutex);
694
695 /* remove module dependency */
696 clk_put(hdq_data->hdq_ick);
697 clk_put(hdq_data->hdq_fck);
698 free_irq(INT_24XX_HDQ_IRQ, hdq_data);
699 platform_set_drvdata(pdev, NULL);
700 iounmap(hdq_data->hdq_base);
701 kfree(hdq_data);
702
703 return 0;
704}
705
706static int __init
707omap_hdq_init(void)
708{
709 return platform_driver_register(&omap_hdq_driver);
710}
711module_init(omap_hdq_init);
712
713static void __exit
714omap_hdq_exit(void)
715{
716 platform_driver_unregister(&omap_hdq_driver);
717}
718module_exit(omap_hdq_exit);
719
720module_param(w1_id, int, S_IRUSR);
721MODULE_PARM_DESC(w1_id, "1-wire id for the slave detection");
722
723MODULE_AUTHOR("Texas Instruments");
724MODULE_DESCRIPTION("HDQ driver Library");
725MODULE_LICENSE("GPL");
diff --git a/drivers/w1/slaves/Kconfig b/drivers/w1/slaves/Kconfig
index 3df29a122f84..8d0b1fb1e52e 100644
--- a/drivers/w1/slaves/Kconfig
+++ b/drivers/w1/slaves/Kconfig
@@ -44,4 +44,11 @@ config W1_SLAVE_DS2760
44 44
45 If you are unsure, say N. 45 If you are unsure, say N.
46 46
47config W1_SLAVE_BQ27000
48 tristate "BQ27000 slave support"
49 depends on W1
50 help
51 Say Y here if you want to use a hdq
52 bq27000 slave support.
53
47endmenu 54endmenu
diff --git a/drivers/w1/slaves/Makefile b/drivers/w1/slaves/Makefile
index a8eb7524df1d..990f400b6d22 100644
--- a/drivers/w1/slaves/Makefile
+++ b/drivers/w1/slaves/Makefile
@@ -6,4 +6,4 @@ obj-$(CONFIG_W1_SLAVE_THERM) += w1_therm.o
6obj-$(CONFIG_W1_SLAVE_SMEM) += w1_smem.o 6obj-$(CONFIG_W1_SLAVE_SMEM) += w1_smem.o
7obj-$(CONFIG_W1_SLAVE_DS2433) += w1_ds2433.o 7obj-$(CONFIG_W1_SLAVE_DS2433) += w1_ds2433.o
8obj-$(CONFIG_W1_SLAVE_DS2760) += w1_ds2760.o 8obj-$(CONFIG_W1_SLAVE_DS2760) += w1_ds2760.o
9 9obj-$(CONFIG_W1_SLAVE_BQ27000) += w1_bq27000.o
diff --git a/drivers/w1/slaves/w1_bq27000.c b/drivers/w1/slaves/w1_bq27000.c
new file mode 100644
index 000000000000..8f4c91f6c680
--- /dev/null
+++ b/drivers/w1/slaves/w1_bq27000.c
@@ -0,0 +1,123 @@
1/*
2 * drivers/w1/slaves/w1_bq27000.c
3 *
4 * Copyright (C) 2007 Texas Instruments, Inc.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 *
10 */
11
12#include <linux/kernel.h>
13#include <linux/module.h>
14#include <linux/device.h>
15#include <linux/types.h>
16#include <linux/platform_device.h>
17#include <linux/mutex.h>
18
19#include "../w1.h"
20#include "../w1_int.h"
21#include "../w1_family.h"
22
23#define HDQ_CMD_READ (0)
24#define HDQ_CMD_WRITE (1<<7)
25
26static int F_ID;
27
28void w1_bq27000_write(struct device *dev, u8 buf, u8 reg)
29{
30 struct w1_slave *sl = container_of(dev, struct w1_slave, dev);
31
32 if (!dev) {
33 pr_info("Could not obtain slave dev ptr\n");
34 return;
35 }
36
37 w1_write_8(sl->master, HDQ_CMD_WRITE | reg);
38 w1_write_8(sl->master, buf);
39}
40EXPORT_SYMBOL(w1_bq27000_write);
41
42int w1_bq27000_read(struct device *dev, u8 reg)
43{
44 u8 val;
45 struct w1_slave *sl = container_of(dev, struct w1_slave, dev);
46
47 if (!dev)
48 return 0;
49
50 w1_write_8(sl->master, HDQ_CMD_READ | reg);
51 val = w1_read_8(sl->master);
52
53 return val;
54}
55EXPORT_SYMBOL(w1_bq27000_read);
56
57static int w1_bq27000_add_slave(struct w1_slave *sl)
58{
59 int ret;
60 int id = 1;
61 struct platform_device *pdev;
62
63 pdev = platform_device_alloc("bq27000-battery", id);
64 if (!pdev) {
65 ret = -ENOMEM;
66 return ret;
67 }
68 pdev->dev.parent = &sl->dev;
69
70 ret = platform_device_add(pdev);
71 if (ret)
72 goto pdev_add_failed;
73
74 dev_set_drvdata(&sl->dev, pdev);
75
76 goto success;
77
78pdev_add_failed:
79 platform_device_unregister(pdev);
80success:
81 return ret;
82}
83
84static void w1_bq27000_remove_slave(struct w1_slave *sl)
85{
86 struct platform_device *pdev = dev_get_drvdata(&sl->dev);
87
88 platform_device_unregister(pdev);
89}
90
91static struct w1_family_ops w1_bq27000_fops = {
92 .add_slave = w1_bq27000_add_slave,
93 .remove_slave = w1_bq27000_remove_slave,
94};
95
96static struct w1_family w1_bq27000_family = {
97 .fid = 1,
98 .fops = &w1_bq27000_fops,
99};
100
101static int __init w1_bq27000_init(void)
102{
103 if (F_ID)
104 w1_bq27000_family.fid = F_ID;
105
106 return w1_register_family(&w1_bq27000_family);
107}
108
109static void __exit w1_bq27000_exit(void)
110{
111 w1_unregister_family(&w1_bq27000_family);
112}
113
114
115module_init(w1_bq27000_init);
116module_exit(w1_bq27000_exit);
117
118module_param(F_ID, int, S_IRUSR);
119MODULE_PARM_DESC(F_ID, "1-wire slave FID for BQ device");
120
121MODULE_LICENSE("GPL");
122MODULE_AUTHOR("Texas Instruments Ltd");
123MODULE_DESCRIPTION("HDQ/1-wire slave driver bq27000 battery monitor chip");
diff --git a/drivers/w1/w1.h b/drivers/w1/w1.h
index cdaa6fffbfc7..97304bd83ec9 100644
--- a/drivers/w1/w1.h
+++ b/drivers/w1/w1.h
@@ -206,6 +206,7 @@ void w1_slave_detach(struct w1_slave *sl);
206 206
207u8 w1_triplet(struct w1_master *dev, int bdir); 207u8 w1_triplet(struct w1_master *dev, int bdir);
208void w1_write_8(struct w1_master *, u8); 208void w1_write_8(struct w1_master *, u8);
209u8 w1_read_8(struct w1_master *);
209int w1_reset_bus(struct w1_master *); 210int w1_reset_bus(struct w1_master *);
210u8 w1_calc_crc8(u8 *, int); 211u8 w1_calc_crc8(u8 *, int);
211void w1_write_block(struct w1_master *, const u8 *, int); 212void w1_write_block(struct w1_master *, const u8 *, int);
diff --git a/drivers/w1/w1_io.c b/drivers/w1/w1_io.c
index f4f82f1f486e..0d15b0eaf79a 100644
--- a/drivers/w1/w1_io.c
+++ b/drivers/w1/w1_io.c
@@ -217,7 +217,7 @@ u8 w1_triplet(struct w1_master *dev, int bdir)
217 * @param dev the master device 217 * @param dev the master device
218 * @return the byte read 218 * @return the byte read
219 */ 219 */
220static u8 w1_read_8(struct w1_master * dev) 220u8 w1_read_8(struct w1_master *dev)
221{ 221{
222 int i; 222 int i;
223 u8 res = 0; 223 u8 res = 0;
@@ -230,6 +230,7 @@ static u8 w1_read_8(struct w1_master * dev)
230 230
231 return res; 231 return res;
232} 232}
233EXPORT_SYMBOL_GPL(w1_read_8);
233 234
234/** 235/**
235 * Writes a series of bytes. 236 * Writes a series of bytes.
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 1a22fe782a27..4fd3fa5546b1 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -67,11 +67,11 @@ config AT91RM9200_WATCHDOG
67 system when the timeout is reached. 67 system when the timeout is reached.
68 68
69config AT91SAM9X_WATCHDOG 69config AT91SAM9X_WATCHDOG
70 tristate "AT91SAM9X watchdog" 70 tristate "AT91SAM9X / AT91CAP9 watchdog"
71 depends on WATCHDOG && (ARCH_AT91SAM9260 || ARCH_AT91SAM9261) 71 depends on ARCH_AT91 && !ARCH_AT91RM9200
72 help 72 help
73 Watchdog timer embedded into AT91SAM9X chips. This will reboot your 73 Watchdog timer embedded into AT91SAM9X and AT91CAP9 chips. This will
74 system when the timeout is reached. 74 reboot your system when the timeout is reached.
75 75
76config 21285_WATCHDOG 76config 21285_WATCHDOG
77 tristate "DC21285 watchdog" 77 tristate "DC21285 watchdog"
diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c
index b4babfc31586..b1da287f90ec 100644
--- a/drivers/watchdog/at91sam9_wdt.c
+++ b/drivers/watchdog/at91sam9_wdt.c
@@ -30,7 +30,7 @@
30#include <linux/bitops.h> 30#include <linux/bitops.h>
31#include <linux/uaccess.h> 31#include <linux/uaccess.h>
32 32
33#include <asm/arch/at91_wdt.h> 33#include <mach/at91_wdt.h>
34 34
35#define DRV_NAME "AT91SAM9 Watchdog" 35#define DRV_NAME "AT91SAM9 Watchdog"
36 36
diff --git a/drivers/watchdog/booke_wdt.c b/drivers/watchdog/booke_wdt.c
index c3b78a76f173..225398fd5049 100644
--- a/drivers/watchdog/booke_wdt.c
+++ b/drivers/watchdog/booke_wdt.c
@@ -42,8 +42,10 @@ u32 booke_wdt_period = WDT_PERIOD_DEFAULT;
42 42
43#ifdef CONFIG_FSL_BOOKE 43#ifdef CONFIG_FSL_BOOKE
44#define WDTP(x) ((((63-x)&0x3)<<30)|(((63-x)&0x3c)<<15)) 44#define WDTP(x) ((((63-x)&0x3)<<30)|(((63-x)&0x3c)<<15))
45#define WDTP_MASK (WDTP(0))
45#else 46#else
46#define WDTP(x) (TCR_WP(x)) 47#define WDTP(x) (TCR_WP(x))
48#define WDTP_MASK (TCR_WP_MASK)
47#endif 49#endif
48 50
49static DEFINE_SPINLOCK(booke_wdt_lock); 51static DEFINE_SPINLOCK(booke_wdt_lock);
@@ -65,6 +67,7 @@ static void __booke_wdt_enable(void *data)
65 /* clear status before enabling watchdog */ 67 /* clear status before enabling watchdog */
66 __booke_wdt_ping(NULL); 68 __booke_wdt_ping(NULL);
67 val = mfspr(SPRN_TCR); 69 val = mfspr(SPRN_TCR);
70 val &= ~WDTP_MASK;
68 val |= (TCR_WIE|TCR_WRC(WRC_CHIP)|WDTP(booke_wdt_period)); 71 val |= (TCR_WIE|TCR_WRC(WRC_CHIP)|WDTP(booke_wdt_period));
69 72
70 mtspr(SPRN_TCR, val); 73 mtspr(SPRN_TCR, val);
@@ -114,7 +117,7 @@ static long booke_wdt_ioctl(struct file *file,
114 case WDIOC_SETTIMEOUT: 117 case WDIOC_SETTIMEOUT:
115 if (get_user(booke_wdt_period, p)) 118 if (get_user(booke_wdt_period, p))
116 return -EFAULT; 119 return -EFAULT;
117 mtspr(SPRN_TCR, (mfspr(SPRN_TCR) & ~WDTP(0)) | 120 mtspr(SPRN_TCR, (mfspr(SPRN_TCR) & ~WDTP_MASK) |
118 WDTP(booke_wdt_period)); 121 WDTP(booke_wdt_period));
119 return 0; 122 return 0;
120 case WDIOC_GETTIMEOUT: 123 case WDIOC_GETTIMEOUT:
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/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 8c83abc73400..526c191e84ea 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -41,7 +41,6 @@
41#include <linux/pagemap.h> 41#include <linux/pagemap.h>
42#include <linux/highmem.h> 42#include <linux/highmem.h>
43#include <linux/mutex.h> 43#include <linux/mutex.h>
44#include <linux/highmem.h>
45#include <linux/list.h> 44#include <linux/list.h>
46#include <linux/sysdev.h> 45#include <linux/sysdev.h>
47 46
@@ -123,14 +122,7 @@ static struct timer_list balloon_timer;
123static void scrub_page(struct page *page) 122static void scrub_page(struct page *page)
124{ 123{
125#ifdef CONFIG_XEN_SCRUB_PAGES 124#ifdef CONFIG_XEN_SCRUB_PAGES
126 if (PageHighMem(page)) { 125 clear_highpage(page);
127 void *v = kmap(page);
128 clear_page(v);
129 kunmap(v);
130 } else {
131 void *v = page_address(page);
132 clear_page(v);
133 }
134#endif 126#endif
135} 127}
136 128
diff --git a/fs/Makefile b/fs/Makefile
index 2168c902d5ca..d9f8afe6f0c4 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -81,8 +81,6 @@ obj-$(CONFIG_HUGETLBFS) += hugetlbfs/
81obj-$(CONFIG_CODA_FS) += coda/ 81obj-$(CONFIG_CODA_FS) += coda/
82obj-$(CONFIG_MINIX_FS) += minix/ 82obj-$(CONFIG_MINIX_FS) += minix/
83obj-$(CONFIG_FAT_FS) += fat/ 83obj-$(CONFIG_FAT_FS) += fat/
84obj-$(CONFIG_MSDOS_FS) += msdos/
85obj-$(CONFIG_VFAT_FS) += vfat/
86obj-$(CONFIG_BFS_FS) += bfs/ 84obj-$(CONFIG_BFS_FS) += bfs/
87obj-$(CONFIG_ISO9660_FS) += isofs/ 85obj-$(CONFIG_ISO9660_FS) += isofs/
88obj-$(CONFIG_HFSPLUS_FS) += hfsplus/ # Before hfs to find wrapped HFS+ 86obj-$(CONFIG_HFSPLUS_FS) += hfsplus/ # Before hfs to find wrapped HFS+
diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c
index 625abf5422e2..33bf8cbfd051 100644
--- a/fs/autofs4/dev-ioctl.c
+++ b/fs/autofs4/dev-ioctl.c
@@ -128,9 +128,10 @@ static inline void free_dev_ioctl(struct autofs_dev_ioctl *param)
128 */ 128 */
129static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param) 129static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param)
130{ 130{
131 int err = -EINVAL; 131 int err;
132 132
133 if (check_dev_ioctl_version(cmd, param)) { 133 err = check_dev_ioctl_version(cmd, param);
134 if (err) {
134 AUTOFS_WARN("invalid device control module version " 135 AUTOFS_WARN("invalid device control module version "
135 "supplied for cmd(0x%08x)", cmd); 136 "supplied for cmd(0x%08x)", cmd);
136 goto out; 137 goto out;
diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c
index cde2f8e8935a..4b6fb3f628c0 100644
--- a/fs/autofs4/expire.c
+++ b/fs/autofs4/expire.c
@@ -56,12 +56,23 @@ static int autofs4_mount_busy(struct vfsmount *mnt, struct dentry *dentry)
56 mntget(mnt); 56 mntget(mnt);
57 dget(dentry); 57 dget(dentry);
58 58
59 if (!autofs4_follow_mount(&mnt, &dentry)) 59 if (!follow_down(&mnt, &dentry))
60 goto done; 60 goto done;
61 61
62 /* This is an autofs submount, we can't expire it */ 62 if (is_autofs4_dentry(dentry)) {
63 if (is_autofs4_dentry(dentry)) 63 struct autofs_sb_info *sbi = autofs4_sbi(dentry->d_sb);
64 goto done; 64
65 /* This is an autofs submount, we can't expire it */
66 if (sbi->type == AUTOFS_TYPE_INDIRECT)
67 goto done;
68
69 /*
70 * Otherwise it's an offset mount and we need to check
71 * if we can umount its mount, if there is one.
72 */
73 if (!d_mountpoint(dentry))
74 goto done;
75 }
65 76
66 /* Update the expiry counter if fs is busy */ 77 /* Update the expiry counter if fs is busy */
67 if (!may_umount_tree(mnt)) { 78 if (!may_umount_tree(mnt)) {
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 88a776fa0ef6..99e0ae1a4c78 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -986,7 +986,6 @@ static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part);
986static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) 986static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
987{ 987{
988 struct gendisk *disk; 988 struct gendisk *disk;
989 struct hd_struct *part = NULL;
990 int ret; 989 int ret;
991 int partno; 990 int partno;
992 int perm = 0; 991 int perm = 0;
@@ -1004,24 +1003,25 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
1004 return ret; 1003 return ret;
1005 } 1004 }
1006 1005
1007 ret = -ENXIO;
1008
1009 lock_kernel(); 1006 lock_kernel();
1010 1007
1008 ret = -ENXIO;
1011 disk = get_gendisk(bdev->bd_dev, &partno); 1009 disk = get_gendisk(bdev->bd_dev, &partno);
1012 if (!disk) 1010 if (!disk)
1013 goto out_unlock_kernel; 1011 goto out_unlock_kernel;
1014 part = disk_get_part(disk, partno);
1015 if (!part)
1016 goto out_unlock_kernel;
1017 1012
1018 mutex_lock_nested(&bdev->bd_mutex, for_part); 1013 mutex_lock_nested(&bdev->bd_mutex, for_part);
1019 if (!bdev->bd_openers) { 1014 if (!bdev->bd_openers) {
1020 bdev->bd_disk = disk; 1015 bdev->bd_disk = disk;
1021 bdev->bd_part = part;
1022 bdev->bd_contains = bdev; 1016 bdev->bd_contains = bdev;
1023 if (!partno) { 1017 if (!partno) {
1024 struct backing_dev_info *bdi; 1018 struct backing_dev_info *bdi;
1019
1020 ret = -ENXIO;
1021 bdev->bd_part = disk_get_part(disk, partno);
1022 if (!bdev->bd_part)
1023 goto out_clear;
1024
1025 if (disk->fops->open) { 1025 if (disk->fops->open) {
1026 ret = disk->fops->open(bdev, mode); 1026 ret = disk->fops->open(bdev, mode);
1027 if (ret) 1027 if (ret)
@@ -1049,18 +1049,17 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
1049 bdev->bd_contains = whole; 1049 bdev->bd_contains = whole;
1050 bdev->bd_inode->i_data.backing_dev_info = 1050 bdev->bd_inode->i_data.backing_dev_info =
1051 whole->bd_inode->i_data.backing_dev_info; 1051 whole->bd_inode->i_data.backing_dev_info;
1052 bdev->bd_part = disk_get_part(disk, partno);
1052 if (!(disk->flags & GENHD_FL_UP) || 1053 if (!(disk->flags & GENHD_FL_UP) ||
1053 !part || !part->nr_sects) { 1054 !bdev->bd_part || !bdev->bd_part->nr_sects) {
1054 ret = -ENXIO; 1055 ret = -ENXIO;
1055 goto out_clear; 1056 goto out_clear;
1056 } 1057 }
1057 bd_set_size(bdev, (loff_t)part->nr_sects << 9); 1058 bd_set_size(bdev, (loff_t)bdev->bd_part->nr_sects << 9);
1058 } 1059 }
1059 } else { 1060 } else {
1060 disk_put_part(part);
1061 put_disk(disk); 1061 put_disk(disk);
1062 module_put(disk->fops->owner); 1062 module_put(disk->fops->owner);
1063 part = NULL;
1064 disk = NULL; 1063 disk = NULL;
1065 if (bdev->bd_contains == bdev) { 1064 if (bdev->bd_contains == bdev) {
1066 if (bdev->bd_disk->fops->open) { 1065 if (bdev->bd_disk->fops->open) {
@@ -1080,6 +1079,7 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
1080 return 0; 1079 return 0;
1081 1080
1082 out_clear: 1081 out_clear:
1082 disk_put_part(bdev->bd_part);
1083 bdev->bd_disk = NULL; 1083 bdev->bd_disk = NULL;
1084 bdev->bd_part = NULL; 1084 bdev->bd_part = NULL;
1085 bdev->bd_inode->i_data.backing_dev_info = &default_backing_dev_info; 1085 bdev->bd_inode->i_data.backing_dev_info = &default_backing_dev_info;
@@ -1091,7 +1091,6 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
1091 out_unlock_kernel: 1091 out_unlock_kernel:
1092 unlock_kernel(); 1092 unlock_kernel();
1093 1093
1094 disk_put_part(part);
1095 if (disk) 1094 if (disk)
1096 module_put(disk->fops->owner); 1095 module_put(disk->fops->owner);
1097 put_disk(disk); 1096 put_disk(disk);
@@ -1136,12 +1135,15 @@ static int blkdev_open(struct inode * inode, struct file * filp)
1136 if (res) 1135 if (res)
1137 return res; 1136 return res;
1138 1137
1139 if (!(filp->f_mode & FMODE_EXCL)) 1138 if (filp->f_mode & FMODE_EXCL) {
1140 return 0; 1139 res = bd_claim(bdev, filp);
1140 if (res)
1141 goto out_blkdev_put;
1142 }
1141 1143
1142 if (!(res = bd_claim(bdev, filp))) 1144 return 0;
1143 return 0;
1144 1145
1146 out_blkdev_put:
1145 blkdev_put(bdev, filp->f_mode); 1147 blkdev_put(bdev, filp->f_mode);
1146 return res; 1148 return res;
1147} 1149}
@@ -1204,8 +1206,16 @@ static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg)
1204{ 1206{
1205 struct block_device *bdev = I_BDEV(file->f_mapping->host); 1207 struct block_device *bdev = I_BDEV(file->f_mapping->host);
1206 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 */
1207 if (file->f_flags & O_NDELAY) 1214 if (file->f_flags & O_NDELAY)
1208 mode |= FMODE_NDELAY_NOW; 1215 mode |= FMODE_NDELAY;
1216 else
1217 mode &= ~FMODE_NDELAY;
1218
1209 return blkdev_ioctl(bdev, mode, cmd, arg); 1219 return blkdev_ioctl(bdev, mode, cmd, arg);
1210} 1220}
1211 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/CHANGES b/fs/cifs/CHANGES
index 8f528ea24c48..e078b7aea143 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -4,7 +4,15 @@ Various fixes to make delete of open files behavior more predictable
4(when delete of an open file fails we mark the file as "delete-on-close" 4(when delete of an open file fails we mark the file as "delete-on-close"
5in a way that more servers accept, but only if we can first rename the 5in a way that more servers accept, but only if we can first rename the
6file to a temporary name). Add experimental support for more safely 6file to a temporary name). Add experimental support for more safely
7handling fcntl(F_SETLEASE). 7handling fcntl(F_SETLEASE). Convert cifs to using blocking tcp
8sends, and also let tcp autotune the socket send and receive buffers.
9This reduces the number of EAGAIN errors returned by TCP/IP in
10high stress workloads (and the number of retries on socket writes
11when sending large SMBWriteX requests). Fix case in which a portion of
12data can in some cases not get written to the file on the server before the
13file is closed. Fix DFS parsing to properly handle path consumed field,
14and to handle certain codepage conversions better. Fix mount and
15umount race that can cause oops in mount or umount or reconnect.
8 16
9Version 1.54 17Version 1.54
10------------ 18------------
diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
index 69a12aae91d3..490e34bbf27a 100644
--- a/fs/cifs/cifs_debug.c
+++ b/fs/cifs/cifs_debug.c
@@ -107,12 +107,13 @@ void cifs_dump_mids(struct TCP_Server_Info *server)
107#ifdef CONFIG_PROC_FS 107#ifdef CONFIG_PROC_FS
108static int cifs_debug_data_proc_show(struct seq_file *m, void *v) 108static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
109{ 109{
110 struct list_head *tmp; 110 struct list_head *tmp1, *tmp2, *tmp3;
111 struct list_head *tmp1;
112 struct mid_q_entry *mid_entry; 111 struct mid_q_entry *mid_entry;
112 struct TCP_Server_Info *server;
113 struct cifsSesInfo *ses; 113 struct cifsSesInfo *ses;
114 struct cifsTconInfo *tcon; 114 struct cifsTconInfo *tcon;
115 int i; 115 int i, j;
116 __u32 dev_type;
116 117
117 seq_puts(m, 118 seq_puts(m,
118 "Display Internal CIFS Data Structures for Debugging\n" 119 "Display Internal CIFS Data Structures for Debugging\n"
@@ -122,46 +123,78 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
122 seq_printf(m, "Servers:"); 123 seq_printf(m, "Servers:");
123 124
124 i = 0; 125 i = 0;
125 read_lock(&GlobalSMBSeslock); 126 read_lock(&cifs_tcp_ses_lock);
126 list_for_each(tmp, &GlobalSMBSessionList) { 127 list_for_each(tmp1, &cifs_tcp_ses_list) {
128 server = list_entry(tmp1, struct TCP_Server_Info,
129 tcp_ses_list);
127 i++; 130 i++;
128 ses = list_entry(tmp, struct cifsSesInfo, cifsSessionList); 131 list_for_each(tmp2, &server->smb_ses_list) {
129 if ((ses->serverDomain == NULL) || (ses->serverOS == NULL) || 132 ses = list_entry(tmp2, struct cifsSesInfo,
130 (ses->serverNOS == NULL)) { 133 smb_ses_list);
131 seq_printf(m, "\nentry for %s not fully " 134 if ((ses->serverDomain == NULL) ||
132 "displayed\n\t", ses->serverName); 135 (ses->serverOS == NULL) ||
133 } else { 136 (ses->serverNOS == NULL)) {
134 seq_printf(m, 137 seq_printf(m, "\n%d) entry for %s not fully "
135 "\n%d) Name: %s Domain: %s Mounts: %d OS:" 138 "displayed\n\t", i, ses->serverName);
136 " %s \n\tNOS: %s\tCapability: 0x%x\n\tSMB" 139 } else {
140 seq_printf(m,
141 "\n%d) Name: %s Domain: %s Uses: %d OS:"
142 " %s\n\tNOS: %s\tCapability: 0x%x\n\tSMB"
137 " session status: %d\t", 143 " session status: %d\t",
138 i, ses->serverName, ses->serverDomain, 144 i, ses->serverName, ses->serverDomain,
139 atomic_read(&ses->inUse), 145 ses->ses_count, ses->serverOS, ses->serverNOS,
140 ses->serverOS, ses->serverNOS,
141 ses->capabilities, ses->status); 146 ses->capabilities, ses->status);
142 } 147 }
143 if (ses->server) {
144 seq_printf(m, "TCP status: %d\n\tLocal Users To " 148 seq_printf(m, "TCP status: %d\n\tLocal Users To "
145 "Server: %d SecMode: 0x%x Req On Wire: %d", 149 "Server: %d SecMode: 0x%x Req On Wire: %d",
146 ses->server->tcpStatus, 150 server->tcpStatus, server->srv_count,
147 atomic_read(&ses->server->socketUseCount), 151 server->secMode,
148 ses->server->secMode, 152 atomic_read(&server->inFlight));
149 atomic_read(&ses->server->inFlight));
150 153
151#ifdef CONFIG_CIFS_STATS2 154#ifdef CONFIG_CIFS_STATS2
152 seq_printf(m, " In Send: %d In MaxReq Wait: %d", 155 seq_printf(m, " In Send: %d In MaxReq Wait: %d",
153 atomic_read(&ses->server->inSend), 156 atomic_read(&server->inSend),
154 atomic_read(&ses->server->num_waiters)); 157 atomic_read(&server->num_waiters));
155#endif 158#endif
156 159
157 seq_puts(m, "\nMIDs:\n"); 160 seq_puts(m, "\n\tShares:");
161 j = 0;
162 list_for_each(tmp3, &ses->tcon_list) {
163 tcon = list_entry(tmp3, struct cifsTconInfo,
164 tcon_list);
165 ++j;
166 dev_type = le32_to_cpu(tcon->fsDevInfo.DeviceType);
167 seq_printf(m, "\n\t%d) %s Mounts: %d ", j,
168 tcon->treeName, tcon->tc_count);
169 if (tcon->nativeFileSystem) {
170 seq_printf(m, "Type: %s ",
171 tcon->nativeFileSystem);
172 }
173 seq_printf(m, "DevInfo: 0x%x Attributes: 0x%x"
174 "\nPathComponentMax: %d Status: 0x%d",
175 le32_to_cpu(tcon->fsDevInfo.DeviceCharacteristics),
176 le32_to_cpu(tcon->fsAttrInfo.Attributes),
177 le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength),
178 tcon->tidStatus);
179 if (dev_type == FILE_DEVICE_DISK)
180 seq_puts(m, " type: DISK ");
181 else if (dev_type == FILE_DEVICE_CD_ROM)
182 seq_puts(m, " type: CDROM ");
183 else
184 seq_printf(m, " type: %d ", dev_type);
185
186 if (tcon->need_reconnect)
187 seq_puts(m, "\tDISCONNECTED ");
188 seq_putc(m, '\n');
189 }
190
191 seq_puts(m, "\n\tMIDs:\n");
158 192
159 spin_lock(&GlobalMid_Lock); 193 spin_lock(&GlobalMid_Lock);
160 list_for_each(tmp1, &ses->server->pending_mid_q) { 194 list_for_each(tmp3, &server->pending_mid_q) {
161 mid_entry = list_entry(tmp1, struct 195 mid_entry = list_entry(tmp3, struct mid_q_entry,
162 mid_q_entry,
163 qhead); 196 qhead);
164 seq_printf(m, "State: %d com: %d pid:" 197 seq_printf(m, "\tState: %d com: %d pid:"
165 " %d tsk: %p mid %d\n", 198 " %d tsk: %p mid %d\n",
166 mid_entry->midState, 199 mid_entry->midState,
167 (int)mid_entry->command, 200 (int)mid_entry->command,
@@ -171,44 +204,8 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
171 } 204 }
172 spin_unlock(&GlobalMid_Lock); 205 spin_unlock(&GlobalMid_Lock);
173 } 206 }
174
175 }
176 read_unlock(&GlobalSMBSeslock);
177 seq_putc(m, '\n');
178
179 seq_puts(m, "Shares:");
180
181 i = 0;
182 read_lock(&GlobalSMBSeslock);
183 list_for_each(tmp, &GlobalTreeConnectionList) {
184 __u32 dev_type;
185 i++;
186 tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList);
187 dev_type = le32_to_cpu(tcon->fsDevInfo.DeviceType);
188 seq_printf(m, "\n%d) %s Uses: %d ", i,
189 tcon->treeName, atomic_read(&tcon->useCount));
190 if (tcon->nativeFileSystem) {
191 seq_printf(m, "Type: %s ",
192 tcon->nativeFileSystem);
193 }
194 seq_printf(m, "DevInfo: 0x%x Attributes: 0x%x"
195 "\nPathComponentMax: %d Status: %d",
196 le32_to_cpu(tcon->fsDevInfo.DeviceCharacteristics),
197 le32_to_cpu(tcon->fsAttrInfo.Attributes),
198 le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength),
199 tcon->tidStatus);
200 if (dev_type == FILE_DEVICE_DISK)
201 seq_puts(m, " type: DISK ");
202 else if (dev_type == FILE_DEVICE_CD_ROM)
203 seq_puts(m, " type: CDROM ");
204 else
205 seq_printf(m, " type: %d ", dev_type);
206
207 if (tcon->tidStatus == CifsNeedReconnect)
208 seq_puts(m, "\tDISCONNECTED ");
209 } 207 }
210 read_unlock(&GlobalSMBSeslock); 208 read_unlock(&cifs_tcp_ses_lock);
211
212 seq_putc(m, '\n'); 209 seq_putc(m, '\n');
213 210
214 /* BB add code to dump additional info such as TCP session info now */ 211 /* BB add code to dump additional info such as TCP session info now */
@@ -234,7 +231,9 @@ static ssize_t cifs_stats_proc_write(struct file *file,
234{ 231{
235 char c; 232 char c;
236 int rc; 233 int rc;
237 struct list_head *tmp; 234 struct list_head *tmp1, *tmp2, *tmp3;
235 struct TCP_Server_Info *server;
236 struct cifsSesInfo *ses;
238 struct cifsTconInfo *tcon; 237 struct cifsTconInfo *tcon;
239 238
240 rc = get_user(c, buffer); 239 rc = get_user(c, buffer);
@@ -242,33 +241,42 @@ static ssize_t cifs_stats_proc_write(struct file *file,
242 return rc; 241 return rc;
243 242
244 if (c == '1' || c == 'y' || c == 'Y' || c == '0') { 243 if (c == '1' || c == 'y' || c == 'Y' || c == '0') {
245 read_lock(&GlobalSMBSeslock);
246#ifdef CONFIG_CIFS_STATS2 244#ifdef CONFIG_CIFS_STATS2
247 atomic_set(&totBufAllocCount, 0); 245 atomic_set(&totBufAllocCount, 0);
248 atomic_set(&totSmBufAllocCount, 0); 246 atomic_set(&totSmBufAllocCount, 0);
249#endif /* CONFIG_CIFS_STATS2 */ 247#endif /* CONFIG_CIFS_STATS2 */
250 list_for_each(tmp, &GlobalTreeConnectionList) { 248 read_lock(&cifs_tcp_ses_lock);
251 tcon = list_entry(tmp, struct cifsTconInfo, 249 list_for_each(tmp1, &cifs_tcp_ses_list) {
252 cifsConnectionList); 250 server = list_entry(tmp1, struct TCP_Server_Info,
253 atomic_set(&tcon->num_smbs_sent, 0); 251 tcp_ses_list);
254 atomic_set(&tcon->num_writes, 0); 252 list_for_each(tmp2, &server->smb_ses_list) {
255 atomic_set(&tcon->num_reads, 0); 253 ses = list_entry(tmp2, struct cifsSesInfo,
256 atomic_set(&tcon->num_oplock_brks, 0); 254 smb_ses_list);
257 atomic_set(&tcon->num_opens, 0); 255 list_for_each(tmp3, &ses->tcon_list) {
258 atomic_set(&tcon->num_closes, 0); 256 tcon = list_entry(tmp3,
259 atomic_set(&tcon->num_deletes, 0); 257 struct cifsTconInfo,
260 atomic_set(&tcon->num_mkdirs, 0); 258 tcon_list);
261 atomic_set(&tcon->num_rmdirs, 0); 259 atomic_set(&tcon->num_smbs_sent, 0);
262 atomic_set(&tcon->num_renames, 0); 260 atomic_set(&tcon->num_writes, 0);
263 atomic_set(&tcon->num_t2renames, 0); 261 atomic_set(&tcon->num_reads, 0);
264 atomic_set(&tcon->num_ffirst, 0); 262 atomic_set(&tcon->num_oplock_brks, 0);
265 atomic_set(&tcon->num_fnext, 0); 263 atomic_set(&tcon->num_opens, 0);
266 atomic_set(&tcon->num_fclose, 0); 264 atomic_set(&tcon->num_closes, 0);
267 atomic_set(&tcon->num_hardlinks, 0); 265 atomic_set(&tcon->num_deletes, 0);
268 atomic_set(&tcon->num_symlinks, 0); 266 atomic_set(&tcon->num_mkdirs, 0);
269 atomic_set(&tcon->num_locks, 0); 267 atomic_set(&tcon->num_rmdirs, 0);
268 atomic_set(&tcon->num_renames, 0);
269 atomic_set(&tcon->num_t2renames, 0);
270 atomic_set(&tcon->num_ffirst, 0);
271 atomic_set(&tcon->num_fnext, 0);
272 atomic_set(&tcon->num_fclose, 0);
273 atomic_set(&tcon->num_hardlinks, 0);
274 atomic_set(&tcon->num_symlinks, 0);
275 atomic_set(&tcon->num_locks, 0);
276 }
277 }
270 } 278 }
271 read_unlock(&GlobalSMBSeslock); 279 read_unlock(&cifs_tcp_ses_lock);
272 } 280 }
273 281
274 return count; 282 return count;
@@ -277,7 +285,9 @@ static ssize_t cifs_stats_proc_write(struct file *file,
277static int cifs_stats_proc_show(struct seq_file *m, void *v) 285static int cifs_stats_proc_show(struct seq_file *m, void *v)
278{ 286{
279 int i; 287 int i;
280 struct list_head *tmp; 288 struct list_head *tmp1, *tmp2, *tmp3;
289 struct TCP_Server_Info *server;
290 struct cifsSesInfo *ses;
281 struct cifsTconInfo *tcon; 291 struct cifsTconInfo *tcon;
282 292
283 seq_printf(m, 293 seq_printf(m,
@@ -306,44 +316,55 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
306 GlobalCurrentXid, GlobalMaxActiveXid); 316 GlobalCurrentXid, GlobalMaxActiveXid);
307 317
308 i = 0; 318 i = 0;
309 read_lock(&GlobalSMBSeslock); 319 read_lock(&cifs_tcp_ses_lock);
310 list_for_each(tmp, &GlobalTreeConnectionList) { 320 list_for_each(tmp1, &cifs_tcp_ses_list) {
311 i++; 321 server = list_entry(tmp1, struct TCP_Server_Info,
312 tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList); 322 tcp_ses_list);
313 seq_printf(m, "\n%d) %s", i, tcon->treeName); 323 list_for_each(tmp2, &server->smb_ses_list) {
314 if (tcon->tidStatus == CifsNeedReconnect) 324 ses = list_entry(tmp2, struct cifsSesInfo,
315 seq_puts(m, "\tDISCONNECTED "); 325 smb_ses_list);
316 seq_printf(m, "\nSMBs: %d Oplock Breaks: %d", 326 list_for_each(tmp3, &ses->tcon_list) {
317 atomic_read(&tcon->num_smbs_sent), 327 tcon = list_entry(tmp3,
318 atomic_read(&tcon->num_oplock_brks)); 328 struct cifsTconInfo,
319 seq_printf(m, "\nReads: %d Bytes: %lld", 329 tcon_list);
320 atomic_read(&tcon->num_reads), 330 i++;
321 (long long)(tcon->bytes_read)); 331 seq_printf(m, "\n%d) %s", i, tcon->treeName);
322 seq_printf(m, "\nWrites: %d Bytes: %lld", 332 if (tcon->need_reconnect)
323 atomic_read(&tcon->num_writes), 333 seq_puts(m, "\tDISCONNECTED ");
324 (long long)(tcon->bytes_written)); 334 seq_printf(m, "\nSMBs: %d Oplock Breaks: %d",
325 seq_printf(m, 335 atomic_read(&tcon->num_smbs_sent),
326 "\nLocks: %d HardLinks: %d Symlinks: %d", 336 atomic_read(&tcon->num_oplock_brks));
327 atomic_read(&tcon->num_locks), 337 seq_printf(m, "\nReads: %d Bytes: %lld",
328 atomic_read(&tcon->num_hardlinks), 338 atomic_read(&tcon->num_reads),
329 atomic_read(&tcon->num_symlinks)); 339 (long long)(tcon->bytes_read));
330 340 seq_printf(m, "\nWrites: %d Bytes: %lld",
331 seq_printf(m, "\nOpens: %d Closes: %d Deletes: %d", 341 atomic_read(&tcon->num_writes),
332 atomic_read(&tcon->num_opens), 342 (long long)(tcon->bytes_written));
333 atomic_read(&tcon->num_closes), 343 seq_printf(m, "\nLocks: %d HardLinks: %d "
334 atomic_read(&tcon->num_deletes)); 344 "Symlinks: %d",
335 seq_printf(m, "\nMkdirs: %d Rmdirs: %d", 345 atomic_read(&tcon->num_locks),
336 atomic_read(&tcon->num_mkdirs), 346 atomic_read(&tcon->num_hardlinks),
337 atomic_read(&tcon->num_rmdirs)); 347 atomic_read(&tcon->num_symlinks));
338 seq_printf(m, "\nRenames: %d T2 Renames %d", 348 seq_printf(m, "\nOpens: %d Closes: %d"
339 atomic_read(&tcon->num_renames), 349 "Deletes: %d",
340 atomic_read(&tcon->num_t2renames)); 350 atomic_read(&tcon->num_opens),
341 seq_printf(m, "\nFindFirst: %d FNext %d FClose %d", 351 atomic_read(&tcon->num_closes),
342 atomic_read(&tcon->num_ffirst), 352 atomic_read(&tcon->num_deletes));
343 atomic_read(&tcon->num_fnext), 353 seq_printf(m, "\nMkdirs: %d Rmdirs: %d",
344 atomic_read(&tcon->num_fclose)); 354 atomic_read(&tcon->num_mkdirs),
355 atomic_read(&tcon->num_rmdirs));
356 seq_printf(m, "\nRenames: %d T2 Renames %d",
357 atomic_read(&tcon->num_renames),
358 atomic_read(&tcon->num_t2renames));
359 seq_printf(m, "\nFindFirst: %d FNext %d "
360 "FClose %d",
361 atomic_read(&tcon->num_ffirst),
362 atomic_read(&tcon->num_fnext),
363 atomic_read(&tcon->num_fclose));
364 }
365 }
345 } 366 }
346 read_unlock(&GlobalSMBSeslock); 367 read_unlock(&cifs_tcp_ses_lock);
347 368
348 seq_putc(m, '\n'); 369 seq_putc(m, '\n');
349 return 0; 370 return 0;
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c
index d2c8eef84f3c..e1c18362ba46 100644
--- a/fs/cifs/cifs_dfs_ref.c
+++ b/fs/cifs/cifs_dfs_ref.c
@@ -106,7 +106,8 @@ static char *cifs_get_share_name(const char *node_name)
106/** 106/**
107 * compose_mount_options - creates mount options for refferral 107 * compose_mount_options - creates mount options for refferral
108 * @sb_mountdata: parent/root DFS mount options (template) 108 * @sb_mountdata: parent/root DFS mount options (template)
109 * @ref_unc: refferral server UNC 109 * @dentry: point where we are going to mount
110 * @ref: server's referral
110 * @devname: pointer for saving device name 111 * @devname: pointer for saving device name
111 * 112 *
112 * creates mount options for submount based on template options sb_mountdata 113 * creates mount options for submount based on template options sb_mountdata
@@ -116,7 +117,8 @@ static char *cifs_get_share_name(const char *node_name)
116 * Caller is responcible for freeing retunrned value if it is not error. 117 * Caller is responcible for freeing retunrned value if it is not error.
117 */ 118 */
118static char *compose_mount_options(const char *sb_mountdata, 119static char *compose_mount_options(const char *sb_mountdata,
119 const char *ref_unc, 120 struct dentry *dentry,
121 const struct dfs_info3_param *ref,
120 char **devname) 122 char **devname)
121{ 123{
122 int rc; 124 int rc;
@@ -126,11 +128,12 @@ static char *compose_mount_options(const char *sb_mountdata,
126 char *srvIP = NULL; 128 char *srvIP = NULL;
127 char sep = ','; 129 char sep = ',';
128 int off, noff; 130 int off, noff;
131 char *fullpath;
129 132
130 if (sb_mountdata == NULL) 133 if (sb_mountdata == NULL)
131 return ERR_PTR(-EINVAL); 134 return ERR_PTR(-EINVAL);
132 135
133 *devname = cifs_get_share_name(ref_unc); 136 *devname = cifs_get_share_name(ref->node_name);
134 rc = dns_resolve_server_name_to_ip(*devname, &srvIP); 137 rc = dns_resolve_server_name_to_ip(*devname, &srvIP);
135 if (rc != 0) { 138 if (rc != 0) {
136 cERROR(1, ("%s: Failed to resolve server part of %s to IP", 139 cERROR(1, ("%s: Failed to resolve server part of %s to IP",
@@ -138,7 +141,12 @@ static char *compose_mount_options(const char *sb_mountdata,
138 mountdata = ERR_PTR(rc); 141 mountdata = ERR_PTR(rc);
139 goto compose_mount_options_out; 142 goto compose_mount_options_out;
140 } 143 }
141 md_len = strlen(sb_mountdata) + strlen(srvIP) + strlen(ref_unc) + 3; 144 /* md_len = strlen(...) + 12 for 'sep+prefixpath='
145 * assuming that we have 'unc=' and 'ip=' in
146 * the original sb_mountdata
147 */
148 md_len = strlen(sb_mountdata) + strlen(srvIP) +
149 strlen(ref->node_name) + 12;
142 mountdata = kzalloc(md_len+1, GFP_KERNEL); 150 mountdata = kzalloc(md_len+1, GFP_KERNEL);
143 if (mountdata == NULL) { 151 if (mountdata == NULL) {
144 mountdata = ERR_PTR(-ENOMEM); 152 mountdata = ERR_PTR(-ENOMEM);
@@ -152,41 +160,56 @@ static char *compose_mount_options(const char *sb_mountdata,
152 strncpy(mountdata, sb_mountdata, 5); 160 strncpy(mountdata, sb_mountdata, 5);
153 off += 5; 161 off += 5;
154 } 162 }
155 while ((tkn_e = strchr(sb_mountdata+off, sep))) { 163
156 noff = (tkn_e - (sb_mountdata+off)) + 1; 164 do {
157 if (strnicmp(sb_mountdata+off, "unc=", 4) == 0) { 165 tkn_e = strchr(sb_mountdata + off, sep);
166 if (tkn_e == NULL)
167 noff = strlen(sb_mountdata + off);
168 else
169 noff = tkn_e - (sb_mountdata + off) + 1;
170
171 if (strnicmp(sb_mountdata + off, "unc=", 4) == 0) {
158 off += noff; 172 off += noff;
159 continue; 173 continue;
160 } 174 }
161 if (strnicmp(sb_mountdata+off, "ip=", 3) == 0) { 175 if (strnicmp(sb_mountdata + off, "ip=", 3) == 0) {
162 off += noff; 176 off += noff;
163 continue; 177 continue;
164 } 178 }
165 if (strnicmp(sb_mountdata+off, "prefixpath=", 3) == 0) { 179 if (strnicmp(sb_mountdata + off, "prefixpath=", 11) == 0) {
166 off += noff; 180 off += noff;
167 continue; 181 continue;
168 } 182 }
169 strncat(mountdata, sb_mountdata+off, noff); 183 strncat(mountdata, sb_mountdata + off, noff);
170 off += noff; 184 off += noff;
171 } 185 } while (tkn_e);
172 strcat(mountdata, sb_mountdata+off); 186 strcat(mountdata, sb_mountdata + off);
173 mountdata[md_len] = '\0'; 187 mountdata[md_len] = '\0';
174 188
175 /* copy new IP and ref share name */ 189 /* copy new IP and ref share name */
176 strcat(mountdata, ",ip="); 190 if (mountdata[strlen(mountdata) - 1] != sep)
191 strncat(mountdata, &sep, 1);
192 strcat(mountdata, "ip=");
177 strcat(mountdata, srvIP); 193 strcat(mountdata, srvIP);
178 strcat(mountdata, ",unc="); 194 strncat(mountdata, &sep, 1);
195 strcat(mountdata, "unc=");
179 strcat(mountdata, *devname); 196 strcat(mountdata, *devname);
180 197
181 /* find & copy prefixpath */ 198 /* find & copy prefixpath */
182 tkn_e = strchr(ref_unc+2, '\\'); 199 tkn_e = strchr(ref->node_name + 2, '\\');
183 if (tkn_e) { 200 if (tkn_e == NULL) /* invalid unc, missing share name*/
184 tkn_e = strchr(tkn_e+1, '\\'); 201 goto compose_mount_options_out;
185 if (tkn_e) { 202
186 strcat(mountdata, ",prefixpath="); 203 fullpath = build_path_from_dentry(dentry);
187 strcat(mountdata, tkn_e+1); 204 tkn_e = strchr(tkn_e + 1, '\\');
188 } 205 if (tkn_e || strlen(fullpath) - (ref->path_consumed)) {
206 strncat(mountdata, &sep, 1);
207 strcat(mountdata, "prefixpath=");
208 if (tkn_e)
209 strcat(mountdata, tkn_e + 1);
210 strcat(mountdata, fullpath + (ref->path_consumed));
189 } 211 }
212 kfree(fullpath);
190 213
191 /*cFYI(1,("%s: parent mountdata: %s", __func__,sb_mountdata));*/ 214 /*cFYI(1,("%s: parent mountdata: %s", __func__,sb_mountdata));*/
192 /*cFYI(1, ("%s: submount mountdata: %s", __func__, mountdata ));*/ 215 /*cFYI(1, ("%s: submount mountdata: %s", __func__, mountdata ));*/
@@ -198,7 +221,7 @@ compose_mount_options_out:
198 221
199 222
200static struct vfsmount *cifs_dfs_do_refmount(const struct vfsmount *mnt_parent, 223static struct vfsmount *cifs_dfs_do_refmount(const struct vfsmount *mnt_parent,
201 struct dentry *dentry, char *ref_unc) 224 struct dentry *dentry, const struct dfs_info3_param *ref)
202{ 225{
203 struct cifs_sb_info *cifs_sb; 226 struct cifs_sb_info *cifs_sb;
204 struct vfsmount *mnt; 227 struct vfsmount *mnt;
@@ -207,7 +230,7 @@ static struct vfsmount *cifs_dfs_do_refmount(const struct vfsmount *mnt_parent,
207 230
208 cifs_sb = CIFS_SB(dentry->d_inode->i_sb); 231 cifs_sb = CIFS_SB(dentry->d_inode->i_sb);
209 mountdata = compose_mount_options(cifs_sb->mountdata, 232 mountdata = compose_mount_options(cifs_sb->mountdata,
210 ref_unc, &devname); 233 dentry, ref, &devname);
211 234
212 if (IS_ERR(mountdata)) 235 if (IS_ERR(mountdata))
213 return (struct vfsmount *)mountdata; 236 return (struct vfsmount *)mountdata;
@@ -310,7 +333,7 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)
310 } 333 }
311 mnt = cifs_dfs_do_refmount(nd->path.mnt, 334 mnt = cifs_dfs_do_refmount(nd->path.mnt,
312 nd->path.dentry, 335 nd->path.dentry,
313 referrals[i].node_name); 336 referrals + i);
314 cFYI(1, ("%s: cifs_dfs_do_refmount:%s , mnt:%p", 337 cFYI(1, ("%s: cifs_dfs_do_refmount:%s , mnt:%p",
315 __func__, 338 __func__,
316 referrals[i].node_name, mnt)); 339 referrals[i].node_name, mnt));
diff --git a/fs/cifs/cifs_spnego.c b/fs/cifs/cifs_spnego.c
index fcee9298b620..0ab2fb5afef1 100644
--- a/fs/cifs/cifs_spnego.c
+++ b/fs/cifs/cifs_spnego.c
@@ -73,8 +73,8 @@ struct key_type cifs_spnego_key_type = {
73 * strlen(";sec=ntlmsspi") */ 73 * strlen(";sec=ntlmsspi") */
74#define MAX_MECH_STR_LEN 13 74#define MAX_MECH_STR_LEN 13
75 75
76/* max possible addr len eg FEDC:BA98:7654:3210:FEDC:BA98:7654:3210/60 */ 76/* max possible addr len eg FEDC:BA98:7654:3210:FEDC:BA98:7654:3210/128 */
77#define MAX_IPV6_ADDR_LEN 42 77#define MAX_IPV6_ADDR_LEN 43
78 78
79/* strlen of "host=" */ 79/* strlen of "host=" */
80#define HOST_KEY_LEN 5 80#define HOST_KEY_LEN 5
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index ac5915d61dca..d9cf467309e8 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -514,10 +514,11 @@ static void cifs_umount_begin(struct super_block *sb)
514 tcon = cifs_sb->tcon; 514 tcon = cifs_sb->tcon;
515 if (tcon == NULL) 515 if (tcon == NULL)
516 return; 516 return;
517 down(&tcon->tconSem); 517
518 if (atomic_read(&tcon->useCount) == 1) 518 read_lock(&cifs_tcp_ses_lock);
519 if (tcon->tc_count == 1)
519 tcon->tidStatus = CifsExiting; 520 tcon->tidStatus = CifsExiting;
520 up(&tcon->tconSem); 521 read_unlock(&cifs_tcp_ses_lock);
521 522
522 /* cancel_brl_requests(tcon); */ /* BB mark all brl mids as exiting */ 523 /* cancel_brl_requests(tcon); */ /* BB mark all brl mids as exiting */
523 /* cancel_notify_requests(tcon); */ 524 /* cancel_notify_requests(tcon); */
@@ -1013,7 +1014,7 @@ static int cifs_oplock_thread(void *dummyarg)
1013 not bother sending an oplock release if session 1014 not bother sending an oplock release if session
1014 to server still is disconnected since oplock 1015 to server still is disconnected since oplock
1015 already released by the server in that case */ 1016 already released by the server in that case */
1016 if (pTcon->tidStatus != CifsNeedReconnect) { 1017 if (!pTcon->need_reconnect) {
1017 rc = CIFSSMBLock(0, pTcon, netfid, 1018 rc = CIFSSMBLock(0, pTcon, netfid,
1018 0 /* len */ , 0 /* offset */, 0, 1019 0 /* len */ , 0 /* offset */, 0,
1019 0, LOCKING_ANDX_OPLOCK_RELEASE, 1020 0, LOCKING_ANDX_OPLOCK_RELEASE,
@@ -1031,24 +1032,24 @@ static int cifs_oplock_thread(void *dummyarg)
1031static int cifs_dnotify_thread(void *dummyarg) 1032static int cifs_dnotify_thread(void *dummyarg)
1032{ 1033{
1033 struct list_head *tmp; 1034 struct list_head *tmp;
1034 struct cifsSesInfo *ses; 1035 struct TCP_Server_Info *server;
1035 1036
1036 do { 1037 do {
1037 if (try_to_freeze()) 1038 if (try_to_freeze())
1038 continue; 1039 continue;
1039 set_current_state(TASK_INTERRUPTIBLE); 1040 set_current_state(TASK_INTERRUPTIBLE);
1040 schedule_timeout(15*HZ); 1041 schedule_timeout(15*HZ);
1041 read_lock(&GlobalSMBSeslock);
1042 /* check if any stuck requests that need 1042 /* check if any stuck requests that need
1043 to be woken up and wakeq so the 1043 to be woken up and wakeq so the
1044 thread can wake up and error out */ 1044 thread can wake up and error out */
1045 list_for_each(tmp, &GlobalSMBSessionList) { 1045 read_lock(&cifs_tcp_ses_lock);
1046 ses = list_entry(tmp, struct cifsSesInfo, 1046 list_for_each(tmp, &cifs_tcp_ses_list) {
1047 cifsSessionList); 1047 server = list_entry(tmp, struct TCP_Server_Info,
1048 if (ses->server && atomic_read(&ses->server->inFlight)) 1048 tcp_ses_list);
1049 wake_up_all(&ses->server->response_q); 1049 if (atomic_read(&server->inFlight))
1050 wake_up_all(&server->response_q);
1050 } 1051 }
1051 read_unlock(&GlobalSMBSeslock); 1052 read_unlock(&cifs_tcp_ses_lock);
1052 } while (!kthread_should_stop()); 1053 } while (!kthread_should_stop());
1053 1054
1054 return 0; 1055 return 0;
@@ -1059,9 +1060,7 @@ init_cifs(void)
1059{ 1060{
1060 int rc = 0; 1061 int rc = 0;
1061 cifs_proc_init(); 1062 cifs_proc_init();
1062/* INIT_LIST_HEAD(&GlobalServerList);*/ /* BB not implemented yet */ 1063 INIT_LIST_HEAD(&cifs_tcp_ses_list);
1063 INIT_LIST_HEAD(&GlobalSMBSessionList);
1064 INIT_LIST_HEAD(&GlobalTreeConnectionList);
1065 INIT_LIST_HEAD(&GlobalOplock_Q); 1064 INIT_LIST_HEAD(&GlobalOplock_Q);
1066#ifdef CONFIG_CIFS_EXPERIMENTAL 1065#ifdef CONFIG_CIFS_EXPERIMENTAL
1067 INIT_LIST_HEAD(&GlobalDnotifyReqList); 1066 INIT_LIST_HEAD(&GlobalDnotifyReqList);
@@ -1089,6 +1088,7 @@ init_cifs(void)
1089 GlobalMaxActiveXid = 0; 1088 GlobalMaxActiveXid = 0;
1090 memset(Local_System_Name, 0, 15); 1089 memset(Local_System_Name, 0, 15);
1091 rwlock_init(&GlobalSMBSeslock); 1090 rwlock_init(&GlobalSMBSeslock);
1091 rwlock_init(&cifs_tcp_ses_lock);
1092 spin_lock_init(&GlobalMid_Lock); 1092 spin_lock_init(&GlobalMid_Lock);
1093 1093
1094 if (cifs_max_pending < 2) { 1094 if (cifs_max_pending < 2) {
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index c791e5b5a914..c57c0565547f 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -85,8 +85,7 @@ enum securityEnum {
85}; 85};
86 86
87enum protocolEnum { 87enum protocolEnum {
88 IPV4 = 0, 88 TCP = 0,
89 IPV6,
90 SCTP 89 SCTP
91 /* Netbios frames protocol not supported at this time */ 90 /* Netbios frames protocol not supported at this time */
92}; 91};
@@ -122,6 +121,9 @@ struct cifs_cred {
122 */ 121 */
123 122
124struct TCP_Server_Info { 123struct TCP_Server_Info {
124 struct list_head tcp_ses_list;
125 struct list_head smb_ses_list;
126 int srv_count; /* reference counter */
125 /* 15 character server name + 0x20 16th byte indicating type = srv */ 127 /* 15 character server name + 0x20 16th byte indicating type = srv */
126 char server_RFC1001_name[SERVER_NAME_LEN_WITH_NULL]; 128 char server_RFC1001_name[SERVER_NAME_LEN_WITH_NULL];
127 char unicode_server_Name[SERVER_NAME_LEN_WITH_NULL * 2]; 129 char unicode_server_Name[SERVER_NAME_LEN_WITH_NULL * 2];
@@ -141,7 +143,8 @@ struct TCP_Server_Info {
141 char versionMajor; 143 char versionMajor;
142 char versionMinor; 144 char versionMinor;
143 bool svlocal:1; /* local server or remote */ 145 bool svlocal:1; /* local server or remote */
144 atomic_t socketUseCount; /* number of open cifs sessions on socket */ 146 bool noblocksnd; /* use blocking sendmsg */
147 bool noautotune; /* do not autotune send buf sizes */
145 atomic_t inFlight; /* number of requests on the wire to server */ 148 atomic_t inFlight; /* number of requests on the wire to server */
146#ifdef CONFIG_CIFS_STATS2 149#ifdef CONFIG_CIFS_STATS2
147 atomic_t inSend; /* requests trying to send */ 150 atomic_t inSend; /* requests trying to send */
@@ -192,13 +195,14 @@ struct cifsUidInfo {
192 * Session structure. One of these for each uid session with a particular host 195 * Session structure. One of these for each uid session with a particular host
193 */ 196 */
194struct cifsSesInfo { 197struct cifsSesInfo {
195 struct list_head cifsSessionList; 198 struct list_head smb_ses_list;
199 struct list_head tcon_list;
196 struct semaphore sesSem; 200 struct semaphore sesSem;
197#if 0 201#if 0
198 struct cifsUidInfo *uidInfo; /* pointer to user info */ 202 struct cifsUidInfo *uidInfo; /* pointer to user info */
199#endif 203#endif
200 struct TCP_Server_Info *server; /* pointer to server info */ 204 struct TCP_Server_Info *server; /* pointer to server info */
201 atomic_t inUse; /* # of mounts (tree connections) on this ses */ 205 int ses_count; /* reference counter */
202 enum statusEnum status; 206 enum statusEnum status;
203 unsigned overrideSecFlg; /* if non-zero override global sec flags */ 207 unsigned overrideSecFlg; /* if non-zero override global sec flags */
204 __u16 ipc_tid; /* special tid for connection to IPC share */ 208 __u16 ipc_tid; /* special tid for connection to IPC share */
@@ -214,6 +218,7 @@ struct cifsSesInfo {
214 char userName[MAX_USERNAME_SIZE + 1]; 218 char userName[MAX_USERNAME_SIZE + 1];
215 char *domainName; 219 char *domainName;
216 char *password; 220 char *password;
221 bool need_reconnect:1; /* connection reset, uid now invalid */
217}; 222};
218/* no more than one of the following three session flags may be set */ 223/* no more than one of the following three session flags may be set */
219#define CIFS_SES_NT4 1 224#define CIFS_SES_NT4 1
@@ -228,16 +233,15 @@ struct cifsSesInfo {
228 * session 233 * session
229 */ 234 */
230struct cifsTconInfo { 235struct cifsTconInfo {
231 struct list_head cifsConnectionList; 236 struct list_head tcon_list;
237 int tc_count;
232 struct list_head openFileList; 238 struct list_head openFileList;
233 struct semaphore tconSem;
234 struct cifsSesInfo *ses; /* pointer to session associated with */ 239 struct cifsSesInfo *ses; /* pointer to session associated with */
235 char treeName[MAX_TREE_SIZE + 1]; /* UNC name of resource in ASCII */ 240 char treeName[MAX_TREE_SIZE + 1]; /* UNC name of resource in ASCII */
236 char *nativeFileSystem; 241 char *nativeFileSystem;
237 __u16 tid; /* The 2 byte tree id */ 242 __u16 tid; /* The 2 byte tree id */
238 __u16 Flags; /* optional support bits */ 243 __u16 Flags; /* optional support bits */
239 enum statusEnum tidStatus; 244 enum statusEnum tidStatus;
240 atomic_t useCount; /* how many explicit/implicit mounts to share */
241#ifdef CONFIG_CIFS_STATS 245#ifdef CONFIG_CIFS_STATS
242 atomic_t num_smbs_sent; 246 atomic_t num_smbs_sent;
243 atomic_t num_writes; 247 atomic_t num_writes;
@@ -286,6 +290,7 @@ struct cifsTconInfo {
286 bool unix_ext:1; /* if false disable Linux extensions to CIFS protocol 290 bool unix_ext:1; /* if false disable Linux extensions to CIFS protocol
287 for this mount even if server would support */ 291 for this mount even if server would support */
288 bool local_lease:1; /* check leases (only) on local system not remote */ 292 bool local_lease:1; /* check leases (only) on local system not remote */
293 bool need_reconnect:1; /* connection reset, tid now invalid */
289 /* BB add field for back pointer to sb struct(s)? */ 294 /* BB add field for back pointer to sb struct(s)? */
290}; 295};
291 296
@@ -586,22 +591,30 @@ require use of the stronger protocol */
586#endif 591#endif
587 592
588/* 593/*
589 * The list of servers that did not respond with NT LM 0.12. 594 * the list of TCP_Server_Info structures, ie each of the sockets
590 * This list helps improve performance and eliminate the messages indicating 595 * connecting our client to a distinct server (ip address), is
591 * that we had a communications error talking to the server in this list. 596 * chained together by cifs_tcp_ses_list. The list of all our SMB
597 * sessions (and from that the tree connections) can be found
598 * by iterating over cifs_tcp_ses_list
592 */ 599 */
593/* Feature not supported */ 600GLOBAL_EXTERN struct list_head cifs_tcp_ses_list;
594/* GLOBAL_EXTERN struct servers_not_supported *NotSuppList; */
595 601
596/* 602/*
597 * The following is a hash table of all the users we know about. 603 * This lock protects the cifs_tcp_ses_list, the list of smb sessions per
604 * tcp session, and the list of tcon's per smb session. It also protects
605 * the reference counters for the server, smb session, and tcon. Finally,
606 * changes to the tcon->tidStatus should be done while holding this lock.
598 */ 607 */
599GLOBAL_EXTERN struct smbUidInfo *GlobalUidList[UID_HASH]; 608GLOBAL_EXTERN rwlock_t cifs_tcp_ses_lock;
600 609
601/* GLOBAL_EXTERN struct list_head GlobalServerList; BB not implemented yet */ 610/*
602GLOBAL_EXTERN struct list_head GlobalSMBSessionList; 611 * This lock protects the cifs_file->llist and cifs_file->flist
603GLOBAL_EXTERN struct list_head GlobalTreeConnectionList; 612 * list operations, and updates to some flags (cifs_file->invalidHandle)
604GLOBAL_EXTERN rwlock_t GlobalSMBSeslock; /* protects list inserts on 3 above */ 613 * It will be moved to either use the tcon->stat_lock or equivalent later.
614 * If cifs_tcp_ses_lock and the lock below are both needed to be held, then
615 * the cifs_tcp_ses_lock must be grabbed first and released last.
616 */
617GLOBAL_EXTERN rwlock_t GlobalSMBSeslock;
605 618
606GLOBAL_EXTERN struct list_head GlobalOplock_Q; 619GLOBAL_EXTERN struct list_head GlobalOplock_Q;
607 620
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
index 0cff7fe986e8..6f21ecb85ce5 100644
--- a/fs/cifs/cifsproto.h
+++ b/fs/cifs/cifsproto.h
@@ -36,7 +36,7 @@ extern void cifs_buf_release(void *);
36extern struct smb_hdr *cifs_small_buf_get(void); 36extern struct smb_hdr *cifs_small_buf_get(void);
37extern void cifs_small_buf_release(void *); 37extern void cifs_small_buf_release(void *);
38extern int smb_send(struct socket *, struct smb_hdr *, 38extern int smb_send(struct socket *, struct smb_hdr *,
39 unsigned int /* length */ , struct sockaddr *); 39 unsigned int /* length */ , struct sockaddr *, bool);
40extern unsigned int _GetXid(void); 40extern unsigned int _GetXid(void);
41extern void _FreeXid(unsigned int); 41extern void _FreeXid(unsigned int);
42#define GetXid() (int)_GetXid(); cFYI(1,("CIFS VFS: in %s as Xid: %d with uid: %d",__func__, xid,current->fsuid)); 42#define GetXid() (int)_GetXid(); cFYI(1,("CIFS VFS: in %s as Xid: %d with uid: %d",__func__, xid,current->fsuid));
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index 843a85fb8b9a..6d51696dc762 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -190,10 +190,10 @@ small_smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
190 /* need to prevent multiple threads trying to 190 /* need to prevent multiple threads trying to
191 simultaneously reconnect the same SMB session */ 191 simultaneously reconnect the same SMB session */
192 down(&tcon->ses->sesSem); 192 down(&tcon->ses->sesSem);
193 if (tcon->ses->status == CifsNeedReconnect) 193 if (tcon->ses->need_reconnect)
194 rc = cifs_setup_session(0, tcon->ses, 194 rc = cifs_setup_session(0, tcon->ses,
195 nls_codepage); 195 nls_codepage);
196 if (!rc && (tcon->tidStatus == CifsNeedReconnect)) { 196 if (!rc && (tcon->need_reconnect)) {
197 mark_open_files_invalid(tcon); 197 mark_open_files_invalid(tcon);
198 rc = CIFSTCon(0, tcon->ses, tcon->treeName, 198 rc = CIFSTCon(0, tcon->ses, tcon->treeName,
199 tcon, nls_codepage); 199 tcon, nls_codepage);
@@ -337,10 +337,10 @@ smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
337 /* need to prevent multiple threads trying to 337 /* need to prevent multiple threads trying to
338 simultaneously reconnect the same SMB session */ 338 simultaneously reconnect the same SMB session */
339 down(&tcon->ses->sesSem); 339 down(&tcon->ses->sesSem);
340 if (tcon->ses->status == CifsNeedReconnect) 340 if (tcon->ses->need_reconnect)
341 rc = cifs_setup_session(0, tcon->ses, 341 rc = cifs_setup_session(0, tcon->ses,
342 nls_codepage); 342 nls_codepage);
343 if (!rc && (tcon->tidStatus == CifsNeedReconnect)) { 343 if (!rc && (tcon->need_reconnect)) {
344 mark_open_files_invalid(tcon); 344 mark_open_files_invalid(tcon);
345 rc = CIFSTCon(0, tcon->ses, tcon->treeName, 345 rc = CIFSTCon(0, tcon->ses, tcon->treeName,
346 tcon, nls_codepage); 346 tcon, nls_codepage);
@@ -664,8 +664,9 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
664 rc = -EIO; 664 rc = -EIO;
665 goto neg_err_exit; 665 goto neg_err_exit;
666 } 666 }
667 667 read_lock(&cifs_tcp_ses_lock);
668 if (server->socketUseCount.counter > 1) { 668 if (server->srv_count > 1) {
669 read_unlock(&cifs_tcp_ses_lock);
669 if (memcmp(server->server_GUID, 670 if (memcmp(server->server_GUID,
670 pSMBr->u.extended_response. 671 pSMBr->u.extended_response.
671 GUID, 16) != 0) { 672 GUID, 16) != 0) {
@@ -674,9 +675,11 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
674 pSMBr->u.extended_response.GUID, 675 pSMBr->u.extended_response.GUID,
675 16); 676 16);
676 } 677 }
677 } else 678 } else {
679 read_unlock(&cifs_tcp_ses_lock);
678 memcpy(server->server_GUID, 680 memcpy(server->server_GUID,
679 pSMBr->u.extended_response.GUID, 16); 681 pSMBr->u.extended_response.GUID, 16);
682 }
680 683
681 if (count == 16) { 684 if (count == 16) {
682 server->secType = RawNTLMSSP; 685 server->secType = RawNTLMSSP;
@@ -739,50 +742,31 @@ CIFSSMBTDis(const int xid, struct cifsTconInfo *tcon)
739 int rc = 0; 742 int rc = 0;
740 743
741 cFYI(1, ("In tree disconnect")); 744 cFYI(1, ("In tree disconnect"));
742 /*
743 * If last user of the connection and
744 * connection alive - disconnect it
745 * If this is the last connection on the server session disconnect it
746 * (and inside session disconnect we should check if tcp socket needs
747 * to be freed and kernel thread woken up).
748 */
749 if (tcon)
750 down(&tcon->tconSem);
751 else
752 return -EIO;
753 745
754 atomic_dec(&tcon->useCount); 746 /* BB: do we need to check this? These should never be NULL. */
755 if (atomic_read(&tcon->useCount) > 0) { 747 if ((tcon->ses == NULL) || (tcon->ses->server == NULL))
756 up(&tcon->tconSem); 748 return -EIO;
757 return -EBUSY;
758 }
759 749
760 /* No need to return error on this operation if tid invalidated and 750 /*
761 closed on server already e.g. due to tcp session crashing */ 751 * No need to return error on this operation if tid invalidated and
762 if (tcon->tidStatus == CifsNeedReconnect) { 752 * closed on server already e.g. due to tcp session crashing. Also,
763 up(&tcon->tconSem); 753 * the tcon is no longer on the list, so no need to take lock before
754 * checking this.
755 */
756 if (tcon->need_reconnect)
764 return 0; 757 return 0;
765 }
766 758
767 if ((tcon->ses == NULL) || (tcon->ses->server == NULL)) {
768 up(&tcon->tconSem);
769 return -EIO;
770 }
771 rc = small_smb_init(SMB_COM_TREE_DISCONNECT, 0, tcon, 759 rc = small_smb_init(SMB_COM_TREE_DISCONNECT, 0, tcon,
772 (void **)&smb_buffer); 760 (void **)&smb_buffer);
773 if (rc) { 761 if (rc)
774 up(&tcon->tconSem);
775 return rc; 762 return rc;
776 }
777 763
778 rc = SendReceiveNoRsp(xid, tcon->ses, smb_buffer, 0); 764 rc = SendReceiveNoRsp(xid, tcon->ses, smb_buffer, 0);
779 if (rc) 765 if (rc)
780 cFYI(1, ("Tree disconnect failed %d", rc)); 766 cFYI(1, ("Tree disconnect failed %d", rc));
781 767
782 up(&tcon->tconSem);
783
784 /* No need to return error on this operation if tid invalidated and 768 /* No need to return error on this operation if tid invalidated and
785 closed on server already e.g. due to tcp session crashing */ 769 closed on server already e.g. due to tcp session crashing */
786 if (rc == -EAGAIN) 770 if (rc == -EAGAIN)
787 rc = 0; 771 rc = 0;
788 772
@@ -796,43 +780,36 @@ CIFSSMBLogoff(const int xid, struct cifsSesInfo *ses)
796 int rc = 0; 780 int rc = 0;
797 781
798 cFYI(1, ("In SMBLogoff for session disconnect")); 782 cFYI(1, ("In SMBLogoff for session disconnect"));
799 if (ses) 783
800 down(&ses->sesSem); 784 /*
801 else 785 * BB: do we need to check validity of ses and server? They should
786 * always be valid since we have an active reference. If not, that
787 * should probably be a BUG()
788 */
789 if (!ses || !ses->server)
802 return -EIO; 790 return -EIO;
803 791
804 atomic_dec(&ses->inUse); 792 down(&ses->sesSem);
805 if (atomic_read(&ses->inUse) > 0) { 793 if (ses->need_reconnect)
806 up(&ses->sesSem); 794 goto session_already_dead; /* no need to send SMBlogoff if uid
807 return -EBUSY; 795 already closed due to reconnect */
808 }
809 rc = small_smb_init(SMB_COM_LOGOFF_ANDX, 2, NULL, (void **)&pSMB); 796 rc = small_smb_init(SMB_COM_LOGOFF_ANDX, 2, NULL, (void **)&pSMB);
810 if (rc) { 797 if (rc) {
811 up(&ses->sesSem); 798 up(&ses->sesSem);
812 return rc; 799 return rc;
813 } 800 }
814 801
815 if (ses->server) { 802 pSMB->hdr.Mid = GetNextMid(ses->server);
816 pSMB->hdr.Mid = GetNextMid(ses->server);
817 803
818 if (ses->server->secMode & 804 if (ses->server->secMode &
819 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) 805 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED))
820 pSMB->hdr.Flags2 |= SMBFLG2_SECURITY_SIGNATURE; 806 pSMB->hdr.Flags2 |= SMBFLG2_SECURITY_SIGNATURE;
821 }
822 807
823 pSMB->hdr.Uid = ses->Suid; 808 pSMB->hdr.Uid = ses->Suid;
824 809
825 pSMB->AndXCommand = 0xFF; 810 pSMB->AndXCommand = 0xFF;
826 rc = SendReceiveNoRsp(xid, ses, (struct smb_hdr *) pSMB, 0); 811 rc = SendReceiveNoRsp(xid, ses, (struct smb_hdr *) pSMB, 0);
827 if (ses->server) { 812session_already_dead:
828 atomic_dec(&ses->server->socketUseCount);
829 if (atomic_read(&ses->server->socketUseCount) == 0) {
830 spin_lock(&GlobalMid_Lock);
831 ses->server->tcpStatus = CifsExiting;
832 spin_unlock(&GlobalMid_Lock);
833 rc = -ESHUTDOWN;
834 }
835 }
836 up(&ses->sesSem); 813 up(&ses->sesSem);
837 814
838 /* if session dead then we do not need to do ulogoff, 815 /* if session dead then we do not need to do ulogoff,
@@ -1536,7 +1513,7 @@ CIFSSMBWrite(const int xid, struct cifsTconInfo *tcon,
1536 __u32 bytes_sent; 1513 __u32 bytes_sent;
1537 __u16 byte_count; 1514 __u16 byte_count;
1538 1515
1539 /* cFYI(1,("write at %lld %d bytes",offset,count));*/ 1516 /* cFYI(1, ("write at %lld %d bytes", offset, count));*/
1540 if (tcon->ses == NULL) 1517 if (tcon->ses == NULL)
1541 return -ECONNABORTED; 1518 return -ECONNABORTED;
1542 1519
@@ -3922,6 +3899,27 @@ GetInodeNumOut:
3922 return rc; 3899 return rc;
3923} 3900}
3924 3901
3902/* computes length of UCS string converted to host codepage
3903 * @src: UCS string
3904 * @maxlen: length of the input string in UCS characters
3905 * (not in bytes)
3906 *
3907 * return: size of input string in host codepage
3908 */
3909static int hostlen_fromUCS(const __le16 *src, const int maxlen,
3910 const struct nls_table *nls_codepage) {
3911 int i;
3912 int hostlen = 0;
3913 char to[4];
3914 int charlen;
3915 for (i = 0; (i < maxlen) && src[i]; ++i) {
3916 charlen = nls_codepage->uni2char(le16_to_cpu(src[i]),
3917 to, NLS_MAX_CHARSET_SIZE);
3918 hostlen += charlen > 0 ? charlen : 1;
3919 }
3920 return hostlen;
3921}
3922
3925/* parses DFS refferal V3 structure 3923/* parses DFS refferal V3 structure
3926 * caller is responsible for freeing target_nodes 3924 * caller is responsible for freeing target_nodes
3927 * returns: 3925 * returns:
@@ -3932,7 +3930,8 @@ static int
3932parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr, 3930parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
3933 unsigned int *num_of_nodes, 3931 unsigned int *num_of_nodes,
3934 struct dfs_info3_param **target_nodes, 3932 struct dfs_info3_param **target_nodes,
3935 const struct nls_table *nls_codepage) 3933 const struct nls_table *nls_codepage, int remap,
3934 const char *searchName)
3936{ 3935{
3937 int i, rc = 0; 3936 int i, rc = 0;
3938 char *data_end; 3937 char *data_end;
@@ -3983,7 +3982,18 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
3983 struct dfs_info3_param *node = (*target_nodes)+i; 3982 struct dfs_info3_param *node = (*target_nodes)+i;
3984 3983
3985 node->flags = le16_to_cpu(pSMBr->DFSFlags); 3984 node->flags = le16_to_cpu(pSMBr->DFSFlags);
3986 node->path_consumed = le16_to_cpu(pSMBr->PathConsumed); 3985 if (is_unicode) {
3986 __le16 *tmp = kmalloc(strlen(searchName)*2 + 2,
3987 GFP_KERNEL);
3988 cifsConvertToUCS((__le16 *) tmp, searchName,
3989 PATH_MAX, nls_codepage, remap);
3990 node->path_consumed = hostlen_fromUCS(tmp,
3991 le16_to_cpu(pSMBr->PathConsumed)/2,
3992 nls_codepage);
3993 kfree(tmp);
3994 } else
3995 node->path_consumed = le16_to_cpu(pSMBr->PathConsumed);
3996
3987 node->server_type = le16_to_cpu(ref->ServerType); 3997 node->server_type = le16_to_cpu(ref->ServerType);
3988 node->ref_flag = le16_to_cpu(ref->ReferralEntryFlags); 3998 node->ref_flag = le16_to_cpu(ref->ReferralEntryFlags);
3989 3999
@@ -4116,7 +4126,8 @@ getDFSRetry:
4116 4126
4117 /* parse returned result into more usable form */ 4127 /* parse returned result into more usable form */
4118 rc = parse_DFS_referrals(pSMBr, num_of_nodes, 4128 rc = parse_DFS_referrals(pSMBr, num_of_nodes,
4119 target_nodes, nls_codepage); 4129 target_nodes, nls_codepage, remap,
4130 searchName);
4120 4131
4121GetDFSRefExit: 4132GetDFSRefExit:
4122 cifs_buf_release(pSMB); 4133 cifs_buf_release(pSMB);
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 71b7661e2260..c7d341714586 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -92,6 +92,8 @@ struct smb_vol {
92 bool seal:1; /* request transport encryption on share */ 92 bool seal:1; /* request transport encryption on share */
93 bool nodfs:1; /* Do not request DFS, even if available */ 93 bool nodfs:1; /* Do not request DFS, even if available */
94 bool local_lease:1; /* check leases only on local system, not remote */ 94 bool local_lease:1; /* check leases only on local system, not remote */
95 bool noblocksnd:1;
96 bool noautotune:1;
95 unsigned int rsize; 97 unsigned int rsize;
96 unsigned int wsize; 98 unsigned int wsize;
97 unsigned int sockopt; 99 unsigned int sockopt;
@@ -102,9 +104,11 @@ struct smb_vol {
102static int ipv4_connect(struct sockaddr_in *psin_server, 104static int ipv4_connect(struct sockaddr_in *psin_server,
103 struct socket **csocket, 105 struct socket **csocket,
104 char *netb_name, 106 char *netb_name,
105 char *server_netb_name); 107 char *server_netb_name,
108 bool noblocksnd,
109 bool nosndbuf); /* ipv6 never set sndbuf size */
106static int ipv6_connect(struct sockaddr_in6 *psin_server, 110static int ipv6_connect(struct sockaddr_in6 *psin_server,
107 struct socket **csocket); 111 struct socket **csocket, bool noblocksnd);
108 112
109 113
110 /* 114 /*
@@ -120,7 +124,7 @@ static int
120cifs_reconnect(struct TCP_Server_Info *server) 124cifs_reconnect(struct TCP_Server_Info *server)
121{ 125{
122 int rc = 0; 126 int rc = 0;
123 struct list_head *tmp; 127 struct list_head *tmp, *tmp2;
124 struct cifsSesInfo *ses; 128 struct cifsSesInfo *ses;
125 struct cifsTconInfo *tcon; 129 struct cifsTconInfo *tcon;
126 struct mid_q_entry *mid_entry; 130 struct mid_q_entry *mid_entry;
@@ -140,23 +144,17 @@ cifs_reconnect(struct TCP_Server_Info *server)
140 144
141 /* before reconnecting the tcp session, mark the smb session (uid) 145 /* before reconnecting the tcp session, mark the smb session (uid)
142 and the tid bad so they are not used until reconnected */ 146 and the tid bad so they are not used until reconnected */
143 read_lock(&GlobalSMBSeslock); 147 read_lock(&cifs_tcp_ses_lock);
144 list_for_each(tmp, &GlobalSMBSessionList) { 148 list_for_each(tmp, &server->smb_ses_list) {
145 ses = list_entry(tmp, struct cifsSesInfo, cifsSessionList); 149 ses = list_entry(tmp, struct cifsSesInfo, smb_ses_list);
146 if (ses->server) { 150 ses->need_reconnect = true;
147 if (ses->server == server) { 151 ses->ipc_tid = 0;
148 ses->status = CifsNeedReconnect; 152 list_for_each(tmp2, &ses->tcon_list) {
149 ses->ipc_tid = 0; 153 tcon = list_entry(tmp2, struct cifsTconInfo, tcon_list);
150 } 154 tcon->need_reconnect = true;
151 } 155 }
152 /* else tcp and smb sessions need reconnection */
153 }
154 list_for_each(tmp, &GlobalTreeConnectionList) {
155 tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList);
156 if ((tcon->ses) && (tcon->ses->server == server))
157 tcon->tidStatus = CifsNeedReconnect;
158 } 156 }
159 read_unlock(&GlobalSMBSeslock); 157 read_unlock(&cifs_tcp_ses_lock);
160 /* do not want to be sending data on a socket we are freeing */ 158 /* do not want to be sending data on a socket we are freeing */
161 down(&server->tcpSem); 159 down(&server->tcpSem);
162 if (server->ssocket) { 160 if (server->ssocket) {
@@ -189,14 +187,15 @@ cifs_reconnect(struct TCP_Server_Info *server)
189 while ((server->tcpStatus != CifsExiting) && 187 while ((server->tcpStatus != CifsExiting) &&
190 (server->tcpStatus != CifsGood)) { 188 (server->tcpStatus != CifsGood)) {
191 try_to_freeze(); 189 try_to_freeze();
192 if (server->protocolType == IPV6) { 190 if (server->addr.sockAddr6.sin6_family == AF_INET6) {
193 rc = ipv6_connect(&server->addr.sockAddr6, 191 rc = ipv6_connect(&server->addr.sockAddr6,
194 &server->ssocket); 192 &server->ssocket, server->noautotune);
195 } else { 193 } else {
196 rc = ipv4_connect(&server->addr.sockAddr, 194 rc = ipv4_connect(&server->addr.sockAddr,
197 &server->ssocket, 195 &server->ssocket,
198 server->workstation_RFC1001_name, 196 server->workstation_RFC1001_name,
199 server->server_RFC1001_name); 197 server->server_RFC1001_name,
198 server->noblocksnd, server->noautotune);
200 } 199 }
201 if (rc) { 200 if (rc) {
202 cFYI(1, ("reconnect error %d", rc)); 201 cFYI(1, ("reconnect error %d", rc));
@@ -412,9 +411,14 @@ incomplete_rcv:
412 msleep(1); /* minimum sleep to prevent looping 411 msleep(1); /* minimum sleep to prevent looping
413 allowing socket to clear and app threads to set 412 allowing socket to clear and app threads to set
414 tcpStatus CifsNeedReconnect if server hung */ 413 tcpStatus CifsNeedReconnect if server hung */
415 if (pdu_length < 4) 414 if (pdu_length < 4) {
415 iov.iov_base = (4 - pdu_length) +
416 (char *)smb_buffer;
417 iov.iov_len = pdu_length;
418 smb_msg.msg_control = NULL;
419 smb_msg.msg_controllen = 0;
416 goto incomplete_rcv; 420 goto incomplete_rcv;
417 else 421 } else
418 continue; 422 continue;
419 } else if (length <= 0) { 423 } else if (length <= 0) {
420 if (server->tcpStatus == CifsNew) { 424 if (server->tcpStatus == CifsNew) {
@@ -649,6 +653,11 @@ multi_t2_fnd:
649 } 653 }
650 } /* end while !EXITING */ 654 } /* end while !EXITING */
651 655
656 /* take it off the list, if it's not already */
657 write_lock(&cifs_tcp_ses_lock);
658 list_del_init(&server->tcp_ses_list);
659 write_unlock(&cifs_tcp_ses_lock);
660
652 spin_lock(&GlobalMid_Lock); 661 spin_lock(&GlobalMid_Lock);
653 server->tcpStatus = CifsExiting; 662 server->tcpStatus = CifsExiting;
654 spin_unlock(&GlobalMid_Lock); 663 spin_unlock(&GlobalMid_Lock);
@@ -681,29 +690,29 @@ multi_t2_fnd:
681 if (smallbuf) /* no sense logging a debug message if NULL */ 690 if (smallbuf) /* no sense logging a debug message if NULL */
682 cifs_small_buf_release(smallbuf); 691 cifs_small_buf_release(smallbuf);
683 692
684 read_lock(&GlobalSMBSeslock); 693 /*
694 * BB: we shouldn't have to do any of this. It shouldn't be
695 * possible to exit from the thread with active SMB sessions
696 */
697 read_lock(&cifs_tcp_ses_lock);
685 if (list_empty(&server->pending_mid_q)) { 698 if (list_empty(&server->pending_mid_q)) {
686 /* loop through server session structures attached to this and 699 /* loop through server session structures attached to this and
687 mark them dead */ 700 mark them dead */
688 list_for_each(tmp, &GlobalSMBSessionList) { 701 list_for_each(tmp, &server->smb_ses_list) {
689 ses = 702 ses = list_entry(tmp, struct cifsSesInfo,
690 list_entry(tmp, struct cifsSesInfo, 703 smb_ses_list);
691 cifsSessionList); 704 ses->status = CifsExiting;
692 if (ses->server == server) { 705 ses->server = NULL;
693 ses->status = CifsExiting;
694 ses->server = NULL;
695 }
696 } 706 }
697 read_unlock(&GlobalSMBSeslock); 707 read_unlock(&cifs_tcp_ses_lock);
698 } else { 708 } else {
699 /* although we can not zero the server struct pointer yet, 709 /* although we can not zero the server struct pointer yet,
700 since there are active requests which may depnd on them, 710 since there are active requests which may depnd on them,
701 mark the corresponding SMB sessions as exiting too */ 711 mark the corresponding SMB sessions as exiting too */
702 list_for_each(tmp, &GlobalSMBSessionList) { 712 list_for_each(tmp, &server->smb_ses_list) {
703 ses = list_entry(tmp, struct cifsSesInfo, 713 ses = list_entry(tmp, struct cifsSesInfo,
704 cifsSessionList); 714 smb_ses_list);
705 if (ses->server == server) 715 ses->status = CifsExiting;
706 ses->status = CifsExiting;
707 } 716 }
708 717
709 spin_lock(&GlobalMid_Lock); 718 spin_lock(&GlobalMid_Lock);
@@ -718,7 +727,7 @@ multi_t2_fnd:
718 } 727 }
719 } 728 }
720 spin_unlock(&GlobalMid_Lock); 729 spin_unlock(&GlobalMid_Lock);
721 read_unlock(&GlobalSMBSeslock); 730 read_unlock(&cifs_tcp_ses_lock);
722 /* 1/8th of sec is more than enough time for them to exit */ 731 /* 1/8th of sec is more than enough time for them to exit */
723 msleep(125); 732 msleep(125);
724 } 733 }
@@ -740,14 +749,13 @@ multi_t2_fnd:
740 if there are any pointing to this (e.g 749 if there are any pointing to this (e.g
741 if a crazy root user tried to kill cifsd 750 if a crazy root user tried to kill cifsd
742 kernel thread explicitly this might happen) */ 751 kernel thread explicitly this might happen) */
743 write_lock(&GlobalSMBSeslock); 752 /* BB: This shouldn't be necessary, see above */
744 list_for_each(tmp, &GlobalSMBSessionList) { 753 read_lock(&cifs_tcp_ses_lock);
745 ses = list_entry(tmp, struct cifsSesInfo, 754 list_for_each(tmp, &server->smb_ses_list) {
746 cifsSessionList); 755 ses = list_entry(tmp, struct cifsSesInfo, smb_ses_list);
747 if (ses->server == server) 756 ses->server = NULL;
748 ses->server = NULL;
749 } 757 }
750 write_unlock(&GlobalSMBSeslock); 758 read_unlock(&cifs_tcp_ses_lock);
751 759
752 kfree(server->hostname); 760 kfree(server->hostname);
753 task_to_wake = xchg(&server->tsk, NULL); 761 task_to_wake = xchg(&server->tsk, NULL);
@@ -1192,6 +1200,10 @@ cifs_parse_mount_options(char *options, const char *devname,
1192 /* ignore */ 1200 /* ignore */
1193 } else if (strnicmp(data, "rw", 2) == 0) { 1201 } else if (strnicmp(data, "rw", 2) == 0) {
1194 vol->rw = true; 1202 vol->rw = true;
1203 } else if (strnicmp(data, "noblocksend", 11) == 0) {
1204 vol->noblocksnd = 1;
1205 } else if (strnicmp(data, "noautotune", 10) == 0) {
1206 vol->noautotune = 1;
1195 } else if ((strnicmp(data, "suid", 4) == 0) || 1207 } else if ((strnicmp(data, "suid", 4) == 0) ||
1196 (strnicmp(data, "nosuid", 6) == 0) || 1208 (strnicmp(data, "nosuid", 6) == 0) ||
1197 (strnicmp(data, "exec", 4) == 0) || 1209 (strnicmp(data, "exec", 4) == 0) ||
@@ -1343,94 +1355,158 @@ cifs_parse_mount_options(char *options, const char *devname,
1343 return 0; 1355 return 0;
1344} 1356}
1345 1357
1346static struct cifsSesInfo * 1358static struct TCP_Server_Info *
1347cifs_find_tcp_session(struct in_addr *target_ip_addr, 1359cifs_find_tcp_session(struct sockaddr *addr)
1348 struct in6_addr *target_ip6_addr,
1349 char *userName, struct TCP_Server_Info **psrvTcp)
1350{ 1360{
1351 struct list_head *tmp; 1361 struct list_head *tmp;
1352 struct cifsSesInfo *ses; 1362 struct TCP_Server_Info *server;
1353 1363 struct sockaddr_in *addr4 = (struct sockaddr_in *) addr;
1354 *psrvTcp = NULL; 1364 struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *) addr;
1365
1366 write_lock(&cifs_tcp_ses_lock);
1367 list_for_each(tmp, &cifs_tcp_ses_list) {
1368 server = list_entry(tmp, struct TCP_Server_Info,
1369 tcp_ses_list);
1370 /*
1371 * the demux thread can exit on its own while still in CifsNew
1372 * so don't accept any sockets in that state. Since the
1373 * tcpStatus never changes back to CifsNew it's safe to check
1374 * for this without a lock.
1375 */
1376 if (server->tcpStatus == CifsNew)
1377 continue;
1355 1378
1356 read_lock(&GlobalSMBSeslock); 1379 if (addr->sa_family == AF_INET &&
1357 list_for_each(tmp, &GlobalSMBSessionList) { 1380 (addr4->sin_addr.s_addr !=
1358 ses = list_entry(tmp, struct cifsSesInfo, cifsSessionList); 1381 server->addr.sockAddr.sin_addr.s_addr))
1359 if (!ses->server) 1382 continue;
1383 else if (addr->sa_family == AF_INET6 &&
1384 memcmp(&server->addr.sockAddr6.sin6_addr,
1385 &addr6->sin6_addr, sizeof(addr6->sin6_addr)))
1360 continue; 1386 continue;
1361 1387
1362 if (target_ip_addr && 1388 ++server->srv_count;
1363 ses->server->addr.sockAddr.sin_addr.s_addr != target_ip_addr->s_addr) 1389 write_unlock(&cifs_tcp_ses_lock);
1364 continue; 1390 cFYI(1, ("Existing tcp session with server found"));
1365 else if (target_ip6_addr && 1391 return server;
1366 memcmp(&ses->server->addr.sockAddr6.sin6_addr, 1392 }
1367 target_ip6_addr, sizeof(*target_ip6_addr))) 1393 write_unlock(&cifs_tcp_ses_lock);
1368 continue; 1394 return NULL;
1369 /* BB lock server and tcp session; increment use count here?? */ 1395}
1370 1396
1371 /* found a match on the TCP session */ 1397static void
1372 *psrvTcp = ses->server; 1398cifs_put_tcp_session(struct TCP_Server_Info *server)
1399{
1400 struct task_struct *task;
1373 1401
1374 /* BB check if reconnection needed */ 1402 write_lock(&cifs_tcp_ses_lock);
1375 if (strncmp(ses->userName, userName, MAX_USERNAME_SIZE) == 0) { 1403 if (--server->srv_count > 0) {
1376 read_unlock(&GlobalSMBSeslock); 1404 write_unlock(&cifs_tcp_ses_lock);
1377 /* Found exact match on both TCP and 1405 return;
1378 SMB sessions */
1379 return ses;
1380 }
1381 /* else tcp and smb sessions need reconnection */
1382 } 1406 }
1383 read_unlock(&GlobalSMBSeslock);
1384 1407
1385 return NULL; 1408 list_del_init(&server->tcp_ses_list);
1409 write_unlock(&cifs_tcp_ses_lock);
1410
1411 spin_lock(&GlobalMid_Lock);
1412 server->tcpStatus = CifsExiting;
1413 spin_unlock(&GlobalMid_Lock);
1414
1415 task = xchg(&server->tsk, NULL);
1416 if (task)
1417 force_sig(SIGKILL, task);
1386} 1418}
1387 1419
1388static struct cifsTconInfo * 1420static struct cifsSesInfo *
1389find_unc(__be32 new_target_ip_addr, char *uncName, char *userName) 1421cifs_find_smb_ses(struct TCP_Server_Info *server, char *username)
1390{ 1422{
1391 struct list_head *tmp; 1423 struct list_head *tmp;
1392 struct cifsTconInfo *tcon; 1424 struct cifsSesInfo *ses;
1393 __be32 old_ip;
1394
1395 read_lock(&GlobalSMBSeslock);
1396 1425
1397 list_for_each(tmp, &GlobalTreeConnectionList) { 1426 write_lock(&cifs_tcp_ses_lock);
1398 cFYI(1, ("Next tcon")); 1427 list_for_each(tmp, &server->smb_ses_list) {
1399 tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList); 1428 ses = list_entry(tmp, struct cifsSesInfo, smb_ses_list);
1400 if (!tcon->ses || !tcon->ses->server) 1429 if (strncmp(ses->userName, username, MAX_USERNAME_SIZE))
1401 continue; 1430 continue;
1402 1431
1403 old_ip = tcon->ses->server->addr.sockAddr.sin_addr.s_addr; 1432 ++ses->ses_count;
1404 cFYI(1, ("old ip addr: %x == new ip %x ?", 1433 write_unlock(&cifs_tcp_ses_lock);
1405 old_ip, new_target_ip_addr)); 1434 return ses;
1435 }
1436 write_unlock(&cifs_tcp_ses_lock);
1437 return NULL;
1438}
1439
1440static void
1441cifs_put_smb_ses(struct cifsSesInfo *ses)
1442{
1443 int xid;
1444 struct TCP_Server_Info *server = ses->server;
1406 1445
1407 if (old_ip != new_target_ip_addr) 1446 write_lock(&cifs_tcp_ses_lock);
1408 continue; 1447 if (--ses->ses_count > 0) {
1448 write_unlock(&cifs_tcp_ses_lock);
1449 return;
1450 }
1409 1451
1410 /* BB lock tcon, server, tcp session and increment use count? */ 1452 list_del_init(&ses->smb_ses_list);
1411 /* found a match on the TCP session */ 1453 write_unlock(&cifs_tcp_ses_lock);
1412 /* BB check if reconnection needed */
1413 cFYI(1, ("IP match, old UNC: %s new: %s",
1414 tcon->treeName, uncName));
1415 1454
1416 if (strncmp(tcon->treeName, uncName, MAX_TREE_SIZE)) 1455 if (ses->status == CifsGood) {
1417 continue; 1456 xid = GetXid();
1457 CIFSSMBLogoff(xid, ses);
1458 _FreeXid(xid);
1459 }
1460 sesInfoFree(ses);
1461 cifs_put_tcp_session(server);
1462}
1418 1463
1419 cFYI(1, ("and old usr: %s new: %s", 1464static struct cifsTconInfo *
1420 tcon->treeName, uncName)); 1465cifs_find_tcon(struct cifsSesInfo *ses, const char *unc)
1466{
1467 struct list_head *tmp;
1468 struct cifsTconInfo *tcon;
1421 1469
1422 if (strncmp(tcon->ses->userName, userName, MAX_USERNAME_SIZE)) 1470 write_lock(&cifs_tcp_ses_lock);
1471 list_for_each(tmp, &ses->tcon_list) {
1472 tcon = list_entry(tmp, struct cifsTconInfo, tcon_list);
1473 if (tcon->tidStatus == CifsExiting)
1474 continue;
1475 if (strncmp(tcon->treeName, unc, MAX_TREE_SIZE))
1423 continue; 1476 continue;
1424 1477
1425 /* matched smb session (user name) */ 1478 ++tcon->tc_count;
1426 read_unlock(&GlobalSMBSeslock); 1479 write_unlock(&cifs_tcp_ses_lock);
1427 return tcon; 1480 return tcon;
1428 } 1481 }
1429 1482 write_unlock(&cifs_tcp_ses_lock);
1430 read_unlock(&GlobalSMBSeslock);
1431 return NULL; 1483 return NULL;
1432} 1484}
1433 1485
1486static void
1487cifs_put_tcon(struct cifsTconInfo *tcon)
1488{
1489 int xid;
1490 struct cifsSesInfo *ses = tcon->ses;
1491
1492 write_lock(&cifs_tcp_ses_lock);
1493 if (--tcon->tc_count > 0) {
1494 write_unlock(&cifs_tcp_ses_lock);
1495 return;
1496 }
1497
1498 list_del_init(&tcon->tcon_list);
1499 write_unlock(&cifs_tcp_ses_lock);
1500
1501 xid = GetXid();
1502 CIFSSMBTDis(xid, tcon);
1503 _FreeXid(xid);
1504
1505 DeleteTconOplockQEntries(tcon);
1506 tconInfoFree(tcon);
1507 cifs_put_smb_ses(ses);
1508}
1509
1434int 1510int
1435get_dfs_path(int xid, struct cifsSesInfo *pSesInfo, const char *old_path, 1511get_dfs_path(int xid, struct cifsSesInfo *pSesInfo, const char *old_path,
1436 const struct nls_table *nls_codepage, unsigned int *pnum_referrals, 1512 const struct nls_table *nls_codepage, unsigned int *pnum_referrals,
@@ -1518,7 +1594,8 @@ static void rfc1002mangle(char *target, char *source, unsigned int length)
1518 1594
1519static int 1595static int
1520ipv4_connect(struct sockaddr_in *psin_server, struct socket **csocket, 1596ipv4_connect(struct sockaddr_in *psin_server, struct socket **csocket,
1521 char *netbios_name, char *target_name) 1597 char *netbios_name, char *target_name,
1598 bool noblocksnd, bool noautotune)
1522{ 1599{
1523 int rc = 0; 1600 int rc = 0;
1524 int connected = 0; 1601 int connected = 0;
@@ -1590,11 +1667,16 @@ ipv4_connect(struct sockaddr_in *psin_server, struct socket **csocket,
1590 (*csocket)->sk->sk_sndbuf, 1667 (*csocket)->sk->sk_sndbuf,
1591 (*csocket)->sk->sk_rcvbuf, (*csocket)->sk->sk_rcvtimeo)); 1668 (*csocket)->sk->sk_rcvbuf, (*csocket)->sk->sk_rcvtimeo));
1592 (*csocket)->sk->sk_rcvtimeo = 7 * HZ; 1669 (*csocket)->sk->sk_rcvtimeo = 7 * HZ;
1670 if (!noblocksnd)
1671 (*csocket)->sk->sk_sndtimeo = 3 * HZ;
1672
1593 /* make the bufsizes depend on wsize/rsize and max requests */ 1673 /* make the bufsizes depend on wsize/rsize and max requests */
1594 if ((*csocket)->sk->sk_sndbuf < (200 * 1024)) 1674 if (noautotune) {
1595 (*csocket)->sk->sk_sndbuf = 200 * 1024; 1675 if ((*csocket)->sk->sk_sndbuf < (200 * 1024))
1596 if ((*csocket)->sk->sk_rcvbuf < (140 * 1024)) 1676 (*csocket)->sk->sk_sndbuf = 200 * 1024;
1597 (*csocket)->sk->sk_rcvbuf = 140 * 1024; 1677 if ((*csocket)->sk->sk_rcvbuf < (140 * 1024))
1678 (*csocket)->sk->sk_rcvbuf = 140 * 1024;
1679 }
1598 1680
1599 /* send RFC1001 sessinit */ 1681 /* send RFC1001 sessinit */
1600 if (psin_server->sin_port == htons(RFC1001_PORT)) { 1682 if (psin_server->sin_port == htons(RFC1001_PORT)) {
@@ -1631,7 +1713,7 @@ ipv4_connect(struct sockaddr_in *psin_server, struct socket **csocket,
1631 /* sizeof RFC1002_SESSION_REQUEST with no scope */ 1713 /* sizeof RFC1002_SESSION_REQUEST with no scope */
1632 smb_buf->smb_buf_length = 0x81000044; 1714 smb_buf->smb_buf_length = 0x81000044;
1633 rc = smb_send(*csocket, smb_buf, 0x44, 1715 rc = smb_send(*csocket, smb_buf, 0x44,
1634 (struct sockaddr *)psin_server); 1716 (struct sockaddr *)psin_server, noblocksnd);
1635 kfree(ses_init_buf); 1717 kfree(ses_init_buf);
1636 msleep(1); /* RFC1001 layer in at least one server 1718 msleep(1); /* RFC1001 layer in at least one server
1637 requires very short break before negprot 1719 requires very short break before negprot
@@ -1651,7 +1733,8 @@ ipv4_connect(struct sockaddr_in *psin_server, struct socket **csocket,
1651} 1733}
1652 1734
1653static int 1735static int
1654ipv6_connect(struct sockaddr_in6 *psin_server, struct socket **csocket) 1736ipv6_connect(struct sockaddr_in6 *psin_server, struct socket **csocket,
1737 bool noblocksnd)
1655{ 1738{
1656 int rc = 0; 1739 int rc = 0;
1657 int connected = 0; 1740 int connected = 0;
@@ -1720,6 +1803,9 @@ ipv6_connect(struct sockaddr_in6 *psin_server, struct socket **csocket)
1720 the default. sock_setsockopt not used because it expects 1803 the default. sock_setsockopt not used because it expects
1721 user space buffer */ 1804 user space buffer */
1722 (*csocket)->sk->sk_rcvtimeo = 7 * HZ; 1805 (*csocket)->sk->sk_rcvtimeo = 7 * HZ;
1806 if (!noblocksnd)
1807 (*csocket)->sk->sk_sndtimeo = 3 * HZ;
1808
1723 1809
1724 return rc; 1810 return rc;
1725} 1811}
@@ -1857,14 +1943,90 @@ convert_delimiter(char *path, char delim)
1857 } 1943 }
1858} 1944}
1859 1945
1860static void 1946static void setup_cifs_sb(struct smb_vol *pvolume_info,
1861kill_cifsd(struct TCP_Server_Info *server) 1947 struct cifs_sb_info *cifs_sb)
1862{ 1948{
1863 struct task_struct *task; 1949 if (pvolume_info->rsize > CIFSMaxBufSize) {
1864 1950 cERROR(1, ("rsize %d too large, using MaxBufSize",
1865 task = xchg(&server->tsk, NULL); 1951 pvolume_info->rsize));
1866 if (task) 1952 cifs_sb->rsize = CIFSMaxBufSize;
1867 force_sig(SIGKILL, task); 1953 } else if ((pvolume_info->rsize) &&
1954 (pvolume_info->rsize <= CIFSMaxBufSize))
1955 cifs_sb->rsize = pvolume_info->rsize;
1956 else /* default */
1957 cifs_sb->rsize = CIFSMaxBufSize;
1958
1959 if (pvolume_info->wsize > PAGEVEC_SIZE * PAGE_CACHE_SIZE) {
1960 cERROR(1, ("wsize %d too large, using 4096 instead",
1961 pvolume_info->wsize));
1962 cifs_sb->wsize = 4096;
1963 } else if (pvolume_info->wsize)
1964 cifs_sb->wsize = pvolume_info->wsize;
1965 else
1966 cifs_sb->wsize = min_t(const int,
1967 PAGEVEC_SIZE * PAGE_CACHE_SIZE,
1968 127*1024);
1969 /* old default of CIFSMaxBufSize was too small now
1970 that SMB Write2 can send multiple pages in kvec.
1971 RFC1001 does not describe what happens when frame
1972 bigger than 128K is sent so use that as max in
1973 conjunction with 52K kvec constraint on arch with 4K
1974 page size */
1975
1976 if (cifs_sb->rsize < 2048) {
1977 cifs_sb->rsize = 2048;
1978 /* Windows ME may prefer this */
1979 cFYI(1, ("readsize set to minimum: 2048"));
1980 }
1981 /* calculate prepath */
1982 cifs_sb->prepath = pvolume_info->prepath;
1983 if (cifs_sb->prepath) {
1984 cifs_sb->prepathlen = strlen(cifs_sb->prepath);
1985 /* we can not convert the / to \ in the path
1986 separators in the prefixpath yet because we do not
1987 know (until reset_cifs_unix_caps is called later)
1988 whether POSIX PATH CAP is available. We normalize
1989 the / to \ after reset_cifs_unix_caps is called */
1990 pvolume_info->prepath = NULL;
1991 } else
1992 cifs_sb->prepathlen = 0;
1993 cifs_sb->mnt_uid = pvolume_info->linux_uid;
1994 cifs_sb->mnt_gid = pvolume_info->linux_gid;
1995 cifs_sb->mnt_file_mode = pvolume_info->file_mode;
1996 cifs_sb->mnt_dir_mode = pvolume_info->dir_mode;
1997 cFYI(1, ("file mode: 0x%x dir mode: 0x%x",
1998 cifs_sb->mnt_file_mode, cifs_sb->mnt_dir_mode));
1999
2000 if (pvolume_info->noperm)
2001 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_NO_PERM;
2002 if (pvolume_info->setuids)
2003 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_SET_UID;
2004 if (pvolume_info->server_ino)
2005 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_SERVER_INUM;
2006 if (pvolume_info->remap)
2007 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_MAP_SPECIAL_CHR;
2008 if (pvolume_info->no_xattr)
2009 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_NO_XATTR;
2010 if (pvolume_info->sfu_emul)
2011 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_UNX_EMUL;
2012 if (pvolume_info->nobrl)
2013 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_NO_BRL;
2014 if (pvolume_info->cifs_acl)
2015 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_CIFS_ACL;
2016 if (pvolume_info->override_uid)
2017 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_UID;
2018 if (pvolume_info->override_gid)
2019 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_GID;
2020 if (pvolume_info->dynperm)
2021 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
2022 if (pvolume_info->direct_io) {
2023 cFYI(1, ("mounting share using direct i/o"));
2024 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
2025 }
2026
2027 if ((pvolume_info->cifs_acl) && (pvolume_info->dynperm))
2028 cERROR(1, ("mount option dynperm ignored if cifsacl "
2029 "mount option supported"));
1868} 2030}
1869 2031
1870int 2032int
@@ -1873,13 +2035,12 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
1873{ 2035{
1874 int rc = 0; 2036 int rc = 0;
1875 int xid; 2037 int xid;
1876 int address_type = AF_INET;
1877 struct socket *csocket = NULL; 2038 struct socket *csocket = NULL;
1878 struct sockaddr_in sin_server; 2039 struct sockaddr addr;
1879 struct sockaddr_in6 sin_server6; 2040 struct sockaddr_in *sin_server = (struct sockaddr_in *) &addr;
2041 struct sockaddr_in6 *sin_server6 = (struct sockaddr_in6 *) &addr;
1880 struct smb_vol volume_info; 2042 struct smb_vol volume_info;
1881 struct cifsSesInfo *pSesInfo = NULL; 2043 struct cifsSesInfo *pSesInfo = NULL;
1882 struct cifsSesInfo *existingCifsSes = NULL;
1883 struct cifsTconInfo *tcon = NULL; 2044 struct cifsTconInfo *tcon = NULL;
1884 struct TCP_Server_Info *srvTcp = NULL; 2045 struct TCP_Server_Info *srvTcp = NULL;
1885 2046
@@ -1887,6 +2048,7 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
1887 2048
1888/* cFYI(1, ("Entering cifs_mount. Xid: %d with: %s", xid, mount_data)); */ 2049/* cFYI(1, ("Entering cifs_mount. Xid: %d with: %s", xid, mount_data)); */
1889 2050
2051 memset(&addr, 0, sizeof(struct sockaddr));
1890 memset(&volume_info, 0, sizeof(struct smb_vol)); 2052 memset(&volume_info, 0, sizeof(struct smb_vol));
1891 if (cifs_parse_mount_options(mount_data, devname, &volume_info)) { 2053 if (cifs_parse_mount_options(mount_data, devname, &volume_info)) {
1892 rc = -EINVAL; 2054 rc = -EINVAL;
@@ -1909,16 +2071,16 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
1909 2071
1910 if (volume_info.UNCip && volume_info.UNC) { 2072 if (volume_info.UNCip && volume_info.UNC) {
1911 rc = cifs_inet_pton(AF_INET, volume_info.UNCip, 2073 rc = cifs_inet_pton(AF_INET, volume_info.UNCip,
1912 &sin_server.sin_addr.s_addr); 2074 &sin_server->sin_addr.s_addr);
1913 2075
1914 if (rc <= 0) { 2076 if (rc <= 0) {
1915 /* not ipv4 address, try ipv6 */ 2077 /* not ipv4 address, try ipv6 */
1916 rc = cifs_inet_pton(AF_INET6, volume_info.UNCip, 2078 rc = cifs_inet_pton(AF_INET6, volume_info.UNCip,
1917 &sin_server6.sin6_addr.in6_u); 2079 &sin_server6->sin6_addr.in6_u);
1918 if (rc > 0) 2080 if (rc > 0)
1919 address_type = AF_INET6; 2081 addr.sa_family = AF_INET6;
1920 } else { 2082 } else {
1921 address_type = AF_INET; 2083 addr.sa_family = AF_INET;
1922 } 2084 }
1923 2085
1924 if (rc <= 0) { 2086 if (rc <= 0) {
@@ -1958,38 +2120,25 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
1958 } 2120 }
1959 } 2121 }
1960 2122
1961 if (address_type == AF_INET) 2123 srvTcp = cifs_find_tcp_session(&addr);
1962 existingCifsSes = cifs_find_tcp_session(&sin_server.sin_addr, 2124 if (!srvTcp) { /* create socket */
1963 NULL /* no ipv6 addr */, 2125 if (addr.sa_family == AF_INET6) {
1964 volume_info.username, &srvTcp);
1965 else if (address_type == AF_INET6) {
1966 cFYI(1, ("looking for ipv6 address"));
1967 existingCifsSes = cifs_find_tcp_session(NULL /* no ipv4 addr */,
1968 &sin_server6.sin6_addr,
1969 volume_info.username, &srvTcp);
1970 } else {
1971 rc = -EINVAL;
1972 goto out;
1973 }
1974
1975 if (srvTcp) {
1976 cFYI(1, ("Existing tcp session with server found"));
1977 } else { /* create socket */
1978 if (volume_info.port)
1979 sin_server.sin_port = htons(volume_info.port);
1980 else
1981 sin_server.sin_port = 0;
1982 if (address_type == AF_INET6) {
1983 cFYI(1, ("attempting ipv6 connect")); 2126 cFYI(1, ("attempting ipv6 connect"));
1984 /* BB should we allow ipv6 on port 139? */ 2127 /* BB should we allow ipv6 on port 139? */
1985 /* other OS never observed in Wild doing 139 with v6 */ 2128 /* other OS never observed in Wild doing 139 with v6 */
1986 rc = ipv6_connect(&sin_server6, &csocket); 2129 sin_server6->sin6_port = htons(volume_info.port);
1987 } else 2130 rc = ipv6_connect(sin_server6, &csocket,
1988 rc = ipv4_connect(&sin_server, &csocket, 2131 volume_info.noblocksnd);
2132 } else {
2133 sin_server->sin_port = htons(volume_info.port);
2134 rc = ipv4_connect(sin_server, &csocket,
1989 volume_info.source_rfc1001_name, 2135 volume_info.source_rfc1001_name,
1990 volume_info.target_rfc1001_name); 2136 volume_info.target_rfc1001_name,
2137 volume_info.noblocksnd,
2138 volume_info.noautotune);
2139 }
1991 if (rc < 0) { 2140 if (rc < 0) {
1992 cERROR(1, ("Error connecting to IPv4 socket. " 2141 cERROR(1, ("Error connecting to socket. "
1993 "Aborting operation")); 2142 "Aborting operation"));
1994 if (csocket != NULL) 2143 if (csocket != NULL)
1995 sock_release(csocket); 2144 sock_release(csocket);
@@ -2002,12 +2151,17 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2002 sock_release(csocket); 2151 sock_release(csocket);
2003 goto out; 2152 goto out;
2004 } else { 2153 } else {
2005 memcpy(&srvTcp->addr.sockAddr, &sin_server, 2154 srvTcp->noblocksnd = volume_info.noblocksnd;
2006 sizeof(struct sockaddr_in)); 2155 srvTcp->noautotune = volume_info.noautotune;
2156 if (addr.sa_family == AF_INET6)
2157 memcpy(&srvTcp->addr.sockAddr6, sin_server6,
2158 sizeof(struct sockaddr_in6));
2159 else
2160 memcpy(&srvTcp->addr.sockAddr, sin_server,
2161 sizeof(struct sockaddr_in));
2007 atomic_set(&srvTcp->inFlight, 0); 2162 atomic_set(&srvTcp->inFlight, 0);
2008 /* BB Add code for ipv6 case too */ 2163 /* BB Add code for ipv6 case too */
2009 srvTcp->ssocket = csocket; 2164 srvTcp->ssocket = csocket;
2010 srvTcp->protocolType = IPV4;
2011 srvTcp->hostname = extract_hostname(volume_info.UNC); 2165 srvTcp->hostname = extract_hostname(volume_info.UNC);
2012 if (IS_ERR(srvTcp->hostname)) { 2166 if (IS_ERR(srvTcp->hostname)) {
2013 rc = PTR_ERR(srvTcp->hostname); 2167 rc = PTR_ERR(srvTcp->hostname);
@@ -2037,15 +2191,28 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2037 memcpy(srvTcp->server_RFC1001_name, 2191 memcpy(srvTcp->server_RFC1001_name,
2038 volume_info.target_rfc1001_name, 16); 2192 volume_info.target_rfc1001_name, 16);
2039 srvTcp->sequence_number = 0; 2193 srvTcp->sequence_number = 0;
2194 INIT_LIST_HEAD(&srvTcp->tcp_ses_list);
2195 INIT_LIST_HEAD(&srvTcp->smb_ses_list);
2196 ++srvTcp->srv_count;
2197 write_lock(&cifs_tcp_ses_lock);
2198 list_add(&srvTcp->tcp_ses_list,
2199 &cifs_tcp_ses_list);
2200 write_unlock(&cifs_tcp_ses_lock);
2040 } 2201 }
2041 } 2202 }
2042 2203
2043 if (existingCifsSes) { 2204 pSesInfo = cifs_find_smb_ses(srvTcp, volume_info.username);
2044 pSesInfo = existingCifsSes; 2205 if (pSesInfo) {
2045 cFYI(1, ("Existing smb sess found (status=%d)", 2206 cFYI(1, ("Existing smb sess found (status=%d)",
2046 pSesInfo->status)); 2207 pSesInfo->status));
2208 /*
2209 * The existing SMB session already has a reference to srvTcp,
2210 * so we can put back the extra one we got before
2211 */
2212 cifs_put_tcp_session(srvTcp);
2213
2047 down(&pSesInfo->sesSem); 2214 down(&pSesInfo->sesSem);
2048 if (pSesInfo->status == CifsNeedReconnect) { 2215 if (pSesInfo->need_reconnect) {
2049 cFYI(1, ("Session needs reconnect")); 2216 cFYI(1, ("Session needs reconnect"));
2050 rc = cifs_setup_session(xid, pSesInfo, 2217 rc = cifs_setup_session(xid, pSesInfo,
2051 cifs_sb->local_nls); 2218 cifs_sb->local_nls);
@@ -2054,187 +2221,101 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2054 } else if (!rc) { 2221 } else if (!rc) {
2055 cFYI(1, ("Existing smb sess not found")); 2222 cFYI(1, ("Existing smb sess not found"));
2056 pSesInfo = sesInfoAlloc(); 2223 pSesInfo = sesInfoAlloc();
2057 if (pSesInfo == NULL) 2224 if (pSesInfo == NULL) {
2058 rc = -ENOMEM; 2225 rc = -ENOMEM;
2059 else { 2226 goto mount_fail_check;
2060 pSesInfo->server = srvTcp; 2227 }
2061 sprintf(pSesInfo->serverName, "%u.%u.%u.%u", 2228
2062 NIPQUAD(sin_server.sin_addr.s_addr)); 2229 /* new SMB session uses our srvTcp ref */
2063 } 2230 pSesInfo->server = srvTcp;
2231 sprintf(pSesInfo->serverName, "%u.%u.%u.%u",
2232 NIPQUAD(sin_server->sin_addr.s_addr));
2233
2234 write_lock(&cifs_tcp_ses_lock);
2235 list_add(&pSesInfo->smb_ses_list, &srvTcp->smb_ses_list);
2236 write_unlock(&cifs_tcp_ses_lock);
2237
2238 /* volume_info.password freed at unmount */
2239 if (volume_info.password) {
2240 pSesInfo->password = volume_info.password;
2241 /* set to NULL to prevent freeing on exit */
2242 volume_info.password = NULL;
2243 }
2244 if (volume_info.username)
2245 strncpy(pSesInfo->userName, volume_info.username,
2246 MAX_USERNAME_SIZE);
2247 if (volume_info.domainname) {
2248 int len = strlen(volume_info.domainname);
2249 pSesInfo->domainName = kmalloc(len + 1, GFP_KERNEL);
2250 if (pSesInfo->domainName)
2251 strcpy(pSesInfo->domainName,
2252 volume_info.domainname);
2253 }
2254 pSesInfo->linux_uid = volume_info.linux_uid;
2255 pSesInfo->overrideSecFlg = volume_info.secFlg;
2256 down(&pSesInfo->sesSem);
2064 2257
2065 if (!rc) { 2258 /* BB FIXME need to pass vol->secFlgs BB */
2066 /* volume_info.password freed at unmount */ 2259 rc = cifs_setup_session(xid, pSesInfo,
2067 if (volume_info.password) { 2260 cifs_sb->local_nls);
2068 pSesInfo->password = volume_info.password; 2261 up(&pSesInfo->sesSem);
2069 /* set to NULL to prevent freeing on exit */
2070 volume_info.password = NULL;
2071 }
2072 if (volume_info.username)
2073 strncpy(pSesInfo->userName,
2074 volume_info.username,
2075 MAX_USERNAME_SIZE);
2076 if (volume_info.domainname) {
2077 int len = strlen(volume_info.domainname);
2078 pSesInfo->domainName =
2079 kmalloc(len + 1, GFP_KERNEL);
2080 if (pSesInfo->domainName)
2081 strcpy(pSesInfo->domainName,
2082 volume_info.domainname);
2083 }
2084 pSesInfo->linux_uid = volume_info.linux_uid;
2085 pSesInfo->overrideSecFlg = volume_info.secFlg;
2086 down(&pSesInfo->sesSem);
2087 /* BB FIXME need to pass vol->secFlgs BB */
2088 rc = cifs_setup_session(xid, pSesInfo,
2089 cifs_sb->local_nls);
2090 up(&pSesInfo->sesSem);
2091 if (!rc)
2092 atomic_inc(&srvTcp->socketUseCount);
2093 }
2094 } 2262 }
2095 2263
2096 /* search for existing tcon to this server share */ 2264 /* search for existing tcon to this server share */
2097 if (!rc) { 2265 if (!rc) {
2098 if (volume_info.rsize > CIFSMaxBufSize) { 2266 setup_cifs_sb(&volume_info, cifs_sb);
2099 cERROR(1, ("rsize %d too large, using MaxBufSize",
2100 volume_info.rsize));
2101 cifs_sb->rsize = CIFSMaxBufSize;
2102 } else if ((volume_info.rsize) &&
2103 (volume_info.rsize <= CIFSMaxBufSize))
2104 cifs_sb->rsize = volume_info.rsize;
2105 else /* default */
2106 cifs_sb->rsize = CIFSMaxBufSize;
2107
2108 if (volume_info.wsize > PAGEVEC_SIZE * PAGE_CACHE_SIZE) {
2109 cERROR(1, ("wsize %d too large, using 4096 instead",
2110 volume_info.wsize));
2111 cifs_sb->wsize = 4096;
2112 } else if (volume_info.wsize)
2113 cifs_sb->wsize = volume_info.wsize;
2114 else
2115 cifs_sb->wsize =
2116 min_t(const int, PAGEVEC_SIZE * PAGE_CACHE_SIZE,
2117 127*1024);
2118 /* old default of CIFSMaxBufSize was too small now
2119 that SMB Write2 can send multiple pages in kvec.
2120 RFC1001 does not describe what happens when frame
2121 bigger than 128K is sent so use that as max in
2122 conjunction with 52K kvec constraint on arch with 4K
2123 page size */
2124
2125 if (cifs_sb->rsize < 2048) {
2126 cifs_sb->rsize = 2048;
2127 /* Windows ME may prefer this */
2128 cFYI(1, ("readsize set to minimum: 2048"));
2129 }
2130 /* calculate prepath */
2131 cifs_sb->prepath = volume_info.prepath;
2132 if (cifs_sb->prepath) {
2133 cifs_sb->prepathlen = strlen(cifs_sb->prepath);
2134 /* we can not convert the / to \ in the path
2135 separators in the prefixpath yet because we do not
2136 know (until reset_cifs_unix_caps is called later)
2137 whether POSIX PATH CAP is available. We normalize
2138 the / to \ after reset_cifs_unix_caps is called */
2139 volume_info.prepath = NULL;
2140 } else
2141 cifs_sb->prepathlen = 0;
2142 cifs_sb->mnt_uid = volume_info.linux_uid;
2143 cifs_sb->mnt_gid = volume_info.linux_gid;
2144 cifs_sb->mnt_file_mode = volume_info.file_mode;
2145 cifs_sb->mnt_dir_mode = volume_info.dir_mode;
2146 cFYI(1, ("file mode: 0x%x dir mode: 0x%x",
2147 cifs_sb->mnt_file_mode, cifs_sb->mnt_dir_mode));
2148
2149 if (volume_info.noperm)
2150 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_NO_PERM;
2151 if (volume_info.setuids)
2152 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_SET_UID;
2153 if (volume_info.server_ino)
2154 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_SERVER_INUM;
2155 if (volume_info.remap)
2156 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_MAP_SPECIAL_CHR;
2157 if (volume_info.no_xattr)
2158 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_NO_XATTR;
2159 if (volume_info.sfu_emul)
2160 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_UNX_EMUL;
2161 if (volume_info.nobrl)
2162 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_NO_BRL;
2163 if (volume_info.cifs_acl)
2164 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_CIFS_ACL;
2165 if (volume_info.override_uid)
2166 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_UID;
2167 if (volume_info.override_gid)
2168 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_OVERR_GID;
2169 if (volume_info.dynperm)
2170 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
2171 if (volume_info.direct_io) {
2172 cFYI(1, ("mounting share using direct i/o"));
2173 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
2174 }
2175
2176 if ((volume_info.cifs_acl) && (volume_info.dynperm))
2177 cERROR(1, ("mount option dynperm ignored if cifsacl "
2178 "mount option supported"));
2179 2267
2180 tcon = 2268 tcon = cifs_find_tcon(pSesInfo, volume_info.UNC);
2181 find_unc(sin_server.sin_addr.s_addr, volume_info.UNC,
2182 volume_info.username);
2183 if (tcon) { 2269 if (tcon) {
2184 cFYI(1, ("Found match on UNC path")); 2270 cFYI(1, ("Found match on UNC path"));
2185 /* we can have only one retry value for a connection 2271 /* existing tcon already has a reference */
2186 to a share so for resources mounted more than once 2272 cifs_put_smb_ses(pSesInfo);
2187 to the same server share the last value passed in
2188 for the retry flag is used */
2189 tcon->retry = volume_info.retry;
2190 tcon->nocase = volume_info.nocase;
2191 tcon->local_lease = volume_info.local_lease;
2192 if (tcon->seal != volume_info.seal) 2273 if (tcon->seal != volume_info.seal)
2193 cERROR(1, ("transport encryption setting " 2274 cERROR(1, ("transport encryption setting "
2194 "conflicts with existing tid")); 2275 "conflicts with existing tid"));
2195 } else { 2276 } else {
2196 tcon = tconInfoAlloc(); 2277 tcon = tconInfoAlloc();
2197 if (tcon == NULL) 2278 if (tcon == NULL) {
2198 rc = -ENOMEM; 2279 rc = -ENOMEM;
2199 else { 2280 goto mount_fail_check;
2200 /* check for null share name ie connecting to 2281 }
2201 * dfs root */ 2282 tcon->ses = pSesInfo;
2202 2283
2203 /* BB check if this works for exactly length 2284 /* check for null share name ie connect to dfs root */
2204 * three strings */ 2285 if ((strchr(volume_info.UNC + 3, '\\') == NULL)
2205 if ((strchr(volume_info.UNC + 3, '\\') == NULL) 2286 && (strchr(volume_info.UNC + 3, '/') == NULL)) {
2206 && (strchr(volume_info.UNC + 3, '/') == 2287 /* rc = connect_to_dfs_path(...) */
2207 NULL)) { 2288 cFYI(1, ("DFS root not supported"));
2208/* rc = connect_to_dfs_path(xid, pSesInfo, 2289 rc = -ENODEV;
2209 "", cifs_sb->local_nls, 2290 goto mount_fail_check;
2210 cifs_sb->mnt_cifs_flags & 2291 } else {
2211 CIFS_MOUNT_MAP_SPECIAL_CHR);*/ 2292 /* BB Do we need to wrap sesSem around
2212 cFYI(1, ("DFS root not supported")); 2293 * this TCon call and Unix SetFS as
2213 rc = -ENODEV; 2294 * we do on SessSetup and reconnect? */
2214 goto out; 2295 rc = CIFSTCon(xid, pSesInfo, volume_info.UNC,
2215 } else { 2296 tcon, cifs_sb->local_nls);
2216 /* BB Do we need to wrap sesSem around 2297 cFYI(1, ("CIFS Tcon rc = %d", rc));
2217 * this TCon call and Unix SetFS as 2298 if (volume_info.nodfs) {
2218 * we do on SessSetup and reconnect? */ 2299 tcon->Flags &= ~SMB_SHARE_IS_IN_DFS;
2219 rc = CIFSTCon(xid, pSesInfo, 2300 cFYI(1, ("DFS disabled (%d)",
2220 volume_info.UNC, 2301 tcon->Flags));
2221 tcon, cifs_sb->local_nls);
2222 cFYI(1, ("CIFS Tcon rc = %d", rc));
2223 if (volume_info.nodfs) {
2224 tcon->Flags &=
2225 ~SMB_SHARE_IS_IN_DFS;
2226 cFYI(1, ("DFS disabled (%d)",
2227 tcon->Flags));
2228 }
2229 }
2230 if (!rc) {
2231 atomic_inc(&pSesInfo->inUse);
2232 tcon->retry = volume_info.retry;
2233 tcon->nocase = volume_info.nocase;
2234 tcon->seal = volume_info.seal;
2235 } 2302 }
2236 } 2303 }
2237 } 2304 if (rc)
2305 goto mount_fail_check;
2306 tcon->seal = volume_info.seal;
2307 write_lock(&cifs_tcp_ses_lock);
2308 list_add(&tcon->tcon_list, &pSesInfo->tcon_list);
2309 write_unlock(&cifs_tcp_ses_lock);
2310 }
2311
2312 /* we can have only one retry value for a connection
2313 to a share so for resources mounted more than once
2314 to the same server share the last value passed in
2315 for the retry flag is used */
2316 tcon->retry = volume_info.retry;
2317 tcon->nocase = volume_info.nocase;
2318 tcon->local_lease = volume_info.local_lease;
2238 } 2319 }
2239 if (pSesInfo) { 2320 if (pSesInfo) {
2240 if (pSesInfo->capabilities & CAP_LARGE_FILES) { 2321 if (pSesInfo->capabilities & CAP_LARGE_FILES) {
@@ -2246,80 +2327,49 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2246 /* BB FIXME fix time_gran to be larger for LANMAN sessions */ 2327 /* BB FIXME fix time_gran to be larger for LANMAN sessions */
2247 sb->s_time_gran = 100; 2328 sb->s_time_gran = 100;
2248 2329
2249/* on error free sesinfo and tcon struct if needed */ 2330mount_fail_check:
2331 /* on error free sesinfo and tcon struct if needed */
2250 if (rc) { 2332 if (rc) {
2251 /* if session setup failed, use count is zero but 2333 /* If find_unc succeeded then rc == 0 so we can not end */
2252 we still need to free cifsd thread */ 2334 /* up accidently freeing someone elses tcon struct */
2253 if (atomic_read(&srvTcp->socketUseCount) == 0) { 2335 if (tcon)
2254 spin_lock(&GlobalMid_Lock); 2336 cifs_put_tcon(tcon);
2255 srvTcp->tcpStatus = CifsExiting; 2337 else if (pSesInfo)
2256 spin_unlock(&GlobalMid_Lock); 2338 cifs_put_smb_ses(pSesInfo);
2257 kill_cifsd(srvTcp);
2258 }
2259 /* If find_unc succeeded then rc == 0 so we can not end */
2260 if (tcon) /* up accidently freeing someone elses tcon struct */
2261 tconInfoFree(tcon);
2262 if (existingCifsSes == NULL) {
2263 if (pSesInfo) {
2264 if ((pSesInfo->server) &&
2265 (pSesInfo->status == CifsGood)) {
2266 int temp_rc;
2267 temp_rc = CIFSSMBLogoff(xid, pSesInfo);
2268 /* if the socketUseCount is now zero */
2269 if ((temp_rc == -ESHUTDOWN) &&
2270 (pSesInfo->server))
2271 kill_cifsd(pSesInfo->server);
2272 } else {
2273 cFYI(1, ("No session or bad tcon"));
2274 if (pSesInfo->server) {
2275 spin_lock(&GlobalMid_Lock);
2276 srvTcp->tcpStatus = CifsExiting;
2277 spin_unlock(&GlobalMid_Lock);
2278 kill_cifsd(pSesInfo->server);
2279 }
2280 }
2281 sesInfoFree(pSesInfo);
2282 /* pSesInfo = NULL; */
2283 }
2284 }
2285 } else {
2286 atomic_inc(&tcon->useCount);
2287 cifs_sb->tcon = tcon;
2288 tcon->ses = pSesInfo;
2289
2290 /* do not care if following two calls succeed - informational */
2291 if (!tcon->ipc) {
2292 CIFSSMBQFSDeviceInfo(xid, tcon);
2293 CIFSSMBQFSAttributeInfo(xid, tcon);
2294 }
2295
2296 /* tell server which Unix caps we support */
2297 if (tcon->ses->capabilities & CAP_UNIX)
2298 /* reset of caps checks mount to see if unix extensions
2299 disabled for just this mount */
2300 reset_cifs_unix_caps(xid, tcon, sb, &volume_info);
2301 else 2339 else
2302 tcon->unix_ext = 0; /* server does not support them */ 2340 cifs_put_tcp_session(srvTcp);
2341 goto out;
2342 }
2343 cifs_sb->tcon = tcon;
2303 2344
2304 /* convert forward to back slashes in prepath here if needed */ 2345 /* do not care if following two calls succeed - informational */
2305 if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) == 0) 2346 if (!tcon->ipc) {
2306 convert_delimiter(cifs_sb->prepath, 2347 CIFSSMBQFSDeviceInfo(xid, tcon);
2307 CIFS_DIR_SEP(cifs_sb)); 2348 CIFSSMBQFSAttributeInfo(xid, tcon);
2349 }
2308 2350
2309 if ((tcon->unix_ext == 0) && (cifs_sb->rsize > (1024 * 127))) { 2351 /* tell server which Unix caps we support */
2310 cifs_sb->rsize = 1024 * 127; 2352 if (tcon->ses->capabilities & CAP_UNIX)
2311 cFYI(DBG2, 2353 /* reset of caps checks mount to see if unix extensions
2312 ("no very large read support, rsize now 127K")); 2354 disabled for just this mount */
2313 } 2355 reset_cifs_unix_caps(xid, tcon, sb, &volume_info);
2314 if (!(tcon->ses->capabilities & CAP_LARGE_WRITE_X)) 2356 else
2315 cifs_sb->wsize = min(cifs_sb->wsize, 2357 tcon->unix_ext = 0; /* server does not support them */
2316 (tcon->ses->server->maxBuf - 2358
2317 MAX_CIFS_HDR_SIZE)); 2359 /* convert forward to back slashes in prepath here if needed */
2318 if (!(tcon->ses->capabilities & CAP_LARGE_READ_X)) 2360 if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) == 0)
2319 cifs_sb->rsize = min(cifs_sb->rsize, 2361 convert_delimiter(cifs_sb->prepath, CIFS_DIR_SEP(cifs_sb));
2320 (tcon->ses->server->maxBuf - 2362
2321 MAX_CIFS_HDR_SIZE)); 2363 if ((tcon->unix_ext == 0) && (cifs_sb->rsize > (1024 * 127))) {
2364 cifs_sb->rsize = 1024 * 127;
2365 cFYI(DBG2, ("no very large read support, rsize now 127K"));
2322 } 2366 }
2367 if (!(tcon->ses->capabilities & CAP_LARGE_WRITE_X))
2368 cifs_sb->wsize = min(cifs_sb->wsize,
2369 (tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE));
2370 if (!(tcon->ses->capabilities & CAP_LARGE_READ_X))
2371 cifs_sb->rsize = min(cifs_sb->rsize,
2372 (tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE));
2323 2373
2324 /* volume_info.password is freed above when existing session found 2374 /* volume_info.password is freed above when existing session found
2325 (in which case it is not needed anymore) but when new sesion is created 2375 (in which case it is not needed anymore) but when new sesion is created
@@ -3489,6 +3539,7 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses,
3489 /* above now done in SendReceive */ 3539 /* above now done in SendReceive */
3490 if ((rc == 0) && (tcon != NULL)) { 3540 if ((rc == 0) && (tcon != NULL)) {
3491 tcon->tidStatus = CifsGood; 3541 tcon->tidStatus = CifsGood;
3542 tcon->need_reconnect = false;
3492 tcon->tid = smb_buffer_response->Tid; 3543 tcon->tid = smb_buffer_response->Tid;
3493 bcc_ptr = pByteArea(smb_buffer_response); 3544 bcc_ptr = pByteArea(smb_buffer_response);
3494 length = strnlen(bcc_ptr, BCC(smb_buffer_response) - 2); 3545 length = strnlen(bcc_ptr, BCC(smb_buffer_response) - 2);
@@ -3560,48 +3611,17 @@ int
3560cifs_umount(struct super_block *sb, struct cifs_sb_info *cifs_sb) 3611cifs_umount(struct super_block *sb, struct cifs_sb_info *cifs_sb)
3561{ 3612{
3562 int rc = 0; 3613 int rc = 0;
3563 int xid;
3564 struct cifsSesInfo *ses = NULL;
3565 char *tmp; 3614 char *tmp;
3566 3615
3567 xid = GetXid(); 3616 if (cifs_sb->tcon)
3568 3617 cifs_put_tcon(cifs_sb->tcon);
3569 if (cifs_sb->tcon) {
3570 ses = cifs_sb->tcon->ses; /* save ptr to ses before delete tcon!*/
3571 rc = CIFSSMBTDis(xid, cifs_sb->tcon);
3572 if (rc == -EBUSY) {
3573 FreeXid(xid);
3574 return 0;
3575 }
3576 DeleteTconOplockQEntries(cifs_sb->tcon);
3577 tconInfoFree(cifs_sb->tcon);
3578 if ((ses) && (ses->server)) {
3579 /* save off task so we do not refer to ses later */
3580 cFYI(1, ("About to do SMBLogoff "));
3581 rc = CIFSSMBLogoff(xid, ses);
3582 if (rc == -EBUSY) {
3583 FreeXid(xid);
3584 return 0;
3585 } else if (rc == -ESHUTDOWN) {
3586 cFYI(1, ("Waking up socket by sending signal"));
3587 if (ses->server)
3588 kill_cifsd(ses->server);
3589 rc = 0;
3590 } /* else - we have an smb session
3591 left on this socket do not kill cifsd */
3592 } else
3593 cFYI(1, ("No session or bad tcon"));
3594 }
3595 3618
3596 cifs_sb->tcon = NULL; 3619 cifs_sb->tcon = NULL;
3597 tmp = cifs_sb->prepath; 3620 tmp = cifs_sb->prepath;
3598 cifs_sb->prepathlen = 0; 3621 cifs_sb->prepathlen = 0;
3599 cifs_sb->prepath = NULL; 3622 cifs_sb->prepath = NULL;
3600 kfree(tmp); 3623 kfree(tmp);
3601 if (ses)
3602 sesInfoFree(ses);
3603 3624
3604 FreeXid(xid);
3605 return rc; 3625 return rc;
3606} 3626}
3607 3627
@@ -3717,6 +3737,7 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3717 cFYI(1, ("CIFS Session Established successfully")); 3737 cFYI(1, ("CIFS Session Established successfully"));
3718 spin_lock(&GlobalMid_Lock); 3738 spin_lock(&GlobalMid_Lock);
3719 pSesInfo->status = CifsGood; 3739 pSesInfo->status = CifsGood;
3740 pSesInfo->need_reconnect = false;
3720 spin_unlock(&GlobalMid_Lock); 3741 spin_unlock(&GlobalMid_Lock);
3721 } 3742 }
3722 3743
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 62d8bd8f14c0..f0a81e631ae6 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -488,12 +488,13 @@ int cifs_close(struct inode *inode, struct file *file)
488 pTcon = cifs_sb->tcon; 488 pTcon = cifs_sb->tcon;
489 if (pSMBFile) { 489 if (pSMBFile) {
490 struct cifsLockInfo *li, *tmp; 490 struct cifsLockInfo *li, *tmp;
491 491 write_lock(&GlobalSMBSeslock);
492 pSMBFile->closePend = true; 492 pSMBFile->closePend = true;
493 if (pTcon) { 493 if (pTcon) {
494 /* no sense reconnecting to close a file that is 494 /* no sense reconnecting to close a file that is
495 already closed */ 495 already closed */
496 if (pTcon->tidStatus != CifsNeedReconnect) { 496 if (!pTcon->need_reconnect) {
497 write_unlock(&GlobalSMBSeslock);
497 timeout = 2; 498 timeout = 2;
498 while ((atomic_read(&pSMBFile->wrtPending) != 0) 499 while ((atomic_read(&pSMBFile->wrtPending) != 0)
499 && (timeout <= 2048)) { 500 && (timeout <= 2048)) {
@@ -510,12 +511,15 @@ int cifs_close(struct inode *inode, struct file *file)
510 timeout *= 4; 511 timeout *= 4;
511 } 512 }
512 if (atomic_read(&pSMBFile->wrtPending)) 513 if (atomic_read(&pSMBFile->wrtPending))
513 cERROR(1, 514 cERROR(1, ("close with pending write"));
514 ("close with pending writes")); 515 if (!pTcon->need_reconnect &&
515 rc = CIFSSMBClose(xid, pTcon, 516 !pSMBFile->invalidHandle)
517 rc = CIFSSMBClose(xid, pTcon,
516 pSMBFile->netfid); 518 pSMBFile->netfid);
517 } 519 } else
518 } 520 write_unlock(&GlobalSMBSeslock);
521 } else
522 write_unlock(&GlobalSMBSeslock);
519 523
520 /* Delete any outstanding lock records. 524 /* Delete any outstanding lock records.
521 We'll lose them when the file is closed anyway. */ 525 We'll lose them when the file is closed anyway. */
@@ -587,15 +591,18 @@ int cifs_closedir(struct inode *inode, struct file *file)
587 pTcon = cifs_sb->tcon; 591 pTcon = cifs_sb->tcon;
588 592
589 cFYI(1, ("Freeing private data in close dir")); 593 cFYI(1, ("Freeing private data in close dir"));
594 write_lock(&GlobalSMBSeslock);
590 if (!pCFileStruct->srch_inf.endOfSearch && 595 if (!pCFileStruct->srch_inf.endOfSearch &&
591 !pCFileStruct->invalidHandle) { 596 !pCFileStruct->invalidHandle) {
592 pCFileStruct->invalidHandle = true; 597 pCFileStruct->invalidHandle = true;
598 write_unlock(&GlobalSMBSeslock);
593 rc = CIFSFindClose(xid, pTcon, pCFileStruct->netfid); 599 rc = CIFSFindClose(xid, pTcon, pCFileStruct->netfid);
594 cFYI(1, ("Closing uncompleted readdir with rc %d", 600 cFYI(1, ("Closing uncompleted readdir with rc %d",
595 rc)); 601 rc));
596 /* not much we can do if it fails anyway, ignore rc */ 602 /* not much we can do if it fails anyway, ignore rc */
597 rc = 0; 603 rc = 0;
598 } 604 } else
605 write_unlock(&GlobalSMBSeslock);
599 ptmp = pCFileStruct->srch_inf.ntwrk_buf_start; 606 ptmp = pCFileStruct->srch_inf.ntwrk_buf_start;
600 if (ptmp) { 607 if (ptmp) {
601 cFYI(1, ("closedir free smb buf in srch struct")); 608 cFYI(1, ("closedir free smb buf in srch struct"));
@@ -1404,7 +1411,10 @@ retry:
1404 if ((wbc->nr_to_write -= n_iov) <= 0) 1411 if ((wbc->nr_to_write -= n_iov) <= 0)
1405 done = 1; 1412 done = 1;
1406 index = next; 1413 index = next;
1407 } 1414 } else
1415 /* Need to re-find the pages we skipped */
1416 index = pvec.pages[0]->index + 1;
1417
1408 pagevec_release(&pvec); 1418 pagevec_release(&pvec);
1409 } 1419 }
1410 if (!scanned && !done) { 1420 if (!scanned && !done) {
@@ -1465,7 +1475,11 @@ static int cifs_write_end(struct file *file, struct address_space *mapping,
1465 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",
1466 page, pos, copied)); 1476 page, pos, copied));
1467 1477
1468 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)
1469 SetPageUptodate(page); 1483 SetPageUptodate(page);
1470 1484
1471 if (!PageUptodate(page)) { 1485 if (!PageUptodate(page)) {
@@ -1824,7 +1838,7 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
1824 pTcon = cifs_sb->tcon; 1838 pTcon = cifs_sb->tcon;
1825 1839
1826 pagevec_init(&lru_pvec, 0); 1840 pagevec_init(&lru_pvec, 0);
1827 cFYI(DBG2, ("rpages: num pages %d", num_pages)); 1841 cFYI(DBG2, ("rpages: num pages %d", num_pages));
1828 for (i = 0; i < num_pages; ) { 1842 for (i = 0; i < num_pages; ) {
1829 unsigned contig_pages; 1843 unsigned contig_pages;
1830 struct page *tmp_page; 1844 struct page *tmp_page;
@@ -2052,39 +2066,70 @@ static int cifs_write_begin(struct file *file, struct address_space *mapping,
2052{ 2066{
2053 pgoff_t index = pos >> PAGE_CACHE_SHIFT; 2067 pgoff_t index = pos >> PAGE_CACHE_SHIFT;
2054 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;
2055 2073
2056 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));
2057 2075
2058 *pagep = __grab_cache_page(mapping, index); 2076 page = __grab_cache_page(mapping, index);
2059 if (!*pagep) 2077 if (!page) {
2060 return -ENOMEM; 2078 rc = -ENOMEM;
2061 2079 goto out;
2062 if (PageUptodate(*pagep)) 2080 }
2063 return 0;
2064 2081
2065 /* If we are writing a full page it will be up to date, 2082 if (PageUptodate(page))
2066 no need to read from the server */ 2083 goto out;
2067 if (len == PAGE_CACHE_SIZE && flags & AOP_FLAG_UNINTERRUPTIBLE)
2068 return 0;
2069 2084
2070 if ((file->f_flags & O_ACCMODE) != O_WRONLY) { 2085 /*
2071 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;
2072 2092
2073 /* might as well read a page, it is fast enough */ 2093 /*
2074 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 }
2075 2116
2076 /* we do not need to pass errors back 2117 if ((file->f_flags & O_ACCMODE) != O_WRONLY) {
2077 e.g. if we do not have read access to the file 2118 /*
2078 because cifs_write_end will attempt synchronous writes 2119 * might as well read a page, it is fast enough. If we get
2079 -- 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);
2080 } else { 2124 } else {
2081 /* we could try using another file handle if there is one - 2125 /* we could try using another file handle if there is one -
2082 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
2083 racing with this read? In any case 2127 racing with this read? In any case
2084 this will be written out by write_end so is fine */ 2128 this will be written out by write_end so is fine */
2085 } 2129 }
2086 2130out:
2087 return 0; 2131 *pagep = page;
2132 return rc;
2088} 2133}
2089 2134
2090const struct address_space_operations cifs_addr_ops = { 2135const struct address_space_operations cifs_addr_ops = {
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index d54fa8aeaea9..ff8c68de4a92 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1361,9 +1361,11 @@ int cifs_rename(struct inode *source_dir, struct dentry *source_dentry,
1361 CIFS_MOUNT_MAP_SPECIAL_CHR); 1361 CIFS_MOUNT_MAP_SPECIAL_CHR);
1362 1362
1363 if (tmprc == 0 && (info_buf_source->UniqueId == 1363 if (tmprc == 0 && (info_buf_source->UniqueId ==
1364 info_buf_target->UniqueId)) 1364 info_buf_target->UniqueId)) {
1365 /* same file, POSIX says that this is a noop */ 1365 /* same file, POSIX says that this is a noop */
1366 rc = 0;
1366 goto cifs_rename_exit; 1367 goto cifs_rename_exit;
1368 }
1367 } /* else ... BB we could add the same check for Windows by 1369 } /* else ... BB we could add the same check for Windows by
1368 checking the UniqueId via FILE_INTERNAL_INFO */ 1370 checking the UniqueId via FILE_INTERNAL_INFO */
1369 1371
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
index 88786ba02d27..9ee3f689c2b0 100644
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
@@ -75,12 +75,12 @@ sesInfoAlloc(void)
75 75
76 ret_buf = kzalloc(sizeof(struct cifsSesInfo), GFP_KERNEL); 76 ret_buf = kzalloc(sizeof(struct cifsSesInfo), GFP_KERNEL);
77 if (ret_buf) { 77 if (ret_buf) {
78 write_lock(&GlobalSMBSeslock);
79 atomic_inc(&sesInfoAllocCount); 78 atomic_inc(&sesInfoAllocCount);
80 ret_buf->status = CifsNew; 79 ret_buf->status = CifsNew;
81 list_add(&ret_buf->cifsSessionList, &GlobalSMBSessionList); 80 ++ret_buf->ses_count;
81 INIT_LIST_HEAD(&ret_buf->smb_ses_list);
82 INIT_LIST_HEAD(&ret_buf->tcon_list);
82 init_MUTEX(&ret_buf->sesSem); 83 init_MUTEX(&ret_buf->sesSem);
83 write_unlock(&GlobalSMBSeslock);
84 } 84 }
85 return ret_buf; 85 return ret_buf;
86} 86}
@@ -93,10 +93,7 @@ sesInfoFree(struct cifsSesInfo *buf_to_free)
93 return; 93 return;
94 } 94 }
95 95
96 write_lock(&GlobalSMBSeslock);
97 atomic_dec(&sesInfoAllocCount); 96 atomic_dec(&sesInfoAllocCount);
98 list_del(&buf_to_free->cifsSessionList);
99 write_unlock(&GlobalSMBSeslock);
100 kfree(buf_to_free->serverOS); 97 kfree(buf_to_free->serverOS);
101 kfree(buf_to_free->serverDomain); 98 kfree(buf_to_free->serverDomain);
102 kfree(buf_to_free->serverNOS); 99 kfree(buf_to_free->serverNOS);
@@ -111,17 +108,14 @@ tconInfoAlloc(void)
111 struct cifsTconInfo *ret_buf; 108 struct cifsTconInfo *ret_buf;
112 ret_buf = kzalloc(sizeof(struct cifsTconInfo), GFP_KERNEL); 109 ret_buf = kzalloc(sizeof(struct cifsTconInfo), GFP_KERNEL);
113 if (ret_buf) { 110 if (ret_buf) {
114 write_lock(&GlobalSMBSeslock);
115 atomic_inc(&tconInfoAllocCount); 111 atomic_inc(&tconInfoAllocCount);
116 list_add(&ret_buf->cifsConnectionList,
117 &GlobalTreeConnectionList);
118 ret_buf->tidStatus = CifsNew; 112 ret_buf->tidStatus = CifsNew;
113 ++ret_buf->tc_count;
119 INIT_LIST_HEAD(&ret_buf->openFileList); 114 INIT_LIST_HEAD(&ret_buf->openFileList);
120 init_MUTEX(&ret_buf->tconSem); 115 INIT_LIST_HEAD(&ret_buf->tcon_list);
121#ifdef CONFIG_CIFS_STATS 116#ifdef CONFIG_CIFS_STATS
122 spin_lock_init(&ret_buf->stat_lock); 117 spin_lock_init(&ret_buf->stat_lock);
123#endif 118#endif
124 write_unlock(&GlobalSMBSeslock);
125 } 119 }
126 return ret_buf; 120 return ret_buf;
127} 121}
@@ -133,10 +127,7 @@ tconInfoFree(struct cifsTconInfo *buf_to_free)
133 cFYI(1, ("Null buffer passed to tconInfoFree")); 127 cFYI(1, ("Null buffer passed to tconInfoFree"));
134 return; 128 return;
135 } 129 }
136 write_lock(&GlobalSMBSeslock);
137 atomic_dec(&tconInfoAllocCount); 130 atomic_dec(&tconInfoAllocCount);
138 list_del(&buf_to_free->cifsConnectionList);
139 write_unlock(&GlobalSMBSeslock);
140 kfree(buf_to_free->nativeFileSystem); 131 kfree(buf_to_free->nativeFileSystem);
141 kfree(buf_to_free); 132 kfree(buf_to_free);
142} 133}
@@ -350,9 +341,9 @@ header_assemble(struct smb_hdr *buffer, char smb_command /* command */ ,
350 if (current->fsuid != treeCon->ses->linux_uid) { 341 if (current->fsuid != treeCon->ses->linux_uid) {
351 cFYI(1, ("Multiuser mode and UID " 342 cFYI(1, ("Multiuser mode and UID "
352 "did not match tcon uid")); 343 "did not match tcon uid"));
353 read_lock(&GlobalSMBSeslock); 344 read_lock(&cifs_tcp_ses_lock);
354 list_for_each(temp_item, &GlobalSMBSessionList) { 345 list_for_each(temp_item, &treeCon->ses->server->smb_ses_list) {
355 ses = list_entry(temp_item, struct cifsSesInfo, cifsSessionList); 346 ses = list_entry(temp_item, struct cifsSesInfo, smb_ses_list);
356 if (ses->linux_uid == current->fsuid) { 347 if (ses->linux_uid == current->fsuid) {
357 if (ses->server == treeCon->ses->server) { 348 if (ses->server == treeCon->ses->server) {
358 cFYI(1, ("found matching uid substitute right smb_uid")); 349 cFYI(1, ("found matching uid substitute right smb_uid"));
@@ -364,7 +355,7 @@ header_assemble(struct smb_hdr *buffer, char smb_command /* command */ ,
364 } 355 }
365 } 356 }
366 } 357 }
367 read_unlock(&GlobalSMBSeslock); 358 read_unlock(&cifs_tcp_ses_lock);
368 } 359 }
369 } 360 }
370 } 361 }
@@ -497,9 +488,10 @@ bool
497is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv) 488is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv)
498{ 489{
499 struct smb_com_lock_req *pSMB = (struct smb_com_lock_req *)buf; 490 struct smb_com_lock_req *pSMB = (struct smb_com_lock_req *)buf;
500 struct list_head *tmp; 491 struct list_head *tmp, *tmp1, *tmp2;
501 struct list_head *tmp1; 492 struct cifsSesInfo *ses;
502 struct cifsTconInfo *tcon; 493 struct cifsTconInfo *tcon;
494 struct cifsInodeInfo *pCifsInode;
503 struct cifsFileInfo *netfile; 495 struct cifsFileInfo *netfile;
504 496
505 cFYI(1, ("Checking for oplock break or dnotify response")); 497 cFYI(1, ("Checking for oplock break or dnotify response"));
@@ -554,42 +546,45 @@ is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv)
554 return false; 546 return false;
555 547
556 /* look up tcon based on tid & uid */ 548 /* look up tcon based on tid & uid */
557 read_lock(&GlobalSMBSeslock); 549 read_lock(&cifs_tcp_ses_lock);
558 list_for_each(tmp, &GlobalTreeConnectionList) { 550 list_for_each(tmp, &srv->smb_ses_list) {
559 tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList); 551 ses = list_entry(tmp, struct cifsSesInfo, smb_ses_list);
560 if ((tcon->tid == buf->Tid) && (srv == tcon->ses->server)) { 552 list_for_each(tmp1, &ses->tcon_list) {
553 tcon = list_entry(tmp1, struct cifsTconInfo, tcon_list);
554 if (tcon->tid != buf->Tid)
555 continue;
556
561 cifs_stats_inc(&tcon->num_oplock_brks); 557 cifs_stats_inc(&tcon->num_oplock_brks);
562 list_for_each(tmp1, &tcon->openFileList) { 558 write_lock(&GlobalSMBSeslock);
563 netfile = list_entry(tmp1, struct cifsFileInfo, 559 list_for_each(tmp2, &tcon->openFileList) {
560 netfile = list_entry(tmp2, struct cifsFileInfo,
564 tlist); 561 tlist);
565 if (pSMB->Fid == netfile->netfid) { 562 if (pSMB->Fid != netfile->netfid)
566 struct cifsInodeInfo *pCifsInode; 563 continue;
567 read_unlock(&GlobalSMBSeslock); 564
568 cFYI(1, 565 write_unlock(&GlobalSMBSeslock);
569 ("file id match, oplock break")); 566 read_unlock(&cifs_tcp_ses_lock);
570 pCifsInode = 567 cFYI(1, ("file id match, oplock break"));
571 CIFS_I(netfile->pInode); 568 pCifsInode = CIFS_I(netfile->pInode);
572 pCifsInode->clientCanCacheAll = false; 569 pCifsInode->clientCanCacheAll = false;
573 if (pSMB->OplockLevel == 0) 570 if (pSMB->OplockLevel == 0)
574 pCifsInode->clientCanCacheRead 571 pCifsInode->clientCanCacheRead = false;
575 = false; 572 pCifsInode->oplockPending = true;
576 pCifsInode->oplockPending = true; 573 AllocOplockQEntry(netfile->pInode,
577 AllocOplockQEntry(netfile->pInode, 574 netfile->netfid, tcon);
578 netfile->netfid, 575 cFYI(1, ("about to wake up oplock thread"));
579 tcon); 576 if (oplockThread)
580 cFYI(1, 577 wake_up_process(oplockThread);
581 ("about to wake up oplock thread")); 578
582 if (oplockThread) 579 return true;
583 wake_up_process(oplockThread);
584 return true;
585 }
586 } 580 }
587 read_unlock(&GlobalSMBSeslock); 581 write_unlock(&GlobalSMBSeslock);
582 read_unlock(&cifs_tcp_ses_lock);
588 cFYI(1, ("No matching file for oplock break")); 583 cFYI(1, ("No matching file for oplock break"));
589 return true; 584 return true;
590 } 585 }
591 } 586 }
592 read_unlock(&GlobalSMBSeslock); 587 read_unlock(&cifs_tcp_ses_lock);
593 cFYI(1, ("Can not process oplock break for non-existent connection")); 588 cFYI(1, ("Can not process oplock break for non-existent connection"));
594 return true; 589 return true;
595} 590}
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
index 58d57299f2a0..9f51f9bf0292 100644
--- a/fs/cifs/readdir.c
+++ b/fs/cifs/readdir.c
@@ -741,11 +741,14 @@ static int find_cifs_entry(const int xid, struct cifsTconInfo *pTcon,
741 (index_to_find < first_entry_in_buffer)) { 741 (index_to_find < first_entry_in_buffer)) {
742 /* close and restart search */ 742 /* close and restart search */
743 cFYI(1, ("search backing up - close and restart search")); 743 cFYI(1, ("search backing up - close and restart search"));
744 write_lock(&GlobalSMBSeslock);
744 if (!cifsFile->srch_inf.endOfSearch && 745 if (!cifsFile->srch_inf.endOfSearch &&
745 !cifsFile->invalidHandle) { 746 !cifsFile->invalidHandle) {
746 cifsFile->invalidHandle = true; 747 cifsFile->invalidHandle = true;
748 write_unlock(&GlobalSMBSeslock);
747 CIFSFindClose(xid, pTcon, cifsFile->netfid); 749 CIFSFindClose(xid, pTcon, cifsFile->netfid);
748 } 750 } else
751 write_unlock(&GlobalSMBSeslock);
749 if (cifsFile->srch_inf.ntwrk_buf_start) { 752 if (cifsFile->srch_inf.ntwrk_buf_start) {
750 cFYI(1, ("freeing SMB ff cache buf on search rewind")); 753 cFYI(1, ("freeing SMB ff cache buf on search rewind"));
751 if (cifsFile->srch_inf.smallBuf) 754 if (cifsFile->srch_inf.smallBuf)
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
index bf0e6d8e382a..ff8243a8fe3e 100644
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -161,7 +161,7 @@ void DeleteTconOplockQEntries(struct cifsTconInfo *tcon)
161 161
162int 162int
163smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer, 163smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer,
164 unsigned int smb_buf_length, struct sockaddr *sin) 164 unsigned int smb_buf_length, struct sockaddr *sin, bool noblocksnd)
165{ 165{
166 int rc = 0; 166 int rc = 0;
167 int i = 0; 167 int i = 0;
@@ -178,7 +178,10 @@ smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer,
178 smb_msg.msg_namelen = sizeof(struct sockaddr); 178 smb_msg.msg_namelen = sizeof(struct sockaddr);
179 smb_msg.msg_control = NULL; 179 smb_msg.msg_control = NULL;
180 smb_msg.msg_controllen = 0; 180 smb_msg.msg_controllen = 0;
181 smb_msg.msg_flags = MSG_DONTWAIT + MSG_NOSIGNAL; /* BB add more flags?*/ 181 if (noblocksnd)
182 smb_msg.msg_flags = MSG_DONTWAIT + MSG_NOSIGNAL;
183 else
184 smb_msg.msg_flags = MSG_NOSIGNAL;
182 185
183 /* smb header is converted in header_assemble. bcc and rest of SMB word 186 /* smb header is converted in header_assemble. bcc and rest of SMB word
184 area, and byte area if necessary, is converted to littleendian in 187 area, and byte area if necessary, is converted to littleendian in
@@ -229,8 +232,8 @@ smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer,
229} 232}
230 233
231static int 234static int
232smb_send2(struct socket *ssocket, struct kvec *iov, int n_vec, 235smb_send2(struct TCP_Server_Info *server, struct kvec *iov, int n_vec,
233 struct sockaddr *sin) 236 struct sockaddr *sin, bool noblocksnd)
234{ 237{
235 int rc = 0; 238 int rc = 0;
236 int i = 0; 239 int i = 0;
@@ -240,6 +243,7 @@ smb_send2(struct socket *ssocket, struct kvec *iov, int n_vec,
240 unsigned int total_len; 243 unsigned int total_len;
241 int first_vec = 0; 244 int first_vec = 0;
242 unsigned int smb_buf_length = smb_buffer->smb_buf_length; 245 unsigned int smb_buf_length = smb_buffer->smb_buf_length;
246 struct socket *ssocket = server->ssocket;
243 247
244 if (ssocket == NULL) 248 if (ssocket == NULL)
245 return -ENOTSOCK; /* BB eventually add reconnect code here */ 249 return -ENOTSOCK; /* BB eventually add reconnect code here */
@@ -248,7 +252,10 @@ smb_send2(struct socket *ssocket, struct kvec *iov, int n_vec,
248 smb_msg.msg_namelen = sizeof(struct sockaddr); 252 smb_msg.msg_namelen = sizeof(struct sockaddr);
249 smb_msg.msg_control = NULL; 253 smb_msg.msg_control = NULL;
250 smb_msg.msg_controllen = 0; 254 smb_msg.msg_controllen = 0;
251 smb_msg.msg_flags = MSG_DONTWAIT + MSG_NOSIGNAL; /* BB add more flags?*/ 255 if (noblocksnd)
256 smb_msg.msg_flags = MSG_DONTWAIT + MSG_NOSIGNAL;
257 else
258 smb_msg.msg_flags = MSG_NOSIGNAL;
252 259
253 /* smb header is converted in header_assemble. bcc and rest of SMB word 260 /* smb header is converted in header_assemble. bcc and rest of SMB word
254 area, and byte area if necessary, is converted to littleendian in 261 area, and byte area if necessary, is converted to littleendian in
@@ -283,8 +290,11 @@ smb_send2(struct socket *ssocket, struct kvec *iov, int n_vec,
283 if (rc < 0) 290 if (rc < 0)
284 break; 291 break;
285 292
286 if (rc >= total_len) { 293 if (rc == total_len) {
287 WARN_ON(rc > total_len); 294 total_len = 0;
295 break;
296 } else if (rc > total_len) {
297 cERROR(1, ("sent %d requested %d", rc, total_len));
288 break; 298 break;
289 } 299 }
290 if (rc == 0) { 300 if (rc == 0) {
@@ -312,6 +322,16 @@ smb_send2(struct socket *ssocket, struct kvec *iov, int n_vec,
312 i = 0; /* in case we get ENOSPC on the next send */ 322 i = 0; /* in case we get ENOSPC on the next send */
313 } 323 }
314 324
325 if ((total_len > 0) && (total_len != smb_buf_length + 4)) {
326 cFYI(1, ("partial send (%d remaining), terminating session",
327 total_len));
328 /* If we have only sent part of an SMB then the next SMB
329 could be taken as the remainder of this one. We need
330 to kill the socket so the server throws away the partial
331 SMB */
332 server->tcpStatus = CifsNeedReconnect;
333 }
334
315 if (rc < 0) { 335 if (rc < 0) {
316 cERROR(1, ("Error %d sending data on socket to server", rc)); 336 cERROR(1, ("Error %d sending data on socket to server", rc));
317 } else 337 } else
@@ -518,8 +538,9 @@ SendReceive2(const unsigned int xid, struct cifsSesInfo *ses,
518#ifdef CONFIG_CIFS_STATS2 538#ifdef CONFIG_CIFS_STATS2
519 atomic_inc(&ses->server->inSend); 539 atomic_inc(&ses->server->inSend);
520#endif 540#endif
521 rc = smb_send2(ses->server->ssocket, iov, n_vec, 541 rc = smb_send2(ses->server, iov, n_vec,
522 (struct sockaddr *) &(ses->server->addr.sockAddr)); 542 (struct sockaddr *) &(ses->server->addr.sockAddr),
543 ses->server->noblocksnd);
523#ifdef CONFIG_CIFS_STATS2 544#ifdef CONFIG_CIFS_STATS2
524 atomic_dec(&ses->server->inSend); 545 atomic_dec(&ses->server->inSend);
525 midQ->when_sent = jiffies; 546 midQ->when_sent = jiffies;
@@ -711,7 +732,8 @@ SendReceive(const unsigned int xid, struct cifsSesInfo *ses,
711 atomic_inc(&ses->server->inSend); 732 atomic_inc(&ses->server->inSend);
712#endif 733#endif
713 rc = smb_send(ses->server->ssocket, in_buf, in_buf->smb_buf_length, 734 rc = smb_send(ses->server->ssocket, in_buf, in_buf->smb_buf_length,
714 (struct sockaddr *) &(ses->server->addr.sockAddr)); 735 (struct sockaddr *) &(ses->server->addr.sockAddr),
736 ses->server->noblocksnd);
715#ifdef CONFIG_CIFS_STATS2 737#ifdef CONFIG_CIFS_STATS2
716 atomic_dec(&ses->server->inSend); 738 atomic_dec(&ses->server->inSend);
717 midQ->when_sent = jiffies; 739 midQ->when_sent = jiffies;
@@ -851,7 +873,8 @@ send_nt_cancel(struct cifsTconInfo *tcon, struct smb_hdr *in_buf,
851 return rc; 873 return rc;
852 } 874 }
853 rc = smb_send(ses->server->ssocket, in_buf, in_buf->smb_buf_length, 875 rc = smb_send(ses->server->ssocket, in_buf, in_buf->smb_buf_length,
854 (struct sockaddr *) &(ses->server->addr.sockAddr)); 876 (struct sockaddr *) &(ses->server->addr.sockAddr),
877 ses->server->noblocksnd);
855 up(&ses->server->tcpSem); 878 up(&ses->server->tcpSem);
856 return rc; 879 return rc;
857} 880}
@@ -941,7 +964,8 @@ SendReceiveBlockingLock(const unsigned int xid, struct cifsTconInfo *tcon,
941 atomic_inc(&ses->server->inSend); 964 atomic_inc(&ses->server->inSend);
942#endif 965#endif
943 rc = smb_send(ses->server->ssocket, in_buf, in_buf->smb_buf_length, 966 rc = smb_send(ses->server->ssocket, in_buf, in_buf->smb_buf_length,
944 (struct sockaddr *) &(ses->server->addr.sockAddr)); 967 (struct sockaddr *) &(ses->server->addr.sockAddr),
968 ses->server->noblocksnd);
945#ifdef CONFIG_CIFS_STATS2 969#ifdef CONFIG_CIFS_STATS2
946 atomic_dec(&ses->server->inSend); 970 atomic_dec(&ses->server->inSend);
947 midQ->when_sent = jiffies; 971 midQ->when_sent = jiffies;
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c
index d910501de6d2..8d86b7960f0d 100644
--- a/fs/dlm/lockspace.c
+++ b/fs/dlm/lockspace.c
@@ -812,7 +812,7 @@ int dlm_release_lockspace(void *lockspace, int force)
812 error = release_lockspace(ls, force); 812 error = release_lockspace(ls, force);
813 if (!error) 813 if (!error)
814 ls_count--; 814 ls_count--;
815 else if (!ls_count) 815 if (!ls_count)
816 threads_stop(); 816 threads_stop();
817 mutex_unlock(&ls_lock); 817 mutex_unlock(&ls_lock);
818 818
diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c
index e22bc3961345..0d713b691941 100644
--- a/fs/ecryptfs/keystore.c
+++ b/fs/ecryptfs/keystore.c
@@ -1037,17 +1037,14 @@ static int
1037decrypt_passphrase_encrypted_session_key(struct ecryptfs_auth_tok *auth_tok, 1037decrypt_passphrase_encrypted_session_key(struct ecryptfs_auth_tok *auth_tok,
1038 struct ecryptfs_crypt_stat *crypt_stat) 1038 struct ecryptfs_crypt_stat *crypt_stat)
1039{ 1039{
1040 struct scatterlist dst_sg; 1040 struct scatterlist dst_sg[2];
1041 struct scatterlist src_sg; 1041 struct scatterlist src_sg[2];
1042 struct mutex *tfm_mutex; 1042 struct mutex *tfm_mutex;
1043 struct blkcipher_desc desc = { 1043 struct blkcipher_desc desc = {
1044 .flags = CRYPTO_TFM_REQ_MAY_SLEEP 1044 .flags = CRYPTO_TFM_REQ_MAY_SLEEP
1045 }; 1045 };
1046 int rc = 0; 1046 int rc = 0;
1047 1047
1048 sg_init_table(&dst_sg, 1);
1049 sg_init_table(&src_sg, 1);
1050
1051 if (unlikely(ecryptfs_verbosity > 0)) { 1048 if (unlikely(ecryptfs_verbosity > 0)) {
1052 ecryptfs_printk( 1049 ecryptfs_printk(
1053 KERN_DEBUG, "Session key encryption key (size [%d]):\n", 1050 KERN_DEBUG, "Session key encryption key (size [%d]):\n",
@@ -1066,8 +1063,8 @@ decrypt_passphrase_encrypted_session_key(struct ecryptfs_auth_tok *auth_tok,
1066 } 1063 }
1067 rc = virt_to_scatterlist(auth_tok->session_key.encrypted_key, 1064 rc = virt_to_scatterlist(auth_tok->session_key.encrypted_key,
1068 auth_tok->session_key.encrypted_key_size, 1065 auth_tok->session_key.encrypted_key_size,
1069 &src_sg, 1); 1066 src_sg, 2);
1070 if (rc != 1) { 1067 if (rc < 1 || rc > 2) {
1071 printk(KERN_ERR "Internal error whilst attempting to convert " 1068 printk(KERN_ERR "Internal error whilst attempting to convert "
1072 "auth_tok->session_key.encrypted_key to scatterlist; " 1069 "auth_tok->session_key.encrypted_key to scatterlist; "
1073 "expected rc = 1; got rc = [%d]. " 1070 "expected rc = 1; got rc = [%d]. "
@@ -1079,8 +1076,8 @@ decrypt_passphrase_encrypted_session_key(struct ecryptfs_auth_tok *auth_tok,
1079 auth_tok->session_key.encrypted_key_size; 1076 auth_tok->session_key.encrypted_key_size;
1080 rc = virt_to_scatterlist(auth_tok->session_key.decrypted_key, 1077 rc = virt_to_scatterlist(auth_tok->session_key.decrypted_key,
1081 auth_tok->session_key.decrypted_key_size, 1078 auth_tok->session_key.decrypted_key_size,
1082 &dst_sg, 1); 1079 dst_sg, 2);
1083 if (rc != 1) { 1080 if (rc < 1 || rc > 2) {
1084 printk(KERN_ERR "Internal error whilst attempting to convert " 1081 printk(KERN_ERR "Internal error whilst attempting to convert "
1085 "auth_tok->session_key.decrypted_key to scatterlist; " 1082 "auth_tok->session_key.decrypted_key to scatterlist; "
1086 "expected rc = 1; got rc = [%d]\n", rc); 1083 "expected rc = 1; got rc = [%d]\n", rc);
@@ -1096,7 +1093,7 @@ decrypt_passphrase_encrypted_session_key(struct ecryptfs_auth_tok *auth_tok,
1096 rc = -EINVAL; 1093 rc = -EINVAL;
1097 goto out; 1094 goto out;
1098 } 1095 }
1099 rc = crypto_blkcipher_decrypt(&desc, &dst_sg, &src_sg, 1096 rc = crypto_blkcipher_decrypt(&desc, dst_sg, src_sg,
1100 auth_tok->session_key.encrypted_key_size); 1097 auth_tok->session_key.encrypted_key_size);
1101 mutex_unlock(tfm_mutex); 1098 mutex_unlock(tfm_mutex);
1102 if (unlikely(rc)) { 1099 if (unlikely(rc)) {
@@ -1539,8 +1536,8 @@ write_tag_3_packet(char *dest, size_t *remaining_bytes,
1539 size_t i; 1536 size_t i;
1540 size_t encrypted_session_key_valid = 0; 1537 size_t encrypted_session_key_valid = 0;
1541 char session_key_encryption_key[ECRYPTFS_MAX_KEY_BYTES]; 1538 char session_key_encryption_key[ECRYPTFS_MAX_KEY_BYTES];
1542 struct scatterlist dst_sg; 1539 struct scatterlist dst_sg[2];
1543 struct scatterlist src_sg; 1540 struct scatterlist src_sg[2];
1544 struct mutex *tfm_mutex = NULL; 1541 struct mutex *tfm_mutex = NULL;
1545 u8 cipher_code; 1542 u8 cipher_code;
1546 size_t packet_size_length; 1543 size_t packet_size_length;
@@ -1619,8 +1616,8 @@ write_tag_3_packet(char *dest, size_t *remaining_bytes,
1619 ecryptfs_dump_hex(session_key_encryption_key, 16); 1616 ecryptfs_dump_hex(session_key_encryption_key, 16);
1620 } 1617 }
1621 rc = virt_to_scatterlist(crypt_stat->key, key_rec->enc_key_size, 1618 rc = virt_to_scatterlist(crypt_stat->key, key_rec->enc_key_size,
1622 &src_sg, 1); 1619 src_sg, 2);
1623 if (rc != 1) { 1620 if (rc < 1 || rc > 2) {
1624 ecryptfs_printk(KERN_ERR, "Error generating scatterlist " 1621 ecryptfs_printk(KERN_ERR, "Error generating scatterlist "
1625 "for crypt_stat session key; expected rc = 1; " 1622 "for crypt_stat session key; expected rc = 1; "
1626 "got rc = [%d]. key_rec->enc_key_size = [%d]\n", 1623 "got rc = [%d]. key_rec->enc_key_size = [%d]\n",
@@ -1629,8 +1626,8 @@ write_tag_3_packet(char *dest, size_t *remaining_bytes,
1629 goto out; 1626 goto out;
1630 } 1627 }
1631 rc = virt_to_scatterlist(key_rec->enc_key, key_rec->enc_key_size, 1628 rc = virt_to_scatterlist(key_rec->enc_key, key_rec->enc_key_size,
1632 &dst_sg, 1); 1629 dst_sg, 2);
1633 if (rc != 1) { 1630 if (rc < 1 || rc > 2) {
1634 ecryptfs_printk(KERN_ERR, "Error generating scatterlist " 1631 ecryptfs_printk(KERN_ERR, "Error generating scatterlist "
1635 "for crypt_stat encrypted session key; " 1632 "for crypt_stat encrypted session key; "
1636 "expected rc = 1; got rc = [%d]. " 1633 "expected rc = 1; got rc = [%d]. "
@@ -1651,7 +1648,7 @@ write_tag_3_packet(char *dest, size_t *remaining_bytes,
1651 rc = 0; 1648 rc = 0;
1652 ecryptfs_printk(KERN_DEBUG, "Encrypting [%d] bytes of the key\n", 1649 ecryptfs_printk(KERN_DEBUG, "Encrypting [%d] bytes of the key\n",
1653 crypt_stat->key_size); 1650 crypt_stat->key_size);
1654 rc = crypto_blkcipher_encrypt(&desc, &dst_sg, &src_sg, 1651 rc = crypto_blkcipher_encrypt(&desc, dst_sg, src_sg,
1655 (*key_rec).enc_key_size); 1652 (*key_rec).enc_key_size);
1656 mutex_unlock(tfm_mutex); 1653 mutex_unlock(tfm_mutex);
1657 if (rc) { 1654 if (rc) {
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/ext3/super.c b/fs/ext3/super.c
index e5717a4fae67..f6c94f232ec1 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -2375,12 +2375,9 @@ int ext3_force_commit(struct super_block *sb)
2375/* 2375/*
2376 * Ext3 always journals updates to the superblock itself, so we don't 2376 * Ext3 always journals updates to the superblock itself, so we don't
2377 * have to propagate any other updates to the superblock on disk at this 2377 * have to propagate any other updates to the superblock on disk at this
2378 * point. Just start an async writeback to get the buffers on their way 2378 * point. (We can probably nuke this function altogether, and remove
2379 * to the disk. 2379 * any mention to sb->s_dirt in all of fs/ext3; eventual cleanup...)
2380 *
2381 * This implicitly triggers the writebehind on sync().
2382 */ 2380 */
2383
2384static void ext3_write_super (struct super_block * sb) 2381static void ext3_write_super (struct super_block * sb)
2385{ 2382{
2386 if (mutex_trylock(&sb->s_lock) != 0) 2383 if (mutex_trylock(&sb->s_lock) != 0)
@@ -2390,13 +2387,12 @@ static void ext3_write_super (struct super_block * sb)
2390 2387
2391static int ext3_sync_fs(struct super_block *sb, int wait) 2388static int ext3_sync_fs(struct super_block *sb, int wait)
2392{ 2389{
2393 tid_t target;
2394
2395 sb->s_dirt = 0; 2390 sb->s_dirt = 0;
2396 if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) { 2391 if (wait)
2397 if (wait) 2392 ext3_force_commit(sb);
2398 log_wait_commit(EXT3_SB(sb)->s_journal, target); 2393 else
2399 } 2394 journal_start_commit(EXT3_SB(sb)->s_journal, NULL);
2395
2400 return 0; 2396 return 0;
2401} 2397}
2402 2398
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/ext4/ialloc.c b/fs/ext4/ialloc.c
index fe34d74cfb19..2a117e286e54 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -718,6 +718,8 @@ got:
718 gdp->bg_flags &= cpu_to_le16(~EXT4_BG_BLOCK_UNINIT); 718 gdp->bg_flags &= cpu_to_le16(~EXT4_BG_BLOCK_UNINIT);
719 free = ext4_free_blocks_after_init(sb, group, gdp); 719 free = ext4_free_blocks_after_init(sb, group, gdp);
720 gdp->bg_free_blocks_count = cpu_to_le16(free); 720 gdp->bg_free_blocks_count = cpu_to_le16(free);
721 gdp->bg_checksum = ext4_group_desc_csum(sbi, group,
722 gdp);
721 } 723 }
722 spin_unlock(sb_bgl_lock(sbi, group)); 724 spin_unlock(sb_bgl_lock(sbi, group));
723 725
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 8dbf6953845b..be21a5ae33cb 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -2329,6 +2329,8 @@ static int ext4_da_writepage(struct page *page,
2329 unlock_page(page); 2329 unlock_page(page);
2330 return 0; 2330 return 0;
2331 } 2331 }
2332 /* now mark the buffer_heads as dirty and uptodate */
2333 block_commit_write(page, 0, PAGE_CACHE_SIZE);
2332 } 2334 }
2333 2335
2334 if (test_opt(inode->i_sb, NOBH) && ext4_should_writeback_data(inode)) 2336 if (test_opt(inode->i_sb, NOBH) && ext4_should_writeback_data(inode))
@@ -4580,9 +4582,10 @@ static int ext4_indirect_trans_blocks(struct inode *inode, int nrblocks,
4580static int ext4_index_trans_blocks(struct inode *inode, int nrblocks, int chunk) 4582static int ext4_index_trans_blocks(struct inode *inode, int nrblocks, int chunk)
4581{ 4583{
4582 if (!(EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL)) 4584 if (!(EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL))
4583 return ext4_indirect_trans_blocks(inode, nrblocks, 0); 4585 return ext4_indirect_trans_blocks(inode, nrblocks, chunk);
4584 return ext4_ext_index_trans_blocks(inode, nrblocks, 0); 4586 return ext4_ext_index_trans_blocks(inode, nrblocks, chunk);
4585} 4587}
4588
4586/* 4589/*
4587 * Account for index blocks, block groups bitmaps and block group 4590 * Account for index blocks, block groups bitmaps and block group
4588 * descriptor blocks if modify datablocks and index blocks 4591 * descriptor blocks if modify datablocks and index blocks
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index dfe17a134052..444ad998f72e 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -4441,6 +4441,7 @@ ext4_mb_free_metadata(handle_t *handle, struct ext4_buddy *e4b,
4441 else if (block >= (entry->start_blk + entry->count)) 4441 else if (block >= (entry->start_blk + entry->count))
4442 n = &(*n)->rb_right; 4442 n = &(*n)->rb_right;
4443 else { 4443 else {
4444 ext4_unlock_group(sb, group);
4444 ext4_error(sb, __func__, 4445 ext4_error(sb, __func__,
4445 "Double free of blocks %d (%d %d)\n", 4446 "Double free of blocks %d (%d %d)\n",
4446 block, entry->start_blk, entry->count); 4447 block, entry->start_blk, entry->count);
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 994859df010e..e4a241c65dbe 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1458,9 +1458,8 @@ static int ext4_fill_flex_info(struct super_block *sb)
1458 1458
1459 /* We allocate both existing and potentially added groups */ 1459 /* We allocate both existing and potentially added groups */
1460 flex_group_count = ((sbi->s_groups_count + groups_per_flex - 1) + 1460 flex_group_count = ((sbi->s_groups_count + groups_per_flex - 1) +
1461 ((sbi->s_es->s_reserved_gdt_blocks +1 ) << 1461 ((le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks) + 1) <<
1462 EXT4_DESC_PER_BLOCK_BITS(sb))) / 1462 EXT4_DESC_PER_BLOCK_BITS(sb))) / groups_per_flex;
1463 groups_per_flex;
1464 sbi->s_flex_groups = kzalloc(flex_group_count * 1463 sbi->s_flex_groups = kzalloc(flex_group_count *
1465 sizeof(struct flex_groups), GFP_KERNEL); 1464 sizeof(struct flex_groups), GFP_KERNEL);
1466 if (sbi->s_flex_groups == NULL) { 1465 if (sbi->s_flex_groups == NULL) {
@@ -2885,12 +2884,9 @@ int ext4_force_commit(struct super_block *sb)
2885/* 2884/*
2886 * Ext4 always journals updates to the superblock itself, so we don't 2885 * Ext4 always journals updates to the superblock itself, so we don't
2887 * have to propagate any other updates to the superblock on disk at this 2886 * have to propagate any other updates to the superblock on disk at this
2888 * point. Just start an async writeback to get the buffers on their way 2887 * point. (We can probably nuke this function altogether, and remove
2889 * to the disk. 2888 * any mention to sb->s_dirt in all of fs/ext4; eventual cleanup...)
2890 *
2891 * This implicitly triggers the writebehind on sync().
2892 */ 2889 */
2893
2894static void ext4_write_super(struct super_block *sb) 2890static void ext4_write_super(struct super_block *sb)
2895{ 2891{
2896 if (mutex_trylock(&sb->s_lock) != 0) 2892 if (mutex_trylock(&sb->s_lock) != 0)
@@ -2900,15 +2896,15 @@ static void ext4_write_super(struct super_block *sb)
2900 2896
2901static int ext4_sync_fs(struct super_block *sb, int wait) 2897static int ext4_sync_fs(struct super_block *sb, int wait)
2902{ 2898{
2903 tid_t target; 2899 int ret = 0;
2904 2900
2905 trace_mark(ext4_sync_fs, "dev %s wait %d", sb->s_id, wait); 2901 trace_mark(ext4_sync_fs, "dev %s wait %d", sb->s_id, wait);
2906 sb->s_dirt = 0; 2902 sb->s_dirt = 0;
2907 if (jbd2_journal_start_commit(EXT4_SB(sb)->s_journal, &target)) { 2903 if (wait)
2908 if (wait) 2904 ret = ext4_force_commit(sb);
2909 jbd2_log_wait_commit(EXT4_SB(sb)->s_journal, target); 2905 else
2910 } 2906 jbd2_journal_start_commit(EXT4_SB(sb)->s_journal, NULL);
2911 return 0; 2907 return ret;
2912} 2908}
2913 2909
2914/* 2910/*
diff --git a/fs/fat/Makefile b/fs/fat/Makefile
index bfb5f06cf2c8..e06190322c1c 100644
--- a/fs/fat/Makefile
+++ b/fs/fat/Makefile
@@ -3,5 +3,9 @@
3# 3#
4 4
5obj-$(CONFIG_FAT_FS) += fat.o 5obj-$(CONFIG_FAT_FS) += fat.o
6obj-$(CONFIG_VFAT_FS) += vfat.o
7obj-$(CONFIG_MSDOS_FS) += msdos.o
6 8
7fat-objs := cache.o dir.o fatent.o file.o inode.o misc.o 9fat-y := cache.o dir.o fatent.o file.o inode.o misc.o
10vfat-y := namei_vfat.o
11msdos-y := namei_msdos.o
diff --git a/fs/fat/cache.c b/fs/fat/cache.c
index 3222f51c41cf..b42602298087 100644
--- a/fs/fat/cache.c
+++ b/fs/fat/cache.c
@@ -9,8 +9,8 @@
9 */ 9 */
10 10
11#include <linux/fs.h> 11#include <linux/fs.h>
12#include <linux/msdos_fs.h>
13#include <linux/buffer_head.h> 12#include <linux/buffer_head.h>
13#include "fat.h"
14 14
15/* this must be > 0. */ 15/* this must be > 0. */
16#define FAT_MAX_CACHE 8 16#define FAT_MAX_CACHE 8
@@ -293,10 +293,12 @@ static int fat_bmap_cluster(struct inode *inode, int cluster)
293} 293}
294 294
295int fat_bmap(struct inode *inode, sector_t sector, sector_t *phys, 295int fat_bmap(struct inode *inode, sector_t sector, sector_t *phys,
296 unsigned long *mapped_blocks) 296 unsigned long *mapped_blocks, int create)
297{ 297{
298 struct super_block *sb = inode->i_sb; 298 struct super_block *sb = inode->i_sb;
299 struct msdos_sb_info *sbi = MSDOS_SB(sb); 299 struct msdos_sb_info *sbi = MSDOS_SB(sb);
300 const unsigned long blocksize = sb->s_blocksize;
301 const unsigned char blocksize_bits = sb->s_blocksize_bits;
300 sector_t last_block; 302 sector_t last_block;
301 int cluster, offset; 303 int cluster, offset;
302 304
@@ -309,10 +311,21 @@ int fat_bmap(struct inode *inode, sector_t sector, sector_t *phys,
309 } 311 }
310 return 0; 312 return 0;
311 } 313 }
312 last_block = (MSDOS_I(inode)->mmu_private + (sb->s_blocksize - 1)) 314
313 >> sb->s_blocksize_bits; 315 last_block = (i_size_read(inode) + (blocksize - 1)) >> blocksize_bits;
314 if (sector >= last_block) 316 if (sector >= last_block) {
315 return 0; 317 if (!create)
318 return 0;
319
320 /*
321 * ->mmu_private can access on only allocation path.
322 * (caller must hold ->i_mutex)
323 */
324 last_block = (MSDOS_I(inode)->mmu_private + (blocksize - 1))
325 >> blocksize_bits;
326 if (sector >= last_block)
327 return 0;
328 }
316 329
317 cluster = sector >> (sbi->cluster_bits - sb->s_blocksize_bits); 330 cluster = sector >> (sbi->cluster_bits - sb->s_blocksize_bits);
318 offset = sector & (sbi->sec_per_clus - 1); 331 offset = sector & (sbi->sec_per_clus - 1);
diff --git a/fs/fat/dir.c b/fs/fat/dir.c
index bae1c3292522..67e058357098 100644
--- a/fs/fat/dir.c
+++ b/fs/fat/dir.c
@@ -16,11 +16,11 @@
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/slab.h> 17#include <linux/slab.h>
18#include <linux/time.h> 18#include <linux/time.h>
19#include <linux/msdos_fs.h>
20#include <linux/smp_lock.h> 19#include <linux/smp_lock.h>
21#include <linux/buffer_head.h> 20#include <linux/buffer_head.h>
22#include <linux/compat.h> 21#include <linux/compat.h>
23#include <asm/uaccess.h> 22#include <asm/uaccess.h>
23#include "fat.h"
24 24
25static inline loff_t fat_make_i_pos(struct super_block *sb, 25static inline loff_t fat_make_i_pos(struct super_block *sb,
26 struct buffer_head *bh, 26 struct buffer_head *bh,
@@ -77,7 +77,7 @@ next:
77 77
78 *bh = NULL; 78 *bh = NULL;
79 iblock = *pos >> sb->s_blocksize_bits; 79 iblock = *pos >> sb->s_blocksize_bits;
80 err = fat_bmap(dir, iblock, &phys, &mapped_blocks); 80 err = fat_bmap(dir, iblock, &phys, &mapped_blocks, 0);
81 if (err || !phys) 81 if (err || !phys)
82 return -1; /* beyond EOF or error */ 82 return -1; /* beyond EOF or error */
83 83
@@ -86,7 +86,7 @@ next:
86 *bh = sb_bread(sb, phys); 86 *bh = sb_bread(sb, phys);
87 if (*bh == NULL) { 87 if (*bh == NULL) {
88 printk(KERN_ERR "FAT: Directory bread(block %llu) failed\n", 88 printk(KERN_ERR "FAT: Directory bread(block %llu) failed\n",
89 (unsigned long long)phys); 89 (llu)phys);
90 /* skip this block */ 90 /* skip this block */
91 *pos = (iblock + 1) << sb->s_blocksize_bits; 91 *pos = (iblock + 1) << sb->s_blocksize_bits;
92 goto next; 92 goto next;
@@ -373,9 +373,10 @@ parse_record:
373 if (de->attr == ATTR_EXT) { 373 if (de->attr == ATTR_EXT) {
374 int status = fat_parse_long(inode, &cpos, &bh, &de, 374 int status = fat_parse_long(inode, &cpos, &bh, &de,
375 &unicode, &nr_slots); 375 &unicode, &nr_slots);
376 if (status < 0) 376 if (status < 0) {
377 return status; 377 err = status;
378 else if (status == PARSE_INVALID) 378 goto end_of_dir;
379 } else if (status == PARSE_INVALID)
379 continue; 380 continue;
380 else if (status == PARSE_NOT_LONGNAME) 381 else if (status == PARSE_NOT_LONGNAME)
381 goto parse_record; 382 goto parse_record;
@@ -832,6 +833,7 @@ static long fat_compat_dir_ioctl(struct file *filp, unsigned cmd,
832#endif /* CONFIG_COMPAT */ 833#endif /* CONFIG_COMPAT */
833 834
834const struct file_operations fat_dir_operations = { 835const struct file_operations fat_dir_operations = {
836 .llseek = generic_file_llseek,
835 .read = generic_read_dir, 837 .read = generic_read_dir,
836 .readdir = fat_readdir, 838 .readdir = fat_readdir,
837 .ioctl = fat_dir_ioctl, 839 .ioctl = fat_dir_ioctl,
@@ -1089,6 +1091,7 @@ int fat_alloc_new_dir(struct inode *dir, struct timespec *ts)
1089 struct msdos_dir_entry *de; 1091 struct msdos_dir_entry *de;
1090 sector_t blknr; 1092 sector_t blknr;
1091 __le16 date, time; 1093 __le16 date, time;
1094 u8 time_cs;
1092 int err, cluster; 1095 int err, cluster;
1093 1096
1094 err = fat_alloc_clusters(dir, &cluster, 1); 1097 err = fat_alloc_clusters(dir, &cluster, 1);
@@ -1102,7 +1105,7 @@ int fat_alloc_new_dir(struct inode *dir, struct timespec *ts)
1102 goto error_free; 1105 goto error_free;
1103 } 1106 }
1104 1107
1105 fat_date_unix2dos(ts->tv_sec, &time, &date, sbi->options.tz_utc); 1108 fat_time_unix2fat(sbi, ts, &time, &date, &time_cs);
1106 1109
1107 de = (struct msdos_dir_entry *)bhs[0]->b_data; 1110 de = (struct msdos_dir_entry *)bhs[0]->b_data;
1108 /* filling the new directory slots ("." and ".." entries) */ 1111 /* filling the new directory slots ("." and ".." entries) */
@@ -1112,13 +1115,14 @@ int fat_alloc_new_dir(struct inode *dir, struct timespec *ts)
1112 de[0].lcase = de[1].lcase = 0; 1115 de[0].lcase = de[1].lcase = 0;
1113 de[0].time = de[1].time = time; 1116 de[0].time = de[1].time = time;
1114 de[0].date = de[1].date = date; 1117 de[0].date = de[1].date = date;
1115 de[0].ctime_cs = de[1].ctime_cs = 0;
1116 if (sbi->options.isvfat) { 1118 if (sbi->options.isvfat) {
1117 /* extra timestamps */ 1119 /* extra timestamps */
1118 de[0].ctime = de[1].ctime = time; 1120 de[0].ctime = de[1].ctime = time;
1121 de[0].ctime_cs = de[1].ctime_cs = time_cs;
1119 de[0].adate = de[0].cdate = de[1].adate = de[1].cdate = date; 1122 de[0].adate = de[0].cdate = de[1].adate = de[1].cdate = date;
1120 } else { 1123 } else {
1121 de[0].ctime = de[1].ctime = 0; 1124 de[0].ctime = de[1].ctime = 0;
1125 de[0].ctime_cs = de[1].ctime_cs = 0;
1122 de[0].adate = de[0].cdate = de[1].adate = de[1].cdate = 0; 1126 de[0].adate = de[0].cdate = de[1].adate = de[1].cdate = 0;
1123 } 1127 }
1124 de[0].start = cpu_to_le16(cluster); 1128 de[0].start = cpu_to_le16(cluster);
diff --git a/fs/fat/fat.h b/fs/fat/fat.h
new file mode 100644
index 000000000000..ea440d65819c
--- /dev/null
+++ b/fs/fat/fat.h
@@ -0,0 +1,329 @@
1#ifndef _FAT_H
2#define _FAT_H
3
4#include <linux/buffer_head.h>
5#include <linux/string.h>
6#include <linux/nls.h>
7#include <linux/fs.h>
8#include <linux/mutex.h>
9#include <linux/msdos_fs.h>
10
11/*
12 * vfat shortname flags
13 */
14#define VFAT_SFN_DISPLAY_LOWER 0x0001 /* convert to lowercase for display */
15#define VFAT_SFN_DISPLAY_WIN95 0x0002 /* emulate win95 rule for display */
16#define VFAT_SFN_DISPLAY_WINNT 0x0004 /* emulate winnt rule for display */
17#define VFAT_SFN_CREATE_WIN95 0x0100 /* emulate win95 rule for create */
18#define VFAT_SFN_CREATE_WINNT 0x0200 /* emulate winnt rule for create */
19
20struct fat_mount_options {
21 uid_t fs_uid;
22 gid_t fs_gid;
23 unsigned short fs_fmask;
24 unsigned short fs_dmask;
25 unsigned short codepage; /* Codepage for shortname conversions */
26 char *iocharset; /* Charset used for filename input/display */
27 unsigned short shortname; /* flags for shortname display/create rule */
28 unsigned char name_check; /* r = relaxed, n = normal, s = strict */
29 unsigned short allow_utime;/* permission for setting the [am]time */
30 unsigned quiet:1, /* set = fake successful chmods and chowns */
31 showexec:1, /* set = only set x bit for com/exe/bat */
32 sys_immutable:1, /* set = system files are immutable */
33 dotsOK:1, /* set = hidden and system files are named '.filename' */
34 isvfat:1, /* 0=no vfat long filename support, 1=vfat support */
35 utf8:1, /* Use of UTF-8 character set (Default) */
36 unicode_xlate:1, /* create escape sequences for unhandled Unicode */
37 numtail:1, /* Does first alias have a numeric '~1' type tail? */
38 flush:1, /* write things quickly */
39 nocase:1, /* Does this need case conversion? 0=need case conversion*/
40 usefree:1, /* Use free_clusters for FAT32 */
41 tz_utc:1, /* Filesystem timestamps are in UTC */
42 rodir:1; /* allow ATTR_RO for directory */
43};
44
45#define FAT_HASH_BITS 8
46#define FAT_HASH_SIZE (1UL << FAT_HASH_BITS)
47
48/*
49 * MS-DOS file system in-core superblock data
50 */
51struct msdos_sb_info {
52 unsigned short sec_per_clus; /* sectors/cluster */
53 unsigned short cluster_bits; /* log2(cluster_size) */
54 unsigned int cluster_size; /* cluster size */
55 unsigned char fats,fat_bits; /* number of FATs, FAT bits (12 or 16) */
56 unsigned short fat_start;
57 unsigned long fat_length; /* FAT start & length (sec.) */
58 unsigned long dir_start;
59 unsigned short dir_entries; /* root dir start & entries */
60 unsigned long data_start; /* first data sector */
61 unsigned long max_cluster; /* maximum cluster number */
62 unsigned long root_cluster; /* first cluster of the root directory */
63 unsigned long fsinfo_sector; /* sector number of FAT32 fsinfo */
64 struct mutex fat_lock;
65 unsigned int prev_free; /* previously allocated cluster number */
66 unsigned int free_clusters; /* -1 if undefined */
67 unsigned int free_clus_valid; /* is free_clusters valid? */
68 struct fat_mount_options options;
69 struct nls_table *nls_disk; /* Codepage used on disk */
70 struct nls_table *nls_io; /* Charset used for input and display */
71 const void *dir_ops; /* Opaque; default directory operations */
72 int dir_per_block; /* dir entries per block */
73 int dir_per_block_bits; /* log2(dir_per_block) */
74
75 int fatent_shift;
76 struct fatent_operations *fatent_ops;
77
78 spinlock_t inode_hash_lock;
79 struct hlist_head inode_hashtable[FAT_HASH_SIZE];
80};
81
82#define FAT_CACHE_VALID 0 /* special case for valid cache */
83
84/*
85 * MS-DOS file system inode data in memory
86 */
87struct msdos_inode_info {
88 spinlock_t cache_lru_lock;
89 struct list_head cache_lru;
90 int nr_caches;
91 /* for avoiding the race between fat_free() and fat_get_cluster() */
92 unsigned int cache_valid_id;
93
94 /* NOTE: mmu_private is 64bits, so must hold ->i_mutex to access */
95 loff_t mmu_private; /* physically allocated size */
96
97 int i_start; /* first cluster or 0 */
98 int i_logstart; /* logical first cluster */
99 int i_attrs; /* unused attribute bits */
100 loff_t i_pos; /* on-disk position of directory entry or 0 */
101 struct hlist_node i_fat_hash; /* hash by i_location */
102 struct inode vfs_inode;
103};
104
105struct fat_slot_info {
106 loff_t i_pos; /* on-disk position of directory entry */
107 loff_t slot_off; /* offset for slot or de start */
108 int nr_slots; /* number of slots + 1(de) in filename */
109 struct msdos_dir_entry *de;
110 struct buffer_head *bh;
111};
112
113static inline struct msdos_sb_info *MSDOS_SB(struct super_block *sb)
114{
115 return sb->s_fs_info;
116}
117
118static inline struct msdos_inode_info *MSDOS_I(struct inode *inode)
119{
120 return container_of(inode, struct msdos_inode_info, vfs_inode);
121}
122
123/*
124 * If ->i_mode can't hold S_IWUGO (i.e. ATTR_RO), we use ->i_attrs to
125 * save ATTR_RO instead of ->i_mode.
126 *
127 * If it's directory and !sbi->options.rodir, ATTR_RO isn't read-only
128 * bit, it's just used as flag for app.
129 */
130static inline int fat_mode_can_hold_ro(struct inode *inode)
131{
132 struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
133 mode_t mask;
134
135 if (S_ISDIR(inode->i_mode)) {
136 if (!sbi->options.rodir)
137 return 0;
138 mask = ~sbi->options.fs_dmask;
139 } else
140 mask = ~sbi->options.fs_fmask;
141
142 if (!(mask & S_IWUGO))
143 return 0;
144 return 1;
145}
146
147/* Convert attribute bits and a mask to the UNIX mode. */
148static inline mode_t fat_make_mode(struct msdos_sb_info *sbi,
149 u8 attrs, mode_t mode)
150{
151 if (attrs & ATTR_RO && !((attrs & ATTR_DIR) && !sbi->options.rodir))
152 mode &= ~S_IWUGO;
153
154 if (attrs & ATTR_DIR)
155 return (mode & ~sbi->options.fs_dmask) | S_IFDIR;
156 else
157 return (mode & ~sbi->options.fs_fmask) | S_IFREG;
158}
159
160/* Return the FAT attribute byte for this inode */
161static inline u8 fat_make_attrs(struct inode *inode)
162{
163 u8 attrs = MSDOS_I(inode)->i_attrs;
164 if (S_ISDIR(inode->i_mode))
165 attrs |= ATTR_DIR;
166 if (fat_mode_can_hold_ro(inode) && !(inode->i_mode & S_IWUGO))
167 attrs |= ATTR_RO;
168 return attrs;
169}
170
171static inline void fat_save_attrs(struct inode *inode, u8 attrs)
172{
173 if (fat_mode_can_hold_ro(inode))
174 MSDOS_I(inode)->i_attrs = attrs & ATTR_UNUSED;
175 else
176 MSDOS_I(inode)->i_attrs = attrs & (ATTR_UNUSED | ATTR_RO);
177}
178
179static inline unsigned char fat_checksum(const __u8 *name)
180{
181 unsigned char s = name[0];
182 s = (s<<7) + (s>>1) + name[1]; s = (s<<7) + (s>>1) + name[2];
183 s = (s<<7) + (s>>1) + name[3]; s = (s<<7) + (s>>1) + name[4];
184 s = (s<<7) + (s>>1) + name[5]; s = (s<<7) + (s>>1) + name[6];
185 s = (s<<7) + (s>>1) + name[7]; s = (s<<7) + (s>>1) + name[8];
186 s = (s<<7) + (s>>1) + name[9]; s = (s<<7) + (s>>1) + name[10];
187 return s;
188}
189
190static inline sector_t fat_clus_to_blknr(struct msdos_sb_info *sbi, int clus)
191{
192 return ((sector_t)clus - FAT_START_ENT) * sbi->sec_per_clus
193 + sbi->data_start;
194}
195
196static inline void fat16_towchar(wchar_t *dst, const __u8 *src, size_t len)
197{
198#ifdef __BIG_ENDIAN
199 while (len--) {
200 *dst++ = src[0] | (src[1] << 8);
201 src += 2;
202 }
203#else
204 memcpy(dst, src, len * 2);
205#endif
206}
207
208static inline void fatwchar_to16(__u8 *dst, const wchar_t *src, size_t len)
209{
210#ifdef __BIG_ENDIAN
211 while (len--) {
212 dst[0] = *src & 0x00FF;
213 dst[1] = (*src & 0xFF00) >> 8;
214 dst += 2;
215 src++;
216 }
217#else
218 memcpy(dst, src, len * 2);
219#endif
220}
221
222/* fat/cache.c */
223extern void fat_cache_inval_inode(struct inode *inode);
224extern int fat_get_cluster(struct inode *inode, int cluster,
225 int *fclus, int *dclus);
226extern int fat_bmap(struct inode *inode, sector_t sector, sector_t *phys,
227 unsigned long *mapped_blocks, int create);
228
229/* fat/dir.c */
230extern const struct file_operations fat_dir_operations;
231extern int fat_search_long(struct inode *inode, const unsigned char *name,
232 int name_len, struct fat_slot_info *sinfo);
233extern int fat_dir_empty(struct inode *dir);
234extern int fat_subdirs(struct inode *dir);
235extern int fat_scan(struct inode *dir, const unsigned char *name,
236 struct fat_slot_info *sinfo);
237extern int fat_get_dotdot_entry(struct inode *dir, struct buffer_head **bh,
238 struct msdos_dir_entry **de, loff_t *i_pos);
239extern int fat_alloc_new_dir(struct inode *dir, struct timespec *ts);
240extern int fat_add_entries(struct inode *dir, void *slots, int nr_slots,
241 struct fat_slot_info *sinfo);
242extern int fat_remove_entries(struct inode *dir, struct fat_slot_info *sinfo);
243
244/* fat/fatent.c */
245struct fat_entry {
246 int entry;
247 union {
248 u8 *ent12_p[2];
249 __le16 *ent16_p;
250 __le32 *ent32_p;
251 } u;
252 int nr_bhs;
253 struct buffer_head *bhs[2];
254};
255
256static inline void fatent_init(struct fat_entry *fatent)
257{
258 fatent->nr_bhs = 0;
259 fatent->entry = 0;
260 fatent->u.ent32_p = NULL;
261 fatent->bhs[0] = fatent->bhs[1] = NULL;
262}
263
264static inline void fatent_set_entry(struct fat_entry *fatent, int entry)
265{
266 fatent->entry = entry;
267 fatent->u.ent32_p = NULL;
268}
269
270static inline void fatent_brelse(struct fat_entry *fatent)
271{
272 int i;
273 fatent->u.ent32_p = NULL;
274 for (i = 0; i < fatent->nr_bhs; i++)
275 brelse(fatent->bhs[i]);
276 fatent->nr_bhs = 0;
277 fatent->bhs[0] = fatent->bhs[1] = NULL;
278}
279
280extern void fat_ent_access_init(struct super_block *sb);
281extern int fat_ent_read(struct inode *inode, struct fat_entry *fatent,
282 int entry);
283extern int fat_ent_write(struct inode *inode, struct fat_entry *fatent,
284 int new, int wait);
285extern int fat_alloc_clusters(struct inode *inode, int *cluster,
286 int nr_cluster);
287extern int fat_free_clusters(struct inode *inode, int cluster);
288extern int fat_count_free_clusters(struct super_block *sb);
289
290/* fat/file.c */
291extern int fat_generic_ioctl(struct inode *inode, struct file *filp,
292 unsigned int cmd, unsigned long arg);
293extern const struct file_operations fat_file_operations;
294extern const struct inode_operations fat_file_inode_operations;
295extern int fat_setattr(struct dentry * dentry, struct iattr * attr);
296extern void fat_truncate(struct inode *inode);
297extern int fat_getattr(struct vfsmount *mnt, struct dentry *dentry,
298 struct kstat *stat);
299
300/* fat/inode.c */
301extern void fat_attach(struct inode *inode, loff_t i_pos);
302extern void fat_detach(struct inode *inode);
303extern struct inode *fat_iget(struct super_block *sb, loff_t i_pos);
304extern struct inode *fat_build_inode(struct super_block *sb,
305 struct msdos_dir_entry *de, loff_t i_pos);
306extern int fat_sync_inode(struct inode *inode);
307extern int fat_fill_super(struct super_block *sb, void *data, int silent,
308 const struct inode_operations *fs_dir_inode_ops, int isvfat);
309
310extern int fat_flush_inodes(struct super_block *sb, struct inode *i1,
311 struct inode *i2);
312/* fat/misc.c */
313extern void fat_fs_panic(struct super_block *s, const char *fmt, ...)
314 __attribute__ ((format (printf, 2, 3))) __cold;
315extern void fat_clusters_flush(struct super_block *sb);
316extern int fat_chain_add(struct inode *inode, int new_dclus, int nr_cluster);
317extern void fat_time_fat2unix(struct msdos_sb_info *sbi, struct timespec *ts,
318 __le16 __time, __le16 __date, u8 time_cs);
319extern void fat_time_unix2fat(struct msdos_sb_info *sbi, struct timespec *ts,
320 __le16 *time, __le16 *date, u8 *time_cs);
321extern int fat_sync_bhs(struct buffer_head **bhs, int nr_bhs);
322
323int fat_cache_init(void);
324void fat_cache_destroy(void);
325
326/* helper for printk */
327typedef unsigned long long llu;
328
329#endif /* !_FAT_H */
diff --git a/fs/fat/fatent.c b/fs/fat/fatent.c
index fb98b3d847ed..da6eea47872f 100644
--- a/fs/fat/fatent.c
+++ b/fs/fat/fatent.c
@@ -7,6 +7,7 @@
7#include <linux/fs.h> 7#include <linux/fs.h>
8#include <linux/msdos_fs.h> 8#include <linux/msdos_fs.h>
9#include <linux/blkdev.h> 9#include <linux/blkdev.h>
10#include "fat.h"
10 11
11struct fatent_operations { 12struct fatent_operations {
12 void (*ent_blocknr)(struct super_block *, int, int *, sector_t *); 13 void (*ent_blocknr)(struct super_block *, int, int *, sector_t *);
@@ -92,8 +93,7 @@ static int fat12_ent_bread(struct super_block *sb, struct fat_entry *fatent,
92err_brelse: 93err_brelse:
93 brelse(bhs[0]); 94 brelse(bhs[0]);
94err: 95err:
95 printk(KERN_ERR "FAT: FAT read failed (blocknr %llu)\n", 96 printk(KERN_ERR "FAT: FAT read failed (blocknr %llu)\n", (llu)blocknr);
96 (unsigned long long)blocknr);
97 return -EIO; 97 return -EIO;
98} 98}
99 99
@@ -106,7 +106,7 @@ static int fat_ent_bread(struct super_block *sb, struct fat_entry *fatent,
106 fatent->bhs[0] = sb_bread(sb, blocknr); 106 fatent->bhs[0] = sb_bread(sb, blocknr);
107 if (!fatent->bhs[0]) { 107 if (!fatent->bhs[0]) {
108 printk(KERN_ERR "FAT: FAT read failed (blocknr %llu)\n", 108 printk(KERN_ERR "FAT: FAT read failed (blocknr %llu)\n",
109 (unsigned long long)blocknr); 109 (llu)blocknr);
110 return -EIO; 110 return -EIO;
111 } 111 }
112 fatent->nr_bhs = 1; 112 fatent->nr_bhs = 1;
@@ -316,10 +316,20 @@ static inline int fat_ent_update_ptr(struct super_block *sb,
316 /* Is this fatent's blocks including this entry? */ 316 /* Is this fatent's blocks including this entry? */
317 if (!fatent->nr_bhs || bhs[0]->b_blocknr != blocknr) 317 if (!fatent->nr_bhs || bhs[0]->b_blocknr != blocknr)
318 return 0; 318 return 0;
319 /* Does this entry need the next block? */ 319 if (sbi->fat_bits == 12) {
320 if (sbi->fat_bits == 12 && (offset + 1) >= sb->s_blocksize) { 320 if ((offset + 1) < sb->s_blocksize) {
321 if (fatent->nr_bhs != 2 || bhs[1]->b_blocknr != (blocknr + 1)) 321 /* This entry is on bhs[0]. */
322 return 0; 322 if (fatent->nr_bhs == 2) {
323 brelse(bhs[1]);
324 fatent->nr_bhs = 1;
325 }
326 } else {
327 /* This entry needs the next block. */
328 if (fatent->nr_bhs != 2)
329 return 0;
330 if (bhs[1]->b_blocknr != (blocknr + 1))
331 return 0;
332 }
323 } 333 }
324 ops->ent_set_ptr(fatent, offset); 334 ops->ent_set_ptr(fatent, offset);
325 return 1; 335 return 1;
diff --git a/fs/fat/file.c b/fs/fat/file.c
index ddde37025ca6..f06a4e525ece 100644
--- a/fs/fat/file.c
+++ b/fs/fat/file.c
@@ -10,13 +10,13 @@
10#include <linux/module.h> 10#include <linux/module.h>
11#include <linux/mount.h> 11#include <linux/mount.h>
12#include <linux/time.h> 12#include <linux/time.h>
13#include <linux/msdos_fs.h>
14#include <linux/buffer_head.h> 13#include <linux/buffer_head.h>
15#include <linux/writeback.h> 14#include <linux/writeback.h>
16#include <linux/backing-dev.h> 15#include <linux/backing-dev.h>
17#include <linux/blkdev.h> 16#include <linux/blkdev.h>
18#include <linux/fsnotify.h> 17#include <linux/fsnotify.h>
19#include <linux/security.h> 18#include <linux/security.h>
19#include "fat.h"
20 20
21int fat_generic_ioctl(struct inode *inode, struct file *filp, 21int fat_generic_ioctl(struct inode *inode, struct file *filp,
22 unsigned int cmd, unsigned long arg) 22 unsigned int cmd, unsigned long arg)
@@ -29,10 +29,9 @@ int fat_generic_ioctl(struct inode *inode, struct file *filp,
29 { 29 {
30 u32 attr; 30 u32 attr;
31 31
32 if (inode->i_ino == MSDOS_ROOT_INO) 32 mutex_lock(&inode->i_mutex);
33 attr = ATTR_DIR; 33 attr = fat_make_attrs(inode);
34 else 34 mutex_unlock(&inode->i_mutex);
35 attr = fat_attr(inode);
36 35
37 return put_user(attr, user_attr); 36 return put_user(attr, user_attr);
38 } 37 }
@@ -62,20 +61,16 @@ int fat_generic_ioctl(struct inode *inode, struct file *filp,
62 /* Merge in ATTR_VOLUME and ATTR_DIR */ 61 /* Merge in ATTR_VOLUME and ATTR_DIR */
63 attr |= (MSDOS_I(inode)->i_attrs & ATTR_VOLUME) | 62 attr |= (MSDOS_I(inode)->i_attrs & ATTR_VOLUME) |
64 (is_dir ? ATTR_DIR : 0); 63 (is_dir ? ATTR_DIR : 0);
65 oldattr = fat_attr(inode); 64 oldattr = fat_make_attrs(inode);
66 65
67 /* Equivalent to a chmod() */ 66 /* Equivalent to a chmod() */
68 ia.ia_valid = ATTR_MODE | ATTR_CTIME; 67 ia.ia_valid = ATTR_MODE | ATTR_CTIME;
69 ia.ia_ctime = current_fs_time(inode->i_sb); 68 ia.ia_ctime = current_fs_time(inode->i_sb);
70 if (is_dir) { 69 if (is_dir)
71 ia.ia_mode = MSDOS_MKMODE(attr, 70 ia.ia_mode = fat_make_mode(sbi, attr, S_IRWXUGO);
72 S_IRWXUGO & ~sbi->options.fs_dmask) 71 else {
73 | S_IFDIR; 72 ia.ia_mode = fat_make_mode(sbi, attr,
74 } else { 73 S_IRUGO | S_IWUGO | (inode->i_mode & S_IXUGO));
75 ia.ia_mode = MSDOS_MKMODE(attr,
76 (S_IRUGO | S_IWUGO | (inode->i_mode & S_IXUGO))
77 & ~sbi->options.fs_fmask)
78 | S_IFREG;
79 } 74 }
80 75
81 /* The root directory has no attributes */ 76 /* The root directory has no attributes */
@@ -115,7 +110,7 @@ int fat_generic_ioctl(struct inode *inode, struct file *filp,
115 inode->i_flags &= S_IMMUTABLE; 110 inode->i_flags &= S_IMMUTABLE;
116 } 111 }
117 112
118 MSDOS_I(inode)->i_attrs = attr & ATTR_UNUSED; 113 fat_save_attrs(inode, attr);
119 mark_inode_dirty(inode); 114 mark_inode_dirty(inode);
120up: 115up:
121 mnt_drop_write(filp->f_path.mnt); 116 mnt_drop_write(filp->f_path.mnt);
@@ -274,7 +269,7 @@ static int fat_sanitize_mode(const struct msdos_sb_info *sbi,
274 269
275 /* 270 /*
276 * Note, the basic check is already done by a caller of 271 * Note, the basic check is already done by a caller of
277 * (attr->ia_mode & ~MSDOS_VALID_MODE) 272 * (attr->ia_mode & ~FAT_VALID_MODE)
278 */ 273 */
279 274
280 if (S_ISREG(inode->i_mode)) 275 if (S_ISREG(inode->i_mode))
@@ -287,11 +282,18 @@ static int fat_sanitize_mode(const struct msdos_sb_info *sbi,
287 /* 282 /*
288 * Of the r and x bits, all (subject to umask) must be present. Of the 283 * Of the r and x bits, all (subject to umask) must be present. Of the
289 * w bits, either all (subject to umask) or none must be present. 284 * w bits, either all (subject to umask) or none must be present.
285 *
286 * If fat_mode_can_hold_ro(inode) is false, can't change w bits.
290 */ 287 */
291 if ((perm & (S_IRUGO | S_IXUGO)) != (inode->i_mode & (S_IRUGO|S_IXUGO))) 288 if ((perm & (S_IRUGO | S_IXUGO)) != (inode->i_mode & (S_IRUGO|S_IXUGO)))
292 return -EPERM; 289 return -EPERM;
293 if ((perm & S_IWUGO) && ((perm & S_IWUGO) != (S_IWUGO & ~mask))) 290 if (fat_mode_can_hold_ro(inode)) {
294 return -EPERM; 291 if ((perm & S_IWUGO) && ((perm & S_IWUGO) != (S_IWUGO & ~mask)))
292 return -EPERM;
293 } else {
294 if ((perm & S_IWUGO) != (S_IWUGO & ~mask))
295 return -EPERM;
296 }
295 297
296 *mode_ptr &= S_IFMT | perm; 298 *mode_ptr &= S_IFMT | perm;
297 299
@@ -314,13 +316,15 @@ static int fat_allow_set_time(struct msdos_sb_info *sbi, struct inode *inode)
314} 316}
315 317
316#define TIMES_SET_FLAGS (ATTR_MTIME_SET | ATTR_ATIME_SET | ATTR_TIMES_SET) 318#define TIMES_SET_FLAGS (ATTR_MTIME_SET | ATTR_ATIME_SET | ATTR_TIMES_SET)
319/* valid file mode bits */
320#define FAT_VALID_MODE (S_IFREG | S_IFDIR | S_IRWXUGO)
317 321
318int fat_setattr(struct dentry *dentry, struct iattr *attr) 322int fat_setattr(struct dentry *dentry, struct iattr *attr)
319{ 323{
320 struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb); 324 struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb);
321 struct inode *inode = dentry->d_inode; 325 struct inode *inode = dentry->d_inode;
322 int error = 0;
323 unsigned int ia_valid; 326 unsigned int ia_valid;
327 int error;
324 328
325 /* 329 /*
326 * Expand the file. Since inode_setattr() updates ->i_size 330 * Expand the file. Since inode_setattr() updates ->i_size
@@ -356,7 +360,7 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr)
356 ((attr->ia_valid & ATTR_GID) && 360 ((attr->ia_valid & ATTR_GID) &&
357 (attr->ia_gid != sbi->options.fs_gid)) || 361 (attr->ia_gid != sbi->options.fs_gid)) ||
358 ((attr->ia_valid & ATTR_MODE) && 362 ((attr->ia_valid & ATTR_MODE) &&
359 (attr->ia_mode & ~MSDOS_VALID_MODE))) 363 (attr->ia_mode & ~FAT_VALID_MODE)))
360 error = -EPERM; 364 error = -EPERM;
361 365
362 if (error) { 366 if (error) {
@@ -374,7 +378,8 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr)
374 attr->ia_valid &= ~ATTR_MODE; 378 attr->ia_valid &= ~ATTR_MODE;
375 } 379 }
376 380
377 error = inode_setattr(inode, attr); 381 if (attr->ia_valid)
382 error = inode_setattr(inode, attr);
378out: 383out:
379 return error; 384 return error;
380} 385}
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index 2b2eec1283bf..bdd8fb7be2ca 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -16,7 +16,6 @@
16#include <linux/slab.h> 16#include <linux/slab.h>
17#include <linux/smp_lock.h> 17#include <linux/smp_lock.h>
18#include <linux/seq_file.h> 18#include <linux/seq_file.h>
19#include <linux/msdos_fs.h>
20#include <linux/pagemap.h> 19#include <linux/pagemap.h>
21#include <linux/mpage.h> 20#include <linux/mpage.h>
22#include <linux/buffer_head.h> 21#include <linux/buffer_head.h>
@@ -27,7 +26,9 @@
27#include <linux/uio.h> 26#include <linux/uio.h>
28#include <linux/writeback.h> 27#include <linux/writeback.h>
29#include <linux/log2.h> 28#include <linux/log2.h>
29#include <linux/hash.h>
30#include <asm/unaligned.h> 30#include <asm/unaligned.h>
31#include "fat.h"
31 32
32#ifndef CONFIG_FAT_DEFAULT_IOCHARSET 33#ifndef CONFIG_FAT_DEFAULT_IOCHARSET
33/* if user don't select VFAT, this is undefined. */ 34/* if user don't select VFAT, this is undefined. */
@@ -63,7 +64,7 @@ static inline int __fat_get_block(struct inode *inode, sector_t iblock,
63 sector_t phys; 64 sector_t phys;
64 int err, offset; 65 int err, offset;
65 66
66 err = fat_bmap(inode, iblock, &phys, &mapped_blocks); 67 err = fat_bmap(inode, iblock, &phys, &mapped_blocks, create);
67 if (err) 68 if (err)
68 return err; 69 return err;
69 if (phys) { 70 if (phys) {
@@ -93,7 +94,7 @@ static inline int __fat_get_block(struct inode *inode, sector_t iblock,
93 *max_blocks = min(mapped_blocks, *max_blocks); 94 *max_blocks = min(mapped_blocks, *max_blocks);
94 MSDOS_I(inode)->mmu_private += *max_blocks << sb->s_blocksize_bits; 95 MSDOS_I(inode)->mmu_private += *max_blocks << sb->s_blocksize_bits;
95 96
96 err = fat_bmap(inode, iblock, &phys, &mapped_blocks); 97 err = fat_bmap(inode, iblock, &phys, &mapped_blocks, create);
97 if (err) 98 if (err)
98 return err; 99 return err;
99 100
@@ -198,7 +199,14 @@ static ssize_t fat_direct_IO(int rw, struct kiocb *iocb,
198 199
199static sector_t _fat_bmap(struct address_space *mapping, sector_t block) 200static sector_t _fat_bmap(struct address_space *mapping, sector_t block)
200{ 201{
201 return generic_block_bmap(mapping, block, fat_get_block); 202 sector_t blocknr;
203
204 /* fat_get_cluster() assumes the requested blocknr isn't truncated. */
205 mutex_lock(&mapping->host->i_mutex);
206 blocknr = generic_block_bmap(mapping, block, fat_get_block);
207 mutex_unlock(&mapping->host->i_mutex);
208
209 return blocknr;
202} 210}
203 211
204static const struct address_space_operations fat_aops = { 212static const struct address_space_operations fat_aops = {
@@ -247,25 +255,21 @@ static void fat_hash_init(struct super_block *sb)
247 INIT_HLIST_HEAD(&sbi->inode_hashtable[i]); 255 INIT_HLIST_HEAD(&sbi->inode_hashtable[i]);
248} 256}
249 257
250static inline unsigned long fat_hash(struct super_block *sb, loff_t i_pos) 258static inline unsigned long fat_hash(loff_t i_pos)
251{ 259{
252 unsigned long tmp = (unsigned long)i_pos | (unsigned long) sb; 260 return hash_32(i_pos, FAT_HASH_BITS);
253 tmp = tmp + (tmp >> FAT_HASH_BITS) + (tmp >> FAT_HASH_BITS * 2);
254 return tmp & FAT_HASH_MASK;
255} 261}
256 262
257void fat_attach(struct inode *inode, loff_t i_pos) 263void fat_attach(struct inode *inode, loff_t i_pos)
258{ 264{
259 struct super_block *sb = inode->i_sb; 265 struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
260 struct msdos_sb_info *sbi = MSDOS_SB(sb); 266 struct hlist_head *head = sbi->inode_hashtable + fat_hash(i_pos);
261 267
262 spin_lock(&sbi->inode_hash_lock); 268 spin_lock(&sbi->inode_hash_lock);
263 MSDOS_I(inode)->i_pos = i_pos; 269 MSDOS_I(inode)->i_pos = i_pos;
264 hlist_add_head(&MSDOS_I(inode)->i_fat_hash, 270 hlist_add_head(&MSDOS_I(inode)->i_fat_hash, head);
265 sbi->inode_hashtable + fat_hash(sb, i_pos));
266 spin_unlock(&sbi->inode_hash_lock); 271 spin_unlock(&sbi->inode_hash_lock);
267} 272}
268
269EXPORT_SYMBOL_GPL(fat_attach); 273EXPORT_SYMBOL_GPL(fat_attach);
270 274
271void fat_detach(struct inode *inode) 275void fat_detach(struct inode *inode)
@@ -276,13 +280,12 @@ void fat_detach(struct inode *inode)
276 hlist_del_init(&MSDOS_I(inode)->i_fat_hash); 280 hlist_del_init(&MSDOS_I(inode)->i_fat_hash);
277 spin_unlock(&sbi->inode_hash_lock); 281 spin_unlock(&sbi->inode_hash_lock);
278} 282}
279
280EXPORT_SYMBOL_GPL(fat_detach); 283EXPORT_SYMBOL_GPL(fat_detach);
281 284
282struct inode *fat_iget(struct super_block *sb, loff_t i_pos) 285struct inode *fat_iget(struct super_block *sb, loff_t i_pos)
283{ 286{
284 struct msdos_sb_info *sbi = MSDOS_SB(sb); 287 struct msdos_sb_info *sbi = MSDOS_SB(sb);
285 struct hlist_head *head = sbi->inode_hashtable + fat_hash(sb, i_pos); 288 struct hlist_head *head = sbi->inode_hashtable + fat_hash(i_pos);
286 struct hlist_node *_p; 289 struct hlist_node *_p;
287 struct msdos_inode_info *i; 290 struct msdos_inode_info *i;
288 struct inode *inode = NULL; 291 struct inode *inode = NULL;
@@ -341,8 +344,7 @@ static int fat_fill_inode(struct inode *inode, struct msdos_dir_entry *de)
341 344
342 if ((de->attr & ATTR_DIR) && !IS_FREE(de->name)) { 345 if ((de->attr & ATTR_DIR) && !IS_FREE(de->name)) {
343 inode->i_generation &= ~1; 346 inode->i_generation &= ~1;
344 inode->i_mode = MSDOS_MKMODE(de->attr, 347 inode->i_mode = fat_make_mode(sbi, de->attr, S_IRWXUGO);
345 S_IRWXUGO & ~sbi->options.fs_dmask) | S_IFDIR;
346 inode->i_op = sbi->dir_ops; 348 inode->i_op = sbi->dir_ops;
347 inode->i_fop = &fat_dir_operations; 349 inode->i_fop = &fat_dir_operations;
348 350
@@ -359,10 +361,9 @@ static int fat_fill_inode(struct inode *inode, struct msdos_dir_entry *de)
359 inode->i_nlink = fat_subdirs(inode); 361 inode->i_nlink = fat_subdirs(inode);
360 } else { /* not a directory */ 362 } else { /* not a directory */
361 inode->i_generation |= 1; 363 inode->i_generation |= 1;
362 inode->i_mode = MSDOS_MKMODE(de->attr, 364 inode->i_mode = fat_make_mode(sbi, de->attr,
363 ((sbi->options.showexec && !is_exec(de->name + 8)) 365 ((sbi->options.showexec && !is_exec(de->name + 8))
364 ? S_IRUGO|S_IWUGO : S_IRWXUGO) 366 ? S_IRUGO|S_IWUGO : S_IRWXUGO));
365 & ~sbi->options.fs_fmask) | S_IFREG;
366 MSDOS_I(inode)->i_start = le16_to_cpu(de->start); 367 MSDOS_I(inode)->i_start = le16_to_cpu(de->start);
367 if (sbi->fat_bits == 32) 368 if (sbi->fat_bits == 32)
368 MSDOS_I(inode)->i_start |= (le16_to_cpu(de->starthi) << 16); 369 MSDOS_I(inode)->i_start |= (le16_to_cpu(de->starthi) << 16);
@@ -378,25 +379,16 @@ static int fat_fill_inode(struct inode *inode, struct msdos_dir_entry *de)
378 if (sbi->options.sys_immutable) 379 if (sbi->options.sys_immutable)
379 inode->i_flags |= S_IMMUTABLE; 380 inode->i_flags |= S_IMMUTABLE;
380 } 381 }
381 MSDOS_I(inode)->i_attrs = de->attr & ATTR_UNUSED; 382 fat_save_attrs(inode, de->attr);
383
382 inode->i_blocks = ((inode->i_size + (sbi->cluster_size - 1)) 384 inode->i_blocks = ((inode->i_size + (sbi->cluster_size - 1))
383 & ~((loff_t)sbi->cluster_size - 1)) >> 9; 385 & ~((loff_t)sbi->cluster_size - 1)) >> 9;
384 inode->i_mtime.tv_sec = 386
385 date_dos2unix(le16_to_cpu(de->time), le16_to_cpu(de->date), 387 fat_time_fat2unix(sbi, &inode->i_mtime, de->time, de->date, 0);
386 sbi->options.tz_utc);
387 inode->i_mtime.tv_nsec = 0;
388 if (sbi->options.isvfat) { 388 if (sbi->options.isvfat) {
389 int secs = de->ctime_cs / 100; 389 fat_time_fat2unix(sbi, &inode->i_ctime, de->ctime,
390 int csecs = de->ctime_cs % 100; 390 de->cdate, de->ctime_cs);
391 inode->i_ctime.tv_sec = 391 fat_time_fat2unix(sbi, &inode->i_atime, 0, de->adate, 0);
392 date_dos2unix(le16_to_cpu(de->ctime),
393 le16_to_cpu(de->cdate),
394 sbi->options.tz_utc) + secs;
395 inode->i_ctime.tv_nsec = csecs * 10000000;
396 inode->i_atime.tv_sec =
397 date_dos2unix(0, le16_to_cpu(de->adate),
398 sbi->options.tz_utc);
399 inode->i_atime.tv_nsec = 0;
400 } else 392 } else
401 inode->i_ctime = inode->i_atime = inode->i_mtime; 393 inode->i_ctime = inode->i_atime = inode->i_mtime;
402 394
@@ -443,13 +435,8 @@ static void fat_delete_inode(struct inode *inode)
443 435
444static void fat_clear_inode(struct inode *inode) 436static void fat_clear_inode(struct inode *inode)
445{ 437{
446 struct super_block *sb = inode->i_sb;
447 struct msdos_sb_info *sbi = MSDOS_SB(sb);
448
449 spin_lock(&sbi->inode_hash_lock);
450 fat_cache_inval_inode(inode); 438 fat_cache_inval_inode(inode);
451 hlist_del_init(&MSDOS_I(inode)->i_fat_hash); 439 fat_detach(inode);
452 spin_unlock(&sbi->inode_hash_lock);
453} 440}
454 441
455static void fat_write_super(struct super_block *sb) 442static void fat_write_super(struct super_block *sb)
@@ -555,6 +542,20 @@ static int fat_statfs(struct dentry *dentry, struct kstatfs *buf)
555 return 0; 542 return 0;
556} 543}
557 544
545static inline loff_t fat_i_pos_read(struct msdos_sb_info *sbi,
546 struct inode *inode)
547{
548 loff_t i_pos;
549#if BITS_PER_LONG == 32
550 spin_lock(&sbi->inode_hash_lock);
551#endif
552 i_pos = MSDOS_I(inode)->i_pos;
553#if BITS_PER_LONG == 32
554 spin_unlock(&sbi->inode_hash_lock);
555#endif
556 return i_pos;
557}
558
558static int fat_write_inode(struct inode *inode, int wait) 559static int fat_write_inode(struct inode *inode, int wait)
559{ 560{
560 struct super_block *sb = inode->i_sb; 561 struct super_block *sb = inode->i_sb;
@@ -564,9 +565,12 @@ static int fat_write_inode(struct inode *inode, int wait)
564 loff_t i_pos; 565 loff_t i_pos;
565 int err; 566 int err;
566 567
568 if (inode->i_ino == MSDOS_ROOT_INO)
569 return 0;
570
567retry: 571retry:
568 i_pos = MSDOS_I(inode)->i_pos; 572 i_pos = fat_i_pos_read(sbi, inode);
569 if (inode->i_ino == MSDOS_ROOT_INO || !i_pos) 573 if (!i_pos)
570 return 0; 574 return 0;
571 575
572 bh = sb_bread(sb, i_pos >> sbi->dir_per_block_bits); 576 bh = sb_bread(sb, i_pos >> sbi->dir_per_block_bits);
@@ -588,19 +592,17 @@ retry:
588 raw_entry->size = 0; 592 raw_entry->size = 0;
589 else 593 else
590 raw_entry->size = cpu_to_le32(inode->i_size); 594 raw_entry->size = cpu_to_le32(inode->i_size);
591 raw_entry->attr = fat_attr(inode); 595 raw_entry->attr = fat_make_attrs(inode);
592 raw_entry->start = cpu_to_le16(MSDOS_I(inode)->i_logstart); 596 raw_entry->start = cpu_to_le16(MSDOS_I(inode)->i_logstart);
593 raw_entry->starthi = cpu_to_le16(MSDOS_I(inode)->i_logstart >> 16); 597 raw_entry->starthi = cpu_to_le16(MSDOS_I(inode)->i_logstart >> 16);
594 fat_date_unix2dos(inode->i_mtime.tv_sec, &raw_entry->time, 598 fat_time_unix2fat(sbi, &inode->i_mtime, &raw_entry->time,
595 &raw_entry->date, sbi->options.tz_utc); 599 &raw_entry->date, NULL);
596 if (sbi->options.isvfat) { 600 if (sbi->options.isvfat) {
597 __le16 atime; 601 __le16 atime;
598 fat_date_unix2dos(inode->i_ctime.tv_sec, &raw_entry->ctime, 602 fat_time_unix2fat(sbi, &inode->i_ctime, &raw_entry->ctime,
599 &raw_entry->cdate, sbi->options.tz_utc); 603 &raw_entry->cdate, &raw_entry->ctime_cs);
600 fat_date_unix2dos(inode->i_atime.tv_sec, &atime, 604 fat_time_unix2fat(sbi, &inode->i_atime, &atime,
601 &raw_entry->adate, sbi->options.tz_utc); 605 &raw_entry->adate, NULL);
602 raw_entry->ctime_cs = (inode->i_ctime.tv_sec & 1) * 100 +
603 inode->i_ctime.tv_nsec / 10000000;
604 } 606 }
605 spin_unlock(&sbi->inode_hash_lock); 607 spin_unlock(&sbi->inode_hash_lock);
606 mark_buffer_dirty(bh); 608 mark_buffer_dirty(bh);
@@ -819,8 +821,10 @@ static int fat_show_options(struct seq_file *m, struct vfsmount *mnt)
819 seq_puts(m, ",uni_xlate"); 821 seq_puts(m, ",uni_xlate");
820 if (!opts->numtail) 822 if (!opts->numtail)
821 seq_puts(m, ",nonumtail"); 823 seq_puts(m, ",nonumtail");
824 if (opts->rodir)
825 seq_puts(m, ",rodir");
822 } 826 }
823 if (sbi->options.flush) 827 if (opts->flush)
824 seq_puts(m, ",flush"); 828 seq_puts(m, ",flush");
825 if (opts->tz_utc) 829 if (opts->tz_utc)
826 seq_puts(m, ",tz=UTC"); 830 seq_puts(m, ",tz=UTC");
@@ -836,7 +840,7 @@ enum {
836 Opt_charset, Opt_shortname_lower, Opt_shortname_win95, 840 Opt_charset, Opt_shortname_lower, Opt_shortname_win95,
837 Opt_shortname_winnt, Opt_shortname_mixed, Opt_utf8_no, Opt_utf8_yes, 841 Opt_shortname_winnt, Opt_shortname_mixed, Opt_utf8_no, Opt_utf8_yes,
838 Opt_uni_xl_no, Opt_uni_xl_yes, Opt_nonumtail_no, Opt_nonumtail_yes, 842 Opt_uni_xl_no, Opt_uni_xl_yes, Opt_nonumtail_no, Opt_nonumtail_yes,
839 Opt_obsolate, Opt_flush, Opt_tz_utc, Opt_err, 843 Opt_obsolate, Opt_flush, Opt_tz_utc, Opt_rodir, Opt_err,
840}; 844};
841 845
842static const match_table_t fat_tokens = { 846static const match_table_t fat_tokens = {
@@ -908,6 +912,7 @@ static const match_table_t vfat_tokens = {
908 {Opt_nonumtail_yes, "nonumtail=yes"}, 912 {Opt_nonumtail_yes, "nonumtail=yes"},
909 {Opt_nonumtail_yes, "nonumtail=true"}, 913 {Opt_nonumtail_yes, "nonumtail=true"},
910 {Opt_nonumtail_yes, "nonumtail"}, 914 {Opt_nonumtail_yes, "nonumtail"},
915 {Opt_rodir, "rodir"},
911 {Opt_err, NULL} 916 {Opt_err, NULL}
912}; 917};
913 918
@@ -927,10 +932,13 @@ static int parse_options(char *options, int is_vfat, int silent, int *debug,
927 opts->allow_utime = -1; 932 opts->allow_utime = -1;
928 opts->codepage = fat_default_codepage; 933 opts->codepage = fat_default_codepage;
929 opts->iocharset = fat_default_iocharset; 934 opts->iocharset = fat_default_iocharset;
930 if (is_vfat) 935 if (is_vfat) {
931 opts->shortname = VFAT_SFN_DISPLAY_LOWER|VFAT_SFN_CREATE_WIN95; 936 opts->shortname = VFAT_SFN_DISPLAY_LOWER|VFAT_SFN_CREATE_WIN95;
932 else 937 opts->rodir = 0;
938 } else {
933 opts->shortname = 0; 939 opts->shortname = 0;
940 opts->rodir = 1;
941 }
934 opts->name_check = 'n'; 942 opts->name_check = 'n';
935 opts->quiet = opts->showexec = opts->sys_immutable = opts->dotsOK = 0; 943 opts->quiet = opts->showexec = opts->sys_immutable = opts->dotsOK = 0;
936 opts->utf8 = opts->unicode_xlate = 0; 944 opts->utf8 = opts->unicode_xlate = 0;
@@ -1081,6 +1089,9 @@ static int parse_options(char *options, int is_vfat, int silent, int *debug,
1081 case Opt_nonumtail_yes: /* empty or 1 or yes or true */ 1089 case Opt_nonumtail_yes: /* empty or 1 or yes or true */
1082 opts->numtail = 0; /* negated option */ 1090 opts->numtail = 0; /* negated option */
1083 break; 1091 break;
1092 case Opt_rodir:
1093 opts->rodir = 1;
1094 break;
1084 1095
1085 /* obsolete mount options */ 1096 /* obsolete mount options */
1086 case Opt_obsolate: 1097 case Opt_obsolate:
@@ -1126,7 +1137,7 @@ static int fat_read_root(struct inode *inode)
1126 inode->i_gid = sbi->options.fs_gid; 1137 inode->i_gid = sbi->options.fs_gid;
1127 inode->i_version++; 1138 inode->i_version++;
1128 inode->i_generation = 0; 1139 inode->i_generation = 0;
1129 inode->i_mode = (S_IRWXUGO & ~sbi->options.fs_dmask) | S_IFDIR; 1140 inode->i_mode = fat_make_mode(sbi, ATTR_DIR, S_IRWXUGO);
1130 inode->i_op = sbi->dir_ops; 1141 inode->i_op = sbi->dir_ops;
1131 inode->i_fop = &fat_dir_operations; 1142 inode->i_fop = &fat_dir_operations;
1132 if (sbi->fat_bits == 32) { 1143 if (sbi->fat_bits == 32) {
@@ -1143,7 +1154,7 @@ static int fat_read_root(struct inode *inode)
1143 MSDOS_I(inode)->i_logstart = 0; 1154 MSDOS_I(inode)->i_logstart = 0;
1144 MSDOS_I(inode)->mmu_private = inode->i_size; 1155 MSDOS_I(inode)->mmu_private = inode->i_size;
1145 1156
1146 MSDOS_I(inode)->i_attrs = ATTR_NONE; 1157 fat_save_attrs(inode, ATTR_DIR);
1147 inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec = 0; 1158 inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec = 0;
1148 inode->i_mtime.tv_nsec = inode->i_atime.tv_nsec = inode->i_ctime.tv_nsec = 0; 1159 inode->i_mtime.tv_nsec = inode->i_atime.tv_nsec = inode->i_ctime.tv_nsec = 0;
1149 inode->i_nlink = fat_subdirs(inode)+2; 1160 inode->i_nlink = fat_subdirs(inode)+2;
diff --git a/fs/fat/misc.c b/fs/fat/misc.c
index 79fb98ad36d4..ac39ebcc1496 100644
--- a/fs/fat/misc.c
+++ b/fs/fat/misc.c
@@ -8,8 +8,8 @@
8 8
9#include <linux/module.h> 9#include <linux/module.h>
10#include <linux/fs.h> 10#include <linux/fs.h>
11#include <linux/msdos_fs.h>
12#include <linux/buffer_head.h> 11#include <linux/buffer_head.h>
12#include "fat.h"
13 13
14/* 14/*
15 * fat_fs_panic reports a severe file system problem and sets the file system 15 * fat_fs_panic reports a severe file system problem and sets the file system
@@ -124,8 +124,9 @@ int fat_chain_add(struct inode *inode, int new_dclus, int nr_cluster)
124 mark_inode_dirty(inode); 124 mark_inode_dirty(inode);
125 } 125 }
126 if (new_fclus != (inode->i_blocks >> (sbi->cluster_bits - 9))) { 126 if (new_fclus != (inode->i_blocks >> (sbi->cluster_bits - 9))) {
127 fat_fs_panic(sb, "clusters badly computed (%d != %lu)", 127 fat_fs_panic(sb, "clusters badly computed (%d != %llu)",
128 new_fclus, inode->i_blocks >> (sbi->cluster_bits - 9)); 128 new_fclus,
129 (llu)(inode->i_blocks >> (sbi->cluster_bits - 9)));
129 fat_cache_inval_inode(inode); 130 fat_cache_inval_inode(inode);
130 } 131 }
131 inode->i_blocks += nr_cluster << (sbi->cluster_bits - 9); 132 inode->i_blocks += nr_cluster << (sbi->cluster_bits - 9);
@@ -135,65 +136,131 @@ int fat_chain_add(struct inode *inode, int new_dclus, int nr_cluster)
135 136
136extern struct timezone sys_tz; 137extern struct timezone sys_tz;
137 138
139/*
140 * The epoch of FAT timestamp is 1980.
141 * : bits : value
142 * date: 0 - 4: day (1 - 31)
143 * date: 5 - 8: month (1 - 12)
144 * date: 9 - 15: year (0 - 127) from 1980
145 * time: 0 - 4: sec (0 - 29) 2sec counts
146 * time: 5 - 10: min (0 - 59)
147 * time: 11 - 15: hour (0 - 23)
148 */
149#define SECS_PER_MIN 60
150#define SECS_PER_HOUR (60 * 60)
151#define SECS_PER_DAY (SECS_PER_HOUR * 24)
152#define UNIX_SECS_1980 315532800L
153#if BITS_PER_LONG == 64
154#define UNIX_SECS_2108 4354819200L
155#endif
156/* days between 1.1.70 and 1.1.80 (2 leap days) */
157#define DAYS_DELTA (365 * 10 + 2)
158/* 120 (2100 - 1980) isn't leap year */
159#define YEAR_2100 120
160#define IS_LEAP_YEAR(y) (!((y) & 3) && (y) != YEAR_2100)
161
138/* Linear day numbers of the respective 1sts in non-leap years. */ 162/* Linear day numbers of the respective 1sts in non-leap years. */
139static int day_n[] = { 163static time_t days_in_year[] = {
140 /* Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec */ 164 /* Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec */
141 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 0, 0, 0, 0 165 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 0, 0, 0,
142}; 166};
143 167
144/* Convert a MS-DOS time/date pair to a UNIX date (seconds since 1 1 70). */ 168/* Convert a FAT time/date pair to a UNIX date (seconds since 1 1 70). */
145int date_dos2unix(unsigned short time, unsigned short date, int tz_utc) 169void fat_time_fat2unix(struct msdos_sb_info *sbi, struct timespec *ts,
170 __le16 __time, __le16 __date, u8 time_cs)
146{ 171{
147 int month, year, secs; 172 u16 time = le16_to_cpu(__time), date = le16_to_cpu(__date);
173 time_t second, day, leap_day, month, year;
148 174
149 /* 175 year = date >> 9;
150 * first subtract and mask after that... Otherwise, if 176 month = max(1, (date >> 5) & 0xf);
151 * date == 0, bad things happen 177 day = max(1, date & 0x1f) - 1;
152 */ 178
153 month = ((date >> 5) - 1) & 15; 179 leap_day = (year + 3) / 4;
154 year = date >> 9; 180 if (year > YEAR_2100) /* 2100 isn't leap year */
155 secs = (time & 31)*2+60*((time >> 5) & 63)+(time >> 11)*3600+86400* 181 leap_day--;
156 ((date & 31)-1+day_n[month]+(year/4)+year*365-((year & 3) == 0 && 182 if (IS_LEAP_YEAR(year) && month > 2)
157 month < 2 ? 1 : 0)+3653); 183 leap_day++;
158 /* days since 1.1.70 plus 80's leap day */ 184
159 if (!tz_utc) 185 second = (time & 0x1f) << 1;
160 secs += sys_tz.tz_minuteswest*60; 186 second += ((time >> 5) & 0x3f) * SECS_PER_MIN;
161 return secs; 187 second += (time >> 11) * SECS_PER_HOUR;
188 second += (year * 365 + leap_day
189 + days_in_year[month] + day
190 + DAYS_DELTA) * SECS_PER_DAY;
191
192 if (!sbi->options.tz_utc)
193 second += sys_tz.tz_minuteswest * SECS_PER_MIN;
194
195 if (time_cs) {
196 ts->tv_sec = second + (time_cs / 100);
197 ts->tv_nsec = (time_cs % 100) * 10000000;
198 } else {
199 ts->tv_sec = second;
200 ts->tv_nsec = 0;
201 }
162} 202}
163 203
164/* Convert linear UNIX date to a MS-DOS time/date pair. */ 204/* Convert linear UNIX date to a FAT time/date pair. */
165void fat_date_unix2dos(int unix_date, __le16 *time, __le16 *date, int tz_utc) 205void fat_time_unix2fat(struct msdos_sb_info *sbi, struct timespec *ts,
206 __le16 *time, __le16 *date, u8 *time_cs)
166{ 207{
167 int day, year, nl_day, month; 208 time_t second = ts->tv_sec;
209 time_t day, leap_day, month, year;
168 210
169 if (!tz_utc) 211 if (!sbi->options.tz_utc)
170 unix_date -= sys_tz.tz_minuteswest*60; 212 second -= sys_tz.tz_minuteswest * SECS_PER_MIN;
171 213
172 /* Jan 1 GMT 00:00:00 1980. But what about another time zone? */ 214 /* Jan 1 GMT 00:00:00 1980. But what about another time zone? */
173 if (unix_date < 315532800) 215 if (second < UNIX_SECS_1980) {
174 unix_date = 315532800; 216 *time = 0;
175 217 *date = cpu_to_le16((0 << 9) | (1 << 5) | 1);
176 *time = cpu_to_le16((unix_date % 60)/2+(((unix_date/60) % 60) << 5)+ 218 if (time_cs)
177 (((unix_date/3600) % 24) << 11)); 219 *time_cs = 0;
178 day = unix_date/86400-3652; 220 return;
179 year = day/365; 221 }
180 if ((year+3)/4+365*year > day) 222#if BITS_PER_LONG == 64
223 if (second >= UNIX_SECS_2108) {
224 *time = cpu_to_le16((23 << 11) | (59 << 5) | 29);
225 *date = cpu_to_le16((127 << 9) | (12 << 5) | 31);
226 if (time_cs)
227 *time_cs = 199;
228 return;
229 }
230#endif
231
232 day = second / SECS_PER_DAY - DAYS_DELTA;
233 year = day / 365;
234 leap_day = (year + 3) / 4;
235 if (year > YEAR_2100) /* 2100 isn't leap year */
236 leap_day--;
237 if (year * 365 + leap_day > day)
181 year--; 238 year--;
182 day -= (year+3)/4+365*year; 239 leap_day = (year + 3) / 4;
183 if (day == 59 && !(year & 3)) { 240 if (year > YEAR_2100) /* 2100 isn't leap year */
184 nl_day = day; 241 leap_day--;
242 day -= year * 365 + leap_day;
243
244 if (IS_LEAP_YEAR(year) && day == days_in_year[3]) {
185 month = 2; 245 month = 2;
186 } else { 246 } else {
187 nl_day = (year & 3) || day <= 59 ? day : day-1; 247 if (IS_LEAP_YEAR(year) && day > days_in_year[3])
188 for (month = 0; month < 12; month++) { 248 day--;
189 if (day_n[month] > nl_day) 249 for (month = 1; month < 12; month++) {
250 if (days_in_year[month + 1] > day)
190 break; 251 break;
191 } 252 }
192 } 253 }
193 *date = cpu_to_le16(nl_day-day_n[month-1]+1+(month << 5)+(year << 9)); 254 day -= days_in_year[month];
194}
195 255
196EXPORT_SYMBOL_GPL(fat_date_unix2dos); 256 *time = cpu_to_le16(((second / SECS_PER_HOUR) % 24) << 11
257 | ((second / SECS_PER_MIN) % 60) << 5
258 | (second % SECS_PER_MIN) >> 1);
259 *date = cpu_to_le16((year << 9) | (month << 5) | (day + 1));
260 if (time_cs)
261 *time_cs = (ts->tv_sec & 1) * 100 + ts->tv_nsec / 10000000;
262}
263EXPORT_SYMBOL_GPL(fat_time_unix2fat);
197 264
198int fat_sync_bhs(struct buffer_head **bhs, int nr_bhs) 265int fat_sync_bhs(struct buffer_head **bhs, int nr_bhs)
199{ 266{
diff --git a/fs/msdos/namei.c b/fs/fat/namei_msdos.c
index e844b9809d27..7ba03a4acbe0 100644
--- a/fs/msdos/namei.c
+++ b/fs/fat/namei_msdos.c
@@ -9,8 +9,8 @@
9#include <linux/module.h> 9#include <linux/module.h>
10#include <linux/time.h> 10#include <linux/time.h>
11#include <linux/buffer_head.h> 11#include <linux/buffer_head.h>
12#include <linux/msdos_fs.h>
13#include <linux/smp_lock.h> 12#include <linux/smp_lock.h>
13#include "fat.h"
14 14
15/* Characters that are undesirable in an MS-DOS file name */ 15/* Characters that are undesirable in an MS-DOS file name */
16static unsigned char bad_chars[] = "*?<>|\""; 16static unsigned char bad_chars[] = "*?<>|\"";
@@ -203,33 +203,37 @@ static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry,
203{ 203{
204 struct super_block *sb = dir->i_sb; 204 struct super_block *sb = dir->i_sb;
205 struct fat_slot_info sinfo; 205 struct fat_slot_info sinfo;
206 struct inode *inode = NULL; 206 struct inode *inode;
207 int res; 207 int err;
208
209 dentry->d_op = &msdos_dentry_operations;
210 208
211 lock_super(sb); 209 lock_super(sb);
212 res = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo); 210
213 if (res == -ENOENT) 211 err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo);
214 goto add; 212 if (err) {
215 if (res < 0) 213 if (err == -ENOENT) {
216 goto out; 214 inode = NULL;
215 goto out;
216 }
217 goto error;
218 }
219
217 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos); 220 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos);
218 brelse(sinfo.bh); 221 brelse(sinfo.bh);
219 if (IS_ERR(inode)) { 222 if (IS_ERR(inode)) {
220 res = PTR_ERR(inode); 223 err = PTR_ERR(inode);
221 goto out; 224 goto error;
222 } 225 }
223add: 226out:
224 res = 0; 227 unlock_super(sb);
228 dentry->d_op = &msdos_dentry_operations;
225 dentry = d_splice_alias(inode, dentry); 229 dentry = d_splice_alias(inode, dentry);
226 if (dentry) 230 if (dentry)
227 dentry->d_op = &msdos_dentry_operations; 231 dentry->d_op = &msdos_dentry_operations;
228out: 232 return dentry;
233
234error:
229 unlock_super(sb); 235 unlock_super(sb);
230 if (!res) 236 return ERR_PTR(err);
231 return dentry;
232 return ERR_PTR(res);
233} 237}
234 238
235/***** Creates a directory entry (name is already formatted). */ 239/***** Creates a directory entry (name is already formatted). */
@@ -247,7 +251,7 @@ static int msdos_add_entry(struct inode *dir, const unsigned char *name,
247 if (is_hid) 251 if (is_hid)
248 de.attr |= ATTR_HIDDEN; 252 de.attr |= ATTR_HIDDEN;
249 de.lcase = 0; 253 de.lcase = 0;
250 fat_date_unix2dos(ts->tv_sec, &time, &date, sbi->options.tz_utc); 254 fat_time_unix2fat(sbi, ts, &time, &date, NULL);
251 de.cdate = de.adate = 0; 255 de.cdate = de.adate = 0;
252 de.ctime = 0; 256 de.ctime = 0;
253 de.ctime_cs = 0; 257 de.ctime_cs = 0;
diff --git a/fs/vfat/namei.c b/fs/fat/namei_vfat.c
index 155c10b4adbd..bf326d4356a3 100644
--- a/fs/vfat/namei.c
+++ b/fs/fat/namei_vfat.c
@@ -16,36 +16,75 @@
16 */ 16 */
17 17
18#include <linux/module.h> 18#include <linux/module.h>
19
20#include <linux/jiffies.h> 19#include <linux/jiffies.h>
21#include <linux/msdos_fs.h>
22#include <linux/ctype.h> 20#include <linux/ctype.h>
23#include <linux/slab.h> 21#include <linux/slab.h>
24#include <linux/smp_lock.h> 22#include <linux/smp_lock.h>
25#include <linux/buffer_head.h> 23#include <linux/buffer_head.h>
26#include <linux/namei.h> 24#include <linux/namei.h>
25#include "fat.h"
27 26
28static int vfat_revalidate(struct dentry *dentry, struct nameidata *nd) 27/*
28 * If new entry was created in the parent, it could create the 8.3
29 * alias (the shortname of logname). So, the parent may have the
30 * negative-dentry which matches the created 8.3 alias.
31 *
32 * If it happened, the negative dentry isn't actually negative
33 * anymore. So, drop it.
34 */
35static int vfat_revalidate_shortname(struct dentry *dentry)
29{ 36{
30 int ret = 1; 37 int ret = 1;
31 38 spin_lock(&dentry->d_lock);
32 if (!dentry->d_inode && 39 if (dentry->d_time != dentry->d_parent->d_inode->i_version)
33 nd && !(nd->flags & LOOKUP_CONTINUE) && (nd->flags & LOOKUP_CREATE))
34 /*
35 * negative dentry is dropped, in order to make sure
36 * to use the name which a user desires if this is
37 * create path.
38 */
39 ret = 0; 40 ret = 0;
40 else { 41 spin_unlock(&dentry->d_lock);
41 spin_lock(&dentry->d_lock);
42 if (dentry->d_time != dentry->d_parent->d_inode->i_version)
43 ret = 0;
44 spin_unlock(&dentry->d_lock);
45 }
46 return ret; 42 return ret;
47} 43}
48 44
45static int vfat_revalidate(struct dentry *dentry, struct nameidata *nd)
46{
47 /* This is not negative dentry. Always valid. */
48 if (dentry->d_inode)
49 return 1;
50 return vfat_revalidate_shortname(dentry);
51}
52
53static int vfat_revalidate_ci(struct dentry *dentry, struct nameidata *nd)
54{
55 /*
56 * This is not negative dentry. Always valid.
57 *
58 * Note, rename() to existing directory entry will have ->d_inode,
59 * and will use existing name which isn't specified name by user.
60 *
61 * We may be able to drop this positive dentry here. But dropping
62 * positive dentry isn't good idea. So it's unsupported like
63 * rename("filename", "FILENAME") for now.
64 */
65 if (dentry->d_inode)
66 return 1;
67
68 /*
69 * This may be nfsd (or something), anyway, we can't see the
70 * intent of this. So, since this can be for creation, drop it.
71 */
72 if (!nd)
73 return 0;
74
75 /*
76 * Drop the negative dentry, in order to make sure to use the
77 * case sensitive name which is specified by user if this is
78 * for creation.
79 */
80 if (!(nd->flags & (LOOKUP_CONTINUE | LOOKUP_PARENT))) {
81 if (nd->flags & LOOKUP_CREATE)
82 return 0;
83 }
84
85 return vfat_revalidate_shortname(dentry);
86}
87
49/* returns the length of a struct qstr, ignoring trailing dots */ 88/* returns the length of a struct qstr, ignoring trailing dots */
50static unsigned int vfat_striptail_len(struct qstr *qstr) 89static unsigned int vfat_striptail_len(struct qstr *qstr)
51{ 90{
@@ -127,25 +166,16 @@ static int vfat_cmp(struct dentry *dentry, struct qstr *a, struct qstr *b)
127 return 1; 166 return 1;
128} 167}
129 168
130static struct dentry_operations vfat_dentry_ops[4] = { 169static struct dentry_operations vfat_ci_dentry_ops = {
131 { 170 .d_revalidate = vfat_revalidate_ci,
132 .d_hash = vfat_hashi, 171 .d_hash = vfat_hashi,
133 .d_compare = vfat_cmpi, 172 .d_compare = vfat_cmpi,
134 }, 173};
135 { 174
136 .d_revalidate = vfat_revalidate, 175static struct dentry_operations vfat_dentry_ops = {
137 .d_hash = vfat_hashi, 176 .d_revalidate = vfat_revalidate,
138 .d_compare = vfat_cmpi, 177 .d_hash = vfat_hash,
139 }, 178 .d_compare = vfat_cmp,
140 {
141 .d_hash = vfat_hash,
142 .d_compare = vfat_cmp,
143 },
144 {
145 .d_revalidate = vfat_revalidate,
146 .d_hash = vfat_hash,
147 .d_compare = vfat_cmp,
148 }
149}; 179};
150 180
151/* Characters that are undesirable in an MS-DOS file name */ 181/* Characters that are undesirable in an MS-DOS file name */
@@ -569,6 +599,7 @@ static int vfat_build_slots(struct inode *dir, const unsigned char *name,
569 unsigned char msdos_name[MSDOS_NAME]; 599 unsigned char msdos_name[MSDOS_NAME];
570 wchar_t *uname; 600 wchar_t *uname;
571 __le16 time, date; 601 __le16 time, date;
602 u8 time_cs;
572 int err, ulen, usize, i; 603 int err, ulen, usize, i;
573 loff_t offset; 604 loff_t offset;
574 605
@@ -621,10 +652,10 @@ shortname:
621 memcpy(de->name, msdos_name, MSDOS_NAME); 652 memcpy(de->name, msdos_name, MSDOS_NAME);
622 de->attr = is_dir ? ATTR_DIR : ATTR_ARCH; 653 de->attr = is_dir ? ATTR_DIR : ATTR_ARCH;
623 de->lcase = lcase; 654 de->lcase = lcase;
624 fat_date_unix2dos(ts->tv_sec, &time, &date, sbi->options.tz_utc); 655 fat_time_unix2fat(sbi, ts, &time, &date, &time_cs);
625 de->time = de->ctime = time; 656 de->time = de->ctime = time;
626 de->date = de->cdate = de->adate = date; 657 de->date = de->cdate = de->adate = date;
627 de->ctime_cs = 0; 658 de->ctime_cs = time_cs;
628 de->start = cpu_to_le16(cluster); 659 de->start = cpu_to_le16(cluster);
629 de->starthi = cpu_to_le16(cluster >> 16); 660 de->starthi = cpu_to_le16(cluster >> 16);
630 de->size = 0; 661 de->size = 0;
@@ -683,46 +714,58 @@ static struct dentry *vfat_lookup(struct inode *dir, struct dentry *dentry,
683{ 714{
684 struct super_block *sb = dir->i_sb; 715 struct super_block *sb = dir->i_sb;
685 struct fat_slot_info sinfo; 716 struct fat_slot_info sinfo;
686 struct inode *inode = NULL; 717 struct inode *inode;
687 struct dentry *alias; 718 struct dentry *alias;
688 int err, table; 719 int err;
689 720
690 lock_super(sb); 721 lock_super(sb);
691 table = (MSDOS_SB(sb)->options.name_check == 's') ? 2 : 0;
692 dentry->d_op = &vfat_dentry_ops[table];
693 722
694 err = vfat_find(dir, &dentry->d_name, &sinfo); 723 err = vfat_find(dir, &dentry->d_name, &sinfo);
695 if (err) { 724 if (err) {
696 table++; 725 if (err == -ENOENT) {
726 inode = NULL;
727 goto out;
728 }
697 goto error; 729 goto error;
698 } 730 }
731
699 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos); 732 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos);
700 brelse(sinfo.bh); 733 brelse(sinfo.bh);
701 if (IS_ERR(inode)) { 734 if (IS_ERR(inode)) {
702 unlock_super(sb); 735 err = PTR_ERR(inode);
703 return ERR_CAST(inode); 736 goto error;
704 } 737 }
705 alias = d_find_alias(inode);
706 if (alias) {
707 if (d_invalidate(alias) == 0)
708 dput(alias);
709 else {
710 iput(inode);
711 unlock_super(sb);
712 return alias;
713 }
714 738
739 alias = d_find_alias(inode);
740 if (alias && !(alias->d_flags & DCACHE_DISCONNECTED)) {
741 /*
742 * This inode has non DCACHE_DISCONNECTED dentry. This
743 * means, the user did ->lookup() by an another name
744 * (longname vs 8.3 alias of it) in past.
745 *
746 * Switch to new one for reason of locality if possible.
747 */
748 BUG_ON(d_unhashed(alias));
749 if (!S_ISDIR(inode->i_mode))
750 d_move(alias, dentry);
751 iput(inode);
752 unlock_super(sb);
753 return alias;
715 } 754 }
716error: 755out:
717 unlock_super(sb); 756 unlock_super(sb);
718 dentry->d_op = &vfat_dentry_ops[table]; 757 dentry->d_op = sb->s_root->d_op;
719 dentry->d_time = dentry->d_parent->d_inode->i_version; 758 dentry->d_time = dentry->d_parent->d_inode->i_version;
720 dentry = d_splice_alias(inode, dentry); 759 dentry = d_splice_alias(inode, dentry);
721 if (dentry) { 760 if (dentry) {
722 dentry->d_op = &vfat_dentry_ops[table]; 761 dentry->d_op = sb->s_root->d_op;
723 dentry->d_time = dentry->d_parent->d_inode->i_version; 762 dentry->d_time = dentry->d_parent->d_inode->i_version;
724 } 763 }
725 return dentry; 764 return dentry;
765
766error:
767 unlock_super(sb);
768 return ERR_PTR(err);
726} 769}
727 770
728static int vfat_create(struct inode *dir, struct dentry *dentry, int mode, 771static int vfat_create(struct inode *dir, struct dentry *dentry, int mode,
@@ -1014,9 +1057,9 @@ static int vfat_fill_super(struct super_block *sb, void *data, int silent)
1014 return res; 1057 return res;
1015 1058
1016 if (MSDOS_SB(sb)->options.name_check != 's') 1059 if (MSDOS_SB(sb)->options.name_check != 's')
1017 sb->s_root->d_op = &vfat_dentry_ops[0]; 1060 sb->s_root->d_op = &vfat_ci_dentry_ops;
1018 else 1061 else
1019 sb->s_root->d_op = &vfat_dentry_ops[2]; 1062 sb->s_root->d_op = &vfat_dentry_ops;
1020 1063
1021 return 0; 1064 return 0;
1022} 1065}
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/hostfs/hostfs.h b/fs/hostfs/hostfs.h
index 6ae9011b95eb..2f34f8f2134b 100644
--- a/fs/hostfs/hostfs.h
+++ b/fs/hostfs/hostfs.h
@@ -81,7 +81,7 @@ extern int do_rmdir(const char *file);
81extern int do_mknod(const char *file, int mode, unsigned int major, 81extern int do_mknod(const char *file, int mode, unsigned int major,
82 unsigned int minor); 82 unsigned int minor);
83extern int link_file(const char *from, const char *to); 83extern int link_file(const char *from, const char *to);
84extern int do_readlink(char *file, char *buf, int size); 84extern int hostfs_do_readlink(char *file, char *buf, int size);
85extern int rename_file(char *from, char *to); 85extern int rename_file(char *from, char *to);
86extern int do_statfs(char *root, long *bsize_out, long long *blocks_out, 86extern int do_statfs(char *root, long *bsize_out, long long *blocks_out,
87 long long *bfree_out, long long *bavail_out, 87 long long *bfree_out, long long *bavail_out,
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
index 7f34f4385de0..3a31451ac170 100644
--- a/fs/hostfs/hostfs_kern.c
+++ b/fs/hostfs/hostfs_kern.c
@@ -168,7 +168,7 @@ static char *follow_link(char *link)
168 if (name == NULL) 168 if (name == NULL)
169 goto out; 169 goto out;
170 170
171 n = do_readlink(link, name, len); 171 n = hostfs_do_readlink(link, name, len);
172 if (n < len) 172 if (n < len)
173 break; 173 break;
174 len *= 2; 174 len *= 2;
@@ -943,7 +943,7 @@ int hostfs_link_readpage(struct file *file, struct page *page)
943 name = inode_name(page->mapping->host, 0); 943 name = inode_name(page->mapping->host, 0);
944 if (name == NULL) 944 if (name == NULL)
945 return -ENOMEM; 945 return -ENOMEM;
946 err = do_readlink(name, buffer, PAGE_CACHE_SIZE); 946 err = hostfs_do_readlink(name, buffer, PAGE_CACHE_SIZE);
947 kfree(name); 947 kfree(name);
948 if (err == PAGE_CACHE_SIZE) 948 if (err == PAGE_CACHE_SIZE)
949 err = -E2BIG; 949 err = -E2BIG;
diff --git a/fs/hostfs/hostfs_user.c b/fs/hostfs/hostfs_user.c
index 53fd0a67c11a..b79424f93282 100644
--- a/fs/hostfs/hostfs_user.c
+++ b/fs/hostfs/hostfs_user.c
@@ -377,7 +377,7 @@ int link_file(const char *to, const char *from)
377 return 0; 377 return 0;
378} 378}
379 379
380int do_readlink(char *file, char *buf, int size) 380int hostfs_do_readlink(char *file, char *buf, int size)
381{ 381{
382 int n; 382 int n;
383 383
diff --git a/fs/inotify.c b/fs/inotify.c
index 690e72595e6e..dae3f28f30d4 100644
--- a/fs/inotify.c
+++ b/fs/inotify.c
@@ -106,6 +106,20 @@ void get_inotify_watch(struct inotify_watch *watch)
106} 106}
107EXPORT_SYMBOL_GPL(get_inotify_watch); 107EXPORT_SYMBOL_GPL(get_inotify_watch);
108 108
109int pin_inotify_watch(struct inotify_watch *watch)
110{
111 struct super_block *sb = watch->inode->i_sb;
112 spin_lock(&sb_lock);
113 if (sb->s_count >= S_BIAS) {
114 atomic_inc(&sb->s_active);
115 spin_unlock(&sb_lock);
116 atomic_inc(&watch->count);
117 return 1;
118 }
119 spin_unlock(&sb_lock);
120 return 0;
121}
122
109/** 123/**
110 * put_inotify_watch - decrements the ref count on a given watch. cleans up 124 * put_inotify_watch - decrements the ref count on a given watch. cleans up
111 * watch references if the count reaches zero. inotify_watch is freed by 125 * watch references if the count reaches zero. inotify_watch is freed by
@@ -124,6 +138,13 @@ void put_inotify_watch(struct inotify_watch *watch)
124} 138}
125EXPORT_SYMBOL_GPL(put_inotify_watch); 139EXPORT_SYMBOL_GPL(put_inotify_watch);
126 140
141void unpin_inotify_watch(struct inotify_watch *watch)
142{
143 struct super_block *sb = watch->inode->i_sb;
144 put_inotify_watch(watch);
145 deactivate_super(sb);
146}
147
127/* 148/*
128 * inotify_handle_get_wd - returns the next WD for use by the given handle 149 * inotify_handle_get_wd - returns the next WD for use by the given handle
129 * 150 *
@@ -407,11 +428,13 @@ void inotify_unmount_inodes(struct list_head *list)
407 watches = &inode->inotify_watches; 428 watches = &inode->inotify_watches;
408 list_for_each_entry_safe(watch, next_w, watches, i_list) { 429 list_for_each_entry_safe(watch, next_w, watches, i_list) {
409 struct inotify_handle *ih= watch->ih; 430 struct inotify_handle *ih= watch->ih;
431 get_inotify_watch(watch);
410 mutex_lock(&ih->mutex); 432 mutex_lock(&ih->mutex);
411 ih->in_ops->handle_event(watch, watch->wd, IN_UNMOUNT, 0, 433 ih->in_ops->handle_event(watch, watch->wd, IN_UNMOUNT, 0,
412 NULL, NULL); 434 NULL, NULL);
413 inotify_remove_watch_locked(ih, watch); 435 inotify_remove_watch_locked(ih, watch);
414 mutex_unlock(&ih->mutex); 436 mutex_unlock(&ih->mutex);
437 put_inotify_watch(watch);
415 } 438 }
416 mutex_unlock(&inode->inotify_mutex); 439 mutex_unlock(&inode->inotify_mutex);
417 iput(inode); 440 iput(inode);
@@ -479,6 +502,112 @@ void inotify_init_watch(struct inotify_watch *watch)
479} 502}
480EXPORT_SYMBOL_GPL(inotify_init_watch); 503EXPORT_SYMBOL_GPL(inotify_init_watch);
481 504
505/*
506 * Watch removals suck violently. To kick the watch out we need (in this
507 * order) inode->inotify_mutex and ih->mutex. That's fine if we have
508 * a hold on inode; however, for all other cases we need to make damn sure
509 * we don't race with umount. We can *NOT* just grab a reference to a
510 * watch - inotify_unmount_inodes() will happily sail past it and we'll end
511 * with reference to inode potentially outliving its superblock. Ideally
512 * we just want to grab an active reference to superblock if we can; that
513 * will make sure we won't go into inotify_umount_inodes() until we are
514 * done. Cleanup is just deactivate_super(). However, that leaves a messy
515 * case - what if we *are* racing with umount() and active references to
516 * superblock can't be acquired anymore? We can bump ->s_count, grab
517 * ->s_umount, which will almost certainly wait until the superblock is shut
518 * down and the watch in question is pining for fjords. That's fine, but
519 * there is a problem - we might have hit the window between ->s_active
520 * getting to 0 / ->s_count - below S_BIAS (i.e. the moment when superblock
521 * is past the point of no return and is heading for shutdown) and the
522 * moment when deactivate_super() acquires ->s_umount. We could just do
523 * drop_super() yield() and retry, but that's rather antisocial and this
524 * stuff is luser-triggerable. OTOH, having grabbed ->s_umount and having
525 * found that we'd got there first (i.e. that ->s_root is non-NULL) we know
526 * that we won't race with inotify_umount_inodes(). So we could grab a
527 * reference to watch and do the rest as above, just with drop_super() instead
528 * of deactivate_super(), right? Wrong. We had to drop ih->mutex before we
529 * could grab ->s_umount. So the watch could've been gone already.
530 *
531 * That still can be dealt with - we need to save watch->wd, do idr_find()
532 * and compare its result with our pointer. If they match, we either have
533 * the damn thing still alive or we'd lost not one but two races at once,
534 * the watch had been killed and a new one got created with the same ->wd
535 * at the same address. That couldn't have happened in inotify_destroy(),
536 * but inotify_rm_wd() could run into that. Still, "new one got created"
537 * is not a problem - we have every right to kill it or leave it alone,
538 * whatever's more convenient.
539 *
540 * So we can use idr_find(...) == watch && watch->inode->i_sb == sb as
541 * "grab it and kill it" check. If it's been our original watch, we are
542 * fine, if it's a newcomer - nevermind, just pretend that we'd won the
543 * race and kill the fscker anyway; we are safe since we know that its
544 * superblock won't be going away.
545 *
546 * And yes, this is far beyond mere "not very pretty"; so's the entire
547 * concept of inotify to start with.
548 */
549
550/**
551 * pin_to_kill - pin the watch down for removal
552 * @ih: inotify handle
553 * @watch: watch to kill
554 *
555 * Called with ih->mutex held, drops it. Possible return values:
556 * 0 - nothing to do, it has died
557 * 1 - remove it, drop the reference and deactivate_super()
558 * 2 - remove it, drop the reference and drop_super(); we tried hard to avoid
559 * that variant, since it involved a lot of PITA, but that's the best that
560 * could've been done.
561 */
562static int pin_to_kill(struct inotify_handle *ih, struct inotify_watch *watch)
563{
564 struct super_block *sb = watch->inode->i_sb;
565 s32 wd = watch->wd;
566
567 spin_lock(&sb_lock);
568 if (sb->s_count >= S_BIAS) {
569 atomic_inc(&sb->s_active);
570 spin_unlock(&sb_lock);
571 get_inotify_watch(watch);
572 mutex_unlock(&ih->mutex);
573 return 1; /* the best outcome */
574 }
575 sb->s_count++;
576 spin_unlock(&sb_lock);
577 mutex_unlock(&ih->mutex); /* can't grab ->s_umount under it */
578 down_read(&sb->s_umount);
579 if (likely(!sb->s_root)) {
580 /* fs is already shut down; the watch is dead */
581 drop_super(sb);
582 return 0;
583 }
584 /* raced with the final deactivate_super() */
585 mutex_lock(&ih->mutex);
586 if (idr_find(&ih->idr, wd) != watch || watch->inode->i_sb != sb) {
587 /* the watch is dead */
588 mutex_unlock(&ih->mutex);
589 drop_super(sb);
590 return 0;
591 }
592 /* still alive or freed and reused with the same sb and wd; kill */
593 get_inotify_watch(watch);
594 mutex_unlock(&ih->mutex);
595 return 2;
596}
597
598static void unpin_and_kill(struct inotify_watch *watch, int how)
599{
600 struct super_block *sb = watch->inode->i_sb;
601 put_inotify_watch(watch);
602 switch (how) {
603 case 1:
604 deactivate_super(sb);
605 break;
606 case 2:
607 drop_super(sb);
608 }
609}
610
482/** 611/**
483 * inotify_destroy - clean up and destroy an inotify instance 612 * inotify_destroy - clean up and destroy an inotify instance
484 * @ih: inotify handle 613 * @ih: inotify handle
@@ -490,11 +619,15 @@ void inotify_destroy(struct inotify_handle *ih)
490 * pretty. We cannot do a simple iteration over the list, because we 619 * pretty. We cannot do a simple iteration over the list, because we
491 * do not know the inode until we iterate to the watch. But we need to 620 * do not know the inode until we iterate to the watch. But we need to
492 * hold inode->inotify_mutex before ih->mutex. The following works. 621 * hold inode->inotify_mutex before ih->mutex. The following works.
622 *
623 * AV: it had to become even uglier to start working ;-/
493 */ 624 */
494 while (1) { 625 while (1) {
495 struct inotify_watch *watch; 626 struct inotify_watch *watch;
496 struct list_head *watches; 627 struct list_head *watches;
628 struct super_block *sb;
497 struct inode *inode; 629 struct inode *inode;
630 int how;
498 631
499 mutex_lock(&ih->mutex); 632 mutex_lock(&ih->mutex);
500 watches = &ih->watches; 633 watches = &ih->watches;
@@ -503,8 +636,10 @@ void inotify_destroy(struct inotify_handle *ih)
503 break; 636 break;
504 } 637 }
505 watch = list_first_entry(watches, struct inotify_watch, h_list); 638 watch = list_first_entry(watches, struct inotify_watch, h_list);
506 get_inotify_watch(watch); 639 sb = watch->inode->i_sb;
507 mutex_unlock(&ih->mutex); 640 how = pin_to_kill(ih, watch);
641 if (!how)
642 continue;
508 643
509 inode = watch->inode; 644 inode = watch->inode;
510 mutex_lock(&inode->inotify_mutex); 645 mutex_lock(&inode->inotify_mutex);
@@ -518,7 +653,7 @@ void inotify_destroy(struct inotify_handle *ih)
518 653
519 mutex_unlock(&ih->mutex); 654 mutex_unlock(&ih->mutex);
520 mutex_unlock(&inode->inotify_mutex); 655 mutex_unlock(&inode->inotify_mutex);
521 put_inotify_watch(watch); 656 unpin_and_kill(watch, how);
522 } 657 }
523 658
524 /* free this handle: the put matching the get in inotify_init() */ 659 /* free this handle: the put matching the get in inotify_init() */
@@ -719,7 +854,9 @@ void inotify_evict_watch(struct inotify_watch *watch)
719int inotify_rm_wd(struct inotify_handle *ih, u32 wd) 854int inotify_rm_wd(struct inotify_handle *ih, u32 wd)
720{ 855{
721 struct inotify_watch *watch; 856 struct inotify_watch *watch;
857 struct super_block *sb;
722 struct inode *inode; 858 struct inode *inode;
859 int how;
723 860
724 mutex_lock(&ih->mutex); 861 mutex_lock(&ih->mutex);
725 watch = idr_find(&ih->idr, wd); 862 watch = idr_find(&ih->idr, wd);
@@ -727,9 +864,12 @@ int inotify_rm_wd(struct inotify_handle *ih, u32 wd)
727 mutex_unlock(&ih->mutex); 864 mutex_unlock(&ih->mutex);
728 return -EINVAL; 865 return -EINVAL;
729 } 866 }
730 get_inotify_watch(watch); 867 sb = watch->inode->i_sb;
868 how = pin_to_kill(ih, watch);
869 if (!how)
870 return 0;
871
731 inode = watch->inode; 872 inode = watch->inode;
732 mutex_unlock(&ih->mutex);
733 873
734 mutex_lock(&inode->inotify_mutex); 874 mutex_lock(&inode->inotify_mutex);
735 mutex_lock(&ih->mutex); 875 mutex_lock(&ih->mutex);
@@ -740,7 +880,7 @@ int inotify_rm_wd(struct inotify_handle *ih, u32 wd)
740 880
741 mutex_unlock(&ih->mutex); 881 mutex_unlock(&ih->mutex);
742 mutex_unlock(&inode->inotify_mutex); 882 mutex_unlock(&inode->inotify_mutex);
743 put_inotify_watch(watch); 883 unpin_and_kill(watch, how);
744 884
745 return 0; 885 return 0;
746} 886}
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/jbd/checkpoint.c b/fs/jbd/checkpoint.c
index 1bd8d4acc6f2..61f32f3868cd 100644
--- a/fs/jbd/checkpoint.c
+++ b/fs/jbd/checkpoint.c
@@ -115,7 +115,7 @@ static int __try_to_free_cp_buf(struct journal_head *jh)
115 */ 115 */
116void __log_wait_for_space(journal_t *journal) 116void __log_wait_for_space(journal_t *journal)
117{ 117{
118 int nblocks; 118 int nblocks, space_left;
119 assert_spin_locked(&journal->j_state_lock); 119 assert_spin_locked(&journal->j_state_lock);
120 120
121 nblocks = jbd_space_needed(journal); 121 nblocks = jbd_space_needed(journal);
@@ -128,25 +128,42 @@ void __log_wait_for_space(journal_t *journal)
128 /* 128 /*
129 * Test again, another process may have checkpointed while we 129 * Test again, another process may have checkpointed while we
130 * were waiting for the checkpoint lock. If there are no 130 * were waiting for the checkpoint lock. If there are no
131 * outstanding transactions there is nothing to checkpoint and 131 * transactions ready to be checkpointed, try to recover
132 * we can't make progress. Abort the journal in this case. 132 * journal space by calling cleanup_journal_tail(), and if
133 * that doesn't work, by waiting for the currently committing
134 * transaction to complete. If there is absolutely no way
135 * to make progress, this is either a BUG or corrupted
136 * filesystem, so abort the journal and leave a stack
137 * trace for forensic evidence.
133 */ 138 */
134 spin_lock(&journal->j_state_lock); 139 spin_lock(&journal->j_state_lock);
135 spin_lock(&journal->j_list_lock); 140 spin_lock(&journal->j_list_lock);
136 nblocks = jbd_space_needed(journal); 141 nblocks = jbd_space_needed(journal);
137 if (__log_space_left(journal) < nblocks) { 142 space_left = __log_space_left(journal);
143 if (space_left < nblocks) {
138 int chkpt = journal->j_checkpoint_transactions != NULL; 144 int chkpt = journal->j_checkpoint_transactions != NULL;
145 tid_t tid = 0;
139 146
147 if (journal->j_committing_transaction)
148 tid = journal->j_committing_transaction->t_tid;
140 spin_unlock(&journal->j_list_lock); 149 spin_unlock(&journal->j_list_lock);
141 spin_unlock(&journal->j_state_lock); 150 spin_unlock(&journal->j_state_lock);
142 if (chkpt) { 151 if (chkpt) {
143 log_do_checkpoint(journal); 152 log_do_checkpoint(journal);
153 } else if (cleanup_journal_tail(journal) == 0) {
154 /* We were able to recover space; yay! */
155 ;
156 } else if (tid) {
157 log_wait_commit(journal, tid);
144 } else { 158 } else {
145 printk(KERN_ERR "%s: no transactions\n", 159 printk(KERN_ERR "%s: needed %d blocks and "
146 __func__); 160 "only had %d space available\n",
161 __func__, nblocks, space_left);
162 printk(KERN_ERR "%s: no way to get more "
163 "journal space\n", __func__);
164 WARN_ON(1);
147 journal_abort(journal, 0); 165 journal_abort(journal, 0);
148 } 166 }
149
150 spin_lock(&journal->j_state_lock); 167 spin_lock(&journal->j_state_lock);
151 } else { 168 } else {
152 spin_unlock(&journal->j_list_lock); 169 spin_unlock(&journal->j_list_lock);
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c
index 9203c3332f17..9497718fe920 100644
--- a/fs/jbd2/checkpoint.c
+++ b/fs/jbd2/checkpoint.c
@@ -116,7 +116,7 @@ static int __try_to_free_cp_buf(struct journal_head *jh)
116 */ 116 */
117void __jbd2_log_wait_for_space(journal_t *journal) 117void __jbd2_log_wait_for_space(journal_t *journal)
118{ 118{
119 int nblocks; 119 int nblocks, space_left;
120 assert_spin_locked(&journal->j_state_lock); 120 assert_spin_locked(&journal->j_state_lock);
121 121
122 nblocks = jbd_space_needed(journal); 122 nblocks = jbd_space_needed(journal);
@@ -129,25 +129,43 @@ void __jbd2_log_wait_for_space(journal_t *journal)
129 /* 129 /*
130 * Test again, another process may have checkpointed while we 130 * Test again, another process may have checkpointed while we
131 * were waiting for the checkpoint lock. If there are no 131 * were waiting for the checkpoint lock. If there are no
132 * outstanding transactions there is nothing to checkpoint and 132 * transactions ready to be checkpointed, try to recover
133 * we can't make progress. Abort the journal in this case. 133 * journal space by calling cleanup_journal_tail(), and if
134 * that doesn't work, by waiting for the currently committing
135 * transaction to complete. If there is absolutely no way
136 * to make progress, this is either a BUG or corrupted
137 * filesystem, so abort the journal and leave a stack
138 * trace for forensic evidence.
134 */ 139 */
135 spin_lock(&journal->j_state_lock); 140 spin_lock(&journal->j_state_lock);
136 spin_lock(&journal->j_list_lock); 141 spin_lock(&journal->j_list_lock);
137 nblocks = jbd_space_needed(journal); 142 nblocks = jbd_space_needed(journal);
138 if (__jbd2_log_space_left(journal) < nblocks) { 143 space_left = __jbd2_log_space_left(journal);
144 if (space_left < nblocks) {
139 int chkpt = journal->j_checkpoint_transactions != NULL; 145 int chkpt = journal->j_checkpoint_transactions != NULL;
146 tid_t tid = 0;
140 147
148 if (journal->j_committing_transaction)
149 tid = journal->j_committing_transaction->t_tid;
141 spin_unlock(&journal->j_list_lock); 150 spin_unlock(&journal->j_list_lock);
142 spin_unlock(&journal->j_state_lock); 151 spin_unlock(&journal->j_state_lock);
143 if (chkpt) { 152 if (chkpt) {
144 jbd2_log_do_checkpoint(journal); 153 jbd2_log_do_checkpoint(journal);
154 } else if (jbd2_cleanup_journal_tail(journal) == 0) {
155 /* We were able to recover space; yay! */
156 ;
157 } else if (tid) {
158 jbd2_log_wait_commit(journal, tid);
145 } else { 159 } else {
146 printk(KERN_ERR "%s: no transactions\n", 160 printk(KERN_ERR "%s: needed %d blocks and "
147 __func__); 161 "only had %d space available\n",
162 __func__, nblocks, space_left);
163 printk(KERN_ERR "%s: no way to get more "
164 "journal space in %s\n", __func__,
165 journal->j_devname);
166 WARN_ON(1);
148 jbd2_journal_abort(journal, 0); 167 jbd2_journal_abort(journal, 0);
149 } 168 }
150
151 spin_lock(&journal->j_state_lock); 169 spin_lock(&journal->j_state_lock);
152 } else { 170 } else {
153 spin_unlock(&journal->j_list_lock); 171 spin_unlock(&journal->j_list_lock);
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 783de118de92..e70d657a19f8 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -1089,6 +1089,7 @@ journal_t * jbd2_journal_init_inode (struct inode *inode)
1089 if (!journal->j_wbuf) { 1089 if (!journal->j_wbuf) {
1090 printk(KERN_ERR "%s: Cant allocate bhs for commit thread\n", 1090 printk(KERN_ERR "%s: Cant allocate bhs for commit thread\n",
1091 __func__); 1091 __func__);
1092 jbd2_stats_proc_exit(journal);
1092 kfree(journal); 1093 kfree(journal);
1093 return NULL; 1094 return NULL;
1094 } 1095 }
@@ -1098,6 +1099,7 @@ journal_t * jbd2_journal_init_inode (struct inode *inode)
1098 if (err) { 1099 if (err) {
1099 printk(KERN_ERR "%s: Cannnot locate journal superblock\n", 1100 printk(KERN_ERR "%s: Cannnot locate journal superblock\n",
1100 __func__); 1101 __func__);
1102 jbd2_stats_proc_exit(journal);
1101 kfree(journal); 1103 kfree(journal);
1102 return NULL; 1104 return NULL;
1103 } 1105 }
diff --git a/fs/jffs2/background.c b/fs/jffs2/background.c
index 8adebd3e43c6..3cceef4ad2b7 100644
--- a/fs/jffs2/background.c
+++ b/fs/jffs2/background.c
@@ -85,15 +85,15 @@ static int jffs2_garbage_collect_thread(void *_c)
85 for (;;) { 85 for (;;) {
86 allow_signal(SIGHUP); 86 allow_signal(SIGHUP);
87 again: 87 again:
88 spin_lock(&c->erase_completion_lock);
88 if (!jffs2_thread_should_wake(c)) { 89 if (!jffs2_thread_should_wake(c)) {
89 set_current_state (TASK_INTERRUPTIBLE); 90 set_current_state (TASK_INTERRUPTIBLE);
91 spin_unlock(&c->erase_completion_lock);
90 D1(printk(KERN_DEBUG "jffs2_garbage_collect_thread sleeping...\n")); 92 D1(printk(KERN_DEBUG "jffs2_garbage_collect_thread sleeping...\n"));
91 /* Yes, there's a race here; we checked jffs2_thread_should_wake()
92 before setting current->state to TASK_INTERRUPTIBLE. But it doesn't
93 matter - We don't care if we miss a wakeup, because the GC thread
94 is only an optimisation anyway. */
95 schedule(); 93 schedule();
96 } 94 } else
95 spin_unlock(&c->erase_completion_lock);
96
97 97
98 /* This thread is purely an optimisation. But if it runs when 98 /* This thread is purely an optimisation. But if it runs when
99 other things could be running, it actually makes things a 99 other things could be running, it actually makes things a
diff --git a/fs/jffs2/compr_lzo.c b/fs/jffs2/compr_lzo.c
index 47b045797e42..90cb60d09787 100644
--- a/fs/jffs2/compr_lzo.c
+++ b/fs/jffs2/compr_lzo.c
@@ -19,7 +19,7 @@
19 19
20static void *lzo_mem; 20static void *lzo_mem;
21static void *lzo_compress_buf; 21static void *lzo_compress_buf;
22static DEFINE_MUTEX(deflate_mutex); 22static DEFINE_MUTEX(deflate_mutex); /* for lzo_mem and lzo_compress_buf */
23 23
24static void free_workspace(void) 24static void free_workspace(void)
25{ 25{
@@ -49,18 +49,21 @@ static int jffs2_lzo_compress(unsigned char *data_in, unsigned char *cpage_out,
49 49
50 mutex_lock(&deflate_mutex); 50 mutex_lock(&deflate_mutex);
51 ret = lzo1x_1_compress(data_in, *sourcelen, lzo_compress_buf, &compress_size, lzo_mem); 51 ret = lzo1x_1_compress(data_in, *sourcelen, lzo_compress_buf, &compress_size, lzo_mem);
52 mutex_unlock(&deflate_mutex);
53
54 if (ret != LZO_E_OK) 52 if (ret != LZO_E_OK)
55 return -1; 53 goto fail;
56 54
57 if (compress_size > *dstlen) 55 if (compress_size > *dstlen)
58 return -1; 56 goto fail;
59 57
60 memcpy(cpage_out, lzo_compress_buf, compress_size); 58 memcpy(cpage_out, lzo_compress_buf, compress_size);
61 *dstlen = compress_size; 59 mutex_unlock(&deflate_mutex);
62 60
61 *dstlen = compress_size;
63 return 0; 62 return 0;
63
64 fail:
65 mutex_unlock(&deflate_mutex);
66 return -1;
64} 67}
65 68
66static int jffs2_lzo_decompress(unsigned char *data_in, unsigned char *cpage_out, 69static int jffs2_lzo_decompress(unsigned char *data_in, unsigned char *cpage_out,
diff --git a/fs/jffs2/nodemgmt.c b/fs/jffs2/nodemgmt.c
index 0875b60b4bf7..21a052915aa9 100644
--- a/fs/jffs2/nodemgmt.c
+++ b/fs/jffs2/nodemgmt.c
@@ -261,9 +261,11 @@ static int jffs2_find_nextblock(struct jffs2_sb_info *c)
261 261
262 jffs2_sum_reset_collected(c->summary); /* reset collected summary */ 262 jffs2_sum_reset_collected(c->summary); /* reset collected summary */
263 263
264#ifdef CONFIG_JFFS2_FS_WRITEBUFFER
264 /* adjust write buffer offset, else we get a non contiguous write bug */ 265 /* adjust write buffer offset, else we get a non contiguous write bug */
265 if (!(c->wbuf_ofs % c->sector_size) && !c->wbuf_len) 266 if (!(c->wbuf_ofs % c->sector_size) && !c->wbuf_len)
266 c->wbuf_ofs = 0xffffffff; 267 c->wbuf_ofs = 0xffffffff;
268#endif
267 269
268 D1(printk(KERN_DEBUG "jffs2_find_nextblock(): new nextblock = 0x%08x\n", c->nextblock->offset)); 270 D1(printk(KERN_DEBUG "jffs2_find_nextblock(): new nextblock = 0x%08x\n", c->nextblock->offset));
269 271
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/msdos/Makefile b/fs/msdos/Makefile
deleted file mode 100644
index ea67646fcb95..000000000000
--- a/fs/msdos/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
1#
2# Makefile for the Linux msdos filesystem routines.
3#
4
5obj-$(CONFIG_MSDOS_FS) += msdos.o
6
7msdos-y := namei.o
diff --git a/fs/namei.c b/fs/namei.c
index 09ce58e49e72..d34e0f9681c6 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1378,7 +1378,7 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir)
1378 if (IS_APPEND(dir)) 1378 if (IS_APPEND(dir))
1379 return -EPERM; 1379 return -EPERM;
1380 if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)|| 1380 if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)||
1381 IS_IMMUTABLE(victim->d_inode)) 1381 IS_IMMUTABLE(victim->d_inode) || IS_SWAPFILE(victim->d_inode))
1382 return -EPERM; 1382 return -EPERM;
1383 if (isdir) { 1383 if (isdir) {
1384 if (!S_ISDIR(victim->d_inode->i_mode)) 1384 if (!S_ISDIR(victim->d_inode->i_mode))
diff --git a/fs/namespace.c b/fs/namespace.c
index cce46702d33c..65b3dc844c87 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1815,8 +1815,8 @@ static void shrink_submounts(struct vfsmount *mnt, struct list_head *umounts)
1815 while (!list_empty(&graveyard)) { 1815 while (!list_empty(&graveyard)) {
1816 m = list_first_entry(&graveyard, struct vfsmount, 1816 m = list_first_entry(&graveyard, struct vfsmount,
1817 mnt_expire); 1817 mnt_expire);
1818 touch_mnt_namespace(mnt->mnt_ns); 1818 touch_mnt_namespace(m->mnt_ns);
1819 umount_tree(mnt, 1, umounts); 1819 umount_tree(m, 1, umounts);
1820 } 1820 }
1821 } 1821 }
1822} 1822}
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/nfsd/vfs.c b/fs/nfsd/vfs.c
index 848a03e83a42..4433c8f00163 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -1875,11 +1875,11 @@ static int nfsd_buffered_readdir(struct file *file, filldir_t func,
1875 return -ENOMEM; 1875 return -ENOMEM;
1876 1876
1877 offset = *offsetp; 1877 offset = *offsetp;
1878 cdp->err = nfserr_eof; /* will be cleared on successful read */
1879 1878
1880 while (1) { 1879 while (1) {
1881 unsigned int reclen; 1880 unsigned int reclen;
1882 1881
1882 cdp->err = nfserr_eof; /* will be cleared on successful read */
1883 buf.used = 0; 1883 buf.used = 0;
1884 buf.full = 0; 1884 buf.full = 0;
1885 1885
@@ -1912,9 +1912,6 @@ static int nfsd_buffered_readdir(struct file *file, filldir_t func,
1912 de = (struct buffered_dirent *)((char *)de + reclen); 1912 de = (struct buffered_dirent *)((char *)de + reclen);
1913 } 1913 }
1914 offset = vfs_llseek(file, 0, SEEK_CUR); 1914 offset = vfs_llseek(file, 0, SEEK_CUR);
1915 cdp->err = nfserr_eof;
1916 if (!buf.full)
1917 break;
1918 } 1915 }
1919 1916
1920 done: 1917 done:
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/file.c b/fs/ocfs2/file.c
index 7efe937a415f..e2570a3bc2b2 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -247,8 +247,8 @@ int ocfs2_update_inode_atime(struct inode *inode,
247 mlog_entry_void(); 247 mlog_entry_void();
248 248
249 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); 249 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
250 if (handle == NULL) { 250 if (IS_ERR(handle)) {
251 ret = -ENOMEM; 251 ret = PTR_ERR(handle);
252 mlog_errno(ret); 252 mlog_errno(ret);
253 goto out; 253 goto out;
254 } 254 }
@@ -312,8 +312,8 @@ static int ocfs2_simple_size_update(struct inode *inode,
312 handle_t *handle = NULL; 312 handle_t *handle = NULL;
313 313
314 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); 314 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
315 if (handle == NULL) { 315 if (IS_ERR(handle)) {
316 ret = -ENOMEM; 316 ret = PTR_ERR(handle);
317 mlog_errno(ret); 317 mlog_errno(ret);
318 goto out; 318 goto out;
319 } 319 }
@@ -1055,8 +1055,8 @@ static int __ocfs2_write_remove_suid(struct inode *inode,
1055 (unsigned long long)OCFS2_I(inode)->ip_blkno, inode->i_mode); 1055 (unsigned long long)OCFS2_I(inode)->ip_blkno, inode->i_mode);
1056 1056
1057 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); 1057 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
1058 if (handle == NULL) { 1058 if (IS_ERR(handle)) {
1059 ret = -ENOMEM; 1059 ret = PTR_ERR(handle);
1060 mlog_errno(ret); 1060 mlog_errno(ret);
1061 goto out; 1061 goto out;
1062 } 1062 }
@@ -1259,8 +1259,8 @@ static int __ocfs2_remove_inode_range(struct inode *inode,
1259 } 1259 }
1260 1260
1261 handle = ocfs2_start_trans(osb, OCFS2_REMOVE_EXTENT_CREDITS); 1261 handle = ocfs2_start_trans(osb, OCFS2_REMOVE_EXTENT_CREDITS);
1262 if (handle == NULL) { 1262 if (IS_ERR(handle)) {
1263 ret = -ENOMEM; 1263 ret = PTR_ERR(handle);
1264 mlog_errno(ret); 1264 mlog_errno(ret);
1265 goto out; 1265 goto out;
1266 } 1266 }
@@ -1352,8 +1352,8 @@ static int ocfs2_zero_partial_clusters(struct inode *inode,
1352 goto out; 1352 goto out;
1353 1353
1354 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); 1354 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
1355 if (handle == NULL) { 1355 if (IS_ERR(handle)) {
1356 ret = -ENOMEM; 1356 ret = PTR_ERR(handle);
1357 mlog_errno(ret); 1357 mlog_errno(ret);
1358 goto out; 1358 goto out;
1359 } 1359 }
@@ -1866,6 +1866,13 @@ relock:
1866 written = generic_file_direct_write(iocb, iov, &nr_segs, *ppos, 1866 written = generic_file_direct_write(iocb, iov, &nr_segs, *ppos,
1867 ppos, count, ocount); 1867 ppos, count, ocount);
1868 if (written < 0) { 1868 if (written < 0) {
1869 /*
1870 * direct write may have instantiated a few
1871 * blocks outside i_size. Trim these off again.
1872 * Don't need i_size_read because we hold i_mutex.
1873 */
1874 if (*ppos + count > inode->i_size)
1875 vmtruncate(inode, inode->i_size);
1869 ret = written; 1876 ret = written;
1870 goto out_dio; 1877 goto out_dio;
1871 } 1878 }
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c
index 4903688f72a9..7aa00d511874 100644
--- a/fs/ocfs2/inode.c
+++ b/fs/ocfs2/inode.c
@@ -1106,6 +1106,12 @@ void ocfs2_clear_inode(struct inode *inode)
1106 oi->ip_last_trans = 0; 1106 oi->ip_last_trans = 0;
1107 oi->ip_dir_start_lookup = 0; 1107 oi->ip_dir_start_lookup = 0;
1108 oi->ip_blkno = 0ULL; 1108 oi->ip_blkno = 0ULL;
1109
1110 /*
1111 * ip_jinode is used to track txns against this inode. We ensure that
1112 * the journal is flushed before journal shutdown. Thus it is safe to
1113 * have inodes get cleaned up after journal shutdown.
1114 */
1109 jbd2_journal_release_jbd_inode(OCFS2_SB(inode->i_sb)->journal->j_journal, 1115 jbd2_journal_release_jbd_inode(OCFS2_SB(inode->i_sb)->journal->j_journal,
1110 &oi->ip_jinode); 1116 &oi->ip_jinode);
1111 1117
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index 81e40677eecb..99fe9d584f3c 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -690,6 +690,7 @@ void ocfs2_journal_shutdown(struct ocfs2_super *osb)
690 690
691 /* Shutdown the kernel journal system */ 691 /* Shutdown the kernel journal system */
692 jbd2_journal_destroy(journal->j_journal); 692 jbd2_journal_destroy(journal->j_journal);
693 journal->j_journal = NULL;
693 694
694 OCFS2_I(inode)->ip_open_count--; 695 OCFS2_I(inode)->ip_open_count--;
695 696
diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c
index 3dc18d67557c..eea1d24713ea 100644
--- a/fs/ocfs2/mmap.c
+++ b/fs/ocfs2/mmap.c
@@ -113,7 +113,11 @@ static int __ocfs2_page_mkwrite(struct inode *inode, struct buffer_head *di_bh,
113 * ocfs2_write_begin_nolock(). 113 * ocfs2_write_begin_nolock().
114 */ 114 */
115 if (!PageUptodate(page) || page->mapping != inode->i_mapping) { 115 if (!PageUptodate(page) || page->mapping != inode->i_mapping) {
116 ret = -EINVAL; 116 /*
117 * the page has been umapped in ocfs2_data_downconvert_worker.
118 * So return 0 here and let VFS retry.
119 */
120 ret = 0;
117 goto out; 121 goto out;
118 } 122 }
119 123
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index 485a6aa0ad39..f4967e634ffd 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -378,8 +378,8 @@ static int ocfs2_mknod_locked(struct ocfs2_super *osb,
378 } 378 }
379 379
380 inode = new_inode(dir->i_sb); 380 inode = new_inode(dir->i_sb);
381 if (IS_ERR(inode)) { 381 if (!inode) {
382 status = PTR_ERR(inode); 382 status = -ENOMEM;
383 mlog(ML_ERROR, "new_inode failed!\n"); 383 mlog(ML_ERROR, "new_inode failed!\n");
384 goto leave; 384 goto leave;
385 } 385 }
@@ -491,8 +491,10 @@ leave:
491 brelse(*new_fe_bh); 491 brelse(*new_fe_bh);
492 *new_fe_bh = NULL; 492 *new_fe_bh = NULL;
493 } 493 }
494 if (inode) 494 if (inode) {
495 clear_nlink(inode);
495 iput(inode); 496 iput(inode);
497 }
496 } 498 }
497 499
498 mlog_exit(status); 500 mlog_exit(status);
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
index a21a465490c4..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 */
@@ -473,6 +473,9 @@ static inline int ocfs2_uses_extended_slot_map(struct ocfs2_super *osb)
473 (____gd)->bg_signature); \ 473 (____gd)->bg_signature); \
474} while (0) 474} while (0)
475 475
476#define OCFS2_IS_VALID_XATTR_BLOCK(ptr) \
477 (!strcmp((ptr)->xb_signature, OCFS2_XATTR_BLOCK_SIGNATURE))
478
476static inline unsigned long ino_from_blkno(struct super_block *sb, 479static inline unsigned long ino_from_blkno(struct super_block *sb,
477 u64 blkno) 480 u64 blkno)
478{ 481{
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h
index f24ce3d3f956..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
@@ -742,12 +748,12 @@ struct ocfs2_group_desc
742 */ 748 */
743struct ocfs2_xattr_entry { 749struct ocfs2_xattr_entry {
744 __le32 xe_name_hash; /* hash value of xattr prefix+suffix. */ 750 __le32 xe_name_hash; /* hash value of xattr prefix+suffix. */
745 __le16 xe_name_offset; /* byte offset from the 1st etnry in the local 751 __le16 xe_name_offset; /* byte offset from the 1st entry in the
746 local xattr storage(inode, xattr block or 752 local xattr storage(inode, xattr block or
747 xattr bucket). */ 753 xattr bucket). */
748 __u8 xe_name_len; /* xattr name len, does't include prefix. */ 754 __u8 xe_name_len; /* xattr name len, does't include prefix. */
749 __u8 xe_type; /* the low 7 bits indicates the name prefix's 755 __u8 xe_type; /* the low 7 bits indicate the name prefix
750 * type and the highest 1 bits indicate whether 756 * type and the highest bit indicates whether
751 * the EA is stored in the local storage. */ 757 * the EA is stored in the local storage. */
752 __le64 xe_value_size; /* real xattr value length. */ 758 __le64 xe_value_size; /* real xattr value length. */
753}; 759};
@@ -766,9 +772,10 @@ struct ocfs2_xattr_header {
766 xattr. */ 772 xattr. */
767 __le16 xh_name_value_len; /* total length of name/value 773 __le16 xh_name_value_len; /* total length of name/value
768 length in this bucket. */ 774 length in this bucket. */
769 __le16 xh_num_buckets; /* bucket nums in one extent 775 __le16 xh_num_buckets; /* Number of xattr buckets
770 record, only valid in the 776 in this extent record,
771 first bucket. */ 777 only valid in the first
778 bucket. */
772 __le64 xh_csum; 779 __le64 xh_csum;
773 struct ocfs2_xattr_entry xh_entries[0]; /* xattr entry list. */ 780 struct ocfs2_xattr_entry xh_entries[0]; /* xattr entry list. */
774}; 781};
@@ -776,8 +783,8 @@ struct ocfs2_xattr_header {
776/* 783/*
777 * On disk structure for xattr value root. 784 * On disk structure for xattr value root.
778 * 785 *
779 * It is used when one extended attribute's size is larger, and we will save it 786 * When an xattr's value is large enough, it is stored in an external
780 * in an outside cluster. It will stored in a b-tree like file content. 787 * b-tree like file data. The xattr value root points to this structure.
781 */ 788 */
782struct ocfs2_xattr_value_root { 789struct ocfs2_xattr_value_root {
783/*00*/ __le32 xr_clusters; /* clusters covered by xattr value. */ 790/*00*/ __le32 xr_clusters; /* clusters covered by xattr value. */
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 802c41492214..74d7367ade13 100644
--- a/fs/ocfs2/xattr.c
+++ b/fs/ocfs2/xattr.c
@@ -3,25 +3,20 @@
3 * 3 *
4 * xattr.c 4 * xattr.c
5 * 5 *
6 * Copyright (C) 2008 Oracle. All rights reserved. 6 * Copyright (C) 2004, 2008 Oracle. All rights reserved.
7 * 7 *
8 * CREDITS: 8 * CREDITS:
9 * Lots of code in this file is taken from ext3. 9 * Lots of code in this file is copy from linux/fs/ext3/xattr.c.
10 * Copyright (C) 2001-2003 Andreas Gruenbacher, <agruen@suse.de>
10 * 11 *
11 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public 13 * modify it under the terms of the GNU General Public
13 * License as published by the Free Software Foundation; either 14 * License version 2 as published by the Free Software Foundation.
14 * version 2 of the License, or (at your option) any later version.
15 * 15 *
16 * This program is distributed in the hope that it will be useful, 16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * General Public License for more details. 19 * General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public
22 * License along with this program; if not, write to the
23 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 * Boston, MA 021110-1307, USA.
25 */ 20 */
26 21
27#include <linux/capability.h> 22#include <linux/capability.h>
@@ -83,7 +78,7 @@ struct xattr_handler *ocfs2_xattr_handlers[] = {
83 NULL 78 NULL
84}; 79};
85 80
86static struct xattr_handler *ocfs2_xattr_handler_map[] = { 81static struct xattr_handler *ocfs2_xattr_handler_map[OCFS2_XATTR_MAX] = {
87 [OCFS2_XATTR_INDEX_USER] = &ocfs2_xattr_user_handler, 82 [OCFS2_XATTR_INDEX_USER] = &ocfs2_xattr_user_handler,
88 [OCFS2_XATTR_INDEX_TRUSTED] = &ocfs2_xattr_trusted_handler, 83 [OCFS2_XATTR_INDEX_TRUSTED] = &ocfs2_xattr_trusted_handler,
89}; 84};
@@ -116,6 +111,10 @@ static int ocfs2_xattr_bucket_get_name_value(struct inode *inode,
116 int *block_off, 111 int *block_off,
117 int *new_offset); 112 int *new_offset);
118 113
114static int ocfs2_xattr_block_find(struct inode *inode,
115 int name_index,
116 const char *name,
117 struct ocfs2_xattr_search *xs);
119static int ocfs2_xattr_index_block_find(struct inode *inode, 118static int ocfs2_xattr_index_block_find(struct inode *inode,
120 struct buffer_head *root_bh, 119 struct buffer_head *root_bh,
121 int name_index, 120 int name_index,
@@ -137,6 +136,24 @@ static int ocfs2_xattr_set_entry_index_block(struct inode *inode,
137static int ocfs2_delete_xattr_index_block(struct inode *inode, 136static int ocfs2_delete_xattr_index_block(struct inode *inode,
138 struct buffer_head *xb_bh); 137 struct buffer_head *xb_bh);
139 138
139static inline u16 ocfs2_xattr_buckets_per_cluster(struct ocfs2_super *osb)
140{
141 return (1 << osb->s_clustersize_bits) / OCFS2_XATTR_BUCKET_SIZE;
142}
143
144static inline u16 ocfs2_blocks_per_xattr_bucket(struct super_block *sb)
145{
146 return OCFS2_XATTR_BUCKET_SIZE / (1 << sb->s_blocksize_bits);
147}
148
149static inline u16 ocfs2_xattr_max_xe_in_bucket(struct super_block *sb)
150{
151 u16 len = sb->s_blocksize -
152 offsetof(struct ocfs2_xattr_header, xh_entries);
153
154 return len / sizeof(struct ocfs2_xattr_entry);
155}
156
140static inline const char *ocfs2_xattr_prefix(int name_index) 157static inline const char *ocfs2_xattr_prefix(int name_index)
141{ 158{
142 struct xattr_handler *handler = NULL; 159 struct xattr_handler *handler = NULL;
@@ -542,14 +559,12 @@ static int ocfs2_xattr_block_list(struct inode *inode,
542 mlog_errno(ret); 559 mlog_errno(ret);
543 return ret; 560 return ret;
544 } 561 }
545 /*Verify the signature of xattr block*/
546 if (memcmp((void *)blk_bh->b_data, OCFS2_XATTR_BLOCK_SIGNATURE,
547 strlen(OCFS2_XATTR_BLOCK_SIGNATURE))) {
548 ret = -EFAULT;
549 goto cleanup;
550 }
551 562
552 xb = (struct ocfs2_xattr_block *)blk_bh->b_data; 563 xb = (struct ocfs2_xattr_block *)blk_bh->b_data;
564 if (!OCFS2_IS_VALID_XATTR_BLOCK(xb)) {
565 ret = -EIO;
566 goto cleanup;
567 }
553 568
554 if (!(le16_to_cpu(xb->xb_flags) & OCFS2_XATTR_INDEXED)) { 569 if (!(le16_to_cpu(xb->xb_flags) & OCFS2_XATTR_INDEXED)) {
555 struct ocfs2_xattr_header *header = &xb->xb_attrs.xb_header; 570 struct ocfs2_xattr_header *header = &xb->xb_attrs.xb_header;
@@ -749,47 +764,25 @@ static int ocfs2_xattr_block_get(struct inode *inode,
749 size_t buffer_size, 764 size_t buffer_size,
750 struct ocfs2_xattr_search *xs) 765 struct ocfs2_xattr_search *xs)
751{ 766{
752 struct ocfs2_dinode *di = (struct ocfs2_dinode *)xs->inode_bh->b_data;
753 struct buffer_head *blk_bh = NULL;
754 struct ocfs2_xattr_block *xb; 767 struct ocfs2_xattr_block *xb;
755 struct ocfs2_xattr_value_root *xv; 768 struct ocfs2_xattr_value_root *xv;
756 size_t size; 769 size_t size;
757 int ret = -ENODATA, name_offset, name_len, block_off, i; 770 int ret = -ENODATA, name_offset, name_len, block_off, i;
758 771
759 if (!di->i_xattr_loc)
760 return ret;
761
762 memset(&xs->bucket, 0, sizeof(xs->bucket)); 772 memset(&xs->bucket, 0, sizeof(xs->bucket));
763 773
764 ret = ocfs2_read_block(inode, le64_to_cpu(di->i_xattr_loc), &blk_bh); 774 ret = ocfs2_xattr_block_find(inode, name_index, name, xs);
765 if (ret < 0) { 775 if (ret) {
766 mlog_errno(ret); 776 mlog_errno(ret);
767 return ret;
768 }
769 /*Verify the signature of xattr block*/
770 if (memcmp((void *)blk_bh->b_data, OCFS2_XATTR_BLOCK_SIGNATURE,
771 strlen(OCFS2_XATTR_BLOCK_SIGNATURE))) {
772 ret = -EFAULT;
773 goto cleanup; 777 goto cleanup;
774 } 778 }
775 779
776 xs->xattr_bh = blk_bh; 780 if (xs->not_found) {
777 xb = (struct ocfs2_xattr_block *)blk_bh->b_data; 781 ret = -ENODATA;
778
779 if (!(le16_to_cpu(xb->xb_flags) & OCFS2_XATTR_INDEXED)) {
780 xs->header = &xb->xb_attrs.xb_header;
781 xs->base = (void *)xs->header;
782 xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
783 xs->here = xs->header->xh_entries;
784
785 ret = ocfs2_xattr_find_entry(name_index, name, xs);
786 } else
787 ret = ocfs2_xattr_index_block_find(inode, blk_bh,
788 name_index,
789 name, xs);
790
791 if (ret)
792 goto cleanup; 782 goto cleanup;
783 }
784
785 xb = (struct ocfs2_xattr_block *)xs->xattr_bh->b_data;
793 size = le64_to_cpu(xs->here->xe_value_size); 786 size = le64_to_cpu(xs->here->xe_value_size);
794 if (buffer) { 787 if (buffer) {
795 ret = -ERANGE; 788 ret = -ERANGE;
@@ -828,7 +821,8 @@ cleanup:
828 brelse(xs->bucket.bhs[i]); 821 brelse(xs->bucket.bhs[i]);
829 memset(&xs->bucket, 0, sizeof(xs->bucket)); 822 memset(&xs->bucket, 0, sizeof(xs->bucket));
830 823
831 brelse(blk_bh); 824 brelse(xs->xattr_bh);
825 xs->xattr_bh = NULL;
832 return ret; 826 return ret;
833} 827}
834 828
@@ -837,11 +831,11 @@ cleanup:
837 * Copy an extended attribute into the buffer provided. 831 * Copy an extended attribute into the buffer provided.
838 * Buffer is NULL to compute the size of buffer required. 832 * Buffer is NULL to compute the size of buffer required.
839 */ 833 */
840int ocfs2_xattr_get(struct inode *inode, 834static int ocfs2_xattr_get(struct inode *inode,
841 int name_index, 835 int name_index,
842 const char *name, 836 const char *name,
843 void *buffer, 837 void *buffer,
844 size_t buffer_size) 838 size_t buffer_size)
845{ 839{
846 int ret; 840 int ret;
847 struct ocfs2_dinode *di = NULL; 841 struct ocfs2_dinode *di = NULL;
@@ -871,7 +865,7 @@ int ocfs2_xattr_get(struct inode *inode,
871 down_read(&oi->ip_xattr_sem); 865 down_read(&oi->ip_xattr_sem);
872 ret = ocfs2_xattr_ibody_get(inode, name_index, name, buffer, 866 ret = ocfs2_xattr_ibody_get(inode, name_index, name, buffer,
873 buffer_size, &xis); 867 buffer_size, &xis);
874 if (ret == -ENODATA) 868 if (ret == -ENODATA && di->i_xattr_loc)
875 ret = ocfs2_xattr_block_get(inode, name_index, name, buffer, 869 ret = ocfs2_xattr_block_get(inode, name_index, name, buffer,
876 buffer_size, &xbs); 870 buffer_size, &xbs);
877 up_read(&oi->ip_xattr_sem); 871 up_read(&oi->ip_xattr_sem);
@@ -1229,7 +1223,7 @@ static int ocfs2_xattr_set_entry(struct inode *inode,
1229 1223
1230 free = min_offs - ((void *)last - xs->base) - sizeof(__u32); 1224 free = min_offs - ((void *)last - xs->base) - sizeof(__u32);
1231 if (free < 0) 1225 if (free < 0)
1232 return -EFAULT; 1226 return -EIO;
1233 1227
1234 if (!xs->not_found) { 1228 if (!xs->not_found) {
1235 size_t size = 0; 1229 size_t size = 0;
@@ -1514,10 +1508,9 @@ static int ocfs2_xattr_free_block(struct inode *inode,
1514 goto out; 1508 goto out;
1515 } 1509 }
1516 1510
1517 /*Verify the signature of xattr block*/ 1511 xb = (struct ocfs2_xattr_block *)blk_bh->b_data;
1518 if (memcmp((void *)blk_bh->b_data, OCFS2_XATTR_BLOCK_SIGNATURE, 1512 if (!OCFS2_IS_VALID_XATTR_BLOCK(xb)) {
1519 strlen(OCFS2_XATTR_BLOCK_SIGNATURE))) { 1513 ret = -EIO;
1520 ret = -EFAULT;
1521 goto out; 1514 goto out;
1522 } 1515 }
1523 1516
@@ -1527,7 +1520,6 @@ static int ocfs2_xattr_free_block(struct inode *inode,
1527 goto out; 1520 goto out;
1528 } 1521 }
1529 1522
1530 xb = (struct ocfs2_xattr_block *)blk_bh->b_data;
1531 blk = le64_to_cpu(xb->xb_blkno); 1523 blk = le64_to_cpu(xb->xb_blkno);
1532 bit = le16_to_cpu(xb->xb_suballoc_bit); 1524 bit = le16_to_cpu(xb->xb_suballoc_bit);
1533 bg_blkno = ocfs2_which_suballoc_group(blk, bit); 1525 bg_blkno = ocfs2_which_suballoc_group(blk, bit);
@@ -1771,15 +1763,14 @@ static int ocfs2_xattr_block_find(struct inode *inode,
1771 mlog_errno(ret); 1763 mlog_errno(ret);
1772 return ret; 1764 return ret;
1773 } 1765 }
1774 /*Verify the signature of xattr block*/ 1766
1775 if (memcmp((void *)blk_bh->b_data, OCFS2_XATTR_BLOCK_SIGNATURE, 1767 xb = (struct ocfs2_xattr_block *)blk_bh->b_data;
1776 strlen(OCFS2_XATTR_BLOCK_SIGNATURE))) { 1768 if (!OCFS2_IS_VALID_XATTR_BLOCK(xb)) {
1777 ret = -EFAULT; 1769 ret = -EIO;
1778 goto cleanup; 1770 goto cleanup;
1779 } 1771 }
1780 1772
1781 xs->xattr_bh = blk_bh; 1773 xs->xattr_bh = blk_bh;
1782 xb = (struct ocfs2_xattr_block *)blk_bh->b_data;
1783 1774
1784 if (!(le16_to_cpu(xb->xb_flags) & OCFS2_XATTR_INDEXED)) { 1775 if (!(le16_to_cpu(xb->xb_flags) & OCFS2_XATTR_INDEXED)) {
1785 xs->header = &xb->xb_attrs.xb_header; 1776 xs->header = &xb->xb_attrs.xb_header;
@@ -1806,52 +1797,6 @@ cleanup:
1806} 1797}
1807 1798
1808/* 1799/*
1809 * When all the xattrs are deleted from index btree, the ocfs2_xattr_tree
1810 * will be erased and ocfs2_xattr_block will have its ocfs2_xattr_header
1811 * re-initialized.
1812 */
1813static int ocfs2_restore_xattr_block(struct inode *inode,
1814 struct ocfs2_xattr_search *xs)
1815{
1816 int ret;
1817 handle_t *handle;
1818 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
1819 struct ocfs2_xattr_block *xb =
1820 (struct ocfs2_xattr_block *)xs->xattr_bh->b_data;
1821 struct ocfs2_extent_list *el = &xb->xb_attrs.xb_root.xt_list;
1822 u16 xb_flags = le16_to_cpu(xb->xb_flags);
1823
1824 BUG_ON(!(xb_flags & OCFS2_XATTR_INDEXED) ||
1825 le16_to_cpu(el->l_next_free_rec) != 0);
1826
1827 handle = ocfs2_start_trans(osb, OCFS2_XATTR_BLOCK_UPDATE_CREDITS);
1828 if (IS_ERR(handle)) {
1829 ret = PTR_ERR(handle);
1830 handle = NULL;
1831 goto out;
1832 }
1833
1834 ret = ocfs2_journal_access(handle, inode, xs->xattr_bh,
1835 OCFS2_JOURNAL_ACCESS_WRITE);
1836 if (ret < 0) {
1837 mlog_errno(ret);
1838 goto out_commit;
1839 }
1840
1841 memset(&xb->xb_attrs, 0, inode->i_sb->s_blocksize -
1842 offsetof(struct ocfs2_xattr_block, xb_attrs));
1843
1844 xb->xb_flags = cpu_to_le16(xb_flags & ~OCFS2_XATTR_INDEXED);
1845
1846 ocfs2_journal_dirty(handle, xs->xattr_bh);
1847
1848out_commit:
1849 ocfs2_commit_trans(osb, handle);
1850out:
1851 return ret;
1852}
1853
1854/*
1855 * ocfs2_xattr_block_set() 1800 * ocfs2_xattr_block_set()
1856 * 1801 *
1857 * Set, replace or remove an extended attribute into external block. 1802 * Set, replace or remove an extended attribute into external block.
@@ -1961,8 +1906,6 @@ out:
1961 } 1906 }
1962 1907
1963 ret = ocfs2_xattr_set_entry_index_block(inode, xi, xs); 1908 ret = ocfs2_xattr_set_entry_index_block(inode, xi, xs);
1964 if (!ret && xblk->xb_attrs.xb_root.xt_list.l_next_free_rec == 0)
1965 ret = ocfs2_restore_xattr_block(inode, xs);
1966 1909
1967end: 1910end:
1968 1911
@@ -2398,7 +2341,8 @@ static int ocfs2_xattr_index_block_find(struct inode *inode,
2398 BUG_ON(p_blkno == 0 || num_clusters == 0 || first_hash > name_hash); 2341 BUG_ON(p_blkno == 0 || num_clusters == 0 || first_hash > name_hash);
2399 2342
2400 mlog(0, "find xattr extent rec %u clusters from %llu, the first hash " 2343 mlog(0, "find xattr extent rec %u clusters from %llu, the first hash "
2401 "in the rec is %u\n", num_clusters, p_blkno, first_hash); 2344 "in the rec is %u\n", num_clusters, (unsigned long long)p_blkno,
2345 first_hash);
2402 2346
2403 ret = ocfs2_xattr_bucket_find(inode, name_index, name, name_hash, 2347 ret = ocfs2_xattr_bucket_find(inode, name_index, name, name_hash,
2404 p_blkno, first_hash, num_clusters, xs); 2348 p_blkno, first_hash, num_clusters, xs);
@@ -2422,7 +2366,7 @@ static int ocfs2_iterate_xattr_buckets(struct inode *inode,
2422 memset(&bucket, 0, sizeof(bucket)); 2366 memset(&bucket, 0, sizeof(bucket));
2423 2367
2424 mlog(0, "iterating xattr buckets in %u clusters starting from %llu\n", 2368 mlog(0, "iterating xattr buckets in %u clusters starting from %llu\n",
2425 clusters, blkno); 2369 clusters, (unsigned long long)blkno);
2426 2370
2427 for (i = 0; i < num_buckets; i++, blkno += blk_per_bucket) { 2371 for (i = 0; i < num_buckets; i++, blkno += blk_per_bucket) {
2428 ret = ocfs2_read_blocks(inode, blkno, blk_per_bucket, 2372 ret = ocfs2_read_blocks(inode, blkno, blk_per_bucket,
@@ -2440,7 +2384,8 @@ static int ocfs2_iterate_xattr_buckets(struct inode *inode,
2440 if (i == 0) 2384 if (i == 0)
2441 num_buckets = le16_to_cpu(bucket.xh->xh_num_buckets); 2385 num_buckets = le16_to_cpu(bucket.xh->xh_num_buckets);
2442 2386
2443 mlog(0, "iterating xattr bucket %llu, first hash %u\n", blkno, 2387 mlog(0, "iterating xattr bucket %llu, first hash %u\n",
2388 (unsigned long long)blkno,
2444 le32_to_cpu(bucket.xh->xh_entries[0].xe_name_hash)); 2389 le32_to_cpu(bucket.xh->xh_entries[0].xe_name_hash));
2445 if (func) { 2390 if (func) {
2446 ret = func(inode, &bucket, para); 2391 ret = func(inode, &bucket, para);
@@ -2700,9 +2645,9 @@ static int ocfs2_xattr_update_xattr_search(struct inode *inode,
2700 return ret; 2645 return ret;
2701 } 2646 }
2702 2647
2703 i = xs->here - old_xh->xh_entries;
2704 xs->here = &xs->header->xh_entries[i];
2705 } 2648 }
2649 i = xs->here - old_xh->xh_entries;
2650 xs->here = &xs->header->xh_entries[i];
2706 } 2651 }
2707 2652
2708 return ret; 2653 return ret;
@@ -2776,7 +2721,8 @@ static int ocfs2_xattr_create_index_block(struct inode *inode,
2776 */ 2721 */
2777 blkno = ocfs2_clusters_to_blocks(inode->i_sb, bit_off); 2722 blkno = ocfs2_clusters_to_blocks(inode->i_sb, bit_off);
2778 2723
2779 mlog(0, "allocate 1 cluster from %llu to xattr block\n", blkno); 2724 mlog(0, "allocate 1 cluster from %llu to xattr block\n",
2725 (unsigned long long)blkno);
2780 2726
2781 xh_bh = sb_getblk(inode->i_sb, blkno); 2727 xh_bh = sb_getblk(inode->i_sb, blkno);
2782 if (!xh_bh) { 2728 if (!xh_bh) {
@@ -2818,7 +2764,11 @@ static int ocfs2_xattr_create_index_block(struct inode *inode,
2818 if (data_bh) 2764 if (data_bh)
2819 ocfs2_journal_dirty(handle, data_bh); 2765 ocfs2_journal_dirty(handle, data_bh);
2820 2766
2821 ocfs2_xattr_update_xattr_search(inode, xs, xb_bh, xh_bh); 2767 ret = ocfs2_xattr_update_xattr_search(inode, xs, xb_bh, xh_bh);
2768 if (ret) {
2769 mlog_errno(ret);
2770 goto out_commit;
2771 }
2822 2772
2823 /* Change from ocfs2_xattr_header to ocfs2_xattr_tree_root */ 2773 /* Change from ocfs2_xattr_header to ocfs2_xattr_tree_root */
2824 memset(&xb->xb_attrs, 0, inode->i_sb->s_blocksize - 2774 memset(&xb->xb_attrs, 0, inode->i_sb->s_blocksize -
@@ -2941,8 +2891,8 @@ static int ocfs2_defrag_xattr_bucket(struct inode *inode,
2941 2891
2942 mlog(0, "adjust xattr bucket in %llu, count = %u, " 2892 mlog(0, "adjust xattr bucket in %llu, count = %u, "
2943 "xh_free_start = %u, xh_name_value_len = %u.\n", 2893 "xh_free_start = %u, xh_name_value_len = %u.\n",
2944 blkno, le16_to_cpu(xh->xh_count), xh_free_start, 2894 (unsigned long long)blkno, le16_to_cpu(xh->xh_count),
2945 le16_to_cpu(xh->xh_name_value_len)); 2895 xh_free_start, le16_to_cpu(xh->xh_name_value_len));
2946 2896
2947 /* 2897 /*
2948 * sort all the entries by their offset. 2898 * sort all the entries by their offset.
@@ -3058,7 +3008,7 @@ static int ocfs2_mv_xattr_bucket_cross_cluster(struct inode *inode,
3058 prev_blkno += (num_clusters - 1) * bpc + bpc / 2; 3008 prev_blkno += (num_clusters - 1) * bpc + bpc / 2;
3059 3009
3060 mlog(0, "move half of xattrs in cluster %llu to %llu\n", 3010 mlog(0, "move half of xattrs in cluster %llu to %llu\n",
3061 prev_blkno, new_blkno); 3011 (unsigned long long)prev_blkno, (unsigned long long)new_blkno);
3062 3012
3063 /* 3013 /*
3064 * We need to update the 1st half of the new cluster and 3014 * We need to update the 1st half of the new cluster and
@@ -3168,26 +3118,74 @@ static int ocfs2_read_xattr_bucket(struct inode *inode,
3168} 3118}
3169 3119
3170/* 3120/*
3171 * Move half num of the xattrs in old bucket(blk) to new bucket(new_blk). 3121 * Find the suitable pos when we divide a bucket into 2.
3122 * We have to make sure the xattrs with the same hash value exist
3123 * in the same bucket.
3124 *
3125 * If this ocfs2_xattr_header covers more than one hash value, find a
3126 * place where the hash value changes. Try to find the most even split.
3127 * The most common case is that all entries have different hash values,
3128 * and the first check we make will find a place to split.
3129 */
3130static int ocfs2_xattr_find_divide_pos(struct ocfs2_xattr_header *xh)
3131{
3132 struct ocfs2_xattr_entry *entries = xh->xh_entries;
3133 int count = le16_to_cpu(xh->xh_count);
3134 int delta, middle = count / 2;
3135
3136 /*
3137 * We start at the middle. Each step gets farther away in both
3138 * directions. We therefore hit the change in hash value
3139 * nearest to the middle. Note that this loop does not execute for
3140 * count < 2.
3141 */
3142 for (delta = 0; delta < middle; delta++) {
3143 /* Let's check delta earlier than middle */
3144 if (cmp_xe(&entries[middle - delta - 1],
3145 &entries[middle - delta]))
3146 return middle - delta;
3147
3148 /* For even counts, don't walk off the end */
3149 if ((middle + delta + 1) == count)
3150 continue;
3151
3152 /* Now try delta past middle */
3153 if (cmp_xe(&entries[middle + delta],
3154 &entries[middle + delta + 1]))
3155 return middle + delta + 1;
3156 }
3157
3158 /* Every entry had the same hash */
3159 return count;
3160}
3161
3162/*
3163 * Move some xattrs in old bucket(blk) to new bucket(new_blk).
3172 * first_hash will record the 1st hash of the new bucket. 3164 * first_hash will record the 1st hash of the new bucket.
3165 *
3166 * Normally half of the xattrs will be moved. But we have to make
3167 * sure that the xattrs with the same hash value are stored in the
3168 * same bucket. If all the xattrs in this bucket have the same hash
3169 * value, the new bucket will be initialized as an empty one and the
3170 * first_hash will be initialized as (hash_value+1).
3173 */ 3171 */
3174static int ocfs2_half_xattr_bucket(struct inode *inode, 3172static int ocfs2_divide_xattr_bucket(struct inode *inode,
3175 handle_t *handle, 3173 handle_t *handle,
3176 u64 blk, 3174 u64 blk,
3177 u64 new_blk, 3175 u64 new_blk,
3178 u32 *first_hash, 3176 u32 *first_hash,
3179 int new_bucket_head) 3177 int new_bucket_head)
3180{ 3178{
3181 int ret, i; 3179 int ret, i;
3182 u16 count, start, len, name_value_len, xe_len, name_offset; 3180 int count, start, len, name_value_len = 0, xe_len, name_offset = 0;
3183 u16 blk_per_bucket = ocfs2_blocks_per_xattr_bucket(inode->i_sb); 3181 u16 blk_per_bucket = ocfs2_blocks_per_xattr_bucket(inode->i_sb);
3184 struct buffer_head **s_bhs, **t_bhs = NULL; 3182 struct buffer_head **s_bhs, **t_bhs = NULL;
3185 struct ocfs2_xattr_header *xh; 3183 struct ocfs2_xattr_header *xh;
3186 struct ocfs2_xattr_entry *xe; 3184 struct ocfs2_xattr_entry *xe;
3187 int blocksize = inode->i_sb->s_blocksize; 3185 int blocksize = inode->i_sb->s_blocksize;
3188 3186
3189 mlog(0, "move half of xattrs from bucket %llu to %llu\n", 3187 mlog(0, "move some of xattrs from bucket %llu to %llu\n",
3190 blk, new_blk); 3188 (unsigned long long)blk, (unsigned long long)new_blk);
3191 3189
3192 s_bhs = kcalloc(blk_per_bucket, sizeof(struct buffer_head *), GFP_NOFS); 3190 s_bhs = kcalloc(blk_per_bucket, sizeof(struct buffer_head *), GFP_NOFS);
3193 if (!s_bhs) 3191 if (!s_bhs)
@@ -3220,21 +3218,44 @@ static int ocfs2_half_xattr_bucket(struct inode *inode,
3220 3218
3221 for (i = 0; i < blk_per_bucket; i++) { 3219 for (i = 0; i < blk_per_bucket; i++) {
3222 ret = ocfs2_journal_access(handle, inode, t_bhs[i], 3220 ret = ocfs2_journal_access(handle, inode, t_bhs[i],
3223 OCFS2_JOURNAL_ACCESS_CREATE); 3221 new_bucket_head ?
3222 OCFS2_JOURNAL_ACCESS_CREATE :
3223 OCFS2_JOURNAL_ACCESS_WRITE);
3224 if (ret) { 3224 if (ret) {
3225 mlog_errno(ret); 3225 mlog_errno(ret);
3226 goto out; 3226 goto out;
3227 } 3227 }
3228 } 3228 }
3229 3229
3230 xh = (struct ocfs2_xattr_header *)s_bhs[0]->b_data;
3231 count = le16_to_cpu(xh->xh_count);
3232 start = ocfs2_xattr_find_divide_pos(xh);
3233
3234 if (start == count) {
3235 xe = &xh->xh_entries[start-1];
3236
3237 /*
3238 * initialized a new empty bucket here.
3239 * The hash value is set as one larger than
3240 * that of the last entry in the previous bucket.
3241 */
3242 for (i = 0; i < blk_per_bucket; i++)
3243 memset(t_bhs[i]->b_data, 0, blocksize);
3244
3245 xh = (struct ocfs2_xattr_header *)t_bhs[0]->b_data;
3246 xh->xh_free_start = cpu_to_le16(blocksize);
3247 xh->xh_entries[0].xe_name_hash = xe->xe_name_hash;
3248 le32_add_cpu(&xh->xh_entries[0].xe_name_hash, 1);
3249
3250 goto set_num_buckets;
3251 }
3252
3230 /* copy the whole bucket to the new first. */ 3253 /* copy the whole bucket to the new first. */
3231 for (i = 0; i < blk_per_bucket; i++) 3254 for (i = 0; i < blk_per_bucket; i++)
3232 memcpy(t_bhs[i]->b_data, s_bhs[i]->b_data, blocksize); 3255 memcpy(t_bhs[i]->b_data, s_bhs[i]->b_data, blocksize);
3233 3256
3234 /* update the new bucket. */ 3257 /* update the new bucket. */
3235 xh = (struct ocfs2_xattr_header *)t_bhs[0]->b_data; 3258 xh = (struct ocfs2_xattr_header *)t_bhs[0]->b_data;
3236 count = le16_to_cpu(xh->xh_count);
3237 start = count / 2;
3238 3259
3239 /* 3260 /*
3240 * Calculate the total name/value len and xh_free_start for 3261 * Calculate the total name/value len and xh_free_start for
@@ -3291,6 +3312,7 @@ static int ocfs2_half_xattr_bucket(struct inode *inode,
3291 xh->xh_free_start = xe->xe_name_offset; 3312 xh->xh_free_start = xe->xe_name_offset;
3292 } 3313 }
3293 3314
3315set_num_buckets:
3294 /* set xh->xh_num_buckets for the new xh. */ 3316 /* set xh->xh_num_buckets for the new xh. */
3295 if (new_bucket_head) 3317 if (new_bucket_head)
3296 xh->xh_num_buckets = cpu_to_le16(1); 3318 xh->xh_num_buckets = cpu_to_le16(1);
@@ -3308,9 +3330,13 @@ static int ocfs2_half_xattr_bucket(struct inode *inode,
3308 *first_hash = le32_to_cpu(xh->xh_entries[0].xe_name_hash); 3330 *first_hash = le32_to_cpu(xh->xh_entries[0].xe_name_hash);
3309 3331
3310 /* 3332 /*
3311 * Now only update the 1st block of the old bucket. 3333 * Now only update the 1st block of the old bucket. If we
3312 * Please note that the entry has been sorted already above. 3334 * just added a new empty bucket, there is no need to modify
3335 * it.
3313 */ 3336 */
3337 if (start == count)
3338 goto out;
3339
3314 xh = (struct ocfs2_xattr_header *)s_bhs[0]->b_data; 3340 xh = (struct ocfs2_xattr_header *)s_bhs[0]->b_data;
3315 memset(&xh->xh_entries[start], 0, 3341 memset(&xh->xh_entries[start], 0,
3316 sizeof(struct ocfs2_xattr_entry) * (count - start)); 3342 sizeof(struct ocfs2_xattr_entry) * (count - start));
@@ -3358,7 +3384,8 @@ static int ocfs2_cp_xattr_bucket(struct inode *inode,
3358 BUG_ON(s_blkno == t_blkno); 3384 BUG_ON(s_blkno == t_blkno);
3359 3385
3360 mlog(0, "cp bucket %llu to %llu, target is %d\n", 3386 mlog(0, "cp bucket %llu to %llu, target is %d\n",
3361 s_blkno, t_blkno, t_is_new); 3387 (unsigned long long)s_blkno, (unsigned long long)t_blkno,
3388 t_is_new);
3362 3389
3363 s_bhs = kzalloc(sizeof(struct buffer_head *) * blk_per_bucket, 3390 s_bhs = kzalloc(sizeof(struct buffer_head *) * blk_per_bucket,
3364 GFP_NOFS); 3391 GFP_NOFS);
@@ -3382,6 +3409,8 @@ static int ocfs2_cp_xattr_bucket(struct inode *inode,
3382 3409
3383 for (i = 0; i < blk_per_bucket; i++) { 3410 for (i = 0; i < blk_per_bucket; i++) {
3384 ret = ocfs2_journal_access(handle, inode, t_bhs[i], 3411 ret = ocfs2_journal_access(handle, inode, t_bhs[i],
3412 t_is_new ?
3413 OCFS2_JOURNAL_ACCESS_CREATE :
3385 OCFS2_JOURNAL_ACCESS_WRITE); 3414 OCFS2_JOURNAL_ACCESS_WRITE);
3386 if (ret) 3415 if (ret)
3387 goto out; 3416 goto out;
@@ -3428,7 +3457,8 @@ static int ocfs2_cp_xattr_cluster(struct inode *inode,
3428 struct ocfs2_xattr_header *xh; 3457 struct ocfs2_xattr_header *xh;
3429 u64 to_blk_start = to_blk; 3458 u64 to_blk_start = to_blk;
3430 3459
3431 mlog(0, "cp xattrs from cluster %llu to %llu\n", src_blk, to_blk); 3460 mlog(0, "cp xattrs from cluster %llu to %llu\n",
3461 (unsigned long long)src_blk, (unsigned long long)to_blk);
3432 3462
3433 /* 3463 /*
3434 * We need to update the new cluster and 1 more for the update of 3464 * We need to update the new cluster and 1 more for the update of
@@ -3493,15 +3523,15 @@ out:
3493} 3523}
3494 3524
3495/* 3525/*
3496 * Move half of the xattrs in this cluster to the new cluster. 3526 * Move some xattrs in this cluster to the new cluster.
3497 * This function should only be called when bucket size == cluster size. 3527 * This function should only be called when bucket size == cluster size.
3498 * Otherwise ocfs2_mv_xattr_bucket_cross_cluster should be used instead. 3528 * Otherwise ocfs2_mv_xattr_bucket_cross_cluster should be used instead.
3499 */ 3529 */
3500static int ocfs2_half_xattr_cluster(struct inode *inode, 3530static int ocfs2_divide_xattr_cluster(struct inode *inode,
3501 handle_t *handle, 3531 handle_t *handle,
3502 u64 prev_blk, 3532 u64 prev_blk,
3503 u64 new_blk, 3533 u64 new_blk,
3504 u32 *first_hash) 3534 u32 *first_hash)
3505{ 3535{
3506 u16 blk_per_bucket = ocfs2_blocks_per_xattr_bucket(inode->i_sb); 3536 u16 blk_per_bucket = ocfs2_blocks_per_xattr_bucket(inode->i_sb);
3507 int ret, credits = 2 * blk_per_bucket; 3537 int ret, credits = 2 * blk_per_bucket;
@@ -3515,8 +3545,8 @@ static int ocfs2_half_xattr_cluster(struct inode *inode,
3515 } 3545 }
3516 3546
3517 /* Move half of the xattr in start_blk to the next bucket. */ 3547 /* Move half of the xattr in start_blk to the next bucket. */
3518 return ocfs2_half_xattr_bucket(inode, handle, prev_blk, 3548 return ocfs2_divide_xattr_bucket(inode, handle, prev_blk,
3519 new_blk, first_hash, 1); 3549 new_blk, first_hash, 1);
3520} 3550}
3521 3551
3522/* 3552/*
@@ -3559,7 +3589,8 @@ static int ocfs2_adjust_xattr_cross_cluster(struct inode *inode,
3559 int bpc = ocfs2_clusters_to_blocks(inode->i_sb, 1); 3589 int bpc = ocfs2_clusters_to_blocks(inode->i_sb, 1);
3560 3590
3561 mlog(0, "adjust xattrs from cluster %llu len %u to %llu\n", 3591 mlog(0, "adjust xattrs from cluster %llu len %u to %llu\n",
3562 prev_blk, prev_clusters, new_blk); 3592 (unsigned long long)prev_blk, prev_clusters,
3593 (unsigned long long)new_blk);
3563 3594
3564 if (ocfs2_xattr_buckets_per_cluster(OCFS2_SB(inode->i_sb)) > 1) 3595 if (ocfs2_xattr_buckets_per_cluster(OCFS2_SB(inode->i_sb)) > 1)
3565 ret = ocfs2_mv_xattr_bucket_cross_cluster(inode, 3596 ret = ocfs2_mv_xattr_bucket_cross_cluster(inode,
@@ -3578,9 +3609,9 @@ static int ocfs2_adjust_xattr_cross_cluster(struct inode *inode,
3578 last_blk, new_blk, 3609 last_blk, new_blk,
3579 v_start); 3610 v_start);
3580 else { 3611 else {
3581 ret = ocfs2_half_xattr_cluster(inode, handle, 3612 ret = ocfs2_divide_xattr_cluster(inode, handle,
3582 last_blk, new_blk, 3613 last_blk, new_blk,
3583 v_start); 3614 v_start);
3584 3615
3585 if ((*header_bh)->b_blocknr == last_blk && extend) 3616 if ((*header_bh)->b_blocknr == last_blk && extend)
3586 *extend = 0; 3617 *extend = 0;
@@ -3629,7 +3660,7 @@ static int ocfs2_add_new_xattr_cluster(struct inode *inode,
3629 mlog(0, "Add new xattr cluster for %llu, previous xattr hash = %u, " 3660 mlog(0, "Add new xattr cluster for %llu, previous xattr hash = %u, "
3630 "previous xattr blkno = %llu\n", 3661 "previous xattr blkno = %llu\n",
3631 (unsigned long long)OCFS2_I(inode)->ip_blkno, 3662 (unsigned long long)OCFS2_I(inode)->ip_blkno,
3632 prev_cpos, prev_blkno); 3663 prev_cpos, (unsigned long long)prev_blkno);
3633 3664
3634 ocfs2_init_xattr_tree_extent_tree(&et, inode, root_bh); 3665 ocfs2_init_xattr_tree_extent_tree(&et, inode, root_bh);
3635 3666
@@ -3716,7 +3747,7 @@ static int ocfs2_add_new_xattr_cluster(struct inode *inode,
3716 } 3747 }
3717 } 3748 }
3718 mlog(0, "Insert %u clusters at block %llu for xattr at %u\n", 3749 mlog(0, "Insert %u clusters at block %llu for xattr at %u\n",
3719 num_bits, block, v_start); 3750 num_bits, (unsigned long long)block, v_start);
3720 ret = ocfs2_insert_extent(osb, handle, inode, &et, v_start, block, 3751 ret = ocfs2_insert_extent(osb, handle, inode, &et, v_start, block,
3721 num_bits, 0, meta_ac); 3752 num_bits, 0, meta_ac);
3722 if (ret < 0) { 3753 if (ret < 0) {
@@ -3761,7 +3792,7 @@ static int ocfs2_extend_xattr_bucket(struct inode *inode,
3761 u16 bucket = le16_to_cpu(first_xh->xh_num_buckets); 3792 u16 bucket = le16_to_cpu(first_xh->xh_num_buckets);
3762 3793
3763 mlog(0, "extend xattr bucket in %llu, xattr extend rec starting " 3794 mlog(0, "extend xattr bucket in %llu, xattr extend rec starting "
3764 "from %llu, len = %u\n", start_blk, 3795 "from %llu, len = %u\n", (unsigned long long)start_blk,
3765 (unsigned long long)first_bh->b_blocknr, num_clusters); 3796 (unsigned long long)first_bh->b_blocknr, num_clusters);
3766 3797
3767 BUG_ON(bucket >= num_buckets); 3798 BUG_ON(bucket >= num_buckets);
@@ -3797,8 +3828,8 @@ static int ocfs2_extend_xattr_bucket(struct inode *inode,
3797 } 3828 }
3798 3829
3799 /* Move half of the xattr in start_blk to the next bucket. */ 3830 /* Move half of the xattr in start_blk to the next bucket. */
3800 ret = ocfs2_half_xattr_bucket(inode, handle, start_blk, 3831 ret = ocfs2_divide_xattr_bucket(inode, handle, start_blk,
3801 start_blk + blk_per_bucket, NULL, 0); 3832 start_blk + blk_per_bucket, NULL, 0);
3802 3833
3803 le16_add_cpu(&first_xh->xh_num_buckets, 1); 3834 le16_add_cpu(&first_xh->xh_num_buckets, 1);
3804 ocfs2_journal_dirty(handle, first_bh); 3835 ocfs2_journal_dirty(handle, first_bh);
@@ -4146,7 +4177,7 @@ static int ocfs2_xattr_value_update_size(struct inode *inode,
4146 handle_t *handle = NULL; 4177 handle_t *handle = NULL;
4147 4178
4148 handle = ocfs2_start_trans(osb, 1); 4179 handle = ocfs2_start_trans(osb, 1);
4149 if (handle == NULL) { 4180 if (IS_ERR(handle)) {
4150 ret = -ENOMEM; 4181 ret = -ENOMEM;
4151 mlog_errno(ret); 4182 mlog_errno(ret);
4152 goto out; 4183 goto out;
@@ -4313,7 +4344,7 @@ static int ocfs2_rm_xattr_cluster(struct inode *inode,
4313 } 4344 }
4314 4345
4315 handle = ocfs2_start_trans(osb, OCFS2_REMOVE_EXTENT_CREDITS); 4346 handle = ocfs2_start_trans(osb, OCFS2_REMOVE_EXTENT_CREDITS);
4316 if (handle == NULL) { 4347 if (IS_ERR(handle)) {
4317 ret = -ENOMEM; 4348 ret = -ENOMEM;
4318 mlog_errno(ret); 4349 mlog_errno(ret);
4319 goto out; 4350 goto out;
@@ -4489,11 +4520,21 @@ out:
4489 return ret; 4520 return ret;
4490} 4521}
4491 4522
4492/* check whether the xattr bucket is filled up with the same hash value. */ 4523/*
4524 * check whether the xattr bucket is filled up with the same hash value.
4525 * If we want to insert the xattr with the same hash, return -ENOSPC.
4526 * If we want to insert a xattr with different hash value, go ahead
4527 * and ocfs2_divide_xattr_bucket will handle this.
4528 */
4493static int ocfs2_check_xattr_bucket_collision(struct inode *inode, 4529static int ocfs2_check_xattr_bucket_collision(struct inode *inode,
4494 struct ocfs2_xattr_bucket *bucket) 4530 struct ocfs2_xattr_bucket *bucket,
4531 const char *name)
4495{ 4532{
4496 struct ocfs2_xattr_header *xh = bucket->xh; 4533 struct ocfs2_xattr_header *xh = bucket->xh;
4534 u32 name_hash = ocfs2_xattr_name_hash(inode, name, strlen(name));
4535
4536 if (name_hash != le32_to_cpu(xh->xh_entries[0].xe_name_hash))
4537 return 0;
4497 4538
4498 if (xh->xh_entries[le16_to_cpu(xh->xh_count) - 1].xe_name_hash == 4539 if (xh->xh_entries[le16_to_cpu(xh->xh_count) - 1].xe_name_hash ==
4499 xh->xh_entries[0].xe_name_hash) { 4540 xh->xh_entries[0].xe_name_hash) {
@@ -4616,7 +4657,9 @@ try_again:
4616 * one bucket's worth, so check it here whether we need to 4657 * one bucket's worth, so check it here whether we need to
4617 * add a new bucket for the insert. 4658 * add a new bucket for the insert.
4618 */ 4659 */
4619 ret = ocfs2_check_xattr_bucket_collision(inode, &xs->bucket); 4660 ret = ocfs2_check_xattr_bucket_collision(inode,
4661 &xs->bucket,
4662 xi->name);
4620 if (ret) { 4663 if (ret) {
4621 mlog_errno(ret); 4664 mlog_errno(ret);
4622 goto out; 4665 goto out;
@@ -4727,14 +4770,11 @@ out:
4727/* 4770/*
4728 * 'trusted' attributes support 4771 * 'trusted' attributes support
4729 */ 4772 */
4730
4731#define XATTR_TRUSTED_PREFIX "trusted."
4732
4733static size_t ocfs2_xattr_trusted_list(struct inode *inode, char *list, 4773static size_t ocfs2_xattr_trusted_list(struct inode *inode, char *list,
4734 size_t list_size, const char *name, 4774 size_t list_size, const char *name,
4735 size_t name_len) 4775 size_t name_len)
4736{ 4776{
4737 const size_t prefix_len = sizeof(XATTR_TRUSTED_PREFIX) - 1; 4777 const size_t prefix_len = XATTR_TRUSTED_PREFIX_LEN;
4738 const size_t total_len = prefix_len + name_len + 1; 4778 const size_t total_len = prefix_len + name_len + 1;
4739 4779
4740 if (list && total_len <= list_size) { 4780 if (list && total_len <= list_size) {
@@ -4771,18 +4811,14 @@ struct xattr_handler ocfs2_xattr_trusted_handler = {
4771 .set = ocfs2_xattr_trusted_set, 4811 .set = ocfs2_xattr_trusted_set,
4772}; 4812};
4773 4813
4774
4775/* 4814/*
4776 * 'user' attributes support 4815 * 'user' attributes support
4777 */ 4816 */
4778
4779#define XATTR_USER_PREFIX "user."
4780
4781static size_t ocfs2_xattr_user_list(struct inode *inode, char *list, 4817static size_t ocfs2_xattr_user_list(struct inode *inode, char *list,
4782 size_t list_size, const char *name, 4818 size_t list_size, const char *name,
4783 size_t name_len) 4819 size_t name_len)
4784{ 4820{
4785 const size_t prefix_len = sizeof(XATTR_USER_PREFIX) - 1; 4821 const size_t prefix_len = XATTR_USER_PREFIX_LEN;
4786 const size_t total_len = prefix_len + name_len + 1; 4822 const size_t total_len = prefix_len + name_len + 1;
4787 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); 4823 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
4788 4824
diff --git a/fs/ocfs2/xattr.h b/fs/ocfs2/xattr.h
index c25c7c62a059..1d8314c7656d 100644
--- a/fs/ocfs2/xattr.h
+++ b/fs/ocfs2/xattr.h
@@ -3,24 +3,16 @@
3 * 3 *
4 * xattr.h 4 * xattr.h
5 * 5 *
6 * Function prototypes 6 * Copyright (C) 2004, 2008 Oracle. All rights reserved.
7 *
8 * Copyright (C) 2008 Oracle. All rights reserved.
9 * 7 *
10 * This program is free software; you can redistribute it and/or 8 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public 9 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either 10 * License version 2 as published by the Free Software Foundation.
13 * version 2 of the License, or (at your option) any later version.
14 * 11 *
15 * This program is distributed in the hope that it will be useful, 12 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details. 15 * General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
24 */ 16 */
25 17
26#ifndef OCFS2_XATTR_H 18#ifndef OCFS2_XATTR_H
@@ -40,29 +32,11 @@ enum ocfs2_xattr_type {
40 32
41extern struct xattr_handler ocfs2_xattr_user_handler; 33extern struct xattr_handler ocfs2_xattr_user_handler;
42extern struct xattr_handler ocfs2_xattr_trusted_handler; 34extern struct xattr_handler ocfs2_xattr_trusted_handler;
43
44extern ssize_t ocfs2_listxattr(struct dentry *, char *, size_t);
45extern int ocfs2_xattr_get(struct inode *, int, const char *, void *, size_t);
46extern int ocfs2_xattr_set(struct inode *, int, const char *, const void *,
47 size_t, int);
48extern int ocfs2_xattr_remove(struct inode *inode, struct buffer_head *di_bh);
49extern struct xattr_handler *ocfs2_xattr_handlers[]; 35extern struct xattr_handler *ocfs2_xattr_handlers[];
50 36
51static inline u16 ocfs2_xattr_buckets_per_cluster(struct ocfs2_super *osb) 37ssize_t ocfs2_listxattr(struct dentry *, char *, size_t);
52{ 38int ocfs2_xattr_set(struct inode *, int, const char *, const void *,
53 return (1 << osb->s_clustersize_bits) / OCFS2_XATTR_BUCKET_SIZE; 39 size_t, int);
54} 40int ocfs2_xattr_remove(struct inode *, struct buffer_head *);
55
56static inline u16 ocfs2_blocks_per_xattr_bucket(struct super_block *sb)
57{
58 return OCFS2_XATTR_BUCKET_SIZE / (1 << sb->s_blocksize_bits);
59}
60
61static inline u16 ocfs2_xattr_max_xe_in_bucket(struct super_block *sb)
62{
63 u16 len = sb->s_blocksize -
64 offsetof(struct ocfs2_xattr_header, xh_entries);
65 41
66 return len / sizeof(struct ocfs2_xattr_entry);
67}
68#endif /* OCFS2_XATTR_H */ 42#endif /* OCFS2_XATTR_H */
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index 633f7a0ebb2c..6d5b213b8a9b 100644
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
@@ -348,8 +348,8 @@ static ssize_t whole_disk_show(struct device *dev,
348static DEVICE_ATTR(whole_disk, S_IRUSR | S_IRGRP | S_IROTH, 348static DEVICE_ATTR(whole_disk, S_IRUSR | S_IRGRP | S_IROTH,
349 whole_disk_show, NULL); 349 whole_disk_show, NULL);
350 350
351int add_partition(struct gendisk *disk, int partno, 351struct hd_struct *add_partition(struct gendisk *disk, int partno,
352 sector_t start, sector_t len, int flags) 352 sector_t start, sector_t len, int flags)
353{ 353{
354 struct hd_struct *p; 354 struct hd_struct *p;
355 dev_t devt = MKDEV(0, 0); 355 dev_t devt = MKDEV(0, 0);
@@ -361,15 +361,15 @@ int add_partition(struct gendisk *disk, int partno,
361 361
362 err = disk_expand_part_tbl(disk, partno); 362 err = disk_expand_part_tbl(disk, partno);
363 if (err) 363 if (err)
364 return err; 364 return ERR_PTR(err);
365 ptbl = disk->part_tbl; 365 ptbl = disk->part_tbl;
366 366
367 if (ptbl->part[partno]) 367 if (ptbl->part[partno])
368 return -EBUSY; 368 return ERR_PTR(-EBUSY);
369 369
370 p = kzalloc(sizeof(*p), GFP_KERNEL); 370 p = kzalloc(sizeof(*p), GFP_KERNEL);
371 if (!p) 371 if (!p)
372 return -ENOMEM; 372 return ERR_PTR(-EBUSY);
373 373
374 if (!init_part_stats(p)) { 374 if (!init_part_stats(p)) {
375 err = -ENOMEM; 375 err = -ENOMEM;
@@ -395,7 +395,7 @@ int add_partition(struct gendisk *disk, int partno,
395 395
396 err = blk_alloc_devt(p, &devt); 396 err = blk_alloc_devt(p, &devt);
397 if (err) 397 if (err)
398 goto out_free; 398 goto out_free_stats;
399 pdev->devt = devt; 399 pdev->devt = devt;
400 400
401 /* delay uevent until 'holders' subdir is created */ 401 /* delay uevent until 'holders' subdir is created */
@@ -424,18 +424,20 @@ int add_partition(struct gendisk *disk, int partno,
424 if (!ddev->uevent_suppress) 424 if (!ddev->uevent_suppress)
425 kobject_uevent(&pdev->kobj, KOBJ_ADD); 425 kobject_uevent(&pdev->kobj, KOBJ_ADD);
426 426
427 return 0; 427 return p;
428 428
429out_free_stats:
430 free_part_stats(p);
429out_free: 431out_free:
430 kfree(p); 432 kfree(p);
431 return err; 433 return ERR_PTR(err);
432out_del: 434out_del:
433 kobject_put(p->holder_dir); 435 kobject_put(p->holder_dir);
434 device_del(pdev); 436 device_del(pdev);
435out_put: 437out_put:
436 put_device(pdev); 438 put_device(pdev);
437 blk_free_devt(devt); 439 blk_free_devt(devt);
438 return err; 440 return ERR_PTR(err);
439} 441}
440 442
441/* Not exported, helper to add_disk(). */ 443/* Not exported, helper to add_disk(). */
@@ -566,15 +568,16 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
566 disk->disk_name, p, (unsigned long long) size); 568 disk->disk_name, p, (unsigned long long) size);
567 size = get_capacity(disk) - from; 569 size = get_capacity(disk) - from;
568 } 570 }
569 res = add_partition(disk, p, from, size, state->parts[p].flags); 571 part = add_partition(disk, p, from, size,
570 if (res) { 572 state->parts[p].flags);
571 printk(KERN_ERR " %s: p%d could not be added: %d\n", 573 if (IS_ERR(part)) {
572 disk->disk_name, p, -res); 574 printk(KERN_ERR " %s: p%d could not be added: %ld\n",
575 disk->disk_name, p, -PTR_ERR(part));
573 continue; 576 continue;
574 } 577 }
575#ifdef CONFIG_BLK_DEV_MD 578#ifdef CONFIG_BLK_DEV_MD
576 if (state->parts[p].flags & ADDPART_FLAG_RAID) 579 if (state->parts[p].flags & ADDPART_FLAG_RAID)
577 md_autodetect_dev(bdev->bd_dev+p); 580 md_autodetect_dev(part_to_dev(part)->devt);
578#endif 581#endif
579 } 582 }
580 kfree(state); 583 kfree(state);
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/proc_sysctl.c b/fs/proc/proc_sysctl.c
index 94fcfff6863a..06ed10b7da9e 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -31,6 +31,7 @@ static struct inode *proc_sys_make_inode(struct super_block *sb,
31 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; 31 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
32 inode->i_flags |= S_PRIVATE; /* tell selinux to ignore this inode */ 32 inode->i_flags |= S_PRIVATE; /* tell selinux to ignore this inode */
33 inode->i_mode = table->mode; 33 inode->i_mode = table->mode;
34 inode->i_uid = inode->i_gid = 0;
34 if (!table->child) { 35 if (!table->child) {
35 inode->i_mode |= S_IFREG; 36 inode->i_mode |= S_IFREG;
36 inode->i_op = &proc_sys_inode_operations; 37 inode->i_op = &proc_sys_inode_operations;
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/proc/uptime.c b/fs/proc/uptime.c
index 0c10a0b3f146..df26aa88fa47 100644
--- a/fs/proc/uptime.c
+++ b/fs/proc/uptime.c
@@ -1,43 +1,45 @@
1#include <linux/fs.h>
2#include <linux/init.h> 1#include <linux/init.h>
3#include <linux/proc_fs.h> 2#include <linux/proc_fs.h>
4#include <linux/sched.h> 3#include <linux/sched.h>
5#include <linux/seq_file.h>
6#include <linux/time.h> 4#include <linux/time.h>
7#include <asm/cputime.h> 5#include <asm/cputime.h>
8 6
9static int uptime_proc_show(struct seq_file *m, void *v) 7static int proc_calc_metrics(char *page, char **start, off_t off,
8 int count, int *eof, int len)
9{
10 if (len <= off + count)
11 *eof = 1;
12 *start = page + off;
13 len -= off;
14 if (len > count)
15 len = count;
16 if (len < 0)
17 len = 0;
18 return len;
19}
20
21static int uptime_read_proc(char *page, char **start, off_t off, int count,
22 int *eof, void *data)
10{ 23{
11 struct timespec uptime; 24 struct timespec uptime;
12 struct timespec idle; 25 struct timespec idle;
26 int len;
13 cputime_t idletime = cputime_add(init_task.utime, init_task.stime); 27 cputime_t idletime = cputime_add(init_task.utime, init_task.stime);
14 28
15 do_posix_clock_monotonic_gettime(&uptime); 29 do_posix_clock_monotonic_gettime(&uptime);
16 monotonic_to_bootbased(&uptime); 30 monotonic_to_bootbased(&uptime);
17 cputime_to_timespec(idletime, &idle); 31 cputime_to_timespec(idletime, &idle);
18 seq_printf(m, "%lu.%02lu %lu.%02lu\n", 32 len = sprintf(page, "%lu.%02lu %lu.%02lu\n",
19 (unsigned long) uptime.tv_sec, 33 (unsigned long) uptime.tv_sec,
20 (uptime.tv_nsec / (NSEC_PER_SEC / 100)), 34 (uptime.tv_nsec / (NSEC_PER_SEC / 100)),
21 (unsigned long) idle.tv_sec, 35 (unsigned long) idle.tv_sec,
22 (idle.tv_nsec / (NSEC_PER_SEC / 100))); 36 (idle.tv_nsec / (NSEC_PER_SEC / 100)));
23 return 0; 37 return proc_calc_metrics(page, start, off, count, eof, len);
24} 38}
25 39
26static int uptime_proc_open(struct inode *inode, struct file *file)
27{
28 return single_open(file, uptime_proc_show, NULL);
29}
30
31static const struct file_operations uptime_proc_fops = {
32 .open = uptime_proc_open,
33 .read = seq_read,
34 .llseek = seq_lseek,
35 .release = single_release,
36};
37
38static int __init proc_uptime_init(void) 40static int __init proc_uptime_init(void)
39{ 41{
40 proc_create("uptime", 0, NULL, &uptime_proc_fops); 42 create_proc_read_entry("uptime", 0, NULL, uptime_read_proc, NULL);
41 return 0; 43 return 0;
42} 44}
43module_init(proc_uptime_init); 45module_init(proc_uptime_init);
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/vfat/Makefile b/fs/vfat/Makefile
deleted file mode 100644
index 40f2798a4f08..000000000000
--- a/fs/vfat/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
1#
2# Makefile for the linux vfat-filesystem routines.
3#
4
5obj-$(CONFIG_VFAT_FS) += vfat.o
6
7vfat-y := namei.o
diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c
index 9e561a9cefca..a11a8390bf6c 100644
--- a/fs/xfs/xfs_da_btree.c
+++ b/fs/xfs/xfs_da_btree.c
@@ -1566,11 +1566,14 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno)
1566 int nmap, error, w, count, c, got, i, mapi; 1566 int nmap, error, w, count, c, got, i, mapi;
1567 xfs_trans_t *tp; 1567 xfs_trans_t *tp;
1568 xfs_mount_t *mp; 1568 xfs_mount_t *mp;
1569 xfs_drfsbno_t nblks;
1569 1570
1570 dp = args->dp; 1571 dp = args->dp;
1571 mp = dp->i_mount; 1572 mp = dp->i_mount;
1572 w = args->whichfork; 1573 w = args->whichfork;
1573 tp = args->trans; 1574 tp = args->trans;
1575 nblks = dp->i_d.di_nblocks;
1576
1574 /* 1577 /*
1575 * For new directories adjust the file offset and block count. 1578 * For new directories adjust the file offset and block count.
1576 */ 1579 */
@@ -1647,6 +1650,8 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno)
1647 } 1650 }
1648 if (mapp != &map) 1651 if (mapp != &map)
1649 kmem_free(mapp); 1652 kmem_free(mapp);
1653 /* account for newly allocated blocks in reserved blocks total */
1654 args->total -= dp->i_d.di_nblocks - nblks;
1650 *new_blkno = (xfs_dablk_t)bno; 1655 *new_blkno = (xfs_dablk_t)bno;
1651 return 0; 1656 return 0;
1652} 1657}
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c
index 80e0dc51361c..1afb12278b8d 100644
--- a/fs/xfs/xfs_dir2.c
+++ b/fs/xfs/xfs_dir2.c
@@ -525,11 +525,13 @@ xfs_dir2_grow_inode(
525 xfs_mount_t *mp; 525 xfs_mount_t *mp;
526 int nmap; /* number of bmap entries */ 526 int nmap; /* number of bmap entries */
527 xfs_trans_t *tp; 527 xfs_trans_t *tp;
528 xfs_drfsbno_t nblks;
528 529
529 xfs_dir2_trace_args_s("grow_inode", args, space); 530 xfs_dir2_trace_args_s("grow_inode", args, space);
530 dp = args->dp; 531 dp = args->dp;
531 tp = args->trans; 532 tp = args->trans;
532 mp = dp->i_mount; 533 mp = dp->i_mount;
534 nblks = dp->i_d.di_nblocks;
533 /* 535 /*
534 * Set lowest possible block in the space requested. 536 * Set lowest possible block in the space requested.
535 */ 537 */
@@ -622,7 +624,11 @@ xfs_dir2_grow_inode(
622 */ 624 */
623 if (mapp != &map) 625 if (mapp != &map)
624 kmem_free(mapp); 626 kmem_free(mapp);
627
628 /* account for newly allocated blocks in reserved blocks total */
629 args->total -= dp->i_d.di_nblocks - nblks;
625 *dbp = xfs_dir2_da_to_db(mp, (xfs_dablk_t)bno); 630 *dbp = xfs_dir2_da_to_db(mp, (xfs_dablk_t)bno);
631
626 /* 632 /*
627 * Update file's size if this is the data space and it grew. 633 * Update file's size if this is the data space and it grew.
628 */ 634 */
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index dbd9cef852ec..a391b955df01 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -1414,7 +1414,7 @@ xfs_itruncate_start(
1414 mp = ip->i_mount; 1414 mp = ip->i_mount;
1415 1415
1416 /* wait for the completion of any pending DIOs */ 1416 /* wait for the completion of any pending DIOs */
1417 if (new_size < ip->i_size) 1417 if (new_size == 0 || new_size < ip->i_size)
1418 vn_iowait(ip); 1418 vn_iowait(ip);
1419 1419
1420 /* 1420 /*
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 0b02c6443551..3608a0f0a5f6 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -563,6 +563,11 @@ xfs_log_mount(
563 } 563 }
564 564
565 mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks); 565 mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks);
566 if (!mp->m_log) {
567 cmn_err(CE_WARN, "XFS: Log allocation failed: No memory!");
568 error = ENOMEM;
569 goto out;
570 }
566 571
567 /* 572 /*
568 * Initialize the AIL now we have a log. 573 * Initialize the AIL now we have a log.
@@ -601,6 +606,7 @@ xfs_log_mount(
601 return 0; 606 return 0;
602error: 607error:
603 xfs_log_unmount_dealloc(mp); 608 xfs_log_unmount_dealloc(mp);
609out:
604 return error; 610 return error;
605} /* xfs_log_mount */ 611} /* xfs_log_mount */
606 612
@@ -1217,7 +1223,9 @@ xlog_alloc_log(xfs_mount_t *mp,
1217 int i; 1223 int i;
1218 int iclogsize; 1224 int iclogsize;
1219 1225
1220 log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_SLEEP); 1226 log = kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL);
1227 if (!log)
1228 return NULL;
1221 1229
1222 log->l_mp = mp; 1230 log->l_mp = mp;
1223 log->l_targ = log_target; 1231 log->l_targ = log_target;
@@ -1249,6 +1257,8 @@ xlog_alloc_log(xfs_mount_t *mp,
1249 xlog_get_iclog_buffer_size(mp, log); 1257 xlog_get_iclog_buffer_size(mp, log);
1250 1258
1251 bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp); 1259 bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp);
1260 if (!bp)
1261 goto out_free_log;
1252 XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); 1262 XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone);
1253 XFS_BUF_SET_BDSTRAT_FUNC(bp, xlog_bdstrat_cb); 1263 XFS_BUF_SET_BDSTRAT_FUNC(bp, xlog_bdstrat_cb);
1254 XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); 1264 XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1);
@@ -1275,13 +1285,17 @@ xlog_alloc_log(xfs_mount_t *mp,
1275 iclogsize = log->l_iclog_size; 1285 iclogsize = log->l_iclog_size;
1276 ASSERT(log->l_iclog_size >= 4096); 1286 ASSERT(log->l_iclog_size >= 4096);
1277 for (i=0; i < log->l_iclog_bufs; i++) { 1287 for (i=0; i < log->l_iclog_bufs; i++) {
1278 *iclogp = (xlog_in_core_t *) 1288 *iclogp = kmem_zalloc(sizeof(xlog_in_core_t), KM_MAYFAIL);
1279 kmem_zalloc(sizeof(xlog_in_core_t), KM_SLEEP); 1289 if (!*iclogp)
1290 goto out_free_iclog;
1291
1280 iclog = *iclogp; 1292 iclog = *iclogp;
1281 iclog->ic_prev = prev_iclog; 1293 iclog->ic_prev = prev_iclog;
1282 prev_iclog = iclog; 1294 prev_iclog = iclog;
1283 1295
1284 bp = xfs_buf_get_noaddr(log->l_iclog_size, mp->m_logdev_targp); 1296 bp = xfs_buf_get_noaddr(log->l_iclog_size, mp->m_logdev_targp);
1297 if (!bp)
1298 goto out_free_iclog;
1285 if (!XFS_BUF_CPSEMA(bp)) 1299 if (!XFS_BUF_CPSEMA(bp))
1286 ASSERT(0); 1300 ASSERT(0);
1287 XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); 1301 XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone);
@@ -1323,6 +1337,25 @@ xlog_alloc_log(xfs_mount_t *mp,
1323 log->l_iclog->ic_prev = prev_iclog; /* re-write 1st prev ptr */ 1337 log->l_iclog->ic_prev = prev_iclog; /* re-write 1st prev ptr */
1324 1338
1325 return log; 1339 return log;
1340
1341out_free_iclog:
1342 for (iclog = log->l_iclog; iclog; iclog = prev_iclog) {
1343 prev_iclog = iclog->ic_next;
1344 if (iclog->ic_bp) {
1345 sv_destroy(&iclog->ic_force_wait);
1346 sv_destroy(&iclog->ic_write_wait);
1347 xfs_buf_free(iclog->ic_bp);
1348 xlog_trace_iclog_dealloc(iclog);
1349 }
1350 kmem_free(iclog);
1351 }
1352 spinlock_destroy(&log->l_icloglock);
1353 spinlock_destroy(&log->l_grant_lock);
1354 xlog_trace_loggrant_dealloc(log);
1355 xfs_buf_free(log->l_xbuf);
1356out_free_log:
1357 kmem_free(log);
1358 return NULL;
1326} /* xlog_alloc_log */ 1359} /* xlog_alloc_log */
1327 1360
1328 1361
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 82d46ce69d5f..70e3ba32e6be 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -1419,7 +1419,13 @@ xlog_recover_add_to_trans(
1419 return 0; 1419 return 0;
1420 item = trans->r_itemq; 1420 item = trans->r_itemq;
1421 if (item == NULL) { 1421 if (item == NULL) {
1422 ASSERT(*(uint *)dp == XFS_TRANS_HEADER_MAGIC); 1422 /* we need to catch log corruptions here */
1423 if (*(uint *)dp != XFS_TRANS_HEADER_MAGIC) {
1424 xlog_warn("XFS: xlog_recover_add_to_trans: "
1425 "bad header magic number");
1426 ASSERT(0);
1427 return XFS_ERROR(EIO);
1428 }
1423 if (len == sizeof(xfs_trans_header_t)) 1429 if (len == sizeof(xfs_trans_header_t))
1424 xlog_recover_add_item(&trans->r_itemq); 1430 xlog_recover_add_item(&trans->r_itemq);
1425 memcpy(&trans->r_theader, dp, len); /* d, s, l */ 1431 memcpy(&trans->r_theader, dp, len); /* d, s, l */
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index a4503f5e9497..15f5dd22fbb2 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -1245,6 +1245,9 @@ xfs_unmountfs(
1245 1245
1246 XFS_QM_DQPURGEALL(mp, XFS_QMOPT_QUOTALL | XFS_QMOPT_UMOUNTING); 1246 XFS_QM_DQPURGEALL(mp, XFS_QMOPT_QUOTALL | XFS_QMOPT_UMOUNTING);
1247 1247
1248 if (mp->m_quotainfo)
1249 XFS_QM_DONE(mp);
1250
1248 /* 1251 /*
1249 * Flush out the log synchronously so that we know for sure 1252 * Flush out the log synchronously so that we know for sure
1250 * that nothing is pinned. This is important because bflush() 1253 * that nothing is pinned. This is important because bflush()
@@ -1297,8 +1300,6 @@ xfs_unmountfs(
1297 xfs_errortag_clearall(mp, 0); 1300 xfs_errortag_clearall(mp, 0);
1298#endif 1301#endif
1299 xfs_free_perag(mp); 1302 xfs_free_perag(mp);
1300 if (mp->m_quotainfo)
1301 XFS_QM_DONE(mp);
1302} 1303}
1303 1304
1304STATIC void 1305STATIC void
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/acpi_bus.h b/include/acpi/acpi_bus.h
index 54a279e44c9a..e9f6574930ef 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -380,6 +380,8 @@ struct acpi_bus_type {
380int register_acpi_bus_type(struct acpi_bus_type *); 380int register_acpi_bus_type(struct acpi_bus_type *);
381int unregister_acpi_bus_type(struct acpi_bus_type *); 381int unregister_acpi_bus_type(struct acpi_bus_type *);
382struct device *acpi_get_physical_device(acpi_handle); 382struct device *acpi_get_physical_device(acpi_handle);
383struct device *acpi_get_physical_pci_device(acpi_handle);
384
383/* helper */ 385/* helper */
384acpi_handle acpi_get_child(acpi_handle, acpi_integer); 386acpi_handle acpi_get_child(acpi_handle, acpi_integer);
385acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int); 387acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index cf04c6011c2a..5fc1bb0f4a90 100644
--- a/include/acpi/acpi_drivers.h
+++ b/include/acpi/acpi_drivers.h
@@ -31,8 +31,24 @@
31 31
32#define ACPI_MAX_STRING 80 32#define ACPI_MAX_STRING 80
33 33
34/*
35 * Please update drivers/acpi/debug.c and Documentation/acpi/debug.txt
36 * if you add to this list.
37 */
34#define ACPI_BUS_COMPONENT 0x00010000 38#define ACPI_BUS_COMPONENT 0x00010000
39#define ACPI_AC_COMPONENT 0x00020000
40#define ACPI_BATTERY_COMPONENT 0x00040000
41#define ACPI_BUTTON_COMPONENT 0x00080000
42#define ACPI_SBS_COMPONENT 0x00100000
43#define ACPI_FAN_COMPONENT 0x00200000
44#define ACPI_PCI_COMPONENT 0x00400000
45#define ACPI_POWER_COMPONENT 0x00800000
46#define ACPI_CONTAINER_COMPONENT 0x01000000
35#define ACPI_SYSTEM_COMPONENT 0x02000000 47#define ACPI_SYSTEM_COMPONENT 0x02000000
48#define ACPI_THERMAL_COMPONENT 0x04000000
49#define ACPI_MEMORY_DEVICE_COMPONENT 0x08000000
50#define ACPI_VIDEO_COMPONENT 0x10000000
51#define ACPI_PROCESSOR_COMPONENT 0x20000000
36 52
37/* 53/*
38 * _HID definitions 54 * _HID definitions
@@ -41,6 +57,7 @@
41 */ 57 */
42 58
43#define ACPI_POWER_HID "LNXPOWER" 59#define ACPI_POWER_HID "LNXPOWER"
60#define ACPI_PROCESSOR_OBJECT_HID "ACPI_CPU"
44#define ACPI_PROCESSOR_HID "ACPI0007" 61#define ACPI_PROCESSOR_HID "ACPI0007"
45#define ACPI_SYSTEM_HID "LNXSYSTM" 62#define ACPI_SYSTEM_HID "LNXSYSTM"
46#define ACPI_THERMAL_HID "LNXTHERM" 63#define ACPI_THERMAL_HID "LNXTHERM"
@@ -54,7 +71,6 @@
54 PCI 71 PCI
55 -------------------------------------------------------------------------- */ 72 -------------------------------------------------------------------------- */
56 73
57#define ACPI_PCI_COMPONENT 0x00400000
58 74
59/* ACPI PCI Interrupt Link (pci_link.c) */ 75/* ACPI PCI Interrupt Link (pci_link.c) */
60 76
@@ -86,7 +102,6 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_device *device, int domain,
86 Power Resource 102 Power Resource
87 -------------------------------------------------------------------------- */ 103 -------------------------------------------------------------------------- */
88 104
89#ifdef CONFIG_ACPI_POWER
90int acpi_device_sleep_wake(struct acpi_device *dev, 105int acpi_device_sleep_wake(struct acpi_device *dev,
91 int enable, int sleep_state, int dev_state); 106 int enable, int sleep_state, int dev_state);
92int acpi_enable_wakeup_device_power(struct acpi_device *dev, int sleep_state); 107int acpi_enable_wakeup_device_power(struct acpi_device *dev, int sleep_state);
@@ -94,15 +109,12 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev);
94int acpi_power_get_inferred_state(struct acpi_device *device); 109int acpi_power_get_inferred_state(struct acpi_device *device);
95int acpi_power_transition(struct acpi_device *device, int state); 110int acpi_power_transition(struct acpi_device *device, int state);
96extern int acpi_power_nocheck; 111extern int acpi_power_nocheck;
97#endif
98 112
99/* -------------------------------------------------------------------------- 113/* --------------------------------------------------------------------------
100 Embedded Controller 114 Embedded Controller
101 -------------------------------------------------------------------------- */ 115 -------------------------------------------------------------------------- */
102#ifdef CONFIG_ACPI_EC
103int acpi_ec_ecdt_probe(void); 116int acpi_ec_ecdt_probe(void);
104int acpi_boot_ec_enable(void); 117int acpi_boot_ec_enable(void);
105#endif
106 118
107/* -------------------------------------------------------------------------- 119/* --------------------------------------------------------------------------
108 Processor 120 Processor
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h
index 94d94e126e9f..33bc0e3b1954 100644
--- a/include/acpi/acpixf.h
+++ b/include/acpi/acpixf.h
@@ -252,9 +252,9 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status);
252 252
253acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type); 253acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type);
254 254
255acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags); 255acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number);
256 256
257acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags); 257acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number);
258 258
259acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags); 259acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
260 260
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/actypes.h b/include/acpi/actypes.h
index e8936ab59627..7220361790b3 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -525,6 +525,7 @@ typedef u32 acpi_event_status;
525#define ACPI_EVENT_FLAG_ENABLED (acpi_event_status) 0x01 525#define ACPI_EVENT_FLAG_ENABLED (acpi_event_status) 0x01
526#define ACPI_EVENT_FLAG_WAKE_ENABLED (acpi_event_status) 0x02 526#define ACPI_EVENT_FLAG_WAKE_ENABLED (acpi_event_status) 0x02
527#define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04 527#define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04
528#define ACPI_EVENT_FLAG_HANDLE (acpi_event_status) 0x08
528 529
529/* 530/*
530 * General Purpose Events (GPE) 531 * General Purpose Events (GPE)
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-generic/memory_model.h b/include/asm-generic/memory_model.h
index ae060c62aff1..18546d8eb78e 100644
--- a/include/asm-generic/memory_model.h
+++ b/include/asm-generic/memory_model.h
@@ -34,7 +34,7 @@
34 34
35#define __pfn_to_page(pfn) \ 35#define __pfn_to_page(pfn) \
36({ unsigned long __pfn = (pfn); \ 36({ unsigned long __pfn = (pfn); \
37 unsigned long __nid = arch_pfn_to_nid(pfn); \ 37 unsigned long __nid = arch_pfn_to_nid(__pfn); \
38 NODE_DATA(__nid)->node_mem_map + arch_local_page_offset(__pfn, __nid);\ 38 NODE_DATA(__nid)->node_mem_map + arch_local_page_offset(__pfn, __nid);\
39}) 39})
40 40
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 59c796b46ee7..d5e8e5c89548 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -861,8 +861,6 @@ struct drm_device {
861 struct timer_list vblank_disable_timer; 861 struct timer_list vblank_disable_timer;
862 862
863 u32 max_vblank_count; /**< size of vblank counter register */ 863 u32 max_vblank_count; /**< size of vblank counter register */
864 spinlock_t tasklet_lock; /**< For drm_locked_tasklet */
865 void (*locked_tasklet_func)(struct drm_device *dev);
866 864
867 /*@} */ 865 /*@} */
868 cycles_t ctx_start; 866 cycles_t ctx_start;
@@ -1149,16 +1147,14 @@ extern int drm_vblank_init(struct drm_device *dev, int num_crtcs);
1149extern int drm_wait_vblank(struct drm_device *dev, void *data, 1147extern int drm_wait_vblank(struct drm_device *dev, void *data,
1150 struct drm_file *filp); 1148 struct drm_file *filp);
1151extern int drm_vblank_wait(struct drm_device *dev, unsigned int *vbl_seq); 1149extern int drm_vblank_wait(struct drm_device *dev, unsigned int *vbl_seq);
1152extern void drm_locked_tasklet(struct drm_device *dev,
1153 void(*func)(struct drm_device *));
1154extern u32 drm_vblank_count(struct drm_device *dev, int crtc); 1150extern u32 drm_vblank_count(struct drm_device *dev, int crtc);
1155extern void drm_handle_vblank(struct drm_device *dev, int crtc); 1151extern void drm_handle_vblank(struct drm_device *dev, int crtc);
1156extern int drm_vblank_get(struct drm_device *dev, int crtc); 1152extern int drm_vblank_get(struct drm_device *dev, int crtc);
1157extern 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);
1158/* Modesetting support */ 1155/* Modesetting support */
1159extern int drm_modeset_ctl(struct drm_device *dev, void *data, 1156extern int drm_modeset_ctl(struct drm_device *dev, void *data,
1160 struct drm_file *file_priv); 1157 struct drm_file *file_priv);
1161extern void drm_locked_tasklet(struct drm_device *dev, void(*func)(struct drm_device*));
1162 1158
1163 /* AGP/GART support (drm_agpsupport.h) */ 1159 /* AGP/GART support (drm_agpsupport.h) */
1164extern struct drm_agp_head *drm_agp_init(struct drm_device *dev); 1160extern struct drm_agp_head *drm_agp_init(struct drm_device *dev);
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
index da04109741e8..5165f240aa68 100644
--- a/include/drm/drm_pciids.h
+++ b/include/drm/drm_pciids.h
@@ -395,27 +395,27 @@
395 {0, 0, 0} 395 {0, 0, 0}
396 396
397#define i915_PCI_IDS \ 397#define i915_PCI_IDS \
398 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 398 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
399 {0x8086, 0x2562, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 399 {0x8086, 0x2562, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
400 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 400 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
401 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 401 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
402 {0x8086, 0x2582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 402 {0x8086, 0x2582, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
403 {0x8086, 0x258a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 403 {0x8086, 0x258a, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
404 {0x8086, 0x2592, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 404 {0x8086, 0x2592, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
405 {0x8086, 0x2772, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 405 {0x8086, 0x2772, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
406 {0x8086, 0x27a2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 406 {0x8086, 0x27a2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
407 {0x8086, 0x27ae, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 407 {0x8086, 0x27ae, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
408 {0x8086, 0x2972, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 408 {0x8086, 0x2972, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
409 {0x8086, 0x2982, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 409 {0x8086, 0x2982, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
410 {0x8086, 0x2992, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 410 {0x8086, 0x2992, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
411 {0x8086, 0x29a2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 411 {0x8086, 0x29a2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
412 {0x8086, 0x29b2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 412 {0x8086, 0x29b2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
413 {0x8086, 0x29c2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 413 {0x8086, 0x29c2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
414 {0x8086, 0x29d2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 414 {0x8086, 0x29d2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
415 {0x8086, 0x2a02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 415 {0x8086, 0x2a02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
416 {0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 416 {0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
417 {0x8086, 0x2a42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 417 {0x8086, 0x2a42, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
418 {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 418 {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
419 {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 419 {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
420 {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 420 {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
421 {0, 0, 0} 421 {0, 0, 0}
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index eb4b35031a55..152b34da927c 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -159,6 +159,7 @@ typedef struct _drm_i915_sarea {
159#define DRM_I915_GEM_SW_FINISH 0x20 159#define DRM_I915_GEM_SW_FINISH 0x20
160#define DRM_I915_GEM_SET_TILING 0x21 160#define DRM_I915_GEM_SET_TILING 0x21
161#define DRM_I915_GEM_GET_TILING 0x22 161#define DRM_I915_GEM_GET_TILING 0x22
162#define DRM_I915_GEM_GET_APERTURE 0x23
162 163
163#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) 164#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
164#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) 165#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -190,6 +191,7 @@ typedef struct _drm_i915_sarea {
190#define DRM_IOCTL_I915_GEM_SW_FINISH DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish) 191#define DRM_IOCTL_I915_GEM_SW_FINISH DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish)
191#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling) 192#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
192#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling) 193#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
194#define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
193 195
194/* Allow drivers to submit batchbuffers directly to hardware, relying 196/* Allow drivers to submit batchbuffers directly to hardware, relying
195 * on the security mechanisms provided by hardware. 197 * on the security mechanisms provided by hardware.
@@ -600,4 +602,15 @@ struct drm_i915_gem_get_tiling {
600 uint32_t swizzle_mode; 602 uint32_t swizzle_mode;
601}; 603};
602 604
605struct drm_i915_gem_get_aperture {
606 /** Total size of the aperture used by i915_gem_execbuffer, in bytes */
607 uint64_t aper_size;
608
609 /**
610 * Available space in the aperture used by i915_gem_execbuffer, in
611 * bytes
612 */
613 uint64_t aper_available_size;
614};
615
603#endif /* _I915_DRM_H_ */ 616#endif /* _I915_DRM_H_ */
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index fd6a452b0ceb..fba8051fb297 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -163,8 +163,6 @@ struct acpi_pci_driver {
163int acpi_pci_register_driver(struct acpi_pci_driver *driver); 163int acpi_pci_register_driver(struct acpi_pci_driver *driver);
164void acpi_pci_unregister_driver(struct acpi_pci_driver *driver); 164void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
165 165
166#ifdef CONFIG_ACPI_EC
167
168extern int ec_read(u8 addr, u8 *val); 166extern int ec_read(u8 addr, u8 *val);
169extern int ec_write(u8 addr, u8 val); 167extern int ec_write(u8 addr, u8 val);
170extern int ec_transaction(u8 command, 168extern int ec_transaction(u8 command,
@@ -172,8 +170,6 @@ extern int ec_transaction(u8 command,
172 u8 *rdata, unsigned rdata_len, 170 u8 *rdata, unsigned rdata_len,
173 int force_poll); 171 int force_poll);
174 172
175#endif /*CONFIG_ACPI_EC*/
176
177#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE) 173#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
178 174
179typedef void (*wmi_notify_handler) (u32 value, void *context); 175typedef void (*wmi_notify_handler) (u32 value, void *context);
@@ -194,6 +190,50 @@ extern bool wmi_has_guid(const char *guid);
194 190
195#endif /* CONFIG_ACPI_WMI */ 191#endif /* CONFIG_ACPI_WMI */
196 192
193#define ACPI_VIDEO_OUTPUT_SWITCHING 0x0001
194#define ACPI_VIDEO_DEVICE_POSTING 0x0002
195#define ACPI_VIDEO_ROM_AVAILABLE 0x0004
196#define ACPI_VIDEO_BACKLIGHT 0x0008
197#define ACPI_VIDEO_BACKLIGHT_FORCE_VENDOR 0x0010
198#define ACPI_VIDEO_BACKLIGHT_FORCE_VIDEO 0x0020
199#define ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VENDOR 0x0040
200#define ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO 0x0080
201#define ACPI_VIDEO_BACKLIGHT_DMI_VENDOR 0x0100
202#define ACPI_VIDEO_BACKLIGHT_DMI_VIDEO 0x0200
203#define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR 0x0400
204#define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VIDEO 0x0800
205
206#if defined(CONFIG_ACPI_VIDEO) || defined(CONFIG_ACPI_VIDEO_MODULE)
207
208extern long acpi_video_get_capabilities(acpi_handle graphics_dev_handle);
209extern long acpi_is_video_device(struct acpi_device *device);
210extern int acpi_video_backlight_support(void);
211extern int acpi_video_display_switch_support(void);
212
213#else
214
215static inline long acpi_video_get_capabilities(acpi_handle graphics_dev_handle)
216{
217 return 0;
218}
219
220static inline long acpi_is_video_device(struct acpi_device *device)
221{
222 return 0;
223}
224
225static inline int acpi_video_backlight_support(void)
226{
227 return 0;
228}
229
230static inline int acpi_video_display_switch_support(void)
231{
232 return 0;
233}
234
235#endif /* defined(CONFIG_ACPI_VIDEO) || defined(CONFIG_ACPI_VIDEO_MODULE) */
236
197extern int acpi_blacklisted(void); 237extern int acpi_blacklisted(void);
198#ifdef CONFIG_DMI 238#ifdef CONFIG_DMI
199extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d); 239extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d);
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/bio.h b/include/linux/bio.h
index 1c91a176b9ae..6a642098e5c3 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -236,12 +236,16 @@ static inline void *bio_data(struct bio *bio)
236#define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_vcnt - 1) 236#define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_vcnt - 1)
237#define __BVEC_START(bio) bio_iovec_idx((bio), (bio)->bi_idx) 237#define __BVEC_START(bio) bio_iovec_idx((bio), (bio)->bi_idx)
238 238
239/* Default implementation of BIOVEC_PHYS_MERGEABLE */
240#define __BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
241 ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2)))
242
239/* 243/*
240 * allow arch override, for eg virtualized architectures (put in asm/io.h) 244 * allow arch override, for eg virtualized architectures (put in asm/io.h)
241 */ 245 */
242#ifndef BIOVEC_PHYS_MERGEABLE 246#ifndef BIOVEC_PHYS_MERGEABLE
243#define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \ 247#define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
244 ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2))) 248 __BIOVEC_PHYS_MERGEABLE(vec1, vec2)
245#endif 249#endif
246 250
247#define __BIO_SEG_BOUNDARY(addr1, addr2, mask) \ 251#define __BIO_SEG_BOUNDARY(addr1, addr2, mask) \
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/c2port.h b/include/linux/c2port.h
new file mode 100644
index 000000000000..7b5a2388ba67
--- /dev/null
+++ b/include/linux/c2port.h
@@ -0,0 +1,65 @@
1/*
2 * Silicon Labs C2 port Linux support
3 *
4 * Copyright (c) 2007 Rodolfo Giometti <giometti@linux.it>
5 * Copyright (c) 2007 Eurotech S.p.A. <info@eurotech.it>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation
10 */
11
12#include <linux/device.h>
13
14#define C2PORT_NAME_LEN 32
15
16/*
17 * C2 port basic structs
18 */
19
20/* Main struct */
21struct c2port_ops;
22struct c2port_device {
23 unsigned int access:1;
24 unsigned int flash_access:1;
25
26 int id;
27 char name[C2PORT_NAME_LEN];
28 struct c2port_ops *ops;
29 struct mutex mutex; /* prevent races during read/write */
30
31 struct device *dev;
32
33 void *private_data;
34};
35
36/* Basic operations */
37struct c2port_ops {
38 /* Flash layout */
39 unsigned short block_size; /* flash block size in bytes */
40 unsigned short blocks_num; /* flash blocks number */
41
42 /* Enable or disable the access to C2 port */
43 void (*access)(struct c2port_device *dev, int status);
44
45 /* Set C2D data line as input/output */
46 void (*c2d_dir)(struct c2port_device *dev, int dir);
47
48 /* Read/write C2D data line */
49 int (*c2d_get)(struct c2port_device *dev);
50 void (*c2d_set)(struct c2port_device *dev, int status);
51
52 /* Write C2CK clock line */
53 void (*c2ck_set)(struct c2port_device *dev, int status);
54};
55
56/*
57 * Exported functions
58 */
59
60#define to_class_dev(obj) container_of((obj), struct class_device, kobj)
61#define to_c2port_device(obj) container_of((obj), struct c2port_device, class)
62
63extern struct c2port_device *c2port_device_register(char *name,
64 struct c2port_ops *ops, void *devdata);
65extern void c2port_device_unregister(struct c2port_device *dev);
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/cnt32_to_63.h b/include/linux/cnt32_to_63.h
index 8c0f9505b48c..7605fdd1eb65 100644
--- a/include/linux/cnt32_to_63.h
+++ b/include/linux/cnt32_to_63.h
@@ -16,6 +16,7 @@
16#include <linux/compiler.h> 16#include <linux/compiler.h>
17#include <linux/types.h> 17#include <linux/types.h>
18#include <asm/byteorder.h> 18#include <asm/byteorder.h>
19#include <asm/system.h>
19 20
20/* this is used only to give gcc a clue about good code generation */ 21/* this is used only to give gcc a clue about good code generation */
21union cnt32_to_63 { 22union cnt32_to_63 {
@@ -53,11 +54,19 @@ union cnt32_to_63 {
53 * needed increment. And any race in updating the value in memory is harmless 54 * needed increment. And any race in updating the value in memory is harmless
54 * as the same value would simply be stored more than once. 55 * as the same value would simply be stored more than once.
55 * 56 *
56 * The only restriction for the algorithm to work properly is that this 57 * The restrictions for the algorithm to work properly are:
57 * code must be executed at least once per each half period of the 32-bit 58 *
58 * counter to properly update the state bit in memory. This is usually not a 59 * 1) this code must be called at least once per each half period of the
59 * problem in practice, but if it is then a kernel timer could be scheduled 60 * 32-bit counter;
60 * to manage for this code to be executed often enough. 61 *
62 * 2) this code must not be preempted for a duration longer than the
63 * 32-bit counter half period minus the longest period between two
64 * calls to this code.
65 *
66 * Those requirements ensure proper update to the state bit in memory.
67 * This is usually not a problem in practice, but if it is then a kernel
68 * timer should be scheduled to manage for this code to be executed often
69 * enough.
61 * 70 *
62 * Note that the top bit (bit 63) in the returned value should be considered 71 * Note that the top bit (bit 63) in the returned value should be considered
63 * as garbage. It is not cleared here because callers are likely to use a 72 * as garbage. It is not cleared here because callers are likely to use a
@@ -68,9 +77,10 @@ union cnt32_to_63 {
68 */ 77 */
69#define cnt32_to_63(cnt_lo) \ 78#define cnt32_to_63(cnt_lo) \
70({ \ 79({ \
71 static volatile u32 __m_cnt_hi; \ 80 static u32 __m_cnt_hi; \
72 union cnt32_to_63 __x; \ 81 union cnt32_to_63 __x; \
73 __x.hi = __m_cnt_hi; \ 82 __x.hi = __m_cnt_hi; \
83 smp_rmb(); \
74 __x.lo = (cnt_lo); \ 84 __x.lo = (cnt_lo); \
75 if (unlikely((s32)(__x.hi ^ __x.lo) < 0)) \ 85 if (unlikely((s32)(__x.hi ^ __x.lo) < 0)) \
76 __m_cnt_hi = __x.hi = (__x.hi ^ 0x80000000) + (__x.hi >> 31); \ 86 __m_cnt_hi = __x.hi = (__x.hi ^ 0x80000000) + (__x.hi >> 31); \
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/cpumask.h b/include/linux/cpumask.h
index d3219d73f8e6..21e1dd43e52a 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -5,6 +5,9 @@
5 * Cpumasks provide a bitmap suitable for representing the 5 * Cpumasks provide a bitmap suitable for representing the
6 * set of CPU's in a system, one bit position per CPU number. 6 * set of CPU's in a system, one bit position per CPU number.
7 * 7 *
8 * The new cpumask_ ops take a "struct cpumask *"; the old ones
9 * use cpumask_t.
10 *
8 * See detailed comments in the file linux/bitmap.h describing the 11 * See detailed comments in the file linux/bitmap.h describing the
9 * data type on which these cpumasks are based. 12 * data type on which these cpumasks are based.
10 * 13 *
@@ -31,7 +34,7 @@
31 * will span the entire range of NR_CPUS. 34 * will span the entire range of NR_CPUS.
32 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33 * 36 *
34 * The available cpumask operations are: 37 * The obsolescent cpumask operations are:
35 * 38 *
36 * void cpu_set(cpu, mask) turn on bit 'cpu' in mask 39 * void cpu_set(cpu, mask) turn on bit 'cpu' in mask
37 * void cpu_clear(cpu, mask) turn off bit 'cpu' in mask 40 * void cpu_clear(cpu, mask) turn off bit 'cpu' in mask
@@ -138,7 +141,7 @@
138#include <linux/threads.h> 141#include <linux/threads.h>
139#include <linux/bitmap.h> 142#include <linux/bitmap.h>
140 143
141typedef struct { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t; 144typedef struct cpumask { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t;
142extern cpumask_t _unused_cpumask_arg_; 145extern cpumask_t _unused_cpumask_arg_;
143 146
144#define cpu_set(cpu, dst) __cpu_set((cpu), &(dst)) 147#define cpu_set(cpu, dst) __cpu_set((cpu), &(dst))
@@ -527,4 +530,556 @@ extern cpumask_t cpu_active_map;
527#define for_each_online_cpu(cpu) for_each_cpu_mask_nr((cpu), cpu_online_map) 530#define for_each_online_cpu(cpu) for_each_cpu_mask_nr((cpu), cpu_online_map)
528#define for_each_present_cpu(cpu) for_each_cpu_mask_nr((cpu), cpu_present_map) 531#define for_each_present_cpu(cpu) for_each_cpu_mask_nr((cpu), cpu_present_map)
529 532
533/* These are the new versions of the cpumask operators: passed by pointer.
534 * The older versions will be implemented in terms of these, then deleted. */
535#define cpumask_bits(maskp) ((maskp)->bits)
536
537#if NR_CPUS <= BITS_PER_LONG
538#define CPU_BITS_ALL \
539{ \
540 [BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD \
541}
542
543/* This produces more efficient code. */
544#define nr_cpumask_bits NR_CPUS
545
546#else /* NR_CPUS > BITS_PER_LONG */
547
548#define CPU_BITS_ALL \
549{ \
550 [0 ... BITS_TO_LONGS(NR_CPUS)-2] = ~0UL, \
551 [BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD \
552}
553
554#define nr_cpumask_bits nr_cpu_ids
555#endif /* NR_CPUS > BITS_PER_LONG */
556
557/* verify cpu argument to cpumask_* operators */
558static inline unsigned int cpumask_check(unsigned int cpu)
559{
560#ifdef CONFIG_DEBUG_PER_CPU_MAPS
561 WARN_ON_ONCE(cpu >= nr_cpumask_bits);
562#endif /* CONFIG_DEBUG_PER_CPU_MAPS */
563 return cpu;
564}
565
566#if NR_CPUS == 1
567/* Uniprocessor. Assume all masks are "1". */
568static inline unsigned int cpumask_first(const struct cpumask *srcp)
569{
570 return 0;
571}
572
573/* Valid inputs for n are -1 and 0. */
574static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
575{
576 return n+1;
577}
578
579static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
580{
581 return n+1;
582}
583
584static inline unsigned int cpumask_next_and(int n,
585 const struct cpumask *srcp,
586 const struct cpumask *andp)
587{
588 return n+1;
589}
590
591/* cpu must be a valid cpu, ie 0, so there's no other choice. */
592static inline unsigned int cpumask_any_but(const struct cpumask *mask,
593 unsigned int cpu)
594{
595 return 1;
596}
597
598#define for_each_cpu(cpu, mask) \
599 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)
600#define for_each_cpu_and(cpu, mask, and) \
601 for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask, (void)and)
602#else
603/**
604 * cpumask_first - get the first cpu in a cpumask
605 * @srcp: the cpumask pointer
606 *
607 * Returns >= nr_cpu_ids if no cpus set.
608 */
609static inline unsigned int cpumask_first(const struct cpumask *srcp)
610{
611 return find_first_bit(cpumask_bits(srcp), nr_cpumask_bits);
612}
613
614/**
615 * cpumask_next - get the next cpu in a cpumask
616 * @n: the cpu prior to the place to search (ie. return will be > @n)
617 * @srcp: the cpumask pointer
618 *
619 * Returns >= nr_cpu_ids if no further cpus set.
620 */
621static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
622{
623 /* -1 is a legal arg here. */
624 if (n != -1)
625 cpumask_check(n);
626 return find_next_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
627}
628
629/**
630 * cpumask_next_zero - get the next unset cpu in a cpumask
631 * @n: the cpu prior to the place to search (ie. return will be > @n)
632 * @srcp: the cpumask pointer
633 *
634 * Returns >= nr_cpu_ids if no further cpus unset.
635 */
636static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
637{
638 /* -1 is a legal arg here. */
639 if (n != -1)
640 cpumask_check(n);
641 return find_next_zero_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
642}
643
644int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *);
645int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);
646
647/**
648 * for_each_cpu - iterate over every cpu in a mask
649 * @cpu: the (optionally unsigned) integer iterator
650 * @mask: the cpumask pointer
651 *
652 * After the loop, cpu is >= nr_cpu_ids.
653 */
654#define for_each_cpu(cpu, mask) \
655 for ((cpu) = -1; \
656 (cpu) = cpumask_next((cpu), (mask)), \
657 (cpu) < nr_cpu_ids;)
658
659/**
660 * for_each_cpu_and - iterate over every cpu in both masks
661 * @cpu: the (optionally unsigned) integer iterator
662 * @mask: the first cpumask pointer
663 * @and: the second cpumask pointer
664 *
665 * This saves a temporary CPU mask in many places. It is equivalent to:
666 * struct cpumask tmp;
667 * cpumask_and(&tmp, &mask, &and);
668 * for_each_cpu(cpu, &tmp)
669 * ...
670 *
671 * After the loop, cpu is >= nr_cpu_ids.
672 */
673#define for_each_cpu_and(cpu, mask, and) \
674 for ((cpu) = -1; \
675 (cpu) = cpumask_next_and((cpu), (mask), (and)), \
676 (cpu) < nr_cpu_ids;)
677#endif /* SMP */
678
679#define CPU_BITS_NONE \
680{ \
681 [0 ... BITS_TO_LONGS(NR_CPUS)-1] = 0UL \
682}
683
684#define CPU_BITS_CPU0 \
685{ \
686 [0] = 1UL \
687}
688
689/**
690 * cpumask_set_cpu - set a cpu in a cpumask
691 * @cpu: cpu number (< nr_cpu_ids)
692 * @dstp: the cpumask pointer
693 */
694static inline void cpumask_set_cpu(unsigned int cpu, struct cpumask *dstp)
695{
696 set_bit(cpumask_check(cpu), cpumask_bits(dstp));
697}
698
699/**
700 * cpumask_clear_cpu - clear a cpu in a cpumask
701 * @cpu: cpu number (< nr_cpu_ids)
702 * @dstp: the cpumask pointer
703 */
704static inline void cpumask_clear_cpu(int cpu, struct cpumask *dstp)
705{
706 clear_bit(cpumask_check(cpu), cpumask_bits(dstp));
707}
708
709/**
710 * cpumask_test_cpu - test for a cpu in a cpumask
711 * @cpu: cpu number (< nr_cpu_ids)
712 * @cpumask: the cpumask pointer
713 *
714 * No static inline type checking - see Subtlety (1) above.
715 */
716#define cpumask_test_cpu(cpu, cpumask) \
717 test_bit(cpumask_check(cpu), (cpumask)->bits)
718
719/**
720 * cpumask_test_and_set_cpu - atomically test and set a cpu in a cpumask
721 * @cpu: cpu number (< nr_cpu_ids)
722 * @cpumask: the cpumask pointer
723 *
724 * test_and_set_bit wrapper for cpumasks.
725 */
726static inline int cpumask_test_and_set_cpu(int cpu, struct cpumask *cpumask)
727{
728 return test_and_set_bit(cpumask_check(cpu), cpumask_bits(cpumask));
729}
730
731/**
732 * cpumask_setall - set all cpus (< nr_cpu_ids) in a cpumask
733 * @dstp: the cpumask pointer
734 */
735static inline void cpumask_setall(struct cpumask *dstp)
736{
737 bitmap_fill(cpumask_bits(dstp), nr_cpumask_bits);
738}
739
740/**
741 * cpumask_clear - clear all cpus (< nr_cpu_ids) in a cpumask
742 * @dstp: the cpumask pointer
743 */
744static inline void cpumask_clear(struct cpumask *dstp)
745{
746 bitmap_zero(cpumask_bits(dstp), nr_cpumask_bits);
747}
748
749/**
750 * cpumask_and - *dstp = *src1p & *src2p
751 * @dstp: the cpumask result
752 * @src1p: the first input
753 * @src2p: the second input
754 */
755static inline void cpumask_and(struct cpumask *dstp,
756 const struct cpumask *src1p,
757 const struct cpumask *src2p)
758{
759 bitmap_and(cpumask_bits(dstp), cpumask_bits(src1p),
760 cpumask_bits(src2p), nr_cpumask_bits);
761}
762
763/**
764 * cpumask_or - *dstp = *src1p | *src2p
765 * @dstp: the cpumask result
766 * @src1p: the first input
767 * @src2p: the second input
768 */
769static inline void cpumask_or(struct cpumask *dstp, const struct cpumask *src1p,
770 const struct cpumask *src2p)
771{
772 bitmap_or(cpumask_bits(dstp), cpumask_bits(src1p),
773 cpumask_bits(src2p), nr_cpumask_bits);
774}
775
776/**
777 * cpumask_xor - *dstp = *src1p ^ *src2p
778 * @dstp: the cpumask result
779 * @src1p: the first input
780 * @src2p: the second input
781 */
782static inline void cpumask_xor(struct cpumask *dstp,
783 const struct cpumask *src1p,
784 const struct cpumask *src2p)
785{
786 bitmap_xor(cpumask_bits(dstp), cpumask_bits(src1p),
787 cpumask_bits(src2p), nr_cpumask_bits);
788}
789
790/**
791 * cpumask_andnot - *dstp = *src1p & ~*src2p
792 * @dstp: the cpumask result
793 * @src1p: the first input
794 * @src2p: the second input
795 */
796static inline void cpumask_andnot(struct cpumask *dstp,
797 const struct cpumask *src1p,
798 const struct cpumask *src2p)
799{
800 bitmap_andnot(cpumask_bits(dstp), cpumask_bits(src1p),
801 cpumask_bits(src2p), nr_cpumask_bits);
802}
803
804/**
805 * cpumask_complement - *dstp = ~*srcp
806 * @dstp: the cpumask result
807 * @srcp: the input to invert
808 */
809static inline void cpumask_complement(struct cpumask *dstp,
810 const struct cpumask *srcp)
811{
812 bitmap_complement(cpumask_bits(dstp), cpumask_bits(srcp),
813 nr_cpumask_bits);
814}
815
816/**
817 * cpumask_equal - *src1p == *src2p
818 * @src1p: the first input
819 * @src2p: the second input
820 */
821static inline bool cpumask_equal(const struct cpumask *src1p,
822 const struct cpumask *src2p)
823{
824 return bitmap_equal(cpumask_bits(src1p), cpumask_bits(src2p),
825 nr_cpumask_bits);
826}
827
828/**
829 * cpumask_intersects - (*src1p & *src2p) != 0
830 * @src1p: the first input
831 * @src2p: the second input
832 */
833static inline bool cpumask_intersects(const struct cpumask *src1p,
834 const struct cpumask *src2p)
835{
836 return bitmap_intersects(cpumask_bits(src1p), cpumask_bits(src2p),
837 nr_cpumask_bits);
838}
839
840/**
841 * cpumask_subset - (*src1p & ~*src2p) == 0
842 * @src1p: the first input
843 * @src2p: the second input
844 */
845static inline int cpumask_subset(const struct cpumask *src1p,
846 const struct cpumask *src2p)
847{
848 return bitmap_subset(cpumask_bits(src1p), cpumask_bits(src2p),
849 nr_cpumask_bits);
850}
851
852/**
853 * cpumask_empty - *srcp == 0
854 * @srcp: the cpumask to that all cpus < nr_cpu_ids are clear.
855 */
856static inline bool cpumask_empty(const struct cpumask *srcp)
857{
858 return bitmap_empty(cpumask_bits(srcp), nr_cpumask_bits);
859}
860
861/**
862 * cpumask_full - *srcp == 0xFFFFFFFF...
863 * @srcp: the cpumask to that all cpus < nr_cpu_ids are set.
864 */
865static inline bool cpumask_full(const struct cpumask *srcp)
866{
867 return bitmap_full(cpumask_bits(srcp), nr_cpumask_bits);
868}
869
870/**
871 * cpumask_weight - Count of bits in *srcp
872 * @srcp: the cpumask to count bits (< nr_cpu_ids) in.
873 */
874static inline unsigned int cpumask_weight(const struct cpumask *srcp)
875{
876 return bitmap_weight(cpumask_bits(srcp), nr_cpumask_bits);
877}
878
879/**
880 * cpumask_shift_right - *dstp = *srcp >> n
881 * @dstp: the cpumask result
882 * @srcp: the input to shift
883 * @n: the number of bits to shift by
884 */
885static inline void cpumask_shift_right(struct cpumask *dstp,
886 const struct cpumask *srcp, int n)
887{
888 bitmap_shift_right(cpumask_bits(dstp), cpumask_bits(srcp), n,
889 nr_cpumask_bits);
890}
891
892/**
893 * cpumask_shift_left - *dstp = *srcp << n
894 * @dstp: the cpumask result
895 * @srcp: the input to shift
896 * @n: the number of bits to shift by
897 */
898static inline void cpumask_shift_left(struct cpumask *dstp,
899 const struct cpumask *srcp, int n)
900{
901 bitmap_shift_left(cpumask_bits(dstp), cpumask_bits(srcp), n,
902 nr_cpumask_bits);
903}
904
905/**
906 * cpumask_copy - *dstp = *srcp
907 * @dstp: the result
908 * @srcp: the input cpumask
909 */
910static inline void cpumask_copy(struct cpumask *dstp,
911 const struct cpumask *srcp)
912{
913 bitmap_copy(cpumask_bits(dstp), cpumask_bits(srcp), nr_cpumask_bits);
914}
915
916/**
917 * cpumask_any - pick a "random" cpu from *srcp
918 * @srcp: the input cpumask
919 *
920 * Returns >= nr_cpu_ids if no cpus set.
921 */
922#define cpumask_any(srcp) cpumask_first(srcp)
923
924/**
925 * cpumask_first_and - return the first cpu from *srcp1 & *srcp2
926 * @src1p: the first input
927 * @src2p: the second input
928 *
929 * Returns >= nr_cpu_ids if no cpus set in both. See also cpumask_next_and().
930 */
931#define cpumask_first_and(src1p, src2p) cpumask_next_and(-1, (src1p), (src2p))
932
933/**
934 * cpumask_any_and - pick a "random" cpu from *mask1 & *mask2
935 * @mask1: the first input cpumask
936 * @mask2: the second input cpumask
937 *
938 * Returns >= nr_cpu_ids if no cpus set.
939 */
940#define cpumask_any_and(mask1, mask2) cpumask_first_and((mask1), (mask2))
941
942/**
943 * cpumask_of - the cpumask containing just a given cpu
944 * @cpu: the cpu (<= nr_cpu_ids)
945 */
946#define cpumask_of(cpu) (get_cpu_mask(cpu))
947
948/**
949 * to_cpumask - convert an NR_CPUS bitmap to a struct cpumask *
950 * @bitmap: the bitmap
951 *
952 * There are a few places where cpumask_var_t isn't appropriate and
953 * static cpumasks must be used (eg. very early boot), yet we don't
954 * expose the definition of 'struct cpumask'.
955 *
956 * This does the conversion, and can be used as a constant initializer.
957 */
958#define to_cpumask(bitmap) \
959 ((struct cpumask *)(1 ? (bitmap) \
960 : (void *)sizeof(__check_is_bitmap(bitmap))))
961
962static inline int __check_is_bitmap(const unsigned long *bitmap)
963{
964 return 1;
965}
966
967/**
968 * cpumask_size - size to allocate for a 'struct cpumask' in bytes
969 *
970 * This will eventually be a runtime variable, depending on nr_cpu_ids.
971 */
972static inline size_t cpumask_size(void)
973{
974 /* FIXME: Once all cpumask assignments are eliminated, this
975 * can be nr_cpumask_bits */
976 return BITS_TO_LONGS(NR_CPUS) * sizeof(long);
977}
978
979/*
980 * cpumask_var_t: struct cpumask for stack usage.
981 *
982 * Oh, the wicked games we play! In order to make kernel coding a
983 * little more difficult, we typedef cpumask_var_t to an array or a
984 * pointer: doing &mask on an array is a noop, so it still works.
985 *
986 * ie.
987 * cpumask_var_t tmpmask;
988 * if (!alloc_cpumask_var(&tmpmask, GFP_KERNEL))
989 * return -ENOMEM;
990 *
991 * ... use 'tmpmask' like a normal struct cpumask * ...
992 *
993 * free_cpumask_var(tmpmask);
994 */
995#ifdef CONFIG_CPUMASK_OFFSTACK
996typedef struct cpumask *cpumask_var_t;
997
998bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags);
999void alloc_bootmem_cpumask_var(cpumask_var_t *mask);
1000void free_cpumask_var(cpumask_var_t mask);
1001void free_bootmem_cpumask_var(cpumask_var_t mask);
1002
1003#else
1004typedef struct cpumask cpumask_var_t[1];
1005
1006static inline bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
1007{
1008 return true;
1009}
1010
1011static inline void alloc_bootmem_cpumask_var(cpumask_var_t *mask)
1012{
1013}
1014
1015static inline void free_cpumask_var(cpumask_var_t mask)
1016{
1017}
1018
1019static inline void free_bootmem_cpumask_var(cpumask_var_t mask)
1020{
1021}
1022#endif /* CONFIG_CPUMASK_OFFSTACK */
1023
1024/* The pointer versions of the maps, these will become the primary versions. */
1025#define cpu_possible_mask ((const struct cpumask *)&cpu_possible_map)
1026#define cpu_online_mask ((const struct cpumask *)&cpu_online_map)
1027#define cpu_present_mask ((const struct cpumask *)&cpu_present_map)
1028#define cpu_active_mask ((const struct cpumask *)&cpu_active_map)
1029
1030/* It's common to want to use cpu_all_mask in struct member initializers,
1031 * so it has to refer to an address rather than a pointer. */
1032extern const DECLARE_BITMAP(cpu_all_bits, NR_CPUS);
1033#define cpu_all_mask to_cpumask(cpu_all_bits)
1034
1035/* First bits of cpu_bit_bitmap are in fact unset. */
1036#define cpu_none_mask to_cpumask(cpu_bit_bitmap[0])
1037
1038/* Wrappers for arch boot code to manipulate normally-constant masks */
1039static inline void set_cpu_possible(unsigned int cpu, bool possible)
1040{
1041 if (possible)
1042 cpumask_set_cpu(cpu, &cpu_possible_map);
1043 else
1044 cpumask_clear_cpu(cpu, &cpu_possible_map);
1045}
1046
1047static inline void set_cpu_present(unsigned int cpu, bool present)
1048{
1049 if (present)
1050 cpumask_set_cpu(cpu, &cpu_present_map);
1051 else
1052 cpumask_clear_cpu(cpu, &cpu_present_map);
1053}
1054
1055static inline void set_cpu_online(unsigned int cpu, bool online)
1056{
1057 if (online)
1058 cpumask_set_cpu(cpu, &cpu_online_map);
1059 else
1060 cpumask_clear_cpu(cpu, &cpu_online_map);
1061}
1062
1063static inline void set_cpu_active(unsigned int cpu, bool active)
1064{
1065 if (active)
1066 cpumask_set_cpu(cpu, &cpu_active_map);
1067 else
1068 cpumask_clear_cpu(cpu, &cpu_active_map);
1069}
1070
1071static inline void init_cpu_present(const struct cpumask *src)
1072{
1073 cpumask_copy(&cpu_present_map, src);
1074}
1075
1076static inline void init_cpu_possible(const struct cpumask *src)
1077{
1078 cpumask_copy(&cpu_possible_map, src);
1079}
1080
1081static inline void init_cpu_online(const struct cpumask *src)
1082{
1083 cpumask_copy(&cpu_online_map, src);
1084}
530#endif /* __LINUX_CPUMASK_H */ 1085#endif /* __LINUX_CPUMASK_H */
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
index 2691926fb506..8e540d32c9fe 100644
--- a/include/linux/cpuset.h
+++ b/include/linux/cpuset.h
@@ -74,8 +74,6 @@ static inline int cpuset_do_slab_mem_spread(void)
74 return current->flags & PF_SPREAD_SLAB; 74 return current->flags & PF_SPREAD_SLAB;
75} 75}
76 76
77extern void cpuset_track_online_nodes(void);
78
79extern int current_cpuset_is_being_rebound(void); 77extern int current_cpuset_is_being_rebound(void);
80 78
81extern void rebuild_sched_domains(void); 79extern void rebuild_sched_domains(void);
@@ -151,8 +149,6 @@ static inline int cpuset_do_slab_mem_spread(void)
151 return 0; 149 return 0;
152} 150}
153 151
154static inline void cpuset_track_online_nodes(void) {}
155
156static inline int current_cpuset_is_being_rebound(void) 152static inline int current_cpuset_is_being_rebound(void)
157{ 153{
158 return 0; 154 return 0;
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/genhd.h b/include/linux/genhd.h
index e439e6aed832..3df7742ce246 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -522,7 +522,9 @@ extern char *disk_name (struct gendisk *hd, int partno, char *buf);
522 522
523extern int disk_expand_part_tbl(struct gendisk *disk, int target); 523extern int disk_expand_part_tbl(struct gendisk *disk, int target);
524extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); 524extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev);
525extern int __must_check add_partition(struct gendisk *, int, sector_t, sector_t, int); 525extern struct hd_struct * __must_check add_partition(struct gendisk *disk,
526 int partno, sector_t start,
527 sector_t len, int flags);
526extern void delete_partition(struct gendisk *, int); 528extern void delete_partition(struct gendisk *, int);
527extern void printk_all_partitions(void); 529extern void printk_all_partitions(void);
528 530
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/hrtimer.h b/include/linux/hrtimer.h
index 2b3645b1acf4..3eba43878dcb 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -46,9 +46,6 @@ enum hrtimer_restart {
46 * hrtimer callback modes: 46 * hrtimer callback modes:
47 * 47 *
48 * HRTIMER_CB_SOFTIRQ: Callback must run in softirq context 48 * HRTIMER_CB_SOFTIRQ: Callback must run in softirq context
49 * HRTIMER_CB_IRQSAFE: Callback may run in hardirq context
50 * HRTIMER_CB_IRQSAFE_NO_RESTART: Callback may run in hardirq context and
51 * does not restart the timer
52 * HRTIMER_CB_IRQSAFE_PERCPU: Callback must run in hardirq context 49 * HRTIMER_CB_IRQSAFE_PERCPU: Callback must run in hardirq context
53 * Special mode for tick emulation and 50 * Special mode for tick emulation and
54 * scheduler timer. Such timers are per 51 * scheduler timer. Such timers are per
@@ -61,8 +58,6 @@ enum hrtimer_restart {
61 */ 58 */
62enum hrtimer_cb_mode { 59enum hrtimer_cb_mode {
63 HRTIMER_CB_SOFTIRQ, 60 HRTIMER_CB_SOFTIRQ,
64 HRTIMER_CB_IRQSAFE,
65 HRTIMER_CB_IRQSAFE_NO_RESTART,
66 HRTIMER_CB_IRQSAFE_PERCPU, 61 HRTIMER_CB_IRQSAFE_PERCPU,
67 HRTIMER_CB_IRQSAFE_UNLOCKED, 62 HRTIMER_CB_IRQSAFE_UNLOCKED,
68}; 63};
@@ -239,7 +234,7 @@ static inline void hrtimer_add_expires(struct hrtimer *timer, ktime_t time)
239 timer->_softexpires = ktime_add_safe(timer->_softexpires, time); 234 timer->_softexpires = ktime_add_safe(timer->_softexpires, time);
240} 235}
241 236
242static inline void hrtimer_add_expires_ns(struct hrtimer *timer, unsigned long ns) 237static inline void hrtimer_add_expires_ns(struct hrtimer *timer, u64 ns)
243{ 238{
244 timer->_expires = ktime_add_ns(timer->_expires, ns); 239 timer->_expires = ktime_add_ns(timer->_expires, ns);
245 timer->_softexpires = ktime_add_ns(timer->_softexpires, ns); 240 timer->_softexpires = ktime_add_ns(timer->_softexpires, ns);
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/if_vlan.h b/include/linux/if_vlan.h
index 9e7b49b8062d..a5cb0c3f6dcf 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -114,6 +114,8 @@ extern u16 vlan_dev_vlan_id(const struct net_device *dev);
114 114
115extern int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp, 115extern int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
116 u16 vlan_tci, int polling); 116 u16 vlan_tci, int polling);
117extern int vlan_hwaccel_do_receive(struct sk_buff *skb);
118
117#else 119#else
118static inline struct net_device *vlan_dev_real_dev(const struct net_device *dev) 120static inline struct net_device *vlan_dev_real_dev(const struct net_device *dev)
119{ 121{
@@ -133,6 +135,11 @@ static inline int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
133 BUG(); 135 BUG();
134 return NET_XMIT_SUCCESS; 136 return NET_XMIT_SUCCESS;
135} 137}
138
139static inline int vlan_hwaccel_do_receive(struct sk_buff *skb)
140{
141 return 0;
142}
136#endif 143#endif
137 144
138/** 145/**
diff --git a/include/linux/inotify.h b/include/linux/inotify.h
index bd578578a8b9..37ea2894b3c0 100644
--- a/include/linux/inotify.h
+++ b/include/linux/inotify.h
@@ -134,6 +134,8 @@ extern void inotify_remove_watch_locked(struct inotify_handle *,
134 struct inotify_watch *); 134 struct inotify_watch *);
135extern void get_inotify_watch(struct inotify_watch *); 135extern void get_inotify_watch(struct inotify_watch *);
136extern void put_inotify_watch(struct inotify_watch *); 136extern void put_inotify_watch(struct inotify_watch *);
137extern int pin_inotify_watch(struct inotify_watch *);
138extern void unpin_inotify_watch(struct inotify_watch *);
137 139
138#else 140#else
139 141
@@ -228,6 +230,15 @@ static inline void put_inotify_watch(struct inotify_watch *watch)
228{ 230{
229} 231}
230 232
233extern inline int pin_inotify_watch(struct inotify_watch *watch)
234{
235 return 0;
236}
237
238extern inline void unpin_inotify_watch(struct inotify_watch *watch)
239{
240}
241
231#endif /* CONFIG_INOTIFY */ 242#endif /* CONFIG_INOTIFY */
232 243
233#endif /* __KERNEL __ */ 244#endif /* __KERNEL __ */
diff --git a/include/linux/input.h b/include/linux/input.h
index b86fb5581ce6..5341e8251f8c 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -238,6 +238,7 @@ struct input_absinfo {
238#define KEY_KPEQUAL 117 238#define KEY_KPEQUAL 117
239#define KEY_KPPLUSMINUS 118 239#define KEY_KPPLUSMINUS 118
240#define KEY_PAUSE 119 240#define KEY_PAUSE 119
241#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */
241 242
242#define KEY_KPCOMMA 121 243#define KEY_KPCOMMA 121
243#define KEY_HANGEUL 122 244#define KEY_HANGEUL 122
@@ -322,6 +323,7 @@ struct input_absinfo {
322#define KEY_PAUSECD 201 323#define KEY_PAUSECD 201
323#define KEY_PROG3 202 324#define KEY_PROG3 202
324#define KEY_PROG4 203 325#define KEY_PROG4 203
326#define KEY_DASHBOARD 204 /* AL Dashboard */
325#define KEY_SUSPEND 205 327#define KEY_SUSPEND 205
326#define KEY_CLOSE 206 /* AC Close */ 328#define KEY_CLOSE 206 /* AC Close */
327#define KEY_PLAY 207 329#define KEY_PLAY 207
diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h
new file mode 100644
index 000000000000..82df31726a54
--- /dev/null
+++ b/include/linux/io-mapping.h
@@ -0,0 +1,125 @@
1/*
2 * Copyright © 2008 Keith Packard <keithp@keithp.com>
3 *
4 * This file is free software; you can redistribute it and/or modify
5 * it under the terms of version 2 of the GNU General Public License
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software Foundation,
15 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16 */
17
18#ifndef _LINUX_IO_MAPPING_H
19#define _LINUX_IO_MAPPING_H
20
21#include <linux/types.h>
22#include <asm/io.h>
23#include <asm/page.h>
24#include <asm/iomap.h>
25
26/*
27 * The io_mapping mechanism provides an abstraction for mapping
28 * individual pages from an io device to the CPU in an efficient fashion.
29 *
30 * See Documentation/io_mapping.txt
31 */
32
33/* this struct isn't actually defined anywhere */
34struct io_mapping;
35
36#ifdef CONFIG_HAVE_ATOMIC_IOMAP
37
38/*
39 * For small address space machines, mapping large objects
40 * into the kernel virtual space isn't practical. Where
41 * available, use fixmap support to dynamically map pages
42 * of the object at run time.
43 */
44
45static inline struct io_mapping *
46io_mapping_create_wc(unsigned long base, unsigned long size)
47{
48 return (struct io_mapping *) base;
49}
50
51static inline void
52io_mapping_free(struct io_mapping *mapping)
53{
54}
55
56/* Atomic map/unmap */
57static inline void *
58io_mapping_map_atomic_wc(struct io_mapping *mapping, unsigned long offset)
59{
60 offset += (unsigned long) mapping;
61 return iomap_atomic_prot_pfn(offset >> PAGE_SHIFT, KM_USER0,
62 __pgprot(__PAGE_KERNEL_WC));
63}
64
65static inline void
66io_mapping_unmap_atomic(void *vaddr)
67{
68 iounmap_atomic(vaddr, KM_USER0);
69}
70
71static inline void *
72io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset)
73{
74 offset += (unsigned long) mapping;
75 return ioremap_wc(offset, PAGE_SIZE);
76}
77
78static inline void
79io_mapping_unmap(void *vaddr)
80{
81 iounmap(vaddr);
82}
83
84#else
85
86/* Create the io_mapping object*/
87static inline struct io_mapping *
88io_mapping_create_wc(unsigned long base, unsigned long size)
89{
90 return (struct io_mapping *) ioremap_wc(base, size);
91}
92
93static inline void
94io_mapping_free(struct io_mapping *mapping)
95{
96 iounmap(mapping);
97}
98
99/* Atomic map/unmap */
100static inline void *
101io_mapping_map_atomic_wc(struct io_mapping *mapping, unsigned long offset)
102{
103 return ((char *) mapping) + offset;
104}
105
106static inline void
107io_mapping_unmap_atomic(void *vaddr)
108{
109}
110
111/* Non-atomic map/unmap */
112static inline void *
113io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset)
114{
115 return ((char *) mapping) + offset;
116}
117
118static inline void
119io_mapping_unmap(void *vaddr)
120{
121}
122
123#endif /* HAVE_ATOMIC_IOMAP */
124
125#endif /* _LINUX_IO_MAPPING_H */
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/kernel.h b/include/linux/kernel.h
index fba141d3ca07..dc7e0d0a6474 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -318,32 +318,36 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
318 return buf; 318 return buf;
319} 319}
320 320
321#define pr_emerg(fmt, arg...) \ 321#ifndef pr_fmt
322 printk(KERN_EMERG fmt, ##arg) 322#define pr_fmt(fmt) fmt
323#define pr_alert(fmt, arg...) \ 323#endif
324 printk(KERN_ALERT fmt, ##arg) 324
325#define pr_crit(fmt, arg...) \ 325#define pr_emerg(fmt, ...) \
326 printk(KERN_CRIT fmt, ##arg) 326 printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
327#define pr_err(fmt, arg...) \ 327#define pr_alert(fmt, ...) \
328 printk(KERN_ERR fmt, ##arg) 328 printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
329#define pr_warning(fmt, arg...) \ 329#define pr_crit(fmt, ...) \
330 printk(KERN_WARNING fmt, ##arg) 330 printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
331#define pr_notice(fmt, arg...) \ 331#define pr_err(fmt, ...) \
332 printk(KERN_NOTICE fmt, ##arg) 332 printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
333#define pr_info(fmt, arg...) \ 333#define pr_warning(fmt, ...) \
334 printk(KERN_INFO fmt, ##arg) 334 printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
335#define pr_notice(fmt, ...) \
336 printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
337#define pr_info(fmt, ...) \
338 printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
335 339
336/* If you are writing a driver, please use dev_dbg instead */ 340/* If you are writing a driver, please use dev_dbg instead */
337#if defined(CONFIG_DYNAMIC_PRINTK_DEBUG) 341#if defined(CONFIG_DYNAMIC_PRINTK_DEBUG)
338#define pr_debug(fmt, ...) do { \ 342#define pr_debug(fmt, ...) do { \
339 dynamic_pr_debug(fmt, ##__VA_ARGS__); \ 343 dynamic_pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \
340 } while (0) 344 } while (0)
341#elif defined(DEBUG) 345#elif defined(DEBUG)
342#define pr_debug(fmt, arg...) \ 346#define pr_debug(fmt, ...) \
343 printk(KERN_DEBUG fmt, ##arg) 347 printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
344#else 348#else
345#define pr_debug(fmt, arg...) \ 349#define pr_debug(fmt, ...) \
346 ({ if (0) printk(KERN_DEBUG fmt, ##arg); 0; }) 350 ({ if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); 0; })
347#endif 351#endif
348 352
349/* 353/*
diff --git a/include/linux/libata.h b/include/linux/libata.h
index f5441edee55f..ed3f26eb5df1 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -373,6 +373,9 @@ enum {
373 ATA_HORKAGE_IVB = (1 << 8), /* cbl det validity bit bugs */ 373 ATA_HORKAGE_IVB = (1 << 8), /* cbl det validity bit bugs */
374 ATA_HORKAGE_STUCK_ERR = (1 << 9), /* stuck ERR on next PACKET */ 374 ATA_HORKAGE_STUCK_ERR = (1 << 9), /* stuck ERR on next PACKET */
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
377 not multiple of 16 bytes */
378 ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firwmare update warning */
376 379
377 /* DMA mask for user DMA control: User visible values; DO NOT 380 /* DMA mask for user DMA control: User visible values; DO NOT
378 renumber */ 381 renumber */
@@ -696,6 +699,7 @@ struct ata_port {
696 unsigned int cbl; /* cable type; ATA_CBL_xxx */ 699 unsigned int cbl; /* cable type; ATA_CBL_xxx */
697 700
698 struct ata_queued_cmd qcmd[ATA_MAX_QUEUE]; 701 struct ata_queued_cmd qcmd[ATA_MAX_QUEUE];
702 unsigned long qc_allocated;
699 unsigned int qc_active; 703 unsigned int qc_active;
700 int nr_active_links; /* #links with active qcs */ 704 int nr_active_links; /* #links with active qcs */
701 705
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index 331e5f1c2d8e..29aec6e10020 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -331,10 +331,11 @@ static inline void lockdep_on(void)
331# define lock_set_subclass(l, s, i) do { } while (0) 331# define lock_set_subclass(l, s, i) do { } while (0)
332# define lockdep_init() do { } while (0) 332# define lockdep_init() do { } while (0)
333# define lockdep_info() do { } while (0) 333# define lockdep_info() do { } while (0)
334# define lockdep_init_map(lock, name, key, sub) do { (void)(key); } while (0) 334# define lockdep_init_map(lock, name, key, sub) \
335 do { (void)(name); (void)(key); } while (0)
335# define lockdep_set_class(lock, key) do { (void)(key); } while (0) 336# define lockdep_set_class(lock, key) do { (void)(key); } while (0)
336# define lockdep_set_class_and_name(lock, key, name) \ 337# define lockdep_set_class_and_name(lock, key, name) \
337 do { (void)(key); } while (0) 338 do { (void)(key); (void)(name); } while (0)
338#define lockdep_set_class_and_subclass(lock, key, sub) \ 339#define lockdep_set_class_and_subclass(lock, key, sub) \
339 do { (void)(key); } while (0) 340 do { (void)(key); } while (0)
340#define lockdep_set_subclass(lock, sub) do { } while (0) 341#define lockdep_set_subclass(lock, sub) do { } while (0)
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/mfd/wm8350/rtc.h b/include/linux/mfd/wm8350/rtc.h
index dfda69e9f440..24add2bef6c9 100644
--- a/include/linux/mfd/wm8350/rtc.h
+++ b/include/linux/mfd/wm8350/rtc.h
@@ -261,6 +261,8 @@
261 261
262struct wm8350_rtc { 262struct wm8350_rtc {
263 struct platform_device *pdev; 263 struct platform_device *pdev;
264 struct rtc_device *rtc;
265 int alarm_enabled; /* used over suspend/resume */
264}; 266};
265 267
266#endif 268#endif
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/mmc/card.h b/include/linux/mmc/card.h
index ee6e822d5994..403aa505f27e 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -130,7 +130,7 @@ struct mmc_card {
130#define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR) 130#define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR)
131 131
132#define mmc_card_name(c) ((c)->cid.prod_name) 132#define mmc_card_name(c) ((c)->cid.prod_name)
133#define mmc_card_id(c) ((c)->dev.bus_id) 133#define mmc_card_id(c) (dev_name(&(c)->dev))
134 134
135#define mmc_list_to_card(l) container_of(l, struct mmc_card, node) 135#define mmc_list_to_card(l) container_of(l, struct mmc_card, node)
136#define mmc_get_drvdata(c) dev_get_drvdata(&(c)->dev) 136#define mmc_get_drvdata(c) dev_get_drvdata(&(c)->dev)
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index bde891f64591..f842f234e44f 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -176,7 +176,7 @@ static inline void *mmc_priv(struct mmc_host *host)
176 176
177#define mmc_dev(x) ((x)->parent) 177#define mmc_dev(x) ((x)->parent)
178#define mmc_classdev(x) (&(x)->class_dev) 178#define mmc_classdev(x) (&(x)->class_dev)
179#define mmc_hostname(x) ((x)->class_dev.bus_id) 179#define mmc_hostname(x) (dev_name(&(x)->class_dev))
180 180
181extern int mmc_suspend_host(struct mmc_host *, pm_message_t); 181extern int mmc_suspend_host(struct mmc_host *, pm_message_t);
182extern int mmc_resume_host(struct mmc_host *); 182extern int mmc_resume_host(struct mmc_host *);
diff --git a/include/linux/mmc/sdio_func.h b/include/linux/mmc/sdio_func.h
index 07bee4a0d457..451bdfc85830 100644
--- a/include/linux/mmc/sdio_func.h
+++ b/include/linux/mmc/sdio_func.h
@@ -63,7 +63,7 @@ struct sdio_func {
63 63
64#define sdio_func_set_present(f) ((f)->state |= SDIO_STATE_PRESENT) 64#define sdio_func_set_present(f) ((f)->state |= SDIO_STATE_PRESENT)
65 65
66#define sdio_func_id(f) ((f)->dev.bus_id) 66#define sdio_func_id(f) (dev_name(&(f)->dev))
67 67
68#define sdio_get_drvdata(f) dev_get_drvdata(&(f)->dev) 68#define sdio_get_drvdata(f) dev_get_drvdata(&(f)->dev)
69#define sdio_set_drvdata(f,d) dev_set_drvdata(&(f)->dev, d) 69#define sdio_set_drvdata(f,d) dev_set_drvdata(&(f)->dev, d)
diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h
index ba63858056c7..e0a9b207920d 100644
--- a/include/linux/msdos_fs.h
+++ b/include/linux/msdos_fs.h
@@ -46,11 +46,6 @@
46#define DELETED_FLAG 0xe5 /* marks file as deleted when in name[0] */ 46#define DELETED_FLAG 0xe5 /* marks file as deleted when in name[0] */
47#define IS_FREE(n) (!*(n) || *(n) == DELETED_FLAG) 47#define IS_FREE(n) (!*(n) || *(n) == DELETED_FLAG)
48 48
49/* valid file mode bits */
50#define MSDOS_VALID_MODE (S_IFREG | S_IFDIR | S_IRWXU | S_IRWXG | S_IRWXO)
51/* Convert attribute bits and a mask to the UNIX mode. */
52#define MSDOS_MKMODE(a, m) (m & (a & ATTR_RO ? S_IRUGO|S_IXUGO : S_IRWXUGO))
53
54#define MSDOS_NAME 11 /* maximum name length */ 49#define MSDOS_NAME 11 /* maximum name length */
55#define MSDOS_LONGNAME 256 /* maximum name length */ 50#define MSDOS_LONGNAME 256 /* maximum name length */
56#define MSDOS_SLOTS 21 /* max # of slots for short and long names */ 51#define MSDOS_SLOTS 21 /* max # of slots for short and long names */
@@ -167,282 +162,10 @@ struct msdos_dir_slot {
167}; 162};
168 163
169#ifdef __KERNEL__ 164#ifdef __KERNEL__
170
171#include <linux/buffer_head.h>
172#include <linux/string.h>
173#include <linux/nls.h>
174#include <linux/fs.h>
175#include <linux/mutex.h>
176
177/*
178 * vfat shortname flags
179 */
180#define VFAT_SFN_DISPLAY_LOWER 0x0001 /* convert to lowercase for display */
181#define VFAT_SFN_DISPLAY_WIN95 0x0002 /* emulate win95 rule for display */
182#define VFAT_SFN_DISPLAY_WINNT 0x0004 /* emulate winnt rule for display */
183#define VFAT_SFN_CREATE_WIN95 0x0100 /* emulate win95 rule for create */
184#define VFAT_SFN_CREATE_WINNT 0x0200 /* emulate winnt rule for create */
185
186struct fat_mount_options {
187 uid_t fs_uid;
188 gid_t fs_gid;
189 unsigned short fs_fmask;
190 unsigned short fs_dmask;
191 unsigned short codepage; /* Codepage for shortname conversions */
192 char *iocharset; /* Charset used for filename input/display */
193 unsigned short shortname; /* flags for shortname display/create rule */
194 unsigned char name_check; /* r = relaxed, n = normal, s = strict */
195 unsigned short allow_utime;/* permission for setting the [am]time */
196 unsigned quiet:1, /* set = fake successful chmods and chowns */
197 showexec:1, /* set = only set x bit for com/exe/bat */
198 sys_immutable:1, /* set = system files are immutable */
199 dotsOK:1, /* set = hidden and system files are named '.filename' */
200 isvfat:1, /* 0=no vfat long filename support, 1=vfat support */
201 utf8:1, /* Use of UTF-8 character set (Default) */
202 unicode_xlate:1, /* create escape sequences for unhandled Unicode */
203 numtail:1, /* Does first alias have a numeric '~1' type tail? */
204 flush:1, /* write things quickly */
205 nocase:1, /* Does this need case conversion? 0=need case conversion*/
206 usefree:1, /* Use free_clusters for FAT32 */
207 tz_utc:1; /* Filesystem timestamps are in UTC */
208};
209
210#define FAT_HASH_BITS 8
211#define FAT_HASH_SIZE (1UL << FAT_HASH_BITS)
212#define FAT_HASH_MASK (FAT_HASH_SIZE-1)
213
214/*
215 * MS-DOS file system in-core superblock data
216 */
217struct msdos_sb_info {
218 unsigned short sec_per_clus; /* sectors/cluster */
219 unsigned short cluster_bits; /* log2(cluster_size) */
220 unsigned int cluster_size; /* cluster size */
221 unsigned char fats,fat_bits; /* number of FATs, FAT bits (12 or 16) */
222 unsigned short fat_start;
223 unsigned long fat_length; /* FAT start & length (sec.) */
224 unsigned long dir_start;
225 unsigned short dir_entries; /* root dir start & entries */
226 unsigned long data_start; /* first data sector */
227 unsigned long max_cluster; /* maximum cluster number */
228 unsigned long root_cluster; /* first cluster of the root directory */
229 unsigned long fsinfo_sector; /* sector number of FAT32 fsinfo */
230 struct mutex fat_lock;
231 unsigned int prev_free; /* previously allocated cluster number */
232 unsigned int free_clusters; /* -1 if undefined */
233 unsigned int free_clus_valid; /* is free_clusters valid? */
234 struct fat_mount_options options;
235 struct nls_table *nls_disk; /* Codepage used on disk */
236 struct nls_table *nls_io; /* Charset used for input and display */
237 const void *dir_ops; /* Opaque; default directory operations */
238 int dir_per_block; /* dir entries per block */
239 int dir_per_block_bits; /* log2(dir_per_block) */
240
241 int fatent_shift;
242 struct fatent_operations *fatent_ops;
243
244 spinlock_t inode_hash_lock;
245 struct hlist_head inode_hashtable[FAT_HASH_SIZE];
246};
247
248#define FAT_CACHE_VALID 0 /* special case for valid cache */
249
250/*
251 * MS-DOS file system inode data in memory
252 */
253struct msdos_inode_info {
254 spinlock_t cache_lru_lock;
255 struct list_head cache_lru;
256 int nr_caches;
257 /* for avoiding the race between fat_free() and fat_get_cluster() */
258 unsigned int cache_valid_id;
259
260 loff_t mmu_private;
261 int i_start; /* first cluster or 0 */
262 int i_logstart; /* logical first cluster */
263 int i_attrs; /* unused attribute bits */
264 loff_t i_pos; /* on-disk position of directory entry or 0 */
265 struct hlist_node i_fat_hash; /* hash by i_location */
266 struct inode vfs_inode;
267};
268
269struct fat_slot_info {
270 loff_t i_pos; /* on-disk position of directory entry */
271 loff_t slot_off; /* offset for slot or de start */
272 int nr_slots; /* number of slots + 1(de) in filename */
273 struct msdos_dir_entry *de;
274 struct buffer_head *bh;
275};
276
277static inline struct msdos_sb_info *MSDOS_SB(struct super_block *sb)
278{
279 return sb->s_fs_info;
280}
281
282static inline struct msdos_inode_info *MSDOS_I(struct inode *inode)
283{
284 return container_of(inode, struct msdos_inode_info, vfs_inode);
285}
286
287/* Return the FAT attribute byte for this inode */
288static inline u8 fat_attr(struct inode *inode)
289{
290 return ((inode->i_mode & S_IWUGO) ? ATTR_NONE : ATTR_RO) |
291 (S_ISDIR(inode->i_mode) ? ATTR_DIR : ATTR_NONE) |
292 MSDOS_I(inode)->i_attrs;
293}
294
295static inline unsigned char fat_checksum(const __u8 *name)
296{
297 unsigned char s = name[0];
298 s = (s<<7) + (s>>1) + name[1]; s = (s<<7) + (s>>1) + name[2];
299 s = (s<<7) + (s>>1) + name[3]; s = (s<<7) + (s>>1) + name[4];
300 s = (s<<7) + (s>>1) + name[5]; s = (s<<7) + (s>>1) + name[6];
301 s = (s<<7) + (s>>1) + name[7]; s = (s<<7) + (s>>1) + name[8];
302 s = (s<<7) + (s>>1) + name[9]; s = (s<<7) + (s>>1) + name[10];
303 return s;
304}
305
306static inline sector_t fat_clus_to_blknr(struct msdos_sb_info *sbi, int clus)
307{
308 return ((sector_t)clus - FAT_START_ENT) * sbi->sec_per_clus
309 + sbi->data_start;
310}
311
312static inline void fat16_towchar(wchar_t *dst, const __u8 *src, size_t len)
313{
314#ifdef __BIG_ENDIAN
315 while (len--) {
316 *dst++ = src[0] | (src[1] << 8);
317 src += 2;
318 }
319#else
320 memcpy(dst, src, len * 2);
321#endif
322}
323
324static inline void fatwchar_to16(__u8 *dst, const wchar_t *src, size_t len)
325{
326#ifdef __BIG_ENDIAN
327 while (len--) {
328 dst[0] = *src & 0x00FF;
329 dst[1] = (*src & 0xFF00) >> 8;
330 dst += 2;
331 src++;
332 }
333#else
334 memcpy(dst, src, len * 2);
335#endif
336}
337
338/* media of boot sector */ 165/* media of boot sector */
339static inline int fat_valid_media(u8 media) 166static inline int fat_valid_media(u8 media)
340{ 167{
341 return 0xf8 <= media || media == 0xf0; 168 return 0xf8 <= media || media == 0xf0;
342} 169}
343 170#endif /* !__KERNEL__ */
344/* fat/cache.c */ 171#endif /* !_LINUX_MSDOS_FS_H */
345extern void fat_cache_inval_inode(struct inode *inode);
346extern int fat_get_cluster(struct inode *inode, int cluster,
347 int *fclus, int *dclus);
348extern int fat_bmap(struct inode *inode, sector_t sector, sector_t *phys,
349 unsigned long *mapped_blocks);
350
351/* fat/dir.c */
352extern const struct file_operations fat_dir_operations;
353extern int fat_search_long(struct inode *inode, const unsigned char *name,
354 int name_len, struct fat_slot_info *sinfo);
355extern int fat_dir_empty(struct inode *dir);
356extern int fat_subdirs(struct inode *dir);
357extern int fat_scan(struct inode *dir, const unsigned char *name,
358 struct fat_slot_info *sinfo);
359extern int fat_get_dotdot_entry(struct inode *dir, struct buffer_head **bh,
360 struct msdos_dir_entry **de, loff_t *i_pos);
361extern int fat_alloc_new_dir(struct inode *dir, struct timespec *ts);
362extern int fat_add_entries(struct inode *dir, void *slots, int nr_slots,
363 struct fat_slot_info *sinfo);
364extern int fat_remove_entries(struct inode *dir, struct fat_slot_info *sinfo);
365
366/* fat/fatent.c */
367struct fat_entry {
368 int entry;
369 union {
370 u8 *ent12_p[2];
371 __le16 *ent16_p;
372 __le32 *ent32_p;
373 } u;
374 int nr_bhs;
375 struct buffer_head *bhs[2];
376};
377
378static inline void fatent_init(struct fat_entry *fatent)
379{
380 fatent->nr_bhs = 0;
381 fatent->entry = 0;
382 fatent->u.ent32_p = NULL;
383 fatent->bhs[0] = fatent->bhs[1] = NULL;
384}
385
386static inline void fatent_set_entry(struct fat_entry *fatent, int entry)
387{
388 fatent->entry = entry;
389 fatent->u.ent32_p = NULL;
390}
391
392static inline void fatent_brelse(struct fat_entry *fatent)
393{
394 int i;
395 fatent->u.ent32_p = NULL;
396 for (i = 0; i < fatent->nr_bhs; i++)
397 brelse(fatent->bhs[i]);
398 fatent->nr_bhs = 0;
399 fatent->bhs[0] = fatent->bhs[1] = NULL;
400}
401
402extern void fat_ent_access_init(struct super_block *sb);
403extern int fat_ent_read(struct inode *inode, struct fat_entry *fatent,
404 int entry);
405extern int fat_ent_write(struct inode *inode, struct fat_entry *fatent,
406 int new, int wait);
407extern int fat_alloc_clusters(struct inode *inode, int *cluster,
408 int nr_cluster);
409extern int fat_free_clusters(struct inode *inode, int cluster);
410extern int fat_count_free_clusters(struct super_block *sb);
411
412/* fat/file.c */
413extern int fat_generic_ioctl(struct inode *inode, struct file *filp,
414 unsigned int cmd, unsigned long arg);
415extern const struct file_operations fat_file_operations;
416extern const struct inode_operations fat_file_inode_operations;
417extern int fat_setattr(struct dentry * dentry, struct iattr * attr);
418extern void fat_truncate(struct inode *inode);
419extern int fat_getattr(struct vfsmount *mnt, struct dentry *dentry,
420 struct kstat *stat);
421
422/* fat/inode.c */
423extern void fat_attach(struct inode *inode, loff_t i_pos);
424extern void fat_detach(struct inode *inode);
425extern struct inode *fat_iget(struct super_block *sb, loff_t i_pos);
426extern struct inode *fat_build_inode(struct super_block *sb,
427 struct msdos_dir_entry *de, loff_t i_pos);
428extern int fat_sync_inode(struct inode *inode);
429extern int fat_fill_super(struct super_block *sb, void *data, int silent,
430 const struct inode_operations *fs_dir_inode_ops, int isvfat);
431
432extern int fat_flush_inodes(struct super_block *sb, struct inode *i1,
433 struct inode *i2);
434/* fat/misc.c */
435extern void fat_fs_panic(struct super_block *s, const char *fmt, ...);
436extern void fat_clusters_flush(struct super_block *sb);
437extern int fat_chain_add(struct inode *inode, int new_dclus, int nr_cluster);
438extern int date_dos2unix(unsigned short time, unsigned short date, int tz_utc);
439extern void fat_date_unix2dos(int unix_date, __le16 *time, __le16 *date,
440 int tz_utc);
441extern int fat_sync_bhs(struct buffer_head **bhs, int nr_bhs);
442
443int fat_cache_init(void);
444void fat_cache_destroy(void);
445
446#endif /* __KERNEL__ */
447
448#endif
diff --git a/include/linux/mtd/cfi.h b/include/linux/mtd/cfi.h
index ee5124ec319e..00e2b575021f 100644
--- a/include/linux/mtd/cfi.h
+++ b/include/linux/mtd/cfi.h
@@ -282,9 +282,25 @@ struct cfi_private {
282/* 282/*
283 * Returns the command address according to the given geometry. 283 * Returns the command address according to the given geometry.
284 */ 284 */
285static inline uint32_t cfi_build_cmd_addr(uint32_t cmd_ofs, int interleave, int type) 285static inline uint32_t cfi_build_cmd_addr(uint32_t cmd_ofs,
286 struct map_info *map, struct cfi_private *cfi)
286{ 287{
287 return (cmd_ofs * type) * interleave; 288 unsigned bankwidth = map_bankwidth(map);
289 unsigned interleave = cfi_interleave(cfi);
290 unsigned type = cfi->device_type;
291 uint32_t addr;
292
293 addr = (cmd_ofs * type) * interleave;
294
295 /* Modify the unlock address if we are in compatiblity mode.
296 * For 16bit devices on 8 bit busses
297 * and 32bit devices on 16 bit busses
298 * set the low bit of the alternating bit sequence of the address.
299 */
300 if (((type * interleave) > bankwidth) && ((uint8_t)cmd_ofs == 0xaa))
301 addr |= (type >> 1)*interleave;
302
303 return addr;
288} 304}
289 305
290/* 306/*
@@ -430,7 +446,7 @@ static inline uint32_t cfi_send_gen_cmd(u_char cmd, uint32_t cmd_addr, uint32_t
430 int type, map_word *prev_val) 446 int type, map_word *prev_val)
431{ 447{
432 map_word val; 448 map_word val;
433 uint32_t addr = base + cfi_build_cmd_addr(cmd_addr, cfi_interleave(cfi), type); 449 uint32_t addr = base + cfi_build_cmd_addr(cmd_addr, map, cfi);
434 val = cfi_build_cmd(cmd, map, cfi); 450 val = cfi_build_cmd(cmd, map, cfi);
435 451
436 if (prev_val) 452 if (prev_val)
diff --git a/include/linux/net.h b/include/linux/net.h
index 6dc14a240042..4515efae4c39 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -40,7 +40,7 @@
40#define SYS_GETSOCKOPT 15 /* sys_getsockopt(2) */ 40#define SYS_GETSOCKOPT 15 /* sys_getsockopt(2) */
41#define SYS_SENDMSG 16 /* sys_sendmsg(2) */ 41#define SYS_SENDMSG 16 /* sys_sendmsg(2) */
42#define SYS_RECVMSG 17 /* sys_recvmsg(2) */ 42#define SYS_RECVMSG 17 /* sys_recvmsg(2) */
43#define SYS_PACCEPT 18 /* sys_paccept(2) */ 43#define SYS_ACCEPT4 18 /* sys_accept4(2) */
44 44
45typedef enum { 45typedef enum {
46 SS_FREE = 0, /* not allocated */ 46 SS_FREE = 0, /* not allocated */
@@ -100,7 +100,7 @@ enum sock_type {
100 * remaining bits are used as flags. */ 100 * remaining bits are used as flags. */
101#define SOCK_TYPE_MASK 0xf 101#define SOCK_TYPE_MASK 0xf
102 102
103/* Flags for socket, socketpair, paccept */ 103/* Flags for socket, socketpair, accept4 */
104#define SOCK_CLOEXEC O_CLOEXEC 104#define SOCK_CLOEXEC O_CLOEXEC
105#ifndef SOCK_NONBLOCK 105#ifndef SOCK_NONBLOCK
106#define SOCK_NONBLOCK O_NONBLOCK 106#define SOCK_NONBLOCK O_NONBLOCK
@@ -223,8 +223,6 @@ extern int sock_map_fd(struct socket *sock, int flags);
223extern struct socket *sockfd_lookup(int fd, int *err); 223extern struct socket *sockfd_lookup(int fd, int *err);
224#define sockfd_put(sock) fput(sock->file) 224#define sockfd_put(sock) fput(sock->file)
225extern int net_ratelimit(void); 225extern int net_ratelimit(void);
226extern long do_accept(int fd, struct sockaddr __user *upeer_sockaddr,
227 int __user *upeer_addrlen, int flags);
228 226
229#define net_random() random32() 227#define net_random() random32()
230#define net_srandom(seed) srandom32((__force u32)seed) 228#define net_srandom(seed) srandom32((__force u32)seed)
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/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/pci.h b/include/linux/pci.h
index c75b82bda327..feb4657bb043 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1136,7 +1136,7 @@ static inline void pci_mmcfg_late_init(void) { }
1136#endif 1136#endif
1137 1137
1138#ifdef CONFIG_HAS_IOMEM 1138#ifdef CONFIG_HAS_IOMEM
1139static inline void * pci_ioremap_bar(struct pci_dev *pdev, int bar) 1139static inline void __iomem *pci_ioremap_bar(struct pci_dev *pdev, int bar)
1140{ 1140{
1141 /* 1141 /*
1142 * Make sure the BAR is actually a memory resource, not an IO resource 1142 * Make sure the BAR is actually a memory resource, not an IO resource
diff --git a/include/linux/ratelimit.h b/include/linux/ratelimit.h
index 18a5b9ba9d40..00044b856453 100644
--- a/include/linux/ratelimit.h
+++ b/include/linux/ratelimit.h
@@ -17,11 +17,4 @@ struct ratelimit_state {
17 struct ratelimit_state name = {interval, burst,} 17 struct ratelimit_state name = {interval, burst,}
18 18
19extern int __ratelimit(struct ratelimit_state *rs); 19extern int __ratelimit(struct ratelimit_state *rs);
20
21static inline int ratelimit(void)
22{
23 static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL,
24 DEFAULT_RATELIMIT_BURST);
25 return __ratelimit(&rs);
26}
27#endif 20#endif
diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h
index 536b0ca46a03..e097c2e6b6dc 100644
--- a/include/linux/ring_buffer.h
+++ b/include/linux/ring_buffer.h
@@ -120,6 +120,9 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer);
120u64 ring_buffer_time_stamp(int cpu); 120u64 ring_buffer_time_stamp(int cpu);
121void ring_buffer_normalize_time_stamp(int cpu, u64 *ts); 121void ring_buffer_normalize_time_stamp(int cpu, u64 *ts);
122 122
123void tracing_on(void);
124void tracing_off(void);
125
123enum ring_buffer_flags { 126enum ring_buffer_flags {
124 RB_FL_OVERWRITE = 1 << 0, 127 RB_FL_OVERWRITE = 1 << 0,
125}; 128};
diff --git a/include/linux/sched.h b/include/linux/sched.h
index b483f39a7112..55e30d114477 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -247,6 +247,7 @@ extern void init_idle(struct task_struct *idle, int cpu);
247extern void init_idle_bootup_task(struct task_struct *idle); 247extern void init_idle_bootup_task(struct task_struct *idle);
248 248
249extern int runqueue_is_locked(void); 249extern int runqueue_is_locked(void);
250extern void task_rq_unlock_wait(struct task_struct *p);
250 251
251extern cpumask_t nohz_cpu_mask; 252extern cpumask_t nohz_cpu_mask;
252#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ) 253#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ)
@@ -629,6 +630,10 @@ struct user_struct {
629 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? */
630 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? */
631#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
632#ifdef CONFIG_POSIX_MQUEUE 637#ifdef CONFIG_POSIX_MQUEUE
633 /* protected by mq_lock */ 638 /* protected by mq_lock */
634 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? */
@@ -1349,6 +1354,8 @@ struct task_struct {
1349 */ 1354 */
1350 unsigned long timer_slack_ns; 1355 unsigned long timer_slack_ns;
1351 unsigned long default_timer_slack_ns; 1356 unsigned long default_timer_slack_ns;
1357
1358 struct list_head *scm_work_list;
1352}; 1359};
1353 1360
1354/* 1361/*
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/serial_core.h b/include/linux/serial_core.h
index e27f216361fc..4e4f1277f3bf 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -155,6 +155,9 @@
155 155
156#define PORT_SC26XX 82 156#define PORT_SC26XX 82
157 157
158/* SH-SCI */
159#define PORT_SCIFA 83
160
158#ifdef __KERNEL__ 161#ifdef __KERNEL__
159 162
160#include <linux/compiler.h> 163#include <linux/compiler.h>
diff --git a/include/linux/slab.h b/include/linux/slab.h
index ba965c84ae06..000da12b5cf0 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -23,6 +23,34 @@
23#define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */ 23#define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
24#define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */ 24#define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
25#define SLAB_PANIC 0x00040000UL /* Panic if kmem_cache_create() fails */ 25#define SLAB_PANIC 0x00040000UL /* Panic if kmem_cache_create() fails */
26/*
27 * SLAB_DESTROY_BY_RCU - **WARNING** READ THIS!
28 *
29 * This delays freeing the SLAB page by a grace period, it does _NOT_
30 * delay object freeing. This means that if you do kmem_cache_free()
31 * that memory location is free to be reused at any time. Thus it may
32 * be possible to see another object there in the same RCU grace period.
33 *
34 * This feature only ensures the memory location backing the object
35 * stays valid, the trick to using this is relying on an independent
36 * object validation pass. Something like:
37 *
38 * rcu_read_lock()
39 * again:
40 * obj = lockless_lookup(key);
41 * if (obj) {
42 * if (!try_get_ref(obj)) // might fail for free objects
43 * goto again;
44 *
45 * if (obj->key != key) { // not the object we expected
46 * put_ref(obj);
47 * goto again;
48 * }
49 * }
50 * rcu_read_unlock();
51 *
52 * See also the comment on struct slab_rcu in mm/slab.c.
53 */
26#define SLAB_DESTROY_BY_RCU 0x00080000UL /* Defer freeing slabs to RCU */ 54#define SLAB_DESTROY_BY_RCU 0x00080000UL /* Defer freeing slabs to RCU */
27#define SLAB_MEM_SPREAD 0x00100000UL /* Spread some memory over cpuset */ 55#define SLAB_MEM_SPREAD 0x00100000UL /* Spread some memory over cpuset */
28#define SLAB_TRACE 0x00200000UL /* Trace allocations and frees */ 56#define SLAB_TRACE 0x00200000UL /* Trace allocations and frees */
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 2e4d58b26c06..6e7ba16ff454 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -64,8 +64,17 @@ extern void smp_cpus_done(unsigned int max_cpus);
64 * Call a function on all other processors 64 * Call a function on all other processors
65 */ 65 */
66int smp_call_function(void(*func)(void *info), void *info, int wait); 66int smp_call_function(void(*func)(void *info), void *info, int wait);
67/* Deprecated: use smp_call_function_many() which uses a cpumask ptr. */
67int smp_call_function_mask(cpumask_t mask, void(*func)(void *info), void *info, 68int smp_call_function_mask(cpumask_t mask, void(*func)(void *info), void *info,
68 int wait); 69 int wait);
70
71static inline void smp_call_function_many(const struct cpumask *mask,
72 void (*func)(void *info), void *info,
73 int wait)
74{
75 smp_call_function_mask(*mask, func, info, wait);
76}
77
69int smp_call_function_single(int cpuid, void (*func) (void *info), void *info, 78int smp_call_function_single(int cpuid, void (*func) (void *info), void *info,
70 int wait); 79 int wait);
71void __smp_call_function_single(int cpuid, struct call_single_data *data); 80void __smp_call_function_single(int cpuid, struct call_single_data *data);
@@ -137,6 +146,8 @@ static inline void smp_send_reschedule(int cpu) { }
137}) 146})
138#define smp_call_function_mask(mask, func, info, wait) \ 147#define smp_call_function_mask(mask, func, info, wait) \
139 (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))
140static inline void init_call_single_data(void) 151static inline void init_call_single_data(void)
141{ 152{
142} 153}
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index e530026eedf7..17d9b58f6379 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -427,12 +427,16 @@ static inline int ssb_dma_mapping_error(struct ssb_device *dev, dma_addr_t addr)
427{ 427{
428 switch (dev->bus->bustype) { 428 switch (dev->bus->bustype) {
429 case SSB_BUSTYPE_PCI: 429 case SSB_BUSTYPE_PCI:
430#ifdef CONFIG_SSB_PCIHOST
430 return pci_dma_mapping_error(dev->bus->host_pci, addr); 431 return pci_dma_mapping_error(dev->bus->host_pci, addr);
432#endif
433 break;
431 case SSB_BUSTYPE_SSB: 434 case SSB_BUSTYPE_SSB:
432 return dma_mapping_error(dev->dev, addr); 435 return dma_mapping_error(dev->dev, addr);
433 default: 436 default:
434 __ssb_dma_not_implemented(dev); 437 break;
435 } 438 }
439 __ssb_dma_not_implemented(dev);
436 return -ENOSYS; 440 return -ENOSYS;
437} 441}
438 442
@@ -441,12 +445,16 @@ static inline dma_addr_t ssb_dma_map_single(struct ssb_device *dev, void *p,
441{ 445{
442 switch (dev->bus->bustype) { 446 switch (dev->bus->bustype) {
443 case SSB_BUSTYPE_PCI: 447 case SSB_BUSTYPE_PCI:
448#ifdef CONFIG_SSB_PCIHOST
444 return pci_map_single(dev->bus->host_pci, p, size, dir); 449 return pci_map_single(dev->bus->host_pci, p, size, dir);
450#endif
451 break;
445 case SSB_BUSTYPE_SSB: 452 case SSB_BUSTYPE_SSB:
446 return dma_map_single(dev->dev, p, size, dir); 453 return dma_map_single(dev->dev, p, size, dir);
447 default: 454 default:
448 __ssb_dma_not_implemented(dev); 455 break;
449 } 456 }
457 __ssb_dma_not_implemented(dev);
450 return 0; 458 return 0;
451} 459}
452 460
@@ -455,14 +463,18 @@ static inline void ssb_dma_unmap_single(struct ssb_device *dev, dma_addr_t dma_a
455{ 463{
456 switch (dev->bus->bustype) { 464 switch (dev->bus->bustype) {
457 case SSB_BUSTYPE_PCI: 465 case SSB_BUSTYPE_PCI:
466#ifdef CONFIG_SSB_PCIHOST
458 pci_unmap_single(dev->bus->host_pci, dma_addr, size, dir); 467 pci_unmap_single(dev->bus->host_pci, dma_addr, size, dir);
459 return; 468 return;
469#endif
470 break;
460 case SSB_BUSTYPE_SSB: 471 case SSB_BUSTYPE_SSB:
461 dma_unmap_single(dev->dev, dma_addr, size, dir); 472 dma_unmap_single(dev->dev, dma_addr, size, dir);
462 return; 473 return;
463 default: 474 default:
464 __ssb_dma_not_implemented(dev); 475 break;
465 } 476 }
477 __ssb_dma_not_implemented(dev);
466} 478}
467 479
468static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev, 480static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev,
@@ -472,15 +484,19 @@ static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev,
472{ 484{
473 switch (dev->bus->bustype) { 485 switch (dev->bus->bustype) {
474 case SSB_BUSTYPE_PCI: 486 case SSB_BUSTYPE_PCI:
487#ifdef CONFIG_SSB_PCIHOST
475 pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr, 488 pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr,
476 size, dir); 489 size, dir);
477 return; 490 return;
491#endif
492 break;
478 case SSB_BUSTYPE_SSB: 493 case SSB_BUSTYPE_SSB:
479 dma_sync_single_for_cpu(dev->dev, dma_addr, size, dir); 494 dma_sync_single_for_cpu(dev->dev, dma_addr, size, dir);
480 return; 495 return;
481 default: 496 default:
482 __ssb_dma_not_implemented(dev); 497 break;
483 } 498 }
499 __ssb_dma_not_implemented(dev);
484} 500}
485 501
486static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev, 502static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev,
@@ -490,15 +506,19 @@ static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev,
490{ 506{
491 switch (dev->bus->bustype) { 507 switch (dev->bus->bustype) {
492 case SSB_BUSTYPE_PCI: 508 case SSB_BUSTYPE_PCI:
509#ifdef CONFIG_SSB_PCIHOST
493 pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr, 510 pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr,
494 size, dir); 511 size, dir);
495 return; 512 return;
513#endif
514 break;
496 case SSB_BUSTYPE_SSB: 515 case SSB_BUSTYPE_SSB:
497 dma_sync_single_for_device(dev->dev, dma_addr, size, dir); 516 dma_sync_single_for_device(dev->dev, dma_addr, size, dir);
498 return; 517 return;
499 default: 518 default:
500 __ssb_dma_not_implemented(dev); 519 break;
501 } 520 }
521 __ssb_dma_not_implemented(dev);
502} 522}
503 523
504static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev, 524static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev,
@@ -509,17 +529,21 @@ static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev,
509{ 529{
510 switch (dev->bus->bustype) { 530 switch (dev->bus->bustype) {
511 case SSB_BUSTYPE_PCI: 531 case SSB_BUSTYPE_PCI:
532#ifdef CONFIG_SSB_PCIHOST
512 /* Just sync everything. That's all the PCI API can do. */ 533 /* Just sync everything. That's all the PCI API can do. */
513 pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr, 534 pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr,
514 offset + size, dir); 535 offset + size, dir);
515 return; 536 return;
537#endif
538 break;
516 case SSB_BUSTYPE_SSB: 539 case SSB_BUSTYPE_SSB:
517 dma_sync_single_range_for_cpu(dev->dev, dma_addr, offset, 540 dma_sync_single_range_for_cpu(dev->dev, dma_addr, offset,
518 size, dir); 541 size, dir);
519 return; 542 return;
520 default: 543 default:
521 __ssb_dma_not_implemented(dev); 544 break;
522 } 545 }
546 __ssb_dma_not_implemented(dev);
523} 547}
524 548
525static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev, 549static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev,
@@ -530,17 +554,21 @@ static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev,
530{ 554{
531 switch (dev->bus->bustype) { 555 switch (dev->bus->bustype) {
532 case SSB_BUSTYPE_PCI: 556 case SSB_BUSTYPE_PCI:
557#ifdef CONFIG_SSB_PCIHOST
533 /* Just sync everything. That's all the PCI API can do. */ 558 /* Just sync everything. That's all the PCI API can do. */
534 pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr, 559 pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr,
535 offset + size, dir); 560 offset + size, dir);
536 return; 561 return;
562#endif
563 break;
537 case SSB_BUSTYPE_SSB: 564 case SSB_BUSTYPE_SSB:
538 dma_sync_single_range_for_device(dev->dev, dma_addr, offset, 565 dma_sync_single_range_for_device(dev->dev, dma_addr, offset,
539 size, dir); 566 size, dir);
540 return; 567 return;
541 default: 568 default:
542 __ssb_dma_not_implemented(dev); 569 break;
543 } 570 }
571 __ssb_dma_not_implemented(dev);
544} 572}
545 573
546 574
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index d6ff145919ca..04fb47bfb920 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -410,8 +410,7 @@ asmlinkage long sys_getsockopt(int fd, int level, int optname,
410asmlinkage long sys_bind(int, struct sockaddr __user *, int); 410asmlinkage long sys_bind(int, struct sockaddr __user *, int);
411asmlinkage long sys_connect(int, struct sockaddr __user *, int); 411asmlinkage long sys_connect(int, struct sockaddr __user *, int);
412asmlinkage long sys_accept(int, struct sockaddr __user *, int __user *); 412asmlinkage long sys_accept(int, struct sockaddr __user *, int __user *);
413asmlinkage long sys_paccept(int, struct sockaddr __user *, int __user *, 413asmlinkage long sys_accept4(int, struct sockaddr __user *, int __user *, int);
414 const __user sigset_t *, size_t, int);
415asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *); 414asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *);
416asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *); 415asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *);
417asmlinkage long sys_send(int, void __user *, size_t, unsigned); 416asmlinkage long sys_send(int, void __user *, size_t, unsigned);
diff --git a/include/linux/telephony.h b/include/linux/telephony.h
index 5b2b6261f193..f63afe330add 100644
--- a/include/linux/telephony.h
+++ b/include/linux/telephony.h
@@ -14,7 +14,7 @@
14 * Authors: Ed Okerson, <eokerson@quicknet.net> 14 * Authors: Ed Okerson, <eokerson@quicknet.net>
15 * Greg Herlein, <gherlein@quicknet.net> 15 * Greg Herlein, <gherlein@quicknet.net>
16 * 16 *
17 * Contributors: Alan Cox, <alan@redhat.com> 17 * Contributors: Alan Cox, <alan@lxorguk.ukuu.org.uk>
18 * David W. Erhart, <derhart@quicknet.net> 18 * David W. Erhart, <derhart@quicknet.net>
19 * 19 *
20 * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR 20 * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR
diff --git a/include/linux/timer.h b/include/linux/timer.h
index d4ba79248a27..daf9685b861c 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -186,4 +186,9 @@ unsigned long __round_jiffies_relative(unsigned long j, int cpu);
186unsigned long round_jiffies(unsigned long j); 186unsigned long round_jiffies(unsigned long j);
187unsigned long round_jiffies_relative(unsigned long j); 187unsigned long round_jiffies_relative(unsigned long j);
188 188
189unsigned long __round_jiffies_up(unsigned long j, int cpu);
190unsigned long __round_jiffies_up_relative(unsigned long j, int cpu);
191unsigned long round_jiffies_up(unsigned long j);
192unsigned long round_jiffies_up_relative(unsigned long j);
193
189#endif 194#endif
diff --git a/include/linux/topology.h b/include/linux/topology.h
index 2158fc0d5a56..117f1b7405cf 100644
--- a/include/linux/topology.h
+++ b/include/linux/topology.h
@@ -99,7 +99,7 @@ void arch_update_cpu_topology(void);
99 | SD_BALANCE_FORK \ 99 | SD_BALANCE_FORK \
100 | SD_BALANCE_EXEC \ 100 | SD_BALANCE_EXEC \
101 | SD_WAKE_AFFINE \ 101 | SD_WAKE_AFFINE \
102 | SD_WAKE_IDLE \ 102 | SD_WAKE_BALANCE \
103 | SD_SHARE_CPUPOWER, \ 103 | SD_SHARE_CPUPOWER, \
104 .last_balance = jiffies, \ 104 .last_balance = jiffies, \
105 .balance_interval = 1, \ 105 .balance_interval = 1, \
@@ -120,10 +120,10 @@ void arch_update_cpu_topology(void);
120 .wake_idx = 1, \ 120 .wake_idx = 1, \
121 .forkexec_idx = 1, \ 121 .forkexec_idx = 1, \
122 .flags = SD_LOAD_BALANCE \ 122 .flags = SD_LOAD_BALANCE \
123 | SD_BALANCE_NEWIDLE \
124 | SD_BALANCE_FORK \ 123 | SD_BALANCE_FORK \
125 | SD_BALANCE_EXEC \ 124 | SD_BALANCE_EXEC \
126 | SD_WAKE_AFFINE \ 125 | SD_WAKE_AFFINE \
126 | SD_WAKE_BALANCE \
127 | SD_SHARE_PKG_RESOURCES\ 127 | SD_SHARE_PKG_RESOURCES\
128 | BALANCE_FOR_MC_POWER, \ 128 | BALANCE_FOR_MC_POWER, \
129 .last_balance = jiffies, \ 129 .last_balance = jiffies, \
@@ -146,10 +146,10 @@ void arch_update_cpu_topology(void);
146 .wake_idx = 1, \ 146 .wake_idx = 1, \
147 .forkexec_idx = 1, \ 147 .forkexec_idx = 1, \
148 .flags = SD_LOAD_BALANCE \ 148 .flags = SD_LOAD_BALANCE \
149 | SD_BALANCE_NEWIDLE \
150 | SD_BALANCE_FORK \
151 | SD_BALANCE_EXEC \ 149 | SD_BALANCE_EXEC \
150 | SD_BALANCE_FORK \
152 | SD_WAKE_AFFINE \ 151 | SD_WAKE_AFFINE \
152 | SD_WAKE_BALANCE \
153 | BALANCE_FOR_PKG_POWER,\ 153 | BALANCE_FOR_PKG_POWER,\
154 .last_balance = jiffies, \ 154 .last_balance = jiffies, \
155 .balance_interval = 1, \ 155 .balance_interval = 1, \
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 8fa973bede5e..f72aa51f7bcd 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -108,6 +108,7 @@ enum usb_interface_condition {
108 * (in probe()), bound to a driver, or unbinding (in disconnect()) 108 * (in probe()), bound to a driver, or unbinding (in disconnect())
109 * @is_active: flag set when the interface is bound and not suspended. 109 * @is_active: flag set when the interface is bound and not suspended.
110 * @sysfs_files_created: sysfs attributes exist 110 * @sysfs_files_created: sysfs attributes exist
111 * @unregistering: flag set when the interface is being unregistered
111 * @needs_remote_wakeup: flag set when the driver requires remote-wakeup 112 * @needs_remote_wakeup: flag set when the driver requires remote-wakeup
112 * capability during autosuspend. 113 * capability during autosuspend.
113 * @needs_altsetting0: flag set when a set-interface request for altsetting 0 114 * @needs_altsetting0: flag set when a set-interface request for altsetting 0
@@ -163,6 +164,7 @@ struct usb_interface {
163 enum usb_interface_condition condition; /* state of binding */ 164 enum usb_interface_condition condition; /* state of binding */
164 unsigned is_active:1; /* the interface is not suspended */ 165 unsigned is_active:1; /* the interface is not suspended */
165 unsigned sysfs_files_created:1; /* the sysfs attributes exist */ 166 unsigned sysfs_files_created:1; /* the sysfs attributes exist */
167 unsigned unregistering:1; /* unregistration is in progress */
166 unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */ 168 unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */
167 unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */ 169 unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */
168 unsigned needs_binding:1; /* needs delayed unbind/rebind */ 170 unsigned needs_binding:1; /* needs delayed unbind/rebind */
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/linux/workqueue.h b/include/linux/workqueue.h
index 89a5a1231ffb..b36291130f22 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -240,4 +240,12 @@ void cancel_rearming_delayed_work(struct delayed_work *work)
240 cancel_delayed_work_sync(work); 240 cancel_delayed_work_sync(work);
241} 241}
242 242
243#ifndef CONFIG_SMP
244static inline long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg)
245{
246 return fn(arg);
247}
248#else
249long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg);
250#endif /* CONFIG_SMP */
243#endif 251#endif
diff --git a/include/net/af_unix.h b/include/net/af_unix.h
index 7dd29b7e461d..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
@@ -54,6 +55,7 @@ struct unix_sock {
54 atomic_long_t inflight; 55 atomic_long_t inflight;
55 spinlock_t lock; 56 spinlock_t lock;
56 unsigned int gc_candidate : 1; 57 unsigned int gc_candidate : 1;
58 unsigned int gc_maybe_cycle : 1;
57 wait_queue_head_t peer_wait; 59 wait_queue_head_t peer_wait;
58}; 60};
59#define unix_sk(__sk) ((struct unix_sock *)__sk) 61#define unix_sk(__sk) ((struct unix_sock *)__sk)
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 8856e2d60e9f..73d81bc6aa75 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -74,14 +74,6 @@
74 */ 74 */
75 75
76/** 76/**
77 * enum ieee80211_notification_type - Low level driver notification
78 * @IEEE80211_NOTIFY_RE_ASSOC: start the re-association sequence
79 */
80enum ieee80211_notification_types {
81 IEEE80211_NOTIFY_RE_ASSOC,
82};
83
84/**
85 * struct ieee80211_ht_bss_info - describing BSS's HT characteristics 77 * struct ieee80211_ht_bss_info - describing BSS's HT characteristics
86 * 78 *
87 * This structure describes most essential parameters needed 79 * This structure describes most essential parameters needed
@@ -1798,18 +1790,6 @@ void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra,
1798 u16 tid); 1790 u16 tid);
1799 1791
1800/** 1792/**
1801 * ieee80211_notify_mac - low level driver notification
1802 * @hw: pointer as obtained from ieee80211_alloc_hw().
1803 * @notif_type: enum ieee80211_notification_types
1804 *
1805 * This function must be called by low level driver to inform mac80211 of
1806 * low level driver status change or force mac80211 to re-assoc for low
1807 * level driver internal error that require re-assoc.
1808 */
1809void ieee80211_notify_mac(struct ieee80211_hw *hw,
1810 enum ieee80211_notification_types notif_type);
1811
1812/**
1813 * ieee80211_find_sta - find a station 1793 * ieee80211_find_sta - find a station
1814 * 1794 *
1815 * @hw: pointer as obtained from ieee80211_alloc_hw() 1795 * @hw: pointer as obtained from ieee80211_alloc_hw()
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/scm.h b/include/net/scm.h
index 06df126103ca..33e9986beb86 100644
--- a/include/net/scm.h
+++ b/include/net/scm.h
@@ -14,8 +14,9 @@
14 14
15struct scm_fp_list 15struct scm_fp_list
16{ 16{
17 int count; 17 struct list_head list;
18 struct file *fp[SCM_MAX_FD]; 18 int count;
19 struct file *fp[SCM_MAX_FD];
19}; 20};
20 21
21struct scm_cookie 22struct scm_cookie
diff --git a/include/net/sock.h b/include/net/sock.h
index c04f9e18ea22..2f47107f6d0f 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -815,7 +815,7 @@ static inline void sk_wmem_free_skb(struct sock *sk, struct sk_buff *skb)
815 */ 815 */
816#define sock_lock_init_class_and_name(sk, sname, skey, name, key) \ 816#define sock_lock_init_class_and_name(sk, sname, skey, name, key) \
817do { \ 817do { \
818 sk->sk_lock.owned = 0; \ 818 sk->sk_lock.owned = 0; \
819 init_waitqueue_head(&sk->sk_lock.wq); \ 819 init_waitqueue_head(&sk->sk_lock.wq); \
820 spin_lock_init(&(sk)->sk_lock.slock); \ 820 spin_lock_init(&(sk)->sk_lock.slock); \
821 debug_check_no_locks_freed((void *)&(sk)->sk_lock, \ 821 debug_check_no_locks_freed((void *)&(sk)->sk_lock, \
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/sound/core.h b/include/sound/core.h
index 35424a971b7a..1508c4ec1ba9 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -385,9 +385,13 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...)
385 385
386#else /* !CONFIG_SND_DEBUG */ 386#else /* !CONFIG_SND_DEBUG */
387 387
388#define snd_printd(fmt, args...) /* nothing */ 388#define snd_printd(fmt, args...) do { } while (0)
389#define snd_BUG() /* nothing */ 389#define snd_BUG() do { } while (0)
390#define snd_BUG_ON(cond) ({/*(void)(cond);*/ 0;}) /* always false */ 390static inline int __snd_bug_on(void)
391{
392 return 0;
393}
394#define snd_BUG_ON(cond) __snd_bug_on() /* always false */
391 395
392#endif /* CONFIG_SND_DEBUG */ 396#endif /* CONFIG_SND_DEBUG */
393 397
diff --git a/include/video/atmel_lcdc.h b/include/video/atmel_lcdc.h
index 6ad87f485992..0c864db1a466 100644
--- a/include/video/atmel_lcdc.h
+++ b/include/video/atmel_lcdc.h
@@ -38,7 +38,7 @@ struct atmel_lcdfb_info {
38 spinlock_t lock; 38 spinlock_t lock;
39 struct fb_info *info; 39 struct fb_info *info;
40 void __iomem *mmio; 40 void __iomem *mmio;
41 unsigned long irq_base; 41 int irq_base;
42 struct work_struct task; 42 struct work_struct task;
43 43
44 unsigned int guard_time; 44 unsigned int guard_time;
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/init/Kconfig b/init/Kconfig
index 86b00c53fade..f763762d544a 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -354,7 +354,7 @@ config RT_GROUP_SCHED
354 setting below. If enabled, it will also make it impossible to 354 setting below. If enabled, it will also make it impossible to
355 schedule realtime tasks for non-root users until you allocate 355 schedule realtime tasks for non-root users until you allocate
356 realtime bandwidth for them. 356 realtime bandwidth for them.
357 See Documentation/sched-rt-group.txt for more information. 357 See Documentation/scheduler/sched-rt-group.txt for more information.
358 358
359choice 359choice
360 depends on GROUP_SCHED 360 depends on GROUP_SCHED
@@ -771,8 +771,7 @@ config SLAB
771 help 771 help
772 The regular slab allocator that is established and known to work 772 The regular slab allocator that is established and known to work
773 well in all environments. It organizes cache hot objects in 773 well in all environments. It organizes cache hot objects in
774 per cpu and per node queues. SLAB is the default choice for 774 per cpu and per node queues.
775 a slab allocator.
776 775
777config SLUB 776config SLUB
778 bool "SLUB (Unqueued Allocator)" 777 bool "SLUB (Unqueued Allocator)"
@@ -781,7 +780,8 @@ config SLUB
781 instead of managing queues of cached objects (SLAB approach). 780 instead of managing queues of cached objects (SLAB approach).
782 Per cpu caching is realized using slabs of objects instead 781 Per cpu caching is realized using slabs of objects instead
783 of queues of objects. SLUB can use memory efficiently 782 of queues of objects. SLUB can use memory efficiently
784 and has enhanced diagnostics. 783 and has enhanced diagnostics. SLUB is the default choice for
784 a slab allocator.
785 785
786config SLOB 786config SLOB
787 depends on EMBEDDED 787 depends on EMBEDDED
diff --git a/ipc/util.c b/ipc/util.c
index 49b3ea615dc5..361fd1c96fcf 100644
--- a/ipc/util.c
+++ b/ipc/util.c
@@ -266,9 +266,17 @@ int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size)
266 if (ids->in_use >= size) 266 if (ids->in_use >= size)
267 return -ENOSPC; 267 return -ENOSPC;
268 268
269 spin_lock_init(&new->lock);
270 new->deleted = 0;
271 rcu_read_lock();
272 spin_lock(&new->lock);
273
269 err = idr_get_new(&ids->ipcs_idr, new, &id); 274 err = idr_get_new(&ids->ipcs_idr, new, &id);
270 if (err) 275 if (err) {
276 spin_unlock(&new->lock);
277 rcu_read_unlock();
271 return err; 278 return err;
279 }
272 280
273 ids->in_use++; 281 ids->in_use++;
274 282
@@ -280,10 +288,6 @@ int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size)
280 ids->seq = 0; 288 ids->seq = 0;
281 289
282 new->id = ipc_buildid(id, new->seq); 290 new->id = ipc_buildid(id, new->seq);
283 spin_lock_init(&new->lock);
284 new->deleted = 0;
285 rcu_read_lock();
286 spin_lock(&new->lock);
287 return id; 291 return id;
288} 292}
289 293
diff --git a/kernel/Makefile b/kernel/Makefile
index 9a3ec66a9d84..19fad003b19d 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -11,8 +11,6 @@ obj-y = sched.o fork.o exec_domain.o panic.o printk.o \
11 hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \ 11 hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \
12 notifier.o ksysfs.o pm_qos_params.o sched_clock.o 12 notifier.o ksysfs.o pm_qos_params.o sched_clock.o
13 13
14CFLAGS_REMOVE_sched.o = -mno-spe
15
16ifdef CONFIG_FUNCTION_TRACER 14ifdef CONFIG_FUNCTION_TRACER
17# Do not trace debug files and internal ftrace files 15# Do not trace debug files and internal ftrace files
18CFLAGS_REMOVE_lockdep.o = -pg 16CFLAGS_REMOVE_lockdep.o = -pg
@@ -21,7 +19,7 @@ CFLAGS_REMOVE_mutex-debug.o = -pg
21CFLAGS_REMOVE_rtmutex-debug.o = -pg 19CFLAGS_REMOVE_rtmutex-debug.o = -pg
22CFLAGS_REMOVE_cgroup-debug.o = -pg 20CFLAGS_REMOVE_cgroup-debug.o = -pg
23CFLAGS_REMOVE_sched_clock.o = -pg 21CFLAGS_REMOVE_sched_clock.o = -pg
24CFLAGS_REMOVE_sched.o = -mno-spe -pg 22CFLAGS_REMOVE_sched.o = -pg
25endif 23endif
26 24
27obj-$(CONFIG_FREEZER) += freezer.o 25obj-$(CONFIG_FREEZER) += freezer.o
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/audit_tree.c b/kernel/audit_tree.c
index 8ba0e0d934f2..8b509441f49a 100644
--- a/kernel/audit_tree.c
+++ b/kernel/audit_tree.c
@@ -24,6 +24,7 @@ struct audit_chunk {
24 struct list_head trees; /* with root here */ 24 struct list_head trees; /* with root here */
25 int dead; 25 int dead;
26 int count; 26 int count;
27 atomic_long_t refs;
27 struct rcu_head head; 28 struct rcu_head head;
28 struct node { 29 struct node {
29 struct list_head list; 30 struct list_head list;
@@ -56,7 +57,8 @@ static LIST_HEAD(prune_list);
56 * tree is refcounted; one reference for "some rules on rules_list refer to 57 * tree is refcounted; one reference for "some rules on rules_list refer to
57 * it", one for each chunk with pointer to it. 58 * it", one for each chunk with pointer to it.
58 * 59 *
59 * chunk is refcounted by embedded inotify_watch. 60 * chunk is refcounted by embedded inotify_watch + .refs (non-zero refcount
61 * of watch contributes 1 to .refs).
60 * 62 *
61 * node.index allows to get from node.list to containing chunk. 63 * node.index allows to get from node.list to containing chunk.
62 * MSB of that sucker is stolen to mark taggings that we might have to 64 * MSB of that sucker is stolen to mark taggings that we might have to
@@ -121,6 +123,7 @@ static struct audit_chunk *alloc_chunk(int count)
121 INIT_LIST_HEAD(&chunk->hash); 123 INIT_LIST_HEAD(&chunk->hash);
122 INIT_LIST_HEAD(&chunk->trees); 124 INIT_LIST_HEAD(&chunk->trees);
123 chunk->count = count; 125 chunk->count = count;
126 atomic_long_set(&chunk->refs, 1);
124 for (i = 0; i < count; i++) { 127 for (i = 0; i < count; i++) {
125 INIT_LIST_HEAD(&chunk->owners[i].list); 128 INIT_LIST_HEAD(&chunk->owners[i].list);
126 chunk->owners[i].index = i; 129 chunk->owners[i].index = i;
@@ -129,9 +132,8 @@ static struct audit_chunk *alloc_chunk(int count)
129 return chunk; 132 return chunk;
130} 133}
131 134
132static void __free_chunk(struct rcu_head *rcu) 135static void free_chunk(struct audit_chunk *chunk)
133{ 136{
134 struct audit_chunk *chunk = container_of(rcu, struct audit_chunk, head);
135 int i; 137 int i;
136 138
137 for (i = 0; i < chunk->count; i++) { 139 for (i = 0; i < chunk->count; i++) {
@@ -141,14 +143,16 @@ static void __free_chunk(struct rcu_head *rcu)
141 kfree(chunk); 143 kfree(chunk);
142} 144}
143 145
144static inline void free_chunk(struct audit_chunk *chunk) 146void audit_put_chunk(struct audit_chunk *chunk)
145{ 147{
146 call_rcu(&chunk->head, __free_chunk); 148 if (atomic_long_dec_and_test(&chunk->refs))
149 free_chunk(chunk);
147} 150}
148 151
149void audit_put_chunk(struct audit_chunk *chunk) 152static void __put_chunk(struct rcu_head *rcu)
150{ 153{
151 put_inotify_watch(&chunk->watch); 154 struct audit_chunk *chunk = container_of(rcu, struct audit_chunk, head);
155 audit_put_chunk(chunk);
152} 156}
153 157
154enum {HASH_SIZE = 128}; 158enum {HASH_SIZE = 128};
@@ -176,7 +180,7 @@ struct audit_chunk *audit_tree_lookup(const struct inode *inode)
176 180
177 list_for_each_entry_rcu(p, list, hash) { 181 list_for_each_entry_rcu(p, list, hash) {
178 if (p->watch.inode == inode) { 182 if (p->watch.inode == inode) {
179 get_inotify_watch(&p->watch); 183 atomic_long_inc(&p->refs);
180 return p; 184 return p;
181 } 185 }
182 } 186 }
@@ -194,17 +198,49 @@ int audit_tree_match(struct audit_chunk *chunk, struct audit_tree *tree)
194 198
195/* tagging and untagging inodes with trees */ 199/* tagging and untagging inodes with trees */
196 200
197static void untag_chunk(struct audit_chunk *chunk, struct node *p) 201static struct audit_chunk *find_chunk(struct node *p)
202{
203 int index = p->index & ~(1U<<31);
204 p -= index;
205 return container_of(p, struct audit_chunk, owners[0]);
206}
207
208static void untag_chunk(struct node *p)
198{ 209{
210 struct audit_chunk *chunk = find_chunk(p);
199 struct audit_chunk *new; 211 struct audit_chunk *new;
200 struct audit_tree *owner; 212 struct audit_tree *owner;
201 int size = chunk->count - 1; 213 int size = chunk->count - 1;
202 int i, j; 214 int i, j;
203 215
216 if (!pin_inotify_watch(&chunk->watch)) {
217 /*
218 * Filesystem is shutting down; all watches are getting
219 * evicted, just take it off the node list for this
220 * tree and let the eviction logics take care of the
221 * rest.
222 */
223 owner = p->owner;
224 if (owner->root == chunk) {
225 list_del_init(&owner->same_root);
226 owner->root = NULL;
227 }
228 list_del_init(&p->list);
229 p->owner = NULL;
230 put_tree(owner);
231 return;
232 }
233
234 spin_unlock(&hash_lock);
235
236 /*
237 * pin_inotify_watch() succeeded, so the watch won't go away
238 * from under us.
239 */
204 mutex_lock(&chunk->watch.inode->inotify_mutex); 240 mutex_lock(&chunk->watch.inode->inotify_mutex);
205 if (chunk->dead) { 241 if (chunk->dead) {
206 mutex_unlock(&chunk->watch.inode->inotify_mutex); 242 mutex_unlock(&chunk->watch.inode->inotify_mutex);
207 return; 243 goto out;
208 } 244 }
209 245
210 owner = p->owner; 246 owner = p->owner;
@@ -221,7 +257,7 @@ static void untag_chunk(struct audit_chunk *chunk, struct node *p)
221 inotify_evict_watch(&chunk->watch); 257 inotify_evict_watch(&chunk->watch);
222 mutex_unlock(&chunk->watch.inode->inotify_mutex); 258 mutex_unlock(&chunk->watch.inode->inotify_mutex);
223 put_inotify_watch(&chunk->watch); 259 put_inotify_watch(&chunk->watch);
224 return; 260 goto out;
225 } 261 }
226 262
227 new = alloc_chunk(size); 263 new = alloc_chunk(size);
@@ -263,7 +299,7 @@ static void untag_chunk(struct audit_chunk *chunk, struct node *p)
263 inotify_evict_watch(&chunk->watch); 299 inotify_evict_watch(&chunk->watch);
264 mutex_unlock(&chunk->watch.inode->inotify_mutex); 300 mutex_unlock(&chunk->watch.inode->inotify_mutex);
265 put_inotify_watch(&chunk->watch); 301 put_inotify_watch(&chunk->watch);
266 return; 302 goto out;
267 303
268Fallback: 304Fallback:
269 // do the best we can 305 // do the best we can
@@ -277,6 +313,9 @@ Fallback:
277 put_tree(owner); 313 put_tree(owner);
278 spin_unlock(&hash_lock); 314 spin_unlock(&hash_lock);
279 mutex_unlock(&chunk->watch.inode->inotify_mutex); 315 mutex_unlock(&chunk->watch.inode->inotify_mutex);
316out:
317 unpin_inotify_watch(&chunk->watch);
318 spin_lock(&hash_lock);
280} 319}
281 320
282static int create_chunk(struct inode *inode, struct audit_tree *tree) 321static int create_chunk(struct inode *inode, struct audit_tree *tree)
@@ -387,13 +426,6 @@ static int tag_chunk(struct inode *inode, struct audit_tree *tree)
387 return 0; 426 return 0;
388} 427}
389 428
390static struct audit_chunk *find_chunk(struct node *p)
391{
392 int index = p->index & ~(1U<<31);
393 p -= index;
394 return container_of(p, struct audit_chunk, owners[0]);
395}
396
397static void kill_rules(struct audit_tree *tree) 429static void kill_rules(struct audit_tree *tree)
398{ 430{
399 struct audit_krule *rule, *next; 431 struct audit_krule *rule, *next;
@@ -431,17 +463,10 @@ static void prune_one(struct audit_tree *victim)
431 spin_lock(&hash_lock); 463 spin_lock(&hash_lock);
432 while (!list_empty(&victim->chunks)) { 464 while (!list_empty(&victim->chunks)) {
433 struct node *p; 465 struct node *p;
434 struct audit_chunk *chunk;
435 466
436 p = list_entry(victim->chunks.next, struct node, list); 467 p = list_entry(victim->chunks.next, struct node, list);
437 chunk = find_chunk(p);
438 get_inotify_watch(&chunk->watch);
439 spin_unlock(&hash_lock);
440
441 untag_chunk(chunk, p);
442 468
443 put_inotify_watch(&chunk->watch); 469 untag_chunk(p);
444 spin_lock(&hash_lock);
445 } 470 }
446 spin_unlock(&hash_lock); 471 spin_unlock(&hash_lock);
447 put_tree(victim); 472 put_tree(victim);
@@ -469,7 +494,6 @@ static void trim_marked(struct audit_tree *tree)
469 494
470 while (!list_empty(&tree->chunks)) { 495 while (!list_empty(&tree->chunks)) {
471 struct node *node; 496 struct node *node;
472 struct audit_chunk *chunk;
473 497
474 node = list_entry(tree->chunks.next, struct node, list); 498 node = list_entry(tree->chunks.next, struct node, list);
475 499
@@ -477,14 +501,7 @@ static void trim_marked(struct audit_tree *tree)
477 if (!(node->index & (1U<<31))) 501 if (!(node->index & (1U<<31)))
478 break; 502 break;
479 503
480 chunk = find_chunk(node); 504 untag_chunk(node);
481 get_inotify_watch(&chunk->watch);
482 spin_unlock(&hash_lock);
483
484 untag_chunk(chunk, node);
485
486 put_inotify_watch(&chunk->watch);
487 spin_lock(&hash_lock);
488 } 505 }
489 if (!tree->root && !tree->goner) { 506 if (!tree->root && !tree->goner) {
490 tree->goner = 1; 507 tree->goner = 1;
@@ -878,7 +895,7 @@ static void handle_event(struct inotify_watch *watch, u32 wd, u32 mask,
878static void destroy_watch(struct inotify_watch *watch) 895static void destroy_watch(struct inotify_watch *watch)
879{ 896{
880 struct audit_chunk *chunk = container_of(watch, struct audit_chunk, watch); 897 struct audit_chunk *chunk = container_of(watch, struct audit_chunk, watch);
881 free_chunk(chunk); 898 call_rcu(&chunk->head, __put_chunk);
882} 899}
883 900
884static const struct inotify_operations rtree_inotify_ops = { 901static const struct inotify_operations rtree_inotify_ops = {
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c
index b7d354e2b0ef..9fd85a4640a0 100644
--- a/kernel/auditfilter.c
+++ b/kernel/auditfilter.c
@@ -1094,8 +1094,8 @@ static void audit_inotify_unregister(struct list_head *in_list)
1094 list_for_each_entry_safe(p, n, in_list, ilist) { 1094 list_for_each_entry_safe(p, n, in_list, ilist) {
1095 list_del(&p->ilist); 1095 list_del(&p->ilist);
1096 inotify_rm_watch(audit_ih, &p->wdata); 1096 inotify_rm_watch(audit_ih, &p->wdata);
1097 /* the put matching the get in audit_do_del_rule() */ 1097 /* the unpin matching the pin in audit_do_del_rule() */
1098 put_inotify_watch(&p->wdata); 1098 unpin_inotify_watch(&p->wdata);
1099 } 1099 }
1100} 1100}
1101 1101
@@ -1389,9 +1389,13 @@ static inline int audit_del_rule(struct audit_entry *entry,
1389 /* Put parent on the inotify un-registration 1389 /* Put parent on the inotify un-registration
1390 * list. Grab a reference before releasing 1390 * list. Grab a reference before releasing
1391 * audit_filter_mutex, to be released in 1391 * audit_filter_mutex, to be released in
1392 * audit_inotify_unregister(). */ 1392 * audit_inotify_unregister().
1393 list_add(&parent->ilist, &inotify_list); 1393 * If filesystem is going away, just leave
1394 get_inotify_watch(&parent->wdata); 1394 * the sucker alone, eviction will take
1395 * care of it.
1396 */
1397 if (pin_inotify_watch(&parent->wdata))
1398 list_add(&parent->ilist, &inotify_list);
1395 } 1399 }
1396 } 1400 }
1397 } 1401 }
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 35eebd5510c2..8185a0f09594 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 */
@@ -2039,10 +2039,13 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry)
2039 struct cgroup *cgrp; 2039 struct cgroup *cgrp;
2040 struct cgroup_iter it; 2040 struct cgroup_iter it;
2041 struct task_struct *tsk; 2041 struct task_struct *tsk;
2042
2042 /* 2043 /*
2043 * Validate dentry by checking the superblock operations 2044 * Validate dentry by checking the superblock operations,
2045 * and make sure it's a directory.
2044 */ 2046 */
2045 if (dentry->d_sb->s_op != &cgroup_ops) 2047 if (dentry->d_sb->s_op != &cgroup_ops ||
2048 !S_ISDIR(dentry->d_inode->i_mode))
2046 goto err; 2049 goto err;
2047 2050
2048 ret = 0; 2051 ret = 0;
@@ -2472,10 +2475,7 @@ static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry)
2472 mutex_unlock(&cgroup_mutex); 2475 mutex_unlock(&cgroup_mutex);
2473 return -EBUSY; 2476 return -EBUSY;
2474 } 2477 }
2475 2478 mutex_unlock(&cgroup_mutex);
2476 parent = cgrp->parent;
2477 root = cgrp->root;
2478 sb = root->sb;
2479 2479
2480 /* 2480 /*
2481 * Call pre_destroy handlers of subsys. Notify subsystems 2481 * Call pre_destroy handlers of subsys. Notify subsystems
@@ -2483,7 +2483,14 @@ static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry)
2483 */ 2483 */
2484 cgroup_call_pre_destroy(cgrp); 2484 cgroup_call_pre_destroy(cgrp);
2485 2485
2486 if (cgroup_has_css_refs(cgrp)) { 2486 mutex_lock(&cgroup_mutex);
2487 parent = cgrp->parent;
2488 root = cgrp->root;
2489 sb = root->sb;
2490
2491 if (atomic_read(&cgrp->count)
2492 || !list_empty(&cgrp->children)
2493 || cgroup_has_css_refs(cgrp)) {
2487 mutex_unlock(&cgroup_mutex); 2494 mutex_unlock(&cgroup_mutex);
2488 return -EBUSY; 2495 return -EBUSY;
2489 } 2496 }
@@ -2497,7 +2504,6 @@ static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry)
2497 list_del(&cgrp->sibling); 2504 list_del(&cgrp->sibling);
2498 spin_lock(&cgrp->dentry->d_lock); 2505 spin_lock(&cgrp->dentry->d_lock);
2499 d = dget(cgrp->dentry); 2506 d = dget(cgrp->dentry);
2500 cgrp->dentry = NULL;
2501 spin_unlock(&d->d_lock); 2507 spin_unlock(&d->d_lock);
2502 2508
2503 cgroup_d_remove_dir(d); 2509 cgroup_d_remove_dir(d);
diff --git a/kernel/cgroup_freezer.c b/kernel/cgroup_freezer.c
index 7fa476f01d05..fb249e2bcada 100644
--- a/kernel/cgroup_freezer.c
+++ b/kernel/cgroup_freezer.c
@@ -184,9 +184,20 @@ static void freezer_fork(struct cgroup_subsys *ss, struct task_struct *task)
184{ 184{
185 struct freezer *freezer; 185 struct freezer *freezer;
186 186
187 task_lock(task); 187 /*
188 * No lock is needed, since the task isn't on tasklist yet,
189 * so it can't be moved to another cgroup, which means the
190 * freezer won't be removed and will be valid during this
191 * function call.
192 */
188 freezer = task_freezer(task); 193 freezer = task_freezer(task);
189 task_unlock(task); 194
195 /*
196 * The root cgroup is non-freezable, so we can skip the
197 * following check.
198 */
199 if (!freezer->css.cgroup->parent)
200 return;
190 201
191 spin_lock_irq(&freezer->lock); 202 spin_lock_irq(&freezer->lock);
192 BUG_ON(freezer->state == CGROUP_FROZEN); 203 BUG_ON(freezer->state == CGROUP_FROZEN);
@@ -331,7 +342,7 @@ static int freezer_write(struct cgroup *cgroup,
331 else if (strcmp(buffer, freezer_state_strs[CGROUP_FROZEN]) == 0) 342 else if (strcmp(buffer, freezer_state_strs[CGROUP_FROZEN]) == 0)
332 goal_state = CGROUP_FROZEN; 343 goal_state = CGROUP_FROZEN;
333 else 344 else
334 return -EIO; 345 return -EINVAL;
335 346
336 if (!cgroup_lock_live_group(cgroup)) 347 if (!cgroup_lock_live_group(cgroup))
337 return -ENODEV; 348 return -ENODEV;
@@ -350,6 +361,8 @@ static struct cftype files[] = {
350 361
351static int freezer_populate(struct cgroup_subsys *ss, struct cgroup *cgroup) 362static int freezer_populate(struct cgroup_subsys *ss, struct cgroup *cgroup)
352{ 363{
364 if (!cgroup->parent)
365 return 0;
353 return cgroup_add_files(cgroup, ss, files, ARRAY_SIZE(files)); 366 return cgroup_add_files(cgroup, ss, files, ARRAY_SIZE(files));
354} 367}
355 368
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 86d49045daed..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
@@ -499,3 +499,6 @@ const unsigned long cpu_bit_bitmap[BITS_PER_LONG+1][BITS_TO_LONGS(NR_CPUS)] = {
499#endif 499#endif
500}; 500};
501EXPORT_SYMBOL_GPL(cpu_bit_bitmap); 501EXPORT_SYMBOL_GPL(cpu_bit_bitmap);
502
503const DECLARE_BITMAP(cpu_all_bits, NR_CPUS) = CPU_BITS_ALL;
504EXPORT_SYMBOL(cpu_all_bits);
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index 3e00526f52ec..96c0ba13b8cd 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -36,6 +36,7 @@
36#include <linux/list.h> 36#include <linux/list.h>
37#include <linux/mempolicy.h> 37#include <linux/mempolicy.h>
38#include <linux/mm.h> 38#include <linux/mm.h>
39#include <linux/memory.h>
39#include <linux/module.h> 40#include <linux/module.h>
40#include <linux/mount.h> 41#include <linux/mount.h>
41#include <linux/namei.h> 42#include <linux/namei.h>
@@ -584,10 +585,9 @@ static int generate_sched_domains(cpumask_t **domains,
584 int i, j, k; /* indices for partition finding loops */ 585 int i, j, k; /* indices for partition finding loops */
585 cpumask_t *doms; /* resulting partition; i.e. sched domains */ 586 cpumask_t *doms; /* resulting partition; i.e. sched domains */
586 struct sched_domain_attr *dattr; /* attributes for custom domains */ 587 struct sched_domain_attr *dattr; /* attributes for custom domains */
587 int ndoms; /* number of sched domains in result */ 588 int ndoms = 0; /* number of sched domains in result */
588 int nslot; /* next empty doms[] cpumask_t slot */ 589 int nslot; /* next empty doms[] cpumask_t slot */
589 590
590 ndoms = 0;
591 doms = NULL; 591 doms = NULL;
592 dattr = NULL; 592 dattr = NULL;
593 csa = NULL; 593 csa = NULL;
@@ -674,10 +674,8 @@ restart:
674 * Convert <csn, csa> to <ndoms, doms> and populate cpu masks. 674 * Convert <csn, csa> to <ndoms, doms> and populate cpu masks.
675 */ 675 */
676 doms = kmalloc(ndoms * sizeof(cpumask_t), GFP_KERNEL); 676 doms = kmalloc(ndoms * sizeof(cpumask_t), GFP_KERNEL);
677 if (!doms) { 677 if (!doms)
678 ndoms = 0;
679 goto done; 678 goto done;
680 }
681 679
682 /* 680 /*
683 * The rest of the code, including the scheduler, can deal with 681 * The rest of the code, including the scheduler, can deal with
@@ -732,6 +730,13 @@ restart:
732done: 730done:
733 kfree(csa); 731 kfree(csa);
734 732
733 /*
734 * Fallback to the default domain if kmalloc() failed.
735 * See comments in partition_sched_domains().
736 */
737 if (doms == NULL)
738 ndoms = 1;
739
735 *domains = doms; 740 *domains = doms;
736 *attributes = dattr; 741 *attributes = dattr;
737 return ndoms; 742 return ndoms;
@@ -2011,12 +2016,23 @@ static int cpuset_track_online_cpus(struct notifier_block *unused_nb,
2011 * Call this routine anytime after node_states[N_HIGH_MEMORY] changes. 2016 * Call this routine anytime after node_states[N_HIGH_MEMORY] changes.
2012 * See also the previous routine cpuset_track_online_cpus(). 2017 * See also the previous routine cpuset_track_online_cpus().
2013 */ 2018 */
2014void cpuset_track_online_nodes(void) 2019static int cpuset_track_online_nodes(struct notifier_block *self,
2020 unsigned long action, void *arg)
2015{ 2021{
2016 cgroup_lock(); 2022 cgroup_lock();
2017 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; 2023 switch (action) {
2018 scan_for_empty_cpusets(&top_cpuset); 2024 case MEM_ONLINE:
2025 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
2026 break;
2027 case MEM_OFFLINE:
2028 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
2029 scan_for_empty_cpusets(&top_cpuset);
2030 break;
2031 default:
2032 break;
2033 }
2019 cgroup_unlock(); 2034 cgroup_unlock();
2035 return NOTIFY_OK;
2020} 2036}
2021#endif 2037#endif
2022 2038
@@ -2032,6 +2048,7 @@ void __init cpuset_init_smp(void)
2032 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; 2048 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
2033 2049
2034 hotcpu_notifier(cpuset_track_online_cpus, 0); 2050 hotcpu_notifier(cpuset_track_online_cpus, 0);
2051 hotplug_memory_notifier(cpuset_track_online_nodes, 10);
2035} 2052}
2036 2053
2037/** 2054/**
diff --git a/kernel/exit.c b/kernel/exit.c
index 80137a5d9467..2d8be7ebb0f7 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -40,7 +40,6 @@
40#include <linux/cn_proc.h> 40#include <linux/cn_proc.h>
41#include <linux/mutex.h> 41#include <linux/mutex.h>
42#include <linux/futex.h> 42#include <linux/futex.h>
43#include <linux/compat.h>
44#include <linux/pipe_fs_i.h> 43#include <linux/pipe_fs_i.h>
45#include <linux/audit.h> /* for audit_free() */ 44#include <linux/audit.h> /* for audit_free() */
46#include <linux/resource.h> 45#include <linux/resource.h>
@@ -141,6 +140,11 @@ static void __exit_signal(struct task_struct *tsk)
141 if (sig) { 140 if (sig) {
142 flush_sigqueue(&sig->shared_pending); 141 flush_sigqueue(&sig->shared_pending);
143 taskstats_tgid_free(sig); 142 taskstats_tgid_free(sig);
143 /*
144 * Make sure ->signal can't go away under rq->lock,
145 * see account_group_exec_runtime().
146 */
147 task_rq_unlock_wait(tsk);
144 __cleanup_signal(sig); 148 __cleanup_signal(sig);
145 } 149 }
146} 150}
@@ -1054,14 +1058,6 @@ NORET_TYPE void do_exit(long code)
1054 exit_itimers(tsk->signal); 1058 exit_itimers(tsk->signal);
1055 } 1059 }
1056 acct_collect(code, group_dead); 1060 acct_collect(code, group_dead);
1057#ifdef CONFIG_FUTEX
1058 if (unlikely(tsk->robust_list))
1059 exit_robust_list(tsk);
1060#ifdef CONFIG_COMPAT
1061 if (unlikely(tsk->compat_robust_list))
1062 compat_exit_robust_list(tsk);
1063#endif
1064#endif
1065 if (group_dead) 1061 if (group_dead)
1066 tty_audit_exit(); 1062 tty_audit_exit();
1067 if (unlikely(tsk->audit_context)) 1063 if (unlikely(tsk->audit_context))
diff --git a/kernel/fork.c b/kernel/fork.c
index f6083561dfe0..495da2e9a8b4 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -40,6 +40,7 @@
40#include <linux/jiffies.h> 40#include <linux/jiffies.h>
41#include <linux/tracehook.h> 41#include <linux/tracehook.h>
42#include <linux/futex.h> 42#include <linux/futex.h>
43#include <linux/compat.h>
43#include <linux/task_io_accounting_ops.h> 44#include <linux/task_io_accounting_ops.h>
44#include <linux/rcupdate.h> 45#include <linux/rcupdate.h>
45#include <linux/ptrace.h> 46#include <linux/ptrace.h>
@@ -314,17 +315,20 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
314 file = tmp->vm_file; 315 file = tmp->vm_file;
315 if (file) { 316 if (file) {
316 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
317 get_file(file); 320 get_file(file);
318 if (tmp->vm_flags & VM_DENYWRITE) 321 if (tmp->vm_flags & VM_DENYWRITE)
319 atomic_dec(&inode->i_writecount); 322 atomic_dec(&inode->i_writecount);
320 323 spin_lock(&mapping->i_mmap_lock);
321 /* insert tmp into the share list, just after mpnt */ 324 if (tmp->vm_flags & VM_SHARED)
322 spin_lock(&file->f_mapping->i_mmap_lock); 325 mapping->i_mmap_writable++;
323 tmp->vm_truncate_count = mpnt->vm_truncate_count; 326 tmp->vm_truncate_count = mpnt->vm_truncate_count;
324 flush_dcache_mmap_lock(file->f_mapping); 327 flush_dcache_mmap_lock(mapping);
328 /* insert tmp into the share list, just after mpnt */
325 vma_prio_tree_add(tmp, mpnt); 329 vma_prio_tree_add(tmp, mpnt);
326 flush_dcache_mmap_unlock(file->f_mapping); 330 flush_dcache_mmap_unlock(mapping);
327 spin_unlock(&file->f_mapping->i_mmap_lock); 331 spin_unlock(&mapping->i_mmap_lock);
328 } 332 }
329 333
330 /* 334 /*
@@ -519,6 +523,16 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm)
519{ 523{
520 struct completion *vfork_done = tsk->vfork_done; 524 struct completion *vfork_done = tsk->vfork_done;
521 525
526 /* Get rid of any futexes when releasing the mm */
527#ifdef CONFIG_FUTEX
528 if (unlikely(tsk->robust_list))
529 exit_robust_list(tsk);
530#ifdef CONFIG_COMPAT
531 if (unlikely(tsk->compat_robust_list))
532 compat_exit_robust_list(tsk);
533#endif
534#endif
535
522 /* Get rid of any cached register state */ 536 /* Get rid of any cached register state */
523 deactivate_mm(tsk, mm); 537 deactivate_mm(tsk, mm);
524 538
@@ -1387,6 +1401,7 @@ long do_fork(unsigned long clone_flags,
1387 init_completion(&vfork); 1401 init_completion(&vfork);
1388 } 1402 }
1389 1403
1404 audit_finish_fork(p);
1390 tracehook_report_clone(trace, regs, clone_flags, nr, p); 1405 tracehook_report_clone(trace, regs, clone_flags, nr, p);
1391 1406
1392 /* 1407 /*
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index 2b465dfde426..47e63349d1b2 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -664,14 +664,6 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
664 664
665 /* Timer is expired, act upon the callback mode */ 665 /* Timer is expired, act upon the callback mode */
666 switch(timer->cb_mode) { 666 switch(timer->cb_mode) {
667 case HRTIMER_CB_IRQSAFE_NO_RESTART:
668 debug_hrtimer_deactivate(timer);
669 /*
670 * We can call the callback from here. No restart
671 * happens, so no danger of recursion
672 */
673 BUG_ON(timer->function(timer) != HRTIMER_NORESTART);
674 return 1;
675 case HRTIMER_CB_IRQSAFE_PERCPU: 667 case HRTIMER_CB_IRQSAFE_PERCPU:
676 case HRTIMER_CB_IRQSAFE_UNLOCKED: 668 case HRTIMER_CB_IRQSAFE_UNLOCKED:
677 /* 669 /*
@@ -683,7 +675,6 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
683 */ 675 */
684 debug_hrtimer_deactivate(timer); 676 debug_hrtimer_deactivate(timer);
685 return 1; 677 return 1;
686 case HRTIMER_CB_IRQSAFE:
687 case HRTIMER_CB_SOFTIRQ: 678 case HRTIMER_CB_SOFTIRQ:
688 /* 679 /*
689 * Move everything else into the softirq pending list ! 680 * Move everything else into the softirq pending list !
@@ -1209,6 +1200,7 @@ static void run_hrtimer_pending(struct hrtimer_cpu_base *cpu_base)
1209 enum hrtimer_restart (*fn)(struct hrtimer *); 1200 enum hrtimer_restart (*fn)(struct hrtimer *);
1210 struct hrtimer *timer; 1201 struct hrtimer *timer;
1211 int restart; 1202 int restart;
1203 int emulate_hardirq_ctx = 0;
1212 1204
1213 timer = list_entry(cpu_base->cb_pending.next, 1205 timer = list_entry(cpu_base->cb_pending.next,
1214 struct hrtimer, cb_entry); 1206 struct hrtimer, cb_entry);
@@ -1217,10 +1209,24 @@ static void run_hrtimer_pending(struct hrtimer_cpu_base *cpu_base)
1217 timer_stats_account_hrtimer(timer); 1209 timer_stats_account_hrtimer(timer);
1218 1210
1219 fn = timer->function; 1211 fn = timer->function;
1212 /*
1213 * A timer might have been added to the cb_pending list
1214 * when it was migrated during a cpu-offline operation.
1215 * Emulate hardirq context for such timers.
1216 */
1217 if (timer->cb_mode == HRTIMER_CB_IRQSAFE_PERCPU ||
1218 timer->cb_mode == HRTIMER_CB_IRQSAFE_UNLOCKED)
1219 emulate_hardirq_ctx = 1;
1220
1220 __remove_hrtimer(timer, timer->base, HRTIMER_STATE_CALLBACK, 0); 1221 __remove_hrtimer(timer, timer->base, HRTIMER_STATE_CALLBACK, 0);
1221 spin_unlock_irq(&cpu_base->lock); 1222 spin_unlock_irq(&cpu_base->lock);
1222 1223
1223 restart = fn(timer); 1224 if (unlikely(emulate_hardirq_ctx)) {
1225 local_irq_disable();
1226 restart = fn(timer);
1227 local_irq_enable();
1228 } else
1229 restart = fn(timer);
1224 1230
1225 spin_lock_irq(&cpu_base->lock); 1231 spin_lock_irq(&cpu_base->lock);
1226 1232
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/kallsyms.c b/kernel/kallsyms.c
index 5072cf1685a2..7b8b0f21a5b1 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -304,17 +304,24 @@ int sprint_symbol(char *buffer, unsigned long address)
304 char *modname; 304 char *modname;
305 const char *name; 305 const char *name;
306 unsigned long offset, size; 306 unsigned long offset, size;
307 char namebuf[KSYM_NAME_LEN]; 307 int len;
308 308
309 name = kallsyms_lookup(address, &size, &offset, &modname, namebuf); 309 name = kallsyms_lookup(address, &size, &offset, &modname, buffer);
310 if (!name) 310 if (!name)
311 return sprintf(buffer, "0x%lx", address); 311 return sprintf(buffer, "0x%lx", address);
312 312
313 if (name != buffer)
314 strcpy(buffer, name);
315 len = strlen(buffer);
316 buffer += len;
317
313 if (modname) 318 if (modname)
314 return sprintf(buffer, "%s+%#lx/%#lx [%s]", name, offset, 319 len += sprintf(buffer, "+%#lx/%#lx [%s]",
315 size, modname); 320 offset, size, modname);
316 else 321 else
317 return sprintf(buffer, "%s+%#lx/%#lx", name, offset, size); 322 len += sprintf(buffer, "+%#lx/%#lx", offset, size);
323
324 return len;
318} 325}
319 326
320/* Look up a kernel symbol and print it to the kernel messages. */ 327/* Look up a kernel symbol and print it to the kernel messages. */
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index 8b57a2597f21..9f8a3f25259a 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -72,7 +72,7 @@ static bool kprobe_enabled;
72DEFINE_MUTEX(kprobe_mutex); /* Protects kprobe_table */ 72DEFINE_MUTEX(kprobe_mutex); /* Protects kprobe_table */
73static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL; 73static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL;
74static struct { 74static struct {
75 spinlock_t lock ____cacheline_aligned; 75 spinlock_t lock ____cacheline_aligned_in_smp;
76} kretprobe_table_locks[KPROBE_TABLE_SIZE]; 76} kretprobe_table_locks[KPROBE_TABLE_SIZE];
77 77
78static spinlock_t *kretprobe_table_lock_ptr(unsigned long hash) 78static spinlock_t *kretprobe_table_lock_ptr(unsigned long hash)
@@ -613,30 +613,37 @@ static int __kprobes __register_kprobe(struct kprobe *p,
613 return -EINVAL; 613 return -EINVAL;
614 p->addr = addr; 614 p->addr = addr;
615 615
616 if (!kernel_text_address((unsigned long) p->addr) || 616 preempt_disable();
617 in_kprobes_functions((unsigned long) p->addr)) 617 if (!__kernel_text_address((unsigned long) p->addr) ||
618 in_kprobes_functions((unsigned long) p->addr)) {
619 preempt_enable();
618 return -EINVAL; 620 return -EINVAL;
621 }
619 622
620 p->mod_refcounted = 0; 623 p->mod_refcounted = 0;
621 624
622 /* 625 /*
623 * Check if are we probing a module. 626 * Check if are we probing a module.
624 */ 627 */
625 probed_mod = module_text_address((unsigned long) p->addr); 628 probed_mod = __module_text_address((unsigned long) p->addr);
626 if (probed_mod) { 629 if (probed_mod) {
627 struct module *calling_mod = module_text_address(called_from); 630 struct module *calling_mod;
631 calling_mod = __module_text_address(called_from);
628 /* 632 /*
629 * We must allow modules to probe themself and in this case 633 * We must allow modules to probe themself and in this case
630 * avoid incrementing the module refcount, so as to allow 634 * avoid incrementing the module refcount, so as to allow
631 * unloading of self probing modules. 635 * unloading of self probing modules.
632 */ 636 */
633 if (calling_mod && calling_mod != probed_mod) { 637 if (calling_mod && calling_mod != probed_mod) {
634 if (unlikely(!try_module_get(probed_mod))) 638 if (unlikely(!try_module_get(probed_mod))) {
639 preempt_enable();
635 return -EINVAL; 640 return -EINVAL;
641 }
636 p->mod_refcounted = 1; 642 p->mod_refcounted = 1;
637 } else 643 } else
638 probed_mod = NULL; 644 probed_mod = NULL;
639 } 645 }
646 preempt_enable();
640 647
641 p->nmissed = 0; 648 p->nmissed = 0;
642 INIT_LIST_HEAD(&p->list); 649 INIT_LIST_HEAD(&p->list);
@@ -718,6 +725,10 @@ static void __kprobes __unregister_kprobe_bottom(struct kprobe *p)
718 struct kprobe *old_p; 725 struct kprobe *old_p;
719 726
720 if (p->mod_refcounted) { 727 if (p->mod_refcounted) {
728 /*
729 * Since we've already incremented refcount,
730 * we don't need to disable preemption.
731 */
721 mod = module_text_address((unsigned long)p->addr); 732 mod = module_text_address((unsigned long)p->addr);
722 if (mod) 733 if (mod)
723 module_put(mod); 734 module_put(mod);
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/lockdep.c b/kernel/lockdep.c
index 06e157119d2b..46a404173db2 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -3276,10 +3276,10 @@ void __init lockdep_info(void)
3276{ 3276{
3277 printk("Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar\n"); 3277 printk("Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar\n");
3278 3278
3279 printk("... MAX_LOCKDEP_SUBCLASSES: %lu\n", MAX_LOCKDEP_SUBCLASSES); 3279 printk("... MAX_LOCKDEP_SUBCLASSES: %lu\n", MAX_LOCKDEP_SUBCLASSES);
3280 printk("... MAX_LOCK_DEPTH: %lu\n", MAX_LOCK_DEPTH); 3280 printk("... MAX_LOCK_DEPTH: %lu\n", MAX_LOCK_DEPTH);
3281 printk("... MAX_LOCKDEP_KEYS: %lu\n", MAX_LOCKDEP_KEYS); 3281 printk("... MAX_LOCKDEP_KEYS: %lu\n", MAX_LOCKDEP_KEYS);
3282 printk("... CLASSHASH_SIZE: %lu\n", CLASSHASH_SIZE); 3282 printk("... CLASSHASH_SIZE: %lu\n", CLASSHASH_SIZE);
3283 printk("... MAX_LOCKDEP_ENTRIES: %lu\n", MAX_LOCKDEP_ENTRIES); 3283 printk("... MAX_LOCKDEP_ENTRIES: %lu\n", MAX_LOCKDEP_ENTRIES);
3284 printk("... MAX_LOCKDEP_CHAINS: %lu\n", MAX_LOCKDEP_CHAINS); 3284 printk("... MAX_LOCKDEP_CHAINS: %lu\n", MAX_LOCKDEP_CHAINS);
3285 printk("... CHAINHASH_SIZE: %lu\n", CHAINHASH_SIZE); 3285 printk("... CHAINHASH_SIZE: %lu\n", CHAINHASH_SIZE);
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 153dcb2639c3..4e5288a831de 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:
@@ -1308,9 +1308,10 @@ static inline int task_cputime_expired(const struct task_cputime *sample,
1308 */ 1308 */
1309static inline int fastpath_timer_check(struct task_struct *tsk) 1309static inline int fastpath_timer_check(struct task_struct *tsk)
1310{ 1310{
1311 struct signal_struct *sig = tsk->signal; 1311 struct signal_struct *sig;
1312 1312
1313 if (unlikely(!sig)) 1313 /* tsk == current, ensure it is safe to use ->signal/sighand */
1314 if (unlikely(tsk->exit_state))
1314 return 0; 1315 return 0;
1315 1316
1316 if (!task_cputime_zero(&tsk->cputime_expires)) { 1317 if (!task_cputime_zero(&tsk->cputime_expires)) {
@@ -1323,6 +1324,8 @@ static inline int fastpath_timer_check(struct task_struct *tsk)
1323 if (task_cputime_expired(&task_sample, &tsk->cputime_expires)) 1324 if (task_cputime_expired(&task_sample, &tsk->cputime_expires))
1324 return 1; 1325 return 1;
1325 } 1326 }
1327
1328 sig = tsk->signal;
1326 if (!task_cputime_zero(&sig->cputime_expires)) { 1329 if (!task_cputime_zero(&sig->cputime_expires)) {
1327 struct task_cputime group_sample; 1330 struct task_cputime group_sample;
1328 1331
diff --git a/kernel/power/main.c b/kernel/power/main.c
index 19122cf6d827..b8f7ce9473e8 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -174,7 +174,7 @@ static void suspend_test_finish(const char *label)
174 * has some performance issues. The stack dump of a WARN_ON 174 * has some performance issues. The stack dump of a WARN_ON
175 * is more likely to get the right attention than a printk... 175 * is more likely to get the right attention than a printk...
176 */ 176 */
177 WARN_ON(msec > (TEST_SUSPEND_SECONDS * 1000)); 177 WARN(msec > (TEST_SUSPEND_SECONDS * 1000), "Component: %s\n", label);
178} 178}
179 179
180#else 180#else
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 9830a037d8db..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;
@@ -544,7 +544,7 @@ static const struct file_operations proc_profile_operations = {
544}; 544};
545 545
546#ifdef CONFIG_SMP 546#ifdef CONFIG_SMP
547static void __init profile_nop(void *unused) 547static inline void profile_nop(void *unused)
548{ 548{
549} 549}
550 550
@@ -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 8d13a7855c08..09ac2008f77b 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -400,7 +400,7 @@ void relay_reset(struct rchan *chan)
400 } 400 }
401 401
402 mutex_lock(&relay_channels_mutex); 402 mutex_lock(&relay_channels_mutex);
403 for_each_online_cpu(i) 403 for_each_possible_cpu(i)
404 if (chan->buf[i]) 404 if (chan->buf[i])
405 __relay_reset(chan->buf[i], 0); 405 __relay_reset(chan->buf[i], 0);
406 mutex_unlock(&relay_channels_mutex); 406 mutex_unlock(&relay_channels_mutex);
@@ -611,10 +611,9 @@ struct rchan *relay_open(const char *base_filename,
611 return chan; 611 return chan;
612 612
613free_bufs: 613free_bufs:
614 for_each_online_cpu(i) { 614 for_each_possible_cpu(i) {
615 if (!chan->buf[i]) 615 if (chan->buf[i])
616 break; 616 relay_close_buf(chan->buf[i]);
617 relay_close_buf(chan->buf[i]);
618 } 617 }
619 618
620 kref_put(&chan->kref, relay_destroy_channel); 619 kref_put(&chan->kref, relay_destroy_channel);
@@ -1318,12 +1317,9 @@ static ssize_t relay_file_splice_read(struct file *in,
1318 if (ret < 0) 1317 if (ret < 0)
1319 break; 1318 break;
1320 else if (!ret) { 1319 else if (!ret) {
1321 if (spliced) 1320 if (flags & SPLICE_F_NONBLOCK)
1322 break;
1323 if (flags & SPLICE_F_NONBLOCK) {
1324 ret = -EAGAIN; 1321 ret = -EAGAIN;
1325 break; 1322 break;
1326 }
1327 } 1323 }
1328 1324
1329 *ppos += ret; 1325 *ppos += ret;
diff --git a/kernel/sched.c b/kernel/sched.c
index e8819bc6f462..e4bb1dd7b308 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -397,9 +397,9 @@ struct cfs_rq {
397 * 'curr' points to currently running entity on this cfs_rq. 397 * 'curr' points to currently running entity on this cfs_rq.
398 * It is set to NULL otherwise (i.e when none are currently running). 398 * It is set to NULL otherwise (i.e when none are currently running).
399 */ 399 */
400 struct sched_entity *curr, *next; 400 struct sched_entity *curr, *next, *last;
401 401
402 unsigned long nr_spread_over; 402 unsigned int nr_spread_over;
403 403
404#ifdef CONFIG_FAIR_GROUP_SCHED 404#ifdef CONFIG_FAIR_GROUP_SCHED
405 struct rq *rq; /* cpu runqueue to which this cfs_rq is attached */ 405 struct rq *rq; /* cpu runqueue to which this cfs_rq is attached */
@@ -969,6 +969,14 @@ static struct rq *task_rq_lock(struct task_struct *p, unsigned long *flags)
969 } 969 }
970} 970}
971 971
972void task_rq_unlock_wait(struct task_struct *p)
973{
974 struct rq *rq = task_rq(p);
975
976 smp_mb(); /* spin-unlock-wait is not a full memory barrier */
977 spin_unlock_wait(&rq->lock);
978}
979
972static void __task_rq_unlock(struct rq *rq) 980static void __task_rq_unlock(struct rq *rq)
973 __releases(rq->lock) 981 __releases(rq->lock)
974{ 982{
@@ -1445,9 +1453,12 @@ static int task_hot(struct task_struct *p, u64 now, struct sched_domain *sd);
1445static unsigned long cpu_avg_load_per_task(int cpu) 1453static unsigned long cpu_avg_load_per_task(int cpu)
1446{ 1454{
1447 struct rq *rq = cpu_rq(cpu); 1455 struct rq *rq = cpu_rq(cpu);
1456 unsigned long nr_running = ACCESS_ONCE(rq->nr_running);
1448 1457
1449 if (rq->nr_running) 1458 if (nr_running)
1450 rq->avg_load_per_task = rq->load.weight / rq->nr_running; 1459 rq->avg_load_per_task = rq->load.weight / nr_running;
1460 else
1461 rq->avg_load_per_task = 0;
1451 1462
1452 return rq->avg_load_per_task; 1463 return rq->avg_load_per_task;
1453} 1464}
@@ -1805,7 +1816,9 @@ task_hot(struct task_struct *p, u64 now, struct sched_domain *sd)
1805 /* 1816 /*
1806 * Buddy candidates are cache hot: 1817 * Buddy candidates are cache hot:
1807 */ 1818 */
1808 if (sched_feat(CACHE_HOT_BUDDY) && (&p->se == cfs_rq_of(&p->se)->next)) 1819 if (sched_feat(CACHE_HOT_BUDDY) &&
1820 (&p->se == cfs_rq_of(&p->se)->next ||
1821 &p->se == cfs_rq_of(&p->se)->last))
1809 return 1; 1822 return 1;
1810 1823
1811 if (p->sched_class != &fair_sched_class) 1824 if (p->sched_class != &fair_sched_class)
@@ -5858,6 +5871,8 @@ void __cpuinit init_idle(struct task_struct *idle, int cpu)
5858 struct rq *rq = cpu_rq(cpu); 5871 struct rq *rq = cpu_rq(cpu);
5859 unsigned long flags; 5872 unsigned long flags;
5860 5873
5874 spin_lock_irqsave(&rq->lock, flags);
5875
5861 __sched_fork(idle); 5876 __sched_fork(idle);
5862 idle->se.exec_start = sched_clock(); 5877 idle->se.exec_start = sched_clock();
5863 5878
@@ -5865,7 +5880,6 @@ void __cpuinit init_idle(struct task_struct *idle, int cpu)
5865 idle->cpus_allowed = cpumask_of_cpu(cpu); 5880 idle->cpus_allowed = cpumask_of_cpu(cpu);
5866 __set_task_cpu(idle, cpu); 5881 __set_task_cpu(idle, cpu);
5867 5882
5868 spin_lock_irqsave(&rq->lock, flags);
5869 rq->curr = rq->idle = idle; 5883 rq->curr = rq->idle = idle;
5870#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW) 5884#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW)
5871 idle->oncpu = 1; 5885 idle->oncpu = 1;
@@ -6573,7 +6587,9 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
6573 req = list_entry(rq->migration_queue.next, 6587 req = list_entry(rq->migration_queue.next,
6574 struct migration_req, list); 6588 struct migration_req, list);
6575 list_del_init(&req->list); 6589 list_del_init(&req->list);
6590 spin_unlock_irq(&rq->lock);
6576 complete(&req->done); 6591 complete(&req->done);
6592 spin_lock_irq(&rq->lock);
6577 } 6593 }
6578 spin_unlock_irq(&rq->lock); 6594 spin_unlock_irq(&rq->lock);
6579 break; 6595 break;
@@ -6875,15 +6891,17 @@ cpu_attach_domain(struct sched_domain *sd, struct root_domain *rd, int cpu)
6875 struct sched_domain *tmp; 6891 struct sched_domain *tmp;
6876 6892
6877 /* Remove the sched domains which do not contribute to scheduling. */ 6893 /* Remove the sched domains which do not contribute to scheduling. */
6878 for (tmp = sd; tmp; tmp = tmp->parent) { 6894 for (tmp = sd; tmp; ) {
6879 struct sched_domain *parent = tmp->parent; 6895 struct sched_domain *parent = tmp->parent;
6880 if (!parent) 6896 if (!parent)
6881 break; 6897 break;
6898
6882 if (sd_parent_degenerate(tmp, parent)) { 6899 if (sd_parent_degenerate(tmp, parent)) {
6883 tmp->parent = parent->parent; 6900 tmp->parent = parent->parent;
6884 if (parent->parent) 6901 if (parent->parent)
6885 parent->parent->child = tmp; 6902 parent->parent->child = tmp;
6886 } 6903 } else
6904 tmp = tmp->parent;
6887 } 6905 }
6888 6906
6889 if (sd && sd_degenerate(sd)) { 6907 if (sd && sd_degenerate(sd)) {
@@ -7672,6 +7690,7 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
7672error: 7690error:
7673 free_sched_groups(cpu_map, tmpmask); 7691 free_sched_groups(cpu_map, tmpmask);
7674 SCHED_CPUMASK_FREE((void *)allmasks); 7692 SCHED_CPUMASK_FREE((void *)allmasks);
7693 kfree(rd);
7675 return -ENOMEM; 7694 return -ENOMEM;
7676#endif 7695#endif
7677} 7696}
@@ -7773,13 +7792,14 @@ static int dattrs_equal(struct sched_domain_attr *cur, int idx_cur,
7773 * 7792 *
7774 * The passed in 'doms_new' should be kmalloc'd. This routine takes 7793 * The passed in 'doms_new' should be kmalloc'd. This routine takes
7775 * ownership of it and will kfree it when done with it. If the caller 7794 * ownership of it and will kfree it when done with it. If the caller
7776 * failed the kmalloc call, then it can pass in doms_new == NULL, 7795 * failed the kmalloc call, then it can pass in doms_new == NULL &&
7777 * and partition_sched_domains() will fallback to the single partition 7796 * ndoms_new == 1, and partition_sched_domains() will fallback to
7778 * 'fallback_doms', it also forces the domains to be rebuilt. 7797 * the single partition 'fallback_doms', it also forces the domains
7798 * to be rebuilt.
7779 * 7799 *
7780 * If doms_new==NULL it will be replaced with cpu_online_map. 7800 * If doms_new == NULL it will be replaced with cpu_online_map.
7781 * ndoms_new==0 is a special case for destroying existing domains. 7801 * ndoms_new == 0 is a special case for destroying existing domains,
7782 * It will not create the default domain. 7802 * and it will not create the default domain.
7783 * 7803 *
7784 * Call with hotplug lock held 7804 * Call with hotplug lock held
7785 */ 7805 */
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/sched_debug.c b/kernel/sched_debug.c
index 5ae17762ec32..26ed8e3d1c15 100644
--- a/kernel/sched_debug.c
+++ b/kernel/sched_debug.c
@@ -144,7 +144,7 @@ void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq)
144 last = __pick_last_entity(cfs_rq); 144 last = __pick_last_entity(cfs_rq);
145 if (last) 145 if (last)
146 max_vruntime = last->vruntime; 146 max_vruntime = last->vruntime;
147 min_vruntime = rq->cfs.min_vruntime; 147 min_vruntime = cfs_rq->min_vruntime;
148 rq0_min_vruntime = per_cpu(runqueues, 0).cfs.min_vruntime; 148 rq0_min_vruntime = per_cpu(runqueues, 0).cfs.min_vruntime;
149 spin_unlock_irqrestore(&rq->lock, flags); 149 spin_unlock_irqrestore(&rq->lock, flags);
150 SEQ_printf(m, " .%-30s: %Ld.%06ld\n", "MIN_vruntime", 150 SEQ_printf(m, " .%-30s: %Ld.%06ld\n", "MIN_vruntime",
@@ -161,26 +161,8 @@ void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq)
161 SPLIT_NS(spread0)); 161 SPLIT_NS(spread0));
162 SEQ_printf(m, " .%-30s: %ld\n", "nr_running", cfs_rq->nr_running); 162 SEQ_printf(m, " .%-30s: %ld\n", "nr_running", cfs_rq->nr_running);
163 SEQ_printf(m, " .%-30s: %ld\n", "load", cfs_rq->load.weight); 163 SEQ_printf(m, " .%-30s: %ld\n", "load", cfs_rq->load.weight);
164#ifdef CONFIG_SCHEDSTATS
165#define P(n) SEQ_printf(m, " .%-30s: %d\n", #n, rq->n);
166
167 P(yld_exp_empty);
168 P(yld_act_empty);
169 P(yld_both_empty);
170 P(yld_count);
171 164
172 P(sched_switch); 165 SEQ_printf(m, " .%-30s: %d\n", "nr_spread_over",
173 P(sched_count);
174 P(sched_goidle);
175
176 P(ttwu_count);
177 P(ttwu_local);
178
179 P(bkl_count);
180
181#undef P
182#endif
183 SEQ_printf(m, " .%-30s: %ld\n", "nr_spread_over",
184 cfs_rq->nr_spread_over); 166 cfs_rq->nr_spread_over);
185#ifdef CONFIG_FAIR_GROUP_SCHED 167#ifdef CONFIG_FAIR_GROUP_SCHED
186#ifdef CONFIG_SMP 168#ifdef CONFIG_SMP
@@ -260,6 +242,25 @@ static void print_cpu(struct seq_file *m, int cpu)
260#undef P 242#undef P
261#undef PN 243#undef PN
262 244
245#ifdef CONFIG_SCHEDSTATS
246#define P(n) SEQ_printf(m, " .%-30s: %d\n", #n, rq->n);
247
248 P(yld_exp_empty);
249 P(yld_act_empty);
250 P(yld_both_empty);
251 P(yld_count);
252
253 P(sched_switch);
254 P(sched_count);
255 P(sched_goidle);
256
257 P(ttwu_count);
258 P(ttwu_local);
259
260 P(bkl_count);
261
262#undef P
263#endif
263 print_cfs_stats(m, cpu); 264 print_cfs_stats(m, cpu);
264 print_rt_stats(m, cpu); 265 print_rt_stats(m, cpu);
265 266
@@ -422,10 +423,11 @@ void proc_sched_show_task(struct task_struct *p, struct seq_file *m)
422#undef __P 423#undef __P
423 424
424 { 425 {
426 unsigned int this_cpu = raw_smp_processor_id();
425 u64 t0, t1; 427 u64 t0, t1;
426 428
427 t0 = sched_clock(); 429 t0 = cpu_clock(this_cpu);
428 t1 = sched_clock(); 430 t1 = cpu_clock(this_cpu);
429 SEQ_printf(m, "%-35s:%21Ld\n", 431 SEQ_printf(m, "%-35s:%21Ld\n",
430 "clock-delta", (long long)(t1-t0)); 432 "clock-delta", (long long)(t1-t0));
431 } 433 }
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index ce514afd78ff..98345e45b059 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -341,23 +341,20 @@ static void __dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
341 cfs_rq->rb_leftmost = next_node; 341 cfs_rq->rb_leftmost = next_node;
342 } 342 }
343 343
344 if (cfs_rq->next == se)
345 cfs_rq->next = NULL;
346
347 rb_erase(&se->run_node, &cfs_rq->tasks_timeline); 344 rb_erase(&se->run_node, &cfs_rq->tasks_timeline);
348} 345}
349 346
350static inline struct rb_node *first_fair(struct cfs_rq *cfs_rq)
351{
352 return cfs_rq->rb_leftmost;
353}
354
355static struct sched_entity *__pick_next_entity(struct cfs_rq *cfs_rq) 347static struct sched_entity *__pick_next_entity(struct cfs_rq *cfs_rq)
356{ 348{
357 return rb_entry(first_fair(cfs_rq), struct sched_entity, run_node); 349 struct rb_node *left = cfs_rq->rb_leftmost;
350
351 if (!left)
352 return NULL;
353
354 return rb_entry(left, struct sched_entity, run_node);
358} 355}
359 356
360static inline struct sched_entity *__pick_last_entity(struct cfs_rq *cfs_rq) 357static struct sched_entity *__pick_last_entity(struct cfs_rq *cfs_rq)
361{ 358{
362 struct rb_node *last = rb_last(&cfs_rq->tasks_timeline); 359 struct rb_node *last = rb_last(&cfs_rq->tasks_timeline);
363 360
@@ -719,6 +716,15 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int wakeup)
719 __enqueue_entity(cfs_rq, se); 716 __enqueue_entity(cfs_rq, se);
720} 717}
721 718
719static void clear_buddies(struct cfs_rq *cfs_rq, struct sched_entity *se)
720{
721 if (cfs_rq->last == se)
722 cfs_rq->last = NULL;
723
724 if (cfs_rq->next == se)
725 cfs_rq->next = NULL;
726}
727
722static void 728static void
723dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep) 729dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep)
724{ 730{
@@ -741,6 +747,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep)
741#endif 747#endif
742 } 748 }
743 749
750 clear_buddies(cfs_rq, se);
751
744 if (se != cfs_rq->curr) 752 if (se != cfs_rq->curr)
745 __dequeue_entity(cfs_rq, se); 753 __dequeue_entity(cfs_rq, se);
746 account_entity_dequeue(cfs_rq, se); 754 account_entity_dequeue(cfs_rq, se);
@@ -794,24 +802,15 @@ set_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *se)
794static int 802static int
795wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se); 803wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se);
796 804
797static struct sched_entity *
798pick_next(struct cfs_rq *cfs_rq, struct sched_entity *se)
799{
800 if (!cfs_rq->next || wakeup_preempt_entity(cfs_rq->next, se) == 1)
801 return se;
802
803 return cfs_rq->next;
804}
805
806static struct sched_entity *pick_next_entity(struct cfs_rq *cfs_rq) 805static struct sched_entity *pick_next_entity(struct cfs_rq *cfs_rq)
807{ 806{
808 struct sched_entity *se = NULL; 807 struct sched_entity *se = __pick_next_entity(cfs_rq);
809 808
810 if (first_fair(cfs_rq)) { 809 if (cfs_rq->next && wakeup_preempt_entity(cfs_rq->next, se) < 1)
811 se = __pick_next_entity(cfs_rq); 810 return cfs_rq->next;
812 se = pick_next(cfs_rq, se); 811
813 set_next_entity(cfs_rq, se); 812 if (cfs_rq->last && wakeup_preempt_entity(cfs_rq->last, se) < 1)
814 } 813 return cfs_rq->last;
815 814
816 return se; 815 return se;
817} 816}
@@ -983,6 +982,8 @@ static void yield_task_fair(struct rq *rq)
983 if (unlikely(cfs_rq->nr_running == 1)) 982 if (unlikely(cfs_rq->nr_running == 1))
984 return; 983 return;
985 984
985 clear_buddies(cfs_rq, se);
986
986 if (likely(!sysctl_sched_compat_yield) && curr->policy != SCHED_BATCH) { 987 if (likely(!sysctl_sched_compat_yield) && curr->policy != SCHED_BATCH) {
987 update_rq_clock(rq); 988 update_rq_clock(rq);
988 /* 989 /*
@@ -1325,26 +1326,53 @@ wakeup_preempt_entity(struct sched_entity *curr, struct sched_entity *se)
1325 return 0; 1326 return 0;
1326} 1327}
1327 1328
1329static void set_last_buddy(struct sched_entity *se)
1330{
1331 for_each_sched_entity(se)
1332 cfs_rq_of(se)->last = se;
1333}
1334
1335static void set_next_buddy(struct sched_entity *se)
1336{
1337 for_each_sched_entity(se)
1338 cfs_rq_of(se)->next = se;
1339}
1340
1328/* 1341/*
1329 * Preempt the current task with a newly woken task if needed: 1342 * Preempt the current task with a newly woken task if needed:
1330 */ 1343 */
1331static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int sync) 1344static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int sync)
1332{ 1345{
1333 struct task_struct *curr = rq->curr; 1346 struct task_struct *curr = rq->curr;
1334 struct cfs_rq *cfs_rq = task_cfs_rq(curr);
1335 struct sched_entity *se = &curr->se, *pse = &p->se; 1347 struct sched_entity *se = &curr->se, *pse = &p->se;
1336 1348
1337 if (unlikely(rt_prio(p->prio))) { 1349 if (unlikely(rt_prio(p->prio))) {
1350 struct cfs_rq *cfs_rq = task_cfs_rq(curr);
1351
1338 update_rq_clock(rq); 1352 update_rq_clock(rq);
1339 update_curr(cfs_rq); 1353 update_curr(cfs_rq);
1340 resched_task(curr); 1354 resched_task(curr);
1341 return; 1355 return;
1342 } 1356 }
1343 1357
1358 if (unlikely(p->sched_class != &fair_sched_class))
1359 return;
1360
1344 if (unlikely(se == pse)) 1361 if (unlikely(se == pse))
1345 return; 1362 return;
1346 1363
1347 cfs_rq_of(pse)->next = pse; 1364 /*
1365 * Only set the backward buddy when the current task is still on the
1366 * rq. This can happen when a wakeup gets interleaved with schedule on
1367 * the ->pre_schedule() or idle_balance() point, either of which can
1368 * drop the rq lock.
1369 *
1370 * Also, during early boot the idle thread is in the fair class, for
1371 * obvious reasons its a bad idea to schedule back to the idle thread.
1372 */
1373 if (sched_feat(LAST_BUDDY) && likely(se->on_rq && curr != rq->idle))
1374 set_last_buddy(se);
1375 set_next_buddy(pse);
1348 1376
1349 /* 1377 /*
1350 * We can come here with TIF_NEED_RESCHED already set from new task 1378 * We can come here with TIF_NEED_RESCHED already set from new task
@@ -1396,6 +1424,7 @@ static struct task_struct *pick_next_task_fair(struct rq *rq)
1396 1424
1397 do { 1425 do {
1398 se = pick_next_entity(cfs_rq); 1426 se = pick_next_entity(cfs_rq);
1427 set_next_entity(cfs_rq, se);
1399 cfs_rq = group_cfs_rq(se); 1428 cfs_rq = group_cfs_rq(se);
1400 } while (cfs_rq); 1429 } while (cfs_rq);
1401 1430
diff --git a/kernel/sched_features.h b/kernel/sched_features.h
index fda016218296..da5d93b5d2c6 100644
--- a/kernel/sched_features.h
+++ b/kernel/sched_features.h
@@ -12,3 +12,4 @@ SCHED_FEAT(LB_BIAS, 1)
12SCHED_FEAT(LB_WAKEUP_UPDATE, 1) 12SCHED_FEAT(LB_WAKEUP_UPDATE, 1)
13SCHED_FEAT(ASYM_EFF_LOAD, 1) 13SCHED_FEAT(ASYM_EFF_LOAD, 1)
14SCHED_FEAT(WAKEUP_OVERLAP, 0) 14SCHED_FEAT(WAKEUP_OVERLAP, 0)
15SCHED_FEAT(LAST_BUDDY, 1)
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h
index ee71bec1da66..7dbf72a2b02c 100644
--- a/kernel/sched_stats.h
+++ b/kernel/sched_stats.h
@@ -298,9 +298,11 @@ static inline void account_group_user_time(struct task_struct *tsk,
298{ 298{
299 struct signal_struct *sig; 299 struct signal_struct *sig;
300 300
301 sig = tsk->signal; 301 /* tsk == current, ensure it is safe to use ->signal */
302 if (unlikely(!sig)) 302 if (unlikely(tsk->exit_state))
303 return; 303 return;
304
305 sig = tsk->signal;
304 if (sig->cputime.totals) { 306 if (sig->cputime.totals) {
305 struct task_cputime *times; 307 struct task_cputime *times;
306 308
@@ -325,9 +327,11 @@ static inline void account_group_system_time(struct task_struct *tsk,
325{ 327{
326 struct signal_struct *sig; 328 struct signal_struct *sig;
327 329
328 sig = tsk->signal; 330 /* tsk == current, ensure it is safe to use ->signal */
329 if (unlikely(!sig)) 331 if (unlikely(tsk->exit_state))
330 return; 332 return;
333
334 sig = tsk->signal;
331 if (sig->cputime.totals) { 335 if (sig->cputime.totals) {
332 struct task_cputime *times; 336 struct task_cputime *times;
333 337
@@ -353,8 +357,11 @@ static inline void account_group_exec_runtime(struct task_struct *tsk,
353 struct signal_struct *sig; 357 struct signal_struct *sig;
354 358
355 sig = tsk->signal; 359 sig = tsk->signal;
360 /* see __exit_signal()->task_rq_unlock_wait() */
361 barrier();
356 if (unlikely(!sig)) 362 if (unlikely(!sig))
357 return; 363 return;
364
358 if (sig->cputime.totals) { 365 if (sig->cputime.totals) {
359 struct task_cputime *times; 366 struct task_cputime *times;
360 367
diff --git a/kernel/smp.c b/kernel/smp.c
index f362a8553777..75c8dde58c55 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -51,10 +51,6 @@ static void csd_flag_wait(struct call_single_data *data)
51{ 51{
52 /* Wait for response */ 52 /* Wait for response */
53 do { 53 do {
54 /*
55 * We need to see the flags store in the IPI handler
56 */
57 smp_mb();
58 if (!(data->flags & CSD_FLAG_WAIT)) 54 if (!(data->flags & CSD_FLAG_WAIT))
59 break; 55 break;
60 cpu_relax(); 56 cpu_relax();
@@ -76,6 +72,11 @@ static void generic_exec_single(int cpu, struct call_single_data *data)
76 list_add_tail(&data->list, &dst->list); 72 list_add_tail(&data->list, &dst->list);
77 spin_unlock_irqrestore(&dst->lock, flags); 73 spin_unlock_irqrestore(&dst->lock, flags);
78 74
75 /*
76 * Make the list addition visible before sending the ipi.
77 */
78 smp_mb();
79
79 if (ipi) 80 if (ipi)
80 arch_send_call_function_single_ipi(cpu); 81 arch_send_call_function_single_ipi(cpu);
81 82
@@ -157,7 +158,7 @@ void generic_smp_call_function_single_interrupt(void)
157 * Need to see other stores to list head for checking whether 158 * Need to see other stores to list head for checking whether
158 * list is empty without holding q->lock 159 * list is empty without holding q->lock
159 */ 160 */
160 smp_mb(); 161 smp_read_barrier_depends();
161 while (!list_empty(&q->list)) { 162 while (!list_empty(&q->list)) {
162 unsigned int data_flags; 163 unsigned int data_flags;
163 164
@@ -191,7 +192,7 @@ void generic_smp_call_function_single_interrupt(void)
191 /* 192 /*
192 * See comment on outer loop 193 * See comment on outer loop
193 */ 194 */
194 smp_mb(); 195 smp_read_barrier_depends();
195 } 196 }
196} 197}
197 198
@@ -370,6 +371,11 @@ int smp_call_function_mask(cpumask_t mask, void (*func)(void *), void *info,
370 list_add_tail_rcu(&data->csd.list, &call_function_queue); 371 list_add_tail_rcu(&data->csd.list, &call_function_queue);
371 spin_unlock_irqrestore(&call_function_lock, flags); 372 spin_unlock_irqrestore(&call_function_lock, flags);
372 373
374 /*
375 * Make the list addition visible before sending the ipi.
376 */
377 smp_mb();
378
373 /* Send a message to all CPUs in the map */ 379 /* Send a message to all CPUs in the map */
374 arch_send_call_function_ipi(mask); 380 arch_send_call_function_ipi(mask);
375 381
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 7110daeb9a90..e7c69a720d69 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -269,10 +269,11 @@ void irq_enter(void)
269{ 269{
270 int cpu = smp_processor_id(); 270 int cpu = smp_processor_id();
271 271
272 if (idle_cpu(cpu) && !in_interrupt()) 272 if (idle_cpu(cpu) && !in_interrupt()) {
273 __irq_enter();
273 tick_check_idle(cpu); 274 tick_check_idle(cpu);
274 275 } else
275 __irq_enter(); 276 __irq_enter();
276} 277}
277 278
278#ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED 279#ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED
diff --git a/kernel/softlockup.c b/kernel/softlockup.c
index 3953e4aed733..dc0b3be6b7d5 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/stop_machine.c b/kernel/stop_machine.c
index 9bc4c00872c9..24e8ceacc388 100644
--- a/kernel/stop_machine.c
+++ b/kernel/stop_machine.c
@@ -112,7 +112,7 @@ static int chill(void *unused)
112int __stop_machine(int (*fn)(void *), void *data, const cpumask_t *cpus) 112int __stop_machine(int (*fn)(void *), void *data, const cpumask_t *cpus)
113{ 113{
114 struct work_struct *sm_work; 114 struct work_struct *sm_work;
115 int i; 115 int i, ret;
116 116
117 /* Set up initial state. */ 117 /* Set up initial state. */
118 mutex_lock(&lock); 118 mutex_lock(&lock);
@@ -137,8 +137,9 @@ int __stop_machine(int (*fn)(void *), void *data, const cpumask_t *cpus)
137 /* This will release the thread on our CPU. */ 137 /* This will release the thread on our CPU. */
138 put_cpu(); 138 put_cpu();
139 flush_workqueue(stop_machine_wq); 139 flush_workqueue(stop_machine_wq);
140 ret = active.fnret;
140 mutex_unlock(&lock); 141 mutex_unlock(&lock);
141 return active.fnret; 142 return ret;
142} 143}
143 144
144int stop_machine(int (*fn)(void *), void *data, const cpumask_t *cpus) 145int stop_machine(int (*fn)(void *), void *data, const cpumask_t *cpus)
diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
index a77b27b11b04..e14a23281707 100644
--- a/kernel/sys_ni.c
+++ b/kernel/sys_ni.c
@@ -31,7 +31,7 @@ cond_syscall(sys_socketpair);
31cond_syscall(sys_bind); 31cond_syscall(sys_bind);
32cond_syscall(sys_listen); 32cond_syscall(sys_listen);
33cond_syscall(sys_accept); 33cond_syscall(sys_accept);
34cond_syscall(sys_paccept); 34cond_syscall(sys_accept4);
35cond_syscall(sys_connect); 35cond_syscall(sys_connect);
36cond_syscall(sys_getsockname); 36cond_syscall(sys_getsockname);
37cond_syscall(sys_getpeername); 37cond_syscall(sys_getpeername);
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/tick-sched.c b/kernel/time/tick-sched.c
index 5bbb1044f847..342fc9ccab46 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -568,6 +568,9 @@ static void tick_nohz_switch_to_nohz(void)
568 */ 568 */
569static void tick_nohz_kick_tick(int cpu) 569static void tick_nohz_kick_tick(int cpu)
570{ 570{
571#if 0
572 /* Switch back to 2.6.27 behaviour */
573
571 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); 574 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
572 ktime_t delta, now; 575 ktime_t delta, now;
573 576
@@ -584,6 +587,7 @@ static void tick_nohz_kick_tick(int cpu)
584 return; 587 return;
585 588
586 tick_nohz_restart(ts, now); 589 tick_nohz_restart(ts, now);
590#endif
587} 591}
588 592
589#else 593#else
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/timer.c b/kernel/timer.c
index 56becf373c58..dbd50fabe4c7 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -112,27 +112,8 @@ timer_set_base(struct timer_list *timer, struct tvec_base *new_base)
112 tbase_get_deferrable(timer->base)); 112 tbase_get_deferrable(timer->base));
113} 113}
114 114
115/** 115static unsigned long round_jiffies_common(unsigned long j, int cpu,
116 * __round_jiffies - function to round jiffies to a full second 116 bool force_up)
117 * @j: the time in (absolute) jiffies that should be rounded
118 * @cpu: the processor number on which the timeout will happen
119 *
120 * __round_jiffies() rounds an absolute time in the future (in jiffies)
121 * up or down to (approximately) full seconds. This is useful for timers
122 * for which the exact time they fire does not matter too much, as long as
123 * they fire approximately every X seconds.
124 *
125 * By rounding these timers to whole seconds, all such timers will fire
126 * at the same time, rather than at various times spread out. The goal
127 * of this is to have the CPU wake up less, which saves power.
128 *
129 * The exact rounding is skewed for each processor to avoid all
130 * processors firing at the exact same time, which could lead
131 * to lock contention or spurious cache line bouncing.
132 *
133 * The return value is the rounded version of the @j parameter.
134 */
135unsigned long __round_jiffies(unsigned long j, int cpu)
136{ 117{
137 int rem; 118 int rem;
138 unsigned long original = j; 119 unsigned long original = j;
@@ -154,8 +135,9 @@ unsigned long __round_jiffies(unsigned long j, int cpu)
154 * due to delays of the timer irq, long irq off times etc etc) then 135 * due to delays of the timer irq, long irq off times etc etc) then
155 * we should round down to the whole second, not up. Use 1/4th second 136 * we should round down to the whole second, not up. Use 1/4th second
156 * as cutoff for this rounding as an extreme upper bound for this. 137 * as cutoff for this rounding as an extreme upper bound for this.
138 * But never round down if @force_up is set.
157 */ 139 */
158 if (rem < HZ/4) /* round down */ 140 if (rem < HZ/4 && !force_up) /* round down */
159 j = j - rem; 141 j = j - rem;
160 else /* round up */ 142 else /* round up */
161 j = j - rem + HZ; 143 j = j - rem + HZ;
@@ -167,6 +149,31 @@ unsigned long __round_jiffies(unsigned long j, int cpu)
167 return original; 149 return original;
168 return j; 150 return j;
169} 151}
152
153/**
154 * __round_jiffies - function to round jiffies to a full second
155 * @j: the time in (absolute) jiffies that should be rounded
156 * @cpu: the processor number on which the timeout will happen
157 *
158 * __round_jiffies() rounds an absolute time in the future (in jiffies)
159 * up or down to (approximately) full seconds. This is useful for timers
160 * for which the exact time they fire does not matter too much, as long as
161 * they fire approximately every X seconds.
162 *
163 * By rounding these timers to whole seconds, all such timers will fire
164 * at the same time, rather than at various times spread out. The goal
165 * of this is to have the CPU wake up less, which saves power.
166 *
167 * The exact rounding is skewed for each processor to avoid all
168 * processors firing at the exact same time, which could lead
169 * to lock contention or spurious cache line bouncing.
170 *
171 * The return value is the rounded version of the @j parameter.
172 */
173unsigned long __round_jiffies(unsigned long j, int cpu)
174{
175 return round_jiffies_common(j, cpu, false);
176}
170EXPORT_SYMBOL_GPL(__round_jiffies); 177EXPORT_SYMBOL_GPL(__round_jiffies);
171 178
172/** 179/**
@@ -191,13 +198,10 @@ EXPORT_SYMBOL_GPL(__round_jiffies);
191 */ 198 */
192unsigned long __round_jiffies_relative(unsigned long j, int cpu) 199unsigned long __round_jiffies_relative(unsigned long j, int cpu)
193{ 200{
194 /* 201 unsigned long j0 = jiffies;
195 * In theory the following code can skip a jiffy in case jiffies 202
196 * increments right between the addition and the later subtraction. 203 /* Use j0 because jiffies might change while we run */
197 * However since the entire point of this function is to use approximate 204 return round_jiffies_common(j + j0, cpu, false) - j0;
198 * timeouts, it's entirely ok to not handle that.
199 */
200 return __round_jiffies(j + jiffies, cpu) - jiffies;
201} 205}
202EXPORT_SYMBOL_GPL(__round_jiffies_relative); 206EXPORT_SYMBOL_GPL(__round_jiffies_relative);
203 207
@@ -218,7 +222,7 @@ EXPORT_SYMBOL_GPL(__round_jiffies_relative);
218 */ 222 */
219unsigned long round_jiffies(unsigned long j) 223unsigned long round_jiffies(unsigned long j)
220{ 224{
221 return __round_jiffies(j, raw_smp_processor_id()); 225 return round_jiffies_common(j, raw_smp_processor_id(), false);
222} 226}
223EXPORT_SYMBOL_GPL(round_jiffies); 227EXPORT_SYMBOL_GPL(round_jiffies);
224 228
@@ -243,6 +247,71 @@ unsigned long round_jiffies_relative(unsigned long j)
243} 247}
244EXPORT_SYMBOL_GPL(round_jiffies_relative); 248EXPORT_SYMBOL_GPL(round_jiffies_relative);
245 249
250/**
251 * __round_jiffies_up - function to round jiffies up to a full second
252 * @j: the time in (absolute) jiffies that should be rounded
253 * @cpu: the processor number on which the timeout will happen
254 *
255 * This is the same as __round_jiffies() except that it will never
256 * round down. This is useful for timeouts for which the exact time
257 * of firing does not matter too much, as long as they don't fire too
258 * early.
259 */
260unsigned long __round_jiffies_up(unsigned long j, int cpu)
261{
262 return round_jiffies_common(j, cpu, true);
263}
264EXPORT_SYMBOL_GPL(__round_jiffies_up);
265
266/**
267 * __round_jiffies_up_relative - function to round jiffies up to a full second
268 * @j: the time in (relative) jiffies that should be rounded
269 * @cpu: the processor number on which the timeout will happen
270 *
271 * This is the same as __round_jiffies_relative() except that it will never
272 * round down. This is useful for timeouts for which the exact time
273 * of firing does not matter too much, as long as they don't fire too
274 * early.
275 */
276unsigned long __round_jiffies_up_relative(unsigned long j, int cpu)
277{
278 unsigned long j0 = jiffies;
279
280 /* Use j0 because jiffies might change while we run */
281 return round_jiffies_common(j + j0, cpu, true) - j0;
282}
283EXPORT_SYMBOL_GPL(__round_jiffies_up_relative);
284
285/**
286 * round_jiffies_up - function to round jiffies up to a full second
287 * @j: the time in (absolute) jiffies that should be rounded
288 *
289 * This is the same as round_jiffies() except that it will never
290 * round down. This is useful for timeouts for which the exact time
291 * of firing does not matter too much, as long as they don't fire too
292 * early.
293 */
294unsigned long round_jiffies_up(unsigned long j)
295{
296 return round_jiffies_common(j, raw_smp_processor_id(), true);
297}
298EXPORT_SYMBOL_GPL(round_jiffies_up);
299
300/**
301 * round_jiffies_up_relative - function to round jiffies up to a full second
302 * @j: the time in (relative) jiffies that should be rounded
303 *
304 * This is the same as round_jiffies_relative() except that it will never
305 * round down. This is useful for timeouts for which the exact time
306 * of firing does not matter too much, as long as they don't fire too
307 * early.
308 */
309unsigned long round_jiffies_up_relative(unsigned long j)
310{
311 return __round_jiffies_up_relative(j, raw_smp_processor_id());
312}
313EXPORT_SYMBOL_GPL(round_jiffies_up_relative);
314
246 315
247static inline void set_running_timer(struct tvec_base *base, 316static inline void set_running_timer(struct tvec_base *base,
248 struct timer_list *timer) 317 struct timer_list *timer)
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index b58f43bec363..33dbefd471e8 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -25,7 +25,7 @@ config TRACING
25 bool 25 bool
26 select DEBUG_FS 26 select DEBUG_FS
27 select RING_BUFFER 27 select RING_BUFFER
28 select STACKTRACE 28 select STACKTRACE if STACKTRACE_SUPPORT
29 select TRACEPOINTS 29 select TRACEPOINTS
30 select NOP_TRACER 30 select NOP_TRACER
31 31
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 4a39d24568c8..78db083390f0 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -185,7 +185,6 @@ enum {
185}; 185};
186 186
187static int ftrace_filtered; 187static int ftrace_filtered;
188static int tracing_on;
189 188
190static LIST_HEAD(ftrace_new_addrs); 189static LIST_HEAD(ftrace_new_addrs);
191 190
@@ -327,96 +326,89 @@ ftrace_record_ip(unsigned long ip)
327 326
328static int 327static int
329__ftrace_replace_code(struct dyn_ftrace *rec, 328__ftrace_replace_code(struct dyn_ftrace *rec,
330 unsigned char *old, unsigned char *new, int enable) 329 unsigned char *nop, int enable)
331{ 330{
332 unsigned long ip, fl; 331 unsigned long ip, fl;
332 unsigned char *call, *old, *new;
333 333
334 ip = rec->ip; 334 ip = rec->ip;
335 335
336 if (ftrace_filtered && enable) { 336 /*
337 * If this record is not to be traced and
338 * it is not enabled then do nothing.
339 *
340 * If this record is not to be traced and
341 * it is enabled then disabled it.
342 *
343 */
344 if (rec->flags & FTRACE_FL_NOTRACE) {
345 if (rec->flags & FTRACE_FL_ENABLED)
346 rec->flags &= ~FTRACE_FL_ENABLED;
347 else
348 return 0;
349
350 } else if (ftrace_filtered && enable) {
337 /* 351 /*
338 * If filtering is on: 352 * Filtering is on:
339 *
340 * If this record is set to be filtered and
341 * is enabled then do nothing.
342 *
343 * If this record is set to be filtered and
344 * it is not enabled, enable it.
345 *
346 * If this record is not set to be filtered
347 * and it is not enabled do nothing.
348 *
349 * If this record is set not to trace then
350 * do nothing.
351 *
352 * If this record is set not to trace and
353 * it is enabled then disable it.
354 *
355 * If this record is not set to be filtered and
356 * it is enabled, disable it.
357 */ 353 */
358 354
359 fl = rec->flags & (FTRACE_FL_FILTER | FTRACE_FL_NOTRACE | 355 fl = rec->flags & (FTRACE_FL_FILTER | FTRACE_FL_ENABLED);
360 FTRACE_FL_ENABLED);
361 356
362 if ((fl == (FTRACE_FL_FILTER | FTRACE_FL_ENABLED)) || 357 /* Record is filtered and enabled, do nothing */
363 (fl == (FTRACE_FL_FILTER | FTRACE_FL_NOTRACE)) || 358 if (fl == (FTRACE_FL_FILTER | FTRACE_FL_ENABLED))
364 !fl || (fl == FTRACE_FL_NOTRACE))
365 return 0; 359 return 0;
366 360
367 /* 361 /* Record is not filtered and is not enabled do nothing */
368 * If it is enabled disable it, 362 if (!fl)
369 * otherwise enable it! 363 return 0;
370 */ 364
371 if (fl & FTRACE_FL_ENABLED) { 365 /* Record is not filtered but enabled, disable it */
372 /* swap new and old */ 366 if (fl == FTRACE_FL_ENABLED)
373 new = old;
374 old = ftrace_call_replace(ip, FTRACE_ADDR);
375 rec->flags &= ~FTRACE_FL_ENABLED; 367 rec->flags &= ~FTRACE_FL_ENABLED;
376 } else { 368 else
377 new = ftrace_call_replace(ip, FTRACE_ADDR); 369 /* Otherwise record is filtered but not enabled, enable it */
378 rec->flags |= FTRACE_FL_ENABLED; 370 rec->flags |= FTRACE_FL_ENABLED;
379 }
380 } else { 371 } else {
372 /* Disable or not filtered */
381 373
382 if (enable) { 374 if (enable) {
383 /* 375 /* if record is enabled, do nothing */
384 * If this record is set not to trace and is
385 * not enabled, do nothing.
386 */
387 fl = rec->flags & (FTRACE_FL_NOTRACE | FTRACE_FL_ENABLED);
388 if (fl == FTRACE_FL_NOTRACE)
389 return 0;
390
391 new = ftrace_call_replace(ip, FTRACE_ADDR);
392 } else
393 old = ftrace_call_replace(ip, FTRACE_ADDR);
394
395 if (enable) {
396 if (rec->flags & FTRACE_FL_ENABLED) 376 if (rec->flags & FTRACE_FL_ENABLED)
397 return 0; 377 return 0;
378
398 rec->flags |= FTRACE_FL_ENABLED; 379 rec->flags |= FTRACE_FL_ENABLED;
380
399 } else { 381 } else {
382
383 /* if record is not enabled do nothing */
400 if (!(rec->flags & FTRACE_FL_ENABLED)) 384 if (!(rec->flags & FTRACE_FL_ENABLED))
401 return 0; 385 return 0;
386
402 rec->flags &= ~FTRACE_FL_ENABLED; 387 rec->flags &= ~FTRACE_FL_ENABLED;
403 } 388 }
404 } 389 }
405 390
391 call = ftrace_call_replace(ip, FTRACE_ADDR);
392
393 if (rec->flags & FTRACE_FL_ENABLED) {
394 old = nop;
395 new = call;
396 } else {
397 old = call;
398 new = nop;
399 }
400
406 return ftrace_modify_code(ip, old, new); 401 return ftrace_modify_code(ip, old, new);
407} 402}
408 403
409static void ftrace_replace_code(int enable) 404static void ftrace_replace_code(int enable)
410{ 405{
411 int i, failed; 406 int i, failed;
412 unsigned char *new = NULL, *old = NULL; 407 unsigned char *nop = NULL;
413 struct dyn_ftrace *rec; 408 struct dyn_ftrace *rec;
414 struct ftrace_page *pg; 409 struct ftrace_page *pg;
415 410
416 if (enable) 411 nop = ftrace_nop_replace();
417 old = ftrace_nop_replace();
418 else
419 new = ftrace_nop_replace();
420 412
421 for (pg = ftrace_pages_start; pg; pg = pg->next) { 413 for (pg = ftrace_pages_start; pg; pg = pg->next) {
422 for (i = 0; i < pg->index; i++) { 414 for (i = 0; i < pg->index; i++) {
@@ -434,7 +426,7 @@ static void ftrace_replace_code(int enable)
434 unfreeze_record(rec); 426 unfreeze_record(rec);
435 } 427 }
436 428
437 failed = __ftrace_replace_code(rec, old, new, enable); 429 failed = __ftrace_replace_code(rec, nop, enable);
438 if (failed && (rec->flags & FTRACE_FL_CONVERTED)) { 430 if (failed && (rec->flags & FTRACE_FL_CONVERTED)) {
439 rec->flags |= FTRACE_FL_FAILED; 431 rec->flags |= FTRACE_FL_FAILED;
440 if ((system_state == SYSTEM_BOOTING) || 432 if ((system_state == SYSTEM_BOOTING) ||
@@ -506,13 +498,10 @@ static int __ftrace_modify_code(void *data)
506{ 498{
507 int *command = data; 499 int *command = data;
508 500
509 if (*command & FTRACE_ENABLE_CALLS) { 501 if (*command & FTRACE_ENABLE_CALLS)
510 ftrace_replace_code(1); 502 ftrace_replace_code(1);
511 tracing_on = 1; 503 else if (*command & FTRACE_DISABLE_CALLS)
512 } else if (*command & FTRACE_DISABLE_CALLS) {
513 ftrace_replace_code(0); 504 ftrace_replace_code(0);
514 tracing_on = 0;
515 }
516 505
517 if (*command & FTRACE_UPDATE_TRACE_FUNC) 506 if (*command & FTRACE_UPDATE_TRACE_FUNC)
518 ftrace_update_ftrace_func(ftrace_trace_function); 507 ftrace_update_ftrace_func(ftrace_trace_function);
@@ -538,8 +527,7 @@ static void ftrace_startup(void)
538 527
539 mutex_lock(&ftrace_start_lock); 528 mutex_lock(&ftrace_start_lock);
540 ftrace_start++; 529 ftrace_start++;
541 if (ftrace_start == 1) 530 command |= FTRACE_ENABLE_CALLS;
542 command |= FTRACE_ENABLE_CALLS;
543 531
544 if (saved_ftrace_func != ftrace_trace_function) { 532 if (saved_ftrace_func != ftrace_trace_function) {
545 saved_ftrace_func = ftrace_trace_function; 533 saved_ftrace_func = ftrace_trace_function;
@@ -677,7 +665,7 @@ static int __init ftrace_dyn_table_alloc(unsigned long num_to_init)
677 665
678 cnt = num_to_init / ENTRIES_PER_PAGE; 666 cnt = num_to_init / ENTRIES_PER_PAGE;
679 pr_info("ftrace: allocating %ld entries in %d pages\n", 667 pr_info("ftrace: allocating %ld entries in %d pages\n",
680 num_to_init, cnt); 668 num_to_init, cnt + 1);
681 669
682 for (i = 0; i < cnt; i++) { 670 for (i = 0; i < cnt; i++) {
683 pg->next = (void *)get_zeroed_page(GFP_KERNEL); 671 pg->next = (void *)get_zeroed_page(GFP_KERNEL);
@@ -738,6 +726,9 @@ t_next(struct seq_file *m, void *v, loff_t *pos)
738 ((iter->flags & FTRACE_ITER_FAILURES) && 726 ((iter->flags & FTRACE_ITER_FAILURES) &&
739 !(rec->flags & FTRACE_FL_FAILED)) || 727 !(rec->flags & FTRACE_FL_FAILED)) ||
740 728
729 ((iter->flags & FTRACE_ITER_FILTER) &&
730 !(rec->flags & FTRACE_FL_FILTER)) ||
731
741 ((iter->flags & FTRACE_ITER_NOTRACE) && 732 ((iter->flags & FTRACE_ITER_NOTRACE) &&
742 !(rec->flags & FTRACE_FL_NOTRACE))) { 733 !(rec->flags & FTRACE_FL_NOTRACE))) {
743 rec = NULL; 734 rec = NULL;
@@ -757,13 +748,11 @@ static void *t_start(struct seq_file *m, loff_t *pos)
757 void *p = NULL; 748 void *p = NULL;
758 loff_t l = -1; 749 loff_t l = -1;
759 750
760 if (*pos != iter->pos) { 751 if (*pos > iter->pos)
761 for (p = t_next(m, p, &l); p && l < *pos; p = t_next(m, p, &l)) 752 *pos = iter->pos;
762 ; 753
763 } else { 754 l = *pos;
764 l = *pos; 755 p = t_next(m, p, &l);
765 p = t_next(m, p, &l);
766 }
767 756
768 return p; 757 return p;
769} 758}
@@ -774,15 +763,21 @@ static void t_stop(struct seq_file *m, void *p)
774 763
775static int t_show(struct seq_file *m, void *v) 764static int t_show(struct seq_file *m, void *v)
776{ 765{
766 struct ftrace_iterator *iter = m->private;
777 struct dyn_ftrace *rec = v; 767 struct dyn_ftrace *rec = v;
778 char str[KSYM_SYMBOL_LEN]; 768 char str[KSYM_SYMBOL_LEN];
769 int ret = 0;
779 770
780 if (!rec) 771 if (!rec)
781 return 0; 772 return 0;
782 773
783 kallsyms_lookup(rec->ip, NULL, NULL, NULL, str); 774 kallsyms_lookup(rec->ip, NULL, NULL, NULL, str);
784 775
785 seq_printf(m, "%s\n", str); 776 ret = seq_printf(m, "%s\n", str);
777 if (ret < 0) {
778 iter->pos--;
779 iter->idx--;
780 }
786 781
787 return 0; 782 return 0;
788} 783}
@@ -808,7 +803,7 @@ ftrace_avail_open(struct inode *inode, struct file *file)
808 return -ENOMEM; 803 return -ENOMEM;
809 804
810 iter->pg = ftrace_pages_start; 805 iter->pg = ftrace_pages_start;
811 iter->pos = -1; 806 iter->pos = 0;
812 807
813 ret = seq_open(file, &show_ftrace_seq_ops); 808 ret = seq_open(file, &show_ftrace_seq_ops);
814 if (!ret) { 809 if (!ret) {
@@ -895,7 +890,7 @@ ftrace_regex_open(struct inode *inode, struct file *file, int enable)
895 890
896 if (file->f_mode & FMODE_READ) { 891 if (file->f_mode & FMODE_READ) {
897 iter->pg = ftrace_pages_start; 892 iter->pg = ftrace_pages_start;
898 iter->pos = -1; 893 iter->pos = 0;
899 iter->flags = enable ? FTRACE_ITER_FILTER : 894 iter->flags = enable ? FTRACE_ITER_FILTER :
900 FTRACE_ITER_NOTRACE; 895 FTRACE_ITER_NOTRACE;
901 896
@@ -1186,7 +1181,7 @@ ftrace_regex_release(struct inode *inode, struct file *file, int enable)
1186 1181
1187 mutex_lock(&ftrace_sysctl_lock); 1182 mutex_lock(&ftrace_sysctl_lock);
1188 mutex_lock(&ftrace_start_lock); 1183 mutex_lock(&ftrace_start_lock);
1189 if (iter->filtered && ftrace_start && ftrace_enabled) 1184 if (ftrace_start && ftrace_enabled)
1190 ftrace_run_update_code(FTRACE_ENABLE_CALLS); 1185 ftrace_run_update_code(FTRACE_ENABLE_CALLS);
1191 mutex_unlock(&ftrace_start_lock); 1186 mutex_unlock(&ftrace_start_lock);
1192 mutex_unlock(&ftrace_sysctl_lock); 1187 mutex_unlock(&ftrace_sysctl_lock);
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index cedf4e268285..668bbb5ef2bd 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -16,14 +16,49 @@
16#include <linux/list.h> 16#include <linux/list.h>
17#include <linux/fs.h> 17#include <linux/fs.h>
18 18
19#include "trace.h"
20
21/* Global flag to disable all recording to ring buffers */
22static int ring_buffers_off __read_mostly;
23
24/**
25 * tracing_on - enable all tracing buffers
26 *
27 * This function enables all tracing buffers that may have been
28 * disabled with tracing_off.
29 */
30void tracing_on(void)
31{
32 ring_buffers_off = 0;
33}
34
35/**
36 * tracing_off - turn off all tracing buffers
37 *
38 * This function stops all tracing buffers from recording data.
39 * It does not disable any overhead the tracers themselves may
40 * be causing. This function simply causes all recording to
41 * the ring buffers to fail.
42 */
43void tracing_off(void)
44{
45 ring_buffers_off = 1;
46}
47
19/* Up this if you want to test the TIME_EXTENTS and normalization */ 48/* Up this if you want to test the TIME_EXTENTS and normalization */
20#define DEBUG_SHIFT 0 49#define DEBUG_SHIFT 0
21 50
22/* FIXME!!! */ 51/* FIXME!!! */
23u64 ring_buffer_time_stamp(int cpu) 52u64 ring_buffer_time_stamp(int cpu)
24{ 53{
54 u64 time;
55
56 preempt_disable_notrace();
25 /* shift to debug/test normalization and TIME_EXTENTS */ 57 /* shift to debug/test normalization and TIME_EXTENTS */
26 return sched_clock() << DEBUG_SHIFT; 58 time = sched_clock() << DEBUG_SHIFT;
59 preempt_enable_notrace();
60
61 return time;
27} 62}
28 63
29void ring_buffer_normalize_time_stamp(int cpu, u64 *ts) 64void ring_buffer_normalize_time_stamp(int cpu, u64 *ts)
@@ -503,6 +538,12 @@ int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size)
503 LIST_HEAD(pages); 538 LIST_HEAD(pages);
504 int i, cpu; 539 int i, cpu;
505 540
541 /*
542 * Always succeed at resizing a non-existent buffer:
543 */
544 if (!buffer)
545 return size;
546
506 size = DIV_ROUND_UP(size, BUF_PAGE_SIZE); 547 size = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
507 size *= BUF_PAGE_SIZE; 548 size *= BUF_PAGE_SIZE;
508 buffer_size = buffer->pages * BUF_PAGE_SIZE; 549 buffer_size = buffer->pages * BUF_PAGE_SIZE;
@@ -576,6 +617,7 @@ int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size)
576 list_del_init(&page->list); 617 list_del_init(&page->list);
577 free_buffer_page(page); 618 free_buffer_page(page);
578 } 619 }
620 mutex_unlock(&buffer->mutex);
579 return -ENOMEM; 621 return -ENOMEM;
580} 622}
581 623
@@ -1022,8 +1064,23 @@ rb_reserve_next_event(struct ring_buffer_per_cpu *cpu_buffer,
1022 struct ring_buffer_event *event; 1064 struct ring_buffer_event *event;
1023 u64 ts, delta; 1065 u64 ts, delta;
1024 int commit = 0; 1066 int commit = 0;
1067 int nr_loops = 0;
1025 1068
1026 again: 1069 again:
1070 /*
1071 * We allow for interrupts to reenter here and do a trace.
1072 * If one does, it will cause this original code to loop
1073 * back here. Even with heavy interrupts happening, this
1074 * should only happen a few times in a row. If this happens
1075 * 1000 times in a row, there must be either an interrupt
1076 * storm or we have something buggy.
1077 * Bail!
1078 */
1079 if (unlikely(++nr_loops > 1000)) {
1080 RB_WARN_ON(cpu_buffer, 1);
1081 return NULL;
1082 }
1083
1027 ts = ring_buffer_time_stamp(cpu_buffer->cpu); 1084 ts = ring_buffer_time_stamp(cpu_buffer->cpu);
1028 1085
1029 /* 1086 /*
@@ -1045,7 +1102,7 @@ rb_reserve_next_event(struct ring_buffer_per_cpu *cpu_buffer,
1045 1102
1046 /* Did the write stamp get updated already? */ 1103 /* Did the write stamp get updated already? */
1047 if (unlikely(ts < cpu_buffer->write_stamp)) 1104 if (unlikely(ts < cpu_buffer->write_stamp))
1048 goto again; 1105 delta = 0;
1049 1106
1050 if (test_time_stamp(delta)) { 1107 if (test_time_stamp(delta)) {
1051 1108
@@ -1118,6 +1175,9 @@ ring_buffer_lock_reserve(struct ring_buffer *buffer,
1118 struct ring_buffer_event *event; 1175 struct ring_buffer_event *event;
1119 int cpu, resched; 1176 int cpu, resched;
1120 1177
1178 if (ring_buffers_off)
1179 return NULL;
1180
1121 if (atomic_read(&buffer->record_disabled)) 1181 if (atomic_read(&buffer->record_disabled))
1122 return NULL; 1182 return NULL;
1123 1183
@@ -1155,7 +1215,7 @@ ring_buffer_lock_reserve(struct ring_buffer *buffer,
1155 1215
1156 out: 1216 out:
1157 if (resched) 1217 if (resched)
1158 preempt_enable_notrace(); 1218 preempt_enable_no_resched_notrace();
1159 else 1219 else
1160 preempt_enable_notrace(); 1220 preempt_enable_notrace();
1161 return NULL; 1221 return NULL;
@@ -1234,6 +1294,9 @@ int ring_buffer_write(struct ring_buffer *buffer,
1234 int ret = -EBUSY; 1294 int ret = -EBUSY;
1235 int cpu, resched; 1295 int cpu, resched;
1236 1296
1297 if (ring_buffers_off)
1298 return -EBUSY;
1299
1237 if (atomic_read(&buffer->record_disabled)) 1300 if (atomic_read(&buffer->record_disabled))
1238 return -EBUSY; 1301 return -EBUSY;
1239 1302
@@ -1532,10 +1595,23 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
1532{ 1595{
1533 struct buffer_page *reader = NULL; 1596 struct buffer_page *reader = NULL;
1534 unsigned long flags; 1597 unsigned long flags;
1598 int nr_loops = 0;
1535 1599
1536 spin_lock_irqsave(&cpu_buffer->lock, flags); 1600 spin_lock_irqsave(&cpu_buffer->lock, flags);
1537 1601
1538 again: 1602 again:
1603 /*
1604 * This should normally only loop twice. But because the
1605 * start of the reader inserts an empty page, it causes
1606 * a case where we will loop three times. There should be no
1607 * reason to loop four times (that I know of).
1608 */
1609 if (unlikely(++nr_loops > 3)) {
1610 RB_WARN_ON(cpu_buffer, 1);
1611 reader = NULL;
1612 goto out;
1613 }
1614
1539 reader = cpu_buffer->reader_page; 1615 reader = cpu_buffer->reader_page;
1540 1616
1541 /* If there's more to read, return this page */ 1617 /* If there's more to read, return this page */
@@ -1665,6 +1741,7 @@ ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts)
1665 struct ring_buffer_per_cpu *cpu_buffer; 1741 struct ring_buffer_per_cpu *cpu_buffer;
1666 struct ring_buffer_event *event; 1742 struct ring_buffer_event *event;
1667 struct buffer_page *reader; 1743 struct buffer_page *reader;
1744 int nr_loops = 0;
1668 1745
1669 if (!cpu_isset(cpu, buffer->cpumask)) 1746 if (!cpu_isset(cpu, buffer->cpumask))
1670 return NULL; 1747 return NULL;
@@ -1672,6 +1749,19 @@ ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts)
1672 cpu_buffer = buffer->buffers[cpu]; 1749 cpu_buffer = buffer->buffers[cpu];
1673 1750
1674 again: 1751 again:
1752 /*
1753 * We repeat when a timestamp is encountered. It is possible
1754 * to get multiple timestamps from an interrupt entering just
1755 * as one timestamp is about to be written. The max times
1756 * that this can happen is the number of nested interrupts we
1757 * can have. Nesting 10 deep of interrupts is clearly
1758 * an anomaly.
1759 */
1760 if (unlikely(++nr_loops > 10)) {
1761 RB_WARN_ON(cpu_buffer, 1);
1762 return NULL;
1763 }
1764
1675 reader = rb_get_reader_page(cpu_buffer); 1765 reader = rb_get_reader_page(cpu_buffer);
1676 if (!reader) 1766 if (!reader)
1677 return NULL; 1767 return NULL;
@@ -1722,6 +1812,7 @@ ring_buffer_iter_peek(struct ring_buffer_iter *iter, u64 *ts)
1722 struct ring_buffer *buffer; 1812 struct ring_buffer *buffer;
1723 struct ring_buffer_per_cpu *cpu_buffer; 1813 struct ring_buffer_per_cpu *cpu_buffer;
1724 struct ring_buffer_event *event; 1814 struct ring_buffer_event *event;
1815 int nr_loops = 0;
1725 1816
1726 if (ring_buffer_iter_empty(iter)) 1817 if (ring_buffer_iter_empty(iter))
1727 return NULL; 1818 return NULL;
@@ -1730,6 +1821,19 @@ ring_buffer_iter_peek(struct ring_buffer_iter *iter, u64 *ts)
1730 buffer = cpu_buffer->buffer; 1821 buffer = cpu_buffer->buffer;
1731 1822
1732 again: 1823 again:
1824 /*
1825 * We repeat when a timestamp is encountered. It is possible
1826 * to get multiple timestamps from an interrupt entering just
1827 * as one timestamp is about to be written. The max times
1828 * that this can happen is the number of nested interrupts we
1829 * can have. Nesting 10 deep of interrupts is clearly
1830 * an anomaly.
1831 */
1832 if (unlikely(++nr_loops > 10)) {
1833 RB_WARN_ON(cpu_buffer, 1);
1834 return NULL;
1835 }
1836
1733 if (rb_per_cpu_empty(cpu_buffer)) 1837 if (rb_per_cpu_empty(cpu_buffer))
1734 return NULL; 1838 return NULL;
1735 1839
@@ -2014,3 +2118,69 @@ int ring_buffer_swap_cpu(struct ring_buffer *buffer_a,
2014 return 0; 2118 return 0;
2015} 2119}
2016 2120
2121static ssize_t
2122rb_simple_read(struct file *filp, char __user *ubuf,
2123 size_t cnt, loff_t *ppos)
2124{
2125 int *p = filp->private_data;
2126 char buf[64];
2127 int r;
2128
2129 /* !ring_buffers_off == tracing_on */
2130 r = sprintf(buf, "%d\n", !*p);
2131
2132 return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
2133}
2134
2135static ssize_t
2136rb_simple_write(struct file *filp, const char __user *ubuf,
2137 size_t cnt, loff_t *ppos)
2138{
2139 int *p = filp->private_data;
2140 char buf[64];
2141 long val;
2142 int ret;
2143
2144 if (cnt >= sizeof(buf))
2145 return -EINVAL;
2146
2147 if (copy_from_user(&buf, ubuf, cnt))
2148 return -EFAULT;
2149
2150 buf[cnt] = 0;
2151
2152 ret = strict_strtoul(buf, 10, &val);
2153 if (ret < 0)
2154 return ret;
2155
2156 /* !ring_buffers_off == tracing_on */
2157 *p = !val;
2158
2159 (*ppos)++;
2160
2161 return cnt;
2162}
2163
2164static struct file_operations rb_simple_fops = {
2165 .open = tracing_open_generic,
2166 .read = rb_simple_read,
2167 .write = rb_simple_write,
2168};
2169
2170
2171static __init int rb_init_debugfs(void)
2172{
2173 struct dentry *d_tracer;
2174 struct dentry *entry;
2175
2176 d_tracer = tracing_init_dentry();
2177
2178 entry = debugfs_create_file("tracing_on", 0644, d_tracer,
2179 &ring_buffers_off, &rb_simple_fops);
2180 if (!entry)
2181 pr_warning("Could not create debugfs 'tracing_on' entry\n");
2182
2183 return 0;
2184}
2185
2186fs_initcall(rb_init_debugfs);
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 8a499e2adaec..d86e3252f300 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -705,6 +705,7 @@ static void ftrace_trace_stack(struct trace_array *tr,
705 unsigned long flags, 705 unsigned long flags,
706 int skip, int pc) 706 int skip, int pc)
707{ 707{
708#ifdef CONFIG_STACKTRACE
708 struct ring_buffer_event *event; 709 struct ring_buffer_event *event;
709 struct stack_entry *entry; 710 struct stack_entry *entry;
710 struct stack_trace trace; 711 struct stack_trace trace;
@@ -730,6 +731,7 @@ static void ftrace_trace_stack(struct trace_array *tr,
730 731
731 save_stack_trace(&trace); 732 save_stack_trace(&trace);
732 ring_buffer_unlock_commit(tr->buffer, event, irq_flags); 733 ring_buffer_unlock_commit(tr->buffer, event, irq_flags);
734#endif
733} 735}
734 736
735void __trace_stack(struct trace_array *tr, 737void __trace_stack(struct trace_array *tr,
@@ -1086,17 +1088,20 @@ static void s_stop(struct seq_file *m, void *p)
1086 mutex_unlock(&trace_types_lock); 1088 mutex_unlock(&trace_types_lock);
1087} 1089}
1088 1090
1089#define KRETPROBE_MSG "[unknown/kretprobe'd]"
1090
1091#ifdef CONFIG_KRETPROBES 1091#ifdef CONFIG_KRETPROBES
1092static inline int kretprobed(unsigned long addr) 1092static inline const char *kretprobed(const char *name)
1093{ 1093{
1094 return addr == (unsigned long)kretprobe_trampoline; 1094 static const char tramp_name[] = "kretprobe_trampoline";
1095 int size = sizeof(tramp_name);
1096
1097 if (strncmp(tramp_name, name, size) == 0)
1098 return "[unknown/kretprobe'd]";
1099 return name;
1095} 1100}
1096#else 1101#else
1097static inline int kretprobed(unsigned long addr) 1102static inline const char *kretprobed(const char *name)
1098{ 1103{
1099 return 0; 1104 return name;
1100} 1105}
1101#endif /* CONFIG_KRETPROBES */ 1106#endif /* CONFIG_KRETPROBES */
1102 1107
@@ -1105,10 +1110,13 @@ seq_print_sym_short(struct trace_seq *s, const char *fmt, unsigned long address)
1105{ 1110{
1106#ifdef CONFIG_KALLSYMS 1111#ifdef CONFIG_KALLSYMS
1107 char str[KSYM_SYMBOL_LEN]; 1112 char str[KSYM_SYMBOL_LEN];
1113 const char *name;
1108 1114
1109 kallsyms_lookup(address, NULL, NULL, NULL, str); 1115 kallsyms_lookup(address, NULL, NULL, NULL, str);
1110 1116
1111 return trace_seq_printf(s, fmt, str); 1117 name = kretprobed(str);
1118
1119 return trace_seq_printf(s, fmt, name);
1112#endif 1120#endif
1113 return 1; 1121 return 1;
1114} 1122}
@@ -1119,9 +1127,12 @@ seq_print_sym_offset(struct trace_seq *s, const char *fmt,
1119{ 1127{
1120#ifdef CONFIG_KALLSYMS 1128#ifdef CONFIG_KALLSYMS
1121 char str[KSYM_SYMBOL_LEN]; 1129 char str[KSYM_SYMBOL_LEN];
1130 const char *name;
1122 1131
1123 sprint_symbol(str, address); 1132 sprint_symbol(str, address);
1124 return trace_seq_printf(s, fmt, str); 1133 name = kretprobed(str);
1134
1135 return trace_seq_printf(s, fmt, name);
1125#endif 1136#endif
1126 return 1; 1137 return 1;
1127} 1138}
@@ -1375,10 +1386,7 @@ print_lat_fmt(struct trace_iterator *iter, unsigned int trace_idx, int cpu)
1375 1386
1376 seq_print_ip_sym(s, field->ip, sym_flags); 1387 seq_print_ip_sym(s, field->ip, sym_flags);
1377 trace_seq_puts(s, " ("); 1388 trace_seq_puts(s, " (");
1378 if (kretprobed(field->parent_ip)) 1389 seq_print_ip_sym(s, field->parent_ip, sym_flags);
1379 trace_seq_puts(s, KRETPROBE_MSG);
1380 else
1381 seq_print_ip_sym(s, field->parent_ip, sym_flags);
1382 trace_seq_puts(s, ")\n"); 1390 trace_seq_puts(s, ")\n");
1383 break; 1391 break;
1384 } 1392 }
@@ -1494,12 +1502,9 @@ static enum print_line_t print_trace_fmt(struct trace_iterator *iter)
1494 ret = trace_seq_printf(s, " <-"); 1502 ret = trace_seq_printf(s, " <-");
1495 if (!ret) 1503 if (!ret)
1496 return TRACE_TYPE_PARTIAL_LINE; 1504 return TRACE_TYPE_PARTIAL_LINE;
1497 if (kretprobed(field->parent_ip)) 1505 ret = seq_print_ip_sym(s,
1498 ret = trace_seq_puts(s, KRETPROBE_MSG); 1506 field->parent_ip,
1499 else 1507 sym_flags);
1500 ret = seq_print_ip_sym(s,
1501 field->parent_ip,
1502 sym_flags);
1503 if (!ret) 1508 if (!ret)
1504 return TRACE_TYPE_PARTIAL_LINE; 1509 return TRACE_TYPE_PARTIAL_LINE;
1505 } 1510 }
@@ -1750,7 +1755,7 @@ static enum print_line_t print_bin_fmt(struct trace_iterator *iter)
1750 return TRACE_TYPE_HANDLED; 1755 return TRACE_TYPE_HANDLED;
1751 1756
1752 SEQ_PUT_FIELD_RET(s, entry->pid); 1757 SEQ_PUT_FIELD_RET(s, entry->pid);
1753 SEQ_PUT_FIELD_RET(s, iter->cpu); 1758 SEQ_PUT_FIELD_RET(s, entry->cpu);
1754 SEQ_PUT_FIELD_RET(s, iter->ts); 1759 SEQ_PUT_FIELD_RET(s, iter->ts);
1755 1760
1756 switch (entry->type) { 1761 switch (entry->type) {
@@ -1931,6 +1936,7 @@ __tracing_open(struct inode *inode, struct file *file, int *ret)
1931 ring_buffer_read_finish(iter->buffer_iter[cpu]); 1936 ring_buffer_read_finish(iter->buffer_iter[cpu]);
1932 } 1937 }
1933 mutex_unlock(&trace_types_lock); 1938 mutex_unlock(&trace_types_lock);
1939 kfree(iter);
1934 1940
1935 return ERR_PTR(-ENOMEM); 1941 return ERR_PTR(-ENOMEM);
1936} 1942}
@@ -2671,7 +2677,7 @@ tracing_entries_write(struct file *filp, const char __user *ubuf,
2671{ 2677{
2672 unsigned long val; 2678 unsigned long val;
2673 char buf[64]; 2679 char buf[64];
2674 int ret; 2680 int ret, cpu;
2675 struct trace_array *tr = filp->private_data; 2681 struct trace_array *tr = filp->private_data;
2676 2682
2677 if (cnt >= sizeof(buf)) 2683 if (cnt >= sizeof(buf))
@@ -2699,6 +2705,14 @@ tracing_entries_write(struct file *filp, const char __user *ubuf,
2699 goto out; 2705 goto out;
2700 } 2706 }
2701 2707
2708 /* disable all cpu buffers */
2709 for_each_tracing_cpu(cpu) {
2710 if (global_trace.data[cpu])
2711 atomic_inc(&global_trace.data[cpu]->disabled);
2712 if (max_tr.data[cpu])
2713 atomic_inc(&max_tr.data[cpu]->disabled);
2714 }
2715
2702 if (val != global_trace.entries) { 2716 if (val != global_trace.entries) {
2703 ret = ring_buffer_resize(global_trace.buffer, val); 2717 ret = ring_buffer_resize(global_trace.buffer, val);
2704 if (ret < 0) { 2718 if (ret < 0) {
@@ -2730,6 +2744,13 @@ tracing_entries_write(struct file *filp, const char __user *ubuf,
2730 if (tracing_disabled) 2744 if (tracing_disabled)
2731 cnt = -ENOMEM; 2745 cnt = -ENOMEM;
2732 out: 2746 out:
2747 for_each_tracing_cpu(cpu) {
2748 if (global_trace.data[cpu])
2749 atomic_dec(&global_trace.data[cpu]->disabled);
2750 if (max_tr.data[cpu])
2751 atomic_dec(&max_tr.data[cpu]->disabled);
2752 }
2753
2733 max_tr.entries = global_trace.entries; 2754 max_tr.entries = global_trace.entries;
2734 mutex_unlock(&trace_types_lock); 2755 mutex_unlock(&trace_types_lock);
2735 2756
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/kernel/workqueue.c b/kernel/workqueue.c
index f928f2a87b9b..d4dc69ddebd7 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -970,6 +970,51 @@ undo:
970 return ret; 970 return ret;
971} 971}
972 972
973#ifdef CONFIG_SMP
974struct work_for_cpu {
975 struct work_struct work;
976 long (*fn)(void *);
977 void *arg;
978 long ret;
979};
980
981static void do_work_for_cpu(struct work_struct *w)
982{
983 struct work_for_cpu *wfc = container_of(w, struct work_for_cpu, work);
984
985 wfc->ret = wfc->fn(wfc->arg);
986}
987
988/**
989 * work_on_cpu - run a function in user context on a particular cpu
990 * @cpu: the cpu to run on
991 * @fn: the function to run
992 * @arg: the function arg
993 *
994 * This will return -EINVAL in the cpu is not online, or the return value
995 * of @fn otherwise.
996 */
997long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg)
998{
999 struct work_for_cpu wfc;
1000
1001 INIT_WORK(&wfc.work, do_work_for_cpu);
1002 wfc.fn = fn;
1003 wfc.arg = arg;
1004 get_online_cpus();
1005 if (unlikely(!cpu_online(cpu)))
1006 wfc.ret = -EINVAL;
1007 else {
1008 schedule_work_on(cpu, &wfc.work);
1009 flush_work(&wfc.work);
1010 }
1011 put_online_cpus();
1012
1013 return wfc.ret;
1014}
1015EXPORT_SYMBOL_GPL(work_on_cpu);
1016#endif /* CONFIG_SMP */
1017
973void __init init_workqueues(void) 1018void __init init_workqueues(void)
974{ 1019{
975 cpu_populated_map = cpu_online_map; 1020 cpu_populated_map = cpu_online_map;
diff --git a/lib/cpumask.c b/lib/cpumask.c
index 5f97dc25ef9c..8d03f22c6ced 100644
--- a/lib/cpumask.c
+++ b/lib/cpumask.c
@@ -2,6 +2,7 @@
2#include <linux/bitops.h> 2#include <linux/bitops.h>
3#include <linux/cpumask.h> 3#include <linux/cpumask.h>
4#include <linux/module.h> 4#include <linux/module.h>
5#include <linux/bootmem.h>
5 6
6int __first_cpu(const cpumask_t *srcp) 7int __first_cpu(const cpumask_t *srcp)
7{ 8{
@@ -35,3 +36,81 @@ int __any_online_cpu(const cpumask_t *mask)
35 return cpu; 36 return cpu;
36} 37}
37EXPORT_SYMBOL(__any_online_cpu); 38EXPORT_SYMBOL(__any_online_cpu);
39
40/**
41 * cpumask_next_and - get the next cpu in *src1p & *src2p
42 * @n: the cpu prior to the place to search (ie. return will be > @n)
43 * @src1p: the first cpumask pointer
44 * @src2p: the second cpumask pointer
45 *
46 * Returns >= nr_cpu_ids if no further cpus set in both.
47 */
48int cpumask_next_and(int n, const struct cpumask *src1p,
49 const struct cpumask *src2p)
50{
51 while ((n = cpumask_next(n, src1p)) < nr_cpu_ids)
52 if (cpumask_test_cpu(n, src2p))
53 break;
54 return n;
55}
56EXPORT_SYMBOL(cpumask_next_and);
57
58/**
59 * cpumask_any_but - return a "random" in a cpumask, but not this one.
60 * @mask: the cpumask to search
61 * @cpu: the cpu to ignore.
62 *
63 * Often used to find any cpu but smp_processor_id() in a mask.
64 * Returns >= nr_cpu_ids if no cpus set.
65 */
66int cpumask_any_but(const struct cpumask *mask, unsigned int cpu)
67{
68 unsigned int i;
69
70 cpumask_check(cpu);
71 for_each_cpu(i, mask)
72 if (i != cpu)
73 break;
74 return i;
75}
76
77/* These are not inline because of header tangles. */
78#ifdef CONFIG_CPUMASK_OFFSTACK
79bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
80{
81 if (likely(slab_is_available()))
82 *mask = kmalloc(cpumask_size(), flags);
83 else {
84#ifdef CONFIG_DEBUG_PER_CPU_MAPS
85 printk(KERN_ERR
86 "=> alloc_cpumask_var: kmalloc not available!\n");
87 dump_stack();
88#endif
89 *mask = NULL;
90 }
91#ifdef CONFIG_DEBUG_PER_CPU_MAPS
92 if (!*mask) {
93 printk(KERN_ERR "=> alloc_cpumask_var: failed!\n");
94 dump_stack();
95 }
96#endif
97 return *mask != NULL;
98}
99EXPORT_SYMBOL(alloc_cpumask_var);
100
101void __init alloc_bootmem_cpumask_var(cpumask_var_t *mask)
102{
103 *mask = alloc_bootmem(cpumask_size());
104}
105
106void free_cpumask_var(cpumask_var_t mask)
107{
108 kfree(mask);
109}
110EXPORT_SYMBOL(free_cpumask_var);
111
112void __init free_bootmem_cpumask_var(cpumask_var_t mask)
113{
114 free_bootmem((unsigned long)mask, cpumask_size());
115}
116#endif
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/lib/scatterlist.c b/lib/scatterlist.c
index 8d2688ff1352..b7b449dafbe5 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -395,7 +395,7 @@ void sg_miter_stop(struct sg_mapping_iter *miter)
395 WARN_ON(!irqs_disabled()); 395 WARN_ON(!irqs_disabled());
396 kunmap_atomic(miter->addr, KM_BIO_SRC_IRQ); 396 kunmap_atomic(miter->addr, KM_BIO_SRC_IRQ);
397 } else 397 } else
398 kunmap(miter->addr); 398 kunmap(miter->page);
399 399
400 miter->page = NULL; 400 miter->page = NULL;
401 miter->addr = NULL; 401 miter->addr = NULL;
diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index 78330c37a61b..5f6c629a924d 100644
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
@@ -467,9 +467,13 @@ swiotlb_alloc_coherent(struct device *hwdev, size_t size,
467 dma_addr_t dev_addr; 467 dma_addr_t dev_addr;
468 void *ret; 468 void *ret;
469 int order = get_order(size); 469 int order = get_order(size);
470 u64 dma_mask = DMA_32BIT_MASK;
471
472 if (hwdev && hwdev->coherent_dma_mask)
473 dma_mask = hwdev->coherent_dma_mask;
470 474
471 ret = (void *)__get_free_pages(flags, order); 475 ret = (void *)__get_free_pages(flags, order);
472 if (ret && address_needs_mapping(hwdev, virt_to_bus(ret), size)) { 476 if (ret && !is_buffer_dma_capable(dma_mask, virt_to_bus(ret), size)) {
473 /* 477 /*
474 * The allocated memory isn't reachable by the device. 478 * The allocated memory isn't reachable by the device.
475 * Fall back on swiotlb_map_single(). 479 * Fall back on swiotlb_map_single().
@@ -493,9 +497,9 @@ swiotlb_alloc_coherent(struct device *hwdev, size_t size,
493 dev_addr = virt_to_bus(ret); 497 dev_addr = virt_to_bus(ret);
494 498
495 /* Confirm address can be DMA'd by device */ 499 /* Confirm address can be DMA'd by device */
496 if (address_needs_mapping(hwdev, dev_addr, size)) { 500 if (!is_buffer_dma_capable(dma_mask, dev_addr, size)) {
497 printk("hwdev DMA mask = 0x%016Lx, dev_addr = 0x%016Lx\n", 501 printk("hwdev DMA mask = 0x%016Lx, dev_addr = 0x%016Lx\n",
498 (unsigned long long)*hwdev->dma_mask, 502 (unsigned long long)dma_mask,
499 (unsigned long long)dev_addr); 503 (unsigned long long)dev_addr);
500 504
501 /* DMA_TO_DEVICE to avoid memcpy in unmap_single */ 505 /* DMA_TO_DEVICE to avoid memcpy in unmap_single */
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/hugetlb.c b/mm/hugetlb.c
index 421aee99b84a..6058b53dcb89 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -354,11 +354,26 @@ static int vma_has_reserves(struct vm_area_struct *vma)
354 return 0; 354 return 0;
355} 355}
356 356
357static void clear_gigantic_page(struct page *page,
358 unsigned long addr, unsigned long sz)
359{
360 int i;
361 struct page *p = page;
362
363 might_sleep();
364 for (i = 0; i < sz/PAGE_SIZE; i++, p = mem_map_next(p, page, i)) {
365 cond_resched();
366 clear_user_highpage(p, addr + i * PAGE_SIZE);
367 }
368}
357static void clear_huge_page(struct page *page, 369static void clear_huge_page(struct page *page,
358 unsigned long addr, unsigned long sz) 370 unsigned long addr, unsigned long sz)
359{ 371{
360 int i; 372 int i;
361 373
374 if (unlikely(sz > MAX_ORDER_NR_PAGES))
375 return clear_gigantic_page(page, addr, sz);
376
362 might_sleep(); 377 might_sleep();
363 for (i = 0; i < sz/PAGE_SIZE; i++) { 378 for (i = 0; i < sz/PAGE_SIZE; i++) {
364 cond_resched(); 379 cond_resched();
@@ -366,12 +381,32 @@ static void clear_huge_page(struct page *page,
366 } 381 }
367} 382}
368 383
384static void copy_gigantic_page(struct page *dst, struct page *src,
385 unsigned long addr, struct vm_area_struct *vma)
386{
387 int i;
388 struct hstate *h = hstate_vma(vma);
389 struct page *dst_base = dst;
390 struct page *src_base = src;
391 might_sleep();
392 for (i = 0; i < pages_per_huge_page(h); ) {
393 cond_resched();
394 copy_user_highpage(dst, src, addr + i*PAGE_SIZE, vma);
395
396 i++;
397 dst = mem_map_next(dst, dst_base, i);
398 src = mem_map_next(src, src_base, i);
399 }
400}
369static void copy_huge_page(struct page *dst, struct page *src, 401static void copy_huge_page(struct page *dst, struct page *src,
370 unsigned long addr, struct vm_area_struct *vma) 402 unsigned long addr, struct vm_area_struct *vma)
371{ 403{
372 int i; 404 int i;
373 struct hstate *h = hstate_vma(vma); 405 struct hstate *h = hstate_vma(vma);
374 406
407 if (unlikely(pages_per_huge_page(h) > MAX_ORDER_NR_PAGES))
408 return copy_gigantic_page(dst, src, addr, vma);
409
375 might_sleep(); 410 might_sleep();
376 for (i = 0; i < pages_per_huge_page(h); i++) { 411 for (i = 0; i < pages_per_huge_page(h); i++) {
377 cond_resched(); 412 cond_resched();
@@ -456,6 +491,8 @@ static void update_and_free_page(struct hstate *h, struct page *page)
456{ 491{
457 int i; 492 int i;
458 493
494 VM_BUG_ON(h->order >= MAX_ORDER);
495
459 h->nr_huge_pages--; 496 h->nr_huge_pages--;
460 h->nr_huge_pages_node[page_to_nid(page)]--; 497 h->nr_huge_pages_node[page_to_nid(page)]--;
461 for (i = 0; i < pages_per_huge_page(h); i++) { 498 for (i = 0; i < pages_per_huge_page(h); i++) {
@@ -970,6 +1007,14 @@ found:
970 return 1; 1007 return 1;
971} 1008}
972 1009
1010static void prep_compound_huge_page(struct page *page, int order)
1011{
1012 if (unlikely(order > (MAX_ORDER - 1)))
1013 prep_compound_gigantic_page(page, order);
1014 else
1015 prep_compound_page(page, order);
1016}
1017
973/* Put bootmem huge pages into the standard lists after mem_map is up */ 1018/* Put bootmem huge pages into the standard lists after mem_map is up */
974static void __init gather_bootmem_prealloc(void) 1019static void __init gather_bootmem_prealloc(void)
975{ 1020{
@@ -980,7 +1025,7 @@ static void __init gather_bootmem_prealloc(void)
980 struct hstate *h = m->hstate; 1025 struct hstate *h = m->hstate;
981 __ClearPageReserved(page); 1026 __ClearPageReserved(page);
982 WARN_ON(page_count(page) != 1); 1027 WARN_ON(page_count(page) != 1);
983 prep_compound_page(page, h->order); 1028 prep_compound_huge_page(page, h->order);
984 prep_new_huge_page(h, page, page_to_nid(page)); 1029 prep_new_huge_page(h, page, page_to_nid(page));
985 } 1030 }
986} 1031}
@@ -1751,6 +1796,7 @@ void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start,
1751static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, 1796static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
1752 struct page *page, unsigned long address) 1797 struct page *page, unsigned long address)
1753{ 1798{
1799 struct hstate *h = hstate_vma(vma);
1754 struct vm_area_struct *iter_vma; 1800 struct vm_area_struct *iter_vma;
1755 struct address_space *mapping; 1801 struct address_space *mapping;
1756 struct prio_tree_iter iter; 1802 struct prio_tree_iter iter;
@@ -1760,7 +1806,7 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
1760 * vm_pgoff is in PAGE_SIZE units, hence the different calculation 1806 * vm_pgoff is in PAGE_SIZE units, hence the different calculation
1761 * from page cache lookup which is in HPAGE_SIZE units. 1807 * from page cache lookup which is in HPAGE_SIZE units.
1762 */ 1808 */
1763 address = address & huge_page_mask(hstate_vma(vma)); 1809 address = address & huge_page_mask(h);
1764 pgoff = ((address - vma->vm_start) >> PAGE_SHIFT) 1810 pgoff = ((address - vma->vm_start) >> PAGE_SHIFT)
1765 + (vma->vm_pgoff >> PAGE_SHIFT); 1811 + (vma->vm_pgoff >> PAGE_SHIFT);
1766 mapping = (struct address_space *)page_private(page); 1812 mapping = (struct address_space *)page_private(page);
@@ -1779,7 +1825,7 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
1779 */ 1825 */
1780 if (!is_vma_resv_set(iter_vma, HPAGE_RESV_OWNER)) 1826 if (!is_vma_resv_set(iter_vma, HPAGE_RESV_OWNER))
1781 unmap_hugepage_range(iter_vma, 1827 unmap_hugepage_range(iter_vma,
1782 address, address + HPAGE_SIZE, 1828 address, address + huge_page_size(h),
1783 page); 1829 page);
1784 } 1830 }
1785 1831
@@ -2130,7 +2176,7 @@ same_page:
2130 if (zeropage_ok) 2176 if (zeropage_ok)
2131 pages[i] = ZERO_PAGE(0); 2177 pages[i] = ZERO_PAGE(0);
2132 else 2178 else
2133 pages[i] = page + pfn_offset; 2179 pages[i] = mem_map_offset(page, pfn_offset);
2134 get_page(pages[i]); 2180 get_page(pages[i]);
2135 } 2181 }
2136 2182
diff --git a/mm/internal.h b/mm/internal.h
index e4e728bdf324..13333bc2eb68 100644
--- a/mm/internal.h
+++ b/mm/internal.h
@@ -17,6 +17,7 @@ void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *start_vma,
17 unsigned long floor, unsigned long ceiling); 17 unsigned long floor, unsigned long ceiling);
18 18
19extern void prep_compound_page(struct page *page, unsigned long order); 19extern void prep_compound_page(struct page *page, unsigned long order);
20extern void prep_compound_gigantic_page(struct page *page, unsigned long order);
20 21
21static inline void set_page_count(struct page *page, int v) 22static inline void set_page_count(struct page *page, int v)
22{ 23{
@@ -176,6 +177,34 @@ static inline void free_page_mlock(struct page *page) { }
176#endif /* CONFIG_UNEVICTABLE_LRU */ 177#endif /* CONFIG_UNEVICTABLE_LRU */
177 178
178/* 179/*
180 * Return the mem_map entry representing the 'offset' subpage within
181 * the maximally aligned gigantic page 'base'. Handle any discontiguity
182 * in the mem_map at MAX_ORDER_NR_PAGES boundaries.
183 */
184static inline struct page *mem_map_offset(struct page *base, int offset)
185{
186 if (unlikely(offset >= MAX_ORDER_NR_PAGES))
187 return pfn_to_page(page_to_pfn(base) + offset);
188 return base + offset;
189}
190
191/*
192 * Iterator over all subpages withing the maximally aligned gigantic
193 * page 'base'. Handle any discontiguity in the mem_map.
194 */
195static inline struct page *mem_map_next(struct page *iter,
196 struct page *base, int offset)
197{
198 if (unlikely((offset & (MAX_ORDER_NR_PAGES - 1)) == 0)) {
199 unsigned long pfn = page_to_pfn(base) + offset;
200 if (!pfn_valid(pfn))
201 return NULL;
202 return pfn_to_page(pfn);
203 }
204 return iter + 1;
205}
206
207/*
179 * FLATMEM and DISCONTIGMEM configurations use alloc_bootmem_node, 208 * FLATMEM and DISCONTIGMEM configurations use alloc_bootmem_node,
180 * so all functions starting at paging_init should be marked __init 209 * so all functions starting at paging_init should be marked __init
181 * in those cases. SPARSEMEM, however, allows for memory hotplug, 210 * in those cases. SPARSEMEM, however, allows for memory hotplug,
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 6837a1014372..b17371185468 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -22,7 +22,6 @@
22#include <linux/highmem.h> 22#include <linux/highmem.h>
23#include <linux/vmalloc.h> 23#include <linux/vmalloc.h>
24#include <linux/ioport.h> 24#include <linux/ioport.h>
25#include <linux/cpuset.h>
26#include <linux/delay.h> 25#include <linux/delay.h>
27#include <linux/migrate.h> 26#include <linux/migrate.h>
28#include <linux/page-isolation.h> 27#include <linux/page-isolation.h>
@@ -190,7 +189,7 @@ static void grow_pgdat_span(struct pglist_data *pgdat, unsigned long start_pfn,
190 pgdat->node_start_pfn; 189 pgdat->node_start_pfn;
191} 190}
192 191
193static int __add_zone(struct zone *zone, unsigned long phys_start_pfn) 192static int __meminit __add_zone(struct zone *zone, unsigned long phys_start_pfn)
194{ 193{
195 struct pglist_data *pgdat = zone->zone_pgdat; 194 struct pglist_data *pgdat = zone->zone_pgdat;
196 int nr_pages = PAGES_PER_SECTION; 195 int nr_pages = PAGES_PER_SECTION;
@@ -217,7 +216,7 @@ static int __add_zone(struct zone *zone, unsigned long phys_start_pfn)
217 return 0; 216 return 0;
218} 217}
219 218
220static int __add_section(struct zone *zone, unsigned long phys_start_pfn) 219static int __meminit __add_section(struct zone *zone, unsigned long phys_start_pfn)
221{ 220{
222 int nr_pages = PAGES_PER_SECTION; 221 int nr_pages = PAGES_PER_SECTION;
223 int ret; 222 int ret;
@@ -274,7 +273,7 @@ static int __remove_section(struct zone *zone, struct mem_section *ms)
274 * call this function after deciding the zone to which to 273 * call this function after deciding the zone to which to
275 * add the new pages. 274 * add the new pages.
276 */ 275 */
277int __add_pages(struct zone *zone, unsigned long phys_start_pfn, 276int __ref __add_pages(struct zone *zone, unsigned long phys_start_pfn,
278 unsigned long nr_pages) 277 unsigned long nr_pages)
279{ 278{
280 unsigned long i; 279 unsigned long i;
@@ -471,7 +470,8 @@ static void rollback_node_hotadd(int nid, pg_data_t *pgdat)
471} 470}
472 471
473 472
474int 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)
475{ 475{
476 pg_data_t *pgdat = NULL; 476 pg_data_t *pgdat = NULL;
477 int new_pgdat = 0; 477 int new_pgdat = 0;
@@ -498,8 +498,6 @@ int add_memory(int nid, u64 start, u64 size)
498 /* we online node here. we can't roll back from here. */ 498 /* we online node here. we can't roll back from here. */
499 node_set_online(nid); 499 node_set_online(nid);
500 500
501 cpuset_track_online_nodes();
502
503 if (new_pgdat) { 501 if (new_pgdat) {
504 ret = register_one_node(nid); 502 ret = register_one_node(nid);
505 /* 503 /*
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 36f42573a335..e9493b1c1117 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -489,12 +489,6 @@ check_range(struct mm_struct *mm, unsigned long start, unsigned long end,
489 int err; 489 int err;
490 struct vm_area_struct *first, *vma, *prev; 490 struct vm_area_struct *first, *vma, *prev;
491 491
492 if (flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) {
493
494 err = migrate_prep();
495 if (err)
496 return ERR_PTR(err);
497 }
498 492
499 first = find_vma(mm, start); 493 first = find_vma(mm, start);
500 if (!first) 494 if (!first)
@@ -809,9 +803,13 @@ int do_migrate_pages(struct mm_struct *mm,
809 const nodemask_t *from_nodes, const nodemask_t *to_nodes, int flags) 803 const nodemask_t *from_nodes, const nodemask_t *to_nodes, int flags)
810{ 804{
811 int busy = 0; 805 int busy = 0;
812 int err = 0; 806 int err;
813 nodemask_t tmp; 807 nodemask_t tmp;
814 808
809 err = migrate_prep();
810 if (err)
811 return err;
812
815 down_read(&mm->mmap_sem); 813 down_read(&mm->mmap_sem);
816 814
817 err = migrate_vmas(mm, from_nodes, to_nodes, flags); 815 err = migrate_vmas(mm, from_nodes, to_nodes, flags);
@@ -974,6 +972,12 @@ static long do_mbind(unsigned long start, unsigned long len,
974 start, start + len, mode, mode_flags, 972 start, start + len, mode, mode_flags,
975 nmask ? nodes_addr(*nmask)[0] : -1); 973 nmask ? nodes_addr(*nmask)[0] : -1);
976 974
975 if (flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) {
976
977 err = migrate_prep();
978 if (err)
979 return err;
980 }
977 down_write(&mm->mmap_sem); 981 down_write(&mm->mmap_sem);
978 vma = check_range(mm, start, end, nmask, 982 vma = check_range(mm, start, end, nmask,
979 flags | MPOL_MF_INVERT, &pagelist); 983 flags | MPOL_MF_INVERT, &pagelist);
diff --git a/mm/migrate.c b/mm/migrate.c
index 6602941bfab0..037b0967c1e3 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -522,15 +522,12 @@ static int writeout(struct address_space *mapping, struct page *page)
522 remove_migration_ptes(page, page); 522 remove_migration_ptes(page, page);
523 523
524 rc = mapping->a_ops->writepage(page, &wbc); 524 rc = mapping->a_ops->writepage(page, &wbc);
525 if (rc < 0)
526 /* I/O Error writing */
527 return -EIO;
528 525
529 if (rc != AOP_WRITEPAGE_ACTIVATE) 526 if (rc != AOP_WRITEPAGE_ACTIVATE)
530 /* unlocked. Relock */ 527 /* unlocked. Relock */
531 lock_page(page); 528 lock_page(page);
532 529
533 return -EAGAIN; 530 return (rc < 0) ? -EIO : -EAGAIN;
534} 531}
535 532
536/* 533/*
@@ -841,12 +838,12 @@ static int do_move_page_to_node_array(struct mm_struct *mm,
841 struct page_to_node *pp; 838 struct page_to_node *pp;
842 LIST_HEAD(pagelist); 839 LIST_HEAD(pagelist);
843 840
841 migrate_prep();
844 down_read(&mm->mmap_sem); 842 down_read(&mm->mmap_sem);
845 843
846 /* 844 /*
847 * Build a list of pages to migrate 845 * Build a list of pages to migrate
848 */ 846 */
849 migrate_prep();
850 for (pp = pm; pp->node != MAX_NUMNODES; pp++) { 847 for (pp = pm; pp->node != MAX_NUMNODES; pp++) {
851 struct vm_area_struct *vma; 848 struct vm_area_struct *vma;
852 struct page *page; 849 struct page *page;
@@ -990,25 +987,18 @@ out:
990/* 987/*
991 * 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.
992 */ 989 */
993static 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,
994 const void __user * __user *pages, 991 const void __user **pages, int *status)
995 int __user *status)
996{ 992{
997 unsigned long i; 993 unsigned long i;
998 int err;
999 994
1000 down_read(&mm->mmap_sem); 995 down_read(&mm->mmap_sem);
1001 996
1002 for (i = 0; i < nr_pages; i++) { 997 for (i = 0; i < nr_pages; i++) {
1003 const void __user *p; 998 unsigned long addr = (unsigned long)(*pages);
1004 unsigned long addr;
1005 struct vm_area_struct *vma; 999 struct vm_area_struct *vma;
1006 struct page *page; 1000 struct page *page;
1007 1001 int err = -EFAULT;
1008 err = -EFAULT;
1009 if (get_user(p, pages+i))
1010 goto out;
1011 addr = (unsigned long) p;
1012 1002
1013 vma = find_vma(mm, addr); 1003 vma = find_vma(mm, addr);
1014 if (!vma) 1004 if (!vma)
@@ -1027,12 +1017,52 @@ static int do_pages_stat(struct mm_struct *mm, unsigned long nr_pages,
1027 1017
1028 err = page_to_nid(page); 1018 err = page_to_nid(page);
1029set_status: 1019set_status:
1030 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 }
1031 } 1062 }
1032 err = 0; 1063 err = 0;
1033 1064
1034out: 1065out:
1035 up_read(&mm->mmap_sem);
1036 return err; 1066 return err;
1037} 1067}
1038 1068
diff --git a/mm/mlock.c b/mm/mlock.c
index 008ea70b7afa..1ada366570cb 100644
--- a/mm/mlock.c
+++ b/mm/mlock.c
@@ -66,14 +66,10 @@ void __clear_page_mlock(struct page *page)
66 putback_lru_page(page); 66 putback_lru_page(page);
67 } else { 67 } else {
68 /* 68 /*
69 * Page not on the LRU yet. Flush all pagevecs and retry. 69 * We lost the race. the page already moved to evictable list.
70 */ 70 */
71 lru_add_drain_all(); 71 if (PageUnevictable(page))
72 if (!isolate_lru_page(page))
73 putback_lru_page(page);
74 else if (PageUnevictable(page))
75 count_vm_event(UNEVICTABLE_PGSTRANDED); 72 count_vm_event(UNEVICTABLE_PGSTRANDED);
76
77 } 73 }
78} 74}
79 75
@@ -166,7 +162,7 @@ static long __mlock_vma_pages_range(struct vm_area_struct *vma,
166 unsigned long addr = start; 162 unsigned long addr = start;
167 struct page *pages[16]; /* 16 gives a reasonable batch */ 163 struct page *pages[16]; /* 16 gives a reasonable batch */
168 int nr_pages = (end - start) / PAGE_SIZE; 164 int nr_pages = (end - start) / PAGE_SIZE;
169 int ret; 165 int ret = 0;
170 int gup_flags = 0; 166 int gup_flags = 0;
171 167
172 VM_BUG_ON(start & ~PAGE_MASK); 168 VM_BUG_ON(start & ~PAGE_MASK);
@@ -187,8 +183,6 @@ static long __mlock_vma_pages_range(struct vm_area_struct *vma,
187 if (vma->vm_flags & VM_WRITE) 183 if (vma->vm_flags & VM_WRITE)
188 gup_flags |= GUP_FLAGS_WRITE; 184 gup_flags |= GUP_FLAGS_WRITE;
189 185
190 lru_add_drain_all(); /* push cached pages to LRU */
191
192 while (nr_pages > 0) { 186 while (nr_pages > 0) {
193 int i; 187 int i;
194 188
@@ -251,8 +245,6 @@ static long __mlock_vma_pages_range(struct vm_area_struct *vma,
251 ret = 0; 245 ret = 0;
252 } 246 }
253 247
254 lru_add_drain_all(); /* to update stats */
255
256 return ret; /* count entire vma as locked_vm */ 248 return ret; /* count entire vma as locked_vm */
257} 249}
258 250
@@ -546,6 +538,8 @@ asmlinkage long sys_mlock(unsigned long start, size_t len)
546 if (!can_do_mlock()) 538 if (!can_do_mlock())
547 return -EPERM; 539 return -EPERM;
548 540
541 lru_add_drain_all(); /* flush pagevec */
542
549 down_write(&current->mm->mmap_sem); 543 down_write(&current->mm->mmap_sem);
550 len = PAGE_ALIGN(len + (start & ~PAGE_MASK)); 544 len = PAGE_ALIGN(len + (start & ~PAGE_MASK));
551 start &= PAGE_MASK; 545 start &= PAGE_MASK;
@@ -612,6 +606,8 @@ asmlinkage long sys_mlockall(int flags)
612 if (!can_do_mlock()) 606 if (!can_do_mlock())
613 goto out; 607 goto out;
614 608
609 lru_add_drain_all(); /* flush pagevec */
610
615 down_write(&current->mm->mmap_sem); 611 down_write(&current->mm->mmap_sem);
616 612
617 lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur; 613 lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur;
diff --git a/mm/mmap.c b/mm/mmap.c
index de14ac21e5b5..d4855a682ab6 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1704,7 +1704,7 @@ find_extend_vma(struct mm_struct *mm, unsigned long addr)
1704 vma = find_vma_prev(mm, addr, &prev); 1704 vma = find_vma_prev(mm, addr, &prev);
1705 if (vma && (vma->vm_start <= addr)) 1705 if (vma && (vma->vm_start <= addr))
1706 return vma; 1706 return vma;
1707 if (expand_stack(prev, addr)) 1707 if (!prev || expand_stack(prev, addr))
1708 return NULL; 1708 return NULL;
1709 if (prev->vm_flags & VM_LOCKED) { 1709 if (prev->vm_flags & VM_LOCKED) {
1710 if (mlock_vma_pages_range(prev, addr, prev->vm_end) < 0) 1710 if (mlock_vma_pages_range(prev, addr, prev->vm_end) < 0)
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index 64e5b4bcd964..a0a01902f551 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -38,7 +38,6 @@ static DEFINE_SPINLOCK(zone_scan_mutex);
38 * badness - calculate a numeric value for how bad this task has been 38 * badness - calculate a numeric value for how bad this task has been
39 * @p: task struct of which task we should calculate 39 * @p: task struct of which task we should calculate
40 * @uptime: current uptime in seconds 40 * @uptime: current uptime in seconds
41 * @mem: target memory controller
42 * 41 *
43 * The formula used is relatively simple and documented inline in the 42 * The formula used is relatively simple and documented inline in the
44 * function. The main rationale is that we want to select a good task 43 * function. The main rationale is that we want to select a good task
@@ -295,6 +294,8 @@ static void dump_tasks(const struct mem_cgroup *mem)
295 continue; 294 continue;
296 if (mem && !task_in_mem_cgroup(p, mem)) 295 if (mem && !task_in_mem_cgroup(p, mem))
297 continue; 296 continue;
297 if (!thread_group_leader(p))
298 continue;
298 299
299 task_lock(p); 300 task_lock(p);
300 printk(KERN_INFO "[%5d] %5d %5d %8lu %8lu %3d %3d %s\n", 301 printk(KERN_INFO "[%5d] %5d %5d %8lu %8lu %3d %3d %s\n",
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index d0a240fbb8bf..d8ac01474563 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -263,24 +263,39 @@ void prep_compound_page(struct page *page, unsigned long order)
263{ 263{
264 int i; 264 int i;
265 int nr_pages = 1 << order; 265 int nr_pages = 1 << order;
266
267 set_compound_page_dtor(page, free_compound_page);
268 set_compound_order(page, order);
269 __SetPageHead(page);
270 for (i = 1; i < nr_pages; i++) {
271 struct page *p = page + i;
272
273 __SetPageTail(p);
274 p->first_page = page;
275 }
276}
277
278#ifdef CONFIG_HUGETLBFS
279void prep_compound_gigantic_page(struct page *page, unsigned long order)
280{
281 int i;
282 int nr_pages = 1 << order;
266 struct page *p = page + 1; 283 struct page *p = page + 1;
267 284
268 set_compound_page_dtor(page, free_compound_page); 285 set_compound_page_dtor(page, free_compound_page);
269 set_compound_order(page, order); 286 set_compound_order(page, order);
270 __SetPageHead(page); 287 __SetPageHead(page);
271 for (i = 1; i < nr_pages; i++, p++) { 288 for (i = 1; i < nr_pages; i++, p = mem_map_next(p, page, i)) {
272 if (unlikely((i & (MAX_ORDER_NR_PAGES - 1)) == 0))
273 p = pfn_to_page(page_to_pfn(page) + i);
274 __SetPageTail(p); 289 __SetPageTail(p);
275 p->first_page = page; 290 p->first_page = page;
276 } 291 }
277} 292}
293#endif
278 294
279static void destroy_compound_page(struct page *page, unsigned long order) 295static void destroy_compound_page(struct page *page, unsigned long order)
280{ 296{
281 int i; 297 int i;
282 int nr_pages = 1 << order; 298 int nr_pages = 1 << order;
283 struct page *p = page + 1;
284 299
285 if (unlikely(compound_order(page) != order)) 300 if (unlikely(compound_order(page) != order))
286 bad_page(page); 301 bad_page(page);
@@ -288,9 +303,8 @@ static void destroy_compound_page(struct page *page, unsigned long order)
288 if (unlikely(!PageHead(page))) 303 if (unlikely(!PageHead(page)))
289 bad_page(page); 304 bad_page(page);
290 __ClearPageHead(page); 305 __ClearPageHead(page);
291 for (i = 1; i < nr_pages; i++, p++) { 306 for (i = 1; i < nr_pages; i++) {
292 if (unlikely((i & (MAX_ORDER_NR_PAGES - 1)) == 0)) 307 struct page *p = page + i;
293 p = pfn_to_page(page_to_pfn(page) + i);
294 308
295 if (unlikely(!PageTail(p) | 309 if (unlikely(!PageTail(p) |
296 (p->first_page != page))) 310 (p->first_page != page)))
@@ -1547,6 +1561,10 @@ nofail_alloc:
1547 1561
1548 /* We now go into synchronous reclaim */ 1562 /* We now go into synchronous reclaim */
1549 cpuset_memory_pressure_bump(); 1563 cpuset_memory_pressure_bump();
1564 /*
1565 * The task's cpuset might have expanded its set of allowable nodes
1566 */
1567 cpuset_update_task_memory_state();
1550 p->flags |= PF_MEMALLOC; 1568 p->flags |= PF_MEMALLOC;
1551 reclaim_state.reclaimed_slab = 0; 1569 reclaim_state.reclaimed_slab = 0;
1552 p->reclaim_state = &reclaim_state; 1570 p->reclaim_state = &reclaim_state;
diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c
index f59d797dc5a9..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,14 +172,14 @@ 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{
165 unsigned long start, end, pfn; 179 unsigned long start, end, pfn;
166 int fail = 0; 180 int fail = 0;
167 181
168 start = start_pfn & (PAGES_PER_SECTION - 1); 182 start = start_pfn & ~(PAGES_PER_SECTION - 1);
169 end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION); 183 end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION);
170 184
171 for (pfn = start; !fail && pfn < end; pfn += PAGES_PER_SECTION) { 185 for (pfn = start; !fail && pfn < end; pfn += PAGES_PER_SECTION) {
@@ -183,12 +197,12 @@ 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;
190 204
191 start = start_pfn & (PAGES_PER_SECTION - 1); 205 start = start_pfn & ~(PAGES_PER_SECTION - 1);
192 end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION); 206 end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION);
193 207
194 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION) 208 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)
@@ -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/page_isolation.c b/mm/page_isolation.c
index b70a7fec1ff6..5e0ffd967452 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -130,10 +130,11 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn)
130 if (page && get_pageblock_migratetype(page) != MIGRATE_ISOLATE) 130 if (page && get_pageblock_migratetype(page) != MIGRATE_ISOLATE)
131 break; 131 break;
132 } 132 }
133 if (pfn < end_pfn) 133 page = __first_valid_page(start_pfn, end_pfn - start_pfn);
134 if ((pfn < end_pfn) || !page)
134 return -EBUSY; 135 return -EBUSY;
135 /* Check all pages are free or Marked as ISOLATED */ 136 /* Check all pages are free or Marked as ISOLATED */
136 zone = page_zone(pfn_to_page(pfn)); 137 zone = page_zone(page);
137 spin_lock_irqsave(&zone->lock, flags); 138 spin_lock_irqsave(&zone->lock, flags);
138 ret = __test_page_isolated_in_pageblock(start_pfn, end_pfn); 139 ret = __test_page_isolated_in_pageblock(start_pfn, end_pfn);
139 spin_unlock_irqrestore(&zone->lock, flags); 140 spin_unlock_irqrestore(&zone->lock, flags);
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-vmemmap.c b/mm/sparse-vmemmap.c
index a91b5f8fcaf6..a13ea6401ae7 100644
--- a/mm/sparse-vmemmap.c
+++ b/mm/sparse-vmemmap.c
@@ -64,7 +64,7 @@ void __meminit vmemmap_verify(pte_t *pte, int node,
64 unsigned long pfn = pte_pfn(*pte); 64 unsigned long pfn = pte_pfn(*pte);
65 int actual_node = early_pfn_to_nid(pfn); 65 int actual_node = early_pfn_to_nid(pfn);
66 66
67 if (actual_node != node) 67 if (node_distance(actual_node, node) > LOCAL_DISTANCE)
68 printk(KERN_WARNING "[%lx-%lx] potential offnode " 68 printk(KERN_WARNING "[%lx-%lx] potential offnode "
69 "page_structs\n", start, end - 1); 69 "page_structs\n", start, end - 1);
70} 70}
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 f1cc03bbf6ac..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))
@@ -178,7 +177,7 @@ static int vmap_page_range(unsigned long addr, unsigned long end,
178static inline int is_vmalloc_or_module_addr(const void *x) 177static inline int is_vmalloc_or_module_addr(const void *x)
179{ 178{
180 /* 179 /*
181 * x86-64 and sparc64 put modules in a special place, 180 * ARM, x86-64 and sparc64 put modules in a special place,
182 * and fall back on vmalloc() if that fails. Others 181 * and fall back on vmalloc() if that fails. Others
183 * just put it in the vmalloc space. 182 * just put it in the vmalloc space.
184 */ 183 */
@@ -324,14 +323,14 @@ static struct vmap_area *alloc_vmap_area(unsigned long size,
324 323
325 BUG_ON(size & ~PAGE_MASK); 324 BUG_ON(size & ~PAGE_MASK);
326 325
327 addr = ALIGN(vstart, align);
328
329 va = kmalloc_node(sizeof(struct vmap_area), 326 va = kmalloc_node(sizeof(struct vmap_area),
330 gfp_mask & GFP_RECLAIM_MASK, node); 327 gfp_mask & GFP_RECLAIM_MASK, node);
331 if (unlikely(!va)) 328 if (unlikely(!va))
332 return ERR_PTR(-ENOMEM); 329 return ERR_PTR(-ENOMEM);
333 330
334retry: 331retry:
332 addr = ALIGN(vstart, align);
333
335 spin_lock(&vmap_area_lock); 334 spin_lock(&vmap_area_lock);
336 /* XXX: could have a last_hole cache */ 335 /* XXX: could have a last_hole cache */
337 n = vmap_area_root.rb_node; 336 n = vmap_area_root.rb_node;
@@ -362,7 +361,7 @@ retry:
362 goto found; 361 goto found;
363 } 362 }
364 363
365 while (addr + size >= first->va_start && addr + size <= vend) { 364 while (addr + size > first->va_start && addr + size <= vend) {
366 addr = ALIGN(first->va_end + PAGE_SIZE, align); 365 addr = ALIGN(first->va_end + PAGE_SIZE, align);
367 366
368 n = rb_next(&first->rb_node); 367 n = rb_next(&first->rb_node);
@@ -522,24 +521,45 @@ static void __purge_vmap_area_lazy(unsigned long *start, unsigned long *end,
522} 521}
523 522
524/* 523/*
524 * Kick off a purge of the outstanding lazy areas. Don't bother if somebody
525 * is already purging.
526 */
527static void try_purge_vmap_area_lazy(void)
528{
529 unsigned long start = ULONG_MAX, end = 0;
530
531 __purge_vmap_area_lazy(&start, &end, 0, 0);
532}
533
534/*
525 * Kick off a purge of the outstanding lazy areas. 535 * Kick off a purge of the outstanding lazy areas.
526 */ 536 */
527static void purge_vmap_area_lazy(void) 537static void purge_vmap_area_lazy(void)
528{ 538{
529 unsigned long start = ULONG_MAX, end = 0; 539 unsigned long start = ULONG_MAX, end = 0;
530 540
531 __purge_vmap_area_lazy(&start, &end, 0, 0); 541 __purge_vmap_area_lazy(&start, &end, 1, 0);
532} 542}
533 543
534/* 544/*
535 * 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.
536 */ 547 */
537static void free_unmap_vmap_area(struct vmap_area *va) 548static void free_unmap_vmap_area_noflush(struct vmap_area *va)
538{ 549{
539 va->flags |= VM_LAZY_FREE; 550 va->flags |= VM_LAZY_FREE;
540 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);
541 if (unlikely(atomic_read(&vmap_lazy_nr) > lazy_max_pages())) 552 if (unlikely(atomic_read(&vmap_lazy_nr) > lazy_max_pages()))
542 purge_vmap_area_lazy(); 553 try_purge_vmap_area_lazy();
554}
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);
543} 563}
544 564
545static struct vmap_area *find_vmap_area(unsigned long addr) 565static struct vmap_area *find_vmap_area(unsigned long addr)
@@ -592,6 +612,8 @@ static void free_unmap_vmap_area_addr(unsigned long addr)
592 612
593#define VMAP_BLOCK_SIZE (VMAP_BBMAP_BITS * PAGE_SIZE) 613#define VMAP_BLOCK_SIZE (VMAP_BBMAP_BITS * PAGE_SIZE)
594 614
615static bool vmap_initialized __read_mostly = false;
616
595struct vmap_block_queue { 617struct vmap_block_queue {
596 spinlock_t lock; 618 spinlock_t lock;
597 struct list_head free; 619 struct list_head free;
@@ -721,7 +743,7 @@ static void free_vmap_block(struct vmap_block *vb)
721 spin_unlock(&vmap_block_tree_lock); 743 spin_unlock(&vmap_block_tree_lock);
722 BUG_ON(tmp != vb); 744 BUG_ON(tmp != vb);
723 745
724 free_unmap_vmap_area(vb->va); 746 free_unmap_vmap_area_noflush(vb->va);
725 call_rcu(&vb->rcu_head, rcu_free_vb); 747 call_rcu(&vb->rcu_head, rcu_free_vb);
726} 748}
727 749
@@ -783,6 +805,9 @@ static void vb_free(const void *addr, unsigned long size)
783 805
784 BUG_ON(size & ~PAGE_MASK); 806 BUG_ON(size & ~PAGE_MASK);
785 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
786 order = get_order(size); 811 order = get_order(size);
787 812
788 offset = (unsigned long)addr & (VMAP_BLOCK_SIZE - 1); 813 offset = (unsigned long)addr & (VMAP_BLOCK_SIZE - 1);
@@ -828,6 +853,9 @@ void vm_unmap_aliases(void)
828 int cpu; 853 int cpu;
829 int flush = 0; 854 int flush = 0;
830 855
856 if (unlikely(!vmap_initialized))
857 return;
858
831 for_each_possible_cpu(cpu) { 859 for_each_possible_cpu(cpu) {
832 struct vmap_block_queue *vbq = &per_cpu(vmap_block_queue, cpu); 860 struct vmap_block_queue *vbq = &per_cpu(vmap_block_queue, cpu);
833 struct vmap_block *vb; 861 struct vmap_block *vb;
@@ -942,6 +970,8 @@ void __init vmalloc_init(void)
942 INIT_LIST_HEAD(&vbq->dirty); 970 INIT_LIST_HEAD(&vbq->dirty);
943 vbq->nr_dirty = 0; 971 vbq->nr_dirty = 0;
944 } 972 }
973
974 vmap_initialized = true;
945} 975}
946 976
947void unmap_kernel_range(unsigned long addr, unsigned long size) 977void unmap_kernel_range(unsigned long addr, unsigned long size)
@@ -1687,7 +1717,7 @@ static int s_show(struct seq_file *m, void *p)
1687 v->addr, v->addr + v->size, v->size); 1717 v->addr, v->addr + v->size, v->size);
1688 1718
1689 if (v->caller) { 1719 if (v->caller) {
1690 char buff[2 * KSYM_NAME_LEN]; 1720 char buff[KSYM_SYMBOL_LEN];
1691 1721
1692 seq_putc(m, ' '); 1722 seq_putc(m, ' ');
1693 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 3b5860294bb6..62e7f62fb559 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -623,6 +623,8 @@ static unsigned long shrink_page_list(struct list_head *page_list,
623 * Try to allocate it some swap space here. 623 * Try to allocate it some swap space here.
624 */ 624 */
625 if (PageAnon(page) && !PageSwapCache(page)) { 625 if (PageAnon(page) && !PageSwapCache(page)) {
626 if (!(sc->gfp_mask & __GFP_IO))
627 goto keep_locked;
626 switch (try_to_munlock(page)) { 628 switch (try_to_munlock(page)) {
627 case SWAP_FAIL: /* shouldn't happen */ 629 case SWAP_FAIL: /* shouldn't happen */
628 case SWAP_AGAIN: 630 case SWAP_AGAIN:
@@ -634,6 +636,7 @@ static unsigned long shrink_page_list(struct list_head *page_list,
634 } 636 }
635 if (!add_to_swap(page, GFP_ATOMIC)) 637 if (!add_to_swap(page, GFP_ATOMIC))
636 goto activate_locked; 638 goto activate_locked;
639 may_enter_fs = 1;
637 } 640 }
638#endif /* CONFIG_SWAP */ 641#endif /* CONFIG_SWAP */
639 642
@@ -1245,6 +1248,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
1245 list_add(&page->lru, &l_inactive); 1248 list_add(&page->lru, &l_inactive);
1246 } 1249 }
1247 1250
1251 spin_lock_irq(&zone->lru_lock);
1248 /* 1252 /*
1249 * Count referenced pages from currently used mappings as 1253 * Count referenced pages from currently used mappings as
1250 * rotated, even though they are moved to the inactive list. 1254 * rotated, even though they are moved to the inactive list.
@@ -1260,7 +1264,6 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
1260 1264
1261 pgmoved = 0; 1265 pgmoved = 0;
1262 lru = LRU_BASE + file * LRU_FILE; 1266 lru = LRU_BASE + file * LRU_FILE;
1263 spin_lock_irq(&zone->lru_lock);
1264 while (!list_empty(&l_inactive)) { 1267 while (!list_empty(&l_inactive)) {
1265 page = lru_to_page(&l_inactive); 1268 page = lru_to_page(&l_inactive);
1266 prefetchw_prev_lru_page(page, &l_inactive, flags); 1269 prefetchw_prev_lru_page(page, &l_inactive, flags);
@@ -1386,9 +1389,9 @@ static void get_scan_ratio(struct zone *zone, struct scan_control *sc,
1386 file_prio = 200 - sc->swappiness; 1389 file_prio = 200 - sc->swappiness;
1387 1390
1388 /* 1391 /*
1389 * anon recent_rotated[0] 1392 * The amount of pressure on anon vs file pages is inversely
1390 * %anon = 100 * ----------- / ----------------- * IO cost 1393 * proportional to the fraction of recently scanned pages on
1391 * anon + file rotate_sum 1394 * each list that were recently referenced and in active use.
1392 */ 1395 */
1393 ap = (anon_prio + 1) * (zone->recent_scanned[0] + 1); 1396 ap = (anon_prio + 1) * (zone->recent_scanned[0] + 1);
1394 ap /= zone->recent_rotated[0] + 1; 1397 ap /= zone->recent_rotated[0] + 1;
@@ -2368,39 +2371,6 @@ int page_evictable(struct page *page, struct vm_area_struct *vma)
2368 return 1; 2371 return 1;
2369} 2372}
2370 2373
2371static void show_page_path(struct page *page)
2372{
2373 char buf[256];
2374 if (page_is_file_cache(page)) {
2375 struct address_space *mapping = page->mapping;
2376 struct dentry *dentry;
2377 pgoff_t pgoff = page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
2378
2379 spin_lock(&mapping->i_mmap_lock);
2380 dentry = d_find_alias(mapping->host);
2381 printk(KERN_INFO "rescued: %s %lu\n",
2382 dentry_path(dentry, buf, 256), pgoff);
2383 spin_unlock(&mapping->i_mmap_lock);
2384 } else {
2385#if defined(CONFIG_MM_OWNER) && defined(CONFIG_MMU)
2386 struct anon_vma *anon_vma;
2387 struct vm_area_struct *vma;
2388
2389 anon_vma = page_lock_anon_vma(page);
2390 if (!anon_vma)
2391 return;
2392
2393 list_for_each_entry(vma, &anon_vma->head, anon_vma_node) {
2394 printk(KERN_INFO "rescued: anon %s\n",
2395 vma->vm_mm->owner->comm);
2396 break;
2397 }
2398 page_unlock_anon_vma(anon_vma);
2399#endif
2400 }
2401}
2402
2403
2404/** 2374/**
2405 * check_move_unevictable_page - check page for evictability and move to appropriate zone lru list 2375 * check_move_unevictable_page - check page for evictability and move to appropriate zone lru list
2406 * @page: page to check evictability and move to appropriate lru list 2376 * @page: page to check evictability and move to appropriate lru list
@@ -2421,8 +2391,6 @@ retry:
2421 if (page_evictable(page, NULL)) { 2391 if (page_evictable(page, NULL)) {
2422 enum lru_list l = LRU_INACTIVE_ANON + page_is_file_cache(page); 2392 enum lru_list l = LRU_INACTIVE_ANON + page_is_file_cache(page);
2423 2393
2424 show_page_path(page);
2425
2426 __dec_zone_state(zone, NR_UNEVICTABLE); 2394 __dec_zone_state(zone, NR_UNEVICTABLE);
2427 list_move(&page->lru, &zone->lru[l].list); 2395 list_move(&page->lru, &zone->lru[l].list);
2428 __inc_zone_state(zone, NR_INACTIVE_ANON + l); 2396 __inc_zone_state(zone, NR_INACTIVE_ANON + l);
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index 916061f681b6..68ced4bf158c 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -3,11 +3,20 @@
3#include <linux/if_vlan.h> 3#include <linux/if_vlan.h>
4#include "vlan.h" 4#include "vlan.h"
5 5
6struct vlan_hwaccel_cb {
7 struct net_device *dev;
8};
9
10static inline struct vlan_hwaccel_cb *vlan_hwaccel_cb(struct sk_buff *skb)
11{
12 return (struct vlan_hwaccel_cb *)skb->cb;
13}
14
6/* VLAN rx hw acceleration helper. This acts like netif_{rx,receive_skb}(). */ 15/* VLAN rx hw acceleration helper. This acts like netif_{rx,receive_skb}(). */
7int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp, 16int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
8 u16 vlan_tci, int polling) 17 u16 vlan_tci, int polling)
9{ 18{
10 struct net_device_stats *stats; 19 struct vlan_hwaccel_cb *cb = vlan_hwaccel_cb(skb);
11 20
12 if (skb_bond_should_drop(skb)) { 21 if (skb_bond_should_drop(skb)) {
13 dev_kfree_skb_any(skb); 22 dev_kfree_skb_any(skb);
@@ -15,23 +24,35 @@ int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
15 } 24 }
16 25
17 skb->vlan_tci = vlan_tci; 26 skb->vlan_tci = vlan_tci;
27 cb->dev = vlan_group_get_device(grp, vlan_tci & VLAN_VID_MASK);
28
29 return (polling ? netif_receive_skb(skb) : netif_rx(skb));
30}
31EXPORT_SYMBOL(__vlan_hwaccel_rx);
32
33int vlan_hwaccel_do_receive(struct sk_buff *skb)
34{
35 struct vlan_hwaccel_cb *cb = vlan_hwaccel_cb(skb);
36 struct net_device *dev = cb->dev;
37 struct net_device_stats *stats;
38
18 netif_nit_deliver(skb); 39 netif_nit_deliver(skb);
19 40
20 skb->dev = vlan_group_get_device(grp, vlan_tci & VLAN_VID_MASK); 41 if (dev == NULL) {
21 if (skb->dev == NULL) { 42 kfree_skb(skb);
22 dev_kfree_skb_any(skb); 43 return -1;
23 /* Not NET_RX_DROP, this is not being dropped
24 * due to congestion. */
25 return NET_RX_SUCCESS;
26 } 44 }
27 skb->dev->last_rx = jiffies; 45
46 skb->dev = dev;
47 skb->priority = vlan_get_ingress_priority(dev, skb->vlan_tci);
28 skb->vlan_tci = 0; 48 skb->vlan_tci = 0;
29 49
30 stats = &skb->dev->stats; 50 dev->last_rx = jiffies;
51
52 stats = &dev->stats;
31 stats->rx_packets++; 53 stats->rx_packets++;
32 stats->rx_bytes += skb->len; 54 stats->rx_bytes += skb->len;
33 55
34 skb->priority = vlan_get_ingress_priority(skb->dev, vlan_tci);
35 switch (skb->pkt_type) { 56 switch (skb->pkt_type) {
36 case PACKET_BROADCAST: 57 case PACKET_BROADCAST:
37 break; 58 break;
@@ -43,13 +64,12 @@ int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
43 * This allows the VLAN to have a different MAC than the 64 * This allows the VLAN to have a different MAC than the
44 * underlying device, and still route correctly. */ 65 * underlying device, and still route correctly. */
45 if (!compare_ether_addr(eth_hdr(skb)->h_dest, 66 if (!compare_ether_addr(eth_hdr(skb)->h_dest,
46 skb->dev->dev_addr)) 67 dev->dev_addr))
47 skb->pkt_type = PACKET_HOST; 68 skb->pkt_type = PACKET_HOST;
48 break; 69 break;
49 }; 70 };
50 return (polling ? netif_receive_skb(skb) : netif_rx(skb)); 71 return 0;
51} 72}
52EXPORT_SYMBOL(__vlan_hwaccel_rx);
53 73
54struct net_device *vlan_dev_real_dev(const struct net_device *dev) 74struct net_device *vlan_dev_real_dev(const struct net_device *dev)
55{ 75{
diff --git a/net/8021q/vlanproc.c b/net/8021q/vlanproc.c
index 0feefa4e1a4b..3628e0a81b40 100644
--- a/net/8021q/vlanproc.c
+++ b/net/8021q/vlanproc.c
@@ -314,7 +314,7 @@ static int vlandev_seq_show(struct seq_file *seq, void *offset)
314 dev_info->ingress_priority_map[6], 314 dev_info->ingress_priority_map[6],
315 dev_info->ingress_priority_map[7]); 315 dev_info->ingress_priority_map[7]);
316 316
317 seq_printf(seq, "EGRESSS priority Mappings: "); 317 seq_printf(seq, " EGRESS priority mappings: ");
318 for (i = 0; i < 16; i++) { 318 for (i = 0; i < 16; i++) {
319 const struct vlan_priority_tci_mapping *mp 319 const struct vlan_priority_tci_mapping *mp
320 = dev_info->egress_priority_map[i]; 320 = dev_info->egress_priority_map[i];
diff --git a/net/9p/Kconfig b/net/9p/Kconfig
index c42c0c400bf9..0663f99e977a 100644
--- a/net/9p/Kconfig
+++ b/net/9p/Kconfig
@@ -13,22 +13,24 @@ menuconfig NET_9P
13 13
14 If unsure, say N. 14 If unsure, say N.
15 15
16if NET_9P
17
16config NET_9P_VIRTIO 18config NET_9P_VIRTIO
17 depends on NET_9P && EXPERIMENTAL && VIRTIO 19 depends on EXPERIMENTAL && VIRTIO
18 tristate "9P Virtio Transport (Experimental)" 20 tristate "9P Virtio Transport (Experimental)"
19 help 21 help
20 This builds support for a transports between 22 This builds support for a transports between
21 guest partitions and a host partition. 23 guest partitions and a host partition.
22 24
23config NET_9P_RDMA 25config NET_9P_RDMA
24 depends on NET_9P && INFINIBAND && EXPERIMENTAL 26 depends on INET && INFINIBAND && EXPERIMENTAL
25 tristate "9P RDMA Transport (Experimental)" 27 tristate "9P RDMA Transport (Experimental)"
26 help 28 help
27 This builds support for a RDMA transport. 29 This builds support for an RDMA transport.
28 30
29config NET_9P_DEBUG 31config NET_9P_DEBUG
30 bool "Debug information" 32 bool "Debug information"
31 depends on NET_9P
32 help 33 help
33 Say Y if you want the 9P subsystem to log debug information. 34 Say Y if you want the 9P subsystem to log debug information.
34 35
36endif
diff --git a/net/9p/client.c b/net/9p/client.c
index 67717f69412e..4b529454616d 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -189,6 +189,9 @@ static struct p9_req_t *p9_tag_alloc(struct p9_client *c, u16 tag)
189 printk(KERN_ERR "Couldn't grow tag array\n"); 189 printk(KERN_ERR "Couldn't grow tag array\n");
190 kfree(req->tc); 190 kfree(req->tc);
191 kfree(req->rc); 191 kfree(req->rc);
192 kfree(req->wq);
193 req->tc = req->rc = NULL;
194 req->wq = NULL;
192 return ERR_PTR(-ENOMEM); 195 return ERR_PTR(-ENOMEM);
193 } 196 }
194 req->tc->sdata = (char *) req->tc + sizeof(struct p9_fcall); 197 req->tc->sdata = (char *) req->tc + sizeof(struct p9_fcall);
@@ -311,12 +314,6 @@ static void p9_free_req(struct p9_client *c, struct p9_req_t *r)
311 r->status = REQ_STATUS_IDLE; 314 r->status = REQ_STATUS_IDLE;
312 if (tag != P9_NOTAG && p9_idpool_check(tag, c->tagpool)) 315 if (tag != P9_NOTAG && p9_idpool_check(tag, c->tagpool))
313 p9_idpool_put(tag, c->tagpool); 316 p9_idpool_put(tag, c->tagpool);
314
315 /* if this was a flush request we have to free response fcall */
316 if (r->rc->id == P9_RFLUSH) {
317 kfree(r->tc);
318 kfree(r->rc);
319 }
320} 317}
321 318
322/** 319/**
@@ -611,19 +608,21 @@ reterr:
611 608
612static struct p9_fid *p9_fid_create(struct p9_client *clnt) 609static struct p9_fid *p9_fid_create(struct p9_client *clnt)
613{ 610{
614 int err; 611 int ret;
615 struct p9_fid *fid; 612 struct p9_fid *fid;
613 unsigned long flags;
616 614
617 P9_DPRINTK(P9_DEBUG_FID, "clnt %p\n", clnt); 615 P9_DPRINTK(P9_DEBUG_FID, "clnt %p\n", clnt);
618 fid = kmalloc(sizeof(struct p9_fid), GFP_KERNEL); 616 fid = kmalloc(sizeof(struct p9_fid), GFP_KERNEL);
619 if (!fid) 617 if (!fid)
620 return ERR_PTR(-ENOMEM); 618 return ERR_PTR(-ENOMEM);
621 619
622 fid->fid = p9_idpool_get(clnt->fidpool); 620 ret = p9_idpool_get(clnt->fidpool);
623 if (fid->fid < 0) { 621 if (fid->fid < 0) {
624 err = -ENOSPC; 622 ret = -ENOSPC;
625 goto error; 623 goto error;
626 } 624 }
625 fid->fid = ret;
627 626
628 memset(&fid->qid, 0, sizeof(struct p9_qid)); 627 memset(&fid->qid, 0, sizeof(struct p9_qid));
629 fid->mode = -1; 628 fid->mode = -1;
@@ -632,27 +631,28 @@ static struct p9_fid *p9_fid_create(struct p9_client *clnt)
632 fid->clnt = clnt; 631 fid->clnt = clnt;
633 fid->aux = NULL; 632 fid->aux = NULL;
634 633
635 spin_lock(&clnt->lock); 634 spin_lock_irqsave(&clnt->lock, flags);
636 list_add(&fid->flist, &clnt->fidlist); 635 list_add(&fid->flist, &clnt->fidlist);
637 spin_unlock(&clnt->lock); 636 spin_unlock_irqrestore(&clnt->lock, flags);
638 637
639 return fid; 638 return fid;
640 639
641error: 640error:
642 kfree(fid); 641 kfree(fid);
643 return ERR_PTR(err); 642 return ERR_PTR(ret);
644} 643}
645 644
646static void p9_fid_destroy(struct p9_fid *fid) 645static void p9_fid_destroy(struct p9_fid *fid)
647{ 646{
648 struct p9_client *clnt; 647 struct p9_client *clnt;
648 unsigned long flags;
649 649
650 P9_DPRINTK(P9_DEBUG_FID, "fid %d\n", fid->fid); 650 P9_DPRINTK(P9_DEBUG_FID, "fid %d\n", fid->fid);
651 clnt = fid->clnt; 651 clnt = fid->clnt;
652 p9_idpool_put(fid->fid, clnt->fidpool); 652 p9_idpool_put(fid->fid, clnt->fidpool);
653 spin_lock(&clnt->lock); 653 spin_lock_irqsave(&clnt->lock, flags);
654 list_del(&fid->flist); 654 list_del(&fid->flist);
655 spin_unlock(&clnt->lock); 655 spin_unlock_irqrestore(&clnt->lock, flags);
656 kfree(fid); 656 kfree(fid);
657} 657}
658 658
@@ -818,7 +818,9 @@ struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid,
818 } 818 }
819 819
820 P9_DPRINTK(P9_DEBUG_9P, "<<< RATTACH qid %x.%llx.%x\n", 820 P9_DPRINTK(P9_DEBUG_9P, "<<< RATTACH qid %x.%llx.%x\n",
821 qid.type, qid.path, qid.version); 821 qid.type,
822 (unsigned long long)qid.path,
823 qid.version);
822 824
823 memmove(&fid->qid, &qid, sizeof(struct p9_qid)); 825 memmove(&fid->qid, &qid, sizeof(struct p9_qid));
824 826
@@ -865,7 +867,9 @@ p9_client_auth(struct p9_client *clnt, char *uname, u32 n_uname, char *aname)
865 } 867 }
866 868
867 P9_DPRINTK(P9_DEBUG_9P, "<<< RAUTH qid %x.%llx.%x\n", 869 P9_DPRINTK(P9_DEBUG_9P, "<<< RAUTH qid %x.%llx.%x\n",
868 qid.type, qid.path, qid.version); 870 qid.type,
871 (unsigned long long)qid.path,
872 qid.version);
869 873
870 memmove(&afid->qid, &qid, sizeof(struct p9_qid)); 874 memmove(&afid->qid, &qid, sizeof(struct p9_qid));
871 p9_free_req(clnt, req); 875 p9_free_req(clnt, req);
@@ -930,7 +934,8 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames,
930 934
931 for (count = 0; count < nwqids; count++) 935 for (count = 0; count < nwqids; count++)
932 P9_DPRINTK(P9_DEBUG_9P, "<<< [%d] %x.%llx.%x\n", 936 P9_DPRINTK(P9_DEBUG_9P, "<<< [%d] %x.%llx.%x\n",
933 count, wqids[count].type, wqids[count].path, 937 count, wqids[count].type,
938 (unsigned long long)wqids[count].path,
934 wqids[count].version); 939 wqids[count].version);
935 940
936 if (nwname) 941 if (nwname)
@@ -980,7 +985,9 @@ int p9_client_open(struct p9_fid *fid, int mode)
980 } 985 }
981 986
982 P9_DPRINTK(P9_DEBUG_9P, "<<< ROPEN qid %x.%llx.%x iounit %x\n", 987 P9_DPRINTK(P9_DEBUG_9P, "<<< ROPEN qid %x.%llx.%x iounit %x\n",
983 qid.type, qid.path, qid.version, iounit); 988 qid.type,
989 (unsigned long long)qid.path,
990 qid.version, iounit);
984 991
985 fid->mode = mode; 992 fid->mode = mode;
986 fid->iounit = iounit; 993 fid->iounit = iounit;
@@ -1023,7 +1030,9 @@ int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode,
1023 } 1030 }
1024 1031
1025 P9_DPRINTK(P9_DEBUG_9P, "<<< RCREATE qid %x.%llx.%x iounit %x\n", 1032 P9_DPRINTK(P9_DEBUG_9P, "<<< RCREATE qid %x.%llx.%x iounit %x\n",
1026 qid.type, qid.path, qid.version, iounit); 1033 qid.type,
1034 (unsigned long long)qid.path,
1035 qid.version, iounit);
1027 1036
1028 fid->mode = mode; 1037 fid->mode = mode;
1029 fid->iounit = iounit; 1038 fid->iounit = iounit;
@@ -1230,9 +1239,9 @@ struct p9_wstat *p9_client_stat(struct p9_fid *fid)
1230 "<<< name=%s uid=%s gid=%s muid=%s extension=(%s)\n" 1239 "<<< name=%s uid=%s gid=%s muid=%s extension=(%s)\n"
1231 "<<< uid=%d gid=%d n_muid=%d\n", 1240 "<<< uid=%d gid=%d n_muid=%d\n",
1232 ret->size, ret->type, ret->dev, ret->qid.type, 1241 ret->size, ret->type, ret->dev, ret->qid.type,
1233 ret->qid.path, ret->qid.version, ret->mode, 1242 (unsigned long long)ret->qid.path, ret->qid.version, ret->mode,
1234 ret->atime, ret->mtime, ret->length, ret->name, 1243 ret->atime, ret->mtime, (unsigned long long)ret->length,
1235 ret->uid, ret->gid, ret->muid, ret->extension, 1244 ret->name, ret->uid, ret->gid, ret->muid, ret->extension,
1236 ret->n_uid, ret->n_gid, ret->n_muid); 1245 ret->n_uid, ret->n_gid, ret->n_muid);
1237 1246
1238free_and_error: 1247free_and_error:
@@ -1255,9 +1264,9 @@ int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst)
1255 " name=%s uid=%s gid=%s muid=%s extension=(%s)\n" 1264 " name=%s uid=%s gid=%s muid=%s extension=(%s)\n"
1256 " uid=%d gid=%d n_muid=%d\n", 1265 " uid=%d gid=%d n_muid=%d\n",
1257 wst->size, wst->type, wst->dev, wst->qid.type, 1266 wst->size, wst->type, wst->dev, wst->qid.type,
1258 wst->qid.path, wst->qid.version, wst->mode, 1267 (unsigned long long)wst->qid.path, wst->qid.version, wst->mode,
1259 wst->atime, wst->mtime, wst->length, wst->name, 1268 wst->atime, wst->mtime, (unsigned long long)wst->length,
1260 wst->uid, wst->gid, wst->muid, wst->extension, 1269 wst->name, wst->uid, wst->gid, wst->muid, wst->extension,
1261 wst->n_uid, wst->n_gid, wst->n_muid); 1270 wst->n_uid, wst->n_gid, wst->n_muid);
1262 err = 0; 1271 err = 0;
1263 clnt = fid->clnt; 1272 clnt = fid->clnt;
diff --git a/net/9p/trans_rdma.c b/net/9p/trans_rdma.c
index 8d6cc4777aae..2f1fe5fc1228 100644
--- a/net/9p/trans_rdma.c
+++ b/net/9p/trans_rdma.c
@@ -45,7 +45,6 @@
45#include <net/9p/transport.h> 45#include <net/9p/transport.h>
46#include <rdma/ib_verbs.h> 46#include <rdma/ib_verbs.h>
47#include <rdma/rdma_cm.h> 47#include <rdma/rdma_cm.h>
48#include <rdma/ib_verbs.h>
49 48
50#define P9_PORT 5640 49#define P9_PORT 5640
51#define P9_RDMA_SQ_DEPTH 32 50#define P9_RDMA_SQ_DEPTH 32
@@ -589,6 +588,9 @@ rdma_create_trans(struct p9_client *client, const char *addr, char *args)
589 if (IS_ERR(rdma->cm_id)) 588 if (IS_ERR(rdma->cm_id))
590 goto error; 589 goto error;
591 590
591 /* Associate the client with the transport */
592 client->trans = rdma;
593
592 /* Resolve the server's address */ 594 /* Resolve the server's address */
593 rdma->addr.sin_family = AF_INET; 595 rdma->addr.sin_family = AF_INET;
594 rdma->addr.sin_addr.s_addr = in_aton(addr); 596 rdma->addr.sin_addr.s_addr = in_aton(addr);
@@ -669,7 +671,6 @@ rdma_create_trans(struct p9_client *client, const char *addr, char *args)
669 if (err || (rdma->state != P9_RDMA_CONNECTED)) 671 if (err || (rdma->state != P9_RDMA_CONNECTED))
670 goto error; 672 goto error;
671 673
672 client->trans = rdma;
673 client->status = Connected; 674 client->status = Connected;
674 675
675 return 0; 676 return 0;
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/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/compat.c b/net/compat.c
index 67fb6a3834a3..a3a2ba0fac08 100644
--- a/net/compat.c
+++ b/net/compat.c
@@ -226,14 +226,14 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
226 return 0; /* XXX: return error? check spec. */ 226 return 0; /* XXX: return error? check spec. */
227 } 227 }
228 228
229 if (level == SOL_SOCKET && type == SO_TIMESTAMP) { 229 if (level == SOL_SOCKET && type == SCM_TIMESTAMP) {
230 struct timeval *tv = (struct timeval *)data; 230 struct timeval *tv = (struct timeval *)data;
231 ctv.tv_sec = tv->tv_sec; 231 ctv.tv_sec = tv->tv_sec;
232 ctv.tv_usec = tv->tv_usec; 232 ctv.tv_usec = tv->tv_usec;
233 data = &ctv; 233 data = &ctv;
234 len = sizeof(ctv); 234 len = sizeof(ctv);
235 } 235 }
236 if (level == SOL_SOCKET && type == SO_TIMESTAMPNS) { 236 if (level == SOL_SOCKET && type == SCM_TIMESTAMPNS) {
237 struct timespec *ts = (struct timespec *)data; 237 struct timespec *ts = (struct timespec *)data;
238 cts.tv_sec = ts->tv_sec; 238 cts.tv_sec = ts->tv_sec;
239 cts.tv_nsec = ts->tv_nsec; 239 cts.tv_nsec = ts->tv_nsec;
@@ -725,7 +725,7 @@ EXPORT_SYMBOL(compat_mc_getsockopt);
725static unsigned char nas[19]={AL(0),AL(3),AL(3),AL(3),AL(2),AL(3), 725static unsigned char nas[19]={AL(0),AL(3),AL(3),AL(3),AL(2),AL(3),
726 AL(3),AL(3),AL(4),AL(4),AL(4),AL(6), 726 AL(3),AL(3),AL(4),AL(4),AL(4),AL(6),
727 AL(6),AL(2),AL(5),AL(5),AL(3),AL(3), 727 AL(6),AL(2),AL(5),AL(5),AL(3),AL(3),
728 AL(6)}; 728 AL(4)};
729#undef AL 729#undef AL
730 730
731asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, unsigned flags) 731asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, unsigned flags)
@@ -738,52 +738,13 @@ asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg, uns
738 return sys_recvmsg(fd, (struct msghdr __user *)msg, flags | MSG_CMSG_COMPAT); 738 return sys_recvmsg(fd, (struct msghdr __user *)msg, flags | MSG_CMSG_COMPAT);
739} 739}
740 740
741asmlinkage long compat_sys_paccept(int fd, struct sockaddr __user *upeer_sockaddr,
742 int __user *upeer_addrlen,
743 const compat_sigset_t __user *sigmask,
744 compat_size_t sigsetsize, int flags)
745{
746 compat_sigset_t ss32;
747 sigset_t ksigmask, sigsaved;
748 int ret;
749
750 if (sigmask) {
751 if (sigsetsize != sizeof(compat_sigset_t))
752 return -EINVAL;
753 if (copy_from_user(&ss32, sigmask, sizeof(ss32)))
754 return -EFAULT;
755 sigset_from_compat(&ksigmask, &ss32);
756
757 sigdelsetmask(&ksigmask, sigmask(SIGKILL)|sigmask(SIGSTOP));
758 sigprocmask(SIG_SETMASK, &ksigmask, &sigsaved);
759 }
760
761 ret = do_accept(fd, upeer_sockaddr, upeer_addrlen, flags);
762
763 if (ret == -ERESTARTNOHAND) {
764 /*
765 * Don't restore the signal mask yet. Let do_signal() deliver
766 * the signal on the way back to userspace, before the signal
767 * mask is restored.
768 */
769 if (sigmask) {
770 memcpy(&current->saved_sigmask, &sigsaved,
771 sizeof(sigsaved));
772 set_restore_sigmask();
773 }
774 } else if (sigmask)
775 sigprocmask(SIG_SETMASK, &sigsaved, NULL);
776
777 return ret;
778}
779
780asmlinkage long compat_sys_socketcall(int call, u32 __user *args) 741asmlinkage long compat_sys_socketcall(int call, u32 __user *args)
781{ 742{
782 int ret; 743 int ret;
783 u32 a[6]; 744 u32 a[6];
784 u32 a0, a1; 745 u32 a0, a1;
785 746
786 if (call < SYS_SOCKET || call > SYS_PACCEPT) 747 if (call < SYS_SOCKET || call > SYS_ACCEPT4)
787 return -EINVAL; 748 return -EINVAL;
788 if (copy_from_user(a, args, nas[call])) 749 if (copy_from_user(a, args, nas[call]))
789 return -EFAULT; 750 return -EFAULT;
@@ -804,7 +765,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args)
804 ret = sys_listen(a0, a1); 765 ret = sys_listen(a0, a1);
805 break; 766 break;
806 case SYS_ACCEPT: 767 case SYS_ACCEPT:
807 ret = do_accept(a0, compat_ptr(a1), compat_ptr(a[2]), 0); 768 ret = sys_accept4(a0, compat_ptr(a1), compat_ptr(a[2]), 0);
808 break; 769 break;
809 case SYS_GETSOCKNAME: 770 case SYS_GETSOCKNAME:
810 ret = sys_getsockname(a0, compat_ptr(a1), compat_ptr(a[2])); 771 ret = sys_getsockname(a0, compat_ptr(a1), compat_ptr(a[2]));
@@ -844,9 +805,8 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args)
844 case SYS_RECVMSG: 805 case SYS_RECVMSG:
845 ret = compat_sys_recvmsg(a0, compat_ptr(a1), a[2]); 806 ret = compat_sys_recvmsg(a0, compat_ptr(a1), a[2]);
846 break; 807 break;
847 case SYS_PACCEPT: 808 case SYS_ACCEPT4:
848 ret = compat_sys_paccept(a0, compat_ptr(a1), compat_ptr(a[2]), 809 ret = sys_accept4(a0, compat_ptr(a1), compat_ptr(a[2]), a[3]);
849 compat_ptr(a[3]), a[4], a[5]);
850 break; 810 break;
851 default: 811 default:
852 ret = -EINVAL; 812 ret = -EINVAL;
diff --git a/net/core/dev.c b/net/core/dev.c
index d9038e328cc1..9174c77d3112 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2218,6 +2218,9 @@ int netif_receive_skb(struct sk_buff *skb)
2218 int ret = NET_RX_DROP; 2218 int ret = NET_RX_DROP;
2219 __be16 type; 2219 __be16 type;
2220 2220
2221 if (skb->vlan_tci && vlan_hwaccel_do_receive(skb))
2222 return NET_RX_SUCCESS;
2223
2221 /* if we've gotten here through NAPI, check netpoll */ 2224 /* if we've gotten here through NAPI, check netpoll */
2222 if (netpoll_receive_skb(skb)) 2225 if (netpoll_receive_skb(skb))
2223 return NET_RX_DROP; 2226 return NET_RX_DROP;
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/pktgen.c b/net/core/pktgen.c
index a47f5bad110d..8997e912aaaf 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -1973,13 +1973,7 @@ static void pktgen_setup_inject(struct pktgen_dev *pkt_dev)
1973 1973
1974 /* make sure that we don't pick a non-existing transmit queue */ 1974 /* make sure that we don't pick a non-existing transmit queue */
1975 ntxq = pkt_dev->odev->real_num_tx_queues; 1975 ntxq = pkt_dev->odev->real_num_tx_queues;
1976 if (ntxq > num_online_cpus() && (pkt_dev->flags & F_QUEUE_MAP_CPU)) { 1976
1977 printk(KERN_WARNING "pktgen: WARNING: QUEUE_MAP_CPU "
1978 "disabled because CPU count (%d) exceeds number "
1979 "of tx queues (%d) on %s\n", num_online_cpus(), ntxq,
1980 pkt_dev->odev->name);
1981 pkt_dev->flags &= ~F_QUEUE_MAP_CPU;
1982 }
1983 if (ntxq <= pkt_dev->queue_map_min) { 1977 if (ntxq <= pkt_dev->queue_map_min) {
1984 printk(KERN_WARNING "pktgen: WARNING: Requested " 1978 printk(KERN_WARNING "pktgen: WARNING: Requested "
1985 "queue_map_min (zero-based) (%d) exceeds valid range " 1979 "queue_map_min (zero-based) (%d) exceeds valid range "
@@ -2202,6 +2196,7 @@ static void set_cur_queue_map(struct pktgen_dev *pkt_dev)
2202 } 2196 }
2203 pkt_dev->cur_queue_map = t; 2197 pkt_dev->cur_queue_map = t;
2204 } 2198 }
2199 pkt_dev->cur_queue_map = pkt_dev->cur_queue_map % pkt_dev->odev->real_num_tx_queues;
2205} 2200}
2206 2201
2207/* Increment/randomize headers according to flags and current values 2202/* Increment/randomize headers according to flags and current values
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 31f29d2989fd..4dfb6b4d4559 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -878,7 +878,9 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm,
878 if (ifm->ifi_change) 878 if (ifm->ifi_change)
879 flags = (flags & ifm->ifi_change) | 879 flags = (flags & ifm->ifi_change) |
880 (dev->flags & ~ifm->ifi_change); 880 (dev->flags & ~ifm->ifi_change);
881 dev_change_flags(dev, flags); 881 err = dev_change_flags(dev, flags);
882 if (err < 0)
883 goto errout;
882 } 884 }
883 885
884 if (tb[IFLA_TXQLEN]) 886 if (tb[IFLA_TXQLEN])
diff --git a/net/core/scm.c b/net/core/scm.c
index 10f5c65f6a47..b12303dd39d9 100644
--- a/net/core/scm.c
+++ b/net/core/scm.c
@@ -106,9 +106,25 @@ void __scm_destroy(struct scm_cookie *scm)
106 106
107 if (fpl) { 107 if (fpl) {
108 scm->fp = NULL; 108 scm->fp = NULL;
109 for (i=fpl->count-1; i>=0; i--) 109 if (current->scm_work_list) {
110 fput(fpl->fp[i]); 110 list_add_tail(&fpl->list, current->scm_work_list);
111 kfree(fpl); 111 } else {
112 LIST_HEAD(work_list);
113
114 current->scm_work_list = &work_list;
115
116 list_add(&fpl->list, &work_list);
117 while (!list_empty(&work_list)) {
118 fpl = list_first_entry(&work_list, struct scm_fp_list, list);
119
120 list_del(&fpl->list);
121 for (i=fpl->count-1; i>=0; i--)
122 fput(fpl->fp[i]);
123 kfree(fpl);
124 }
125
126 current->scm_work_list = NULL;
127 }
112 } 128 }
113} 129}
114 130
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index ebb6b94f8af2..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}
@@ -486,8 +486,8 @@ int skb_recycle_check(struct sk_buff *skb, int skb_size)
486 shinfo->frag_list = NULL; 486 shinfo->frag_list = NULL;
487 487
488 memset(skb, 0, offsetof(struct sk_buff, tail)); 488 memset(skb, 0, offsetof(struct sk_buff, tail));
489 skb_reset_tail_pointer(skb);
490 skb->data = skb->head + NET_SKB_PAD; 489 skb->data = skb->head + NET_SKB_PAD;
490 skb_reset_tail_pointer(skb);
491 491
492 return 1; 492 return 1;
493} 493}
diff --git a/net/core/sock.c b/net/core/sock.c
index 5e2a3132a8c9..edf7220889a4 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -136,7 +136,6 @@
136static struct lock_class_key af_family_keys[AF_MAX]; 136static struct lock_class_key af_family_keys[AF_MAX];
137static struct lock_class_key af_family_slock_keys[AF_MAX]; 137static struct lock_class_key af_family_slock_keys[AF_MAX];
138 138
139#ifdef CONFIG_DEBUG_LOCK_ALLOC
140/* 139/*
141 * Make lock validator output more readable. (we pre-construct these 140 * Make lock validator output more readable. (we pre-construct these
142 * strings build-time, so that runtime initialization of socket 141 * strings build-time, so that runtime initialization of socket
@@ -187,7 +186,6 @@ static const char *af_family_clock_key_strings[AF_MAX+1] = {
187 "clock-AF_RXRPC" , "clock-AF_ISDN" , "clock-AF_PHONET" , 186 "clock-AF_RXRPC" , "clock-AF_ISDN" , "clock-AF_PHONET" ,
188 "clock-AF_MAX" 187 "clock-AF_MAX"
189}; 188};
190#endif
191 189
192/* 190/*
193 * sk_callback_lock locking rules are per-address-family, 191 * sk_callback_lock locking rules are per-address-family,
@@ -2037,9 +2035,6 @@ static inline void release_proto_idx(struct proto *prot)
2037 2035
2038int proto_register(struct proto *prot, int alloc_slab) 2036int proto_register(struct proto *prot, int alloc_slab)
2039{ 2037{
2040 char *request_sock_slab_name = NULL;
2041 char *timewait_sock_slab_name;
2042
2043 if (alloc_slab) { 2038 if (alloc_slab) {
2044 prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0, 2039 prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0,
2045 SLAB_HWCACHE_ALIGN, NULL); 2040 SLAB_HWCACHE_ALIGN, NULL);
@@ -2053,12 +2048,12 @@ int proto_register(struct proto *prot, int alloc_slab)
2053 if (prot->rsk_prot != NULL) { 2048 if (prot->rsk_prot != NULL) {
2054 static const char mask[] = "request_sock_%s"; 2049 static const char mask[] = "request_sock_%s";
2055 2050
2056 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);
2057 if (request_sock_slab_name == NULL) 2052 if (prot->rsk_prot->slab_name == NULL)
2058 goto out_free_sock_slab; 2053 goto out_free_sock_slab;
2059 2054
2060 sprintf(request_sock_slab_name, mask, prot->name); 2055 sprintf(prot->rsk_prot->slab_name, mask, prot->name);
2061 prot->rsk_prot->slab = kmem_cache_create(request_sock_slab_name, 2056 prot->rsk_prot->slab = kmem_cache_create(prot->rsk_prot->slab_name,
2062 prot->rsk_prot->obj_size, 0, 2057 prot->rsk_prot->obj_size, 0,
2063 SLAB_HWCACHE_ALIGN, NULL); 2058 SLAB_HWCACHE_ALIGN, NULL);
2064 2059
@@ -2072,14 +2067,14 @@ int proto_register(struct proto *prot, int alloc_slab)
2072 if (prot->twsk_prot != NULL) { 2067 if (prot->twsk_prot != NULL) {
2073 static const char mask[] = "tw_sock_%s"; 2068 static const char mask[] = "tw_sock_%s";
2074 2069
2075 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);
2076 2071
2077 if (timewait_sock_slab_name == NULL) 2072 if (prot->twsk_prot->twsk_slab_name == NULL)
2078 goto out_free_request_sock_slab; 2073 goto out_free_request_sock_slab;
2079 2074
2080 sprintf(timewait_sock_slab_name, mask, prot->name); 2075 sprintf(prot->twsk_prot->twsk_slab_name, mask, prot->name);
2081 prot->twsk_prot->twsk_slab = 2076 prot->twsk_prot->twsk_slab =
2082 kmem_cache_create(timewait_sock_slab_name, 2077 kmem_cache_create(prot->twsk_prot->twsk_slab_name,
2083 prot->twsk_prot->twsk_obj_size, 2078 prot->twsk_prot->twsk_obj_size,
2084 0, SLAB_HWCACHE_ALIGN, 2079 0, SLAB_HWCACHE_ALIGN,
2085 NULL); 2080 NULL);
@@ -2095,14 +2090,14 @@ int proto_register(struct proto *prot, int alloc_slab)
2095 return 0; 2090 return 0;
2096 2091
2097out_free_timewait_sock_slab_name: 2092out_free_timewait_sock_slab_name:
2098 kfree(timewait_sock_slab_name); 2093 kfree(prot->twsk_prot->twsk_slab_name);
2099out_free_request_sock_slab: 2094out_free_request_sock_slab:
2100 if (prot->rsk_prot && prot->rsk_prot->slab) { 2095 if (prot->rsk_prot && prot->rsk_prot->slab) {
2101 kmem_cache_destroy(prot->rsk_prot->slab); 2096 kmem_cache_destroy(prot->rsk_prot->slab);
2102 prot->rsk_prot->slab = NULL; 2097 prot->rsk_prot->slab = NULL;
2103 } 2098 }
2104out_free_request_sock_slab_name: 2099out_free_request_sock_slab_name:
2105 kfree(request_sock_slab_name); 2100 kfree(prot->rsk_prot->slab_name);
2106out_free_sock_slab: 2101out_free_sock_slab:
2107 kmem_cache_destroy(prot->slab); 2102 kmem_cache_destroy(prot->slab);
2108 prot->slab = NULL; 2103 prot->slab = NULL;
@@ -2125,18 +2120,14 @@ void proto_unregister(struct proto *prot)
2125 } 2120 }
2126 2121
2127 if (prot->rsk_prot != NULL && prot->rsk_prot->slab != NULL) { 2122 if (prot->rsk_prot != NULL && prot->rsk_prot->slab != NULL) {
2128 const char *name = kmem_cache_name(prot->rsk_prot->slab);
2129
2130 kmem_cache_destroy(prot->rsk_prot->slab); 2123 kmem_cache_destroy(prot->rsk_prot->slab);
2131 kfree(name); 2124 kfree(prot->rsk_prot->slab_name);
2132 prot->rsk_prot->slab = NULL; 2125 prot->rsk_prot->slab = NULL;
2133 } 2126 }
2134 2127
2135 if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) { 2128 if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) {
2136 const char *name = kmem_cache_name(prot->twsk_prot->twsk_slab);
2137
2138 kmem_cache_destroy(prot->twsk_prot->twsk_slab); 2129 kmem_cache_destroy(prot->twsk_prot->twsk_slab);
2139 kfree(name); 2130 kfree(prot->twsk_prot->twsk_slab_name);
2140 prot->twsk_prot->twsk_slab = NULL; 2131 prot->twsk_prot->twsk_slab = NULL;
2141 } 2132 }
2142} 2133}
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 37616884b8a9..1af5a79309e9 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -10,6 +10,7 @@
10 10
11#include <linux/list.h> 11#include <linux/list.h>
12#include <linux/netdevice.h> 12#include <linux/netdevice.h>
13#include <linux/etherdevice.h>
13#include <linux/phy.h> 14#include <linux/phy.h>
14#include "dsa_priv.h" 15#include "dsa_priv.h"
15 16
@@ -49,11 +50,57 @@ void dsa_slave_mii_bus_init(struct dsa_switch *ds)
49/* slave device handling ****************************************************/ 50/* slave device handling ****************************************************/
50static int dsa_slave_open(struct net_device *dev) 51static int dsa_slave_open(struct net_device *dev)
51{ 52{
53 struct dsa_slave_priv *p = netdev_priv(dev);
54 struct net_device *master = p->parent->master_netdev;
55 int err;
56
57 if (!(master->flags & IFF_UP))
58 return -ENETDOWN;
59
60 if (compare_ether_addr(dev->dev_addr, master->dev_addr)) {
61 err = dev_unicast_add(master, dev->dev_addr, ETH_ALEN);
62 if (err < 0)
63 goto out;
64 }
65
66 if (dev->flags & IFF_ALLMULTI) {
67 err = dev_set_allmulti(master, 1);
68 if (err < 0)
69 goto del_unicast;
70 }
71 if (dev->flags & IFF_PROMISC) {
72 err = dev_set_promiscuity(master, 1);
73 if (err < 0)
74 goto clear_allmulti;
75 }
76
52 return 0; 77 return 0;
78
79clear_allmulti:
80 if (dev->flags & IFF_ALLMULTI)
81 dev_set_allmulti(master, -1);
82del_unicast:
83 if (compare_ether_addr(dev->dev_addr, master->dev_addr))
84 dev_unicast_delete(master, dev->dev_addr, ETH_ALEN);
85out:
86 return err;
53} 87}
54 88
55static int dsa_slave_close(struct net_device *dev) 89static int dsa_slave_close(struct net_device *dev)
56{ 90{
91 struct dsa_slave_priv *p = netdev_priv(dev);
92 struct net_device *master = p->parent->master_netdev;
93
94 dev_mc_unsync(master, dev);
95 dev_unicast_unsync(master, dev);
96 if (dev->flags & IFF_ALLMULTI)
97 dev_set_allmulti(master, -1);
98 if (dev->flags & IFF_PROMISC)
99 dev_set_promiscuity(master, -1);
100
101 if (compare_ether_addr(dev->dev_addr, master->dev_addr))
102 dev_unicast_delete(master, dev->dev_addr, ETH_ALEN);
103
57 return 0; 104 return 0;
58} 105}
59 106
@@ -77,9 +124,30 @@ static void dsa_slave_set_rx_mode(struct net_device *dev)
77 dev_unicast_sync(master, dev); 124 dev_unicast_sync(master, dev);
78} 125}
79 126
80static int dsa_slave_set_mac_address(struct net_device *dev, void *addr) 127static int dsa_slave_set_mac_address(struct net_device *dev, void *a)
81{ 128{
82 memcpy(dev->dev_addr, addr + 2, 6); 129 struct dsa_slave_priv *p = netdev_priv(dev);
130 struct net_device *master = p->parent->master_netdev;
131 struct sockaddr *addr = a;
132 int err;
133
134 if (!is_valid_ether_addr(addr->sa_data))
135 return -EADDRNOTAVAIL;
136
137 if (!(dev->flags & IFF_UP))
138 goto out;
139
140 if (compare_ether_addr(addr->sa_data, master->dev_addr)) {
141 err = dev_unicast_add(master, addr->sa_data, ETH_ALEN);
142 if (err < 0)
143 return err;
144 }
145
146 if (compare_ether_addr(dev->dev_addr, master->dev_addr))
147 dev_unicast_delete(master, dev->dev_addr, ETH_ALEN);
148
149out:
150 memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
83 151
84 return 0; 152 return 0;
85} 153}
diff --git a/net/dsa/tag_dsa.c b/net/dsa/tag_dsa.c
index bdc0510b53b7..31866543332e 100644
--- a/net/dsa/tag_dsa.c
+++ b/net/dsa/tag_dsa.c
@@ -159,6 +159,7 @@ static int dsa_rcv(struct sk_buff *skb, struct net_device *dev,
159 159
160 skb->dev = ds->ports[source_port]; 160 skb->dev = ds->ports[source_port];
161 skb_push(skb, ETH_HLEN); 161 skb_push(skb, ETH_HLEN);
162 skb->pkt_type = PACKET_HOST;
162 skb->protocol = eth_type_trans(skb, skb->dev); 163 skb->protocol = eth_type_trans(skb, skb->dev);
163 164
164 skb->dev->last_rx = jiffies; 165 skb->dev->last_rx = jiffies;
diff --git a/net/dsa/tag_edsa.c b/net/dsa/tag_edsa.c
index f985ea993843..9f4ce55eae59 100644
--- a/net/dsa/tag_edsa.c
+++ b/net/dsa/tag_edsa.c
@@ -178,6 +178,7 @@ static int edsa_rcv(struct sk_buff *skb, struct net_device *dev,
178 178
179 skb->dev = ds->ports[source_port]; 179 skb->dev = ds->ports[source_port];
180 skb_push(skb, ETH_HLEN); 180 skb_push(skb, ETH_HLEN);
181 skb->pkt_type = PACKET_HOST;
181 skb->protocol = eth_type_trans(skb, skb->dev); 182 skb->protocol = eth_type_trans(skb, skb->dev);
182 183
183 skb->dev->last_rx = jiffies; 184 skb->dev->last_rx = jiffies;
diff --git a/net/dsa/tag_trailer.c b/net/dsa/tag_trailer.c
index d3117764b2c2..efd26697e716 100644
--- a/net/dsa/tag_trailer.c
+++ b/net/dsa/tag_trailer.c
@@ -95,6 +95,7 @@ static int trailer_rcv(struct sk_buff *skb, struct net_device *dev,
95 95
96 skb->dev = ds->ports[source_port]; 96 skb->dev = ds->ports[source_port];
97 skb_push(skb, ETH_HLEN); 97 skb_push(skb, ETH_HLEN);
98 skb->pkt_type = PACKET_HOST;
98 skb->protocol = eth_type_trans(skb, skb->dev); 99 skb->protocol = eth_type_trans(skb, skb->dev);
99 100
100 skb->dev->last_rx = jiffies; 101 skb->dev->last_rx = jiffies;
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 1fbff5fa4241..1aa2dc9e380e 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1117,6 +1117,7 @@ int inet_sk_rebuild_header(struct sock *sk)
1117 }, 1117 },
1118 }, 1118 },
1119 .proto = sk->sk_protocol, 1119 .proto = sk->sk_protocol,
1120 .flags = inet_sk_flowi_flags(sk),
1120 .uli_u = { 1121 .uli_u = {
1121 .ports = { 1122 .ports = {
1122 .sport = inet->sport, 1123 .sport = inet->sport,
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index 861978a4f1a8..cfb38ac9d698 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -209,9 +209,17 @@ static int ip_local_deliver_finish(struct sk_buff *skb)
209 209
210 hash = protocol & (MAX_INET_PROTOS - 1); 210 hash = protocol & (MAX_INET_PROTOS - 1);
211 ipprot = rcu_dereference(inet_protos[hash]); 211 ipprot = rcu_dereference(inet_protos[hash]);
212 if (ipprot != NULL && (net == &init_net || ipprot->netns_ok)) { 212 if (ipprot != NULL) {
213 int ret; 213 int ret;
214 214
215 if (!net_eq(net, &init_net) && !ipprot->netns_ok) {
216 if (net_ratelimit())
217 printk("%s: proto %d isn't netns-ready\n",
218 __func__, protocol);
219 kfree_skb(skb);
220 goto out;
221 }
222
215 if (!ipprot->no_policy) { 223 if (!ipprot->no_policy) {
216 if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) { 224 if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
217 kfree_skb(skb); 225 kfree_skb(skb);
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
index b42e082cc170..25924b1eb2ef 100644
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -1945,13 +1945,14 @@ int __init ip_mr_init(void)
1945 goto proc_cache_fail; 1945 goto proc_cache_fail;
1946#endif 1946#endif
1947 return 0; 1947 return 0;
1948reg_notif_fail:
1949 kmem_cache_destroy(mrt_cachep);
1950#ifdef CONFIG_PROC_FS 1948#ifdef CONFIG_PROC_FS
1951proc_vif_fail:
1952 unregister_netdevice_notifier(&ip_mr_notifier);
1953proc_cache_fail: 1949proc_cache_fail:
1954 proc_net_remove(&init_net, "ip_mr_vif"); 1950 proc_net_remove(&init_net, "ip_mr_vif");
1951proc_vif_fail:
1952 unregister_netdevice_notifier(&ip_mr_notifier);
1955#endif 1953#endif
1954reg_notif_fail:
1955 del_timer(&ipmr_expire_timer);
1956 kmem_cache_destroy(mrt_cachep);
1956 return err; 1957 return err;
1957} 1958}
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/proc.c b/net/ipv4/proc.c
index 8f5a403f6f6b..a631a1f110ca 100644
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
@@ -237,43 +237,45 @@ static const struct snmp_mib snmp4_net_list[] = {
237 SNMP_MIB_SENTINEL 237 SNMP_MIB_SENTINEL
238}; 238};
239 239
240static void icmpmsg_put_line(struct seq_file *seq, unsigned long *vals,
241 unsigned short *type, int count)
242{
243 int j;
244
245 if (count) {
246 seq_printf(seq, "\nIcmpMsg:");
247 for (j = 0; j < count; ++j)
248 seq_printf(seq, " %sType%u",
249 type[j] & 0x100 ? "Out" : "In",
250 type[j] & 0xff);
251 seq_printf(seq, "\nIcmpMsg:");
252 for (j = 0; j < count; ++j)
253 seq_printf(seq, " %lu", vals[j]);
254 }
255}
256
240static void icmpmsg_put(struct seq_file *seq) 257static void icmpmsg_put(struct seq_file *seq)
241{ 258{
242#define PERLINE 16 259#define PERLINE 16
243 260
244 int j, i, count; 261 int i, count;
245 static int out[PERLINE]; 262 unsigned short type[PERLINE];
263 unsigned long vals[PERLINE], val;
246 struct net *net = seq->private; 264 struct net *net = seq->private;
247 265
248 count = 0; 266 count = 0;
249 for (i = 0; i < ICMPMSG_MIB_MAX; i++) { 267 for (i = 0; i < ICMPMSG_MIB_MAX; i++) {
250 268 val = snmp_fold_field((void **) net->mib.icmpmsg_statistics, i);
251 if (snmp_fold_field((void **) net->mib.icmpmsg_statistics, i)) 269 if (val) {
252 out[count++] = i; 270 type[count] = i;
253 if (count < PERLINE) 271 vals[count++] = val;
254 continue; 272 }
255 273 if (count == PERLINE) {
256 seq_printf(seq, "\nIcmpMsg:"); 274 icmpmsg_put_line(seq, vals, type, count);
257 for (j = 0; j < PERLINE; ++j) 275 count = 0;
258 seq_printf(seq, " %sType%u", i & 0x100 ? "Out" : "In", 276 }
259 i & 0xff);
260 seq_printf(seq, "\nIcmpMsg: ");
261 for (j = 0; j < PERLINE; ++j)
262 seq_printf(seq, " %lu",
263 snmp_fold_field((void **) net->mib.icmpmsg_statistics,
264 out[j]));
265 seq_putc(seq, '\n');
266 }
267 if (count) {
268 seq_printf(seq, "\nIcmpMsg:");
269 for (j = 0; j < count; ++j)
270 seq_printf(seq, " %sType%u", out[j] & 0x100 ? "Out" :
271 "In", out[j] & 0xff);
272 seq_printf(seq, "\nIcmpMsg:");
273 for (j = 0; j < count; ++j)
274 seq_printf(seq, " %lu", snmp_fold_field((void **)
275 net->mib.icmpmsg_statistics, out[j]));
276 } 277 }
278 icmpmsg_put_line(seq, vals, type, count);
277 279
278#undef PERLINE 280#undef PERLINE
279} 281}
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index eccb7165a80c..c5aca0bb116a 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1374,8 +1374,7 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
1374 sk->sk_state == TCP_CLOSE || 1374 sk->sk_state == TCP_CLOSE ||
1375 (sk->sk_shutdown & RCV_SHUTDOWN) || 1375 (sk->sk_shutdown & RCV_SHUTDOWN) ||
1376 !timeo || 1376 !timeo ||
1377 signal_pending(current) || 1377 signal_pending(current))
1378 (flags & MSG_PEEK))
1379 break; 1378 break;
1380 } else { 1379 } else {
1381 if (sock_flag(sk, SOCK_DONE)) 1380 if (sock_flag(sk, SOCK_DONE))
diff --git a/net/ipv4/tcp_htcp.c b/net/ipv4/tcp_htcp.c
index af99776146ff..937549b8a921 100644
--- a/net/ipv4/tcp_htcp.c
+++ b/net/ipv4/tcp_htcp.c
@@ -69,9 +69,12 @@ static u32 htcp_cwnd_undo(struct sock *sk)
69 const struct tcp_sock *tp = tcp_sk(sk); 69 const struct tcp_sock *tp = tcp_sk(sk);
70 struct htcp *ca = inet_csk_ca(sk); 70 struct htcp *ca = inet_csk_ca(sk);
71 71
72 ca->last_cong = ca->undo_last_cong; 72 if (ca->undo_last_cong) {
73 ca->maxRTT = ca->undo_maxRTT; 73 ca->last_cong = ca->undo_last_cong;
74 ca->old_maxB = ca->undo_old_maxB; 74 ca->maxRTT = ca->undo_maxRTT;
75 ca->old_maxB = ca->undo_old_maxB;
76 ca->undo_last_cong = 0;
77 }
75 78
76 return max(tp->snd_cwnd, (tp->snd_ssthresh << 7) / ca->beta); 79 return max(tp->snd_cwnd, (tp->snd_ssthresh << 7) / ca->beta);
77} 80}
@@ -268,7 +271,10 @@ static void htcp_state(struct sock *sk, u8 new_state)
268 case TCP_CA_Open: 271 case TCP_CA_Open:
269 { 272 {
270 struct htcp *ca = inet_csk_ca(sk); 273 struct htcp *ca = inet_csk_ca(sk);
271 ca->last_cong = jiffies; 274 if (ca->undo_last_cong) {
275 ca->last_cong = jiffies;
276 ca->undo_last_cong = 0;
277 }
272 } 278 }
273 break; 279 break;
274 case TCP_CA_CWR: 280 case TCP_CA_CWR:
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/ipv4/udp.c b/net/ipv4/udp.c
index cf02701ced48..98c1fd09be88 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -633,6 +633,7 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
633 .saddr = saddr, 633 .saddr = saddr,
634 .tos = tos } }, 634 .tos = tos } },
635 .proto = sk->sk_protocol, 635 .proto = sk->sk_protocol,
636 .flags = inet_sk_flowi_flags(sk),
636 .uli_u = { .ports = 637 .uli_u = { .ports =
637 { .sport = inet->sport, 638 { .sport = inet->sport,
638 .dport = dport } } }; 639 .dport = dport } } };
diff --git a/net/ipv4/xfrm4_state.c b/net/ipv4/xfrm4_state.c
index 07735ed280d7..55dc6beab9aa 100644
--- a/net/ipv4/xfrm4_state.c
+++ b/net/ipv4/xfrm4_state.c
@@ -33,6 +33,7 @@ __xfrm4_init_tempsel(struct xfrm_state *x, struct flowi *fl,
33 x->sel.dport_mask = htons(0xffff); 33 x->sel.dport_mask = htons(0xffff);
34 x->sel.sport = xfrm_flowi_sport(fl); 34 x->sel.sport = xfrm_flowi_sport(fl);
35 x->sel.sport_mask = htons(0xffff); 35 x->sel.sport_mask = htons(0xffff);
36 x->sel.family = AF_INET;
36 x->sel.prefixlen_d = 32; 37 x->sel.prefixlen_d = 32;
37 x->sel.prefixlen_s = 32; 38 x->sel.prefixlen_s = 32;
38 x->sel.proto = fl->proto; 39 x->sel.proto = fl->proto;
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index eea9542728ca..d9da5eb9dcb2 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2483,8 +2483,10 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
2483 if (!idev && dev->mtu >= IPV6_MIN_MTU) 2483 if (!idev && dev->mtu >= IPV6_MIN_MTU)
2484 idev = ipv6_add_dev(dev); 2484 idev = ipv6_add_dev(dev);
2485 2485
2486 if (idev) 2486 if (idev) {
2487 idev->if_flags |= IF_READY; 2487 idev->if_flags |= IF_READY;
2488 run_pending = 1;
2489 }
2488 } else { 2490 } else {
2489 if (!addrconf_qdisc_ok(dev)) { 2491 if (!addrconf_qdisc_ok(dev)) {
2490 /* device is still not ready. */ 2492 /* device is still not ready. */
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
index 410046a8cc91..e44deb8d4df2 100644
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -661,6 +661,11 @@ int datagram_send_ctl(struct net *net,
661 switch (rthdr->type) { 661 switch (rthdr->type) {
662#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) 662#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
663 case IPV6_SRCRT_TYPE_2: 663 case IPV6_SRCRT_TYPE_2:
664 if (rthdr->hdrlen != 2 ||
665 rthdr->segments_left != 1) {
666 err = -EINVAL;
667 goto exit_f;
668 }
664 break; 669 break;
665#endif 670#endif
666 default: 671 default:
diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
index 182f8a177e7f..0524769632e7 100644
--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
@@ -224,7 +224,7 @@ static struct file_operations ip6mr_vif_fops = {
224 .open = ip6mr_vif_open, 224 .open = ip6mr_vif_open,
225 .read = seq_read, 225 .read = seq_read,
226 .llseek = seq_lseek, 226 .llseek = seq_lseek,
227 .release = seq_release, 227 .release = seq_release_private,
228}; 228};
229 229
230static void *ipmr_mfc_seq_start(struct seq_file *seq, loff_t *pos) 230static void *ipmr_mfc_seq_start(struct seq_file *seq, loff_t *pos)
@@ -338,7 +338,7 @@ static struct file_operations ip6mr_mfc_fops = {
338 .open = ipmr_mfc_open, 338 .open = ipmr_mfc_open,
339 .read = seq_read, 339 .read = seq_read,
340 .llseek = seq_lseek, 340 .llseek = seq_lseek,
341 .release = seq_release, 341 .release = seq_release_private,
342}; 342};
343#endif 343#endif
344 344
@@ -981,14 +981,15 @@ int __init ip6_mr_init(void)
981 goto proc_cache_fail; 981 goto proc_cache_fail;
982#endif 982#endif
983 return 0; 983 return 0;
984reg_notif_fail:
985 kmem_cache_destroy(mrt_cachep);
986#ifdef CONFIG_PROC_FS 984#ifdef CONFIG_PROC_FS
987proc_vif_fail:
988 unregister_netdevice_notifier(&ip6_mr_notifier);
989proc_cache_fail: 985proc_cache_fail:
990 proc_net_remove(&init_net, "ip6_mr_vif"); 986 proc_net_remove(&init_net, "ip6_mr_vif");
987proc_vif_fail:
988 unregister_netdevice_notifier(&ip6_mr_notifier);
991#endif 989#endif
990reg_notif_fail:
991 del_timer(&ipmr_expire_timer);
992 kmem_cache_destroy(mrt_cachep);
992 return err; 993 return err;
993} 994}
994 995
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
index 4e5eac301f91..2aa294be0c79 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -366,11 +366,16 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
366 } 366 }
367 367
368 /* routing header option needs extra check */ 368 /* routing header option needs extra check */
369 retv = -EINVAL;
369 if (optname == IPV6_RTHDR && opt && opt->srcrt) { 370 if (optname == IPV6_RTHDR && opt && opt->srcrt) {
370 struct ipv6_rt_hdr *rthdr = opt->srcrt; 371 struct ipv6_rt_hdr *rthdr = opt->srcrt;
371 switch (rthdr->type) { 372 switch (rthdr->type) {
372#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) 373#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
373 case IPV6_SRCRT_TYPE_2: 374 case IPV6_SRCRT_TYPE_2:
375 if (rthdr->hdrlen != 2 ||
376 rthdr->segments_left != 1)
377 goto sticky_done;
378
374 break; 379 break;
375#endif 380#endif
376 default: 381 default:
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/ipv6/proc.c b/net/ipv6/proc.c
index 07f0b76e7427..97c17fdd6f75 100644
--- a/net/ipv6/proc.c
+++ b/net/ipv6/proc.c
@@ -132,7 +132,7 @@ static struct snmp_mib snmp6_udplite6_list[] = {
132 132
133static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, void **mib) 133static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, void **mib)
134{ 134{
135 static char name[32]; 135 char name[32];
136 int i; 136 int i;
137 137
138 /* print by name -- deprecated items */ 138 /* print by name -- deprecated items */
@@ -144,7 +144,7 @@ static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, void **mib)
144 p = icmp6type2name[icmptype]; 144 p = icmp6type2name[icmptype];
145 if (!p) /* don't print un-named types here */ 145 if (!p) /* don't print un-named types here */
146 continue; 146 continue;
147 (void) snprintf(name, sizeof(name)-1, "Icmp6%s%s", 147 snprintf(name, sizeof(name), "Icmp6%s%s",
148 i & 0x100 ? "Out" : "In", p); 148 i & 0x100 ? "Out" : "In", p);
149 seq_printf(seq, "%-32s\t%lu\n", name, 149 seq_printf(seq, "%-32s\t%lu\n", name,
150 snmp_fold_field(mib, i)); 150 snmp_fold_field(mib, i));
@@ -157,7 +157,7 @@ static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, void **mib)
157 val = snmp_fold_field(mib, i); 157 val = snmp_fold_field(mib, i);
158 if (!val) 158 if (!val)
159 continue; 159 continue;
160 (void) snprintf(name, sizeof(name)-1, "Icmp6%sType%u", 160 snprintf(name, sizeof(name), "Icmp6%sType%u",
161 i & 0x100 ? "Out" : "In", i & 0xff); 161 i & 0x100 ? "Out" : "In", i & 0xff);
162 seq_printf(seq, "%-32s\t%lu\n", name, val); 162 seq_printf(seq, "%-32s\t%lu\n", name, val);
163 } 163 }
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 71e259e866a1..8b48512ebf6a 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -138,6 +138,7 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
138 int peeked; 138 int peeked;
139 int err; 139 int err;
140 int is_udplite = IS_UDPLITE(sk); 140 int is_udplite = IS_UDPLITE(sk);
141 int is_udp4;
141 142
142 if (addr_len) 143 if (addr_len)
143 *addr_len=sizeof(struct sockaddr_in6); 144 *addr_len=sizeof(struct sockaddr_in6);
@@ -158,6 +159,8 @@ try_again:
158 else if (copied < ulen) 159 else if (copied < ulen)
159 msg->msg_flags |= MSG_TRUNC; 160 msg->msg_flags |= MSG_TRUNC;
160 161
162 is_udp4 = (skb->protocol == htons(ETH_P_IP));
163
161 /* 164 /*
162 * If checksum is needed at all, try to do it while copying the 165 * If checksum is needed at all, try to do it while copying the
163 * data. If the data is truncated, or if we only want a partial 166 * data. If the data is truncated, or if we only want a partial
@@ -180,9 +183,14 @@ try_again:
180 if (err) 183 if (err)
181 goto out_free; 184 goto out_free;
182 185
183 if (!peeked) 186 if (!peeked) {
184 UDP6_INC_STATS_USER(sock_net(sk), 187 if (is_udp4)
185 UDP_MIB_INDATAGRAMS, is_udplite); 188 UDP_INC_STATS_USER(sock_net(sk),
189 UDP_MIB_INDATAGRAMS, is_udplite);
190 else
191 UDP6_INC_STATS_USER(sock_net(sk),
192 UDP_MIB_INDATAGRAMS, is_udplite);
193 }
186 194
187 sock_recv_timestamp(msg, sk, skb); 195 sock_recv_timestamp(msg, sk, skb);
188 196
@@ -196,7 +204,7 @@ try_again:
196 sin6->sin6_flowinfo = 0; 204 sin6->sin6_flowinfo = 0;
197 sin6->sin6_scope_id = 0; 205 sin6->sin6_scope_id = 0;
198 206
199 if (skb->protocol == htons(ETH_P_IP)) 207 if (is_udp4)
200 ipv6_addr_set(&sin6->sin6_addr, 0, 0, 208 ipv6_addr_set(&sin6->sin6_addr, 0, 0,
201 htonl(0xffff), ip_hdr(skb)->saddr); 209 htonl(0xffff), ip_hdr(skb)->saddr);
202 else { 210 else {
@@ -207,7 +215,7 @@ try_again:
207 } 215 }
208 216
209 } 217 }
210 if (skb->protocol == htons(ETH_P_IP)) { 218 if (is_udp4) {
211 if (inet->cmsg_flags) 219 if (inet->cmsg_flags)
212 ip_cmsg_recv(msg, skb); 220 ip_cmsg_recv(msg, skb);
213 } else { 221 } else {
@@ -228,8 +236,14 @@ out:
228 236
229csum_copy_err: 237csum_copy_err:
230 lock_sock(sk); 238 lock_sock(sk);
231 if (!skb_kill_datagram(sk, skb, flags)) 239 if (!skb_kill_datagram(sk, skb, flags)) {
232 UDP6_INC_STATS_USER(sock_net(sk), UDP_MIB_INERRORS, is_udplite); 240 if (is_udp4)
241 UDP_INC_STATS_USER(sock_net(sk),
242 UDP_MIB_INERRORS, is_udplite);
243 else
244 UDP6_INC_STATS_USER(sock_net(sk),
245 UDP_MIB_INERRORS, is_udplite);
246 }
233 release_sock(sk); 247 release_sock(sk);
234 248
235 if (flags & MSG_DONTWAIT) 249 if (flags & MSG_DONTWAIT)
diff --git a/net/ipv6/xfrm6_state.c b/net/ipv6/xfrm6_state.c
index 89884a4f23aa..60c78cfc2737 100644
--- a/net/ipv6/xfrm6_state.c
+++ b/net/ipv6/xfrm6_state.c
@@ -34,6 +34,7 @@ __xfrm6_init_tempsel(struct xfrm_state *x, struct flowi *fl,
34 x->sel.dport_mask = htons(0xffff); 34 x->sel.dport_mask = htons(0xffff);
35 x->sel.sport = xfrm_flowi_sport(fl); 35 x->sel.sport = xfrm_flowi_sport(fl);
36 x->sel.sport_mask = htons(0xffff); 36 x->sel.sport_mask = htons(0xffff);
37 x->sel.family = AF_INET6;
37 x->sel.prefixlen_d = 128; 38 x->sel.prefixlen_d = 128;
38 x->sel.prefixlen_s = 128; 39 x->sel.prefixlen_s = 128;
39 x->sel.proto = fl->proto; 40 x->sel.proto = fl->proto;
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 3440a4637f01..5b22e011653b 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -3188,6 +3188,7 @@ static struct xfrm_policy *pfkey_compile_policy(struct sock *sk, int opt,
3188 return xp; 3188 return xp;
3189 3189
3190out: 3190out:
3191 xp->walk.dead = 1;
3191 xfrm_policy_destroy(xp); 3192 xfrm_policy_destroy(xp);
3192 return NULL; 3193 return NULL;
3193} 3194}
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index 189d0bafa91a..b85c4f27b361 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -199,7 +199,7 @@ static ssize_t sta_agg_status_write(struct file *file,
199 /* toggle Rx aggregation command */ 199 /* toggle Rx aggregation command */
200 tid_num = tid_num - 100; 200 tid_num = tid_num - 100;
201 if (tid_static_rx[tid_num] == 1) { 201 if (tid_static_rx[tid_num] == 1) {
202 strcpy(state, "off "); 202 strcpy(state, "off");
203 ieee80211_sta_stop_rx_ba_session(sta->sdata, da, tid_num, 0, 203 ieee80211_sta_stop_rx_ba_session(sta->sdata, da, tid_num, 0,
204 WLAN_REASON_QSTA_REQUIRE_SETUP); 204 WLAN_REASON_QSTA_REQUIRE_SETUP);
205 sta->ampdu_mlme.tid_state_rx[tid_num] |= 205 sta->ampdu_mlme.tid_state_rx[tid_num] |=
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 87665d7bb4f9..409bb7716236 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2560,25 +2560,3 @@ void ieee80211_mlme_notify_scan_completed(struct ieee80211_local *local)
2560 ieee80211_restart_sta_timer(sdata); 2560 ieee80211_restart_sta_timer(sdata);
2561 rcu_read_unlock(); 2561 rcu_read_unlock();
2562} 2562}
2563
2564/* driver notification call */
2565void ieee80211_notify_mac(struct ieee80211_hw *hw,
2566 enum ieee80211_notification_types notif_type)
2567{
2568 struct ieee80211_local *local = hw_to_local(hw);
2569 struct ieee80211_sub_if_data *sdata;
2570
2571 switch (notif_type) {
2572 case IEEE80211_NOTIFY_RE_ASSOC:
2573 rcu_read_lock();
2574 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
2575 if (sdata->vif.type != NL80211_IFTYPE_STATION)
2576 continue;
2577
2578 ieee80211_sta_req_auth(sdata, &sdata->u.sta);
2579 }
2580 rcu_read_unlock();
2581 break;
2582 }
2583}
2584EXPORT_SYMBOL(ieee80211_notify_mac);
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/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
index 02ddc2b3ce2e..e90d52f199bc 100644
--- a/net/netfilter/ipvs/ip_vs_xmit.c
+++ b/net/netfilter/ipvs/ip_vs_xmit.c
@@ -713,7 +713,8 @@ ip_vs_tunnel_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
713 iph = ipv6_hdr(skb); 713 iph = ipv6_hdr(skb);
714 iph->version = 6; 714 iph->version = 6;
715 iph->nexthdr = IPPROTO_IPV6; 715 iph->nexthdr = IPPROTO_IPV6;
716 iph->payload_len = old_iph->payload_len + sizeof(old_iph); 716 iph->payload_len = old_iph->payload_len;
717 be16_add_cpu(&iph->payload_len, sizeof(*old_iph));
717 iph->priority = old_iph->priority; 718 iph->priority = old_iph->priority;
718 memset(&iph->flow_lbl, 0, sizeof(iph->flow_lbl)); 719 memset(&iph->flow_lbl, 0, sizeof(iph->flow_lbl));
719 iph->daddr = rt->rt6i_dst.addr; 720 iph->daddr = rt->rt6i_dst.addr;
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_helper.c b/net/netfilter/nf_conntrack_helper.c
index 9c06b9f86ad4..c39b6a994133 100644
--- a/net/netfilter/nf_conntrack_helper.c
+++ b/net/netfilter/nf_conntrack_helper.c
@@ -21,6 +21,7 @@
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/netdevice.h> 22#include <linux/netdevice.h>
23#include <linux/rculist.h> 23#include <linux/rculist.h>
24#include <linux/rtnetlink.h>
24 25
25#include <net/netfilter/nf_conntrack.h> 26#include <net/netfilter/nf_conntrack.h>
26#include <net/netfilter/nf_conntrack_l3proto.h> 27#include <net/netfilter/nf_conntrack_l3proto.h>
@@ -167,10 +168,12 @@ void nf_conntrack_helper_unregister(struct nf_conntrack_helper *me)
167 */ 168 */
168 synchronize_rcu(); 169 synchronize_rcu();
169 170
171 rtnl_lock();
170 spin_lock_bh(&nf_conntrack_lock); 172 spin_lock_bh(&nf_conntrack_lock);
171 for_each_net(net) 173 for_each_net(net)
172 __nf_conntrack_helper_unregister(me, net); 174 __nf_conntrack_helper_unregister(me, net);
173 spin_unlock_bh(&nf_conntrack_lock); 175 spin_unlock_bh(&nf_conntrack_lock);
176 rtnl_unlock();
174} 177}
175EXPORT_SYMBOL_GPL(nf_conntrack_helper_unregister); 178EXPORT_SYMBOL_GPL(nf_conntrack_helper_unregister);
176 179
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/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
index a59a307e685d..592d73344d46 100644
--- a/net/netfilter/nf_conntrack_proto.c
+++ b/net/netfilter/nf_conntrack_proto.c
@@ -22,6 +22,7 @@
22#include <linux/notifier.h> 22#include <linux/notifier.h>
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/netdevice.h> 24#include <linux/netdevice.h>
25#include <linux/rtnetlink.h>
25 26
26#include <net/netfilter/nf_conntrack.h> 27#include <net/netfilter/nf_conntrack.h>
27#include <net/netfilter/nf_conntrack_l3proto.h> 28#include <net/netfilter/nf_conntrack_l3proto.h>
@@ -221,8 +222,10 @@ void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto)
221 synchronize_rcu(); 222 synchronize_rcu();
222 223
223 /* Remove all contrack entries for this protocol */ 224 /* Remove all contrack entries for this protocol */
225 rtnl_lock();
224 for_each_net(net) 226 for_each_net(net)
225 nf_ct_iterate_cleanup(net, kill_l3proto, proto); 227 nf_ct_iterate_cleanup(net, kill_l3proto, proto);
228 rtnl_unlock();
226} 229}
227EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_unregister); 230EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_unregister);
228 231
@@ -333,8 +336,10 @@ void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
333 synchronize_rcu(); 336 synchronize_rcu();
334 337
335 /* Remove all contrack entries for this protocol */ 338 /* Remove all contrack entries for this protocol */
339 rtnl_lock();
336 for_each_net(net) 340 for_each_net(net)
337 nf_ct_iterate_cleanup(net, kill_l4proto, l4proto); 341 nf_ct_iterate_cleanup(net, kill_l4proto, l4proto);
342 rtnl_unlock();
338} 343}
339EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_unregister); 344EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_unregister);
340 345
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/af_phonet.c b/net/phonet/af_phonet.c
index defeb7a0d502..9d211f12582b 100644
--- a/net/phonet/af_phonet.c
+++ b/net/phonet/af_phonet.c
@@ -33,9 +33,30 @@
33#include <net/phonet/phonet.h> 33#include <net/phonet/phonet.h>
34#include <net/phonet/pn_dev.h> 34#include <net/phonet/pn_dev.h>
35 35
36static struct net_proto_family phonet_proto_family; 36/* Transport protocol registration */
37static struct phonet_protocol *phonet_proto_get(int protocol); 37static struct phonet_protocol *proto_tab[PHONET_NPROTO] __read_mostly;
38static inline void phonet_proto_put(struct phonet_protocol *pp); 38static DEFINE_SPINLOCK(proto_tab_lock);
39
40static struct phonet_protocol *phonet_proto_get(int protocol)
41{
42 struct phonet_protocol *pp;
43
44 if (protocol >= PHONET_NPROTO)
45 return NULL;
46
47 spin_lock(&proto_tab_lock);
48 pp = proto_tab[protocol];
49 if (pp && !try_module_get(pp->prot->owner))
50 pp = NULL;
51 spin_unlock(&proto_tab_lock);
52
53 return pp;
54}
55
56static inline void phonet_proto_put(struct phonet_protocol *pp)
57{
58 module_put(pp->prot->owner);
59}
39 60
40/* protocol family functions */ 61/* protocol family functions */
41 62
@@ -144,8 +165,8 @@ static int pn_send(struct sk_buff *skb, struct net_device *dev,
144 struct phonethdr *ph; 165 struct phonethdr *ph;
145 int err; 166 int err;
146 167
147 if (skb->len + 2 > 0xffff) { 168 if (skb->len + 2 > 0xffff /* Phonet length field limit */ ||
148 /* Phonet length field would overflow */ 169 skb->len + sizeof(struct phonethdr) > dev->mtu) {
149 err = -EMSGSIZE; 170 err = -EMSGSIZE;
150 goto drop; 171 goto drop;
151 } 172 }
@@ -375,10 +396,6 @@ static struct packet_type phonet_packet_type = {
375 .func = phonet_rcv, 396 .func = phonet_rcv,
376}; 397};
377 398
378/* Transport protocol registration */
379static struct phonet_protocol *proto_tab[PHONET_NPROTO] __read_mostly;
380static DEFINE_SPINLOCK(proto_tab_lock);
381
382int __init_or_module phonet_proto_register(int protocol, 399int __init_or_module phonet_proto_register(int protocol,
383 struct phonet_protocol *pp) 400 struct phonet_protocol *pp)
384{ 401{
@@ -412,27 +429,6 @@ void phonet_proto_unregister(int protocol, struct phonet_protocol *pp)
412} 429}
413EXPORT_SYMBOL(phonet_proto_unregister); 430EXPORT_SYMBOL(phonet_proto_unregister);
414 431
415static struct phonet_protocol *phonet_proto_get(int protocol)
416{
417 struct phonet_protocol *pp;
418
419 if (protocol >= PHONET_NPROTO)
420 return NULL;
421
422 spin_lock(&proto_tab_lock);
423 pp = proto_tab[protocol];
424 if (pp && !try_module_get(pp->prot->owner))
425 pp = NULL;
426 spin_unlock(&proto_tab_lock);
427
428 return pp;
429}
430
431static inline void phonet_proto_put(struct phonet_protocol *pp)
432{
433 module_put(pp->prot->owner);
434}
435
436/* Module registration */ 432/* Module registration */
437static int __init phonet_init(void) 433static int __init phonet_init(void)
438{ 434{
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/rfkill/rfkill.c b/net/rfkill/rfkill.c
index f949a482b007..25ba3bd57e66 100644
--- a/net/rfkill/rfkill.c
+++ b/net/rfkill/rfkill.c
@@ -603,7 +603,7 @@ static int rfkill_check_duplicity(const struct rfkill *rfkill)
603 } 603 }
604 604
605 /* 0: first switch of its kind */ 605 /* 0: first switch of its kind */
606 return test_bit(rfkill->type, seen); 606 return (test_bit(rfkill->type, seen)) ? 1 : 0;
607} 607}
608 608
609static int rfkill_add_switch(struct rfkill *rfkill) 609static int rfkill_add_switch(struct rfkill *rfkill)
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_api.c b/net/sched/sch_api.c
index b16ad2972c6b..6ab4a2f92ca0 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -417,6 +417,8 @@ static int qdisc_dump_stab(struct sk_buff *skb, struct qdisc_size_table *stab)
417 struct nlattr *nest; 417 struct nlattr *nest;
418 418
419 nest = nla_nest_start(skb, TCA_STAB); 419 nest = nla_nest_start(skb, TCA_STAB);
420 if (nest == NULL)
421 goto nla_put_failure;
420 NLA_PUT(skb, TCA_STAB_BASE, sizeof(stab->szopts), &stab->szopts); 422 NLA_PUT(skb, TCA_STAB_BASE, sizeof(stab->szopts), &stab->szopts);
421 nla_nest_end(skb, nest); 423 nla_nest_end(skb, nest);
422 424
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 93cd30ce6501..cdcd16fcfeda 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -270,6 +270,8 @@ static void dev_watchdog_down(struct net_device *dev)
270void netif_carrier_on(struct net_device *dev) 270void netif_carrier_on(struct net_device *dev)
271{ 271{
272 if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state)) { 272 if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
273 if (dev->reg_state == NETREG_UNINITIALIZED)
274 return;
273 linkwatch_fire_event(dev); 275 linkwatch_fire_event(dev);
274 if (netif_running(dev)) 276 if (netif_running(dev))
275 __netdev_watchdog_up(dev); 277 __netdev_watchdog_up(dev);
@@ -285,8 +287,11 @@ EXPORT_SYMBOL(netif_carrier_on);
285 */ 287 */
286void netif_carrier_off(struct net_device *dev) 288void netif_carrier_off(struct net_device *dev)
287{ 289{
288 if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state)) 290 if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
291 if (dev->reg_state == NETREG_UNINITIALIZED)
292 return;
289 linkwatch_fire_event(dev); 293 linkwatch_fire_event(dev);
294 }
290} 295}
291EXPORT_SYMBOL(netif_carrier_off); 296EXPORT_SYMBOL(netif_carrier_off);
292 297
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 57550c3bcabe..92764d836891 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1426,8 +1426,8 @@ asmlinkage long sys_listen(int fd, int backlog)
1426 * clean when we restucture accept also. 1426 * clean when we restucture accept also.
1427 */ 1427 */
1428 1428
1429long do_accept(int fd, struct sockaddr __user *upeer_sockaddr, 1429asmlinkage long sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr,
1430 int __user *upeer_addrlen, int flags) 1430 int __user *upeer_addrlen, int flags)
1431{ 1431{
1432 struct socket *sock, *newsock; 1432 struct socket *sock, *newsock;
1433 struct file *newfile; 1433 struct file *newfile;
@@ -1510,66 +1510,10 @@ out_fd:
1510 goto out_put; 1510 goto out_put;
1511} 1511}
1512 1512
1513#if 0
1514#ifdef HAVE_SET_RESTORE_SIGMASK
1515asmlinkage long sys_paccept(int fd, struct sockaddr __user *upeer_sockaddr,
1516 int __user *upeer_addrlen,
1517 const sigset_t __user *sigmask,
1518 size_t sigsetsize, int flags)
1519{
1520 sigset_t ksigmask, sigsaved;
1521 int ret;
1522
1523 if (sigmask) {
1524 /* XXX: Don't preclude handling different sized sigset_t's. */
1525 if (sigsetsize != sizeof(sigset_t))
1526 return -EINVAL;
1527 if (copy_from_user(&ksigmask, sigmask, sizeof(ksigmask)))
1528 return -EFAULT;
1529
1530 sigdelsetmask(&ksigmask, sigmask(SIGKILL)|sigmask(SIGSTOP));
1531 sigprocmask(SIG_SETMASK, &ksigmask, &sigsaved);
1532 }
1533
1534 ret = do_accept(fd, upeer_sockaddr, upeer_addrlen, flags);
1535
1536 if (ret < 0 && signal_pending(current)) {
1537 /*
1538 * Don't restore the signal mask yet. Let do_signal() deliver
1539 * the signal on the way back to userspace, before the signal
1540 * mask is restored.
1541 */
1542 if (sigmask) {
1543 memcpy(&current->saved_sigmask, &sigsaved,
1544 sizeof(sigsaved));
1545 set_restore_sigmask();
1546 }
1547 } else if (sigmask)
1548 sigprocmask(SIG_SETMASK, &sigsaved, NULL);
1549
1550 return ret;
1551}
1552#else
1553asmlinkage long sys_paccept(int fd, struct sockaddr __user *upeer_sockaddr,
1554 int __user *upeer_addrlen,
1555 const sigset_t __user *sigmask,
1556 size_t sigsetsize, int flags)
1557{
1558 /* The platform does not support restoring the signal mask in the
1559 * return path. So we do not allow using paccept() with a signal
1560 * mask. */
1561 if (sigmask)
1562 return -EINVAL;
1563
1564 return do_accept(fd, upeer_sockaddr, upeer_addrlen, flags);
1565}
1566#endif
1567#endif
1568
1569asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, 1513asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr,
1570 int __user *upeer_addrlen) 1514 int __user *upeer_addrlen)
1571{ 1515{
1572 return do_accept(fd, upeer_sockaddr, upeer_addrlen, 0); 1516 return sys_accept4(fd, upeer_sockaddr, upeer_addrlen, 0);
1573} 1517}
1574 1518
1575/* 1519/*
@@ -2096,7 +2040,7 @@ static const unsigned char nargs[19]={
2096 AL(0),AL(3),AL(3),AL(3),AL(2),AL(3), 2040 AL(0),AL(3),AL(3),AL(3),AL(2),AL(3),
2097 AL(3),AL(3),AL(4),AL(4),AL(4),AL(6), 2041 AL(3),AL(3),AL(4),AL(4),AL(4),AL(6),
2098 AL(6),AL(2),AL(5),AL(5),AL(3),AL(3), 2042 AL(6),AL(2),AL(5),AL(5),AL(3),AL(3),
2099 AL(6) 2043 AL(4)
2100}; 2044};
2101 2045
2102#undef AL 2046#undef AL
@@ -2115,7 +2059,7 @@ asmlinkage long sys_socketcall(int call, unsigned long __user *args)
2115 unsigned long a0, a1; 2059 unsigned long a0, a1;
2116 int err; 2060 int err;
2117 2061
2118 if (call < 1 || call > SYS_PACCEPT) 2062 if (call < 1 || call > SYS_ACCEPT4)
2119 return -EINVAL; 2063 return -EINVAL;
2120 2064
2121 /* copy_from_user should be SMP safe. */ 2065 /* copy_from_user should be SMP safe. */
@@ -2143,9 +2087,8 @@ asmlinkage long sys_socketcall(int call, unsigned long __user *args)
2143 err = sys_listen(a0, a1); 2087 err = sys_listen(a0, a1);
2144 break; 2088 break;
2145 case SYS_ACCEPT: 2089 case SYS_ACCEPT:
2146 err = 2090 err = sys_accept4(a0, (struct sockaddr __user *)a1,
2147 do_accept(a0, (struct sockaddr __user *)a1, 2091 (int __user *)a[2], 0);
2148 (int __user *)a[2], 0);
2149 break; 2092 break;
2150 case SYS_GETSOCKNAME: 2093 case SYS_GETSOCKNAME:
2151 err = 2094 err =
@@ -2192,12 +2135,9 @@ asmlinkage long sys_socketcall(int call, unsigned long __user *args)
2192 case SYS_RECVMSG: 2135 case SYS_RECVMSG:
2193 err = sys_recvmsg(a0, (struct msghdr __user *)a1, a[2]); 2136 err = sys_recvmsg(a0, (struct msghdr __user *)a1, a[2]);
2194 break; 2137 break;
2195 case SYS_PACCEPT: 2138 case SYS_ACCEPT4:
2196 err = 2139 err = sys_accept4(a0, (struct sockaddr __user *)a1,
2197 sys_paccept(a0, (struct sockaddr __user *)a1, 2140 (int __user *)a[2], a[3]);
2198 (int __user *)a[2],
2199 (const sigset_t __user *) a[3],
2200 a[4], a[5]);
2201 break; 2141 break;
2202 default: 2142 default:
2203 err = -EINVAL; 2143 err = -EINVAL;
diff --git a/net/sunrpc/auth_generic.c b/net/sunrpc/auth_generic.c
index 744b79fdcb19..4028502f0528 100644
--- a/net/sunrpc/auth_generic.c
+++ b/net/sunrpc/auth_generic.c
@@ -133,13 +133,29 @@ static int
133generic_match(struct auth_cred *acred, struct rpc_cred *cred, int flags) 133generic_match(struct auth_cred *acred, struct rpc_cred *cred, int flags)
134{ 134{
135 struct generic_cred *gcred = container_of(cred, struct generic_cred, gc_base); 135 struct generic_cred *gcred = container_of(cred, struct generic_cred, gc_base);
136 int i;
136 137
137 if (gcred->acred.uid != acred->uid || 138 if (gcred->acred.uid != acred->uid ||
138 gcred->acred.gid != acred->gid || 139 gcred->acred.gid != acred->gid ||
139 gcred->acred.group_info != acred->group_info ||
140 gcred->acred.machine_cred != acred->machine_cred) 140 gcred->acred.machine_cred != acred->machine_cred)
141 return 0; 141 goto out_nomatch;
142
143 /* Optimisation in the case where pointers are identical... */
144 if (gcred->acred.group_info == acred->group_info)
145 goto out_match;
146
147 /* Slow path... */
148 if (gcred->acred.group_info->ngroups != acred->group_info->ngroups)
149 goto out_nomatch;
150 for (i = 0; i < gcred->acred.group_info->ngroups; i++) {
151 if (GROUP_AT(gcred->acred.group_info, i) !=
152 GROUP_AT(acred->group_info, i))
153 goto out_nomatch;
154 }
155out_match:
142 return 1; 156 return 1;
157out_nomatch:
158 return 0;
143} 159}
144 160
145void __init rpc_init_generic_auth(void) 161void __init rpc_init_generic_auth(void)
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 4d3c6071b9a4..66d5ac4773ab 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -1302,14 +1302,23 @@ static void unix_destruct_fds(struct sk_buff *skb)
1302 sock_wfree(skb); 1302 sock_wfree(skb);
1303} 1303}
1304 1304
1305static void unix_attach_fds(struct scm_cookie *scm, struct sk_buff *skb) 1305static int unix_attach_fds(struct scm_cookie *scm, struct sk_buff *skb)
1306{ 1306{
1307 int i; 1307 int i;
1308
1309 /*
1310 * Need to duplicate file references for the sake of garbage
1311 * collection. Otherwise a socket in the fps might become a
1312 * candidate for GC while the skb is not yet queued.
1313 */
1314 UNIXCB(skb).fp = scm_fp_dup(scm->fp);
1315 if (!UNIXCB(skb).fp)
1316 return -ENOMEM;
1317
1308 for (i=scm->fp->count-1; i>=0; i--) 1318 for (i=scm->fp->count-1; i>=0; i--)
1309 unix_inflight(scm->fp->fp[i]); 1319 unix_inflight(scm->fp->fp[i]);
1310 UNIXCB(skb).fp = scm->fp;
1311 skb->destructor = unix_destruct_fds; 1320 skb->destructor = unix_destruct_fds;
1312 scm->fp = NULL; 1321 return 0;
1313} 1322}
1314 1323
1315/* 1324/*
@@ -1334,6 +1343,7 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock,
1334 1343
1335 if (NULL == siocb->scm) 1344 if (NULL == siocb->scm)
1336 siocb->scm = &tmp_scm; 1345 siocb->scm = &tmp_scm;
1346 wait_for_unix_gc();
1337 err = scm_send(sock, msg, siocb->scm); 1347 err = scm_send(sock, msg, siocb->scm);
1338 if (err < 0) 1348 if (err < 0)
1339 return err; 1349 return err;
@@ -1368,8 +1378,11 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock,
1368 goto out; 1378 goto out;
1369 1379
1370 memcpy(UNIXCREDS(skb), &siocb->scm->creds, sizeof(struct ucred)); 1380 memcpy(UNIXCREDS(skb), &siocb->scm->creds, sizeof(struct ucred));
1371 if (siocb->scm->fp) 1381 if (siocb->scm->fp) {
1372 unix_attach_fds(siocb->scm, skb); 1382 err = unix_attach_fds(siocb->scm, skb);
1383 if (err)
1384 goto out_free;
1385 }
1373 unix_get_secdata(siocb->scm, skb); 1386 unix_get_secdata(siocb->scm, skb);
1374 1387
1375 skb_reset_transport_header(skb); 1388 skb_reset_transport_header(skb);
@@ -1481,6 +1494,7 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
1481 1494
1482 if (NULL == siocb->scm) 1495 if (NULL == siocb->scm)
1483 siocb->scm = &tmp_scm; 1496 siocb->scm = &tmp_scm;
1497 wait_for_unix_gc();
1484 err = scm_send(sock, msg, siocb->scm); 1498 err = scm_send(sock, msg, siocb->scm);
1485 if (err < 0) 1499 if (err < 0)
1486 return err; 1500 return err;
@@ -1538,8 +1552,13 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
1538 size = min_t(int, size, skb_tailroom(skb)); 1552 size = min_t(int, size, skb_tailroom(skb));
1539 1553
1540 memcpy(UNIXCREDS(skb), &siocb->scm->creds, sizeof(struct ucred)); 1554 memcpy(UNIXCREDS(skb), &siocb->scm->creds, sizeof(struct ucred));
1541 if (siocb->scm->fp) 1555 if (siocb->scm->fp) {
1542 unix_attach_fds(siocb->scm, skb); 1556 err = unix_attach_fds(siocb->scm, skb);
1557 if (err) {
1558 kfree_skb(skb);
1559 goto out_err;
1560 }
1561 }
1543 1562
1544 if ((err = memcpy_fromiovec(skb_put(skb,size), msg->msg_iov, size)) != 0) { 1563 if ((err = memcpy_fromiovec(skb_put(skb,size), msg->msg_iov, size)) != 0) {
1545 kfree_skb(skb); 1564 kfree_skb(skb);
diff --git a/net/unix/garbage.c b/net/unix/garbage.c
index 2a27b84f740b..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
@@ -186,8 +188,17 @@ static void scan_inflight(struct sock *x, void (*func)(struct unix_sock *),
186 */ 188 */
187 struct sock *sk = unix_get_socket(*fp++); 189 struct sock *sk = unix_get_socket(*fp++);
188 if (sk) { 190 if (sk) {
189 hit = true; 191 struct unix_sock *u = unix_sk(sk);
190 func(unix_sk(sk)); 192
193 /*
194 * Ignore non-candidates, they could
195 * have been added to the queues after
196 * starting the garbage collection
197 */
198 if (u->gc_candidate) {
199 hit = true;
200 func(u);
201 }
191 } 202 }
192 } 203 }
193 if (hit && hitlist != NULL) { 204 if (hit && hitlist != NULL) {
@@ -249,24 +260,29 @@ static void inc_inflight_move_tail(struct unix_sock *u)
249{ 260{
250 atomic_long_inc(&u->inflight); 261 atomic_long_inc(&u->inflight);
251 /* 262 /*
252 * If this is still a candidate, move it to the end of the 263 * If this still might be part of a cycle, move it to the end
253 * list, so that it's checked even if it was already passed 264 * of the list, so that it's checked even if it was already
254 * over 265 * passed over
255 */ 266 */
256 if (u->gc_candidate) 267 if (u->gc_maybe_cycle)
257 list_move_tail(&u->link, &gc_candidates); 268 list_move_tail(&u->link, &gc_candidates);
258} 269}
259 270
260/* The external entry point: unix_gc() */ 271static bool gc_in_progress = false;
261 272
262void unix_gc(void) 273void wait_for_unix_gc(void)
263{ 274{
264 static bool gc_in_progress = false; 275 wait_event(unix_gc_wait, gc_in_progress == false);
276}
265 277
278/* The external entry point: unix_gc() */
279void unix_gc(void)
280{
266 struct unix_sock *u; 281 struct unix_sock *u;
267 struct unix_sock *next; 282 struct unix_sock *next;
268 struct sk_buff_head hitlist; 283 struct sk_buff_head hitlist;
269 struct list_head cursor; 284 struct list_head cursor;
285 LIST_HEAD(not_cycle_list);
270 286
271 spin_lock(&unix_gc_lock); 287 spin_lock(&unix_gc_lock);
272 288
@@ -282,10 +298,14 @@ void unix_gc(void)
282 * 298 *
283 * Holding unix_gc_lock will protect these candidates from 299 * Holding unix_gc_lock will protect these candidates from
284 * being detached, and hence from gaining an external 300 * being detached, and hence from gaining an external
285 * reference. This also means, that since there are no 301 * reference. Since there are no possible receivers, all
286 * possible receivers, the receive queues of these sockets are 302 * buffers currently on the candidates' queues stay there
287 * static during the GC, even though the dequeue is done 303 * during the garbage collection.
288 * before the detach without atomicity guarantees. 304 *
305 * We also know that no new candidate can be added onto the
306 * receive queues. Other, non candidate sockets _can_ be
307 * added to queue, so we must make sure only to touch
308 * candidates.
289 */ 309 */
290 list_for_each_entry_safe(u, next, &gc_inflight_list, link) { 310 list_for_each_entry_safe(u, next, &gc_inflight_list, link) {
291 long total_refs; 311 long total_refs;
@@ -299,6 +319,7 @@ void unix_gc(void)
299 if (total_refs == inflight_refs) { 319 if (total_refs == inflight_refs) {
300 list_move_tail(&u->link, &gc_candidates); 320 list_move_tail(&u->link, &gc_candidates);
301 u->gc_candidate = 1; 321 u->gc_candidate = 1;
322 u->gc_maybe_cycle = 1;
302 } 323 }
303 } 324 }
304 325
@@ -325,14 +346,24 @@ void unix_gc(void)
325 list_move(&cursor, &u->link); 346 list_move(&cursor, &u->link);
326 347
327 if (atomic_long_read(&u->inflight) > 0) { 348 if (atomic_long_read(&u->inflight) > 0) {
328 list_move_tail(&u->link, &gc_inflight_list); 349 list_move_tail(&u->link, &not_cycle_list);
329 u->gc_candidate = 0; 350 u->gc_maybe_cycle = 0;
330 scan_children(&u->sk, inc_inflight_move_tail, NULL); 351 scan_children(&u->sk, inc_inflight_move_tail, NULL);
331 } 352 }
332 } 353 }
333 list_del(&cursor); 354 list_del(&cursor);
334 355
335 /* 356 /*
357 * not_cycle_list contains those sockets which do not make up a
358 * cycle. Restore these to the inflight list.
359 */
360 while (!list_empty(&not_cycle_list)) {
361 u = list_entry(not_cycle_list.next, struct unix_sock, link);
362 u->gc_candidate = 0;
363 list_move_tail(&u->link, &gc_inflight_list);
364 }
365
366 /*
336 * Now gc_candidates contains only garbage. Restore original 367 * Now gc_candidates contains only garbage. Restore original
337 * inflight counters for these as well, and remove the skbuffs 368 * inflight counters for these as well, and remove the skbuffs
338 * which are creating the cycle(s). 369 * which are creating the cycle(s).
@@ -351,6 +382,7 @@ void unix_gc(void)
351 /* All candidates should have been detached by now. */ 382 /* All candidates should have been detached by now. */
352 BUG_ON(!list_empty(&gc_candidates)); 383 BUG_ON(!list_empty(&gc_candidates));
353 gc_in_progress = false; 384 gc_in_progress = false;
385 wake_up(&unix_gc_wait);
354 386
355 out: 387 out:
356 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 25872747762c..fb216c9adf86 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -315,9 +315,9 @@ static void xfrm_policy_kill(struct xfrm_policy *policy)
315 return; 315 return;
316 } 316 }
317 317
318 spin_lock(&xfrm_policy_gc_lock); 318 spin_lock_bh(&xfrm_policy_gc_lock);
319 hlist_add_head(&policy->bydst, &xfrm_policy_gc_list); 319 hlist_add_head(&policy->bydst, &xfrm_policy_gc_list);
320 spin_unlock(&xfrm_policy_gc_lock); 320 spin_unlock_bh(&xfrm_policy_gc_lock);
321 321
322 schedule_work(&xfrm_policy_gc_work); 322 schedule_work(&xfrm_policy_gc_work);
323} 323}
@@ -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/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index 4a8a1abb59ee..a278a6f3b991 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -1816,7 +1816,7 @@ static int copy_to_user_kmaddress(struct xfrm_kmaddress *k, struct sk_buff *skb)
1816 uk.family = k->family; 1816 uk.family = k->family;
1817 uk.reserved = k->reserved; 1817 uk.reserved = k->reserved;
1818 memcpy(&uk.local, &k->local, sizeof(uk.local)); 1818 memcpy(&uk.local, &k->local, sizeof(uk.local));
1819 memcpy(&uk.remote, &k->local, sizeof(uk.remote)); 1819 memcpy(&uk.remote, &k->remote, sizeof(uk.remote));
1820 1820
1821 return nla_put(skb, XFRMA_KMADDRESS, sizeof(uk), &uk); 1821 return nla_put(skb, XFRMA_KMADDRESS, sizeof(uk), &uk);
1822} 1822}
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/scripts/package/builddeb b/scripts/package/builddeb
index ba6bf5d5abf9..1264b8e2829d 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -15,15 +15,18 @@ set -e
15version=$KERNELRELEASE 15version=$KERNELRELEASE
16revision=`cat .version` 16revision=`cat .version`
17tmpdir="$objtree/debian/tmp" 17tmpdir="$objtree/debian/tmp"
18fwdir="$objtree/debian/fwtmp"
18packagename=linux-$version 19packagename=linux-$version
20fwpackagename=linux-firmware-image
19 21
20if [ "$ARCH" == "um" ] ; then 22if [ "$ARCH" == "um" ] ; then
21 packagename=user-mode-linux-$version 23 packagename=user-mode-linux-$version
22fi 24fi
23 25
24# Setup the directory structure 26# Setup the directory structure
25rm -rf "$tmpdir" 27rm -rf "$tmpdir" "$fwdir"
26mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot" 28mkdir -p "$tmpdir/DEBIAN" "$tmpdir/lib" "$tmpdir/boot"
29mkdir -p "$fwdir/DEBIAN" "$fwdir/lib"
27if [ "$ARCH" == "um" ] ; then 30if [ "$ARCH" == "um" ] ; then
28 mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/share/doc/$packagename" "$tmpdir/usr/bin" 31 mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/share/doc/$packagename" "$tmpdir/usr/bin"
29fi 32fi
@@ -107,6 +110,7 @@ Standards-Version: 3.6.1
107 110
108Package: $packagename 111Package: $packagename
109Provides: kernel-image-$version, linux-image-$version 112Provides: kernel-image-$version, linux-image-$version
113Suggests: $fwpackagename
110Architecture: any 114Architecture: any
111Description: Linux kernel, version $version 115Description: Linux kernel, version $version
112 This package contains the Linux kernel, modules and corresponding other 116 This package contains the Linux kernel, modules and corresponding other
@@ -118,8 +122,24 @@ fi
118chown -R root:root "$tmpdir" 122chown -R root:root "$tmpdir"
119chmod -R go-w "$tmpdir" 123chmod -R go-w "$tmpdir"
120 124
125# Do we have firmware? Move it out of the way and build it into a package.
126if [ -e "$tmpdir/lib/firmware" ]; then
127 mv "$tmpdir/lib/firmware" "$fwdir/lib/"
128
129 cat <<EOF >> debian/control
130
131Package: $fwpackagename
132Architecture: all
133Description: Linux kernel firmware, version $version
134 This package contains firmware from the Linux kernel, version $version
135EOF
136
137 dpkg-gencontrol -isp -p$fwpackagename -P"$fwdir"
138 dpkg --build "$fwdir" ..
139fi
140
121# Perform the final magic 141# Perform the final magic
122dpkg-gencontrol -isp 142dpkg-gencontrol -isp -p$packagename
123dpkg --build "$tmpdir" .. 143dpkg --build "$tmpdir" ..
124 144
125exit 0 145exit 0
diff --git a/security/keys/internal.h b/security/keys/internal.h
index b39f5c2e2c4b..239098f0fd76 100644
--- a/security/keys/internal.h
+++ b/security/keys/internal.h
@@ -107,6 +107,7 @@ extern key_ref_t search_process_keyrings(struct key_type *type,
107 107
108extern struct key *find_keyring_by_name(const char *name, bool skip_perm_check); 108extern struct key *find_keyring_by_name(const char *name, bool skip_perm_check);
109 109
110extern int install_user_keyrings(struct task_struct *tsk);
110extern int install_thread_keyring(struct task_struct *tsk); 111extern int install_thread_keyring(struct task_struct *tsk);
111extern int install_process_keyring(struct task_struct *tsk); 112extern int install_process_keyring(struct task_struct *tsk);
112 113
diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c
index 5be6d018759a..45b240af6dbe 100644
--- a/security/keys/process_keys.c
+++ b/security/keys/process_keys.c
@@ -40,7 +40,7 @@ struct key_user root_key_user = {
40/* 40/*
41 * install user and user session keyrings for a particular UID 41 * install user and user session keyrings for a particular UID
42 */ 42 */
43static int install_user_keyrings(struct task_struct *tsk) 43int install_user_keyrings(struct task_struct *tsk)
44{ 44{
45 struct user_struct *user = tsk->user; 45 struct user_struct *user = tsk->user;
46 struct key *uid_keyring, *session_keyring; 46 struct key *uid_keyring, *session_keyring;
diff --git a/security/keys/request_key.c b/security/keys/request_key.c
index ba32ca6469bd..abea08f87fe2 100644
--- a/security/keys/request_key.c
+++ b/security/keys/request_key.c
@@ -74,6 +74,10 @@ static int call_sbin_request_key(struct key_construction *cons,
74 74
75 kenter("{%d},{%d},%s", key->serial, authkey->serial, op); 75 kenter("{%d},{%d},%s", key->serial, authkey->serial, op);
76 76
77 ret = install_user_keyrings(tsk);
78 if (ret < 0)
79 goto error_alloc;
80
77 /* allocate a new session keyring */ 81 /* allocate a new session keyring */
78 sprintf(desc, "_req.%u", key->serial); 82 sprintf(desc, "_req.%u", key->serial);
79 83
diff --git a/sound/aoa/soundbus/core.c b/sound/aoa/soundbus/core.c
index f84f3e505788..fa8ab2815a98 100644
--- a/sound/aoa/soundbus/core.c
+++ b/sound/aoa/soundbus/core.c
@@ -176,7 +176,7 @@ int soundbus_add_one(struct soundbus_dev *dev)
176 return -EINVAL; 176 return -EINVAL;
177 } 177 }
178 178
179 snprintf(dev->ofdev.dev.bus_id, BUS_ID_SIZE, "soundbus:%x", ++devcount); 179 dev_set_name(&dev->ofdev.dev, "soundbus:%x", ++devcount);
180 dev->ofdev.dev.bus = &soundbus_bus_type; 180 dev->ofdev.dev.bus = &soundbus_bus_type;
181 return of_device_register(&dev->ofdev); 181 return of_device_register(&dev->ofdev);
182} 182}
diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c
index c4995c9f5730..39672f68ce5d 100644
--- a/sound/core/rawmidi.c
+++ b/sound/core/rawmidi.c
@@ -148,6 +148,8 @@ static int snd_rawmidi_runtime_free(struct snd_rawmidi_substream *substream)
148 148
149static inline void snd_rawmidi_output_trigger(struct snd_rawmidi_substream *substream,int up) 149static inline void snd_rawmidi_output_trigger(struct snd_rawmidi_substream *substream,int up)
150{ 150{
151 if (!substream->opened)
152 return;
151 if (up) { 153 if (up) {
152 tasklet_hi_schedule(&substream->runtime->tasklet); 154 tasklet_hi_schedule(&substream->runtime->tasklet);
153 } else { 155 } else {
@@ -158,6 +160,8 @@ static inline void snd_rawmidi_output_trigger(struct snd_rawmidi_substream *subs
158 160
159static void snd_rawmidi_input_trigger(struct snd_rawmidi_substream *substream, int up) 161static void snd_rawmidi_input_trigger(struct snd_rawmidi_substream *substream, int up)
160{ 162{
163 if (!substream->opened)
164 return;
161 substream->ops->trigger(substream, up); 165 substream->ops->trigger(substream, up);
162 if (!up && substream->runtime->event) 166 if (!up && substream->runtime->event)
163 tasklet_kill(&substream->runtime->tasklet); 167 tasklet_kill(&substream->runtime->tasklet);
@@ -857,6 +861,8 @@ int snd_rawmidi_receive(struct snd_rawmidi_substream *substream,
857 int result = 0, count1; 861 int result = 0, count1;
858 struct snd_rawmidi_runtime *runtime = substream->runtime; 862 struct snd_rawmidi_runtime *runtime = substream->runtime;
859 863
864 if (!substream->opened)
865 return -EBADFD;
860 if (runtime->buffer == NULL) { 866 if (runtime->buffer == NULL) {
861 snd_printd("snd_rawmidi_receive: input is not active!!!\n"); 867 snd_printd("snd_rawmidi_receive: input is not active!!!\n");
862 return -EINVAL; 868 return -EINVAL;
@@ -1126,6 +1132,8 @@ int snd_rawmidi_transmit_ack(struct snd_rawmidi_substream *substream, int count)
1126int snd_rawmidi_transmit(struct snd_rawmidi_substream *substream, 1132int snd_rawmidi_transmit(struct snd_rawmidi_substream *substream,
1127 unsigned char *buffer, int count) 1133 unsigned char *buffer, int count)
1128{ 1134{
1135 if (!substream->opened)
1136 return -EBADFD;
1129 count = snd_rawmidi_transmit_peek(substream, buffer, count); 1137 count = snd_rawmidi_transmit_peek(substream, buffer, count);
1130 if (count < 0) 1138 if (count < 0)
1131 return count; 1139 return count;
diff --git a/sound/drivers/ml403-ac97cr.c b/sound/drivers/ml403-ac97cr.c
index ecdbeb6d3603..7783843ca9ae 100644
--- a/sound/drivers/ml403-ac97cr.c
+++ b/sound/drivers/ml403-ac97cr.c
@@ -1153,7 +1153,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev,
1153 /* get irq */ 1153 /* get irq */
1154 irq = platform_get_irq(pfdev, 0); 1154 irq = platform_get_irq(pfdev, 0);
1155 if (request_irq(irq, snd_ml403_ac97cr_irq, IRQF_DISABLED, 1155 if (request_irq(irq, snd_ml403_ac97cr_irq, IRQF_DISABLED,
1156 pfdev->dev.bus_id, (void *)ml403_ac97cr)) { 1156 dev_name(&pfdev->dev), (void *)ml403_ac97cr)) {
1157 snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": " 1157 snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": "
1158 "unable to grab IRQ %d\n", 1158 "unable to grab IRQ %d\n",
1159 irq); 1159 irq);
@@ -1166,7 +1166,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev,
1166 ml403_ac97cr->irq); 1166 ml403_ac97cr->irq);
1167 irq = platform_get_irq(pfdev, 1); 1167 irq = platform_get_irq(pfdev, 1);
1168 if (request_irq(irq, snd_ml403_ac97cr_irq, IRQF_DISABLED, 1168 if (request_irq(irq, snd_ml403_ac97cr_irq, IRQF_DISABLED,
1169 pfdev->dev.bus_id, (void *)ml403_ac97cr)) { 1169 dev_name(&pfdev->dev), (void *)ml403_ac97cr)) {
1170 snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": " 1170 snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": "
1171 "unable to grab IRQ %d\n", 1171 "unable to grab IRQ %d\n",
1172 irq); 1172 irq);
diff --git a/sound/drivers/pcsp/pcsp_input.c b/sound/drivers/pcsp/pcsp_input.c
index cd9b83e7f7d1..0444cdeb4bec 100644
--- a/sound/drivers/pcsp/pcsp_input.c
+++ b/sound/drivers/pcsp/pcsp_input.c
@@ -24,13 +24,13 @@ static void pcspkr_do_sound(unsigned int count)
24 spin_lock_irqsave(&i8253_lock, flags); 24 spin_lock_irqsave(&i8253_lock, flags);
25 25
26 if (count) { 26 if (count) {
27 /* enable counter 2 */
28 outb_p(inb_p(0x61) | 3, 0x61);
29 /* set command for counter 2, 2 byte write */ 27 /* set command for counter 2, 2 byte write */
30 outb_p(0xB6, 0x43); 28 outb_p(0xB6, 0x43);
31 /* select desired HZ */ 29 /* select desired HZ */
32 outb_p(count & 0xff, 0x42); 30 outb_p(count & 0xff, 0x42);
33 outb((count >> 8) & 0xff, 0x42); 31 outb((count >> 8) & 0xff, 0x42);
32 /* enable counter 2 */
33 outb_p(inb_p(0x61) | 3, 0x61);
34 } else { 34 } else {
35 /* disable counter 2 */ 35 /* disable counter 2 */
36 outb(inb_p(0x61) & 0xFC, 0x61); 36 outb(inb_p(0x61) & 0xFC, 0x61);
diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
index 660beb41f767..ce0aa044e274 100644
--- a/sound/isa/Kconfig
+++ b/sound/isa/Kconfig
@@ -211,7 +211,7 @@ config SND_GUSCLASSIC
211 211
212config SND_GUSEXTREME 212config SND_GUSEXTREME
213 tristate "Gravis UltraSound Extreme" 213 tristate "Gravis UltraSound Extreme"
214 select SND_HWDEP 214 select SND_OPL3_LIB
215 select SND_MPU401_UART 215 select SND_MPU401_UART
216 select SND_PCM 216 select SND_PCM
217 help 217 help
diff --git a/sound/isa/ad1848/ad1848.c b/sound/isa/ad1848/ad1848.c
index b68d20edc20f..223a6c038819 100644
--- a/sound/isa/ad1848/ad1848.c
+++ b/sound/isa/ad1848/ad1848.c
@@ -70,15 +70,15 @@ static int __devinit snd_ad1848_match(struct device *dev, unsigned int n)
70 return 0; 70 return 0;
71 71
72 if (port[n] == SNDRV_AUTO_PORT) { 72 if (port[n] == SNDRV_AUTO_PORT) {
73 snd_printk(KERN_ERR "%s: please specify port\n", dev->bus_id); 73 dev_err(dev, "please specify port\n");
74 return 0; 74 return 0;
75 } 75 }
76 if (irq[n] == SNDRV_AUTO_IRQ) { 76 if (irq[n] == SNDRV_AUTO_IRQ) {
77 snd_printk(KERN_ERR "%s: please specify irq\n", dev->bus_id); 77 dev_err(dev, "please specify irq\n");
78 return 0; 78 return 0;
79 } 79 }
80 if (dma1[n] == SNDRV_AUTO_DMA) { 80 if (dma1[n] == SNDRV_AUTO_DMA) {
81 snd_printk(KERN_ERR "%s: please specify dma1\n", dev->bus_id); 81 dev_err(dev, "please specify dma1\n");
82 return 0; 82 return 0;
83 } 83 }
84 return 1; 84 return 1;
diff --git a/sound/isa/adlib.c b/sound/isa/adlib.c
index efa8c80d05b6..374b7177e111 100644
--- a/sound/isa/adlib.c
+++ b/sound/isa/adlib.c
@@ -36,7 +36,7 @@ static int __devinit snd_adlib_match(struct device *dev, unsigned int n)
36 return 0; 36 return 0;
37 37
38 if (port[n] == SNDRV_AUTO_PORT) { 38 if (port[n] == SNDRV_AUTO_PORT) {
39 snd_printk(KERN_ERR "%s: please specify port\n", dev->bus_id); 39 dev_err(dev, "please specify port\n");
40 return 0; 40 return 0;
41 } 41 }
42 return 1; 42 return 1;
@@ -55,13 +55,13 @@ static int __devinit snd_adlib_probe(struct device *dev, unsigned int n)
55 55
56 card = snd_card_new(index[n], id[n], THIS_MODULE, 0); 56 card = snd_card_new(index[n], id[n], THIS_MODULE, 0);
57 if (!card) { 57 if (!card) {
58 snd_printk(KERN_ERR "%s: could not create card\n", dev->bus_id); 58 dev_err(dev, "could not create card\n");
59 return -EINVAL; 59 return -EINVAL;
60 } 60 }
61 61
62 card->private_data = request_region(port[n], 4, CRD_NAME); 62 card->private_data = request_region(port[n], 4, CRD_NAME);
63 if (!card->private_data) { 63 if (!card->private_data) {
64 snd_printk(KERN_ERR "%s: could not grab ports\n", dev->bus_id); 64 dev_err(dev, "could not grab ports\n");
65 error = -EBUSY; 65 error = -EBUSY;
66 goto out; 66 goto out;
67 } 67 }
@@ -73,13 +73,13 @@ static int __devinit snd_adlib_probe(struct device *dev, unsigned int n)
73 73
74 error = snd_opl3_create(card, port[n], port[n] + 2, OPL3_HW_AUTO, 1, &opl3); 74 error = snd_opl3_create(card, port[n], port[n] + 2, OPL3_HW_AUTO, 1, &opl3);
75 if (error < 0) { 75 if (error < 0) {
76 snd_printk(KERN_ERR "%s: could not create OPL\n", dev->bus_id); 76 dev_err(dev, "could not create OPL\n");
77 goto out; 77 goto out;
78 } 78 }
79 79
80 error = snd_opl3_hwdep_new(opl3, 0, 0, NULL); 80 error = snd_opl3_hwdep_new(opl3, 0, 0, NULL);
81 if (error < 0) { 81 if (error < 0) {
82 snd_printk(KERN_ERR "%s: could not create FM\n", dev->bus_id); 82 dev_err(dev, "could not create FM\n");
83 goto out; 83 goto out;
84 } 84 }
85 85
@@ -87,7 +87,7 @@ static int __devinit snd_adlib_probe(struct device *dev, unsigned int n)
87 87
88 error = snd_card_register(card); 88 error = snd_card_register(card);
89 if (error < 0) { 89 if (error < 0) {
90 snd_printk(KERN_ERR "%s: could not register card\n", dev->bus_id); 90 dev_err(dev, "could not register card\n");
91 goto out; 91 goto out;
92 } 92 }
93 93
diff --git a/sound/isa/cs423x/cs4231.c b/sound/isa/cs423x/cs4231.c
index ddd289120aa8..f019d449e2d6 100644
--- a/sound/isa/cs423x/cs4231.c
+++ b/sound/isa/cs423x/cs4231.c
@@ -74,15 +74,15 @@ static int __devinit snd_cs4231_match(struct device *dev, unsigned int n)
74 return 0; 74 return 0;
75 75
76 if (port[n] == SNDRV_AUTO_PORT) { 76 if (port[n] == SNDRV_AUTO_PORT) {
77 snd_printk(KERN_ERR "%s: please specify port\n", dev->bus_id); 77 dev_err(dev, "please specify port\n");
78 return 0; 78 return 0;
79 } 79 }
80 if (irq[n] == SNDRV_AUTO_IRQ) { 80 if (irq[n] == SNDRV_AUTO_IRQ) {
81 snd_printk(KERN_ERR "%s: please specify irq\n", dev->bus_id); 81 dev_err(dev, "please specify irq\n");
82 return 0; 82 return 0;
83 } 83 }
84 if (dma1[n] == SNDRV_AUTO_DMA) { 84 if (dma1[n] == SNDRV_AUTO_DMA) {
85 snd_printk(KERN_ERR "%s: please specify dma1\n", dev->bus_id); 85 dev_err(dev, "please specify dma1\n");
86 return 0; 86 return 0;
87 } 87 }
88 return 1; 88 return 1;
@@ -133,7 +133,7 @@ static int __devinit snd_cs4231_probe(struct device *dev, unsigned int n)
133 mpu_port[n], 0, mpu_irq[n], 133 mpu_port[n], 0, mpu_irq[n],
134 mpu_irq[n] >= 0 ? IRQF_DISABLED : 0, 134 mpu_irq[n] >= 0 ? IRQF_DISABLED : 0,
135 NULL) < 0) 135 NULL) < 0)
136 printk(KERN_WARNING "%s: MPU401 not detected\n", dev->bus_id); 136 dev_warn(dev, "MPU401 not detected\n");
137 } 137 }
138 138
139 snd_card_set_dev(card, dev); 139 snd_card_set_dev(card, dev);
diff --git a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c
index 91f9c15d3e30..019c9401663e 100644
--- a/sound/isa/cs423x/cs4236.c
+++ b/sound/isa/cs423x/cs4236.c
@@ -488,19 +488,19 @@ static int __devinit snd_cs423x_isa_match(struct device *pdev,
488 return 0; 488 return 0;
489 489
490 if (port[dev] == SNDRV_AUTO_PORT) { 490 if (port[dev] == SNDRV_AUTO_PORT) {
491 snd_printk(KERN_ERR "%s: please specify port\n", pdev->bus_id); 491 dev_err(pdev, "please specify port\n");
492 return 0; 492 return 0;
493 } 493 }
494 if (cport[dev] == SNDRV_AUTO_PORT) { 494 if (cport[dev] == SNDRV_AUTO_PORT) {
495 snd_printk(KERN_ERR "%s: please specify cport\n", pdev->bus_id); 495 dev_err(pdev, "please specify cport\n");
496 return 0; 496 return 0;
497 } 497 }
498 if (irq[dev] == SNDRV_AUTO_IRQ) { 498 if (irq[dev] == SNDRV_AUTO_IRQ) {
499 snd_printk(KERN_ERR "%s: please specify irq\n", pdev->bus_id); 499 dev_err(pdev, "please specify irq\n");
500 return 0; 500 return 0;
501 } 501 }
502 if (dma1[dev] == SNDRV_AUTO_DMA) { 502 if (dma1[dev] == SNDRV_AUTO_DMA) {
503 snd_printk(KERN_ERR "%s: please specify dma1\n", pdev->bus_id); 503 dev_err(pdev, "please specify dma1\n");
504 return 0; 504 return 0;
505 } 505 }
506 return 1; 506 return 1;
diff --git a/sound/isa/es1688/es1688.c b/sound/isa/es1688/es1688.c
index f88639ea64b2..b46377139cf8 100644
--- a/sound/isa/es1688/es1688.c
+++ b/sound/isa/es1688/es1688.c
@@ -88,16 +88,14 @@ static int __devinit snd_es1688_legacy_create(struct snd_card *card,
88 if (irq[n] == SNDRV_AUTO_IRQ) { 88 if (irq[n] == SNDRV_AUTO_IRQ) {
89 irq[n] = snd_legacy_find_free_irq(possible_irqs); 89 irq[n] = snd_legacy_find_free_irq(possible_irqs);
90 if (irq[n] < 0) { 90 if (irq[n] < 0) {
91 snd_printk(KERN_ERR "%s: unable to find a free IRQ\n", 91 dev_err(dev, "unable to find a free IRQ\n");
92 dev->bus_id);
93 return -EBUSY; 92 return -EBUSY;
94 } 93 }
95 } 94 }
96 if (dma8[n] == SNDRV_AUTO_DMA) { 95 if (dma8[n] == SNDRV_AUTO_DMA) {
97 dma8[n] = snd_legacy_find_free_dma(possible_dmas); 96 dma8[n] = snd_legacy_find_free_dma(possible_dmas);
98 if (dma8[n] < 0) { 97 if (dma8[n] < 0) {
99 snd_printk(KERN_ERR "%s: unable to find a free DMA\n", 98 dev_err(dev, "unable to find a free DMA\n");
100 dev->bus_id);
101 return -EBUSY; 99 return -EBUSY;
102 } 100 }
103 } 101 }
@@ -147,8 +145,7 @@ static int __devinit snd_es1688_probe(struct device *dev, unsigned int n)
147 145
148 if (snd_opl3_create(card, chip->port, chip->port + 2, 146 if (snd_opl3_create(card, chip->port, chip->port + 2,
149 OPL3_HW_OPL3, 0, &opl3) < 0) 147 OPL3_HW_OPL3, 0, &opl3) < 0)
150 printk(KERN_WARNING "%s: opl3 not detected at 0x%lx\n", 148 dev_warn(dev, "opl3 not detected at 0x%lx\n", chip->port);
151 dev->bus_id, chip->port);
152 else { 149 else {
153 error = snd_opl3_hwdep_new(opl3, 0, 1, NULL); 150 error = snd_opl3_hwdep_new(opl3, 0, 1, NULL);
154 if (error < 0) 151 if (error < 0)
diff --git a/sound/isa/gus/gusclassic.c b/sound/isa/gus/gusclassic.c
index 8f914b37bf89..426532a4d730 100644
--- a/sound/isa/gus/gusclassic.c
+++ b/sound/isa/gus/gusclassic.c
@@ -90,24 +90,21 @@ static int __devinit snd_gusclassic_create(struct snd_card *card,
90 if (irq[n] == SNDRV_AUTO_IRQ) { 90 if (irq[n] == SNDRV_AUTO_IRQ) {
91 irq[n] = snd_legacy_find_free_irq(possible_irqs); 91 irq[n] = snd_legacy_find_free_irq(possible_irqs);
92 if (irq[n] < 0) { 92 if (irq[n] < 0) {
93 snd_printk(KERN_ERR "%s: unable to find a free IRQ\n", 93 dev_err(dev, "unable to find a free IRQ\n");
94 dev->bus_id);
95 return -EBUSY; 94 return -EBUSY;
96 } 95 }
97 } 96 }
98 if (dma1[n] == SNDRV_AUTO_DMA) { 97 if (dma1[n] == SNDRV_AUTO_DMA) {
99 dma1[n] = snd_legacy_find_free_dma(possible_dmas); 98 dma1[n] = snd_legacy_find_free_dma(possible_dmas);
100 if (dma1[n] < 0) { 99 if (dma1[n] < 0) {
101 snd_printk(KERN_ERR "%s: unable to find a free DMA1\n", 100 dev_err(dev, "unable to find a free DMA1\n");
102 dev->bus_id);
103 return -EBUSY; 101 return -EBUSY;
104 } 102 }
105 } 103 }
106 if (dma2[n] == SNDRV_AUTO_DMA) { 104 if (dma2[n] == SNDRV_AUTO_DMA) {
107 dma2[n] = snd_legacy_find_free_dma(possible_dmas); 105 dma2[n] = snd_legacy_find_free_dma(possible_dmas);
108 if (dma2[n] < 0) { 106 if (dma2[n] < 0) {
109 snd_printk(KERN_ERR "%s: unable to find a free DMA2\n", 107 dev_err(dev, "unable to find a free DMA2\n");
110 dev->bus_id);
111 return -EBUSY; 108 return -EBUSY;
112 } 109 }
113 } 110 }
@@ -174,8 +171,8 @@ static int __devinit snd_gusclassic_probe(struct device *dev, unsigned int n)
174 171
175 error = -ENODEV; 172 error = -ENODEV;
176 if (gus->max_flag || gus->ess_flag) { 173 if (gus->max_flag || gus->ess_flag) {
177 snd_printk(KERN_ERR "%s: GUS Classic or ACE soundcard was " 174 dev_err(dev, "GUS Classic or ACE soundcard was "
178 "not detected at 0x%lx\n", dev->bus_id, gus->gf1.port); 175 "not detected at 0x%lx\n", gus->gf1.port);
179 goto out; 176 goto out;
180 } 177 }
181 178
diff --git a/sound/isa/gus/gusextreme.c b/sound/isa/gus/gusextreme.c
index da13185eb0a0..7ad4c3b41a84 100644
--- a/sound/isa/gus/gusextreme.c
+++ b/sound/isa/gus/gusextreme.c
@@ -106,16 +106,14 @@ static int __devinit snd_gusextreme_es1688_create(struct snd_card *card,
106 if (irq[n] == SNDRV_AUTO_IRQ) { 106 if (irq[n] == SNDRV_AUTO_IRQ) {
107 irq[n] = snd_legacy_find_free_irq(possible_irqs); 107 irq[n] = snd_legacy_find_free_irq(possible_irqs);
108 if (irq[n] < 0) { 108 if (irq[n] < 0) {
109 snd_printk(KERN_ERR "%s: unable to find a free IRQ " 109 dev_err(dev, "unable to find a free IRQ for ES1688\n");
110 "for ES1688\n", dev->bus_id);
111 return -EBUSY; 110 return -EBUSY;
112 } 111 }
113 } 112 }
114 if (dma8[n] == SNDRV_AUTO_DMA) { 113 if (dma8[n] == SNDRV_AUTO_DMA) {
115 dma8[n] = snd_legacy_find_free_dma(possible_dmas); 114 dma8[n] = snd_legacy_find_free_dma(possible_dmas);
116 if (dma8[n] < 0) { 115 if (dma8[n] < 0) {
117 snd_printk(KERN_ERR "%s: unable to find a free DMA " 116 dev_err(dev, "unable to find a free DMA for ES1688\n");
118 "for ES1688\n", dev->bus_id);
119 return -EBUSY; 117 return -EBUSY;
120 } 118 }
121 } 119 }
@@ -143,16 +141,14 @@ static int __devinit snd_gusextreme_gus_card_create(struct snd_card *card,
143 if (gf1_irq[n] == SNDRV_AUTO_IRQ) { 141 if (gf1_irq[n] == SNDRV_AUTO_IRQ) {
144 gf1_irq[n] = snd_legacy_find_free_irq(possible_irqs); 142 gf1_irq[n] = snd_legacy_find_free_irq(possible_irqs);
145 if (gf1_irq[n] < 0) { 143 if (gf1_irq[n] < 0) {
146 snd_printk(KERN_ERR "%s: unable to find a free IRQ " 144 dev_err(dev, "unable to find a free IRQ for GF1\n");
147 "for GF1\n", dev->bus_id);
148 return -EBUSY; 145 return -EBUSY;
149 } 146 }
150 } 147 }
151 if (dma1[n] == SNDRV_AUTO_DMA) { 148 if (dma1[n] == SNDRV_AUTO_DMA) {
152 dma1[n] = snd_legacy_find_free_dma(possible_dmas); 149 dma1[n] = snd_legacy_find_free_dma(possible_dmas);
153 if (dma1[n] < 0) { 150 if (dma1[n] < 0) {
154 snd_printk(KERN_ERR "%s: unable to find a free DMA " 151 dev_err(dev, "unable to find a free DMA for GF1\n");
155 "for GF1\n", dev->bus_id);
156 return -EBUSY; 152 return -EBUSY;
157 } 153 }
158 } 154 }
@@ -278,8 +274,8 @@ static int __devinit snd_gusextreme_probe(struct device *dev, unsigned int n)
278 274
279 error = -ENODEV; 275 error = -ENODEV;
280 if (!gus->ess_flag) { 276 if (!gus->ess_flag) {
281 snd_printk(KERN_ERR "%s: GUS Extreme soundcard was not " 277 dev_err(dev, "GUS Extreme soundcard was not "
282 "detected at 0x%lx\n", dev->bus_id, gus->gf1.port); 278 "detected at 0x%lx\n", gus->gf1.port);
283 goto out; 279 goto out;
284 } 280 }
285 gus->codec_flag = 1; 281 gus->codec_flag = 1;
@@ -310,8 +306,7 @@ static int __devinit snd_gusextreme_probe(struct device *dev, unsigned int n)
310 306
311 if (snd_opl3_create(card, es1688->port, es1688->port + 2, 307 if (snd_opl3_create(card, es1688->port, es1688->port + 2,
312 OPL3_HW_OPL3, 0, &opl3) < 0) 308 OPL3_HW_OPL3, 0, &opl3) < 0)
313 printk(KERN_ERR "%s: opl3 not detected at 0x%lx\n", 309 dev_warn(dev, "opl3 not detected at 0x%lx\n", es1688->port);
314 dev->bus_id, es1688->port);
315 else { 310 else {
316 error = snd_opl3_hwdep_new(opl3, 0, 2, NULL); 311 error = snd_opl3_hwdep_new(opl3, 0, 2, NULL);
317 if (error < 0) 312 if (error < 0)
diff --git a/sound/isa/sb/sb8.c b/sound/isa/sb/sb8.c
index 336a34277907..667eccc676a4 100644
--- a/sound/isa/sb/sb8.c
+++ b/sound/isa/sb/sb8.c
@@ -85,11 +85,11 @@ static int __devinit snd_sb8_match(struct device *pdev, unsigned int dev)
85 if (!enable[dev]) 85 if (!enable[dev])
86 return 0; 86 return 0;
87 if (irq[dev] == SNDRV_AUTO_IRQ) { 87 if (irq[dev] == SNDRV_AUTO_IRQ) {
88 snd_printk(KERN_ERR "%s: please specify irq\n", pdev->bus_id); 88 dev_err(pdev, "please specify irq\n");
89 return 0; 89 return 0;
90 } 90 }
91 if (dma8[dev] == SNDRV_AUTO_DMA) { 91 if (dma8[dev] == SNDRV_AUTO_DMA) {
92 snd_printk(KERN_ERR "%s: please specify dma8\n", pdev->bus_id); 92 dev_err(pdev, "please specify dma8\n");
93 return 0; 93 return 0;
94 } 94 }
95 return 1; 95 return 1;
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index 2f283ea6ad9a..de5ee8f097f6 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -1464,6 +1464,7 @@ static struct snd_emu_chip_details emu_chip_details[] = {
1464 .ca0151_chip = 1, 1464 .ca0151_chip = 1,
1465 .spk71 = 1, 1465 .spk71 = 1,
1466 .spdif_bug = 1, 1466 .spdif_bug = 1,
1467 .invert_shared_spdif = 1, /* digital/analog switch swapped */
1467 .ac97_chip = 1} , 1468 .ac97_chip = 1} ,
1468 {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20021102, 1469 {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20021102,
1469 .driver = "Audigy2", .name = "Audigy 2 ZS [SB0350]", 1470 .driver = "Audigy2", .name = "Audigy 2 ZS [SB0350]",
@@ -1473,6 +1474,7 @@ static struct snd_emu_chip_details emu_chip_details[] = {
1473 .ca0151_chip = 1, 1474 .ca0151_chip = 1,
1474 .spk71 = 1, 1475 .spk71 = 1,
1475 .spdif_bug = 1, 1476 .spdif_bug = 1,
1477 .invert_shared_spdif = 1, /* digital/analog switch swapped */
1476 .ac97_chip = 1} , 1478 .ac97_chip = 1} ,
1477 {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20011102, 1479 {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20011102,
1478 .driver = "Audigy2", .name = "Audigy 2 ZS [2001]", 1480 .driver = "Audigy2", .name = "Audigy 2 ZS [2001]",
@@ -1482,6 +1484,7 @@ static struct snd_emu_chip_details emu_chip_details[] = {
1482 .ca0151_chip = 1, 1484 .ca0151_chip = 1,
1483 .spk71 = 1, 1485 .spk71 = 1,
1484 .spdif_bug = 1, 1486 .spdif_bug = 1,
1487 .invert_shared_spdif = 1, /* digital/analog switch swapped */
1485 .ac97_chip = 1} , 1488 .ac97_chip = 1} ,
1486 /* Audigy 2 */ 1489 /* Audigy 2 */
1487 /* Tested by James@superbug.co.uk 3rd July 2005 */ 1490 /* Tested by James@superbug.co.uk 3rd July 2005 */
diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c
index 9b77b3e0fa98..3ecd7e797dee 100644
--- a/sound/pci/hda/hda_beep.c
+++ b/sound/pci/hda/hda_beep.c
@@ -37,6 +37,9 @@ static void snd_hda_generate_beep(struct work_struct *work)
37 container_of(work, struct hda_beep, beep_work); 37 container_of(work, struct hda_beep, beep_work);
38 struct hda_codec *codec = beep->codec; 38 struct hda_codec *codec = beep->codec;
39 39
40 if (!beep->enabled)
41 return;
42
40 /* generate tone */ 43 /* generate tone */
41 snd_hda_codec_write_cache(codec, beep->nid, 0, 44 snd_hda_codec_write_cache(codec, beep->nid, 0,
42 AC_VERB_SET_BEEP_CONTROL, beep->tone); 45 AC_VERB_SET_BEEP_CONTROL, beep->tone);
@@ -85,6 +88,10 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid)
85 snprintf(beep->phys, sizeof(beep->phys), 88 snprintf(beep->phys, sizeof(beep->phys),
86 "card%d/codec#%d/beep0", codec->bus->card->number, codec->addr); 89 "card%d/codec#%d/beep0", codec->bus->card->number, codec->addr);
87 input_dev = input_allocate_device(); 90 input_dev = input_allocate_device();
91 if (!input_dev) {
92 kfree(beep);
93 return -ENOMEM;
94 }
88 95
89 /* setup digital beep device */ 96 /* setup digital beep device */
90 input_dev->name = "HDA Digital PCBeep"; 97 input_dev->name = "HDA Digital PCBeep";
@@ -115,6 +122,7 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid)
115 beep->nid = nid; 122 beep->nid = nid;
116 beep->dev = input_dev; 123 beep->dev = input_dev;
117 beep->codec = codec; 124 beep->codec = codec;
125 beep->enabled = 1;
118 codec->beep = beep; 126 codec->beep = beep;
119 127
120 INIT_WORK(&beep->beep_work, &snd_hda_generate_beep); 128 INIT_WORK(&beep->beep_work, &snd_hda_generate_beep);
diff --git a/sound/pci/hda/hda_beep.h b/sound/pci/hda/hda_beep.h
index de4036e6e710..b9679f081cae 100644
--- a/sound/pci/hda/hda_beep.h
+++ b/sound/pci/hda/hda_beep.h
@@ -31,6 +31,7 @@ struct hda_beep {
31 char phys[32]; 31 char phys[32];
32 int tone; 32 int tone;
33 int nid; 33 int nid;
34 int enabled;
34 struct work_struct beep_work; /* scheduled task for beep event */ 35 struct work_struct beep_work; /* scheduled task for beep event */
35}; 36};
36 37
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/hda_proc.c b/sound/pci/hda/hda_proc.c
index 743d77922bce..c39af986bff1 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -483,6 +483,8 @@ static void print_gpio(struct snd_info_buffer *buffer,
483 (gpio & AC_GPIO_UNSOLICITED) ? 1 : 0, 483 (gpio & AC_GPIO_UNSOLICITED) ? 1 : 0,
484 (gpio & AC_GPIO_WAKE) ? 1 : 0); 484 (gpio & AC_GPIO_WAKE) ? 1 : 0);
485 max = gpio & AC_GPIO_IO_COUNT; 485 max = gpio & AC_GPIO_IO_COUNT;
486 if (!max || max > 8)
487 return;
486 enable = snd_hda_codec_read(codec, nid, 0, 488 enable = snd_hda_codec_read(codec, nid, 0,
487 AC_VERB_GET_GPIO_MASK, 0); 489 AC_VERB_GET_GPIO_MASK, 0);
488 direction = snd_hda_codec_read(codec, nid, 0, 490 direction = snd_hda_codec_read(codec, nid, 0,
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index d3fd432cb3ea..686c77491dea 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -3861,6 +3861,8 @@ static const char *ad1884a_models[AD1884A_MODELS] = {
3861static struct snd_pci_quirk ad1884a_cfg_tbl[] = { 3861static struct snd_pci_quirk ad1884a_cfg_tbl[] = {
3862 SND_PCI_QUIRK(0x103c, 0x3030, "HP", AD1884A_MOBILE), 3862 SND_PCI_QUIRK(0x103c, 0x3030, "HP", AD1884A_MOBILE),
3863 SND_PCI_QUIRK(0x103c, 0x3056, "HP", AD1884A_MOBILE), 3863 SND_PCI_QUIRK(0x103c, 0x3056, "HP", AD1884A_MOBILE),
3864 SND_PCI_QUIRK(0x103c, 0x30e7, "HP EliteBook 8530p", AD1884A_LAPTOP),
3865 SND_PCI_QUIRK(0x103c, 0x3614, "HP 6730s", AD1884A_LAPTOP),
3864 SND_PCI_QUIRK(0x17aa, 0x20ac, "Thinkpad X300", AD1884A_THINKPAD), 3866 SND_PCI_QUIRK(0x17aa, 0x20ac, "Thinkpad X300", AD1884A_THINKPAD),
3865 {} 3867 {}
3866}; 3868};
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 4eceab9bd109..a378c0145125 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -829,6 +829,7 @@ static void alc_sku_automute(struct hda_codec *codec)
829 spec->jack_present ? 0 : PIN_OUT); 829 spec->jack_present ? 0 : PIN_OUT);
830} 830}
831 831
832#if 0 /* it's broken in some acses -- temporarily disabled */
832static void alc_mic_automute(struct hda_codec *codec) 833static void alc_mic_automute(struct hda_codec *codec)
833{ 834{
834 struct alc_spec *spec = codec->spec; 835 struct alc_spec *spec = codec->spec;
@@ -849,6 +850,9 @@ static void alc_mic_automute(struct hda_codec *codec)
849 snd_hda_codec_amp_stereo(codec, 0x0b, HDA_INPUT, capsrc_idx_fmic, 850 snd_hda_codec_amp_stereo(codec, 0x0b, HDA_INPUT, capsrc_idx_fmic,
850 HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0); 851 HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0);
851} 852}
853#else
854#define alc_mic_automute(codec) /* NOP */
855#endif /* disabled */
852 856
853/* unsolicited event for HP jack sensing */ 857/* unsolicited event for HP jack sensing */
854static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res) 858static void alc_sku_unsol_event(struct hda_codec *codec, unsigned int res)
@@ -1058,12 +1062,14 @@ do_sku:
1058 AC_VERB_SET_UNSOLICITED_ENABLE, 1062 AC_VERB_SET_UNSOLICITED_ENABLE,
1059 AC_USRSP_EN | ALC880_HP_EVENT); 1063 AC_USRSP_EN | ALC880_HP_EVENT);
1060 1064
1065#if 0 /* it's broken in some acses -- temporarily disabled */
1061 if (spec->autocfg.input_pins[AUTO_PIN_MIC] && 1066 if (spec->autocfg.input_pins[AUTO_PIN_MIC] &&
1062 spec->autocfg.input_pins[AUTO_PIN_FRONT_MIC]) 1067 spec->autocfg.input_pins[AUTO_PIN_FRONT_MIC])
1063 snd_hda_codec_write(codec, 1068 snd_hda_codec_write(codec,
1064 spec->autocfg.input_pins[AUTO_PIN_MIC], 0, 1069 spec->autocfg.input_pins[AUTO_PIN_MIC], 0,
1065 AC_VERB_SET_UNSOLICITED_ENABLE, 1070 AC_VERB_SET_UNSOLICITED_ENABLE,
1066 AC_USRSP_EN | ALC880_MIC_EVENT); 1071 AC_USRSP_EN | ALC880_MIC_EVENT);
1072#endif /* disabled */
1067 1073
1068 spec->unsol_event = alc_sku_unsol_event; 1074 spec->unsol_event = alc_sku_unsol_event;
1069} 1075}
@@ -8408,6 +8414,7 @@ static const char *alc883_models[ALC883_MODEL_LAST] = {
8408static struct snd_pci_quirk alc883_cfg_tbl[] = { 8414static struct snd_pci_quirk alc883_cfg_tbl[] = {
8409 SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC883_3ST_6ch_DIG), 8415 SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC883_3ST_6ch_DIG),
8410 SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE), 8416 SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE),
8417 SND_PCI_QUIRK(0x1025, 0x0090, "Acer Aspire", ALC883_ACER_ASPIRE),
8411 SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_ACER_ASPIRE), 8418 SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_ACER_ASPIRE),
8412 SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_ACER_ASPIRE), 8419 SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_ACER_ASPIRE),
8413 SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_ACER_ASPIRE), 8420 SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_ACER_ASPIRE),
@@ -8462,6 +8469,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
8462 SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763), 8469 SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763),
8463 SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY), 8470 SND_PCI_QUIRK(0x17aa, 0x101d, "Lenovo Sky", ALC888_LENOVO_SKY),
8464 SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2), 8471 SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
8472 SND_PCI_QUIRK(0x17c0, 0x4085, "MEDION MD96630", ALC888_LENOVO_MS7195_DIG),
8465 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG), 8473 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG),
8466 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66), 8474 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
8467 SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL), 8475 SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL),
@@ -12238,8 +12246,26 @@ static int alc269_auto_create_multi_out_ctls(struct alc_spec *spec,
12238 return 0; 12246 return 0;
12239} 12247}
12240 12248
12241#define alc269_auto_create_analog_input_ctls \ 12249static int alc269_auto_create_analog_input_ctls(struct alc_spec *spec,
12242 alc880_auto_create_analog_input_ctls 12250 const struct auto_pin_cfg *cfg)
12251{
12252 int err;
12253
12254 err = alc880_auto_create_analog_input_ctls(spec, cfg);
12255 if (err < 0)
12256 return err;
12257 /* digital-mic input pin is excluded in alc880_auto_create..()
12258 * because it's under 0x18
12259 */
12260 if (cfg->input_pins[AUTO_PIN_MIC] == 0x12 ||
12261 cfg->input_pins[AUTO_PIN_FRONT_MIC] == 0x12) {
12262 struct hda_input_mux *imux = &spec->private_imux;
12263 imux->items[imux->num_items].label = "Int Mic";
12264 imux->items[imux->num_items].index = 0x05;
12265 imux->num_items++;
12266 }
12267 return 0;
12268}
12243 12269
12244#ifdef CONFIG_SND_HDA_POWER_SAVE 12270#ifdef CONFIG_SND_HDA_POWER_SAVE
12245#define alc269_loopbacks alc880_loopbacks 12271#define alc269_loopbacks alc880_loopbacks
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index df9b0bc7f878..5dd3e89f620a 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -36,9 +36,11 @@
36#include "hda_beep.h" 36#include "hda_beep.h"
37 37
38#define NUM_CONTROL_ALLOC 32 38#define NUM_CONTROL_ALLOC 32
39
40#define STAC_VREF_EVENT 0x00
41#define STAC_INSERT_EVENT 0x10
39#define STAC_PWR_EVENT 0x20 42#define STAC_PWR_EVENT 0x20
40#define STAC_HP_EVENT 0x30 43#define STAC_HP_EVENT 0x30
41#define STAC_VREF_EVENT 0x40
42 44
43enum { 45enum {
44 STAC_REF, 46 STAC_REF,
@@ -68,7 +70,10 @@ enum {
68 70
69enum { 71enum {
70 STAC_92HD73XX_REF, 72 STAC_92HD73XX_REF,
71 STAC_DELL_M6, 73 STAC_DELL_M6_AMIC,
74 STAC_DELL_M6_DMIC,
75 STAC_DELL_M6_BOTH,
76 STAC_DELL_EQ,
72 STAC_92HD73XX_MODELS 77 STAC_92HD73XX_MODELS
73}; 78};
74 79
@@ -81,6 +86,7 @@ enum {
81 STAC_92HD71BXX_REF, 86 STAC_92HD71BXX_REF,
82 STAC_DELL_M4_1, 87 STAC_DELL_M4_1,
83 STAC_DELL_M4_2, 88 STAC_DELL_M4_2,
89 STAC_DELL_M4_3,
84 STAC_HP_M4, 90 STAC_HP_M4,
85 STAC_92HD71BXX_MODELS 91 STAC_92HD71BXX_MODELS
86}; 92};
@@ -134,6 +140,7 @@ struct sigmatel_spec {
134 unsigned int num_mixers; 140 unsigned int num_mixers;
135 141
136 int board_config; 142 int board_config;
143 unsigned int eapd_switch: 1;
137 unsigned int surr_switch: 1; 144 unsigned int surr_switch: 1;
138 unsigned int line_switch: 1; 145 unsigned int line_switch: 1;
139 unsigned int mic_switch: 1; 146 unsigned int mic_switch: 1;
@@ -211,7 +218,7 @@ struct sigmatel_spec {
211 /* i/o switches */ 218 /* i/o switches */
212 unsigned int io_switch[2]; 219 unsigned int io_switch[2];
213 unsigned int clfe_swap; 220 unsigned int clfe_swap;
214 unsigned int hp_switch; 221 unsigned int hp_switch; /* NID of HP as line-out */
215 unsigned int aloopback; 222 unsigned int aloopback;
216 223
217 struct hda_pcm pcm_rec[2]; /* PCM information */ 224 struct hda_pcm pcm_rec[2]; /* PCM information */
@@ -773,9 +780,7 @@ static struct hda_verb dell_eq_core_init[] = {
773}; 780};
774 781
775static struct hda_verb dell_m6_core_init[] = { 782static struct hda_verb dell_m6_core_init[] = {
776 /* set master volume to max value without distortion 783 { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
777 * and direct control */
778 { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
779 /* setup audio connections */ 784 /* setup audio connections */
780 { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, 785 { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00},
781 { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01}, 786 { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
@@ -1599,12 +1604,18 @@ static unsigned int dell_m6_pin_configs[13] = {
1599 1604
1600static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { 1605static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
1601 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, 1606 [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
1602 [STAC_DELL_M6] = dell_m6_pin_configs, 1607 [STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
1608 [STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
1609 [STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
1610 [STAC_DELL_EQ] = dell_m6_pin_configs,
1603}; 1611};
1604 1612
1605static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { 1613static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
1606 [STAC_92HD73XX_REF] = "ref", 1614 [STAC_92HD73XX_REF] = "ref",
1607 [STAC_DELL_M6] = "dell-m6", 1615 [STAC_DELL_M6_AMIC] = "dell-m6-amic",
1616 [STAC_DELL_M6_DMIC] = "dell-m6-dmic",
1617 [STAC_DELL_M6_BOTH] = "dell-m6",
1618 [STAC_DELL_EQ] = "dell-eq",
1608}; 1619};
1609 1620
1610static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { 1621static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
@@ -1612,19 +1623,23 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
1612 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, 1623 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
1613 "DFI LanParty", STAC_92HD73XX_REF), 1624 "DFI LanParty", STAC_92HD73XX_REF),
1614 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254, 1625 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254,
1615 "unknown Dell", STAC_DELL_M6), 1626 "Dell Studio 1535", STAC_DELL_M6_DMIC),
1616 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255, 1627 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255,
1617 "unknown Dell", STAC_DELL_M6), 1628 "unknown Dell", STAC_DELL_M6_DMIC),
1618 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256, 1629 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256,
1619 "unknown Dell", STAC_DELL_M6), 1630 "unknown Dell", STAC_DELL_M6_BOTH),
1620 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257, 1631 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257,
1621 "unknown Dell", STAC_DELL_M6), 1632 "unknown Dell", STAC_DELL_M6_BOTH),
1622 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e, 1633 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e,
1623 "unknown Dell", STAC_DELL_M6), 1634 "unknown Dell", STAC_DELL_M6_AMIC),
1624 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f, 1635 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f,
1625 "unknown Dell", STAC_DELL_M6), 1636 "unknown Dell", STAC_DELL_M6_AMIC),
1626 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271, 1637 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271,
1627 "unknown Dell", STAC_DELL_M6), 1638 "unknown Dell", STAC_DELL_M6_DMIC),
1639 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0272,
1640 "unknown Dell", STAC_DELL_M6_DMIC),
1641 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
1642 "Dell Studio 1537", STAC_DELL_M6_DMIC),
1628 {} /* terminator */ 1643 {} /* terminator */
1629}; 1644};
1630 1645
@@ -1667,10 +1682,17 @@ static unsigned int dell_m4_2_pin_configs[11] = {
1667 0x40f000f0, 0x044413b0, 0x044413b0, 1682 0x40f000f0, 0x044413b0, 0x044413b0,
1668}; 1683};
1669 1684
1685static unsigned int dell_m4_3_pin_configs[11] = {
1686 0x0421101f, 0x04a11221, 0x90a70330, 0x90170110,
1687 0x40f000f0, 0x40f000f0, 0x40f000f0, 0x90a000f0,
1688 0x40f000f0, 0x044413b0, 0x044413b0,
1689};
1690
1670static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = { 1691static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = {
1671 [STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs, 1692 [STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs,
1672 [STAC_DELL_M4_1] = dell_m4_1_pin_configs, 1693 [STAC_DELL_M4_1] = dell_m4_1_pin_configs,
1673 [STAC_DELL_M4_2] = dell_m4_2_pin_configs, 1694 [STAC_DELL_M4_2] = dell_m4_2_pin_configs,
1695 [STAC_DELL_M4_3] = dell_m4_3_pin_configs,
1674 [STAC_HP_M4] = NULL, 1696 [STAC_HP_M4] = NULL,
1675}; 1697};
1676 1698
@@ -1678,6 +1700,7 @@ static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = {
1678 [STAC_92HD71BXX_REF] = "ref", 1700 [STAC_92HD71BXX_REF] = "ref",
1679 [STAC_DELL_M4_1] = "dell-m4-1", 1701 [STAC_DELL_M4_1] = "dell-m4-1",
1680 [STAC_DELL_M4_2] = "dell-m4-2", 1702 [STAC_DELL_M4_2] = "dell-m4-2",
1703 [STAC_DELL_M4_3] = "dell-m4-3",
1681 [STAC_HP_M4] = "hp-m4", 1704 [STAC_HP_M4] = "hp-m4",
1682}; 1705};
1683 1706
@@ -1685,6 +1708,10 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
1685 /* SigmaTel reference board */ 1708 /* SigmaTel reference board */
1686 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, 1709 SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
1687 "DFI LanParty", STAC_92HD71BXX_REF), 1710 "DFI LanParty", STAC_92HD71BXX_REF),
1711 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f2,
1712 "HP dv5", STAC_HP_M4),
1713 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f4,
1714 "HP dv7", STAC_HP_M4),
1688 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x361a, 1715 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x361a,
1689 "unknown HP", STAC_HP_M4), 1716 "unknown HP", STAC_HP_M4),
1690 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0233, 1717 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0233,
@@ -1709,6 +1736,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
1709 "unknown Dell", STAC_DELL_M4_2), 1736 "unknown Dell", STAC_DELL_M4_2),
1710 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0264, 1737 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0264,
1711 "unknown Dell", STAC_DELL_M4_2), 1738 "unknown Dell", STAC_DELL_M4_2),
1739 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02aa,
1740 "unknown Dell", STAC_DELL_M4_3),
1712 {} /* terminator */ 1741 {} /* terminator */
1713}; 1742};
1714 1743
@@ -2442,7 +2471,7 @@ static int stac92xx_hp_switch_get(struct snd_kcontrol *kcontrol,
2442 struct hda_codec *codec = snd_kcontrol_chip(kcontrol); 2471 struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
2443 struct sigmatel_spec *spec = codec->spec; 2472 struct sigmatel_spec *spec = codec->spec;
2444 2473
2445 ucontrol->value.integer.value[0] = spec->hp_switch; 2474 ucontrol->value.integer.value[0] = !!spec->hp_switch;
2446 return 0; 2475 return 0;
2447} 2476}
2448 2477
@@ -2451,8 +2480,9 @@ static int stac92xx_hp_switch_put(struct snd_kcontrol *kcontrol,
2451{ 2480{
2452 struct hda_codec *codec = snd_kcontrol_chip(kcontrol); 2481 struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
2453 struct sigmatel_spec *spec = codec->spec; 2482 struct sigmatel_spec *spec = codec->spec;
2454 2483 int nid = kcontrol->private_value;
2455 spec->hp_switch = ucontrol->value.integer.value[0]; 2484
2485 spec->hp_switch = ucontrol->value.integer.value[0] ? nid : 0;
2456 2486
2457 /* check to be sure that the ports are upto date with 2487 /* check to be sure that the ports are upto date with
2458 * switch changes 2488 * switch changes
@@ -2585,8 +2615,10 @@ static struct snd_kcontrol_new stac92xx_control_templates[] = {
2585}; 2615};
2586 2616
2587/* add dynamic controls */ 2617/* add dynamic controls */
2588static int stac92xx_add_control_idx(struct sigmatel_spec *spec, int type, 2618static int stac92xx_add_control_temp(struct sigmatel_spec *spec,
2589 int idx, const char *name, unsigned long val) 2619 struct snd_kcontrol_new *ktemp,
2620 int idx, const char *name,
2621 unsigned long val)
2590{ 2622{
2591 struct snd_kcontrol_new *knew; 2623 struct snd_kcontrol_new *knew;
2592 2624
@@ -2605,20 +2637,29 @@ static int stac92xx_add_control_idx(struct sigmatel_spec *spec, int type,
2605 } 2637 }
2606 2638
2607 knew = &spec->kctl_alloc[spec->num_kctl_used]; 2639 knew = &spec->kctl_alloc[spec->num_kctl_used];
2608 *knew = stac92xx_control_templates[type]; 2640 *knew = *ktemp;
2609 knew->index = idx; 2641 knew->index = idx;
2610 knew->name = kstrdup(name, GFP_KERNEL); 2642 knew->name = kstrdup(name, GFP_KERNEL);
2611 if (! knew->name) 2643 if (!knew->name)
2612 return -ENOMEM; 2644 return -ENOMEM;
2613 knew->private_value = val; 2645 knew->private_value = val;
2614 spec->num_kctl_used++; 2646 spec->num_kctl_used++;
2615 return 0; 2647 return 0;
2616} 2648}
2617 2649
2650static inline int stac92xx_add_control_idx(struct sigmatel_spec *spec,
2651 int type, int idx, const char *name,
2652 unsigned long val)
2653{
2654 return stac92xx_add_control_temp(spec,
2655 &stac92xx_control_templates[type],
2656 idx, name, val);
2657}
2658
2618 2659
2619/* add dynamic controls */ 2660/* add dynamic controls */
2620static int stac92xx_add_control(struct sigmatel_spec *spec, int type, 2661static inline int stac92xx_add_control(struct sigmatel_spec *spec, int type,
2621 const char *name, unsigned long val) 2662 const char *name, unsigned long val)
2622{ 2663{
2623 return stac92xx_add_control_idx(spec, type, 0, name, val); 2664 return stac92xx_add_control_idx(spec, type, 0, name, val);
2624} 2665}
@@ -2858,10 +2899,11 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
2858 cfg->hp_outs && !spec->multiout.hp_nid) 2899 cfg->hp_outs && !spec->multiout.hp_nid)
2859 spec->multiout.hp_nid = nid; 2900 spec->multiout.hp_nid = nid;
2860 2901
2861 if (cfg->hp_outs > 1) { 2902 if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) {
2862 err = stac92xx_add_control(spec, 2903 err = stac92xx_add_control(spec,
2863 STAC_CTL_WIDGET_HP_SWITCH, 2904 STAC_CTL_WIDGET_HP_SWITCH,
2864 "Headphone as Line Out Switch", 0); 2905 "Headphone as Line Out Switch",
2906 cfg->hp_pins[cfg->hp_outs - 1]);
2865 if (err < 0) 2907 if (err < 0)
2866 return err; 2908 return err;
2867 } 2909 }
@@ -3059,6 +3101,43 @@ static int stac92xx_auto_create_beep_ctls(struct hda_codec *codec,
3059 return 0; 3101 return 0;
3060} 3102}
3061 3103
3104#ifdef CONFIG_SND_HDA_INPUT_BEEP
3105#define stac92xx_dig_beep_switch_info snd_ctl_boolean_mono_info
3106
3107static int stac92xx_dig_beep_switch_get(struct snd_kcontrol *kcontrol,
3108 struct snd_ctl_elem_value *ucontrol)
3109{
3110 struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
3111 ucontrol->value.integer.value[0] = codec->beep->enabled;
3112 return 0;
3113}
3114
3115static int stac92xx_dig_beep_switch_put(struct snd_kcontrol *kcontrol,
3116 struct snd_ctl_elem_value *ucontrol)
3117{
3118 struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
3119 int enabled = !!ucontrol->value.integer.value[0];
3120 if (codec->beep->enabled != enabled) {
3121 codec->beep->enabled = enabled;
3122 return 1;
3123 }
3124 return 0;
3125}
3126
3127static struct snd_kcontrol_new stac92xx_dig_beep_ctrl = {
3128 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3129 .info = stac92xx_dig_beep_switch_info,
3130 .get = stac92xx_dig_beep_switch_get,
3131 .put = stac92xx_dig_beep_switch_put,
3132};
3133
3134static int stac92xx_beep_switch_ctl(struct hda_codec *codec)
3135{
3136 return stac92xx_add_control_temp(codec->spec, &stac92xx_dig_beep_ctrl,
3137 0, "PC Beep Playback Switch", 0);
3138}
3139#endif
3140
3062static int stac92xx_auto_create_mux_input_ctls(struct hda_codec *codec) 3141static int stac92xx_auto_create_mux_input_ctls(struct hda_codec *codec)
3063{ 3142{
3064 struct sigmatel_spec *spec = codec->spec; 3143 struct sigmatel_spec *spec = codec->spec;
@@ -3365,6 +3444,7 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out
3365#ifdef CONFIG_SND_HDA_INPUT_BEEP 3444#ifdef CONFIG_SND_HDA_INPUT_BEEP
3366 if (spec->digbeep_nid > 0) { 3445 if (spec->digbeep_nid > 0) {
3367 hda_nid_t nid = spec->digbeep_nid; 3446 hda_nid_t nid = spec->digbeep_nid;
3447 unsigned int caps;
3368 3448
3369 err = stac92xx_auto_create_beep_ctls(codec, nid); 3449 err = stac92xx_auto_create_beep_ctls(codec, nid);
3370 if (err < 0) 3450 if (err < 0)
@@ -3372,6 +3452,14 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out
3372 err = snd_hda_attach_beep_device(codec, nid); 3452 err = snd_hda_attach_beep_device(codec, nid);
3373 if (err < 0) 3453 if (err < 0)
3374 return err; 3454 return err;
3455 /* if no beep switch is available, make its own one */
3456 caps = query_amp_caps(codec, nid, HDA_OUTPUT);
3457 if (codec->beep &&
3458 !((caps & AC_AMPCAP_MUTE) >> AC_AMPCAP_MUTE_SHIFT)) {
3459 err = stac92xx_beep_switch_ctl(codec);
3460 if (err < 0)
3461 return err;
3462 }
3375 } 3463 }
3376#endif 3464#endif
3377 3465
@@ -3529,6 +3617,12 @@ static int stac9200_parse_auto_config(struct hda_codec *codec)
3529 if ((err = stac9200_auto_create_lfe_ctls(codec, &spec->autocfg)) < 0) 3617 if ((err = stac9200_auto_create_lfe_ctls(codec, &spec->autocfg)) < 0)
3530 return err; 3618 return err;
3531 3619
3620 if (spec->num_muxes > 0) {
3621 err = stac92xx_auto_create_mux_input_ctls(codec);
3622 if (err < 0)
3623 return err;
3624 }
3625
3532 if (spec->autocfg.dig_out_pin) 3626 if (spec->autocfg.dig_out_pin)
3533 spec->multiout.dig_out_nid = 0x05; 3627 spec->multiout.dig_out_nid = 0x05;
3534 if (spec->autocfg.dig_in_pin) 3628 if (spec->autocfg.dig_in_pin)
@@ -3611,10 +3705,14 @@ static void stac92xx_power_down(struct hda_codec *codec)
3611 AC_VERB_SET_POWER_STATE, AC_PWRST_D3); 3705 AC_VERB_SET_POWER_STATE, AC_PWRST_D3);
3612} 3706}
3613 3707
3708static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid,
3709 int enable);
3710
3614static int stac92xx_init(struct hda_codec *codec) 3711static int stac92xx_init(struct hda_codec *codec)
3615{ 3712{
3616 struct sigmatel_spec *spec = codec->spec; 3713 struct sigmatel_spec *spec = codec->spec;
3617 struct auto_pin_cfg *cfg = &spec->autocfg; 3714 struct auto_pin_cfg *cfg = &spec->autocfg;
3715 unsigned int gpio;
3618 int i; 3716 int i;
3619 3717
3620 snd_hda_sequence_write(codec, spec->init); 3718 snd_hda_sequence_write(codec, spec->init);
@@ -3625,6 +3723,16 @@ static int stac92xx_init(struct hda_codec *codec)
3625 snd_hda_codec_write_cache(codec, 3723 snd_hda_codec_write_cache(codec,
3626 spec->adc_nids[i], 0, 3724 spec->adc_nids[i], 0,
3627 AC_VERB_SET_POWER_STATE, AC_PWRST_D3); 3725 AC_VERB_SET_POWER_STATE, AC_PWRST_D3);
3726
3727 /* set up GPIO */
3728 gpio = spec->gpio_data;
3729 /* turn on EAPD statically when spec->eapd_switch isn't set.
3730 * otherwise, unsol event will turn it on/off dynamically
3731 */
3732 if (!spec->eapd_switch)
3733 gpio |= spec->eapd_mask;
3734 stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir, gpio);
3735
3628 /* set up pins */ 3736 /* set up pins */
3629 if (spec->hp_detect) { 3737 if (spec->hp_detect) {
3630 /* Enable unsolicited responses on the HP widget */ 3738 /* Enable unsolicited responses on the HP widget */
@@ -3646,53 +3754,61 @@ static int stac92xx_init(struct hda_codec *codec)
3646 for (i = 0; i < AUTO_PIN_LAST; i++) { 3754 for (i = 0; i < AUTO_PIN_LAST; i++) {
3647 hda_nid_t nid = cfg->input_pins[i]; 3755 hda_nid_t nid = cfg->input_pins[i];
3648 if (nid) { 3756 if (nid) {
3649 unsigned int pinctl = snd_hda_codec_read(codec, nid, 3757 unsigned int pinctl;
3650 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); 3758 if (i == AUTO_PIN_MIC || i == AUTO_PIN_FRONT_MIC) {
3651 /* if PINCTL already set then skip */ 3759 /* for mic pins, force to initialize */
3652 if (pinctl & AC_PINCAP_IN) 3760 pinctl = stac92xx_get_vref(codec, nid);
3653 continue; 3761 } else {
3654 pinctl = AC_PINCTL_IN_EN; 3762 pinctl = snd_hda_codec_read(codec, nid, 0,
3655 if (i == AUTO_PIN_MIC || i == AUTO_PIN_FRONT_MIC) 3763 AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
3656 pinctl |= stac92xx_get_vref(codec, nid); 3764 /* if PINCTL already set then skip */
3765 if (pinctl & AC_PINCTL_IN_EN)
3766 continue;
3767 }
3768 pinctl |= AC_PINCTL_IN_EN;
3657 stac92xx_auto_set_pinctl(codec, nid, pinctl); 3769 stac92xx_auto_set_pinctl(codec, nid, pinctl);
3658 } 3770 }
3659 } 3771 }
3660 for (i = 0; i < spec->num_dmics; i++) 3772 for (i = 0; i < spec->num_dmics; i++)
3661 stac92xx_auto_set_pinctl(codec, spec->dmic_nids[i], 3773 stac92xx_auto_set_pinctl(codec, spec->dmic_nids[i],
3662 AC_PINCTL_IN_EN); 3774 AC_PINCTL_IN_EN);
3775 if (cfg->dig_out_pin)
3776 stac92xx_auto_set_pinctl(codec, cfg->dig_out_pin,
3777 AC_PINCTL_OUT_EN);
3778 if (cfg->dig_in_pin)
3779 stac92xx_auto_set_pinctl(codec, cfg->dig_in_pin,
3780 AC_PINCTL_IN_EN);
3663 for (i = 0; i < spec->num_pwrs; i++) { 3781 for (i = 0; i < spec->num_pwrs; i++) {
3664 int event = is_nid_hp_pin(cfg, spec->pwr_nids[i]) 3782 hda_nid_t nid = spec->pwr_nids[i];
3665 ? STAC_HP_EVENT : STAC_PWR_EVENT; 3783 int pinctl, def_conf;
3666 int pinctl = snd_hda_codec_read(codec, spec->pwr_nids[i], 3784 int event = STAC_PWR_EVENT;
3667 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); 3785
3668 int def_conf = snd_hda_codec_read(codec, spec->pwr_nids[i], 3786 if (is_nid_hp_pin(cfg, nid) && spec->hp_detect)
3669 0, AC_VERB_GET_CONFIG_DEFAULT, 0); 3787 continue; /* already has an unsol event */
3670 def_conf = get_defcfg_connect(def_conf); 3788
3789 pinctl = snd_hda_codec_read(codec, nid, 0,
3790 AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
3671 /* outputs are only ports capable of power management 3791 /* outputs are only ports capable of power management
3672 * any attempts on powering down a input port cause the 3792 * any attempts on powering down a input port cause the
3673 * referenced VREF to act quirky. 3793 * referenced VREF to act quirky.
3674 */ 3794 */
3675 if (pinctl & AC_PINCTL_IN_EN) 3795 if (pinctl & AC_PINCTL_IN_EN)
3676 continue; 3796 continue;
3797 def_conf = snd_hda_codec_read(codec, nid, 0,
3798 AC_VERB_GET_CONFIG_DEFAULT, 0);
3799 def_conf = get_defcfg_connect(def_conf);
3677 /* skip any ports that don't have jacks since presence 3800 /* skip any ports that don't have jacks since presence
3678 * detection is useless */ 3801 * detection is useless */
3679 if (def_conf && def_conf != AC_JACK_PORT_FIXED) 3802 if (def_conf != AC_JACK_PORT_COMPLEX) {
3803 if (def_conf != AC_JACK_PORT_NONE)
3804 stac_toggle_power_map(codec, nid, 1);
3680 continue; 3805 continue;
3806 }
3681 enable_pin_detect(codec, spec->pwr_nids[i], event | i); 3807 enable_pin_detect(codec, spec->pwr_nids[i], event | i);
3682 codec->patch_ops.unsol_event(codec, (event | i) << 26); 3808 codec->patch_ops.unsol_event(codec, (event | i) << 26);
3683 } 3809 }
3684 if (spec->dac_list) 3810 if (spec->dac_list)
3685 stac92xx_power_down(codec); 3811 stac92xx_power_down(codec);
3686 if (cfg->dig_out_pin)
3687 stac92xx_auto_set_pinctl(codec, cfg->dig_out_pin,
3688 AC_PINCTL_OUT_EN);
3689 if (cfg->dig_in_pin)
3690 stac92xx_auto_set_pinctl(codec, cfg->dig_in_pin,
3691 AC_PINCTL_IN_EN);
3692
3693 stac_gpio_set(codec, spec->gpio_mask,
3694 spec->gpio_dir, spec->gpio_data);
3695
3696 return 0; 3812 return 0;
3697} 3813}
3698 3814
@@ -3775,11 +3891,30 @@ static int get_hp_pin_presence(struct hda_codec *codec, hda_nid_t nid)
3775 return 0; 3891 return 0;
3776} 3892}
3777 3893
3894/* return non-zero if the hp-pin of the given array index isn't
3895 * a jack-detection target
3896 */
3897static int no_hp_sensing(struct sigmatel_spec *spec, int i)
3898{
3899 struct auto_pin_cfg *cfg = &spec->autocfg;
3900
3901 /* ignore sensing of shared line and mic jacks */
3902 if (spec->line_switch &&
3903 cfg->hp_pins[i] == cfg->input_pins[AUTO_PIN_LINE])
3904 return 1;
3905 if (spec->mic_switch &&
3906 cfg->hp_pins[i] == cfg->input_pins[AUTO_PIN_MIC])
3907 return 1;
3908 /* ignore if the pin is set as line-out */
3909 if (cfg->hp_pins[i] == spec->hp_switch)
3910 return 1;
3911 return 0;
3912}
3913
3778static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res) 3914static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res)
3779{ 3915{
3780 struct sigmatel_spec *spec = codec->spec; 3916 struct sigmatel_spec *spec = codec->spec;
3781 struct auto_pin_cfg *cfg = &spec->autocfg; 3917 struct auto_pin_cfg *cfg = &spec->autocfg;
3782 int nid = cfg->hp_pins[cfg->hp_outs - 1];
3783 int i, presence; 3918 int i, presence;
3784 3919
3785 presence = 0; 3920 presence = 0;
@@ -3790,52 +3925,66 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res)
3790 for (i = 0; i < cfg->hp_outs; i++) { 3925 for (i = 0; i < cfg->hp_outs; i++) {
3791 if (presence) 3926 if (presence)
3792 break; 3927 break;
3793 if (spec->hp_switch && cfg->hp_pins[i] == nid) 3928 if (no_hp_sensing(spec, i))
3794 break; 3929 continue;
3795 presence = get_hp_pin_presence(codec, cfg->hp_pins[i]); 3930 presence = get_hp_pin_presence(codec, cfg->hp_pins[i]);
3796 } 3931 }
3797 3932
3798 if (presence) { 3933 if (presence) {
3799 /* disable lineouts, enable hp */ 3934 /* disable lineouts */
3800 if (spec->hp_switch) 3935 if (spec->hp_switch)
3801 stac92xx_reset_pinctl(codec, nid, AC_PINCTL_OUT_EN); 3936 stac92xx_reset_pinctl(codec, spec->hp_switch,
3937 AC_PINCTL_OUT_EN);
3802 for (i = 0; i < cfg->line_outs; i++) 3938 for (i = 0; i < cfg->line_outs; i++)
3803 stac92xx_reset_pinctl(codec, cfg->line_out_pins[i], 3939 stac92xx_reset_pinctl(codec, cfg->line_out_pins[i],
3804 AC_PINCTL_OUT_EN); 3940 AC_PINCTL_OUT_EN);
3805 for (i = 0; i < cfg->speaker_outs; i++) 3941 for (i = 0; i < cfg->speaker_outs; i++)
3806 stac92xx_reset_pinctl(codec, cfg->speaker_pins[i], 3942 stac92xx_reset_pinctl(codec, cfg->speaker_pins[i],
3807 AC_PINCTL_OUT_EN); 3943 AC_PINCTL_OUT_EN);
3808 if (spec->eapd_mask) 3944 if (spec->eapd_mask && spec->eapd_switch)
3809 stac_gpio_set(codec, spec->gpio_mask, 3945 stac_gpio_set(codec, spec->gpio_mask,
3810 spec->gpio_dir, spec->gpio_data & 3946 spec->gpio_dir, spec->gpio_data &
3811 ~spec->eapd_mask); 3947 ~spec->eapd_mask);
3812 } else { 3948 } else {
3813 /* enable lineouts, disable hp */ 3949 /* enable lineouts */
3814 if (spec->hp_switch) 3950 if (spec->hp_switch)
3815 stac92xx_set_pinctl(codec, nid, AC_PINCTL_OUT_EN); 3951 stac92xx_set_pinctl(codec, spec->hp_switch,
3952 AC_PINCTL_OUT_EN);
3816 for (i = 0; i < cfg->line_outs; i++) 3953 for (i = 0; i < cfg->line_outs; i++)
3817 stac92xx_set_pinctl(codec, cfg->line_out_pins[i], 3954 stac92xx_set_pinctl(codec, cfg->line_out_pins[i],
3818 AC_PINCTL_OUT_EN); 3955 AC_PINCTL_OUT_EN);
3819 for (i = 0; i < cfg->speaker_outs; i++) 3956 for (i = 0; i < cfg->speaker_outs; i++)
3820 stac92xx_set_pinctl(codec, cfg->speaker_pins[i], 3957 stac92xx_set_pinctl(codec, cfg->speaker_pins[i],
3821 AC_PINCTL_OUT_EN); 3958 AC_PINCTL_OUT_EN);
3822 if (spec->eapd_mask) 3959 if (spec->eapd_mask && spec->eapd_switch)
3823 stac_gpio_set(codec, spec->gpio_mask, 3960 stac_gpio_set(codec, spec->gpio_mask,
3824 spec->gpio_dir, spec->gpio_data | 3961 spec->gpio_dir, spec->gpio_data |
3825 spec->eapd_mask); 3962 spec->eapd_mask);
3826 } 3963 }
3827 if (!spec->hp_switch && cfg->hp_outs > 1 && presence) 3964 /* toggle hp outs */
3828 stac92xx_set_pinctl(codec, nid, AC_PINCTL_OUT_EN); 3965 for (i = 0; i < cfg->hp_outs; i++) {
3966 unsigned int val = AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN;
3967 if (no_hp_sensing(spec, i))
3968 continue;
3969 if (presence)
3970 stac92xx_set_pinctl(codec, cfg->hp_pins[i], val);
3971 else
3972 stac92xx_reset_pinctl(codec, cfg->hp_pins[i], val);
3973 }
3829} 3974}
3830 3975
3831static void stac92xx_pin_sense(struct hda_codec *codec, int idx) 3976static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid,
3977 int enable)
3832{ 3978{
3833 struct sigmatel_spec *spec = codec->spec; 3979 struct sigmatel_spec *spec = codec->spec;
3834 hda_nid_t nid = spec->pwr_nids[idx]; 3980 unsigned int idx, val;
3835 int presence, val; 3981
3836 val = snd_hda_codec_read(codec, codec->afg, 0, 0x0fec, 0x0) 3982 for (idx = 0; idx < spec->num_pwrs; idx++) {
3837 & 0x000000ff; 3983 if (spec->pwr_nids[idx] == nid)
3838 presence = get_hp_pin_presence(codec, nid); 3984 break;
3985 }
3986 if (idx >= spec->num_pwrs)
3987 return;
3839 3988
3840 /* several codecs have two power down bits */ 3989 /* several codecs have two power down bits */
3841 if (spec->pwr_mapping) 3990 if (spec->pwr_mapping)
@@ -3843,14 +3992,20 @@ static void stac92xx_pin_sense(struct hda_codec *codec, int idx)
3843 else 3992 else
3844 idx = 1 << idx; 3993 idx = 1 << idx;
3845 3994
3846 if (presence) 3995 val = snd_hda_codec_read(codec, codec->afg, 0, 0x0fec, 0x0) & 0xff;
3996 if (enable)
3847 val &= ~idx; 3997 val &= ~idx;
3848 else 3998 else
3849 val |= idx; 3999 val |= idx;
3850 4000
3851 /* power down unused output ports */ 4001 /* power down unused output ports */
3852 snd_hda_codec_write(codec, codec->afg, 0, 0x7ec, val); 4002 snd_hda_codec_write(codec, codec->afg, 0, 0x7ec, val);
3853}; 4003}
4004
4005static void stac92xx_pin_sense(struct hda_codec *codec, hda_nid_t nid)
4006{
4007 stac_toggle_power_map(codec, nid, get_hp_pin_presence(codec, nid));
4008}
3854 4009
3855static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) 4010static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res)
3856{ 4011{
@@ -4131,31 +4286,32 @@ again:
4131 sizeof(stac92hd73xx_dmux)); 4286 sizeof(stac92hd73xx_dmux));
4132 4287
4133 switch (spec->board_config) { 4288 switch (spec->board_config) {
4134 case STAC_DELL_M6: 4289 case STAC_DELL_EQ:
4135 spec->init = dell_eq_core_init; 4290 spec->init = dell_eq_core_init;
4291 /* fallthru */
4292 case STAC_DELL_M6_AMIC:
4293 case STAC_DELL_M6_DMIC:
4294 case STAC_DELL_M6_BOTH:
4136 spec->num_smuxes = 0; 4295 spec->num_smuxes = 0;
4137 spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; 4296 spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER];
4138 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; 4297 spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
4298 spec->eapd_switch = 0;
4139 spec->num_amps = 1; 4299 spec->num_amps = 1;
4140 switch (codec->subsystem_id) { 4300
4141 case 0x1028025e: /* Analog Mics */ 4301 if (!spec->init)
4142 case 0x1028025f: 4302 spec->init = dell_m6_core_init;
4303 switch (spec->board_config) {
4304 case STAC_DELL_M6_AMIC: /* Analog Mics */
4143 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); 4305 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
4144 spec->num_dmics = 0; 4306 spec->num_dmics = 0;
4145 spec->private_dimux.num_items = 1; 4307 spec->private_dimux.num_items = 1;
4146 break; 4308 break;
4147 case 0x10280271: /* Digital Mics */ 4309 case STAC_DELL_M6_DMIC: /* Digital Mics */
4148 case 0x10280272:
4149 spec->init = dell_m6_core_init;
4150 /* fall-through */
4151 case 0x10280254:
4152 case 0x10280255:
4153 stac92xx_set_config_reg(codec, 0x13, 0x90A60160); 4310 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
4154 spec->num_dmics = 1; 4311 spec->num_dmics = 1;
4155 spec->private_dimux.num_items = 2; 4312 spec->private_dimux.num_items = 2;
4156 break; 4313 break;
4157 case 0x10280256: /* Both */ 4314 case STAC_DELL_M6_BOTH: /* Both */
4158 case 0x10280057:
4159 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); 4315 stac92xx_set_config_reg(codec, 0x0b, 0x90A70170);
4160 stac92xx_set_config_reg(codec, 0x13, 0x90A60160); 4316 stac92xx_set_config_reg(codec, 0x13, 0x90A60160);
4161 spec->num_dmics = 1; 4317 spec->num_dmics = 1;
@@ -4166,6 +4322,7 @@ again:
4166 default: 4322 default:
4167 spec->num_dmics = STAC92HD73XX_NUM_DMICS; 4323 spec->num_dmics = STAC92HD73XX_NUM_DMICS;
4168 spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids); 4324 spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
4325 spec->eapd_switch = 1;
4169 } 4326 }
4170 if (spec->board_config > STAC_92HD73XX_REF) { 4327 if (spec->board_config > STAC_92HD73XX_REF) {
4171 /* GPIO0 High = Enable EAPD */ 4328 /* GPIO0 High = Enable EAPD */
@@ -4311,7 +4468,13 @@ static int stac92hd71xx_resume(struct hda_codec *codec)
4311 4468
4312static int stac92hd71xx_suspend(struct hda_codec *codec, pm_message_t state) 4469static int stac92hd71xx_suspend(struct hda_codec *codec, pm_message_t state)
4313{ 4470{
4471 struct sigmatel_spec *spec = codec->spec;
4472
4314 stac92hd71xx_set_power_state(codec, AC_PWRST_D3); 4473 stac92hd71xx_set_power_state(codec, AC_PWRST_D3);
4474 if (spec->eapd_mask)
4475 stac_gpio_set(codec, spec->gpio_mask,
4476 spec->gpio_dir, spec->gpio_data &
4477 ~spec->eapd_mask);
4315 return 0; 4478 return 0;
4316}; 4479};
4317 4480
@@ -4374,6 +4537,13 @@ again:
4374 stac92xx_set_config_regs(codec); 4537 stac92xx_set_config_regs(codec);
4375 } 4538 }
4376 4539
4540 if (spec->board_config > STAC_92HD71BXX_REF) {
4541 /* GPIO0 = EAPD */
4542 spec->gpio_mask = 0x01;
4543 spec->gpio_dir = 0x01;
4544 spec->gpio_data = 0x01;
4545 }
4546
4377 switch (codec->vendor_id) { 4547 switch (codec->vendor_id) {
4378 case 0x111d76b6: /* 4 Port without Analog Mixer */ 4548 case 0x111d76b6: /* 4 Port without Analog Mixer */
4379 case 0x111d76b7: 4549 case 0x111d76b7:
@@ -4384,10 +4554,10 @@ again:
4384 codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs; 4554 codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs;
4385 break; 4555 break;
4386 case 0x111d7608: /* 5 Port with Analog Mixer */ 4556 case 0x111d7608: /* 5 Port with Analog Mixer */
4387 switch (codec->subsystem_id) { 4557 switch (spec->board_config) {
4388 case 0x103c361a: 4558 case STAC_HP_M4:
4389 /* Enable VREF power saving on GPIO1 detect */ 4559 /* Enable VREF power saving on GPIO1 detect */
4390 snd_hda_codec_write(codec, codec->afg, 0, 4560 snd_hda_codec_write_cache(codec, codec->afg, 0,
4391 AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x02); 4561 AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x02);
4392 snd_hda_codec_write_cache(codec, codec->afg, 0, 4562 snd_hda_codec_write_cache(codec, codec->afg, 0,
4393 AC_VERB_SET_UNSOLICITED_ENABLE, 4563 AC_VERB_SET_UNSOLICITED_ENABLE,
@@ -4433,13 +4603,6 @@ again:
4433 spec->aloopback_mask = 0x50; 4603 spec->aloopback_mask = 0x50;
4434 spec->aloopback_shift = 0; 4604 spec->aloopback_shift = 0;
4435 4605
4436 if (spec->board_config > STAC_92HD71BXX_REF) {
4437 /* GPIO0 = EAPD */
4438 spec->gpio_mask = 0x01;
4439 spec->gpio_dir = 0x01;
4440 spec->gpio_data = 0x01;
4441 }
4442
4443 spec->powerdown_adcs = 1; 4606 spec->powerdown_adcs = 1;
4444 spec->digbeep_nid = 0x26; 4607 spec->digbeep_nid = 0x26;
4445 spec->mux_nids = stac92hd71bxx_mux_nids; 4608 spec->mux_nids = stac92hd71bxx_mux_nids;
@@ -4454,14 +4617,21 @@ again:
4454 4617
4455 switch (spec->board_config) { 4618 switch (spec->board_config) {
4456 case STAC_HP_M4: 4619 case STAC_HP_M4:
4457 spec->num_dmics = 0;
4458 spec->num_smuxes = 0;
4459 spec->num_dmuxes = 0;
4460
4461 /* enable internal microphone */ 4620 /* enable internal microphone */
4462 stac92xx_set_config_reg(codec, 0x0e, 0x01813040); 4621 stac92xx_set_config_reg(codec, 0x0e, 0x01813040);
4463 stac92xx_auto_set_pinctl(codec, 0x0e, 4622 stac92xx_auto_set_pinctl(codec, 0x0e,
4464 AC_PINCTL_IN_EN | AC_PINCTL_VREF_80); 4623 AC_PINCTL_IN_EN | AC_PINCTL_VREF_80);
4624 /* fallthru */
4625 case STAC_DELL_M4_2:
4626 spec->num_dmics = 0;
4627 spec->num_smuxes = 0;
4628 spec->num_dmuxes = 0;
4629 break;
4630 case STAC_DELL_M4_1:
4631 case STAC_DELL_M4_3:
4632 spec->num_dmics = 1;
4633 spec->num_smuxes = 0;
4634 spec->num_dmuxes = 0;
4465 break; 4635 break;
4466 default: 4636 default:
4467 spec->num_dmics = STAC92HD71BXX_NUM_DMICS; 4637 spec->num_dmics = STAC92HD71BXX_NUM_DMICS;
@@ -4698,6 +4868,7 @@ static int patch_stac927x(struct hda_codec *codec)
4698 spec->num_pwrs = 0; 4868 spec->num_pwrs = 0;
4699 spec->aloopback_mask = 0x40; 4869 spec->aloopback_mask = 0x40;
4700 spec->aloopback_shift = 0; 4870 spec->aloopback_shift = 0;
4871 spec->eapd_switch = 1;
4701 4872
4702 err = stac92xx_parse_auto_config(codec, 0x1e, 0x20); 4873 err = stac92xx_parse_auto_config(codec, 0x1e, 0x20);
4703 if (!err) { 4874 if (!err) {
@@ -4778,6 +4949,7 @@ static int patch_stac9205(struct hda_codec *codec)
4778 4949
4779 spec->aloopback_mask = 0x40; 4950 spec->aloopback_mask = 0x40;
4780 spec->aloopback_shift = 0; 4951 spec->aloopback_shift = 0;
4952 spec->eapd_switch = 1;
4781 spec->multiout.dac_nids = spec->dac_nids; 4953 spec->multiout.dac_nids = spec->dac_nids;
4782 4954
4783 switch (spec->board_config){ 4955 switch (spec->board_config){
@@ -4787,7 +4959,7 @@ static int patch_stac9205(struct hda_codec *codec)
4787 stac92xx_set_config_reg(codec, 0x20, 0x1c410030); 4959 stac92xx_set_config_reg(codec, 0x20, 0x1c410030);
4788 4960
4789 /* Enable unsol response for GPIO4/Dock HP connection */ 4961 /* Enable unsol response for GPIO4/Dock HP connection */
4790 snd_hda_codec_write(codec, codec->afg, 0, 4962 snd_hda_codec_write_cache(codec, codec->afg, 0,
4791 AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x10); 4963 AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x10);
4792 snd_hda_codec_write_cache(codec, codec->afg, 0, 4964 snd_hda_codec_write_cache(codec, codec->afg, 0,
4793 AC_VERB_SET_UNSOLICITED_ENABLE, 4965 AC_VERB_SET_UNSOLICITED_ENABLE,
diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c
index 0e06c6c9fcc0..73de6e989b3d 100644
--- a/sound/pci/pcxhr/pcxhr.c
+++ b/sound/pci/pcxhr/pcxhr.c
@@ -1229,8 +1229,11 @@ static int __devinit pcxhr_probe(struct pci_dev *pci, const struct pci_device_id
1229 return -ENOMEM; 1229 return -ENOMEM;
1230 } 1230 }
1231 1231
1232 if (snd_BUG_ON(pci_id->driver_data >= PCI_ID_LAST)) 1232 if (snd_BUG_ON(pci_id->driver_data >= PCI_ID_LAST)) {
1233 kfree(mgr);
1234 pci_disable_device(pci);
1233 return -ENODEV; 1235 return -ENODEV;
1236 }
1234 card_name = pcxhr_board_params[pci_id->driver_data].board_name; 1237 card_name = pcxhr_board_params[pci_id->driver_data].board_name;
1235 mgr->playback_chips = pcxhr_board_params[pci_id->driver_data].playback_chips; 1238 mgr->playback_chips = pcxhr_board_params[pci_id->driver_data].playback_chips;
1236 mgr->capture_chips = pcxhr_board_params[pci_id->driver_data].capture_chips; 1239 mgr->capture_chips = pcxhr_board_params[pci_id->driver_data].capture_chips;
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index d723543beadd..736246f98acc 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -4548,11 +4548,20 @@ static int snd_hdsp_hwdep_ioctl(struct snd_hwdep *hw, struct file *file, unsigne
4548{ 4548{
4549 struct hdsp *hdsp = (struct hdsp *)hw->private_data; 4549 struct hdsp *hdsp = (struct hdsp *)hw->private_data;
4550 void __user *argp = (void __user *)arg; 4550 void __user *argp = (void __user *)arg;
4551 int err;
4551 4552
4552 switch (cmd) { 4553 switch (cmd) {
4553 case SNDRV_HDSP_IOCTL_GET_PEAK_RMS: { 4554 case SNDRV_HDSP_IOCTL_GET_PEAK_RMS: {
4554 struct hdsp_peak_rms __user *peak_rms = (struct hdsp_peak_rms __user *)arg; 4555 struct hdsp_peak_rms __user *peak_rms = (struct hdsp_peak_rms __user *)arg;
4555 4556
4557 err = hdsp_check_for_iobox(hdsp);
4558 if (err < 0)
4559 return err;
4560
4561 err = hdsp_check_for_firmware(hdsp, 1);
4562 if (err < 0)
4563 return err;
4564
4556 if (!(hdsp->state & HDSP_FirmwareLoaded)) { 4565 if (!(hdsp->state & HDSP_FirmwareLoaded)) {
4557 snd_printk(KERN_ERR "Hammerfall-DSP: firmware needs to be uploaded to the card.\n"); 4566 snd_printk(KERN_ERR "Hammerfall-DSP: firmware needs to be uploaded to the card.\n");
4558 return -EINVAL; 4567 return -EINVAL;
@@ -4572,10 +4581,14 @@ static int snd_hdsp_hwdep_ioctl(struct snd_hwdep *hw, struct file *file, unsigne
4572 unsigned long flags; 4581 unsigned long flags;
4573 int i; 4582 int i;
4574 4583
4575 if (!(hdsp->state & HDSP_FirmwareLoaded)) { 4584 err = hdsp_check_for_iobox(hdsp);
4576 snd_printk(KERN_ERR "Hammerfall-DSP: Firmware needs to be uploaded to the card.\n"); 4585 if (err < 0)
4577 return -EINVAL; 4586 return err;
4578 } 4587
4588 err = hdsp_check_for_firmware(hdsp, 1);
4589 if (err < 0)
4590 return err;
4591
4579 spin_lock_irqsave(&hdsp->lock, flags); 4592 spin_lock_irqsave(&hdsp->lock, flags);
4580 info.pref_sync_ref = (unsigned char)hdsp_pref_sync_ref(hdsp); 4593 info.pref_sync_ref = (unsigned char)hdsp_pref_sync_ref(hdsp);
4581 info.wordclock_sync_check = (unsigned char)hdsp_wc_sync_check(hdsp); 4594 info.wordclock_sync_check = (unsigned char)hdsp_wc_sync_check(hdsp);
@@ -5045,6 +5058,10 @@ static int __devinit snd_hdsp_create(struct snd_card *card,
5045 /* we wait 2 seconds to let freshly inserted cardbus cards do their hardware init */ 5058 /* we wait 2 seconds to let freshly inserted cardbus cards do their hardware init */
5046 ssleep(2); 5059 ssleep(2);
5047 5060
5061 err = hdsp_check_for_iobox(hdsp);
5062 if (err < 0)
5063 return err;
5064
5048 if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) { 5065 if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) {
5049#ifdef HDSP_FW_LOADER 5066#ifdef HDSP_FW_LOADER
5050 if ((err = hdsp_request_fw_loader(hdsp)) < 0) 5067 if ((err = hdsp_request_fw_loader(hdsp)) < 0)
@@ -5057,7 +5074,7 @@ static int __devinit snd_hdsp_create(struct snd_card *card,
5057 /* init is complete, we return */ 5074 /* init is complete, we return */
5058 return 0; 5075 return 0;
5059#endif 5076#endif
5060 /* no iobox connected, we defer initialization */ 5077 /* we defer initialization */
5061 snd_printk(KERN_INFO "Hammerfall-DSP: card initialization pending : waiting for firmware\n"); 5078 snd_printk(KERN_INFO "Hammerfall-DSP: card initialization pending : waiting for firmware\n");
5062 if ((err = snd_hdsp_create_hwdep(card, hdsp)) < 0) 5079 if ((err = snd_hdsp_create_hwdep(card, hdsp)) < 0)
5063 return err; 5080 return err;
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/soc-core.c b/sound/soc/soc-core.c
index a3adbf06b1e5..16c7453f4946 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -95,8 +95,8 @@ static int soc_ac97_dev_register(struct snd_soc_codec *codec)
95 codec->ac97->dev.parent = NULL; 95 codec->ac97->dev.parent = NULL;
96 codec->ac97->dev.release = soc_ac97_device_release; 96 codec->ac97->dev.release = soc_ac97_device_release;
97 97
98 snprintf(codec->ac97->dev.bus_id, BUS_ID_SIZE, "%d-%d:%s", 98 dev_set_name(&codec->ac97->dev, "%d-%d:%s",
99 codec->card->number, 0, codec->name); 99 codec->card->number, 0, codec->name);
100 err = device_register(&codec->ac97->dev); 100 err = device_register(&codec->ac97->dev);
101 if (err < 0) { 101 if (err < 0) {
102 snd_printk(KERN_ERR "Can't register ac97 bus\n"); 102 snd_printk(KERN_ERR "Can't register ac97 bus\n");
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);